qpdf-8.0.2/0000755000064100006410000000000013247543020010531 5ustar ejbejbqpdf-8.0.2/logo/0000755000064100006410000000000013247541377011506 5ustar ejbejbqpdf-8.0.2/logo/qpdf.ps0000644000064100006410000000566513247541377013020 0ustar ejbejb%!PS-Adobe-2.0 EPSF-2.0 %%Creator: Jay Berkenbilt %%Title: qpdf logo %%BoundingBox: 0 0 128 105 %%Pages: 0 %%EndComments % % To generate svg: % * Use ps2pdf to convert to pdf % * Edit the mediabox of the page in the pdf to match the bounding box % * Use pdf2svg to generate the svg file % %%BeginProlog % Bounding box and page bounding box must match fullwidth and % fullheight when adjusted by the scale factor. /fullheight 420 def % must be { outerheight linewidth add } /fullwidth 512 def /linewidth 10 def /outerwidth fullwidth linewidth sub def /radius 30 def /letterwidth 80 def /fudge .08 def /letterheight letterwidth 2 mul def /outerheight letterheight 2 mul radius 3 mul add def /space outerwidth letterwidth 4 mul sub 5 div def /margin space def % radius drawOuter /drawOuter { gsave newpath linewidth setlinewidth radius 0 moveto outerwidth 0 outerwidth radius radius arcto outerwidth outerheight outerheight radius sub outerheight radius arcto 0 outerheight 0 outerheight radius sub radius arcto 0 0 radius 0 radius arcto closepath stroke grestore } def % r draw-circle -- draw circle centered at current point /draw-circle { 1 dict begin /r exch def currentpoint exch r sub exch r 0 360 arc end } def %%EndProlog %%Page: 1 1 %%PageBoundingBox: 0 0 128 105 .25 dup scale linewidth 2 div fullheight outerheight sub 2 div translate drawOuter gsave linewidth setlinewidth 1 setlinecap newpath % position to left of q margin outerheight 2 div moveto % draw q letterwidth letterwidth 2 div rmoveto letterwidth 2 div draw-circle 0 letterheight letterwidth 2 div add radius sub neg rlineto currentpoint radius sub % x1 y1 2 copy exch letterwidth add exch % x2 y2 radius arcto letterwidth 3 mul space 3 mul add radius 2 mul sub 0 rlineto currentpoint exch radius add exch 2 copy radius add radius arcto 0 letterheight rlineto % position to left of p margin letterwidth space add add outerheight 2 div moveto space fudge mul 0 rmoveto letterwidth letterwidth 2 div rmoveto letterwidth 2 div draw-circle letterwidth neg 0 rmoveto 0 letterheight letterwidth 2 div sub neg rlineto % position to left of d margin letterwidth space add 2 mul add outerheight 2 div moveto space fudge mul neg 0 rmoveto letterwidth letterwidth 2 div rmoveto letterwidth 2 div draw-circle 0 letterheight letterwidth 2 div sub rlineto % position to left of f margin letterwidth space add 3 mul add outerheight 2 div moveto % draw f currentpoint letterheight add 2 copy exch radius add exch radius arcto currentpoint exch radius sub letterwidth add exch 2 copy radius sub radius arcto letterwidth neg letterheight letterwidth sub radius sub linewidth 2 div add neg rmoveto letterwidth .8 mul 0 rlineto stroke grestore %%PageTrailer %%Trailer %%EOF qpdf-8.0.2/logo/qpdf.svg0000644000064100006410000000365313247541377013170 0ustar ejbejb qpdf-8.0.2/.travis.yml0000644000064100006410000000142513247541377012661 0ustar ejbejblanguage: cpp compiler: gcc sudo: require dist: trusty install: - sudo apt-get update -qq - sudo apt-get install -qq docbook-xsl fop xsltproc less inkscape script: - appimage/build-appimage after_success: - cd appimage/build - find ./appdir -executable -type f -exec ldd {} \; | grep " => /usr" | cut -d " " -f 2-3 | sort | uniq - ls -l # for more debugging in Travis' log - curl --upload-file ./qpdf*.AppImage https://transfer.sh/qpdf-git.$(git rev-parse --short HEAD)-x86_64.AppImage - sha512sum ./qpdf*.AppImage* # Not ready to have travis automatically create github releases # - wget -c https://github.com/probonopd/uploadtool/raw/master/upload.sh # - bash upload.sh qpdf-*x86_64.AppImage* # This should upload the .zsync file as well qpdf-8.0.2/make_windows_releases0000755000064100006410000000207513247541377015052 0ustar ejbejb#!/bin/sh if [ ! -d external-libs ]; then echo "Please extract qpdf-external-libs-bin.zip and try again" exit 2 fi if echo $PATH | grep -q /mingw64; then wordsize=64 else wordsize=32 fi if [ "$wordsize" = 64 ]; then if [ ! -f win.32 ]; then echo "Waiting for win.32 to appear" while [ ! -f win.32 ]; do sleep 5 done fi else rm -f win.32 win.64 echo '' echo "You may now start $0 in a 64-bit window." echo '' sleep 5 fi set -e set -x cwd=`pwd` PATH=$cwd/libqpdf/build:$PATH rm -rf install-mingw$wordsize install-msvc$wordsize ./config-msvc make -j8 make -k check || test $wordsize = 32 make install make distclean ./config-mingw make -j8 make -k check || test $wordsize = 32 make install make distclean touch win.$wordsize set +x echo "Finished builds for $wordsize." if [ "$wordsize" = 32 ]; then echo "If not done already, rerun this in a "`expr 96 - $wordsize`"-bit environment." echo '' else echo 'Running "./make_windows_releases-finish".' echo '' ./make_windows_releases-finish fi qpdf-8.0.2/configure.ac0000644000064100006410000003522213247541377013040 0ustar ejbejbdnl Process this file with autoconf to produce a configure script. dnl This config.in requires autoconf 2.5 or greater. AC_PREREQ([2.68]) AC_INIT([qpdf],[8.0.2]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_FILES([autoconf.mk]) AC_CONFIG_FILES([manual/html.xsl manual/print.xsl]) AC_CONFIG_FILES([libqpdf.pc]) AC_CONFIG_FILES([libqpdf.map]) AC_CONFIG_HEADERS([libqpdf/qpdf/qpdf-config.h]) AC_PROG_CC AC_PROG_CC_C99 AC_PROG_CXX AC_HEADER_STDC LT_INIT([win32-dll]) # * If any interfaces have been removed or changed, or if any private # member variables or virtual functions have been added to any # class, we are not binary compatible. Increment LT_CURRENT, and set # LT_AGE and LT_REVISION to 0. # # * Otherwise, if any interfaces have been added since the last public # release, then increment LT_CURRENT and LT_AGE, and set LT_REVISION # to 0. # # * Otherwise, increment LT_REVISION # LT = libtool LT_CURRENT=21 LT_AGE=0 LT_REVISION=2 AC_SUBST(LT_CURRENT) AC_SUBST(LT_REVISION) AC_SUBST(LT_AGE) LT_SONAME=$(expr $LT_CURRENT - $LT_AGE) AC_SUBST(LT_SONAME) AC_ARG_ENABLE(insecure-random, AS_HELP_STRING([--enable-insecure-random], [whether to use stdlib's random number generator (default is no)]), [if test "$enableval" = "yes"; then qpdf_INSECURE_RANDOM=1; else qpdf_INSECURE_RANDOM=0; fi], [qpdf_INSECURE_RANDOM=0]) if test "$qpdf_INSECURE_RANDOM" = "1"; then AC_MSG_RESULT(yes) AC_DEFINE([USE_INSECURE_RANDOM], [1], [Whether to use insecure random numbers]) else AC_MSG_RESULT(no) fi AC_ARG_ENABLE(os-secure-random, AS_HELP_STRING([--enable-os-secure-random], [whether to try to use OS-provided secure random numbers (default is yes)]), [if test "$enableval" = "yes"; then qpdf_OS_SECURE_RANDOM=1; else qpdf_OS_SECURE_RANDOM=0; fi], [qpdf_OS_SECURE_RANDOM=1]) if test "$qpdf_OS_SECURE_RANDOM" = "1"; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_DEFINE([SKIP_OS_SECURE_RANDOM], [1], [Whether to suppres use of OS-provided secure random numbers]) fi AX_RANDOM_DEVICE USE_EXTERNAL_LIBS=0 AC_MSG_CHECKING(for whether to use external libraries distribution) AC_ARG_ENABLE(external-libs, AS_HELP_STRING([--enable-external-libs], [whether to use external libraries distribution]), [if test "$enableval" = "yes"; then USE_EXTERNAL_LIBS=1; else USE_EXTERNAL_LIBS=0; fi], [BUILD_INTERNAL_LIBS=0]) if test "$BUILD_INTERNAL_LIBS" = "0"; then AC_MSG_RESULT(no) else AC_MSG_RESULT(yes) fi WINDOWS_WORDSIZE= AC_SUBST(WINDOWS_WORDSIZE) AC_ARG_WITH(windows-wordsize, AS_HELP_STRING([--with-windows-wordsize={32,64}], [Windows only: whether this is a 32-bit or 64-bit build; required if external-libs are enabled]), [WINDOWS_WORDSIZE=$withval], [WINDOWS_WORDSIZE=none]) if test "$USE_EXTERNAL_LIBS" = "1"; then AC_MSG_CHECKING(for windows wordsize) AC_MSG_RESULT($WINDOWS_WORDSIZE) if ! test "$WINDOWS_WORDSIZE" = "32" -o "$WINDOWS_WORDSIZE" = "64"; then AC_MSG_ERROR(Windows wordsize of 32 or 64 must be specified if external libs are being used.) fi fi if test "$BUILD_INTERNAL_LIBS" = "0"; then AC_CHECK_HEADER(zlib.h,,[MISSING_ZLIB_H=1; MISSING_ANY=1]) AC_SEARCH_LIBS(deflate,z zlib,,[MISSING_ZLIB=1; MISSING_ANY=1]) AC_CHECK_HEADER(jpeglib.h,,[MISSING_JPEG_H=1; MISSING_ANY=1]) AC_SEARCH_LIBS(jpeg_destroy,jpeg,,[MISSING_JPEG=1; MISSING_ANY=1]) fi if test "x$qpdf_OS_SECURE_RANDOM" = "x1"; then OLIBS=$LIBS LIBS="$LIBS Advapi32.lib" AC_MSG_CHECKING(for Advapi32 library) AC_LINK_IFELSE([AC_LANG_PROGRAM( [[#pragma comment(lib, "crypt32.lib") #include #include HCRYPTPROV cp;]], [CryptAcquireContext(&cp, NULL, NULL, PROV_RSA_FULL, 0);] )], [AC_MSG_RESULT(yes) LIBS="$OLIBS -lAdvapi32"], [AC_MSG_RESULT(no) LIBS=$OLIBS]) fi QPDF_LARGE_FILE_TEST_PATH= AC_SUBST(QPDF_LARGE_FILE_TEST_PATH) AC_ARG_WITH(large-file-test-path, AS_HELP_STRING([--with-large-file-test-path=path], [To enable testing of files > 4GB, give the path to a directory with at least 11 GB free. The test suite will write temporary files to this directory. Alternatively, just set the QPDF_LARGE_FILE_TEST_PATH environment variable to the path before running the test suite.]), [QPDF_LARGE_FILE_TEST_PATH=$withval], [QPDF_LARGE_FILE_TEST_PATH=]) AC_SYS_LARGEFILE AC_FUNC_FSEEKO AC_CHECK_FUNCS([fseeko64]) AC_TYPE_UINT16_T AC_TYPE_UINT32_T AC_CHECK_FUNCS(random) # Check if LD supports linker scripts, and define conditional # HAVE_LD_VERSION_SCRIPT if so. This functionality is currently # constrained to compilers using GNU ld on ELF systems or systems # which provide an adequate emulation thereof. AC_ARG_ENABLE([ld-version-script], AS_HELP_STRING([--enable-ld-version-script], [enable linker version script (default is enabled)]), [have_ld_version_script=$enableval], [have_ld_version_script=yes]) if test "$have_ld_version_script" != no; then AC_MSG_CHECKING([if LD -Wl,--version-script works]) save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map" cat > conftest.map <= 3.81 ($make_prog)) if $make_prog --version >/dev/null 2>&1; then v=`$make_prog --version | grep 'GNU Make' | sed -e 's/.*Make //'` maj=`echo $v | cut -d. -f 1` min=`echo $v | cut -d. -f 2` if test $maj -gt 3 -o '(' $maj -eq 3 -a $min -ge 81 ')'; then this_make_okay=1 make_okay=1 fi fi if test "$this_make_okay" = "1"; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi done if test "$make_okay" = "0"; then dnl Don't set MISSING_ANY=1 -- maybe user calls make something else MISSING_MAKE_381=1 ISSUE_WARNINGS=1 fi AC_SUBST(GENDEPS) GENDEPS=0 AC_MSG_CHECKING(for whether $CC supports -MD -MF x.dep -MP) oCFLAGS=$CFLAGS rm -f x.dep CFLAGS="$CFLAGS -MD -MF x.dep -MP" AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [[#include ]], [[FILE* a = stdout]] )], [qpdf_DEPFLAGS=yes], [qpdf_DEPFLAGS=no]) CFLAGS=$oCFLAGS if test "$qpdf_DEPFLAGS" = "yes"; then if ! grep stdio.h x.dep >/dev/null 2>&1; then qpdf_DEPFLAGS=no fi fi rm -f x.dep if test "$qpdf_DEPFLAGS" = "yes"; then AC_MSG_RESULT(yes) GENDEPS=1 else AC_MSG_RESULT(no) fi AC_MSG_CHECKING(which build rules to use) AC_SUBST(BUILDRULES) AC_ARG_WITH(buildrules, AS_HELP_STRING([--with-buildrules=rules], [which build rules to use; see README.md]), [BUILDRULES=$withval], [BUILDRULES=libtool]) AC_MSG_RESULT($BUILDRULES) AC_SUBST(WFLAGS) AC_SUBST(CXXWFLAGS) qpdf_USE_EXTRA_WARNINGS=0 if test "$BUILDRULES" = "msvc"; then dnl /w14996 makes warning 4996 a level 1 warning. This warning dnl reports on functions that Microsoft considers unsafe or dnl deprecated. Removing these warnings helps people who want to dnl write applications based on qpdf that can be Windows 8 dnl certified. try_flags="-w14996" else try_flags="-Wall" fi AC_MSG_CHECKING(for whether $CC supports $try_flags) oCFLAGS=$CFLAGS CFLAGS="$CFLAGS $try_flags" AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[int a = 1; int b = a; a = b;]])], [qpdf_USE_EXTRA_WARNINGS=1],[qpdf_USE_EXTRA_WARNINGS=0]) CFLAGS=$oCFLAGS if test "$qpdf_USE_EXTRA_WARNINGS" = "1"; then AC_MSG_RESULT(yes) WFLAGS="$try_flags" else AC_MSG_RESULT(no) fi if test "$BUILDRULES" != "msvc"; then qpdf_USE_EXTRA_WARNINGS=0 try_flags="-Wold-style-cast" AC_MSG_CHECKING(for whether $CXX supports $try_flags) oCXXFLAGS=$CXXFLAGS CXXFLAGS="$CXXFLAGS $try_flags" AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[int a = 1; int b = a; a = b;]])], [qpdf_USE_EXTRA_WARNINGS=1],[qpdf_USE_EXTRA_WARNINGS=0]) CXXFLAGS=$oCXXFLAGS if test "$qpdf_USE_EXTRA_WARNINGS" = "1"; then AC_MSG_RESULT(yes) CXXWFLAGS="$try_flags" else AC_MSG_RESULT(no) fi fi if test "$BUILDRULES" = "msvc"; then try_flags=-FS AC_MSG_CHECKING(for whether $CC supports $try_flags) oCFLAGS=$CFLAGS CFLAGS="$CFLAGS $try_flags" AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[int a = 1; int b = a; a = b;]])], [qpdf_USE_FS=1],[qpdf_USE_FS=0]) if test "$qpdf_USE_FS" = "1"; then AC_MSG_RESULT(yes) CXXFLAGS="$CXXFLAGS $try_flags" else AC_MSG_RESULT(no) CFLAGS=$oCFLAGS fi fi if test "$BUILDRULES" = "msvc"; then try_flags="-WX" else try_flags="-Werror" fi AC_MSG_CHECKING(for whether to use $try_flags) AC_ARG_ENABLE(werror, AS_HELP_STRING([--enable-werror], [whether to treat warnings as errors (default is no)]), [if test "$enableval" = "yes"; then qpdf_USE_WERROR=1; else qpdf_USE_WERROR=0; fi], [qpdf_USE_WERROR=0]) if test "$qpdf_USE_WERROR" = "1"; then AC_MSG_RESULT(yes) WFLAGS="$WFLAGS $try_flags" else AC_MSG_RESULT(no) fi AC_SUBST(QPDF_SKIP_TEST_COMPARE_IMAGES) AC_ARG_ENABLE(test-compare-images, AS_HELP_STRING([--enable-test-compare-images], [whether to compare images in test suite; disabled by default, enabling requires ghostscript and tiffcmp to be available]), [if test "$enableval" = "no"; then QPDF_SKIP_TEST_COMPARE_IMAGES=1 else QPDF_SKIP_TEST_COMPARE_IMAGES=0 fi], [QPDF_SKIP_TEST_COMPARE_IMAGES=1]) AC_SUBST(SHOW_FAILED_TEST_OUTPUT) AC_ARG_ENABLE(show-failed-test-output, AS_HELP_STRING([--enable-show-failed-test-output], [if specified, write failed test output to the console; useful for building on build servers where you can't easily open the test output files]), [if test "$enableval" = "no"; then SHOW_FAILED_TEST_OUTPUT=0 else SHOW_FAILED_TEST_OUTPUT=1 fi], [SHOW_FAILED_TEST_OUTPUT=0]) AC_ARG_WITH(docbook-xsl, AS_HELP_STRING([--with-docbook-xsl=DIR], [location of docbook 4.x xml stylesheets]), [DOCBOOK_XSL=$withval], [DOCBOOK_XSL=/usr/share/xml/docbook/stylesheet/nwalsh]) DOCBOOK_XHTML= AC_SUBST(DOCBOOK_XHTML) AC_MSG_CHECKING(for xml to xhtml docbook stylesheets) if test -f "$DOCBOOK_XSL/xhtml/docbook.xsl"; then DOCBOOK_XHTML="$DOCBOOK_XSL/xhtml/docbook.xsl" AC_MSG_RESULT($DOCBOOK_XHTML) else AC_MSG_RESULT(no) fi DOCBOOK_FO= AC_SUBST(DOCBOOK_FO) AC_MSG_CHECKING(for xml to fo docbook stylesheets) if test -f "$DOCBOOK_XSL/fo/docbook.xsl"; then DOCBOOK_FO="$DOCBOOK_XSL/fo/docbook.xsl" AC_MSG_RESULT($DOCBOOK_FO) else AC_MSG_RESULT(no) fi DOCBOOKX_DTD= AC_SUBST(DOCBOOKX_DTD) AC_ARG_WITH(docbookx-dtd, AS_HELP_STRING([--with-docbookx-dtd=FILE], [location of docbook 4.x xml DTD]), [DOCBOOKX_DTD=$withval], [DOCBOOKX_DTD=/usr/share/xml/docbook/schema/dtd/4/docbookx.dtd]) AC_MSG_CHECKING(for docbook 4.x xml DTD) if test -f "$DOCBOOKX_DTD"; then AC_MSG_RESULT($DOCBOOKX_DTD) else AC_MSG_RESULT(no) fi AC_CHECK_PROG(FOP,fop,fop,[]) AC_CHECK_PROG(XSLTPROC,xsltproc,xsltproc,[]) AC_CHECK_PROG(XMLLINT,xmllint,xmllint,[]) AC_ARG_ENABLE(doc-maintenance, AS_HELP_STRING([--enable-doc-maintenance], [if set, enables all documentation options]), [if test "$enableval" = "yes"; then doc_default=1; else doc_default=0; fi], [doc_default=0]) BUILD_HTML=0 AC_SUBST(BUILD_HTML) AC_ARG_ENABLE(html-doc, AS_HELP_STRING([--enable-html-doc], [whether to build HTML documents]), [if test "$enableval" = "yes"; then BUILD_HTML=1; else BUILD_HTML=0; fi], [BUILD_HTML=$doc_default]) BUILD_PDF=0 AC_SUBST(BUILD_PDF) AC_ARG_ENABLE(pdf-doc, AS_HELP_STRING([--enable-pdf-doc], [whether to build PDF documents]), [if test "$enableval" = "yes"; then BUILD_PDF=1; else BUILD_PDF=0; fi], [BUILD_PDF=$doc_default]) VALIDATE_DOC=0 AC_SUBST(VALIDATE_DOC) AC_ARG_ENABLE(validate-doc, AS_HELP_STRING([--enable-validate-doc], [whether to validate xml document source]), [if test "$enableval" = "yes"; then VALIDATE_DOC=1; else VALIDATE_DOC=0; fi], [VALIDATE_DOC=$doc_default]) if test "$VALIDATE_DOC" = "1"; then if test "$XMLLINT" = ""; then MISSING_XMLLINT=1 MISSING_ANY=1 fi fi if test "$BUILD_HTML" = "1"; then if test "$XSLTPROC" = ""; then MISSING_XSLTPROC=1 MISSING_ANY=1 fi if test "$DOCBOOK_XHTML" = ""; then MISSING_DOCBOOK_XHTML=1 MISSING_ANY=1 fi fi if test "$BUILD_PDF" = "1"; then if test "$XSLTPROC" = ""; then MISSING_XSLTPROC=1 MISSING_ANY=1 fi if test "$DOCBOOK_FO" = ""; then MISSING_DOCBOOK_FO=1 MISSING_ANY=1 fi if test "$FOP" = ""; then MISSING_FOP=1 MISSING_ANY=1 fi fi if test "$MISSING_ANY" = "1"; then ISSUE_WARNINGS=1 fi if test "$ISSUE_WARNINGS" = "1"; then echo "" echo "" fi if test "$MISSING_MAKE_381" = "1"; then AC_MSG_WARN(gnu make >= 3.81 is required) fi if test "$MISSING_ZLIB_H" = "1"; then AC_MSG_WARN(unable to find required header zlib.h) fi if test "$MISSING_ZLIB" = "1"; then AC_MSG_WARN(unable to find required library z (or zlib)) fi if test "$MISSING_JPEG_H" = "1"; then AC_MSG_WARN(unable to find required header jpeglib.h) fi if test "$MISSING_JPEG" = "1"; then AC_MSG_WARN(unable to find required library jpeg) fi if test "$MISSING_DOCBOOK_FO" = "1"; then AC_MSG_WARN(docbook fo stylesheets are required to build PDF documentation) fi if test "$MISSING_DOCBOOK_XHTML" = "1"; then AC_MSG_WARN(docbook xhmtl stylesheets are required to build HTML documentation) fi if test "$MISSING_FOP" = "1"; then AC_MSG_WARN(apache fop is required to build PDF documentation) fi if test "$MISSING_XMLLINT" = "1"; then AC_MSG_WARN(xmllint is required to validate documentation) fi if test "$MISSING_XSLTPROC" = "1"; then AC_MSG_WARN(xsltproc is required to build documentation) fi if test "$ISSUE_WARNINGS" = "1"; then echo "" echo "" fi if test "$MISSING_ANY" = "1"; then AC_MSG_ERROR(some required prerequisites were not found) fi # Do this last so it doesn't interfere with other tests. if test "$USE_EXTERNAL_LIBS" = "1"; then # Don't actually check for the presence of this -- we document that # the user can run this and then edit autoconf.mk if they have too # much trouble getting it to work with a different compiler. CPPFLAGS="$CPPFLAGS -Iexternal-libs/include" LDFLAGS="$LDFLAGS -Lexternal-libs/lib-$BUILDRULES$WINDOWS_WORDSIZE" LIBS="$LIBS -lz -ljpeg" fi AC_OUTPUT qpdf-8.0.2/Artistic-2.00000644000064100006410000002120213247541377012545 0ustar ejbejbArtistic License 2.0 Copyright (c) 2000-2006, The Perl Foundation. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble This license establishes the terms under which a given free software Package may be copied, modified, distributed, and/or redistributed. The intent is that the Copyright Holder maintains some artistic control over the development of that Package while still keeping the Package available as open source and free software. You are always permitted to make arrangements wholly outside of this license directly with the Copyright Holder of a given Package. If the terms of this license do not permit the full use that you propose to make of the Package, you should contact the Copyright Holder and seek a different licensing arrangement. Definitions "Copyright Holder" means the individual(s) or organization(s) named in the copyright notice for the entire Package. "Contributor" means any party that has contributed code or other material to the Package, in accordance with the Copyright Holder's procedures. "You" and "your" means any person who would like to copy, distribute, or modify the Package. "Package" means the collection of files distributed by the Copyright Holder, and derivatives of that collection and/or of those files. A given Package may consist of either the Standard Version, or a Modified Version. "Distribute" means providing a copy of the Package or making it accessible to anyone else, or in the case of a company or organization, to others outside of your company or organization. "Distributor Fee" means any fee that you charge for Distributing this Package or providing support for this Package to another party. It does not mean licensing fees. "Standard Version" refers to the Package if it has not been modified, or has been modified only in ways explicitly requested by the Copyright Holder. "Modified Version" means the Package, if it has been changed, and such changes were not explicitly requested by the Copyright Holder. "Original License" means this Artistic License as Distributed with the Standard Version of the Package, in its current version or as it may be modified by The Perl Foundation in the future. "Source" form means the source code, documentation source, and configuration files for the Package. "Compiled" form means the compiled bytecode, object code, binary, or any other form resulting from mechanical transformation or translation of the Source form. Permission for Use and Modification Without Distribution (1) You are permitted to use the Standard Version and create and use Modified Versions for any purpose without restriction, provided that you do not Distribute the Modified Version. Permissions for Redistribution of the Standard Version (2) You may Distribute verbatim copies of the Source form of the Standard Version of this Package in any medium without restriction, either gratis or for a Distributor Fee, provided that you duplicate all of the original copyright notices and associated disclaimers. At your discretion, such verbatim copies may or may not include a Compiled form of the Package. (3) You may apply any bug fixes, portability changes, and other modifications made available from the Copyright Holder. The resulting Package will still be considered the Standard Version, and as such will be subject to the Original License. Distribution of Modified Versions of the Package as Source (4) You may Distribute your Modified Version as Source (either gratis or for a Distributor Fee, and with or without a Compiled form of the Modified Version) provided that you clearly document how it differs from the Standard Version, including, but not limited to, documenting any non-standard features, executables, or modules, and provided that you do at least ONE of the following: (a) make the Modified Version available to the Copyright Holder of the Standard Version, under the Original License, so that the Copyright Holder may include your modifications in the Standard Version. (b) ensure that installation of your Modified Version does not prevent the user installing or running the Standard Version. In addition, the Modified Version must bear a name that is different from the name of the Standard Version. (c) allow anyone who receives a copy of the Modified Version to make the Source form of the Modified Version available to others under (i) the Original License or (ii) a license that permits the licensee to freely copy, modify and redistribute the Modified Version using the same licensing terms that apply to the copy that the licensee received, and requires that the Source form of the Modified Version, and of any works derived from it, be made freely available in that license fees are prohibited but Distributor Fees are allowed. Distribution of Compiled Forms of the Standard Version or Modified Versions without the Source (5) You may Distribute Compiled forms of the Standard Version without the Source, provided that you include complete instructions on how to get the Source of the Standard Version. Such instructions must be valid at the time of your distribution. If these instructions, at any time while you are carrying out such distribution, become invalid, you must provide new instructions on demand or cease further distribution. If you provide valid instructions or cease distribution within thirty days after you become aware that the instructions are invalid, then you do not forfeit any of your rights under this license. (6) You may Distribute a Modified Version in Compiled form without the Source, provided that you comply with Section 4 with respect to the Source of the Modified Version. Aggregating or Linking the Package (7) You may aggregate the Package (either the Standard Version or Modified Version) with other packages and Distribute the resulting aggregation provided that you do not charge a licensing fee for the Package. Distributor Fees are permitted, and licensing fees for other components in the aggregation are permitted. The terms of this license apply to the use and Distribution of the Standard or Modified Versions as included in the aggregation. (8) You are permitted to link Modified and Standard Versions with other works, to embed the Package in a larger work of your own, or to build stand-alone binary or bytecode versions of applications that include the Package, and Distribute the result without restriction, provided the result does not expose a direct interface to the Package. Items That are Not Considered Part of a Modified Version (9) Works (including, but not limited to, modules and scripts) that merely extend or make use of the Package, do not, by themselves, cause the Package to be a Modified Version. In addition, such works are not considered parts of the Package itself, and are not subject to the terms of this license. General Provisions (10) Any use, modification, and distribution of the Standard or Modified Versions is governed by this Artistic License. By using, modifying or distributing the Package, you accept this license. Do not use, modify, or distribute the Package, if you do not accept this license. (11) If your Modified Version has been derived from a Modified Version made by someone other than you, you are nevertheless required to ensure that your Modified Version complies with the requirements of this license. (12) This license does not grant you the right to use any trademark, service mark, tradename, or logo of the Copyright Holder. (13) This license includes the non-exclusive, worldwide, free-of-charge patent license to make, have made, use, offer to sell, sell, import and otherwise transfer the Package with respect to any patent claims licensable by the Copyright Holder that are necessarily infringed by the Package. If you institute patent litigation (including a cross-claim or counterclaim) against any party alleging that the Package constitutes direct or contributory patent infringement, then this Artistic License to you shall terminate on the date that such litigation is filed. (14) Disclaimer of Warranty: THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. qpdf-8.0.2/zlib-flate/0000755000064100006410000000000013247543020012562 5ustar ejbejbqpdf-8.0.2/zlib-flate/build.mk0000644000064100006410000000114713247541377014232 0ustar ejbejbTARGETS_zlib-flate = \ zlib-flate/$(OUTPUT_DIR)/$(call binname,zlib-flate) $(TARGETS_zlib-flate): $(TARGETS_libqpdf) INCLUDES_zlib-flate = include SRCS_zlib-flate = zlib-flate/zlib-flate.cc # ----- OBJS_zlib-flate = $(call src_to_obj,$(SRCS_zlib-flate)) ifeq ($(GENDEPS),1) -include $(call obj_to_dep,$(OBJS_zlib-flate)) endif $(OBJS_zlib-flate): zlib-flate/$(OUTPUT_DIR)/%.$(OBJ): zlib-flate/%.cc $(call compile,$<,$(INCLUDES_zlib-flate)) zlib-flate/$(OUTPUT_DIR)/$(call binname,zlib-flate): $(OBJS_zlib-flate) $(call makebin,$(OBJS_zlib-flate),$@,$(LDFLAGS) $(LDFLAGS_libqpdf),$(LIBS_libqpdf) $(LIBS)) qpdf-8.0.2/zlib-flate/Makefile0000644000064100006410000000003113247541377014231 0ustar ejbejbinclude ../make/proxy.mk qpdf-8.0.2/zlib-flate/qtest/0000755000064100006410000000000013247541377013737 5ustar ejbejbqpdf-8.0.2/zlib-flate/qtest/1.uncompressed0000644000064100006410000000042313247541377016527 0ustar ejbejbOnce upon a time there lived three qowws. They didn't like poridge much, so they had salad for breakfast. Goldilocks, upon breaking and entering, found this to be distasteful and so she just went away without eating any. This somewhat short-circuited the story. The End. qpdf-8.0.2/zlib-flate/qtest/zf.test0000644000064100006410000000123713247541377015262 0ustar ejbejb#!/usr/bin/env perl require 5.008; BEGIN { $^W = 1; } use strict; require TestDriver; my $td = new TestDriver('zlib-flate'); $td->runtest("compress", {$td->COMMAND => "zlib-flate -compress < 1.uncompressed"}, {$td->FILE => "1.compressed", $td->EXIT_STATUS => 0}); $td->runtest("uncompress", {$td->COMMAND => "zlib-flate -uncompress < 1.compressed"}, {$td->FILE => "1.uncompressed", $td->EXIT_STATUS => 0}); $td->runtest("error", {$td->COMMAND => "zlib-flate -uncompress < 1.uncompressed"}, {$td->REGEXP => "flate: inflate: data: .*\n", $td->EXIT_STATUS => 2}, $td->NORMALIZE_NEWLINES); $td->report(3); qpdf-8.0.2/zlib-flate/qtest/1.compressed0000644000064100006410000000030113247541377016157 0ustar ejbejbx%1r0E{wiE&e+ֲol7 ?50[*7%n8zߘ+c 'sxKCrxw$P*^ix4u!5|KHXu"O1'Ɖqav_GxV^z9V(MWWph>lI.~G"s4 |&aqpdf-8.0.2/zlib-flate/zlib-flate.cc0000644000064100006410000000305013247541377015135 0ustar ejbejb#include #include #include #include #include #include #include #include static char const* whoami = 0; void usage() { std::cerr << "Usage: " << whoami << " { -uncompress | -compress }" << std::endl; exit(2); } int main(int argc, char* argv[]) { if ((whoami = strrchr(argv[0], '/')) == NULL) { whoami = argv[0]; } else { ++whoami; } // For libtool's sake.... if (strncmp(whoami, "lt-", 3) == 0) { whoami += 3; } if ((argc == 2) && (strcmp(argv[1], "--version") == 0)) { std::cout << whoami << " version 1.0" << std::endl; exit(0); } if (argc != 2) { usage(); } Pl_Flate::action_e action = Pl_Flate::a_inflate; if ((strcmp(argv[1], "-uncompress") == 0)) { // okay } else if ((strcmp(argv[1], "-compress") == 0)) { action = Pl_Flate::a_deflate; } else { usage(); } QUtil::binary_stdout(); QUtil::binary_stdin(); Pl_StdioFile* out = new Pl_StdioFile("stdout", stdout); Pl_Flate* flate = new Pl_Flate("flate", out, action); try { unsigned char buf[10000]; bool done = false; while (! done) { size_t len = fread(buf, 1, sizeof(buf), stdin); if (len <= 0) { done = true; } else { flate->write(buf, len); } } flate->finish(); delete flate; delete out; } catch (std::exception& e) { std::cerr << e.what() << std::endl; exit(2); } return 0; } qpdf-8.0.2/Makefile0000644000064100006410000001046213247541377012211 0ustar ejbejb# This makefile is inspired by abuild (http://www.abuild.org), which # was used during the development of qpdf. The goal here is to have a # non-recursive build with all the proper dependencies so we can start # the build from anywhere and get the right stuff. Each directory has # a build.mk that is included from here and is written from this # directory's perspective. Each directory also has a proxy Makefile # that allows you to start the build from any directory and get # reasonable semantics for the all, check, and clean targets. # Our "build items" are directories. They are listed here such that # no item precedes any item it depends on. Therefore, each item can # safely reference variables set in its predecessors. # For each build item B, you can run make build_B, make check_B, or # make clean_B to build, test, or clean B. Full dependencies are # represented across all the items, so it is possible to start # anywhere. From the top level, the "all", "check", and "clean" # targets build, test, or clean everything. # To run test suites without rebuilding, pass NO_REBUILD=1 to the # build. This can be useful for testing binary interface compatibility # as it enables you to rebuild libraries and rerun tests without # relinking. # Although this is not a GNU package and does not use automake, you # can still run make clean to remove everything that is compiled, make # distclean to remove everything that is generated by the end user, # and make maintainer-clean to remove everything that is generated # including things distributed with the source distribution. You can # pass CLEAN=1 to prevent this Makefile from complaining if # ./configure has not been run. # The install target works as usual and obeys --prefix and so forth # passed to ./configure. You can also pass DESTDIR=/dir to make # install to install in a separate location. This is useful for # packagers. BUILD_ITEMS := manual libqpdf zlib-flate libtests qpdf examples OUTPUT_DIR = build ALL_TARGETS = .PHONY: default default: all CLEAN ?= ifneq ($(CLEAN),1) ifeq ($(words $(wildcard autoconf.mk)),0) DUMMY := $(shell echo 1>&2) DUMMY := $(shell echo 1>&2 Please run ./configure before running $(MAKE)) DUMMY := $(shell echo 1>&2) $(error unable to continue with build) endif autoconf.mk: include autoconf.mk endif # Prevent gnu make from trying to rebuild .dep files $(foreach B,$(BUILD_ITEMS),$(eval \ $(B)/$(OUTPUT_DIR)/%.dep: ;)) # Prevent gnu make from trying to rebuild .mk files $(foreach B,$(BUILD_ITEMS),$(eval \ $(B)/%.mk: ;)) %.mk: ; make/%.mk: ; BUILDRULES ?= libtool include make/rules.mk DUMMY := $(shell mkdir $(foreach B,$(BUILD_ITEMS),$(B)/$(OUTPUT_DIR)) 2>/dev/null) include $(foreach B,$(BUILD_ITEMS),$(B)/build.mk) ALL_TARGETS = $(foreach B,$(BUILD_ITEMS),$(TARGETS_$(B))) TEST_ITEMS = $(foreach D,\ $(wildcard $(foreach B,$(BUILD_ITEMS),$(B)/qtest)),\ $(subst /,,$(dir $(D)))) TEST_TARGETS = $(foreach B,$(TEST_ITEMS),check_$(B)) CLEAN_TARGETS = $(foreach B,$(BUILD_ITEMS),clean_$(B)) # For test suites export QPDF_BIN = $(abspath qpdf/$(OUTPUT_DIR)/qpdf) export QPDF_SKIP_TEST_COMPARE_IMAGES export QPDF_LARGE_FILE_TEST_PATH clean:: $(CLEAN_TARGETS) $(RM) -r appimage/build .PHONY: $(CLEAN_TARGETS) $(foreach B,$(BUILD_ITEMS),$(eval \ clean_$(B): ; \ $(RM) -r $(B)/$(OUTPUT_DIR))) AUTOFILES = configure aclocal.m4 libqpdf/qpdf/qpdf-config.h.in autofiles.zip: $(AUTOFILES) $(RM) autofiles.zip zip autofiles.zip $(AUTOFILES) distclean: clean $(RM) -r autoconf.mk autom4te.cache config.log config.status libtool $(RM) libqpdf/qpdf/qpdf-config.h $(RM) manual/html.xsl $(RM) manual/print.xsl $(RM) doc/*.1 $(RM) libqpdf.pc libqpdf.map maintainer-clean: distclean $(RM) configure doc/qpdf-manual.* libqpdf/qpdf/qpdf-config.h.in $(RM) aclocal.m4 $(RM) -r install-mingw install-msvc external-libs $(RM) autofiles.zip .PHONY: $(TEST_TARGETS) NO_REBUILD ?= ifneq ($(NO_REBUILD),1) $(foreach B,$(TEST_ITEMS),$(eval \ check_$(B): $(TARGETS_$(B)))) endif .PHONY: $(foreach B,$(BUILD_ITEMS),build_$(B)) $(foreach B,$(BUILD_ITEMS),$(eval \ build_$(B): $(TARGETS_$(B)))) .PHONY: all all: $(ALL_TARGETS) ; check: $(TEST_TARGETS) # Install targets are in the make directory in the rules-specific make # fragments. QTEST=$(abspath qtest/bin/qtest-driver) $(TEST_TARGETS): $(call run_qtest,$(subst check_,,$@)) qpdf-8.0.2/aclocal.m40000644000064100006410000000152113247542727012405 0ustar ejbejb# generated automatically by aclocal 1.15 -*- Autoconf -*- # Copyright (C) 1996-2014 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_include([m4/ax_random_device.m4]) m4_include([m4/libtool.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) m4_include([m4/ltversion.m4]) m4_include([m4/lt~obsolete.m4]) qpdf-8.0.2/config-mingw0000755000064100006410000000037413247541377013064 0ustar ejbejb#!/bin/sh set -e set -x if echo $PATH | grep -q /mingw64; then wordsize=64 else wordsize=32 fi ./configure --disable-test-compare-images --enable-external-libs --enable-werror --with-windows-wordsize=$wordsize --with-buildrules=mingw ${1+"$@"} qpdf-8.0.2/README-windows.md0000644000064100006410000002232713247541377013523 0ustar ejbejbCommon Setup ============ You may need to disable antivirus software to run qpdf's test suite. Running Windows Defender on Windows 10 does not interfere with building or running qpdf or its test suite. To be able to build qpdf and run its test suite, you must have MSYS2 installed. This replaces the old process of having a mixture of msys, mingw-w64, and ActiveState perl. It is now possible to do everything with just MSYS2. Here's what I did on my system: * Download msys2 (64-bit) from msys2.org * Run the installer. * Run msys2_shell.cmd by allowing the installer to start it. * From the prompt: * Run `pacman -Syuu` and follow the instructions, which may tell you to close the window and rerun the command multiple times. * `pacman -S make base-devel git zip unzip` * `pacman -S mingw-w64-x86_64-toolchain mingw-w64-i686-toolchain` If you would like to build with Microsoft Visual C++, install a suitable Microsoft Visual Studio edition. In early 2016, 2015 community edition with C++ support is fine. It may crash a few times during installation, but repeating the installation will allow it to finish, and the resulting software is stable. To build qpdf with Visual Studio, start the msys2 mingw32 or mingw64 shell from a command window started from one of the Visual Studio shell windows. You must use the mingw shell for the same word size (32 or 64 bit) as the Windows compiler since the MSVC build uses objdump from the msys distribution. You must also have it inherit the path. For example: * Start x64 native tools command prompt from msvc * `set MSYS2_PATH_TYPE=inherit` * `C:\msys64\mingw64` Image comparison tests are disabled by default, but it is possible to run them on Windows. To do so, add `--enable-test-compare-images` from the configure statements given below and install some additional third-party dependencies. These may be provided in an environment such as MSYS or Cygwin or can be downloaded separately for other environments. You may extract or install the following software into separate folders each and add the `bin` folder to your `PATH` environment variable to make executables and DLLs available. If installers are provided, they might do that already by default. * [LibJpeg](http://gnuwin32.sourceforge.net/packages/jpeg.htm): This archive provides some needed DLLs needed by LibTiff. * [LibTiff](http://gnuwin32.sourceforge.net/packages/tiff.htm): This archive provides some needed binaries and DLLs if you want to use the image comparison tests. It depends on some DLLs from LibJpeg. * [GhostScript](http://www.ghostscript.com/download/gsdnld.html): GhostScript is needed for image comparison tests. It's important that the binary is available as `gs`, while its default name is `gswin32[c].exe`. You can either copy one of the original files, use `mklink` to create a hard/softlink, or provide a custom `gs.cmd` wrapper that forwards all arguments to one of the original binaries. Using `mklink` with `gswin32c.exe` is probably the best choice. # External Libraries In order to build qpdf, you must have a copy of `zlib` and the `jpeg` library. The easy way to get it is to download the external libs from the qpdf download area. There are packages called `external-libs-bin.zip` and `external-libs-src.zip`. If you are building with MSVC 2015 or MINGW with MSYS2, you can just extract the `qpdf-external-libs-bin.zip` zip file into the top-level qpdf source tree. Note that you need the 2017-08-21 version (at least) to build qpdf 7.0 or greater since this includes jpeg. Passing `--enable-external-libs` to `./configure` (which is done automatically if you follow the instructions below) is sufficient to find them. You can also obtain `zlib` and `jpeg` directly on your own and install them. If you are using mingw, you can just set `CPPFLAGS`, `LDFLAGS`, and `LIBS` when you run ./configure so that it can find the header files and libraries. If you are building with MSVC and you want to do this, it probably won't work because `./configure` doesn't know how to interpret `LDFLAGS` and `LIBS` properly for MSVC (though qpdf's own build system does). In this case, you can probably get away with cheating by passing `--enable-external-libs` to `./configure` and then just editing `CPPFLAGS`, `LDFLAGS`, `LIBS` in the generated autoconf.mk file. Note that you should use UNIX-like syntax (`-I`, `-L`, `-l`) even though this is not what cl takes on the command line. qpdf's build rules will fix it. You can also download `qpdf-external-libs-src.zip` and follow the instructions in the README.txt there for how to build external libs. # Building from version control If you check out qpdf from version control, you will not have the files that are generated by autoconf. If you are not changing these files, you can grab them from a source distribution or create them from a system that has autoconf. To create them from scratch, run `./autogen.sh` on a system that has autoconf installed. Once you have them, you can run `make CLEAN=1 autofiles.zip`. This will create an autofiles.zip that you can extract on top of a fresh checkout. # Building with MinGW QPDF is known to build and pass its test suite with MSYS2 using the 32-bit and 64-bit compilers. MSYS2 is required to build as well in order to get make and other related tools. See common setup at the top of this file for installation and configuration of MSYS2. Then, from the suitable 32-bit or 64-bit environment, run ``` ./config-mingw make ``` Note that `./config-mingw` just runs `./configure` with specific arguments, so you can look at it, make adjustments, and manually run configure instead. Add the absolute path to the `libqpdf/build` directory to your `PATH`. Make sure you can run the qpdf command by typing qpdf/build/qpdf and making sure you get a help message rather than an error loading the DLL or no output at all. Run the test suite by typing ``` make check ``` If all goes well, you should get a passing test suite. To create an installation directory, run `make install`. This will create `install-mingw/qpdf-VERSION` and populate it. The binary download of qpdf for Windows with mingw is created from this directory. You can also take a look at `make_windows_releases` for reference. This is how the distributed Windows executables are created. # Building with MSVC 2015 These instructions would likely work with newer versions of MSVC and are known to have worked with versions as old as 2008 Express. You should first set up your environment to be able to run MSVC from the command line. There is usually a batch file included with MSVC that does this. Make sure that you start a command line environment configured for whichever of 32-bit or 64-bit output that you intend to build for. From that cmd prompt, you can start your MSYS2 shell with path inheritance as described above. Configure and build as follows: ``` ./config-msvc make ``` Note that `./config-msvc` just runs `./configure` with specific arguments, so you can look at it, make adjustments, and manually run configure instead. NOTE: automated dependencies are not generated with the msvc build. If you're planning on making modifications, you should probably work with mingw. If there is a need, I can add dependency information to the msvc build, but since I only use it for generating release versions, I haven't bothered. Once built, add the full path to the `libqpdf/build` directory to your path and run ``` make check ``` to run the test suite. If you are building with MSVC and want to debug a crash in MSVC's debugger, first start an instance of Visual C++. Then run qpdf. When the abort/retry/ignore dialog pops up, first attach the process from within visual C++, and then click Retry in qpdf. A release version of qpdf is built by default. If you want to link against debugging libraries, you will have to change `/MD` to `/MDd` in `make/msvc.mk`. Note that you must redistribute the Microsoft runtime DLLs. Linking with static runtime (`/MT`) won't work; see "Static Runtime" below for details. # Runtime DLLs Both build methods create executables and DLLs that are dependent on the compiler's runtime DLLs. When you run make install, the installation process will automatically detect the DLLs and copy them into the installation bin directory. Look at the `copy_dlls` script for details on how this is accomplished. Redistribution of the runtime DLL is unavoidable as of this writing; see "Static Runtime" below for details. # Static Runtime Building the DLL and executables with static runtime does not work with either Visual C++ .NET 2008 (a.k.a. vc9) using `/MT` or with mingw (at least as of 4.4.0) using `-static-libgcc`. The reason is that, in both cases, there is static data involved with exception handling, and when the runtime is linked in statically, exceptions cannot be thrown across the DLL to EXE boundary. Since qpdf uses exception handling extensively for error handling, we have no choice but to redistribute the C++ runtime DLLs. Maybe this will be addressed in a future version of the compilers. This has not been retested with the toolchain versions used to create qpdf >= 3.0 distributions. This has not been revisited since MSVC 2008, but redistributing runtime DLLs is extremely common and should not be a problem. qpdf-8.0.2/make_dist0000755000064100006410000000537113247541377012442 0ustar ejbejb#!/usr/bin/env perl # # This program creates a source distribution of qpdf. For details, # see README-maintainer.md. # require 5.008; use warnings; use strict; use File::Basename; use Cwd; use Cwd 'abs_path'; use IO::File; my $whoami = basename($0); my $srcdir = basename(dirname($0)); my $pwd = getcwd(); usage() unless $pwd eq abs_path(dirname(dirname($0))); my $run_tests = 1; foreach my $arg (@ARGV) { if ($arg eq '--no-tests') { $run_tests = 0; } else { usage(); } } usage() unless $srcdir =~ m/^qpdf-(\d+\.\d+(?:\.(a|b|rc)?\d+)?)$/; my $version = $1; cd($srcdir); # Check versions my $fh = safe_open("configure.ac"); my $config_version = 'unknown'; while (<$fh>) { if (m/^AC_INIT\(\[qpdf\],\[([^\)]+)\]\)/) { $config_version = $1; last; } } $fh->close(); $fh = safe_open("libqpdf/QPDF.cc"); my $code_version = 'unknown'; while (<$fh>) { if (m/QPDF::qpdf_version = \"([^\"]+)\"/) { $code_version = $1; last; } } $fh->close(); $fh = safe_open("manual/qpdf-manual.xml"); my $doc_version = 'unknown'; while (<$fh>) { if (m/swversion "([^\"]+)\"/) { $doc_version = $1; last; } } $fh->close(); my $version_error = 0; if ($version ne $config_version) { print "$whoami: configure.ac version = $config_version\n"; $version_error = 1; } if ($version ne $code_version) { print "$whoami: QPDF.cc version = $code_version\n"; $version_error = 1; } if ($version ne $doc_version) { print "$whoami: qpdf-manual.xml version = $doc_version\n"; $version_error = 1; } if ($version_error) { die "$whoami: version numbers are not consistent\n"; } run("./autogen.sh"); run("./configure --enable-doc-maintenance --enable-werror"); run("make -j8 build_manual"); run("make distclean"); cd($pwd); run("tar czvf $srcdir.tar.gz-candidate $srcdir"); if ($run_tests) { cd($srcdir); run("./configure"); run("make -j8"); run("make check"); cd($pwd); } rename "$srcdir.tar.gz-candidate", "$srcdir.tar.gz" or die; print " Source distribution created as $srcdir.tar.gz You can now remove $srcdir. If this is a release, don't forget to tag the version control system and make a backup of the release tar file. "; sub safe_open { my $file = shift; my $fh = new IO::File("<$file") or die "$whoami: can't open $file: $!"; $fh; } sub run { my $cmd = shift; system($cmd) == 0 or die "$whoami: $cmd failed\n"; } sub cd { my $dir = shift; chdir($dir) or die; } sub usage { die " Usage: $whoami [ --no-tests ] $whoami must be run from the parent of a directory called qpdf- which must contain a pristine export of that version of qpdf from the version control system. Use of --no-tests can be used for internally testing releases, but do not use it for a real release. "; } qpdf-8.0.2/ltmain.sh0000644000064100006410000117147413247541377012405 0ustar ejbejb#! /bin/sh ## DO NOT EDIT - This file generated from ./build-aux/ltmain.in ## by inline-source v2014-01-03.01 # libtool (GNU libtool) 2.4.6 # Provide generalized library-building support services. # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996-2015 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool 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. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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, see . PROGRAM=libtool PACKAGE=libtool VERSION="2.4.6 Debian-2.4.6-2" package_revision=2.4.6 ## ------ ## ## Usage. ## ## ------ ## # Run './libtool --help' for help with using this script from the # command line. ## ------------------------------- ## ## User overridable command paths. ## ## ------------------------------- ## # After configure completes, it has a better idea of some of the # shell tools we need than the defaults used by the functions shared # with bootstrap, so set those here where they can still be over- # ridden by the user, but otherwise take precedence. : ${AUTOCONF="autoconf"} : ${AUTOMAKE="automake"} ## -------------------------- ## ## Source external libraries. ## ## -------------------------- ## # Much of our low-level functionality needs to be sourced from external # libraries, which are installed to $pkgauxdir. # Set a version string for this script. scriptversion=2015-01-20.17; # UTC # General shell script boiler plate, and helper functions. # Written by Gary V. Vaughan, 2004 # Copyright (C) 2004-2015 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # 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 3 of the License, or # (at your option) any later version. # As a special exception to the GNU General Public License, if you distribute # this file as part of a program or library that is built using GNU Libtool, # you may include this file under the same distribution terms that you use # for the rest of that program. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNES 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, see . # Please report bugs or propose patches to gary@gnu.org. ## ------ ## ## Usage. ## ## ------ ## # Evaluate this file near the top of your script to gain access to # the functions and variables defined here: # # . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh # # If you need to override any of the default environment variable # settings, do that before evaluating this file. ## -------------------- ## ## Shell normalisation. ## ## -------------------- ## # Some shells need a little help to be as Bourne compatible as possible. # Before doing anything else, make sure all that help has been provided! DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # NLS nuisances: We save the old values in case they are required later. _G_user_locale= _G_safe_locale= for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test set = \"\${$_G_var+set}\"; then save_$_G_var=\$$_G_var $_G_var=C export $_G_var _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" fi" done # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Make sure IFS has a sensible default sp=' ' nl=' ' IFS="$sp $nl" # There are apparently some retarded systems that use ';' as a PATH separator! if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi ## ------------------------- ## ## Locate command utilities. ## ## ------------------------- ## # func_executable_p FILE # ---------------------- # Check that FILE is an executable regular file. func_executable_p () { test -f "$1" && test -x "$1" } # func_path_progs PROGS_LIST CHECK_FUNC [PATH] # -------------------------------------------- # Search for either a program that responds to --version with output # containing "GNU", or else returned by CHECK_FUNC otherwise, by # trying all the directories in PATH with each of the elements of # PROGS_LIST. # # CHECK_FUNC should accept the path to a candidate program, and # set $func_check_prog_result if it truncates its output less than # $_G_path_prog_max characters. func_path_progs () { _G_progs_list=$1 _G_check_func=$2 _G_PATH=${3-"$PATH"} _G_path_prog_max=0 _G_path_prog_found=false _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} for _G_dir in $_G_PATH; do IFS=$_G_save_IFS test -z "$_G_dir" && _G_dir=. for _G_prog_name in $_G_progs_list; do for _exeext in '' .EXE; do _G_path_prog=$_G_dir/$_G_prog_name$_exeext func_executable_p "$_G_path_prog" || continue case `"$_G_path_prog" --version 2>&1` in *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; *) $_G_check_func $_G_path_prog func_path_progs_result=$func_check_prog_result ;; esac $_G_path_prog_found && break 3 done done done IFS=$_G_save_IFS test -z "$func_path_progs_result" && { echo "no acceptable sed could be found in \$PATH" >&2 exit 1 } } # We want to be able to use the functions in this file before configure # has figured out where the best binaries are kept, which means we have # to search for them ourselves - except when the results are already set # where we skip the searches. # Unless the user overrides by setting SED, search the path for either GNU # sed, or the sed that truncates its output the least. test -z "$SED" && { _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for _G_i in 1 2 3 4 5 6 7; do _G_sed_script=$_G_sed_script$nl$_G_sed_script done echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed _G_sed_script= func_check_prog_sed () { _G_path_prog=$1 _G_count=0 printf 0123456789 >conftest.in while : do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo '' >> conftest.nl "$_G_path_prog" -f conftest.sed conftest.out 2>/dev/null || break diff conftest.out conftest.nl >/dev/null 2>&1 || break _G_count=`expr $_G_count + 1` if test "$_G_count" -gt "$_G_path_prog_max"; then # Best one so far, save it but keep looking for a better one func_check_prog_result=$_G_path_prog _G_path_prog_max=$_G_count fi # 10*(2^10) chars as input seems more than enough test 10 -lt "$_G_count" && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out } func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin rm -f conftest.sed SED=$func_path_progs_result } # Unless the user overrides by setting GREP, search the path for either GNU # grep, or the grep that truncates its output the least. test -z "$GREP" && { func_check_prog_grep () { _G_path_prog=$1 _G_count=0 _G_path_prog_max=0 printf 0123456789 >conftest.in while : do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo 'GREP' >> conftest.nl "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' conftest.out 2>/dev/null || break diff conftest.out conftest.nl >/dev/null 2>&1 || break _G_count=`expr $_G_count + 1` if test "$_G_count" -gt "$_G_path_prog_max"; then # Best one so far, save it but keep looking for a better one func_check_prog_result=$_G_path_prog _G_path_prog_max=$_G_count fi # 10*(2^10) chars as input seems more than enough test 10 -lt "$_G_count" && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out } func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin GREP=$func_path_progs_result } ## ------------------------------- ## ## User overridable command paths. ## ## ------------------------------- ## # All uppercase variable names are used for environment variables. These # variables can be overridden by the user before calling a script that # uses them if a suitable command of that name is not already available # in the command search PATH. : ${CP="cp -f"} : ${ECHO="printf %s\n"} : ${EGREP="$GREP -E"} : ${FGREP="$GREP -F"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} ## -------------------- ## ## Useful sed snippets. ## ## -------------------- ## sed_dirname='s|/[^/]*$||' sed_basename='s|^.*/||' # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='s|\([`"$\\]\)|\\\1|g' # Same as above, but do not quote variable references. sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution that turns a string into a regex matching for the # string literally. sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' # Sed substitution that converts a w32 file name or path # that contains forward slashes, into one that contains # (escaped) backslashes. A very naive implementation. sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Re-'\' parameter expansions in output of sed_double_quote_subst that # were '\'-ed in input to the same. If an odd number of '\' preceded a # '$' in input to sed_double_quote_subst, that '$' was protected from # expansion. Since each input '\' is now two '\'s, look for any number # of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. _G_bs='\\' _G_bs2='\\\\' _G_bs4='\\\\\\\\' _G_dollar='\$' sed_double_backslash="\ s/$_G_bs4/&\\ /g s/^$_G_bs2$_G_dollar/$_G_bs&/ s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g s/\n//g" ## ----------------- ## ## Global variables. ## ## ----------------- ## # Except for the global variables explicitly listed below, the following # functions in the '^func_' namespace, and the '^require_' namespace # variables initialised in the 'Resource management' section, sourcing # this file will not pollute your global namespace with anything # else. There's no portable way to scope variables in Bourne shell # though, so actually running these functions will sometimes place # results into a variable named after the function, and often use # temporary variables in the '^_G_' namespace. If you are careful to # avoid using those namespaces casually in your sourcing script, things # should continue to work as you expect. And, of course, you can freely # overwrite any of the functions or variables defined here before # calling anything to customize them. EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. # Allow overriding, eg assuming that you follow the convention of # putting '$debug_cmd' at the start of all your functions, you can get # bash to show function call trace with: # # debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name debug_cmd=${debug_cmd-":"} exit_cmd=: # By convention, finish your script with: # # exit $exit_status # # so that you can set exit_status to non-zero if you want to indicate # something went wrong during execution without actually bailing out at # the point of failure. exit_status=$EXIT_SUCCESS # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath=$0 # The name of this program. progname=`$ECHO "$progpath" |$SED "$sed_basename"` # Make sure we have an absolute progpath for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` progdir=`cd "$progdir" && pwd` progpath=$progdir/$progname ;; *) _G_IFS=$IFS IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS=$_G_IFS test -x "$progdir/$progname" && break done IFS=$_G_IFS test -n "$progdir" || progdir=`pwd` progpath=$progdir/$progname ;; esac ## ----------------- ## ## Standard options. ## ## ----------------- ## # The following options affect the operation of the functions defined # below, and should be set appropriately depending on run-time para- # meters passed on the command line. opt_dry_run=false opt_quiet=false opt_verbose=false # Categories 'all' and 'none' are always available. Append any others # you will pass as the first argument to func_warning from your own # code. warning_categories= # By default, display warnings according to 'opt_warning_types'. Set # 'warning_func' to ':' to elide all warnings, or func_fatal_error to # treat the next displayed warning as a fatal error. warning_func=func_warn_and_continue # Set to 'all' to display all warnings, 'none' to suppress all # warnings, or a space delimited list of some subset of # 'warning_categories' to display only the listed warnings. opt_warning_types=all ## -------------------- ## ## Resource management. ## ## -------------------- ## # This section contains definitions for functions that each ensure a # particular resource (a file, or a non-empty configuration variable for # example) is available, and if appropriate to extract default values # from pertinent package files. Call them using their associated # 'require_*' variable to ensure that they are executed, at most, once. # # It's entirely deliberate that calling these functions can set # variables that don't obey the namespace limitations obeyed by the rest # of this file, in order that that they be as useful as possible to # callers. # require_term_colors # ------------------- # Allow display of bold text on terminals that support it. require_term_colors=func_require_term_colors func_require_term_colors () { $debug_cmd test -t 1 && { # COLORTERM and USE_ANSI_COLORS environment variables take # precedence, because most terminfo databases neglect to describe # whether color sequences are supported. test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} if test 1 = "$USE_ANSI_COLORS"; then # Standard ANSI escape sequences tc_reset='' tc_bold=''; tc_standout='' tc_red=''; tc_green='' tc_blue=''; tc_cyan='' else # Otherwise trust the terminfo database after all. test -n "`tput sgr0 2>/dev/null`" && { tc_reset=`tput sgr0` test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` tc_standout=$tc_bold test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` } fi } require_term_colors=: } ## ----------------- ## ## Function library. ## ## ----------------- ## # This section contains a variety of useful functions to call in your # scripts. Take note of the portable wrappers for features provided by # some modern shells, which will fall back to slower equivalents on # less featureful shells. # func_append VAR VALUE # --------------------- # Append VALUE onto the existing contents of VAR. # We should try to minimise forks, especially on Windows where they are # unreasonably slow, so skip the feature probes when bash or zsh are # being used: if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then : ${_G_HAVE_ARITH_OP="yes"} : ${_G_HAVE_XSI_OPS="yes"} # The += operator was introduced in bash 3.1 case $BASH_VERSION in [12].* | 3.0 | 3.0*) ;; *) : ${_G_HAVE_PLUSEQ_OP="yes"} ;; esac fi # _G_HAVE_PLUSEQ_OP # Can be empty, in which case the shell is probed, "yes" if += is # useable or anything else if it does not work. test -z "$_G_HAVE_PLUSEQ_OP" \ && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ && _G_HAVE_PLUSEQ_OP=yes if test yes = "$_G_HAVE_PLUSEQ_OP" then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_append () { $debug_cmd eval "$1+=\$2" }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_append () { $debug_cmd eval "$1=\$$1\$2" } fi # func_append_quoted VAR VALUE # ---------------------------- # Quote VALUE and append to the end of shell variable VAR, separated # by a space. if test yes = "$_G_HAVE_PLUSEQ_OP"; then eval 'func_append_quoted () { $debug_cmd func_quote_for_eval "$2" eval "$1+=\\ \$func_quote_for_eval_result" }' else func_append_quoted () { $debug_cmd func_quote_for_eval "$2" eval "$1=\$$1\\ \$func_quote_for_eval_result" } fi # func_append_uniq VAR VALUE # -------------------------- # Append unique VALUE onto the existing contents of VAR, assuming # entries are delimited by the first character of VALUE. For example: # # func_append_uniq options " --another-option option-argument" # # will only append to $options if " --another-option option-argument " # is not already present somewhere in $options already (note spaces at # each end implied by leading space in second argument). func_append_uniq () { $debug_cmd eval _G_current_value='`$ECHO $'$1'`' _G_delim=`expr "$2" : '\(.\)'` case $_G_delim$_G_current_value$_G_delim in *"$2$_G_delim"*) ;; *) func_append "$@" ;; esac } # func_arith TERM... # ------------------ # Set func_arith_result to the result of evaluating TERMs. test -z "$_G_HAVE_ARITH_OP" \ && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ && _G_HAVE_ARITH_OP=yes if test yes = "$_G_HAVE_ARITH_OP"; then eval 'func_arith () { $debug_cmd func_arith_result=$(( $* )) }' else func_arith () { $debug_cmd func_arith_result=`expr "$@"` } fi # func_basename FILE # ------------------ # Set func_basename_result to FILE with everything up to and including # the last / stripped. if test yes = "$_G_HAVE_XSI_OPS"; then # If this shell supports suffix pattern removal, then use it to avoid # forking. Hide the definitions single quotes in case the shell chokes # on unsupported syntax... _b='func_basename_result=${1##*/}' _d='case $1 in */*) func_dirname_result=${1%/*}$2 ;; * ) func_dirname_result=$3 ;; esac' else # ...otherwise fall back to using sed. _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` if test "X$func_dirname_result" = "X$1"; then func_dirname_result=$3 else func_append func_dirname_result "$2" fi' fi eval 'func_basename () { $debug_cmd '"$_b"' }' # func_dirname FILE APPEND NONDIR_REPLACEMENT # ------------------------------------------- # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. eval 'func_dirname () { $debug_cmd '"$_d"' }' # func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT # -------------------------------------------------------- # Perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # For efficiency, we do not delegate to the functions above but instead # duplicate the functionality here. eval 'func_dirname_and_basename () { $debug_cmd '"$_b"' '"$_d"' }' # func_echo ARG... # ---------------- # Echo program name prefixed message. func_echo () { $debug_cmd _G_message=$* func_echo_IFS=$IFS IFS=$nl for _G_line in $_G_message; do IFS=$func_echo_IFS $ECHO "$progname: $_G_line" done IFS=$func_echo_IFS } # func_echo_all ARG... # -------------------- # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } # func_echo_infix_1 INFIX ARG... # ------------------------------ # Echo program name, followed by INFIX on the first line, with any # additional lines not showing INFIX. func_echo_infix_1 () { $debug_cmd $require_term_colors _G_infix=$1; shift _G_indent=$_G_infix _G_prefix="$progname: $_G_infix: " _G_message=$* # Strip color escape sequences before counting printable length for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" do test -n "$_G_tc" && { _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` } done _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes func_echo_infix_1_IFS=$IFS IFS=$nl for _G_line in $_G_message; do IFS=$func_echo_infix_1_IFS $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 _G_prefix=$_G_indent done IFS=$func_echo_infix_1_IFS } # func_error ARG... # ----------------- # Echo program name prefixed message to standard error. func_error () { $debug_cmd $require_term_colors func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 } # func_fatal_error ARG... # ----------------------- # Echo program name prefixed message to standard error, and exit. func_fatal_error () { $debug_cmd func_error "$*" exit $EXIT_FAILURE } # func_grep EXPRESSION FILENAME # ----------------------------- # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $debug_cmd $GREP "$1" "$2" >/dev/null 2>&1 } # func_len STRING # --------------- # Set func_len_result to the length of STRING. STRING may not # start with a hyphen. test -z "$_G_HAVE_XSI_OPS" \ && (eval 'x=a/b/c; test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ && _G_HAVE_XSI_OPS=yes if test yes = "$_G_HAVE_XSI_OPS"; then eval 'func_len () { $debug_cmd func_len_result=${#1} }' else func_len () { $debug_cmd func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` } fi # func_mkdir_p DIRECTORY-PATH # --------------------------- # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { $debug_cmd _G_directory_path=$1 _G_dir_list= if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then # Protect directory names starting with '-' case $_G_directory_path in -*) _G_directory_path=./$_G_directory_path ;; esac # While some portion of DIR does not yet exist... while test ! -d "$_G_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. _G_dir_list=$_G_directory_path:$_G_dir_list # If the last portion added has no slash in it, the list is done case $_G_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` done _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` func_mkdir_p_IFS=$IFS; IFS=: for _G_dir in $_G_dir_list; do IFS=$func_mkdir_p_IFS # mkdir can fail with a 'File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$_G_dir" 2>/dev/null || : done IFS=$func_mkdir_p_IFS # Bail out if we (or some other process) failed to create a directory. test -d "$_G_directory_path" || \ func_fatal_error "Failed to create '$1'" fi } # func_mktempdir [BASENAME] # ------------------------- # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, BASENAME is the basename for that directory. func_mktempdir () { $debug_cmd _G_template=${TMPDIR-/tmp}/${1-$progname} if test : = "$opt_dry_run"; then # Return a directory name, but don't create it in dry-run mode _G_tmpdir=$_G_template-$$ else # If mktemp works, use that first and foremost _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` if test ! -d "$_G_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race _G_tmpdir=$_G_template-${RANDOM-0}$$ func_mktempdir_umask=`umask` umask 0077 $MKDIR "$_G_tmpdir" umask $func_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$_G_tmpdir" || \ func_fatal_error "cannot create temporary directory '$_G_tmpdir'" fi $ECHO "$_G_tmpdir" } # func_normal_abspath PATH # ------------------------ # Remove doubled-up and trailing slashes, "." path components, # and cancel out any ".." path components in PATH after making # it an absolute path. func_normal_abspath () { $debug_cmd # These SED scripts presuppose an absolute path with a trailing slash. _G_pathcar='s|^/\([^/]*\).*$|\1|' _G_pathcdr='s|^/[^/]*||' _G_removedotparts=':dotsl s|/\./|/|g t dotsl s|/\.$|/|' _G_collapseslashes='s|/\{1,\}|/|g' _G_finalslash='s|/*$|/|' # Start from root dir and reassemble the path. func_normal_abspath_result= func_normal_abspath_tpath=$1 func_normal_abspath_altnamespace= case $func_normal_abspath_tpath in "") # Empty path, that just means $cwd. func_stripname '' '/' "`pwd`" func_normal_abspath_result=$func_stripname_result return ;; # The next three entries are used to spot a run of precisely # two leading slashes without using negated character classes; # we take advantage of case's first-match behaviour. ///*) # Unusual form of absolute path, do nothing. ;; //*) # Not necessarily an ordinary path; POSIX reserves leading '//' # and for example Cygwin uses it to access remote file shares # over CIFS/SMB, so we conserve a leading double slash if found. func_normal_abspath_altnamespace=/ ;; /*) # Absolute path, do nothing. ;; *) # Relative path, prepend $cwd. func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ;; esac # Cancel out all the simple stuff to save iterations. We also want # the path to end with a slash for ease of parsing, so make sure # there is one (and only one) here. func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` while :; do # Processed it all yet? if test / = "$func_normal_abspath_tpath"; then # If we ascended to the root using ".." the result may be empty now. if test -z "$func_normal_abspath_result"; then func_normal_abspath_result=/ fi break fi func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$_G_pathcar"` func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$_G_pathcdr"` # Figure out what to do with it case $func_normal_abspath_tcomponent in "") # Trailing empty path component, ignore it. ;; ..) # Parent dir; strip last assembled component from result. func_dirname "$func_normal_abspath_result" func_normal_abspath_result=$func_dirname_result ;; *) # Actual path component, append it. func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" ;; esac done # Restore leading double-slash if one was found on entry. func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } # func_notquiet ARG... # -------------------- # Echo program name prefixed message only when not in quiet mode. func_notquiet () { $debug_cmd $opt_quiet || func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_relative_path SRCDIR DSTDIR # -------------------------------- # Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. func_relative_path () { $debug_cmd func_relative_path_result= func_normal_abspath "$1" func_relative_path_tlibdir=$func_normal_abspath_result func_normal_abspath "$2" func_relative_path_tbindir=$func_normal_abspath_result # Ascend the tree starting from libdir while :; do # check if we have found a prefix of bindir case $func_relative_path_tbindir in $func_relative_path_tlibdir) # found an exact match func_relative_path_tcancelled= break ;; $func_relative_path_tlibdir*) # found a matching prefix func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" func_relative_path_tcancelled=$func_stripname_result if test -z "$func_relative_path_result"; then func_relative_path_result=. fi break ;; *) func_dirname $func_relative_path_tlibdir func_relative_path_tlibdir=$func_dirname_result if test -z "$func_relative_path_tlibdir"; then # Have to descend all the way to the root! func_relative_path_result=../$func_relative_path_result func_relative_path_tcancelled=$func_relative_path_tbindir break fi func_relative_path_result=../$func_relative_path_result ;; esac done # Now calculate path; take care to avoid doubling-up slashes. func_stripname '' '/' "$func_relative_path_result" func_relative_path_result=$func_stripname_result func_stripname '/' '/' "$func_relative_path_tcancelled" if test -n "$func_stripname_result"; then func_append func_relative_path_result "/$func_stripname_result" fi # Normalisation. If bindir is libdir, return '.' else relative path. if test -n "$func_relative_path_result"; then func_stripname './' '' "$func_relative_path_result" func_relative_path_result=$func_stripname_result fi test -n "$func_relative_path_result" || func_relative_path_result=. : } # func_quote_for_eval ARG... # -------------------------- # Aesthetically quote ARGs to be evaled later. # This function returns two values: # i) func_quote_for_eval_result # double-quoted, suitable for a subsequent eval # ii) func_quote_for_eval_unquoted_result # has all characters that are still active within double # quotes backslashified. func_quote_for_eval () { $debug_cmd func_quote_for_eval_unquoted_result= func_quote_for_eval_result= while test 0 -lt $#; do case $1 in *[\\\`\"\$]*) _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; *) _G_unquoted_arg=$1 ;; esac if test -n "$func_quote_for_eval_unquoted_result"; then func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" else func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" fi case $_G_unquoted_arg in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and variable expansion # for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") _G_quoted_arg=\"$_G_unquoted_arg\" ;; *) _G_quoted_arg=$_G_unquoted_arg ;; esac if test -n "$func_quote_for_eval_result"; then func_append func_quote_for_eval_result " $_G_quoted_arg" else func_append func_quote_for_eval_result "$_G_quoted_arg" fi shift done } # func_quote_for_expand ARG # ------------------------- # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { $debug_cmd case $1 in *[\\\`\"]*) _G_arg=`$ECHO "$1" | $SED \ -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; *) _G_arg=$1 ;; esac case $_G_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") _G_arg=\"$_G_arg\" ;; esac func_quote_for_expand_result=$_G_arg } # func_stripname PREFIX SUFFIX NAME # --------------------------------- # strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). if test yes = "$_G_HAVE_XSI_OPS"; then eval 'func_stripname () { $debug_cmd # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary variable first. func_stripname_result=$3 func_stripname_result=${func_stripname_result#"$1"} func_stripname_result=${func_stripname_result%"$2"} }' else func_stripname () { $debug_cmd case $2 in .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; esac } fi # func_show_eval CMD [FAIL_EXP] # ----------------------------- # Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { $debug_cmd _G_cmd=$1 _G_fail_exp=${2-':'} func_quote_for_expand "$_G_cmd" eval "func_notquiet $func_quote_for_expand_result" $opt_dry_run || { eval "$_G_cmd" _G_status=$? if test 0 -ne "$_G_status"; then eval "(exit $_G_status); $_G_fail_exp" fi } } # func_show_eval_locale CMD [FAIL_EXP] # ------------------------------------ # Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { $debug_cmd _G_cmd=$1 _G_fail_exp=${2-':'} $opt_quiet || { func_quote_for_expand "$_G_cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || { eval "$_G_user_locale $_G_cmd" _G_status=$? eval "$_G_safe_locale" if test 0 -ne "$_G_status"; then eval "(exit $_G_status); $_G_fail_exp" fi } } # func_tr_sh # ---------- # Turn $1 into a string suitable for a shell variable name. # Result is stored in $func_tr_sh_result. All characters # not in the set a-zA-Z0-9_ are replaced with '_'. Further, # if $1 begins with a digit, a '_' is prepended as well. func_tr_sh () { $debug_cmd case $1 in [0-9]* | *[!a-zA-Z0-9_]*) func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` ;; * ) func_tr_sh_result=$1 ;; esac } # func_verbose ARG... # ------------------- # Echo program name prefixed message in verbose mode only. func_verbose () { $debug_cmd $opt_verbose && func_echo "$*" : } # func_warn_and_continue ARG... # ----------------------------- # Echo program name prefixed warning message to standard error. func_warn_and_continue () { $debug_cmd $require_term_colors func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 } # func_warning CATEGORY ARG... # ---------------------------- # Echo program name prefixed warning message to standard error. Warning # messages can be filtered according to CATEGORY, where this function # elides messages where CATEGORY is not listed in the global variable # 'opt_warning_types'. func_warning () { $debug_cmd # CATEGORY must be in the warning_categories list! case " $warning_categories " in *" $1 "*) ;; *) func_internal_error "invalid warning category '$1'" ;; esac _G_category=$1 shift case " $opt_warning_types " in *" $_G_category "*) $warning_func ${1+"$@"} ;; esac } # func_sort_ver VER1 VER2 # ----------------------- # 'sort -V' is not generally available. # Note this deviates from the version comparison in automake # in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a # but this should suffice as we won't be specifying old # version formats or redundant trailing .0 in bootstrap.conf. # If we did want full compatibility then we should probably # use m4_version_compare from autoconf. func_sort_ver () { $debug_cmd printf '%s\n%s\n' "$1" "$2" \ | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n } # func_lt_ver PREV CURR # --------------------- # Return true if PREV and CURR are in the correct order according to # func_sort_ver, otherwise false. Use it like this: # # func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." func_lt_ver () { $debug_cmd test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` } # Local variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" # time-stamp-time-zone: "UTC" # End: #! /bin/sh # Set a version string for this script. scriptversion=2014-01-07.03; # UTC # A portable, pluggable option parser for Bourne shell. # Written by Gary V. Vaughan, 2010 # Copyright (C) 2010-2015 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # 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 3 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, see . # Please report bugs or propose patches to gary@gnu.org. ## ------ ## ## Usage. ## ## ------ ## # This file is a library for parsing options in your shell scripts along # with assorted other useful supporting features that you can make use # of too. # # For the simplest scripts you might need only: # # #!/bin/sh # . relative/path/to/funclib.sh # . relative/path/to/options-parser # scriptversion=1.0 # func_options ${1+"$@"} # eval set dummy "$func_options_result"; shift # ...rest of your script... # # In order for the '--version' option to work, you will need to have a # suitably formatted comment like the one at the top of this file # starting with '# Written by ' and ending with '# warranty; '. # # For '-h' and '--help' to work, you will also need a one line # description of your script's purpose in a comment directly above the # '# Written by ' line, like the one at the top of this file. # # The default options also support '--debug', which will turn on shell # execution tracing (see the comment above debug_cmd below for another # use), and '--verbose' and the func_verbose function to allow your script # to display verbose messages only when your user has specified # '--verbose'. # # After sourcing this file, you can plug processing for additional # options by amending the variables from the 'Configuration' section # below, and following the instructions in the 'Option parsing' # section further down. ## -------------- ## ## Configuration. ## ## -------------- ## # You should override these variables in your script after sourcing this # file so that they reflect the customisations you have added to the # option parser. # The usage line for option parsing errors and the start of '-h' and # '--help' output messages. You can embed shell variables for delayed # expansion at the time the message is displayed, but you will need to # quote other shell meta-characters carefully to prevent them being # expanded when the contents are evaled. usage='$progpath [OPTION]...' # Short help message in response to '-h' and '--help'. Add to this or # override it after sourcing this library to reflect the full set of # options your script accepts. usage_message="\ --debug enable verbose shell tracing -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] -v, --verbose verbosely report processing --version print version information and exit -h, --help print short or long help message and exit " # Additional text appended to 'usage_message' in response to '--help'. long_help_message=" Warning categories include: 'all' show all warnings 'none' turn off all the warnings 'error' warnings are treated as fatal errors" # Help message printed before fatal option parsing errors. fatal_help="Try '\$progname --help' for more information." ## ------------------------- ## ## Hook function management. ## ## ------------------------- ## # This section contains functions for adding, removing, and running hooks # to the main code. A hook is just a named list of of function, that can # be run in order later on. # func_hookable FUNC_NAME # ----------------------- # Declare that FUNC_NAME will run hooks added with # 'func_add_hook FUNC_NAME ...'. func_hookable () { $debug_cmd func_append hookable_fns " $1" } # func_add_hook FUNC_NAME HOOK_FUNC # --------------------------------- # Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must # first have been declared "hookable" by a call to 'func_hookable'. func_add_hook () { $debug_cmd case " $hookable_fns " in *" $1 "*) ;; *) func_fatal_error "'$1' does not accept hook functions." ;; esac eval func_append ${1}_hooks '" $2"' } # func_remove_hook FUNC_NAME HOOK_FUNC # ------------------------------------ # Remove HOOK_FUNC from the list of functions called by FUNC_NAME. func_remove_hook () { $debug_cmd eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' } # func_run_hooks FUNC_NAME [ARG]... # --------------------------------- # Run all hook functions registered to FUNC_NAME. # It is assumed that the list of hook functions contains nothing more # than a whitespace-delimited list of legal shell function names, and # no effort is wasted trying to catch shell meta-characters or preserve # whitespace. func_run_hooks () { $debug_cmd case " $hookable_fns " in *" $1 "*) ;; *) func_fatal_error "'$1' does not support hook funcions.n" ;; esac eval _G_hook_fns=\$$1_hooks; shift for _G_hook in $_G_hook_fns; do eval $_G_hook '"$@"' # store returned options list back into positional # parameters for next 'cmd' execution. eval _G_hook_result=\$${_G_hook}_result eval set dummy "$_G_hook_result"; shift done func_quote_for_eval ${1+"$@"} func_run_hooks_result=$func_quote_for_eval_result } ## --------------- ## ## Option parsing. ## ## --------------- ## # In order to add your own option parsing hooks, you must accept the # full positional parameter list in your hook function, remove any # options that you action, and then pass back the remaining unprocessed # options in '_result', escaped suitably for # 'eval'. Like this: # # my_options_prep () # { # $debug_cmd # # # Extend the existing usage message. # usage_message=$usage_message' # -s, --silent don'\''t print informational messages # ' # # func_quote_for_eval ${1+"$@"} # my_options_prep_result=$func_quote_for_eval_result # } # func_add_hook func_options_prep my_options_prep # # # my_silent_option () # { # $debug_cmd # # # Note that for efficiency, we parse as many options as we can # # recognise in a loop before passing the remainder back to the # # caller on the first unrecognised argument we encounter. # while test $# -gt 0; do # opt=$1; shift # case $opt in # --silent|-s) opt_silent=: ;; # # Separate non-argument short options: # -s*) func_split_short_opt "$_G_opt" # set dummy "$func_split_short_opt_name" \ # "-$func_split_short_opt_arg" ${1+"$@"} # shift # ;; # *) set dummy "$_G_opt" "$*"; shift; break ;; # esac # done # # func_quote_for_eval ${1+"$@"} # my_silent_option_result=$func_quote_for_eval_result # } # func_add_hook func_parse_options my_silent_option # # # my_option_validation () # { # $debug_cmd # # $opt_silent && $opt_verbose && func_fatal_help "\ # '--silent' and '--verbose' options are mutually exclusive." # # func_quote_for_eval ${1+"$@"} # my_option_validation_result=$func_quote_for_eval_result # } # func_add_hook func_validate_options my_option_validation # # You'll alse need to manually amend $usage_message to reflect the extra # options you parse. It's preferable to append if you can, so that # multiple option parsing hooks can be added safely. # func_options [ARG]... # --------------------- # All the functions called inside func_options are hookable. See the # individual implementations for details. func_hookable func_options func_options () { $debug_cmd func_options_prep ${1+"$@"} eval func_parse_options \ ${func_options_prep_result+"$func_options_prep_result"} eval func_validate_options \ ${func_parse_options_result+"$func_parse_options_result"} eval func_run_hooks func_options \ ${func_validate_options_result+"$func_validate_options_result"} # save modified positional parameters for caller func_options_result=$func_run_hooks_result } # func_options_prep [ARG]... # -------------------------- # All initialisations required before starting the option parse loop. # Note that when calling hook functions, we pass through the list of # positional parameters. If a hook function modifies that list, and # needs to propogate that back to rest of this script, then the complete # modified list must be put in 'func_run_hooks_result' before # returning. func_hookable func_options_prep func_options_prep () { $debug_cmd # Option defaults: opt_verbose=false opt_warning_types= func_run_hooks func_options_prep ${1+"$@"} # save modified positional parameters for caller func_options_prep_result=$func_run_hooks_result } # func_parse_options [ARG]... # --------------------------- # The main option parsing loop. func_hookable func_parse_options func_parse_options () { $debug_cmd func_parse_options_result= # this just eases exit handling while test $# -gt 0; do # Defer to hook functions for initial option parsing, so they # get priority in the event of reusing an option name. func_run_hooks func_parse_options ${1+"$@"} # Adjust func_parse_options positional parameters to match eval set dummy "$func_run_hooks_result"; shift # Break out of the loop if we already parsed every option. test $# -gt 0 || break _G_opt=$1 shift case $_G_opt in --debug|-x) debug_cmd='set -x' func_echo "enabling shell trace mode" $debug_cmd ;; --no-warnings|--no-warning|--no-warn) set dummy --warnings none ${1+"$@"} shift ;; --warnings|--warning|-W) test $# = 0 && func_missing_arg $_G_opt && break case " $warning_categories $1" in *" $1 "*) # trailing space prevents matching last $1 above func_append_uniq opt_warning_types " $1" ;; *all) opt_warning_types=$warning_categories ;; *none) opt_warning_types=none warning_func=: ;; *error) opt_warning_types=$warning_categories warning_func=func_fatal_error ;; *) func_fatal_error \ "unsupported warning category: '$1'" ;; esac shift ;; --verbose|-v) opt_verbose=: ;; --version) func_version ;; -\?|-h) func_usage ;; --help) func_help ;; # Separate optargs to long options (plugins may need this): --*=*) func_split_equals "$_G_opt" set dummy "$func_split_equals_lhs" \ "$func_split_equals_rhs" ${1+"$@"} shift ;; # Separate optargs to short options: -W*) func_split_short_opt "$_G_opt" set dummy "$func_split_short_opt_name" \ "$func_split_short_opt_arg" ${1+"$@"} shift ;; # Separate non-argument short options: -\?*|-h*|-v*|-x*) func_split_short_opt "$_G_opt" set dummy "$func_split_short_opt_name" \ "-$func_split_short_opt_arg" ${1+"$@"} shift ;; --) break ;; -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; esac done # save modified positional parameters for caller func_quote_for_eval ${1+"$@"} func_parse_options_result=$func_quote_for_eval_result } # func_validate_options [ARG]... # ------------------------------ # Perform any sanity checks on option settings and/or unconsumed # arguments. func_hookable func_validate_options func_validate_options () { $debug_cmd # Display all warnings if -W was not given. test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" func_run_hooks func_validate_options ${1+"$@"} # Bail if the options were screwed! $exit_cmd $EXIT_FAILURE # save modified positional parameters for caller func_validate_options_result=$func_run_hooks_result } ## ----------------- ## ## Helper functions. ## ## ----------------- ## # This section contains the helper functions used by the rest of the # hookable option parser framework in ascii-betical order. # func_fatal_help ARG... # ---------------------- # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { $debug_cmd eval \$ECHO \""Usage: $usage"\" eval \$ECHO \""$fatal_help"\" func_error ${1+"$@"} exit $EXIT_FAILURE } # func_help # --------- # Echo long help message to standard output and exit. func_help () { $debug_cmd func_usage_message $ECHO "$long_help_message" exit 0 } # func_missing_arg ARGNAME # ------------------------ # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { $debug_cmd func_error "Missing argument for '$1'." exit_cmd=exit } # func_split_equals STRING # ------------------------ # Set func_split_equals_lhs and func_split_equals_rhs shell variables after # splitting STRING at the '=' sign. test -z "$_G_HAVE_XSI_OPS" \ && (eval 'x=a/b/c; test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ && _G_HAVE_XSI_OPS=yes if test yes = "$_G_HAVE_XSI_OPS" then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_split_equals () { $debug_cmd func_split_equals_lhs=${1%%=*} func_split_equals_rhs=${1#*=} test "x$func_split_equals_lhs" = "x$1" \ && func_split_equals_rhs= }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_split_equals () { $debug_cmd func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` func_split_equals_rhs= test "x$func_split_equals_lhs" = "x$1" \ || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` } fi #func_split_equals # func_split_short_opt SHORTOPT # ----------------------------- # Set func_split_short_opt_name and func_split_short_opt_arg shell # variables after splitting SHORTOPT after the 2nd character. if test yes = "$_G_HAVE_XSI_OPS" then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_split_short_opt () { $debug_cmd func_split_short_opt_arg=${1#??} func_split_short_opt_name=${1%"$func_split_short_opt_arg"} }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_split_short_opt () { $debug_cmd func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'` func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` } fi #func_split_short_opt # func_usage # ---------- # Echo short help message to standard output and exit. func_usage () { $debug_cmd func_usage_message $ECHO "Run '$progname --help |${PAGER-more}' for full usage" exit 0 } # func_usage_message # ------------------ # Echo short help message to standard output. func_usage_message () { $debug_cmd eval \$ECHO \""Usage: $usage"\" echo $SED -n 's|^# || /^Written by/{ x;p;x } h /^Written by/q' < "$progpath" echo eval \$ECHO \""$usage_message"\" } # func_version # ------------ # Echo version message to standard output and exit. func_version () { $debug_cmd printf '%s\n' "$progname $scriptversion" $SED -n ' /(C)/!b go :more /\./!{ N s|\n# | | b more } :go /^# Written by /,/# warranty; / { s|^# || s|^# *$|| s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| p } /^# Written by / { s|^# || p } /^warranty; /q' < "$progpath" exit $? } # Local variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" # time-stamp-time-zone: "UTC" # End: # Set a version string. scriptversion='(GNU libtool) 2.4.6' # func_echo ARG... # ---------------- # Libtool also displays the current mode in messages, so override # funclib.sh func_echo with this custom definition. func_echo () { $debug_cmd _G_message=$* func_echo_IFS=$IFS IFS=$nl for _G_line in $_G_message; do IFS=$func_echo_IFS $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line" done IFS=$func_echo_IFS } # func_warning ARG... # ------------------- # Libtool warnings are not categorized, so override funclib.sh # func_warning with this simpler definition. func_warning () { $debug_cmd $warning_func ${1+"$@"} } ## ---------------- ## ## Options parsing. ## ## ---------------- ## # Hook in the functions to make sure our own options are parsed during # the option parsing loop. usage='$progpath [OPTION]... [MODE-ARG]...' # Short help message in response to '-h'. usage_message="Options: --config show all configuration variables --debug enable verbose shell tracing -n, --dry-run display commands without modifying any files --features display basic configuration information and exit --mode=MODE use operation mode MODE --no-warnings equivalent to '-Wnone' --preserve-dup-deps don't remove duplicate dependency libraries --quiet, --silent don't print informational messages --tag=TAG use configuration variables from tag TAG -v, --verbose print more informational messages than default --version print version information -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] -h, --help, --help-all print short, long, or detailed help message " # Additional text appended to 'usage_message' in response to '--help'. func_help () { $debug_cmd func_usage_message $ECHO "$long_help_message MODE must be one of the following: clean remove files from the build directory compile compile a source file into a libtool object execute automatically set library path, then run a program finish complete the installation of libtool libraries install install libraries or executables link create a library or an executable uninstall remove libraries from an installed directory MODE-ARGS vary depending on the MODE. When passed as first option, '--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that. Try '$progname --help --mode=MODE' for a more detailed description of MODE. When reporting a bug, please describe a test case to reproduce it and include the following information: host-triplet: $host shell: $SHELL compiler: $LTCC compiler flags: $LTCFLAGS linker: $LD (gnu? $with_gnu_ld) version: $progname $scriptversion Debian-2.4.6-2 automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` Report bugs to . GNU libtool home page: . General help using GNU software: ." exit 0 } # func_lo2o OBJECT-NAME # --------------------- # Transform OBJECT-NAME from a '.lo' suffix to the platform specific # object suffix. lo2o=s/\\.lo\$/.$objext/ o2lo=s/\\.$objext\$/.lo/ if test yes = "$_G_HAVE_XSI_OPS"; then eval 'func_lo2o () { case $1 in *.lo) func_lo2o_result=${1%.lo}.$objext ;; * ) func_lo2o_result=$1 ;; esac }' # func_xform LIBOBJ-OR-SOURCE # --------------------------- # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise) # suffix to a '.lo' libtool-object suffix. eval 'func_xform () { func_xform_result=${1%.*}.lo }' else # ...otherwise fall back to using sed. func_lo2o () { func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"` } func_xform () { func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'` } fi # func_fatal_configuration ARG... # ------------------------------- # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { func__fatal_error ${1+"$@"} \ "See the $PACKAGE documentation for more information." \ "Fatal configuration error." } # func_config # ----------- # Display the configuration for all the tags in this script. func_config () { re_begincf='^# ### BEGIN LIBTOOL' re_endcf='^# ### END LIBTOOL' # Default configuration. $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" # Now print the configurations for the tags. for tagname in $taglist; do $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done exit $? } # func_features # ------------- # Display the features supported by this script. func_features () { echo "host: $host" if test yes = "$build_libtool_libs"; then echo "enable shared libraries" else echo "disable shared libraries" fi if test yes = "$build_old_libs"; then echo "enable static libraries" else echo "disable static libraries" fi exit $? } # func_enable_tag TAGNAME # ----------------------- # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { # Global variable: tagname=$1 re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" sed_extractcf=/$re_begincf/,/$re_endcf/p # Validate tagname. case $tagname in *[!-_A-Za-z0-9,/]*) func_fatal_error "invalid tag name: $tagname" ;; esac # Don't test for the "default" C tag, as we know it's # there but not specially marked. case $tagname in CC) ;; *) if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # func_check_version_match # ------------------------ # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } # libtool_options_prep [ARG]... # ----------------------------- # Preparation for options parsed by libtool. libtool_options_prep () { $debug_mode # Option defaults: opt_config=false opt_dlopen= opt_dry_run=false opt_help=false opt_mode= opt_preserve_dup_deps=false opt_quiet=false nonopt= preserve_args= # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Pass back the list of options. func_quote_for_eval ${1+"$@"} libtool_options_prep_result=$func_quote_for_eval_result } func_add_hook func_options_prep libtool_options_prep # libtool_parse_options [ARG]... # --------------------------------- # Provide handling for libtool specific options. libtool_parse_options () { $debug_cmd # Perform our own loop to consume as many options as possible in # each iteration. while test $# -gt 0; do _G_opt=$1 shift case $_G_opt in --dry-run|--dryrun|-n) opt_dry_run=: ;; --config) func_config ;; --dlopen|-dlopen) opt_dlopen="${opt_dlopen+$opt_dlopen }$1" shift ;; --preserve-dup-deps) opt_preserve_dup_deps=: ;; --features) func_features ;; --finish) set dummy --mode finish ${1+"$@"}; shift ;; --help) opt_help=: ;; --help-all) opt_help=': help-all' ;; --mode) test $# = 0 && func_missing_arg $_G_opt && break opt_mode=$1 case $1 in # Valid mode arguments: clean|compile|execute|finish|install|link|relink|uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $_G_opt" exit_cmd=exit break ;; esac shift ;; --no-silent|--no-quiet) opt_quiet=false func_append preserve_args " $_G_opt" ;; --no-warnings|--no-warning|--no-warn) opt_warning=false func_append preserve_args " $_G_opt" ;; --no-verbose) opt_verbose=false func_append preserve_args " $_G_opt" ;; --silent|--quiet) opt_quiet=: opt_verbose=false func_append preserve_args " $_G_opt" ;; --tag) test $# = 0 && func_missing_arg $_G_opt && break opt_tag=$1 func_append preserve_args " $_G_opt $1" func_enable_tag "$1" shift ;; --verbose|-v) opt_quiet=false opt_verbose=: func_append preserve_args " $_G_opt" ;; # An option not handled by this hook function: *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; esac done # save modified positional parameters for caller func_quote_for_eval ${1+"$@"} libtool_parse_options_result=$func_quote_for_eval_result } func_add_hook func_parse_options libtool_parse_options # libtool_validate_options [ARG]... # --------------------------------- # Perform any sanity checks on option settings and/or unconsumed # arguments. libtool_validate_options () { # save first non-option argument if test 0 -lt $#; then nonopt=$1 shift fi # preserve --debug test : = "$debug_cmd" || func_append preserve_args " --debug" case $host in # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ;; esac $opt_help || { # Sanity checks first: func_check_version_match test yes != "$build_libtool_libs" \ && test yes != "$build_old_libs" \ && func_fatal_configuration "not configured to build any kind of library" # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$opt_dlopen" && test execute != "$opt_mode"; then func_error "unrecognized option '-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help=$help help="Try '$progname --help --mode=$opt_mode' for more information." } # Pass back the unparsed argument list func_quote_for_eval ${1+"$@"} libtool_validate_options_result=$func_quote_for_eval_result } func_add_hook func_validate_options libtool_validate_options # Process options as early as possible so that --help and --version # can return quickly. func_options ${1+"$@"} eval set dummy "$func_options_result"; shift ## ----------- ## ## Main. ## ## ----------- ## magic='%%%MAGIC variable%%%' magic_exe='%%%MAGIC EXE variable%%%' # Global variables. extracted_archives= extracted_serial=0 # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } # func_generated_by_libtool # True iff stdin has been generated by Libtool. This function is only # a basic sanity check; it will hardly flush out determined imposters. func_generated_by_libtool_p () { $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_p file # True iff FILE is a libtool '.la' library or '.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p } # func_lalib_unsafe_p file # True iff FILE is a libtool '.la' library or '.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if 'file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case $lalib_p_line in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test yes = "$lalib_p" } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { test -f "$1" && $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $debug_cmd save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$sp$nl eval cmd=\"$cmd\" IFS=$save_ifs func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # 'FILE.' does not work on cygwin managed mounts. func_source () { $debug_cmd case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_resolve_sysroot PATH # Replace a leading = in PATH with a sysroot. Store the result into # func_resolve_sysroot_result func_resolve_sysroot () { func_resolve_sysroot_result=$1 case $func_resolve_sysroot_result in =*) func_stripname '=' '' "$func_resolve_sysroot_result" func_resolve_sysroot_result=$lt_sysroot$func_stripname_result ;; esac } # func_replace_sysroot PATH # If PATH begins with the sysroot, replace it with = and # store the result into func_replace_sysroot_result. func_replace_sysroot () { case $lt_sysroot:$1 in ?*:"$lt_sysroot"*) func_stripname "$lt_sysroot" '' "$1" func_replace_sysroot_result='='$func_stripname_result ;; *) # Including no sysroot. func_replace_sysroot_result=$1 ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $debug_cmd if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with '--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=$1 if test yes = "$build_libtool_libs"; then write_lobj=\'$2\' else write_lobj=none fi if test yes = "$build_old_libs"; then write_oldobj=\'$3\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T </dev/null` if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | $SED -e "$sed_naive_backslashify"` else func_convert_core_file_wine_to_w32_result= fi fi } # end: func_convert_core_file_wine_to_w32 # func_convert_core_path_wine_to_w32 ARG # Helper function used by path conversion functions when $build is *nix, and # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly # configured wine environment available, with the winepath program in $build's # $PATH. Assumes ARG has no leading or trailing path separator characters. # # ARG is path to be converted from $build format to win32. # Result is available in $func_convert_core_path_wine_to_w32_result. # Unconvertible file (directory) names in ARG are skipped; if no directory names # are convertible, then the result may be empty. func_convert_core_path_wine_to_w32 () { $debug_cmd # unfortunately, winepath doesn't convert paths, only file names func_convert_core_path_wine_to_w32_result= if test -n "$1"; then oldIFS=$IFS IFS=: for func_convert_core_path_wine_to_w32_f in $1; do IFS=$oldIFS func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" if test -n "$func_convert_core_file_wine_to_w32_result"; then if test -z "$func_convert_core_path_wine_to_w32_result"; then func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result else func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" fi fi done IFS=$oldIFS fi } # end: func_convert_core_path_wine_to_w32 # func_cygpath ARGS... # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or # (2), returns the Cygwin file name or path in func_cygpath_result (input # file name or path is assumed to be in w32 format, as previously converted # from $build's *nix or MSYS format). In case (3), returns the w32 file name # or path in func_cygpath_result (input file name or path is assumed to be in # Cygwin format). Returns an empty string on error. # # ARGS are passed to cygpath, with the last one being the file name or path to # be converted. # # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH # environment variable; do not put it in $PATH. func_cygpath () { $debug_cmd if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` if test "$?" -ne 0; then # on failure, ensure result is empty func_cygpath_result= fi else func_cygpath_result= func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'" fi } #end: func_cygpath # func_convert_core_msys_to_w32 ARG # Convert file name or path ARG from MSYS format to w32 format. Return # result in func_convert_core_msys_to_w32_result. func_convert_core_msys_to_w32 () { $debug_cmd # awkward: cmd appends spaces to result func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` } #end: func_convert_core_msys_to_w32 # func_convert_file_check ARG1 ARG2 # Verify that ARG1 (a file name in $build format) was converted to $host # format in ARG2. Otherwise, emit an error message, but continue (resetting # func_to_host_file_result to ARG1). func_convert_file_check () { $debug_cmd if test -z "$2" && test -n "$1"; then func_error "Could not determine host file name corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_file_result=$1 fi } # end func_convert_file_check # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH # Verify that FROM_PATH (a path in $build format) was converted to $host # format in TO_PATH. Otherwise, emit an error message, but continue, resetting # func_to_host_file_result to a simplistic fallback value (see below). func_convert_path_check () { $debug_cmd if test -z "$4" && test -n "$3"; then func_error "Could not determine the host path corresponding to" func_error " '$3'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This is a deliberately simplistic "conversion" and # should not be "improved". See libtool.info. if test "x$1" != "x$2"; then lt_replace_pathsep_chars="s|$1|$2|g" func_to_host_path_result=`echo "$3" | $SED -e "$lt_replace_pathsep_chars"` else func_to_host_path_result=$3 fi fi } # end func_convert_path_check # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT # and appending REPL if ORIG matches BACKPAT. func_convert_path_front_back_pathsep () { $debug_cmd case $4 in $1 ) func_to_host_path_result=$3$func_to_host_path_result ;; esac case $4 in $2 ) func_append func_to_host_path_result "$3" ;; esac } # end func_convert_path_front_back_pathsep ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## # invoked via '$to_host_file_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # Result will be available in $func_to_host_file_result. # func_to_host_file ARG # Converts the file name ARG from $build format to $host format. Return result # in func_to_host_file_result. func_to_host_file () { $debug_cmd $to_host_file_cmd "$1" } # end func_to_host_file # func_to_tool_file ARG LAZY # converts the file name ARG from $build format to toolchain format. Return # result in func_to_tool_file_result. If the conversion in use is listed # in (the comma separated) LAZY, no conversion takes place. func_to_tool_file () { $debug_cmd case ,$2, in *,"$to_tool_file_cmd",*) func_to_tool_file_result=$1 ;; *) $to_tool_file_cmd "$1" func_to_tool_file_result=$func_to_host_file_result ;; esac } # end func_to_tool_file # func_convert_file_noop ARG # Copy ARG to func_to_host_file_result. func_convert_file_noop () { func_to_host_file_result=$1 } # end func_convert_file_noop # func_convert_file_msys_to_w32 ARG # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_file_result. func_convert_file_msys_to_w32 () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_to_host_file_result=$func_convert_core_msys_to_w32_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_w32 # func_convert_file_cygwin_to_w32 ARG # Convert file name ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_file_cygwin_to_w32 () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then # because $build is cygwin, we call "the" cygpath in $PATH; no need to use # LT_CYGPATH in this case. func_to_host_file_result=`cygpath -m "$1"` fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_cygwin_to_w32 # func_convert_file_nix_to_w32 ARG # Convert file name ARG from *nix to w32 format. Requires a wine environment # and a working winepath. Returns result in func_to_host_file_result. func_convert_file_nix_to_w32 () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_file_wine_to_w32 "$1" func_to_host_file_result=$func_convert_core_file_wine_to_w32_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_w32 # func_convert_file_msys_to_cygwin ARG # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_file_msys_to_cygwin () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_cygpath -u "$func_convert_core_msys_to_w32_result" func_to_host_file_result=$func_cygpath_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_cygwin # func_convert_file_nix_to_cygwin ARG # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed # in a wine environment, working winepath, and LT_CYGPATH set. Returns result # in func_to_host_file_result. func_convert_file_nix_to_cygwin () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. func_convert_core_file_wine_to_w32 "$1" func_cygpath -u "$func_convert_core_file_wine_to_w32_result" func_to_host_file_result=$func_cygpath_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_cygwin ############################################# # $build to $host PATH CONVERSION FUNCTIONS # ############################################# # invoked via '$to_host_path_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # The result will be available in $func_to_host_path_result. # # Path separators are also converted from $build format to $host format. If # ARG begins or ends with a path separator character, it is preserved (but # converted to $host format) on output. # # All path conversion functions are named using the following convention: # file name conversion function : func_convert_file_X_to_Y () # path conversion function : func_convert_path_X_to_Y () # where, for any given $build/$host combination the 'X_to_Y' value is the # same. If conversion functions are added for new $build/$host combinations, # the two new functions must follow this pattern, or func_init_to_host_path_cmd # will break. # func_init_to_host_path_cmd # Ensures that function "pointer" variable $to_host_path_cmd is set to the # appropriate value, based on the value of $to_host_file_cmd. to_host_path_cmd= func_init_to_host_path_cmd () { $debug_cmd if test -z "$to_host_path_cmd"; then func_stripname 'func_convert_file_' '' "$to_host_file_cmd" to_host_path_cmd=func_convert_path_$func_stripname_result fi } # func_to_host_path ARG # Converts the path ARG from $build format to $host format. Return result # in func_to_host_path_result. func_to_host_path () { $debug_cmd func_init_to_host_path_cmd $to_host_path_cmd "$1" } # end func_to_host_path # func_convert_path_noop ARG # Copy ARG to func_to_host_path_result. func_convert_path_noop () { func_to_host_path_result=$1 } # end func_convert_path_noop # func_convert_path_msys_to_w32 ARG # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_path_result. func_convert_path_msys_to_w32 () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # Remove leading and trailing path separator characters from ARG. MSYS # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; # and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result=$func_convert_core_msys_to_w32_result func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_msys_to_w32 # func_convert_path_cygwin_to_w32 ARG # Convert path ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_path_cygwin_to_w32 () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_cygwin_to_w32 # func_convert_path_nix_to_w32 ARG # Convert path ARG from *nix to w32 format. Requires a wine environment and # a working winepath. Returns result in func_to_host_file_result. func_convert_path_nix_to_w32 () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result=$func_convert_core_path_wine_to_w32_result func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_nix_to_w32 # func_convert_path_msys_to_cygwin ARG # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_path_msys_to_cygwin () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_msys_to_w32_result" func_to_host_path_result=$func_cygpath_result func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_msys_to_cygwin # func_convert_path_nix_to_cygwin ARG # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a # a wine environment, working winepath, and LT_CYGPATH set. Returns result in # func_to_host_file_result. func_convert_path_nix_to_cygwin () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" func_to_host_path_result=$func_cygpath_result func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_nix_to_cygwin # func_dll_def_p FILE # True iff FILE is a Windows DLL '.def' file. # Keep in sync with _LT_DLL_DEF_P in libtool.m4 func_dll_def_p () { $debug_cmd func_dll_def_p_tmp=`$SED -n \ -e 's/^[ ]*//' \ -e '/^\(;.*\)*$/d' \ -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \ -e q \ "$1"` test DEF = "$func_dll_def_p_tmp" } # func_mode_compile arg... func_mode_compile () { $debug_cmd # Get the compilation command and the source file. base_compile= srcfile=$nonopt # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= pie_flag= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg=$arg arg_mode=normal ;; target ) libobj=$arg arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) test -n "$libobj" && \ func_fatal_error "you cannot specify '-o' more than once" arg_mode=target continue ;; -pie | -fpie | -fPIE) func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) func_append later " $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= save_ifs=$IFS; IFS=, for arg in $args; do IFS=$save_ifs func_append_quoted lastarg "$arg" done IFS=$save_ifs func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. func_append base_compile " $lastarg" continue ;; *) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg=$srcfile srcfile=$arg ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in arg) func_fatal_error "you must specify an argument for -Xcompile" ;; target) func_fatal_error "you must specify a target with '-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" libobj=$func_basename_result } ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo case $libobj in *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; esac case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) func_fatal_error "cannot determine name of library object from '$libobj'" ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -shared) test yes = "$build_libtool_libs" \ || func_fatal_configuration "cannot build a shared library" build_old_libs=no continue ;; -static) build_libtool_libs=no build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done func_quote_for_eval "$libobj" test "X$libobj" != "X$func_quote_for_eval_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name '$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname=$func_basename_result xdir=$func_dirname_result lobj=$xdir$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test yes = "$build_old_libs"; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test no = "$compiler_c_o"; then output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext lockfile=$output_obj.lock else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test yes = "$need_locks"; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test warn = "$need_locks"; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist func_append removelist " $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test yes = "$build_libtool_libs"; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test no != "$pic_mode"; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir func_append command " -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test warn = "$need_locks" && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test yes = "$suppress_opt"; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test yes = "$build_old_libs"; then if test yes != "$pic_mode"; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test yes = "$compiler_c_o"; then func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. func_append command "$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test warn = "$need_locks" && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test no != "$need_locks"; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test compile = "$opt_mode" && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $opt_mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to build PIC objects only -prefer-non-pic try to build non-PIC objects only -shared do not build a '.o' file suitable for static linking -static only build a '.o' file suitable for static linking -Wc,FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a 'standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix '.c' with the library object suffix, '.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to '-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the '--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the 'install' or 'cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE use a list of object files found in FILE to specify objects -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes) -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) All other options (arguments beginning with '-') are ignored. Every other argument is treated as a filename. Files ending in '.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in '.la', then a libtool library is created, only library objects ('.lo' files) may be specified, and '-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created using 'ar' and 'ranlib', or on Windows using 'lib'. If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode '$opt_mode'" ;; esac echo $ECHO "Try '$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then if test : = "$opt_help"; then func_mode_help else { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do func_mode_help done } | $SED -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do echo func_mode_help done } | $SED '1d /^When reporting/,/^Report/{ H d } $x /information about other modes/d /more detailed .*MODE/d s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' fi exit $? fi # func_mode_execute arg... func_mode_execute () { $debug_cmd # The first argument is the command name. cmd=$nonopt test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $opt_dlopen; do test -f "$file" \ || func_fatal_help "'$file' is not a file" dir= case $file in *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "'$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "'$file' was not linked with '-export-dynamic'" continue fi func_dirname "$file" "" "." dir=$func_dirname_result if test -f "$dir/$objdir/$dlname"; then func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir=$func_dirname_result ;; *) func_warning "'-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir=$absdir # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic=$magic # Check if any of the arguments is a wrapper script. args= for file do case $file in -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file=$progdir/$program elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file=$progdir/$program fi ;; esac # Quote arguments (to preserve shell metacharacters). func_append_quoted args "$file" done if $opt_dry_run; then # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" echo "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS else if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd=\$cmd$args fi } test execute = "$opt_mode" && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $debug_cmd libs= libdirs= admincmds= for opt in "$nonopt" ${1+"$@"} do if test -d "$opt"; then func_append libdirs " $opt" elif test -f "$opt"; then if func_lalib_unsafe_p "$opt"; then func_append libs " $opt" else func_warning "'$opt' is not a valid libtool archive" fi else func_fatal_error "invalid argument '$opt'" fi done if test -n "$libs"; then if test -n "$lt_sysroot"; then sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" else sysroot_cmd= fi # Remove sysroot references if $opt_dry_run; then for lib in $libs; do echo "removing references to $lt_sysroot and '=' prefixes from $lib" done else tmpdir=`func_mktempdir` for lib in $libs; do $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ > $tmpdir/tmp-la mv -f $tmpdir/tmp-la $lib done ${RM}r "$tmpdir" fi fi if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || func_append admincmds " $cmds" fi done fi # Exit here if they wanted silent mode. $opt_quiet && exit $EXIT_SUCCESS if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then echo "----------------------------------------------------------------------" echo "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" echo "specify the full pathname of the library, or use the '-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then echo " - add LIBDIR to the '$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then echo " - add LIBDIR to the '$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the '$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'" fi echo echo "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" echo "pages." ;; *) echo "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac echo "----------------------------------------------------------------------" fi exit $EXIT_SUCCESS } test finish = "$opt_mode" && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $debug_cmd # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" || # Allow the use of GNU shtool's install command. case $nonopt in *shtool*) :;; *) false;; esac then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" func_append install_prog "$func_quote_for_eval_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; *) install_cp=false ;; esac # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=false stripme= no_mode=: for arg do arg2= if test -n "$dest"; then func_append files " $dest" dest=$arg continue fi case $arg in -d) isdir=: ;; -f) if $install_cp; then :; else prev=$arg fi ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then if test X-m = "X$prev" && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" func_append install_prog " $func_quote_for_eval_result" if test -n "$arg2"; then func_quote_for_eval "$arg2" fi func_append install_shared_prog " $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the '$prev' option requires an argument" if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else func_quote_for_eval "$install_override_mode" func_append install_shared_prog " -m $func_quote_for_eval_result" fi fi if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=: if $isdir; then destdir=$dest destname= else func_dirname_and_basename "$dest" "" "." destdir=$func_dirname_result destname=$func_basename_result # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "'$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "'$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic=$magic staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. func_append staticlibs " $file" ;; *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "'$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir=$func_dirname_result func_append dir "$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking '$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname=$1 shift srcname=$realname test -n "$relink_command" && srcname=${realname}T # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme=$stripme case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme= ;; esac ;; os2*) case $realname in *_dll.a) tstripme= ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try 'ln -sf' first, because the 'ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib=$destdir/$realname func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name=$func_basename_result instname=$dir/${name}i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && func_append staticlibs " $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile=$destdir/$destname else func_basename "$file" destfile=$func_basename_result destfile=$destdir/$destfile fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest=$destfile destfile= ;; *) func_fatal_help "cannot copy a libtool object to '$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test yes = "$build_old_libs"; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile=$destdir/$destname else func_basename "$file" destfile=$func_basename_result destfile=$destdir/$destfile fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext= case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=.exe fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script '$wrapper'" finalize=: for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'` if test -n "$libdir" && test ! -f "$libfile"; then func_warning "'$lib' has not been installed in '$libdir'" finalize=false fi done relink_command= func_source "$wrapper" outputname= if test no = "$fast_install" && test -n "$relink_command"; then $opt_dry_run || { if $finalize; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file=$func_basename_result outputname=$tmpdir/$file # Replace the output file specification. relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_quiet || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink '$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file=$outputname else func_warning "cannot relink '$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name=$func_basename_result # Set up the ranlib parameters. oldlib=$destdir/$name func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run '$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test install = "$opt_mode" && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $debug_cmd my_outputname=$1 my_originator=$2 my_pic_p=${3-false} my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms=${my_outputname}S.c else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist=$output_objdir/$my_outputname.nm func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif #if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) /* External symbol declarations for the compiler. */\ " if test yes = "$dlself"; then func_verbose "generating symbol list for '$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_to_tool_file "$progfile" func_convert_file_msys_to_w32 func_verbose "extracting global C symbols from '$func_to_tool_file_result'" $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols=$output_objdir/$outputname.exp $opt_dry_run || { $RM $export_symbols eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from '$dlprefile'" func_basename "$dlprefile" name=$func_basename_result case $host in *cygwin* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" eval "curr_lafile=\$libfile_$func_tr_sh_result" dlprefile_dlbasename= if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then # Use subshell, to avoid clobbering current variable values dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` if test -n "$dlprefile_dlname"; then func_basename "$dlprefile_dlname" dlprefile_dlbasename=$func_basename_result else # no lafile. user explicitly requested -dlpreopen . $sharedlib_from_linklib_cmd "$dlprefile" dlprefile_dlbasename=$sharedlib_from_linklib_result fi fi $opt_dry_run || { if test -n "$dlprefile_dlbasename"; then eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' else func_warning "Could not compute DLL name from $name" eval '$ECHO ": $name " >> "$nlist"' fi func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" } else # not an import lib $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } fi ;; *) $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } ;; esac done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi func_show_eval '$RM "${nlist}I"' if test -n "$global_symbol_to_import"; then eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I' fi echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; extern LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[];\ " if test -s "$nlist"I; then echo >> "$output_objdir/$my_dlsyms" "\ static void lt_syminit(void) { LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols; for (; symbol->name; ++symbol) {" $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms" echo >> "$output_objdir/$my_dlsyms" "\ } }" fi echo >> "$output_objdir/$my_dlsyms" "\ LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = { {\"$my_originator\", (void *) 0}," if test -s "$nlist"I; then echo >> "$output_objdir/$my_dlsyms" "\ {\"@INIT@\", (void *) <_syminit}," fi case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) $my_pic_p && pic_flag_for_symtable=" $pic_flag" ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) func_append symtab_cflags " $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"' # Transform the symbol file into the correct name. symfileobj=$output_objdir/${my_outputname}S.$objext case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for '$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } # func_cygming_gnu_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is a GNU/binutils-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_gnu_implib_p () { $debug_cmd func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` test -n "$func_cygming_gnu_implib_tmp" } # func_cygming_ms_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is an MS-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_ms_implib_p () { $debug_cmd func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` test -n "$func_cygming_ms_implib_tmp" } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. # Despite the name, also deal with 64 bit binaries. func_win32_libid () { $debug_cmd win32_libid_type=unknown win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then case $nm_interface in "MS dumpbin") if func_cygming_ms_implib_p "$1" || func_cygming_gnu_implib_p "$1" then win32_nmres=import else win32_nmres= fi ;; *) func_to_tool_file "$1" func_convert_file_msys_to_w32 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $SED -n -e ' 1,100{ / I /{ s|.*|import| p q } }'` ;; esac case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_cygming_dll_for_implib ARG # # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib () { $debug_cmd sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` } # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs # # The is the core of a fallback implementation of a # platform-specific function to extract the name of the # DLL associated with the specified import library LIBNAME. # # SECTION_NAME is either .idata$6 or .idata$7, depending # on the platform and compiler that created the implib. # # Echos the name of the DLL associated with the # specified import library. func_cygming_dll_for_implib_fallback_core () { $debug_cmd match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` $OBJDUMP -s --section "$1" "$2" 2>/dev/null | $SED '/^Contents of section '"$match_literal"':/{ # Place marker at beginning of archive member dllname section s/.*/====MARK====/ p d } # These lines can sometimes be longer than 43 characters, but # are always uninteresting /:[ ]*file format pe[i]\{,1\}-/d /^In archive [^:]*:/d # Ensure marker is printed /^====MARK====/p # Remove all lines with less than 43 characters /^.\{43\}/!d # From remaining lines, remove first 43 characters s/^.\{43\}//' | $SED -n ' # Join marker and all lines until next marker into a single line /^====MARK====/ b para H $ b para b :para x s/\n//g # Remove the marker s/^====MARK====// # Remove trailing dots and whitespace s/[\. \t]*$// # Print /./p' | # we now have a list, one entry per line, of the stringified # contents of the appropriate section of all members of the # archive that possess that section. Heuristic: eliminate # all those that have a first or second character that is # a '.' (that is, objdump's representation of an unprintable # character.) This should work for all archives with less than # 0x302f exports -- but will fail for DLLs whose name actually # begins with a literal '.' or a single character followed by # a '.'. # # Of those that remain, print the first one. $SED -e '/^\./d;/^.\./d;q' } # func_cygming_dll_for_implib_fallback ARG # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # # This fallback implementation is for use when $DLLTOOL # does not support the --identify-strict option. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib_fallback () { $debug_cmd if func_cygming_gnu_implib_p "$1"; then # binutils import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` elif func_cygming_ms_implib_p "$1"; then # ms-generated import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` else # unknown sharedlib_from_linklib_result= fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { $debug_cmd f_ex_an_ar_dir=$1; shift f_ex_an_ar_oldlib=$1 if test yes = "$lock_old_archive_extraction"; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' if test yes = "$lock_old_archive_extraction"; then $opt_dry_run || rm -f "$lockfile" fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $debug_cmd my_gentop=$1; shift my_oldlibs=${1+"$@"} my_oldobjs= my_xlib= my_xabs= my_xdir= for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib=$func_basename_result my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir=$my_gentop/$my_xlib_u func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` func_basename "$darwin_archive" darwin_base_archive=$func_basename_result darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches; do func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch" $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive" cd "unfat-$$/$darwin_base_archive-$darwin_arch" func_extract_an_archive "`pwd`" "$darwin_base_archive" cd "$darwin_curdir" $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result=$my_oldobjs } # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory where it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` $ECHO "\ # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } ECHO=\"$qECHO\" fi # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper # /script/ and the wrapper /executable/ that is used only on # windows platforms, and (c) all begin with the string "--lt-" # (application programs are unlikely to have options that match # this pattern). # # There are only two supported options: --lt-debug and # --lt-dump-script. There is, deliberately, no --lt-help. # # The first argument to this parsing function should be the # script's $0 value, followed by "$@". lt_option_debug= func_parse_lt_options () { lt_script_arg0=\$0 shift for lt_opt do case \"\$lt_opt\" in --lt-debug) lt_option_debug=1 ;; --lt-dump-script) lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` cat \"\$lt_dump_D/\$lt_dump_F\" exit 0 ;; --lt-*) \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 exit 1 ;; esac done # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2 fi } # Used when --lt-debug. Prints its arguments to stdout # (redirection is the responsibility of the caller) func_lt_dump_args () { lt_dump_args_N=1; for lt_arg do \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } # Core function for launching the target application func_exec_program_core () { " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 } # A function to encapsulate launching the target application # Strips options in the --lt-* namespace from \$@ and # launches target application with the remaining arguments. func_exec_program () { case \" \$* \" in *\\ --lt-*) for lt_wr_arg do case \$lt_wr_arg in --lt-*) ;; *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; esac shift done ;; esac func_exec_program_core \${1+\"\$@\"} } # Parse options func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test yes = "$fast_install"; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else \$ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # fixup the dll searchpath if we need to. # # Fix the DLL searchpath if we need to. Do this before prepending # to shlibpath, because on Windows, both are PATH and uninstalled # libraries must come first. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi # Export our shlibpath_var if we have one. if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. func_exec_program \${1+\"\$@\"} fi else # The program doesn't exist. \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include #else # include # include # ifdef __CYGWIN__ # include # endif #endif #include #include #include #include #include #include #include #include #define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) /* declarations of non-ANSI functions */ #if defined __MINGW32__ # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif #elif defined __CYGWIN__ # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif /* #elif defined other_platform || defined ... */ #endif /* portability defines, excluding path handling macros */ #if defined _MSC_VER # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC #elif defined __MINGW32__ # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv #elif defined __CYGWIN__ # define HAVE_SETENV # define FOPEN_WB "wb" /* #elif defined other platforms ... */ #endif #if defined PATH_MAX # define LT_PATHMAX PATH_MAX #elif defined MAXPATHLEN # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif /* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \ defined __OS2__ # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free (stale); stale = 0; } \ } while (0) #if defined LT_DEBUGWRAPPER static int lt_debug = 1; #else static int lt_debug = 0; #endif const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_debugprintf (const char *file, int line, const char *fmt, ...); void lt_fatal (const char *file, int line, const char *message, ...); static const char *nonnull (const char *s); static const char *nonempty (const char *s); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); char **prepare_spawn (char **argv); void lt_dump_script (FILE *f); EOF cat <= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", nonempty (path)); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; size_t tmp_len; char *concat_name; lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", nonempty (wrapper)); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined HAVE_DOS_BASED_FILE_SYSTEM if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined HAVE_DOS_BASED_FILE_SYSTEM } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = (size_t) (q - p); p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { lt_debugprintf (__FILE__, __LINE__, "checking path component for symlinks: %s\n", tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { lt_fatal (__FILE__, __LINE__, "error accessing file \"%s\": %s", tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal (__FILE__, __LINE__, "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (STREQ (str, pat)) *str = '\0'; } return str; } void lt_debugprintf (const char *file, int line, const char *fmt, ...) { va_list args; if (lt_debug) { (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } } static void lt_error_core (int exit_status, const char *file, int line, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } static const char * nonnull (const char *s) { return s ? s : "(null)"; } static const char * nonempty (const char *s) { return (s && !*s) ? "(empty)" : nonnull (s); } void lt_setenv (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_setenv) setting '%s' to '%s'\n", nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else size_t len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { size_t orig_value_len = strlen (orig_value); size_t add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } void lt_update_exe_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ size_t len = strlen (new_value); while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[--len] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF case $host_os in mingw*) cat <<"EOF" /* Prepares an argument vector before calling spawn(). Note that spawn() does not by itself call the command interpreter (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&v); v.dwPlatformId == VER_PLATFORM_WIN32_NT; }) ? "cmd.exe" : "command.com"). Instead it simply concatenates the arguments, separated by ' ', and calls CreateProcess(). We must quote the arguments since Win32 CreateProcess() interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a special way: - Space and tab are interpreted as delimiters. They are not treated as delimiters if they are surrounded by double quotes: "...". - Unescaped double quotes are removed from the input. Their only effect is that within double quotes, space and tab are treated like normal characters. - Backslashes not followed by double quotes are not special. - But 2*n+1 backslashes followed by a double quote become n backslashes followed by a double quote (n >= 0): \" -> " \\\" -> \" \\\\\" -> \\" */ #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" char ** prepare_spawn (char **argv) { size_t argc; char **new_argv; size_t i; /* Count number of arguments. */ for (argc = 0; argv[argc] != NULL; argc++) ; /* Allocate new argument vector. */ new_argv = XMALLOC (char *, argc + 1); /* Put quoted arguments into the new argument vector. */ for (i = 0; i < argc; i++) { const char *string = argv[i]; if (string[0] == '\0') new_argv[i] = xstrdup ("\"\""); else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) { int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); size_t length; unsigned int backslashes; const char *s; char *quoted_string; char *p; length = 0; backslashes = 0; if (quote_around) length++; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') length += backslashes + 1; length++; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) length += backslashes + 1; quoted_string = XMALLOC (char, length + 1); p = quoted_string; backslashes = 0; if (quote_around) *p++ = '"'; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') { unsigned int j; for (j = backslashes + 1; j > 0; j--) *p++ = '\\'; } *p++ = c; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) { unsigned int j; for (j = backslashes; j > 0; j--) *p++ = '\\'; *p++ = '"'; } *p = '\0'; new_argv[i] = quoted_string; } else new_argv[i] = (char *) string; } new_argv[argc] = NULL; return new_argv; } EOF ;; esac cat <<"EOF" void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | $SED -n -e ' s/^\(.\{79\}\)\(..*\)/\1\ \2/ h s/\([\\"]\)/\\\1/g s/$/\\n/ s/\([^\n]*\).*/ fputs ("\1", f);/p g D' cat <<"EOF" } EOF } # end: func_emit_cwrapperexe_src # func_win32_import_lib_p ARG # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { $debug_cmd case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } # func_suncc_cstd_abi # !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!! # Several compiler flags select an ABI that is incompatible with the # Cstd library. Avoid specifying it if any are in CXXFLAGS. func_suncc_cstd_abi () { $debug_cmd case " $compile_command " in *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*) suncc_use_cstd_abi=no ;; *) suncc_use_cstd_abi=yes ;; esac } # func_mode_link arg... func_mode_link () { $debug_cmd case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # what system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll that has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no bindir= dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= os2dllname= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=false prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module=$wl-single_module func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test yes != "$build_libtool_libs" \ && func_fatal_configuration "cannot build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg=$1 shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in bindir) bindir=$arg prev= continue ;; dlfiles|dlprefiles) $preload || { # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=: } case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test no = "$dlself"; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test dlprefiles = "$prev"; then dlself=yes elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test dlfiles = "$prev"; then func_append dlfiles " $arg" else func_append dlprefiles " $arg" fi prev= continue ;; esac ;; expsyms) export_symbols=$arg test -f "$arg" \ || func_fatal_error "symbol file '$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex=$arg prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) func_append deplibs " $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir=$arg prev= continue ;; mllvm) # Clang does not use LLVM to link, so we can simply discard any # '-mllvm $arg' options when doing the link step. prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # func_append moreargs " $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test none = "$pic_object" && test none = "$non_pic_object"; then func_fatal_error "cannot find name of object for '$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result if test none != "$pic_object"; then # Prepend the subdirectory the object is found in. pic_object=$xdir$pic_object if test dlfiles = "$prev"; then if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test dlprefiles = "$prev"; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg=$pic_object fi # Non-PIC object. if test none != "$non_pic_object"; then # Prepend the subdirectory the object is found in. non_pic_object=$xdir$non_pic_object # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test none = "$pic_object"; then arg=$non_pic_object fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object=$pic_object func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "'$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file '$arg' does not exist" fi arg=$save_arg prev= continue ;; os2dllname) os2dllname=$arg prev= continue ;; precious_regex) precious_files_regex=$arg prev= continue ;; release) release=-$arg prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test rpath = "$prev"; then case "$rpath " in *" $arg "*) ;; *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) func_append xrpath " $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds=$arg prev= continue ;; weak) func_append weak_libs " $arg" prev= continue ;; xcclinker) func_append linker_flags " $qarg" func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) func_append linker_flags " $qarg" func_append compiler_flags " $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg=$arg case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "'-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -bindir) prev=bindir continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test X-export-symbols = "X$arg"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname "-L" '' "$arg" if test -z "$func_stripname_result"; then if test "$#" -gt 0; then func_fatal_error "require no space between '-L' and '$1'" else func_fatal_error "need path for '-L' option" fi fi func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of '$dir'" dir=$absdir ;; esac case "$deplibs " in *" -L$dir "* | *" $arg "*) # Will only happen for absolute or sysroot arguments ;; *) # Preserve sysroot, but never include relative directories case $dir in [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; *) func_append deplibs " -L$dir" ;; esac func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac continue ;; -l*) if test X-lc = "X$arg" || test X-lm = "X$arg"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test X-lc = "X$arg" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) # Do not include libc due to us having libc/libc_r. test X-lc = "X$arg" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework func_append deplibs " System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test X-lc = "X$arg" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test X-lc = "X$arg" && continue ;; esac elif test X-lc_r = "X$arg"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi func_append deplibs " $arg" continue ;; -mllvm) prev=mllvm continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot|--sysroot) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) func_append new_inherited_linker_flags " $arg" ;; esac continue ;; -multi_module) single_module=$wl-multi_module continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "'-no-install' is ignored for $host" func_warning "assuming '-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -os2dllname) prev=os2dllname continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; =*) func_stripname '=' '' "$dir" dir=$lt_sysroot$func_stripname_result ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs=$IFS; IFS=, for flag in $args; do IFS=$save_ifs func_quote_for_eval "$flag" func_append arg " $func_quote_for_eval_result" func_append compiler_flags " $func_quote_for_eval_result" done IFS=$save_ifs func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs=$IFS; IFS=, for flag in $args; do IFS=$save_ifs func_quote_for_eval "$flag" func_append arg " $wl$func_quote_for_eval_result" func_append compiler_flags " $wl$func_quote_for_eval_result" func_append linker_flags " $func_quote_for_eval_result" done IFS=$save_ifs func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg=$func_quote_for_eval_result ;; # Flags to be passed through unchanged, with rationale: # -64, -mips[0-9] enable 64-bit mode for the SGI compiler # -r[0-9][0-9]* specify processor for the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler # +DA*, +DD* enable 64-bit mode for the HP compiler # -q* compiler args for the IBM compiler # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC # -fstack-protector* stack protector flags for GCC # @file GCC response files # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization # -specs=* GCC specs files # -stdlib=* select c++ std lib with clang # -fsanitize=* Clang/GCC memory and address sanitizer -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ -specs=*|-fsanitize=*) func_quote_for_eval "$arg" arg=$func_quote_for_eval_result func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" continue ;; -Z*) if test os2 = "`expr $host : '.*\(os2\)'`"; then # OS/2 uses -Zxxx to specify OS/2-specific options compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case $arg in -Zlinker | -Zstack) prev=xcompiler ;; esac continue else # Otherwise treat like 'Some other compiler flag' below func_quote_for_eval "$arg" arg=$func_quote_for_eval_result fi ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg=$func_quote_for_eval_result ;; *.$objext) # A standard object. func_append objs " $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test none = "$pic_object" && test none = "$non_pic_object"; then func_fatal_error "cannot find name of object for '$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result test none = "$pic_object" || { # Prepend the subdirectory the object is found in. pic_object=$xdir$pic_object if test dlfiles = "$prev"; then if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test dlprefiles = "$prev"; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg=$pic_object } # Non-PIC object. if test none != "$non_pic_object"; then # Prepend the subdirectory the object is found in. non_pic_object=$xdir$non_pic_object # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test none = "$pic_object"; then arg=$non_pic_object fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object=$pic_object func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "'$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. func_append deplibs " $arg" func_append old_deplibs " $arg" continue ;; *.la) # A libtool-controlled library. func_resolve_sysroot "$arg" if test dlfiles = "$prev"; then # This library was specified with -dlopen. func_append dlfiles " $func_resolve_sysroot_result" prev= elif test dlprefiles = "$prev"; then # The library was specified with -dlpreopen. func_append dlprefiles " $func_resolve_sysroot_result" prev= else func_append deplibs " $func_resolve_sysroot_result" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg=$func_quote_for_eval_result ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the '$prevarg' option requires an argument" if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname=$func_basename_result libobjs_save=$libobjs if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" # Definition is injected by LT_CONFIG during libtool generation. func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH" func_dirname "$output" "/" "" output_objdir=$func_dirname_result$objdir func_to_tool_file "$output_objdir/" tool_output_objdir=$func_to_tool_file_result # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_preserve_dup_deps; then case "$libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append libs " $deplib" done if test lib = "$linkmode"; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; esac func_append pre_post_deps " $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can '-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=false newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test lib,link = "$linkmode,$pass"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs=$tmp_deplibs fi if test lib,link = "$linkmode,$pass" || test prog,scan = "$linkmode,$pass"; then libs=$deplibs deplibs= fi if test prog = "$linkmode"; then case $pass in dlopen) libs=$dlfiles ;; dlpreopen) libs=$dlprefiles ;; link) libs="$deplibs %DEPLIBS%" test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" ;; esac fi if test lib,dlpreopen = "$linkmode,$pass"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= func_resolve_sysroot "$lib" case $lib in *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do func_basename "$deplib" deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; *) func_append deplibs " $deplib" ;; esac done done libs=$dlprefiles fi if test dlopen = "$pass"; then # Collect dlpreopened libraries save_deplibs=$deplibs deplibs= fi for deplib in $libs; do lib= found=false case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append compiler_flags " $deplib" if test lib = "$linkmode"; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -l*) if test lib != "$linkmode" && test prog != "$linkmode"; then func_warning "'-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test lib = "$linkmode"; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib=$searchdir/lib$name$search_ext if test -f "$lib"; then if test .la = "$search_ext"; then found=: else found=false fi break 2 fi done done if $found; then # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll=$l done if test "X$ll" = "X$old_library"; then # only static version available found=false func_dirname "$lib" "" "." ladir=$func_dirname_result lib=$ladir/$old_library if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi else # deplib doesn't seem to be a libtool library if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" fi continue fi ;; # -l *.ltframework) if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test lib = "$linkmode"; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test conv = "$pass" && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) if test conv = "$pass"; then deplibs="$deplib $deplibs" continue fi if test scan = "$pass"; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) func_warning "'-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test link = "$pass"; then func_stripname '-R' '' "$deplib" func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) func_resolve_sysroot "$deplib" lib=$func_resolve_sysroot_result ;; *.$libext) if test conv = "$pass"; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=false case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=: fi ;; pass_all) valid_a_lib=: ;; esac if $valid_a_lib; then echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" else echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because the file extensions .$libext of this argument makes me believe" echo "*** that it is just a static archive that I should not use here." fi ;; esac continue ;; prog) if test link != "$pass"; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test conv = "$pass"; then deplibs="$deplib $deplibs" elif test prog = "$linkmode"; then if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then # If there is no dlopen support or we're linking statically, # we need to preload. func_append newdlprefiles " $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append newdlfiles " $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=: continue ;; esac # case $deplib $found || test -f "$lib" \ || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'" # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "'$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir=$func_dirname_result dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test lib,link = "$linkmode,$pass" || test prog,scan = "$linkmode,$pass" || { test prog != "$linkmode" && test lib != "$linkmode"; }; then test -n "$dlopen" && func_append dlfiles " $dlopen" test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi if test conv = "$pass"; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for '$lib'" fi # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done elif test prog != "$linkmode" && test lib != "$linkmode"; then func_fatal_error "'$lib' is not a convenience library" fi continue fi # $pass = conv # Get the name of the library we link against. linklib= if test -n "$old_library" && { test yes = "$prefer_static_libs" || test built,no = "$prefer_static_libs,$installed"; }; then linklib=$old_library else for l in $old_library $library_names; do linklib=$l done fi if test -z "$linklib"; then func_fatal_error "cannot find name of link library for '$lib'" fi # This library was specified with -dlopen. if test dlopen = "$pass"; then test -z "$libdir" \ && func_fatal_error "cannot -dlopen a convenience library: '$lib'" if test -z "$dlname" || test yes != "$dlopen_support" || test no = "$build_libtool_libs" then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. func_append dlprefiles " $lib $dependency_libs" else func_append newdlfiles " $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of '$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir=$ladir fi ;; esac func_basename "$lib" laname=$func_basename_result # Find the relevant object directory and library name. if test yes = "$installed"; then if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library '$lib' was moved." dir=$ladir absdir=$abs_ladir libdir=$abs_ladir else dir=$lt_sysroot$libdir absdir=$lt_sysroot$libdir fi test yes = "$hardcode_automatic" && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir=$ladir absdir=$abs_ladir # Remove this search path later func_append notinst_path " $abs_ladir" else dir=$ladir/$objdir absdir=$abs_ladir/$objdir # Remove this search path later func_append notinst_path " $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test dlpreopen = "$pass"; then if test -z "$libdir" && test prog = "$linkmode"; then func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'" fi case $host in # special handling for platforms with PE-DLLs. *cygwin* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both # static and shared are present. Therefore, ensure we extract # symbols from the import library if a shared library is present # (otherwise, the dlopen module name will be incorrect). We do # this by putting the import library name into $newdlprefiles. # We recover the dlopen module name by 'saving' the la file # name in a special purpose variable, and (later) extracting the # dlname from the la file. if test -n "$dlname"; then func_tr_sh "$dir/$linklib" eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" func_append newdlprefiles " $dir/$linklib" else func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" fi ;; * ) # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then func_append newdlprefiles " $dir/$dlname" else func_append newdlprefiles " $dir/$linklib" fi ;; esac fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test lib = "$linkmode"; then deplibs="$dir/$old_library $deplibs" elif test prog,link = "$linkmode,$pass"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test prog = "$linkmode" && test link != "$pass"; then func_append newlib_search_path " $ladir" deplibs="$lib $deplibs" linkalldeplibs=false if test no != "$link_all_deplibs" || test -z "$library_names" || test no = "$build_libtool_libs"; then linkalldeplibs=: fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; esac # Need to link against all dependency_libs? if $linkalldeplibs; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done # for deplib continue fi # $linkmode = prog... if test prog,link = "$linkmode,$pass"; then if test -n "$library_names" && { { test no = "$prefer_static_libs" || test built,yes = "$prefer_static_libs,$installed"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then # Make sure the rpath contains only unique directories. case $temp_rpath: in *"$absdir:"*) ;; *) func_append temp_rpath "$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi # $linkmode,$pass = prog,link... if $alldeplibs && { test pass_all = "$deplibs_check_method" || { test yes = "$build_libtool_libs" && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test built = "$use_static_libs" && test yes = "$installed"; then use_static_libs=no fi if test -n "$library_names" && { test no = "$use_static_libs" || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc* | *os2*) # No point in relinking DLLs because paths are not encoded func_append notinst_deplibs " $lib" need_relink=no ;; *) if test no = "$installed"; then func_append notinst_deplibs " $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule= for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule=$dlpremoduletest break fi done if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then echo if test prog = "$linkmode"; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test lib = "$linkmode" && test yes = "$hardcode_into_libs"; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname=$1 shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname=$dlname elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc* | *os2*) func_arith $current - $age major=$func_arith_result versuffix=-$major ;; esac eval soname=\"$soname_spec\" else soname=$realname fi # Make a new name for the extract_expsyms_cmds to use soroot=$soname func_basename "$soroot" soname=$func_basename_result func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from '$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for '$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test prog = "$linkmode" || test relink != "$opt_mode"; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test no = "$hardcode_direct"; then add=$dir/$linklib case $host in *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;; *-*-sysv4*uw2*) add_dir=-L$dir ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir=-L$dir ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we cannot # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library"; then echo echo "*** And there doesn't seem to be a static archive available" echo "*** The link will probably fail, sorry" else add=$dir/$old_library fi elif test -n "$old_library"; then add=$dir/$old_library fi fi esac elif test no = "$hardcode_minus_L"; then case $host in *-*-sunos*) add_shlibpath=$dir ;; esac add_dir=-L$dir add=-l$name elif test no = "$hardcode_shlibpath_var"; then add_shlibpath=$dir add=-l$name else lib_linked=no fi ;; relink) if test yes = "$hardcode_direct" && test no = "$hardcode_direct_absolute"; then add=$dir/$linklib elif test yes = "$hardcode_minus_L"; then add_dir=-L$absdir # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add=-l$name elif test yes = "$hardcode_shlibpath_var"; then add_shlibpath=$dir add=-l$name else lib_linked=no fi ;; *) lib_linked=no ;; esac if test yes != "$lib_linked"; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) func_append compile_shlibpath "$add_shlibpath:" ;; esac fi if test prog = "$linkmode"; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test yes != "$hardcode_direct" && test yes != "$hardcode_minus_L" && test yes = "$hardcode_shlibpath_var"; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac fi fi fi if test prog = "$linkmode" || test relink = "$opt_mode"; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test yes = "$hardcode_direct" && test no = "$hardcode_direct_absolute"; then add=$libdir/$linklib elif test yes = "$hardcode_minus_L"; then add_dir=-L$libdir add=-l$name elif test yes = "$hardcode_shlibpath_var"; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac add=-l$name elif test yes = "$hardcode_automatic"; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib"; then add=$inst_prefix_dir$libdir/$linklib else add=$libdir/$linklib fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir=-L$libdir # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add=-l$name fi if test prog = "$linkmode"; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test prog = "$linkmode"; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test unsupported != "$hardcode_direct"; then test -n "$old_library" && linklib=$old_library compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test yes = "$build_libtool_libs"; then # Not a shared library if test pass_all != "$deplibs_check_method"; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. echo $ECHO "*** Warning: This system cannot link to static lib archive $lib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." if test yes = "$module"; then echo "*** But as you try to build a module library, libtool will still create " echo "*** a static module, that should work as long as the dlopening application" echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using 'nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** 'nm' from GNU binutils and a full rebuild may help." fi if test no = "$build_old_libs"; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test lib = "$linkmode"; then if test -n "$dependency_libs" && { test yes != "$hardcode_into_libs" || test yes = "$build_old_libs" || test yes = "$link_static"; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) func_append xrpath " $temp_xrpath";; esac;; *) func_append temp_deplibs " $libdir";; esac done dependency_libs=$temp_deplibs fi func_append newlib_search_path " $absdir" # Link against this library test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result";; *) func_resolve_sysroot "$deplib" ;; esac if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $func_resolve_sysroot_result "*) func_append specialdeplibs " $func_resolve_sysroot_result" ;; esac fi func_append tmp_libs " $func_resolve_sysroot_result" done if test no != "$link_all_deplibs"; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path=$deplib ;; *.la) func_resolve_sysroot "$deplib" deplib=$func_resolve_sysroot_result func_dirname "$deplib" "" "." dir=$func_dirname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of '$dir'" absdir=$dir fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names"; then for tmp in $deplibrary_names; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl"; then depdepl=$absdir/$objdir/$depdepl darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl" func_append linker_flags " -dylib_file $darwin_install_name:$depdepl" path= fi fi ;; *) path=-L$absdir/$objdir ;; esac else eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "'$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "'$deplib' seems to be moved" path=-L$absdir fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test link = "$pass"; then if test prog = "$linkmode"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs=$newdependency_libs if test dlpreopen = "$pass"; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test dlopen != "$pass"; then test conv = "$pass" || { # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) func_append lib_search_path " $dir" ;; esac done newlib_search_path= } if test prog,link = "$linkmode,$pass"; then vars="compile_deplibs finalize_deplibs" else vars=deplibs fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) func_append tmp_libs " $deplib" ;; esac ;; *) func_append tmp_libs " $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Add Sun CC postdeps if required: test CXX = "$tagname" && { case $host_os in linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 func_suncc_cstd_abi if test no != "$suncc_use_cstd_abi"; then func_append postdeps ' -library=Cstd -library=Crun' fi ;; esac ;; solaris*) func_cc_basename "$CC" case $func_cc_basename_result in CC* | sunCC*) func_suncc_cstd_abi if test no != "$suncc_use_cstd_abi"; then func_append postdeps ' -library=Cstd -library=Crun' fi ;; esac ;; esac } # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i= ;; esac if test -n "$i"; then func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs done # for pass if test prog = "$linkmode"; then dlfiles=$newdlfiles fi if test prog = "$linkmode" || test lib = "$linkmode"; then dlprefiles=$newdlprefiles fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then func_warning "'-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "'-l' and '-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "'-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "'-R' is ignored for archives" test -n "$vinfo" && \ func_warning "'-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "'-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "'-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs=$output func_append objs "$old_deplibs" ;; lib) # Make sure we only generate libraries of the form 'libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test no = "$module" \ && func_fatal_help "libtool library '$output' must begin with 'lib'" if test no != "$need_lib_prefix"; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test pass_all != "$deplibs_check_method"; then func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs" else echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" func_append libobjs " $objs" fi fi test no = "$dlself" \ || func_warning "'-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test 1 -lt "$#" \ && func_warning "ignoring multiple '-rpath's for a libtool library" install_libdir=$1 oldlibs= if test -z "$rpath"; then if test yes = "$build_libtool_libs"; then # Building a libtool convenience library. # Some compilers have problems with a '.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "'-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "'-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs=$IFS; IFS=: set dummy $vinfo 0 0 0 shift IFS=$save_ifs test -n "$7" && \ func_fatal_help "too many parameters to '-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major=$1 number_minor=$2 number_revision=$3 # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # that has an extra 1 added just for fun # case $version_type in # correct linux to gnu/linux during the next big refactor darwin|freebsd-elf|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age=$number_minor revision=$number_revision ;; freebsd-aout|qnx|sunos) current=$number_major revision=$number_minor age=0 ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age=$number_minor revision=$number_minor lt_irix_increment=no ;; *) func_fatal_configuration "$modename: unknown library version type '$version_type'" ;; esac ;; no) current=$1 revision=$2 age=$3 ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT '$current' must be a nonnegative integer" func_fatal_error "'$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION '$revision' must be a nonnegative integer" func_fatal_error "'$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE '$age' must be a nonnegative integer" func_fatal_error "'$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE '$age' is greater than the current interface number '$current'" func_fatal_error "'$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix=$major.$age.$revision # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" # On Darwin other compilers case $CC in nagfor*) verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" ;; *) verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; esac ;; freebsd-aout) major=.$current versuffix=.$current.$revision ;; freebsd-elf) func_arith $current - $age major=.$func_arith_result versuffix=$major.$age.$revision ;; irix | nonstopux) if test no = "$lt_irix_increment"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring=$verstring_prefix$major.$revision # Add in all the interfaces that we are compatible with. loop=$revision while test 0 -ne "$loop"; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring=$verstring_prefix$major.$iface:$verstring done # Before this point, $major must not contain '.'. major=.$major versuffix=$major.$revision ;; linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result versuffix=$major.$age.$revision ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=.$current.$age.$revision verstring=$current.$age.$revision # Add in all the interfaces that we are compatible with. loop=$age while test 0 -ne "$loop"; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring=$verstring:$iface.0 done # Make executables depend on our current version. func_append verstring ":$current.0" ;; qnx) major=.$current versuffix=.$current ;; sco) major=.$current versuffix=.$current ;; sunos) major=.$current versuffix=.$current.$revision ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 file systems. func_arith $current - $age major=$func_arith_result versuffix=-$major ;; *) func_fatal_configuration "unknown library version type '$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring=0.0 ;; esac if test no = "$need_version"; then versuffix= else versuffix=.0.0 fi fi # Remove version info from name if versioning should be avoided if test yes,no = "$avoid_version,$need_version"; then major= versuffix= verstring= fi # Check to see if the archive will have undefined symbols. if test yes = "$allow_undefined"; then if test unsupported = "$allow_undefined_flag"; then if test yes = "$build_old_libs"; then func_warning "undefined symbols not allowed in $host shared libraries; building static only" build_libtool_libs=no else func_fatal_error "can't build $host shared library unless -no-undefined is specified" fi fi else # Don't allow undefined symbols. allow_undefined_flag=$no_undefined_flag fi fi func_generate_dlsyms "$libname" "$libname" : func_append libobjs " $symfileobj" test " " = "$libobjs" && libobjs= if test relink != "$opt_mode"; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*) if test -n "$precious_files_regex"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi func_append removelist " $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do func_replace_sysroot "$libdir" func_append temp_xrpath " -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles=$dlfiles dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) func_append dlfiles " $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles=$dlprefiles dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) func_append dlprefiles " $lib" ;; esac done if test yes = "$build_libtool_libs"; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework func_append deplibs " System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test yes = "$build_libtool_need_lc"; then func_append deplibs " -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release= versuffix= major= newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` $nocaseglob else potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` fi for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib=$potent_lib while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | $SED 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;; *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib= break 2 fi done done fi if test -n "$a_deplib"; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib"; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" a_deplib= ;; esac fi if test -n "$a_deplib"; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib=$potent_lib # see symlink-check above in file_magic test if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib= break 2 fi done done fi if test -n "$a_deplib"; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib"; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs= tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test yes = "$allow_libtool_libs_with_static_runtimes"; then for i in $predeps $postdeps; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"` done fi case $tmp_deplibs in *[!\ \ ]*) echo if test none = "$deplibs_check_method"; then echo "*** Warning: inter-library dependencies are not supported in this platform." else echo "*** Warning: inter-library dependencies are not known to be supported." fi echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes ;; esac ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test yes = "$droppeddeps"; then if test yes = "$module"; then echo echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" echo "*** a static module, that should work as long as the dlopening" echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using 'nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** 'nm' from GNU binutils and a full rebuild may help." fi if test no = "$build_old_libs"; then oldlibs=$output_objdir/$libname.$libext build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else echo "*** The inter-library dependencies that have been dropped here will be" echo "*** automatically added whenever a program is linked with this library" echo "*** or is declared to -dlopen it." if test no = "$allow_undefined"; then echo echo "*** Since this library must not contain undefined symbols," echo "*** because either the platform does not support them or" echo "*** it was explicitly requested with -no-undefined," echo "*** libtool will only create a static version of it." if test no = "$build_old_libs"; then oldlibs=$output_objdir/$libname.$libext build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done deplibs=$new_libs # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test yes = "$build_libtool_libs"; then # Remove $wl instances when linking with ld. # FIXME: should test the right _cmds variable. case $archive_cmds in *\$LD\ *) wl= ;; esac if test yes = "$hardcode_into_libs"; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath=$finalize_rpath test relink = "$opt_mode" || rpath=$compile_rpath$rpath for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then func_replace_sysroot "$libdir" libdir=$func_replace_sysroot_result if test -z "$hardcode_libdirs"; then hardcode_libdirs=$libdir else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append dep_rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir=$hardcode_libdirs eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath=$finalize_shlibpath test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname=$1 shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname=$realname fi if test -z "$dlname"; then dlname=$soname fi lib=$output_objdir/$realname linknames= for link do func_append linknames " $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols=$output_objdir/$libname.uexp func_append delfiles " $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile func_dll_def_p "$export_symbols" || { # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols=$export_symbols export_symbols= always_export_symbols=yes } fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for '$libname.la'" export_symbols=$output_objdir/$libname.exp $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs=$IFS; IFS='~' for cmd1 in $cmds; do IFS=$save_ifs # Take the normal branch if the nm_file_list_spec branch # doesn't work or if tool conversion is not needed. case $nm_file_list_spec~$to_tool_file_cmd in *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) try_normal_branch=yes eval cmd=\"$cmd1\" func_len " $cmd" len=$func_len_result ;; *) try_normal_branch=no ;; esac if test yes = "$try_normal_branch" \ && { test "$len" -lt "$max_cmd_len" \ || test "$max_cmd_len" -le -1; } then func_show_eval "$cmd" 'exit $?' skipped_export=false elif test -n "$nm_file_list_spec"; then func_basename "$output" output_la=$func_basename_result save_libobjs=$libobjs save_output=$output output=$output_objdir/$output_la.nm func_to_tool_file "$output" libobjs=$nm_file_list_spec$func_to_tool_file_result func_append delfiles " $output" func_verbose "creating $NM input file list: $output" for obj in $save_libobjs; do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > "$output" eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' output=$save_output libobjs=$save_libobjs skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS=$save_ifs if test -n "$export_symbols_regex" && test : != "$skipped_export"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols=$export_symbols test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test : != "$skipped_export" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for '$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands, which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) func_append tmp_deplibs " $test_deplib" ;; esac done deplibs=$tmp_deplibs if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test yes = "$compiler_needs_object" && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $convenience func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking if test relink = "$opt_mode"; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test yes = "$module" && test -n "$module_cmds"; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test : != "$skipped_export" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output func_basename "$output" output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then output=$output_objdir/$output_la.lnkscript func_verbose "creating GNU ld script: $output" echo 'INPUT (' > $output for obj in $save_libobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done echo ')' >> $output func_append delfiles " $output" func_to_tool_file "$output" output=$func_to_tool_file_result elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then output=$output_objdir/$output_la.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test yes = "$compiler_needs_object"; then firstobj="$1 " shift fi for obj do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done func_append delfiles " $output" func_to_tool_file "$output" output=$firstobj\"$file_list_spec$func_to_tool_file_result\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-$k.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test -z "$objlist" || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test 1 -eq "$k"; then # The first file doesn't have a previous command to add. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-$k.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-$k.$objext objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi func_append delfiles " $output" else output= fi ${skipped_export-false} && { func_verbose "generating symbol list for '$libname.la'" export_symbols=$output_objdir/$libname.exp $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi } test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs=$IFS; IFS='~' for cmd in $concat_cmds; do IFS=$save_ifs $opt_quiet || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test relink = "$opt_mode"; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS=$save_ifs if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi ${skipped_export-false} && { if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols=$export_symbols test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for '$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands, which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi } libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test yes = "$module" && test -n "$module_cmds"; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs=$IFS; IFS='~' for cmd in $cmds; do IFS=$sp$nl eval cmd=\"$cmd\" IFS=$save_ifs $opt_quiet || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test relink = "$opt_mode"; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS=$save_ifs # Restore the uninstalled library and exit if test relink = "$opt_mode"; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test yes = "$module" || test yes = "$export_dynamic"; then # On all known operating systems, these are identical. dlname=$soname fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then func_warning "'-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "'-l' and '-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "'-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "'-R' is ignored for objects" test -n "$vinfo" && \ func_warning "'-version-info' is ignored for objects" test -n "$release" && \ func_warning "'-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object '$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj=$output ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # if reload_cmds runs $LD directly, get rid of -Wl from # whole_archive_flag_spec and hope we can get by with turning comma # into space. case $reload_cmds in *\$LD[\ \$]*) wl= ;; esac if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags else gentop=$output_objdir/${obj}x func_append generated " $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # If we're not building shared, we need to use non_pic_objs test yes = "$build_libtool_libs" || libobjs=$non_pic_objects # Create the old-style object. reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs output=$obj func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi test yes = "$build_libtool_libs" || { if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS } if test -n "$pic_flag" || test default != "$pic_mode"; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output=$libobj func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "'-version-info' is ignored for programs" test -n "$release" && \ func_warning "'-release' is ignored for programs" $preload \ && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \ && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test CXX = "$tagname"; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) func_append compile_command " $wl-bind_at_load" func_append finalize_command " $wl-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done compile_deplibs=$new_libs func_append compile_command " $compile_deplibs" func_append finalize_command " $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs=$libdir else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) func_append dllsearchpath ":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir=$hardcode_libdirs eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath=$rpath rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs=$libdir else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) func_append finalize_perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir=$hardcode_libdirs eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath=$rpath if test -n "$libobjs" && test yes = "$build_old_libs"; then # Transform all the library objects into standard objects. compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" false # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=: case $host in *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=false ;; *cygwin* | *mingw* ) test yes = "$build_libtool_libs" || wrappers_required=false ;; *) if test no = "$need_relink" || test yes != "$build_libtool_libs"; then wrappers_required=false fi ;; esac $wrappers_required || { # Replace the output file specification. compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command=$compile_command$compile_rpath # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Delete the generated files. if test -f "$output_objdir/${outputname}S.$objext"; then func_show_eval '$RM "$output_objdir/${outputname}S.$objext"' fi exit $exit_status } if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do func_append rpath "$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test yes = "$no_install"; then # We don't need to create a wrapper script. link_command=$compile_var$compile_command$compile_rpath # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi exit $EXIT_SUCCESS fi case $hardcode_action,$fast_install in relink,*) # Fast installation is not supported link_command=$compile_var$compile_command$compile_rpath relink_command=$finalize_var$finalize_command$finalize_rpath func_warning "this platform does not like uninstalled shared libraries" func_warning "'$output' will be relinked during installation" ;; *,yes) link_command=$finalize_var$compile_command$finalize_rpath relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` ;; *,no) link_command=$compile_var$compile_command$compile_rpath relink_command=$finalize_var$finalize_command$finalize_rpath ;; *,needless) link_command=$finalize_var$compile_command$finalize_rpath relink_command= ;; esac # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output_objdir/$outputname" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource=$output_path/$objdir/lt-$output_name.c cwrapper=$output_path/$output_name.exe $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host"; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do case $build_libtool_libs in convenience) oldobjs="$libobjs_save $symfileobj" addlibs=$convenience build_libtool_libs=no ;; module) oldobjs=$libobjs_save addlibs=$old_convenience build_libtool_libs=no ;; *) oldobjs="$old_deplibs $non_pic_objects" $preload && test -f "$symfileobj" \ && func_append oldobjs " $symfileobj" addlibs=$old_convenience ;; esac if test -n "$addlibs"; then gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $addlibs func_append oldobjs " $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append oldobjs " $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else echo "copying selected object files to avoid basename conflicts..." gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase=$func_basename_result case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" func_append oldobjs " $gentop/$newobj" ;; *) func_append oldobjs " $obj" ;; esac done fi func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds elif test -n "$archiver_list_spec"; then func_verbose "using command file archive linking..." for obj in $oldobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > $output_objdir/$libname.libcmd func_to_tool_file "$output_objdir/$libname.libcmd" oldobjs=" $archiver_list_spec$func_to_tool_file_result" cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj"; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test -z "$oldobjs"; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test yes = "$build_old_libs" && old_library=$libname.$libext func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` if test yes = "$hardcode_automatic"; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test yes = "$installed"; then if test -z "$install_libdir"; then break fi output=$output_objdir/${outputname}i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name=$func_basename_result func_resolve_sysroot "$deplib" eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ func_fatal_error "'$deplib' is not a valid libtool archive" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ;; -L*) func_stripname -L '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -L$func_replace_sysroot_result" ;; -R*) func_stripname -R '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -R$func_replace_sysroot_result" ;; *) func_append newdependency_libs " $deplib" ;; esac done dependency_libs=$newdependency_libs newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name=$func_basename_result eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "'$lib' is not a valid libtool archive" func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; *) func_append newdlfiles " $lib" ;; esac done dlfiles=$newdlfiles newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name=$func_basename_result eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "'$lib' is not a valid libtool archive" func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ;; esac done dlprefiles=$newdlprefiles else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlfiles " $abs" done dlfiles=$newdlfiles newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlprefiles " $abs" done dlprefiles=$newdlprefiles fi $RM $output # place dlname in correct position for cygwin # In fact, it would be nice if we could use this code for all target # systems that can't hard-code library paths into their executables # and that have no shared library path variable independent of PATH, # but it turns out we can't easily determine that from inspecting # libtool variables, so we have to hard-code the OSs to which it # applies here; at the moment, that means platforms that use the PE # object format with DLL files. See the long comment at the top of # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test -n "$bindir"; then func_relative_path "$install_libdir" "$bindir" tdlname=$func_relative_path_result/$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname fi ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that cannot go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test no,yes = "$installed,$need_relink"; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } if test link = "$opt_mode" || test relink = "$opt_mode"; then func_mode_link ${1+"$@"} fi # func_mode_uninstall arg... func_mode_uninstall () { $debug_cmd RM=$nonopt files= rmforce=false exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic=$magic for arg do case $arg in -f) func_append RM " $arg"; rmforce=: ;; -*) func_append RM " $arg" ;; *) func_append files " $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= for file in $files; do func_dirname "$file" "" "." dir=$func_dirname_result if test . = "$dir"; then odir=$objdir else odir=$dir/$objdir fi func_basename "$file" name=$func_basename_result test uninstall = "$opt_mode" && odir=$dir # Remember odir for removal later, being careful to avoid duplicates if test clean = "$opt_mode"; then case " $rmdirs " in *" $odir "*) ;; *) func_append rmdirs " $odir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif $rmforce; then continue fi rmfiles=$file case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do func_append rmfiles " $odir/$n" done test -n "$old_library" && func_append rmfiles " $odir/$old_library" case $opt_mode in clean) case " $library_names " in *" $dlname "*) ;; *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; esac test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test none != "$pic_object"; then func_append rmfiles " $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test none != "$non_pic_object"; then func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) if test clean = "$opt_mode"; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe func_append rmfiles " $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result func_append rmfiles " $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles func_append rmfiles " $odir/$name $odir/${name}S.$objext" if test yes = "$fast_install" && test -n "$relink_command"; then func_append rmfiles " $odir/lt-$name" fi if test "X$noexename" != "X$name"; then func_append rmfiles " $odir/lt-$noexename.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done # Try to remove the $objdir's in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then func_mode_uninstall ${1+"$@"} fi test -z "$opt_mode" && { help=$generic_help func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode '$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # where we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: qpdf-8.0.2/.gitignore0000644000064100006410000000065213247541377012541 0ustar ejbejb*.pdb .lineno aclocal.m4 appimage/build autoconf.mk autofiles.zip autom4te.cache/ config.log config.status configure doc/fix-qdf.1 doc/qpdf-manual.html doc/qpdf-manual.pdf doc/qpdf.1 doc/zlib-flate.1 examples/build/ external-libs libqpdf.map libqpdf.pc libqpdf/build/ libqpdf/qpdf/qpdf-config.h libqpdf/qpdf/qpdf-config.h.in libtests/build/ libtool manual/build/ manual/html.xsl manual/print.xsl qpdf/build/ zlib-flate/build/ qpdf-8.0.2/qtest/0000755000064100006410000000000013247541377011706 5ustar ejbejbqpdf-8.0.2/qtest/bin/0000755000064100006410000000000013247541377012456 5ustar ejbejbqpdf-8.0.2/qtest/bin/qtest-driver0000755000064100006410000004510013247541377015035 0ustar ejbejb#!/usr/bin/env perl # # This file is part of qtest. # # Copyright 1993-2007, Jay Berkenbilt # # QTest is distributed under the terms of version 2.0 of the Artistic # license which may be found in the source distribution. # require 5.008; BEGIN { $^W = 1; } use strict; use IO::Handle; use IO::File; use IO::Socket; use Cwd 'abs_path'; use Cwd; use Config; use File::Copy; use File::Basename; use File::Spec; my $whoami = basename($0); my $dirname = dirname(abs_path($0)); my $cwd = getcwd(); my $top = dirname($dirname); my $module_dir = "$top/module"; my $qtc_dir = "$top/QTC/perl"; unshift(@INC, $module_dir, $qtc_dir); require QTC; require TestDriver; if ((@ARGV == 1) && ($ARGV[0] eq '--version')) { print "$whoami version 1.4\n"; exit 0; } if ((@ARGV == 1) && ($ARGV[0] eq '--print-path')) { print $top, "\n"; exit 0; } my @bindirs = (); my $datadir = undef; my $covdir = '.'; my $stdout_tty = (-t STDOUT) ? "1" : "0"; while (@ARGV) { my $arg = shift(@ARGV); if ($arg eq '-bindirs') { usage() unless @ARGV; push(@bindirs, split(':', shift(@ARGV))); } elsif ($arg eq '-datadir') { usage() unless @ARGV; $datadir = shift(@ARGV); } elsif ($arg eq '-covdir') { usage() unless @ARGV; $covdir = shift(@ARGV); } elsif ($arg =~ m/^-stdout-tty=([01])$/) { $stdout_tty = $1; } else { usage(); } } usage() unless defined($datadir); if (@bindirs) { my @path = (); foreach my $d (@bindirs) { my $abs = abs_path($d) or fatal("can't canonicalize path to bindir $d: $!"); push(@path, $abs); } my $sep = ($^O eq 'MSWin32' ? ';' : ':'); my $path = join($sep, @path) . $sep . $ENV{'PATH'}; # Delete and explicitly recreate the PATH environment variable. # This seems to be more reliable. If we just reassign, in some # cases, the modified environment is not inherited by the child # process. (This happens when qtest-driver is invoked from ant # running from gjc-compat. I have no idea how or why.) delete $ENV{'PATH'}; $ENV{'PATH'} = $path; } if ($stdout_tty) { TestDriver::get_tty_features(); } my $pid = undef; my $pid_cleanup = new TestDriver::PidKiller(\$pid); # $in_testsuite is whether the test driver itself is being run from a # test suite! Check before we set the environment variable. my $in_testsuite = $ENV{'IN_TESTSUITE'} || 0; $ENV{'IN_TESTSUITE'} = 1; # Temporary path is intended to be easy to locate so its contents can # be inspected by impatient test suite runners. It is not intended to # be a "secure" (unpredictable) path. my $tempdir = File::Spec->tmpdir() . "/testtemp.$$"; my $thispid = $$; END { # We have to make sure we don't call this from the child # qtest-driver when fork is called. if ((defined $thispid) && ($$ == $thispid) && (defined $tempdir)) { local $?; TestDriver::rmrf($tempdir) if -d $tempdir; } } $| = 1; $SIG{'PIPE'} = 'IGNORE'; $SIG{'INT'} = $SIG{'HUP'} = $SIG{'TERM'} = $SIG{'QUIT'} = sub { exit 2 }; TestDriver::rmrf($tempdir); fatal("removal of $tempdir failed") if -e "$tempdir"; mkdir($tempdir, 0777) || die "mkdir $tempdir: $!\n"; $tempdir = abs_path($tempdir) or fatal("can't canonicalize path to $tempdir: $!"); my $errors = 0; my $tc_input = undef; my $tc_scope = undef; my @testcov = (<$covdir/*.testcov>); if (@testcov > 1) { fatal("more than one testcov file exists"); } elsif (@testcov) { &QTC::TC("testdriver", "coverage directory", ($covdir eq '.' ? 1 : 0)); $tc_input = $testcov[0]; $tc_input =~ s,^\./,,; $tc_scope = basename($tc_input); $tc_scope =~ s/\.testcov$// or fatal("can't get scope from testcov filename"); } my $testlogfile = 'qtest.log'; my $testxmlfile = 'qtest-results.xml'; unlink $testlogfile; unlink $testxmlfile; my $totmissing = 0; my $totextra = 0; my $tottests = 0; my $totpasses = 0; my $totfails = 0; my $totxpasses = 0; my $totxfails = 0; my $now = ($in_testsuite ? '---timestamp---' : localtime(time)); my $msg = "STARTING TESTS on $now"; print "\n"; print_and_log(('*' x length($msg)) . "\n$msg\n" . ('*' x length($msg)) . "\n\n"); my $tc_log = undef; my $tc_winlog = undef; my %tc_cases = (); my %tc_ignored_scopes = (); parse_tc_file(); tc_do_initial_checks(); my $tests_to_run; defined($tests_to_run = $ENV{"TESTS"}) or $tests_to_run = ""; my @tests = (); if ($tests_to_run ne "") { @tests = split(/\s+/, $tests_to_run); for (@tests) { &QTC::TC("testdriver", "driver tests specified"); $_ = "$datadir/$_.test"; } } else { &QTC::TC("testdriver", "driver tests not specified"); @tests = <$datadir/*.test>; } print_xml("\n" . "\n"); foreach my $test (@tests) { print_and_log("\nRunning $test\n"); print_xml(" \n"); my @results = run_test($test); if (scalar(@results) != 5) { error("test driver $test returned invalid results"); } else { my ($ntests, $passes, $fails, $xpasses, $xfails) = @results; my $actual = $passes + $fails + $xpasses + $xfails; my $extra = 0; my $missing = 0; if ($actual > $ntests) { &QTC::TC("testdriver", "driver extra tests"); my $n = ($actual - $ntests); print_and_log(sprintf("\n*** WARNING: saw $n extra test%s\n\n", ($n == 1 ? "" : "s"))); $extra = $n; } elsif ($actual < $ntests) { &QTC::TC("testdriver", "driver missing tests"); my $n = ($ntests - $actual); print_and_log(sprintf("\n*** WARNING: missing $n test%s\n\n", ($n == 1 ? "" : "s"))); $missing = $n; } $totmissing += $missing; $totextra += $extra; $totpasses += $passes; $totfails += $fails; $totxpasses += $xpasses; $totxfails += $xfails; $tottests += ($passes + $fails + $xpasses + $xfails); my $passed = (($extra == 0) && ($missing == 0) && ($fails == 0) && ($xpasses == 0)); print_xml(" \n"); } print_xml(" \n"); } my $coverage_okay = 1; tc_do_final_checks(); my $okay = ((($totpasses + $totxfails) == $tottests) && ($errors == 0) && ($totmissing == 0) && ($totextra == 0) && ($coverage_okay)); print "\n"; print_and_pad("Overall test suite"); if ($okay) { &QTC::TC("testdriver", "driver overall pass"); print_results(pass(), pass()); } else { &QTC::TC("testdriver", "driver overall fail"); print_results(fail(), pass()); print "\nFailure summary may be found in $testlogfile\n"; } my $summary = "\nTESTS COMPLETE. Summary:\n\n"; $summary .= sprintf("Total tests: %d\n" . "Passes: %d\n" . "Failures: %d\n" . "Unexpected Passes: %d\n" . "Expected Failures: %d\n" . "Missing Tests: %d\n" . "Extra Tests: %d\n", $tottests, $totpasses, $totfails, $totxpasses, $totxfails, $totmissing, $totextra); print_and_log($summary); print "\n"; print_xml(" \n" . "\n"); exit ($okay ? 0 : 2); sub run_test { my $prog = shift; my @results = (); # Open a socket for communication with subsidiary test drivers. # Exchange some handshaking information over this socket. When # the subsidiary test suite exits, it reports its results over the # socket. my $use_socketpair = (defined $Config{d_sockpair}); if ($Config{'osname'} eq 'cygwin') { $use_socketpair = 0; } my $listensock; my $for_parent; my $for_child; my @comm_args = (); if ($use_socketpair) { socketpair($for_child, $for_parent, AF_UNIX, SOCK_STREAM, PF_UNSPEC) or fatal("socketpair: $!"); my $fd = fileno($for_child); close($for_child); close($for_parent); local $^F = $fd; # prevent control fd from being closed on exec socketpair($for_child, $for_parent, AF_UNIX, SOCK_STREAM, PF_UNSPEC) or fatal("socketpair: $!"); if (fileno($for_child) != $fd) { fatal("FOR_CHILD socket has wrong file descriptor number: got " . fileno($for_child) . "; wanted $fd"); } $for_parent->autoflush(1); $for_child->autoflush(1); binmode $for_parent; binmode $for_child; @comm_args = ('-fd', $fd); } else { $listensock = IO::Socket::INET->new( Listen => 1, Proto => 'tcp', LocalPort => 0) or fatal("listen: $!"); my ($s_port, $s_addr) = unpack_sockaddr_in($listensock->sockname()); @comm_args = ('-port', $s_port); } my $pid = fork; fatal("fork failed: $!") unless defined $pid; if ($pid == 0) { if ($use_socketpair) { close($for_parent); } chdir($datadir) or fatal("chdir $datadir failed: $!"); if (defined $tc_log) { # Set these environment variables in the child process so # that we can actually use the coverage system # successfully to test the test driver itself. $ENV{'TC_SCOPE'} = $tc_scope; $ENV{'TC_FILENAME'} = $tc_log; if (defined $tc_winlog) { $ENV{'TC_WIN_FILENAME'} = $tc_winlog; } } # Clear this environment variable so that nested test suites # don't inherit the value from this test suite. Note that as # of perl 5.8.7 in cygwin, deleting an environment variable # doesn't work. $ENV{'TESTS'} = ""; exec +('perl', '-I', $module_dir, '-I', $qtc_dir, basename($prog), @comm_args, '-origdir', $cwd, '-tempdir', $tempdir, '-testlog', "$cwd/$testlogfile", '-testxml', "$cwd/$testxmlfile", "-stdout-tty=$stdout_tty") or fatal("exec $prog failed: $!"); } if ($use_socketpair) { close($for_child); } else { $for_parent = $listensock->accept() or die $!; $for_parent->autoflush(); $listensock->close(); } eval { # Either CHLD or PIPE here indicates premature exiting of # subsidiary process which will be detected by either a # protocol error or a timeout on the select below. local $SIG{'CHLD'} = local $SIG{'PIPE'} = 'IGNORE'; print $for_parent "TEST_DRIVER 1\n" or die "--child--\n"; my $rin = ''; vec($rin, fileno($for_parent), 1) = 1; my $nfound = select($rin, '', '', 60); if ($nfound == 0) { fatal("timed out waiting for input on $for_parent"); } # Setting to DEFAULT should be unnecessary because of "local" # above, but there seems to be a race condition that this # helps to correct. $SIG{'CHLD'} = $SIG{'PIPE'} = 'DEFAULT'; }; if ($@) { if ($@ =~ m/--child--/) { error("subsidiary test driver exited"); } else { die $@; } } else { my $line = <$for_parent>; if (! ((defined $line) && ($line =~ m/^TEST_DRIVER_CLIENT 1$/))) { error("invalid protocol with subdiary test driver"); kill 1, $pid; } waitpid $pid, 0; my $results = <$for_parent>; close($for_parent); if (! ((defined $results) && ($results =~ m/^\d+(?: \d+){4}$/))) { &QTC::TC("testdriver", "driver test returned invalid results"); error("invalid results from subsidiary test driver"); } else { @results = split(/ /, $results); } } @results; } sub parse_tc_file { return unless defined $tc_input; my $tc = new IO::File("<$tc_input") or fatal("can't read $tc_input: $!"); binmode $tc; while (<$tc>) { s/\r?\n$//s; next if m/^\#/; next if m/^\s*$/; if (m/^ignored-scope: (\S+)$/) { $tc_ignored_scopes{$1} = 1; } elsif (m/^\s*?(\S.+?)\s+(\d+)\s*$/) { my ($case, $n) = ($1, $2); if (exists $tc_cases{$case}) { &QTC::TC("testdriver", "driver duplicate coverage case"); error("$tc_input:$.: duplicate case"); } $tc_cases{$case} = $n; } else { error("$tc_input:$.: invalid syntax"); } } $tc->close(); } sub tc_do_initial_checks { return unless defined $tc_input; if (! exists $ENV{'TC_SRCS'}) { fatal("TC_SRCS must be set"); } my @tc_srcs = (grep { m/\S/ } (split(/\s+/, $ENV{'TC_SRCS'}))); my %seen_cases = (); foreach my $src (@tc_srcs) { my $s = new IO::File("<$src") or die "$whoami: open $src: $!\n"; binmode $s; while (<$s>) { # Look for coverage calls in the source subject to certain # lexical constraints my ($lscope, $case); if (m/^\s*\&?QTC(?:::|\.)TC\(\"([^\"]+)\",\s*\"([^\"]+)\"/) { # C++, Java, Perl, etc. ($lscope, $case) = ($1, $2); } elsif (m/^[^\#]*\$\(call QTC.TC,([^,]+),([^,\)]+)/) { # make ($lscope, $case) = ($1, $2); } if ((defined $lscope) && (defined $case)) { if ($lscope eq $tc_scope) { push(@{$seen_cases{$case}}, [$src, $.]); } elsif (exists $tc_ignored_scopes{$lscope}) { &QTC::TC("testdriver", "driver ignored scope"); } else { &QTC::TC("testdriver", "driver out-of-scope case"); error("$src:$.: out-of-scope coverage case"); } } } $s->close(); } my %wanted_cases = %tc_cases; foreach my $case (sort keys %seen_cases) { my $wanted = 1; my $whybad = undef; if (exists $wanted_cases{$case}) { delete $wanted_cases{$case}; } else { &QTC::TC("testdriver", "driver unregistered coverage case"); $wanted = 0; $whybad = "unregistered"; } if (scalar(@{$seen_cases{$case}}) > $wanted) { $whybad = $whybad || "duplicate"; foreach my $d (@{$seen_cases{$case}}) { my ($file, $lineno) = @$d; &QTC::TC("testdriver", "driver coverage error in src", ($whybad eq 'unregistered' ? 0 : $whybad eq 'duplicate' ? 1 : 9999)); error("$file:$lineno: $whybad coverage case \"$case\""); } } } foreach my $case (sort keys %wanted_cases) { &QTC::TC("testdriver", "driver unseen coverage case"); error("$whoami: coverage case \"$case\" was not seen"); } fatal("errors detected; exiting") if $errors; $tc_log = "$cwd/$tc_scope.cov_out"; if ($^O eq 'cygwin') { chop(my $f = `cygpath --windows $tc_log`); $tc_winlog = $f; } elsif ($^O =~ m/^MSWin32|msys$/) { $tc_winlog = $tc_log; } unlink $tc_log; print_and_log("Test coverage active in scope $tc_scope\n"); } sub tc_do_final_checks { return unless (defined $tc_log); my %seen_cases = (); my $tc = new IO::File("<$tc_log"); binmode $tc; if ($tc) { binmode $tc; while (<$tc>) { s/\r?\n$//s; next if m/^\#/; next if m/^\s*$/; if (m/^(.+) (\d+)\s*$/) { $seen_cases{$1}{$2} = 1; } } $tc->close(); } my $testlog = open_log(); $testlog->print("\nTest coverage results:\n"); my @problems = (); foreach my $c (sort keys %tc_cases) { my ($case, $n) = ($c, $tc_cases{$c}); for (my $i = 0; $i <= $n; ++$i) { if (exists $seen_cases{$c}{$i}) { delete $seen_cases{$c}{$i}; } else { &QTC::TC("testdriver", "driver missing coverage case"); push(@problems, "missing: $c $i"); } } } foreach my $c (sort keys %seen_cases) { foreach my $n (sort { $a <=> $b } (keys %{$seen_cases{$c}})) { &QTC::TC("testdriver", "driver extra coverage case"); push(@problems, "extra: $c $n"); } } if (@problems) { my $testxml = open_xml(); $testxml->print(" \n"); foreach my $p (@problems) { $testlog->print("$p\n"); $testxml->print(" \n"); } $testxml->print(" \n"); $testxml->close(); $testlog->print("coverage errors: " . scalar(@problems) . "\n"); } my $passed = (@problems == 0); $testlog->print("\nCoverage analysis: ", ($passed ? 'PASSED' : 'FAILED'), "\n"); $testlog->close(); print "\n"; print_and_pad("Coverage analysis"); if ($passed) { print_results(pass(), pass()); my $passlog = $tc_log; $passlog =~ s/(\.[^\.]+)$/-passed$1/; copy($tc_log, $passlog); } else { $coverage_okay = 0; print_results(fail(), pass()); } } sub open_binary { my $file = shift; my $fh = new IO::File(">>$file") or fatal("can't open $file: $!"); binmode $fh; $fh; } sub open_log { open_binary($testlogfile); } sub open_xml { open_binary($testxmlfile); } sub print_and_log { my $fh = open_log(); print @_; print $fh @_; $fh->close(); } sub print_xml { my $fh = open_xml(); print $fh @_; $fh->close(); } sub print_and_pad { TestDriver::print_and_pad(@_); } sub print_results { TestDriver::print_results(@_); } sub pass { TestDriver->PASS; } sub fail { TestDriver->FAIL; } sub error { my $msg = shift; warn $msg, "\n"; ++$errors; } sub fatal { my $msg = shift; warn "$whoami: $msg\n"; exit 2; } sub usage { warn " Usage: $whoami --print-path Prints full path to ${whoami}'s installation directory and exits. - OR - Usage: $whoami options Options include: -datadir datadir -bindirs bindir[:bindir...] [ -covdir [coverage-dir] ] [ -stdout-tty=[01] ] Subsidiary test programs are run with the -bindirs argument (a colon-separated list of directories, which may be relative but will be internally converted to absolute) prepended to the path and with the -datadir argument set as the current working directory. By default, this program runs datadir/*.test as subsidiary test suites. If the TESTS environment variable is set, it is taken to be a space-separated list of test suite names. For each name n, datadir/n.test is run. Test coverage support is built in. If a file whose name matches *.testcov in the coverage directory (which defaults to \".\") that is a valid test coverage file, the full path to the file into which test coverage results are written will be placed in the TC_FILENAME environment variable. (If running under cygwin, the Windows path will be in TC_WIN_FILENAME.) The test coverage scope, which is equal to the part of the testcov file name excluding the extension, is placed in the TC_SCOPE environment variable. If the -stdout-tty option is passed, its value overrides ${whoami}'s determination of whether standard output is a terminal. This can be useful for cases in which another program is invoking ${whoami} and passing its output through a pipe to a terminal. "; exit 2; } qpdf-8.0.2/qtest/README.txt0000644000064100006410000000021713247541377013404 0ustar ejbejbThis is a copy of qtest (http://qtest.qbilt.org) which is distributed under the terms of the Artistic license and has the same author as qpdf. qpdf-8.0.2/qtest/QTC/0000755000064100006410000000000013247541377012335 5ustar ejbejbqpdf-8.0.2/qtest/QTC/perl/0000755000064100006410000000000013247541377013277 5ustar ejbejbqpdf-8.0.2/qtest/QTC/perl/QTC.pm0000644000064100006410000000064413247541377014270 0ustar ejbejb# -*- perl -*- require 5.005; use strict; use FileHandle; package QTC; sub TC { my ($scope, $case, $n) = @_; local $!; $n = 0 unless defined $n; return unless ($scope eq ($ENV{'TC_SCOPE'} || "")); my $filename = $ENV{'TC_FILENAME'} || return; my $fh = new FileHandle(">>$filename") or die "open test coverage file: $!\n"; print $fh "$case $n\n"; $fh->close(); } 1; # # END OF QTC # qpdf-8.0.2/qtest/module/0000755000064100006410000000000013247541377013173 5ustar ejbejbqpdf-8.0.2/qtest/module/TestDriver.pm0000644000064100006410000013433413247541377015634 0ustar ejbejb# -*- perl -*- # # This file is part of qtest. # # Copyright 1993-2007, Jay Berkenbilt # # QTest is distributed under the terms of version 2.0 of the Artistic # license which may be found in the source distribution. # # Search for "PUBLIC METHODS" to find the public methods and # documentation on how to use them. require 5.008; use strict; package TestDriver::PidKiller; use vars qw($f_pid); $f_pid = 'pid'; sub new { my $class = shift; my $rep = +{+__PACKAGE__ => {} }; $rep->{+__PACKAGE__}{$f_pid} = shift; bless $rep, $class; } sub DESTROY { my $rep = shift; my $pid = $rep->{+__PACKAGE__}{$f_pid}; defined($$pid) && $$pid && kill 15, $$pid; } package TestDriver; use IO::Handle; use IO::File; use IO::Socket; use IO::Select; use POSIX ':sys_wait_h'; use File::Copy; use File::Find; use Carp; use Cwd; require QTC; # Constants # Possible test case outcomes use constant PASS => 'PASS'; use constant FAIL => 'FAIL'; # Input/Output keys use constant STRING => 'STRING'; use constant FILE => 'FILE'; use constant COMMAND => 'COMMAND'; use constant FILTER => 'FILTER'; use constant REGEXP => 'REGEXP'; use constant EXIT_STATUS => 'EXIT_STATUS'; use constant THREAD_DATA => 'THREAD_DATA'; use constant TD_THREADS => 'TD_THREADS'; use constant TD_SEQGROUPS => 'TD_SEQGROUPS'; # Flags use constant NORMALIZE_NEWLINES => 1 << 0; use constant NORMALIZE_WHITESPACE => 1 << 1; use constant EXPECT_FAILURE => 1 << 2; use constant RM_WS_ONLY_LINES => 1 << 3; # Field names use vars qw($f_socket $f_origdir $f_tempdir $f_testlog $f_testxml $f_suitename); $f_socket = 'socket'; $f_origdir = 'origdir'; $f_tempdir = 'tempdir'; $f_testlog = 'testlog'; $f_testxml = 'testxml'; $f_suitename = 'suitename'; use vars qw($f_passes $f_fails $f_xpasses $f_xfails $f_testnum); $f_passes = 'passes'; # expected passes $f_fails = 'fails'; # unexpected failures $f_xpasses = 'xpasses'; # unexpected passes $f_xfails = 'xfails'; # expected failures $f_testnum = 'testnum'; # Static Variables # QTEST_MARGIN sets the number of spaces to after PASSED or FAILED and # before the rightmost column of the screen. my $margin = $ENV{'QTEST_MARGIN'} || 8; $margin += $ENV{'QTEST_EXTRA_MARGIN'} || 0; my $ncols = 80; my $color_reset = ""; my $color_green = ""; my $color_yellow = ""; my $color_red = ""; my $color_magenta = ""; my $color_emph = ""; # MSWin32 support my $in_windows = 0; my $winbin = undef; if ($^O eq 'MSWin32') { $in_windows = 1; } sub get_tty_features { my $got_size = 0; eval { require Term::ReadKey; ($ncols, undef, undef, undef) = Term::ReadKey::GetTerminalSize(); $got_size = 1; }; if (! $got_size) { eval { # Get screen columns if possible no strict; local $^W = 0; local *X; { local $SIG{'__WARN__'} = sub {}; require 'sys/ioctl.ph'; } if ((defined &TIOCGWINSZ) && open(X, "+ {} }; if (@_ != 1) { croak "Usage: ", __PACKAGE__, "->new(\"test-suite name\")\n"; } my $suitename = shift; if (! ((@ARGV == 11) && (($ARGV[0] eq '-fd') || ($ARGV[0] eq '-port')) && ($ARGV[2] eq '-origdir') && ($ARGV[4] eq '-tempdir') && ($ARGV[6] eq '-testlog') && ($ARGV[8] eq '-testxml') && ($ARGV[10] =~ m/^-stdout-tty=([01])$/) && (-d $ARGV[5]))) { die +__PACKAGE__, ": improper invocation of test driver $0 (" . join(' ', @ARGV) . ")\n"; } my $fd = ($ARGV[0] eq '-fd') ? $ARGV[1] : undef; my $port = ($ARGV[0] eq '-port') ? $ARGV[1] : undef; my $origdir = $ARGV[3]; my $tempdir = $ARGV[5]; my $testlogfile = $ARGV[7]; my $testxmlfile = $ARGV[9]; my $testlog = new IO::File(">>$testlogfile"); binmode $testlog; my $testxml = new IO::File(">>$testxmlfile"); binmode $testxml; $ARGV[10] =~ m/=([01])/ or die +__PACKAGE__, ": INTERNAL ERROR in ARGV[10]"; my $stdout_is_tty = $1; if ($stdout_is_tty) { get_tty_features(); } my $socket; if (defined $fd) { $socket = new IO::Handle; if (! $socket->fdopen($fd, "w+")) { warn +__PACKAGE__, ": unable to open file descriptor $fd.\n"; warn +__PACKAGE__, " must be created from a program invoked by" . " the test driver system\n"; die +__PACKAGE__, ": initialization failed"; } } else { $socket = IO::Socket::INET->new( PeerAddr => '127.0.0.1', PeerPort => $port) or die "unable to connect to port $port: $!\n"; } $socket->autoflush(); binmode $socket; # Do some setup that would ordinarily be reserved for a main # program. We want test suites to behave in a certain way so tha # the overall system works as desired. # Killing the driver should cause to to exit. Without this, it # may cause whatever subsidiary program is being run to exit and # the driver to continue to the next test case. $SIG{'INT'} = $SIG{'HUP'} = $SIG{'TERM'} = $SIG{'QUIT'} = sub { exit 2 }; # Unbuffer our output. $| = 1; $rep->{+__PACKAGE__}{$f_socket} = $socket; $rep->{+__PACKAGE__}{$f_origdir} = $origdir; $rep->{+__PACKAGE__}{$f_tempdir} = $tempdir; $rep->{+__PACKAGE__}{$f_testlog} = $testlog; $rep->{+__PACKAGE__}{$f_testxml} = $testxml; $rep->{+__PACKAGE__}{$f_suitename} = $suitename; $rep->{+__PACKAGE__}{$f_passes} = 0; $rep->{+__PACKAGE__}{$f_fails} = 0; $rep->{+__PACKAGE__}{$f_xpasses} = 0; $rep->{+__PACKAGE__}{$f_xfails} = 0; $rep->{+__PACKAGE__}{$f_testnum} = 1; # Do protocol handshaking with the test driver system my $init = scalar(<$socket>); if ($init !~ m/^TEST_DRIVER 1$/) { die +__PACKAGE__, ": incorrect protocol with test driver system\n"; } $socket->print("TEST_DRIVER_CLIENT 1\n"); bless $rep, $class; } sub _socket { my $rep = shift; $rep->{+__PACKAGE__}{$f_socket}; } sub _tempdir { my $rep = shift; $rep->{+__PACKAGE__}{$f_tempdir}; } sub _testlog { my $rep = shift; $rep->{+__PACKAGE__}{$f_testlog}; } sub _testxml { my $rep = shift; $rep->{+__PACKAGE__}{$f_testxml}; } sub _suitename { my $rep = shift; $rep->{+__PACKAGE__}{$f_suitename}; } sub _testnum { my $rep = shift; $rep->{+__PACKAGE__}{$f_testnum} = $_[0] if @_; $rep->{+__PACKAGE__}{$f_testnum}; } # PUBLIC METHODS # Usage: report(n) # Specify the number of tests that are expected to have been run. # Please note: the purpose of reporting the number of test cases with # "report" is as an extra check to make sure that the test suite # itself didn't have a logic error that caused some test cases to be # skipped. The argument to "report" should therefore be a hard-coded # number or a number computed only from static features in the test # suite. It should not be a number that is counted up during the # process of running the test suite. Computing this number as a side # effect of running test cases would defeat the purpose of the number. # For example, if the test suite consists of an array of test cases, # and the test suite code iterates through that loop and calls # "runtest" twice for each element, it would be reasonable to pass an # expression that includes the size of the array as an argument to # "report", but it would not be appropriate to have a variable called # "$ntests" that is incremented each time "runtest" is called and then # passed to "report". sub report { my $rep = shift; croak "Usage: ", __PACKAGE__, "->report(num-tests-expected)\n" unless @_ && $_[0] =~ m/^\d+$/; # Message to test driver system: # n-expected-tests passes fails unexpected-passes expected-fails my @vals = (shift); push(@vals, map { $rep->{+__PACKAGE__}{$_} } ($f_passes, $f_fails, $f_xpasses, $f_xfails)); my $socket = $rep->_socket(); $socket->print(join(' ', @vals)); $socket->flush(); } # Usage: notify(string) # Prints the string followed by a newline to standard output of the # test suite. sub notify { my $rep = shift; my $msg = shift; &QTC::TC("testdriver", "TestDriver notify"); print $msg, "\n"; } # Usage: emphasize(string) # Prints the string followed by a newline to standard output of the # test suite. The string is printed with emphasis if the terminal # supports color. sub emphasize { my $rep = shift; my $msg = shift; &QTC::TC("testdriver", "TestDriver emphasize"); print $color_emph, $msg, $color_reset, "\n"; } # Usage: prompt(msg, env, default) # If the environment variable "env" is set, its value is returned. # Otherwise, if STDIN is a tty, the user is prompted for an answer # using msg as the prompt, or if STDIN is not a tty, the value # specified in "default" is returned. Note that careless use of # prompt in test suites may make the test suites unable to be run in # batch mode. sub prompt { my $rep = shift; my ($msg, $env, $default) = @_; &QTC::TC("testdriver", "TestDriver prompt"); my $answer = $ENV{$env}; if (defined $answer) { print "$msg\n"; print "[Question answered from environment variable \$$env: $answer]\n"; } else { print "To avoid question, place answer in" . " environment variable \$$env\n"; # Note: ActiveState perl 5.10.1 gives the wrong answer for -t # STDIN when NUL (http://bugs.activestate.com/show_bug.cgi?id=85614). if ((-t STDIN) && (-t STDOUT)) { print "$msg "; chop($answer = ); if ($answer eq '') { print "[Using default answer for question: $default]\n"; $answer = $default; } } else { print "$msg\n"; print "[Using default answer for question: $default]\n"; $answer = $default; } } $answer; } # Usage: get_start_dir() # Returns the name of the directory from which the test driver was # originally invoked. This can be useful for test suites that are # designed to be run from read-only areas or from multiple locations # simultaneously: they can get the original invocation directory and # use it as a place to write temporary files. sub get_start_dir { my $rep = shift; $rep->{+__PACKAGE__}{$f_origdir}; } # Usage: runtest description input output [ flags ] # Returns true iff test passes; i.e., input matches output # Parameters: # description: a short textual description of the test case # input: a hash reference that defines the input to the test case # input keys and associated values: # STRING: a string that is used verbatim as the test input # FILE: a file whose contents are used as the test input # COMMAND: an array reference containing a command and arguments # or a string representing the command. This is passed to exec, # so the rules that exec uses to determine whether to pass this # to a shell are followed. The command is run with STDIN set to # /dev/null, STDOUT redirected to an internal file, and STDERR # copied to STDOUT. # Note that exactly one of STRING, FILE, or COMMAND must appear. # FILTER: if specified, it is a program that is run on the test # input specified above to generate the true test input. # output: a hash reference that defines the expected output of the # test case # STRING: a string that contains the expected test output # FILE: a file that contains the expected test output # REGEXP: a regular expression that must match the test output # Note that exactly one of STRING, FILE, or REGEXP must appear. # EXIT_STATUS: the exit status of the command. Required iff the # intput is specified by COMMAND. A value of undef means that we # don't care about the exit status of a command. The special # value of '!0' means we allow any abnormal exit status but we # don't care what the specific exit status is. An integer value # is the ordinary exit status of a command. A string of the form # SIG:n indicates that the program has exited with signal n. # Note that SIG:n is not reliable in a Windows (non-Cygwin) # environment. # THREAD_DATA: If specified, the test output is expected to # contain multithreaded output with output lines marked by thread # and sequence group identifiers. The value must be a hash that # contains required key TD_THREADS and optional key TD_SEQGROUPS. # The value of each key is an array reference containing a list # of threads or sequence groups as appropriate. When THREAD_DATA # is specified, the single call to runtest actually generates t + # s + 3 tests where "t" is the number of threads and "s" is the # number of sequence groups specified. See the documentation for # full details on how multithreaded output is handled by the test # driver. # flags: additional flags to control the test case; should be # logically orred together (e.g. NORMALIZE_WHITESPACE | EXPECT_FAILURE) # NORMALIZE_NEWLINES: If specified, all newlines or carriage # return/newline combinations in the input are translated to # straight UNIX-style newlines. This is done before writing # through any filter. Newlines are also normalized in the # expected output. # NORMALIZE_WHITESPACE: If specified, all carriage returns are # removed, and all strings of one or more space or tab characters # are replaced by a single space character in the input. This is # done before writing through any filter. The expected output # must be normalized in this way as well in order for the test to # pass. # EXPECT_FAILURE: If specified, the test case is expected to # fail. In this case, a test case failure will not generate # verbose output or cause overall test suite failure, and a pass # will generate test suite failure. This should be used for # place-holder test cases that exercise a known bug that cannot # yet be fixed. # RM_WS_ONLY_LINES: If specified, all lines only containing any # whitespace character like newlines, spaces or tabs are removed # from the input. This is done before writing through any filter # and is especially useful if some tests output more newlines on # some platforms than on others. sub runtest { my $rep = shift; if (! ((@_ == 3) || (@_ == 4))) { croak +("Usage: ", +__PACKAGE__, "->runtest(description, input, output[, flags])\n"); } my ($description, $input, $output, $flags) = @_; $flags = 0 unless defined $flags; my $tempdir = $rep->_tempdir(); if (ref($description) ne '') { &QTC::TC("testdriver", "TestDriver description not string"); croak +__PACKAGE__, "->runtest: description must be a string\n"; } if (ref($input) ne 'HASH') { &QTC::TC("testdriver", "TestDriver input not hash"); croak +__PACKAGE__, "->runtest: input must be a hash reference\n"; } if (ref($output) ne 'HASH') { &QTC::TC("testdriver", "TestDriver output not hash"); croak +__PACKAGE__, "->runtest: output must be a hash reference\n"; } if ((ref($flags) ne '') || ($flags !~ m/^\d+$/)) { &QTC::TC("testdriver", "TestDriver flags not integer"); croak +__PACKAGE__, "->runtest: flags must be an integer\n"; } my ($extra_in_keys, $in_string, $in_file, $in_command, $in_filter) = check_hash_keys($input, $rep->STRING, $rep->FILE, $rep->COMMAND, $rep->FILTER); if ($extra_in_keys) { &QTC::TC("testdriver", "TestDriver extraneous input keys"); croak +(+__PACKAGE__, "->runtest: extraneous keys in intput hash: $extra_in_keys\n"); } my ($extra_out_keys, $out_string, $out_file, $out_regexp, $out_exit_status, $thread_data) = check_hash_keys($output, $rep->STRING, $rep->FILE, $rep->REGEXP, $rep->EXIT_STATUS, $rep->THREAD_DATA); if ($extra_out_keys) { &QTC::TC("testdriver", "TestDriver extraneous output keys"); croak +(+__PACKAGE__, "->runtest: extraneous keys in output hash: $extra_out_keys\n"); } if ((((defined $in_string) ? 1 : 0) + ((defined $in_file) ? 1 : 0) + ((defined $in_command) ? 1 : 0)) != 1) { &QTC::TC("testdriver", "TestDriver invalid input"); croak +__PACKAGE__, "->runtest: exactly one of" . " STRING, FILE, or COMMAND must be present for input\n"; } if ((((defined $out_string) ? 1 : 0) + ((defined $out_file) ? 1 : 0) + ((defined $out_regexp) ? 1 : 0)) != 1) { &QTC::TC("testdriver", "TestDriver invalid output"); croak +__PACKAGE__, "->runtest: exactly one of" . " STRING, FILE, or REGEXP must be present for output\n"; } if ((defined $in_command) != (exists $output->{$rep->EXIT_STATUS})) { &QTC::TC("testdriver", "TestDriver invalid status"); croak +__PACKAGE__, "->runtest: input COMMAND and output EXIT_STATUS" . " must either both appear both not appear\n"; } my ($threads, $seqgroups) = (undef, undef); if (defined $thread_data) { if (ref($thread_data) ne 'HASH') { &QTC::TC("testdriver", "TestDriver thread_data not hash"); croak +__PACKAGE__, "->runtest: THREAD_DATA" . " must be a hash reference\n"; } my $extra_thread_keys; ($extra_thread_keys, $threads, $seqgroups) = check_hash_keys($thread_data, $rep->TD_THREADS, $rep->TD_SEQGROUPS); if ($extra_thread_keys) { &QTC::TC("testdriver", "TestDriver extraneous thread_data keys"); croak +(+__PACKAGE__, "->runtest: extraneous keys in THREAD_DATA hash:" . " $extra_thread_keys\n"); } if (! defined $threads) { &QTC::TC("testdriver", "TestDriver thread_data no threads"); croak +__PACKAGE__, "->runtest: THREAD_DATA" . " must contain TD_THREADS\n"; } elsif (ref($threads) ne 'ARRAY') { &QTC::TC("testdriver", "TestDriver threads not array ref"); croak +__PACKAGE__, "->runtest: TD_THREADS" . " must be an array reference\n"; } if ((defined $seqgroups) && (ref($seqgroups) ne 'ARRAY')) { &QTC::TC("testdriver", "TestDriver seqgroups not array ref"); croak +__PACKAGE__, "->runtest: TD_SEQGROUPS" . " must be an array reference\n"; } } # testnum is incremented by print_testid my $testnum = $rep->_testnum(); my $category = $rep->_suitename(); $rep->print_testid($description); # Open a file handle to read the raw (unfiltered) test input my $pid = undef; my $pid_killer = new TestDriver::PidKiller(\$pid); my $in = new IO::Handle; my $use_tempfile = $in_windows; my $tempout_status = undef; if (defined $in_string) { &QTC::TC("testdriver", "TestDriver input string"); open($in, '<', \$in_string) or die +(+__PACKAGE__, "->runtest: unable to read from input string: $!\n"); } elsif (defined $in_file) { &QTC::TC("testdriver", "TestDriver input file"); open($in, '<', $in_file) or croak +(+__PACKAGE__, "->runtest: unable to read from input file $in_file: $!\n"); } elsif (defined $in_command) { if (ref($in_command) eq 'ARRAY') { &QTC::TC("testdriver", "TestDriver input command array"); } elsif (ref($in_command) eq '') { &QTC::TC("testdriver", "TestDriver input command string"); } if ($use_tempfile) { my $tempout = "$tempdir/tempout"; $tempout_status = $rep->winrun( $in_command, File::Spec->devnull(), $tempout); open($in, "<$tempout") or croak +(+__PACKAGE__, "->runtest: unable to read from" . " input file $tempout: $!\n"); } else { $pid = open($in, "-|"); croak +__PACKAGE__, "->runtest: fork failed: $!\n" unless defined $pid; if ($pid == 0) { open(STDERR, ">&STDOUT"); open(STDIN, '<', \ ""); if (ref($in_command) eq 'ARRAY') { exec @$in_command or croak+(+__PACKAGE__, "->runtest: unable to run command ", join(' ', @$in_command), "\n"); } else { exec $in_command or croak+(+__PACKAGE__, "->runtest: unable to run command ", $in_command, "\n"); } } } } else { die +__PACKAGE__, ": INTERNAL ERROR: invalid test input"; } binmode $in; # Open file handle into which to write the actual output my $actual = new IO::File; my $actual_file = "$tempdir/actual"; if (defined $in_filter) { &QTC::TC("testdriver", "TestDriver filter defined"); if ($use_tempfile) { my $filter_file = "$tempdir/filter"; open(F, ">$filter_file.1") or croak+(+__PACKAGE__, "->runtest: unable to create $filter_file.1: $!\n"); binmode F; while (<$in>) { print F; } $in->close(); close(F); $rep->winrun($in_filter, "$filter_file.1", $filter_file); open($in, "<$filter_file") or croak +(+__PACKAGE__, "->runtest: unable to read from" . " input file $filter_file: $!\n"); binmode $in; $in_filter = undef; } } if (defined $in_filter) { # Write through filter to actual file open($actual, "| $in_filter > $actual_file") or croak +(+__PACKAGE__, ": pipe to filter $in_filter failed: $!\n"); } else { &QTC::TC("testdriver", "TestDriver filter not defined"); open($actual, ">$actual_file") or die +(+__PACKAGE__, ": write to $actual_file failed: $!\n"); } binmode $actual; # Write from input to actual output, normalizing spaces and # newlines if needed my $exit_status = undef; while (1) { my ($line, $status) = read_line($in, $pid); $exit_status = $status if defined $status; last unless defined $line; if ($flags & $rep->NORMALIZE_WHITESPACE) { &QTC::TC("testdriver", "TestDriver normalize whitespace"); $line =~ s/[ \t]+/ /g; } else { &QTC::TC("testdriver", "TestDriver no normalize whitespace"); } if ($flags & $rep->NORMALIZE_NEWLINES) { &QTC::TC("testdriver", "TestDriver normalize newlines"); $line =~ s/\r$//; } else { &QTC::TC("testdriver", "TestDriver no normalize newlines"); } if ($flags & $rep->RM_WS_ONLY_LINES) { &QTC::TC("testdriver", "TestDriver remove empty lines"); $line =~ s/^\s+$//; } else { &QTC::TC("testdriver", "TestDriver no remove empty lines"); } $actual->print($line); $actual->flush(); last if defined $exit_status; } $in->close(); if (defined $tempout_status) { $exit_status = $tempout_status; } if (defined $in_command) { if (! defined $exit_status) { $exit_status = $?; } my $exit_status_number = 0; my $exit_status_signal = 0; if ($in_windows) { # WIFSIGNALED et al are not defined. This is emperically # what happens with MSYS 1.0.11 and ActiveState Perl # 5.10.1. if ($exit_status & 0x8000) { $exit_status_signal = 1; $exit_status = ($exit_status & 0xfff) >> 8; $exit_status = "SIG:$exit_status"; } elsif ($exit_status >= 256) { $exit_status_number = 1; $exit_status = $exit_status >> 8; } } elsif (WIFSIGNALED($exit_status)) { $exit_status_signal = 1; $exit_status = "SIG:" . WTERMSIG($exit_status); } elsif (WIFEXITED($exit_status)) { $exit_status_number = 1; $exit_status = WEXITSTATUS($exit_status); } if ($exit_status_number) { &QTC::TC("testdriver", "TestDriver exit status number"); } if ($exit_status_signal) { &QTC::TC("testdriver", "TestDriver exit status signal"); } } $? = 0; $actual->close(); $pid = undef; if ($?) { die +(+__PACKAGE__, "->runtest: failure closing actual output; status = $?\n"); } # Compare exit statuses. This expression is always true when the # input was not from a command. if ((defined $out_exit_status) && ($out_exit_status eq '!0')) { &QTC::TC("testdriver", "TestDriver non-zero exit status"); } my $status_match = ((! defined $out_exit_status) || ((defined $exit_status) && ( (($out_exit_status eq '!0') && ($exit_status ne 0)) || ($exit_status eq $out_exit_status) ))); # Compare actual output with expected output. my $expected_file = undef; my $output_match = undef; if (defined $out_string) { &QTC::TC("testdriver", "TestDriver output string"); # Write output string to a file so we can run diff $expected_file = "$tempdir/expected"; my $e = new IO::File; open($e, ">$expected_file") or die +(__PACKAGE__, "->runtest: unable to write to $expected_file: $!\n"); binmode $e; $e->print($out_string); $e->close(); } elsif (defined $out_file) { &QTC::TC("testdriver", "TestDriver output file"); if ($flags & $rep->NORMALIZE_NEWLINES) { # Normalize newlines in expected output file $expected_file = "$tempdir/expected"; unlink $expected_file; my $in = new IO::File; if (open($in, "<$out_file")) { binmode $in; my $e = new IO::File; open($e, ">$expected_file") or die +(__PACKAGE__, "->runtest: unable to write to $expected_file: $!\n"); binmode $e; while (<$in>) { s/\r?$//; $e->print($_); } $e->close(); $in->close(); } } else { $expected_file = $out_file; } } elsif (defined $out_regexp) { &QTC::TC("testdriver", "TestDriver output regexp"); # No expected file; do regexp test to determine whether output # matches $actual = new IO::File; open($actual, "<$actual_file") or die +(__PACKAGE__, "->runtest: unable to read $actual_file: $!\n"); binmode $actual; local $/ = undef; my $actual_output = <$actual>; $actual->close(); $output_match = ($actual_output =~ m/$out_regexp/); } else { die +__PACKAGE__, ": INTERNAL ERROR: invalid test output"; } my $output_diff = undef; if (! defined $output_match) { if (! defined $expected_file) { die +__PACKAGE__, ": INTERNAL ERROR: expected_file not defined"; } if (defined $threads) { # Real output comparisons are done later. $output_match = 1; } else { $output_diff = "$tempdir/difference"; my $r = $rep->safe_pipe(['diff', '-a', '-u', $expected_file, $actual_file], $output_diff); $output_match = ($r == 0); } } my $outcome = ($output_match && $status_match) ? PASS : FAIL; my $exp_outcome = (($flags & $rep->EXPECT_FAILURE) ? FAIL : PASS); my $outcome_text = print_results($outcome, $exp_outcome); my $passed = $rep->update_counters($outcome, $exp_outcome); my $testxml = $rep->_testxml(); my $testlog = $rep->_testlog(); # $outcome_text is for the human-readable. We need something # different for the xml file. $testxml->print(" print(" >\n"); $testlog->printf("$category test %d (%s) FAILED\n", $testnum, $description); my $cwd = getcwd(); $testlog->print("cwd: $cwd\n"); $testxml->print(" " . xmlify($cwd) . "\n"); my $cmd = $in_command; if ((defined $cmd) && (ref($cmd) eq 'ARRAY')) { $cmd = join(' ', @$cmd); } if (defined $cmd) { $testlog->print("command: $cmd\n"); $testxml->print(" " . xmlify($cmd) . "\n"); } if (defined $out_file) { # Use $out_file, not $expected_file -- we are only # interested in dispaying this information if the user's # real output was original in a file. $testlog->print("expected output in $out_file\n"); $testxml->print( " " . xmlify($out_file) . "\n"); } # It would be nice if we could filter out internal calls for # times when runtest is called inside of the module for # multithreaded testing. $testlog->print(Carp::longmess()); $testxml->print(" test failure" . xmlify(Carp::longmess()) . "\n"); if (! $status_match) { &QTC::TC("testdriver", "TestDriver status mismatch"); $testlog->printf("\tExpected status: %s\n", $out_exit_status); $testlog->printf("\tActual status: %s\n", $exit_status); $testxml->print( " $out_exit_status\n"); $testxml->print( " $exit_status\n"); } if (! $output_match) { &QTC::TC("testdriver", "TestDriver output mismatch"); $testlog->print("--> BEGIN EXPECTED OUTPUT <--\n"); $testxml->print(" "); if (defined $expected_file) { write_file_to_fh($expected_file, $testlog); xml_write_file_to_fh($expected_file, $testxml); } elsif (defined $out_regexp) { $testlog->print("regexp: " . $out_regexp); if ($out_regexp !~ m/\n$/s) { $testlog->print("\n"); } $testxml->print("regexp: " . xmlify($out_regexp)); } else { die +(+__PACKAGE__, "->runtest: INTERNAL ERROR: no expected output\n"); } $testlog->print("--> END EXPECTED OUTPUT <--\n" . "--> BEGIN ACTUAL OUTPUT <--\n"); $testxml->print("\n" . " "); write_file_to_fh($actual_file, $testlog); xml_write_file_to_fh($actual_file, $testxml); $testlog->print("--> END ACTUAL OUTPUT <--\n"); $testxml->print("\n"); if (defined $output_diff) { &QTC::TC("testdriver", "TestDriver display diff"); $testlog->print("--> DIFF EXPECTED ACTUAL <--\n"); $testxml->print(" "); write_file_to_fh($output_diff, $testlog); xml_write_file_to_fh($output_diff, $testxml); $testlog->print("--> END DIFFERENCES <--\n"); $testxml->print("\n"); } else { &QTC::TC("testdriver", "TestDriver display no diff"); } } $testxml->print(" \n"); } else { $testxml->print(" />\n"); } if (defined $threads) { if (! defined $expected_file) { &QTC::TC("testdriver", "TestDriver thread data but no exp output"); croak +(+__PACKAGE__, "->runtest: thread data invalid". " without fixed test output\n"); } my $thread_expected = "$tempdir/thread-expected"; my $thread_actual = "$tempdir/thread-actual"; copy($actual_file, $thread_actual); filter_seqgroups($expected_file, $thread_expected); $passed = $rep->analyze_thread_data($description, $expected_file, $actual_file, $threads, $seqgroups) && $passed; if ($passed) { $rep->runtest($description . ": all subcases passed", {$rep->STRING => ""}, {$rep->STRING => ""}); } else { $rep->runtest($description . ": original output", {$rep->FILE => $thread_actual}, {$rep->FILE => $thread_expected}); } unlink $thread_expected, $thread_actual; } $passed; } sub read_line { my ($fh, $pid) = @_; my $line = undef; my $status = undef; if (defined $pid) { # It doesn't work to just call <$fh> in this case. For some # unknown reason, some programs occasionally exit and cause an # interrupted system call return from read which perl just # ignores, making the call to <$fh> hang. To protect # ourselves, we explicitly check for the program having exited # periodically if read hasn't returned anything. while (1) { my $s = new IO::Select(); $s->add($fh); my @ready = $s->can_read(1); if (@ready == 0) { if (waitpid($pid, WNOHANG) > 0) { $status = $?; last; } next; } else { my $buf = ""; my $status = sysread($fh, $buf, 1); if ((defined $status) && ($status == 1)) { $line = "" unless defined $line; $line .= $buf; last if $buf eq "\n"; } else { last; } } } } else { $line = <$fh>; } ($line, $status); } sub write_file_to_fh { my ($file, $out) = @_; my $in = new IO::File("<$file"); if (defined $in) { binmode $in; my $ended_with_newline = 1; while (<$in>) { $out->print($_); $ended_with_newline = m/\n$/s; } if (! $ended_with_newline) { $out->print("[no newline at end of data]\n"); } $in->close(); } else { $out->print("[unable to open $file: $!]\n"); } } sub xmlify { my ($str, $attr) = @_; $attr = 0 unless defined $attr; $str =~ s/\&/\&/g; $str =~ s//>/g; $str =~ s/\"/"/g if $attr; $str =~ s/([\000-\010\013-\037\177-\377])/sprintf("&#x%02x;", ord($1))/ge; $str; } sub xml_write_file_to_fh { my ($file, $out) = @_; my $in = new IO::File("<$file"); if (defined $in) { binmode $in; while (defined ($_ = <$in>)) { $out->print(xmlify($_)); } $in->close(); } else { $out->print("[unable to open $file: $!]"); } } sub check_hash_keys { my ($hash, @keys) = @_; my %actual_keys = (); foreach my $k (keys %$hash) { $actual_keys{$k} = 1; } foreach my $k (@keys) { delete $actual_keys{$k}; } my $extra_keys = join(', ', sort (keys %actual_keys)); ($extra_keys, (map { $hash->{$_} } @keys)); } sub print_testid { my $rep = shift; my ($description) = @_; my $testnum = $rep->_testnum(); my $category = $rep->_suitename(); print_and_pad(sprintf("$category %2d (%s)", $testnum, $description)); my $tc_filename = $ENV{'TC_FILENAME'} || ""; if ($tc_filename && open(F, ">>$tc_filename")) { binmode F; printf F "# $category %2d (%s)\n", $testnum, $description; close(F); } $rep->_testnum(++$testnum); } sub update_counters { my $rep = shift; my ($outcome, $exp_outcome) = @_; (($outcome eq PASS) && ($exp_outcome eq PASS)) && $rep->{+__PACKAGE__}{$f_passes}++; (($outcome eq PASS) && ($exp_outcome eq FAIL)) && $rep->{+__PACKAGE__}{$f_xpasses}++; (($outcome eq FAIL) && ($exp_outcome eq PASS)) && $rep->{+__PACKAGE__}{$f_fails}++; (($outcome eq FAIL) && ($exp_outcome eq FAIL)) && $rep->{+__PACKAGE__}{$f_xfails}++; ($outcome eq PASS); } sub analyze_thread_data { my $rep = shift; my ($description, $expected, $actual, $expected_threads, $expected_seqgroups) = @_; my $tempdir = $rep->_tempdir(); my %actual_threads = (); my %actual_seqgroups = (); my @errors = (); $rep->thread_cleanup(); $rep->split_combined($expected); $rep->analyze_threaded_output ($actual, \%actual_threads, \%actual_seqgroups, \@errors); # Make sure we saw the right threads and sequences my $desired = "threads:\n"; $desired .= join('', map { " $_\n" } (sort @$expected_threads)); $desired .= "sequence groups:\n"; if (defined $expected_seqgroups) { $desired .= join('', map { " $_\n" } (sort @$expected_seqgroups)); } my $observed = "threads:\n"; $observed .= join('', map { " $_\n" } (sort keys %actual_threads)); $observed .= "sequence groups:\n"; $observed .= join('', map { " $_\n" } (sort keys %actual_seqgroups)); if (@errors) { $observed .= join('', @errors); } my $passed = $rep->runtest("$description: multithreaded data", {$rep->STRING => $observed}, {$rep->STRING => $desired}); foreach my $th (@{$expected_threads}) { create_if_missing("$tempdir/$th.thread-actual", "[no actual output]\n"); filter_seqgroups("$tempdir/$th.thread-expected", "$tempdir/$th.thread-filtered"); $passed = $rep->runtest($description . ": thread $th", {$rep->FILE => "$tempdir/$th.thread-actual"}, {$rep->FILE => "$tempdir/$th.thread-filtered"}) && $passed; } if (defined $expected_seqgroups) { foreach my $sg (@{$expected_seqgroups}) { create_if_missing("$tempdir/$sg.seq-actual", "[no actual output]\n"); $passed = $rep->runtest($description . ": seqgroup $sg", {$rep->FILE => "$tempdir/$sg.seq-actual"}, {$rep->FILE => "$tempdir/$sg.seq-expected"}) && $passed; } } $rep->thread_cleanup(); $passed; } sub analyze_threaded_output { my $rep = shift; my ($file, $threads, $seqgroups, $errors) = @_; my $sequence_checking = 1; open(F, "<$file") or die +__PACKAGE__, ": can't open $file: $!\n"; binmode F; my $cur_thread = undef; while () { if (m/^(\[\[(.+?)\]\]:)/) { my $tag = $1; my $thread = $2; my $rest = $'; #' [unconfuse emacs font lock mode] $rep->handle_line($file, $., $tag, $thread, $rest, \$sequence_checking, $threads, $seqgroups, $errors); $cur_thread = $thread; } else { $rep->handle_line($file, $., "", $cur_thread, $_, \$sequence_checking, $threads, $seqgroups, $errors); } } close(F); } sub handle_line { my $rep = shift; my ($file, $lineno, $tag, $thread, $rest, $sequence_checking, $threads, $seqgroups, $errors) = @_; my $tempdir = $rep->_tempdir(); if (! exists $threads->{$thread}) { my $fh = new IO::File("<$tempdir/$thread.thread-expected"); if (! $fh) { &QTC::TC("testdriver", "TestDriver no input file for thread"); $fh = undef; $$sequence_checking = 0; push(@$errors, "$file:$.: no input file for thread $thread; " . "sequence checking abandoned\n"); } else { binmode $fh; } $threads->{$thread} = $fh; } my $known = defined($threads->{$thread}); my $seqs = ""; if ($$sequence_checking) { my $fh = $threads->{$thread}; my $next_input_line = scalar(<$fh>); if (! defined $next_input_line) { $next_input_line = "[EOF]\n"; } $seqs = $rep->strip_seqs(\$next_input_line); if ($next_input_line eq $rest) { if ($seqs ne "") { $rep->handle_seqs($seqs, $tag . $rest, $seqgroups); } } else { &QTC::TC("testdriver", "TestDriver thread mismatch"); $$sequence_checking = 0; push(@$errors, "$file:$.: thread $thread mismatch; " . "sequencing checking abandoned\n" . "actual $rest" . "expected $next_input_line"); } } output_line("$tempdir/$thread.thread-actual", $rest); if (! $known) { &QTC::TC("testdriver", "TestDriver output from unknown thread"); push(@$errors, "[[$thread]]:$rest"); } } sub strip_seqs { my $rep = shift; my $linep = shift; my $seqs = ""; if ($$linep =~ s/^\(\(.*?\)\)//) { $seqs = $&; } $seqs; } sub handle_seqs { my $rep = shift; my ($seqs, $line, $seqgroups) = @_; my $tempdir = $rep->_tempdir(); $seqs =~ s/^\(\((.*?)\)\)/$1/; foreach my $seq (split(',', $seqs)) { $seqgroups->{$seq} = 1; output_line("$tempdir/$seq.seq-actual", $line); } } sub filter_seqgroups { my ($infile, $outfile) = @_; open(F, "<$infile") or die +__PACKAGE__, ": can't open $infile: $!\n"; binmode F; open(O, ">$outfile") or die +__PACKAGE__, ": can't create $outfile: $!\n"; binmode O; while () { s/^((?:\[\[.+?\]\]:)?)\(\(.+?\)\)/$1/; print O; } close(O); close(F); } sub output_line { my ($file, $line) = @_; open(O, ">>$file") or die +__PACKAGE__, ": can't open $file: $!\n"; binmode O; print O $line or die +__PACKAGE__, ": can't append to $file: $!\n"; close(O) or die +__PACKAGE__, ": close $file failed: $!\n"; } sub create_if_missing { my ($file, $line) = @_; if (! -e $file) { open(O, ">$file") or die +__PACKAGE__, ": can't create $file: $!\n"; binmode O; print O $line; close(O); } } sub split_combined { my $rep = shift; my $combined = shift; my $tempdir = $rep->_tempdir(); open(C, "<$combined") or die +__PACKAGE__, ": can't open $combined: $!\n"; binmode C; my %files = (); my $last_thread_fh = undef; while () { my $thread_fh = $last_thread_fh; my $thread_out = undef; if (m/^(\[\[(.+?)\]\]:)(\(\((.+?)\)\))?(.*\n?)$/) { my $thread_full = $1; my $thread = $2; my $seq_full = $3; my $seq = $4; my $rest = $5; my $seq_out = undef; $thread_out = $rest; my @seq_files = (); my $thread_file = "$tempdir/$thread.thread-expected"; if (defined $seq_full) { $thread_out = $seq_full . $thread_out; $seq_out = $thread_full . $rest; foreach my $s (split(/,/, $seq)) { my $f = "$tempdir/$s.seq-expected"; my $fh = cache_open(\%files, $f); $fh->print($seq_out); } } $thread_fh = cache_open(\%files, $thread_file); } else { $thread_out = $_; } if ((defined $thread_out) && (! defined $thread_fh)) { die +__PACKAGE__, ": no place to put output lines\n"; } $thread_fh->print($thread_out) if defined $thread_out; $last_thread_fh = $thread_fh; } close(C); map { $_->close() } (values %files); } sub cache_open { my ($cache, $file) = @_; if (! defined $file) { return undef; } if (! exists $cache->{$file}) { unlink $file; my $fh = new IO::File(">$file") or die +__PACKAGE__, ": can't open $file: $!\n"; binmode $fh; $cache->{$file} = $fh; } $cache->{$file}; } sub thread_cleanup { my $rep = shift; my $dir = $rep->_tempdir(); my @files = +(grep { m/\.(thread|seq)-(actual|expected|filtered)$/ } (glob("$dir/*"))); if (@files) { unlink @files; } } sub rmrf { my $path = shift; return unless -e $path; my $wanted = sub { if ((-d $_) && (! -l $_)) { rmdir $_ or die "rmdir $_ failed: $!\n"; } else { unlink $_ or die "unlink $_ failed: $!\n"; } }; finddepth({wanted => $wanted, no_chdir => 1}, $path); } sub safe_pipe { my $rep = shift; my ($cmd, $outfile) = @_; my $result = 0; if ($in_windows) { $result = $rep->winrun($cmd, File::Spec->devnull(), $outfile); } else { my $pid = open(C, "-|"); if ($pid) { # parent my $out = new IO::File(">$outfile") or die +__PACKAGE__, ": can't open $outfile: $!\n"; binmode C; while () { $out->print($_); } close(C); $result = $?; $out->close(); } else { # child open(STDERR, ">&STDOUT"); exec(@$cmd) || die +__PACKAGE__, ": $cmd->[0] failed: $!\n"; } } $result; } sub winrun { # This function does several things to make running stuff on # Windows look sort of like running things on UNIX. It assumes # MinGW perl is running in an MSYS/MinGW environment. # # * When an MSYS/MinGW program is run with system("..."), its # newlines generate \r\n, but when it's run from MSYS sh, its # newlines generate \n. We want \n for UNIX-like programs. # # * system("...") in perl doesn't have any special magic to # handle #! lines in scripts. A lot of test suites will count # on that. # # * There's no Windows equivalent to execve with separate # arguments, so all sorts of fancy quoting is necessary when * # dealing with arguments with spaces, etc. # # * Pipes work unreliably. Fork emulation is very incomplete. # # To work around these issues, we ensure that everything is # actually executed from the MSYS /bin/sh. We find the actual # path of that and then write a shell script which we explicitly # invoke as an argument to /bin/sh. If we have a string that we # want executed with /bin/sh, we include the string in the shell # script. If we have an array, we pass the array on the # commandline to the shell script and let it preserve spacing. We # also do our output redirection in the shell script itself since # redirection of STDOUT and STDERR doesn't carry forward to # programs invoked by programs we invoke. Finally, we filter out # errors generated by the script itself, since it is supposed to # be an invisible buffer for smoother execution of programs. # Experience shows that its output comes from things like printing # the names of signals generated by subsidiary programs. my $rep = shift; my ($in_command, $in, $out) = @_; my $tempdir = $rep->_tempdir(); my $tempfilename = "$tempdir/winrun.tmp"; if (! defined $winbin) { my $comspec = $ENV{'COMSPEC'}; $comspec =~ s,\\,/,g; if ((system("sh -c 'cd /bin; $comspec /c cd'" . " > $tempfilename") == 0) && open(F, "<$tempfilename")) { $winbin = ; close(F); $winbin =~ s,[\r\n],,g; $winbin =~ s,\\,/,g; } if (! defined $winbin) { die +__PACKAGE__, ": unable to find windows path to /bin\n"; } } my $script = "$tempdir/tmpscript"; open(F, ">$script") or croak +(+__PACKAGE__, "->runtest: unable to open $script to write: $!\n"); binmode F; print F "exec >$tempfilename\n"; print F "exec 2>&1\n"; print F "exec <$in\n"; my @cmd = ("$winbin/sh", $script); if (ref($in_command) eq 'ARRAY') { # For debugging, write out the args foreach my $arg (@$in_command) { print F "# $arg\n"; } print F '"$@"', "\n"; push(@cmd, @$in_command); } else { print F "$in_command\n"; } close(F); my $status = system @cmd; if (open(IN, "<$tempfilename") && open(OUT, ">$out")) { binmode IN; binmode OUT; while () { next if m/^$script:/; print OUT; } close(IN); close(OUT); } $status; } 1; # # END OF TestDriver # qpdf-8.0.2/qpdf/0000755000064100006410000000000013247543020011463 5ustar ejbejbqpdf-8.0.2/qpdf/test_tokenizer.cc0000644000064100006410000002074513247541377015070 0ustar ejbejb#include #include #include #include #include #include #include #include #include #include static char const* whoami = 0; void usage() { std::cerr << "Usage: " << whoami << " [-maxlen len | -no-ignorable] filename" << std::endl; exit(2); } class Finder: public InputSource::Finder { public: Finder(PointerHolder is, std::string const& str) : is(is), str(str) { } virtual ~Finder() { } virtual bool check(); private: PointerHolder is; std::string str; }; bool Finder::check() { QPDFTokenizer tokenizer; QPDFTokenizer::Token t = tokenizer.readToken(is, "finder", true); qpdf_offset_t offset = this->is->tell(); bool result = (t == QPDFTokenizer::Token(QPDFTokenizer::tt_word, str)); this->is->seek(offset - this->str.length(), SEEK_SET); return result; } static char const* tokenTypeName(QPDFTokenizer::token_type_e ttype) { // Do this is a case statement instead of a lookup so the compiler // will warn if we miss any. switch (ttype) { case QPDFTokenizer::tt_bad: return "bad"; case QPDFTokenizer::tt_array_close: return "array_close"; case QPDFTokenizer::tt_array_open: return "array_open"; case QPDFTokenizer::tt_brace_close: return "brace_close"; case QPDFTokenizer::tt_brace_open: return "brace_open"; case QPDFTokenizer::tt_dict_close: return "dict_close"; case QPDFTokenizer::tt_dict_open: return "dict_open"; case QPDFTokenizer::tt_integer: return "integer"; case QPDFTokenizer::tt_name: return "name"; case QPDFTokenizer::tt_real: return "real"; case QPDFTokenizer::tt_string: return "string"; case QPDFTokenizer::tt_null: return "null"; case QPDFTokenizer::tt_bool: return "bool"; case QPDFTokenizer::tt_word: return "word"; case QPDFTokenizer::tt_eof: return "eof"; case QPDFTokenizer::tt_space: return "space"; case QPDFTokenizer::tt_comment: return "comment"; case QPDFTokenizer::tt_inline_image: return "inline-image"; } return 0; } static std::string sanitize(std::string const& value) { std::string result; for (std::string::const_iterator iter = value.begin(); iter != value.end(); ++iter) { if ((*iter >= 32) && (*iter <= 126)) { result.append(1, *iter); } else { result += "\\x" + QUtil::int_to_string_base( static_cast(*iter), 16, 2); } } return result; } static void try_skipping(QPDFTokenizer& tokenizer, PointerHolder is, size_t max_len, char const* what, Finder& f) { std::cout << "skipping to " << what << std::endl; qpdf_offset_t offset = is->tell(); if (! is->findFirst(what, offset, 0, f)) { std::cout << what << " not found" << std::endl; is->seek(offset, SEEK_SET); } } static void dump_tokens(PointerHolder is, std::string const& label, size_t max_len, bool include_ignorable, bool skip_streams, bool skip_inline_images) { Finder f1(is, "endstream"); std::cout << "--- BEGIN " << label << " ---" << std::endl; bool done = false; QPDFTokenizer tokenizer; tokenizer.allowEOF(); if (include_ignorable) { tokenizer.includeIgnorable(); } qpdf_offset_t inline_image_offset = 0; while (! done) { QPDFTokenizer::Token token = tokenizer.readToken(is, "test", true, inline_image_offset ? 0 : max_len); if (inline_image_offset && (token.getType() == QPDFTokenizer::tt_bad)) { std::cout << "EI not found; resuming normal scanning" << std::endl; is->seek(inline_image_offset, SEEK_SET); inline_image_offset = 0; continue; } inline_image_offset = 0; qpdf_offset_t offset = is->getLastOffset(); std::cout << offset << ": " << tokenTypeName(token.getType()); if (token.getType() != QPDFTokenizer::tt_eof) { std::cout << ": " << sanitize(token.getValue()); if (token.getValue() != token.getRawValue()) { std::cout << " (raw: " << sanitize(token.getRawValue()) << ")"; } } if (token.getType() == QPDFTokenizer::tt_bad) { std::cout << " (" << token.getErrorMessage() << ")"; } std::cout << std::endl; if (skip_streams && (token == QPDFTokenizer::Token(QPDFTokenizer::tt_word, "stream"))) { try_skipping(tokenizer, is, max_len, "endstream", f1); } else if (skip_inline_images && (token == QPDFTokenizer::Token(QPDFTokenizer::tt_word, "ID"))) { tokenizer.expectInlineImage(); inline_image_offset = is->tell(); } else if (token.getType() == QPDFTokenizer::tt_eof) { done = true; } } std::cout << "--- END " << label << " ---" << std::endl; } static void process(char const* filename, bool include_ignorable, size_t max_len) { PointerHolder is; // Tokenize file, skipping streams FileInputSource* fis = new FileInputSource(); fis->setFilename(filename); is = fis; dump_tokens(is, "FILE", max_len, include_ignorable, true, false); // Tokenize content streams, skipping inline images QPDF qpdf; qpdf.processFile(filename); std::vector pages = qpdf.getAllPages(); int pageno = 0; for (std::vector::iterator iter = pages.begin(); iter != pages.end(); ++iter) { ++pageno; Pl_Buffer plb("buffer"); (*iter).pipePageContents(&plb); PointerHolder content_data = plb.getBuffer(); BufferInputSource* bis = new BufferInputSource( "content data", content_data.getPointer()); is = bis; dump_tokens(is, "PAGE " + QUtil::int_to_string(pageno), max_len, include_ignorable, false, true); } // Tokenize object streams std::vector all = qpdf.getAllObjects(); for (std::vector::iterator iter = all.begin(); iter != all.end(); ++iter) { if ((*iter).isStream() && (*iter).getDict().getKey("/Type").isName() && (*iter).getDict().getKey("/Type").getName() == "/ObjStm") { PointerHolder b = (*iter).getStreamData(qpdf_dl_specialized); BufferInputSource* bis = new BufferInputSource( "object stream data", b.getPointer()); is = bis; dump_tokens(is, "OBJECT STREAM " + QUtil::int_to_string((*iter).getObjectID()), max_len, include_ignorable, false, false); } } } int main(int argc, char* argv[]) { QUtil::setLineBuf(stdout); if ((whoami = strrchr(argv[0], '/')) == NULL) { whoami = argv[0]; } else { ++whoami; } // For libtool's sake.... if (strncmp(whoami, "lt-", 3) == 0) { whoami += 3; } char const* filename = 0; size_t max_len = 0; bool include_ignorable = true; for (int i = 1; i < argc; ++i) { if (argv[i][0] == '-') { if (strcmp(argv[i], "-maxlen") == 0) { if (++i >= argc) { usage(); } max_len = QUtil::string_to_int(argv[i]); } else if (strcmp(argv[i], "-no-ignorable") == 0) { include_ignorable = false; } else { usage(); } } else if (filename) { usage(); } else { filename = argv[i]; } } if (filename == 0) { usage(); } try { process(filename, include_ignorable, max_len); } catch (std::exception& e) { std::cerr << whoami << ": exception: " << e.what(); exit(2); } return 0; } qpdf-8.0.2/qpdf/build.mk0000644000064100006410000000220413247541377013126 0ustar ejbejbBINS_qpdf = \ qpdf \ pdf_from_scratch \ test_driver \ test_large_file \ test_pdf_doc_encoding \ test_tokenizer CBINS_qpdf = qpdf-ctest TARGETS_qpdf = $(foreach B,$(BINS_qpdf) $(CBINS_qpdf),qpdf/$(OUTPUT_DIR)/$(call binname,$(B))) $(TARGETS_qpdf): $(TARGETS_libqpdf) INCLUDES_qpdf = include TC_SRCS_qpdf = $(wildcard libqpdf/*.cc) $(wildcard qpdf/*.cc) # ----- $(foreach B,$(BINS_qpdf),$(eval \ OBJS_$(B) = $(call src_to_obj,qpdf/$(B).cc))) $(foreach B,$(CBINS_qpdf),$(eval \ OBJS_$(B) = $(call c_src_to_obj,qpdf/$(B).c))) ifeq ($(GENDEPS),1) -include $(foreach B,$(BINS_qpdf) $(CBINS_qpdf),$(call obj_to_dep,$(OBJS_$(B)))) endif $(foreach B,$(BINS_qpdf),$(eval \ $(OBJS_$(B)): qpdf/$(OUTPUT_DIR)/%.$(OBJ): qpdf/$(B).cc ; \ $(call compile,qpdf/$(B).cc,$(INCLUDES_qpdf)))) $(foreach B,$(CBINS_qpdf),$(eval \ $(OBJS_$(B)): qpdf/$(OUTPUT_DIR)/%.$(OBJ): qpdf/$(B).c ; \ $(call c_compile,qpdf/$(B).c,$(INCLUDES_qpdf)))) $(foreach B,$(BINS_qpdf) $(CBINS_qpdf),$(eval \ qpdf/$(OUTPUT_DIR)/$(call binname,$(B)): $(OBJS_$(B)) ; \ $(call makebin,$(OBJS_$(B)),$$@,$(LDFLAGS_libqpdf) $(LDFLAGS),$(LIBS_libqpdf) $(LIBS)))) qpdf-8.0.2/qpdf/qpdf-ctest.c0000644000064100006410000003561513247541377013730 0ustar ejbejb#include #include #include #include #include #include static char* whoami = 0; static qpdf_data qpdf = 0; static FILE* safe_fopen(char const* filename, char const* mode) { // This function is basically a "C" port of QUtil::safe_fopen. FILE* f = 0; #ifdef _MSC_VER errno_t err = fopen_s(&f, filename, mode); if (err != 0) { char buf[94]; strerror_s(buf, sizeof(buf), errno); fprintf(stderr, "%s: unable to open %s: %s\n", whoami, filename, buf); exit(2); } #else f = fopen(filename, mode); if (f == NULL) { fprintf(stderr, "%s: unable to open %s: %s\n", whoami, filename, strerror(errno)); exit(2); } #endif return f; } static void report_errors() { #ifdef _WIN32 # define POS_FMT " pos : %I64d\n" #else /* If your compiler doesn't support lld, change to ld and lose precision on offsets in error messages. */ # define POS_FMT " pos : %lld\n" #endif qpdf_error e = 0; while (qpdf_more_warnings(qpdf)) { e = qpdf_next_warning(qpdf); printf("warning: %s\n", qpdf_get_error_full_text(qpdf, e)); printf(" code: %d\n", qpdf_get_error_code(qpdf, e)); printf(" file: %s\n", qpdf_get_error_filename(qpdf, e)); printf(POS_FMT, qpdf_get_error_file_position(qpdf, e)); printf(" text: %s\n", qpdf_get_error_message_detail(qpdf, e)); } if (qpdf_has_error(qpdf)) { e = qpdf_get_error(qpdf); assert(qpdf_has_error(qpdf) == QPDF_FALSE); printf("error: %s\n", qpdf_get_error_full_text(qpdf, e)); printf(" code: %d\n", qpdf_get_error_code(qpdf, e)); printf(" file: %s\n", qpdf_get_error_filename(qpdf, e)); printf(POS_FMT, qpdf_get_error_file_position(qpdf, e)); printf(" text: %s\n", qpdf_get_error_message_detail(qpdf, e)); } else { e = qpdf_get_error(qpdf); assert(e == 0); assert(qpdf_get_error_code(qpdf, e) == qpdf_e_success); // Call these to ensure that they can be called on a null // error pointer. (void)qpdf_get_error_full_text(qpdf, e); (void)qpdf_get_error_filename(qpdf, e); (void)qpdf_get_error_file_position(qpdf, e); (void)qpdf_get_error_message_detail(qpdf, e); } } static void read_file_into_memory(char const* filename, char** buf, unsigned long* size) { char* buf_p = 0; FILE* f = NULL; size_t bytes_read = 0; size_t len = 0; f = safe_fopen(filename, "rb"); fseek(f, 0, SEEK_END); *size = (unsigned long) ftell(f); fseek(f, 0, SEEK_SET); *buf = malloc(*size); if (*buf == NULL) { fprintf(stderr, "%s: unable to allocate %lu bytes\n", whoami, *size); exit(2); } buf_p = *buf; bytes_read = 0; len = 0; while ((len = fread(buf_p + bytes_read, 1, *size - bytes_read, f)) > 0) { bytes_read += len; } if (bytes_read != *size) { if (ferror(f)) { fprintf(stderr, "%s: failure reading file %s into memory:", whoami, filename); } else { fprintf(stderr, "%s: premature EOF reading file %s:", whoami, filename); } fprintf(stderr, " read %lu, wanted %lu\n", (unsigned long) bytes_read, (unsigned long) *size); exit(2); } fclose(f); } static void test01(char const* infile, char const* password, char const* outfile, char const* outfile2) { qpdf_read(qpdf, infile, password); printf("version: %s\n", qpdf_get_pdf_version(qpdf)); if (qpdf_get_pdf_extension_level(qpdf) > 0) { printf("extension level: %d\n", qpdf_get_pdf_extension_level(qpdf)); } printf("linearized: %d\n", qpdf_is_linearized(qpdf)); printf("encrypted: %d\n", qpdf_is_encrypted(qpdf)); if (qpdf_is_encrypted(qpdf)) { printf("user password: %s\n", qpdf_get_user_password(qpdf)); printf("extract for accessibility: %d\n", qpdf_allow_accessibility(qpdf)); printf("extract for any purpose: %d\n", qpdf_allow_extract_all(qpdf)); printf("print low resolution: %d\n", qpdf_allow_print_low_res(qpdf)); printf("print high resolution: %d\n", qpdf_allow_print_high_res(qpdf)); printf("modify document assembly: %d\n", qpdf_allow_modify_assembly(qpdf)); printf("modify forms: %d\n", qpdf_allow_modify_form(qpdf)); printf("modify annotations: %d\n", qpdf_allow_modify_annotation(qpdf)); printf("modify other: %d\n", qpdf_allow_modify_other(qpdf)); printf("modify anything: %d\n", qpdf_allow_modify_all(qpdf)); } report_errors(); } static void test02(char const* infile, char const* password, char const* outfile, char const* outfile2) { qpdf_set_suppress_warnings(qpdf, QPDF_TRUE); if (((qpdf_read(qpdf, infile, password) & QPDF_ERRORS) == 0) && ((qpdf_init_write(qpdf, outfile) & QPDF_ERRORS) == 0)) { qpdf_set_static_ID(qpdf, QPDF_TRUE); qpdf_write(qpdf); } report_errors(); } static void test03(char const* infile, char const* password, char const* outfile, char const* outfile2) { qpdf_read(qpdf, infile, password); qpdf_init_write(qpdf, outfile); qpdf_set_static_ID(qpdf, QPDF_TRUE); qpdf_set_content_normalization(qpdf, QPDF_TRUE); qpdf_write(qpdf); report_errors(); } static void test04(char const* infile, char const* password, char const* outfile, char const* outfile2) { qpdf_set_ignore_xref_streams(qpdf, QPDF_TRUE); qpdf_read(qpdf, infile, password); qpdf_init_write(qpdf, outfile); qpdf_set_static_ID(qpdf, QPDF_TRUE); qpdf_write(qpdf); report_errors(); } static void test05(char const* infile, char const* password, char const* outfile, char const* outfile2) { qpdf_read(qpdf, infile, password); qpdf_init_write(qpdf, outfile); qpdf_set_static_ID(qpdf, QPDF_TRUE); qpdf_set_linearization(qpdf, QPDF_TRUE); qpdf_write(qpdf); report_errors(); } static void test06(char const* infile, char const* password, char const* outfile, char const* outfile2) { char* buf = NULL; unsigned long size = 0; read_file_into_memory(infile, &buf, &size); qpdf_read_memory(qpdf, infile, buf, size, password); qpdf_init_write(qpdf, outfile); qpdf_set_static_ID(qpdf, QPDF_TRUE); qpdf_set_object_stream_mode(qpdf, qpdf_o_generate); qpdf_write(qpdf); report_errors(); free(buf); } static void test07(char const* infile, char const* password, char const* outfile, char const* outfile2) { qpdf_read(qpdf, infile, password); qpdf_init_write(qpdf, outfile); qpdf_set_static_ID(qpdf, QPDF_TRUE); qpdf_set_qdf_mode(qpdf, QPDF_TRUE); qpdf_write(qpdf); report_errors(); } static void test08(char const* infile, char const* password, char const* outfile, char const* outfile2) { qpdf_read(qpdf, infile, password); qpdf_init_write(qpdf, outfile); qpdf_set_static_ID(qpdf, QPDF_TRUE); qpdf_set_qdf_mode(qpdf, QPDF_TRUE); qpdf_set_suppress_original_object_IDs(qpdf, QPDF_TRUE); qpdf_write(qpdf); report_errors(); } static void test09(char const* infile, char const* password, char const* outfile, char const* outfile2) { qpdf_read(qpdf, infile, password); qpdf_init_write(qpdf, outfile); qpdf_set_static_ID(qpdf, QPDF_TRUE); qpdf_set_stream_data_mode(qpdf, qpdf_s_uncompress); qpdf_write(qpdf); report_errors(); } static void test10(char const* infile, char const* password, char const* outfile, char const* outfile2) { qpdf_set_attempt_recovery(qpdf, QPDF_FALSE); qpdf_read(qpdf, infile, password); report_errors(); } static void test11(char const* infile, char const* password, char const* outfile, char const* outfile2) { qpdf_read(qpdf, infile, password); qpdf_init_write(qpdf, outfile); qpdf_set_static_ID(qpdf, QPDF_TRUE); qpdf_set_r2_encryption_parameters( qpdf, "user1", "owner1", QPDF_FALSE, QPDF_TRUE, QPDF_TRUE, QPDF_TRUE); qpdf_write(qpdf); report_errors(); } static void test12(char const* infile, char const* password, char const* outfile, char const* outfile2) { qpdf_read(qpdf, infile, password); qpdf_init_write(qpdf, outfile); qpdf_set_static_ID(qpdf, QPDF_TRUE); qpdf_set_r3_encryption_parameters( qpdf, "user2", "owner2", QPDF_TRUE, QPDF_TRUE, qpdf_r3p_low, qpdf_r3m_all); qpdf_write(qpdf); report_errors(); } static void test13(char const* infile, char const* password, char const* outfile, char const* outfile2) { qpdf_read(qpdf, infile, password); printf("user password: %s\n", qpdf_get_user_password(qpdf)); qpdf_init_write(qpdf, outfile); qpdf_set_static_ID(qpdf, QPDF_TRUE); qpdf_set_preserve_encryption(qpdf, QPDF_FALSE); qpdf_write(qpdf); report_errors(); } static void test14(char const* infile, char const* password, char const* outfile, char const* outfile2) { qpdf_read(qpdf, infile, password); qpdf_init_write(qpdf, outfile); qpdf_set_static_ID(qpdf, QPDF_TRUE); qpdf_set_minimum_pdf_version_and_extension(qpdf, "1.7", 8); qpdf_write(qpdf); qpdf_init_write(qpdf, outfile2); qpdf_set_static_ID(qpdf, QPDF_TRUE); qpdf_force_pdf_version(qpdf, "1.4"); qpdf_write(qpdf); report_errors(); } static void test15(char const* infile, char const* password, char const* outfile, char const* outfile2) { qpdf_read(qpdf, infile, password); qpdf_init_write(qpdf, outfile); qpdf_set_static_ID(qpdf, QPDF_TRUE); qpdf_set_static_aes_IV(qpdf, QPDF_TRUE); qpdf_set_r4_encryption_parameters( qpdf, "user2", "owner2", QPDF_TRUE, QPDF_TRUE, qpdf_r3p_low, qpdf_r3m_all, QPDF_TRUE, QPDF_TRUE); qpdf_write(qpdf); report_errors(); } static void print_info(char const* key) { char const* value = qpdf_get_info_key(qpdf, key); printf("Info key %s: %s\n", key, (value ? value : "(null)")); } static void test16(char const* infile, char const* password, char const* outfile, char const* outfile2) { unsigned long buflen = 0L; unsigned char const* buf = 0; FILE* f = 0; qpdf_read(qpdf, infile, password); print_info("/Author"); print_info("/Producer"); print_info("/Creator"); qpdf_set_info_key(qpdf, "/Author", "Mr. Potato Head"); qpdf_set_info_key(qpdf, "/Producer", "QPDF library"); qpdf_set_info_key(qpdf, "/Creator", 0); print_info("/Author"); print_info("/Producer"); print_info("/Creator"); qpdf_init_write_memory(qpdf); qpdf_set_static_ID(qpdf, QPDF_TRUE); qpdf_set_static_aes_IV(qpdf, QPDF_TRUE); qpdf_set_stream_data_mode(qpdf, qpdf_s_uncompress); qpdf_write(qpdf); f = safe_fopen(outfile, "wb"); buflen = qpdf_get_buffer_length(qpdf); buf = qpdf_get_buffer(qpdf); fwrite(buf, 1, buflen, f); fclose(f); report_errors(); } static void test17(char const* infile, char const* password, char const* outfile, char const* outfile2) { qpdf_read(qpdf, infile, password); qpdf_init_write(qpdf, outfile); qpdf_set_static_ID(qpdf, QPDF_TRUE); qpdf_set_static_aes_IV(qpdf, QPDF_TRUE); qpdf_set_r5_encryption_parameters( qpdf, "user3", "owner3", QPDF_TRUE, QPDF_TRUE, qpdf_r3p_low, qpdf_r3m_all, QPDF_TRUE); qpdf_write(qpdf); report_errors(); } static void test18(char const* infile, char const* password, char const* outfile, char const* outfile2) { qpdf_read(qpdf, infile, password); qpdf_init_write(qpdf, outfile); qpdf_set_static_ID(qpdf, QPDF_TRUE); qpdf_set_static_aes_IV(qpdf, QPDF_TRUE); qpdf_set_r6_encryption_parameters( qpdf, "user4", "owner4", QPDF_TRUE, QPDF_TRUE, qpdf_r3p_low, qpdf_r3m_all, QPDF_TRUE); qpdf_write(qpdf); report_errors(); } static void test19(char const* infile, char const* password, char const* outfile, char const* outfile2) { qpdf_read(qpdf, infile, password); qpdf_init_write(qpdf, outfile); qpdf_set_deterministic_ID(qpdf, QPDF_TRUE); qpdf_write(qpdf); report_errors(); } static void test20(char const* infile, char const* password, char const* outfile, char const* outfile2) { qpdf_read(qpdf, infile, password); qpdf_init_write(qpdf, outfile); qpdf_set_static_ID(qpdf, QPDF_TRUE); qpdf_set_static_aes_IV(qpdf, QPDF_TRUE); qpdf_set_compress_streams(qpdf, QPDF_FALSE); qpdf_set_decode_level(qpdf, qpdf_dl_specialized); qpdf_write(qpdf); report_errors(); } static void test21(char const* infile, char const* password, char const* outfile, char const* outfile2) { qpdf_read(qpdf, infile, password); qpdf_init_write(qpdf, outfile); qpdf_set_static_ID(qpdf, QPDF_TRUE); qpdf_set_static_aes_IV(qpdf, QPDF_TRUE); qpdf_set_preserve_unreferenced_objects(qpdf, QPDF_TRUE); qpdf_write(qpdf); report_errors(); } static void test22(char const* infile, char const* password, char const* outfile, char const* outfile2) { qpdf_read(qpdf, infile, password); qpdf_init_write(qpdf, outfile); qpdf_set_static_ID(qpdf, QPDF_TRUE); qpdf_set_static_aes_IV(qpdf, QPDF_TRUE); qpdf_set_compress_streams(qpdf, QPDF_FALSE); qpdf_set_newline_before_endstream(qpdf, QPDF_TRUE); qpdf_write(qpdf); report_errors(); } static void test23(char const* infile, char const* password, char const* outfile, char const* outfile2) { QPDF_ERROR_CODE status = 0; qpdf_read(qpdf, infile, password); status = qpdf_check_pdf(qpdf); printf("status: %d\n", status); report_errors(); } int main(int argc, char* argv[]) { char* p = 0; int n = 0; char const* infile = 0; char const* password = 0; char const* outfile = 0; char const* outfile2 = 0; void (*fn)(char const*, char const*, char const*, char const*) = 0; if ((p = strrchr(argv[0], '/')) != NULL) { whoami = p + 1; } else if ((p = strrchr(argv[0], '\\')) != NULL) { whoami = p + 1; } else { whoami = argv[0]; } if ((argc == 2) && (strcmp(argv[1], "--version") == 0)) { printf("qpdf-ctest version %s\n", qpdf_get_qpdf_version()); return 0; } if (argc < 5) { fprintf(stderr, "usage: %s n infile password outfile\n", whoami); exit(2); } n = atoi(argv[1]); infile = argv[2]; password = argv[3]; outfile = argv[4]; outfile2 = (argc > 5 ? argv[5] : 0); fn = ((n == 1) ? test01 : (n == 2) ? test02 : (n == 3) ? test03 : (n == 4) ? test04 : (n == 5) ? test05 : (n == 6) ? test06 : (n == 7) ? test07 : (n == 8) ? test08 : (n == 9) ? test09 : (n == 10) ? test10 : (n == 11) ? test11 : (n == 12) ? test12 : (n == 13) ? test13 : (n == 14) ? test14 : (n == 15) ? test15 : (n == 16) ? test16 : (n == 17) ? test17 : (n == 18) ? test18 : (n == 19) ? test19 : (n == 20) ? test20 : (n == 21) ? test21 : (n == 22) ? test22 : (n == 23) ? test23 : 0); if (fn == 0) { fprintf(stderr, "%s: invalid test number %d\n", whoami, n); exit(2); } qpdf = qpdf_init(); fn(infile, password, outfile, outfile2); qpdf_cleanup(&qpdf); assert(qpdf == 0); return 0; } qpdf-8.0.2/qpdf/qpdf.cc0000644000064100006410000022500713247541377012747 0ustar ejbejb#include #include #include #include #include #include #include #include #include #include #include #include #include #include static int const EXIT_ERROR = 2; static int const EXIT_WARNING = 3; static char const* whoami = 0; struct PageSpec { PageSpec(std::string const& filename, char const* password, char const* range) : filename(filename), password(password), range(range) { } std::string filename; char const* password; char const* range; }; struct RotationSpec { RotationSpec(int angle = 0, bool relative = false) : angle(angle), relative(relative) { } int angle; bool relative; }; struct Options { Options() : password(0), linearize(false), decrypt(false), split_pages(0), verbose(false), copy_encryption(false), encryption_file(0), encryption_file_password(0), encrypt(false), password_is_hex_key(false), keylen(0), r2_print(true), r2_modify(true), r2_extract(true), r2_annotate(true), r3_accessibility(true), r3_extract(true), r3_print(qpdf_r3p_full), r3_modify(qpdf_r3m_all), force_V4(false), force_R5(false), cleartext_metadata(false), use_aes(false), stream_data_set(false), stream_data_mode(qpdf_s_compress), compress_streams(true), compress_streams_set(false), decode_level(qpdf_dl_generalized), decode_level_set(false), normalize_set(false), normalize(false), suppress_recovery(false), object_stream_set(false), object_stream_mode(qpdf_o_preserve), ignore_xref_streams(false), qdf_mode(false), preserve_unreferenced_objects(false), newline_before_endstream(false), coalesce_contents(false), show_npages(false), deterministic_id(false), static_id(false), static_aes_iv(false), suppress_original_object_id(false), show_encryption(false), show_encryption_key(false), check_linearization(false), show_linearization(false), show_xref(false), show_obj(0), show_gen(0), show_raw_stream_data(false), show_filtered_stream_data(false), show_pages(false), show_page_images(false), check(false), require_outfile(true), infilename(0), outfilename(0) { } char const* password; bool linearize; bool decrypt; int split_pages; bool verbose; bool copy_encryption; char const* encryption_file; char const* encryption_file_password; bool encrypt; bool password_is_hex_key; std::string user_password; std::string owner_password; int keylen; bool r2_print; bool r2_modify; bool r2_extract; bool r2_annotate; bool r3_accessibility; bool r3_extract; qpdf_r3_print_e r3_print; qpdf_r3_modify_e r3_modify; bool force_V4; bool force_R5; bool cleartext_metadata; bool use_aes; bool stream_data_set; qpdf_stream_data_e stream_data_mode; bool compress_streams; bool compress_streams_set; qpdf_stream_decode_level_e decode_level; bool decode_level_set; bool normalize_set; bool normalize; bool suppress_recovery; bool object_stream_set; qpdf_object_stream_e object_stream_mode; bool ignore_xref_streams; bool qdf_mode; bool preserve_unreferenced_objects; bool newline_before_endstream; std::string linearize_pass1; bool coalesce_contents; std::string min_version; std::string force_version; bool show_npages; bool deterministic_id; bool static_id; bool static_aes_iv; bool suppress_original_object_id; bool show_encryption; bool show_encryption_key; bool check_linearization; bool show_linearization; bool show_xref; int show_obj; int show_gen; bool show_raw_stream_data; bool show_filtered_stream_data; bool show_pages; bool show_page_images; bool check; std::vector page_specs; std::map rotations; bool require_outfile; char const* infilename; char const* outfilename; }; struct QPDFPageData { QPDFPageData(QPDF* qpdf, char const* range); QPDF* qpdf; std::vector orig_pages; std::vector selected_pages; }; class DiscardContents: public QPDFObjectHandle::ParserCallbacks { public: virtual ~DiscardContents() {} virtual void handleObject(QPDFObjectHandle) {} virtual void handleEOF() {} }; // Note: let's not be too noisy about documenting the fact that this // software purposely fails to enforce the distinction between user // and owner passwords. A user password is sufficient to gain full // access to the PDF file, so there is nothing this software can do // with an owner password that it couldn't do with a user password // other than changing the /P value in the encryption dictionary. // (Setting this value requires the owner password.) The // documentation discusses this as well. static char const* help = "\ \n\ Usage: qpdf [ options ] { infilename | --empty } [ outfilename ]\n\ \n\ An option summary appears below. Please see the documentation for details.\n\ \n\ If @filename appears anywhere in the command-line, each line of filename\n\ will be interpreted as an argument. No interpolation is done. Line\n\ terminators are stripped. @- can be specified to read from standard input.\n\ \n\ Note that when contradictory options are provided, whichever options are\n\ provided last take precedence.\n\ \n\ \n\ Basic Options\n\ -------------\n\ \n\ --version show version of qpdf\n\ --copyright show qpdf's copyright and license information\n\ --help show command-line argument help\n\ --password=password specify a password for accessing encrypted files\n\ --verbose provide additional informational output\n\ --linearize generated a linearized (web optimized) file\n\ --copy-encryption=file copy encryption parameters from specified file\n\ --encryption-file-password=password\n\ password used to open the file from which encryption\n\ parameters are being copied\n\ --encrypt options -- generate an encrypted file\n\ --decrypt remove any encryption on the file\n\ --password-is-hex-key treat primary password option as a hex-encoded key\n\ --pages options -- select specific pages from one or more files\n\ --rotate=[+|-]angle:page-range\n\ rotate each specified page 90, 180, or 270 degrees\n\ --split-pages=[n] write each output page to a separate file\n\ \n\ If none of --copy-encryption, --encrypt or --decrypt are given, qpdf will\n\ preserve any encryption data associated with a file.\n\ \n\ Note that when copying encryption parameters from another file, all\n\ parameters will be copied, including both user and owner passwords, even\n\ if the user password is used to open the other file. This works even if\n\ the owner password is not known.\n\ \n\ The --password-is-hex-key option overrides the normal computation of\n\ encryption keys. It only applies to the password used to open the main\n\ file. This option is not ordinarily useful but can be helpful for forensic\n\ or investigatory purposes. See manual for further discussion.\n\ \n\ The --rotate flag can be used to specify pages to rotate pages either\n\ 90, 180, or 270 degrees. The page range is specified in the same\n\ format as with the --pages option, described below. Repeat the option\n\ to rotate multiple groups of pages. If the angle is preceded by + or -,\n\ it is added to or subtracted from the original rotation. Otherwise, the\n\ rotation angle is set explicitly to the given value.\n\ \n\ If --split-pages is specified, each page is written to a separate output\n\ file. File names are generated as follows:\n\ * If the string %d appears in the output file name, it is replaced with a\n\ zero-padded page range starting from 1\n\ * Otherwise, if the output file name ends in .pdf (case insensitive), a\n\ zero-padded page range, preceded by a dash, is inserted before the file\n\ extension\n\ * Otherwise, the file name is appended with a zero-padded page range\n\ preceded by a dash.\n\ Page ranges are single page numbers for single-page groups or first-last\n\ for multipage groups.\n\ \n\ \n\ Encryption Options\n\ ------------------\n\ \n\ --encrypt user-password owner-password key-length flags --\n\ \n\ Note that -- terminates parsing of encryption flags.\n\ \n\ Either or both of the user password and the owner password may be\n\ empty strings.\n\ \n\ key-length may be 40, 128, or 256\n\ \n\ Additional flags are dependent upon key length.\n\ \n\ If 40:\n\ \n\ --print=[yn] allow printing\n\ --modify=[yn] allow document modification\n\ --extract=[yn] allow text/graphic extraction\n\ --annotate=[yn] allow comments and form fill-in and signing\n\ \n\ If 128:\n\ \n\ --accessibility=[yn] allow accessibility to visually impaired\n\ --extract=[yn] allow other text/graphic extraction\n\ --print=print-opt control printing access\n\ --modify=modify-opt control modify access\n\ --cleartext-metadata prevents encryption of metadata\n\ --use-aes=[yn] indicates whether to use AES encryption\n\ --force-V4 forces use of V=4 encryption handler\n\ \n\ If 256, options are the same as 128 with these exceptions:\n\ --force-V4 this option is not available with 256-bit keys\n\ --use-aes this option is always on with 256-bit keys\n\ --force-R5 forces use of deprecated R=5 encryption\n\ \n\ print-opt may be:\n\ \n\ full allow full printing\n\ low allow only low-resolution printing\n\ none disallow printing\n\ \n\ modify-opt may be:\n\ \n\ all allow full document modification\n\ annotate allow comment authoring and form operations\n\ form allow form field fill-in and signing\n\ assembly allow document assembly only\n\ none allow no modifications\n\ \n\ The default for each permission option is to be fully permissive.\n\ \n\ Specifying cleartext-metadata forces the PDF version to at least 1.5.\n\ Specifying use of AES forces the PDF version to at least 1.6. These\n\ options are both off by default.\n\ \n\ The --force-V4 flag forces the V=4 encryption handler introduced in PDF 1.5\n\ to be used even if not otherwise needed. This option is primarily useful\n\ for testing qpdf and has no other practical use.\n\ \n\ \n\ Page Selection Options\n\ ----------------------\n\ \n\ These options allow pages to be selected from one or more PDF files.\n\ Whatever file is given as the primary input file is used as the\n\ starting point, but its pages are replaced with pages as specified.\n\ \n\ --pages file [ --password=password ] [ page-range ] ... --\n\ \n\ For each file that pages should be taken from, specify the file, a\n\ password needed to open the file (if any), and a page range. The\n\ password needs to be given only once per file. If any of the input\n\ files are the same as the primary input file or the file used to copy\n\ encryption parameters (if specified), you do not need to repeat the\n\ password here. The same file can be repeated multiple times. All\n\ non-page data (info, outlines, page numbers, etc. are taken from the\n\ primary input file. To discard this, use --empty as the primary\n\ input.\n\ \n\ The page range is a set of numbers separated by commas, ranges of\n\ numbers separated dashes, or combinations of those. The character\n\ \"z\" represents the last page. A number preceded by an \"r\" indicates\n\ to count from the end, so \"r3-r1\" would be the last three pages of the\n\ document. Pages can appear in any order. Ranges can appear with a\n\ high number followed by a low number, which causes the pages to appear in\n\ reverse. Repeating a number will cause an error, but the manual discusses\n\ a workaround should you really want to include the same page twice.\n\ \n\ If the page range is omitted, the range of 1-z is assumed. qpdf decides\n\ that the page range is omitted if the range argument is either -- or a\n\ valid file name and not a valid range.\n\ \n\ See the manual for examples and a discussion of additional subtleties.\n\ \n\ \n\ Advanced Parsing Options\n\ -------------------------------\n\ \n\ These options control aspects of how qpdf reads PDF files. Mostly these are\n\ of use to people who are working with damaged files. There is little reason\n\ to use these options unless you are trying to solve specific problems.\n\ \n\ --suppress-recovery prevents qpdf from attempting to recover damaged files\n\ --ignore-xref-streams tells qpdf to ignore any cross-reference streams\n\ \n\ \n\ Advanced Transformation Options\n\ -------------------------------\n\ \n\ These transformation options control fine points of how qpdf creates\n\ the output file. Mostly these are of use only to people who are very\n\ familiar with the PDF file format or who are PDF developers.\n\ \n\ --stream-data=option controls transformation of stream data (below)\n\ --compress-streams=[yn] controls whether to compress streams on output\n\ --decode-level=option controls how to filter streams from the input\n\ --normalize-content=[yn] enables or disables normalization of content streams\n\ --object-streams=mode controls handing of object streams\n\ --preserve-unreferenced preserve unreferenced objects\n\ --newline-before-endstream always put a newline before endstream\n\ --coalesce-contents force all pages' content to be a single stream\n\ --qdf turns on \"QDF mode\" (below)\n\ --linearize-pass1=file write intermediate pass of linearized file\n\ for debugging\n\ --min-version=version sets the minimum PDF version of the output file\n\ --force-version=version forces this to be the PDF version of the output file\n\ \n\ Version numbers may be expressed as major.minor.extension-level, so 1.7.3\n\ means PDF version 1.7 at extension level 3.\n\ \n\ Values for stream data options:\n\ \n\ compress recompress stream data when possible (default)\n\ preserve leave all stream data as is\n\ uncompress uncompress stream data when possible\n\ \n\ Values for object stream mode:\n\ \n\ preserve preserve original object streams (default)\n\ disable don't write any object streams\n\ generate use object streams wherever possible\n\ \n\ When --compress-streams=n is specified, this overrides the default behavior\n\ of qpdf, which is to attempt compress uncompressed streams. Setting\n\ stream data mode to uncompress or preserve has the same effect.\n\ \n\ The --decode-level parameter may be set to one of the following values:\n\ none do not decode streams\n\ generalized decode streams compressed with generalized filters\n\ including LZW, Flate, and the ASCII encoding filters.\n\ specialized additionally decode streams with non-lossy specialized\n\ filters including RunLength\n\ all additionally decode streams with lossy filters\n\ including DCT (JPEG)\n\ \n\ In qdf mode, by default, content normalization is turned on, and the\n\ stream data mode is set to uncompress.\n\ \n\ Setting the minimum PDF version of the output file may raise the version\n\ but will never lower it. Forcing the PDF version of the output file may\n\ set the PDF version to a lower value than actually allowed by the file's\n\ contents. You should only do this if you have no other possible way to\n\ open the file or if you know that the file definitely doesn't include\n\ features not supported later versions.\n\ \n\ Testing, Inspection, and Debugging Options\n\ ------------------------------------------\n\ \n\ These options can be useful for digging into PDF files or for use in\n\ automated test suites for software that uses the qpdf library.\n\ \n\ --deterministic-id generate deterministic /ID\n\ --static-id generate static /ID: FOR TESTING ONLY!\n\ --static-aes-iv use a static initialization vector for AES-CBC\n\ This is option is not secure! FOR TESTING ONLY!\n\ --no-original-object-ids suppress original object ID comments in qdf mode\n\ --show-encryption quickly show encryption parameters\n\ --show-encryption-key when showing encryption, reveal the actual key\n\ --check-linearization check file integrity and linearization status\n\ --show-linearization check and show all linearization data\n\ --show-xref show the contents of the cross-reference table\n\ --show-object=obj[,gen] show the contents of the given object\n\ --raw-stream-data show raw stream data instead of object contents\n\ --filtered-stream-data show filtered stream data instead of object contents\n\ --show-npages print the number of pages in the file\n\ --show-pages shows the object/generation number for each page\n\ --with-images also shows the object IDs for images on each page\n\ --check check file structure + encryption, linearization\n\ \n\ The --raw-stream-data and --filtered-stream-data options are ignored\n\ unless --show-object is given. Either of these options will cause the\n\ stream data to be written to standard output.\n\ \n\ If --filtered-stream-data is given and --normalize-content=y is also\n\ given, qpdf will attempt to normalize the stream data as if it is a\n\ page content stream. This attempt will be made even if it is not a\n\ page content stream, in which case it will produce unusable results.\n\ \n\ Ordinarily, qpdf exits with a status of 0 on success or a status of 2\n\ if any errors occurred. In --check mode, if there were warnings but not\n\ errors, qpdf exits with a status of 3.\n\ \n"; void usage(std::string const& msg) { std::cerr << std::endl << whoami << ": " << msg << std::endl << std::endl << "Usage: " << whoami << " [options] infile outfile" << std::endl << "For detailed help, run " << whoami << " --help" << std::endl << std::endl; exit(EXIT_ERROR); } static std::string show_bool(bool v) { return v ? "allowed" : "not allowed"; } static std::string show_encryption_method(QPDF::encryption_method_e method) { std::string result = "unknown"; switch (method) { case QPDF::e_none: result = "none"; break; case QPDF::e_unknown: result = "unknown"; break; case QPDF::e_rc4: result = "RC4"; break; case QPDF::e_aes: result = "AESv2"; break; case QPDF::e_aesv3: result = "AESv3"; break; // no default so gcc will warn for missing case } return result; } static void show_encryption(QPDF& pdf, Options& o) { // Extract /P from /Encrypt int R = 0; int P = 0; int V = 0; QPDF::encryption_method_e stream_method = QPDF::e_unknown; QPDF::encryption_method_e string_method = QPDF::e_unknown; QPDF::encryption_method_e file_method = QPDF::e_unknown; if (! pdf.isEncrypted(R, P, V, stream_method, string_method, file_method)) { std::cout << "File is not encrypted" << std::endl; } else { std::cout << "R = " << R << std::endl; std::cout << "P = " << P << std::endl; std::string user_password = pdf.getTrimmedUserPassword(); std::string encryption_key = pdf.getEncryptionKey(); std::cout << "User password = " << user_password << std::endl; if (o.show_encryption_key) { std::cout << "Encryption key = " << QUtil::hex_encode(encryption_key) << std::endl; } std::cout << "extract for accessibility: " << show_bool(pdf.allowAccessibility()) << std::endl << "extract for any purpose: " << show_bool(pdf.allowExtractAll()) << std::endl << "print low resolution: " << show_bool(pdf.allowPrintLowRes()) << std::endl << "print high resolution: " << show_bool(pdf.allowPrintHighRes()) << std::endl << "modify document assembly: " << show_bool(pdf.allowModifyAssembly()) << std::endl << "modify forms: " << show_bool(pdf.allowModifyForm()) << std::endl << "modify annotations: " << show_bool(pdf.allowModifyAnnotation()) << std::endl << "modify other: " << show_bool(pdf.allowModifyOther()) << std::endl << "modify anything: " << show_bool(pdf.allowModifyAll()) << std::endl; if (V >= 4) { std::cout << "stream encryption method: " << show_encryption_method(stream_method) << std::endl << "string encryption method: " << show_encryption_method(string_method) << std::endl << "file encryption method: " << show_encryption_method(file_method) << std::endl; } } } static int maybe_from_end(int num, bool from_end, int max) { if (from_end) { if (num > max) { num = 0; } else { num = max + 1 - num; } } return num; } static std::vector parse_numrange(char const* range, int max, bool throw_error = false) { std::vector result; char const* p = range; try { std::vector work; static int const comma = -1; static int const dash = -2; enum { st_top, st_in_number, st_after_number } state = st_top; bool last_separator_was_dash = false; int cur_number = 0; bool from_end = false; while (*p) { char ch = *p; if (isdigit(ch)) { if (! ((state == st_top) || (state == st_in_number))) { throw std::runtime_error("digit not expected"); } state = st_in_number; cur_number *= 10; cur_number += (ch - '0'); } else if (ch == 'z') { // z represents max if (! (state == st_top)) { throw std::runtime_error("z not expected"); } state = st_after_number; cur_number = max; } else if (ch == 'r') { if (! (state == st_top)) { throw std::runtime_error("r not expected"); } state = st_in_number; from_end = true; } else if ((ch == ',') || (ch == '-')) { if (! ((state == st_in_number) || (state == st_after_number))) { throw std::runtime_error("unexpected separator"); } cur_number = maybe_from_end(cur_number, from_end, max); work.push_back(cur_number); cur_number = 0; from_end = false; if (ch == ',') { state = st_top; last_separator_was_dash = false; work.push_back(comma); } else if (ch == '-') { if (last_separator_was_dash) { throw std::runtime_error("unexpected dash"); } state = st_top; last_separator_was_dash = true; work.push_back(dash); } } else { throw std::runtime_error("unexpected character"); } ++p; } if ((state == st_in_number) || (state == st_after_number)) { cur_number = maybe_from_end(cur_number, from_end, max); work.push_back(cur_number); } else { throw std::runtime_error("number expected"); } p = 0; for (size_t i = 0; i < work.size(); i += 2) { int num = work.at(i); // max == 0 means we don't know the max and are just // testing for valid syntax. if ((max > 0) && ((num < 1) || (num > max))) { throw std::runtime_error( "number " + QUtil::int_to_string(num) + " out of range"); } if (i == 0) { result.push_back(work.at(i)); } else { int separator = work.at(i-1); if (separator == comma) { result.push_back(num); } else if (separator == dash) { int lastnum = result.back(); if (num > lastnum) { for (int j = lastnum + 1; j <= num; ++j) { result.push_back(j); } } else { for (int j = lastnum - 1; j >= num; --j) { result.push_back(j); } } } else { throw std::logic_error( "INTERNAL ERROR parsing numeric range"); } } } } catch (std::runtime_error e) { if (throw_error) { throw e; } if (p) { usage("error at * in numeric range " + std::string(range, p - range) + "*" + p + ": " + e.what()); } else { usage("error in numeric range " + std::string(range) + ": " + e.what()); } } return result; } static void parse_encrypt_options( int argc, char* argv[], int& cur_arg, std::string& user_password, std::string& owner_password, int& keylen, bool& r2_print, bool& r2_modify, bool& r2_extract, bool& r2_annotate, bool& r3_accessibility, bool& r3_extract, qpdf_r3_print_e& r3_print, qpdf_r3_modify_e& r3_modify, bool& force_V4, bool& cleartext_metadata, bool& use_aes, bool& force_R5) { if (cur_arg + 3 >= argc) { usage("insufficient arguments to --encrypt"); } user_password = argv[cur_arg++]; owner_password = argv[cur_arg++]; std::string len_str = argv[cur_arg++]; if (len_str == "40") { keylen = 40; } else if (len_str == "128") { keylen = 128; } else if (len_str == "256") { keylen = 256; use_aes = true; } else { usage("encryption key length must be 40, 128, or 256"); } while (1) { char* arg = argv[cur_arg]; if (arg == 0) { usage("insufficient arguments to --encrypt"); } else if (strcmp(arg, "--") == 0) { return; } if (arg[0] == '-') { ++arg; if (arg[0] == '-') { ++arg; } } else { usage(std::string("invalid encryption parameter ") + arg); } ++cur_arg; char* parameter = strchr(arg, '='); if (parameter) { *parameter++ = 0; } if (strcmp(arg, "print") == 0) { if (parameter == 0) { usage("--print must be given as --print=option"); } std::string val = parameter; if (keylen == 40) { if (val == "y") { r2_print = true; } else if (val == "n") { r2_print = false; } else { usage("invalid 40-bit -print parameter"); } } else { if (val == "full") { r3_print = qpdf_r3p_full; } else if (val == "low") { r3_print = qpdf_r3p_low; } else if (val == "none") { r3_print = qpdf_r3p_none; } else { usage("invalid 128-bit -print parameter"); } } } else if (strcmp(arg, "modify") == 0) { if (parameter == 0) { usage("--modify must be given as --modify=option"); } std::string val = parameter; if (keylen == 40) { if (val == "y") { r2_modify = true; } else if (val == "n") { r2_modify = false; } else { usage("invalid 40-bit -modify parameter"); } } else { if (val == "all") { r3_modify = qpdf_r3m_all; } else if (val == "annotate") { r3_modify = qpdf_r3m_annotate; } else if (val == "form") { r3_modify = qpdf_r3m_form; } else if (val == "assembly") { r3_modify = qpdf_r3m_assembly; } else if (val == "none") { r3_modify = qpdf_r3m_none; } else { usage("invalid 128-bit -modify parameter"); } } } else if (strcmp(arg, "extract") == 0) { if (parameter == 0) { usage("--extract must be given as --extract=option"); } std::string val = parameter; bool result = false; if (val == "y") { result = true; } else if (val == "n") { result = false; } else { usage("invalid -extract parameter"); } if (keylen == 40) { r2_extract = result; } else { r3_extract = result; } } else if (strcmp(arg, "annotate") == 0) { if (parameter == 0) { usage("--annotate must be given as --annotate=option"); } std::string val = parameter; bool result = false; if (val == "y") { result = true; } else if (val == "n") { result = false; } else { usage("invalid -annotate parameter"); } if (keylen == 40) { r2_annotate = result; } else { usage("-annotate invalid for 128-bit keys"); } } else if (strcmp(arg, "accessibility") == 0) { if (parameter == 0) { usage("--accessibility must be given as" " --accessibility=option"); } std::string val = parameter; bool result = false; if (val == "y") { result = true; } else if (val == "n") { result = false; } else { usage("invalid -accessibility parameter"); } if (keylen == 40) { usage("-accessibility invalid for 40-bit keys"); } else { r3_accessibility = result; } } else if (strcmp(arg, "cleartext-metadata") == 0) { if (parameter) { usage("--cleartext-metadata does not take a parameter"); } if (keylen == 40) { usage("--cleartext-metadata is invalid for 40-bit keys"); } else { cleartext_metadata = true; } } else if (strcmp(arg, "force-V4") == 0) { if (parameter) { usage("--force-V4 does not take a parameter"); } if (keylen != 128) { usage("--force-V4 is invalid only for 128-bit keys"); } else { force_V4 = true; } } else if (strcmp(arg, "force-R5") == 0) { if (parameter) { usage("--force-R5 does not take a parameter"); } if (keylen != 256) { usage("--force-R5 is invalid only for 256-bit keys"); } else { force_R5 = true; } } else if (strcmp(arg, "use-aes") == 0) { if (parameter == 0) { usage("--use-aes must be given as --extract=option"); } std::string val = parameter; bool result = false; if (val == "y") { result = true; } else if (val == "n") { result = false; } else { usage("invalid -use-aes parameter"); } if ((keylen == 40) && result) { usage("use-aes is invalid for 40-bit keys"); } else if ((keylen == 256) && (! result)) { // qpdf would happily create files encrypted with RC4 // using /V=5, but Adobe reader can't read them. usage("use-aes can't be disabled with 256-bit keys"); } else { use_aes = result; } } else { usage(std::string("invalid encryption parameter --") + arg); } } } static std::vector parse_pages_options( int argc, char* argv[], int& cur_arg) { std::vector result; while (1) { if ((cur_arg < argc) && (strcmp(argv[cur_arg], "--") == 0)) { break; } if (cur_arg + 1 >= argc) { usage("insufficient arguments to --pages"); } char const* file = argv[cur_arg++]; char const* password = 0; char const* range = argv[cur_arg++]; if (strncmp(range, "--password=", 11) == 0) { // Oh, that's the password, not the range if (cur_arg + 1 >= argc) { usage("insufficient arguments to --pages"); } password = range + 11; range = argv[cur_arg++]; } // See if the user omitted the range entirely, in which case // we assume "1-z". bool range_omitted = false; if (strcmp(range, "--") == 0) { // The filename or password was the last argument QTC::TC("qpdf", "qpdf pages range omitted at end"); range_omitted = true; } else { try { parse_numrange(range, 0, true); } catch (std::runtime_error& e1) { // The range is invalid. Let's see if it's a file. try { fclose(QUtil::safe_fopen(range, "rb")); // Yup, it's a file. QTC::TC("qpdf", "qpdf pages range omitted in middle"); range_omitted = true; } catch (std::runtime_error& e2) { // Ignore. The range is invalid and not a file. // We'll get an error message later. } } } if (range_omitted) { --cur_arg; range = "1-z"; } result.push_back(PageSpec(file, password, range)); } return result; } static void test_numrange(char const* range) { if (range == 0) { std::cout << "null" << std::endl; } else { std::vector result = parse_numrange(range, 15); std::cout << "numeric range " << range << " ->"; for (std::vector::iterator iter = result.begin(); iter != result.end(); ++iter) { std::cout << " " << *iter; } std::cout << std::endl; } } QPDFPageData::QPDFPageData(QPDF* qpdf, char const* range) : qpdf(qpdf), orig_pages(qpdf->getAllPages()) { this->selected_pages = parse_numrange(range, this->orig_pages.size()); } static void parse_version(std::string const& full_version_string, std::string& version, int& extension_level) { PointerHolder vp(true, QUtil::copy_string(full_version_string)); char* v = vp.getPointer(); char* p1 = strchr(v, '.'); char* p2 = (p1 ? strchr(1 + p1, '.') : 0); if (p2 && *(p2 + 1)) { *p2++ = '\0'; extension_level = QUtil::string_to_int(p2); } version = v; } static void read_args_from_file(char const* filename, std::vector >& new_argv) { std::list lines; if (strcmp(filename, "-") == 0) { QTC::TC("qpdf", "qpdf read args from stdin"); lines = QUtil::read_lines_from_file(std::cin); } else { QTC::TC("qpdf", "qpdf read args from file"); lines = QUtil::read_lines_from_file(filename); } for (std::list::iterator iter = lines.begin(); iter != lines.end(); ++iter) { new_argv.push_back( PointerHolder(true, QUtil::copy_string((*iter).c_str()))); } } static void handle_help_version(int argc, char* argv[]) { // Make sure the output looks right on an 80-column display. if ((argc == 2) && ((strcmp(argv[1], "--version") == 0) || (strcmp(argv[1], "-version") == 0))) { std::cout << whoami << " version " << QPDF::QPDFVersion() << std::endl << "Run " << whoami << " --copyright to see copyright and license information." << std::endl; exit(0); } if ((argc == 2) && ((strcmp(argv[1], "--copyright") == 0) || (strcmp(argv[1], "-copyright") == 0))) { // 1 2 3 4 5 6 7 8 // 12345678901234567890123456789012345678901234567890123456789012345678901234567890 std::cout << whoami << " version " << QPDF::QPDFVersion() << std::endl << std::endl << "Copyright (c) 2005-2018 Jay Berkenbilt" << std::endl << "QPDF is licensed under the Apache License, Version 2.0 (the \"License\");" << std::endl << "not use this file except in compliance with the License." << std::endl << "You may obtain a copy of the License at" << std::endl << std::endl << " http://www.apache.org/licenses/LICENSE-2.0" << std::endl << std::endl << "Unless required by applicable law or agreed to in writing, software" << std::endl << "distributed under the License is distributed on an \"AS IS\" BASIS," << std::endl << "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied." << std::endl << "See the License for the specific language governing permissions and" << std::endl << "limitations under the License." << std::endl << std::endl << "Versions of qpdf prior to version 7 were released under the terms" << std::endl << "of version 2.0 of the Artistic License. At your option, you may" << std::endl << "continue to consider qpdf to be licensed under those terms. Please" << std::endl << "see the manual for additional information." << std::endl; exit(0); } if ((argc == 2) && ((strcmp(argv[1], "--help") == 0) || (strcmp(argv[1], "-help") == 0))) { std::cout << help; exit(0); } } static void parse_rotation_parameter(Options& o, std::string const& parameter) { std::string angle_str; std::string range; size_t colon = parameter.find(':'); int relative = 0; if (colon != std::string::npos) { if (colon > 0) { angle_str = parameter.substr(0, colon); if (angle_str.length() > 0) { char first = angle_str.at(0); if ((first == '+') || (first == '-')) { relative = ((first == '+') ? 1 : -1); angle_str = angle_str.substr(1); } else if (! QUtil::is_digit(angle_str.at(0))) { angle_str = ""; } } } if (colon + 1 < parameter.length()) { range = parameter.substr(colon + 1); } } bool range_valid = false; try { parse_numrange(range.c_str(), 0, true); range_valid = true; } catch (std::runtime_error) { // ignore } if (range_valid && ((angle_str == "90") || (angle_str == "180") || (angle_str == "270"))) { int angle = QUtil::string_to_int(angle_str.c_str()); if (relative == -1) { angle = -angle; } o.rotations[range] = RotationSpec(angle, (relative != 0)); } else { usage("invalid parameter to rotate: " + parameter); } } static void parse_options(int argc, char* argv[], Options& o) { for (int i = 1; i < argc; ++i) { char const* arg = argv[i]; if ((arg[0] == '-') && (strcmp(arg, "-") != 0)) { ++arg; if (arg[0] == '-') { // Be lax about -arg vs --arg ++arg; } char* parameter = const_cast(strchr(arg, '=')); if (parameter) { *parameter++ = 0; } // Arguments that start with space are undocumented and // are for use by the test suite. if (strcmp(arg, " test-numrange") == 0) { test_numrange(parameter); exit(0); } else if (strcmp(arg, "password") == 0) { if (parameter == 0) { usage("--password must be given as --password=pass"); } o.password = parameter; } else if (strcmp(arg, "empty") == 0) { o.infilename = ""; } else if (strcmp(arg, "linearize") == 0) { o.linearize = true; } else if (strcmp(arg, "encrypt") == 0) { parse_encrypt_options( argc, argv, ++i, o.user_password, o.owner_password, o.keylen, o.r2_print, o.r2_modify, o.r2_extract, o.r2_annotate, o.r3_accessibility, o.r3_extract, o.r3_print, o.r3_modify, o.force_V4, o.cleartext_metadata, o.use_aes, o.force_R5); o.encrypt = true; o.decrypt = false; o.copy_encryption = false; } else if (strcmp(arg, "decrypt") == 0) { o.decrypt = true; o.encrypt = false; o.copy_encryption = false; } else if (strcmp(arg, "password-is-hex-key") == 0) { o.password_is_hex_key = true; } else if (strcmp(arg, "copy-encryption") == 0) { if (parameter == 0) { usage("--copy-encryption must be given as" "--copy_encryption=file"); } o.encryption_file = parameter; o.copy_encryption = true; o.encrypt = false; o.decrypt = false; } else if (strcmp(arg, "encryption-file-password") == 0) { if (parameter == 0) { usage("--encryption-file-password must be given as" "--encryption-file-password=password"); } o.encryption_file_password = parameter; } else if (strcmp(arg, "pages") == 0) { o.page_specs = parse_pages_options(argc, argv, ++i); if (o.page_specs.empty()) { usage("--pages: no page specifications given"); } } else if (strcmp(arg, "rotate") == 0) { if (parameter == 0) { usage("--rotate must be given as" " --rotate=[+|-]angle:page-range"); } parse_rotation_parameter(o, parameter); } else if (strcmp(arg, "stream-data") == 0) { if (parameter == 0) { usage("--stream-data must be given as" "--stream-data=option"); } o.stream_data_set = true; if (strcmp(parameter, "compress") == 0) { o.stream_data_mode = qpdf_s_compress; } else if (strcmp(parameter, "preserve") == 0) { o.stream_data_mode = qpdf_s_preserve; } else if (strcmp(parameter, "uncompress") == 0) { o.stream_data_mode = qpdf_s_uncompress; } else { usage("invalid stream-data option"); } } else if (strcmp(arg, "compress-streams") == 0) { o.compress_streams_set = true; if (parameter && (strcmp(parameter, "y") == 0)) { o.compress_streams = true; } else if (parameter && (strcmp(parameter, "n") == 0)) { o.compress_streams = false; } else { usage("--compress-streams must be given as" " --compress-streams=[yn]"); } } else if (strcmp(arg, "decode-level") == 0) { if (parameter == 0) { usage("--decode-level must be given as" "--decode-level=option"); } o.decode_level_set = true; if (strcmp(parameter, "none") == 0) { o.decode_level = qpdf_dl_none; } else if (strcmp(parameter, "generalized") == 0) { o.decode_level = qpdf_dl_generalized; } else if (strcmp(parameter, "specialized") == 0) { o.decode_level = qpdf_dl_specialized; } else if (strcmp(parameter, "all") == 0) { o.decode_level = qpdf_dl_all; } else { usage("invalid stream-data option"); } } else if (strcmp(arg, "normalize-content") == 0) { o.normalize_set = true; if (parameter && (strcmp(parameter, "y") == 0)) { o.normalize = true; } else if (parameter && (strcmp(parameter, "n") == 0)) { o.normalize = false; } else { usage("--normalize-content must be given as" " --normalize-content=[yn]"); } } else if (strcmp(arg, "suppress-recovery") == 0) { o.suppress_recovery = true; } else if (strcmp(arg, "object-streams") == 0) { if (parameter == 0) { usage("--object-streams must be given as" " --object-streams=option"); } o.object_stream_set = true; if (strcmp(parameter, "disable") == 0) { o.object_stream_mode = qpdf_o_disable; } else if (strcmp(parameter, "preserve") == 0) { o.object_stream_mode = qpdf_o_preserve; } else if (strcmp(parameter, "generate") == 0) { o.object_stream_mode = qpdf_o_generate; } else { usage("invalid object stream mode"); } } else if (strcmp(arg, "ignore-xref-streams") == 0) { o.ignore_xref_streams = true; } else if (strcmp(arg, "qdf") == 0) { o.qdf_mode = true; } else if (strcmp(arg, "preserve-unreferenced") == 0) { o.preserve_unreferenced_objects = true; } else if (strcmp(arg, "newline-before-endstream") == 0) { o.newline_before_endstream = true; } else if (strcmp(arg, "linearize-pass1") == 0) { if (parameter == 0) { usage("--linearize-pass1 be given as" "--linearize-pass1=filename"); } o.linearize_pass1 = parameter; } else if (strcmp(arg, "coalesce-contents") == 0) { o.coalesce_contents = true; } else if (strcmp(arg, "min-version") == 0) { if (parameter == 0) { usage("--min-version be given as" "--min-version=version"); } o.min_version = parameter; } else if (strcmp(arg, "force-version") == 0) { if (parameter == 0) { usage("--force-version be given as" "--force-version=version"); } o.force_version = parameter; } else if (strcmp(arg, "split-pages") == 0) { int n = ((parameter == 0) ? 1 : QUtil::string_to_int(parameter)); o.split_pages = n; } else if (strcmp(arg, "verbose") == 0) { o.verbose = true; } else if (strcmp(arg, "deterministic-id") == 0) { o.deterministic_id = true; } else if (strcmp(arg, "static-id") == 0) { o.static_id = true; } else if (strcmp(arg, "static-aes-iv") == 0) { o.static_aes_iv = true; } else if (strcmp(arg, "no-original-object-ids") == 0) { o.suppress_original_object_id = true; } else if (strcmp(arg, "show-encryption") == 0) { o.show_encryption = true; o.require_outfile = false; } else if (strcmp(arg, "show-encryption-key") == 0) { o.show_encryption_key = true; } else if (strcmp(arg, "check-linearization") == 0) { o.check_linearization = true; o.require_outfile = false; } else if (strcmp(arg, "show-linearization") == 0) { o.show_linearization = true; o.require_outfile = false; } else if (strcmp(arg, "show-xref") == 0) { o.show_xref = true; o.require_outfile = false; } else if (strcmp(arg, "show-object") == 0) { if (parameter == 0) { usage("--show-object must be given as" " --show-object=obj[,gen]"); } char* obj = parameter; char* gen = obj; if ((gen = strchr(obj, ',')) != 0) { *gen++ = 0; o.show_gen = QUtil::string_to_int(gen); } o.show_obj = QUtil::string_to_int(obj); o.require_outfile = false; } else if (strcmp(arg, "raw-stream-data") == 0) { o.show_raw_stream_data = true; } else if (strcmp(arg, "filtered-stream-data") == 0) { o.show_filtered_stream_data = true; } else if (strcmp(arg, "show-npages") == 0) { o.show_npages = true; o.require_outfile = false; } else if (strcmp(arg, "show-pages") == 0) { o.show_pages = true; o.require_outfile = false; } else if (strcmp(arg, "with-images") == 0) { o.show_page_images = true; } else if (strcmp(arg, "check") == 0) { o.check = true; o.require_outfile = false; } else { usage(std::string("unknown option --") + arg); } } else if (o.infilename == 0) { o.infilename = arg; } else if (o.outfilename == 0) { o.outfilename = arg; } else { usage(std::string("unknown argument ") + arg); } } if (o.infilename == 0) { usage("an input file name is required"); } else if (o.require_outfile && (o.outfilename == 0)) { usage("an output file name is required; use - for standard output"); } else if ((! o.require_outfile) && (o.outfilename != 0)) { usage("no output file may be given for this option"); } if (o.require_outfile && (strcmp(o.outfilename, "-") == 0) && o.split_pages) { usage("--split-pages may not be used when writing to standard output"); } if (QUtil::same_file(o.infilename, o.outfilename)) { QTC::TC("qpdf", "qpdf same file error"); usage("input file and output file are the same; this would cause input file to be lost"); } } static void set_qpdf_options(QPDF& pdf, Options& o) { if (o.ignore_xref_streams) { pdf.setIgnoreXRefStreams(true); } if (o.suppress_recovery) { pdf.setAttemptRecovery(false); } if (o.password_is_hex_key) { pdf.setPasswordIsHexKey(true); } } static void do_check(QPDF& pdf, Options& o, int& exit_code) { // Code below may set okay to false but not to true. // We assume okay until we prove otherwise but may // continue to perform additional checks after finding // errors. bool okay = true; std::cout << "checking " << o.infilename << std::endl; try { int extension_level = pdf.getExtensionLevel(); std::cout << "PDF Version: " << pdf.getPDFVersion(); if (extension_level > 0) { std::cout << " extension level " << pdf.getExtensionLevel(); } std::cout << std::endl; show_encryption(pdf, o); if (pdf.isLinearized()) { std::cout << "File is linearized\n"; if (! pdf.checkLinearization()) { // any errors are reported by checkLinearization() okay = false; } } else { std::cout << "File is not linearized\n"; } // Write the file no nowhere, uncompressing // streams. This causes full file traversal and // decoding of all streams we can decode. QPDFWriter w(pdf); Pl_Discard discard; w.setOutputPipeline(&discard); w.setDecodeLevel(qpdf_dl_all); w.write(); // Parse all content streams std::vector pages = pdf.getAllPages(); DiscardContents discard_contents; int pageno = 0; for (std::vector::iterator iter = pages.begin(); iter != pages.end(); ++iter) { ++pageno; try { (*iter).parsePageContents(&discard_contents); } catch (QPDFExc& e) { okay = false; std::cout << "page " << pageno << ": " << e.what() << std::endl; } } } catch (std::exception& e) { std::cout << e.what() << std::endl; okay = false; } if (okay) { if (! pdf.getWarnings().empty()) { exit_code = EXIT_WARNING; } else { std::cout << "No syntax or stream encoding errors" << " found; the file may still contain" << std::endl << "errors that qpdf cannot detect" << std::endl; } } else { exit_code = EXIT_ERROR; } } static void do_show_obj(QPDF& pdf, Options& o, int& exit_code) { QPDFObjectHandle obj = pdf.getObjectByID(o.show_obj, o.show_gen); if (obj.isStream()) { if (o.show_raw_stream_data || o.show_filtered_stream_data) { bool filter = o.show_filtered_stream_data; if (filter && (! obj.pipeStreamData(0, 0, qpdf_dl_all))) { QTC::TC("qpdf", "qpdf unable to filter"); std::cerr << "Unable to filter stream data." << std::endl; exit_code = EXIT_ERROR; } else { QUtil::binary_stdout(); Pl_StdioFile out("stdout", stdout); obj.pipeStreamData( &out, (filter && o.normalize) ? qpdf_ef_normalize : 0, filter ? qpdf_dl_all : qpdf_dl_none); } } else { std::cout << "Object is stream. Dictionary:" << std::endl << obj.getDict().unparseResolved() << std::endl; } } else { std::cout << obj.unparseResolved() << std::endl; } } static void do_show_pages(QPDF& pdf, Options& o) { if (o.show_page_images) { pdf.pushInheritedAttributesToPage(); } std::vector pages = pdf.getAllPages(); int pageno = 0; for (std::vector::iterator iter = pages.begin(); iter != pages.end(); ++iter) { QPDFObjectHandle& page = *iter; ++pageno; std::cout << "page " << pageno << ": " << page.getObjectID() << " " << page.getGeneration() << " R" << std::endl; if (o.show_page_images) { std::map images = page.getPageImages(); if (! images.empty()) { std::cout << " images:" << std::endl; for (std::map::iterator iter = images.begin(); iter != images.end(); ++iter) { std::string const& name = (*iter).first; QPDFObjectHandle image = (*iter).second; QPDFObjectHandle dict = image.getDict(); int width = dict.getKey("/Width").getIntValue(); int height = dict.getKey("/Height").getIntValue(); std::cout << " " << name << ": " << image.unparse() << ", " << width << " x " << height << std::endl; } } } std::cout << " content:" << std::endl; std::vector content = page.getPageContents(); for (std::vector::iterator iter = content.begin(); iter != content.end(); ++iter) { std::cout << " " << (*iter).unparse() << std::endl; } } } static void do_inspection(QPDF& pdf, Options& o) { int exit_code = 0; if (o.check) { do_check(pdf, o, exit_code); } if (o.show_npages) { QTC::TC("qpdf", "qpdf npages"); std::cout << pdf.getRoot().getKey("/Pages"). getKey("/Count").getIntValue() << std::endl; } if (o.show_encryption) { show_encryption(pdf, o); } if (o.check_linearization) { if (pdf.checkLinearization()) { std::cout << o.infilename << ": no linearization errors" << std::endl; } else { exit_code = EXIT_ERROR; } } if (o.show_linearization) { if (pdf.isLinearized()) { pdf.showLinearizationData(); } else { std::cout << o.infilename << " is not linearized" << std::endl; } } if (o.show_xref) { pdf.showXRefTable(); } if (o.show_obj > 0) { do_show_obj(pdf, o, exit_code); } if (o.show_pages) { do_show_pages(pdf, o); } if (exit_code) { exit(exit_code); } } static void handle_transformations(QPDF& pdf, Options& o) { if (o.coalesce_contents) { std::vector pages = pdf.getAllPages(); for (std::vector::iterator iter = pages.begin(); iter != pages.end(); ++iter) { (*iter).coalesceContentStreams(); } } } static void handle_page_specs(QPDF& pdf, Options& o, std::vector >& page_heap) { // Parse all page specifications and translate them into lists of // actual pages. // Create a QPDF object for each file that we may take pages from. std::map page_spec_qpdfs; page_spec_qpdfs[o.infilename] = &pdf; std::vector parsed_specs; for (std::vector::iterator iter = o.page_specs.begin(); iter != o.page_specs.end(); ++iter) { PageSpec& page_spec = *iter; if (page_spec_qpdfs.count(page_spec.filename) == 0) { // Open the PDF file and store the QPDF object. Throw a // PointerHolder to the qpdf into a heap so that it // survives through writing the output but gets cleaned up // automatically at the end. Do not canonicalize the file // name. Using two different paths to refer to the same // file is a document workaround for duplicating a page. // If you are using this an example of how to do this with // the API, you can just create two different QPDF objects // to the same underlying file with the same path to // achieve the same affect. PointerHolder qpdf_ph = new QPDF(); page_heap.push_back(qpdf_ph); QPDF* qpdf = qpdf_ph.getPointer(); char const* password = page_spec.password; if (o.encryption_file && (password == 0) && (page_spec.filename == o.encryption_file)) { QTC::TC("qpdf", "qpdf pages encryption password"); password = o.encryption_file_password; } qpdf->processFile( page_spec.filename.c_str(), password); page_spec_qpdfs[page_spec.filename] = qpdf; } // Read original pages from the PDF, and parse the page range // associated with this occurrence of the file. parsed_specs.push_back( QPDFPageData(page_spec_qpdfs[page_spec.filename], page_spec.range)); } // Clear all pages out of the primary QPDF's pages tree but leave // the objects in place in the file so they can be re-added // without changing their object numbers. This enables other // things in the original file, such as outlines, to continue to // work. std::vector orig_pages = pdf.getAllPages(); for (std::vector::iterator iter = orig_pages.begin(); iter != orig_pages.end(); ++iter) { pdf.removePage(*iter); } // Add all the pages from all the files in the order specified. // Keep track of any pages from the original file that we are // selecting. std::set selected_from_orig; for (std::vector::iterator iter = parsed_specs.begin(); iter != parsed_specs.end(); ++iter) { QPDFPageData& page_data = *iter; for (std::vector::iterator pageno_iter = page_data.selected_pages.begin(); pageno_iter != page_data.selected_pages.end(); ++pageno_iter) { // Pages are specified from 1 but numbered from 0 in the // vector int pageno = *pageno_iter - 1; pdf.addPage(page_data.orig_pages.at(pageno), false); if (page_data.qpdf == &pdf) { // This is a page from the original file. Keep track // of the fact that we are using it. selected_from_orig.insert(pageno); } } } // Delete page objects for unused page in primary. This prevents // those objects from being preserved by being referred to from // other places, such as the outlines dictionary. for (size_t pageno = 0; pageno < orig_pages.size(); ++pageno) { if (selected_from_orig.count(pageno) == 0) { pdf.replaceObject(orig_pages.at(pageno).getObjGen(), QPDFObjectHandle::newNull()); } } } static void handle_rotations(QPDF& pdf, Options& o) { std::vector pages = pdf.getAllPages(); int npages = static_cast(pages.size()); for (std::map::iterator iter = o.rotations.begin(); iter != o.rotations.end(); ++iter) { std::string const& range = (*iter).first; RotationSpec const& rspec = (*iter).second; std::vector to_rotate = parse_numrange(range.c_str(), npages); for (std::vector::iterator i2 = to_rotate.begin(); i2 != to_rotate.end(); ++i2) { int pageno = *i2 - 1; if ((pageno >= 0) && (pageno < npages)) { pages.at(pageno).rotatePage(rspec.angle, rspec.relative); } } } } static void set_encryption_options(QPDF& pdf, Options& o, QPDFWriter& w) { int R = 0; if (o.keylen == 40) { R = 2; } else if (o.keylen == 128) { if (o.force_V4 || o.cleartext_metadata || o.use_aes) { R = 4; } else { R = 3; } } else if (o.keylen == 256) { if (o.force_R5) { R = 5; } else { R = 6; } } else { throw std::logic_error("bad encryption keylen"); } if ((R > 3) && (o.r3_accessibility == false)) { std::cerr << whoami << ": -accessibility=n is ignored for modern" << " encryption formats" << std::endl; } switch (R) { case 2: w.setR2EncryptionParameters( o.user_password.c_str(), o.owner_password.c_str(), o.r2_print, o.r2_modify, o.r2_extract, o.r2_annotate); break; case 3: w.setR3EncryptionParameters( o.user_password.c_str(), o.owner_password.c_str(), o.r3_accessibility, o.r3_extract, o.r3_print, o.r3_modify); break; case 4: w.setR4EncryptionParameters( o.user_password.c_str(), o.owner_password.c_str(), o.r3_accessibility, o.r3_extract, o.r3_print, o.r3_modify, !o.cleartext_metadata, o.use_aes); break; case 5: w.setR5EncryptionParameters( o.user_password.c_str(), o.owner_password.c_str(), o.r3_accessibility, o.r3_extract, o.r3_print, o.r3_modify, !o.cleartext_metadata); break; case 6: w.setR6EncryptionParameters( o.user_password.c_str(), o.owner_password.c_str(), o.r3_accessibility, o.r3_extract, o.r3_print, o.r3_modify, !o.cleartext_metadata); break; default: throw std::logic_error("bad encryption R value"); break; } } static void set_writer_options(QPDF& pdf, Options& o, QPDFWriter& w) { if (o.qdf_mode) { w.setQDFMode(true); } if (o.preserve_unreferenced_objects) { w.setPreserveUnreferencedObjects(true); } if (o.newline_before_endstream) { w.setNewlineBeforeEndstream(true); } if (o.normalize_set) { w.setContentNormalization(o.normalize); } if (o.stream_data_set) { w.setStreamDataMode(o.stream_data_mode); } if (o.compress_streams_set) { w.setCompressStreams(o.compress_streams); } if (o.decode_level_set) { w.setDecodeLevel(o.decode_level); } if (o.decrypt) { w.setPreserveEncryption(false); } if (o.deterministic_id) { w.setDeterministicID(true); } if (o.static_id) { w.setStaticID(true); } if (o.static_aes_iv) { w.setStaticAesIV(true); } if (o.suppress_original_object_id) { w.setSuppressOriginalObjectIDs(true); } if (o.copy_encryption) { QPDF encryption_pdf; encryption_pdf.processFile( o.encryption_file, o.encryption_file_password); w.copyEncryptionParameters(encryption_pdf); } if (o.encrypt) { set_encryption_options(pdf, o, w); } if (o.linearize) { w.setLinearization(true); } if (! o.linearize_pass1.empty()) { w.setLinearizationPass1Filename(o.linearize_pass1); } if (o.object_stream_set) { w.setObjectStreamMode(o.object_stream_mode); } if (! o.min_version.empty()) { std::string version; int extension_level = 0; parse_version(o.min_version, version, extension_level); w.setMinimumPDFVersion(version, extension_level); } if (! o.force_version.empty()) { std::string version; int extension_level = 0; parse_version(o.force_version, version, extension_level); w.forcePDFVersion(version, extension_level); } } static void write_outfile(QPDF& pdf, Options& o) { if (o.split_pages) { // Generate output file pattern std::string before; std::string after; size_t len = strlen(o.outfilename); char* num_spot = strstr(const_cast(o.outfilename), "%d"); if (num_spot != 0) { QTC::TC("qpdf", "qpdf split-pages %d"); before = std::string(o.outfilename, (num_spot - o.outfilename)); after = num_spot + 2; } else if ((len >= 4) && (QUtil::strcasecmp(o.outfilename + len - 4, ".pdf") == 0)) { QTC::TC("qpdf", "qpdf split-pages .pdf"); before = std::string(o.outfilename, len - 4) + "-"; after = o.outfilename + len - 4; } else { QTC::TC("qpdf", "qpdf split-pages other"); before = std::string(o.outfilename) + "-"; } std::vector const& pages = pdf.getAllPages(); int pageno_len = QUtil::int_to_string(pages.size()).length(); unsigned int num_pages = pages.size(); for (unsigned int i = 0; i < num_pages; i += o.split_pages) { unsigned int first = i + 1; unsigned int last = i + o.split_pages; if (last > num_pages) { last = num_pages; } QPDF outpdf; outpdf.emptyPDF(); for (unsigned int pageno = first; pageno <= last; ++pageno) { QPDFObjectHandle page = pages.at(pageno - 1); outpdf.addPage(page, false); } std::string page_range = QUtil::int_to_string(first, pageno_len); if (o.split_pages > 1) { page_range += "-" + QUtil::int_to_string(last, pageno_len); } std::string outfile = before + page_range + after; QPDFWriter w(outpdf, outfile.c_str()); set_writer_options(outpdf, o, w); w.write(); if (o.verbose) { std::cout << whoami << ": wrote file " << outfile << std::endl; } } } else { if (strcmp(o.outfilename, "-") == 0) { o.outfilename = 0; } QPDFWriter w(pdf, o.outfilename); set_writer_options(pdf, o, w); w.write(); if (o.verbose && o.outfilename) { std::cout << whoami << ": wrote file " << o.outfilename << std::endl; } } } int main(int argc, char* argv[]) { whoami = QUtil::getWhoami(argv[0]); QUtil::setLineBuf(stdout); // For libtool's sake.... if (strncmp(whoami, "lt-", 3) == 0) { whoami += 3; } handle_help_version(argc, argv); // Support reading arguments from files. Create a new argv. Ensure // that argv itself as well as all its contents are automatically // deleted by using PointerHolder objects to back the pointers in // argv. std::vector > new_argv; new_argv.push_back(PointerHolder(true, QUtil::copy_string(argv[0]))); for (int i = 1; i < argc; ++i) { if ((strlen(argv[i]) > 1) && (argv[i][0] == '@')) { read_args_from_file(1+argv[i], new_argv); } else { new_argv.push_back( PointerHolder(true, QUtil::copy_string(argv[i]))); } } PointerHolder argv_ph(true, new char*[1+new_argv.size()]); argv = argv_ph.getPointer(); for (size_t i = 0; i < new_argv.size(); ++i) { argv[i] = new_argv.at(i).getPointer(); } argc = static_cast(new_argv.size()); argv[argc] = 0; Options o; parse_options(argc, argv, o); try { QPDF pdf; set_qpdf_options(pdf, o); if (strcmp(o.infilename, "") == 0) { pdf.emptyPDF(); } else { pdf.processFile(o.infilename, o.password); } handle_transformations(pdf, o); std::vector > page_heap; if (! o.page_specs.empty()) { handle_page_specs(pdf, o, page_heap); } if (! o.rotations.empty()) { handle_rotations(pdf, o); } if (o.outfilename == 0) { do_inspection(pdf, o); } else { write_outfile(pdf, o); } if (! pdf.getWarnings().empty()) { std::cerr << whoami << ": operation succeeded with warnings;" << " resulting file may have some problems" << std::endl; exit(EXIT_WARNING); } } catch (std::exception& e) { std::cerr << e.what() << std::endl; exit(EXIT_ERROR); } return 0; } qpdf-8.0.2/qpdf/Makefile0000644000064100006410000000003113247541377013132 0ustar ejbejbinclude ../make/proxy.mk qpdf-8.0.2/qpdf/qtest/0000755000064100006410000000000013247541377012640 5ustar ejbejbqpdf-8.0.2/qpdf/qtest/qpdf/0000755000064100006410000000000013247541377013572 5ustar ejbejbqpdf-8.0.2/qpdf/qtest/qpdf/deterministic-id-yy.pdf0000644000064100006410000044203713247541377020173 0ustar ejbejb%PDF-1.5 % 241 0 obj << /Linearized 1 /L 148511 /H [ 1278 273 ] /O 245 /E 7196 /N 43 /T 146794 >> endobj 242 0 obj << /Type /XRef /Length 50 /Filter /FlateDecode /DecodeParms << /Columns 4 /Predictor 12 >> /W [ 1 2 1 ] /Index [ 241 91 ] /Info 251 0 R /Root 243 0 R /Size 332 /Prev 146795 /ID [<9b1c69409fc9a5f50e44b9588e3e60f8><310e717e55d027fa51686f91bbcca18e>] >> stream xcbdg`b`8 $XX@I$& 1Qb<= endstream endobj 243 0 obj << /Lang (en) /Metadata 87 0 R /PageLabels 253 0 R /Pages 249 0 R /Type /Catalog >> endobj 244 0 obj << /Filter /FlateDecode /S 254 /Length 192 >> stream xc```b``"fBd}`)XPù'54&3zb\8ZbET2VLT/s`Fw 6?Ӡa㦪*SpL42Wml_`_@Թ\8rs\2xW.5P @20i~3)9ƵpdR endstream endobj 245 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 246 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 249 0 R /Resources 250 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 246 0 obj << /Filter /FlateDecode /Length 225 >> stream xuMKA +rT1̵ Pebk{ofWh&I3;c+ ~5 **Mck$?r_"s8`9@> stream xgPTY{si249IЀ$Hn2-49AD$)8:EEyqpQQYU[[Ϗ:;羺UzȐ ɰ> 3(8p H 0D[oo+k?Q '/s,^IW8=%1{8cq?_e> ʄS+ԮfG[^N/?_zVCte?(.Or}]/t7Y9;Ꙁ嶖z RWN0t8@g ةo9(0-pGo:(H2O:4w7&CɛRTRӬҪ>e dje͜r:fg(fn;=b{y;&w:<+n\www̛||~=ߣ~pڽ{p n~.bE,6)>R)ᕌT4t灎2fYAٻ[(7*=D8zHPQURYR*jڮFfoa#6GZkj k?9ι^Xڱ  YǛ =d,\̜ =uGZuZm/ i޳?\Nk/:2;:;]]Cv[tˉ/_(!,]̺8)[z_ rϧoל]x7dercxA;wZ73l=|ýk]Y?24?`,tL`a7->gM`"00>|W%y2ETӴ/7|jq6wk^k?&,YVwFz矽OxPAɏ?M-~'K KKB. t ]@B. t ]V,r96_6@-Jh 7#edoMDEa&s|.7>s7 endstream endobj 248 0 obj << /Type /ObjStm /Length 2520 /Filter /FlateDecode /N 83 /First 740 >> stream xZnH}߯IBރA  ˴#,z$9﩮"c2igD"]E[_LklhsW2;\!L-'PHd(:d 2Ldll1(-aa!Fo#cؘx.DK#י^Ɩdk-'ga=6y X:;G"8_ 'e,EܶXK6;0oUD; ZȂF|SZ X|\ &S ڠ<.&Du&:LZ2<4 [,crM0&&dR\lp#,;9ғ:K#gRțMʞyIr=da.!&WdΒZ#39a&g칰P1BBS^aaLG~0z{şg{oZ2T];y*I"$,VXXabũaq /,  ,A K ,QXDa% KK$,YXbosՙE7>7r&uՏOk?6=ϟÐx)(c_RՃu8U#qv2~Wvzsxq Oz5uX۰]<3}hZ8 %x}ߵwߙOyKnǫzX]aHzqrt`_*\_uUk/̓5HRhn~<q ]%@J ,- =bB؊#4jGlFt$hGF$iHF$0q#PvDjZAj?QvDjZAjGVnDjZAFNnDԍH u#R'H݈ R?"uԏH #R'HG{m}B~=_,~:;on՝v'ꨮߝ-"M'xYV홚Kj"Q!XI0>=p!=n8LVիkᾟ-su^oOUY\n-3M_&°N]cږ鯺J]Yl+~zH,8eklAr N(+yL5r4ƤWIYiߋIN]l+}~xuMZNÛ}cQN $>vJ U|4cv_4(=̞Uo3Pḑ܆@)RPw K zF&%μ87eU TiNs%[*7Q\Ϸ^ 3﷛~y;W}-(6H9N 0HxTc5oı KՇȗ~I].7Ȱ|fx_όU@U?SpΔ+ y-/?/%^o6uӏ}׹&A2G퀬{ 5MEidZ4L#>(4h;TGk#ǹ1KJȸ1Lksd9^Seϲ2 sM&fg䷔КܐM`flkHcz/>Idž" xԐ5Uzb"Li1GtfOZ59dW[czlyE*eZg t]m?M=#ʢCa-aR,%<8O3,ެ/f2?nWz{a_ol7Iy:f|eҧަ> endobj 2 0 obj << /Filter /FlateDecode /Length 336 >> stream xSMO@ﯘ&vjƶHUJ+Mf2ͼHB{L%x)IJ) CƂ$( pcHIV& r·v9 }hEGBg 0n#7Q/C#AAyچF 9p3c=q,s 0Dk')Zu)`t2ݴ_Ti-J0RIa| uP $.o@a8iFB=-|2|Wu+hq#-2Qx7kLF5]~..@3&> endobj 4 0 obj << /Filter /FlateDecode /Length 15258 >> stream xOsdy>i=}ϿՄ-Yز/:zQ"!:Ȣ\,١sO&HIc;ʬ,A2_{<×_+>D=|ͮ>EW~_|ͯsxpſ?|wO'ť7/8?O3qyL?\a?ޓ_qo=κԇ?x7:Ox:O>xᛧ>|zGxSs~>\>~5[>gzYlG9UvUhm9)B8$RT+߀8D0D0D0E0E0E0E`&]v"8Dp)S.\"@ XkZ@kZE0D0D0D0D0E0E0E`Q7:T/GQ=ꤚ,Y.\d2C,(bE,eT*Q2*YYYY&Y&Y&Y6ldȲe'N,Yd9r$I,Y.C,<2Xf,bE,eVJAAAIIII,Y8:L's;x8?6q>|Og7ٍ~z=~c׳V?ӛe7K >)C$ﱺIK-{u=^z[b qo.uR=΃꠺SnF5Yvdr A,'YNdr=wZ,]jܳwrOߡbReeeeeeee#F,;Yvdr A,'YN\dr=Z,("{/XQbGReeeeeee#F,Yvdr A,'YNdr<2C,e"Y2XfˤO'i4I$}>IsO'i~Uy߬+|&2?_և/_y᫗w|`OoFr˼}w&kѵnݛ4JTwWԍ)YHT A,YNd9r"%{(XIb'R4B]rO& $$$F,۶_#P꠺SFzj\dr=iZ,"{(XIb'Reeeeeee#F,Yvdr A,'YNdr=iZ,"{(XI#U,Qj LLLLldȲ-bt.{>|w_V3Dy7 y=h"|̇/~?=}r?>}gqycۇ}yeW:?+-)*|{ ;KUuzJ}*|{M,Yd9r$I,Y.LjLuj LLLldȲe'N,;Yd9r$I,Y.\by>B-"#by>B-#dddddddȲe#F,;Yvd9r$I,'Y.\d2}Z,/ǷE,/G2}|{]2},,i4I$}>IsO'iWmwqc}ޡ.:~v{_=yo{dz1n5qܮtoN{ uPݩ^RonTe#F,;Yvdr A,'YN\drze=IJbYX"ebYX*eeeeeee#Fm[ [%uT7ԣPTAuPM,Y.\bX!qe"Q2XF˨b,,,,,,,,Y6ldɲe'A,Yd9r"EK,<2C,e"Y2Xf% $$$F,Y^3jerN~uyY^YzxAl{.~f8w^:f8%#k]q9*ՍjA,EKRıT,U$KReY+=JuzJzHN5Yvdr A,'YNdrze=IJbYX"e-bYX*eeeeeeee#F,;Yvd9r A,'YN\drebX!qe"Q2XF˨ddddddddȲe#N,;Yvd9r$I,Y.\d2C,,bE,eV*Y2i4I$}>IsO'i4Ykkn;r6l[}l_||3=ro~wmn\wJ+yX-_gY-Ii|_KW[nTvS:Lu4iT.S]Hul)'=RN{p+y%=TTTTTTTT6Sme7<-[(f.S]Hut)'=եT\rRݓ]+.Lj3nTvS:Lu4iT.S]HuO})'=jRBYI5+f%լLj3bSQǽFqd|5bso;|c~fD8ƽ7#N嗗7'嗗αV<,///;!oO//;!OTvS:Lu0iT.S]Luj=HZRTk!ZHVRTk%ZM5L5L5L5M5M5Mj3fTvS:Lu0iTNS]LujAQH5 F!(TjTS S S SMSMSMSMSmLj7nTS:Lu4iT.R̓T *za}~d|_.c~f}L:;;f:=N%A~$yX-_Kj3nTS:Lu4iT.S]G9QNJxT(70000444fT륙G}Iwgq7'gq妺Lu2E:yRT('}_Yw;L+n|@y|R>Lu0iTNS]LuހrRH^Huo@@9 $7 TTTTTTTT6Sm[9Z{Kދi|E7Mu2E{Iuo@@9 ('սTjjjjjjjj3fTvSMu0aTNS]Lu"ս夺7 ހrRPN{M5L5L5L5M5M5Mj3f{ܸuWi7Ιܬwƍm܌e8տW/߾axg3#Zu7Oئ>;m$_f|m(O<,'=PnaaaiiiiTz~co{<-[(f.S]Hum('=T؆rRc+ Lj3nTvS:Lu4iT.S]Hum('=PN{lC9 Lj3mC{lӏ?ﮏ~~x?wwdQFޛl/Wօ<-_. yX-__. 6SM0aTNS:Mu2E BNKBN׋BN=z.Lj3nTvS:Lu4iT.S]HzI^IzQ޷T兜T慜TTTTTTTTNUS̶#Q.*ǫlzT)_vWp)92ך"7W[=#κן!AuzIuzJr"}Is_rDu;$dAr~'oNzFzzHɲe'N,Yd9r"E,XsH-PZ,9}]222222ɲe#hMW˛Q,O<,7iT.RW㠜T8$/A9qH^Iu_rS S S SMSMSMSMSmLj7nTS:Lu4iT.R̓T |߿>z??^q㻏3]Of]Kzyr}fPDy^L0 {Yw; ˻q}koϗF7'#A[nTvS:Lu4iT.S]Hu|I9/%/wTΗWRݛrPnaaaiiiiTyyMjA8,˻Y-o2eTޔrRݛrPN{S+M9(70000444fTvSM0aTNSLu2E{SIuo!y!ս)多TjVRݛrHLuOXK*ˈϣܹ>}\8_ͽ姏}ˎ=Ɲ1^kmi?o˾:Iz_t꠺S\Z(mMq v\,Or뒇EܺrSM0aTNS:Mu2E_IuK9#)'}Tjjjjjjjj3f2i1ޒ[(f|rS]Lu"} 0夺>rR݇SN`M5L5L5L5M5M5Mj3fTvS:Lu0iTNS]LujAYH5 f!,TjVS S S SMSMSMSMSm9zlJ<_-vv}1uϣ?|߽—C"qޣ|ݶβ{Shw nAy|RLj3nTS:Lu4iT.S]єFSN{M9iT4rS S S S SMSMSMSmLmz2[~XwZ,byZnT.S]єFK^HuO)'=T4rS S S SMSMSMSmLj3nTS:Lu4iT.S]AyjRBYH5 f%լTTTTTTTTit`gkuo.|w>? ϳ~}˛ ϗ!֝l8ΗLG)|B!yZ>(ߧPHw/8߯f ɛ]H)rSM0aTNS:Mu2E9$'Rl!9^瀼e{M5L5L5L5M5M5M5Mj3fTvS:Lu0iT.S]H=zٞCrRl!9^瀼e{M5L5L5L5L5M5M5Mj3fTvS:Lu0iT.S]Lue{I=T/sHN9$'͖fKiRl)m6[8X2 덒c>c<|7?ٝvuL;#Zw~G?rgmKNz)oOoZJ{ N9aaaiiiT6SmMj7aTNS:Mu2eT@rRq 8夺WRqM5L5L5L5M5M5M5Mj3նUۚXayX-_jyT.S]┓SN{ N9T@rS S S S SMSMSMSmLj7nTS:Lu4iT.S]AyjRBYH5+f%լTTTTTTT<̚/z|ݷ/}ݝyyYZ;7u2T|Q$Y>)[J2E ս;Z B{k+J>D000444fTVu^vzI7$Q=޻BTVPd9r"%qebXF(bE,eT*Q2222222ɲe#F,;Yvd9r I,'Y.\d2C,<2Xf,bU,eV LLLld7xiHηqFY+ jބ?Q_} >|r_ۿ}gClʝ{Y|=ﻏ#.7ngLi|sAyX-_o0(7Ex)Iu/%y!}夺>^rS S S SMSMSMSMSmLmXsMEA8,˻Y-o2eTR>^rRKQNx)+(70000444fTvSM0aTNSLu2Ex)Iu/%y!}夺TRjjjjjjj3f~~&cPvݡ|eס|,{nWO/\݌γ,Yw~kG{n{f͒7'{fAޱYT.S]Hu('=WꞫQN{&y%=WTTTTTTTT6SmMj7aTS:Mu2eT\rRs5Iu('=WꞫQnaaaaiiiT6SMj7aTNS:Mu2eT\rRs5 夺jꞫQnaaaiiiTh̵ƔeNZ޳ܛ#_eNv~=/S)/w,ד7_VȰ)^yf|cuoыi|)yX-_7%ojjjj3f.c{OnEIi|_ET.S]HRHN/ ӿ('}T)`jjjjjjjj3fTvS:Lu0aTNS]Lu>7rRgQN0Iu!&y%}LåZy7w{`_|ktg]= ͍ /zypqoPKzoyůם_kU{9*W>+[(?)oOʛ6SmMj7nTS:Mu2eT('=UꞪRN{J9*Lj۪(QEy7'XayXnT.S]_SN{*y!]PN{*y%=UTTTTTTTT6SmMj7aTS:Mu2eTTrRSUIuOU)'=UjVRjaaaaiiiTw9sM{FY3gTnn8\榟>>}ݷ|<_<GcfnGayz-ߐwڒ7'i|Ӗ<,j7nTS:Mu4iT.RݧRNW _)'}T鯔jjjjjjjj3fTvS:Lu0aTNS]Lu>rRݧRNWIu*y%}+Lj3nTvS:Lu4iT.S]HuJ9_%/OTjVRJiRl)m6[J-͖fKkyo4sc?'$?\s=|xzw=l杇A^qG)wDo  -M fXϯSŰXQ,EK}7U$QReeeeeeee#F,;Yvdr A,'YN\dr},b䆺>[jGqK-n222222ɲe#?{|QޫI(yX4eT#)'}T1M>r[J{.@6SmLj7nTS:Mu4eTAyjf!,TjVRjaaaaiiiTwmh~:x,ls; kyCt'x,+\w߿>}|뿼>~p9:nAn|g֝ucE~Nɛ{:i)IZ BjZ+jaaaaiiiTo7~n|$y|R>i.S]LujAQH5 F!ըTjTS S S SMSMSMSmLj3nTS:Lu4iT.S]AyjRBYH5 f%լTTTTTTTT uTF)Ӟ{|JXk1^s#fw<-]$˻ zXo.p ay|QwYnTvS:Lu0iT.S]HuO)'=TԚrRSk+5Lj3nTvS:Lu4iT.S]HuO)'=ZSN{jM95Lj3fTvS:Lu4iT.S]H5R̓T ,TjRJYI5m6[J-͖fKiRl)mt9—S1zktzt^/ty>c~Y^߬kkβ!ߔz uR={ATw{?r$I,Y.\dbyu~Pe?dddddddȲe#F,;Yvd9r$I,'Y.\dibyٲuˆ}PeU,/AMAAAIIII,Y6dɲ A,YNd9r"%=ˎ|Pe?>*& $K$}>Krcܛj4:7ƝzMxlc_߼aw'gUwvc'y7cκMX-_P,_(C}夺T_>KJ/M5L5L5L5L5M5M5Mj3նUG?ayX-_jy|R>i.S]Lu>rRG|I^HuE9#('}Lj3fTvS:Lu4iT.S]HuE9#$/T_WRG|QnaaaiiiiTyʑk}5=FYkκ{#=}=rבӱݿ}x/~_a%{+ Ay!ZHRTk%ZIVS S S SMSMSMSMSmLj7nTS:Lu4iT.RT 8H5RBQH5 F%ըTTTTTTTT6SmMj7nTS:Mu2eTAyjTjRJYI5+f5000444f{sZOv\8Z^a<4w9,WO_?2|}4awmJy^x7?ى›ޜEޜf(?ߛSwZ,7nTS:Lu4iT.S]ͣTy>4rR݇I^IuG6Sm5<_%ay|Q>I,妺Lu2Ex*9 eK|b\ǡ?3ڛўLh7 c}լwތ8.%OGEѥrSMSMSMSmLj3nTS:Lu4iT.S]OYT)RݧSNu+S)70004444fTvSMu0aTNSLu"}:夺OYT)딓>e]JuM5L5L5L5L5M5M5Mj3fTvS:Lu0iT.S]Lu>erRM-͖fKiRl)m6[J-͖fKiRl)m6[YX [uwF^I{9!'x_#v_߬ǬG<κiZ<-Oay|Q鑼YnTNS]Lu"}YIu_oVB,夺:K6SmLj7nTS:Mu4iT.RݗTi%//IK9J^Iu_rS S S SMSMSMSMSmLj7nTS:Lu4iT.R׫Tk)'}ZIu_VJjjjjjj͖fK+(2\ԣQכּ{VW~H7Ӻ.`{~9߻GSY7[/Ǒ=כּE]f|o.yZnaaaaiiiT6SMj7aTNS:Mu2eTɪ>YUBdUIuJ9U)7000444fT6SM0aTNS:Mu2EdUIu*y!}*夺OV>YrS S S SMSMSMSMSmzsp[s \NW=ʚk;jyKm17`{,_?}˥N}|Pzy9$iRq},Y;Ӝκן7' !Oˇ !˻zprRnu}M5L5L5L5L5M5M5Mj3fTvS:Lu0iT.S]Luu}IB !'u}M5L5L5L5M5M5Mj3fTvS:Lu0iTNS]Luu}IB !'o+^7܇TTTTTTTT^'[؇}6rݠr%zg݉Ϻp?'׉ӷO>]>/﫩ތtϋc5n|V˛妺Lu"ս夺7TWJJ{+M5L5L5L5L5M5M5Mj3fTvS:Lu0iT.S]LurRݛ_I^Huo~E9ͯ('սLu)72!7@o?z˫zBߛe7O{QϗQr?[z]>u޺ן1AuzI*Ս)n,Y,&rS S S S SMSMSMSmLmh-y?,˻Q-oOg<-7eT.R$SNd c)'}L2夺ITTTTTTT6SmLj7nTS:Mu4eTAyjTjRBYI5+f50004444fMI7U_v |vﯯG$?_}U7\sT!myڗ7Lq޺|w>߈c>zŝGlu1z]k~gOs%uzJ`<-)It,y%}3[5rRG0SNf+#)70000444fTvSM0aTNSLu2EfIu,y!}3夺`T̔jjjjjjj3fTvSMu0aTNSLu"> endobj 6 0 obj << /Filter /FlateDecode /Length 1224 >> stream xVr&߯`Ozg7yԤ+7,Ľ"#}=$'>}i }Ҝ9}tɤD"LcԠIQVy%@П'y ӧ0Y S?=xL BBð+þPK9/&(x9mܢ_pԁf)w$2c<858SyΧw1":_:O#LH? pFsCѹAnӛ qv|/QF8.@`.d =\}fc PaeKᷟޡ7aVbUfU؊uT*vvUJZ.]Iȫ4 yIU~A"jn:vA|ˏU,/$yIMj\â` >)uUFӽaem׶`:]pʱ~F1 ) ⩔(*l=KEDŽ 0ppD ! cE(~$0$14}/6 :{ǪC`(z$bw;G6q7AอڍeNp2Wvq -E J}FվEXr 掖l;\ݡ{ i4lfiOǮ<-;עNHJАJW]kJBUFC޲F"|Ök%#tuTvz֓G7mh}Attm` >2i$9bt`{b1f !VމaPOw7@4 P1<$i[41BŞ,7\dȊpzqY1Ypw̬h%#dMQ Sp^/ړ=ϴWwfYljkNmW KԸ2kh> endobj 8 0 obj << /Filter /FlateDecode /Length 1572 >> stream xXK6W `S>nO]tr%bV9IKC/iS4p/ge~9)>'cmw$$[Ҙ"")ɇEHaIRT{7On?`[['87IT8\kpoK/'/-D^\2+w٬ƶfMMrM#fd PSM"' NbR9$0YmdC@i {)N9J"9gIe`Ӭӫ^2wHl梋4.7nVa* IǖM`M/,#c΂6 +1[Qv$GJLMC_Y@cwӄdg Lm_V+-Vf(t fi(K,rZ]:+V #o汌43=UTPgQ)Q(mB?+>47Gfad|V \kx%Бfw"%kLؗix@I-#q%fb58|0cמR# a# T!HgVh/TIG7xPɻvBsPwޟS'|=1ygen84*L6RAWAq\ X݉<߼wrnUUH4;LraRyC1d>,=(M1{:N4H]'n_5F.5]yn{ݮ5UF9c].rDp9:zM];M LOM|C o .W1ɺ"Fcc87z)ϳ'كDuh}o^hspL^{L51Ϳ[6n :u̳LSl;EEq[>Dm6f9B)gkCקŴA6U }mO(C=qF/~k3x7>3*.w`ǕkߘcA .[ > endobj 10 0 obj << /Filter /FlateDecode /Length 2926 >> stream xZY6~_ĕ $N)cL8$(a"doK"ɛj5F/4} I?yzsEBG$4)H(%)(AX_WϿ!| N٩?_}=7ߗ ReeT#Mpji@eW5 ߳2e=~k)4ZD/"wыoWf:QmW(hQByY+i]m'6wkx"Uߐ78U]HC&J<>~H𽜆qs&%[ 7I :XBz{&Rfp\#|6-uCǪ9<2TM3.tQ< 2?~gqE,(q 2-y۷e)#Zd&I\^o%ޟ(vCfT'>N`EOth&;0,ia!%6۰~/f@>A7YH3 UX\m{`]5',e{f}YBöoX_s6RK}ۦc DoE׉ (u5/g6 F%h(s}'¥qK# 2<'&diھT2=n ՑEF2,m=E4)A0+{I>T e I_Kś[;i1pI0i9+[v6P*~p-hhAF|Z;B0)g6td toD y"e![ <[Z%zby*h`&nA-AYK/ >kz2ɿN@ĐXPYS|<9@kBaa~\歭nFE["|8} Q?aXo]iH̓JҐ(Xb[Y4aIREXbJS) jծ9Ⱦi/&r8Ԏlgy{ԇX=ltE;P\h᱊F]#04":bgYc9Fخ!$-y_aڋ0ĈӰ맊+E{ނ&n/fu9 _:@AZ:3a8#GC DA<}PpV*iGDئ wfJ8TNq ׈;7a`\AY| E AL0# 3&b5I;̆j[MV pf{b Ɉ :޽0s-\[i6-6׬Z08U-n`Hxޗl{ Ĕm*7nl$z:-i ^W=ٲ|@;TSvܠont޿|y4xQۮZQT6l:Sr8++E˄Xu3&5x~D;>NODoCX~A1 /u{<$hHݵ?AvA&|wↅÒ J5[BF,/ =+Tzzr _w8霷 4uy!C}*^"+5un*1y=CêN*J\i.3/ FbU#X7デn㻄4ǸXV Tp-9z2D0]ډ0f`dx+mPGSu|G٪+vy;/7Ҡ8Y8#:S!(=8S#вHP*<)koџbp(_|q2 @A딣2E$x D݈዇ø6li(: qo,58d_8ev$@m W՝ NPx!]uGG:_=eww-A&yJӘFx~Z˃vMyNa|t#&(E (ll-X,vR0̛kr fw:T!_TW40G'E&՝zZDs"ƃm[ Du%$?DV)g8ǻ>5cG_O\GM5'#;Q5#wK&Q7sn/T2B|'\ۚ V}{˪HcgG6vtm!@^mgъ_٪j(OF>o:Z)!T/hhU|f߽gaI"26%$NKo!N E% !/]6hE6$B8w:"[yendstream endobj 11 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 12 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 249 0 R /Resources 250 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 12 0 obj << /Filter /FlateDecode /Length 1447 >> stream xXKo8W)ݤE[,ʢ#QPHZMx!9΃/("Yaqoyebe%)1t@NPwD4Pa6G?_8 cqO@^!\?AśQV[E4yE(,*OVMWV!^oM*^U~z+Z[\Nc4m0G>' ILNWp|2ѭ*Di 1|A$4I~y8? 6_|g0j1[,Y/ bj%aqF{Ҕ5p`%1EVHXaQ^sJȋP07_ }wĠA j!ymQa0e\18%-MMWkYo]x<%R]gҙv3١@k^W `ӅLDINT6/Էo(|vFT F͛>%Z+U;x1 w],1dƴ(V*X*[bYEԀ a^TY$iy7-,_ ైbZdP$1͡( 3{N2hȦnzE#R=lٖ#W$d$iS):xrlt̍۽6[=7`(>UT%tW<Ʊ!U Yj:A{+˪1H ?)G VHIqFwC.7ڡ3tFC1+7~Qwe 8涿tCzV{ч̠>cВ}5q]KG? MKvE{1 C4x B 4'gN;܁E#zr,w;ޫ;zC`@@|06ܑ-A/s*1PUEq~R6G(L$?#LJ]reR9V$!7Z[ Sedt^v`-Vy.=4ps-ՉS1ø;ט=|nfm{zgqndaֲ^6bA>}V1 h}W6]9Z;:b[#!0/=9X r\:33]9v=ZJC[jf@(Iq288T qv82endstream endobj 13 0 obj << /Annots 289 0 R /BleedBox [ 0 0 612 792 ] /Contents 14 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 249 0 R /Resources 250 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 14 0 obj << /Filter /FlateDecode /Length 2796 >> stream xے۶]_3+ [g;IΤDB+6)j6_߃;xvnsuCPl埬Qy|58ԠY'ElWGoi7X\6ќ:q!/Dߜ(%E)u/1?r&MR-?5D/>U="FnGc͛$D~Q*B1qEQZ~E(F۶nЇ?\KX8"PMP4t*1}:t4v?h<Tѩz~D;*lPS[ ~3)Sj *)ӌ)&C]wcW$InD Z)[Jx)@A>}4es air1Dr kRI5_LQD4<Sp& es悵KL{ n# +LDi}­ yB<esW5lψ2A bG<$ڑjtb}B6@dҚfʉ$#`p|C5Fu΋k'o*E5{uyn1KWUbIQE_DWe>~ȴn-qeYG RX%ili…8%.#WLdLdc )cl,v^x:BߟR2o'XYS} U8HzT#Leyu®w*Yc.soT^toD-f,oED\Li_5oކd4hjGE T1(' !]LB͓ Jծ7h y I > 頹ⓔepNW¼(ɍR8i_*zt-QIs5x)YO{+cRZ` ]?at}]\rD2#tU #l(xYA5-XuK,$!rJ̭.,goufd g v[i?^qU)Yp5Rik4f?Hf$YV2ŬlFАvL!/ǹ}Ⱥ-s5! =dK~73)E>ۇOi8߃&$nt0Pr{J^t[R 1]to02N).b9:ծZ* F5 OSV}M8s5(މUz P3.49Ul者 H=}+$ 7ɋ5K;u1J6>Ai4CG)*7ۦE!B7XiيR~[aR7O@S-&s|H"J^֑:# M e F^VY Fx!@E E77ΗSJyʨ0^(jaY67a W0(7"LVf V!IV u8ufF0f[(aF,IV>$Hhn NHD>̪)gM=9NEϯq'}xendstream endobj 15 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 16 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 249 0 R /Resources 250 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 16 0 obj << /Filter /FlateDecode /Length 2639 >> stream xَ6򽿂oiY ,x=FlaZKcf؏""{›.|xąO$6#OXxG" H)VY?Bp"nK> w.N2ؼ/添ͫw\rw0! c' ,KNgUӋ u]G7^~!w߼8xiL%C/V hJҀŧR%MECDE?\k{1-r=$#hN:bpi/{.juo,ٞ$N8%4VѳwLaų3,6HjZGS~3{vCh·fCQFN:{hm:oM_ڈ=Y1YP8ThO1r4v{ *y. K\ҥvϤ#"^8ifYGK~4y(FTFWSz1+-&w"xtYDt$$Z^ΓY+<eєMjP0ӲϚj-)rݳzn%`ۘ5g'!%,t9omq԰*Z,Mg = mvAc0E0@{> Fbr!bԂi[3tAYC jШCت/$B\_5fQãYWTXr/uL\dE<\ LWm L 8i{6Zյ~0l⺕6+2U3 "{ֈW72X|؛Ł>:.X@6n"a0(g҈󞭔Ev񃄧^WExV 3Xq"@.)|9p0(v= ŞႸH/2%! >]n7~w|$R4\3)`,JѤi"o _6T^V4I؋i h {fO',I|-5Ȅ͘ab+C</[b.p/8&<, ^K^Kb{?_QBi/uu1> endobj 18 0 obj << /Filter /FlateDecode /Length 2200 >> stream xYɒ+pLUjUCx$g!&&µ މQL| QGQ%쾘 "r8P Z RC/صu3LQ/h{3wݟvf(ɻ(qUUV$}åmy?~F01 BB8O&49RHhr6A3?5Mj{M;"oFZ1M|; 1\N2! w"R5qH%IyOO뗧'i"_A$7@[gI#`_p%r"x:kgP(;q.ڮe@K$)oБԑ+̧8[OןE TR^K^l—~Z1t~D{"p`68.p\Za!7JY H9yZS'z=E_ś8pL(J_JՂ9ԋcw4HEv1mTBVE|'mNP}4 '$+k`znuGtu=y#UUwZJ K#Y˴XuN8O ȟժ}{ȚG[k㲔I"nTm$@pg_J]—nMrzQȓ5+l%?Ԍ} zުIvxO0@3VE "FC8'͸5;.-kõ3 4ӆV΃eKp|h&9Gɣ 0vBtlAT3|+w;' ed{Ɵ>]7\3YF]wBVoO*N08|t4Ͽ~tqI3tG~IWnL2&5)hYK$LU͜HV$EUe6 VBfr%tPQf9ÃHZhq&rM߷-IY>YCf7ӁB xޮxɖ?eLkAt :K=F&ӁgZ_ض?ݩ-ۙ+H?cbp]sI:#zU\1rჩf- M+bped:_N QjZ 3 BR'䇀;Hi\>DQ"4%UP3TH;跗;]5ky3%YPdX oysi'V.Ύvv\a躲[la=$+ R3o¹MdE+EJQ4<*=Ԡs7/} "Pxuχ{īG(l ϔFB>bj4"3IxӰܸ2$yYI|ֹܺ1SR < \ ټ#ٷ^G=YDQ ܲ!/)Qi\i2x** -hZMA9Tq[tdɡCB).MiUDŤX&$kҟd+:ښ6}f\s]jAf9At?P\~v"X+l9]4}5)ǘb!P׾V nAt=[ MkpxƔPp%mU0OVXySByWӾwqpɚ4.FgjdA[#Y" _fى^j!Y U <3WeXqQzb}b#EŊPo`QAP*Ӝm5Gps: =z(s~M@PW 4lx Là R OCx|6`E,!'̧ɷ9LVZsW~;fi0e~+F` [lg cFe[>형F;Mug)ppV?qendstream endobj 19 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 20 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 249 0 R /Resources 250 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 20 0 obj << /Filter /FlateDecode /Length 3843 >> stream x]}żu)r)@ۻd>d rl~}!Cywi. fP/7Rg?y Ӥ#gLJ3! JI0G9@!A<t7ϿÃaMd&tɑO?\~(nzw;Z%Y'IYe, J/w'폗k?E̘XFc>)j#?:I8CT%0&PH6>jy!߫v֌еb)PCH Nȯ.3oQv p$O,P# @ YK=hlg'T NCژj=[ε+ 8 P ֍!|L5{wϸ;Gq^.6m;%X GG(3YRHߵ[Apf&d'0JUC2~K#ƕ9U2_ea-sv ̚˨V^-B9K1ic0XAk +湛(@J(l(ϗ2,keAf}F^OFvR&&L #i\]1-|U1m?}bVrP'wo$eɘa, ,]Z;U#Yʡ*6]=:rv>gq>ĬGa:aks`„uͼq_ ~1&X?Y3A\@aaOj̓ +9l ZlLӠ 1Mi ;}jG 95F qlv(\mM';&+}80ֵVik^ [V{tvO`d?A7 ٖ.ChoF2w3bdgtr4=>4#n2s5=v. XTߎu"הl5my7Ȳ(|su!ly2Zҟj&Πo2]`pʑhJ emWju: `kq>[aR[D&)q8rbVǡP8m{2jC:VŪ*֦65~O8^ 0 #މ"kZCФã8 .dxSW DL&7ِQ2ʂ!U;os| *S{j|]|_v؋D.+҅˦~TGPb?>Qh lg !MRBpA;Y:Wg8"Vh?#5薮B-w,vOy}a'҅wJz.j շ _1S|!%3TxV1|1"PCLd"m6ZulGqLWգ8_t:r-X1KQ\#WX,` H*ap;XMx i]ZD#4 +)I^ërɫMj mj9#O8^< { 6f~߲:Zj[#.M:Us8 8_xr궃[S0ɖ)~!Q'ky'VUE֌ㅢ%:+ GH,`qHV? ;^жjwv>Eo``;/_&I &B6߱G;!~+Nz ڔPvjoWSB;8PEůR2(`Ftd_7";?8XkmTϦZ"/[8zAǍ EY=^`0 ;5stt]@W[qiwV)+^KqYBC)hQ.cְWpd2㢜R/q졠ŖKݨ.~7X.KDk̥P'T.3Dl-+"Oi m^U _yBF07q FǑgr;NV8X;n1nLsqt+L {G30sM_m("1pK׌Nbt1١cc"<9ćrzƞ&-"Њ6smJ{KL\ Rf:C>.u0LYJֺK\nogt1(@ 1ћJLk@d]0,b@rPSj7njGQ iWCYpN0J=$_hPmx3UP42X"5 s$[Q6EF{R5ڵxEe5`JzCpP|zpt,$i m\U -48̆7<}\y♜ݳuqj2K^G30iQAe.exx9͹6R0 &\ P%}}endstream endobj 21 0 obj << /Annots 91 0 R /BleedBox [ 0 0 612 792 ] /Contents 22 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 249 0 R /Resources 250 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 22 0 obj << /Filter /FlateDecode /Length 2661 >> stream x˒6-vAʇlJ6LU1C&_Iq7NYhD?Ax-D1'|Hĉv[AH~G^@W@]BVuY8^ʓΪhtbtC98>ƂG<,v ŮGi TOYyN! >dߓԗ2?c >ispsY-ґ)&)}sU2F8 dExGHEsNw,9Ww=t-sjA-}OQz#EtĦGJc I i>`s Oepm/^G|`bLvR |" ]#pj!z< j_l2v.{N_\v+췣-FJomZq c`$ x&S#2P蛗ngܤ7aBb,"!4xM[m렳ҮޥKAs3ف[i}ڂz ؍KKkC7I4@0 \w5#{rB&)u]Ԧ]螡B0>@33IYז1 NWN,= Xcvh2T ,n ~s/ C?X _D'@8,$ JJAVIb?M i߻#\Cj[nȁQI'DcAchv<_s? pwCYcʠFHJZ|~<%I|lUxQS5 `> 4O-8gU+OEČϩt~2FSuW3f"耎0C ^-WaP xAL¡zS+{Wq-FkvIs 1Ey<X1Co0An/5ߊV~v㜚+@=:ؐj+\ : @9Sw+,XP ~nT[x(Îc[@f=X>ãYV@eg<8PPNr$:5%f~xY0\,gÛ7 VuwY8a`irUsJ=P NN0olC'X!4(Ya- CF:`7.~^UbA\UVR<n3bYdk$Rx訳`M8"iM(;_*0%\3D":F61V*F1E ؚ%yR^IFw[+ʏ$c{_ /d5* }(,Sls#XNR~<2i(NKѨodwл/ I;m<;~"M"a?endstream endobj 23 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 24 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 249 0 R /Resources 250 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 24 0 obj << /Filter /FlateDecode /Length 4054 >> stream x[Y~_ovG?ȱ(ZH,?pv:iקȪ" Xj"Y*r?߅^'/#oL#/Έf^Q=SQ"b ~'.|˯P.7+{_{Ѫ(MXQv{}]_[7oPuWt -:^{[ P|NIwLRdj'V*/~Q}}Ł8Qxͧ1ucsueT=^h[PWq L1,B+&r݀SeJ5s&==*X4w3BVAtNܐ4WgC?Y4cP \c=%U$i%+dنW.g,IfyIg!+#.r{1sJ,zo,VLfA*G 2:Gڊ 京|•=D'-UfMВY[T7Ej읏/E(<҇vn;{ .SFTءBt:9ur?asϾjƲ4jg0Băǥz Kg ܥH7w3B?!隦`M[XX#ߋ`9?Ҹåǯ kf"iN\M+lA};i;5&h\B?oDpbPFZ9_boC'cP-V΍&<,%v *h Y+`H;!C $i v*!ZێbqKŅBdТ!clM>r!z wNuyԶA}[ԟZL5"JGVй>WNɽb*MΒ4ciY lezgP[&<ԈO j]N<,WpK5 8,tLW<$VXe)L I1ƃ0T? MߏgWK˽3um`}4BA*™ J 8Q8f38`MkPeHq?g'ܬ[rR˥0(zϺ=ތ,WTmjYY*S39WZױlci "FP#*MY[8$U)Vha{:Q HJkLɋm*E҉LEShz˱ )9o,oBjp(ŠM 6j6uһrLUyс§tݟ ,FX# i; .1:b_؍ϵ?h?i1Q;Q|uH(Y. gSҡo,\$ـq-  jJ".'rJgw< 9Tz1۪\ Ңd|sQPL]7=g>[Ô# i;p9p\f3v(T. /J=*c9#M 1Քf^l茸8= PۻZ/ =%A1E?i[~%H*-)yfQ FFT퇑#YÀ =]+,m>QL')io]==f[ E*Ț ;R>|eK3-i9earV&G(敇fx. Qs 1aPHFukbjT .HLA`ap:@O|jސ6GdXh0\ 'SX'T4bk*' %p/IVUK5dL {ف8=Ii7`zw`oT.Ɖa/ @`7Ar)s-4նq̼U@s{ !>}w>a7F|r}Iع@)VKr~Gcc'"!ʷSK%`%.4n8RhMg NDt檎# _"My2J9TY8Ctz'ծ;!^Ԩ8YL38A5.RsSpV浀v=jTf`~֩+![W?-Q yQҘ~3t 9t"5V:C AЍen%Uكqd{o֯l1yi!J?M 0qa"Nj2+յLV-g̀jo4d2y8|Ɯ<:it4r6 ,؍蕸/]V!ӣ-S,HCI=^ꞍBqL{#M t|~4utŮ7=%1D9 =3zx:yY0]qb*$A_\9)$v>fvV>"s~J!4D(!hhE5-~u$UY9@QҘ;e錉[~N&ɹd> endobj 26 0 obj << /Filter /FlateDecode /Length 2669 >> stream x]۸ݿoMK.E .p<m%q}R$P M0grԷUDBV?Eq"R$ *IqFČ3ҨU #E08?V*$[}5 4ѓfŸ.?$կϫ72y\AUUV )$Կ<Wm=y/ߞ'$Q0Q렵!t'YNg& VS EEpM;BgF[1M*v> `rQx3?e(*ٷ )|`5)B|(TQTE-^wr!/L`ubw q?VZk;tA}VTdP/Mpc]|׳=apRu" @hzlpnKlBݟD콞 ɡʞ.;(>(u'U1fPNBHH%9OVsGŁ!mbkgaI8ZVDUP>+RMcbZMy@v@>bv{{ZD.J`eqꦃ&ߖФZ e$KXpqq8 q͵# [LSCdW nܩB;BmGL93ݮ?oIoƭv'"9A9hy!8`m/ͧL>WroFbxnZ7ĵ'hOC` M7/|uMӝMs51i2P@_QFY!8dO{]JíeBYބP 6#*||Ty_ fzܻkU'ąI|pϨ Q{2/w-1 Pv3!Q;@1-6 ːvn_~6YYWNg ~-QX7.2}^1;.uTy%Q9A.P0j{qcb%^i ݮpLDchѵ' b۫jJo5劧t3N!u4+䭲 +0JSm@5`w.P ; )ᄗXeTaWmCg34Bǡ׹[;D1DF' ~C2B NcrLuhc2JHC;đL-$09wDUfG\{As'iyVY֡;]܍8`S' Xۈ<8 lGeu9aiqeYK zDU>ݹKc" `/Ve$֡~]77'wZf3^[ SpHaȲIX4*gvJSC/4 [-zM'+TA#ʢ(]ۗQcmZml7uNz `9֘W lLu֣p{A4`\u\!ӝzwQ5qc{ԐzXFi̼3>+[jGhqQw*pc8Q܍eU̘X*aGc敥z'{JCx 䏧A && GI_9l2wMgdm6cN=BĽ6`?_ߋnAB3cF9k5Ŕ޷\=!t=+B&AQ74"}wO,&q_a!t鹦؅3 ѭC[8)l?;qdߖUtf)j nRdAa m6TPYR36_eK{{ア{=, 7&G󒸺*1Cfݷ"^^hfŌuB㗨xL+IPU3C Z%HoACdT8 ;(Zf$Љ^=&gs.{I=OժûVyJ@;7xD۹@[sF>uCD9?nd.p'{ԧmZ/'ǯ]=D봺AM5UET}; eH=/g=g}\bendstream endobj 27 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 28 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 249 0 R /Resources 250 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 28 0 obj << /Filter /FlateDecode /Length 1633 >> stream xXK6 W;c1zK>I39ds%zFZw iY61 ~PSlbTuZ"FIEYꐦ3Ԋ<"68~V>bBP8¹9a_?|ݯ~ޮ^Pޥ(qMIPx#ѶCn?}{mXٞD{^q XB+I冉D-Z}hW9HG(AC7" .pEWO6bLx =UP 9J36[77@ vӊ!iOI?u;:n,IIu0uS }2<>k9J:>jʄ$ 0*$b;y5=ީP;򅂄 owQx~`"`pM5dPͱ,fμ Wtϝg4?8FZ[ "30W]9Or.Z^D&֞{#̨Q8KE[hxL%Rt.DpZAKT,,[X9y-sY[3##;69O  4T l5>Xgn{,T .-^dr&fQb HX58 {jn((WqTZ}yRx^dW7~2U|@L'ڶVli_ GMO!șԳ:ndMJU?\M8y䯂r6)9LH6 yI6y%Y4iw' ˒tV:h72;zMK((V2fPnr4t-téݖ;!!@M }2}d:7{3 N*+@sđ#'|<1vG= >3ZhλQՍ(o+~ W9γl!Ae5 \&ˣuMCeycvqmZohD$0OpJU;;oќM_{feAYqe= L|M!LGH0BNyOНH42!NnLͼmuO'穨<^09\ t^^iEPI Ttr0Ik{F M}K9(09QXQM[WN&ۈ&z8sd5-D_3o.Q#tTd,h{;)VN;fɝ8 rl P[Ұ9562 #5΂[5yh|h@Ŋkh7j$[<bSNL~ɾp:W%*^eΘ<= CQ邁,(pNR,XH*Rr1Q4I0+}km@B?=^ pe .wmY}(FwGnylX*񗧝/ xinXE7{}㩚T(K(lglZ`G<=*$|X{6}(N /zG&0HyX=nQz ZnU_ eendstream endobj 29 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 30 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 249 0 R /Resources 250 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 30 0 obj << /Filter /FlateDecode /Length 3350 >> stream x˒>_K* ߾m8㭬˩Ј ԒΎ>h$R?j@h4|㟪pxR$+-(Hd"@8 vOw%& &<߱Kvf>F d\_4@̪u_9PKpF`F4lI{`~qYxOw+ΒOU #O7\%ϻ*loL`΂yTKc #DѤ*M=c&olLȉcPSwf6-_UE=$,ǽ%о}ZGɮa;pm.˫:e`ʋyʮ(ώ,41ָ"yx#_WV%xu9tl*qnTޡn0I &D{ln͘:'i8GlL" zgMs?zUFrs7{`:?wϠi6Sko3e+a:yvdA6q;j{{x=r:Xv).`46Y9)˅{6AkVP~OI%>y+~JYަ38Ӽ(ufJ?_Φ&xatK9D (\@!R)Fv ;G33ӳc~Jj]v\Uƹ2v4jMP|``;TrS -մx#EA;)AV4 !HH+- k|oA/AstiZ:x..gO(g6GX̉j?jJ&:6;0}A\xR##![yL*S<HgKnWլ2Caa<q\a2^ȫh|)VT@5&AL>ϩ<2hf60qJ5=. |Tv`kEa^t4>BƘ<<qȑ]HCeyLX_GGC-nNOp6@"y:% G 0 ΎN JS9}瘜lIw~Sk͌K^%Xd|ƗƽٯUxQL4xj ӝ+ l})( X8DZÕe lܿ,"r…UI8{{\2ʬ^L(:\&O²YP\G*a˚)kƣt[t0 g0tm*L>(́p(o:ΧX XnG[rKFBe^aD4ٖ:nvޮbN:jGǔێb@|+Kpve7pE ((=8@A1[q*O97ĭ{ouZ{Z#  =htpQlXEu4`ͥ2"iT/3܏\dz YuF-*‡mFU$ /$Q)Bܦ!,b3*#_ .vQjrxfC`,Qn%UC=in$74n} !RQa0GUb׋w7 9j1PB0nw*Pk~ f3^-آgyqk-Ӯ+Si 4bue&e^Yík)BY]F,^,/E 5hu7vV_U0J[^xUU3vU1*v&J8&.2c2p:{[LEpfwW[pku>ka-9wFdg:;r`v`8C7$%26} iK\g4WHXX1ւ 8XlA7 CΊ4 HYv+QqSUa;miF$1`0D"r8ʪZIV\l<{y,IߥNҚhjW4Y~U(v^N@0tKv=ܚ}Zڃ88,`3#z:zE0Ucc.h%c4OsF/ÅL{P4493,} 40jۚШfc+(e Gk* }6O?b`ᩆm!-;Ft~"ᕘ;8WrMd gCׂ%` '7J,jb`aZmb>+QLTPiq/`&x܏EvG;`mVɣj0]Y<؍xA@oU͋3QdM B r~vwA on/Ptipvb Auc:]y:bd:RZUr?}S~4z"fA*HE6!\"\;$ xAwe8ϫ_}dpI-h/J0EM] `P ?b%{>R> endobj 32 0 obj << /Filter /FlateDecode /Length 439 >> stream xSn0 +xu)ɪkѥ@ءI$-'YNbGpQD||"J({ -y|2fpi0`#D{@N\,G>Gؒے\/P>] iQCpVAӗ VNpeCy?^,g< '<ۇa` fYxcӅ(.dy|NWMsϋh2&#(R֮3|Hej \cR}JثX-֜Q#pTj&4Rm..-X9"ҜT:ykse-Tk Z5:Bw~;yp`;N{#فzQog1m[i>G]|kTfIf}endstream endobj 33 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 34 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 249 0 R /Resources 250 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 34 0 obj << /Filter /FlateDecode /Length 1402 >> stream xXݏ4߿\;N/ !PxoC󱍳=qijd)/3c{7va w'כNI0v(&\ "5qtD* HĞ4F~ؼyapi. #f}vAȃ0deK:$l!|%n{`02Xfrv%?w`qt~>$ۈQCj mM^If7(krL>i,a;O۵[-#A mQ8mӗ=#ɥ „x' ɔ`ypȨvӉ=(FD]K7zv4|D _١ 䴼omy)* yŢ¢#]"ܸ##h 8ySU!>8Ԩ{JDVYjm']Fon6?{Y].ͥ<̀TG 1A1{]ۈ_7y;&yY֨B`1葌26ӧl kG:C\3k_FZߎTѦ `-zѰ+0٤PebQN W6;u^,ڒ3 C#ڕxHGDkPV98FS s PG^;T >Z*t,lNdЭ܋'*T3GHNLHc0Ăbv8_xbkp=[GjBzfReQgtCo>f,J*zA[fƼࣜ5?Wa&ؿ}jt\L# ҖJn)׺hYBnk{GMq.IRYDЛZģ7}Ks {K[?Ξ q\W!Q\OSAdVb?vP-q]._OF(t,*aV4uAuZ>/% w4tԮ;h]zöZpM n5ZȈzN귆JEځB o<$eYYU{HSJt3iQ3<4Ӿ3Yמu77D!ρ-N1`.-Ns]QmmBǟ2B(>!zSO̓<ӝxtFO'=i\LmDžW%hg_'sqN}$L(7 +-OJd+l7c ;g)eѕ} 5$-f;+r$}~fEc`ˇAchsxo|꽍Nb2髺=/m'WGRpvq%_MBvC b`cJo"ZBL-Ƣc5\qM!*bS_nMXR_WL_~tM՞y!Z믫EPfG?qH_aYEU'Ev֣qMfPy>rq&ti$ԥ?75@֖Y6"Y", mĪdY<ұteKL~ՕGl 3G<(/1}^81L-TՕR0OŵԜ޴tIFyQiv7m U.ib?wo*yrƴn16)?AELkd%p;j|w,M7!}kfp*k(78&cC|\>@TFId;m0k+\BbNm?NR4WSowaVsn:@H@c󬿁EWƟ+KrF>KK܎4ifIEY3_FWe^f x/Uf4QXA݈(v+>K.DŭK-tt{#9z+4\fATX$6^G A(gm2J/V Q ,mT&adUYAx^iikaD7{# - D'ɩ-oC} !>?!uozK^Kaۑ!CoɊ^`8.8Ί>Vf4} gel'LJA$t~CFۊ4ϗmX[DZWyЫg#l:rA9xjclBGy2367t|YCOU~!fR 6Q| S>+#<}cP$brCSz(0$ N/{'J,$% ơG" ]8ycTz_w,?ªȪx-?C8m"Cg$ݗB5  GPGq7kun'AM7IwYUI88š s PZᝎ/WG)hu T3M@v jz6llvK-Б{aAOKpF42ZK6`R9˻Ϣx~k~KH]B t?`'6C55k$XĠ-m~g51endstream endobj 37 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 38 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 249 0 R /Resources 250 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 38 0 obj << /Filter /FlateDecode /Length 4504 >> stream x;]6+ (;0l6L\U._՝_HItٮE$@DER BQ;}& (3BY )v4kD4Ow]_>a]xM G6}. dLDaR¿((Dؼ??N CT>k%[7/}?,` F iN0{px5ƈ έ?5&ʃW!bj 붑ǀ&df^&ΊEycDY,Uw`JͻVBa(dF߽_(KdƐL @%+TeV1`_0O{՞aЩׇz2A+ccCrRs՜VuaSee$l1/9=lծA0Qbgt=T;2p|9szhD09g4k*.Q>V`36Xzyo=WpHaL95cŅD3HRʡN+cOI^{5Vi׮lp6!7qJѼaI*bmeKQ ` ;lPOzR;@jE ekv"$X@&٫A I \DI~:*\<,Z𚚖bXgl8 1pZzvm45/muwU4MrWsߝ:ֳZGqZ -) z}Rdu]ַT!Zj0ͽ5Pz?aAsWη`nTA`{U7,D)SVf~ލJ)d*NtNFxF'i?d⊨ԏ k]v?[ .SuCf;A+z gYTv#T dz9("jZox ) \^"a!Bt(a"VL2LtJ: DNeRF@oj-&/\j$PpjOɞ'RXeBծXG=k̈&̮Xvӥ!>N{Ҏu ^yя Tֶj3`\G̮@=]zy<֞8`Æ}U)bʙ 3!g-Uo'[aq^~9uEm?cÍFFe R! N:mqo(T20(#MfyN\! D~ c^A4:Q/a`aƽHeH F7/AfТ1=,;/ ڪxcÊe T 7Č p Ɏl]PvG{Xp$S2<(&Q7b4:\8xwG@b\800| d`uQJ-.Vhx G!C |q:կå*DU墈PF\-,Bf) M:L{ΪN'^ȦkSp#2m TxLJmkU Y*2l2LH)]W~{<zY/#n!5&.numqM?ù 3On 'CX `k/^$.DH tu\lP^sQbjK4U;wݙu!jﱩ/[Ee8)]ط]SCGPMtr=C}% .6|lgu8sUC+[E` N%v~ p v7}8l]ehtǶ~SdF4'B=jFQzȁ+!d~S8wV0UB ؍[@Q҅VHvN2N&,dϽp?jX=rzTAQc@]&'J@{z_4? BH?8r E xD 79B yH |@Ck wEqq܋8\5jczәDsc}ow2x}k[OJ e!26c[,ki`viib,8xao8FXPW1Dn_|]"h˒8XfP`| }CвX8sHCyXJLMzKS7ii~d!MiÅI&=Aa(DD  -yPG֕-"X=դ}D/wm\.H%*zÆM(bך`2I`zj~9'9[BՃ܎S%KJXiL l.F*j{S%穑 | 3 3QdȉSP?v4]'%?thJY _0Gr A7(/gqM&|fݰ/,pbU]V tER ΃?_ꧪ1.<{w0_ Um+vNp@ Z%r'/E/ITD>ZZHc^k>B e.Ԓ 7]^HkXA]< [ :XaU@I˸,ZQ B#/Uin6N8 mM6yNzcEk@̧W.#ivz&cs^?`%4_В^ʟhϴbW$ u=Q$EbxشmFx>2cni[}zڈh sƥ~2U?@Ixؚ% Ӆnn@ bvgh/^}#TYy&"f1tqF!uhg>a{w1Q_hdF{+bd<irACi$Y#=*utqw~ l,3o ~P~t{8y9iDfrfB7x2MWOo1⛃ C󔙅; ) H@,YwPo^!c))ke+:}ZمG:IT m3@4 ʼ 8&Ow}TRQ)>IM!ҷ*6/G? (JC)`s<ER͏>Kzm_Vضqh פArt]7N"2v=s(1l,L XbnwW<҇53f^VXWSԟEU}a-B<SoYb;y`q}wnO#8mJөk{;z.>$cf ܎R˟؀%`fU0Ԇ5s fe'PzKb$,%,=`MopuA7œa.Ǯۅ94ac>:` 7f"^]LX/4,1SOH.,(d乹\17+[\xs)evB1ڪ%dTeKoeL3eK QC:y{hq> *WgeQ@?HsO7H9a7ֶٕ^]Xe:о`@dv!>V ]`R-Hҗ:R8\ܯ9DttV^Nɉ?݌"x2[W_}09X0ګ98^~(ڎʨꆇ0D/K7A[Amp'2_b9_1Gˮ<|da:+2S%Cԟ3H9ہC3=G3 o-lǂfcK8)qh;= ]r&k1~]/'b2UA5!HP-V ԹרCX7FYlO^1fp1Q @s F!7c_F t1Vt> endobj 40 0 obj << /Filter /FlateDecode /Length 3952 >> stream xkܶ `Yi.nȇ8tZb#QݦMm7pf8p!}.~% 9 L7Y%)pb1 ?#t&\o9997o'?޼xQhFhiSӗlh_ ~ n|D8J$r)ˉIGdݵc-jm ?# T򨟫rNK15tuch!&|ucy(^&QG~`}0060+V^*=$-0#Wf[O]0jg>Mzlx'iݳJqH$KD[g"#Yf첶Es֩3vZti`wZϬѰK76CAGf]͡hYI|a I׫Dı]UaUk[:Zߋ)Q<_#s=E* cU'}}ম$&&X}()7 U-"DYLj]I,E8_һ@4Wln\ĵD ?D|֛'q~88 ''ޡU{aʊmE5(358Mp3j-u=6 hÄcDZ,!>v ʪG!ξ^@a6$ 3. o wE*w,74Ǻq7gݷ `}F"47xY:p {vNfkvn:v24Ɍ}sGej$]Mq#|@*(ܜh.~ A98lؚ-WHB9ΣRgA"LaxӔZq! x_L'El5,polb02~@?*a}9Wq SIQBbֽ(vs"_e=bO kٓD=?!,iLu+:|=.l^Hlree]:0_ RUC&@$zϧaBv@7Q brF1@, '1ya6OnF)~ kxSݛj"$"Vq0,DJ$ژ0T/S&f@ :0r 9((+xJbqK>#75CZY5 ys,TsT,^^ ѼUe1dRiP'0Ӆn6|QO N哆)mO2[OtD8"]}qhyf<,aW:E,h8 \_:xmܳIukya›qj[:{> j4bZ|kĠfc" T3j m L'W,d" }m;`fC|X\(!gtA-׶[!̈́[!,~MJE:fDӆeUR`N\/v11maMDlzPPJ3*y$1%i(bqа%c`ZƘiF)p@CglS:ߡS@`ΥD=EEdzw\z2Q䄆QYE J( ȗ(8Е53aeJ&;Ud3 cӽ[ yK gf7NC5Ʀ7N&}**0\x+YL\zXOf]uBto"#s2rOVXV[ay6O1\2Kڥ?Et((-3. Z!vԕL]ȌR}/?(uS}=Q]=(M#j`FΫ$\9 N~&{h1k1q-KTZ\E* `kuv w-jtIcJ ] m 3u`A8Ԍ9h1vʒQeK~ v@WI\^qKY5m( (HB؂G:7oe͢,1]'אx^UmE/y8WS+J wM\W Lα^eڭqY+HO(G*H2 #>!Y|'7. TC*@lJIG']:a:WO`( 0 >e 1 E;伶«)V?P(L eݠK /8aGلqq缹eHKXT֚ GQBOOԉ]nuRK@ r8)❉! U(&mք[|a0a^? ˥^ C=|g۴cSpJJx*DdV<-2yA?|IOxc]Z4~4y7 ɭvm ]!P2kLI!>D(iNblĽy3GϹeQOK 1.09=8 _D:$aLҴܟ} 7fe0J{rG9EO}79[s%D(*勑Go3E*Onʟƺw߂Aʣ/ru WE?1BM%;ܘ:Uf`KҴgVr:XUzW<L!MͿendstream endobj 41 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 42 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 249 0 R /Resources 250 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 42 0 obj << /Filter /FlateDecode /Length 5049 >> stream x\Y6~_ovodu>Dmz퇩 SԴNx~Q(AA*}v>{ҜW* v)ۅ .<o9>>4/'<<|p{T~rڗO?}w~]OVE,e^r$?^kyxD៻|]€?t'%nq?q)ˠۖ*@ m7|m|}n!xݜU6Ezg~a,Θ[?c6od^+}C>m# DilbG&AS_573/y˂9[ 'lUW7ȫT%8Ys5 ޷Nå5mT?^mg:}Gdc鰛[yaS=BH^ `ue))bHڷH,Ƕʢ)( ^>&Mp~ q&h##(;-3eo`܆შ^ݮ;tk%A z'ZP: mA7j`98to#D=?TΫjr}៝'+) 8e\bP7=e!آ8r"3=[̑=͵ƤZZ4Jy'N&"z=ʦBӱMJnIBRG>p"GhP{O@T-3ѽy+APSV9@_0x,kMGla>ɦKCUԴ`z 4uCZK_;bM grbIo, ]2b L9Gn:RJ]= Nԭ6DH+!ayHMR$2ٙ"x^`X2aQ]%  (h"J_MAb&~Rb*wM ~ 'xRs/i P~|M0K/JUԛ4;$&= fd9Z/S4Yc]g VN ʌaaOMvtŰ!H$pY\Π,5T ܖG.P}5Òzv<Ϥ@ZxQ&S F/ibzM5Lb/0E^O>1T-FLX/K Sb6c\ꢭE}C}94 #0`,6jʚ 7nt)8C |g[mc6JxiX-0zߊd~L`x,e'mt(ˌ#$;A<*tBg$QU=$Oeeha|"EqeSK-N \vu'it Z.цDt2vdm& g6!̘ &V #,Mg;VӨ 2^u׽>=emwJ[WЩ!~cщJ+q qˇb<!lA#o `՜HȯwnZa\4)?`p!Vko xc ER%G ]4,׍uyI*uG[m{C5VJ <'yB(η8XX4P@n0͸# z2 ٴu~9@Me4"^ִ8S@av}p 7y7wVm+h HLkAwvg߿ylF4nl MQ׮X_|[#< ЎP+Oz̥n#diJjcmߗ*[jC;MTfa)c P5&hMj=SҤ' @n̊uq,cnZ]!CsT;Bn%D]z1b{"IHJ? [l>gJ)CGu ÅP9˳̏j1$}&s+,X`ΐ/)^AcoD5uCZ΅aς oW}yom,m\ak@oY@7ƘU68OmG$:WqL,AwD:Gi %Dk7.1Ȍ{4?"y q Kl^N ҆2l}$LjwY`@CmOcU.\&+,7,&YdJD8ڂs8K.0דB(DWSm d!&j0^7sݍ1֑%r"y/lӂ:lFG*Z˝v9e^x:K 2n}mW]ZydI0vneEyZ4E5jS5pS*Fǜh:dU49BOv)ceSGnSIe3:nDSom.<ێfȋPfv!^k. mkh{> T! w1ÐyBmB9R$tXAuNyCBݜ%cn0XmiUv΄*ڗu rw,O>Lc<}o({I3/ }vLVXmż ,Mp elc/(V/"@?H,[jɘDAuIU~lN_bR CrCP{`ʹ2 HΝ+FwYyuq E1ڎm,0N0:AP]q8- TOԎ%tuImkMYѐ/D ~1V\d:Ŀ:mYw^gޡDG$ M]ݯWeAK% beBL1k[)/DA01`Z+HAO-gfpjϓ!{[ՏVE]6GZ[B8;^im,ZeXk '$% ܻhkA;~gDԨ1 7] -*ڙR`; q}$iq:xڎ03b!D mb&s:/]ׅN])A~_l-nCLE(4`ӳߞyV) 0(/īfڬsN*kT{`YLe#u 3VRƠ;~-A]%n;MH$/wcjFd.*OkU)>;R~а&G@Aԉ^ߦ33N҄B@7l+fe+z~,GPvmx660;Cv2i3ڵz*mzSUU$R> Ad( CU. t^;^bP{Ԇh0*M MX2U'ߩ-`hΔ! 7$}W H4#09QE^;fـ-0e\ETZ*PjpP}{['ê~b?hYszHD*+U{[!!}tqji'8F9cr"{1%(@JT(+H@YgYF7'E03eSdNr)Z\;&B4>띲Ρ)Ԭ"%VĢ^iEmJ{[l52W&#ϮPljRj⇾F1wkVq0|ǹ $}xsSta"Tg}[ $|Ԧ!)ی/d!+7bra{}ĝ* PCKœ떓K}, ;+:S-/ h=8> endobj 44 0 obj << /Filter /FlateDecode /Length 4039 >> stream x[Y6~_$UcE&zks؞-ĞF-u~A$>dm( 1B//ԏtxG^+ͼ0;yD^bDd(quwϿ@aPrްUIxOwyUꅁpp&2? D^Q(:q}?_}XF:_1_I,a`l[4A?o#px/6~78~96ھݙ`_uP~}.I 72Pcy?F4u.d8yZATE;ݪ'QtMȞ3W_ 0 8_JO"?q|ׯC`jm!,(|[߻gr'FY [1(@( Eh,>F@C˼7hQ 9 h jlpnȶ5y>ڊUw]i@8R<زA dW#QFP(M04']ttHHep>/\*pu:h#zXF]痣f5ѨF_U1` Vwи!"X{,A: -Xz `+kA2-cMn{A@JG38N3zt7V,VT,"5A'RulHMcԤ- Lpm%5,njP4;JT4W;+e2,'zhrXְSvT9LM_z/ cQ" S?O TT fJs?tcH69Xtup:VC,6閜JvV'P9m-IrUR4PK\axhdR D0b3:Y bVp%H`dJϢѼɽ g}iYj\.,s艤`_ J=0BS%YъA# BMKv6*toxbcb[IJå(V`=[dG"%JޕBB))4F6÷Le $M6B3Gɺ!h$q_w~ګv!A<Z/jv疩Fnk|@zhE%3 })2bN\(wui7$$~$TAi~D;jէG园rPkM>\A oI qa-ڰf%e[F~>=BVݭoa4q5hqI;rlN` 9s?LkY8v1rXk jw^Nh÷+YQy<agKfw ػt#80+:=Ai~?ò uюLu\$"/v*'̱0 8M$}H@vDi!THqѺ_njBtk ѴGUHx%!&ƅZW]h 8GvigڑC\͂{h2OUW(AM4-ƒ5mG0>pev= NsB0-*xOZ;*2kIcT519P,(^U7iP'8j3RsQO-q4B& xKPpN}UM;tbi6UۘvWyt0Ddi*F j,N6bx~#?.UUv۪ikK6 "Zd{Z/__k9F;%A#Ϸ =01 ]9/D/ V$uB-3% Q9*XU" HwWfer#˨)8pNp6"A#Sr+icQvrwQ\5WcaZ@?<œ>ҏ3;`PÑ% =-Y#1n>;#ЎrlyGA ~h8+fny(sH%Vd[/A.n5wt V 6y#ԍ-8π>|![;2ǩoEܩ}S =2A/dmQVC3ifu4A;YS}:]xf]访Ke(2뜄+}L4 ark2 ];.@]\DciDB]t&' #~DQMOÌi6YoyG`(d'#=LuKÊ޾@Eg/H;-J=s[ⓓ6ay $AC£6(ȰOjWFCsԌ0wJݎE^o͓ y&<6s/8L0Xvuǵz%ks2fh{_%̜ܶKO/?d0#cYaڼ[/^o= :kj0оDWLn`e"ʢ.j['$8/􃟭(0aVNrfUs0E˰dz)?MfGQ uоw0)V&"$M8wH%_Iԝ8$o`uztOǰ>%7wendstream endobj 45 0 obj << /Annots 106 0 R /BleedBox [ 0 0 612 792 ] /Contents 46 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 249 0 R /Resources 250 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 46 0 obj << /Filter /FlateDecode /Length 2872 >> stream xْܶ}oV4^ت*Rr!v6_nf'k=@F(1Rp"rr҄gdO:#- ܭ妻7?ք $y_Ο>:#Go"'I.aO~}T]M6?IFq3i&_$g?d)=%ﱚ08SkhAcA4<@PQ$YLp?d /"YA8M B O yN#y={S5yݴ.#V$(c06}G'/A @ןu54qj)ǀv/xX~UXPL ymUMa`¥f%JW(Hay5%lˢz5xjBg%ORljTvw{_\f  %F֛^[=u쟗Aj[=3%h C'``d%'9hD"YS%ԕ6ܿ"5y1ʙ(V>gp FսN|8{([HD~.Ĥ=WX mk;{Lrhm668%3\-orTjeh*Bc<>><Ќ^ tEjPM@;hcfIV& +JyaS+h"9c2л | neu3Nc3TpzR1Jf0A-,jimY^]~zvKܕojq3$e$"s/_2! *M\fbr<[e𒅀fγ㌰u'+{Oh '0)dDS-ܬrb%ش.׵H(2b6)5\yؖ^fBzMfaV_#\~ $ܙuA9{-wULA`ľ}a `'it}g`yZ7 kVI%~HT?odx <3C,3UI+=o]bU"LDhhL?غk̅C7AΝ#*o0u4 ìP6#uSFvx=S`&X\|8W>1RID(hҏ{MmCf4c.[>j@2,"(Op/כ'=$عw>i:!-aYv9IɸhSMqrO>U7tdCc"VCҳ 9 cOLTfXh;}d ]A57r,ٟW~{?@|Ojazrԕf_!D}ꇏGӈ[ j%/yQ|l/)`D1 UӎHH! +>.ؾ7^pm>VwCL~u,}:<",AB+, YatTG0=/p {_.=UVݑFS˳xR}A!S'D+r4DN7WX2G'C^R㨦~@:YE27pǣbySXONL D 1Wy-Av߽F`! o+ LFsaL!NBq(Rpk^"mUUU{Ttr%.6^|5ڄd^ ~5=^|n55L:z,%_ІB\U0}>!?UY!5фǝ "a#5.gwd &]3dӬ HA/ qU*D;ТbV>]κߍqןSH,Bsqgiv \Gե0,}'{ITi60iEvbIq(., 9=[S. v,.$&Έendstream endobj 47 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 48 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 249 0 R /Resources 250 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 48 0 obj << /Filter /FlateDecode /Length 2662 >> stream xZY6~_3@xž$gt-vk$-x7 0HbUo;'t}{'JԹkACkjKIv5 5c5CaCPF<ؕd`Eƺ}S=cELv>ޝyz?0ԂJAECGu */<5@c[h5WEY5衩~i^ph^R n{\nzg!_=u),]PPve(W$f+b^7Cbuu@4Ŀw<;+ei&$w#+4!(Rkw2*"T B3{: OAKr3rg#M(q_L2ڃ K-% 33U {I%[\Kq櫵&H+5л )imֿ=K퍠.)k>ԟ;xC14myа4u5>=B '"Y5|e%@<Wyaw̱5\# 2G٢nJbyf\Q>5qn&g*YGYeI/:Gp*Cbk]VoLx8@ bK< ckA#= YT"Y˩F:DkI'F*y\5'>)wT5ImENFO)+9ȏYƽ iIGTLHf2i_d~L8XhBTgݐbOҗd2Z\D yof][-̷ۆW͓,Bȳ@;y-ؖ ȐyAE/*M >]y^L\jWOVמTS&^ڊyTIN*ef%Z5M#?$2,b"B &z{^+ ɾPW,~ XO3T#/:of{^_GI|k]RqMR:`~%pϊ=7 4r%qc~W%O]^lPgY 7[!QȜhRQSL[65SHe*w GA]lS@s?L-}z3b7 k!f!F!&!迲nf4#?l@,*>S-a5Wplp3`d zdwpdE]C,ga#M4kB,H-J9H"OZkZ^yצ5R |OpA5_ya=C[*rJ,6p yX3gl`t*9lAr%+;}&CYP:4=h--XP#ɳj6b[rJ,13DOktwrp{n?AeI< smc/rMݲ.3P =4Vp7+'ngO a5_ʏ/^ؗ# EbwQ3@\Վ%|}endstream endobj 49 0 obj << /Annots 102 0 R /BleedBox [ 0 0 612 792 ] /Contents 50 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 249 0 R /Resources 250 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 50 0 obj << /Filter /FlateDecode /Length 3013 >> stream xْܶ}ova&&QʩT,J^0cקnn 1g7W_kE>}.!q}8I,_tG#eO y"=™!H8=޼]w.γ(< OWav/NlqJ5&bas&€y&HS4}ye2Ycݵh_ @ XErz#̰l i|KAT8y-^4ҝM/Uc7LviҁF<[~Kˈ*Ds89Mp+Tb34+h rƅ"|_sOfA^Kf˂u?4j\XnV,r$I/"7eCWqFcRY]6_n%V T*iNhM _=fo"ۈ>5–9ܙd; `+'ܙ>1̑G&nkuau4[jjbΒt?`6r`{$;(f&{!lՈF:$zͰShI-([VՕ0W?dk6Cw+9;5.`xY{\M| '^wiǾ>R` L} 墕V㇀&1~5=[$u#}[K$ÌodF7r90'Qb4 an?gj~ QَI`yn0Jdu-ሄiZyfN<2AzSz^Z3=d䉗2OVSoЅ԰ZR#8auG!|0TDirQO=X0l.Y9ȁR ?.r nvc9&E6DV':6bYi0+z{rxK1<(nmFL81F%ԭܓtGxh݂ǐ1U~ (e LGAaPn5O΄فPJ30:umuch5v&Tq4<κz 8\BHVi+J/{4g&rzDTRr]$U*eGp_endstream endobj 51 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 52 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 249 0 R /Resources 250 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 52 0 obj << /Filter /FlateDecode /Length 3384 >> stream xZKܸ ϯ-㪱VϖgSNj׵a֎mQ=ɯHR|.7>$r}* HtG|YA+q > wQϻ~&]tݝiGo|]Gow?q<XEyY<(4$xj)bnM'|42'B/ ,ZxkL[uj ߛx?S!8aIzsdVQ&Ip ASY|ڹ ~l;p, "d9vIo`qpv$eݯWs>90ݫjN{:ƭ,'.irC|rGGGC q==ARsi =4,jF0$9=8,PtET ~~㘏'NsG@swY$Wo82\#!Yy"{s=0JEݕLwo (C2$ 5 ^hĀN'mI*9!sObK1(P1zgFdk՗PHjBNJ{ fw t-G9ȉD@@ێNAR-Z*N9m~ļ-%Bm{PJ*_NOr*t[X/1Mk6B*5)w麓`ZeM;Geu̲0\~l$p'0g0ZGJ2uB7ܞ1\ !A7##eC;臍Jkј=c(az 7']qMj15Ȣ}s$gIvǼp`>Mxb*m*Jt!8 sh.#ږ\gDg3~viBDiWg۵3I(̋2*E]GQT#z_Dp~r|}`&XGԸ\kdZ09[%&⎗l.,yoVTSlnI3z:ֺą.MUo-.$01aҍ4O*CCt؀{~!-ʰ(wUYl?Ӎ/ŋ%6ɇÆs|`ދW2Rq#.Q4 2ݶz3j2'mޏ=tF=zEh4hLElޒ#ӍƫDGxFoIP~SUOO 0I8MLJWs? 鮵ѝ:tmm󛕦( t5QURts^ƸJn#İnD:^"&A 15]HЭN~Ax^ T i]AepH4(өW)ίZ:CZsY6io"mR+ZhO4[LZYfB>nNɚ,%ꓬx$:fylTH|)]+YIQC9c$)z] {\r{.yDH~e;&(cås\ QD-Jd!-"N"W+/t葼fH3$ј\h=4^oɛ>*z[-u$_ 8=)l]1}ϖ5ΣR-E3B%ݭo ҖylyD3!> endobj 54 0 obj << /Filter /FlateDecode /Length 972 >> stream xVYD~()bO>bE- ZixXwbajݾ-OCf$w}]WUEAPXO0྆<0 kr5Z~N )bp3k?Xjz|'۝8ȣw [P 9+E\g2'd}l3ѓ %ӝ|@ۀb\wM?Deǧ{Adb:@g;+lEېBgk>(;N/SV}%EGJ=a UQe2qi* s!@)E)TC֓t fZE`W Ub9Χ>jhֱ"`SPX%7R]Y.E-^#-kbhXWy4jxs8gO0 8]Bvg&m9 ڋxR٪7_׾7ҁjTSQnzAV KH_cɌZ/rhE<^\nMF$ވLQ)EpV$㴯.ei&Zo@ sv%jT)mUWj,U"4W1qBoes÷8S8]isPCl22a\ftOG5#5u" c࿦e61NgQ@KeuXd3>[s`>yd˸E3L"tȢ*%.߀N*eߠFݼY|1͔YY‡ݻ_1`۹2G뒙n1Z__1C69dzxؠh}֟/3 clw$Z5_q:(*ތZxendstream endobj 55 0 obj << /Annots 172 0 R /BleedBox [ 0 0 612 792 ] /Contents 56 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 249 0 R /Resources 250 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 56 0 obj << /Filter /FlateDecode /Length 2156 >> stream x˒ܶ>_WU+.&uHxSN(*,0$f1_"8}h_+YnBw| ʟ4H>kOҀ& #/IC4Zr@_큒~>ˁ.)揇 ~@ꠢS}#:n[0DPpoֿ֞hAtۏ9%_1)y:#:#amI~:!ۂՎ(QqpÛljfyT!oK]=W%wT6V]k]G04}ގ h e#aTn[ĵatu_0ܗ'xBH܋>P4,J+)t_D͋6c׬h kIс˪2F~l OKH7^ne$^mq.sve:HMg##xNK$/x!g/v hY,O.u/íW˪l}/#J-ˌ:F~_x{ Ye]o ( EFCceYI-}EAhOwlX͙pP&,g>}$yԣ8}ఏBʱcͷY.po,}g^eW\eݰko&1x -MuDsjtVW'<8(O' /]2թ*X] xSB2ZZ,b0--e$-xj訳Zc K ljO^: 8Y#wA5j{VƐe]7 SQR ^cO_6}pa^$xC!gW&Z1QaF ݐ$#+50h<[*9Z"An ͧ' 8K/CTO OLMh?L2u( kzH9qXlc,&V,*zpUv,vE,\aF Bh̅;R{mBQer7aB++{*췣O>tބl"&٦S0 ,yGSN|_׵fU,Ufc#Y0ԏ(ۆn6?M'‘2J#?^|9X[Ă`c;32doB81 IvZq<;6FM Uc򦂥LT:[tQ0pJ6W+WJgoBahgc=~CAW EkWE-5)vōC7-KchjAP|دa%aSsvZC܎kϧE5]qxD'mktBh Sb֒4^#f!&^p} 63/r]|Ȁ")fQ #3&>ɺsP`zc~9(&0=*0 {K⬸l/~TʑY^$׍lS kjjAg3hM^C> _2(zP}0([5{-D^A[ThAGaGnU,T8TDR~B?j1{01/ =7#/0_ OZ);nEj3!F*޼ *(k/P~5c](Mia۫nrs.>endstream endobj 57 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 58 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 249 0 R /Resources 250 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 58 0 obj << /Filter /FlateDecode /Length 3127 >> stream xrͻ ƒIݜ؛r*UfUThϐ2ɑV4^ )nՠAݍ~"nO^2=](M h@'h~"ЯWA%ݯ~>Hwq)*e'9;\ĊfHGzwxtnQ#eofnƩM;Fk#0TW9^x|oׁٗA. d ۡn{q F&\o(xE~W/do?SEs I)C44gsB-/?|")7xfHRo+a?.rrZi)~?K=q|qyIe2o0; b׍څ:szד05 Q3޷c )d9dɌ2/zZ<m &ּ:.'D1?aXb9!'҄f+pGi ilXmsy=›muol^9 㬤^br5ouJX@pN%IwanUƣ(G ;[o;nJK"q}蹨1Z8qcSpC=DϢu]=ʪzsn\_"uCLo[3=1WA&2yPaO lARd3ԵZOzSnϽEeH"0|vI^@TgvǶ:LČȅHjM|IkJՒM>{ }P_+3RX:X[!@٩]D5$y6*DnmD%,!/hLT)d5ښ iHݍ 4v)Nx6@Y6 #iy$o`qX9/3 drFV_TۨnTNλZFA-$XwBI>CUڍZ7 9Xj-p%Qy&,5 NBsD8Г2 P_ pEOJ2r8`ܩ3D suu}k/&h:u3iXkdB^ݥrK"Ki}aL,øyT?r\H8²lE@CdqW JPJЛiy6l1֌ |r"P?o ȵ2˻:)ŮLr,)R~XoBg}zCAfDY]R۟ }]9'w,uJ6CG=5+[aJTnͰ,[$$#3Rb`I0 d*tMmDЃ"T7^Q> 9n ||cۍku l&5/NqGc98+tn- _k̠`"+ z͡L#bqHLuXþCviB1Vp["4 fpm* d.hWy@b֢keݨ37v7Bf?,Rֆ#Cl9fK/7T@Ԭ}^ƻ=um+?/qO]yBk*I]ĹĄAܠ.Ma^mZ$8gP$ĦC;&Ѧvb!^R7̺ 3;a ]Ff֎fTS>a_r AD{nQ5!ʁ fGNgfr+GMWhO|F9~trl [m'=W\+.7~͵͸9scFgmPQyR!j3+/5]MvzDkk %bP?/PDTigBF&UZBdHϩQD' w03sPB } =Z)/5AB7 Υ?/Lxendstream endobj 59 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 60 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 249 0 R /Resources 250 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 60 0 obj << /Filter /FlateDecode /Length 1415 >> stream xXr6+pWihKIı|%B"S\d4Drخ&zE#.~$ɮYHGdE1BǏHC$HWYW@IW%|qArѲ߸n%ՏCDۂw/=mwKjVJK> endobj 62 0 obj << /Filter /FlateDecode /Length 2600 >> stream xYI۸W6}雗xxܶ;qf4I\Z} lMNxk| P(T_UA_7>VIQ0]q1jnǨF`ZG }ٴX"&7ޥ89棳] B?h t^~ K}#㸹C=jm֖">n[[Cͫ͋1=t_sЃ A= w/MX{LgR=y(q%ˮmɾ}5%Ej+Pb/=NմD5F+TH ؁R4(`2K~XhbRI8kno2Iq'`L{?>o{rUnP$?CYB5  {5s#gv{_v`AG wO V֬=^Sgx 8wh Q8lmrj mk^G'.xӃm KqY2pWw g b$0Xt>T*8LWp99AK֐@s8ji 8ϰ0bӾ?~|tڍ8tFlyEu.l]b4If7 U@كq6{`-(X_L u[,M-LW RxOQFn3H? > \;y$Rb\~P. IɃy@UB} E1iS%-x U QO+Cm!ť2V'9dá\z9WbgII*&A[ M6. a&*0_VI%8| URQV+eƸ<Qg!,q+zmvB|+#N0|qY{Y:WgjNe>ǑđDp_#oo:~ ɝ.8^ o%k{nRhyE2N|mR iJ4 RGIvդS: ʶOJGҎ$n+UP+YVߙ`Kwn'yfL\UPÝ'gpGW(.,uw\赑Lz* 6_?)-*,M>'RqP+HuY# aCtl m v'*o;XX .:f TaUU4UFi."ُzC ZO=MR 5e96xE VfG _'Kݗ"v P+vgv *Q"HNkg2q^fW_\֎=/'u g TMJܯCCB\iȝi*w^rچe$TEV=&$dμ\h2m4 + lri̋ҫX{EI\t$N]HaboߠC~D2!Hc ݢ%G4L<`<2?b2ȞalfW{ۃ9N4&[)L (ok3® EoeVW4w>X> endobj 64 0 obj << /Filter /FlateDecode /Length 3288 >> stream x˒6>_=yR5IxM*Nxj}HrHHbL2Iy[|ȩ=dT 4FwCB FG IHjT0,!G ip7`f$. |H )9[od s* DqQyBrcH~U4ԍb?BA/mJC_}HrHOQC%*G|)o|!04rVZoV̊0a>sK4vz-l<xm#ElTP9aXElvؒxDŜf#Z{S$lj˲`q<'G:0cO4@'ϳAkwXY!JR'x7F:!ؤ)-bTAZ܊6isSFsr*P4ˁxNڭFJq`MS;c5j'à>Շ\#tD,Mh)Xӆz[7x]\ ȄђU| XJT-xY>Q#[{@p<эv6*"TzQQ pL^Bx/Sns%=[vk;:Sݝf!D!U-#f !ڷcsW)$}bp),v㗨4dzرYÀM4s[=X~!BUA$9 }#V4 Ar+d}sV/0 2z?u2@ N )]T3N( L؉蚺ҋ0U.J_ן4O/>k<6:J!󶁛of9ޖ]18v!eANSr㡫U.A͉COd! Gɀtꆫ_[򦹚I}=:41gbx^Sc^wd (y'VZnO0Wb~fx 3!nXi>'e]1A(4<[ ywb QK̖ o2 ԰p|njk(WϯNžxә<7\1 Juaa/^ŨT_#4Ɋ $:aLW\ݨ0p{  p ~X+mhҰ9vod IM7$5M$T06gDPMφ,(0-B;`yU5%EZv h=H}?L,U#hZoo&ҝ{ 吝xTҌ7;sˈ`0,@@$r<#e@pM!DJOxN}G Dw_/,R7S\AɭÜyYQ^Y!K'"Ub{c!U8%EA;Ξ] K+tudH7 d%.5>X,kah*i2'TêSW9Ϧ4< }}} N{~%8\%FZ v%[Ϝ_; 9@JγGY +nvrԭtnL]&IB]:iWN ;^R >mq)wvp,lg ̗ D%'^y/h'+endstream endobj 65 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 66 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 249 0 R /Resources 250 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 66 0 obj << /Filter /FlateDecode /Length 2980 >> stream xZY6~_8Û&>Nʼn홬S"2!oٗ* *"!]ɟbpE"R$5+IqFD, ?8 =|\*./G|_}wwیD!9 Kf:H'V31Y7w#m(?hQɠW>_(G4xA`6L[kAߋzNbHGlEee, ϴmxsOv5Ȟ>2e!*›^J:v-y-ۚ}d) 0L|zQfK$ѳM3"C˔RVbM.D2#D|Պ5RՉh/  /BN} ;ђlE'v=w8DP; Kr:+gnꚼ+xZޟ }뻵e|x޳irjf /^ a%A7v7x@TSJ`XӍ/,6v6Sڜ/iS]7e=TZ8i(cQ1B^t<֞Y1zJ,17"ЙɌ4o-,,e9=Sc$q>1.&'*@_lܑ` ={=XRg<g0d :2H)OrX9aX-s\l|QHdܼ~fuM%N]? i"9VQy{uGVzpk.t\ 4݅2fkX N1DzF7~p=#o{(P#)țiPѴ='Q4YDIŎXu/n ew\l Afǟ )і jyVUŘRS˫ jO@M*83uc#w 267 ' ޞP[TX,(*#EMp T>@5Ҷ0A#znPu ҆XS(6 Q@- BdӇ{~in0#@f/l1 wuQypxQ ԢWdF[uW2/AߓV⁋H&m4ZP@}8}189T"]X[IG5 vBޗKCG Q/z7 ޝ͓!OW[ȡ! XDɑA%:ɄASB0v8* zI~X9*0F<5'﵉OPz82X!i.YCHtE }";ZC S#;,5T;BI}y7:FWޝ K Ad2J ^gZmT&HSxHǝ>~/Eeߡ#:8/e7#ˌ> xb.%^O4سoA$Tk Inv ^G *q:``Tog).'؋ycV.ȤgǨy o^yfih#ݬAf&;տΜ$!n> 9z>Ǜi-^ endstream endobj 67 0 obj << /Annots 175 0 R /BleedBox [ 0 0 612 792 ] /Contents 68 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 249 0 R /Resources 250 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 68 0 obj << /Filter /FlateDecode /Length 4187 >> stream x;ْ6r|M>Mqi[ T7,. dHF#H$ׇ8ߓSI?=JmqP&AZPS^q&yp ΃Vb@b!8??tQ;t6A=93Ïl}G?=?|1(x>xeuY]UTa$x>'J1I=xRͦ0QdR, 2Yj?-ȼ ڦ&q "s!ҀZ]ްqkС(Z6gm,VzWl(x/mѓxS8]zq+KbrڡayKAK#ѐ&t,:4 t49tbe48 Qt6]x'y}N1-;eBѷXSqO<܃Vf[ѽ\%FE#b$+[ӷ/7"* ENg/"}Y,ig]5[7T;%Bf~3vjEB-GP}A/ )^-pzk 9pg1 b8([x̀X*.!]=H4uc{ B~>y8Pq2Y<U÷{ETiy'*b CeR,:"deYiA߀ՒSBp#Kg1Ll&%3V-'6WW61Z%2.@3;,1cFհn Ҫ oP(C>uS@dڋGBW`9+_]:sɇuEm<@+VgJ*WrVĴrZEF̨sA{Ⰲ]v;(sa;?d'd(eDM[BtSR x,EXbԾJ0/vX=7scnhoC4 ~DDn@=gw)'FJh4S9 9y`@ #f"n "k 2gfmyڣ1p"+;Y^m|=MC{KKiB9hhGk i5[cGܤd zFV4rm1g W٭۸" 37<3u$&.aÊ^Z tQ]@Oh/%)"VV{|%EƱdenoŨd &gXRI)x#(0*JYɦMA qR /4elm=ߌ!f lv Ɗ^Ro`r.<\1z_H",uU#kx"J,GlTH3x=:KI{F*.iWÙ moEPad&({:8<#o<9kWIDnG&# } ~z*Rqx UUҸ% KLWaY-P,#f51bt1o~ G9f"+t1ԋ3:mU ȿ8+حYXGo 8 H8?S[N(0v~w$MD#uZy ?mBcL={I#t\'[=1tAL(5̙<=r娵O5{z_rYUaZQ|\F"Xs,cyOs3}lڎĉ{oB|0467 ;ߊfn{ W!-06R-)S, V"n?Fj6*8J:wSOI^da߳\W<bVhþ4 `~0>:2b$zfū"%~e`ƐN _P|c'L=Fߨm8Fl0gVM-,א)LSBVż Wy{m`bÀxmppk .Wu#M0Ugym޿!* })t1ѷЗ%ӗZ7pߖYX{ .Mvp%I5:#elߴ~bZ(M|[~%Qfz}hEqz GVpٷR{foM )cY;T.[?>7_#aendstream endobj 69 0 obj << /Annots 189 0 R /BleedBox [ 0 0 612 792 ] /Contents 70 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 249 0 R /Resources 250 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 70 0 obj << /Filter /FlateDecode /Length 3516 >> stream x˒6>_5ܜijVۙ! ;IgHlVvYhdp(gTE4Y"3NWy6G/>t\W7+rNN!_}'/ߟDK#JSQR)Oʲ,Ҩ9+~~mG9|G7'p|T<(ceiBNxN`ݬڐ9{XjFPˣ N KqsGlfVĽ!31лe7JQv1B'qV戚jόgX`]]t8^m[is>$&9/<᧻O}5v__&z3i ф$esMq@ӎxjGfaqj y9O3B"M8X5{NZ&L^d 62ƨ8Dz8zWCC0sҘd,/ylٯ MF^x瀵k-,C?So%?qQݓsd?nBl6Xa'5R޳t^1vre+=DQ6":TU;p- ^xm6r˄mڧf{)aZno͕RgJA08D`J[JoqRht`/~A!KEjKYGcI=31.IcRBH{݀5nD9%Xu% ׎qtWCdzS;8xhqh<$H (!IO*丳uFX4Q=6;097]a,:MI$6.:7)Y}P϶9fube_l@NJXmF{|@NY/7;y/%enR8)4oeƓRZZK(!ꖔЋia#<tٷ:B`A&s]n)2vk{:U\դCu[д\p 4s]Rt8k_r=6qa74 l`rI,kdtCːPէmJFeBSV5UWhoW_T^rBRxpp*H{ꭳšȩ]5Sٯ xɠui罊VZ0;ECшqW#w pB0⒌(/ ^s@b$8Z:ڂ%a]Q0BKbfB|Mi'`ГؼXРjEέTih:φt5賷|_02x1rH'e~6 s؟<櫺]뷯sM+2}YL=9*d:&GТRq8|vgoR5pAh];LfGA-a=F?wcQ >ey^Nwy_#i}5)U^|l} rǺ~0\23g*Ӌ5|/Mҋ_AL"8@-(g|tb(Ӗ>Tks#G2WUjv3'_R %P_?e7&`6O2^Ju"4Ǐ>B= +=NJ?^> endobj 72 0 obj << /Filter /FlateDecode /Length 3192 >> stream xَ6}o Ӳ[۳q`o| ,`KiՒc[Ţ$vcc͢b/Wo?apEq: 0YL}*c#E0س߮+?alp/ѩ/?fW?_=n[q,\'?>\Fl|;n+J-g?1`gՁ. r5KАE> *× "taƊ ulE<{MaȆ?ӪQ"g˴amZY2Λ `{WfE+<v;YG5!q]S_b(XQț$U;P_rydEMonΊEZ[FDd6օDANlH&x׶"Rʼn}6Ng y4,e"lqf/[) i*SܙgZԧki 031/N9kw/~G&OHsTwh,rL ,b{ϣ/xoeS=+@}Fhp/D 0"9HG OgYdV]2Q^ݾ|jwB+ߛۭ2e*[seАAպHuowV .Dp @.DcÅ0 O̳7v?B, QV)E`xA^=}#VZhxw|;-Wo%؁duWxb{'CfP?e63 rd]_ǁG8 ֌b~Fp\à{c6ht&JJc& !+TCib&P 3!IKfEzvab@wB~*g<:=:ܛ ! gwdT" nƩ-`2\~ƸkK^IE $gt~X'JQ`97J)3 ڎL7Sux|EmU j59(lf9}yx8ܤEFQe㬬/}fg[[\XЌݰ2AJ>Lm^ uwW4b'[hfu@vuy2 YC;׻^1ݪ]EDX;qtH% 4``,u!ZwW9$]ˏu`Dz,것A]m*)E5A9dhmnZ Rzy0t~Ŷ@Y-wu%*eB4@OC/1F%CTh r194M_2XϞQ{__=.Pq}rkʫl49km˻(ud͜j Öz-9oOtX0K)Z0 E'wF*=]Oځ>>IW{=Y4ʯQP0"Wćjt#(0DNՙ:@l8@cޠa?wtxzKkL=lWJ8Ta+JֻȳԿ_ iendstream endobj 73 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 74 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 249 0 R /Resources 250 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 74 0 obj << /Filter /FlateDecode /Length 3175 >> stream xْ6}okWysJ|dI qM I2@AyƩR74}74+KU?r%Jrh8ZlGO`rѷ7(Z{o͗7_I#G['"^4eYiTѯ/>VQF?_piyxP+3?'JgRQa`DZ5Ѡ>]=G8tu!ř!$|UZĽ/lFah(o#SOgWzc,VFcQ-Q8 RL~d5EN 0F۾mS=FNG|ꇚ,YKI4-0O2![~Q;E]?E3d7g0s'%³k,}^Z'Rngoh=sCim±<;1yq'b@'#|5ih'gxDT'$9Z}:0$yFNi Gf~wʬ|VGC@^PmЀqs^l:ۢU$Ki/-"ݪ\8!-ڝM}O60`@h릜AڭoaюvLlx!vH*(Z\SH{ IzU{yyj<fTWl؜G F}̘nO'#mBe833c*|JU*g卐 yQ:rv[(uoW`+ٜZqQ\H@ ~|V75O;c4-2x|MBðo1g%JLS"+ٶqNdy4*% r`HyHtA+,,O*q81 b֕R"KC rq\^$<Ƀ|s=q载:UgI|L>lZFLm#xjjoՀW5<lVIKc6(0@E(s^^j>Mj9\ 9\py_|…f^`ԊNJ4jq0uRaI`Xwr4ccILR^ew|_Qۉf )-Uk^heWk#G˯N@4ٮ5tc?҈kWiL9!|j^t؊}fM'G_s\ߜЅm^f$TD5ίeɀc Lr[I xƇBrxY=|>ӘqNϊ^ emϘ+{̀ihJtQ d{Ft̠T /Hv\BWҭLjjx\7K/j1㶫J3'et UͰļDY[kW Jz.2tz>")徽=`ຝ1O,gD*RbE/YK:w NVy\AB&y£>g>H$P<@r28?7r&^;]Z=l֖3MfHfZAU<B~.ܘ}*x%l7NY$9$ JD,o-nZaNKg9ZNu_\}LyvCs@:|؈U M\C,!l9?\CuSasИS;olMP0, |zu%p@ZO[\,@cg~sPr0tOr^?cQbLƙ}hӶPb:N ߼u('ɠd٭#9['9OY/BEZ<7P퓬-zAzZyA]'P$_~'9CK|4si_8ՋR"ѽb$&endstream endobj 75 0 obj << /Annots 180 0 R /BleedBox [ 0 0 612 792 ] /Contents 76 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 249 0 R /Resources 250 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 76 0 obj << /Filter /FlateDecode /Length 2854 >> stream xr6REjOZ;N98~h+U!1CD| 5~6 3䬽t7~"`>wiȲ3Y"RbA  +(-?8~Q_짋?9a?eg&x_.g?\ܾNXೇ8(NtqA+6PW/~|8& 5F}!]{f>$#}ҀV~Q=k?V*XG@6G!Jήwvl=zܱ% k֍ |/Mbgާ0LN >y슭e'TɬMf;Y;):z V}0~($ZdB)={4ēWV!X~к]1BFQ :۞# .Y[>Ⱦ 0(ep\7(/ 3.ӀeS= B" O| Qn9NCY{wflm]b|}ۂz0OJ^PN~azٓ&hBU\,΀W ^1HQvjD(+v %N}> $ 9ȆMVr_{ZXY6Mm6[횮R/e%{[S#ZN}1Z };B~#x7qñǫ^h ΏkE5+L$1V2^p> D*'ܚt@2p 4cj&M[:'C>(L!»W'p~tj\N\hF3ƍnjB֏?sAJ(踋د<&47lk+}_n=Ah %:K%WkNs$n6S($ս+5ۿDf?ajs@P'?榇~|bD&\vZ;p孿!ǽj(BƄHS%mI| O~?]9?:!KajmGWCK":"樴XbX›Zۯ)Ge S.QmNEElymUB%c?zЅN plzff0X@XpAج48Gt';ՏX݈ji?Z  2KY9 -\9%XM8i> Jn I6%d`U3[}!{|fle`%ӕ +(b-,.1K;֜ P("`|"jSADshMx%=쀬r̕.(vX)R z5mϲ U"_pUǮڜpAU `來fۮyeϛ`PKLK,{^hoYŎnŞH^jOyB#ƫm=Ҁi5p#kM 5𽰔wo,XԀ[[5PȬlj #ٱ=CBCp J^(bȂfJoB/뛗?@d4&jv lgn( 5jj_{O|/3?Q !JT.E3Eǭ0 W,p2uVfgw7TLJ/]:9@[%4pHbG^dn!n:Y{@ >Bz^ [x hdn[U~vP%>ѡa׆(Q;gH) &x&":P|mJ;H.qY 8ʼvG\ qt !n!l:MA,Qywy&=b } L&5h_x~qxBk&[m ceg)xBSf[C3g $S e)5^;+_MBL }펷ٝA(`r&9$%K4$OGnaXD'SHf4XDpW"l,RLTFPL $J!0|ΩhKAg n55עDdNK(--~tш}]CQͮ?NxIOظ' f M'蔏D!Sf 10Uxex8珁V0ٿG8-7ĽbVx&Ʌ=VZAp(|( JXwXBw;WwB5kyr>Wڤ7`cJ?]'>=;ض-7>,/2l:1}o^vi9gm3?ң6 ̗D@Nxq|₾iJ j^)AJ_ v;ݘf{i U}_endstream endobj 77 0 obj << /Annots 184 0 R /BleedBox [ 0 0 612 792 ] /Contents 78 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 249 0 R /Resources 250 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 78 0 obj << /Filter /FlateDecode /Length 2081 >> stream xYKs6ϯ-vD_㛜XN%){%W6Dbf& )~hV'ok4~Ać?'݇$vFZ@Ґd$ "/IEqLJe i?}W|dA|Xj{I1Qb,&Gý/$?xYo?ϻ ?hYˠ>ӎ#r n@4j6 8D}wSߨZ\Fw=|; R /lz;:{[ s_a63Wr=%axyK ') jZu>ZԊ`=H]rVuE,HE{8 ܺ]k[gџ,(o-;{vM )E;oBRdiS+DL̑756,[.EmFKap^鯬-=7Sj@~-jQj6ւh9/\C'vZ3y r蛡'Q5{ɫ lIl> .pYPd1N C𴛻ɻ8|áIJ4,Q.5g7xޞG]| i~lx[N3l1OMqwnƋj-Į%MD u6Em}]XY=1Q2,mB2#Y*lOa=]cإNb,O<i꩐&Xʣ fʶ)C%'֑Gk/m'+N?vѣKRe${ I9' ifl8 !ȃײV.;~h@[92R+B (Ҕ[[fS2RSetEۦSVﯖ%K,h<+~i-+ HouheeP+΀"|?8}/UY48eE'>zw M'KZ&^\>lz;+;zwC6Tu!bDUºc6{6S8L7rcD0f0a-l1O K􁵥⹡:phʅAm4ȳʂh[n](%+!B}]t{^ ӁNhl804o[Tm)1 y]}^p|>QWA}+%ՓC7FxlڕV,VPhKҫʥ$$q𲬏Y @~W/3VP'C8^so ݫ&YFy1}䛳1<&dXYp Rxh&ʘ#0EF7</fW#.?8ebpx-^ҟ(E`8> ʤƴIT|:REf2Z[ GpNkb]hyN"/Z}Ct.-P:2ԝ/wA-ϮmhBey9xd+:qC\KS^=)*zA\LJ3~W& "f|7Al:GWG~/6Aٶ4Z8Z;Q7/^gS(=eN^{f|XD+6p%.dy?@֏N};^a^(c'U(&[2\8q4Aq|_?2>&vhX,H["նb>ʆ%h]#,.fe}bZכعd0apu > ԍܴ> r`^^=񩋴{n1o?:ģqi:&~aoaw +Gs̮D\u <_hY"TVOJWwiE mfF_we|w_7c)E9/w-0endstream endobj 79 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 80 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 249 0 R /Resources 250 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 80 0 obj << /Filter /FlateDecode /Length 2673 >> stream xkܶ ~hzqE .v= DYz}ܕt>q73"<|Co՟`h|42Ԓu jժ`3"jᦿ!o7+D`\ӛy~~(ADE% 2s!qЀbVZkib@ju;Z twQ>γ(8g,ʞqnlNZ b<#Q0j0m˪abIj^1AqiA4 ۩zbct=X-[N܁m# c aM?:3M-mp/]6SeŁCeN5y nZRre?r=E;rGe3xWVՀSE|#D/ LRvOӧ{2R!m2bG BUF٢2\`irxٟlvBO JyR[1qP5 ;גz-F3+[(TV !\?XPB-|T7kD0\HIzuGƒeԬK"XGcW޿}n=&NOTqeFvԋGlYlJuVb),YMNիWo(GP^ech:ͺSA'hgiA(76A4rPddtY>EeRoWg OuúΞ;# #$YW`ZN+{6 ZWvC#Zd%PmNbUY,1=I飪{rI#geΒgZ&"K=urI$DɊH6:u$A" /Mn?2+6d\r L6S%8@g4S=65%sXwF$o%͘Lq.CDXD+~۫IYJ]n$8;bM;['he9f.. `H;y)"̤Z݅Yl_BeW19K15Es DWfͫ*q1dK(q呪C[y@jM5o]t" EI4'ي\'goe(x6 i$ua;qNK6,fY[١ofӍӋk0;5~g`i>ɮ7ʼnksi1qs ڶ_9ٞ)N8WuHw};$"8聬Sٴ+ja/ׯ]<{svjʛƆڧ+Jb ((dY_-)=Z̔W W6 (l$3TNMQðGXU~?u R6aM|W rfN)xO6T~*SgĶf有=~n~qRF<#Rp}Lc.w܁v̲{ȇ`6]Zal& ֏a7AhOTfVyMNvzm݁`[:o>C:^[oʛN}9V+G7ئ.!Z09̠W/Ҁ5]ˇA]E^SaOVRb馳7/V |b"^^bW (D g؏m <PvW,2a*S/xT7v>#^-_Ou6}D:e3z *Vxyϧ*scHLpV%3/MYȎcs!N@5ӄ^>)`Cp9ًkQ>m=s͊3X~ңHW2x: On+GshUs;«'HiXt2~+(IJ仃2=Q2hK@+<Q?Lk~J%tNbAI<'/ 6 4@Npf,ҕF &XLw{ j˵At*7`%^8x~IKb=DZ_4> endobj 82 0 obj << /Filter /FlateDecode /Length 1604 >> stream xXK6W Q-m6n99m1+Z>$z4 p^i ?I<^Eablpjd. ~& Jil|X,.*N+ZbAEE%s+NF*GKՆhRG÷hne>m'p4k.J_|A?7g.EQ/p;( 0M|ߏc}mK>_=w{⸠ "ח])R--z`(5E-~ew]OmqLxGYc` YbABE9H 8*,,ޗ; ąi:nsNZ!տmN4PFUn' w]ڶ`[5!kg ĂO$A}xxW?y9(8,jdLL`(#@ۙ8M\53-_54e BY7 TdÔm'B dŚ#QyD#{b5Y .Kl"In;GPRKf}**1 bD%>]B]-hX*w i-$sF(Fi ~<2hEU-\(u(w]uYNjv&etɚ&w݊2Gv fm˸sj붢w?'U%y.2r Y.HP6I,<z鵰 hm3_[Ɓ( }? ӅkG%E{50>v(A߽UC KP[])+in\`v˸[7h|7@k/w-&H먃νȿ#I2*RtI9м0yÝ$ %@0߰0 FP9zu#v"wv*!h3(!~$j]&@1ނv8R%;zjd:aM».#+1wcj4,[;.-5py:GZ&`*X@y%\ðl(/1ī\e4}Y 9Hf.a0m/}q7L0.t!a7 -etTBv\bߥ$k M2tZ+ekk Plw$5YⳀg;jq5ϝ(qa.,)jy#bPP˧;捞x]s䥁z.Ffmtv&jxu$. ~?ucDendstream endobj 83 0 obj << /Annots 204 0 R /BleedBox [ 0 0 612 792 ] /Contents 84 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 249 0 R /Resources 250 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 84 0 obj << /Filter /FlateDecode /Length 712 >> stream xUKs0+dU##t:q'L-cMe p_0,&1=}?OA}7G1XnNB wdaLX[tcvNzu nPFCw ǟA68v]r ya\\%RX{FNB8˚Ϣ_ϋ}3QOXHO)orf'vy)VP} 1'!.~}ΝF^VI\@)JZ$^gę¼_۝(k-7p 3v\XTmPX+\sQ7b/=9=Aum)]m +v'ʾf:@YԮY/i)Jb]kȇnvѠP0HnW]Nb^\OyIFC-2> SME%1rll:qF¤Y<0~ܕ͂Ѳ=fF'yMݖp7UgJ q@endstream endobj 85 0 obj << /Type /ObjStm /Length 1562 /Filter /FlateDecode /N 81 /First 702 >> stream xZn6+ h3H-UE Y "pCIɭ 4 ÖFҙ9'[(=J1IR!KYfLLt*W,RIoRuJQ.pmp\ˎ<,EZ8l܅upG*&|2&( UL|ba2 <'fJ5MrQ%W.QrIrX)AM4iJ5u^EK&ZlmSgMbq6*eJj Z jc+De+]dQKx%'h*;?2q#?]y%?fhYbbOسM(k s2^)oQZoOJwcDJJ &UirQFR N%8iIt+XyLn^A$qYrI Hm >G뎌ёc0k3!w.~lq3kt@z}fݑK$P1k|rHTğ@ځ-dxt>9N- xBU0 :oi'Y_vE>F~`9l6ˋFaYE4 ,lۮKy28Ӳ P7#=iKdޱIڐWrȠ8vBaԸ9dL.@ã lΫe8crS~L?iWQ(`'#6IKy'hy.0o؃43V:rӴ՜d:Db 06t'h3XyBW럵CeCR 0i]Iېgm׃aJ.iz㍶W,ӷgA[Ab^7amq[0fu -vAJy3ZNf CF9M\EXeE\Y<Jf9vM勭C=lzJdӞP7ޙgP] \k+yiˆրY`l=1. 6 `3nz'}~Y03e*LsixuVo_>A[.i/w]$Mїk.؃4vJ[#E~7WGF9GlnK![Fi'sixX>Ǧ!?HwZ=_(gD\OWG%`-Gdendstream endobj 86 0 obj << /Type /ObjStm /Length 1483 /Filter /FlateDecode /N 71 /First 624 >> stream xYAo\'Wpl/, 0@EJ[ԓJmR^+Z}nb+%ü 3ggU4b|h6,'[5px6fdV]gJ h-q|*GD'&Okb| 6L lSTvzU}`'N28IrP k1#_F fT̊L1Ap`KD&$Ŭ.O 9F[(E3bIS(D돒x41dy0>c 92P%ֶ\o"N`R"Ѥ(CJDMR*G`^Tq:.0uBC0=D)pL$Ql:_883 ɼp+Ͽ 0ݝygv7{{Íٽ>˗mWp'a'K{mvW7<6ν 䵢5 N߶BXQ?IRlsC\`kZ&AGұw~"@Uu^ۏ݇ǃK- J"@HM6H`;\l&sny6mdzDUG6yo C! `k@nqVƿ@F~~% &h)+ZuGpYY|pJ$2t Flļ`D6?3qbiq&3vga֫v8Ww58Oe}V"zdnx@r 'oYM"Z0Fl-)]qxGq6;IPV3X"$~k׵-4Ty7hC|=b7(`7Yw%7Ґ8g!3'drGC > stream application/pdf en 2015-05-24T17:28:30-04:00 Apache FOP Version 1.1 1.4 Apache FOP Version 1.1 2015-05-24T17:28:30-04:00 2015-05-24T17:28:30-04:00 endstream endobj 88 0 obj << /Type /XRef /Length 235 /Filter /FlateDecode /DecodeParms << /Columns 5 /Predictor 12 >> /W [ 1 3 1 ] /Size 241 /ID [<9b1c69409fc9a5f50e44b9588e3e60f8><310e717e55d027fa51686f91bbcca18e>] >> stream x?Aw&;֐-% swЋDH D#: : Wx)%b_~y7ypr9GheRLixt:ޤZMnɠD' xIy`ξ?d'U%۾Y}>wIIBB͙nNbƎjY~дRWW ȡNj;[Y~sqqXY#)៟ >l> endstream endobj startxref 216 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.10-ogen.c-check0000644000064100006410000000040613247541377022367 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 1 user password: extract for accessibility: 1 extract for any purpose: 1 print low resolution: 1 print high resolution: 1 modify document assembly: 1 modify forms: 1 modify annotations: 1 modify other: 1 modify anything: 1 qpdf-8.0.2/qpdf/qtest/qpdf/content-stream-errors.pdf0000644000064100006410000000551113247541377020544 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 4 /Kids [ 3 0 R 4 0 R 5 0 R 6 0 R ] /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents 7 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 9 0 R >> /ProcSet 10 0 R >> /Type /Page >> endobj %% Page 2 4 0 obj << /Contents 11 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 13 0 R >> /ProcSet 14 0 R >> /Type /Page >> endobj %% Page 3 5 0 obj << /Contents 15 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 17 0 R >> /ProcSet 18 0 R >> /Type /Page >> endobj %% Page 4 6 0 obj << /Contents 19 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 21 0 R >> /ProcSet 22 0 R >> /Type /Page >> endobj %% Contents for page 1 7 0 obj << /Length 8 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET [ /oops endstream endobj 8 0 obj 52 endobj 9 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 10 0 obj [ /PDF /Text ] endobj %% Contents for page 2 11 0 obj << /Length 12 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 12 0 obj 44 endobj 13 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 14 0 obj [ /PDF /Text ] endobj %% Contents for page 3 15 0 obj << /Length 16 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET BI /CS /G/W 1/H 1/BPC 8/F/Fl/DP<> ID xc endstream endobj 16 0 obj 117 endobj 17 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 18 0 obj [ /PDF /Text ] endobj %% Contents for page 4 19 0 obj << /Length 20 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET << /oops endstream endobj 20 0 obj 53 endobj 21 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 22 0 obj [ /PDF /Text ] endobj xref 0 23 0000000000 65535 f 0000000025 00000 n 0000000079 00000 n 0000000191 00000 n 0000000394 00000 n 0000000599 00000 n 0000000804 00000 n 0000001022 00000 n 0000001129 00000 n 0000001148 00000 n 0000001266 00000 n 0000001325 00000 n 0000001426 00000 n 0000001446 00000 n 0000001565 00000 n 0000001624 00000 n 0000001798 00000 n 0000001819 00000 n 0000001938 00000 n 0000001997 00000 n 0000002107 00000 n 0000002127 00000 n 0000002246 00000 n trailer << /Root 1 0 R /Size 23 /ID [<1c91a07ddc0be84e980f12afbedcb43f><9931a008b77410b3f6c5344f461c59a5>] >> startxref 2282 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad33-recover.out0000644000064100006410000000111713247541377016662 0ustar ejbejbWARNING: bad33.pdf: file is damaged WARNING: bad33.pdf (offset 1771): xref not found WARNING: bad33.pdf: Attempting to reconstruct cross-reference table /QTest is indirect and has type stream (10) /QTest is a stream. Dictionary: << /Filter (FlateDecode) /Length 123 >> Raw stream data: x%11 b;t4| wXID8G>rQu O E:IWPlII)rp4~;As/҅jcszT.?u<*6 Uncompressed stream data: WARNING: bad33.pdf (offset 629): stream filter type is not name or array Stream data is not filterable. unparse: 7 0 R unparseResolved: 7 0 R test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/c-decrypt-with-user.pdf0000644000064100006410000002270413247541377020111 0ustar ejbejb%PDF-1.5 % 1 0 obj << /Outlines 3 0 R /PageLabels 15 0 R /PageMode /UseOutlines /Pages 16 0 R /Type /Catalog >> endobj 2 0 obj << /Type /ObjStm /Length 610 /Filter /FlateDecode /N 13 /First 87 >> stream x]o0r9v츪*! $41!>@]QѵS"N/;Q)=OcRd@ (L!?"~,w<$H;Vz1BzX1Z厳 @.~ y߭WWlS\:ʂu_`_ׁx~~wyXS6iW.fNjlKk0ldj{pOUjjs %]}z[^vY |01Ϋ|ȁ^z/&^sCt;7`YH0xstH3]y!j)Dc". \F75HQ~N̛9Σ4z9Tıl ԙ &`h%!z5;qQI/?^:;9|@q W){Pt8CBzZ֪$9F'=NR{bO"Q #m$v򍿓=C0g\nc[,ciS,F$Ez_2B1s૯I}uxD60:K#` m+@4OȘ%E?: ?p~?-Kendstream endobj 16 0 obj << /Count 30 /Kids [ 26 0 R 25 0 R 27 0 R 28 0 R 29 0 R 17 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 19 0 R 21 0 R 20 0 R 35 0 R 18 0 R 36 0 R 37 0 R 22 0 R 23 0 R 38 0 R 39 0 R 24 0 R 40 0 R 41 0 R 42 0 R 43 0 R 44 0 R 45 0 R 46 0 R ] /Type /Pages >> endobj 17 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 18 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 19 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 20 0 obj << /Contents 52 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 21 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 22 0 obj << /Contents 54 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 23 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 24 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 25 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 26 0 obj << /Contents 58 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 27 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 28 0 obj << /Contents 60 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 29 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 30 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 31 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 32 0 obj << /Contents 64 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 33 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 34 0 obj << /Contents 66 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 35 0 obj << /Contents 67 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 36 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 37 0 obj << /Contents 69 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 38 0 obj << /Contents 70 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 39 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 40 0 obj << /Contents 72 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 41 0 obj << /Contents 73 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 42 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 43 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 44 0 obj << /Contents 76 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 45 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 46 0 obj << /Contents 78 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 47 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr F endstream endobj 48 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 49 0 obj [ /PDF /Text ] endobj 50 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr d Nendstream endobj 51 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr @ Jendstream endobj 52 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr R Lendstream endobj 53 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr I Kendstream endobj 54 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W0Tr  Qendstream endobj 55 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W0Tr  Rendstream endobj 56 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr S Lendstream endobj 57 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr " endstream endobj 58 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr  endstream endobj 59 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr + endstream endobj 60 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr 4 endstream endobj 61 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr = endstream endobj 62 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr O endstream endobj 63 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr X endstream endobj 64 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,WTr a endstream endobj 65 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,WTr j !endstream endobj 66 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr 7 Iendstream endobj 67 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr [ Mendstream endobj 68 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr m Oendstream endobj 69 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr v Pendstream endobj 70 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr A Jendstream endobj 71 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr J Kendstream endobj 72 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr \ Mendstream endobj 73 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,i*dqpe Nendstream endobj 74 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr n Oendstream endobj 75 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr w Pendstream endobj 76 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr  Qendstream endobj 77 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W0Tr  Rendstream endobj 78 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W0Tr  Sendstream endobj 79 0 obj << /Type /XRef /Length 83 /Filter /FlateDecode /DecodeParms << /Columns 4 /Predictor 12 >> /W [ 1 2 1 ] /Root 1 0 R /Size 80 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> stream xcb&F~&b`$d '(QBJWA*  $(F4YTV,$5 endstream endobj startxref 9327 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/c-decrypt-R5-with-user.pdf0000644000064100006410000002300313247541377020366 0ustar ejbejb%PDF-1.7 % 1 0 obj << /Extensions << /ADBE << /BaseVersion /1.7 /ExtensionLevel 3 >> >> /Outlines 3 0 R /PageLabels 15 0 R /PageMode /UseOutlines /Pages 16 0 R /Type /Catalog >> endobj 2 0 obj << /Type /ObjStm /Length 610 /Filter /FlateDecode /N 13 /First 87 >> stream x]o0r9v츪*! $41!>@]QѵS"N/;Q)=OcRd@ (L!?"~,w<$H;Vz1BzX1Z厳 @.~ y߭WWlS\:ʂu_`_ׁx~~wyXS6iW.fNjlKk0ldj{pOUjjs %]}z[^vY |01Ϋ|ȁ^z/&^sCt;7`YH0xstH3]y!j)Dc". \F75HQ~N̛9Σ4z9Tıl ԙ &`h%!z5;qQI/?^:;9|@q W){Pt8CBzZ֪$9F'=NR{bO"Q #m$v򍿓=C0g\nc[,ciS,F$Ez_2B1s૯I}uxD60:K#` m+@4OȘ%E?: ?p~?-Kendstream endobj 16 0 obj << /Count 30 /Kids [ 26 0 R 25 0 R 27 0 R 28 0 R 29 0 R 17 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 19 0 R 21 0 R 20 0 R 35 0 R 18 0 R 36 0 R 37 0 R 22 0 R 23 0 R 38 0 R 39 0 R 24 0 R 40 0 R 41 0 R 42 0 R 43 0 R 44 0 R 45 0 R 46 0 R ] /Type /Pages >> endobj 17 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 18 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 19 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 20 0 obj << /Contents 52 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 21 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 22 0 obj << /Contents 54 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 23 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 24 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 25 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 26 0 obj << /Contents 58 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 27 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 28 0 obj << /Contents 60 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 29 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 30 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 31 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 32 0 obj << /Contents 64 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 33 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 34 0 obj << /Contents 66 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 35 0 obj << /Contents 67 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 36 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 37 0 obj << /Contents 69 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 38 0 obj << /Contents 70 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 39 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 40 0 obj << /Contents 72 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 41 0 obj << /Contents 73 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 42 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 43 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 44 0 obj << /Contents 76 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 45 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 46 0 obj << /Contents 78 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 47 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr F endstream endobj 48 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 49 0 obj [ /PDF /Text ] endobj 50 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr d Nendstream endobj 51 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr @ Jendstream endobj 52 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr R Lendstream endobj 53 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr I Kendstream endobj 54 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W0Tr  Qendstream endobj 55 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W0Tr  Rendstream endobj 56 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr S Lendstream endobj 57 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr " endstream endobj 58 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr  endstream endobj 59 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr + endstream endobj 60 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr 4 endstream endobj 61 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr = endstream endobj 62 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr O endstream endobj 63 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr X endstream endobj 64 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,WTr a endstream endobj 65 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,WTr j !endstream endobj 66 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr 7 Iendstream endobj 67 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr [ Mendstream endobj 68 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr m Oendstream endobj 69 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr v Pendstream endobj 70 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr A Jendstream endobj 71 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr J Kendstream endobj 72 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr \ Mendstream endobj 73 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,i*dqpe Nendstream endobj 74 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr n Oendstream endobj 75 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr w Pendstream endobj 76 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr  Qendstream endobj 77 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W0Tr  Rendstream endobj 78 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W0Tr  Sendstream endobj 79 0 obj << /Type /XRef /Length 80 /Filter /FlateDecode /DecodeParms << /Columns 4 /Predictor 12 >> /W [ 1 2 1 ] /Root 1 0 R /Size 80 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> stream xcb&F~&u +H. #') `pJPG  Vq@*J6,FUcv$w endstream endobj startxref 9393 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/c-qdf.pdf0000644000064100006410000004174713247541377015274 0ustar ejbejb%PDF-1.5 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Outlines 3 0 R /PageLabels 15 0 R /PageMode /UseOutlines /Pages 16 0 R /Type /Catalog >> endobj 2 0 obj << /Type /ObjStm /Length 3496 /N 13 /First 150 >> stream 3 0 4 124 5 383 6 592 7 814 8 1165 9 1408 10 1679 11 1911 12 2143 13 2361 14 2600 15 2831 %% Object stream: object 3, index 0; original object ID: 95 << /Count 6 /First 4 0 R /Last 5 0 R /Type /Outlines >> %% Object stream: object 4, index 1; original object ID: 96 << /Count 4 /Dest [ 17 0 R /XYZ null null null ] /First 6 0 R /Last 7 0 R /Next 5 0 R /Parent 3 0 R /Title (Iss 1 -> 5: /XYZ null null null) /Type /Outline >> %% Object stream: object 5, index 2; original object ID: 97 << /Dest [ 18 0 R /XYZ 66 756 3 ] /Parent 3 0 R /Prev 4 0 R /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Type /Outline >> %% Object stream: object 6, index 3; original object ID: 98 << /Count -3 /Dest [ 19 0 R /Fit ] /First 8 0 R /Last 9 0 R /Next 7 0 R /Parent 4 0 R /Title (Amanda 1.1 -> 11: /Fit) /Type /Outline >> %% Object stream: object 7, index 4; original object ID: 99 << /Count 2 /Dest [ 20 0 R /FitH 792 ] /First 13 0 R /Last 14 0 R /Parent 4 0 R /Prev 6 0 R /Title /Type /Outline >> %% Object stream: object 8, index 5; original object ID: 100 << /Count -2 /Dest [ 21 0 R /FitV 100 ] /First 10 0 R /Last 11 0 R /Next 9 0 R /Parent 6 0 R /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Type /Outline >> %% Object stream: object 9, index 6; original object ID: 101 << /Count 1 /Dest [ 21 0 R /XYZ null null null ] /First 12 0 R /Last 12 0 R /Parent 6 0 R /Prev 8 0 R /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Type /Outline >> %% Object stream: object 10, index 7; original object ID: 102 << /Dest [ 22 0 R /XYZ null null null ] /Next 11 0 R /Parent 8 0 R /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Type /Outline >> %% Object stream: object 11, index 8; original object ID: 103 << /Dest [ 23 0 R /XYZ null null null ] /Parent 8 0 R /Prev 10 0 R /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Type /Outline >> %% Object stream: object 12, index 9; original object ID: 104 << /Dest [ 24 0 R /XYZ null null null ] /Parent 9 0 R /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Type /Outline >> %% Object stream: object 13, index 10; original object ID: 105 << /Dest [ 25 0 R /FitR 66 714 180 770 ] /Next 14 0 R /Parent 7 0 R /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Type /Outline >> %% Object stream: object 14, index 11; original object ID: 106 << /Dest [ 26 0 R /XYZ null null null ] /Parent 7 0 R /Prev 13 0 R /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Type /Outline >> %% Object stream: object 15, index 12; original object ID: 107 << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> endstream endobj %% Original object ID: 2 0 16 0 obj << /Count 30 /Kids [ 26 0 R 25 0 R 27 0 R 28 0 R 29 0 R 17 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 19 0 R 21 0 R 20 0 R 35 0 R 18 0 R 36 0 R 37 0 R 22 0 R 23 0 R 38 0 R 39 0 R 24 0 R 40 0 R 41 0 R 42 0 R 43 0 R 44 0 R 45 0 R 46 0 R ] /Type /Pages >> endobj %% Page 6 %% Original object ID: 8 0 17 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 16 %% Original object ID: 18 0 18 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 12 %% Original object ID: 14 0 19 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 14 %% Original object ID: 16 0 20 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 13 %% Original object ID: 15 0 21 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 19 %% Original object ID: 21 0 22 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 20 %% Original object ID: 22 0 23 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 23 %% Original object ID: 25 0 24 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 2 %% Original object ID: 4 0 25 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 1 %% Original object ID: 3 0 26 0 obj << /Contents 67 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 3 %% Original object ID: 5 0 27 0 obj << /Contents 69 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 4 %% Original object ID: 6 0 28 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 5 %% Original object ID: 7 0 29 0 obj << /Contents 73 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 7 %% Original object ID: 9 0 30 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 8 %% Original object ID: 10 0 31 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 9 %% Original object ID: 11 0 32 0 obj << /Contents 79 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 10 %% Original object ID: 12 0 33 0 obj << /Contents 81 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 11 %% Original object ID: 13 0 34 0 obj << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 15 %% Original object ID: 17 0 35 0 obj << /Contents 85 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 17 %% Original object ID: 19 0 36 0 obj << /Contents 87 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 18 %% Original object ID: 20 0 37 0 obj << /Contents 89 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 21 %% Original object ID: 23 0 38 0 obj << /Contents 91 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 22 %% Original object ID: 24 0 39 0 obj << /Contents 93 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 24 %% Original object ID: 26 0 40 0 obj << /Contents 95 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 25 %% Original object ID: 27 0 41 0 obj << /Contents 97 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 26 %% Original object ID: 28 0 42 0 obj << /Contents 99 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 27 %% Original object ID: 29 0 43 0 obj << /Contents 101 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 28 %% Original object ID: 30 0 44 0 obj << /Contents 103 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 29 %% Original object ID: 31 0 45 0 obj << /Contents 105 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 30 %% Original object ID: 32 0 46 0 obj << /Contents 107 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Contents for page 6 %% Original object ID: 45 0 47 0 obj << /Length 48 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 48 0 obj 46 endobj %% Original object ID: 35 0 49 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 36 0 50 0 obj [ /PDF /Text ] endobj %% Contents for page 16 %% Original object ID: 65 0 51 0 obj << /Length 52 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 52 0 obj 47 endobj %% Contents for page 12 %% Original object ID: 57 0 53 0 obj << /Length 54 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 54 0 obj 47 endobj %% Contents for page 14 %% Original object ID: 61 0 55 0 obj << /Length 56 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 56 0 obj 47 endobj %% Contents for page 13 %% Original object ID: 59 0 57 0 obj << /Length 58 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 58 0 obj 47 endobj %% Contents for page 19 %% Original object ID: 71 0 59 0 obj << /Length 60 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 60 0 obj 47 endobj %% Contents for page 20 %% Original object ID: 73 0 61 0 obj << /Length 62 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 62 0 obj 47 endobj %% Contents for page 23 %% Original object ID: 79 0 63 0 obj << /Length 64 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 64 0 obj 47 endobj %% Contents for page 2 %% Original object ID: 37 0 65 0 obj << /Length 66 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 66 0 obj 46 endobj %% Contents for page 1 %% Original object ID: 33 0 67 0 obj << /Length 68 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 0) Tj ET endstream endobj 68 0 obj 46 endobj %% Contents for page 3 %% Original object ID: 39 0 69 0 obj << /Length 70 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 70 0 obj 46 endobj %% Contents for page 4 %% Original object ID: 41 0 71 0 obj << /Length 72 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 72 0 obj 46 endobj %% Contents for page 5 %% Original object ID: 43 0 73 0 obj << /Length 74 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 74 0 obj 46 endobj %% Contents for page 7 %% Original object ID: 47 0 75 0 obj << /Length 76 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 76 0 obj 46 endobj %% Contents for page 8 %% Original object ID: 49 0 77 0 obj << /Length 78 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 78 0 obj 46 endobj %% Contents for page 9 %% Original object ID: 51 0 79 0 obj << /Length 80 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 80 0 obj 46 endobj %% Contents for page 10 %% Original object ID: 53 0 81 0 obj << /Length 82 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 82 0 obj 46 endobj %% Contents for page 11 %% Original object ID: 55 0 83 0 obj << /Length 84 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 84 0 obj 47 endobj %% Contents for page 15 %% Original object ID: 63 0 85 0 obj << /Length 86 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 86 0 obj 47 endobj %% Contents for page 17 %% Original object ID: 67 0 87 0 obj << /Length 88 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 88 0 obj 47 endobj %% Contents for page 18 %% Original object ID: 69 0 89 0 obj << /Length 90 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 90 0 obj 47 endobj %% Contents for page 21 %% Original object ID: 75 0 91 0 obj << /Length 92 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 92 0 obj 47 endobj %% Contents for page 22 %% Original object ID: 77 0 93 0 obj << /Length 94 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 94 0 obj 47 endobj %% Contents for page 24 %% Original object ID: 81 0 95 0 obj << /Length 96 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 96 0 obj 47 endobj %% Contents for page 25 %% Original object ID: 83 0 97 0 obj << /Length 98 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 98 0 obj 47 endobj %% Contents for page 26 %% Original object ID: 85 0 99 0 obj << /Length 100 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 100 0 obj 47 endobj %% Contents for page 27 %% Original object ID: 87 0 101 0 obj << /Length 102 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 102 0 obj 47 endobj %% Contents for page 28 %% Original object ID: 89 0 103 0 obj << /Length 104 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 104 0 obj 47 endobj %% Contents for page 29 %% Original object ID: 91 0 105 0 obj << /Length 106 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 106 0 obj 47 endobj %% Contents for page 30 %% Original object ID: 93 0 107 0 obj << /Length 108 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 108 0 obj 47 endobj 109 0 obj << /Type /XRef /Length 440 /W [ 1 2 1 ] /Root 1 0 R /Size 110 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> stream 4    xdP<(~hS>* !!"#$%&'v(b)O*<+),",,-L-. .T.//l/00d011|12,2s23!33464}45+556@6675778K889C99:[:; ;S;<>|>?/?x?@+@@AHA] endstream endobj startxref 16733 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/lin2.out0000644000064100006410000001531413247541377015173 0ustar ejbejbWARNING: end of first page section (/E) mismatch: /E = 1827; computed = 3889..3891 WARNING: page 0 has shared identifier entries WARNING: page 0: shared object 62: in hint table but not computed list lin2.pdf: linearization data: file_size: 13103 first_page_object: 62 first_page_end: 1827 npages: 30 xref_zero_offset: 11776 first_page: 0 H_offset: 1211 H_length: 203 Page Offsets Hint Table min_nobjects: 2 first_page_offset: 1414 nbits_delta_nobjects: 4 min_page_length: 259 nbits_delta_page_length: 12 min_content_offset: 0 nbits_delta_content_offset: 0 min_content_length: 0 nbits_delta_content_length: 12 nbits_nshared_objects: 2 nbits_shared_identifier: 2 nbits_shared_numerator: 4 shared_denominator: 8 Page 0: nobjects: 16 length: 2477 content_offset: 0 content_length: 2218 nshared_objects: 2 identifier 0: 0 numerator 0: 0 identifier 1: 0 numerator 1: 0 Page 1: nobjects: 2 length: 259 content_offset: 0 content_length: 0 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 2: nobjects: 2 length: 259 content_offset: 0 content_length: 0 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 3: nobjects: 2 length: 259 content_offset: 0 content_length: 0 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 4: nobjects: 2 length: 259 content_offset: 0 content_length: 0 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 5: nobjects: 2 length: 261 content_offset: 0 content_length: 2 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 6: nobjects: 2 length: 262 content_offset: 0 content_length: 3 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 7: nobjects: 2 length: 262 content_offset: 0 content_length: 3 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 8: nobjects: 2 length: 262 content_offset: 0 content_length: 3 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 9: nobjects: 2 length: 262 content_offset: 0 content_length: 3 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 10: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 11: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 12: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 13: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 14: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 15: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 16: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 17: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 18: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 19: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 20: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 21: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 22: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 23: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 24: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 25: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 26: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 27: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 28: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 29: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Shared Objects Hint Table first_shared_obj: 0 first_shared_offset: 0 nshared_first_page: 16 nshared_total: 16 nbits_nobjects: 0 min_group_length: 34 nbits_delta_group_length: 9 Shared Object 0: group length: 157 Shared Object 1: group length: 105 Shared Object 2: group length: 117 Shared Object 3: group length: 34 Shared Object 4: group length: 82 Shared Object 5: group length: 191 Shared Object 6: group length: 144 Shared Object 7: group length: 168 Shared Object 8: group length: 291 Shared Object 9: group length: 165 Shared Object 10: group length: 162 Shared Object 11: group length: 182 Shared Object 12: group length: 201 Shared Object 13: group length: 150 Shared Object 14: group length: 164 Shared Object 15: group length: 164 Outlines Hint Table first_object: 66 first_object_offset: 1827 nobjects: 12 group_length: 2064 qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.12.check0000644000064100006410000000026213247541377017235 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/07_split-exp.zdf0000644000064100006410000000136313247541377016535 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TsM,.D 2endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 6 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000398 00000 n trailer << /Root 1 0 R /Size 6 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 497 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad-jpeg-out.pdf0000644000064100006410000001111113247541377016536 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 392 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text /ImageC ] /XObject << /Im1 6 0 R >> >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 99 >> stream x ; @{O1eAk$T 'D z}ajZB&j[da)i13ߡL$hF-{~+l&k-q|WG/8endstream endobj 5 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 6 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 480 /Subtype /Image /Type /XObject /Width 400 /Length 3650 >> stream wwwwwwwwwwC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?袊((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((Ҩ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((j(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((L+O܂((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((y+((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((v(܏0((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((endstream endobj xref 0 7 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000309 00000 n 0000000478 00000 n 0000000585 00000 n trailer << /Root 1 0 R /Size 7 /ID [<53b6958e9beef00ea2ac077d5f2912b6><31415926535897932384626433832795>] >> startxref 4402 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad28-recover.out0000644000064100006410000000054513247541377016672 0ustar ejbejbWARNING: bad28.pdf (object 4 0, offset 395): expected endobj /QTest is indirect and has type stream (10) /QTest is a stream. Dictionary: << /Length 44 >> Raw stream data: BT /F1 24 Tf 72 720 Td (Potato) Tj ET Uncompressed stream data: BT /F1 24 Tf 72 720 Td (Potato) Tj ET End of stream data unparse: 4 0 R unparseResolved: 4 0 R test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/empty-object.pdf0000644000064100006410000000145213247541377016671 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R /X 7 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 7 0 obj endobj xref 0 8 0000000000 65535 f 0000000009 00000 n 0000000074 00000 n 0000000146 00000 n 0000000318 00000 n 0000000414 00000 n 0000000449 00000 n 0000000567 00000 n trailer << /Size 8 /Root 1 0 R >> startxref 583 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/test14-in.pdf0000644000064100006410000000473513247541377016026 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /Pages 4 0 R /Type /Catalog >> endobj 2 0 obj [ /Array ] endobj 3 0 obj << /Dict 1 >> endobj 4 0 obj << /Count 4 /Kids [ 5 0 R 6 0 R 7 0 R 8 0 R ] /Type /Pages >> endobj %% Page 1 5 0 obj << /Contents 9 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 11 0 R >> /ProcSet 12 0 R >> /Type /Page >> endobj %% Page 2 6 0 obj << /Contents 13 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 11 0 R >> /ProcSet 15 0 R >> /Type /Page >> endobj %% Page 3 7 0 obj << /Contents 16 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 11 0 R >> /ProcSet 18 0 R >> /Type /Page >> endobj %% Page 4 8 0 obj << /Contents 19 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 11 0 R >> /ProcSet 21 0 R >> /Type /Page >> endobj %% Contents for page 1 9 0 obj << /Length 10 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 10 0 obj 46 endobj 11 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 12 0 obj [ /PDF /Text ] endobj %% Contents for page 2 13 0 obj << /Length 14 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 14 0 obj 46 endobj 15 0 obj [ /PDF /Text ] endobj %% Contents for page 3 16 0 obj << /Length 17 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 17 0 obj 46 endobj 18 0 obj [ /PDF /Text ] endobj %% Contents for page 4 19 0 obj << /Length 20 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 20 0 obj 46 endobj 21 0 obj [ /PDF /Text ] endobj xref 0 22 0000000000 65535 f 0000000025 00000 n 0000000079 00000 n 0000000108 00000 n 0000000140 00000 n 0000000252 00000 n 0000000456 00000 n 0000000661 00000 n 0000000866 00000 n 0000001084 00000 n 0000001186 00000 n 0000001206 00000 n 0000001325 00000 n 0000001384 00000 n 0000001487 00000 n 0000001507 00000 n 0000001566 00000 n 0000001669 00000 n 0000001689 00000 n 0000001748 00000 n 0000001851 00000 n 0000001871 00000 n trailer << /QArray 2 0 R /QDict 3 0 R /Root 1 0 R /Size 22 /ID [<20eb74876a3e8212c1b4fd43153860b0><1bb7a926da191c58f675435d77997d21>] >> startxref 1907 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.9.c-check0000644000064100006410000000040613247541377021371 0ustar ejbejbversion: 1.5 linearized: 1 encrypted: 1 user password: extract for accessibility: 1 extract for any purpose: 1 print low resolution: 1 print high resolution: 1 modify document assembly: 1 modify forms: 1 modify annotations: 1 modify other: 1 modify anything: 1 qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.8-ogen.check0000644000064100006410000000026213247541377020065 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.7-ogen.check0000644000064100006410000000026213247541377022075 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/split-exp-11.Pdf0000644000064100006410000000136413247541377016375 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 54 >> stream xs Qw3T04UIS07" ̼TCCM,.") ]endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 6 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000399 00000 n trailer << /Root 1 0 R /Size 6 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 498 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-other-force-1.3.out0000644000064100006410000000015513247541377022126 0ustar ejbejbversion: 1.3 extension level: 0 << /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/c-read-errors.out0000644000064100006410000000122413247541377016767 0ustar ejbejbwarning: bad1.pdf: can't find PDF header code: 5 file: bad1.pdf pos : 0 text: can't find PDF header warning: bad1.pdf: file is damaged code: 5 file: bad1.pdf pos : 0 text: file is damaged warning: bad1.pdf: can't find startxref code: 5 file: bad1.pdf pos : 0 text: can't find startxref warning: bad1.pdf: Attempting to reconstruct cross-reference table code: 5 file: bad1.pdf pos : 0 text: Attempting to reconstruct cross-reference table error: bad1.pdf: unable to find trailer dictionary while recovering damaged file code: 5 file: bad1.pdf pos : 0 text: unable to find trailer dictionary while recovering damaged file qpdf-8.0.2/qpdf/qtest/qpdf/bad15.pdf0000644000064100006410000000141213247541377015157 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /Something ] >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.6.c-check0000644000064100006410000000005013247541377017373 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.3.c-check0000644000064100006410000000005013247541377017704 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/bad21-recover.out0000644000064100006410000000064213247541377016661 0ustar ejbejbWARNING: bad21.pdf (trailer, offset 742): invalid name token WARNING: bad21.pdf (trailer, offset 715): expected dictionary key but found non-name object; inserting key /QPDFFake1 WARNING: bad21.pdf (trailer, offset 715): expected dictionary key but found non-name object; inserting key /QPDFFake2 /QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.9.check0000644000064100006410000000025613247541377017464 0ustar ejbejbchecking a.pdf PDF Version: 1.2 File is not encrypted File is linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/short-id-linearized-check.out0000644000064100006410000000025613247541377021256 0ustar ejbejbchecking a.pdf PDF Version: 1.3 File is not encrypted File is linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/newline-before-endstream-qdf.pdf0000644000064100006410000000541713247541377021725 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 3 /Kids [ 3 0 R 4 0 R 5 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 6 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 8 0 R >> /ProcSet 9 0 R >> /Type /Page >> endobj %% Page 2 %% Original object ID: 4 0 4 0 obj << /Contents 10 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 12 0 R >> /ProcSet 13 0 R >> /Type /Page >> endobj %% Page 3 %% Original object ID: 5 0 5 0 obj << /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet 17 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 6 0 6 0 obj << /Length 7 0 R >> stream % Stream contains a newline as part of its length BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 7 0 obj 94 endobj %% Original object ID: 7 0 8 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 8 0 9 0 obj [ /PDF /Text ] endobj %% Contents for page 2 %% Original object ID: 9 0 10 0 obj << /Length 11 0 R >> stream % Stream data does not end with a newline but endstream is preceded by % a newline. BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj %QDF: ignore_newline 11 0 obj 127 endobj %% Original object ID: 10 0 12 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 11 0 13 0 obj [ /PDF /Text ] endobj %% Contents for page 3 %% Original object ID: 12 0 14 0 obj << /Length 15 0 R >> stream % Stream data does not end with a newline and endstream is not % preceded by a newline. BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj %QDF: ignore_newline 15 0 obj 131 endobj %% Original object ID: 13 0 16 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 14 0 17 0 obj [ /PDF /Text ] endobj xref 0 18 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000262 00000 n 0000000491 00000 n 0000000723 00000 n 0000000968 00000 n 0000001117 00000 n 0000001163 00000 n 0000001308 00000 n 0000001393 00000 n 0000001599 00000 n 0000001648 00000 n 0000001795 00000 n 0000001882 00000 n 0000002092 00000 n 0000002141 00000 n 0000002288 00000 n trailer << /Root 1 0 R /Size 18 /ID [<31415926535897932384626433832795>] >> startxref 2324 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/broken-decode-parms-no-filter.pdf0000644000064100006410000000216213247541377022004 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R /DecodeParms [ << >> ] >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj %% Original object ID: 6 0 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 5 0 7 0 obj [ /PDF /Text ] endobj xref 0 8 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000242 00000 n 0000000484 00000 n 0000000608 00000 n 0000000654 00000 n 0000000799 00000 n trailer << /Root 1 0 R /Size 8 /ID [<3ed0e583ae70f9665d727ef9c2780a19><3ed0e583ae70f9665d727ef9c2780a19>] >> startxref 834 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.4-ogen.c-check0000644000064100006410000000005013247541377020317 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/extensions-none-min-1.7.3.out0000644000064100006410000000014313247541377020702 0ustar ejbejbversion: 1.7 extension level: 3 << /ADBE << /BaseVersion /1.7 /ExtensionLevel 3 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-other-force-1.8.5.out0000644000064100006410000000023513247541377022275 0ustar ejbejbversion: 1.8 extension level: 5 << /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/replaced-stream-data.pdf0000644000064100006410000000155613247541377020253 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /QStream 3 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 4 0 R ] /Type /Pages >> endobj 3 0 obj << /Length 20 >> stream new data for stream endstream endobj 4 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj 5 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 7 0 obj [ /PDF /Text ] endobj xref 0 8 0000000000 65535 f 0000000015 00000 n 0000000079 00000 n 0000000138 00000 n 0000000207 00000 n 0000000350 00000 n 0000000443 00000 n 0000000550 00000 n trailer << /Root 1 0 R /Size 8 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 580 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/c-info-out.pdf0000644000064100006410000000155613247541377016254 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 3 0 R /Type /Catalog >> endobj 2 0 obj << /Author (Mr. Potato Head) /Producer (QPDF library) >> endobj 3 0 obj << /Count 1 /Kids [ 4 0 R ] /Type /Pages >> endobj 4 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj 5 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 7 0 obj [ /PDF /Text ] endobj xref 0 8 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000136 00000 n 0000000195 00000 n 0000000338 00000 n 0000000431 00000 n 0000000538 00000 n trailer << /Info 2 0 R /Root 1 0 R /Size 8 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 568 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/c-decrypt-R6-with-owner.pdf0000644000064100006410000002300313247541377020543 0ustar ejbejb%PDF-1.7 % 1 0 obj << /Extensions << /ADBE << /BaseVersion /1.7 /ExtensionLevel 8 >> >> /Outlines 3 0 R /PageLabels 15 0 R /PageMode /UseOutlines /Pages 16 0 R /Type /Catalog >> endobj 2 0 obj << /Type /ObjStm /Length 610 /Filter /FlateDecode /N 13 /First 87 >> stream x]o0r9v츪*! $41!>@]QѵS"N/;Q)=OcRd@ (L!?"~,w<$H;Vz1BzX1Z厳 @.~ y߭WWlS\:ʂu_`_ׁx~~wyXS6iW.fNjlKk0ldj{pOUjjs %]}z[^vY |01Ϋ|ȁ^z/&^sCt;7`YH0xstH3]y!j)Dc". \F75HQ~N̛9Σ4z9Tıl ԙ &`h%!z5;qQI/?^:;9|@q W){Pt8CBzZ֪$9F'=NR{bO"Q #m$v򍿓=C0g\nc[,ciS,F$Ez_2B1s૯I}uxD60:K#` m+@4OȘ%E?: ?p~?-Kendstream endobj 16 0 obj << /Count 30 /Kids [ 26 0 R 25 0 R 27 0 R 28 0 R 29 0 R 17 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 19 0 R 21 0 R 20 0 R 35 0 R 18 0 R 36 0 R 37 0 R 22 0 R 23 0 R 38 0 R 39 0 R 24 0 R 40 0 R 41 0 R 42 0 R 43 0 R 44 0 R 45 0 R 46 0 R ] /Type /Pages >> endobj 17 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 18 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 19 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 20 0 obj << /Contents 52 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 21 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 22 0 obj << /Contents 54 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 23 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 24 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 25 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 26 0 obj << /Contents 58 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 27 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 28 0 obj << /Contents 60 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 29 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 30 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 31 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 32 0 obj << /Contents 64 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 33 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 34 0 obj << /Contents 66 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 35 0 obj << /Contents 67 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 36 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 37 0 obj << /Contents 69 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 38 0 obj << /Contents 70 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 39 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 40 0 obj << /Contents 72 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 41 0 obj << /Contents 73 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 42 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 43 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 44 0 obj << /Contents 76 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 45 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 46 0 obj << /Contents 78 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 47 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr F endstream endobj 48 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 49 0 obj [ /PDF /Text ] endobj 50 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr d Nendstream endobj 51 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr @ Jendstream endobj 52 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr R Lendstream endobj 53 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr I Kendstream endobj 54 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W0Tr  Qendstream endobj 55 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W0Tr  Rendstream endobj 56 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr S Lendstream endobj 57 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr " endstream endobj 58 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr  endstream endobj 59 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr + endstream endobj 60 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr 4 endstream endobj 61 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr = endstream endobj 62 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr O endstream endobj 63 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr X endstream endobj 64 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,WTr a endstream endobj 65 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,WTr j !endstream endobj 66 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr 7 Iendstream endobj 67 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr [ Mendstream endobj 68 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr m Oendstream endobj 69 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr v Pendstream endobj 70 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr A Jendstream endobj 71 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr J Kendstream endobj 72 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr \ Mendstream endobj 73 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,i*dqpe Nendstream endobj 74 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr n Oendstream endobj 75 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr w Pendstream endobj 76 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr  Qendstream endobj 77 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W0Tr  Rendstream endobj 78 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W0Tr  Sendstream endobj 79 0 obj << /Type /XRef /Length 80 /Filter /FlateDecode /DecodeParms << /Columns 4 /Predictor 12 >> /W [ 1 2 1 ] /Root 1 0 R /Size 80 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> stream xcb&F~&u +H. #') `pJPG  Vq@*J6,FUcv$w endstream endobj startxref 9393 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/issue-106.out0000644000064100006410000000036313247541377015761 0ustar ejbejbWARNING: issue-106.pdf: file is damaged WARNING: issue-106.pdf (offset 809): xref not found WARNING: issue-106.pdf: Attempting to reconstruct cross-reference table qpdf: operation succeeded with warnings; resulting file may have some problems qpdf-8.0.2/qpdf/qtest/qpdf/no-space-in-xref.out0000644000064100006410000000030113247541377017370 0ustar ejbejbchecking no-space-in-xref.pdf PDF Version: 1.3 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/invalid-id-xref.out0000644000064100006410000000072413247541377017310 0ustar ejbejbWARNING: invalid-id-xref.pdf (trailer, offset 731): invalid /ID in trailer dictionary checking invalid-id-xref.pdf PDF Version: 1.4 R = 3 P = -1804 User password = extract for accessibility: not allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: not allowed modify forms: not allowed modify annotations: allowed modify other: not allowed modify anything: not allowed File is not linearized qpdf-8.0.2/qpdf/qtest/qpdf/split-pages-group.out0000644000064100006410000000020113247541377017676 0ustar ejbejbqpdf: wrote file split-out-group-01-05.pdf qpdf: wrote file split-out-group-06-10.pdf qpdf: wrote file split-out-group-11-11.pdf qpdf-8.0.2/qpdf/qtest/qpdf/eof-terminates-literal.pdf0000644000064100006410000000314013247541377020637 0ustar ejbejb%PDF-1.3 % %....... %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj %% Original object ID: 6 0 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 5 0 7 0 obj [ /PDF /Text ] endobj 8 0 obj << /Type /ObjStm /Length 17 /N 1 /First 4 /Filter/FlateDecode >> stream xT02430endstream endobj 10 0 obj << /Type /ObjStm /Length 20 /N 1 /First 5 /Filter/FlateDecode >> stream x34T023414 '"endstream endobj 12 0 obj << /Type /ObjStm /Length 21 /N 1 /First 5 /Filter/FlateDecode >> stream x34V0(/I,endstream endobj 14 0 obj << /Type /ObjStm /Length 19 /N 1 /First 5 /Filter/FlateDecode >> stream x34U0,ML endstream endobj 16 0 obj << /Type /XRef /Length 68 /W [ 1 2 1 ] /Root 1 0 R /Size 17 /ID [<005fff067d76e95914d94529656029c7><005fff067d76e95914d94529656029c7>] /QTest [9 0 R 11 0 R 13 0 R 15 0 R] >> stream 4Gu) & ( endstream endobj startxref 1320 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/delete-and-reuse.pdf0000644000064100006410000004140113247541377017410 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /PageLabels 107 0 R /Pages 2 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 95 0 R >> endobj 2 0 obj << /Count 30 /Kids [ 3 0 R 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R ] /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents 33 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 2 4 0 obj << /Contents 37 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 3 5 0 obj << /Contents 39 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 4 6 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 5 7 0 obj << /Contents 43 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 6 8 0 obj << /Contents 45 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 7 9 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 8 10 0 obj << /Contents 49 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 9 11 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 10 12 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 11 13 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 12 14 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 13 15 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 14 16 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 15 17 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 16 18 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 17 19 0 obj << /Contents 67 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 18 20 0 obj << /Contents 69 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 19 21 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 20 22 0 obj << /Contents 73 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 21 23 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 22 24 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 23 25 0 obj << /Contents 79 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 24 26 0 obj << /Contents 81 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 25 27 0 obj << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 26 28 0 obj << /Contents 85 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 27 29 0 obj << /Contents 87 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 28 30 0 obj << /Contents 89 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 29 31 0 obj << /Contents 91 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 30 32 0 obj << /Contents 93 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Contents for page 1 33 0 obj << /Length 34 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 0) Tj ET endstream endobj 34 0 obj 46 endobj 35 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 36 0 obj [ /PDF /Text ] endobj %% Contents for page 2 37 0 obj << /Length 38 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 38 0 obj 46 endobj %% Contents for page 3 39 0 obj << /Length 40 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 40 0 obj 46 endobj %% Contents for page 4 41 0 obj << /Length 42 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 42 0 obj 46 endobj %% Contents for page 5 43 0 obj << /Length 44 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 44 0 obj 46 endobj %% Contents for page 6 45 0 obj << /Length 46 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 46 0 obj 46 endobj %% Contents for page 7 47 0 obj << /Length 48 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 48 0 obj 46 endobj %% Contents for page 8 49 0 obj << /Length 50 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 50 0 obj 46 endobj %% Contents for page 9 51 0 obj << /Length 52 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 52 0 obj 46 endobj %% Contents for page 10 53 0 obj << /Length 54 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 54 0 obj 46 endobj %% Contents for page 11 55 0 obj << /Length 56 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 56 0 obj 47 endobj %% Contents for page 12 57 0 obj << /Length 58 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 58 0 obj 47 endobj %% Contents for page 13 59 0 obj << /Length 60 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 60 0 obj 47 endobj %% Contents for page 14 61 0 obj << /Length 62 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 62 0 obj 47 endobj %% Contents for page 15 63 0 obj << /Length 64 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 64 0 obj 47 endobj %% Contents for page 16 65 0 obj << /Length 66 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 66 0 obj 47 endobj %% Contents for page 17 67 0 obj << /Length 68 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 68 0 obj 47 endobj %% Contents for page 18 69 0 obj << /Length 70 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 70 0 obj 47 endobj %% Contents for page 19 71 0 obj << /Length 72 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 72 0 obj 47 endobj %% Contents for page 20 73 0 obj << /Length 74 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 74 0 obj 47 endobj %% Contents for page 21 75 0 obj << /Length 76 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 76 0 obj 47 endobj %% Contents for page 22 77 0 obj << /Length 78 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 78 0 obj 47 endobj %% Contents for page 23 79 0 obj << /Length 80 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 80 0 obj 47 endobj %% Contents for page 24 81 0 obj << /Length 82 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 82 0 obj 47 endobj %% Contents for page 25 83 0 obj << /Length 84 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 84 0 obj 47 endobj %% Contents for page 26 85 0 obj << /Length 86 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 86 0 obj 47 endobj %% Contents for page 27 87 0 obj << /Length 88 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 88 0 obj 47 endobj %% Contents for page 28 89 0 obj << /Length 90 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 90 0 obj 47 endobj %% Contents for page 29 91 0 obj << /Length 92 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 92 0 obj 47 endobj %% Contents for page 30 93 0 obj << /Length 94 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 94 0 obj 47 endobj 95 0 obj << /Type /Outlines /First 96 0 R /Last 97 0 R /Count 6 >> endobj 96 0 obj << /Type /Outline /Title (Iss 1 -> 5: /XYZ null null null) /Parent 95 0 R /Count 4 /Next 97 0 R /First 98 0 R /Last 99 0 R /Dest [ 8 0 R /XYZ null null null ] >> endobj 97 0 obj << /Type /Outline /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Parent 95 0 R /Prev 96 0 R /Dest [ 18 0 R /XYZ 66 756 3 ] >> endobj 98 0 obj << /Type /Outline /Title (Amanda 1.1 -> 11: /Fit) /Parent 96 0 R /Next 99 0 R /First 100 0 R /Last 101 0 R /Count -3 /Dest [ 14 0 R /Fit ] >> endobj 99 0 obj << /Type /Outline % /Title (Sandy (Sandy [Greek]) 1.2 -> 13: /FitH 792) /Title /Parent 96 0 R /Prev 98 0 R /First 105 0 R /Last 106 0 R /Count 2 /Dest [ 16 0 R /FitH 792 ] >> endobj 100 0 obj << /Type /Outline /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Parent 98 0 R /Next 101 0 R /First 102 0 R /Last 103 0 R /Count -2 /Dest [ 15 0 R /FitV 100 ] >> endobj 101 0 obj << /Type /Outline /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Parent 98 0 R /Prev 100 0 R /First 104 0 R /Last 104 0 R /Count 1 /Dest [ 15 0 R /XYZ null null null ] >> endobj 102 0 obj << /Type /Outline /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Parent 100 0 R /Next 103 0 R /Dest [ 21 0 R /XYZ null null null ] >> endobj 103 0 obj << /Type /Outline /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Parent 100 0 R /Prev 102 0 R /Dest [ 22 0 R /XYZ null null null ] >> endobj 104 0 obj << /Type /Outline /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Parent 101 0 R /Dest [ 25 0 R /XYZ null null null ] >> endobj 105 0 obj << /Type /Outline /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Parent 99 0 R /Next 106 0 R /Dest [ 4 0 R /FitR 66 714 180 770 ] >> endobj 106 0 obj << /Type /Outline /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Parent 99 0 R /Prev 105 0 R /Dest [ 3 0 R /XYZ null null null ] >> endobj 107 0 obj << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> endobj xref 0 108 0000000000 65535 f 0000000025 00000 n 0000000145 00000 n 0000000541 00000 n 0000000746 00000 n 0000000951 00000 n 0000001156 00000 n 0000001361 00000 n 0000001566 00000 n 0000001771 00000 n 0000001976 00000 n 0000002182 00000 n 0000002389 00000 n 0000002596 00000 n 0000002803 00000 n 0000003010 00000 n 0000003217 00000 n 0000003424 00000 n 0000003631 00000 n 0000003838 00000 n 0000004045 00000 n 0000004252 00000 n 0000004459 00000 n 0000004666 00000 n 0000004873 00000 n 0000005080 00000 n 0000005287 00000 n 0000005494 00000 n 0000005701 00000 n 0000005908 00000 n 0000006115 00000 n 0000006322 00000 n 0000006529 00000 n 0000006748 00000 n 0000006851 00000 n 0000006871 00000 n 0000006990 00000 n 0000007049 00000 n 0000007152 00000 n 0000007195 00000 n 0000007298 00000 n 0000007341 00000 n 0000007444 00000 n 0000007487 00000 n 0000007590 00000 n 0000007633 00000 n 0000007736 00000 n 0000007779 00000 n 0000007882 00000 n 0000007925 00000 n 0000008028 00000 n 0000008071 00000 n 0000008174 00000 n 0000008218 00000 n 0000008321 00000 n 0000008365 00000 n 0000008469 00000 n 0000008513 00000 n 0000008617 00000 n 0000008661 00000 n 0000008765 00000 n 0000008809 00000 n 0000008913 00000 n 0000008957 00000 n 0000009061 00000 n 0000009105 00000 n 0000009209 00000 n 0000009253 00000 n 0000009357 00000 n 0000009401 00000 n 0000009505 00000 n 0000009549 00000 n 0000009653 00000 n 0000009697 00000 n 0000009801 00000 n 0000009845 00000 n 0000009949 00000 n 0000009993 00000 n 0000010097 00000 n 0000010141 00000 n 0000010245 00000 n 0000010289 00000 n 0000010393 00000 n 0000010437 00000 n 0000010541 00000 n 0000010585 00000 n 0000010689 00000 n 0000010733 00000 n 0000010837 00000 n 0000010881 00000 n 0000010985 00000 n 0000011029 00000 n 0000011133 00000 n 0000011177 00000 n 0000011281 00000 n 0000011301 00000 n 0000011388 00000 n 0000011584 00000 n 0000011730 00000 n 0000011905 00000 n 0000012258 00000 n 0000012449 00000 n 0000012659 00000 n 0000012828 00000 n 0000012997 00000 n 0000013150 00000 n 0000013319 00000 n 0000013484 00000 n trailer << /Root 1 0 R /Size 108 >> startxref 13801 %%EOF % 1. Delete page labels xref 0 1 0000000107 65535 f 107 1 0000000000 00001 f trailer << /Root 1 0 R /Size 108 /Prev 13801 >> startxref 16059 %%EOF % 2. Delete outlines, reuse page labels. 107 1 obj << /Nums [ 0 << /P () >> 2 << /S /D /St 1 >> 7 << /P () >> 9 << /S /R /St 6 >> 11 << /P () >> 12 << /S /r /St 2 >> 15 << /S /r /St 6 >> 19 << /P () >> 20 << /S /R /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> endobj % Reuse object 1 with the same generation number. Leave outlines % there pointing to a deleted object. 1 0 obj << /PageLabels 107 1 R /Pages 2 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 95 0 R >> endobj xref 0 2 0000000095 65535 f 0000016648 00000 n 95 13 0000000096 00001 f 0000000097 00001 f 0000000098 00001 f 0000000099 00001 f 0000000100 00001 f 0000000101 00001 f 0000000102 00001 f 0000000103 00001 f 0000000104 00001 f 0000000105 00001 f 0000000106 00001 f 0000000000 00001 f 0000016227 00001 n trailer << /Size 108 /Prev 16059 /Root 1 0 R >> startxref 16768 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.6-ogen.c-check0000644000064100006410000000005013247541377020617 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/bad2.out0000644000064100006410000000003713247541377015133 0ustar ejbejbbad2.pdf: can't find startxref qpdf-8.0.2/qpdf/qtest/qpdf/bad7-recover.out0000644000064100006410000000035413247541377016605 0ustar ejbejbWARNING: bad7.pdf: file is damaged WARNING: bad7.pdf (offset 698): expected trailer dictionary WARNING: bad7.pdf: Attempting to reconstruct cross-reference table bad7.pdf: unable to find trailer dictionary while recovering damaged file qpdf-8.0.2/qpdf/qtest/qpdf/linearization-large-vector-alloc.out0000644000064100006410000000100713247541377022651 0ustar ejbejbchecking linearization-large-vector-alloc.pdf PDF Version: 1.3 File is not encrypted File is linearized WARNING: linearization-large-vector-alloc.pdf (linearization hint stream: object 62 0, offset 1282): expected endstream WARNING: linearization-large-vector-alloc.pdf (linearization hint stream: object 62 0, offset 1183): attempting to recover stream length WARNING: linearization-large-vector-alloc.pdf (linearization hint stream: object 62 0, offset 1183): recovered stream length: 106 overflow reading bit stream qpdf-8.0.2/qpdf/qtest/qpdf/filter-abbreviation.out0000644000064100006410000000133613247541377020256 0ustar ejbejb%PDF-1.5 % 1 0 obj << /Type /ObjStm /Length 223 /Filter /FlateDecode /N 5 /First 26 >> stream xEQ0DmO©'x >ڥDT߻II^ݙo& O0A)T#Rr4CuC?A,uWנ,b: !83&j/km <{-Kby[k+Eʚ) i%;ZW)ͻ@?ZTg=%NTV68iy/Tq~C 9D%G]endstream endobj 7 0 obj << /Filter /Fl /Length 48 >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 8 0 obj << /Type /XRef /Length 32 /Filter /FlateDecode /DecodeParms << /Columns 4 /Predictor 12 >> /W [ 1 2 1 ] /Root 2 0 R /Size 9 /ID [<050894d8d0e442532dcf5fbcef2bdb6e><31415926535897932384626433832795>] >> stream xcb&F~ cD'3r4 endstream endobj startxref 447 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/split-exp-group-11-11.pdf0000644000064100006410000000136413247541377020006 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 54 >> stream xs Qw3T04UIS07" ̼TCCM,.") ]endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 6 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000399 00000 n trailer << /Root 1 0 R /Size 6 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 498 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/page_api_1-out2.pdf0000644000064100006410000000736113247541377017150 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 3 0 R /Type /Catalog >> endobj 2 0 obj << /CreationDate (D:20120621111522) /Producer (Apex PDFWriter) >> endobj 3 0 obj << /Count 11 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R ] /Type /Pages >> endobj 4 0 obj << /Contents 15 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 5 0 obj << /Contents 17 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 6 0 obj << /Contents 18 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 7 0 obj << /Contents 19 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 8 0 obj << /Contents 20 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 9 0 obj << /Contents 21 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 10 0 obj << /Contents 22 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 11 0 obj << /Contents 23 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 12 0 obj << /Contents 24 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 13 0 obj << /Contents 25 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 14 0 obj << /Contents 26 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 15 0 obj << /Length 47 >> stream BT /F1 15 Tf 72 720 Td (Original page 0) Tj ET endstream endobj 16 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 17 0 obj << /Length 47 >> stream BT /F1 15 Tf 72 720 Td (Original page 1) Tj ET endstream endobj 18 0 obj << /Length 47 >> stream BT /F1 15 Tf 72 720 Td (Original page 2) Tj ET endstream endobj 19 0 obj << /Length 47 >> stream BT /F1 15 Tf 72 720 Td (Original page 3) Tj ET endstream endobj 20 0 obj << /Length 47 >> stream BT /F1 15 Tf 72 720 Td (Original page 4) Tj ET endstream endobj 21 0 obj << /Length 47 >> stream BT /F1 15 Tf 72 720 Td (Original page 5) Tj ET endstream endobj 22 0 obj << /Length 47 >> stream BT /F1 15 Tf 72 720 Td (Original page 6) Tj ET endstream endobj 23 0 obj << /Length 47 >> stream BT /F1 15 Tf 72 720 Td (Original page 7) Tj ET endstream endobj 24 0 obj << /Length 47 >> stream BT /F1 15 Tf 72 720 Td (Original page 8) Tj ET endstream endobj 25 0 obj << /Length 47 >> stream BT /F1 15 Tf 72 720 Td (Original page 9) Tj ET endstream endobj 26 0 obj << /Length 43 >> stream BT /F1 15 Tf 72 720 Td (New page 10) Tj ET endstream endobj xref 0 27 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000145 00000 n 0000000270 00000 n 0000000424 00000 n 0000000578 00000 n 0000000732 00000 n 0000000886 00000 n 0000001040 00000 n 0000001194 00000 n 0000001349 00000 n 0000001504 00000 n 0000001659 00000 n 0000001814 00000 n 0000001969 00000 n 0000002066 00000 n 0000002166 00000 n 0000002263 00000 n 0000002360 00000 n 0000002457 00000 n 0000002554 00000 n 0000002651 00000 n 0000002748 00000 n 0000002845 00000 n 0000002942 00000 n 0000003039 00000 n trailer << /Info 2 0 R /Root 1 0 R /Size 27 /ID [<21f7a6fb083dab8e29743918a08bfa31><31415926535897932384626433832795>] >> startxref 3132 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-force-1.8.2.out0000644000064100006410000000014313247541377021151 0ustar ejbejbversion: 1.8 extension level: 2 << /ADBE << /BaseVersion /1.8 /ExtensionLevel 2 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/enc-XI-R6,V5,U=view,O=master.pdf0000644000064100006410000003646613247541377021040 0ustar ejbejb%PDF-1.7 % 65 0 obj <> endobj 72 0 obj <>/Encrypt 66 0 R/Filter/FlateDecode/ID[<7F25422CE0BDE941BB4347FD74E2B041><1AB34F6D5AC06C418AB2215462919056>]/Index[65 23]/Info 64 0 R/Length 60/Prev 15331/Root 67 0 R/Size 88/Type/XRef/W[1 2 1]>>stream hbbd``b`Z"@q!$. @?E*qW  endstream endobj startxref 0 %%EOF 87 0 obj <>stream YPv9>>>/Filter/Standard/Length 256/O(=M6PŖ |>`-֗37]cA_s\\w)/OE(?"|E H1^q#Z)/P -3076/Perms(qV0~;)/R 6/StmF/StdCF/StrF/StdCF/U(/wPz1\rCbaf+c+Ө{юikp^_)/UE(Ph%DEJV;h)/V 5>> endobj 67 0 obj <>>>/Metadata 59 0 R/Outlines 75 0 R/PageLabels<>2<>7<yYTnpq)>>9<>11<>12<>15<>19<E%|%L)>>20<>22<>23<>29<>]>>/PageMode/UseOutlines/Pages 63 0 R/Type/Catalog>> endobj 68 0 obj <>/ProcSet 74 0 R>>/Rotate 0/Type/Page>> endobj 69 0 obj <>stream TlZ'Zzɝ;H hiZʁPn"厇:M=o:\[i* fAۨ$uFZSYtI0U,?[tx}]}*LB1J6B endstream endobj 70 0 obj <>stream ۭC׻yto HVe68X*' AQ x)S@B 7[ LJļr_ UK endstream endobj 71 0 obj <>stream i{ EPZ3̙KD8{)ϡ߻3~x t`("r!!3HjNM_UuD{S0)腭HE,!^;ܖO ʷ>>?K*)+ ,+.jɤ㭁!aCK#֢+.Nh/ݯOCa|i{)̿N-Bؽ4kzbrfSPoV3wn3? bi䱝3P#NfCavp\r]Pk(E\U=O-Ttxd@["Ń@2IM% 5@FR@"~ʤ͎GH 1#*̗"DJuEIxqNvH,4?,ʕĚ@`_7z4kI Q4х7 pf?« endstream endobj 1 0 obj <>/ProcSet 74 0 R>>/Rotate 0/Type/Page>> endobj 2 0 obj <>stream (i ePE.qJApUoU- 0јv.A@*p'oO:>σVDZj.1 endstream endobj 3 0 obj <>/ProcSet 74 0 R>>/Rotate 0/Type/Page>> endobj 4 0 obj <>stream fsNKqY08:hӑrbgxژ OOWECώ0&-v'AeJLg# endstream endobj 5 0 obj <>/ProcSet 74 0 R>>/Rotate 0/Type/Page>> endobj 6 0 obj <>stream X7d<b|<8GM4vb_̄$M|6Z)0s3 %^=7? endstream endobj 7 0 obj <>/ProcSet 74 0 R>>/Rotate 0/Type/Page>> endobj 8 0 obj <>stream [G} 9v [?d_ßT}EXF(ed{DBS"cdG߄Ht endstream endobj 9 0 obj <>/ProcSet 74 0 R>>/Rotate 0/Type/Page>> endobj 10 0 obj <>stream ZGhLB0m.Qсκx)I,?̳b)OAlTh kր0]F{a-A'f endstream endobj 11 0 obj <>/ProcSet 74 0 R>>/Rotate 0/Type/Page>> endobj 12 0 obj <>stream 8k/ ~@m/MU'(H wҀ|h=C8%)@^c#[=]ع<*e&b@ endstream endobj 13 0 obj <>/ProcSet 74 0 R>>/Rotate 0/Type/Page>> endobj 14 0 obj <>stream L<{Z"3.fe$vQ13: @LH9rW>yoD-y ~LE endstream endobj 15 0 obj <>/ProcSet 74 0 R>>/Rotate 0/Type/Page>> endobj 16 0 obj <>stream 5@R)$qlf nL2]9~&6e2k)'UDp:~IQXWJ;A-DfE6ӺaQP endstream endobj 17 0 obj <>/ProcSet 74 0 R>>/Rotate 0/Type/Page>> endobj 18 0 obj <>stream wѽEcUʼB+ #g1m%!Bx>/ProcSet 74 0 R>>/Rotate 0/Type/Page>> endobj 20 0 obj <>stream gݭLV27P߄j4@Փe"W޶baL٧k &nWUk%J(jb䥓 endstream endobj 21 0 obj <>/ProcSet 74 0 R>>/Rotate 0/Type/Page>> endobj 22 0 obj <>stream i5qPWI+JIJg ѯvD8Oߔ?ɰ%\[3B^H:sM^+CRl X? endstream endobj 23 0 obj <>/ProcSet 74 0 R>>/Rotate 0/Type/Page>> endobj 24 0 obj <>stream -Ꙇ{ "ak 'D[B mˆjMvoRp5ۛZF& endstream endobj 25 0 obj <>/ProcSet 74 0 R>>/Rotate 0/Type/Page>> endobj 26 0 obj <>stream xdيI1i7ԱIm:=Z0u*:ҒSp l=< endstream endobj 27 0 obj <>/ProcSet 74 0 R>>/Rotate 0/Type/Page>> endobj 28 0 obj <>stream \, }#3 'OC*(w8=loq)o1{=j^*kwW]h~U"ƍX endstream endobj 29 0 obj <>/ProcSet 74 0 R>>/Rotate 0/Type/Page>> endobj 30 0 obj <>stream =I} C4+KVlh¡{XYs [D҈lE|1x`~{ˡ]}#{d0_ƶ endstream endobj 31 0 obj <>/ProcSet 74 0 R>>/Rotate 0/Type/Page>> endobj 32 0 obj <>stream 0Πll!E}*oZ4z|-.ai2usX\,o+'$HBj9JZ`fXb#Yo\_ Ǯ endstream endobj 33 0 obj <>/ProcSet 74 0 R>>/Rotate 0/Type/Page>> endobj 34 0 obj <>stream mT uyuQ{Q8xcLyOdSOyq `ctdNzt* endstream endobj 35 0 obj <>/ProcSet 74 0 R>>/Rotate 0/Type/Page>> endobj 36 0 obj <>stream T(NJr@!*4켉\-ٚ̀Ǖ[sp~uu 2" KՃ> CrR endstream endobj 37 0 obj <>/ProcSet 74 0 R>>/Rotate 0/Type/Page>> endobj 38 0 obj <>stream O2ق 9{G O' L3cڱmA팩}:IJn%J.Ll(q>.(n 2`J endstream endobj 39 0 obj <>/ProcSet 74 0 R>>/Rotate 0/Type/Page>> endobj 40 0 obj <>stream akG5)~!34+Gcy/e#d '6 ݓīQ$Փcr AsgyZO 2b endstream endobj 41 0 obj <>/ProcSet 74 0 R>>/Rotate 0/Type/Page>> endobj 42 0 obj <>stream TD]٩֓ؼ,Ex}d /i*RNv`I{v:gvzM"d<'< y endstream endobj 43 0 obj <>/ProcSet 74 0 R>>/Rotate 0/Type/Page>> endobj 44 0 obj <>stream E"2 TJ')DO!O/QSPHs/Ůߪ^ORq,%> eD8 endstream endobj 45 0 obj <>/ProcSet 74 0 R>>/Rotate 0/Type/Page>> endobj 46 0 obj <>stream yen#;Y#&iySId+*Y=wU12agBПGYh+1΂}j endstream endobj 47 0 obj <>/ProcSet 74 0 R>>/Rotate 0/Type/Page>> endobj 48 0 obj <>stream SӢPV]ͯ7%V.Uk sf4X̿0}@MsNSPOt x|lQu۩2 endstream endobj 49 0 obj <>/ProcSet 74 0 R>>/Rotate 0/Type/Page>> endobj 50 0 obj <>stream m`mnb !y}unw\-Au.'h5Rhq Ebhd!V;c-̬y܋zI endstream endobj 51 0 obj <>/ProcSet 74 0 R>>/Rotate 0/Type/Page>> endobj 52 0 obj <>stream ss2&|7F}bil57NzioUL>e1&qmu>ƺUG 0>{, endstream endobj 53 0 obj <>/ProcSet 74 0 R>>/Rotate 0/Type/Page>> endobj 54 0 obj <>stream і,vh>ϔ 4'WwolFmR!ݰ~6g="(zf>/ProcSet 74 0 R>>/Rotate 0/Type/Page>> endobj 56 0 obj <>stream lEH@.b/=b|.݃DigҊA `Jtճ%/im>; 7vP% endstream endobj 57 0 obj <>/ProcSet 74 0 R>>/Rotate 0/Type/Page>> endobj 58 0 obj <>stream Щ;r48g<Mcj"DNnzёKyTmyBF¾#Fٶ2r% endstream endobj 59 0 obj <>stream )x1RᕯZ ҙ6J]=RyQs*2]6A'.VZqI2Unk=3šfm^!|:cO}ɻ% й4I` 6أĊrD 8c<ͤVWPXZ+.`vT՛?ZPwB=Ϸl.>DX}G`iXKY(ûOFDOZHO NE`GP`a G3 s\;YqH*Pbp'&򾞵, LwriODwW>f kt^6F6:G.HQ#MmP"Mx>|+XؕI;veṟ`\I)XgQbr` qo& fLO]˲~99l_F3w|V-Z:73w8 g:՜f!rPnV\,0&kuS$`\^b!%&j| zVZ9iGTC TbqZE2 vys`f Jm܇h[mS2ji`aM=rr@L s:?MYL +󄩬:cF2Tu!!Tb3^e׮Iϭ%߹ZZFd;5cn@d8B‡X G";=͂BHi:I)jH~ ]aWG)A(`Epˏ%?KEui0p,U[0+ @s k1qRխG-bȤۯsz[sV3^+jYXtJ#tP0 ٬r0z1 N귄gҌNaåaX5_c/SmQ|wgrrxn3*ȃ <1ƞ I)_+2qFroO39uol [)Od?[ ^sgn;#7dJ+lmLyg67fA`,vW!yv뀤ђ~- 7|gL3z:dMT.m؊о訧 uD\\4mBOsxݖ!3RfuvoJ$uƞ"HJ81䔿s9fX%,0X>5HJī_tעQ%{\A/<2 hgj~|]x vԓ#*@L>?-7;m)sE`Ր5"!n~E )s^ Z&/C)ȕ./A1t!d V%C+ v$n|Ew Et%/ KcCo7h A !lX[+)1=V -\m""'^ROH,9RXMuG>KdDmk'OW Fu9KG0=ֵ}UkjS4xcVɧk³hS JfA!}*i7Ig)ZuD|]JTX]-pz!,Xm=) C,6Vy UR a+/ 4 3;e8e:2ìŖ^&!HP^%&7À@6=nkJx %0XzPRGVI%,iYh1<E8"_W NK#6Qvߝrm%h;DHPCB<xĵ_~C7(YbĪ}!voNB_MI2.m%wk˜^b)RmXK W`}U`lXǀz&i`^wwRh^Qњ8~9f+,8`&Z 6qZf`,[2kBFi1[)o.YNe/S8f#|6>WaVkqc6!v-hzۦ tW1ۤNLIǛi!xLaM7.(wZ2ټ^/Q{n*@q"AO~)wb˘kگܨޞ )lET#_SoC`Jl|/]sHG05w 4SwAcnY¸!]Q-Th yjqbD6OvF}DFsh n[kQjU !V2}xϵ5ԤGj.PX U=֥t>ᵀ]&HX&Y;l%g9=1+K9t;J' z{VɋC xg#"Q6wtM=k 83T{N69;&ÂH)!WڍjЗEP#+MzʀWpeYe\7{ae1"%as<ߩyW#;/'$ .߶raz^?Z\M h&|T8>3l-IXa8™?2<<:}㈑h9 0v2"4Wqna endstream endobj 60 0 obj <>stream 0?Fh =;=0;XVn8 endstream endobj 61 0 obj <>stream p9}~cƯ: ~(=ME1h9]xy$](#GVXw7WͰ]ijW %r*:w]?@ endstream endobj 62 0 obj <>/Encrypt 66 0 R/Filter/FlateDecode/ID[<7F25422CE0BDE941BB4347FD74E2B041><1AB34F6D5AC06C418AB2215462919056>]/Info 64 0 R/Length 69/Root 67 0 R/Size 65/Type/XRef/W[1 2 0]>>stream hbb```bdb`8A3idzOҌ@&Z搣Heb<  & endstream endobj startxref 116 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.3-ogen.check0000644000064100006410000000026213247541377020417 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/good10.out0000644000064100006410000000046513247541377015421 0ustar ejbejb/QTest is direct and has type array (8) /QTest is an array with 7 items item 0 is direct item 1 is direct item 2 is indirect item 3 is direct item 4 is direct item 5 is direct item 6 is direct unparse: [ 1 (2) 8 0 R 0.0 -0.0 0. -0. ] unparseResolved: [ 1 (2) 8 0 R 0.0 -0.0 0. -0. ] test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/damaged-stream.pdf0000644000064100006410000022750313247541377017151 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Other 5 0 R /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj << /Filter /LZWDecode /Length 76755 >> stream bX 7vDTO/S?yv/ڬ* Qç\ڛ2@J"#s`x2[]<,H9{a/ni,3_90oB_@ BH@FW|e淊"$ڿo''TgyTR<.|yb ]kD@+{slqN+9]\$}xCΛ%{XXmVbkfٵĩzOO[!y(7[RcWJ_/LY^.6Je>YNJ$?`>WH\7G" [ѱta.DuԺtpFK_{(j;@-> as*ƅN'd޿' Frr߷@޽s4QkJ ߴҕZ\3#=}8SXr;-|.UaISŷf"ן& ӣxnGv~ JWCx  02<waԅPoSu*;/n:Y~9N!sdkKTOp:DNfGꅗm,:&sc{Juim9qD>ɱ9ز\is* OY\0oS^ňY~[24 BH~+lD2Hv}oV*d[i8_&Cy{#Hxvf %.Zm8YyFCN Ɠ*Lګ+|KJ9ש'2gf9FjO\U4,@*~]n" R"S: ^㉇ {1G LTt#xmOI!ybha4EU1Z(1~mߐA+2( 'Yѕqؾ,ye?#͆-] gLa':/db,@d;}a]hg(v߂S@OM?EļC"&~|8\cٓp A&`8Dai00"RppM26h S8 )8T=-N5:@ɣi-v3:/rrʅ h~-$z X ؊҉2S XAaoflXă]|0x@<<ܲFv(SI[qJw3f7DS #m> I^yJ2O mo2s(H{2U$Zr9&}O:O;,rix$0xWlJ>\sgPԫ>,e>NQ}njr%?as->:RƵ&5,g65z**AseP٭Ix^ܚl)Ǚ LbwMQx:oO<ϔ4?%Wd{ j';N4`f0R1ж%3mfE ywӮ g@Rw/oH'۰B6L8vi:w1#iM݀Z;t%FRtyV(u̫͂W;`eKG!pU16Qs2ujc| Y=@#;s[RrӗFQ+RH,+u4L6^>!=RLJ!Ulmm5#]E* i<)f`u]vEڃj5Ky.Y`peD 5z%i RԁrhCNW>uFb#!P~li&g1YCkuDXZP<`9rzK?^}>H2^6xΧyᄂ 6Gt`ΰejZ;kakNr?4ʶ<;xB|pi'/WnYjEdN0s:JLI`6I=~Ƽ\T`Ḁy>yӾ >GPL|.= nř?+7xw8h/筟`R#x&-;fU04诿x۾|)o3g`FBOԅpdTé`;| "uDa$dӯ9x^0/xDnOntO.ptsᆓǔXظ@"~3^tkO|Y`0sdJ1j #GQ~+Et,)@ޡv&'%4u^a6,3wZ6@JjR|7hLG; N>ɓ[{Gh-$(' 6w)wI:$e8ãa@m`{gV߻s,/0#^0ϐ"^N!ј a_JC!:V<aT]cߝ}L.Va<%ɤNnɶC$*Evk"7ָ){_ rI ' OzJX2+ǑJU Q޴k&jNs{7 ;t-OpJpQ)å\UG9b(ӤA_OFz"k\٬b|ݟ|[tܳHDO;## |l<$7(w)voׁY~aOQ \[ǝD|P할Wֻ2^ʺ tRe7O\ -G"Jߴ>9fVSJmU eMJ/.[+9TU.VԌ<# [ujQNւKj$^E-{ ^SpDvJHR*2|zjfE72Il\q;%39#,Ґءڬ@`'sI` tvZ-rgG_E O^Pe4q3[$]_4"_ f0QS6ˎKJ~@P oo;09*[WSġrN \y2{I;TO1 }hk+;aGwu/JIC> Ċ0sw|y&G+e#$&=Wvr) wu k8Sm*xfs" g=5O]~\u5 CUCX-ѯ A NxLn&~t/Q/IDd|A GTlSR٧&{i+sA_kjG!B5~-TH9Q]g4i*~ e_< -_+yRêK@0۵FTA%' qr F#|aipy  7jE\)D[* LvձUHUP.X:I `.Š!&ʔ-`7L ..aBb3uRR_.TwDD#WrߣL*(g[dl3iGQM6g@̼I=Rp":Tyʟp\W%E-& ^]HL aT چ.󧧇 3fN0#^n07QL JcCF:q OY"~!-|V"NϦplf'8t-oдFlzر؉Rs2Kdᅸ' ޾Tk¥vMl¹nq%Խ)!B{gxR41Omg@gȹߕ yg:KmS(]Rcؙ`C/%؜r)X~2+S4u2cIr/m\g0S|'"5q8]h [JNQz|c$f`<%:$= I XE%ce{QʙR[ ,pD]`GV:ʎKpdz|"@HϠk;\GJy^ظ Av#:,mw0dCkpB|#U\ё *[7t?K5@ybyds C 8 <7uzgSy /h{S9ŷYQ>1hobNJK-܍[6{Uo `5^pUg /Q f3Y(q8hSNjL ɼU/kB ;䫇Z5 ‹0Fk;W@L̟vuM7gp)Qo,f}M>i&m1+OY(4DFbJ|RDnjA;D ;-RQ#УZb)fԫQU.";IBEa(ikX&Cv4T6O(4He^#S뜂?x6 8$ U=1ED4 |2 I@{i]6!f/P+BOSeճVqle !OBjE'"Ӛ?}guAbMi M97f/Vxo̲|HJ $tLZqg?uxxək8\[/B `|@dt-RkYf BslFe\M&veAv}b_PO}n#=nhZ|VUˋ]aJ (tّUV%I sR!-ڐ?ۢzmR)+^ Ma:jx[V^ $#zG*ScmBq3Rx9#Kц9Zf; =H&Rqc%DG=H iųDsMeLP.&X$Lk~hxŠ8( Q]5v-JdC< %奎0߯_!O+=KTUfo9 (E%tQuy=:( ULck2>}nޭ^i2k` \92/'@1<3;<7:D9p^q(t3_\=†S zv*_Z.gMlT.LQNceEmcѤPщ#rkGj\*Ub 5~wGx!],! \Y1ϫ 4nMU+Mlʥd>wЊ)uI E' <|m^=~=[1+MD]OӅ6Ζ#Dz|sym)J]dݎNبNm&Zgcs)CޜO wcz0Y45z9EPۍNmilpТ(t._Ɛ{ظH aڅjm !Nde.#b:o%Z*@jEU5HWfV 7J"kP1`ơ{NUfqmZh(}[½Ƌ8@}+}dž4Ѓݪ)7P$#-kO&?>XM ="q:Iq*&&%\l qVXj ]h?SmV">k9Nc m'2f<Oxޤ!"A]uà()#+/ւ" >m%Gm1Ygߒ )=hL+ {ۍ/Qd垐Mʉs+9(g1oWu:o;9G/Ԍo++E93b15rq*Ixo:'.016!sNk>B&_^dT?9;/- /ReX ɞy7ZU-.o>ZKMuoȯռ|0,Ы"R=Z,A|A?2u xLvEUӤ!"( 3poEϸԗNԱD K;&tSܯWil1>'zV~f z4fEpKuBeQh$S{e?Ԉ(BnJ}NU66~=| V ;pN^B=CdEu1{]^ 9eIPa:0H$¹7l-CRAψ/6Ae!فTt;NŜDKY uSE2yqdvV5C >(5ZMu7(qn*. b]'yGJxpĸ_7,Q9$,[)X@?J+xn"̕0DH3p`ViqK8\ueИ{I:ymrIf#+Sb^nyjre ˩'`_V0bdlRZAyDd<ɽX -`d-㈀?Y&AsG= 퀕-ֳ~;R/I[vϵaoఴnGF7f\KwcRZ _qu4FFKe$ԝC*zHAoX;EhC #K E`[jMciWL@s4P "XbߢJ9F$%QxiD@'5&]]_1. 5(Lk oCƏ ФN0(9({ M&Ќ|~Sʻ4ʃWV;:1Dq\^Qm *7 ']l0Q7\GsB--V[`bʅ4k0"в#sF(L&au=09 D>*iin~GCxbxih5pOO+5 Uݷ4=4JrVNj<-:[V$Iq d)WV d M,GֳÕVO[}6O*FS"8suS~hGq; < i\#2Dcyzx\ $ŒzNih% 1&̺^xflaLe[)>|^BY8d+XsojiaIy.qJ**T2m}!(K 2}vX(ZB1jA-1`&9M07Rv X˭A3GCjj\in4W'Ip39DGxH2HЂ,MAm)g7|'Q<8̈2&0;-nѳN520ƜATMCw૪@LdMYTF?˭f:}QRTß\.3Oυ͌j +DUA<hdH`@×:Z7fф?.ZsixuQ tPU e7U(-p$%GxE rN[q=M^@y& XUp5vŢ4B]^A3Wst:Ou׋z5h. <{OpZz=0R 4 /g/cߵ~"b`ll`HSɛU`Ї $|5]Al m@jdkl$Nk sBINw\ir8ƫBVᑯy\M L5]GlS4lGĂ(l|̉+;Ũ=CwV^c. `h֊l/[[W ?=(&2B4Iu [jqp+0@|#:hoCEYú@9Z-uN:8:#./_s ֻX[vTY_6Ō%WsƬr[*О,/VBV"H1GNPnGWo̠loR Xnh6bcyFO@bs+qCl_eGIhhx1.,vf).Q"3\\П]~ȣO7mY5Η@*D5.ypLi.8$vriF7'L+9ilmTJ!r@s)q3HCW돉I)@)ܩ!( l+$f¤eW{+)dS0Փ5p`: Q ER0XBy1ESxdvT)v?1z_FvR2TnI+]s9n&"i{3wJNM Ry(pow@/@}$㲖~*;x^=lQ9^f Ah+)_⊥ū07Ɗ_K9z8^fRY6tcQo4҅b*>0L +>B{5$rFk 6_I,"rX|=PVb[ǂ^t**&d Vז6u 8qHTDsPҪ{ !Fc7h_viWnyaIk&7UQvXYh^i%ST/r/ 0Cݣ F#] .rY@N$mJ@STmU~b`׸h{J^2y\ًJe|6{v [qC%|YAж vz!mfj")<€f(ui[¾TIZ1Fx1=e|˺T$ʹ5f֖_g~'stJj _lC(s0%$n]| - bV:Xn- ͡,ճg«;IXL4qmHFm"zc9/=$rGhoHPxlm#p'7e#}^nvԿxmOPM?]8>g26V`9Bl"/ʪ/+B|dTM㓄/> 6/ڨf tL?Rv%\hq%-u=xѴp R|hoުJa)${"xO`{D >QߜƇ+]Jf6tKXs}JF&\R8Y((p;*ɀrF% d@1C3ceā J_m"ZEp&z8-'0|FM'P!NfXdr0qbEA"3!˧ RẖMhPE^|kRqD 鱐yme뀷!25r9bHn@w'yR;:<~qS4. ^ֶ{MC{#npGÆk,c2v?bH'혼_BB𤑗#ƐͽTnXWREЂk{K1.fZO/.8z.9_-ANd̃ o'0p==oAؓe7/bxc/}w7~?B陋}$iI$&dBr<07pyd޳1M!f?.(At+騗:{ (LABFH)hvkV{S4{e;;mYfz%Hfn>|[hΌX!~grթBł_'窑cw6CJŽwJ[ql^akO1Ȗm ;tM2dzr5 FZyJ JIYӨ¾7_u옌 5W,y?A+O?1A;Ԭ;+B! ')LpI۲׋C @I.ړGHJJIz ‹ݎ: B5LQTBPzqg F` t$9_ <•2sjkaq2 (^gjhwltغGLy~m&n!۽-sDS){8X\i )DObv3@Kl}(+iTT ۘ{(~Tswyih8fH#(>I :ׂXkj [XpC?^a(J{y쇯b)F }EgF.(;*E& ,$No uqh<ȴvoӱ=]҉4Xȃ>Փp{W~\׵K{$)N:C}|>nD108*oP8h:B烢05P 61)9Y5E-+*"%g.Po8(#"x1o&ז߼)31-%MI3mhJ D2cVA]m錖$v0͌;Br0k;^q|V2Sd bOYJ49w}81 f ̃ۊN"dВ֖J/N/BHT5T TKf!2DZ*~?}!Y \V ͌h_P9.~7EC@GRrP ~4GX_}p`/ݸ` ԍ#CM?/9mY /~cvns[Y|.UV;lǧ`rWh(Ъ\NvZs5zM/]B_ x=u8aTsdlr7mРC_f",o$r CJ $@b{j*7fHt%|=6)O(k'/gMy<(8=E1@C{ ȭ[yZ qAU;ǀ^{'cKc_ƭ_ >N}іဝQ-NN($ _i>ϝA6YrнktHO8Eb9g3{+6{­ږ@F>}R%JÕ@-NE/cv_@B8^A?0mp]-"Ϻ9ʩ? |8v #z}j< OrV@wR&&&ÛTKj@r-l'hr6oDjҪTC -] ^#HU<!pA&m ׺[#dĖ;WL>ry6O`߲M\~^BuóxV$IC~  F ٨jzta9gX@ӻ6+ܥql}Qj׬|ʐ+iٝBɬNݏ*2]lOu ]Nڂ58qL(!A=|`lMV&J˦V%%s+x6ׇڝpaY.*j]Y3^ifZ&x[]kldbp+))y5D|o:PAF_v86ݹ(qa GB-rVC^c1+^]*) m7A9evwveUae3|ץlKoUmBKɰ dnecqݨ/jQ.](`<41 9Q[faC,y]+~Q@tg_F<_@nzwRkX=}/LczU֤eD(x}S,l5PYcVٛudȬXuJF)54kNFH7iKD:@Ah{1m\.="_ԟN#TYu6UU-BEY1H^=ՇNkI5Ih^3 xe(xȉN:HMz͘C̕\Z)A*Qk-f1/cQq\VWW";̆U< [{ ?i7 뻫gyQ& &Nz Ǿ4p*\/U̶/]k! H*o2B8&=sPzXnl2`CP+kNtˌWFA!gbٙSEL'h!Gq;¿B{]?N _DDi'\U)ÅU|tڲ}u5*S_]qiHR-?;iТ!U(NnrSvtT'YhՓNy9?m<{?`:"%XT7"Z<aR՝Ǽ,YCӃ9}o|~ћD;x`Xqw-DJЄ&ȿ5n` ď%6K5# i:1\z(:Ttu92.>޻MLK<4Er#Z2\>~HS}FNWSd:IRLHk;/#<0RDw3L/59\'NO/+Zns#KOX|ݚ(cT `wZ9#u'3/HdhILKłSdؗiLAj6ܽn#b/Le'\0I;f(X.#$1g~H$ro2Ki"YWGT z:H&뚩wK8v.U@g~n7z?QPu|) ;߸a>.).yfhSګ Zt~_k]r!`9k2||˦cbn~'p>Ȁݠo> W/n?b;rQ&[/ Kki)~ SI&872O)0m62?]0#,r/Զ\$e$Hp 1}{*r>+ZқqJŷ *{}m%yyh (&;g*"$BebFO3ȇ5]E)m@W"] |vs٪wPgAs-:nIF ۣLұU` ]:̪^$NL;1x˼ w!(qA+?nwR"eZ筥Vo(b\iex--F/hB;n۰WHf-֜M3wJM /0жDfQ^CpfaTG Nhc"4z{ړz:i6 tbkxՍTYˊ 1|,ifeW{,\rByJFF^%= 힀BEBT._6^m ͬg8hTl'6ړ短{5뻲Dzl!d"U=|V9c3+l 8l!WF5Ma/Ju#Wj'3B˞+'gK~?hx$5Jqz9=P#o!-QGJzi++,!nle;d?Jb_@bU Ih0x>@c|Ar{ӻ" 'DW=|Xc^Kad7,mrsds`_+/7K!q^>,Sl͜gP c9|1JN#K*poäN K2LBOPhŞv[S er:JѝlrK*j;b$̐ C\"c<|k%dakV?ZA[`!q^A4⑶/j,,n‰E%iB2-a܅C­gvrǿ-sR|7eH"t`i T-F3[I 6QNj\壺\@eFXO@2lưTxXpD^hp}ٙFI nzOh`Fl[mFpiµNr)PAcH w u,Wً3r ٨ *ߝ ܡ%rLO}.PeCJO$JFtCAϚ TxMmG\ P}書=h7Š5B^+¦CW$7+Lss>Y?.p]uv]@=\f>=T}S3>uS+F6FFN\7ss݀0Mt_On+\"xJP:l/iiHjt&xpDBJ:EgEЉI8:j28#Gpۨ){ڝI]q:%Xnjw5p0tLʑ7,f`ۡ0Qh//~:,=_`{R6JY.t`L[iGFWѮ O`;v)qL{w]b oݔ&'} ^4 i l H1H,y\V[dj s LMu'dϗZ q ZeE`C7܍L2b(]u7q"̡f{[O%@#z}]bک ?i~dzbMIEoIZPȧ[-ލǺ|I+Al484b"NO1ql!xĸwL#ָo 3Ra5_-5UIe(eij#fd CkʒfB1\6lp+s<{Ҹ0"Yul8Ra>\>}`?TTvFv)-6cT:MtwESlUvR1|_3tm*5 SxZF%*SR^p  ڂގwNqy]a0%@/IM͸3E +o,?ՙ4{n(jd-1Lvbz;IꨕVjْo~ l]<4;$$SOk0y  kܝ;%dhxn5=tu܅5Y#~ފ8 $e* 9>žKB=ԛV.Ċ"% X>ݗ׭%"+$rT,QB,#N05xr^Y̭DJj O'":"xpq`x?JSEGNgܱxIiߐj{H樍kMY(q%ad)"lEzd`'b.cSa '$B[#n }ve]/?;[$xaSZ9 )yxpm6DŽnsѯ@tRj0c9ݶ\"wjz:tҐ'{>PrYCF}P6fcQ-9c!`prTkPF dh]+";OCYTEEp^vV.;aԯw02on,$ @֡(ї 4s&&ˢʒa6ۖ^w\8i@ļfԔqœj8TkDS1g _ET@Re !Y||Tز;B7Iro?_ p7`}p6ގZ\aL~IvDAͤג*q2(6N9zf;T@ȯ|K%һb~6I`A2[K&7*b:*> :4W-xd%6(^Hx):9o)jce_^(ՓU؍BkT|?sbPV\Ek7f{w)E^x*𯝡ݯ!=L"!=(*KD@ f"jA+!^0 M$ ڛwr\lZփc0ӅtW]0WބG%up`B[x KS_ /`r/Q㷤7Y1Y 3 !"5H jl$8؛p H0[bpQV ~9*seN)9R|n0Pbl52/( UBgsY" }]2&ѝxBy2"HKG.MW)) ]kapV3x-mVj}?.9cav*Y ?TS QLp[8N2悙_ m{1\irlxCW>BL 4k< mƄ}-҄ \ (1 mL5@i\5չ8C @C%LlͰj6tigǻ8q%C.C\It,9śs#~DA&HEÔyZSYꨏa$ t<h>%b A맍xU&oxa/%Z]/>"8q,DRy i,p]J!A?6Ն%D!6N6ZIn&Jԏ EIo,H V~H}2=&2驺Ag:nuBgȒScr:dAFSNhnl'گLP,]{BSCaV) e77;N3C‚A, 8xg,[\[v7QIa| T3 DCK%y" N:j!{|l~ Ry&),lF!m4 @1ɍ[tqw^g-nzdܫfY-X(K-[z:`vHOwl>x`{ 輜mđQ璝4%^1O8` y)_,W(+:+Ȼr>};_"ܞKcoY`˕.x:a`NpԬrVlxjÇ($:|LRJS`WnAV{:8$FRx `J6 6A}x $Udmr,<+PM1MKf8kPzk&jS^tAC/i=K~tg6ܡW3_M?*-h% ]>Mɚn'Es9u!cH߈XFatpޘ>AO5p~mFf'gE8D]-YRD߶LyȰTj+e5شmqE[~WKU"}@n{VISvx<o>t 엧%Q@rY*oDS?FG,ML/JLݖQ*G. SAd )K˨wt=M{m @$K!i#@a'Z"ƏC}V[S[@ yĔxHv^8RZ`XIĤ#ڶV+I\h#:[+ySFpJwJp$`LjVPUמ?bk1i JHlmb4t('R}bR{^T=k)-42OgwW):A?R$hƐYH`2e'N/pSɞ[q)x "|Cd>@5>׳O|L]sv㏌%80Ska/kI7chcvehYqvqd>N+z- 5N} /Й+4, -Ϲ2m;<+'H8ѬXXڈ](`qǩe%W>ڳPSAuD**I3n->6O!^{ͬJ꺎~.=.~E`GW#~ IzߦErUciWyk/\y1gߘy6ŗ< zB>["bVT~\x|7RzDfegfr;xDY~4om`%$1*Kr61iE "Fbzqikೝ$KkQB]1 x~oYUA\+nkz#`V`[(ۑ̵6KĀVfy D%!X0DM<]Oj³ ~R 6EFb/8LfgR@"E M2#?(ѢIC C)A`:[0!Qla{Do]u^1Y~,{5Eר=Qj[{ʟ_?a9>W 璉fI;נDʊq,&8,?,Q)⾯x}P$cI‚RP~`쵋CywCIEֶ6JSͥȀ~- ٙ@fj-Hޔv[`PKox//#؝G5Ԋ$[}F̃sF^NQZEW"K<[n4r2>v;FM;R(3=5\0Mb ؅388ς ǡI) iO}@Mz=nirLF^-ּ(pGL8/ su*x8b 2A iS0.&&r`NO#8B$bʑ^&u|7L.tDXw"ҮhzHyW(ҸDwg"fU|j1 P=0x2m/:vi' ;٦=-\afNߑ[ $ &vĤޥC9ĭp^k~ JXnW H zϞQd٘]f'v&{Z a%oB7ھAH\"TRe ɴ.lkLJl,3$-ܰ,>;dӘqwncU5&5,6eKJplČiDUrO[3J֥pS>=s~b r?/騨AY6jC:71[eWHl pڼtlK,(@8!7k%?LvdKpn~(UVGtn 6І@ C4q#hq}"n} aR UK01VN` m*cʷ4+ӮպJbkgb $n}+F35 ە-h>c?.1jHYS9p&A/¶{]gg"Ð|T7pEE~hؓe;*rnΊя`G2ᬬUxϝ l5ai"3\gE I i8cr}",2#tMdzEaH10^ISza.r UI$3Zy ʾJylwB?gh5 u_c/Q)<:,p$fRBYGG.$AD^Lfz \ghVZ ^4J_`mR`&a` ƵPgͱ+ \r |K oߊSkWrikfأFحu t"ȆG%c,)P=PzC)qgb7h@P:cit؎nd\@fNb!_Y t L81*,n[0-a=3YYids>e";xɡm=Z=P p&ok2DSr RÃ,NqSڏkk$")r3<*`@rGD*$WdX烥_e6:eͩ=-hL]SP7qՙKa!hy.zDL}w.>o S VkDx*>߅V4@_,~{<6[s;٘ס1Wع<ZdM F*{KR{dJ-:bC`E 5vGlOpEvU>*TNk 3g" Kݜ|dܽEuT­f匳4l#/5~:3'xy⌟ƕ9_n vM!ܛ{oΎV%L b{;samR%3fIG+d&%.HvƑ zt}EMn.,Mع'i 0)*W?Kogn@[[fpo+v/ nA+@*وV{Dž2OmI}4#Cl>w3."Ŗi+ yMLHN3=E:~6\.le#Y=.dr4!0@b= 7TsVfuu*gu.)w__ c8 蹎AXM[r.~eKY;/GE$Wv?7h)O6ntG{B K'sR(S U7X㈛r`GOmpNZov. Ʈ߃µLwvFJW9weG׿U5%/ pAD$kd.56 Hs3;2h?ONi%:=ZJ睕/h3FV6{~"2_|+%g:n7RJ2 ~zT뱢{i5qh QV( #jOxةP8m 9k.D7@76up7= Oh M̋v#T?'$qF &_5Oe3 lǒr, hMxME;RGKry|+ICY|kh2hR}@mUiMH!JP:s&"?mw-е&;36czG 3yvyHn,Nִd[Ӫ9S/4sutJ@1" #q^JƓd\*5*1r-ԂHFT]ScցM{8~ȕDG@νť"G[+ɵ PC굋.& Gt#]Qn$(ox j WZN#n͡EVb)JzBY8O*e?QIfrz0ӓT(!vuaKVdIEy\n1W&{x~i& FK)g<-1x x)#P͕>lY d fdaa*o0$d{E0zM''0{N.n&͗qT\]Fch ᢿ(rz~qΥ/!6g@?b,`{^MA~Uo@ =Zޏ sf9eaS]]?Ұ:\r4(z]lۉ9c+u5bsX%0 ft+:b h{ ۅ^5qw ,RIYJٕQmPuٹNDZтq ٨wQvB*:֒qw? t uJߛ`fPդEYz(3LAQXZKb/ 9ax{bzBCB%ݯϱ+fa& ē9 =_e3R*-<.+V( b#ac/ j8zj~c+k)m"jQxjoE5_4k{cCٟHAT}LmJF1;{ Vk /ɒ/V)**}-e\.3u9p!$]6-M$_$; b@ aXCt ekq+ .|38Z q:-%v (ӝk >'f=i䍙߄*q*v_FD$ԘZ>w* !͈pa_Llbr/f;[1 ~v<}'D9@ ]@p8aÜ- i+h"1)urt#4XKHN%uz~2ի?e O{NPٶ)I !O'GX]UʺH6ryEf/r) L`Xa <X@|!кa;"2!;?/1J_Fëϐ犠fZJLX e珄|>o$# /xyD؆>b gT4љA"G*XlߙO!* At+ 9 RoiseR^[eIdX/UnHeY@xAgϽwJKt) EZ>F Qd~]9ڝH'\ ,#[i*r͋mϣUT}͛KUtAZ [ w[ g<-n!Wϒͯ}-}75^w,S^ KV0k?qB`Iz>kb]9:?5v'ec}m$"--kέMʟgnM8ҧjsVr1;t֣m/Kc)DܲFCg;K  Og| JET)z.W/;c R2ٮTpKam&6V k`, xjT0{L4=Ћe~uLvſMsSZ9hl8ⷆ![ .Y|JŸ3G栗SWP7w6C 0֔\{~'ZSoz#ߨdj43 kkӡB6 zB&u>{*suEάx"n|OT2$vQX̢SFWpg`@]CHAmɝ݁'Unz8&ANݙʥ*iÊٌBL&ݽx0(ASD$d96ʜ 781tt4n9ZC/[a $kOB=!pGeeSoKyub/Z3}Nzc?Ի@=Jq՝. >`[2'-']ܟ@eZbWP@J}̞=p'&nwl$t !zn脥~faL4ՐAs A<ƍhsehtL p6Y8="t(6c&w*յZSOX4kVct  h|!~9,HNqRN[tP5gLo"'s}SsrbNp" w)NpǶ])$InNH8N GL"^?\/@*Z0-JK:)Nfwq3&uS`+[ Dž.y7A,Q<WX\<^Vu81$9Á#d;PG.!KB ` |#,BJG*u㿜LέlƜ;p5 \NNk7$^!ּ@g"t3b!z^mQ#^zk1zQjcC #JEB?R}HZr"~T '̏H0\咲3V JySVF9Sn-GG]=tx[ThkK]l;\ǒ@膪GFsPvW e7#9y68@mì↝'>^Ur~%Ioqi>4(-|7H :x5#st}LIY ;XluH>S[dyپ#K8<_5썃v8@#a$Z)LS(i\ P$r|ܣ|IK!4"{Ê38!G/ O^"wtH\ewM.< 2H;E. fpE ? 2 NVNt\H+aQ|Vj֡dk|.CJPq O.xLMո#l% 60qh)p1 (>q*nt.wT$<\(d\']L/'<"(UMs$H2Q OYs+*4:U(oe|2WAN;Q7o $ov"M C.n&R&K8}Rc{/?yݱ;jr-<@hSEݥ#7Tq^*n@^ q+{5^y/Is]g8Gwobzhv4|08n+ $9I{MsQ6NP:-6Od=2lmB.Ĩj^*z_E)2foC #EבܵwuV1^Pb",vjiY8z4x,)i-I*EKO /I˝`Uќ UE >p6B J$u^蚜]t Fmi1?Qï٥w`)B AzIiz4!$nwݪ5 pD9g;BNk6믦@Jo9zvU$u [ҥ { [E ǁD˜=^lzg*8 V0ʳLL0R~72-9NJb: ^O)sM(.D.^(lӮ9 /o ܬL,;D7ǻ#~#cسt/{O4צSk,l-U J{!Y6 Aw@Xݚ s{;N/C,wG81aŧC~?"!BtuIbg3{.3ڳg2[[w뙒d.Zc_RlZ=dk{{Bݐ#E[\#6S9Ps/a\+4ȇSZl2/+5ݩXp9`!J!8_KH3WHS#ýmRo5QVKB ÷k!3 3F)8 Hw(|4 dŲxĞī,NtXIhϤJ]7 3J8iv@PS#ZO_-^>,hz3]+S2uN^&]1XOY &t+j)=66Ioޫ dekcS7)DȻ NMp=*!ӝ^fqW9Q?k9vx$ۍES|u:5 M,y>P*p{%j= R)j! XQ]80!#?@xqEp߸;gQOΏv>`n0Ћ胠tMFQ9Ebwb90H&D-+ uO]O+H=og+sv`<5VǝSaF aOi [POp{'nCɽqnA9NX []l5k^N_v,[[[$uHfw("tVWk<%) 6Pzz">m۳̲$ [!/PmWm!i?Aݯ1A )y//ęߦLȻ ۠Ily(w0:6ۿMMC7@*DYXkeѣf^@xi I2owgǏ4'sacg9ofFf `V͸fŇJPi[h !Z ^y6J9fL hPz$q0U)pJ`Z{?5N#Rȩi{, ME׬C@CP.eX4uAr%%ѩWGgz#!c-ͺyx $32iՠE44e!+N]R Fi}bpK9DP<.ve[dA{6ޡp - A;giƙfIwufޭk꼴s~a.dC1$c:l*lK~^fT1G{db#9u>EFK]pI9(i2bQ`/>U 1#k<Ǭ5|=z!A6Z,evtUx=UaM?f}4uV^F)e=$_t_fu3)ks LĞm>lW|Ū3ayWahBϳt6yf0oo#6 a 0&0 6==sh4'v{ۄ].g07w wEN8^@w\5,llb? *ԭw|> wTwfA7\@5 ώ7(,FRtۨhfuL7\+2~8,^~ݎBwx௅)69g㨸67w5Ǩd{8B!4C DmIQ\mȆwtl$1wՈd; J5jYi֤ h#;ʐ(*;2&t vϥ?j8mCӖ@87 ;gG˸eA|>f׳\Q4ћ[ 4VcX *=μo<#k %K(*So~re 9͆P2hu>Yv+ eַh{q-U.qص' 4Bgq%,.?W*Xib(խL C3Z^#A!IOJi)%h+fiWRyw,1 mi |r}72-lj ?׶uyB`43-&QY DJe4Go MPfRSS̡{χ))?xvs++qI>VCcH@OH?I]>+xP-5.?\Հ`&l#v<6K*4Wf/vy;=1/˄F/ ==3}*q,w!쒼EPVwH/Mb_&^ 5 >%nϽy}>ڏ=xhk,ѳw PN#}Â{G/ 2ևo-j!I@d(9 TGX9؎H{ց?>JTZZ{ O2"{!;wxjqY63ͦ$GMÃ9} XXboߗdhZ<ֿ 3ƻ#רU$雒݆Zr(Cr.҃zxGV&rkBjZQo$)w \5PI|~vfV;ҍ<*j_tsF'aXTk0@;1qi2"l2rYs,O+vBgMK2n'ɩLN5&Uii eRTWzlCF{}i[EO"݋2-ͼq`zYY$k)1tO;NjDn홫VM@9iV'˸:Flyń`εM46B_x>e<5t TQ+6dfi"kZo)Trʷz$144?ψ +wuεĆ/O4$ F̍u|A}MDo9* LG%#7~P[,˄AzDKk^bbA+ϠsMs; C &@@d6O$YU MϪe 6{tx&sobzBFn`D:&X};NoNbr`H4YOEK=C4FOv\E*^[#A΂4 Fd"|K LP Q؆&AZS&2ql`Q\f.9 kVZBϤ #B7p|Nݏ-4e2 X_/tnˀH&G'[t?%hU!ڮR'fbJꮪTI=(aq(^z5 Ӭ"CxfgD,OBP5$K1|?q7PcD 6'6Agݻ3:xgFb ANh%طzweP O6u%E Q}<CЏhI o0Uz[׎{LLֈз qjtm.YR%@^uFZ6Ԙ wM YdTpHFPI5!2܄ShV=%H =7P X@vy$%`m'hc'l6>WlK3[ySS!!<+ Pcy7P mxe~{F} @0/Ft+bڵ7¬ ԈD 2rqQDHD$Nc0-&-cK#(  j^_Εj.U 8`n97|gK^j?h^E\_kR=p19tf\.R}#ly>ܚ^y}fy>6Fi:ݸ,q1u'Q#`&Lb=t66x<&9^>KFO)-,JJ1w1-[}~B*J/&>P0E'oFCHwMVAcZ}:]aEźjZSo[Qt<xNbϐdw>AzU/>b kxI KiBpJiKG|}N:|B8v"V$@S-T׽'tf`3Y05U/{M gOFk8"bLDFaoJw,͔NPS<4jg#5Z>_`\l#iWjKr Rܸ݅opIRQrr|i5OX6$29(V+(PQ^ +VSs3mINQOvڂ8V/6'Xj@ ctry^/HY(aJԞ1fwnk颜Vl67Af̌>E@aw'B"T2Uذ3{[i/ c&^Fy薔 !ewq?p(aoC2"% Wiʤ-"i&_U#hA.66_I_] {&ӏA؆ 1341oS n?6WiqH ;Yk7:lj72LKc-"Uo{ic}p H)Ƒ+`P!~Pso^Ub.12(:(&BP8t4UHq;f?Wx@/~^̄A @ӖS'Qb1&1 'Z2\R .~*<}$٥@%~ IٙEo8DU1=bmf$V݌jIWõ#OBd"u0;vOHb/s:4B\MD3sL22_c н=GhX+x*ژirLUU??28jV C+CM 1e9E4SN5?lwE0M6 !6xT-)dz.8Cc2$Ok9VzZGI={~ocQDx}]_L:n+]ϘP/KJa<*S Z>V<86rXǻV0D6bsKv\{tЃ'_k0 H<F<_<.?VіJpݻK gV(!~왴rϲwɛB(%j@m.ڿf;"\d` r++/OVwX>,ée F{_aچ=3پ'5') s=4@ZsqaBѸQ|:lڃg8|\([ * } ?*FNF|ibǡ8cϟݍl7;Q]x.rsvvjM\cd0MH5 n6~BL+~3_p˽78`nY ,2FӪTN2H|t1myCs/IxY)t Vj]uC]5/1^ h MQ(.3+idOЄ!(%VٻO;*r=7*2ݺ3lgrGZ28s@Et@ni ϻ*gbKLDG滋mi=zAGCz5ĕem| [ϸ腔%&+UOZAy 46X>k`5&Ɩ.MI E}q& eN"H5'az[e78+N#18#\~G3Zޡ5*5{/͜bRBhJY.2pQf,JőE@S9!()AXؕ:_&Jت6) hR/ߦkW^YpEbk6\I]n M^IP']l3Sq*r<S#c[$Koٖ4'Ykmh #}yr>WiZ| MIj`FݚİWfXQ.x9˚h(}I1ZMhoxL+ҐQ}Od׺SM)Wj7Fc2R93pIvrWf|D< KfK ]Uhjʽ| Gs"/JW%}kTGl"vx^e 1ut:{Weu=#V48O7+0\(%|+۵Kp#97V͸7v$\/p0BE,#<ktɴ)50R %13OM!~f,3%_xx{dOM8n)~ҐŇm,=K!{sK $[FM:GDh#(~]V^~%}(~)si|lb:O:֊!c3矔(R:sJH0$EHgڧ%o(i-؞VM Hd5B ْQGrdn9#6Dzκzd\/v8+ B;論Ù~&kfo3E!Yidc_>hӦG &/C,$<@46<Ϛ`H.TsGP p|0x.L-y+gNJȭ˹Bcd8CB=38:baѭ0bm.w>4ӥ#ՙIYoH;|2Hk2_0`O<:SA Rن"H^6p̝bzV\׸qznf8(pGN+qȩ+b,`mZc!Yӕqi/^+MċK\d9!_$^Pl2|ؑL{803 .eaMIu3}z[rMypF#sM|Hkx$WRp GDSjǸ8Pd[%bB؋r7)SejQX]hbuY^ v8&T*wk."a@nPܡ9t#4uJ.04n,ǟ^ Tx[XΈZӤI놞-Ŧ300"4IQ-p 506|#Q,s.Bϖ=ºVR2IrB5H=TR9*n^[Ѽ0Ryj wO2Wю{T[=n̞'G,R ɚ&꼟kr:ңP~{fv ē-i@+0?]/fh?8:+c-sPa0g/Om5":j' 35?n btU>rT)׺_$((f\OFŇʝ&#"\O f%d$l1S;;#D:'+l/zQ7\/%YaOOy'BCq] eeFơi?v(iL --8+q֪4%;Ӿ4VuB&T1ت 4SNs{] ~𧺤{1E7IS#$^Ѕ g3'6y~Ƭao`>sMLE=i.`l=MM͎i >Q*|),M.A8^S@t1Q%؀aCȊÉCm-3nT#~ρ:=7TP25:g3_W_D/g].M:CuW |;h= mAQMTX9`6eA6EnF(*\YF6t FtDžxmFG45J[B6 %> ,q+&BΉ,EHt sby8OVzaxu-ߏr!^g|wK`rl$kxz8lI ۧo4uA\r},l o8^APM7ԭbX A@B| #LA+'B+.bV2V|Jjw!/dbNn#l [';wWEZ{vˍ0ZUIn i)~E.!Ym\]``RhJ͡t+ԋ)4;^z?tLF*HB2nҐڬi4\^Ϝ=WI>]%O~~xGs!U$Y@ v_I͡3 UZUG 0n1]D$u|x K:y-BÍ AZ9fSb?oa:ԓ˧vL,mj,ܡ#=y hˢy Ꮘ P3TN@)`.-_ t[ Z_ N d-׫ C4X2?~L+1rDu47MBqz &G ȋ`¯L+I7mlvY;]E{Y>Amđ6,OEe- [Iilln"]eVQjoBz#L_4S@kE^ၐAoieǽoNǰ9@jw#5R@F :KR@5TRO|rNb(O)^1s68 a\w IW@F0asq,EOr>c]8-z]XzZP"sqwуbeRIS50Nz3tprB^P-S2!:{k;%ۘfǿ}|ɱ%?2.WıPA&^'S(>5tF,KIu$\*Us}T8˙m8bZct*kTģih綵_<\%B>(JWF&{Q< Y3@4P**4W 8mJrHHW\j+2ny;K@Zn*ȴ]iNZMB?tXv$EdbxppK~4%1yJ/f ]Xu% .U`Wo]VW8=ư1$)Y!Plb[& ,&0ē_tuV Ԙ/;T-?!\ S|0):l0Iu,=r|  QPKРI-p:RqQ&ؕ W6vc/@ z2K $WӚaV}gTNɌ_uj*.xl$ۀD63m` I 71:!T_YmCHV_b3@`'k RӁií7zُF?|-4˼%'ɂܶ2:ס-.ʚWxAX%g\|p]nF' lUk2XJy "18Th=-?6rʞD1`fwMD>42y؈5*,?|kߒا\A.eŬ~dX76.k메-E^+EW|s)v'T&xfIdژb1_{9hɍm^Tr*56gE$qQ_W` c]3nfL\e0TČ$B# 俋$q&\>ZJY7s?cz MAg `jFelƉ3zbIz 7n^n 2Y5Pv~{cG~l'P.)*p82F6{y<'`c5;t0E h[u2DjER ėmS#|җ?.{=|"-8SeF9`YLJyS,OoWm(ty=LOO'0KkvrSvlQ| "uVJ`0;bK [(%M&ڒ\6gXk fYmL*|Bz>vy6tGZecW)GzГ31RGYݣ.c&sѨJGMϒއ 4׸w1- xPdcߠ;NK%iێ&2o6#ifmy@7A~ECtM)6ӣPh$pŃK.GfŃK3مC7f Yzv\{1aUʨIIVƜ@_DohLߎHCuap['װTtp.ƟtzdsjgsF _5Mؓ1D~Vl '= ,P&qƶsb~JIL,wE Jj1I%5K4s{#zB5έn<\o/eXt:NAu|lCSMR-]t9߃332k c?Kr6 qCV^'eDA,Z=mrыKtrY)Xls4T="v25LK^?䣦}|oiz*O{zϧ+~thM]qҵh*X[5BlWߣ _+ C!ԯů3V&: O xA TJMڝȍPwy- M_~ۈz6š$&͸# ]d;98N{*{!RnjBj~s{XU"0i&T^cڍC 5]#w~w IM8b=!I?+mC?}x4_v䓥ySFa[6#<"sˀi٦羱`+ JsY@3m 7 YZy cxar=*nCI 0  m'P#p hb$u_ N+MQ[_mCbßlsj)C6Dw  ;Ѐo%dW/ o/*~[}Їߖ$/&,Xo8~AZ0] +|ubR%v򊷇PҺٴ~YI.CV{ ȓ9N|uS@A#;*n䣟}nM X`>$`ArPt't`^&~V-6[.KwWd)}D aö4\mw P ?fUArW厲!8$iBUIp wOzظ@{ojKu=d_FX;&>՛qk*}}2L0O(LFj$YKAŁMY.jZvaw:s @|UfQRW4?gb# jŒ6 dž҃[>ʭ3F&~l^k0o p ޡG }2( 88*HR&P0ynߵ7r8&v9%aD_3[m0 # +AD^3[;~j?57ȳF'ʄ2׫5G'1]t;#:i)+,;͂\LVr$]([??-9f͸{ZA92r Ox!8 |adE.YD) d Kė F!{pKҾ@+.6+a^`$.׍fkS=^ հAljxkwru횕6.Ql+yLռAa<"úY4<5w;dݟqȳ lOZ3oj m$idޓï|1deoQm8-B5҄y7sH^FkHڶ֙'1 r@KeGs^W3sۣ'>#1yRn`1(Dfw5KQa4h^[0ՁC,P挗 ~G7?w=L}1I&tva[ יaKm"3[ypQmךRHmKfyO]mJt&MOlJDD-}ZGnWZ#]|ߋ]FZw]΄;99bxbC"D~B%Ig;INjW`Rt_}SC,`Є'Eń!i@j[#;y1tq!D.b'('ɑ[r~VMښPgyjCK _=:_i?v$_*Yrc^8BsqgqAv)d"M-= 1Gn=B+8:<{Hq>rx/+4E@% 611LmXu TNCY=Xa~Cq뉐TA#PvJ{J=P?b3~N w: )؟cHu5Tw;ŋK+5tR/3ǽkts.\912Ǩ1nƊC\ pe$*-YM7HcPee;')%qD&2 )ed KĎ}sn]6V}l2Bn ;L~֐3TeAlտ02 0{à M (rvx.Ʋ!ǂ&͂Cx 5a ZA6 (M(+yBKCqH5JP9$w ١@֠ÆGGzYnNb+pnЩJk9dx.-17ݞnt}7yݓD.9zoht30nΡ "UYGL;W}aǍjyK7\J՜I_INj<<ڒ;:FWa2IisT LeGPȏԌm@j!Y|''hWwz~taJ[97s;5F~ K#˺T`/1nf5HNy2_POHAhM f%%?~[Ơu$~ց*@.xj &C*lʷeW&3]EG;?F/9=M@Z.~$Vmŵ'l*.ɜ@g3[䁶MF< j7TlJMT4wiǀ:6M g(ZJ*?⬍< .⭇jĄE ]AsD\% e*=v4hb,N`=j܄t٬UOFA^vyz:έpH̻'IBG>XQNP))ir&`_aSƬT]}Kf{q%HA^_mne&1o<ΜCeTI^'W[B"s98ĹtKs5;֕>z'I==*2M`TLY!h%`8;;'_y5**͊vD>]cX͍}٬6󜍳8үJ"ϝ1@F SojK>ŏ! F&.D贎10iHmY'L?b%]HƥCg.[696֦k҇vW@[L2k |1*4}W1N*WP}3nQ7*Ɓ86vr\oL:"-L&י% '3G%@GmGq6EyTcyev&ƣҵNМJ,qe'>+{_-D?;;}Xm,!:L;6ߒ)I=rTC8wPOvel62T[xv WoTBHG1vM7$-Ƅ(xmRFUOG"<#w'R`<~6tFoUu\\#B̬|=&;rk\y(%P:DKؙ̈́*]CV -pO6K4Dn!S<%C% P%]Hvu֧,&0hVgҳ[(LȪk+IwOq[ \kWջU:[]_4fQTsG+ I*a[GA %~2t.ib G=r8[ǝX`Pً؍*+WIo$LS ʵBO%mq5NdB^bs zpy-Cy,1k?w, M厼]üS;bMS 4JEa:l`9*//=A`l#7Mݯ$m:#(:$ ڱ)yT[Bl㡮 F5]}p_ܙ@g.w>U 䥕U^p,̝aUA3bJ[=㨑ȕ#2/"ۻ sELHS:jObJ2C!:߭R1(F%Q=g0"x<,~:K^(ZV *ǴB/ǝ5_޲я,~}#nSQy" ?BC{7.О ^HB,ZDOӬj kfT(1boqUi 9;]bS6ځ*>0#nڍ󮼢!*&OpJ7 r.NxqNPв t?K\cԣ,I9Պ_ߍzU4^L_"XkU]QB~U?̀qd}e:hP̴DI0qi ].i[p٢9gDGSUW"<3X}.^PM5cCyl Nh;_/ÀE$ʎlQne؞$Dŏ|YBXu=<Q)p~,e s4YPLAaR-{{M: j0閿Fc9v 2,XH P[V\^ErRdΝ߮QcS5GeW h`}ڢYKe]Ul* ^nKDez*&\5U'עջhmK=}nOTVrAˍ!<ϑ_.፶*b5X4!*2ŕsoW~QɱؕUd8ZPaa,'.}Li2k Fyߟ>( sXS3 iȦ2eoQa3ibRuk:IN,hMyt#$G5i]Sm5;Mꎙ&Ǝȗ+zeNʠ(;k| n+ dXuR.GCB v.N8lТc(,ܘSRnڝOH + A:,Ćvp O2`P/|@Mm2i^cl>hCq=sܽivoږۈ+s@+lzCy<6K\P ۸cҝ1VYI1P UUӵn"ɧd3'd؏o|32a|3愒2F\zʙEhHsݖV}Q}{dY)b وJ{5;~>҇1Ui[p,\,!ۻqr %'∊w)ctLV)_?|-~ Rt< 5" \ʿ=-{o2aA| 90;}Vfj'0zIfl7D)sLx(G>']=):7- 5TفZІy/Mxo6 i PP+rzR"v0ŻEM~Y'c1c37PXJz:]zhUCMgᧂ䄴`ɊLv8`OʼesFGRtŕ&'d/ [?ؠ~ 2Gif 6I":Ti /qAQ|d S=GV3 !КUƐ[E.OƓ;'\N)G֝MD/x!%\M#}(n8v0$} L7.7x,9zѮq;VfY|˦m[h jZBm׷ FPI/#Ss_i?[q}F2[zF V9ղKGs]Q>vFARg鱥6*FHV}M. wA^+)p$ G ->3t2 0-W@߅Ff6mN9Wͤ)e fW\ma%3<ॊXu}\q#VZI| Q(T_zVƅW< |6^Ŵ~\H\t>QwkP~}ur*c8MJ+C#6q ޟRe^hذ=)_]]tKbYP_c6AXU~@UumnO6M`L08G_Jۢ;!;6*+¼h^\+h1wcxqqAaj8}zִ+&8-#>q=r7뇰O {1YkЂ'zZ5CYqRom ';eNI޴u_`\^Bw;g(|'5;/6ڭ=FaƘX)y*WNH>47;tv"Htؐ^l G:38nqQKR*V̲%Lc[Su$!'">D#X<ayWaDuN|3r )6 x.01`u?1u&ٕvFҁ!AY緶 46;;gDP&~zDF?C=bb_W, rGCpjRL$h/?$cRvrI!ӅTf!3wJž(Zo&E ɵ$22w64?uAʱU|ϟ.9x4t5ٰ\\Gؙ*'M/ACA#}d7x|٠,+3l K ʬEİz܀d.yDH|zP?kuorrݣRgݞ ~?Vϗ8 j cc8`V-ognEj;:YnqT :@.+O5oeb}I,ӵ_Ѧ4 [hJӰg00Ky!.&Kd%+I.6,~8![`H(w^񮟭ྔd4QEyrL+UNm hD?!JhָT棶AvAYv'gv/Qq[AxMvď3̴JiA4D]6yvD t6C7Ķ' _ .-I0h@-zN) mG[jC섄G;!{pvN˰o6ZOg}k@Tqvugj7--, 7-Rß,u`9Ju8"9nn hMhyr@mrkUէM (kdz뵢Mː>e 1jHLfǨ_71C*]A (?cā$l;^ lH@0:C"_vMz<ԈEIsRO9Jyzk&9^4qd\bi#!nȈrSaYBoi;^VEfEwQP2pwR dn=elQkV*Δ\;Kx)XdgupwN,kbŵ1209PJ󗭘d!FB/_5i^/Im=׋/ִfglGԵB;Rt_?-Q.k͗#""Pm?܎F@ lZl5\̤6l(EjҮhs6pQYK6lKGjZ*<X5|Pey5 aL%}G>k0_zla ^'!W H͘~mP~AӐZaő!˯^bSD>:;&Rc?nBl;4pd~W,]a- onэBC-Oyؽ{sk"<:/0A*{gAvkc{3cK>Mw+KpGIcHrKc=* wߘ(~G|{1]7q9Vއ_ݕL&rv42+bPb V8!mvSXDrXiȅug!AX`,b47ٕyX_6"&gۊhHc f΀`Ŋtd1wa?[66 XgLPNեb+[ [I ڲ; P$⒟qIUg=kH Ԧq.6F͐7bw3ɠ$l>;qRgB"B,+!HЈH6e8pOZbwqF]A55$OK8fS)ʆ;= t\2[jm+\Ͳ% lX)YH:Zdp܉)%:aDz^4X4l&bx4|sa'ZBoA|SpTX ':8 P P$ޫBZ+D?e1ⰴĕu$(Di.h%o"6jh]JsIٺ̶ -?簟-T}[vX4E@w'q0,ӞB}B7w+w籚6"c9:W^(Y#C(gj<&Uˆƌ#ɏ7KZt1fzDKJ!0FwL#&_ ȰiVor͂]GUWJƍ I8G8j?aM {S=;@Q2*[8W.gA3 U%DnÆK˄xZ #e Z·&NRp/푝">NcR49ԇ ̗.`Ni.UT=r|>d ȱ.k&0 h~#D %Kwb?hgޯbGzR^]$/|Mx;Lv>G&_faI;4P Vo_̅mGW2<޽>6Z؊80m74g3&+YhZ&MW 7N)cƑS:>}FA0MxٜWXU\ޫ>.d[@"c; ^j`j~*+Rlzj')DBmiAF 䋠Hs܆V$4j :<-wbllDQ<4; ^m"xJP[3 I~kG 򉎂d٧zI9qScj[crw`>֍1>qVl_Qi/9᪘3}ev-CQ[pqǸPa'(}p0aUBe βC)6}{J0JW;>)= lvmH%|A<p4lp;:1}Q{ĚUH웪qk 8.DFѨ&ԑvܜGnkNҩuǏ@c6=hhM XM2H3*<kTa/p9uE%mާ.]2b'/Zg*~3nPfD= ͻB WDNloTY`0 yx`uHBFE+n3$N {K\k8=/Sd#m !>AHqYJ|!n+}p8؂CfѨ ;ރ?a+rmn7)Y3# =WɄ S8D cwÏ(KRsLa|mNB'V5>NDF5iEH }aZdsYF {Y8h17M Gp!&3j;)H+%b n ҏ@JEHG3F1ogov4uVP >PMW*n~@b5 "nq:,ϲr_z]PM;u cLgؿ|UBJ?}HN|Δ"~>琺0꼠2x3͢XN3jq6-yE:%-1,LN |]nR#l7ݨ1ؼd}ۍ*+d-OO v_v*Cqm- He%VDW 1;@ Oۛ~]Wur JGbv#u~1Xk`DxzEG VLQW5W?E';IZmRh,<9J:-x N/ȟL;џhH WӉs]G}7o/8EVY: .wik evBR71"%&>g)nU Kx Z:BWn X1!NBtφ/b$AGpI~ ^St`o$CҠma6p(c+rg`⋵сj6צXuiTyu):$JQ.L~9W]oOVO.:1T}d?'ڧՋ=fل6(h bi]ߣ;H # vcU2`8nޅN59Wt1=Z}QxR6=PaJKn413"` eyMf ?ٰ]/ ڥJTVLNl[NC;0I69 6tAXжF>>1?A$AHf jGtWr79 aA7pF;| `fI#;m4.3h;Hs-.Lx(:} 3d^,mcpBXɎޕcEz5wYx]O"7r <ݟN?]"h/ӧhU&n* m}f;,&"3YLPlѡB.ĸ5#~9cPnzgwU`N)=# 9f4VBrm*jvtdd}$/-OB7(5PKM6\U\ת_4PEi,c ^01[ʼ?X'+~^UtUaEDG1.:'aQQ9Ҍk*q2cx[?5M>0߰LXAUUZltդ s(QO\v3L Cp? M 5J O7^<]3`!kp]/R䋣c|!#xs)v@ uO6Jٷ2̠܆y6S7p#P̕{q b 79Y Y%K2)2^(i!3ccy.ZQ˥nE>wTNl@^X0)ZB,뗊b~wCƧL]8K8/OE2CEY6r>k Y| ?EiˑB^K*!suyΡLZ,gnV݇ Cq O3̅%\;H>fV]ӺlǴ`!<#rds'Es5o[<y;@ 6V=t@ze|m?0Ep .+m<͡.J-5cP($Rի91|ky1L+˳VUdw@ZߦgjsH4 )]AuDUl>E.}kanսKhSnIt\ZZh^Wiu(Hl˪vGϺ=(<G^&xV'.;#wy&c_`I&/V`g' p4e!/R?P؅KJ'!Hd'דޙFt7%mY=:lhH=¥cTJ*6Ci"y 䰀}OvDj*Ϩ/U]ãNQtZg܉`[lcڱTnxs%Ndu~L"ݩap7UzBPD ԮrPo0`2&WiP7M60{탬{-S]Ik=7 Un࣮qy˱:E'X[= ePW\=ey\ 0_I0SrOlkk,|`TV@/@ngS2!'Y0I 6s f'XcCŨHb,%S0XtᅛJ^G C:ֈ Q~8|#ewIkCzpM* "Y-bS7ZE޶c9:5P7Tr >eU\8.nswsSw)ߌ lqLpQxQ8/Ȓm#i? 1aVa V6B>ZZ O>A8퇐B B4 MRYH@g@=axu A/c.eK[P>q0U/{'W J' ^V{ľO>{cخI;a`@ZǥB^=C_ q_q#%`hѷ8NFQ-Ӻ^ꮧߝW/uc⨣w#&-I\1Ծd‰`$䷝ [BQ DդB Hmt1t62Eg#lRTNQ::DkИ HFΉ3WOLT P<{j3mwY5%n?$Qön :o,RV*ja?L. Zv PG$qT g ,>YBD Sp_o' 7> A2#uONp;=US է-rP[M] +b*褮 9=5lWAhNvv۹] Kz@ndGZ˕(문,iԓNh䋂3ƿNHY![yIMh'&)Џ "AH*;Sڃe:: voOcjV0}RFHPq 'd~Ѯ7rs׷NĈm#]%tke\A*"F9W$D_A?=Hd4ͦDhY؊@u X_u h !;Rw} ["]/6ϋ༘JV !TĢϵj& (- BY ?w$ThCӟWZJUomIQ5qB|w 26YUQOa krѺC1^85ʋ?9xvJDgRG Wri3Z^$CZpOXg-t\.ofIj-,[{> b EJ׮ŀzEĀQl/Fw:3~ wR,tZmk[ĞsI*{WSIM~W ɤ2U%,j ~tdVLLSjD~?zJp$djq@$6 ПO0X5@1܎qߒ޶E2WM`$9HPi%ìt['JCwl Z{$q۷V8l"A02ڵ#/z1۸]F-*L@ә'SJmuZ,?d:1GkYKct12l/ %)%l2ϱ;ZMDR5 GhXo,Jq^(~Mzڍ{x]E0I葬d`>~,%}}LN75n%:CqohVM,m;+pEK`Xfx9cmFx;sH8<jTQ=S#]#ŭ|U!et4Ž[t|sxUŴ2);ϽD7!@ ԉPWq8[u+?sp1 9|ݭau ndK dɯutiBlWN \ fyp:yO#]LϤc \ip_eoACSwKv _W^AmHJELpُW_$ŏ~k H5Hwb1*wEώ":d-IC Y8%(#E&>fQk aވj'r6g_M. y,}.~9bU`&'dv1Ш ?U0lFjmK6CX/-D ~ \CH?MW[ 3XI;σvbTOA(Na'm4aϦpxhYaB`)]QH0[NkIdž0y惻x6e30#NsŦ5~ _Dv-~v&رn P 4!x5KEXU@kډ\]^Jkhո."ȚT*ͦIOQ y0zG"˥{>SGbn=Vx,vZj͢ )m<hz j8ѱ^b;݉dNz&7]mzۜhDzN o6_Bi¾_jv(p ~mx!?OdT -Ioa/C\͑h|^QTnSj^2xtEVo0e#%YE11eb_*x#>4C:-y"QXYr[?>#!1%y_g:ˋP-rB|'VٕANsy^/ 1rgjF$PraLćd"*2~_8r1\9g@BufHXYSG=OM5{or6Yt]Wekg Vb9}#K9TO],%Vb;AqBg@iꖂ.I琾1ffWD'.;yۗz>3-nm_"c>ae~xڊ̛ÄF#ۤj >4Hz!Nq6Dx_+<5ʫu.>},n!@Jlي@X툔7B*@pCgHI{lPŸ@2>g ;(OK&ïV+dڥ$ KT_x ܣ_nDG_7O2I K<(`NJ;@95?%a{`aVH:m~ʮ{ɖߏO^' Vr"S/Ǒ Z nboBI> endstream endobj 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 7 0 obj [ /PDF /Text ] endobj xref 0 8 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000279 00000 n 0000000372 00000 n 0000077198 00000 n 0000077305 00000 n trailer << /Root 1 0 R /Size 8 /ID [<356f9110d750e2f6ef9c31da8d48f05e>] >> startxref 77335 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad11.pdf0000644000064100006410000000171213247541377015156 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000128 00000 n 0000000300 00000 n 0000000389 00000 n 0000000424 00000 n trailer << /Size 7 /Root 1 0 R >> startxref 542 %%EOF 4 0 obj << /Length 43 >> stream BT /F1 24 Tf 72 720 Td (Salad) Tj ET endstream endobj xref 0 1 0000000000 65535 f 4 1 0000000750 00000 n trailer << /Size 7 /Root 1 0 R /Prev [542] >> startxref 845 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/obj0.pdf0000644000064100006410000000153313247541377015121 0ustar ejbejb%PDF-1.3 % 0 0 obj << /q (wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww) >> endobj 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet 6 0 R >> /Type /Page >> endobj 4 0 obj << /Length 48 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 5 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 6 0 obj [ /PDF /Text ] endobj xref 0 7 0000000015 00000 n 0000000077 00000 n 0000000124 00000 n 0000000183 00000 n 0000000326 00000 n 0000000444 00000 n 0000000551 00000 n trailer << /Root 1 0 R /Size 7 /ID [] >> startxref 581 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/issue-120.pdf0000644000064100006410000000142113247541377015713 0ustar ejbejb%PDF-1.5 %0000 1 0 obj << /Type /ObjStm /N 5 /First 31 /Length 418 >> stream 2 0 3 42 4 102 5 262 6 285 0000<< /T000 /0000000 /P000s 3 0 R >>00000<< /0y00 /Pages /0ids [ 4 0 R ] /0o0nt 1 >> % 4 << /Type /Page /Parent 3 0 R /Media0ox [0 0 612 792] /0ontents 7 0 R /R0s00000s0<< /P000000 5 0 R /0000 << /00 6 0 R >> >> >>00000[ /000 /0000 ]00000<< /T000 /0000 /S00000e /Type1 /Name /F1 /0aseFont /0e00eti0a /En0oding /Win0nsiEn0oding >> endstream endobj 7 0 obj << /Length 44 >> stream 0000000000000000000000000000000000000000000 endstream endobj 08 0 obj<< /Type /XRef /Size 9 /Index [0 9] /W [1 2 1] /Length 36 /Root 2 0 R >> stream 00000000 i endstream endobj startxref 617 %%EOFqpdf-8.0.2/qpdf/qtest/qpdf/01_split-exp.zdf0000644000064100006410000000136313247541377016527 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TCM,. ,endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 6 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000398 00000 n trailer << /Root 1 0 R /Size 6 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 497 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.7.check0000644000064100006410000000026213247541377017161 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/issue-99.pdf0000644000064100006410000001127613247541377015663 0ustar ejbejb%PDF-1.4 %äüöß 2 0 obj <> stbeam xM,L ,Rµr endstream endobj 3 0 o2 endobj 5 0 obj << >> endobj 6 0 obj <> endobj 1 0 obj <>/Contents 2 0 R>> endobj 4 0 obj <> endobj 7 0 obj <> endobj 8 0 obj < /Producer> endobj 1 0 obj <VHEm ,1s] 79.nwo呛HIHHV$A@2dSIٗq >`׏d(b + [Ù1yn;m!A-uƄ+kƿsl/1*+d_|bKt0HF> /ProcSet[/PDF/Text/ImageC/ImageI/ImageB] /Type/Page/Parent 8 0 R/Resources 10 0 R/MediaBoj[0 0 .95 842]/Group<>/e/Page/Parent 8 0 R/Resourcd0 0 R/MediaBox[0 0 595 842]/Group<>/Contents 2 0 R>> endobj 0 0 obj <> endobj 11 0 obj <> sm x + H$  u J@ nm3;hέnECv]z[ݗIZ:Y|܏#w;S ؏#LQyiFb` Xˏ\р?R}:j2BBBBBBBBBBBBBBBBBBBBBBBBBBBB\Zh/~U$;;n$Q> %M:!Ŭ2 +7s˒R)9<9VfQ,?"ү]<߉#uptRkiب+v,IJHfX-Ўd 6hr?r'/=g*=#_\> K4-c,X)]l̈́a[2Սj-+ 4 +԰֣c8]N&ܱ7400650072> /Producer'\w,w:l>zVs< 4cXr0K43FJד_E nXL č se K W=w0 endstream endobj 7 = mbj 1091 endHF & 9 0 obj << >> endobj 10 0 obj <> /ProcSet[/PDF/Text/ImageC/ImageI/ImageB]<>/Contents 2 0 R>> endobj 0 0 obj <> sm x nm3;hέnECv]z[ݗIZ:Y|܏#w;S ؏#LQyiFb` Xˏ\р?R}:j2B  R)?-+ 4 +԰72> /Producer'\w,w:l>zVs< 4c|UݤcwNXJXr0K43FJד_E nX\bl=L č Կg,[4,u(M0 R>> endobj 8 0 obj <>/Contents 2 0 R>> endobj 0 0 obj <> endobj 11 0 obj <ddobj 12 0 ob <650072> 6900630031> /C>> endobj x 000 -00 000 000 000 00 0 n 0n 0n 0n 0n trailer < ] /DocChecksum /4BV41113AA259DFC90F1B667406B42D >> startxref 3526 %%EOFqpdf-8.0.2/qpdf/qtest/qpdf/minimal-linearized.pdf0000644000064100006410000000243613247541377020044 0ustar ejbejb%PDF-1.3 % 2 0 obj << /Linearized 1 /L 1310 /H [ 569 118 ] /O 5 /E 1085 /N 1 /T 1152 >> endobj xref 2 7 0000000015 00000 n 0000000520 00000 n 0000000569 00000 n 0000000687 00000 n 0000000830 00000 n 0000000948 00000 n 0000000978 00000 n trailer << /Root 3 0 R /Size 9 /Prev 1144 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 0 %%EOF 3 0 obj << /Pages 1 0 R /Type /Catalog >> endobj 4 0 obj << /Filter /FlateDecode /S 36 /Length 41 >> stream xc```a``d>8p1?N`L endstream endobj 5 0 obj << /Contents 6 0 R /MediaBox [ 0 0 612 792 ] /Parent 1 0 R /Resources << /Font << /F1 8 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj 6 0 obj << /Length 48 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 7 0 obj [ /PDF /Text ] endobj 8 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 1 0 obj << /Count 1 /Kids [ 5 0 R ] /Type /Pages >> endobj xref 0 2 0000000000 65535 f 0000001085 00000 n trailer << /Size 2 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 216 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/a-07-split-exp.zdf0000644000064100006410000000174513247541377016675 0ustar ejbejb%PDF-1.4 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 53 >> stream x 휏nyA?(=2?&ꍕ>(ٙ aȊ1endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 6 0 obj << /Filter /Standard /Length 128 /O <2a2f0a1990192c60114730bdcd39f37828a53c89a340dd473c85299dc5258e1c> /P -4 /R 3 /U /V 2 >> endobj xref 0 7 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000398 00000 n 0000000497 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] /Encrypt 6 0 R >> startxref 704 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/lin8.out0000644000064100006410000003564413247541377015211 0ustar ejbejbWARNING: end of first page section (/E) mismatch: /E = 2656; computed = 1768..1770 WARNING: object count mismatch for page 0: hint table = 7; computed = 4 WARNING: page 0 has shared identifier entries WARNING: page 0: shared object 105: in hint table but not computed list WARNING: object count mismatch for page 1: hint table = 3; computed = 2 WARNING: page 1: shared object 110: in hint table but not computed list WARNING: page 1: shared object 111: in hint table but not computed list WARNING: object count mismatch for page 2: hint table = 3; computed = 2 WARNING: page 2: shared object 110: in hint table but not computed list WARNING: page 2: shared object 111: in hint table but not computed list WARNING: object count mismatch for page 3: hint table = 3; computed = 2 WARNING: page 3: shared object 110: in hint table but not computed list WARNING: page 3: shared object 111: in hint table but not computed list WARNING: object count mismatch for page 4: hint table = 3; computed = 2 WARNING: page 4: shared object 110: in hint table but not computed list WARNING: page 4: shared object 111: in hint table but not computed list WARNING: object count mismatch for page 5: hint table = 3; computed = 2 WARNING: page 5: shared object 110: in hint table but not computed list WARNING: page 5: shared object 111: in hint table but not computed list WARNING: object count mismatch for page 6: hint table = 3; computed = 2 WARNING: page 6: shared object 110: in hint table but not computed list WARNING: page 6: shared object 111: in hint table but not computed list WARNING: object count mismatch for page 7: hint table = 3; computed = 2 WARNING: page 7: shared object 110: in hint table but not computed list WARNING: page 7: shared object 111: in hint table but not computed list WARNING: object count mismatch for page 8: hint table = 3; computed = 2 WARNING: page 8: shared object 110: in hint table but not computed list WARNING: page 8: shared object 111: in hint table but not computed list WARNING: object count mismatch for page 9: hint table = 3; computed = 2 WARNING: page 9: shared object 110: in hint table but not computed list WARNING: page 9: shared object 111: in hint table but not computed list WARNING: object count mismatch for page 10: hint table = 3; computed = 2 WARNING: page 10: shared object 110: in hint table but not computed list WARNING: page 10: shared object 111: in hint table but not computed list WARNING: object count mismatch for page 11: hint table = 3; computed = 2 WARNING: page 11: shared object 110: in hint table but not computed list WARNING: page 11: shared object 111: in hint table but not computed list WARNING: object count mismatch for page 12: hint table = 3; computed = 2 WARNING: page 12: shared object 110: in hint table but not computed list WARNING: page 12: shared object 111: in hint table but not computed list WARNING: object count mismatch for page 13: hint table = 3; computed = 2 WARNING: page 13: shared object 110: in hint table but not computed list WARNING: page 13: shared object 111: in hint table but not computed list WARNING: object count mismatch for page 14: hint table = 3; computed = 2 WARNING: page 14: shared object 110: in hint table but not computed list WARNING: page 14: shared object 111: in hint table but not computed list WARNING: object count mismatch for page 15: hint table = 3; computed = 2 WARNING: page 15: shared object 110: in hint table but not computed list WARNING: page 15: shared object 111: in hint table but not computed list WARNING: object count mismatch for page 16: hint table = 3; computed = 2 WARNING: page 16: shared object 110: in hint table but not computed list WARNING: page 16: shared object 111: in hint table but not computed list WARNING: object count mismatch for page 17: hint table = 3; computed = 2 WARNING: page 17: shared object 110: in hint table but not computed list WARNING: page 17: shared object 111: in hint table but not computed list WARNING: object count mismatch for page 18: hint table = 3; computed = 2 WARNING: page 18: shared object 110: in hint table but not computed list WARNING: page 18: shared object 111: in hint table but not computed list WARNING: object count mismatch for page 19: hint table = 3; computed = 2 WARNING: page 19: shared object 110: in hint table but not computed list WARNING: page 19: shared object 111: in hint table but not computed list WARNING: object count mismatch for page 20: hint table = 3; computed = 2 WARNING: page 20: shared object 110: in hint table but not computed list WARNING: page 20: shared object 111: in hint table but not computed list WARNING: object count mismatch for page 21: hint table = 3; computed = 2 WARNING: page 21: shared object 110: in hint table but not computed list WARNING: page 21: shared object 111: in hint table but not computed list WARNING: object count mismatch for page 22: hint table = 3; computed = 2 WARNING: page 22: shared object 110: in hint table but not computed list WARNING: page 22: shared object 111: in hint table but not computed list WARNING: object count mismatch for page 23: hint table = 3; computed = 2 WARNING: page 23: shared object 110: in hint table but not computed list WARNING: page 23: shared object 111: in hint table but not computed list WARNING: object count mismatch for page 24: hint table = 3; computed = 2 WARNING: page 24: shared object 110: in hint table but not computed list WARNING: page 24: shared object 111: in hint table but not computed list WARNING: object count mismatch for page 25: hint table = 3; computed = 2 WARNING: page 25: shared object 110: in hint table but not computed list WARNING: page 25: shared object 111: in hint table but not computed list WARNING: object count mismatch for page 26: hint table = 3; computed = 2 WARNING: page 26: shared object 110: in hint table but not computed list WARNING: page 26: shared object 111: in hint table but not computed list WARNING: object count mismatch for page 27: hint table = 3; computed = 2 WARNING: page 27: shared object 110: in hint table but not computed list WARNING: page 27: shared object 111: in hint table but not computed list WARNING: object count mismatch for page 28: hint table = 3; computed = 2 WARNING: page 28: shared object 110: in hint table but not computed list WARNING: page 28: shared object 111: in hint table but not computed list WARNING: object count mismatch for page 29: hint table = 3; computed = 2 WARNING: page 29: shared object 110: in hint table but not computed list WARNING: page 29: shared object 111: in hint table but not computed list lin8.pdf: linearization data: file_size: 24875 first_page_object: 105 first_page_end: 2656 npages: 30 xref_zero_offset: 22687 first_page: 0 H_offset: 1052 H_length: 217 Page Offsets Hint Table min_nobjects: 3 first_page_offset: 1269 nbits_delta_nobjects: 3 min_page_length: 583 nbits_delta_page_length: 10 min_content_offset: 0 nbits_delta_content_offset: 0 min_content_length: 0 nbits_delta_content_length: 10 nbits_nshared_objects: 3 nbits_shared_identifier: 3 nbits_shared_numerator: 4 shared_denominator: 8 Page 0: nobjects: 7 length: 1387 content_offset: 0 content_length: 804 nshared_objects: 4 identifier 0: 0 numerator 0: 0 identifier 1: 0 numerator 1: 0 identifier 2: 0 numerator 2: 0 identifier 3: 0 numerator 3: 0 Page 1: nobjects: 3 length: 583 content_offset: 0 content_length: 0 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 2: nobjects: 3 length: 583 content_offset: 0 content_length: 0 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 3: nobjects: 3 length: 587 content_offset: 0 content_length: 4 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 4: nobjects: 3 length: 594 content_offset: 0 content_length: 11 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 5: nobjects: 3 length: 586 content_offset: 0 content_length: 3 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 6: nobjects: 3 length: 592 content_offset: 0 content_length: 9 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 7: nobjects: 3 length: 586 content_offset: 0 content_length: 3 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 8: nobjects: 3 length: 594 content_offset: 0 content_length: 11 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 9: nobjects: 3 length: 587 content_offset: 0 content_length: 4 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 10: nobjects: 3 length: 592 content_offset: 0 content_length: 9 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 11: nobjects: 3 length: 591 content_offset: 0 content_length: 8 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 12: nobjects: 3 length: 593 content_offset: 0 content_length: 10 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 13: nobjects: 3 length: 593 content_offset: 0 content_length: 10 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 14: nobjects: 3 length: 593 content_offset: 0 content_length: 10 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 15: nobjects: 3 length: 592 content_offset: 0 content_length: 9 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 16: nobjects: 3 length: 593 content_offset: 0 content_length: 10 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 17: nobjects: 3 length: 592 content_offset: 0 content_length: 9 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 18: nobjects: 3 length: 593 content_offset: 0 content_length: 10 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 19: nobjects: 3 length: 592 content_offset: 0 content_length: 9 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 20: nobjects: 3 length: 592 content_offset: 0 content_length: 9 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 21: nobjects: 3 length: 591 content_offset: 0 content_length: 8 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 22: nobjects: 3 length: 593 content_offset: 0 content_length: 10 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 23: nobjects: 3 length: 593 content_offset: 0 content_length: 10 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 24: nobjects: 3 length: 592 content_offset: 0 content_length: 9 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 25: nobjects: 3 length: 592 content_offset: 0 content_length: 9 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 26: nobjects: 3 length: 593 content_offset: 0 content_length: 10 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 27: nobjects: 3 length: 592 content_offset: 0 content_length: 9 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 28: nobjects: 3 length: 593 content_offset: 0 content_length: 10 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 29: nobjects: 3 length: 592 content_offset: 0 content_length: 9 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Shared Objects Hint Table first_shared_obj: 0 first_shared_offset: 0 nshared_first_page: 7 nshared_total: 7 nbits_nobjects: 0 min_group_length: 35 nbits_delta_group_length: 10 Shared Object 0: group length: 214 Shared Object 1: group length: 134 Shared Object 2: group length: 118 Shared Object 3: group length: 35 Shared Object 4: group length: 249 Shared Object 5: group length: 56 Shared Object 6: group length: 581 Outlines Hint Table first_object: 89 first_object_offset: 20067 nobjects: 12 group_length: 2069 qpdf-8.0.2/qpdf/qtest/qpdf/object-types.pdf0000644000064100006410000000214713247541377016701 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 7 0 obj [ /PDF /Text ] endobj 8 0 obj << /Integer 5 /Dictionary << /Key1 /Value1 /Key2 [ /Item0 << /K [ /V ] >> /Item2 ] >> >> endobj xref 0 9 0000000000 65535 f 0000000025 00000 n 0000000079 00000 n 0000000161 00000 n 0000000376 00000 n 0000000475 00000 n 0000000494 00000 n 0000000612 00000 n 0000000647 00000 n trailer << /Root 1 0 R /Size 9 /ID [<5ecb4bcc69402d31e10c2e63ec8500ee><5ecb4bcc69402d31e10c2e63ec8500ee>] /QTest 8 0 R >> startxref 788 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/split-exp.zdf_100000644000064100006410000000203213247541377016521 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 10) Tj ET endstream endobj 5 0 obj 48 endobj %% Original object ID: 5 0 6 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 7 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000242 00000 n 0000000509 00000 n 0000000612 00000 n 0000000658 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 766 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/append-page-content-damaged-c-check.out0000644000064100006410000000135713247541377023035 0ustar ejbejbWARNING: append-page-content-damaged.pdf: file is damaged WARNING: append-page-content-damaged.pdf: can't find startxref WARNING: append-page-content-damaged.pdf: Attempting to reconstruct cross-reference table version: 1.3 linearized: 0 encrypted: 0 warning: append-page-content-damaged.pdf: file is damaged code: 5 file: append-page-content-damaged.pdf pos : 0 text: file is damaged warning: append-page-content-damaged.pdf: can't find startxref code: 5 file: append-page-content-damaged.pdf pos : 0 text: can't find startxref warning: append-page-content-damaged.pdf: Attempting to reconstruct cross-reference table code: 5 file: append-page-content-damaged.pdf pos : 0 text: Attempting to reconstruct cross-reference table qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.3.check0000644000064100006410000000026213247541377017471 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/no-contents-check.out0000644000064100006410000000027413247541377017650 0ustar ejbejbchecking no-contents.pdf PDF Version: 1.3 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/lin0.pdf0000644000064100006410000000137313247541377015133 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/split-exp-04.Pdf0000644000064100006410000000136313247541377016376 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TM,.) /endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 6 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000398 00000 n trailer << /Root 1 0 R /Size 6 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 497 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/extensions-other-min-1.6.out0000644000064100006410000000015513247541377020725 0ustar ejbejbversion: 1.6 extension level: 0 << /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/good5.qdf0000644000064100006410000000225413247541377015306 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 3 0 R /Type /Catalog >> endobj %% Original object ID: 7 0 2 0 obj true endobj %% Original object ID: 2 0 3 0 obj << /Count 1 /Kids [ 4 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 4 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 7 0 R >> /ProcSet 8 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 5 0 obj << /Length 6 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 6 0 obj 44 endobj %% Original object ID: 6 0 7 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 5 0 8 0 obj [ /PDF /Text ] endobj xref 0 9 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000181 00000 n 0000000290 00000 n 0000000532 00000 n 0000000631 00000 n 0000000677 00000 n 0000000822 00000 n trailer << /QTest 2 0 R /Root 1 0 R /Size 9 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 857 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/good10.qdf0000644000064100006410000000223713247541377015363 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj %% Original object ID: 6 0 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 5 0 7 0 obj [ /PDF /Text ] endobj xref 0 8 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000242 00000 n 0000000484 00000 n 0000000583 00000 n 0000000629 00000 n 0000000774 00000 n trailer << /QTest [ 1 (2) null 0.0 -0.0 0. -0. ] /Root 1 0 R /Size 8 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 809 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/to-rotate.pdf0000644000064100006410000002304313247541377016205 0ustar ejbejb%PDF-1.4 % %QDF-1.0 1 0 obj << /Pages 3 0 R /Type /Catalog >> endobj 2 0 obj << /CreationDate (D:20120721200217) /Producer (Apex PDFWriter) >> endobj 3 0 obj << /Count 20 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R ] /Type /Pages >> endobj %% Page 1 4 0 obj << /Contents 20 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 22 0 R >> /ProcSet [ /PDF /Text ] >> /Rotate 270 /Type /Page >> endobj %% Page 2 5 0 obj << /Contents 23 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 22 0 R >> /ProcSet [ /PDF /Text ] >> /Rotate 270 /Type /Page >> endobj %% Page 3 6 0 obj << /Contents 25 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 22 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Page 4 7 0 obj << /Contents 27 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 22 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Page 5 8 0 obj << /Contents 29 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 22 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Page 6 9 0 obj << /Contents 31 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 22 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Page 7 10 0 obj << /Contents 33 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 22 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Page 8 11 0 obj << /Contents 35 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 22 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Page 9 12 0 obj << /Contents 37 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 22 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Page 10 13 0 obj << /Contents 39 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 22 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 14 0 obj << /Count 5 /Kids [ 41 0 R 42 0 R 43 0 R 44 0 R 45 0 R ] /Parent 3 0 R /Rotate 90 /Type /Pages >> endobj %% Page 16 15 0 obj << /Contents 46 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 22 0 R >> /ProcSet [ /PDF /Text ] >> /Rotate 180 /Type /Page >> endobj %% Page 17 16 0 obj << /Contents 48 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 22 0 R >> /ProcSet [ /PDF /Text ] >> /Rotate 180 /Type /Page >> endobj %% Page 18 17 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 22 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Page 19 18 0 obj << /Contents 52 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 22 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Page 20 19 0 obj << /Contents 54 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 22 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Contents for page 1 20 0 obj << /Length 21 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 1) Tj ET endstream endobj 21 0 obj 47 endobj 22 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj %% Contents for page 2 23 0 obj << /Length 24 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 2) Tj ET endstream endobj 24 0 obj 47 endobj %% Contents for page 3 25 0 obj << /Length 26 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 3) Tj ET endstream endobj 26 0 obj 47 endobj %% Contents for page 4 27 0 obj << /Length 28 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 4) Tj ET endstream endobj 28 0 obj 47 endobj %% Contents for page 5 29 0 obj << /Length 30 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 5) Tj ET endstream endobj 30 0 obj 47 endobj %% Contents for page 6 31 0 obj << /Length 32 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 6) Tj ET endstream endobj 32 0 obj 47 endobj %% Contents for page 7 33 0 obj << /Length 34 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 7) Tj ET endstream endobj 34 0 obj 47 endobj %% Contents for page 8 35 0 obj << /Length 36 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 8) Tj ET endstream endobj 36 0 obj 47 endobj %% Contents for page 9 37 0 obj << /Length 38 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 9) Tj ET endstream endobj 38 0 obj 47 endobj %% Contents for page 10 39 0 obj << /Length 40 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 10) Tj ET endstream endobj 40 0 obj 48 endobj %% Page 11 41 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 14 0 R /Resources << /Font << /F1 22 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Page 12 42 0 obj << /Contents 58 0 R /MediaBox [ 0 0 612 792 ] /Parent 14 0 R /Resources << /Font << /F1 22 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Page 13 43 0 obj << /Contents 60 0 R /MediaBox [ 0 0 612 792 ] /Parent 14 0 R /Resources << /Font << /F1 22 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Page 14 44 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 14 0 R /Resources << /Font << /F1 22 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Page 15 45 0 obj << /Contents 64 0 R /MediaBox [ 0 0 612 792 ] /Parent 14 0 R /Resources << /Font << /F1 22 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Contents for page 16 46 0 obj << /Length 47 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 16) Tj ET endstream endobj 47 0 obj 48 endobj %% Contents for page 17 48 0 obj << /Length 49 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 17) Tj ET endstream endobj 49 0 obj 48 endobj %% Contents for page 18 50 0 obj << /Length 51 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 18) Tj ET endstream endobj 51 0 obj 48 endobj %% Contents for page 19 52 0 obj << /Length 53 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 19) Tj ET endstream endobj 53 0 obj 48 endobj %% Contents for page 20 54 0 obj << /Length 55 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 20) Tj ET endstream endobj 55 0 obj 48 endobj %% Contents for page 11 56 0 obj << /Length 57 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 11) Tj ET endstream endobj 57 0 obj 48 endobj %% Contents for page 12 58 0 obj << /Length 59 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 12) Tj ET endstream endobj 59 0 obj 48 endobj %% Contents for page 13 60 0 obj << /Length 61 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 13) Tj ET endstream endobj 61 0 obj 48 endobj %% Contents for page 14 62 0 obj << /Length 63 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 14) Tj ET endstream endobj 63 0 obj 48 endobj %% Contents for page 15 64 0 obj << /Length 65 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 15) Tj ET endstream endobj 65 0 obj 48 endobj xref 0 66 0000000000 65535 f 0000000025 00000 n 0000000079 00000 n 0000000165 00000 n 0000000408 00000 n 0000000651 00000 n 0000000894 00000 n 0000001123 00000 n 0000001352 00000 n 0000001581 00000 n 0000001810 00000 n 0000002040 00000 n 0000002270 00000 n 0000002501 00000 n 0000002721 00000 n 0000002879 00000 n 0000003124 00000 n 0000003369 00000 n 0000003600 00000 n 0000003831 00000 n 0000004074 00000 n 0000004178 00000 n 0000004198 00000 n 0000004330 00000 n 0000004434 00000 n 0000004477 00000 n 0000004581 00000 n 0000004624 00000 n 0000004728 00000 n 0000004771 00000 n 0000004875 00000 n 0000004918 00000 n 0000005022 00000 n 0000005065 00000 n 0000005169 00000 n 0000005212 00000 n 0000005316 00000 n 0000005359 00000 n 0000005463 00000 n 0000005507 00000 n 0000005612 00000 n 0000005643 00000 n 0000005875 00000 n 0000006107 00000 n 0000006339 00000 n 0000006571 00000 n 0000006816 00000 n 0000006921 00000 n 0000006965 00000 n 0000007070 00000 n 0000007114 00000 n 0000007219 00000 n 0000007263 00000 n 0000007368 00000 n 0000007412 00000 n 0000007517 00000 n 0000007561 00000 n 0000007666 00000 n 0000007710 00000 n 0000007815 00000 n 0000007859 00000 n 0000007964 00000 n 0000008008 00000 n 0000008113 00000 n 0000008157 00000 n 0000008262 00000 n trailer << /Info 2 0 R /Root 1 0 R /Size 66 /ID [<0c6f92bbd30230ec62bc832f23eddc35>] >> startxref 8282 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-force-1.7.3.out0000644000064100006410000000014313247541377021151 0ustar ejbejbversion: 1.7 extension level: 3 << /ADBE << /BaseVersion /1.7 /ExtensionLevel 3 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.7-ogen.check0000644000064100006410000000026213247541377020405 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.12.c-check0000644000064100006410000000005013247541377017425 0ustar ejbejbversion: 1.3 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/split-exp-20000644000064100006410000000136313247541377015604 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼T#M,. -endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 6 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000398 00000 n trailer << /Root 1 0 R /Size 6 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 497 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/split-content-stream-errors.pdf0000644000064100006410000000217213247541377021675 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents [ 4 0 R 6 0 R ] /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 8 0 R >> /ProcSet 9 0 R >> /Type /Page >> endobj %% Contents for page 1 4 0 obj << /Length 5 0 R /Oops (Not a stream) >> endobj 5 0 obj 44 endobj %% Contents for page 1 6 0 obj << /Length 7 0 R /Filter /LZWDecode >> stream BT /F1 24 Tf 72 720 Td (Encoding errors) Tj ET endstream endobj 7 0 obj 53 endobj 8 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 9 0 obj [ /PDF /Text ] endobj xref 0 10 0000000000 65535 f 0000000025 00000 n 0000000079 00000 n 0000000161 00000 n 0000000396 00000 n 0000000457 00000 n 0000000499 00000 n 0000000628 00000 n 0000000647 00000 n 0000000765 00000 n trailer << /Root 1 0 R /Size 10 /ID [] >> startxref 800 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.11-ogen.c-check0000644000064100006410000000040613247541377020716 0ustar ejbejbversion: 1.5 linearized: 1 encrypted: 1 user password: extract for accessibility: 1 extract for any purpose: 1 print low resolution: 1 print high resolution: 1 modify document assembly: 1 modify forms: 1 modify annotations: 1 modify other: 1 modify anything: 1 qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.4-ogen.c-check0000644000064100006410000000005013247541377022305 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.4.c-check0000644000064100006410000000005013247541377017705 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.7.check0000644000064100006410000000026213247541377021147 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/bad30.out0000644000064100006410000000066613247541377015224 0ustar ejbejb/QTest is indirect and has type stream (10) /QTest is a stream. Dictionary: << /Filter (FlateDecode) /Length 123 >> Raw stream data: x%11 b;t4| wXID8G>rQu O E:IWPlII)rp4~;As/҅jcszT.?u<*6 Uncompressed stream data: WARNING: bad30.pdf (offset 629): stream filter type is not name or array Stream data is not filterable. unparse: 7 0 R unparseResolved: 7 0 R test 0 done qpdf-8.0.2/qpdf/qtest/qpdf/bad-data.pdf0000644000064100006410000000143713247541377015727 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet 6 0 R >> /Type /Page >> endobj 4 0 obj << /Length 48 /Filter /LZWDecode >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 5 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 6 0 obj [ /PDF /Text ] endobj xref 0 7 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000266 00000 n 0000000384 00000 n 0000000491 00000 n trailer << /Root 1 0 R /Size 7 /ID [<4a5e383aee3970ed44eb87234d7f93f1><4a5e383aee3970ed44eb87234d7f93f1>] >> startxref 521 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/issue-99.out0000644000064100006410000000033613247541377015714 0ustar ejbejbWARNING: issue-99.pdf: file is damaged WARNING: issue-99.pdf (offset 3526): xref not found WARNING: issue-99.pdf: Attempting to reconstruct cross-reference table issue-99.pdf (offset 4798): unable to find /Root dictionary qpdf-8.0.2/qpdf/qtest/qpdf/split-content-stream.pdf0000644000064100006410000000161313247541377020362 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents [ 4 0 R 5 0 R ] /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj 4 0 obj << /Length 37 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/kendstream endobj 5 0 obj << /Length 19 /Filter /FlateDecode >> stream xK,Tr endstream endobj 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 7 0 obj [ /PDF /Text ] endobj xref 0 8 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000276 00000 n 0000000383 00000 n 0000000472 00000 n 0000000579 00000 n trailer << /Root 1 0 R /Size 8 /ID [] >> startxref 609 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/a-06-split-exp.zdf0000644000064100006410000000174513247541377016674 0ustar ejbejb%PDF-1.4 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 53 >> stream x 휏nyA?(=2?&ꍕ>(ٙڤ aȊ1endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 6 0 obj << /Filter /Standard /Length 128 /O <2a2f0a1990192c60114730bdcd39f37828a53c89a340dd473c85299dc5258e1c> /P -4 /R 3 /U /V 2 >> endobj xref 0 7 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000398 00000 n 0000000497 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] /Encrypt 6 0 R >> startxref 704 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/normalize-warnings.out0000644000064100006410000000260413247541377020153 0ustar ejbejbWARNING: coalesce.pdf (offset 671): content normalization encountered bad tokens WARNING: coalesce.pdf (offset 671): normalized content ended with a bad token; you may be able to resolve this by coalescing content streams in combination with normalizing content. From the command line, specify --coalesce-contents WARNING: coalesce.pdf (offset 671): Resulting stream data may be corrupted but is may still useful for manual inspection. For more information on this warning, search for content normalization in the manual. WARNING: coalesce.pdf (offset 823): content normalization encountered bad tokens WARNING: coalesce.pdf (offset 823): Resulting stream data may be corrupted but is may still useful for manual inspection. For more information on this warning, search for content normalization in the manual. WARNING: coalesce.pdf (offset 962): content normalization encountered bad tokens WARNING: coalesce.pdf (offset 962): normalized content ended with a bad token; you may be able to resolve this by coalescing content streams in combination with normalizing content. From the command line, specify --coalesce-contents WARNING: coalesce.pdf (offset 962): Resulting stream data may be corrupted but is may still useful for manual inspection. For more information on this warning, search for content normalization in the manual. qpdf: operation succeeded with warnings; resulting file may have some problems qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.6-ogen.check0000644000064100006410000000026213247541377020106 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/split-exp.zdf_030000644000064100006410000000203113247541377016522 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 3) Tj ET endstream endobj 5 0 obj 47 endobj %% Original object ID: 5 0 6 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 7 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000242 00000 n 0000000509 00000 n 0000000611 00000 n 0000000657 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 765 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad-xref-entry-corrected.out0000644000064100006410000000077213247541377021130 0ustar ejbejbchecking bad-xref-entry.pdf PDF Version: 1.3 File is not encrypted File is not linearized WARNING: bad-xref-entry.pdf: file is damaged WARNING: bad-xref-entry.pdf (object 5 0, offset 580): expected n n obj WARNING: bad-xref-entry.pdf: Attempting to reconstruct cross-reference table 1/0: uncompressed; offset = 52 2/0: uncompressed; offset = 133 3/0: uncompressed; offset = 242 4/0: uncompressed; offset = 484 5/0: uncompressed; offset = 583 6/0: uncompressed; offset = 629 7/0: uncompressed; offset = 774 qpdf-8.0.2/qpdf/qtest/qpdf/bad32-recover.out0000644000064100006410000000057413247541377016667 0ustar ejbejbWARNING: bad32.pdf: file is damaged WARNING: bad32.pdf (object 4 0, offset 307): expected 4 0 obj WARNING: bad32.pdf: Attempting to reconstruct cross-reference table WARNING: bad32.pdf: object 4 0 not found in file after regenerating cross reference table /QTest is implicit /QTest is indirect and has type null (2) /QTest is null unparse: 4 0 R unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/good16.qdf0000644000064100006410000000234113247541377015365 0ustar ejbejb%PDF-1.5 % %QDF-1.0 1 0 obj << /Type /ObjStm /Length 723 /N 5 /First 86 >> stream 2 0 3 97 4 212 5 457 6 535 %% Object stream: object 2, index 0; original object ID: 2 << /Pages 3 0 R /Type /Catalog >> %% Object stream: object 3, index 1; original object ID: 3 << /Count 1 /Kids [ 4 0 R ] /Type /Pages >> %% Object stream: object 4, index 2; original object ID: 4 %% Page 1 << /Contents 7 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 5 0 R >> /Type /Page >> %% Object stream: object 5, index 3; original object ID: 5 [ /PDF /Text ] %% Object stream: object 6, index 4; original object ID: 6 << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endstream endobj %% Contents for page 1 %% Original object ID: 7 0 7 0 obj << /Length 8 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 8 0 obj 44 endobj 9 0 obj << /Type /XRef /Length 40 /W [ 1 2 1 ] /Root 2 0 R /Size 10 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> stream v endstream endobj startxref 1004 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.8-ogen.c-check0000644000064100006410000000005013247541377020621 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/bad16-recover.out0000644000064100006410000000175213247541377016670 0ustar ejbejbWARNING: bad16.pdf (trailer, offset 753): unexpected dictionary close token WARNING: bad16.pdf (trailer, offset 756): unexpected dictionary close token WARNING: bad16.pdf (trailer, offset 759): unknown token while reading object; treating as string WARNING: bad16.pdf (trailer, offset 779): unexpected EOF WARNING: bad16.pdf (trailer, offset 779): parse error while reading object WARNING: bad16.pdf: file is damaged WARNING: bad16.pdf (offset 712): expected trailer dictionary WARNING: bad16.pdf: Attempting to reconstruct cross-reference table WARNING: bad16.pdf (trailer, offset 753): unexpected dictionary close token WARNING: bad16.pdf (trailer, offset 756): unexpected dictionary close token WARNING: bad16.pdf (trailer, offset 759): unknown token while reading object; treating as string WARNING: bad16.pdf (trailer, offset 779): unexpected EOF WARNING: bad16.pdf (trailer, offset 779): parse error while reading object bad16.pdf: unable to find trailer dictionary while recovering damaged file qpdf-8.0.2/qpdf/qtest/qpdf/lin4.out0000644000064100006410000001426013247541377015174 0ustar ejbejbWARNING: page 0 has shared identifier entries WARNING: page 0: shared object 74: in hint table but not computed list lin4.pdf: linearization data: file_size: 13055 first_page_object: 74 first_page_end: 1539 npages: 30 xref_zero_offset: 11488 first_page: 0 H_offset: 946 H_length: 180 Page Offsets Hint Table min_nobjects: 2 first_page_offset: 1126 nbits_delta_nobjects: 2 min_page_length: 259 nbits_delta_page_length: 8 min_content_offset: 0 nbits_delta_content_offset: 0 min_content_length: 0 nbits_delta_content_length: 8 nbits_nshared_objects: 2 nbits_shared_identifier: 2 nbits_shared_numerator: 4 shared_denominator: 8 Page 0: nobjects: 4 length: 413 content_offset: 0 content_length: 154 nshared_objects: 2 identifier 0: 0 numerator 0: 0 identifier 1: 0 numerator 1: 0 Page 1: nobjects: 2 length: 259 content_offset: 0 content_length: 0 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 2: nobjects: 2 length: 259 content_offset: 0 content_length: 0 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 3: nobjects: 2 length: 259 content_offset: 0 content_length: 0 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 4: nobjects: 2 length: 259 content_offset: 0 content_length: 0 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 5: nobjects: 2 length: 261 content_offset: 0 content_length: 2 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 6: nobjects: 2 length: 262 content_offset: 0 content_length: 3 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 7: nobjects: 2 length: 262 content_offset: 0 content_length: 3 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 8: nobjects: 2 length: 262 content_offset: 0 content_length: 3 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 9: nobjects: 2 length: 262 content_offset: 0 content_length: 3 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 10: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 11: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 12: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 13: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 14: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 15: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 16: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 17: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 18: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 19: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 20: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 21: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 22: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 23: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 24: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 25: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 26: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 27: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 28: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 29: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Shared Objects Hint Table first_shared_obj: 0 first_shared_offset: 0 nshared_first_page: 4 nshared_total: 4 nbits_nobjects: 0 min_group_length: 34 nbits_delta_group_length: 7 Shared Object 0: group length: 157 Shared Object 1: group length: 105 Shared Object 2: group length: 117 Shared Object 3: group length: 34 Outlines Hint Table first_object: 60 first_object_offset: 9413 nobjects: 12 group_length: 2064 qpdf-8.0.2/qpdf/qtest/qpdf/bad12-recover.out0000644000064100006410000000033313247541377016656 0ustar ejbejbWARNING: bad12.pdf: reported number of objects (9) inconsistent with actual number of objects (8) /QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/good13.out0000644000064100006410000000066513247541377015426 0ustar ejbejb/QTest is indirect and has type dictionary (9) /QTest is a dictionary /hex strings is direct /indirect is indirect /nesting is direct /strings is direct unparse: 7 0 R unparseResolved: << /hex#20strings [ (Potato) <01020300040560> (AB) ] /indirect 8 0 R /nesting << /a [ 1 2 << /x (y) >> [ (z) ] ] /b << / (legal) /a [ 1 2 ] >> >> /strings [ (one) <24a2> () (\(\)) (\() (\)) (a\f\b\t\r\nb) <410042> (a\nb) (a b) ] >> test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/good17.pdf0000644000064100006410000004101713247541377015370 0ustar ejbejb%PDF-1.5 % %QDF-1.0 1 0 obj << /PageLabels 107 0 R /Pages 2 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 95 0 R >> endobj 2 0 obj << /Count 30 /Kids [ 3 0 R 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R ] /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents 33 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 2 4 0 obj << /Contents 37 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 3 5 0 obj << /Contents 39 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 4 6 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 5 7 0 obj << /Contents 43 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 6 8 0 obj << /Contents 45 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 7 9 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 8 10 0 obj << /Contents 49 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 9 11 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 10 12 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 11 13 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 12 14 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 13 15 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 14 16 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 15 17 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 16 18 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 17 19 0 obj << /Contents 67 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 18 20 0 obj << /Contents 69 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 19 21 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 20 22 0 obj << /Contents 73 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 21 23 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 22 24 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 23 25 0 obj << /Contents 79 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 24 26 0 obj << /Contents 81 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 25 27 0 obj << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 26 28 0 obj << /Contents 85 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 27 29 0 obj << /Contents 87 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 28 30 0 obj << /Contents 89 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 29 31 0 obj << /Contents 91 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 30 32 0 obj << /Contents 93 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Contents for page 1 33 0 obj << /Length 34 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 0) Tj ET endstream endobj 34 0 obj 46 endobj 35 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 36 0 obj [ /PDF /Text ] endobj %% Contents for page 2 37 0 obj << /Length 38 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 38 0 obj 46 endobj %% Contents for page 3 39 0 obj << /Length 40 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 40 0 obj 46 endobj %% Contents for page 4 41 0 obj << /Length 42 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 42 0 obj 46 endobj %% Contents for page 5 43 0 obj << /Length 44 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 44 0 obj 46 endobj %% Contents for page 6 45 0 obj << /Length 46 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 46 0 obj 46 endobj %% Contents for page 7 47 0 obj << /Length 48 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 48 0 obj 46 endobj %% Contents for page 8 49 0 obj << /Length 50 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 50 0 obj 46 endobj %% Contents for page 9 51 0 obj << /Length 52 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 52 0 obj 46 endobj %% Contents for page 10 53 0 obj << /Length 54 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 54 0 obj 46 endobj %% Contents for page 11 55 0 obj << /Length 56 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 56 0 obj 47 endobj %% Contents for page 12 57 0 obj << /Length 58 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 58 0 obj 47 endobj %% Contents for page 13 59 0 obj << /Length 60 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 60 0 obj 47 endobj %% Contents for page 14 61 0 obj << /Length 62 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 62 0 obj 47 endobj %% Contents for page 15 63 0 obj << /Length 64 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 64 0 obj 47 endobj %% Contents for page 16 65 0 obj << /Length 66 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 66 0 obj 47 endobj %% Contents for page 17 67 0 obj << /Length 68 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 68 0 obj 47 endobj %% Contents for page 18 69 0 obj << /Length 70 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 70 0 obj 47 endobj %% Contents for page 19 71 0 obj << /Length 72 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 72 0 obj 47 endobj %% Contents for page 20 73 0 obj << /Length 74 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 74 0 obj 47 endobj %% Contents for page 21 75 0 obj << /Length 76 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 76 0 obj 47 endobj %% Contents for page 22 77 0 obj << /Length 78 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 78 0 obj 47 endobj %% Contents for page 23 79 0 obj << /Length 80 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 80 0 obj 47 endobj %% Contents for page 24 81 0 obj << /Length 82 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 82 0 obj 47 endobj %% Contents for page 25 83 0 obj << /Length 84 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 84 0 obj 47 endobj %% Contents for page 26 85 0 obj << /Length 86 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 86 0 obj 47 endobj %% Contents for page 27 87 0 obj << /Length 88 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 88 0 obj 47 endobj %% Contents for page 28 89 0 obj << /Length 90 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 90 0 obj 47 endobj %% Contents for page 29 91 0 obj << /Length 92 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 92 0 obj 47 endobj %% Contents for page 30 93 0 obj << /Length 94 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 94 0 obj 47 endobj xref 0 111 0000000095 65535 f 0000000025 00000 n 0000000145 00000 n 0000000541 00000 n 0000000746 00000 n 0000000951 00000 n 0000001156 00000 n 0000001361 00000 n 0000001566 00000 n 0000001771 00000 n 0000001976 00000 n 0000002182 00000 n 0000002389 00000 n 0000002596 00000 n 0000002803 00000 n 0000003010 00000 n 0000003217 00000 n 0000003424 00000 n 0000003631 00000 n 0000003838 00000 n 0000004045 00000 n 0000004252 00000 n 0000004459 00000 n 0000004666 00000 n 0000004873 00000 n 0000005080 00000 n 0000005287 00000 n 0000005494 00000 n 0000005701 00000 n 0000005908 00000 n 0000006115 00000 n 0000006322 00000 n 0000006529 00000 n 0000006748 00000 n 0000006851 00000 n 0000006871 00000 n 0000006990 00000 n 0000007049 00000 n 0000007152 00000 n 0000007195 00000 n 0000007298 00000 n 0000007341 00000 n 0000007444 00000 n 0000007487 00000 n 0000007590 00000 n 0000007633 00000 n 0000007736 00000 n 0000007779 00000 n 0000007882 00000 n 0000007925 00000 n 0000008028 00000 n 0000008071 00000 n 0000008174 00000 n 0000008218 00000 n 0000008321 00000 n 0000008365 00000 n 0000008469 00000 n 0000008513 00000 n 0000008617 00000 n 0000008661 00000 n 0000008765 00000 n 0000008809 00000 n 0000008913 00000 n 0000008957 00000 n 0000009061 00000 n 0000009105 00000 n 0000009209 00000 n 0000009253 00000 n 0000009357 00000 n 0000009401 00000 n 0000009505 00000 n 0000009549 00000 n 0000009653 00000 n 0000009697 00000 n 0000009801 00000 n 0000009845 00000 n 0000009949 00000 n 0000009993 00000 n 0000010097 00000 n 0000010141 00000 n 0000010245 00000 n 0000010289 00000 n 0000010393 00000 n 0000010437 00000 n 0000010541 00000 n 0000010585 00000 n 0000010689 00000 n 0000010733 00000 n 0000010837 00000 n 0000010881 00000 n 0000010985 00000 n 0000011029 00000 n 0000011133 00000 n 0000011177 00000 n 0000011281 00000 n 0000000096 65535 f 0000000097 65535 f 0000000098 65535 f 0000000099 65535 f 0000000100 65535 f 0000000101 65535 f 0000000102 65535 f 0000000103 65535 f 0000000104 65535 f 0000000105 65535 f 0000000106 65535 f 0000000107 65535 f 0000000108 65535 f 0000000109 65535 f 0000000110 65535 f 0000000000 65535 f trailer << /Root 1 0 R /Size 111 >> startxref 11301 %%EOF 108 0 obj << /Type /ObjStm /N 10 /First 81 /Length 1806 >> stream 95 0 96 75 97 260 98 394 99 557 100 899 101 1078 102 1276 103 1433 104 1590 % 95 << /Type /Outlines /First 96 0 R /Last 97 0 R /Count 6 >> % 96 << /Type /Outline /Title (Iss 1 -> 5: /XYZ null null null) /Parent 95 0 R /Count 4 /Next 97 0 R /First 98 0 R /Last 99 0 R /Dest [ 8 0 R /XYZ null null null ] >> % 97 << /Type /Outline /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Parent 95 0 R /Prev 96 0 R /Dest [ 18 0 R /XYZ 66 756 3 ] >> % 98 << /Type /Outline /Title (Amanda 1.1 -> 11: /Fit) /Parent 96 0 R /Next 99 0 R /First 100 0 R /Last 101 0 R /Count -3 /Dest [ 14 0 R /Fit ] >> % 99 << /Type /Outline % /Title (Sandy (Sandy [Greek]) 1.2 -> 13: /FitH 792) /Title /Parent 96 0 R /Prev 98 0 R /First 105 0 R /Last 106 0 R /Count 2 /Dest [ 16 0 R /FitH 792 ] >> % 100 << /Type /Outline /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Parent 98 0 R /Next 101 0 R /First 102 0 R /Last 103 0 R /Count -2 /Dest [ 15 0 R /FitV 100 ] >> % 101 << /Type /Outline /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Parent 98 0 R /Prev 100 0 R /First 104 0 R /Last 104 0 R /Count 1 /Dest [ 15 0 R /XYZ null null null ] >> % 102 << /Type /Outline /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Parent 100 0 R /Next 103 0 R /Dest [ 21 0 R /XYZ null null null ] >> % 103 << /Type /Outline /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Parent 100 0 R /Prev 102 0 R /Dest [ 22 0 R /XYZ null null null ] >> % 104 << /Type /Outline /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Parent 101 0 R /Dest [ 25 0 R /XYZ null null null ] >> endstream endobj 110 0 obj << /Type /ObjStm /N 3 /First 28 /Length 636 /Extends 108 0 R >> stream 105 0 106 157 107 310 % 105 << /Type /Outline /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Parent 99 0 R /Next 106 0 R /Dest [ 4 0 R /FitR 66 714 180 770 ] >> % 106 << /Type /Outline /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Parent 99 0 R /Prev 105 0 R /Dest [ 3 0 R /XYZ null null null ] >> % 107 << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> endstream endobj 109 0 obj << /Type /XRef /Size 111 /Index [0 111] /W [1 2 1] /Length 444 /Root 1 0 R >> stream Q U $    `/k: vE\N?8c\   !!A!!"="i""#e##$%$$%!%M%%&I&u&' 'q'((1(()-)Y))*U**++}+,llllllllll nnn5?n< endstream endobj xref 0 0 trailer << /Size 111 /Root 1 0 R /Prev 11301 /XRefStm 16238 >> startxref 16808 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/test11.out0000644000064100006410000000007413247541377015445 0ustar ejbejbfiltered stream data okay raw stream data okay test 11 done qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.2-ogen.check0000644000064100006410000000026213247541377020057 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/unreferenced-indirect-scalar.out0000644000064100006410000000257513247541377022043 0ustar ejbejb%PDF-1.5 % %QDF-1.0 1 0 obj << /Type /ObjStm /Length 868 /N 7 /First 98 >> stream 2 0 3 97 4 212 5 457 6 618 7 696 8 767 %% Object stream: object 2, index 0; original object ID: 2 << /Pages 3 0 R /Type /Catalog >> %% Object stream: object 3, index 1; original object ID: 3 << /Count 1 /Kids [ 4 0 R ] /Type /Pages >> %% Object stream: object 4, index 2; original object ID: 4 %% Page 1 << /Contents 9 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet 6 0 R >> /Type /Page >> %% Object stream: object 5, index 3; original object ID: 5 << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> %% Object stream: object 6, index 4; original object ID: 6 [ /PDF /Text ] %% Object stream: object 7, index 5; original object ID: 7 [ 8 0 R ] %% Object stream: object 8, index 6; original object ID: 8 /Z endstream endobj %% Contents for page 1 %% Original object ID: 9 0 9 0 obj << /Length 10 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 10 0 obj 44 endobj 11 0 obj << /Type /XRef /Length 48 /W [ 1 2 1 ] /Root 2 0 R /Size 12 /ID [<982e03ebde5d62a6c3134bf8abe8b99c><31415926535897932384626433832795>] >> stream k endstream endobj startxref 1151 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/lin9.pdf0000644000064100006410000000636413247541377015151 0ustar ejbejb%PDF-1.3 % 17 0 obj << /Linearized 1 /L 3316 /H [ 713 162 ] /O 19 /E 1323 /N 5 /T 2849 >> endobj xref 17 8 0000000017 00000 n 0000000628 00000 n 0000000875 00000 n 0000000994 00000 n 0000001099 00000 n 0000001166 00000 n 0000001289 00000 n 0000000713 00000 n trailer << /Size 25 /Prev 2838 /Root 18 0 R /ID [<1f7d081fa297e4ccb97f31fe2bc8349c><1f7d081fa297e4ccb97f31fe2bc8349c>] >> startxref 0 %%EOF 18 0 obj << /Moo 14 0 R /Pages 12 0 R /Quack 16 0 R /Type /Catalog >> endobj 24 0 obj << /S 61 /Filter /FlateDecode /Length 74 >> stream xc``` .pŘX82> endobj 20 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 21 0 obj << /Font << /F1 22 0 R >> /ProcSet 23 0 R >> endobj 22 0 obj << /BaseFont /Courier-Oblique /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 23 0 obj [ /PDF /Text ] endobj 1 0 obj << /Contents 2 0 R /Parent 12 0 R /Type /Page /MediaBox [ 0 0 612 792 ] /Resources 10 0 R >> endobj 2 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 322 Td (Potato 2) Tj ET endstream endobj 3 0 obj << /Contents 4 0 R /Moo 14 0 R /Parent 13 0 R /Type /Page /MediaBox [ 0 0 612 396 ] /Resources 10 0 R >> endobj 4 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 322 Td (Potato 3) Tj ET endstream endobj 5 0 obj << /Contents 6 0 R /Parent 13 0 R /Resources << /Font << /F1 7 0 R >> /ProcSet 23 0 R >> /Type /Page /MediaBox [ 0 0 612 396 ] >> endobj 6 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 322 Td (Potato 4) Tj ET endstream endobj 7 0 obj << /BaseFont /Times-Bold /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 8 0 obj << /Contents 9 0 R /MediaBox [ 0 0 306 396 ] /Parent 13 0 R /Type /Page /Resources 10 0 R >> endobj 9 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 322 Td (Potato 5) Tj ET endstream endobj 10 0 obj << /Font << /F1 11 0 R >> /ProcSet 23 0 R >> endobj 11 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 12 0 obj << /Count 5 /Kids [ 19 0 R 1 0 R 13 0 R ] /Type /Pages >> endobj 13 0 obj << /Count 3 /Kids [ 3 0 R 5 0 R 8 0 R ] /Parent 12 0 R /Type /Pages >> endobj 14 0 obj << /Null 15 0 R /One 1 /Two 2 >> endobj 15 0 obj null endobj 16 0 obj null endobj xref 0 17 0000000017 65535 f 0000001323 00000 n 0000001440 00000 n 0000001544 00000 n 0000001674 00000 n 0000001778 00000 n 0000001932 00000 n 0000002036 00000 n 0000002153 00000 n 0000002270 00000 n 0000002374 00000 n 0000002441 00000 n 0000002558 00000 n 0000002639 00000 n 0000002734 00000 n 0000002790 00000 n 0000002814 00000 n trailer << /Size 17 /ID [<1f7d081fa297e4ccb97f31fe2bc8349c><1f7d081fa297e4ccb97f31fe2bc8349c>] >> startxref 178 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.2.check0000644000064100006410000000026213247541377017452 0ustar ejbejbchecking a.pdf PDF Version: 1.2 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.4.c-check0000644000064100006410000000005013247541377021357 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/split-exp-30000644000064100006410000000136313247541377015605 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TcM,. .endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 6 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000398 00000 n trailer << /Root 1 0 R /Size 6 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 497 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.10-ogen.c-check0000644000064100006410000000040613247541377020356 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 1 user password: extract for accessibility: 1 extract for any purpose: 1 print low resolution: 1 print high resolution: 1 modify document assembly: 1 modify forms: 1 modify annotations: 1 modify other: 1 modify anything: 1 qpdf-8.0.2/qpdf/qtest/qpdf/long-id-linearized.pdf0000644000064100006410000000247213247541377017747 0ustar ejbejb%PDF-1.3 % 2 0 obj << /Linearized 1 /L 1338 /H [ 583 118 ] /O 5 /E 1099 /N 1 /T 1166 >> endobj xref 2 7 0000000015 00000 n 0000000534 00000 n 0000000583 00000 n 0000000701 00000 n 0000000844 00000 n 0000000962 00000 n 0000000992 00000 n trailer << /Root 3 0 R /Size 9 /Prev 1158 /ID [<443a32303130303432333131333433382b303227303027><0225750130e032ea0c25b88139c608cd>] >> startxref 0 %%EOF 3 0 obj << /Pages 1 0 R /Type /Catalog >> endobj 4 0 obj << /Filter /FlateDecode /S 36 /Length 41 >> stream xc```a``rg>8p1?N`O> endstream endobj 5 0 obj << /Contents 6 0 R /MediaBox [ 0 0 612 792 ] /Parent 1 0 R /Resources << /Font << /F1 8 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj 6 0 obj << /Length 48 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 7 0 obj [ /PDF /Text ] endobj 8 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 1 0 obj << /Count 1 /Kids [ 5 0 R ] /Type /Pages >> endobj xref 0 2 0000000000 65535 f 0000001099 00000 n trailer << /Size 2 /ID [<443a32303130303432333131333433382b303227303027><0225750130e032ea0c25b88139c608cd>] >> startxref 216 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/good6.pdf0000644000064100006410000000141213247541377015301 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /QTest false >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad9.pdf0000644000064100006410000000137313247541377015110 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Siqe 7 /Root 1 0 R >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.11.check0000644000064100006410000000067213247541377017241 0ustar ejbejbchecking a.pdf PDF Version: 1.5 R = 3 P = -4 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed File is linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/reserved-objects.out0000644000064100006410000000047513247541377017577 0ustar ejbejbres1 is still reserved after checking if array res1 is no longer reserved res1 is an array logic error: QPDFObjectHandle: attempting to unparse a reserved object logic error: QPDFObjectHandle: attempting to make a reserved object handle direct res2 is an array circular access and lazy resolution worked test 24 done qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.7.c-check0000644000064100006410000000005013247541377017351 0ustar ejbejbversion: 1.3 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.9-ogen.check0000644000064100006410000000025613247541377020430 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.10.c-check0000644000064100006410000000040613247541377017751 0ustar ejbejbversion: 1.4 linearized: 0 encrypted: 1 user password: extract for accessibility: 1 extract for any purpose: 1 print low resolution: 1 print high resolution: 1 modify document assembly: 1 modify forms: 1 modify annotations: 1 modify other: 1 modify anything: 1 qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.4-ogen.c-check0000644000064100006410000000005013247541377020274 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/empty-object.out0000644000064100006410000000024513247541377016726 0ustar ejbejbWARNING: empty-object.pdf (object 7 0, offset 575): empty object treated as null null qpdf: operation succeeded with warnings; resulting file may have some problems qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.9-ogen.c-check0000644000064100006410000000005013247541377020640 0ustar ejbejbversion: 1.5 linearized: 1 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/tokens-maxlen.out0000644000064100006410000014015413247541377017115 0ustar ejbejb--- BEGIN FILE --- 0: comment: %PDF-1.5 8: space: \x0a 9: comment: %\xbf\xf7\xa2\xfe 14: space: \x0a 15: comment: %QDF-1.0 23: space: \x0a\x0a 25: comment: %comment 1 35: space: \x0d 36: comment: %comment 2 46: space: \x0d\x0a 48: comment: %comment 3 58: space: \x0a\x0a 60: integer: 1 61: space: 62: integer: 0 63: space: 64: word: obj 67: space: \x0a 68: dict_open: << 70: space: \x0a 73: name: /Type 78: space: 79: name: /ObjStm 86: space: \x0a 89: name: /Length 96: space: 97: integer: 6020 101: space: \x0a 104: name: /N 106: space: 107: integer: 35 109: space: \x0a 112: name: /First 118: space: 119: integer: 323 122: space: \x0a 123: dict_close: >> 125: space: \x0a 126: word: stream skipping to endstream 6153: word: endstream 6162: space: \x0a 6163: word: endobj 6169: space: \x0a\x0a 6171: comment: %% Contents for page 1 6193: space: \x0a 6194: comment: %% Original object ID: 37 0 6221: space: \x0a 6222: integer: 37 6224: space: 6225: integer: 0 6226: space: 6227: word: obj 6230: space: \x0a 6231: dict_open: << 6233: space: \x0a 6236: name: /Length 6243: space: 6244: integer: 38 6246: space: 6247: integer: 0 6248: space: 6249: word: R 6250: space: \x0a 6251: dict_close: >> 6253: space: \x0a 6254: word: stream skipping to endstream 6305: word: endstream 6314: space: \x0a 6315: word: endobj 6321: space: \x0a\x0a 6323: integer: 38 6325: space: 6326: integer: 0 6327: space: 6328: word: obj 6331: space: \x0a 6332: integer: 44 6334: space: \x0a 6335: word: endobj 6341: space: \x0a\x0a 6343: comment: %% Contents for page 2 6365: space: \x0a 6366: comment: %% Original object ID: 38 0 6393: space: \x0a 6394: integer: 39 6396: space: 6397: integer: 0 6398: space: 6399: word: obj 6402: space: \x0a 6403: dict_open: << 6405: space: \x0a 6408: name: /Length 6415: space: 6416: integer: 40 6418: space: 6419: integer: 0 6420: space: 6421: word: R 6422: space: \x0a 6423: dict_close: >> 6425: space: \x0a 6426: word: stream skipping to endstream 6832: word: endstream 6841: space: \x0a 6842: word: endobj 6848: space: \x0a\x0a 6850: integer: 40 6852: space: 6853: integer: 0 6854: space: 6855: word: obj 6858: space: \x0a 6859: integer: 399 6862: space: \x0a 6863: word: endobj 6869: space: \x0a\x0a 6871: comment: %% Contents for page 3 6893: space: \x0a 6894: comment: %% Original object ID: 39 0 6921: space: \x0a 6922: integer: 41 6924: space: 6925: integer: 0 6926: space: 6927: word: obj 6930: space: \x0a 6931: dict_open: << 6933: space: \x0a 6936: name: /Length 6943: space: 6944: integer: 42 6946: space: 6947: integer: 0 6948: space: 6949: word: R 6950: space: \x0a 6951: dict_close: >> 6953: space: \x0a 6954: word: stream skipping to endstream 7001: word: endstream 7010: space: \x0a 7011: word: endobj 7017: space: \x0a\x0a 7019: integer: 42 7021: space: 7022: integer: 0 7023: space: 7024: word: obj 7027: space: \x0a 7028: integer: 40 7030: space: \x0a 7031: word: endobj 7037: space: \x0a\x0a 7039: comment: %% Contents for page 4 7061: space: \x0a 7062: comment: %% Original object ID: 40 0 7089: space: \x0a 7090: integer: 43 7092: space: 7093: integer: 0 7094: space: 7095: word: obj 7098: space: \x0a 7099: dict_open: << 7101: space: \x0a 7104: name: /Length 7111: space: 7112: integer: 44 7114: space: 7115: integer: 0 7116: space: 7117: word: R 7118: space: \x0a 7119: dict_close: >> 7121: space: \x0a 7122: word: stream skipping to endstream 7404: word: endstream 7413: space: \x0a 7414: word: endobj 7420: space: \x0a\x0a 7422: integer: 44 7424: space: 7425: integer: 0 7426: space: 7427: word: obj 7430: space: \x0a 7431: integer: 275 7434: space: \x0a 7435: word: endobj 7441: space: \x0a\x0a 7443: comment: %% Contents for page 5 7465: space: \x0a 7466: comment: %% Original object ID: 41 0 7493: space: \x0a 7494: integer: 45 7496: space: 7497: integer: 0 7498: space: 7499: word: obj 7502: space: \x0a 7503: dict_open: << 7505: space: \x0a 7508: name: /Length 7515: space: 7516: integer: 46 7518: space: 7519: integer: 0 7520: space: 7521: word: R 7522: space: \x0a 7523: dict_close: >> 7525: space: \x0a 7526: word: stream skipping to endstream 7601: word: endstream 7610: space: \x0a 7611: word: endobj 7617: space: \x0a 7618: comment: %QDF: ignore_newline 7638: space: \x0a\x0a 7640: integer: 46 7642: space: 7643: integer: 0 7644: space: 7645: word: obj 7648: space: \x0a 7649: integer: 67 7651: space: \x0a 7652: word: endobj 7658: space: \x0a\x0a 7660: comment: %% Contents for page 6 7682: space: \x0a 7683: comment: %% Original object ID: 42 0 7710: space: \x0a 7711: integer: 47 7713: space: 7714: integer: 0 7715: space: 7716: word: obj 7719: space: \x0a 7720: dict_open: << 7722: space: \x0a 7725: name: /Length 7732: space: 7733: integer: 48 7735: space: 7736: integer: 0 7737: space: 7738: word: R 7739: space: \x0a 7740: dict_close: >> 7742: space: \x0a 7743: word: stream skipping to endstream 7794: word: endstream 7803: space: \x0a 7804: word: endobj 7810: space: \x0a\x0a 7812: integer: 48 7814: space: 7815: integer: 0 7816: space: 7817: word: obj 7820: space: \x0a 7821: integer: 44 7823: space: \x0a 7824: word: endobj 7830: space: \x0a\x0a 7832: comment: %% Contents for page 7 7854: space: \x0a 7855: comment: %% Original object ID: 43 0 7882: space: \x0a 7883: integer: 49 7885: space: 7886: integer: 0 7887: space: 7888: word: obj 7891: space: \x0a 7892: dict_open: << 7894: space: \x0a 7897: name: /Length 7904: space: 7905: integer: 50 7907: space: 7908: integer: 0 7909: space: 7910: word: R 7911: space: \x0a 7912: dict_close: >> 7914: space: \x0a 7915: word: stream skipping to endstream 8241: word: endstream 8250: space: \x0a 8251: word: endobj 8257: space: \x0a 8258: comment: %QDF: ignore_newline 8278: space: \x0a\x0a 8280: integer: 50 8282: space: 8283: integer: 0 8284: space: 8285: word: obj 8288: space: \x0a 8289: integer: 318 8292: space: \x0a 8293: word: endobj 8299: space: \x0a\x0a 8301: comment: %% Contents for page 8 8323: space: \x0a 8324: comment: %% Original object ID: 44 0 8351: space: \x0a 8352: integer: 51 8354: space: 8355: integer: 0 8356: space: 8357: word: obj 8360: space: \x0a 8361: dict_open: << 8363: space: \x0a 8366: name: /Length 8373: space: 8374: integer: 52 8376: space: 8377: integer: 0 8378: space: 8379: word: R 8380: space: \x0a 8381: dict_close: >> 8383: space: \x0a 8384: word: stream skipping to endstream 8435: word: endstream 8444: space: \x0a 8445: word: endobj 8451: space: \x0a\x0a 8453: integer: 52 8455: space: 8456: integer: 0 8457: space: 8458: word: obj 8461: space: \x0a 8462: integer: 44 8464: space: \x0a 8465: word: endobj 8471: space: \x0a\x0a 8473: comment: %% Contents for page 9 8495: space: \x0a 8496: comment: %% Original object ID: 45 0 8523: space: \x0a 8524: integer: 53 8526: space: 8527: integer: 0 8528: space: 8529: word: obj 8532: space: \x0a 8533: dict_open: << 8535: space: \x0a 8538: name: /Length 8545: space: 8546: integer: 54 8548: space: 8549: integer: 0 8550: space: 8551: word: R 8552: space: \x0a 8553: dict_close: >> 8555: space: \x0a 8556: word: stream skipping to endstream 8607: word: endstream 8616: space: \x0a 8617: word: endobj 8623: space: \x0a\x0a 8625: integer: 54 8627: space: 8628: integer: 0 8629: space: 8630: word: obj 8633: space: \x0a 8634: integer: 44 8636: space: \x0a 8637: word: endobj 8643: space: \x0a\x0a 8645: comment: %% Contents for page 10 8668: space: \x0a 8669: comment: %% Original object ID: 46 0 8696: space: \x0a 8697: integer: 55 8699: space: 8700: integer: 0 8701: space: 8702: word: obj 8705: space: \x0a 8706: dict_open: << 8708: space: \x0a 8711: name: /Length 8718: space: 8719: integer: 56 8721: space: 8722: integer: 0 8723: space: 8724: word: R 8725: space: \x0a 8726: dict_close: >> 8728: space: \x0a 8729: word: stream skipping to endstream 8780: word: endstream 8789: space: \x0a 8790: word: endobj 8796: space: \x0a\x0a 8798: integer: 56 8800: space: 8801: integer: 0 8802: space: 8803: word: obj 8806: space: \x0a 8807: integer: 44 8809: space: \x0a 8810: word: endobj 8816: space: \x0a\x0a 8818: comment: %% Contents for page 11 8841: space: \x0a 8842: comment: %% Original object ID: 47 0 8869: space: \x0a 8870: integer: 57 8872: space: 8873: integer: 0 8874: space: 8875: word: obj 8878: space: \x0a 8879: dict_open: << 8881: space: \x0a 8884: name: /Length 8891: space: 8892: integer: 58 8894: space: 8895: integer: 0 8896: space: 8897: word: R 8898: space: \x0a 8899: dict_close: >> 8901: space: \x0a 8902: word: stream skipping to endstream 8953: word: endstream 8962: space: \x0a 8963: word: endobj 8969: space: \x0a\x0a 8971: integer: 58 8973: space: 8974: integer: 0 8975: space: 8976: word: obj 8979: space: \x0a 8980: integer: 44 8982: space: \x0a 8983: word: endobj 8989: space: \x0a\x0a 8991: integer: 59 8993: space: 8994: integer: 0 8995: space: 8996: word: obj 8999: space: \x0a 9000: dict_open: << 9002: space: \x0a 9005: name: /Type 9010: space: 9011: name: /XRef 9016: space: \x0a 9019: name: /Length 9026: space: 9027: integer: 240 9030: space: \x0a 9033: name: /W 9035: space: 9036: array_open: [ 9037: space: 9038: integer: 1 9039: space: 9040: integer: 2 9041: space: 9042: integer: 1 9043: space: 9044: array_close: ] 9045: space: \x0a 9048: name: /Root 9053: space: 9054: integer: 2 9055: space: 9056: integer: 0 9057: space: 9058: word: R 9059: space: \x0a 9062: name: /Size 9067: space: 9068: integer: 60 9070: space: \x0a 9073: name: /ID 9076: space: 9077: array_open: [ 9078: string: \x88\x04\x8e\x17\xc9a\xe0\x94\xff\xec\xe9\x8c\xb8\x8cF\xd0 (raw: <88048e17c961e094ffece98cb88c46d0>) 9112: string: \xed\xd6\x0f\xe8\xee\x87\xf8\x871\xa8o\x81\x9f\xe6Q\x99 (raw: ) 9146: array_close: ] 9147: space: \x0a 9148: dict_close: >> 9150: space: \x0a 9151: word: stream skipping to endstream 9399: word: endstream 9408: space: \x0a 9409: word: endobj 9415: space: \x0a\x0a 9417: word: startxref 9426: space: \x0a 9427: integer: 8991 9431: space: \x0a 9432: comment: %%EOF 9437: space: \x0a 9438: eof --- END FILE --- --- BEGIN PAGE 1 --- 0: word: BT 2: space: \x0a 5: name: /F1 8: space: 9: integer: 24 11: space: 12: word: Tf 14: space: \x0a 17: integer: 72 19: space: 20: integer: 720 23: space: 24: word: Td 26: space: \x0a 29: string: Potato (raw: (Potato)) 37: space: 38: word: Tj 40: space: \x0a 41: word: ET 43: space: \x0a 44: eof --- END PAGE 1 --- --- BEGIN PAGE 2 --- 0: word: BT 2: space: \x0a 5: name: /F1 8: space: 9: integer: 24 11: space: 12: word: Tf 14: space: \x0a 17: integer: 72 19: space: 20: integer: 720 23: space: 24: word: Td 26: space: \x0a 29: string: Potato (raw: (Potato)) 37: space: 38: word: Tj 40: space: \x0a 41: word: ET 43: space: \x0a 44: word: BI 46: space: \x0a 47: name: /CS 50: space: 51: name: /G 53: name: /W 55: space: 56: integer: 66 58: name: /H 60: space: 61: integer: 47 63: name: /BPC 67: space: 68: integer: 8 69: name: /F 71: name: /Fl 74: name: /DP 77: dict_open: << 79: name: /Predictor 89: space: 90: integer: 15 92: name: /Columns 100: space: 101: integer: 66 103: dict_close: >> 105: space: \x0a 106: word: ID 108: inline-image: x\x9c\xc5\xd6I\x0e\xc3 \x0c\x05P|\xffC;U\xc8`\xc0\xd37\x91Z\xa9\x0b\xa6\x17\x02\xc4\x98\xda\xe6\x8f\x1b}D\xf0\xef_\xb4\xf8\x1c\xc9W\xa9\x84\x9c\xc4-\x94\x88>\xff\x87\xc0\x8d>\x94^\x01&\xae\xa1u\xe2]\x80"!\x87\x95\x08\x96\x05*\xac&\x8fE|Sy\xae \xf0d-\x80<\x9d\x19B\x010B\x05\xfa@N\x11\xea+<\x1fhl\xe8K\xd0\xee/56L\xa0\x89\x90\xe3\x19\x1e \xa3\x96\xb9\xa6>0\x06>\x15Y\x81\xf9!c\xec\\x0eY\x0c\xd8\x0f%Y\xf0\x01\xa5\xd68?&\xa0\xd6\xeb\x88}j\x92\xfb\xe8\x1d;\xab\x8d3\x9d\xc2\xd6l\x14p\xdbsH\xf6\xfbt\xfa\x01Q\x02\xd8Tt*h\xccU\xfa\xe3w\x07\xcd\xd5\xd0%\xa8)p\x96\xb3"\x95DiRj\xb9\x96D\x18YNU\x11\xd3\xd9Av\x92F\xe0&\x0d\x90\xcd\xd4u#c\x95\xc6W\x09\xf4\xdf\x89\x03W\x93O\x0d\x0aEI\x0a 355: word: BT 357: space: \x0a 360: name: /F1 363: space: 364: integer: 24 366: space: 367: word: Tf 369: space: \x0a 372: integer: 72 374: space: 375: integer: 720 378: space: 379: word: Td 381: space: \x0a 384: string: Potato (raw: (Potato)) 392: space: 393: word: Tj 395: space: \x0a 396: word: ET 398: space: \x0a 399: eof --- END PAGE 2 --- --- BEGIN PAGE 3 --- 0: word: BT 2: space: \x0a 5: name: /F1 8: space: 9: integer: 24 11: space: 12: word: Tf 14: space: \x0a 17: integer: 72 19: space: 20: integer: 720 23: space: 24: word: Td 26: space: \x0a 29: bad: (Potato\x0aET\x0a (EOF while reading token) 40: eof --- END PAGE 3 --- --- BEGIN PAGE 4 --- 0: word: BT 2: space: \x0a 5: name: /F1 8: space: 9: integer: 24 11: space: 12: word: Tf 14: space: \x0a 17: string: \xfe\xeb (raw: ) 23: space: \x0a 26: string: \xab\xcd (raw: ) 33: space: \x0a 36: string: quack (raw: (qu\\x0d\x0aack)) 46: space: \x0a 49: string: quack (raw: (qu\\x0aack)) 58: space: \x0a 61: string: quack (raw: (qu\\x0dack)) 70: space: \x0a 73: integer: 72 75: space: 76: integer: 720 79: space: 80: word: Td 82: space: \x0a 85: real: 3.14 89: space: \x0a 92: real: 3. 94: space: \x0a 97: real: .14 100: space: \x0a 103: real: +3.14 108: space: \x0a 111: real: +3. 114: space: \x0a 117: real: +.14 121: space: \x0a 124: real: -3.14 129: space: \x0a 132: real: -3. 135: space: \x0a 138: real: -.14 142: space: \x0a 145: integer: +16059 151: space: \x0a 154: integer: -16059 160: space: \x0a 163: word: +. 165: space: \x0a 168: bad: (unexpected >) 179: word: quack 184: space: 185: bad: /name#oops (invalid name token) 195: space: 196: name: /name (raw: /n#61me) 203: space: 204: word: one 207: space: 208: bool: true 212: space: 213: word: two 216: space: 217: bool: false 222: space: 223: word: three 228: space: 229: null: null 233: space: 234: word: four 238: space: \x0a 239: word: !@#$^& 245: brace_open: { 246: brace_close: } 247: word: *-_+= 252: space: \x0a 253: word: abc123def3.14true 270: space: \x0a 271: bad: > 69: space: \x0a 70: word: ID 72: inline-image: x\x9c\xc5\xd6I\x0e\xc3 \x0c\x05P|\xffC;U\xc8`\xc0\xd37\x91Z\xa9\x0b\xa6\x17\x02\xc4\x98\xda\xe6\x8f\x1b}D\xf0\xef_\xb4\xf8\x1c\xc9W\xa9\x84\x9c\xc4-\x94\x88>\xff\x87\xc0\x8d>\x94^\x01&\xae\xa1u\xe2]\x80"!\x87\x95\x08\x96\x05*\xac&\x8fE|Sy\xae \xf0d-\x80<\x9d\x19B\x010B\x05\xfa@N\x11\xea+<\x1fhl\xe8K\xd0\xee/56L\xa0\x89\x90\xe3\x19\x1e \xa3\x96\xb9\xa6>0\x06>\x15Y\x81\xf9!c\xec\\x0eY\x0c\xd8\x0f%Y\xf0\x01\xa5\xd68?&\xa0\xd6\xeb\x88}j\x92\xfb\xe8\x1d;\xab\x8d3\x9d\xc2\xd6l\x14p\xdbsH\xf6\xfbt\xfa\x01Q\x02\xd8Tt*h\xccU\xfa\xe3w\x07\xcd\xd5\xd0%\xa8)p\x96\xb3"\x95DiRj\xb9\x96D\x18YNU\x11\xd3\xd9Av\x92F\xe0&\x0d\x90\xcd\xd4u#c\x95\xc6W\x09\xf4\xdf\x89\x03W\x93O\x0d\x0aEI 318: eof --- END PAGE 7 --- --- BEGIN PAGE 8 --- 0: word: BT 2: space: \x0a 5: name: /F1 8: space: 9: integer: 24 11: space: 12: word: Tf 14: space: \x0a 17: integer: 72 19: space: 20: integer: 720 23: space: 24: word: Td 26: space: \x0a 29: string: Potato (raw: (Potato)) 37: space: 38: word: Tj 40: space: \x0a 41: word: ET 43: space: \x0a 44: eof --- END PAGE 8 --- --- BEGIN PAGE 9 --- 0: word: BT 2: space: \x0a 5: name: /F1 8: space: 9: integer: 24 11: space: 12: word: Tf 14: space: \x0a 17: integer: 72 19: space: 20: integer: 720 23: space: 24: word: Td 26: space: \x0a 29: string: Potato (raw: (Potato)) 37: space: 38: word: Tj 40: space: \x0a 41: word: ET 43: space: \x0a 44: eof --- END PAGE 9 --- --- BEGIN PAGE 10 --- 0: word: BT 2: space: \x0a 5: name: /F1 8: space: 9: integer: 24 11: space: 12: word: Tf 14: space: \x0a 17: integer: 72 19: space: 20: integer: 720 23: space: 24: word: Td 26: space: \x0a 29: string: Potato (raw: (Potato)) 37: space: 38: word: Tj 40: space: \x0a 41: word: ET 43: space: \x0a 44: eof --- END PAGE 10 --- --- BEGIN PAGE 11 --- 0: word: BT 2: space: \x0a 5: name: /F1 8: space: 9: integer: 24 11: space: 12: word: Tf 14: space: \x0a 17: integer: 72 19: space: 20: integer: 720 23: space: 24: word: Td 26: space: \x0a 29: string: Potato (raw: (Potato)) 37: space: 38: word: Tj 40: space: \x0a 41: word: ET 43: space: \x0a 44: eof --- END PAGE 11 --- --- BEGIN OBJECT STREAM 1 --- 0: integer: 2 1: space: 2: integer: 0 3: space: \x0a 4: integer: 3 5: space: 6: integer: 97 8: space: \x0a 9: integer: 4 10: space: 11: integer: 318 14: space: \x0a 15: integer: 5 16: space: 17: integer: 566 20: space: \x0a 21: integer: 6 22: space: 23: integer: 814 26: space: \x0a 27: integer: 7 28: space: 29: integer: 1062 33: space: \x0a 34: integer: 8 35: space: 36: integer: 1310 40: space: \x0a 41: integer: 9 42: space: 43: integer: 1558 47: space: \x0a 48: integer: 10 50: space: 51: integer: 1808 55: space: \x0a 56: integer: 11 58: space: 59: integer: 2058 63: space: \x0a 64: integer: 12 66: space: 67: integer: 2309 71: space: \x0a 72: integer: 13 74: space: 75: integer: 2560 79: space: \x0a 80: integer: 14 82: space: 83: integer: 2812 87: space: \x0a 88: integer: 15 90: space: 91: integer: 3064 95: space: \x0a 96: integer: 16 98: space: 99: integer: 3228 103: space: \x0a 104: integer: 17 106: space: 107: integer: 3309 111: space: \x0a 112: integer: 18 114: space: 115: integer: 3473 119: space: \x0a 120: integer: 19 122: space: 123: integer: 3554 127: space: \x0a 128: integer: 20 130: space: 131: integer: 3718 135: space: \x0a 136: integer: 21 138: space: 139: integer: 3799 143: space: \x0a 144: integer: 22 146: space: 147: integer: 3963 151: space: \x0a 152: integer: 23 154: space: 155: integer: 4044 159: space: \x0a 160: integer: 24 162: space: 163: integer: 4208 167: space: \x0a 168: integer: 25 170: space: 171: integer: 4289 175: space: \x0a 176: integer: 26 178: space: 179: integer: 4453 183: space: \x0a 184: integer: 27 186: space: 187: integer: 4534 191: space: \x0a 192: integer: 28 194: space: 195: integer: 4698 199: space: \x0a 200: integer: 29 202: space: 203: integer: 4779 207: space: \x0a 208: integer: 30 210: space: 211: integer: 4943 215: space: \x0a 216: integer: 31 218: space: 219: integer: 5024 223: space: \x0a 224: integer: 32 226: space: 227: integer: 5188 231: space: \x0a 232: integer: 33 234: space: 235: integer: 5269 239: space: \x0a 240: integer: 34 242: space: 243: integer: 5433 247: space: \x0a 248: integer: 35 250: space: 251: integer: 5514 255: space: \x0a 256: integer: 36 258: space: 259: integer: 5678 263: space: \x0a 264: bad: %% Object stream: object 2, index 0; original obje (exceeded allowable length while reading token) 314: word: ct 316: space: 317: word: ID: 320: space: 321: integer: 2 322: space: \x0a 323: dict_open: << 325: space: \x0a 328: name: /Pages 334: space: 335: integer: 3 336: space: 337: integer: 0 338: space: 339: word: R 340: space: \x0a 343: name: /Type 348: space: 349: name: /Catalog 357: space: \x0a 358: dict_close: >> 360: space: \x0a 361: bad: %% Object stream: object 3, index 1; original obje (exceeded allowable length while reading token) 411: word: ct 413: space: 414: word: ID: 417: space: 418: integer: 3 419: space: \x0a 420: dict_open: << 422: space: \x0a 425: name: /Count 431: space: 432: integer: 11 434: space: \x0a 437: name: /Kids 442: space: 443: array_open: [ 444: space: \x0a 449: integer: 4 450: space: 451: integer: 0 452: space: 453: word: R 454: space: \x0a 459: integer: 5 460: space: 461: integer: 0 462: space: 463: word: R 464: space: \x0a 469: integer: 6 470: space: 471: integer: 0 472: space: 473: word: R 474: space: \x0a 479: integer: 7 480: space: 481: integer: 0 482: space: 483: word: R 484: space: \x0a 489: integer: 8 490: space: 491: integer: 0 492: space: 493: word: R 494: space: \x0a 499: integer: 9 500: space: 501: integer: 0 502: space: 503: word: R 504: space: \x0a 509: integer: 10 511: space: 512: integer: 0 513: space: 514: word: R 515: space: \x0a 520: integer: 11 522: space: 523: integer: 0 524: space: 525: word: R 526: space: \x0a 531: integer: 12 533: space: 534: integer: 0 535: space: 536: word: R 537: space: \x0a 542: integer: 13 544: space: 545: integer: 0 546: space: 547: word: R 548: space: \x0a 553: integer: 14 555: space: 556: integer: 0 557: space: 558: word: R 559: space: \x0a 562: array_close: ] 563: space: \x0a 566: name: /Type 571: space: 572: name: /Pages 578: space: \x0a 579: dict_close: >> 581: space: \x0a 582: bad: %% Object stream: object 4, index 2; original obje (exceeded allowable length while reading token) 632: word: ct 634: space: 635: word: ID: 638: space: 639: integer: 4 640: space: \x0a 641: comment: %% Page 1 650: space: \x0a 651: dict_open: << 653: space: \x0a 656: name: /Contents 665: space: 666: integer: 37 668: space: 669: integer: 0 670: space: 671: word: R 672: space: \x0a 675: name: /MediaBox 684: space: 685: array_open: [ 686: space: \x0a 691: integer: 0 692: space: \x0a 697: integer: 0 698: space: \x0a 703: integer: 612 706: space: \x0a 711: integer: 792 714: space: \x0a 717: array_close: ] 718: space: \x0a 721: name: /Parent 728: space: 729: integer: 3 730: space: 731: integer: 0 732: space: 733: word: R 734: space: \x0a 737: name: /Resources 747: space: 748: dict_open: << 750: space: \x0a 755: name: /Font 760: space: 761: dict_open: << 763: space: \x0a 770: name: /F1 773: space: 774: integer: 15 776: space: 777: integer: 0 778: space: 779: word: R 780: space: \x0a 785: dict_close: >> 787: space: \x0a 792: name: /ProcSet 800: space: 801: integer: 16 803: space: 804: integer: 0 805: space: 806: word: R 807: space: \x0a 810: dict_close: >> 812: space: \x0a 815: name: /Type 820: space: 821: name: /Page 826: space: \x0a 827: dict_close: >> 829: space: \x0a 830: bad: %% Object stream: object 5, index 3; original obje (exceeded allowable length while reading token) 880: word: ct 882: space: 883: word: ID: 886: space: 887: integer: 5 888: space: \x0a 889: comment: %% Page 2 898: space: \x0a 899: dict_open: << 901: space: \x0a 904: name: /Contents 913: space: 914: integer: 39 916: space: 917: integer: 0 918: space: 919: word: R 920: space: \x0a 923: name: /MediaBox 932: space: 933: array_open: [ 934: space: \x0a 939: integer: 0 940: space: \x0a 945: integer: 0 946: space: \x0a 951: integer: 612 954: space: \x0a 959: integer: 792 962: space: \x0a 965: array_close: ] 966: space: \x0a 969: name: /Parent 976: space: 977: integer: 3 978: space: 979: integer: 0 980: space: 981: word: R 982: space: \x0a 985: name: /Resources 995: space: 996: dict_open: << 998: space: \x0a 1003: name: /Font 1008: space: 1009: dict_open: << 1011: space: \x0a 1018: name: /F1 1021: space: 1022: integer: 17 1024: space: 1025: integer: 0 1026: space: 1027: word: R 1028: space: \x0a 1033: dict_close: >> 1035: space: \x0a 1040: name: /ProcSet 1048: space: 1049: integer: 18 1051: space: 1052: integer: 0 1053: space: 1054: word: R 1055: space: \x0a 1058: dict_close: >> 1060: space: \x0a 1063: name: /Type 1068: space: 1069: name: /Page 1074: space: \x0a 1075: dict_close: >> 1077: space: \x0a 1078: bad: %% Object stream: object 6, index 4; original obje (exceeded allowable length while reading token) 1128: word: ct 1130: space: 1131: word: ID: 1134: space: 1135: integer: 6 1136: space: \x0a 1137: comment: %% Page 3 1146: space: \x0a 1147: dict_open: << 1149: space: \x0a 1152: name: /Contents 1161: space: 1162: integer: 41 1164: space: 1165: integer: 0 1166: space: 1167: word: R 1168: space: \x0a 1171: name: /MediaBox 1180: space: 1181: array_open: [ 1182: space: \x0a 1187: integer: 0 1188: space: \x0a 1193: integer: 0 1194: space: \x0a 1199: integer: 612 1202: space: \x0a 1207: integer: 792 1210: space: \x0a 1213: array_close: ] 1214: space: \x0a 1217: name: /Parent 1224: space: 1225: integer: 3 1226: space: 1227: integer: 0 1228: space: 1229: word: R 1230: space: \x0a 1233: name: /Resources 1243: space: 1244: dict_open: << 1246: space: \x0a 1251: name: /Font 1256: space: 1257: dict_open: << 1259: space: \x0a 1266: name: /F1 1269: space: 1270: integer: 19 1272: space: 1273: integer: 0 1274: space: 1275: word: R 1276: space: \x0a 1281: dict_close: >> 1283: space: \x0a 1288: name: /ProcSet 1296: space: 1297: integer: 20 1299: space: 1300: integer: 0 1301: space: 1302: word: R 1303: space: \x0a 1306: dict_close: >> 1308: space: \x0a 1311: name: /Type 1316: space: 1317: name: /Page 1322: space: \x0a 1323: dict_close: >> 1325: space: \x0a 1326: bad: %% Object stream: object 7, index 5; original obje (exceeded allowable length while reading token) 1376: word: ct 1378: space: 1379: word: ID: 1382: space: 1383: integer: 7 1384: space: \x0a 1385: comment: %% Page 4 1394: space: \x0a 1395: dict_open: << 1397: space: \x0a 1400: name: /Contents 1409: space: 1410: integer: 43 1412: space: 1413: integer: 0 1414: space: 1415: word: R 1416: space: \x0a 1419: name: /MediaBox 1428: space: 1429: array_open: [ 1430: space: \x0a 1435: integer: 0 1436: space: \x0a 1441: integer: 0 1442: space: \x0a 1447: integer: 612 1450: space: \x0a 1455: integer: 792 1458: space: \x0a 1461: array_close: ] 1462: space: \x0a 1465: name: /Parent 1472: space: 1473: integer: 3 1474: space: 1475: integer: 0 1476: space: 1477: word: R 1478: space: \x0a 1481: name: /Resources 1491: space: 1492: dict_open: << 1494: space: \x0a 1499: name: /Font 1504: space: 1505: dict_open: << 1507: space: \x0a 1514: name: /F1 1517: space: 1518: integer: 21 1520: space: 1521: integer: 0 1522: space: 1523: word: R 1524: space: \x0a 1529: dict_close: >> 1531: space: \x0a 1536: name: /ProcSet 1544: space: 1545: integer: 22 1547: space: 1548: integer: 0 1549: space: 1550: word: R 1551: space: \x0a 1554: dict_close: >> 1556: space: \x0a 1559: name: /Type 1564: space: 1565: name: /Page 1570: space: \x0a 1571: dict_close: >> 1573: space: \x0a 1574: bad: %% Object stream: object 8, index 6; original obje (exceeded allowable length while reading token) 1624: word: ct 1626: space: 1627: word: ID: 1630: space: 1631: integer: 8 1632: space: \x0a 1633: comment: %% Page 5 1642: space: \x0a 1643: dict_open: << 1645: space: \x0a 1648: name: /Contents 1657: space: 1658: integer: 45 1660: space: 1661: integer: 0 1662: space: 1663: word: R 1664: space: \x0a 1667: name: /MediaBox 1676: space: 1677: array_open: [ 1678: space: \x0a 1683: integer: 0 1684: space: \x0a 1689: integer: 0 1690: space: \x0a 1695: integer: 612 1698: space: \x0a 1703: integer: 792 1706: space: \x0a 1709: array_close: ] 1710: space: \x0a 1713: name: /Parent 1720: space: 1721: integer: 3 1722: space: 1723: integer: 0 1724: space: 1725: word: R 1726: space: \x0a 1729: name: /Resources 1739: space: 1740: dict_open: << 1742: space: \x0a 1747: name: /Font 1752: space: 1753: dict_open: << 1755: space: \x0a 1762: name: /F1 1765: space: 1766: integer: 23 1768: space: 1769: integer: 0 1770: space: 1771: word: R 1772: space: \x0a 1777: dict_close: >> 1779: space: \x0a 1784: name: /ProcSet 1792: space: 1793: integer: 24 1795: space: 1796: integer: 0 1797: space: 1798: word: R 1799: space: \x0a 1802: dict_close: >> 1804: space: \x0a 1807: name: /Type 1812: space: 1813: name: /Page 1818: space: \x0a 1819: dict_close: >> 1821: space: \x0a 1822: bad: %% Object stream: object 9, index 7; original obje (exceeded allowable length while reading token) 1872: word: ct 1874: space: 1875: word: ID: 1878: space: 1879: integer: 9 1880: space: \x0a 1881: comment: %% Page 6 1890: space: \x0a 1891: dict_open: << 1893: space: \x0a 1896: name: /Contents 1905: space: 1906: integer: 47 1908: space: 1909: integer: 0 1910: space: 1911: word: R 1912: space: \x0a 1915: name: /MediaBox 1924: space: 1925: array_open: [ 1926: space: \x0a 1931: integer: 0 1932: space: \x0a 1937: integer: 0 1938: space: \x0a 1943: integer: 612 1946: space: \x0a 1951: integer: 792 1954: space: \x0a 1957: array_close: ] 1958: space: \x0a 1961: name: /Parent 1968: space: 1969: integer: 3 1970: space: 1971: integer: 0 1972: space: 1973: word: R 1974: space: \x0a 1977: name: /Resources 1987: space: 1988: dict_open: << 1990: space: \x0a 1995: name: /Font 2000: space: 2001: dict_open: << 2003: space: \x0a 2010: name: /F1 2013: space: 2014: integer: 25 2016: space: 2017: integer: 0 2018: space: 2019: word: R 2020: space: \x0a 2025: dict_close: >> 2027: space: \x0a 2032: name: /ProcSet 2040: space: 2041: integer: 26 2043: space: 2044: integer: 0 2045: space: 2046: word: R 2047: space: \x0a 2050: dict_close: >> 2052: space: \x0a 2055: name: /Type 2060: space: 2061: name: /Page 2066: space: \x0a 2067: dict_close: >> 2069: space: \x0a 2070: bad: %% Object stream: object 10, index 8; original obj (exceeded allowable length while reading token) 2120: word: ect 2123: space: 2124: word: ID: 2127: space: 2128: integer: 10 2130: space: \x0a 2131: comment: %% Page 7 2140: space: \x0a 2141: dict_open: << 2143: space: \x0a 2146: name: /Contents 2155: space: 2156: integer: 49 2158: space: 2159: integer: 0 2160: space: 2161: word: R 2162: space: \x0a 2165: name: /MediaBox 2174: space: 2175: array_open: [ 2176: space: \x0a 2181: integer: 0 2182: space: \x0a 2187: integer: 0 2188: space: \x0a 2193: integer: 612 2196: space: \x0a 2201: integer: 792 2204: space: \x0a 2207: array_close: ] 2208: space: \x0a 2211: name: /Parent 2218: space: 2219: integer: 3 2220: space: 2221: integer: 0 2222: space: 2223: word: R 2224: space: \x0a 2227: name: /Resources 2237: space: 2238: dict_open: << 2240: space: \x0a 2245: name: /Font 2250: space: 2251: dict_open: << 2253: space: \x0a 2260: name: /F1 2263: space: 2264: integer: 27 2266: space: 2267: integer: 0 2268: space: 2269: word: R 2270: space: \x0a 2275: dict_close: >> 2277: space: \x0a 2282: name: /ProcSet 2290: space: 2291: integer: 28 2293: space: 2294: integer: 0 2295: space: 2296: word: R 2297: space: \x0a 2300: dict_close: >> 2302: space: \x0a 2305: name: /Type 2310: space: 2311: name: /Page 2316: space: \x0a 2317: dict_close: >> 2319: space: \x0a 2320: bad: %% Object stream: object 11, index 9; original obj (exceeded allowable length while reading token) 2370: word: ect 2373: space: 2374: word: ID: 2377: space: 2378: integer: 11 2380: space: \x0a 2381: comment: %% Page 8 2390: space: \x0a 2391: dict_open: << 2393: space: \x0a 2396: name: /Contents 2405: space: 2406: integer: 51 2408: space: 2409: integer: 0 2410: space: 2411: word: R 2412: space: \x0a 2415: name: /MediaBox 2424: space: 2425: array_open: [ 2426: space: \x0a 2431: integer: 0 2432: space: \x0a 2437: integer: 0 2438: space: \x0a 2443: integer: 612 2446: space: \x0a 2451: integer: 792 2454: space: \x0a 2457: array_close: ] 2458: space: \x0a 2461: name: /Parent 2468: space: 2469: integer: 3 2470: space: 2471: integer: 0 2472: space: 2473: word: R 2474: space: \x0a 2477: name: /Resources 2487: space: 2488: dict_open: << 2490: space: \x0a 2495: name: /Font 2500: space: 2501: dict_open: << 2503: space: \x0a 2510: name: /F1 2513: space: 2514: integer: 29 2516: space: 2517: integer: 0 2518: space: 2519: word: R 2520: space: \x0a 2525: dict_close: >> 2527: space: \x0a 2532: name: /ProcSet 2540: space: 2541: integer: 30 2543: space: 2544: integer: 0 2545: space: 2546: word: R 2547: space: \x0a 2550: dict_close: >> 2552: space: \x0a 2555: name: /Type 2560: space: 2561: name: /Page 2566: space: \x0a 2567: dict_close: >> 2569: space: \x0a 2570: bad: %% Object stream: object 12, index 10; original ob (exceeded allowable length while reading token) 2620: word: ject 2624: space: 2625: word: ID: 2628: space: 2629: integer: 12 2631: space: \x0a 2632: comment: %% Page 9 2641: space: \x0a 2642: dict_open: << 2644: space: \x0a 2647: name: /Contents 2656: space: 2657: integer: 53 2659: space: 2660: integer: 0 2661: space: 2662: word: R 2663: space: \x0a 2666: name: /MediaBox 2675: space: 2676: array_open: [ 2677: space: \x0a 2682: integer: 0 2683: space: \x0a 2688: integer: 0 2689: space: \x0a 2694: integer: 612 2697: space: \x0a 2702: integer: 792 2705: space: \x0a 2708: array_close: ] 2709: space: \x0a 2712: name: /Parent 2719: space: 2720: integer: 3 2721: space: 2722: integer: 0 2723: space: 2724: word: R 2725: space: \x0a 2728: name: /Resources 2738: space: 2739: dict_open: << 2741: space: \x0a 2746: name: /Font 2751: space: 2752: dict_open: << 2754: space: \x0a 2761: name: /F1 2764: space: 2765: integer: 31 2767: space: 2768: integer: 0 2769: space: 2770: word: R 2771: space: \x0a 2776: dict_close: >> 2778: space: \x0a 2783: name: /ProcSet 2791: space: 2792: integer: 32 2794: space: 2795: integer: 0 2796: space: 2797: word: R 2798: space: \x0a 2801: dict_close: >> 2803: space: \x0a 2806: name: /Type 2811: space: 2812: name: /Page 2817: space: \x0a 2818: dict_close: >> 2820: space: \x0a 2821: bad: %% Object stream: object 13, index 11; original ob (exceeded allowable length while reading token) 2871: word: ject 2875: space: 2876: word: ID: 2879: space: 2880: integer: 13 2882: space: \x0a 2883: comment: %% Page 10 2893: space: \x0a 2894: dict_open: << 2896: space: \x0a 2899: name: /Contents 2908: space: 2909: integer: 55 2911: space: 2912: integer: 0 2913: space: 2914: word: R 2915: space: \x0a 2918: name: /MediaBox 2927: space: 2928: array_open: [ 2929: space: \x0a 2934: integer: 0 2935: space: \x0a 2940: integer: 0 2941: space: \x0a 2946: integer: 612 2949: space: \x0a 2954: integer: 792 2957: space: \x0a 2960: array_close: ] 2961: space: \x0a 2964: name: /Parent 2971: space: 2972: integer: 3 2973: space: 2974: integer: 0 2975: space: 2976: word: R 2977: space: \x0a 2980: name: /Resources 2990: space: 2991: dict_open: << 2993: space: \x0a 2998: name: /Font 3003: space: 3004: dict_open: << 3006: space: \x0a 3013: name: /F1 3016: space: 3017: integer: 33 3019: space: 3020: integer: 0 3021: space: 3022: word: R 3023: space: \x0a 3028: dict_close: >> 3030: space: \x0a 3035: name: /ProcSet 3043: space: 3044: integer: 34 3046: space: 3047: integer: 0 3048: space: 3049: word: R 3050: space: \x0a 3053: dict_close: >> 3055: space: \x0a 3058: name: /Type 3063: space: 3064: name: /Page 3069: space: \x0a 3070: dict_close: >> 3072: space: \x0a 3073: bad: %% Object stream: object 14, index 12; original ob (exceeded allowable length while reading token) 3123: word: ject 3127: space: 3128: word: ID: 3131: space: 3132: integer: 14 3134: space: \x0a 3135: comment: %% Page 11 3145: space: \x0a 3146: dict_open: << 3148: space: \x0a 3151: name: /Contents 3160: space: 3161: integer: 57 3163: space: 3164: integer: 0 3165: space: 3166: word: R 3167: space: \x0a 3170: name: /MediaBox 3179: space: 3180: array_open: [ 3181: space: \x0a 3186: integer: 0 3187: space: \x0a 3192: integer: 0 3193: space: \x0a 3198: integer: 612 3201: space: \x0a 3206: integer: 792 3209: space: \x0a 3212: array_close: ] 3213: space: \x0a 3216: name: /Parent 3223: space: 3224: integer: 3 3225: space: 3226: integer: 0 3227: space: 3228: word: R 3229: space: \x0a 3232: name: /Resources 3242: space: 3243: dict_open: << 3245: space: \x0a 3250: name: /Font 3255: space: 3256: dict_open: << 3258: space: \x0a 3265: name: /F1 3268: space: 3269: integer: 35 3271: space: 3272: integer: 0 3273: space: 3274: word: R 3275: space: \x0a 3280: dict_close: >> 3282: space: \x0a 3287: name: /ProcSet 3295: space: 3296: integer: 36 3298: space: 3299: integer: 0 3300: space: 3301: word: R 3302: space: \x0a 3305: dict_close: >> 3307: space: \x0a 3310: name: /Type 3315: space: 3316: name: /Page 3321: space: \x0a 3322: dict_close: >> 3324: space: \x0a 3325: bad: %% Object stream: object 15, index 13; original ob (exceeded allowable length while reading token) 3375: word: ject 3379: space: 3380: word: ID: 3383: space: 3384: integer: 15 3386: space: \x0a 3387: dict_open: << 3389: space: \x0a 3392: name: /BaseFont 3401: space: 3402: name: /Helvetica 3412: space: \x0a 3415: name: /Encoding 3424: space: 3425: name: /WinAnsiEncoding 3441: space: \x0a 3444: name: /Name 3449: space: 3450: name: /F1 3453: space: \x0a 3456: name: /Subtype 3464: space: 3465: name: /Type1 3471: space: \x0a 3474: name: /Type 3479: space: 3480: name: /Font 3485: space: \x0a 3486: dict_close: >> 3488: space: \x0a 3489: bad: %% Object stream: object 16, index 14; original ob (exceeded allowable length while reading token) 3539: word: ject 3543: space: 3544: word: ID: 3547: space: 3548: integer: 16 3550: space: \x0a 3551: array_open: [ 3552: space: \x0a 3555: name: /PDF 3559: space: \x0a 3562: name: /Text 3567: space: \x0a 3568: array_close: ] 3569: space: \x0a 3570: bad: %% Object stream: object 17, index 15; original ob (exceeded allowable length while reading token) 3620: word: ject 3624: space: 3625: word: ID: 3628: space: 3629: integer: 17 3631: space: \x0a 3632: dict_open: << 3634: space: \x0a 3637: name: /BaseFont 3646: space: 3647: name: /Helvetica 3657: space: \x0a 3660: name: /Encoding 3669: space: 3670: name: /WinAnsiEncoding 3686: space: \x0a 3689: name: /Name 3694: space: 3695: name: /F1 3698: space: \x0a 3701: name: /Subtype 3709: space: 3710: name: /Type1 3716: space: \x0a 3719: name: /Type 3724: space: 3725: name: /Font 3730: space: \x0a 3731: dict_close: >> 3733: space: \x0a 3734: bad: %% Object stream: object 18, index 16; original ob (exceeded allowable length while reading token) 3784: word: ject 3788: space: 3789: word: ID: 3792: space: 3793: integer: 18 3795: space: \x0a 3796: array_open: [ 3797: space: \x0a 3800: name: /PDF 3804: space: \x0a 3807: name: /Text 3812: space: \x0a 3813: array_close: ] 3814: space: \x0a 3815: bad: %% Object stream: object 19, index 17; original ob (exceeded allowable length while reading token) 3865: word: ject 3869: space: 3870: word: ID: 3873: space: 3874: integer: 19 3876: space: \x0a 3877: dict_open: << 3879: space: \x0a 3882: name: /BaseFont 3891: space: 3892: name: /Helvetica 3902: space: \x0a 3905: name: /Encoding 3914: space: 3915: name: /WinAnsiEncoding 3931: space: \x0a 3934: name: /Name 3939: space: 3940: name: /F1 3943: space: \x0a 3946: name: /Subtype 3954: space: 3955: name: /Type1 3961: space: \x0a 3964: name: /Type 3969: space: 3970: name: /Font 3975: space: \x0a 3976: dict_close: >> 3978: space: \x0a 3979: bad: %% Object stream: object 20, index 18; original ob (exceeded allowable length while reading token) 4029: word: ject 4033: space: 4034: word: ID: 4037: space: 4038: integer: 20 4040: space: \x0a 4041: array_open: [ 4042: space: \x0a 4045: name: /PDF 4049: space: \x0a 4052: name: /Text 4057: space: \x0a 4058: array_close: ] 4059: space: \x0a 4060: bad: %% Object stream: object 21, index 19; original ob (exceeded allowable length while reading token) 4110: word: ject 4114: space: 4115: word: ID: 4118: space: 4119: integer: 21 4121: space: \x0a 4122: dict_open: << 4124: space: \x0a 4127: name: /BaseFont 4136: space: 4137: name: /Helvetica 4147: space: \x0a 4150: name: /Encoding 4159: space: 4160: name: /WinAnsiEncoding 4176: space: \x0a 4179: name: /Name 4184: space: 4185: name: /F1 4188: space: \x0a 4191: name: /Subtype 4199: space: 4200: name: /Type1 4206: space: \x0a 4209: name: /Type 4214: space: 4215: name: /Font 4220: space: \x0a 4221: dict_close: >> 4223: space: \x0a 4224: bad: %% Object stream: object 22, index 20; original ob (exceeded allowable length while reading token) 4274: word: ject 4278: space: 4279: word: ID: 4282: space: 4283: integer: 22 4285: space: \x0a 4286: array_open: [ 4287: space: \x0a 4290: name: /PDF 4294: space: \x0a 4297: name: /Text 4302: space: \x0a 4303: array_close: ] 4304: space: \x0a 4305: bad: %% Object stream: object 23, index 21; original ob (exceeded allowable length while reading token) 4355: word: ject 4359: space: 4360: word: ID: 4363: space: 4364: integer: 23 4366: space: \x0a 4367: dict_open: << 4369: space: \x0a 4372: name: /BaseFont 4381: space: 4382: name: /Helvetica 4392: space: \x0a 4395: name: /Encoding 4404: space: 4405: name: /WinAnsiEncoding 4421: space: \x0a 4424: name: /Name 4429: space: 4430: name: /F1 4433: space: \x0a 4436: name: /Subtype 4444: space: 4445: name: /Type1 4451: space: \x0a 4454: name: /Type 4459: space: 4460: name: /Font 4465: space: \x0a 4466: dict_close: >> 4468: space: \x0a 4469: bad: %% Object stream: object 24, index 22; original ob (exceeded allowable length while reading token) 4519: word: ject 4523: space: 4524: word: ID: 4527: space: 4528: integer: 24 4530: space: \x0a 4531: array_open: [ 4532: space: \x0a 4535: name: /PDF 4539: space: \x0a 4542: name: /Text 4547: space: \x0a 4548: array_close: ] 4549: space: \x0a 4550: bad: %% Object stream: object 25, index 23; original ob (exceeded allowable length while reading token) 4600: word: ject 4604: space: 4605: word: ID: 4608: space: 4609: integer: 25 4611: space: \x0a 4612: dict_open: << 4614: space: \x0a 4617: name: /BaseFont 4626: space: 4627: name: /Helvetica 4637: space: \x0a 4640: name: /Encoding 4649: space: 4650: name: /WinAnsiEncoding 4666: space: \x0a 4669: name: /Name 4674: space: 4675: name: /F1 4678: space: \x0a 4681: name: /Subtype 4689: space: 4690: name: /Type1 4696: space: \x0a 4699: name: /Type 4704: space: 4705: name: /Font 4710: space: \x0a 4711: dict_close: >> 4713: space: \x0a 4714: bad: %% Object stream: object 26, index 24; original ob (exceeded allowable length while reading token) 4764: word: ject 4768: space: 4769: word: ID: 4772: space: 4773: integer: 26 4775: space: \x0a 4776: array_open: [ 4777: space: \x0a 4780: name: /PDF 4784: space: \x0a 4787: name: /Text 4792: space: \x0a 4793: array_close: ] 4794: space: \x0a 4795: bad: %% Object stream: object 27, index 25; original ob (exceeded allowable length while reading token) 4845: word: ject 4849: space: 4850: word: ID: 4853: space: 4854: integer: 27 4856: space: \x0a 4857: dict_open: << 4859: space: \x0a 4862: name: /BaseFont 4871: space: 4872: name: /Helvetica 4882: space: \x0a 4885: name: /Encoding 4894: space: 4895: name: /WinAnsiEncoding 4911: space: \x0a 4914: name: /Name 4919: space: 4920: name: /F1 4923: space: \x0a 4926: name: /Subtype 4934: space: 4935: name: /Type1 4941: space: \x0a 4944: name: /Type 4949: space: 4950: name: /Font 4955: space: \x0a 4956: dict_close: >> 4958: space: \x0a 4959: bad: %% Object stream: object 28, index 26; original ob (exceeded allowable length while reading token) 5009: word: ject 5013: space: 5014: word: ID: 5017: space: 5018: integer: 28 5020: space: \x0a 5021: array_open: [ 5022: space: \x0a 5025: name: /PDF 5029: space: \x0a 5032: name: /Text 5037: space: \x0a 5038: array_close: ] 5039: space: \x0a 5040: bad: %% Object stream: object 29, index 27; original ob (exceeded allowable length while reading token) 5090: word: ject 5094: space: 5095: word: ID: 5098: space: 5099: integer: 29 5101: space: \x0a 5102: dict_open: << 5104: space: \x0a 5107: name: /BaseFont 5116: space: 5117: name: /Helvetica 5127: space: \x0a 5130: name: /Encoding 5139: space: 5140: name: /WinAnsiEncoding 5156: space: \x0a 5159: name: /Name 5164: space: 5165: name: /F1 5168: space: \x0a 5171: name: /Subtype 5179: space: 5180: name: /Type1 5186: space: \x0a 5189: name: /Type 5194: space: 5195: name: /Font 5200: space: \x0a 5201: dict_close: >> 5203: space: \x0a 5204: bad: %% Object stream: object 30, index 28; original ob (exceeded allowable length while reading token) 5254: word: ject 5258: space: 5259: word: ID: 5262: space: 5263: integer: 30 5265: space: \x0a 5266: array_open: [ 5267: space: \x0a 5270: name: /PDF 5274: space: \x0a 5277: name: /Text 5282: space: \x0a 5283: array_close: ] 5284: space: \x0a 5285: bad: %% Object stream: object 31, index 29; original ob (exceeded allowable length while reading token) 5335: word: ject 5339: space: 5340: word: ID: 5343: space: 5344: integer: 31 5346: space: \x0a 5347: dict_open: << 5349: space: \x0a 5352: name: /BaseFont 5361: space: 5362: name: /Helvetica 5372: space: \x0a 5375: name: /Encoding 5384: space: 5385: name: /WinAnsiEncoding 5401: space: \x0a 5404: name: /Name 5409: space: 5410: name: /F1 5413: space: \x0a 5416: name: /Subtype 5424: space: 5425: name: /Type1 5431: space: \x0a 5434: name: /Type 5439: space: 5440: name: /Font 5445: space: \x0a 5446: dict_close: >> 5448: space: \x0a 5449: bad: %% Object stream: object 32, index 30; original ob (exceeded allowable length while reading token) 5499: word: ject 5503: space: 5504: word: ID: 5507: space: 5508: integer: 32 5510: space: \x0a 5511: array_open: [ 5512: space: \x0a 5515: name: /PDF 5519: space: \x0a 5522: name: /Text 5527: space: \x0a 5528: array_close: ] 5529: space: \x0a 5530: bad: %% Object stream: object 33, index 31; original ob (exceeded allowable length while reading token) 5580: word: ject 5584: space: 5585: word: ID: 5588: space: 5589: integer: 33 5591: space: \x0a 5592: dict_open: << 5594: space: \x0a 5597: name: /BaseFont 5606: space: 5607: name: /Helvetica 5617: space: \x0a 5620: name: /Encoding 5629: space: 5630: name: /WinAnsiEncoding 5646: space: \x0a 5649: name: /Name 5654: space: 5655: name: /F1 5658: space: \x0a 5661: name: /Subtype 5669: space: 5670: name: /Type1 5676: space: \x0a 5679: name: /Type 5684: space: 5685: name: /Font 5690: space: \x0a 5691: dict_close: >> 5693: space: \x0a 5694: bad: %% Object stream: object 34, index 32; original ob (exceeded allowable length while reading token) 5744: word: ject 5748: space: 5749: word: ID: 5752: space: 5753: integer: 34 5755: space: \x0a 5756: array_open: [ 5757: space: \x0a 5760: name: /PDF 5764: space: \x0a 5767: name: /Text 5772: space: \x0a 5773: array_close: ] 5774: space: \x0a 5775: bad: %% Object stream: object 35, index 33; original ob (exceeded allowable length while reading token) 5825: word: ject 5829: space: 5830: word: ID: 5833: space: 5834: integer: 35 5836: space: \x0a 5837: dict_open: << 5839: space: \x0a 5842: name: /BaseFont 5851: space: 5852: name: /Helvetica 5862: space: \x0a 5865: name: /Encoding 5874: space: 5875: name: /WinAnsiEncoding 5891: space: \x0a 5894: name: /Name 5899: space: 5900: name: /F1 5903: space: \x0a 5906: name: /Subtype 5914: space: 5915: name: /Type1 5921: space: \x0a 5924: name: /Type 5929: space: 5930: name: /Font 5935: space: \x0a 5936: dict_close: >> 5938: space: \x0a 5939: bad: %% Object stream: object 36, index 34; original ob (exceeded allowable length while reading token) 5989: word: ject 5993: space: 5994: word: ID: 5997: space: 5998: integer: 36 6000: space: \x0a 6001: array_open: [ 6002: space: \x0a 6005: name: /PDF 6009: space: \x0a 6012: name: /Text 6017: space: \x0a 6018: array_close: ] 6019: space: \x0a 6020: eof --- END OBJECT STREAM 1 --- qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.6.c-check0000644000064100006410000000005013247541377021361 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/a-10-split-exp.zdf0000644000064100006410000000174613247541377016670 0ustar ejbejb%PDF-1.4 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 54 >> stream x 휏nyA?(=2?&ꍕ>(ٙ|HM-endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 6 0 obj << /Filter /Standard /Length 128 /O <2a2f0a1990192c60114730bdcd39f37828a53c89a340dd473c85299dc5258e1c> /P -4 /R 3 /U /V 2 >> endobj xref 0 7 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000399 00000 n 0000000498 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] /Encrypt 6 0 R >> startxref 705 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/split-exp.zdf_040000644000064100006410000000203113247541377016523 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 4) Tj ET endstream endobj 5 0 obj 47 endobj %% Original object ID: 5 0 6 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 7 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000242 00000 n 0000000509 00000 n 0000000611 00000 n 0000000657 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 765 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/10_split-exp.zdf0000644000064100006410000000136413247541377016530 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 54 >> stream xs Qw3T04UIS07" ̼TCM,." \endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 6 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000399 00000 n trailer << /Root 1 0 R /Size 6 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 498 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.1.check0000644000064100006410000000026213247541377017451 0ustar ejbejbchecking a.pdf PDF Version: 1.2 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/damaged-stream.out0000644000064100006410000000047013247541377017177 0ustar ejbejbchecking damaged-stream.pdf PDF Version: 1.3 File is not encrypted File is not linearized WARNING: damaged-stream.pdf (offset 426): error decoding stream data for object 5 0: LZWDecoder: bad code received WARNING: damaged-stream.pdf (offset 426): stream will be re-processed without filtering to avoid data loss qpdf-8.0.2/qpdf/qtest/qpdf/fix1.qdf0000644000064100006410000000176113247541377015142 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents [ 4 0 R 8 0 R ] /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato Soup) Tj ET endstream endobj 5 0 obj 44 endobj 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 7 0 obj [ /PDF /Text ] endobj 8 0 obj << /Length 9 0 R >> stream BT /F1 24 Tf 72 648 Td (and Salad) Tj ET endstream endobj 9 0 obj 0 endobj xref 0 8 0000000000 65535 f 0000000025 00000 n 0000000079 00000 n 0000000161 00000 n 0000000376 00000 n 0000000475 00000 n 0000000494 00000 n 0000000612 00000 n trailer << /Root 1 0 R /Size 8 >> startxref 647 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/issue-141a.out0000644000064100006410000000122213247541377016114 0ustar ejbejbWARNING: issue-141a.pdf: can't find PDF header WARNING: issue-141a.pdf (xref stream: object 9 0, offset 10): stream dictionary lacks /Length key WARNING: issue-141a.pdf (xref stream: object 9 0, offset 47): attempting to recover stream length WARNING: issue-141a.pdf (xref stream: object 9 0, offset 47): unable to recover stream data; treating stream as empty WARNING: issue-141a.pdf: file is damaged WARNING: issue-141a.pdf (xref stream, offset 3): Cross-reference stream's /W indicates entry size of 0 WARNING: issue-141a.pdf: Attempting to reconstruct cross-reference table issue-141a.pdf: unable to find trailer dictionary while recovering damaged file qpdf-8.0.2/qpdf/qtest/qpdf/enc-R2,V1,O=master.pdf0000644000064100006410000004137213247541377017311 0ustar ejbejb%PDF-1.4 % 91 0 obj << /Linearized 1 /O 94 /H [ 1332 211 ] /L 17146 /E 4183 /N 30 /T 15208 >> endobj xref 91 22 0000000016 00000 n 0000000805 00000 n 0000001179 00000 n 0000001543 00000 n 0000001738 00000 n 0000001818 00000 n 0000002008 00000 n 0000002151 00000 n 0000002318 00000 n 0000002493 00000 n 0000002659 00000 n 0000002821 00000 n 0000003005 00000 n 0000003208 00000 n 0000003357 00000 n 0000003522 00000 n 0000003688 00000 n 0000003820 00000 n 0000003841 00000 n 0000003957 00000 n 0000001332 00000 n 0000001522 00000 n trailer << /Size 113 /Info 89 0 R /Encrypt 93 0 R /Root 92 0 R /Prev 15198 /ID[<66d36a30a97e0f16f39955c6221e0c2a><77132f7a802a2686922e2cbd24b6ee1c>] >> startxref 0 %%EOF 92 0 obj << /PageLabels << /Nums [ 0 << /P ()>> 2 << /S /r /St 1 >> 7 << /P ()>> 9 << /S /r /St 6 >> 11 << /P ()>> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P ()>> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /Pages 88 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 95 0 R /Metadata 90 0 R >> endobj 93 0 obj << /Filter /Standard /R 2 /O ( ܾ ~ioz/iWm*$) /U (_ܻ \nD UTY؎[n^\nyT!zx) /P -64 /V 1 /Length 40 >> endobj 111 0 obj << /S 145 /O 189 /Filter /FlateDecode /Length 112 0 R >> stream 8ӼB1ANΦ# AI><2>+F r*A9*SlLaoGYQ,ǙRoz endstream endobj 112 0 obj 96 endobj 94 0 obj << /Contents 107 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 95 0 obj << /Type /Outlines /First 96 0 R /Last 97 0 R /Count 6 >> endobj 96 0 obj << /Type /Outline /Title (6f`΂c|3N> endobj 97 0 obj << /Type /Outline /Title (>5\rdY\r1n5N6xg+/b) /Parent 95 0 R /Prev 96 0 R /Dest [ 43 0 R /XYZ 66 756 3 ] >> endobj 98 0 obj << /Type /Outline /Title (IeÃ5M JtjEs) /Parent 96 0 R /Next 99 0 R /First 102 0 R /Last 103 0 R /Count -3 /Dest [ 31 0 R /Fit ] >> endobj 99 0 obj << /Type /Outline /Title (@J|h!> endobj 100 0 obj << /Type /Outline /Title (\r%Mn:e*\(jLw1VqI9 5?ބ) /Parent 99 0 R /Next 101 0 R /Dest [ 1 0 R /FitR 66 714 180 770 ] >> endobj 101 0 obj << /Type /Outline /Title (BLP\nJ!@uo> endobj 102 0 obj << /Type /Outline /Title (Β6xPR\r/bΪXPbUU) /Parent 98 0 R /Next 103 0 R /First 105 0 R /Last 106 0 R /Count -2 /Dest [ 34 0 R /FitV 100 ] >> endobj 103 0 obj << /Type /Outline /Title (/E7\\xo'Bj^Wٛ杪c}) /Parent 98 0 R /Prev 102 0 R /First 104 0 R /Last 104 0 R /Count 1 /Dest [ 34 0 R /XYZ null null null ] >> endobj 104 0 obj << /Type /Outline /Title (lZQ@;F^oɺ֒xDֵ@-4nhĘP-T) /Parent 103 0 R /Dest [ 64 0 R /XYZ null null null ] >> endobj 105 0 obj << /Type /Outline /Title (EXH`X';Z8>9yͿ%N,\nM) /Parent 102 0 R /Next 106 0 R /Dest [ 52 0 R /XYZ null null null ] >> endobj 106 0 obj << /Type /Outline /Title (Hj0 \nIӜvP]./E\\4 FsNC) /Parent 102 0 R /Prev 105 0 R /Dest [ 55 0 R /XYZ null null null ] >> endobj 107 0 obj << /Filter /FlateDecode /Length 108 0 R >> stream E~͖(gm"Bˮ7W֙NylN_aH1 endstream endobj 108 0 obj 52 endobj 109 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 110 0 obj [ /PDF /Text ] endobj 1 0 obj << /Contents 2 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 2 0 obj << /Filter /FlateDecode /Length 3 0 R >> stream I m0g3JV;]V4rmkH!W«p endstream endobj 3 0 obj 52 endobj 4 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 5 0 obj << /Filter /FlateDecode /Length 6 0 R >> stream -L R= t ~P c4oLúvYf@  endstream endobj 6 0 obj 52 endobj 7 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 8 0 obj << /Filter /FlateDecode /Length 9 0 R >> stream 1@+Լ*Q&^"16 TBQć<] endstream endobj 9 0 obj 52 endobj 10 0 obj << /Contents 11 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 11 0 obj << /Filter /FlateDecode /Length 12 0 R >> stream mTK`40zV X"'M*O\^15ZPRbߐtVbu endstream endobj 12 0 obj 52 endobj 13 0 obj << /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 14 0 obj << /Filter /FlateDecode /Length 15 0 R >> stream Yn6ǀx,XE'ig5ҖcLNm~ܔ endstream endobj 15 0 obj 52 endobj 16 0 obj << /Contents 17 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 17 0 obj << /Filter /FlateDecode /Length 18 0 R >> stream S*1:^(~%"@U,I k!q:PD)Y.= endstream endobj 18 0 obj 52 endobj 19 0 obj << /Contents 20 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 20 0 obj << /Filter /FlateDecode /Length 21 0 R >> stream 88-s4 âXԙn W3j\/ endstream endobj 21 0 obj 52 endobj 22 0 obj << /Contents 23 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 23 0 obj << /Filter /FlateDecode /Length 24 0 R >> stream | hBS1*ݒ<04j#^>"5붽Ӛ6 ' endstream endobj 24 0 obj 52 endobj 25 0 obj << /Contents 26 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 26 0 obj << /Filter /FlateDecode /Length 27 0 R >> stream @03̢\sHf})jS22,`5nl=1< endstream endobj 27 0 obj 52 endobj 28 0 obj << /Contents 29 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 29 0 obj << /Filter /FlateDecode /Length 30 0 R >> stream mHf[ RyAXo,Nhs\o(i_C-3cE endstream endobj 30 0 obj 53 endobj 31 0 obj << /Contents 32 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 32 0 obj << /Filter /FlateDecode /Length 33 0 R >> stream nv{8zqWҡlX\.474%_6f W= endstream endobj 33 0 obj 53 endobj 34 0 obj << /Contents 35 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 35 0 obj << /Filter /FlateDecode /Length 36 0 R >> stream /1oMG.[0MfBMI9}4ϛj}Za endstream endobj 36 0 obj 53 endobj 37 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 38 0 obj << /Filter /FlateDecode /Length 39 0 R >> stream OFZ,"ڲ'xsA nSmm WћKgG,Ӥ endstream endobj 39 0 obj 53 endobj 40 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 41 0 obj << /Filter /FlateDecode /Length 42 0 R >> stream BJ k.Qjn0 0uVW:>d)\ endstream endobj 42 0 obj 53 endobj 43 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 44 0 obj << /Filter /FlateDecode /Length 45 0 R >> stream ',<4sN<FW0M Ş.pu,C1 endstream endobj 45 0 obj 53 endobj 46 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 47 0 obj << /Filter /FlateDecode /Length 48 0 R >> stream ִy "yc7w(YW`yC0j\* -j8+z endstream endobj 48 0 obj 53 endobj 49 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 50 0 obj << /Filter /FlateDecode /Length 51 0 R >> stream U򘫐͸P9W-IwRii;L&1ApdJN6ׁ6Bܨ> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 53 0 obj << /Filter /FlateDecode /Length 54 0 R >> stream rۿs 󞕿ڰG}JM=juWQ[ ; endstream endobj 54 0 obj 53 endobj 55 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 56 0 obj << /Filter /FlateDecode /Length 57 0 R >> stream L{iCK# s:1XdUF Eܒ…r2;>8 endstream endobj 57 0 obj 53 endobj 58 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 59 0 obj << /Filter /FlateDecode /Length 60 0 R >> stream FR?Ĕa݈xD|> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 62 0 obj << /Filter /FlateDecode /Length 63 0 R >> stream j^9=3{7SByD:x7!lo02 endstream endobj 63 0 obj 53 endobj 64 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 65 0 obj << /Filter /FlateDecode /Length 66 0 R >> stream 7U*U^F.8kHj,fMCc'(b azS874Ϡ endstream endobj 66 0 obj 53 endobj 67 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 68 0 obj << /Filter /FlateDecode /Length 69 0 R >> stream fNt/@vER k[8I(f.?c endstream endobj 69 0 obj 53 endobj 70 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 71 0 obj << /Filter /FlateDecode /Length 72 0 R >> stream D[ $Ci[/\P}PESC> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 74 0 obj << /Filter /FlateDecode /Length 75 0 R >> stream ^dNhݷF{,dʪ.EX㫣uWdfn endstream endobj 75 0 obj 53 endobj 76 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 77 0 obj << /Filter /FlateDecode /Length 78 0 R >> stream r# _)`36ThUS% c#-)οY endstream endobj 78 0 obj 53 endobj 79 0 obj << /Contents 80 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 80 0 obj << /Filter /FlateDecode /Length 81 0 R >> stream `ψ.n试g kf:?`ijzhi7B߰J endstream endobj 81 0 obj 53 endobj 82 0 obj << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 83 0 obj << /Filter /FlateDecode /Length 84 0 R >> stream ^.->g FvhJێcd}@.4+QdR mLDn> endstream endobj 84 0 obj 53 endobj 85 0 obj << /Contents 86 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 86 0 obj << /Filter /FlateDecode /Length 87 0 R >> stream a 䅝S24^LmL%Mܺ\؆]e@u {U endstream endobj 87 0 obj 53 endobj 88 0 obj << /Count 30 /Kids [ 94 0 R 1 0 R 4 0 R 7 0 R 10 0 R 13 0 R 16 0 R 19 0 R 22 0 R 25 0 R 28 0 R 31 0 R 34 0 R 37 0 R 40 0 R 43 0 R 46 0 R 49 0 R 52 0 R 55 0 R 58 0 R 61 0 R 64 0 R 67 0 R 70 0 R 73 0 R 76 0 R 79 0 R 82 0 R 85 0 R ] /Type /Pages >> endobj 89 0 obj << /ModDate (Q?u j \n\(}) /CreationDate (Q?u j\n\(}) >> endobj 90 0 obj << /Type /Metadata /Subtype /XML /Length 770 >> stream nFǎ=!Fv.Z(4Kfh@ ~0Oqi#4 %d*YQq&9_ \˭?  >ԓn@睻U|λ8S Y~Rp/!)+O,UC?h܌q~j{.WCY4j݈l G;q)C򌟜a{_Фg  Nj*$I<2˥.FZzqUCy!d 5-t&WJRtG ğp-kPįFO4:MSKq'.ʯfLT'8Q63SJ^`(6sԿ(M}X@b` ;W+i(G2mY1}j|V,'BsԹ Z$REJ}VW/pm\R@R'>Xԕ~:F~ /?~.C#y#| $}«̯ʌךԙN{|ww9c]NhkICEр[ēf];Hw= Sv:mn?v`Xpס/mK h ) +lHrYy5 h<'}_L?hOȀ0 Ҫfׯİf\;e-DP @-,|TLȯQ q `vfI ZaU1LB3K,Aw endstream endobj xref 0 91 0000000000 65535 f 0000003991 00000 n 0000004183 00000 n 0000004311 00000 n 0000004330 00000 n 0000004522 00000 n 0000004650 00000 n 0000004669 00000 n 0000004861 00000 n 0000004989 00000 n 0000005008 00000 n 0000005202 00000 n 0000005332 00000 n 0000005352 00000 n 0000005546 00000 n 0000005676 00000 n 0000005696 00000 n 0000005890 00000 n 0000006020 00000 n 0000006040 00000 n 0000006234 00000 n 0000006364 00000 n 0000006384 00000 n 0000006578 00000 n 0000006708 00000 n 0000006728 00000 n 0000006922 00000 n 0000007052 00000 n 0000007072 00000 n 0000007266 00000 n 0000007397 00000 n 0000007417 00000 n 0000007611 00000 n 0000007742 00000 n 0000007762 00000 n 0000007956 00000 n 0000008087 00000 n 0000008107 00000 n 0000008301 00000 n 0000008432 00000 n 0000008452 00000 n 0000008646 00000 n 0000008777 00000 n 0000008797 00000 n 0000008991 00000 n 0000009122 00000 n 0000009142 00000 n 0000009336 00000 n 0000009467 00000 n 0000009487 00000 n 0000009681 00000 n 0000009812 00000 n 0000009832 00000 n 0000010026 00000 n 0000010157 00000 n 0000010177 00000 n 0000010371 00000 n 0000010502 00000 n 0000010522 00000 n 0000010716 00000 n 0000010847 00000 n 0000010867 00000 n 0000011061 00000 n 0000011192 00000 n 0000011212 00000 n 0000011406 00000 n 0000011537 00000 n 0000011557 00000 n 0000011751 00000 n 0000011882 00000 n 0000011902 00000 n 0000012096 00000 n 0000012226 00000 n 0000012246 00000 n 0000012440 00000 n 0000012571 00000 n 0000012591 00000 n 0000012785 00000 n 0000012916 00000 n 0000012936 00000 n 0000013130 00000 n 0000013261 00000 n 0000013281 00000 n 0000013475 00000 n 0000013606 00000 n 0000013626 00000 n 0000013820 00000 n 0000013951 00000 n 0000013971 00000 n 0000014241 00000 n 0000014344 00000 n trailer << /Size 91 /ID[<66d36a30a97e0f16f39955c6221e0c2a><77132f7a802a2686922e2cbd24b6ee1c>] >> startxref 173 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/page_api_2.pdf0000644000064100006410000000272213247541377016256 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /Pages 3 0 R /Type /Catalog >> endobj 2 0 obj << /CreationDate (D:20120621124041) /Producer (Apex PDFWriter) >> endobj 3 0 obj << /Count 3 /Kids [ 4 0 R 4 0 R 5 0 R ] /Type /Pages >> endobj %% Page 2 4 0 obj << /Contents 6 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 8 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Page 3 5 0 obj << /Contents 9 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 8 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Contents for page 2 6 0 obj << /Length 7 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 0) Tj ET endstream endobj 7 0 obj 47 endobj 8 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj %% Contents for page 3 9 0 obj << /Length 10 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 2) Tj ET endstream endobj 10 0 obj 47 endobj xref 0 11 0000000000 65535 f 0000000025 00000 n 0000000079 00000 n 0000000165 00000 n 0000000267 00000 n 0000000494 00000 n 0000000734 00000 n 0000000836 00000 n 0000000855 00000 n 0000000986 00000 n 0000001089 00000 n trailer << /Info 2 0 R /Root 1 0 R /Size 11 /ID [] >> startxref 1109 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.6.check0000644000064100006410000000026213247541377017456 0ustar ejbejbchecking a.pdf PDF Version: 1.2 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.1.c-check0000644000064100006410000000005013247541377017664 0ustar ejbejbversion: 1.2 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.11-ogen.c-check0000644000064100006410000000040613247541377022370 0ustar ejbejbversion: 1.5 linearized: 1 encrypted: 1 user password: extract for accessibility: 1 extract for any purpose: 1 print low resolution: 1 print high resolution: 1 modify document assembly: 1 modify forms: 1 modify annotations: 1 modify other: 1 modify anything: 1 qpdf-8.0.2/qpdf/qtest/qpdf/copy-foreign-objects-out1.pdf0000644000064100006410000000251513247541377021206 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 3 0 R /Type /Catalog >> endobj 2 0 obj << /O1 4 0 R /O2 5 0 R /This-is-QTest true >> endobj 3 0 obj << /Count 1 /Kids [ 6 0 R ] /Type /Pages >> endobj 4 0 obj [ /This-is-O1 /potato << /O2 [ 3.14159 << /O2 5 0 R >> 2.17828 ] >> /salad /O2 5 0 R /Stream1 7 0 R ] endobj 5 0 obj << /K1 [ 2.236 /O1 4 0 R 1.732 ] /O1 4 0 R /This-is-O2 true >> endobj 6 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 9 0 R >> /ProcSet 10 0 R >> /Type /Page >> endobj 7 0 obj << /Stream2 11 0 R /This-is-Stream1 true /Length 18 >> stream This is stream 1. endstream endobj 8 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 9 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 10 0 obj [ /PDF /Text ] endobj 11 0 obj << /Stream1 7 0 R /This-is-Stream2 true /Length 18 >> stream This is stream 2. endstream endobj xref 0 12 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000125 00000 n 0000000184 00000 n 0000000301 00000 n 0000000379 00000 n 0000000523 00000 n 0000000628 00000 n 0000000721 00000 n 0000000828 00000 n 0000000859 00000 n trailer << /QTest 2 0 R /Root 1 0 R /Size 12 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 964 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.4-ogen.c-check0000644000064100006410000000005013247541377020615 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/V4-aes-encryption.out0000644000064100006410000000060013247541377017546 0ustar ejbejbR = 4 P = -4 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed stream encryption method: AESv2 string encryption method: AESv2 file encryption method: AESv2 qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.12-ogen.check0000644000064100006410000000026213247541377020140 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.6.check0000644000064100006410000000026213247541377017160 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.12.check0000644000064100006410000000067613247541377021234 0ustar ejbejbchecking a.pdf PDF Version: 1.5 R = 3 P = -4 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.2-ogen.c-check0000644000064100006410000000005013247541377020272 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.5-ogen.c-check0000644000064100006410000000005013247541377022306 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-force-1.7.2.out0000644000064100006410000000020513247541377021147 0ustar ejbejbversion: 1.7 extension level: 2 << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 /URL (http://something.adobe.com) >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/bad-xref-entry.out0000644000064100006410000000033713247541377017155 0ustar ejbejb1/0: uncompressed; offset = 52 2/0: uncompressed; offset = 133 3/0: uncompressed; offset = 242 4/0: uncompressed; offset = 484 5/0: uncompressed; offset = 580 6/0: uncompressed; offset = 629 7/0: uncompressed; offset = 774 qpdf-8.0.2/qpdf/qtest/qpdf/compressed-metadata.pdf0000644000064100006410000003326713247541377020222 0ustar ejbejb%PDF-1.4 % 1 0 obj << /Metadata 3 0 R /Outlines 4 0 R /PageLabels << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /PageMode /UseOutlines /Pages 5 0 R /Type /Catalog >> endobj 2 0 obj << /CreationDate (D:20031010180432-03'00') /ModDate (D:20031010180432-03'00') >> endobj 3 0 obj << /Subtype /XML /Type /Metadata /Length 313 /Filter /FlateDecode >> stream xk0rD j;lMlC4C_vW - ry{˭k |inr^ؿ-F`eٌy8q#*~[U7FHu^zu&~E$\ vЖn+TQ[^YZߣ(tɶlֈtrɈ13:CZd44t} o?3!4&S,[4VG?ܜ7ZTOn9 )yxB[~){z?icܥ7{endstream endobj 4 0 obj << /Count 6 /First 6 0 R /Last 7 0 R /Type /Outlines >> endobj 5 0 obj << /Count 30 /Kids [ 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 35 0 R 36 0 R 37 0 R ] /Type /Pages >> endobj 6 0 obj << /Count 4 /Dest [ 13 0 R /XYZ null null null ] /First 38 0 R /Last 39 0 R /Next 7 0 R /Parent 4 0 R /Title (Isis 1 -> 5: /XYZ null null null) /Type /Outline >> endobj 7 0 obj << /Dest [ 23 0 R /XYZ 66 756 3 ] /Parent 4 0 R /Prev 6 0 R /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Type /Outline >> endobj 8 0 obj << /Contents 40 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 9 0 obj << /Contents 43 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 10 0 obj << /Contents 44 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 11 0 obj << /Contents 45 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 12 0 obj << /Contents 46 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 13 0 obj << /Contents 47 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 14 0 obj << /Contents 48 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 15 0 obj << /Contents 49 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 16 0 obj << /Contents 50 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 17 0 obj << /Contents 51 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 18 0 obj << /Contents 52 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 19 0 obj << /Contents 53 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 20 0 obj << /Contents 54 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 21 0 obj << /Contents 55 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 22 0 obj << /Contents 56 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 23 0 obj << /Contents 57 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 24 0 obj << /Contents 58 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 25 0 obj << /Contents 59 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 26 0 obj << /Contents 60 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 27 0 obj << /Contents 61 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 28 0 obj << /Contents 62 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 29 0 obj << /Contents 63 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 30 0 obj << /Contents 64 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 31 0 obj << /Contents 65 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 32 0 obj << /Contents 66 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 33 0 obj << /Contents 67 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 34 0 obj << /Contents 68 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 35 0 obj << /Contents 69 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 36 0 obj << /Contents 70 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 37 0 obj << /Contents 71 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 38 0 obj << /Count -3 /Dest [ 19 0 R /Fit ] /First 72 0 R /Last 73 0 R /Next 39 0 R /Parent 6 0 R /Title (Amanda 1.1 -> 11: /Fit) /Type /Outline >> endobj 39 0 obj << /Count 2 /Dest [ 21 0 R /FitH 792 ] /First 74 0 R /Last 75 0 R /Parent 6 0 R /Prev 38 0 R /Title (Sandy 1.2 -> 13: /FitH 792) /Type /Outline >> endobj 40 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0 endstream endobj 41 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 42 0 obj [ /PDF /Text ] endobj 43 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0" endstream endobj 44 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0+ endstream endobj 45 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 04 endstream endobj 46 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0= endstream endobj 47 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0F endstream endobj 48 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0O endstream endobj 49 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0X endstream endobj 50 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,WTr 0a endstream endobj 51 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,WTr 0j !endstream endobj 52 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W04Tr 07 Iendstream endobj 53 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0@ Jendstream endobj 54 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0I Kendstream endobj 55 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0R Lendstream endobj 56 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0[ Mendstream endobj 57 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0d Nendstream endobj 58 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0m Oendstream endobj 59 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0v Pendstream endobj 60 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0 Qendstream endobj 61 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0 Rendstream endobj 62 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0A Jendstream endobj 63 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0J Kendstream endobj 64 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0S Lendstream endobj 65 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0\ Mendstream endobj 66 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,i*dqpe Nendstream endobj 67 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0n Oendstream endobj 68 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0w Pendstream endobj 69 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0 Qendstream endobj 70 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0 Rendstream endobj 71 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0 Sendstream endobj 72 0 obj << /Count -2 /Dest [ 20 0 R /FitV 100 ] /First 76 0 R /Last 77 0 R /Next 73 0 R /Parent 38 0 R /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Type /Outline >> endobj 73 0 obj << /Count 1 /Dest [ 20 0 R /XYZ null null null ] /First 78 0 R /Last 78 0 R /Parent 38 0 R /Prev 72 0 R /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Type /Outline >> endobj 74 0 obj << /Dest [ 9 0 R /FitR 66 714 180 770 ] /Next 75 0 R /Parent 39 0 R /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Type /Outline >> endobj 75 0 obj << /Dest [ 8 0 R /XYZ null null null ] /Parent 39 0 R /Prev 74 0 R /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Type /Outline >> endobj 76 0 obj << /Dest [ 26 0 R /XYZ null null null ] /Next 77 0 R /Parent 72 0 R /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Type /Outline >> endobj 77 0 obj << /Dest [ 27 0 R /XYZ null null null ] /Parent 72 0 R /Prev 76 0 R /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Type /Outline >> endobj 78 0 obj << /Dest [ 30 0 R /XYZ null null null ] /Parent 73 0 R /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Type /Outline >> endobj xref 0 79 0000000000 65535 f 0000000015 00000 n 0000000378 00000 n 0000000474 00000 n 0000000888 00000 n 0000000959 00000 n 0000001221 00000 n 0000001398 00000 n 0000001530 00000 n 0000001711 00000 n 0000001892 00000 n 0000002074 00000 n 0000002256 00000 n 0000002438 00000 n 0000002620 00000 n 0000002802 00000 n 0000002984 00000 n 0000003166 00000 n 0000003348 00000 n 0000003530 00000 n 0000003712 00000 n 0000003894 00000 n 0000004076 00000 n 0000004258 00000 n 0000004440 00000 n 0000004622 00000 n 0000004804 00000 n 0000004986 00000 n 0000005168 00000 n 0000005350 00000 n 0000005532 00000 n 0000005714 00000 n 0000005896 00000 n 0000006078 00000 n 0000006260 00000 n 0000006442 00000 n 0000006624 00000 n 0000006806 00000 n 0000006988 00000 n 0000007143 00000 n 0000007306 00000 n 0000007429 00000 n 0000007537 00000 n 0000007568 00000 n 0000007691 00000 n 0000007814 00000 n 0000007937 00000 n 0000008060 00000 n 0000008183 00000 n 0000008306 00000 n 0000008429 00000 n 0000008552 00000 n 0000008675 00000 n 0000008799 00000 n 0000008923 00000 n 0000009047 00000 n 0000009171 00000 n 0000009295 00000 n 0000009419 00000 n 0000009543 00000 n 0000009667 00000 n 0000009791 00000 n 0000009915 00000 n 0000010039 00000 n 0000010163 00000 n 0000010287 00000 n 0000010411 00000 n 0000010534 00000 n 0000010658 00000 n 0000010782 00000 n 0000010906 00000 n 0000011030 00000 n 0000011154 00000 n 0000011324 00000 n 0000011513 00000 n 0000011669 00000 n 0000011821 00000 n 0000011976 00000 n 0000012131 00000 n trailer << /Info 2 0 R /Root 1 0 R /Size 79 /ID [<66d36a30a97e0f16f39955c6221e0c2a><046758339b1d1abe21aa0fbce7db4401>] >> startxref 12273 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad9.out0000644000064100006410000000010313247541377015134 0ustar ejbejbbad9.pdf (trailer, offset 712): trailer dictionary lacks /Size key qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.10.check0000644000064100006410000000067613247541377017244 0ustar ejbejbchecking a.pdf PDF Version: 1.5 R = 3 P = -4 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/split-exp.zdf_070000644000064100006410000000203113247541377016526 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 7) Tj ET endstream endobj 5 0 obj 47 endobj %% Original object ID: 5 0 6 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 7 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000242 00000 n 0000000509 00000 n 0000000611 00000 n 0000000657 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 765 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.12.c-check0000644000064100006410000000005013247541377017450 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-other-min-1.7.1.out0000644000064100006410000000023513247541377021755 0ustar ejbejbversion: 1.7 extension level: 2 << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/lin4.pdf0000644000064100006410000003137713247541377015146 0ustar ejbejb%PDF-1.3 % 72 0 obj << /Linearized 1 /L 13055 /H [ 946 180 ] /O 74 /E 1539 /N 30 /T 11488 >> endobj xref 72 7 0000000017 00000 n 0000000608 00000 n 0000001126 00000 n 0000001283 00000 n 0000001388 00000 n 0000001505 00000 n 0000000946 00000 n trailer << /Size 79 /Prev 11477 /Root 73 0 R /ID [<2f901d9edfcea160472e03a1d0780d1a><2f901d9edfcea160472e03a1d0780d1a>] >> startxref 0 %%EOF 73 0 obj << /PageLabels << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /Pages 59 0 R /Type /Catalog /Outlines 60 0 R >> endobj 78 0 obj << /S 157 /O 190 /Filter /FlateDecode /Length 83 >> stream xc```b``"8(" X wH YA  :XbL endstream endobj 74 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 76 0 R >> /ProcSet 77 0 R >> /Type /Page >> endobj 75 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 0) Tj ET endstream endobj 76 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 77 0 obj [ /PDF /Text ] endobj 1 0 obj << /Contents 2 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 76 0 R >> /ProcSet 77 0 R >> /Type /Page >> endobj 2 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 76 0 R >> /ProcSet 77 0 R >> /Type /Page >> endobj 4 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 5 0 obj << /Contents 6 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 76 0 R >> /ProcSet 77 0 R >> /Type /Page >> endobj 6 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 7 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 76 0 R >> /ProcSet 77 0 R >> /Type /Page >> endobj 8 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 9 0 obj << /Contents 10 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 76 0 R >> /ProcSet 77 0 R >> /Type /Page >> endobj 10 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 11 0 obj << /Contents 12 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 76 0 R >> /ProcSet 77 0 R >> /Type /Page >> endobj 12 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 13 0 obj << /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 76 0 R >> /ProcSet 77 0 R >> /Type /Page >> endobj 14 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 15 0 obj << /Contents 16 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 76 0 R >> /ProcSet 77 0 R >> /Type /Page >> endobj 16 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 17 0 obj << /Contents 18 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 76 0 R >> /ProcSet 77 0 R >> /Type /Page >> endobj 18 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 19 0 obj << /Contents 20 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 76 0 R >> /ProcSet 77 0 R >> /Type /Page >> endobj 20 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 21 0 obj << /Contents 22 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 76 0 R >> /ProcSet 77 0 R >> /Type /Page >> endobj 22 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 23 0 obj << /Contents 24 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 76 0 R >> /ProcSet 77 0 R >> /Type /Page >> endobj 24 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 25 0 obj << /Contents 26 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 76 0 R >> /ProcSet 77 0 R >> /Type /Page >> endobj 26 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 27 0 obj << /Contents 28 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 76 0 R >> /ProcSet 77 0 R >> /Type /Page >> endobj 28 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 29 0 obj << /Contents 30 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 76 0 R >> /ProcSet 77 0 R >> /Type /Page >> endobj 30 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 31 0 obj << /Contents 32 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 76 0 R >> /ProcSet 77 0 R >> /Type /Page >> endobj 32 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 33 0 obj << /Contents 34 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 76 0 R >> /ProcSet 77 0 R >> /Type /Page >> endobj 34 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 35 0 obj << /Contents 36 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 76 0 R >> /ProcSet 77 0 R >> /Type /Page >> endobj 36 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 37 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 76 0 R >> /ProcSet 77 0 R >> /Type /Page >> endobj 38 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 39 0 obj << /Contents 40 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 76 0 R >> /ProcSet 77 0 R >> /Type /Page >> endobj 40 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 41 0 obj << /Contents 42 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 76 0 R >> /ProcSet 77 0 R >> /Type /Page >> endobj 42 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 43 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 76 0 R >> /ProcSet 77 0 R >> /Type /Page >> endobj 44 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 45 0 obj << /Contents 46 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 76 0 R >> /ProcSet 77 0 R >> /Type /Page >> endobj 46 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 47 0 obj << /Contents 48 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 76 0 R >> /ProcSet 77 0 R >> /Type /Page >> endobj 48 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 49 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 76 0 R >> /ProcSet 77 0 R >> /Type /Page >> endobj 50 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 51 0 obj << /Contents 52 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 76 0 R >> /ProcSet 77 0 R >> /Type /Page >> endobj 52 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 53 0 obj << /Contents 54 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 76 0 R >> /ProcSet 77 0 R >> /Type /Page >> endobj 54 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 55 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 76 0 R >> /ProcSet 77 0 R >> /Type /Page >> endobj 56 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 57 0 obj << /Contents 58 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 76 0 R >> /ProcSet 77 0 R >> /Type /Page >> endobj 58 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 59 0 obj << /Count 30 /Kids [ 74 0 R 1 0 R 3 0 R 5 0 R 7 0 R 9 0 R 11 0 R 13 0 R 15 0 R 17 0 R 19 0 R 21 0 R 23 0 R 25 0 R 27 0 R 29 0 R 31 0 R 33 0 R 35 0 R 37 0 R 39 0 R 41 0 R 43 0 R 45 0 R 47 0 R 49 0 R 51 0 R 53 0 R 55 0 R 57 0 R ] /Type /Pages >> endobj 60 0 obj << /Type /Outlines /First 61 0 R /Last 62 0 R /Count 6 >> endobj 61 0 obj << /Type /Outline /Title (Iss 1 -> 5: /XYZ null null null) /Parent 60 0 R /Count 4 /Next 62 0 R /First 63 0 R /Last 64 0 R /Dest [ 9 0 R /XYZ null null null ] >> endobj 62 0 obj << /Type /Outline /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Parent 60 0 R /Prev 61 0 R /Dest [ 29 0 R /XYZ 66 756 3 ] >> endobj 63 0 obj << /Type /Outline /Title (Amanda 1.1 -> 11: /Fit) /Parent 61 0 R /Next 64 0 R /First 67 0 R /Last 68 0 R /Count -3 /Dest [ 21 0 R /Fit ] >> endobj 64 0 obj << /Type /Outline /Title /Parent 61 0 R /Prev 63 0 R /First 65 0 R /Last 66 0 R /Count 2 /Dest [ 25 0 R /FitH 792 ] >> endobj 65 0 obj << /Type /Outline /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Parent 64 0 R /Next 66 0 R /Dest [ 1 0 R /FitR 66 714 180 770 ] >> endobj 66 0 obj << /Type /Outline /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Parent 64 0 R /Prev 65 0 R /Dest [ 74 0 R /XYZ null null null ] >> endobj 67 0 obj << /Type /Outline /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Parent 63 0 R /Next 68 0 R /First 70 0 R /Last 71 0 R /Count -2 /Dest [ 23 0 R /FitV 100 ] >> endobj 68 0 obj << /Type /Outline /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Parent 63 0 R /Prev 67 0 R /First 69 0 R /Last 69 0 R /Count 1 /Dest [ 23 0 R /XYZ null null null ] >> endobj 69 0 obj << /Type /Outline /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Parent 68 0 R /Dest [ 43 0 R /XYZ null null null ] >> endobj 70 0 obj << /Type /Outline /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Parent 67 0 R /Next 71 0 R /Dest [ 35 0 R /XYZ null null null ] >> endobj 71 0 obj << /Type /Outline /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Parent 67 0 R /Prev 70 0 R /Dest [ 37 0 R /XYZ null null null ] >> endobj xref 0 72 0000000072 65535 f 0000001539 00000 n 0000001694 00000 n 0000001798 00000 n 0000001953 00000 n 0000002057 00000 n 0000002212 00000 n 0000002316 00000 n 0000002471 00000 n 0000002575 00000 n 0000002731 00000 n 0000002836 00000 n 0000002993 00000 n 0000003098 00000 n 0000003255 00000 n 0000003360 00000 n 0000003517 00000 n 0000003622 00000 n 0000003779 00000 n 0000003884 00000 n 0000004041 00000 n 0000004147 00000 n 0000004304 00000 n 0000004410 00000 n 0000004567 00000 n 0000004673 00000 n 0000004830 00000 n 0000004936 00000 n 0000005093 00000 n 0000005199 00000 n 0000005356 00000 n 0000005462 00000 n 0000005619 00000 n 0000005725 00000 n 0000005882 00000 n 0000005988 00000 n 0000006145 00000 n 0000006251 00000 n 0000006408 00000 n 0000006514 00000 n 0000006671 00000 n 0000006777 00000 n 0000006934 00000 n 0000007040 00000 n 0000007197 00000 n 0000007303 00000 n 0000007460 00000 n 0000007566 00000 n 0000007723 00000 n 0000007829 00000 n 0000007986 00000 n 0000008092 00000 n 0000008249 00000 n 0000008355 00000 n 0000008512 00000 n 0000008618 00000 n 0000008775 00000 n 0000008881 00000 n 0000009038 00000 n 0000009144 00000 n 0000009413 00000 n 0000009495 00000 n 0000009686 00000 n 0000009830 00000 n 0000009998 00000 n 0000010289 00000 n 0000010454 00000 n 0000010616 00000 n 0000010798 00000 n 0000010999 00000 n 0000011149 00000 n 0000011313 00000 n trailer << /Size 72 /ID [<2f901d9edfcea160472e03a1d0780d1a><2f901d9edfcea160472e03a1d0780d1a>] >> startxref 178 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/good7-not-normalized.qdf0000644000064100006410000000215013247541377020243 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj %% Original object ID: 6 0 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 5 0 7 0 obj [ /PDF /Text ] endobj xref 0 8 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000242 00000 n 0000000484 00000 n 0000000583 00000 n 0000000629 00000 n 0000000774 00000 n trailer << /QTest 16059 /Root 1 0 R /Size 8 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 809 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/fax-decode-parms.pdf0000644000064100006410000576241613247541377017431 0ustar ejbejb%PDF-1.4 % 2 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Times-Roman /Encoding /WinAnsiEncoding >> endobj 3 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding >> endobj 4 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Times-Italic /Encoding /WinAnsiEncoding >> endobj 5 0 obj << /Type /Page /Parent 1 0 R /Contents 6 0 R /MediaBox [ 0 0 612 792 ] /Resources << /Font << /F1 2 0 R >> /ProcSet [ /PDF /Text ] >> >> endobj 6 0 obj << /Length 7 0 R >> stream BT /F1 9 Tf 72 720 Td (Once upon a qoww.) Tj ET endstream endobj 7 0 obj 48 endobj 8 0 obj << /Type /Page /Parent 1 0 R /Contents 9 0 R /MediaBox [ 0 0 300 400 ] /Resources << /ProcSet [ /PDF ] >> >> endobj 9 0 obj << /Length 10 0 R /Filter /FlateDecode >> stream x340P0\# i 9 \0D>endstream endobj 10 0 obj 25 endobj 11 0 obj << /Type /XObject /Subtype /Image /Width 126 /Height 21 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter [/FlateDecode] /Length 335 >> stream x `(nJ#t&LtJBr!'i'y^g3?{2彽CD>x$Zwډ:Ch;nLV[Ӽ0K`nJk'_\N̓K7禤$(/>.<Լ6. ^ 5+vڤNyN{$6>_ZkЖn)+OT{;uM'G73qfmwkyrbkiy%q֔`';v!yGj{G^]^5ty:Z>xLy~J~g`v|,bTdȯ=endstream endobj 12 0 obj << /Type /XObject /Subtype /Image /Width 142 /Height 128 /BitsPerComponent 8 /ColorSpace /DeviceGray /Filter [/FlateDecode] /Length 1097 >> stream x[Q*]߅|yIjI͛eEH$`:iV_U>Y[Zz4[uL/edn}Ԅ{HFs LEE 4t8!vLvH MBn`2h7t*chx:s1RX,&QJiLW  ^7$ԊnoMgJhRj[Vl[Yqo4wӸW}K1=&ahW蕭V4b^n2\b5#KE3.;VlaB7Plf "2TUhݳ)u^nfܾ6O0c4MZ0nhXTbdsnq5&1'\Yq^njHbjWXzcKƾb?}g',F%c-8γDs:Jh&Kc+'e{>ˉ,qFNޖ"E9 _7D%HN=N7Ӎ4F\h GCKkꓺ~hL+V@]0" !^ LXEX!Y5o1u-kM4-9籦~G&bM|,$ qCI n|(O;> ΂EC 8dc7nPF6HQ;5 4Z7F YPxĠJJ-./M!p{uTmL"|mM'-z VrZ%*Lb/_pfTkJ/v]) XќvSฺ!)}TZ+qf`Ωh48C3I<=6Ҟ1+Xvs"_/k2.9!&ZA(sͪiV`R$֬РR #7Ili; d+8\4 E9?!Bu0X+59&sqjL﹵!\lw_ 깦>Yp}#ڻ?^[s Lt/O5GCBgka-կkB#+tÓ s' mendstream endobj 13 0 obj << /Type /XObject /Subtype /Image /Width 640 /Height 480 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter [/FlateDecode] /Length 624420 >> stream xĽSU9sd0TDE1GPYT@1LK0#3G2sdZ{}'[uo߾#V;0 uOuUz;d37ko\mzϺqdVoH\XiMª%E)X"ʼnT V-$Zä˓) ʴ8ic;25dwh]n}mҖYKW6^d}}l|b^MϬvdi5g6_pe˳/d''g<{0GܻE;ko^SY^u4vڊëo+;֑-7o/?BaA޼?~\Uu֦^l| YIUQ^ZP5FSc j4C-ĭm)jMjkBPk MFmVCjnq-lij64Y)Эn4;2ٌvfkfLXV챚28:--2{&>c^n>WfqXA@;_9~z.]p{}@yz |Wt;]vWA+C=1t{qa@ @ '½(v]n}=^=]($!PH עgnqyg_WwoWWO' B}ޞn4t}]`3vzB誣;qawO_'P:AWzFWE(PLU~hf(!z6Rwgxb$4ƳEFh{;21L NtDGǢCh1ejѬ' C᱁0*PardvzC 3_fqkwNMNM~mD( @!Ȅ"D D TJ@&d2\ "H,TjR!Z9!r1+ ' jS @sX9"FID!I,Q  R& B H@".r&on~@7/ D T"+W+(Ps DJD-YB@ǖ )'<\$O""9. 2s1~L-7R,Q 18 H.$Q{RrJR+]n_w-L[ڕ\fzbE*J iq:ab<.N4Z)lQfq|Muq36V|ym;oocOM.u9mvSug%xf 㸺p~S\ƒNә\ӹ\˅S՟kNip1ٌWgֽ>Y}~CMNmxt,;> طU\]q&`h-!3n:˿Vmg)-9cP'Us Ja!B0 yR-XO[)[oG .௡Dkn B/Ā0ADyF6Cf3AV6e۾f xlnڃ_ Nc_b,`/#_ 3wo@^'.Ѽ/S{; c5 %./ _=h_ 1qG^xcS=se wzu!D"zz:`{5|c L0Rtv9$/Iwko/d,`%//7߮~f~a{B#0)P8NEJG #&U._(Ńf07= \pWaWw`rb.YPƳALQ2YƬj2 `UGsH'?E:nx4b4%alqo5.:'B_E>B40Eoτ~y<;nn??ݺw[V7kĀ($#&gȯ`i"Ԙ I)gbd4wX B\Ar#Z*DRDP)8)2E j!T J(P3# _ !e\ j$\+P'XtbH'kL)P RDR)+DRPfxE s݋RX^% qU"z6VNBW1n~A]﮵3`w=)yqVҗW/W/_NIk :oR"!A$E[6nm=(a-ͳns_Rۯh>tf}lSknl[Ys>ɱw/G3_HM;,{d-( ?>䆻EpPeaz9ʋ7?TS7N;d?M/\7PMS /*m%յi< )pXg[, ̛Y\po/0C@0ds _SƟP{ul\6 ?SwN&@76Do;i9 z;4 ?Fο<7 uð1vvw͍E&EBduI\.Dao N=0t; {:= &yy7%Hi pLvpґQaౙ XRgL|zaP"͠!ilFYL pt"`tft|vB,>1N"F%ȲMDqԇO3coǐE&poE܋n}ѾPhYD'_)h dcύ?ۏ[ g`rd$Ŝ+IλqRo苉8+U AVH%(`B6˚}Um*D J\%F,*`Jt }ZO)tVĈ*QuD uPXa bez*NW$SNjU RN)XJ(59 \d*P+$(Tq2tN%;B|w!VܟHHyaz)4wjt}AVR %4U'HM4Z@hU8 td !^k}څ]k]/O^Y; O2u3ns>xSŝk{/xQVO~K6Szi ̯|N_絭Klrۮllq^̳^f|6\V˥ 듫[K65\̮9g,ZTt엧7?*\z߻ZSoee>=8.ug*̸sbӃOnyb{=g:l*ZZkjjj̍5M<oG0DcDXB|0e6Lel, __xd6r_/KFtHW3v_fZ5{t_.V/3/( v `E`bٽn*@a^^\A4͆)_67X04^  :AvSci׿3 _6ӽ4;㕍<0t_oW"PO7 ]0ſ# nH?z0=coi]r<_vao:i,f]ɄFgs6Aܱ!) dM0韘XI!5E'E' ~y.}#nKdq!e'O%MFWHA۱i )@/*&TFi?4񗍦D"&OR*J/)+D! dr^TF}ubV E5z6NʹN1CFԢF <)ơYJ5))7ZD/B #/E'`+ό.X Qʼnԉ2WKDMJ9ڢCB#. m+G3quI?hlHݽFJ[.+XO߼xjm d^#Xk :/Vtj ]E"HՊ7,^r03'߮3ڪ:[g^ZvE̅@oh6Dˑ(8&(] E.03 Ca8<bԲGIX0) Ecőhp)9bĀ&D#8B<D01;؋ F!H"JM"&AMFKr(B4Ro K$E3d\BO,R\H7$!eh|؅]63;/oʁ]Ԑ`@%P%$k@D jY|Z/ĉ4qBJz!V'@9R6^K#fD(Aʩ][`-+F$ \ ^x)\*BZƉz^/qU\") z׉ ΋_Dm!JYyO Ȅo#@H,0nh*]b g('`jVbZݑm+r3V떥*Ex -AUK-kKq2yAzґ.[lY@Ý{GwNYn*.m+?'o UO6l=vm{۵mJLߎ[{:nqC<] fxa圶kyme[/f;+ ,eyֲ'Y]}jCmom}q|Orn]y`ɃkAa?\۞V #\uhͽ+VYsx[;+ZxosEV?1k׵T72W[G&z>Zjlmh~MC@-"K͆Zs[#bk[ j2YZ֡%xM70=6`.( /;l 8.Pap\$+ 񗳽wnQVЃ6hf )[iɰ_ݱ3KK,fw|yS9(L>P,TpLФRT܎sEZF 3k0h?q86T F9_nJq&=و?3.D04(>?feHhT}bB/KD)QaB*>IOjRm>a.A %I!P^$ȉ )$'a8N)+frG_=[UG\Z.Yp ZJ6/l!lōݎ %Ue;@ _\) ՟Vd ?: ¯/l= \ke8UU]wxCթgvuhAO]vOƦoizj_# 4P  \RDZ!S ]Ѝ3T 6j!bs\,ba@dV6YXY]F`QhPQؼmp}69}v.C.ix t7fx}.-t; ._o/bnr+|vx/B?]n?(r ljwE|%vu'hOWO4b%Ǫ=ꂈ1k e|{mÝ_'׎+PX"^s[}s0 !MJ4@BH\81U -0B-Kإ%kb8D)!j@B}BkA79M)ĊD#*NExgFIP8d$^it9oFa@/wgO]kx0Y+ܐr(3YIӻNZ*M_,[Db|qlQay&koztR5~x@ޚ+ܚu4c{6xO/6ϯ>rNkn·Ŗk7w: 6^o< k}}j i6ӥkZdn5\h.q*s[.m0_K67_i8ƚjNn^wo]o\v{;{{`5j~ӓ΁{d-LΣo53nTq*=e+q壖ꆆWu/MaDaR}k &S,#ne/m}YZ .djbY&hE-JgR)`i\_/dZ / nK C f;' 9~MЀfK%/L.qN"v2;ow pGg.Rj/7ߞy2}=߄o,9̍93{`\]H<V:PFcSP;93` C(A}@[h74CG,;@%&&j#\X$n0_gc}`|@3HĄϿ}F+(@-.=G4y 4Fc#sSP|N|?oUwU*^/MKӥ%)4"K9'/R%*6 (Sܠx%"@ U!dCTA.Dh zRoh,bnpw\3RL>P|wfaT :5̬HNQ{QR(G m /1Jou)f.+ssdT_w&sӵUjwt͖łrR nZ:n2U*^%!-҈3Tǽ/P[sc߻^>z^b~u縣ț3̓zovu x~TR9-kyH6ۯo1^j8n(TXKB-6nvW _7.V9xCݙ'r^gDz_h#O+v-}`UHgB-θUɸyl͓[oYzrS*PWͳ lsLcB*YY.ss˛ڦ&sԀ7ߴ Zdn6[̰Nkkhi7Z͖&k[ JZ"e 0B@jt cڼfr4R2_ G;;<$u}΀upN^FUO7F͹Woc/ǚ ikN_Wwˏp=;}ĎWg;0@{O_f7.ܮsl\UOoG/N¯A[x2+I.?v m#@@?C0`(2ǣ6V>K F'5!8 ^LE@-.yq,' (ôkh$:26 !@vt|1m}Wbqp.?yh$`|r$:Q85%Jp;@hԧfgO#8X?/VT\:`qfq:1N$HKd1d.YMX/AS/"ΧH)Fa|'JIq $Yr1)b]H" er|n/C60^*qq8HjBb%7Q 2znLZŭj-[J'S@ qc&^+2+qLXe7/~_Ui\Vyi杞y ՚?(-K%;2{sؘn:-Q$ 4/Cp UeE]+ x~Tzo mE͗l+ 52_zJfgۯʷ2_6^mYFcIpn\k8pvdrc/^of>/|oo'7޻`UW7,_tubÝyg~h{ٙC޺vYÛg / X撷emKYU |Sd7[8z `1#l:K[#ӖiBJty.3+q9S\5Vp?<ΆOwxtzPm= /AQΊ]me,%[_l ௷,|>z1VQk/10ZJ7[˷re#r9Xtƛ0Ms_Yບ[jNn~u|㡌Gփ_PɱE`槂%{]; <u:R=Ern\:ZᥡfiZ^7rjjn60oWu?7rd)oil#K-@pk\Ԣ2㯭͈)2 E3dVJ-ΦVWkLv/mv\&44R|\^m! uY|nsk{n !GvEY#8an^D09#7gntwv)e΍' u32;]Hi3rmZV RtAl.xww0 E"n7O_/ D{ hxlrpp/V^j!TE{PpDEC=F&z:ؔ+c[&! 5 oxdNE!ѐlf1~ߋg/Lώ~:UaAϿ|7;!tKGۋ{%jɆ5@ʛbz Fdxb( Mozjj7)$xpI25^SKI.-Y,K]$IN%Rʼni҄E@D"R%S$/b+c\Ϫ1aYF'K Ir/R2 02#^rۈdIJGgPP-UHBj@ jJ#gov^7.EIĠlUQ{bFbr{E'^ BV6s i191wgxUt4h@̩/7 yAP)j;;B i'=|PW?(1Gfe] ,Ӻ8<|(Mc, u#0.)]SϨ0XËZ`%EQ1`dݎ~nva'1b.y^@3irAݑHJ[42/]zZ.H4@{J1nۑE9݈ /|1o*'{Nx`fC(@a؞Ht7UKI:$yj`q`I`ipq0-E,HJ$ aD.-hSd2A %[JUluM`.-U&&21)Z=8.G|^s|UTIuzV'}GL)hF#aBR{X8v;i~R;A/N+:"r?ҁҀT!TI3-F bN"IDz)J{ }s V:`E'P-nDguΟ9ԤT]vDww``7}pީZ%J]`]ٵLye7ͷ:}NYoXV?x~ѱs_;e;߮Gf{fbjN*Սm73kg5]X{*5O~v`}*X'ׁyV:U%:=+N-=pŭnp'ʋ]+qĞG_<2{sӫ'f6 _mzTKl\% /삿4 {X-muf+'K78ooVXݺjn1:,bb.R2s.65ͮfgahshu 9f8_g~6+ ؃>CWt%7-~p`:De|iM //_/X-߾ںw_!+wKkYU7UАKY=&R-ǽFU gd0, YPtF{&gٯ'fG9E@i煉4`Fc)ZDxn0-<A~ UgwLˇ_t7ofy!wG-4<7>1LCɡ鉡1ht3>Mkg`eɊʼnbwi Cd6)E"LH&IĺT&Y Od>hzL\5)EMq|"mʁ]Hrw;v;gRHÿ@0; K١XIv3h;w૖ŀ2NЌm)ҊZ( *߽+wqA.KGt& WxJiB!6&(cRv'*㭄_>EAߖrIrD>IҢ W+.X]!ψۖ!=!}nbu^xZ ֊բ4U)[S,ORLeyZmU#5\jΧgtRz魭w^ٱkm{{]|iK[V_nWv圶|߭tfK&KyjNӥ+[L׶\̫>Yz˛jO4keJ*H&K=;,PSo̍ t|G#R`\Dъ,R}g*i1Y,Mm&W$Ԉƭ&-2P[Ll l{/]ЭmN4pheZzggnړK[<兖,.G'tAGZ}Se.8fh?'sf]^[i_VA3=sWO;6BBa/?n2+فފr1W>}v`Bl{Ulj+.`dG'C-u`B42:gRXt|b뼗 G"la:j`t`jf>} at220wɿTLGFGgFώM}Ddh2J(8aᤡ#coG!Tḋ)Zvvbrjdb|ǫ?OtLND P:娥sFgF'O-'~x;NO~_N?QR_yAjZFHYKRh封 KQ$bw28:AM5x8SIa d5 ]?lܹs2ss/aBUz%7+6|7 Sg-+:3-i1]+wxű$):p>4:D_qE"_X !wk^wݛھ\+CRg%o\H]LJMшSb7M+_XX(YMd .䦅^F^_z TGLnhߝm==}Õ-@0뽹% <7 7vl[n (3_h6||!/2_z},Y֜Ȯ9э?0}p0}iվWRlI.۾t[{W=,zp4ۅ+mulŹW/;]LΪ[aK)]"/[ky`/M "3)_jmf2goyv[ZÈt+3NaLn ulrmG_:Mcڈd.ٯK(s Wz_#$h/Bߔ ߞ -/TMjuuef|l=3GXyKy9S-` ; ,26#=VGXvp% p!b1pLJi~&Finx8 A4 ,:6@J߯gP}|@ ltQ826 /bh?!x8D̝yfh,<~19!F"nT'S,,B0^O #cCZ)QXWFJɤ0V2W4ߕ?i;skί?_RA,4@7Z+%r2/.Av?$|<>5KPK,Sn2g{= txoA ݑ#39'=q %X$PZ(Tb sxS2o2ZSƧ2앇>8V~y_5[-Wwxpxe6w_g~-sc~g,Z Vmr_oۍ-[y4WT١Yw͏?9IcYŮ/$Xg'7?^ʃUEY9[~lK;rO>Z 55uy54tY`]S-To|> 5d6 *wV3wV:gBjsQ*"/Vg;;Ɋmj6rGMlHyg:N⏦3Z\V.3۝.`}J;x{LDd`}I'< _ Xϟ Ͳ#c/VCyy}{^/G~+#zK}pFXcidv (fe' 0ۑh/ ) -/O؝H s t~:eZlFxztEUkDsB6Jlʾ8qwbvRHHxrvh4og>hzf}[vXt4[j55 aKDG2Ӊ{[Y$UB^rٜdr6 /K4g(nbr##}A|Xܹa^NԒ/߀ ?\_M._@bJʾ/{h=Í?篐n[(XWymTErbJ@^$I)NT<,IvRIxwloSI~1J's=MW ==yyUUQ!/krvo~wN{_`v{;wo1\ ֝Xs|Ӄ?_ t>ܖ@;;WX`_wy|$IQ?\߶@uWv:b7s$^'=hN7OnunOˮyl666zS+o A նV& oh|hb+X%65MLKc/+& Gm~pF,Od+[Re6-~[ p:M =% w~0xw =ܐ2!Uza᝷9x/y*?^=AB0.1_b=.1]`rES|~qwltpb|Ǚ?o?[}?/DJ: G0;R!~T8Bp7ߋO.>^(*`O*SFҹ*c|Nu`´IV,cyI%sbg7rJf< -+v l#i̗s ln/\{tv . o// Qn[*PRs&[)'5V%kċ42(Y%IP ˖&ɕBTіŢ=˥á%%]wOE^_{~T޽=ߜstǓj~Go m=H]߭]_`wk4ޞ;;;l׶^xnsٜ~]>w; .ݡqwϳ9oͼSSTM͟3{]7Vի"4Jti[b#b\߆X(E{0`'пQ/oQSnSn+[. 54M@J_Q~J_O@KGW}oK__[MW_1yaC#;!5팏,Y?+C]Cn\-4d2 |_#]]^[c8Ҟ^,( .N*WLAd|^֦C)I+D_e_௘bl/% Ir_J/ewP%3,7J`fD.r$_1<ˍ#` eSlN6"J?5 ;Lf&${g$xVh^~\,Yh?pך=`, SaX4_V|җ_ ۙџ70ߔHP٢\ﵲԗo짲gr|+O!6fy,-{͕x-T#=ɮ M-rj^.̼=Ih>j"\[_c?~ !(A߳8H $ʱ0>'!;97u~Qz8-YKGБ!`A+?us3ad Ш]-(__@^0WR? ьB2=10;;<23??NվsF( ̆ 9X+?+˿-#wA J ۆq5!9+tUB!i,x//-%+v;a-!KFF^ʰFBF!`D$~ W@91ȧBJh!+ šIҞ:$eU`!;=F ?3.$3_3%l`SֶW6v׾ ]ӓKBhMdX 4!_#SIȨP!Vc5~M1@* ,_si5UqG4sMˁ~y9S|E7aF (c?(_(qSDa_qhIt$Zh 26`tS4Q750*M<04ДH9=v{b[oےdQor~khvpM-ֳ=e(%u$xU5=j6Zx& j2Ns:s^3a%kXG1ʮ)ھ>ª6Լ>Ҳ-ޱ$ #v(Yftlo x!{1vx &S(ע"_f齔u,0-x$EiN5W߿3!*o_wb=Ea Ã5IuT/`OY. R i|ƃko`fl'8%1+,i^9}$TM+a__-VrW&+aUU_Zܡ͑JoWjUu_v m#X.Z^d_y?w0 aZ/4,uzٙ8>6讪Hb$0T籩#33#u-#'ߤs˓Rӏ{*&3^:Nd-EJ{M< =F߿NsO yn9/r=f 3=x`8'oX[CMȋ @K!ʩ*\G /"plwMw[dQlI"ε[UwyOagVĠ7AQmM=CCD^/lPE&2 nm׍&*wK;Ri䔔 ^>E 4k~ i(<=3jG&&e jҞ'G`Lj!/1)˿"d+/ sXo,]篂e-,h!y 7l+&|7[˲h<4|(>p8KXWy*{ s_b>:`m7NN` 2R|ᗋ+ { $=(s=Bʆ1n}eHg{0&9vK+P0@t?/q~? IӼJg39 v7.*e#Oh4;9spwҿL DU@U1U7r +-uT\?垚nBU\jī{=r4ߞ8|W/WY\.o(Yekfo aU0K 'gֺ&v&/iZ>PP6X徉䞾#]Vli;*F0+-Uhx;^<\f8;C4Ra78}a*)r,d4c><|, b,W,HF߻bPV8:_1 {.8Յw't']I@}i\fל 8ݺhDH~]i>oc_G:eeoJ|2b R#RrJfZv==-!)uHh@N.i^1WČ^ ;>ǍpL f5G`'K)+ZPft&.ؤ)LGK OII.,fgGcyaPY<3q䗌&%񙀫la  ~)J>pt.%ڿ^j$.2Y,f-;d&$±4AnN_% BZ!䪸/%EoaWTj$ __b] \'I8yoX/">bЂ\bKԴBIYA8Ї͝UR4ߙ$!_}~ȲvHYww=8t|iޏk'ޏ/GG[_~qtzƱ;R!NiɗcJfr%t;tyai[\@x U=y`!q 2zNR'.jE*/RJJʢ+T Ux\?[Hhૡ\BC)-Ԅ GK(#GmC׫!0ZU&ZmPK5D2fP˽Ǘ.\TP J-D I@M-]_Q:zjUȢBَe%%|_v~KA*J GԞ=PODrL偩䎞}cm]k(e6ƒ`sʒkj>KcG:G#.FLH߻jN\|7*"(,f." 7l\7;-X\7<ᄝ€,z8IyT< k\ *61 _K{u'Qmss, l?Yǹ&$ K)Ino(kmX04$p%q y @^2pGCC]"ir#-wGK9j aeM&9 %K^h:.]>(//1t\+-?R /qsN^n7W]'oL&4?CR.J-q3R_x@RR4K]0ӟ|=USt./8_N>2{|O_~8;:75w|˧/9{ X4_~fp p)$0<4= 2vxǣ6 J\3F_RǼ7,Db6)/w_U"BGb mM;@18 7KUőF prƩ2eՈ;ا>{cg N 9Ue"n~)b!4*d*ekkhc "Blt||ZhV/_8<&4𽅿y. a0@I`Y,yF4ȫ>j1U0m lr(ՙB_)W\+꛱Sg[a2R8#3$9ceDhjA.h^7t" O_N+zUvygg/./N||rxxoefcQئÕ o@ާe`aѓ}J.gG_}z_a?߾ađ'e>46{89C? G`SVDW—?Tא62gyz< "%?0dH QEDhIKtdeJbYJ_sT/M`1mUHR[ 壢_kqBXy%eK@0*%j-p"lX Qaq^e\=c3Ƀ#=3U={FwmXHkG*, O٪O+[NI߬MX- ݮyT0 Nx.lDWLdA.x-y'Z &فIo+ՆZv& ~Qnrvium@ot o줲 XcfVh/_*>G%򯈿T*W]V__? U`JpAZ\U0yS,.b݈_寘b >7Jtz}p2Y_ySK_`/%s,V_̷, 1і&`; `QOhߓ%3 o_lo ~ll^ߘk+*\8? 4*$0 Z%_iD)%BbhGhӓѷT/̺fPh/;RIf/ w]xXx*/`R$p7/p5UWOƦjr^yɈZ_1x_,_QmUʁ+%bU UeL5  W! p ,u}_hXh[Yimum!]ޗ'{Wo,15Tomjv6{D] v&ޜ͔E;- i{&" F2&^( _^* t_ yG^pjY0ZyrI\7MaX.܇Slmz8ׇ[<6zeks[867P[XaRn,!\1ѭ>%:ηC`e{~kqgQ8po趏3}M=ͷO^L_+?C5SI )Pz38x/lp!Xh M&r 2?/Mѹi)5^J)×;1;~#|sW7Mm7x:Bo _!F39+qG^U2WTDC2uvo?-o/gB ,E+/e^(μ$b -dU)0D^h,OOvV>}Z??ڞ_ho(lm)n\mYk^i6tn||` { 핏LbIP\ho`+!{q1~ V_C2+|q( q¾x3+#;}mP@,k{uJ4E ePS8>g^YJˠL2ӕ7 G3MfMXRmC?Y)oO3X_m9jo/+R2(Q - :l삹f~$bo`ga V0/ӿ&f254WcajS33o4; ]_[yP7W3){e7ZPnΗ-,39>_ߍʰ B_(_u/(g= vп NI.Ci-mo\ڒ^%/ xX߼! qmI~\M<u2J}iV+ }nU~Uo"}Cr'GZzaX\ ETċ _ǂyDX,.$6c п8(寺\jHҴ\5[kZ@cvָ bWj_˿Tg PcDW+ּb 5 Ԏt4u5v65g80NsM;]e˪͌ uYPOχZQƽ!5I/ UT0Wב:QxؚTIBVJB]`NϭꈅB?_<>:籐x[;Wila[9α)ީ%{:gη^65QֵюߺZ>Mr4y$Ԯ:eQsnsqGaoAb`AJX|9Ӡ[oKwG}oG@w+ &_V,*\),dAwVʦ<@xH# Yĸ$24 Ba?fBiI _uBbgf~Ηk%;9=&y+%_1/пX vp1m,jэt#^t{/yYiFH\tsųX0ˤڣ'0oAY*Po?};8=>9Z_[ok.nꮔvvWLUL4/5,-/wr җORO>C]'r2/N;ǧcfS(C.υOlFPwٗogT 89_xX>IQ0o_7%?hkj]ZE=|8jP9-gY~Cu5cMU# V_-=]:6l?WSS|y5 7_q?#M!ՙegz8^YX*ƞUj[h>Q 4Y 3g՞Wc{ﮚHTP exda~GPeo{cZUJeIW  H}Օ\{ڕQ3:uPU>Z43S^RW92qҔ0V|&eMőCN) ["C&8;Ey-xX%niۡ/i_}meyiӊH,;e~ 6) ~RauemnX(D7.oBcKrk':۫{zZ{`== i`uh&rP_.ӑ!|tqBʱ>-&fgXLL INύH1)w|lܴɑi /-..`njBȘ&T7DI9[M>Z q[(89;k XzeynmuaLy֕y,6Qv`^[gxi}q]_\\^Z4 8b},w6vW*GY UHt;^7O^Z=)-6WL})蔊n\5MQ7F!y{1)!(>8>>><\;9ZޟmפֿtwnM. )(*멖TI{j択ϟ׿C/_*O_~>|{zqptf~?=cv`ÆЈTx/'Pf=0Ѻ0B?J Gj`-bz5먏P򕎬]5ⶔ,諫hyJE0u=uq*\ O$R UhSTтiQ@ ; 4ԄWDV=?Ee;a#UD?:(yY$䲥,Y'N_)eҔDٙ?f эp0yemifdeH= kf_#fZI̍%.T0VF;33+,]ɞю|QqLJL<␙ O荒`w,Nq}W1էWi㩶coR'?Mex $ls 2o .X&EGcIXkC h+ 6ζ QumqHߢg!.9 q1%'F{눿|ooWO#? E| @^2T7; `~0LYau 2bjwvfH&EeYS-ޒ4[-N.X5:KXo, K3,& *bnyo 7'啼;TG,t&-$u9[+-,0TCb1\t loW Y;vWv<<=zb`~e ؘl*oikmjn+j_T3{||mOMo$sB-}9ؾ@U!`" \jqR c=T#8,9ԈeQ3-( 짪FkjH ) jz/U@:+u /JU0є,}3o*dAbA}# %x*|Q!X[mB#WDk}=v,?䯸 lnr\=0FV^R@0kdz玶]Fr~akTfӔ:W6|ԑV<_ 6Ǻ6:'F6$C.mTEᰵy8p(`>{$h,eëؙ,͊4iE_Ewy_;ב4W=o^օZ5FՄXTZEڔ=lLq~T+͵3եk]u]-9ť$YM[ecY(%/\pQNoVd_7!cyHPCo+ox PR 4lhkX>=.Z)\a*L&OLNΰ [ 9ZTA4-`6) K,Sĺp;9=F% <$0*|%_f9^9j;|f8B |Xw+1A! 9UnG#;rgJagETԺjcs2hj{9yɕ0V) #AY&(¿-`eyG`>6ݷ?~?= ur52׿8չ06?8?\y{sJ:Orr]<;996_)U3oPZp`7¢1ry3 t.Hc8gq L`%`$3.ojKM)qgwUiBI_f+U꠪G2cU7.L1\8>.U/WISj] z*_)/7Vg.#KikjiH5J7AkHW'#H {CO;CWKZI Ykd 16QM$M-jU3IB,ڲʢf". 6Gy J3~п+ыš@- ܪXV\8T0z2W3n=)6@poyS{m/\<ߦH7M1-!Ϫ#̛_, ~!ے84 %[as}[ oIMM{As^p”`pʢʮʁFȈ!?=}.`ż;W_"/+0&N AHeӄ3bLQ9ŅyT<ÈGoy,27R]'hb=ьrr&H*/0)bڭJVqF] P,Pa$6q$"~|d>)݇:-$b3ς-9@3_4#/?8r57Q6)m^_ini.h,j-h/lvmoCŽNOz< l i*+hZ1N)P,>zfj)I#j&J>툍.V^2`./P7׿X?ʉ5R0gD|+<^=5/ %|d+EUe(DsXw`AZuԄUȿ}@j4}B2:_U-5}-QY+Vu+6.sG؛[pHJ2i )\n&THE&KPf܂ǘJLTW){{ 4rouMV&14]dS$_Y/w;s*XP ~=eGzUE}U/\2Yd0WՖ9 Y&so篲UP4j\- Z;VVNM*17QgkbzL@:#y+q0Sy@}- /:^HX(f w&y>[Κ_GEsy~۵1YX㙯+*BJ|߻VOdz9i4~XsGԋ낞t}ݟ mqxkac; w$޴Vv6%:>* -y0p(8˜e)F t.b_o%|:Z_5!LUDU"22*WbX);:͆%@0k-R$I sKTD[b/BӚuT3/r.$x璿B_/?=<;T'dF՗Y E5ѡQitubwgg>?\tvzyKx=z|$tŤ&nh޹Fʆ:ɝ&o VXs4ӫDgʪ"Sb0_obtTЧ,+l .3_d 4`_(pԊ+_pg updOǫ4U{# [/1W^N^n(_hYAYDb FA,MaxvO䁩;jNj3xhyWGr_Kbc"yy_nӅLanc\IjuXNX[xD݆`62b8Zu^ӛЉ\lșBe7c.j{S[۱t۶>UfMa/]MQ6e~*qlmcߗr"ϯ+٩3ɱ'ՕdDǖDX[€UVEvE#XEUie K߂h~  oc}߮֡߾N_ )|_f\Q+&2ldAazUY% g`]I33Tj"#Z#cuREy>&*/D1Uy0QwĒ â/Wœ_`Jn̿"{Eg"F&+<Z%+^3eU,\'y_xowckk?ov9S-mo.-}WSU1wcqǒ҆Xcm`_kO("_*:;gL4OٷSV`+𗒬|fRĔEH4f+y.P津q<4BӄRYWEп: ƽ_+&w;_Q )U+\td ` FOd.K *J!MKWE_}beA U2n||WC_#FsK*!Z1F~/-5 }팙 =ɳ{*%M%4_UPOH[Lc=Vk/~b2aHSb,ZßEYu6[U> ~Q%Ʈ.̢1mK{޺LHz<ޣ7խݫXqilϻYwJ­ayr2cz˻mp nɲWҮ8_/w 5L7)/G X+?rieMSV )㢶rJ~<8ytiwisk~:03mkmNsmnWSYCu~UqfuIN}eqsmykCmWk}g[}{K`P~qO-/' T%~=?DxB(s-6"4ᘰ+&/ٗog#C@*bA>eJR&cG>:6 Z*چچL_篚&W"aYs _Q(o*a r%QZ OdP+']L,|Y_Q͑IY/skۙul@[=Ԁ~`"c(15T53R75҄=45ԐAH,UMU_S+;hI./k9<U>6S1XoWFB.WVELN,T.W,S^cٯG2_I3s#.-<#ۢ`5O+@w%:۵ڴ' }p AпoW%+Bk#mCD;|)) zhV6 5<)3=)jv}m4ogw xh]mtXLacCBh kdXhhj`![3 pgFS4<33ϰnWsb2a ^aeީE xtuc/- B OQM1pgL,_rD^ńyNu^XX/-bn)-q* *7+tPM:Ӛ"xrz@@')OĐG^Ч';g_~~;~igsjbunl~ysz"cyziޛ1Ź5eYjKZzz{ڛjʺ;;>NL _y&ĔQv:#/?/au&R/ پ4Q/CIzF4[ȴSps\, Bv&^Ӥݍo4|5 Ԩ5dՖjjj&_3))P +8c1ߔq7(ʸWi\fAfÿ:GTzE V׻R+ӿ|uKx8fNA3U_,BltBl ky<0q| ̦7gͯL TM 5`Fz45Q<Ғ8rfi8^?WUrW~. 6_;U&MY.ڮ\- @DxB)p c1_LwO~ԝhoƦ~k[7ޏAaoGcWcOc[W)oWk{WG,iUe}}eeÚ(<'񶺱vAV K= 53zc}cucMS'w >Е<7PqydL:n d*a _تO=h^;w乼ꨵ7+efuvmri|RizU|o[$CiN4w.cmz]_X(ہW8ѱ'~@`@@{޾HwKsHri 3 (yX0y^ Cl #"]xߌI!9i1 @;%X oA|!-ґAE Hi_H@!l\>n32:a݇XX//8('6W%",,2U+96W77VVW*Yz}m No };|Un_hY Y @dɭ_Ib7ʎh0pZSk3{ fn~:?ۘZo[XR\6.CrdY~zOGp7+ v8>724߱2A%ca_?8<=೉9ElG{I* oR_ПR %8j0cK3Ѣg F7 5Fj|b}C :3ZHam5(_ MV<]WsżBڳDeɑJ\ėgK!)*) 6y5W_V;>ϵ=h`7NXbmht㹶}5k%|a LԞXqxocam(qWa1pif;HiObylIxVfm§$[- ],ڬܪ/](_*Y) ܭ^. M{1uS_}]F>ꂟOC^||]A< w/߮d'/Mέ9ξ. .q7A,̦)ɣ:ε T?DߌĠ7)A-uÝ]u߶ή.[ :O5]SON [ 8v9 ؜X!r23`"HyFԂ㤔/WqK.h^4V5W=пǻ !((u.N~rRyxf5iCA*:Bs\#-n3$y4g4X*k ZP_-#uMc-40& jW01i&qIXq)eTꋩ{jPUUT +!`q6UyW8eYeRBLZBW?l+o?_>Z\uŽzdm ? `G@p#I~.B}w$ %w #SC5S#m]c]C-=}&ZF*H_{W {O +}§rCˣ6+cWJ¶*"fJB⭪wo&k4h!dn7e$p5cwJu޺B _wO+.Ҧ*ļ[{0{_Av^^$d%%{$6]_H 񷻷%B_Ӽ\e! %S/'$,BG3#S_>&76";34<V)A^L + ΂\sq$ %H<{ oRkS*Ak^+8S޽ di4RBv/GkDe;χ';kӣ]#-%UEI)eY5E U%Um }]omoij(XR 8sq~o?/œh흽ݭ]6 e庢 g3g"2U'a Q!o 4ENfNdNsSIrs<Ҝ_,|;V*362 t$*ZĽuMW ;\j_- kuM _Ə8נnB- :oP_V%DWe1b_/u" 8Gy`᯸ȗn%v`ځ/C,4c gx)塯sCv5<6b.,̐D_;Z;:v ҜM. *x,(IfufC^GQzgZχİ̷U%=c}rk&2/PK7LUH %3$hBؽLicaҡ>x /K%M5/7pمQGG'צ'g_$6?d%O2`+$eg!BIcPDXr8q[kHPg,qɺF_q;h1fqkeޕ*@ʊ—W|&DaGMNں+':f{|+ zW^]Q[_ZUVX Oό/MM7VT@K:wwֿ~9v~76 GɗSU3!b9Yb0ϕ⒖C>Xe&ru4l㔍2۴~A͟) zaihV5Ҕ SLZhiwTCмZj/g$dyΜ}J&礬GKh%\CoHg  G/@y%eWr3_8%\܄??+T+p3?s +0kKH[7f6ZϵH޼~oiH{/̘//_-C-Sw iJx<- |7j۳3k߼ ^٩Iج>_/ GsY+A%~sY 9%;a8Ng %ۏg/ bV mq~__)pHګwNTF v04735nsa \b yϳ|?YBy Ɉy痑ll<ϭ%)$0/[u^igpyl Cl:I K;_Myq2NΌT|FӸy/udeGscԔB]%WB\zbzw|jW_{:1yR[+] &y J{,免եln-cG:őło9W"o*/u\[_ErkWDprhY{4piM8ez|88=,[kiJ/ωn,O)*}_>8+$?R:9 v_SgwC}}IiYFy.<@_[ݒ+rllr9mllcɘB P@B0s{s[K,9w~j [/W8n-sqc)PF.IґtgEh3 Ff=626a!@YSFɼo>5?;;9sv?p\Mv$&>. |!$#3, $|d6dC|.p__ Hf[p 1/]yoiGQ$ 0{@p^muFpAK#4o@SgӉ2W\u]#ϖS֑`;~o`xub]tMW2@=4@d0WՖ]BEKnc-k+Wf^F.gzP ]4?^^GSvsV xo7ާI}6mEq3〿EAᲨ򨶜O[B[ZJj:ksߔ)}U[W?[^^_ZXFbwq2 qՙY@0f%B֗$n g$.noݒ(Ҷ_LJcw1T /EtϣjƋSFǑCCkTO|-I -o8Z1wc|p1*t@,`q_?yN?g.psmm MSp WJGזkOf@M!45"1__~)k?*&ҽ4[\V\%ܲh4_HAN"͞vZ>uq8p,9\.eơgoOG^˔-˕ ;cO'h?VjGj彥A RٻmmULuO=S՝{8R-ެO^{Z P;W=S98Y"O5d³+qx8n?' S7Z8Z0_*v]J}򧪰ꈁҐeQ-AҞMio n/Ji/Oi-K+j|Vf% .@qyyάx p$Nь:^-l V66!fXL Q8N%|/4^2 'ktdr#!< dC.@(0 iD$uPJ@ZҀJ "5 wxWu=m{sm}+og/δǧj~{w_,? CŎ8kɔRVfO۸Z¨6JN ޞN{؅Wƾ^I^ASxiD2 ZkġqP ĝ F6UX˘q~zXAN H<4}p3h^\aqv d?v?ɟjYݓ'}+3 ]}W陛*v2Z.슖ջ|du}Ddgދ۳g>*9WpĚ+v>:šxx풺G~vC=MuKLQbQ$?ig@'Hj=M9plAxA݁`+<$[vclb5فE&\fCZYqdαE+ *_L,Q`Ž|i+d@$1ӑhvnd9mBw$Eb-GC,Mm-?0|Gv.vwčo9kvV62iо*{nZz- ygicmQ<½,ܭ4='б$#'9Ͼ0ګ,INk}S oGAz:s|9[?Z=uZYsb]쑿;Ewco5gqr;}cuڡ]_xB֞.lnIiM/:|(z %d ^ScV9 -@U/yնJ.5< G\D=:A4M #<ggƋ3"}ccCć?vHK km~ۗkB);G-p+r6Zgh5 bg_Ы*SZ" 5_(/`|_(S{Q F}4Q+e>_$5&YfVU): @dYʮP/_ӛ Oƞ>?dHrmEQ`P>2EvZ$[emo#"Z}4"*9sm1mMJ}2AJC+b B?d5fۊz+^d[*ڞ7俫.V4_C.,L s@ID XvFf6Δlk,v 8.K;)pHt.kS0NQ2i/®^659?WU:yzs3~J0п_M݌ n9>Bx/p#mWgQnRW K*ۚqN_?X B'_ޑ/ݒF ):ӥ Uk/s| f;-9W 5?9gO B*\X,_E:b/ήrV4MOI(/:6+K_顭_.Q^H~O.߯,F"kMΉ?\q—o7lSF0]a )H".2k@ #ME\?Ǐ(_ׂn04[tLOZ)jA;NH9je| I \\= (0bd/_?ߧCeA/ iPQ.n1F5>M2l/зx^MOMkq#Di(8ԩ4̵4ҽ8 oW Mrp @ ?ϵw F;[ֆ&N{&|-~ ݨKqj=u:]@(8^5d[); A);mtP[Mio^pSWԞC_пG"C B: C{ˢ*bF4EuT$w֕漫-ͯ.Lap֔^fRͰa3il K4aAD /M,c8RITcxc{G |F lV&AL 7ԕf&d$dd$%?q~1eOB/B |߯!L|!d80qxO|$ 85 )}Ob_@53\8l>S}zafpW4/:RZ%kk[k;><4ԾJM$)EEKŌCgưтZ" a fo?fgE~o'GvӴ̅qNV?wvi?t) q(& $pe'߂04?k(H@@x?o`o௻z 8X]\jœWd]/w^*^m747_&J>=zu4U+SOU҃2 /B]_cXgQYx/C/=Y}/x&joKRydmy!EҖ%hH{ZXԚ eϽy T6X;P mh l),NT.n~"eE>o~2MT83kSb*hJwxكꯀ +2dL)Spƀ+d R'!GJx(WA\4-{F- X /e+ёW59)! I1O#<2S#S‚G{40-bҩy/Zjs[Xj -I]vMtӼ1խ_20rk@c~xw;8r]LXv_:[' \qPп9~օ1`'V߼״ 'vA^O96{WGO,Bb|znU},_'jzt}Eʮܽ"GA@d/\ m},4foN) _\J3cGd '{ '*]~/hɜ~1Q>[3Z_?R , O!ӷ9'9?oGy|Wuʻg9m/VJ[?zM[|Wx!z\DW첵o oUj@[/\ 1$lE jD4/vEšپ7iaq S}OO?~4+:."wdW>>8Pž^v|_/}aU'Yx{zb%ybe.b,P0bpCտ/AZk/pD0ޒ<[`ߙ{ H+>ڨhXGWcҴ”W ;Z^O;bVڕyH`uV_恿eBr{siT߾ʤ1 ==!o_ОuN/grp Pұ(`ќ oBp0\Fh|< QVÑn 6FިAOm|#k[VfA:zqMNLV#1+ΪU_Lo k@^`:_gWG_G{_}Æ^&ݔ,ڥ<±" \XQV-t)t qsÝBmbG<: G^j&.)6؎S|?NWXs0F t8:3`Dڒ `z8ZX(mN+TR`aBёxv_'2*#@wnI ߧ Io7%,dMXy2j.z9fsDuh_ѲgG*#+" ?d=iixڐwefkY|[uZܷj';3E/p`:#bf:/-տQv [`Eєpm@^柉6$.X(o1(yɼM|kD<@}њba;I5-^lNlnyS8;9,3!<2'QDhcgg!^ޏÚZvdb'Zݗ"$^5]z@ ÚQ*؋RbjˮmoLؗdK8Tap 49B-L6\a5>HaD m|ݞI/)2R6|{nrrfz.I YԾrvys =93?վR$Վpį^#nW]loˋUyjzZ^w5:31o'{rP[UH6ҭ՝5hx`ܧ~z| %߮NAϦLb Ǡ~&|ן]0>5*S& źe*t`G~s}Ua8H3,HC_xx>X3=YH `8Lb\/41/ .Ä3vE._T(")S].$dvY樑Ñbk촵,8E>D]oҿCo q a/ڋ!!L Yjg+[X$)fnc!yaR}HvUPHF0TF+bAYa\oc@K௛=ʼnbi')*..ݪ88R5F1bZ?Z[%(t17 pHX .JR%M)/ X(n\{/6 Q ~=ˀ`mof}"}HiKO\y;ԥWq^Yz҂4PXmmk l- X7& oLo}Yv6j 3e@Bea_5TRLS<520k.\R,Q k|M%65T-zwief`m~`uGCeROBЧ1!In6>aa>%eݽMӳûÓ#Bav RD0`>-`w_3QK)OPfהX_v/ ja|~(~) #KLjsfkB%gGg$}/NO/׷GFّԠPVEeҮpFK֧Z_706>21?5[Ul2)\$ɶRxS# {F{Oond9|/VPo~\w5~n_>_{!p3N&G,þf +)X_ L#|!ZM/C" ?97|q7_+[S#տ˱PcfD3KۈdfsV(a`זH%]7do$]9+_z=mYbKոY ||9Df6_{te3||.tśGa!`((g/߬ 4?`h(P'6ndtp~9yk_?' X/'o]_aKvF\@|3j @5=%GcόRP9*h8RGmiU@aisF}38\`]} /;S6[ ٻӒC>P/iLWt;ᭀ6_.qYźɚ CeA%#b?VDvڋ;+:;>Ϫ/K{]Uk pay1{،l cPyˆ,\}^r (|i墱e3di0#(IpllA+S \ZSbqf×8uȄ]Tm7fš֕w59|RSC2C= Ss<冄zgdĤEս._ZUR@vam˕BJ Um`w!gf.V+maa⫇Ke/-_3[\/mG-CvfNYd?=w}vWG} qzqpvi8~zr-6WYtsrcyh}iwzmMëOmӣgƇx+-jWjԨ.@0ꯌ#@sT.^]40'X{zB5Ӣ1!'7o߾ߘl_4_ɩ-/_S #o/XEtϳ(QӞ3#[^ ׎/]4LfטjF*6Ytnrl8#igVf-IJ'άjbd5,0L/SyWMd+zȸSfnmkULSXpC0ke~jluxUj_j-E:٥[eXEzqZR>v7-3+ߡP{pfx`.):;<96jnΐ¤Q8m*`8udJo_zb<dDd#;FԹi cg1|Ϛ=Y`Iz;1Eܠń3tgi?*YZLK'T|'qLXElOq/04/M1v\'gӰ1 >!2؆c&5ӿ&h /-FI!U =+Hپ"ұ0oekE[~}N _Hnq{nSUSG#Ok௛=فmyl sdXUد6GEZEo5WҔ+m\ y\yOHdYw2ō)Գj@3s% EL ަXfTpXhmo)!0]ޞ ٻ?P"7&o"i&m _@ژٺOQA;%BJb[e6=P_8ߺş{X].UUli3bP>X`S d1އt40Q!;dsG. 7%F:?q prO~}DGj|`NZT{\# g ww{{ F'V{R`ATߟEl"|1)켴٤T/5h/m/0sI3wNѠ%ɛ0Qf .W''3ّJ앉f`bshDЧVڜZ&Iějٶ~B&XY\^lweDmJW7g3cs lg9-b 므TbR~k8՟CZUTk{z 晩'MҜ.Ԫz9uoxeg>Vŀ]@'phCK`,/em9 ~m߭ qS9}ebyj}"HP@5WМ ..{W[UQ*<4CAˆƲ9m/ ^g v5/O<Wf ~(l6wm);eMSkVņ/VaQK%0n|]/2,<F"dqFn "\*-vNtuLoz_m㗗$+)<5>81?<;6/59<%),77dXo9;>Uktjle.`R|'~MIf+mhbs#֬#f4 |vz ۶5bl~/ E^B0B,5_~;>9RJbk\68@H_o 7WW!"e\Bl-/ 7@a5bPtpq|_ss~ %wg&{3K.c&n,Sހ@k DN^.8#^mEPL55Q 'az|y"m8n>)K"A4Mہl? Jik*b,Idg<΀EH%Zc!ǀ5>$OØ6 ,HZݍ֘?3F_6r/6|@d'=e*`ouSusM ?sc%Q9!!v.1.~NN<,Xp6nndxhjic,m]b0t0^V"i)Oj,?k>nOSwVkzI/_ޑXpd X<]Ryy$Qӝ[†$Gv>1im%7#X4<,]x lʚ~3P_0XNkߎt& j[2P 3?Te̝_+\foRK1owb pgRpW-ŶR$Ha-o5@d?/"!EjL\/R&;F+kcB=Bۄ>L\  (160+#:=52*iB\Peenc~1  eԽ Pf!@!rj^ fFHpK,/OQW??TΠCL Wd(#KƠQm,/DL.H:2z3qsmiW+1-%p SYXLAF6 ?=4:xi]A^]1V@H`$*qzJamuu[TgD$p˷?#|Qj/v Ř6%Mmbƛ/g;r!AnP6?2u0f: ?v-b+q`55+eQLn/I&ېh/̅s"(M1P#]`,`gUa&3~w-8~w0!sqg[dhUXbWj,wL K;G?qzq9\_GGx;>qu p tĹq*"'2}/3-6 ĭUVv@hz@U͔ӒBx^ Wܘi>$ZzZ#n%#6?l57>MTUF.N;޵0ش6޶2ڜD(XhP_€घ0@pFZTx@h܂ކu4_(ԚD#L5CFN#Y+*iuyV4/kPseby]_=at@ _Jom|qO&^W{ [:'{WG+rH&5T T% )o])%b8%~O'.AɎ @/ Zp_agfn!.Ώ%#Ƞ|UG.LI}<'߿ (Rw{T8™o@} 4ncڙfI&"ڨ3O/Ê_!n##R[jG)4:_A{Yhj,IM -[#q~lߌ;=\6yNp$V#/|x*rixh@р`#KrŌ%LK0!I>,4K,\8Lg'S!`Ж&:̱4ІD-YgY"=/ġ8ڵ( \ wzb3qt ]/Oe4T7|2T4,j"4`245 <(Eom_KeJCiԷՙ=oۂũ%b2  xXER-JP УC!j2rwg[tZBт[[OKKKC+zy }#uea16Q!OC|)1Q! QiIAa%qn!l] 2+ Zjw$ {秚L^=B+䰀?}iUmxTM9=aU'WnN@Sm{ٱ>?đCCEak19aGcڙ` Ӹ`a/A_5-ze`3ZP"Oq 腅e_Ď{tXUF-aj:9M!u Z<6.XFekƁpXZxڸy:y8T[bkja$B(Ĕ7;>'J6i3V,S|&2ø)L8Yvk@#ݒaǵ!1eɵu]cjVKPxRK!Q+0>lGFDFcY iv;lL{4Q`Hgp ˒XHnE[N]asQKvCqgv87-k.5#ᯗ%762܅mS]j3>tJ[2ْBUn FJAo|ꆫ%]9Bh9`Tܜ|,Tf+y/6^ _%&ۚh˒f;w2]շQTA#){̅ 2ď%#ާOƌT}, g,0*;&7,L}W UmoUpDVбN")/<6 ` zH ŀ:o!/~aKD>DRCH~m OT³LY(S MRfY+I:RXۑ@Rz+oxS<|xx0 *;"+':439<=9"=9*#96=)&1*(&ird@qZlevBYFt^RP\{Rض#Rɑ@ 7 ]B]:ь&sLװJ,.ˁp㴝Cpyyv="5/-\RԀs?ƃC̍GGCt|'U>9sUl#=98>G>#Cn.N!ΏSD0%|3yS7φM4qyX` xP1#O?-N ̍.L6 VTȤRPub0T/SwߏJ ,-+vo/N@$ [ED3Կۋkf҄3 <60l>8pK0 O!|AckZm5_p=;?fFW|wj#e[V௃#ry[-,,ݬl=6.6k84+ a:t}۔ՆЙqLU ok~@[I؇`po׋ܮκ7}DB #ӫ3`>o d/. PB`bhKb xpj%$$Ԃ!y'|Ăd]( |soJ Z#ەeRRIۻ"ʖhqK ؘ'gzDkvǖ{_$Ƈ91NOccC RbC³#Rc3*%楆T'WTeuuԯNt;gz 1df*5CK)5Dkw J^.FL#=`/ {*VS[QR8F?Q??wxtrx51Sg)pQ!\sbsP^Wg7#.ϯח׷Wߓ+xŷ77'GګDҵAp?4W'\h_\٘FS \UJ4]&K!Kk2X.ʛ+ S݇{5 Wrnԁb{!A {n..|/?_ ~tm_w;t/-~b2~a0ՌNY 8S}=_n5V?"q&ى6\99zzZzX!lܭݬ==<<Ⱦ3 .p2PN\,h$m`aE"SE`_ ڑi lj0>(e` !hw0Y /qE{NC7Yo1(d8!^%zB%xVD:e??ؿJ}RR`XB,Ƴ %%1&>)cGS/׉>}JxH HW௴-mB]]EOaxdL֑/iϗK=H;(!QWD|3IEc'Dl7e-dчdaC)y=CҖ.hL4%[Ӏ]Z}/N5ikc5//;_ }[@sW!+9Gp%u__CWR-%Q<72| GˈHZR#,i$.O,]YlO- .Mn. WF&憚;_dG8'D>w fDGM JJˌ Ή .J(H O )N-K/ΉIzY^^ XbCJ';<Ѫubf ӫ0w#vZV@ًLL{5Z9A/WF λ  l841`<:~8hFE9"&Ϙ 'W2_z폿>v/4WGwyc^ Zm屎١ɾƙ tݨݕl,IMٙ)іpuqiajJ!п'g}O"Q 6b!Wtu~{~|7d* _⎭\K|{vzsJk%,aWX8P_JrG#r_6:L)=0h}]˕Jfkg:=m=mrx8pYYQ>rvOd/i[O Պɫߧ+ʏ&^}u6%{Kd]"Ywn47_ޑ;7_% irLey.ׄt0U[_b8ِ iInK`-lN 6KgֆXx;6_?_6ۻ1鲌Y}M%:VqF,Yԫ%iJJS5YFeb ϤI8wgQR|P(42 6gg{wW.nO`<@-ǯv"A/UߣS0>L`r{w&WWG_>\_ߟt #Pw/>z8x~|{yw~}q=xņkMc iXbF?[sa\ϙ)gZX(}HBBc`[_GTHK`DOp{Ň١Ameryfdr{mX^[w9+ %пGێ%ܩOx~>wl_:w.\)/D|{p]x_=X7w&ϯ/>}˳g_"?c4/*~) \, .[[,D"Yˣ"oo )G7O k T"LqhTʡ]*n_㎬sol`L_5q o/D;pU0KcPHl?@0]ҼM5w>xyO|$jV<瞇`3ȫrK?hߋeydxo )*Z"(SbD=ST$c"P@+_P+1AX(*{7ZrԑQ]~ 7d_}(>L>j5eu2{2RO21nwY lJت;ȴUyKRJYWeoaGnhЁwZ ^AX+UUeJG[:w2v0[ϘlLq}֬h*{gRJӫ O_ھ9PP&? uuk/6~CaO Bu5AE]ȶvtܳvO`'{ ɞ;مh{! 9"`{o,[msS}㣝S3c3C Nw*r5 jJk/:.*R#ja:edz<;Q20&#eLcA#*44R}R<7=rxh?9s{ [θË &|W qwC0> ezyvݝ@dx<-[]@㧛ǯwwW7 O/n/_ZU o.bO5A0H=5ȃ1XHiD4rww2TS|oejv- YFj;+Msͫ]] ~['''&l닎uގdױ^[^]sZ6\{dv4A:/?>"|ǁ_2? Hnoo`G &0X~xk*oõ;0:`MjXo?>=?;:mT&X L2! @U,^E(MI&"5ʄÆ1/&DIz}:/F,&/ AW0u/1nv,^_+ VO Lzvq#m?m#MWKBѷHz)Q% d+rT(׬ K2%yJzn ! ̑L@6I"WLH oݗI&q(at?o(՛":֚{?^q7VjHڬO5:2;3ҮzӁތ̃vYoiOU_^%-uHZZ-d kz`8&^ ÎDпζD =ן\_@3s.aBwP۞+j1̒lyc^LC(ITm~YWZ8r~P  c- #\0YD֟?^%w %g&0?/0Ua ˆBII`;(wuzq<>Ռ|.y)|t XZ]_Zww'?tuׁZ`_[m{Wg*ElY$C#EJ^ORuRF`PELP`& 4cq|(A+Q%LM*ZߘYl=\^>Bv/*.յ9y .0`6Ocyefon߱/M-N,oy'G7g n>^_/q2KI'@+_SYq:Ks=w'X齸H; 5%DE9@?«|||{w|s}}81_[]^Hy?؏9 CKwO;fXLX?b-IԼ"*9c]O`S-HHno3>!c1| b3ѷ(?Y<o$^Ųϛn{(kI%!& ?9ZV"ND6V&A7WNGb2K3C(ˡ0_&# 4aʣS.K' ZRlҋtп}܋A3wpo&r$;uBٸ)b p5@ v`%0⎆x[lK jL)V8ZS 1{Yw"vTە'eKEKalY7楨Wfn.ww@:m ~a9N;Yڢ#h,x/_ySpyabvX억E0 +d[X_7|A;gN@`k/YKdDD/_?槮2sJt# bHj+&kř 2NBԂXIv&EeHb%)zUjB4hᘨHT\;d́?: c_<]5T§X,yg:\qֺںʢΖmuMUݍǗCȋw \18awpk뛧g7tQ9W|Qy 7//cy)- eGΥΪކ撅r`t/F:fG6{[Gvzھ:=.N~ @׏p*ֶgk-gu֡Gj ]Ӹ 0|E&19L_\k|%_FGߞ~}j຾;ޡ>y )T_3 H1@ «ϖ$^8Tf[}h }a*WP_0wi|Kt#"$,i102#Bx+ثM7#'=YYD|hM{7ӟq;y3ߞۚ|5s?އN^ϺSMF"=}1OQ;>jJt'`ŧ@^пg]iGO;ۓ-߃nLީT:tb]4wV?^,Q {s߁eo$Js%)Lug `HKqu s960veg Q|^Y_÷Eu%(YóغuѲr |FGn uED!i 1v@X.+s S3c#S]ÓC=m-Cc3˰-Z;D.:)llb{lG xss~eatizh}~27 ^Y\ٶL8'-5y9ڨ(M)djdl"4Q+Lp,qRȠTDؔL7(BT*YeNSHBP յ}M6ǧ''{e wSrn8'[z7wC:Gzz{Js2ExT 12Lf1Mdҽo|_267tXl_뷧O˽c) 7_W` NLpeH >=ax.wz5lnN~{~~8: 4$u֓udľ/Il)魛m-qvM;Ӱص-ۗ;п߫݋C {s~(|tpqDO>> `׹h_йtoDQ4v__a&LHo1|XO O /R.X,c]Д$-F@gI(_3"Y qH2pw8$` T*H-ԥߍU]_wW+ْtڟ4Y$eagag@p^пW7n;nO ]{؜8%kFMPJnsN$n=țoK^YZYP Y BwӶ^a Ex_a ryw6ù463?758581\=VR1_Zx{mta4/] SK j^|tx2'LI`4|0A#WEI:YB(#Y+Ƌp%9<>#%USX:4Զ9wssborm,ߍͅ#܇4^'K#xp.ØIHh$0+| |`*W)sEaFSxwPkXO{_ .>>_#0Ч7`_c,^KX/x_}׿}r|ut|.O?>mfk:7J*Ъ2v]˃U-Y-f:+&:O+֥])Rvv7\Ekv}|OOOחgtgdsskn̾ -c}d/_A~s1/?@8  /ugg,.L\4"95 W|NϏ./b;9x<{?^"EMSK"~` Oe_: eqX*yD)\×@0: +\Q%Q @sW7P%ġsyA"3 W*W>,R\6Wf&qTكv(|_Sab]ˈ2 bh*dd$G7dALIP c$ T0 "J8H X^ R+L¶% +>`o$!%z]-)K|vkaoaf8pYoY_Er j0 4iGn^7gث 13$^t㶿f^SIG},hg(Tfn&UOΕ $ 4ֆjdr(j8_:R ܑo䷙%͙LiYYYeR uI;@^€`Ac/4X[_QZ)HK~ 2Z"oxMֿa%o(^][hiox_a.*Rբ(!-!3ה_[gcva|qez2kY/V`s;< ߛk{aك|caefhyv`uvкevY'W'>tV f%c$-?Q+D$E&Ez6 8>8!V $`V ) CD.3xA??C2Lˋ ڪg6\IмťY|!Dy D!ٰzh8 p ؅9^ \ ED¸ 2˟Jb4*ͣ 5@Sh)9ͽ- NW`cChߞKw'Wg?˯O`>}V{x>lYuO@Κ, z17$+ ws5;qԋ Vc3X+嵓/.|'0|% }w#%%{WU(34Ƕ/7 aLb0)@^lX?Vr"-zI`~@/|`~`x8]Гh@j bRC_*>H a/e#_$/×zS_!1Ι"=?kK"z%I=wK4̢zQ o/07SF~i s($ B$ `WCG\-gs$y0;7/w5V8SڨOiK0ad#로@pl /uI':j泄,[]Bٜh;H]͆]tR 7`mM<6ת5UfTk R/Wo5O('+]@pY MץJt܆*SL}6˦Xbsoy(/Sm_T˽_m??EJ{=.Q0h,`\ ‹[v<<t5afeHT`YT1夔wt7 w-Y[+Gvvu;E}gw\ݱfevtuftkeYZ=64dv /1krV-elmLx\tXAĩ"<:2F+DLnfJ47VQb<&(HtRh5"ϥpXޔُ#/i/ol-* bs,v  Bns^Bq(7J8a:@(4vH("`B b ۗzL%UŽÝCy><_p>jo.arruzd@ήO>m].\].meeuZiZZK0_q$Y7:7' IyF/ƒc޵Q?۽:v.vv{'۲:,{o/wkvpk_9tw/y /4vAc('%/F㗏_?Z=&w6O.^FO`L.2)# Ȣ(vh/J F~@ sbTVžE#b (%ܳ"S<5Fˆˆm81||Fy_NO{4~gBpׂ EIaâOq.ʘoBXUHil9%CF6I $KU,P)2I`OJ((9=o87椷nyr0+ XՔ|6y7viX^\1''Ih}H0W"q:˄w7YGmI{Ö^[aO/߽δ 4͟)QztYd j xbc~oqbefxm:=[Tj2RL7hPTG4q0lj R*<=EVFGqtqJy&:̨%BFT0шey/Ȃ "xtPeQXTͧ3}`=<.$@v@# aaB&̥bV$IB@P94}tBL(D-xW _efc{ {x20Y;>0rձ=?V]QWY781;>ajq}ceiY^^^dHIRD >| "c\dF|bokjn*>~Cmz 7W7h^X^N8v΍%͕m˩v}}9t{uwvŮlfO7G_@bzJe @,>޼D^q2/ϰ9QDg| >S߾O| šWŠWgק?O"١ ?AA&&] Dw+?"D؅yv&?/ATɿ86;up)}R27SM>I@ y1$!FAF!EI`xwjOIj5_ [ UۉwCwN$`ѡmg /'=L|-%,*|bP_ۖg x1q0/) z/Sbq+3ߟ=K's=/ٹ}]U5`pa8W $\'Ƥ %溆򞁦ks6}B}^Q%˺uqqbpgӱ_ xjmCxPhW|׮ex{.SŒq&&2D`K42LjйF/ JUeEűQaJ1 DHi [FGUи8?9Y+ZP<eK3Maxs!  *`" nPP_@7ψ@9yC)` jdтRZQ /.˛:jgFr3*~V&Rp\ *>*ZHL6)RD*e󓒴bAHX[l^U%iFQUITksbjpz<*{vƙѾf eq|qjpunĹc]4&>ק˿?/ϟϏO/(o_^1݊1pSKp.p|yáYDq_*X&\-,Ǘ=C8UJRLIEI7t7Ɂ@NכcǛ (x"aM (\,IAcq5vSc.]WX}01v)^0c ú@^x ?c@)q/gϸ]D7g/}S@5ڐJ ;_JN瑒oEKky$=/EAӋs(݋ `pt__uH71b&yO֚2qL5*ю~[7&:'iwYgIgneOFwT'ުT"п* H9L 7wtǠ_!X [WbWkձIhl$_֗˓|([ڑmI䶦Mi$iAZghkT?@瘿0ulKX;B3^vsGW}{ò xaqztl#(@ȓ\dSgGJB1B}ʔPPb*mE6<9G'G[yȞmtg޹::4_<ް1<7Cbt~dZWpU8F<#]<_OI}q>S~E ^ '{X&EپDI Jca- /Ӆ$ԈfJM`-]NIjIq?S2/c^=wI0#_nƀQa6o3gxw %rd EbrF#A'*JE %\`R(P`PW$ z-`:1[}֕Uߗę/TΗ(@OpjYʣvEص2fVߜtҍBzj58tɇ]IuVNbNkoM<7/i˕s1ką|uL/Gԓ-ɕ`ҙ)jK緤 E)4Q`uiOʌOS6n.\6sű]lΕ5ձOZ=mƬ:g̬!s,$uij]n 50:"۴Zl` B Nf]=͈ɼhN$4\vm;N!hUDP,0C/D"Y(O1bV-VGi*8 O3vT7t׵ 6fͣ?pzч]\_\_`moͭ,}X뷭-OuLw/F&;ʊ)ԀNJ1*3F&0 FTTAR#cU4}A L.3-0ΆҜ8'ʌOIUtI*CRTfΔ+,N7eSLq / R),#RPD2 AHp ayy<U's|TE#I! )^!0ZLX*RE*#Sb2U|.Y Ɂ$:TШq1Bq=+`F"X Xƫ"Aꚓ jab0!&2/E]KӊL:I)67EYb,5uԙ[ߥTe4U7WKӻ4W+޹օɮA龙έI.;w-;7{N@پlwxrܸܷ]m^[fOO>}BIF~#eGP}0TF<%D+~= O?}t{t _?^axpG[,U+ߤ2lm]^XgG7ǿ~tW 撼Q1Fe3|(l4nI.5h 9q HȁA01^"~şEaؔkuhrOzI| /BvsgByQ^`|^/73x3}Ht/dh>,_/ /6oCO  !Gr(ɈOe5<5=&JEGe^/PiG%O\ݷ氈]0]) (M o ME`_Ĉ|UB @$q`o/,maAdo>[A!C|kԡ[ђ W} {.Y~^,Q~Cxп@Xݓ``6=v'۪bvk #!YAKF nWHkGe'RNzSM:{~"^uuW_@{=LzR3[;'vH akZds 1טfz~E>KWm֥x %N/w۱Zn,90WWU< ް,m̍Z\W6kncm,y-5҆meXPW_^;ד8/zlcu_ߣwcs;=;817}CyUMX !@^P|!YH$5O BL:=IWo**HKOJbբD2#Ui(IRu)j>8H9F]PK@hAUCx4qO uJ!88$)_W X^`/?*ɗLrH_ō eXtG!a0- xolL#IB_@W)L@gze4G89=># Q!T0M!1HR>+ՠN&rR&"?USjg'F :QMCgP{qoS^}YJN$5kRZ*+fFZ'`_k]ؘ/NuWW6 t,3vmamilgkqz_ю}wk}DzX8:-[剥9 Ow_|(UM4 @ _0┖pvbbP7@ާ_1p1aNVV5X( p移 ܛÊmsM"V R7}_2Kt$DLa k`ܗƗT\T ~LozɇN"ȋRl_?wH6NCv g/ 9ȘnF @D `2&M9ZpSA>A>_zư9^x 66| HP&rnLpSdG1LH_ [ry>qaI"(Q KA?WzITR+â,`2NR|#H1}Ou6\vLvMP =h1mA P셉FNX H`NGlU Ft/͉zzHTμS-ăMG C(п ~M@pK*9Uؔ.W1t:Am>/1+N\23punٍE}ic{ٓ(8jk4 K`PߵY܋ *xtcw: ޴-ͮn.|W %T~aA?_`Zg .Yrcv@0ww!y|Xm入屑ֶ 5iɱѱHQ0: Å ,.HXUR/5ⳊKK{;&Gk9>s7VW,@yca_Y+#CM]U=5#-ӽ}y 3= Qq\DDBS&'(d0qRC2ŨIZeK3J2J ˋ3\eERsI׈"N_%&&)ȌL]JZlbr!1Z b!4 1ИX9_Q,_P~p.URrO@ <%<" F s q*9W!冲db.@&HBFhGʈml(hj,/HbT\Z$q1"c4# ؁0%1hDѕũmiɥ,]E$S[o25N w4W@ቾjL= E}G, CKës(pHP΍ɭ͓ٝ>u߶>k][ܵΝYO6Nvm{O_s]UŞK%K |ň ?.pl<_?An l'/?}wBo-OH'b/`D_0 ,Rjn⾄CLԗ& S ⺵-Jqb`E'7|iȰe4g ~H9`p -Rp TÃv#/qK?h#Ce{VPf92&{-w0/+ܾu n_H&%"l"mXQlh^tp$0/ц' P4/MPP~r/?et7%FP}yT?௚C!er &пiyWC;-iպLM>@Q/V|6fe4_"\pXE4gv}K,DP+qYl n$/`$U476^TEDDR,7h1ʰ̄,.3=A&煳I^^-+:Ҕ,+Hjo)jln)[UHBY4/?ų$q8B KOIP⋳U%i5eޖܡwg[g;/M|U)юtm*~_Zo+Nz_.d%:&GZakYښP6l]nϏw.}py{so;v9fVgw/ߟp~ x&уհ0p bF&:W7g7?=|{ _>_?g嚼|QܐH./OW|944hE}A@ZO(ݙ(8CF?l2 h \L^X ¡ˈln"R}ѭ`1 %Ґq"Oz94!| ;" =7 dR;ݍ})Mg{|Ӏnj~D o Mb _ -Ԅ91l$9G7YF u2WˡDz/;ˣ (2h1_ %KKqyoHQ[ak"?uʁE.@֝A|:= xL *N~hu4\/P'e+e#w-њ^7'+WM(f˔+uzKc"P&Kube_#ߒќ֔^o 5VjC\uhQV[.0; +yus 8`-Ǫϭ=W669/`KԢv+/'›x[6`| Ņp,*xp&T!#:Wnc8_j[ө߆ƪ윴TT Yq P> (l=D3ɬT tΠ6e$W6vLO|@ĶWwV66V7֧eLX_`[x/ '+GJ@&W'jR0_o#PA "iтxXT095="@_RR^T̜2 Q0]/ĪXq :*+jIZ!  +T"CR\ThTGxbqH2=Lto2""PYBQ 6 "shw>=s﮷oηֳj^eu_=vT&tVXlNq.Bp+W@&]Tn jm8=NM)kihiT@&./2kCP)EW YMfJѠS 6$i4UuuNۦuS {A֦ouۖL4;C}!`gD܊(8ޠa4DX`p4O\m.?Uo߽x~o?#G Pv8-z:ƍ]V@r1GMnJ8/6#/bH+^B`Enk_T[Rp.riW` va$L3NGS雭x/H />DŽ|`vR` f\M_ԫV/{_><{ W%e*^6΂V䶖$5yY- "R TD'q |Y /sbJ#d(:MLY >2D.9jԭ9[PNxkk吝Ζ}oe\rtӣ<_tKdT GqՐ .k7eOὸW O(vE_onR9h,2=Ҹ4UyGR4B^)޿Ln]!^\%7`{ 织{O& @01_܋\N)/=@bo3/>|(ަg!_{J"1ij=/hqi;8nǪ5H+*(UBfF0_& #C˪ V-:RpHx܃ᕵLJ{&b3=+=vƏ G+wK{fNeYnKcIM5C!m+4pL%iӭZjS$}Cjm\I&6k[ʛ5bl,Ɗ_&F\SUQ1u&ݢ `%gZZ+"AHϫV)KX$~ :h5JdIN]uuQeUAuMaKSkR7E: ץҩkk>MX KDD`Pn=ܘ_L4GSͥ7W&P2'ɗo\/~z}rWWo]^ۧQ迋?:)ۛ䋙3F)c"jf9.M9ʈƇ0SXC /<}r-*qpGLT/;Oj̀,\k &#a״1=JfPl\?ӠWdtѯ:NHO{.,nDrW'+~bg묧qΟՀƭC^[]ѭh$QCs@U7{w.Ϸ{mb&0OOɭMp] uyp}LHv:6$[bp7u680ӞSUp ʧϮDw\٦˚Z|przIcU\ .# 2VYSR7TJ-V6pぞËݻŅLʰ]Y] X@Ñ@и0|zv'77)kY%Z]"J1f8*p%ZlMO #x4 [.UUm W6Cи-V_I9q hܵ4[Y=ݜ;~p:<64YE̖wK^l΁K:8yrqs|~>#ߑ7=W5*Jm|褌8j7S W}|=R{8|_Sx>?;y勻?>0C!EɡSj8 %75+A:(b:8_Kğ/ e!SWV&ϑ fS$R6AbRs A&t2(= 3g"1q#_e]7maL! 2m#yʕoM (.!^d+ VdMTuu$չʼf^K&1I =7319<WW=a|]ҫ^iTɰ"&abX0\7h Xf3 h?]F-Wuِw>'cm@^`.GxHq;>햜$GG1nl݋Aۡ6@zPׂBӮzL^0n', 8f>\Pպ$UOE; jwuvg^\9;C bcwP\<' T(}pN 㜫"/>|sy:'&GPS'Oa;_N:>[\鍀vy`\U_ƭfUBX-o֗6VMv}[CkWD:tvCLTnPQjЈZx25 X=z CVM)9 &`ިgq چ{}}c 񍥡.ovmM(>hg /^Ij_;a2ױ2ճ42hD|v$28QwO15]}yon{KӻKG3;K/wzydn$6 m? Eys(U*7DbV}5X`70y5f0.>*<{)~ ;͢FTM' q;l*#/S4+ ^|*fXl2s6]p%0?J.4LM3 ؅I~qa[@c!2)HiO-Zf6]1`/<~**ߝ?Jg=/Oȩ4qt*;+,$R=-Fֽr=}18iN곸8 QtK7(`1^o.Vza3k1@JL&X,re,Lj2V5.!wTvUj5b$ɚy-E\RS%[+Z\XH-HQDakd |N% K⦺rMiiJ.El :*]Q $/Fjj.W(P?Шm3ڀcWwg;kcs=c}/tcCQ:t65߮uaUuAFõы݅< pdcd|y{7||͇W8Y9X:Y_~qdхO5#/,v8SL.~훊66 mM2ئ/L&1QJNg}A]Q٫+%Qk+(gm%;G"Q&WG)%4pXs7OcFH|؍E$O PP3*XH 8 ~]#=\x)xM0ԀuLvF+cJI.byQG, .PyIlDd%I(lf>ފ7 gйL rӲ%l\{c#;qUAdTm &p9kvVS\lf:^W!+y`SUbWWfI EM*/𷎓!E v P0=񷔚U@B]eE.aAOz2lntm_y.`CwJ-My8tVu׃vׁo` Q!Y8ڊ{\(W4je;!ኻ0w Z=YWwT>aM oeeyOR٩T5#1j?yyF _9~ )*QyGrMw{^%0Qy/2;_|!(B-OO %zÝA]/U6VW7p"\fr`}C\JA) *#\-%Zbp=:ڽ0 #X{ou93ku$dt}w,ŝ^D/TJ/Q)d&Wn%JyI/[vӮ0hrQ5WP_SZK84E*,fg̼z"Y5.&w.(6*a-좺R(o5NYRTm|W\ԏI=nۡW9NЮk[%"^e9.*.mŒZQkiSGC`'0y##P0W5eItjc>uS 8_p/dï ݘ8y0^Jdo'hy{oy{r:]zv_뗷[//l>On䗗]>,Oόvn_~G@@iR5#o*\~)%x0/Y) ԕ7^|__r/GzM`ր@V  SNoBͨ2L ư(g&tPK%\6+ /.դ"ҜXyޅ\apW(%le 9\ a悈̈́{ ŀ`stnFG|lqVm Lg|V29m<(xZYOfqH2g6Ug~*CQIRTg%չmUV$ MCwLzF I(9(TM!0H].s{ի?e ֺQYag~yHxl8kdOB-|O[ǁZK#H=Oá%ih4b݈fPLa|$*Nƥ!q\rD%.vPi.˝-IqswT9lQsmbibS}_4rrl=>ݸ:H "JC-`&8껴+:Ķ/:c*И cs6t.p+˫9 hgw873;~PG+inT*Z*|oQi^i_\FJԂܢR 84pEU\)H76no>8[^]89\>[|44wwYvNpȂ(p[DfEmإ{]ӭ_wZYVizY4*|vx4nLqE'0(acY[s$vMue5EM e"eQl2KJ9vič_M[I,)YvQޢb^"/tTjxE#,ZqqA q>6vc, ;5VPSӀMeXV~Y)oޗx8;>O8BZRvͱɮ@<F'a  CQko#~%ѶPwfr(5B^(uiQ7 xi"hvx}nsag×=;zqp{}p>d?>O_/,=On>?ߺ9\:OC/S6|\ob:|61QJ:] F FKp8%|_~}wS}/AK*jIY$pmWJ)).Hl /x[,.,ad4& s_BCTF) $Jѱ7'U /!JfR@0S9(4`Bdż" #guFy\Et69_&#E-`RzϠgPuʂ,/ ;PK켼"XW0YD0'e!b 9οBǚ02N WAf|NUJ=+5HKo+  5gjr9~6TTylYU,g3I4E!T0Q+9tIUU%4GQœa˓1i\ְOk.Hi7{hJ_N]wƒ5 ,Ag~GIH pU=.$]#/qWۆi/$ uG݄;eM۫gkP#$m逮i)ho.7uȫVxËu@$y~/.`Zq,ԬL~NGO:IͭՇ&{aѢE"yPE\W/.d_n%W*b| 9R`1U wPKֶ:%wOL $^)v}ggKs}SQTH<6&%fAZ4tf:W&c.xYM&}ZUvm/@"i75}QIԒ֪.ZѠQ6z\CeЉvU!J%efmN]r3X5-Ҧ J*eͼC5Ț:" ~c5K.i$u&UkcD-̬ VѰ;u-G㞸<w &U6I82IF%ugx +/jL8ttu&q+vdh bzCQܰoa<03qu,Ou-McJk3= c]%Rm]*z;-vvGwfߞn^ɯ/>?>t{]rwOݫO JrNm9yƨ3]O* 1aƵ.sz BԔo|,00 7Kn.8LR6D)  R/a0ۂ.j _ Ԭ"~"V.AIPa"Y S, ):X1ፀ1d$*ГAI,g沘y, c@l@0E;LV!8I"$zf#" &,. <'_:-]_ciV#mV@:+2:>ZG rIR^=%Y<?SPK'0XL zneZ@UW{uog<-g ұn>_[C^ Oo&LnE X˲4Q1WL`wP AR8zw^uonPx=V=QKyZ=f(UIs4a{%}~=%,TfXVGG9mMAHY)Ӌoo|+5t '[0ǸI`_T]E0;`pSÃ#ޮk14mfocl/]˭dWp\F}lф>f6%zP8>:OǦƻf&X,F! n%(iW75 &Rt{|׵e:uvSI/ FElȶ5¤hn_h[Mŀ枨 &޺'Fڽnmu%`d1e .U&*7L #:ƀ[/Lw :Q#i0gojhd*ZCm莸"Vg6»gצzt \=^E'ee ؙ f S&o0$_G'G3H_0vuݖVkQVUCޱn;Pxc4=8 cF|:FbѸk~8h:ٳ>ӿ5?t:unyǠW7ǧ;+ks㉓݅g/_m^&ܝ<:\Oxr[ԡ|h¥r:' &_:>_wϞ~]π:xy~iVH):\O.+FG Qdba<|.l,fSosOO =b0(:ʘD:>7Ae1QjALf.< ~\2U@Bed`Ke|z6hT*P"4  R51s>| w=&Z YO7P\uU,p _tǠ}/DúKn(I!QNj}>iŠd,t4\{ګ ň.i% yLJa@zNSɀjAx+^ʗS&t(O {էEF.wK =bކYGͰ3.jNLVq-?jjemP͓9ߛKT dﳎO`ܹ<ϩ*o(WLNwM+|QA?_/^^񫮎A_"X@ޣã]-=7G|!\+6kk뛹\_/,pUmx2 /Y][ʯ-oj䗕*ق*Kۆ3پ@j;C vZ[7-N Tt9d1j1l.ro¨nFA4Wal14*٪lz`.%~±0=~0vwvUX 2(*iUQ`Pv:!UM5xEnT6;MrQ汪<6Uh MRîXc}7vvJ@緮Mt/'HQ"e@s [IInUc!=.0!>جޠ7kNl]>CQw~Ŀon80uygsCΉ/wcv>lpa$z8]{|o? Y%s,:ߔ. ť# (8vH޾@Xw + @@fҹ,-! M/t&;iĮ+ I0_z) <22 ZػA$Qi%T:(H-!  x $㓼 DۯLA>Mƕ'A``(|l`.D+2%= pL fݟQ"EPSVAf6;Q e`+n|I_FHEx\0/8uV~Z *a8O?[a }BVi59V^de9-uS]&SZN:..cei$65 c[XägKy5\/yZ/ fdBtz薳2"; z`romDw|ܪU+$R٫a]?M_-Tͨ4VY (|1AD,NuLΆ.`nġ a؀57fvF=Ý= )ǝ ܺڂ E.2id<]֡nVVSɁJ$MqށR[t ,iNoCtVk $A}1,aso6=<1 v VQį-,+3XRJrQpp JD, :u?jy0  '`ޥD `40]Io/ vc^`ľ4ۻ9ӏOζw_@]r{׏O7^_ScW\b]szEACJ w/`De4q.4/oi| ^ >0yh|ؗEϦ1U`u2 dl2B/rc3@qGV)s "z8 &8^ s_|gTz[95  Y`1}fr ʂ pvY9LBD^&L!2I_ߜbrfaSL# C…DMK`.υ v 9_JVU]N#_Xɤ7u3;ml_Xu֑m&.IWB 5 ՙ?KQI2SMVIICgp ?X\\WZ!5 H:iZ}6~gɯm7zɀ&!Kyƅ(7=֏v0pe[ v\F{Kņ{ӣSĝqY7"L%]E:{}},pm(*C}}ho#V"yKMyMi9o'h.a\/+ K8ƆjI)kkġ=rtfD.5>nZ̭`fJkS7NB6,th܆F52U؆=[w# cp>ys.0خόa-1uģM$,Y -4^V-o+sƂ7<70 c˦l:QoM@;׮%>ev]T]VK[kJZJ4aJuna28|huiĢ*,oe5fWF".𿑠y33ڌ:m;dΏt$:}!=LTx$nYʀ]h.qh,xǏ a`?3?tpz8z>w&j) ":,'7?^}}qt3dgg=]8x7|(=99u7u(}w9TPszMtQXEcn+w o`0^?}%X<4rD}>ieXr4?(C FዅRL!ᤠ3Q"¹{꧐?HAǠgb")Â20q}N]@0]` oĨ`cPA@ B2T"s(3;<fH,RnI> %84 qp kS0QhZV9/ٴ<@].ꝍӨP%[%A8W '8CTXZ+lZ ,6OSN2ٲ,EEjV'_ KgЙ # ,0;?0$,c533ٓmz~%}WҝGD-O~Pp~y~=nz>՘S遟*?5dâQ)},&V}5i}<薀nUOUp%d]mߓK=M(AQWѲ)'LC˜nR>OZy}A}鰱2"Cio A7oW?M||xyy0  FEom)9>|rp{&.4ζDN?VI)jÓݽ㝽í]$b"yxyzx<]?Nߞ=>}|s}su}IAttzstL1/ a<•oWO/oN@w珟_rڣ 3 PWu-NT-j7V.H(7 *j˸&AuM].)c* "NղTW v`oNew 9_RV;e^:СZ_ZRUh@08,BGi54[My 56E. @6 /\͍v.`w"l6rj*"=y}- >_>ӧ_~<95C" Cgl:E-gQ2\J!` [ǼΗ^Dp}6+<1p)b3hB: Lz^~#2$@\Upt8Df޷r@[T"Ê-9xۼ, '\_M+ˣqؙ4qG :T-D*2-38L6j%lbg҉2|h7ih| V#/HpGj0ZD@] PfWΠ ,z} ": 7u43b!kP W\hZj.I_ qI\9&̯)$N6S$2D33,*4&TCϮL%|?;)nu~qYXbt:O5Oφ}J/GW㺻9<ֲu`봺 5<k{#{3ۛKOc/zLjt8k]R/huRnxf\i{ըl@S P1UU%aIeb*^]7o$%1}csԓwx|b Y{1WS-:9:.;A 0|nN79QS)L!(ߛ30#pǸ"1^❀ΈkX2HC}r]c}3p%T"+yY XVUɥLed(4F\ZEҋ Cv87I.E,b .(* ۍMfl)@P.ic TJG qW@ |g`/N"Wi 3bIU0u;i!q f7_UZ@.'CY"T;ڵ}]^SmZyLȃ +c׃\Ttj;\ntl0JeJUL\92wuuC7pL vuY6*|LG6$V#.T8xs2===_[G]}AGO6_^ݞn_\/O8ys!yڋ{o'_}ʿaN~|a?MgS;MŸ ~&8=/ A88ԃrT%]2|` )%xTB&/2T .A4tFà2Jt`cR6\r /JbseTYK\|WWW#eR89EI KZ`\ ^x8kԯ0^nuj9ljd Z0b}gC Lw&Hdw!:s2`gbE瞈l.TvO^0j"(k7U8$m) ,0LooUgJJi5Gg|Yl#3? edɹ R%%F20.Á_brj(͏Uƣ@3x^ =X`ï >Q_ą=ZU[閷vɟӕ[,G!a-Чk ˀwCJy7=xj'qVg˚i+ m[W9E q˳o:=S/ErHC #ί@ɫk$&W|Ao@€]/x|\9gdwhfGho(D}6YkUu`{fS Zʫjťcq)-ql3$$^1scROXcQ4ڼ.U8` vd=*^-2k65p h+sZEJ O!9eVnh5`=DP  xz,8= ـ/q  "6Iֻ^}qb]r`N_m,s|WoN^n/|7zƣ #g7g/&6S.6?RqLn~ 0K^Kb'KJo//ʿz /?~. <_td`QLAC 1A@ ٤T4&W87_d "<RPK-aa$j7)k5ez6_-FRyE`A*tzo ߑQij̀fg I8/D˂wǙѡ3Qٍ\xeF1hd"$_T2:N#r˩(Z^ `k"^ p~m  g\RnV\.%z6#`u ?[%)+5dY 5bAK| P$X1gֱlmy {<0/⋮mgͲ|S4鑿/G 1!͇ۇY ߫^)!⁾`W}h,h%ss_yӯ`xOFt8 h |{@a|hհi\ LigjX8aS|K"bVDƎHKtKmGT|O/_{w_Od ]q^l~l`}nI3#s$k1(ߋB{Wg{H.4"uh[& _=6"6iuzD݌:\! M.q[ꚬf`.O& wj#~^@̃( x9+\] 6U  Y` x7bYu5]nX鞈ëEomQzE.T[N$贶m<{4IZtZ 2;7J˨Ri]ÎᑮC~@sl KUȫЦ)]py&Cl dIt.z(j_Il lL̎cG3;ӠӃ˽M. g{ Ow^~xvq} UNxzw_~*>hpĘ)c~i'SM?||03Ћ4=)v y@ޟc(iږ%_eַ`_ B37_lD!z&b eqG02R49_ />՛ݜWCs$(m,&yR Fe=F39qYV'pTl2&`~A@:*Ie_+j _8 #2Kb0AY`71"/Ԍ̼ oס98^I) Ɗ,WVokUH\௤*_XAdWf0i G02zf-Nmeگ(K($@(PB 9`r9lif9S߹[ |Uv=kk-]o(U0SԢ^]itj< ?? :²^]y cWGtO^wSd\v5I9K x-o9K8@^8w4lw*λObJ.8ߝpPxQ .coWqz *]5kӽ ãbE9W'h8%}܃??G0{c%,NFcm7J8\"!^ Ep(}s|u{ DCl~vSg]L{BNCkLNm}SE0|1LTP3 .655Fkgx6PڔNcM]cjhitF:=}QA5eU)%yFeSWTGڝhRCZT͓׉:pѠi4O [vC-\ {5^7 teiZ.l) IZ:IF>][ušD`;8h +yb>T՚ u}M' rR#o, l,'<].xN|?1*L)P|>KK ZtͳѡT5L1| p4KtXc^hy22;_~axte{f$O ݍћe8/_{sd{1{bb 7/p׻.o//VG:WF?\n/ϯ8Ɉ L?mJh@ )__>l!)̡f3sDl Q*_ 2fhdUrL4@ټDo.- *UFF ;0a1qT L 2mLѨ"l|iH0h9H-AL/O&#l/.I(ՊD\WB%둑%`}{" / } -23270`~mcqZ\-) 襕ª /OHgstVNcf&M*4W-vUt{l*KsMЮN G\Vߡv>Φjs(cv6\X1p+`WcmD`v+\Ƕgoȣ,`N=n8M (Q*JŵU<(f '3[sC{++@`IRYVK b>3+XyT|<xjYbXu5V[$TTPMiiB5]xf/u*9:Z~d4\ O< I4Gz/9ol| Hocy\Tl}&<ۜ]H{5s룻í/>|8ھZ>[OFPGѫݹǿ~zOn>%9NS}AʿԿL7t=Q'?z#X`9S3H9`3i_o奻関 gVNX+EiL/ߺ|JRӲI  UB3ӨTQ:rf靪AC< JL;N9.%ka/_~?8=AJ6]Ix!{#J&Ġs7Aٗz;ڼm.w5఺jB6k5BiI@t =H f/bpʹB(^ReH <gk<CcZVo(mJ8:^S}wۻ? 86k*$b4تtx}7:-ZEykl=Z/Ё^?veEG\ISNwN E&VwW'bʼ<1CdVfj,:A]H*ZX_N ֠,%/W*,f75KJxN//l,,D+4Uo f].9ap;f;&|>GCgP 7pqK̀Sim)K(~Rs^9 -N`PXtrͦ%K&~%i@^l~ G]jh\,8LcJ1ŝ\b]yQȿ=-q-prF!|ծ YR@s3x?vi4$tBAIE,=R$56Z*A!ӡzي<-Ewn%KK>!5H~|]zSŋ|@ o=HߋxQ{a^n+W=@ͺU6|5nͼסX J!K^կiq{zm T1US-(+_)*[D@dspmggqss  ^X/ln.mmvcwȿJ`0ױ9i_dߗ {\C$x; owwg7V/8]_!;h)r{}f~,vA-NC]SnR@pa)WYIʂ5# /̯07c,2)7TU[LrNVT*}HoU<ƕћفp4u!{z۬KCHKo\ ?h՝>Pݧ/P,*x썱+06Wwpb7CfQT@1ைQW '¬2>,۝]ўTd$b(fIBY+iU~a222=&S6ҾNN,*xyqu)Ǣ3hҺždo8;#-A^CfX9(%UiA]eVZ:C&@6{Oļ84[k ZN6 ɡܛDmnxmzdch񧷇G/w?m=Dt(h{&q>q3{wvu}8_ٙbhs~ _,No۟Nߤ1a}z~RAhҐRI\.E 8Z +bb/Cϸ e,q hxRĬ tDgs9hH#pF1Nz^ɋX,}(E`.AgpJH24ɤ% †LǁE{:Om " Jf})DV/pXQ|.J 3RcfLR 559)ml[_kq6W#Y \m8ל+bega1}B z~0|`~/c8*{7)-R }7?lUcm^ ㎆ǟZJ']ka`#([y{t g h ǚX< C~@Q"] %JaW<\ߘ^8=NJk^lb%{.v76`~v׏6@Gɰ3l2z )?Wh h˳<:ONNg 0 {ut{u uQhXl//M ƧfGF'nyJmk+e%M9`{ J8pǢ2~^Q`Lɴ,JJF6)HG4RPhTUv3hse6`@d}w?#pptYv8:;]V8A$Ix>`ZxgO7.Wgwg.֦Vof/'7.wfoWgv?>]o?}y =7~qM˯G &o25 wMAxB da}yEP w7N Lvn)Xx#8K.6 n.7EY4[(8= 1!=OIdÛEb&Tf98A00d"s-``}#='rS<.f7 .3rFb>F"(LL2p',."6.l ;@Z&#zdl#9 @\AjM&h#+@Ӑs5b8U^ u\W-Yv-q*VkS%E Ӥyb5 d|4``5N& %>f\HB ?'vVk9wW y x]iT~WT%=jL4sq/#I>FU&AɂxV|ة󛐳V+ɌKo)rAf^AS{ycvU \y)71ӽ7.4@Lt.lmom/:US/_0X;H@aK\|.==#Do_>;ۋKtD)XgD9XSøg;=<ڂ*|e}w u%`~ue5EyyejIaI..39YTg =7LtPfjMmBYe{݆X'QȊ\ x5moG[IȦ_&^Cئlݚޟht?wux4܁s~t)m& ͭ?4  ]5M E6s=\G[f#j5er^U d":4F7|{ժ >.n wysx<͘_okTT\˯[uCnmo=hmA{(`ku8;@^sw MVS<<<ˊҡdy[LV`Ѡp':UMppX* L1|Q(;h (;=ځc=Y_.>>^|yw׿;^/̏>/_mL,]lp}idafthwGO~]4/ ~#/4_/돒3O}B%ㇷn;) +IC@q/O2L% #x d5 tl0*xdL)~A-N{ƉЀ]v 3++lAN% 9@aof&"]ȥxâXHbpEmy/v@kbaC߇%_v HX f1^K*o6 bzTf 1%>b%Z|*X`{"_{aiKֲ,ErbR\PrUԪ`Дשuiő&a\_98ZU_;5.ww_Nh5}X;H{+(ruLP?'+p09XGx{F@Y c#3~x'.SB:=:;>?W'Wgp~{q%1A F3qQw/LO {!mј2Em**\JT*cv J˦"JI+ꤒ<.;MUn_W7쀕R[5zmqsa(<[ m]لqm0K;t>]j>khi<4 (@gLT CfVR#.{Np6>@4kjtrpn[ct6[kT,Ǯ࿗ёNogE}=~m x$\QG[ENLx_; tZ*um%Ѯ`Onppjȵ5!+,'bj:EЪmߩ:lڎ`Pha" kXms*˩)W4 eum[K;3`0׻ǫGg+o>?m_lL-.&@_L_b[0/17腕E_L\dDq$wo>?~B[ggT߿GZ&/ffP,*nn) E9/#(|G||:tY6]l'x45SH {:+2,M^wqq28A!'KE|0F&ʡ9 8L\Jfe'GL-K)c!/"r^ 7!kG 5 O'Lq&IfQ9p,4_=rZjyn W/ J Li)jւ@]bUPluQ"/VҊeB //FAi'#A*g\9l+ظ뗞+c˘iȸb+.Dz7g_p] `Oڏ#^UwZӎFK$boJ+nS_OGz;6Du`覆f~L/PqMH:`ΛvIW b9KƷUsե !|{ p`ͭ%E"07h{?4J8>?F.`Ǣ_ FWGޜxw}zu ='oN@yo./,NuǺtʕaSX[^[\U_^+(D on!KP1yz:(UV!jlPksB~Va>C{'Cno_gW@D3؞?_/JJt[[_^2uZ;(M(s%a+X.Ogcnj,o,褥cI0SC.K47ugupkr}tcoz `Uj$bI2:pE F;G:w d-'t &EiOf, Oa_:ZY;><@@ζ.TD.U$ݜN:s}:߻xpw~szsyF@k@pW"biMVMCS-`/""JϢR0 XdwD7b3KŅ2ܜM!ymѡߣ56Wp֪틺@>ck[~ lnFW;BNbwLU]>cV Þ涀Q7[xQVbn댇m>Cͪkrj [nAWX³jzѮxA]S[%Ҫ+M!4z7 Lw4u"c}~̭ޚ<[Zi[i_;Vͤ雥3]X n^/iW:fcB^l*7ꥀfe9+^]oUareVCM91 wGmXKg7×6w{"Ouk!`1KP`lpַ_n=oMN lƷfbkыߞ?nm859׹Rc&!: 5$|N__fԸ_~/_}}ٍ_38\d |bfN60 \*]^p)`qEN>/__Ký,PPŧd),8Ql> ]PѴAVS@s .-@":#`ge0qXi\FgX\nF$j _> /{.6Fqf8rAБCfD_FTѹ4wfQd*^>L7)i\2&3q!@_D2[&yeo@"Ts%Tk~flKA$\i*57UBF?)bs9T" Kf# Be +FÀK,+guA\C,"0`80iG@)-QX0-; )z@a ;d_ ܂~{whr+ ?9@Q2 # .?Zk5Wx5q|q1 0EEws>߽;[/o$#ϯӛq=E9a~ώAGk @6|b?oǟ1|O^ X_O'[:Y]'/TT+JD69+$|1/eZȼQh _fyd:N+*ʛk'o,1Dl/06$lpƂD+:h`D .x(bo.^+7fY x:pvpz&EiuPT >If3H{c3ت {V]]])W^#/tz@޵PgKZD4/u=^lLU YP; j~wloXʊ㑣ݙLvP%#vҚBvz<1?;=[Z>^oR\W !am5-6QSiUGpBS[i'bqG@jb!#(qjƠM1J"֘W2L|u'˷o~:|}wu}1q>x@'Y[8ܹ}{#P/*YUCIQ?LLI_E>2d[矟ǟ?||[@0o Cٹ9@Em:gTL;)Lo&$(N %03siiT )| Jdq0Y|%ј w acsS H1SrHDpd|6E2W{jKQ5Q*) M 7MB391(DK1Icl*;#TgnD|WKԋb̯* '(9/$eZ]O'Y8 K#/V1b&Ljz 6C:pA#*ڸG,FL_po{Q {|:m~W|4&7sFJK!0\wp7_(/r8#.MEkZ_p. oV5w;l)Fj:7.41U%tu\?5M4͈F\- Y 0_(JD]GxgbdoMgfQ SP';M@MϥfiB27:V<2 DO|<f2b6` @4l/,03\:vxY@!&gQE@0,!M 7 _̻T9GMfdTQ5jQBŴ}-L# Zz* 9! \0咳sPU@*\:.[T0]4dV1b49?C#)-Rytch/e٤\o 7 ~銭[4`8ouMWɌal |2a}3Fj){O_lwFMBN xWq?h%(\ U$Cb/Tw|Amu/B9e 7ӋQ#PFaWw^8lEͯ@&VSH])WYLrMMçG?˿;Xxooíգ G h5J`{+lĻp<y_F*o|Wb^W'OA/&#wF |l8hbrlik$e8_/* xœ2>/_:;p?;-V#z1_N!1p?nv d(չZ&y|`\5ڞʼn@Xh `:=ݭ`u{ۭU 7qV|ۜJSA[|~=PHU4ty `i(ntuϗ;3O'k# ԡFs}17ou6'BFa¢*+c+c-=n*=]?\uRx_['cXLOv?;yxz|CH) 8)?O >{Ÿ۾B ꏀo3O}}o_R*/Ebr9R.B0Cb9"/ ب1]$QR_Bb,@rT9UMerAL@00FfgrrY_,6I/{OB? rhYB sq)P&7^G  M8{x/7'%0_Cd`x0|+؅#b=ńe   m3qW򩒏{ 0v^-EY:Q2Rܜ*Ȯ$4Yav(DR$rB%< A&tDd>+=/'A*$lާ[dgyDzkh;j֋"ڀO55n:5 o#uLիiMΪ`Q8otbpYdrY ! 0rE46353etn: dRH aG,MB dKv7F 'b^}ĩmiyPvtg<1i#Wm1:lXo׻VKU[-u}MG7uqѦ [ iE[]$R7wL}A#}oums]8fL:\`w?~{n`owեo5&QU5-Q\y_r9jۃw"ltnN(Ǟ^nmϬ\*EQY̺j0vF*"^bVWՕFuEG@${#.Mh*;}wu'n=zk^]lmI#`}u:v<=}w3 phc*r;rw4};z7};fpyn`afQ=>}|>_?_}Ͽ߿ן~,e>#KĈēvqePۗ~G/pEx3_>~x|O<=ۧ?~g2Ӊ(x.?Rd4nKH2yE,v.9Y nWT.tqe>,&_5!` p "f"ߘA4/PJbxfb QU YP,Z.7Bz "P `s`f xb!1Y 'K."8sĴAXBr34r.3[HS Dfgi2e&P 0O'J't0ߛ*DMKce%|oOefH;Fw xP# +x6L Hy_mn:/^ )LM1U*Ll,fJsx\A$_)l: Dhif&ɂY$a6IAa«!YC*Zw)tϛEW݊%Kqߣ}1{J3j:{{JMOúd_`&T3w 0|n{Gc@s">VEd߽HÒ|MNX ]̀v吹;a+s>Y׈|௹frZD ݛ8ۚ>ژ=^EUpyck໾>ֿ/ S-(qXI#olӣm_O>%O_θ]s?NarS~H@AAy|JJ s2sTPtfRY94VJF%eR1=LP!-,"./mOz"ި}nqQ <3f鏻Zu i]XuZzK1%mC9wO&aFeU@R5*e[5˳+K3p,Ш܉Ύd<-,趦31x̻4fj-IűPKwPu߁t#mkoOAK?1ˀ&u!;_}:ݛ_G6\no4,:oj?:Nu4h-XjY Pa `{VuG, `u- ;jL&c};i\=_oLN7':Ww^L|:ۛY/N t >mbbOO?Ӈg ߾y!7_Q#(_ApK6/#,_HŁe+_>?z|~zo_>_?Vɥ ~;)`"*MiSJ8E|"5eDB2E9c\7~E>B4 \JiˡtZJ 7YȦAy|L@:DU/"f0n]t5\Uۄ⤽"Z^0 ebi,"8o0מꀿ']7P݊fW;i+Jw;4]h:݆w?'}]ΞN;(mYjEWM V}F[U>4T}bZPSn*ejjBnsh,/** ꚕޘei]n?Ytx`r`@?iYD*guEumv3`47FgO׫wo ^=^e~'`.6`lگĨ/#zqEB}x*9mӻϟ>|/ϟ?_F Kcrl ,0N(8_e҄hWL- 1KY 8`s 8t 4¥(TœJ Y21aa ¨ȈI„=_+@+frJnp9Y^J vxdp]/Y,EDQnjMJjVDNmPv\*OVk?KIM)FA~VX w5=(빖,_CQfK5^tT,e4ma,MQF LMoCG{.#"I.=0b3Y$IsH m黩u": ]t>dtq%cB3(D+ͻ큷lq^!x=X.:$nX%$,9hV/  EWy\ot` O Kk:︥`+"_ acшpR<ՂW1# nZoH{ϧV%Wxy-2 #!@8 { ^ݽg'fLsχ|ei3ݻ纈J%~䛙gZ8EvSǙ?121gF+WfWVf֖gp"ƛ ?XbFodCd3=]ž;#&o$"==&11An쯁^Z޶r?fKNIQ J@TiFYADdtXB.hЭB*`W)\'kNkyJ'Q(tQB2*Rq! 6@gG''Ku0Π쀛`KCInQfUy߶@<(Ue{=-5e@>ߥNMPҹmiImza.R,(Κ".ηHk⏶.Nw7 rS+K /et6 xohyd|[83`"0 3͢)t;2+=űӭo[_n7N7϶@_]lO. }:J˷6ǗzSS3-l''nk,jjxmUᮚ`{=r;j!Z GWҀz /F44l22!So.|-%[gk}5\OUߜ?_9S1<ܞk*gzӧG4?#`7oDj?nG?a_P| k?' |]{>=!TO_?=~y|y|Gпۗ`EQ|߳r6_+P0RH`/[F2$^B'eVP.`WC!f HfURPoq X þ Q"&E Mh2&CJ&SɇXdhH1".,sF“H$,4;ZE5|jxA&Z0MH3 Kw !X@Q`ƅe.|88Ks i| hdH.`DZ'>؂q*,*+DYyUv~a2%[Nr HbRђsz[MDQvY|Z",O$Th/ P/`D 1S] C^Ckir E:^[bAbM*^H Iи<ӳ6,9},(,J_h_jy:㹧y``W7\1W3?P7Z(8,I sh;Q|t;>~2npz'ڛ؞l y23CE:\4}Yi)K5Ն 5Aw;Q XZQ[[Q^] nj(^3V'o l|k EsI_[I).0W;CK][VS{62T\TڳlMPk/l*F^QCm͗!Mlث6natho@g^رYk٪d|WLPT@7\/TYl#>`r@`\iS&12KVla# _&wˇ;kS/^]]\_\{[o=G8ό  UL[sC Ͷ3</`*lfF*+WzzjV=#pUb)`Rr({K(5;>ߙzX;|ǿ<|^34_4 փجYI'g@ߜ,ﭏWy+=M EBo u6o4 t^;h-jNA|@3㽭-Wzm&:+v;Zzj+rt]c(HW湔(M]wK|ξꁾpU???vzn|`/W<-U^ ~)_oD#G*>wοve*0/\/d~͍˖1\‘Py2:_x_ ?9sp%E'Rx-\Sr&Ay9یD%ɯb``A2˹<5^ b^xB?T \όV^ԨK |#ł Gbt#Kjr>nJ, ))68 ׉-% ia[iD9CLeUV&R(ef ؗVl/M"H@i3 ӡZd f +a< IHcEh1-N¦1L:IȌQr$S;2LD(yɾlqAV zau0Rҟ7ٞ{s/=ׁe +MSzە)pF^Ma7{@8 ;Aoե6Šq-PV#; : ߡeՒtK0sV.rSXn[Wwurke6^[:mF8\=Gp/9Yh,u#Gtw6mlxz~@$ ( X_Z[lijn[g(TmzW&7 $Z@N狩@U&RBTLWJYjב5&ˤBy"J'xl~< ̥q< dRsT#ŊQ)aIMKj5T w̎vn+^_X̭.f9ThFYfygi./J-[ilԟ+7e.ߗ\Q9^ rE^;C[Ќm 핡֮ͥpq~ċ:=³压fYŸWzjO+ p7{; ]=Յx#񞪓q'w+{k -[í+s}h\IOdXL7ݙ&=pLXg`vCiFMD ]\ +M( KT %#<%T5:VG[Jƻ=a_k."[[Y[ c}{N~ǻ맟|WB%`\ ϨψH;g^E~Gp ||yyC#=^:+'a䳌!T@Cp yfx.TKFDhW/P8:\iLqʚ1@6\ː8*.[ɡio*ug|eќ.l߀}X2mF8IcB"WAH^1qU8"4 _ k1/mE_8K淩oci,TA45bqx1-&hzVPb2u^m;1!"蘿 jS&MJۥd$(1j^7F̌bxHr)B.jIb:IF&Is6\N[ WJΫ:NeYؾU<erRi UMZ6K-Ӑ3p 5V-}vxv-!#yZPrߛ ޯOG!Ak?Zi:nkJ[ 4͗@.UZ W1Q4WL~O+Wùr;*JzY ځKcu_\Xȟb##HFxՌGy`]x&ldgGx|b(r=T.)Ihj(Q#ILq3WT0*RP ZҘˍ_ǦGI*O $4C*g 4#1x t.̌%ŐBB)d9j<* @M-5f'3GS#գ=5͵_~OJaPUlmyyyt=kW}Nm}IVQm ,}auԖ] LB(J*ϝyBhL׋糙_7`4َڣ>T_}wS`Gn´@d$(o7O'3W G j.|۝ ai{zufm}qpb)\ヷPw{- a4R?3ذ8ޞj.5eC;jprx F*m5yن̾@g}h꾶` p 9)9ŠGZKG[JgCk.mtµkF[۪K}͋+܋כ_>o@F}oDo*ͅx#v#^}[&oQ&??xq_ߏ|~?=<>\ۗǧyY /H] .&/EthX*[9tb4T$iRIR逰7($5p#<y@31 xȸ Xr% "Ɛb+x,9q< //J#KqɈb.QTLƫhLË <Ip% cJ!cSm 'qILUD(18R<) A4X1o;3Zl?ov^5W ]\NJ7)gMӰ|h: O©;5z;6_ةw)X5JTv,eƱ+~͸_=Y)IhAg :reS>1OR;j|!W.vf㛨jr}}uܜC6#E " HX8Mi^()*LQ D4w`}ayj|j&\jOq81u2)2-ꭌNa(lPJ\mBdD׌(LR+p<&Y&O2J5[pdM*KJ Qi1\'ǒRf]T+l#w66W7аZjE"߼򴶐"?Rk5>gcYNsP[EKMAm01WQ d8- x鑖!Ќ#mX4y>x9Ƨ_6a`ˇ|\d[O80[TQkow֧:WקOV^Ζnvf^N~]r ͡P[XWXsSS#-mtfd%ͨal ` %lϴ…mٽjw{\ҵ噝p2]>W,<[_TSWV6MMoguha=pz_8O:]t׆%M@eui|vx}wZo{GO^#U߉ApAʼnOD/&!mNlQ -|]<^ȋ[HĂwqr e_>>>?=?|sQJ\ʼnŠ_P6RF D3@ tdnTLSY<If<8(HG>7$@X,fh.a L-E*L*Ѐ#$>"D38qbI(>[1ܸ;ĊJZH VOgQ{ %h Kg2 8# d5vBj4ފ;vQ3Lac3RAK d!Uo9>OlˌH1%FF66B+0K-,@IY*۫/S=x&ΛDjrJ& c802_)$b< # /58#"Hyw5hحI=U=No "WҘ%|F 8DiZVG3[+[h6 d6w{e=1[oI4<Y xLFރMl;w 3!cD>|/./G g:K* 3siiCJh4R54$]Ѵg6W,gxLAW$e4"A֊ լHu&e8N^%Il\UJl,PL粸 T'cQTFgq=ӮNVZ?-K-9*ֺ"g+7WU%>SER -tw*Aw]IP):JE^[nzr^f ɁͅN~c 3zþš֫󙿼l}xw83z8agXxs@5xB<eCs='c+÷ss+MkAG?/ק[K}<MmpRi2Q4K\fQPKb ɲ8*exᆩhK1l _PN[{lqi~v a ^Sjr* 3|Ƚ> oc!(buwsQokiK]Aeqz^Q]W[ZVU^U)pr+.vw.n?\?\=k ݯޮUiejv;W_,7AsrݙAx̯ΗuR%[T!r Pf$qҒy幖m4j}ONY\vx1p_V_F޷#DWޏac'm?΅->105QM =<ڂ7:69P]W^Pq{3V}V2k2)q@ۦUDWd\ 'rD4i"_ernIcJQ9 kRƕHX_VdrXBA3fPƧX3&s8Vq|9w0˵rz-\[\Z]IVE^[bѵԺAX*srzj~o04 /Xko N͎wv:١|k67&f~[}8trfovvj{л3۵997XY_ ԁ9=Z;=\ _N\_oONv?}Za X|>prwz:6_LD#R4zIIe@GhohgH{9|v2ٰG@9)roO)1;ʊʪ@INzٙa(unto?~{,{}z~+~K/W_ /xL%*c&W?]Ïg@-}o;#,\l~^\?>1ЏH>|onY+b id ) ͨ|lM6WCW H,)CDy)/KhLQe2T0^{=Jd[Ǫ'c<D `FsN/l@0c ThT0/XoҞMF=92WqGJb((M8&HP"-d# udwa?D0OMA*W;Q4mDG^oTe>A+攤@L<&{tNIf%$ YqN5êjRI" YOQhNΌg Dd $^?/48=V}ўq=2Ti ;?u]hfJ`dE]kaQiunU§2qsVm]Y~B Wfz#^t@3SdG 8KX!tpf(pH9٘?G/Iv2׈?<ۈ,10|GdyUU!aBċ_tl3.'gۻ•ueE%^? /n7$&51H`U|_ $Tr*IbJ$Mu2DH]F(1T\Tq`Gqп .$',2K7ԞWnv?JUft9&PC5Sߺ|[~VruiFy5T<}0ZSWld4gvN֍uU7VzJ lkyQfKtahgtonwml}wesbzvme7*02UYU7{s.~^N&p|dlo\H;] 'B- 7^lO\N\NmNfow/_O>ӿ}:a BP剖\8Z#V=nzTeeO$ dPr`&}lrlt $0P$@KQOcߎꑞ`Gct_hG $π |Qy[nrګQ~`VTWYVSj/7erOcGT_^<yߧϯ3 7?߆Ex ņXb ) E3e )\՗/x(p$|zZ*5Uqz}wp5.!KYB%?dlT~L$D=0.uF<s.Rص3c@"ˀ7_PhyTƃsI2F g& /QrkY2.bࢋ\ !PEl],@>r fF3dLF@ FWHK8ъɗ1|&Ggio>x26 s"+# i4Tƥ+|*_\nS,:`"R4@0/`b1`FL38п- b#\YGCjhY*2l:fHME3x0F& X FF` qywUwa9'֚ϛ] vn,Yr2ue[옿wYݙ/欕@҂O^jS]B Lݽ05;Z[VQWLl)321#\&V&Ȁh3'$H䊩|)SJJS )B(HbJ1p̊:M,FIR[D⨱4$0056PОsSȷr*K;CC6/(,&cOtTn"b1ErҬ<,3\;38QQ16X?S?3ٵ27^ߘ@[+Knivr/2T8X}u8f9-ޗ1!G[=CMc͕Y5S}UuyKcWchp֗W3]w;O/Gt?g}ϗ=ڀˑg\BwrGDdHhdpjx 2Si&5ɗ%zvƛWf*+}-Y Xmg"c'wv[\ԏ\e%Cyep'@t(;*|֊"gmYvc("(( dݞ<0#ϗ*uK#wgߞ/_A /Tca7b:4F 0v/]8 h]$?;_ nOK|ޡyL9!rJR3(c\bwqpur}qtmi x}_x<<͟|d~b_FFϒχ?;#5We_ۋ)|q;>/'';x߱6׆z&ETy<2[z^a0dːbT r/GDPThEb%_󁿦Z)YJk$RDyB77+%'˜b JQ%0cZ'PT_g(tnS -r] u)BeN~ձP_}$7\^h(j _qWsppcdrLBJJl?l=.|^OP +W[Sgkc  ޺"0Rtܻ3۱7p4Jo[o ׫ /6Gn,tRg/L6l,NT v|'JJOWÝLMOwqz2fKGϗz? nM4- ڋG;KFJ:-"߭On)Ү@w/Q4<1+$>PAH\;rvMַUNv|WON~z)M|헏8E$FpJ9Rp1vVBC& q7 [8- ]9/wϷhkTIuc+fbKp<A̽dpb=S4;*2? Apmӱ̢J,`Lا$p.)!NH)9>gt$GlX QLZt\,).y10cIArIMP`t5h)PLO7[ZBx9O^B|"ZaQ˅:os~-^:vliƙ(gdп͈gMZysq$vȼLY\;6~}l iăM%3Ic bH5V %قLa8ST`I`S n`;?t꿮9@Fwb`p q@|~ |q\]|>==:^@oj}n|j4O-ZYk2i|>] `Td9_щl~^~__nvga{9y3{1y4=ݳ<6]?^=^5R\17T sedu`ba8p0ak`dqaoE|>_/oWϗKO3'}kÍ%t_@k`TQd3mFj[YH0v]9#󕋣=*Kc2{Tr_h>tO5U^`,4|klT+K|.uCqJ#9ߚ"'>kz|*OUIFE 83wfgR`[%cYЁVȚ0+"r?/kחOO>*7 5xRMIM'ÂI9|JUO%&X@ ŽKe/#pr/eIT%(d(}L%U *qt(*&&zc@0Q7IbP : Xeq4NAd /[&r@y2YBcdPhyhv<;Ap%\.CoP,>ɯI!q[1f :4俀p /8K!*Q4j  yAԳe o,`HI| (( 9^+? |fISt%9jvv"˫Z>ة,Zɲ8(VIx1B^4fQV!as$AIM%H!ࢿ첧p-߭Oy#قzTԙy\i-I m.ŽΌ&Q埻\=頂Z?O ?44a:VgU!#ߓFUcګ6]f]ەͷ09] ׂf<@x$e>mdW6B;3X^Eo-k͕Ԧ SFFg R/?X\]hF`E3įVudFǟ7bx?l>Bj0{BM^X_3D@g).]x3`kGCUMifdf՜ V*lv<&Hdh(_PJC%X2_JX\1\%@RmDW)BN ,>ܾ2c8m"KwRM'P tFT&Hs3^^ QweR0HsiilC]q࠶$k_PjɮåpIs'Tqh djDjG`(vsv~~y8:]v {aw;۽*پ񮩮:=u0wu,}s3z|=y4w;_vKx~_/Wo^^n oL6diqeeksijM$0B@JOV4⭹OK Rsed#N#UC5*1\@ IpN%$$TK8EYɠB+HP1T| k[W[_*,̳fg$9uNN*cTly"',OX ӭts{wysuxw/H`,ok~FHb~ R/6ZzwE]20 QG_^"}|>>j'Œ4ΦH F},D+`22dp˦G3T!sdlq"'cB`1ga(5X1|㈩XBp*J w(CB5 j&e(d/&xq~ѥXn  &CDq!D*ё"J!Or@\_. B0*B\2"e)b:($d9M 'G3#$ \NjKш8>j2JeEB DGAҲ2Rx4$á,pYYEZ@/43UPAMiNmϲjSTB ;Å·;E!QbP"Z%QHfE. ,IVAl~2x|`rӗUߩ0^g^/9/~-Ne>ܷeXn[ͶMo#ތvӰ j/ﴑGrxE|Fqڼ]c])OXtt}Bx1MxEI!\a,e@ՙ% U=I閴d2D-YzL(sd~3HkvfF@҂\Z_X\Ǩ]XkKH'nc!W7Vrp.zwc`sy4kkyo{bgwqr#]\Wx Z؍LGT3۝s7WGk۳ +c=Mu|ޢg$0ݑlj z>E*9D^%CH+h\4a|!HT<+S 8"̲@dz4ڨkǓ 2Aa1)U LB )J9+Y'QHR!UWHӢeR\fצrj! )e"ߓLʽ*82o o(K}ChK\o@HsI}A{0+0I$`4TB4O S sgscGϏo?lovo-ﮍnL_,JG+ËKcm;3cSGۓpo/GvvϾ.?퍆fA'WF'z-M>sDa&*OѲ-)&=%ݞ,y80m/ѳ ^D'uA1IJ^Kp $j\Cc]*D#Fzk ڊE~KX\d)+M--<pU>sNvrl(|.7^lXVVL?]]><^˾|VO7?~>}ן>A C&5lߐ۳yT&L璙|[it>M@eT[D&9d\FΒ# %y1d^P87dUR ҸT՞J2]t "2*w6-U' \)r4$4QkM E5Xr2H&F&# b1$i<̍hs5jQu3|Xc˸K{yzh(JLeƜ]ku?7?|4hA:n:s'hqs]v.q\gEõjdRqіWk*P ;4i{R O Fۖ-l7#2PUY$ZNMMw{++ #++8 EA], !P vD #ݏ?@rvt#"%|~gǧͽ峋w"_INՙlTd8i)N I"Nh&|e@f=0CQyL$I g6oiHVe<@oR̀`; X* D%)Bn< Y1R& 8=U%es r/+uKcU)b9IT9K9眥*C;w=y1'јa_<<^J9ݧ݆[ VZ@piF1C$)A$ Td: <_Mm/﷿\->ξ\z<[:ۛYY/w12įk+K+uTgO5w7LntϏ-ϼno;?X瓟?}y`\LKAGjAI&VWe`qp+2RF 5]"Ś,qӃҦrOw}p5~y`n 8Ag; s}l"/ASN Xm[aph4+ĐH(2c($&eҩ%?ǗM Bt3P8B0Ҕ]]R (R)8_SJ].SJj0s. >g]%Ho4^!A`g=].mm$p~߳۳ӛǗ׏wggg{gߎΖXJB%UZ+Б8`IT1-RLFJ /^PB@0$(Yئ02&y<&D ¢(.<yYDT%G|(Ӊ* p[p)41!m``.4Q I g /͏y}.w@jA*0a ]:q9q\-uQI :AFPX3Cc &Yy"G&j$EV㻧h/Q 1 FskX_n0rItmqVc;gp-j.Pk D.oMN\ȥp/x @K.%^> Hh\r .}%{aCbU\AOV >[-UMpdVoK,RxImuR}xOwԚUI %KFRH,N9'/h/H+h!i{opwWW6@:j,.XST!a4aFEq[,3o`rW;/SHWe Q1^buhMV$ݥ-HuyMfZ,ZTF(7A[: H(7bVU9~cNД0t>c%A"5Osgg ,%֖P}6`wzf! !?A2q]Jr@WmKHou52jJS i&$I͙ ;OWK߇ūyVΞʬPKyzWUVE:/aty}n&(0^8ѱ80;{?Ώ7|wpmvMM"鹤BDTtof[uiAy_m6>EσMDzi>34[RiNM jJ_t[POuX{BPDwe[eZq3=u1ɢs_J0oT\ N!QcI?RKsRL%E|o|@q!!B z],ReFL Ŋb)BWoPgOL/μ>:|j#/]≤>\B0P_*Gx20d`7VAe BSZBo Kh/4$ 1~0. Qe&"5%yQT.cXfPx bC UE.I1ČL]eyY|`~`p$k}MWL>Ƃư_İ_Ųc WCV̭ \W*:WbMh7=699r_EЅ=Cl*I0ILp/ c( -vM}|r>k2Mkx̹Sbh W8J~;ճWcœrԹO[ߕB@LDfu2KQةA,6Jz1/زZd*Xf՛Uco`0Ic{m)?m.l.-Kw&9Āוߎd rWPBX٪Δrwq57՜lJv䤹 sM5) 2!UdYSF[nwf~y~zo_omlO'Zf[J&{j'kz ګ{;* 2'끿Go돗/͗퉎=xI֐2]쥡¹:+qإVH!RFyl5k(6uLnU^[-, m(i%XHhh鶝ٮs] ÍEi)vZ S$1_,:I$Meᒢ@yi0 'h\arlq:dR1]FE"@@Pt`ppo~enk&@2QG0+@d<7B@n>g]\xxM—ZEvEJዬ7gݾ_)g zj{yutvyyxww7x~vXU]g 0WЅ@+P!\_^Ԁ|i Mʀt)W` *bٱb$VȋBٯ,/E42r8mb^_8Ò b"eBDSbD CZU 9*.eK2ibTjPR<2U^,%B}ĂýpX%eCExeZ(5J1 GcaQc|(؞IAoڅ"A0eH,/I`#"OXlA~o2Yjb^Ddn41(G$| TWAkv=j:"ydu<3o Y֢LZ곩mm$(+ 呅(G bV h1B >g܂|a˖EKQw>Cgx[Mz\rf%Oshۮڽ;J 1 ^b!o ܝjPx. 7\kl~"S5(Rk|Sfh ۙ,Ɨ]'ۓ%mɊʃUt%#Sdβ呭/y[vok.o~)i"mqmcvyujrf<oW*R *Dm\]m5=.ժY2Wodl  ` T\jQSi%B b|zHpmԴ̰kJ5])I4ݪ&Ĩ ql+&h+r&C![/$akUG*J(V%u6wVfuVf8 ':Jf{*G[ :+^W't>ܚT7?id||W#eXthbPWn 'Ȝ!{e u][qa ӻ;+S3í59%3=U`ĭŃme }ś+ӯ;&@՟~x`psy7d`׆-ᱮPyF#>(+>$۱h,ʨ]͙I+)Mi.wsthg``oey`b&3#4KMTQBFƄI| pRE҂LwvVS-- &"1M,ab@ޠtJ4WT.'ǗR'74Ὸxx-yq/оk. #;|#+Ug j6}ooCW/OOoϮooO߿miYD&Q\j$9—#1-(6OlQXa[8I3"V4q/xp(!@X-\&QQ.K, &<, -EQlI Ed` )XV mJ _:^s+ЈY<~<YOPDb/B ^!8]l yxGDV dJёRdG*ˢư=XiBj,yfHy(˗ <M,, HMԧh_k5l )SXX.PK%`ŽXUtlR۠f\Cl .ULpЪ؍B Z NmjN;>ߡFdB'V&Tt1cz ;^껝,;Lk6h@tRp>o_NI^T.fN<:Uoʸ+*3ywkZHV P˨1hs3:}$Zm2~Si߫uyKW`oݻu>0bB ;POgc,MO!AS5QԒ(kBbiA-&, L. t_]}M@s 9yg] fs73[ov.mn/|76[kJiZ'U L.k:jKg4JRLShP\D,#dL6ێ&FuR5>JL CID/X5AF͢I,KG&QbIt*#K,k!GǠ2R߮X:>؅4fȑ`/I Tg'Tf+3`o;6[&;K!^1*[vhn+LW_I:)ɠq_3itaEYge6{?6t7rǷ?Ti ׭: KhrQZ^40yv{md)/^7`{wpy'_U#|qFwQHQ&Bo}||m8> >G'ܟ_z{|sz{uutyqI(cpF걠x z,; )lBR8 $ KFTk0`JIa2ʉAXpD)l}%Le)PhErEr G<_Ƿ\xJ!!A|Qj,̢Js 4Mhe\VrXr.7'!3R@_U0*>((ET羄>-1ASw+TQ^KLKv݀Y4+-䓌ttdlt.GP|Ǐx˗K;k ë3x<ѶKC+#=5}MyppgH7?}<7?}>[x0O0U{YmOY}3_ci;\*Wx/5Q^)  !&uw'd4Y>0)Rȑ(k.nH< FjtV;ޅyqG&|AxH\#D 6 % 1FD9? _ /0߄+dvl wv yΐIe:QQ5 ͡Q4qqXFPbZ/ NƘxxea|YP b?B5aL<8@΁P#%$]pD^ KL65ˠڬ!֛:hFMFVթ&=2trVK[\LXpwfLb3_ 2 a+搥lIV1cX8?~7Yy= Ll0FO9 Ǜ2~ `Ծ1*hon;'|JugHnI0oOcBj:,`_ZK?-kexz`=Wh-0ʆ#2w S/~N:D_8_+ +t -+πd˅,LLqjjbzzn.,L} >"_b>/)wvwdh27V]^[hqz\/)׋U*/5x8F @^U&0i2=^+Y1O`Uה]pJ% ;3Iagb at8ʼnbE"([&5Agkhe(FʗЁKD/1J `䧻d9~uY&m5,Xmn.q,O%֕c\&RH7oI ZzÈZf'BCs%zSy2/LhO`g(^h)6klm}~nqi\ 1W;S5߻1۽w_cp2938V֡6%;76inhux}w9OMɰW*Z}6af>/IV'yZJ*ҨuYbu`XPxHKAGePKhDκ`uY_V_QJ :1,D35eYeIiGhIOs&%;5Q!TZ "`̚P|_RY336w{xvpt~j5Q #7.K \ k| d (?x|2)(Zջs݇7g{~4+jYAQ7cB/Gd<&h1U%_̕C   HxE0d(`"`@%WRl\%8.7fZ(Tr)BP>O#%Q pbl)ˉ}XۂA e*/ D\@;Jе#3/ lp5 pg1@=N2Et(b*SΠKuFKU@?!x2oU ‘t<(K}ň:GBZ$(=M"Ax,Bcr-zrMFbS3"*5GCF 4hQ^3C>Sav8' znd EQ.I*  BЁWt/vԛ{ޛ9L@Ǔ*Jq1N;̥\bvu>jp4Xkmоh 4]r*,h( /W_qаS۬soj- 6 |b%W{קǻ'&Fggxbzftnzo R^Ͷo;wkct_oz| 4?U x\۝㓝啙ᑞƦ֚2oN([<1ͣVM ak011 btb\+Ԙd jL *ٍB7&MyEQcSMRrɬe8?-)dM]a"ŐITKPǦrVm/1NˆEy_4 %l͂ײHEuliZy]_=ܨkq7Vݤ'QI[(C%pF`VooNoJML ɮxr{ӿNj{[c|XGTwBdgHK`spgUzKy dOXlB;wzxcEf_sZgГ< kmsyd?me2gs>{mJMDzh.qYЛ]HZ){[4֘XnX9Yx؟=^X,Lj.kȜ|]2ܚ\*' jR ٮn;MYH2LrbVU~z %+×xDN/ߔ2eDF1a_Mc> ͇7w#ÿ痏gۏWp|j/x!p ™ch@t9:nﯮNŀ_?_ܝ\ޟ޾{ͻã7v~p MT:9 $d.xR` @UƥGRuPQX "vg!(!jI4 T4T xL) )a92>/K!`KD|EBvGKc%Qxm&F"JsTJIyQ D#6Aj*13G!{ x T,.%sT=Ơ1r/ģƉyj"&mIl_"ہ[xŢЅX=e诈UaOh|5$j,rQ s萛u\u9-ހZD"5iPoDWi^JY~zZb ?+~b$^c(ĠI"Ra5Xed02tb1GiIQV:Ji*U#!L |ޒ_ک ޯu_Vy4T̷N;}+w*[ ]X-5nV+%ƅBF 'T~,[:$*0MZv%I:oKڑ"mGk|h_- \=/S)n!0>y9;??5Yz_O_"Sk%̗M<~ݧ]7[K oVvv76ǧ_f8&NbrtD) RzL(fCsWB @bq,~_H9_Pf vb) xexU%ߢԴp bvFbkcEQ^jj7tzXB1^|)tV4P]6 ϳQ+ҫEFAyoMEĜ02|DSQ0Jv'6,WMu68òb+w{PU$KMtow4g'[m:ۤh,ok(q[Dl*)#$nO_)m.q LYd?ٜ9X{9ߵپŁ#mecm%S]p 'G:JjskCr?|px}ZWԒI$M<յY23T0ޗ9W21H)2yL,"ڮfΒ,[MJ==MI63˃u+CS[[c#M,G_}H[~kY<<]R_nL64V'g:*9 WJ!R,6D}EqɀdO^N(-6$KYP_^%JޢMLjh×@.R97[x<s@Xp/p ,k͂D?1&x# /룃7bWw zo9<:8ȄROP+$%( : fUBY%I,Rf%UV1w `Dr}DIy8# x_412 *[OB.)B#94!%ŗ Lb_!(9Q%Œ!"1lJBS),35cKȇN KfKyd>L9 0J {"[_٥@^1_=I Bt U/;iyE9YYᄀiWÿF+iqX-FYԈ^̲JVrSxNGeby2Y>7Mֳ_=Y25kFHacp: Qj,3d uCIv7m  x νkºVn٪GKJ; //Y:SdA~[|)3tH3\깾x0wrn|bv f{gGDM_2̏?^/8|#}`|ʃo|g}B-1ߧj܋#%>B [VY/U -./K%+UyqS14&Aa1YUVV:fn1 z5p(v|^gfFJNvzA~vVfjLI y2SaˮzlUtx|/J"3^ƱT:8LCc҉R$e\ Č%i%T$Y|VV$ϴoޛnko˫sMтʼn2my415tUm^eRHA`g\tOGCUpHpabg?twimnpegu{vquLol_x{)Lw`P\l_``D\bǫtǟo6f3zBnG{ˡ?0ؑ6[P1[0֛ӚmNAz@&j* LIו} 5{ u`"_E,TcO 9i캊ֺ*ʘ~-Pr^RؑJMl:XIxQ >c `eeK;owϮO/Ov#C'`}|0B ;Qxs|z}kPT>~Y|uYLzdggpnxqu5 7gggWg7G'Wn^^|_ߋ#L!F1H.)E*pZRȕȮ9'pY`AY# 4(<ηDL'R* UXdV@4_Ygs$L:Fgx]PZ /&%]o38xx4@Y ?+KL4`zZ`77'ڥ%%pMNfJ~VJnf8+-(TQ7Hyc/^QHD%a,rc,*˦Gqi/EЖg; Eӥù5ٶ$Umuj wj0XeU$RSl/wy"__h,}A*L7vf7'ۚx/Zthcd?>ݯݜlCl.̏uL 67V.}!WJ@hT_! rNF{&EJ yoNC>EWsDhXwh/i7uuluzY.=([N\f.ʹʂ%朰({3_We 5D2T-o:Z1ږ[WR(Hh/ϴvL Uw E wjaJXv5ff'$x4:Z-J0_\"C &edW5V-/llln>|1|}d/ӻ=3ڏ>}Çwphxq|V.2|A?~y<8|pǏp/@`ϋgz  ǵgwGWGWgov7Ov৮|~ b*XbZc 7SB")S% D, =Dz)G)K pH+j$Ġ+ _N> ҉:)N&S x26%^""6<>t/#A*/jp`+4 ̅BPe8)e*Y$#o1 :/Ј@EAѠD)(>w#d1+Vȏ V8( 0ʊQ /j%NQ_ X>+Ӂkj_09b(3`GV!h*PnI=mZ_di|>"=ߠcG3I:K4Hvj]Eon}n6@w![Qj,uɕLv6(trurBzqٙp“_Tⵍ`o@K,iQqb&?8IGNgD/`m5[d-2Mj+K4Dw,8k d,5ʃTyІxYCP^j2T<(8qyugebfgzvn ό<@0D*W.MB,,/lZ_"Va=}'>+kK+sSӣ} 55)pJ"0ˤd0J"bkU ˇ_jD"KĨF-Z Nq|Au*+JJ |SC_h'9iE٩@0|2-FDJ#s(,+*)B e ETecvfQ/XpK٪ %~ \-j0 |8<)`rqsot?|S,,@__??<?|kExQG~)t t w7' 8??|r\v黻=|pq|G߳ngAV `7`r "[ | p!AE#(^!d|`(Q2O2P] ˓H ?~d{82Ȫ1r>G!Q b&3*^˞\:@|D#`Kb< $z@Q]B@_889 A8>kfO#I'q|6S*s((^l,ǒsX&e1V"yF",~[pdH7^ GW&_/<6K&+MČ(bIXCpAƏA8a̧x  آ|Eb3`VŅsVbRP YJ1K+iFOKUgqINKO6JBKI%v5&d|#zYdLzveΙ$e3Z-2mjkElFs"E9.RVUG^uLNeGRx"~w1kzj ۛRu*_;]`](͗YŃJ_H3QC=DQ_20]ȷ,]i{</̷Zs!`b3h/A_߯~Ybs>LX/>;ťյՕ׵ I )I2@I0'bΈb"T"9*B6Жƌ8*@āѤX*N)y`P4 24_ۖPYS^czJgs8jDfE|Q/$6'ӥ*%@,fySH$ě h{@ۉ7Λ޲TPF`{D_J{N(KYNz %|\@M &K' zsF'3IOqxw fe|cnhsiu3V8R0ܔ7V4[4X8P;Wj=ӱw>xvwNnL v7*@rlf]nF`{cun~8:Ж1ݗ;ѓ0132՟80^8ؑU8ܙ;]2]`@,H-mE ܍Pe,ՖW3mUVXkpsfc Ւjv5Tt4dwnk/!ՔV]2I,d"_rZ^"l5+: $!Q^eTvu}=ħ>⻀?}W<1ç뻇ӏ?|8Ѐ@4 O?=|Y???|Xr OGxOW'wGǷo>yo?^||9!u5H."HchzAdբz)(Kx̮|.{ .`Dj91ৈY|6V˓ʕg Cz @[_/ tRc2\x>&fCχrP+3lF$DZ5|FT\ /n I7 Wx 4gv3^]4USz] "%(nhg˂iim);dpO.V -8jKy7LPx:]^l[-2VuNv;);l@H%=LνUc ytzjcL+$|%Xx+?N%EU+ҰD5ΏM+kwW'ggf@cWcݕY| 8& * FLwnejq__bo"|~@`u߽ | [._ Wf$6ˬ3kjRmR)rz( a-\p^ ֛2'}IYyEy 5eoH{Vwd%˲-ɖmYmPU]] y3}9ƥqfmyfTvtܷNJ/WSi2ro5} 퉨Mf>?OQlz0b G"3|v lg%&PD".b0g? ^NSKեZ_91 bT|p2 >]< 7*9OcdptD`3ᥑݹas}qӣ퉱ht>?"0r7l(֚hXԠm>U6]:Y2޸887'(p]QGoO5mN6zK"*)ch1Tmm0VK&NxR}H?/ v[@JI )Ц25RoxR6q"M, c<_otz {鵛'餑7>dj. B H}t[wn={b;Pse?Wo]?L+ݼq ] ]nzea(ѱRPoB|ѵ_$s䙼s{r= 99T,;G}˿03Syr. YJg LlF6iOpYX.Q&8." &3 I6f?#^RkhKL9*,~ _d7L?K>G/<91ߋd\. yщQ]!\0U0 rF'ABVslE1/di /+q\g(\Vlx*F9O@Ihb I,Rr*dħXѯ1qԶ ]:쀅 vJ|zn?Jw K9`˯f^I.ՊGaιѠ1mfT1-{-% I`-݋V:/i9*P!HR\@07jERp$유RERxR. IѺD/_( yÛbZ`4_ ѕWwVv7ww9@(/omnl >8=0vWXKL- ̓rPΕk*H\\J@L).JJYZQ`|kZ@[lw-d~fcQnԖŔ'bHYf9sO?&g2c2`枣stV,HeJUgs]tÙѶ([ɭm Zv tnqj7 iPUBE7i$eVp Lec—2ZFA1#u #=O^Wzxpsq;j 4 ]Bhotuhyٚ_,^J]9?wWGzɖZ]Y' <ät%mB^] Պ;ah3E%- ʘW"q =X; ~oKmQe 9 U+ykeo.ߛi1tݡp]a}i jiaj8)kBu ThJF i9糲ϱyTZ+XFѥZ@_*;z`t޷ݻyOn~˯_g> 7_WCՋ^xw޾yW/^z ޿7/?z(_ނoW?7߾~/}|(Ao~/Aǯ?|~GO^=//?7xkr_2XBX%Y| J$2H!}_0?i~o=Nš*|*l9/2X8 I2x |O"b:3EAt'lf /b38y;Ġy 4N6{B<!N7Jc<O Eb_# gpXbÁ,: آh%h9*L<á dE:9Aɦ3 2tr&0s\VX^l(/5JbCEfӋ, H.eRDI+Hr%U(bjQ{t%RqXح#a+k|9\x/`ZpJKX);ېJ\f`9rD`]zumFR5^n+ݼq'o^XxݧESp{J#Ղ̈́ ]UF\bƵVbWj)$_ѯr\`|))t쮏/- MN-.O#ӎ&禇gF槇禆VǗS#Cs3 sK +Kch2[kk+3;KS;3@4+͵1;SvApxtet|xygp{pw`gaog=dSLvN'R6_sSS[\Rj0[r%G 4:#2X<|3"q< te (t.Ʀ\>OErR*l>OcUt2䩫6ѦPu"!o,o6Cq(KK ](߬5[6OiAeQ,~sɧMK&gd~ KJx8=3_˪)ڂe TWi_I%NFl hp<lWdq$)mE NZ^W)J 9gtsCfC:~z}xu 7Ӿ[o g:z#S+ɽ|kqw"ruյ᫛wf?rԿ;1PgU5g2KRȨ+YRiז|=X׺9|*cU,9+,-d*TAc״~g@YSz˂nkA}Ud=TjzO*2=KÉx?֘JxAp}!We1oi$rI3E%c98yC@YJ4$*RZY=ypp_o^/?{޽/>W7W_=]{坜l^>X9_>9ZqmhV{g3)MN8Y,frHS6I,pxdIN"1 SsȄYj.nۋUS`J@&qXx!ɣe,$f )Y\Zy gp4y1DʢP@T`dX I0hX&2f"C!=>口PV(G;J*E1Hɦ`]*:>l,6`!_30t6%Srp %|F69gQr.7 L?OBP22@bԜ,"sahf/0LXlRy2h-S  CcL9G8C#_dѳݪ sPR* &Hdl8\@Ll0,mvˏj&7xz|Ǘ?^̟jBjh;`!,D5: NSAVWQ|rïPmz%`dP (&6#S33s#Ӄ̣ѥT?`h  A(Q" Rom,om-O|\[ZB|< :ZY>ܘX+`wpi{cbp=ܜ]ZMmOoN^9Z?_no@yttrrvtpovofks|jk? ܱ哀ܹO"HB7(T@Ne p,'qt& %=mK28lTRTls*jgiM#ݝp& tt=^oP*U"NgTJ||)𜳗r! /Q$rDL d`sQHlL@(*l&U.3Kr37dG@Twqinpo}5Zg s$3N?V# ֐5,*fY5U\#M h.yK>DtEN<Z~|mpPx6NW3܃ho?ؙJv/ܝp{gbiW0$j>Y$ UB4 ~,69,Zw"2 $85'3_A)Vj |UqysiW92]W_.γEvxFCt6_qG@`Xryuy30Gmd2\W䫶8 zTHIl6O+l1M/WČl%W`7G"K{Ov쁅{p[]?:Z~}˧wo^?ݾyuWvn]ۻsH.|xc(߼'ݿ}՝;7o_߻um M?>Xݽy-XhF^ݹyƍ}ӭŵq67g@3,_n_9ژ7:0p7(ڀV3AȌx' HhFg g!@@I8,MEĥqB.VpX63$+_(C#X4 K'rN6"XŧoaQmt4 FGsBC'bҙ31l ڽ 3wY Ņ@ 1ɲE@BcIѰYlLz7R}8%2q  ^C716B\)KUv@+6)zF)* C)+$ hdOJ$y/!#34JVeY~c]yk2HJ2-.1R6O (|I(! H#WV)^5qv8p*"{MQ{T^-5rX1(<|(2 (  ~J1٤h"=H*66f7Pxn40[O,$I̮#'{@aWKqkEԗ twDC]ƮD^j.o?a7JdnK[5íO7;]ۛٚh[n^iN&wǣ|wnktdV*^ n%OGoOٙ^kyE2$gd\NR^-6) r^0+j>=>#_:˗` d D|/Dp=2Tm,˗u]ͮ.dRHG= 8/nPܦptae'8޸2jBqu^mΈ[m+2)$"_>da]Ge!k|R.+A4tt &FGz29150;;:4tn4(wW'!^[{Zp3N@Jᖄrb6&zR#c]ӓPb(ffVRcP386>ߟ鉎vvwP90 d5<>^v '@=]hcMuQrW٪J`%:K8FNil*AFL!#yt@!&@IbӃдTE/Eg'A@ C'C18{QOR29 6%Y|l/)dEDLP_>KHdBYo"= l.H, #!\*G 28 E#$, k,[¢ فlLDqg96#[F^'H\6^"a| U XB <1^(d84(ʲr.M̍@a^W߲54H}&ʲ[R.G^^(eRxж_}.jt%g'=Ml7i6ک*G9R[T٭y2@{bL99.zHҨ͹%^5w#CO.76ڠS4P)@^{*1 7R@o0-&= W 5wƖ'&{R )t<3_ zbpz2hvrPFJph4|XmNmoln-,άϥc@ /}ho3{?Z`A16<2 =]:=X2>15ՉQC:w}ulc>/1,VEM(:SYXlV\ɾ蓛;//t&<-}T{P|}y6qgh:1ظ9/ Z;FVj?\:^Hu%:IL)9 v̦Ԕֆr˪, ENBj(Zٕyx`[$bƪo%Xcki(PhGHw=TXjK*@XjOSm -8Ltg`#PuG]X"஫-|Dȕlhѹx&LbaAk* 7k+C@{WN"M w OM NNz.h+KKhxzox Hܛc p{WGdWǠ.-'n4wd *a~h( <קƺTk,=cq{{skkxg[=J,drPIJMV[EBL( ⠹) ޢhnKRhv@3zDtp2 wXl='Z6cp+d.L,Q @F2A29T<]Alʯ;Q ǡW׆>Fse }TB`Y^0z/8Dd EE#E6l)IRM@#,KCbqTl.c$. W/㨅tQ+̓X`BOj)6"dc9,fa\ A]æG3(LNP+fkYڊ$ͥ_ h5fх|Vc\x!(>)g#.*;P^XW\[eߛ6uHޕV+5jF4YI! Uy#yunwh-5;>ُE@O tSpM  pxogdT?3=΍dDHě˩ե>8ߕap ȅN@B7{W7sٱnDto9jઠ=LJ%[&g0,7B!LJϽyL67>2XHdL#\9rD*Ш%XlibFgK! 5նx ueծ"GX_R/r&_LAt!Y/,h`~X@שTSr%$g]D3Xf^"@,|61,AՊPBlT5GV5jVTsYbѧMD]%*S j s[8/_oL B -Qb~]iwtzz=}޶DW{5v%B_hiC{/ihTFP%.r?1lK %tL ZZzZ#=d-47 vFZ#ޮPh%uΤJ{:HM2mOB9G}}pk|o4RJMmPp>w,!])M2s`5'1*<֐Rmt ֮8:Qwk} nu \eexgam* ZjtUS̭0+-l8P, bA̒HRsu̪WՍ ;S+s$c,v:c*V] EUsuΡhxGx땵ѕH.Tmk8 vepmQGSUkCip4^jNlFg:Hk*\nvjYV(Z[4hN4+i:ښ*ݩΦֱ.WyzŞ82*QjLwyU 2TNjc>{}"S, EP,JCRbSLI94&A({+'WoEN޺}œ{xѣo?zt??|ӗ}׏?~o޼z^x5Po|?~?}? A/?~77?N O?_P~sǟ?W}ϟ? dtnLmOͧJly&L.Onh.ó$>P"MbYdKQ$,qj0Tr.Ж"|`+ʯX^_I$ Tb.5QlE&)Iaش :JP s Sh|]1`'qUP'kFљ\t _$MBg" fѾ_KƜ#d'\js?f!\c{ i3b߄:_d tJYhr /6Y](EVF&c7 !1s RU#0Xzˤ1*.@V#c$4.|E/ lUBPȘp_T!as 2jعlNg^Ϩ g|:Ɣpf Xp5QtŲV(Vʹ`{v;"/(ԡRð d8[.Gu EZ*6*kfBG>U0m̞DpA6 @ bt o=ZW (;K& d)3A -`Td$^(H:HK]$D#_0X:*@}5@9Tq΢rA;#aOKs]UW[ZYa)-68u[T7@@lKkۚ==~P2kUA_u4l w@ٞ:Z=$uŚ ' qk1z!P .W AwC]Y^YiZ5 Q&s9"9A;-O+%Səkaq PujIf6=TMfUEV__ APT']p2D),wK+  ~{KHP9 YpyjQQUYqy<^T&5#Pgʼ.\]lXS;Uj-U+ ppCTj,%8 S)匑ǻX$)fIVi.70x332ZtzUWZJ&m([77XZS4HBEmNE+o V`[#VwqRoBWp n4L2-֪ WYT»#(dRmkwKT+ >)r\I73:P`ս<Ҽ4r%ղL;=]qw,B4<*Zޢ IgEb6# g&\?G'ok|=}|ӻϞٷ߾^|_ow?[)x7/7oA sxޫW@|laog/>yv|Op@a={KfrYT`7ELiX΢4<pQ}p!f19ȚPHNl4@l2H& .|&t|QخMrv J%G`+T3A|-W`8 Q+2˫*Lev=xd ˠeө|.Q° `f7hUiwC݀(j^pVjdWs| djBM*cFv嫉«mi(f\o͸M1U) Fb7UnMYp^#/ztl^5VQ9V@@fQz.(f5[h(:5X -z~G. 69kk*^n:Íx>kQ}@4nPB ( 8pzPow#,x[p]6hot3<NB91lphd C >O{vg~oqb`ezxuntevdizhar`~zpa!a蔨١޵k+㿼퍵656OS@L@JQ.eX<14H0!*p\paXtV+&7ߢ.*6U&T^^ -Z[(\_[ 5y՗D=5EjgP6K4.Y<,%jF/Fݦs: C~gmUAY =x* L.Q49mZVYTY +ao*XTkt+NX^2rFIDE=eŹ^NXJ{vΝ˗׎7 @m p7`s<pͿp x*5W,M*OflOiS:Gfqdڀo,:4J \X,2bƒD/+gI ^l 4:J V <YUeыLzRF00tr&e@IKp Z&rΖrr᱓;\t9È{]r `~>@wB0i Wxk^QJxADD%jlLs+ʽ e%\kP E|AРnp%bo ŭbz{ 4Z|Ԡ&8o_$!0%c}n`ocj?HCSSc} CS#S_BBYS t/CIEb 8;'q؍Efe^ TUg3Cޒơ,VU*"o!-ݢr PPe/G<HxxmG]QT[g%XM- ŁLwKSQ'-1BFDپpl7T(FJoLz/`kTF+U}>K*\<+撙6t;lۛƖKR)V(|9NH jVV2v'{#-9]2J]_{3#-5a`.8h]Gc`6VS#`eo'e`{}UR7פ][˃R.oO 햮PE4^W8Fu{.o(Pg+ZUBUc(&L(L>'d_D`2s1Y\ZYUIWor/ݿw:˯_OӨE_>1Լzz-}7o`矿?%??8& 'FzuPB=F Jhܻw,~s</~ӗw=8ySpʷo_qcognOo?wύ^+T(fFP1 K`d":YICAVQWD!셳 hI1Z(5`/yYj1lgir>#Q 1[%&q8xtg #e] ;P|v\\ ,X0/Ybp Kl<@'~`!@LmNFF[uE26l09|de0>NxIgr O!9_@0E&'™2,§K@ag> s!~A9_/|&1 chK K !-nVu2RH#lRRJkdT`K &)Xc!x,]>bwFʀfƃe!5p*5uLy9Vqb+V-z]rKU;<1V̜-$AQ yM._E}5;#2Sjz@ cfj=O,z^ wK9%dj%AM߀j(U뢎~IыI: pq~J[0oˈ֦v6f@Yܭi/\ǰ ٻ$_?X<\Enn-nρ 8]9:.w`yog.{d(5\v^&q)R@XHq _`(%5EּjM,KlEfap(l#MNZGI$ o٬B͢U9,&_U[QUmY $bqpXY #[$*?^r07T:Mi%Tۮ鎸gʶn_D/ SRpa"Y  S!x}`g ZJGZ#JZjJ"}#Uq1 vNYyl˔Vn%o,v^_{4ym}ݻ\ Zz߾UZW0;h-2JXirڔF9U/%WʣMm{;+CXP{C_=Zsꋼ&7R-He{;yn@ܔl54F$5j<'+fH̖ĵ^w`µGC|W=H pLHM'(wk)p֒h66+[b|ލ 0/_/CN|d FUj#UpP=j46Xmvi\at;(,^T"[)Q\6;]nحFsӅqD <$9L6 =&oT[VfQXxnQ]feY$s #ߕ9"$lH/K0"7`UdQkL'6W`liRk3/`.0L 8&E}_ݕýU"ĸ^Fb~v0z3lzB$*bV.N +Xb OM奘RU sr\^lJ$ @KMI $t'R)>A_Q3<؀T^]ZYRkr,HljtYjCY%++uevU Ԫ YgJs %lcO]k(˨)u@kpt_- 8V6^>Z ۚ|vO?y'6zk Ulj+2) vAf@p.1Tx=M+}Cէ ;M#[McSC }a""tUg%]IlԛK3J\h}b'GЃIhn1*]ېɪwxK':kr:#=pOʶI}2*D-JUX^V+5Yuuɡݓݻ'{p8wj? F)Qw:\3<|tϞ߿{K=}~Y<"?:# ,|AnT{>f޽wã{W=:g+@0 /_o[L2js^Cl ^Ȑ0 W *!Gƅx*]&L VC$d$°d )rʕCdX'XyPSi* Wd(l5<27EH_VQY xt#G4\GML8 W%F_X0_udH Rd4K8tRh"r3Đ#!D;|,IJ(1)q/%F)a$R~,vvC k5b"Rm\PMY)tFƧɶ2- أt_I[($d Enu/,LLI b' bH7Lw88)3(HU"~K8F|.]qe\W`xjۄ۪׸.=;A a;gzQuXYiXw*W\je{%_QŁxbnٳZϗh7pCbh@1'Z|&ũsp-n6Kh\wPo,,)D쎍YrPMB/Ɵ_?{[`._Tvww|87paFsǐa%e% U~ӆ3 ~ܦWfTj~U[d.YsE-2Ve4agMwxjbspޜz>z~>y{ {sMY+/`F)5VURO{c2:Pk ښsMٚv;v5J_q{+=UHFmZi. 9e@0ؔ ȧ5Wg(4xEَr t[|oHpcRx[`Cdg9Wb傿Y|"T Y˃WΎl-.t uWV{v* {YH"n,ʨ+hjkʊs̑̂B_ b)Vթ2J539|åZfnJ$J\X?8 r~uxp >`Dv݋C~ruEOAyv|s~q-jr|t :9ۆpq*(R&Iғd`.H K ޢt}`isw~{qxd xckWXB}mjkk Á`7ζD -6l*ÒҹJ. r\9ʧt5RJԒQi2N:J9r$ ̊I:ߠpJ!9 Ln%V>DI"Q` &r=90D( "@%HT<3zx8:Г cd+x4;r ;_&LY&x$H&[ļ6?K\-Ỉ% a<ǦRļd跨)"E.H% M-"z+\S]8 ˱8i\#aRir8@(EpmZ(jzêY,k$C|h8=*ZJWr UMcсR hj K.fYsmƀq5S`ݩ6aZOLk"jt:^ jL5QZv'6m|Δ_xX@#Qw ݫԛWJ_JMfJ1ٰ`H~!IGEj%JQ{T;,6j3Zr TmϠz@0a~}Fnts*3(1r2inaUT2Owק׶7&&''צGƗ0Y! $CMj}evku~{maseY6Vxs;[*8x vqv}@gBpohsce݃Ɂѡ@r[}~fPRULbRr()Xl>L[c,MU "d8I V*=6r14F"S<~զYn4a*=ƜLga_2vڨ 2+0r\ɓ)*F;dryV"@cQOkP&1Ϊs[a36qIR^̷V p _k*mW 4Mmw-\mL=_|;_Ӎ͙ª|oM//CW0}@X]27晆]!=ŖXMtSmE뜨=Uo3 **xGIuئJYwЗٙ6YI2(E9Va[ ATGD[hKPlO|_pKhkTo Un.' lѨL]S 35+ׇg3.6wKLoWfkކBKifsIg(XGk: +j5ULA7KV,5@fS.JǪ9֎ƍ݃/OB`Z#XG߻wON/N^r1?.<Zl/h`% nˠ3^ P.{ Ȓ8 o)G{g{wwQCW;3&cМZhQ+^թvr(r aLD4IQYBH#NQA^x^QN$yq4rhHoL- yz9yQׂ%! ܴ8Vr,3 @z4)Eey41ύc %cKqќD 6=-(Lɘtt*슜.9utvn14J&S*!^&`!;i&,Hy/M.U6,0p*ၿwTRq";5HHe0DtF"-UvWF5XpV ۪etlB临F@ %% 8RIaԊfyRiw2M=Yr~o06d2;݈͇rXZ }RHFYlh d٩z\nI0 qm@ V(+[\݉- wX3_͕/a"r nꜴ *SKt"=+Ce6 ӎّw}ifsarFx|_" NR.b2 / 2? MϬ-N%8\&xyVWV@appgmL[Beo{.waߖb8Pf^~6(,-2T0],gT!zã9`1p4+b9O _T(a\,Q1^ @aC:`4].ݩSb)K Ajj˲QՔe6ׄQ.s5GZ#UuHJBRws*UjɆE9ZUlacoukgxa|m|u[w߼r)w2XV bOcQn5t8Z/;@^vk7F+#:TCXoXWk+ust-rӉБm]jpR_]23;ʽ3=eGkCpU;Y1U9ZQ [m^e]2sb{ʽí'+{s3cm UQ̰ʲ*AF*h+J-mޖʜHn0˦3Ic?#3u$s{MNAh"A nFS]]\\AIFGa~1{p(z.`z g LbXI]rP)^r&" Kza85x̓ xa_4oAd:x 5?>QZܔ̐KV/r6]L'F'Ly: _/pQ'3 "ug"F4މL^r(hDҢCд4٩dtMLi|'N.HyD "MSpR8NR<7dKl*%c;ȞIp͗ -d%qd8t9C)6y ".,mc)% lZHO*TBǃ_/Ħ٧ DBdVR +ʧ0TLRA <[+ ,A¨@0~(qvgjU f7 D\!;^KʙV8á-nnrNE3{zݭu{+q]Γ{ZY~G9Ⴟa5Z.[YqZ[گyU:XtHH봥8ӡvsTw.Wphw#NnLYa~r3xXay\A&66{o$}x3L=*QM'{ A vbbw{ipm|o}fx%l $ FEꛚA NMOA <ŭݍս5;+,0 Y,*H$ x 󻿱2n5 6?~J \o/3PWss5F1զ3ZFEde4g\Rqze ;)HB%qK,ߤKb M$Je |n ,ӌzϭgrᬌ,c7ZMj5NY ?|>V'#Vh*g, "Y`WV_4dUƢBTet9AMsu16`+\8>W;U=5ش4ٵ8t6u5s6=յ9޹=ٽ?;`݇g<ս_=<}ӳGkw7fzF:*z[#~" Fm .dʼ!ck6Sј/u"К=ߒE&H Cd3f'. O P}%~.vNjã@>:vIԒ,4a{9b`?8? /9shCdTQ06vwwqoow7ߣ-$*@k$y<028Gn,i5-e1 #P\JFzh>A>hdAFnF Ag(X@0B h2  t)#M;,!tP%Ĩ~,f`$Ղ4;QHHH08F`&ғ%TJ&CJ[od.d+aYH RDpX7zL #ƋXIR.MVzBt2ȡSة/ZqiNr, %:!`A\ ߦ߮ Ii&%0jAA)9 =ges_3 K˽v,5z%۪Qj,+(%;+!QV.;IyfQ\ia! z SLP8#v,NݩTʏ굀vbFG:r͓Ld Z߉,TsXk^-W{冝rnqҲTKlQ;S vg[=jū41 #'[E h:^ & LJA>˪t¡&%wɝG@x7hgiʃ'k~rٛ~?}~w~˝GK[s}c]U0#UUyܚ<{G]薖!P.p{̣UŶ:LSZwrG6xL5 rt: ,E.a]SEM-UnrK'~xE҃\0NKC.`Hy\-qT"* Mr.-nb6CKLK VI/W#"˴rteV XM1%ѐ#B:&MLᤐF|̯^D#6-X.8VTUk U#XV+Z5jXm2+Rx6/Ό(tJD'Jeߔ0o[ʼnevpvvTg5][Mgj-i>$*Uj+[Րx@>qSzQŽ_m81nWV%G& Z* |XIߠV45 FZ0U֫sŚtTXnTluѺ/k0Wu=v4 TI!URXK Yn^>m sr99,%VFt@)EJZJ'F:6W'v-"8Zf'{٩hfFgF{'gF7'` -L_~1L"s:YE_k4iw{En"wEۓ֦w2=*##u %fBAK,j)|ӭJ5O&g nr:֍bXX&rbBH&ְ ]J$ӄ)ˆOv3!|31=VmK|XެK2@mn0+-+eW:L&FYsJ#U%EPeYnu$TQ,̵JM 7+ JZ_t+}U5쁦ʉٽͩ'N^}~{Ͽꃟ~쏿o?|ŇoƣW w5 m- RslPE)ܐm:2duBSBkb{x=4ݜ5v[ u恈@[(2!/% 9E%\tw)X34ҒlcSR4>P;5ܰs;>]ٜ7ޘilNtGFƛ :6jG&WǚFK<^}Y6 _0Ҳп8T(ѓ ds 5n%,i)6 7 }Ua*"(*A+ua^1ZШ*>'NOLL Z:7w6f.ΏalNί>|xqzu|bgwkH=>8pZB'㧗`.5Ϟ=:<ܿ{}OMN{J+sxg 8N}"&~bw/wQjVP9?>\{|uq0W)2NQCgpĂ8Z\?9]AOQSD_r+ D@.7Ϥѭ:I""aPM.&Ŕ5\V6"-\bF&Sb ,i@+ ET SFDeq8."43nuC=d114*Sd,2I@bјq#VNj"d4%E)?OGz0 Βq@OZtMZBǥrٷ8$(Y!KbCbO#cw2MFN,Kh )F)ݦ`cJ}Ih6HasY|N\OyJ1h,e''CTڭĔ()5&19JqkMHKO&PhF 7ȏST;uFEPgL1:S|xX[>,m)wJ53Θ4φ Iw+\*wRP \+WO<٠nIi3'pJRz5bX)/Geq> Zm@5#fhL~g|;}<5WkUSBurHN+RxvfY~kg84A9g; YB8;ñqb zuyHMe삶KScvb^"\× Aq?/$bhz'/HL"b&1ixTT:ٮ8ThK>ѓ˻@*H |Gpg49) 㼻F\ƇG[0[Nm-+ĮH(°|uw~tmYQmV@IX<%c1lMUa$f%O-!5,sR8\AA6r@ P':Ӣ)ld6DVz2LÆjdrFe74eTirIU*U!Sl\dzq,z2CҤBP8ώܼ U&L %<0f I+ K#J"kDr"bZ>>*p$bXKqفdv*E@CDıRg'䒗6Pt!Ji?i dmzRȢJ1. |^@E'& ]0MKyD K2nQodr867LStj $i7^s`h^ugL?cCOk'5aDJX2[)ʈfUɲ[9os+%Rw6OPz~^Ú ʵKJwDTʗM(gybR4SF ۟%g |l aC.V1%:5$󃆼\[v̲egEvn&3eeZ}^ݪŅ!2.*]3S+K"`k43Dd(6;o~ɴ/$y_"Y"$yHnF&`\>܁@/. Ije 6KFLHhb9#HMJJy)嘗^ANl Kv\oV"Vv#J&r[ f)"MmioFR<ּLHiCuE}ee SP [W*,.ΎdT{+ 3* =@wCPW.@.0`-ꩇc먞kZ;ژ9ޞ<^}wzo|߿'_~_=>?{ׯ;٘-\N"*hb<)ːUʌjp TCDCpWpuGeBCWUh+1EqKV *sm̮ _s9_>:7\?=\71T8:5Rڏ >ߵ5}:w0߽_=\8Q1X-7e۫mչvb*w81|K:q,(65Ve VMw-Ϸ Utv4K%!kث 1(dMM##]uee! Z-D Պz)wB-t"@H] ^^?|pW.?nC\كW^} _{)Çg^yӧW^^}=zxOݓt޽Ӌ=\_<~|N_}GAO^1sz ݻw9*kkSo7}O/\Oe*FOaXB*erNJ*.)/G3YD@ N R@zlO$f@+bGEeNWb+j)E.t(UĉcSLR+Yj))pV,rˡN߸TR+rbt(aqxX2Nɹ [DtT J>]Ad%9Gm)>>>9RMT(ќ(i\ SL$ScD F>L bE5E-䡟@kI"LbI _]83d 'Yw'LW iF5_`$0h 8|cw~v`~z<37 /c pc?xaoI6/__p֦An󡁖ꆆڢPPsxr%G$cؽFK t:7#Hcp(cp&% ^KFri7oNX i$*oPI `vRd +RW)njoon .L? #Ee9U\w~0Qm+ KyscͳcMP@gT=Ae]Wm/l]8ؘ:Y{͇ށH/?c跟o>{ữ#y./3⠶د,3U%LCxX^5^5Z5X;S[^`. UxAeSSh[],"@txeiyqa~fk^[Zo>ܙ<\_nw'Z{Of':V*Vi~6!q+읍z7W6G&Ɨ:f&aSCͅE0e!Oc$XT\_TV^Xj B4ZBJ-# NJ%Lhv<bvf>W?C}W<|v0+L."px: ~g֓z'O.Ǐ/<8Go*у{ }7|B$ݗ_~'W_@8<~;O?7xpyo߽+0^@o|\><>lkX»x+S )T'F|EFC)$#BN\nD1 \`euT?E+Q®BĈ\ \:[#py ,f2Dw)* ϤSN8hN"L䁼0. f2CU (46; fM >H;L=|pr6ULIi"zBtr~Xz˸aPnpY21X d$$bm+ HQ")tW xdYGuևބ2&$鰽LVDgB@0ygst+BOMFLtdX#?6veɖM-x.uDxi[ŪBv~D+(V@0Klh ;j~\(.WTrtHRvP܌rad`ֲ\ڬ4,Շ͞rb~9b)TźB}~phH=/xAQC/NT4 ٙL-P}{xa)3硫_{ F/- Gp726rinhng\X\^^W7V&io_Ej_ ,GcM.P\G˰ի== p~/`QipvFg\ϓ1X4NKT #ʌ*Yi |E$ 7avcno޼nlS[ZRF#v>(m)+5E;;Z[[j꒢P_)-*ʩ)mnTW3BYe"C0"핡ں@kM,Q*2Z*G6fn֣{/H}Ww|?}ٯ|1v#]ubHfuiF~PWԖ6d,qfpõƜZ8YokՄ f&[2v`HKX[x-ֲ4X7uwcBDxhPCGe;V2^:[}=vy<{71t3vʫNfgF[;"MMZ z{[ډ[Urbv87EvQR( b1[zN'J&o}g[z_;_~OO>~Ï_O>o淟O~w}Gᅣן|W[׿ۿ?ooO??g~g}o?o?S_W_x'_~g>{tAhkn tV:) UtXZX]%ݡ$r8$9|$YdtE4MN+ȀȋMI"d1MjݠtI(vUZS')pMZ&1L2nӒ p"!|k441\*%5'I(<&ci TY`797UӁ`"b}pqK t<8/LD~Pʣш5۩T1J 3ULo0ӈMIO]<{G#-/3= CUc= DꖖҰg7٬tXZ+x4wdٛO7w^F?7;|@ ~;Ͽo>_~W[~%ɧ~73ǟ{-Q&( w|ɯyշ^{g?O?~ͧ4_~~W_|{o[oˏ^{O}|矿/|~Y4f?|룏~曏QyӧWo_=y숈Y72^os)5R!*%).Jh!\BT0Y/8 TЈ ꩄ/ ge1Sr-HN%"Z@\!+K g~S\\.QpТt7EMaÙJ>W+$L"+5, f6GdmT9Ax!0dD#mFR,+uV&q&/‹HDt*6S,eMWrzP  ͠!4^ {WH; ~wBo̸ FCa[jH$aĠFJab"mdzJtr37+z\X]5֔Vww{483='5>'3$VWZPZR4d&;cZ9?5JY\09:^㙘ojZ\H)l?>=\0);_~x3PHhs_wPx[}MfA3'\:s¨ʔ?Tdʍ'3i֖Ѷάbw|_lTîcݹ{765\97\YZ;Mn]_zP͜?_~tozx=Y'{jF{j:J2jK3J2*J2K+s22m P_nwfVTdD,FJءr0$wm{W/_ TO_/ϟ~;^}? ˧煓4{?~[|w/xbFÿG/{`>վ~ūo=g~z|ϿW_77TJՠ3%J)C prG+gkd` _#YuZUW0Bz_jLJ*AFDӊ!ԃTF!:%l^%oBKWIid0Lv W*L`!.7$HPPj~0joplFj9z4*'IM͖zLHSd8jJ EƥTv$C1_l^, $S_Px8HS|g-wp =3V d{n89ٙ`e2mNNBzz4ClLA٩N x=[Z^]X[a=t?BR)@K<@$¶oLNVU,rVjg w0o B0`P!@NJ@^!ocAB)J(TTY}t؞tkdsf`}ۧ{O֟x@3ܶwҷ6Ho@@cOsI[]a{}Q{ciGKEow}ww}]Cq~aJJjlRrͮ7[4HZ#H#Z6+jwhTVB+:8[.7g.@|>}D~7O]m]]Q8Nv;yxvdpwyvx:?:?ٿy.OxtoǷ\[<*>wkœg{-o۳>\^A$4*Eގ{3Y⿆L*"8dDBUq5rJU] XhPd.t7wE̻V(ɹ5',<}| Eh+Ц|0|Yj)S!:ؤe)%P1Hr ~EEWr0'D KAd2[N<| JIE%>2 $p; d3(y-7 ,&SlP@4ꁸM쀯Cb0|ü$ `ȨaJM-{Ȃ<_&qBH.FFAۈ=diNaNuVwV_,\aMB\ژIs #5Piy=B#0 ξ{~@?' u7ʾB0 {7p死7B7ChD:`4(3u:^#rPޠYM̴ʂɁα޶ޖܴ씲†⦺0+n,*1Z^격T4VeGחf֕d͍tܓ볝?^Oˏ?|8!l'ϟ]{g&;J cl iֆȦΒɦKIzDz6.Ud Ǫ`4&5ܜ5߰9U54.&Gk6&_|wp`qfeec=83P5;P;?T:Iǫ\._]xw룥8֫G߽͗8xwq==9\mLOvN͌U⮂mu ýc#u EͭEY9iIv):&4I1Q1&֙CZjhc* k*;Z;ڛFGf&əhtbpxo%44ڇΤ陱&Fzڇ;ѡ.v5t6u>< hJՖ*t陞_XX86TEiY^ye^UunvNL}m`Kot`Scmtld8&*r1"䀿<7۬P*VTN[NN31R_8_AFI%[/c餀5:}`jiK"'n}M5rA+ *!˟/Ee_bpáR&G'_PC\"E0Ȭ&I@dӇoSzb*fs58G)[*0D`\ 8KY"M:;"IB( јf@qq#&nB_(UvjS"Rza,xALJJQ/[ez-/,ǯӦdfPEb&yxSVmNQ$+ij*;8 뭶 /;!|J pñxBl,3*^+g_[m^-VFĬ_7WgjfUJ;sܾ^X*2.,|SՏg|DzհCYtYWmoU 3$eX4&_j8?95ٙ Ʀ$F%F$:Ӓc@Ub )w /秢F8'+:!ؐ78PN@0ouZ<{G7+0 #I+e'p VBfсlXkbo3Z[AgI(x zdzmfvv8=95PͿ_ݺ{#pa4A8pnP'@o Oo`W_{N Z&dK" ]J$,jGNfJ X&̚ƺ̔gq~P_kOk-XZSR]R]T__^k//^W{CGKukcEgkMwSKmqInri^J^zl~F\Af|R%9r\xcVzDVJDB.ڢS{+'[v'N>{7ooDϠO߽sxOxrǧ_Xhk.*ʦe2c4i`٥H2ԦcSʼnyËm+cR-g+2LYK{]hw7iZ,*X.N7/ @k-;]{pm|kַ4w5bbs9s5tdڃݙ9_?^,,oMm,{Wvg+1o;ˇ[Gۛ[˛ZʫkJ2ٴ<]+΂ #7y|ftj~b=433=6;3XlmonxַV;[^ۡNA[k}/D>;Y?zx=-/'{z}~|yyo{qqpÇ_={v-:B޽/ Hnã-d]';N|g羍aP[[s>11֐pdCcI@0M^!&=F?s:^bX֫SU ǁ wѨ02n syJu>_6Z9cITbWi__ xԺXhpY(gk Nh#ʁT`7Uґ K)|ߖX~)>WfczV9=ѩ+I?WJ 6!Obl'&GfdŧgơM+H-(JTRTgHsĎ 5OwtwTvW5u6vu4t6t7u5dhڎ*%[ !TZB{oocCCIccijKQ}9ޢ[wn|ĸe l +X̻o ~~34Lbqho%RN'V2evڴQSzRLjBTnFRfJ\i3Tv6w47T4WAM ݍUY .KNFyѻ7~䥜˻_z?ǷO>?/߿z//O}S98D-0h #-եVag"ŚEYN7˙RmaMPut*nG[c+}s Gll_XWQkN}qt~$ ~>r{pgG/yz1zپtoh{~wcb{mbwsz׷xz1733= @#}MogWTX{MCQZfj0iunrh*Qcb9y I,=(P̓(Ņe=s"'yx}zrWpmdlXw TpxB{TOg%ӝcb|{pyt(/d/Ң{DYC W8wKOsAa /PB5-_]\_{waB̻R!C 0m Qi.Q& ,pEq.TYT]R^?0QT\ZPt֖e'Wf՗pO@WO{#4XR7;14798078>AmIJ?U?1-Z~I9s1柦,F@ߍE"Q["-$۬Pn6xhS\8YoTrrA2f%תT\Y^i5Sx^>iX 2&: Qƻti֋ :!)T|u>֩&vY+Yٟ$KeZikF[m47#Vm!KXNqRDܵ"*;_'V_ ]U@bT?N0%_h6S/jcotY'4π/@ߛ*ibu$3Tp/(K,"'CCOU3SeS]̼Ԕx HIOsR@[@%Eȋ @LK[Y EةGw۳2? r=uOKi(YjIɚg8<&XIJ hDH"kv[b4`;:j'hV/ B_&;Ƹ  J"䄃!wܥuPП hJGZrIԦ65h>% 'F3Z+Ԅֺr8򶚂L`<mo[*z܎ڑξсo, N.SC힙ّa* 826/|}W޿<_=xW/Ah "DKU ޢāءdcm:\[Qi"uMAԬ.'ry??:?[9^; O-R;|[볧ʦ{*f:r:+s=}xǧ.h稼xtwz˝GϷP>=_;=o/s#s=t/<8Z]_i0+l/\0iAat@ZRY\R]7ܳ\]P֡S!ai/Mo 4?ËC;G^`ջ:ZζNP:yts=^{}z ?>ޣdK=Q5 NY__24bW m7GX j+r3s*R].uz}zuq6( 4/$hK;j&{LsS33#=c=3s}šh}q Y_ǿDxpёų XO'> ~r 緯?~I?tw83֢`d(57Aϲ)Jty1)mY4Ss8&&nH75@뮖dt{ygs_wOvo=> U1Ҕ7Q4]>ܔ^V]Ә^?[>}uuqBp*<8_?~ǻ϶_xprhx۳9w7{K#síU%U9i(3&d7BtEdd&-:5iVWVc`orjXPt4e)' QSg{(w GLZC=o;n„l(^l\6vO7.}[G.JԽ*pcxgNт 'cE20t]րlLut6'%0[.+fuVH6^;?7Pis"&S+!UdZj:f0l@- bR|UxRI(& aA\&Pg0CLNe .0"\*3(9jC.8%C!e*5, M Cp2c*dc l} Ofx K"Ш$ҫJ)KPZ cVAm! gLnH_HfA4k8&% hIv$TN7ѥwdESrggX_`;ơu#lrIp--N 9|RjX,P$G3D] B]Qi6 t{(:KB+Rz%wP.ҮYU)dtW[)-[2@b_w0MFed("-1_6hNV{.LSLjbe)$EyɥEofZ"Fa!&s1X`4gfuYa7ac>φ{ze~Besizyf3=/RyI`/YHIEԁd/@Un`Wdö)nP[QQ s9`J~u8O|* K   .7\P*d,stBƄL|6iӚt{zB$૓ e\ӬMtƖe@UٝMU];<3Cm#5 ō)15mu}[fƇƦƇƆz;f`V&|3cUdg {=pha|vvxeeh/!_3ǷO *o~~槷_wO7fG S,Z%cdM4HY\{&I ܐcoȎL4n [ΏvV-=؞O﯎y˓}cmYQ1,TtwGEFEbNyCu%IYΎꬅّN܁mo3\_^n/?>||o~z@|h}[:[<޼:__[YLoCΥթ񎲪Ԝ,NKwX'NYL5z6Ŭj,0킳G[' C_֡z7ч76vڃ|ލUɆd{wl{t hF{w /h{I emYqll}6?/OV=;ޓww51>4{熟4Ei"[A68242GJSe<2|WuR hvL|f(]đJVjP-Š@!̯jP;pd"^DbB* rrD^ ujڪKq&jר$D;㜙i%YuEMM#Uhqzf= 2[SUP\=twL//MzffFPYs<[^"=$^_Xs'wwzۗ_?B;AwO>|Ooϡ^xt~6>Pg::qKאlI4Չւ8I( ڪbߤs{K.N^==_~{ɳStWY]*:ԐW1YQW.K3,{ggKJv7zV=s-kޭ͉/b郇'O߾{O=:!y!x휝^lnh=87 9|ɱA ~jJ3cf58"̑.pFnZ\jlrV=/ERR73׶WLT^`r{Ж ?"W:п4<&ϋVۻޝ=1ʭͣ47.Ȋݍu2 &wrvyw{ mB[+d?A[;Zqo7w;Trñzܓ!wx4HnR<>RG$bxt.%RLʖ9R *"ZR2DBBLa#$$R6>,K,U Nmr|R R"׈e6:T !K'SAO1.NTiyGRCI|w /hLl KrTӥles<-Iؖ$nI&xe6[-`B(ɟtq0-OVQiNteAbAVLNjtNF,&y33c(7=˕SX\I]ziXpOn, K 4,/Pveyaue „фˋ,@-C^ڦgu=3?\Q]_fw07$y;v&$@0_wn A a `"̢8-kT\Ur A7qNM+3*&Ģ9i9ioNfRa^juE~w{;2016? .MCԶZpy^jSepOX@;;5<3941:ř LvpRdI- ~76g;NO}OA=~| ˧^] ?%^_o?/{ryv0T][%):qa*՞ReaJpx ;߽ɯ/oяϏx~paeq=X}[(X3?\{~blnn߿xG_\_]@-)Aw_~ 2{~qtu"+ Z9/6 tw47Vd'EGDG9b"8'dv]7 8 35+uxbpqmaŷ ´B00T#L)aON0BODr';8 {z~[v` h|퇏oVV֗PTW^w^݃?ox_>[:X6};^`|Jl0-c˧aBF(y JZ (O./K"e&K& eFfP;J3YzנR*\VTL `Z,J"O)@+$BF<37pp,UIe"׬08nlDz^Me/i"^0gy" H U<@\l(BWiˁlZ!F/g dp$boN˅Sh*H5fp5"(HH |n)<4LF#NA!b&5< {C)pVń_f3VʃmN /Ҫ|"|kN7ʪR=fNv4;Uhewk#N0t"E wcT |blFt͔D@^ߑF\/)``zƾRK \|:K vG3]RB9 j`b& Ҥow%ITbVG~jcYwDF9眅$r9ccsMHs0 8-g;3j/V53Qy~p-u0,CdaMk*2J*,"@puE~yy6[\ ڦťٕչ_ oum![nkqF ·Eh`.@DQL|#`1Aa` E10rnWN.*,9t|-O Uhxص:_ +P`_.eѤ0isIB*3 jT\ B"TJNT-D&;M&5WS꤂GVrlyQNET_T{Gw.wZ}g$*͹P[pZOw<6=@5?{_BP`] ݋>_iO?Oo/owÙ˓6V&j5 Ct'Pcb T)?brb7_K|9ZZ>{daAvA~VUeɩ겼촜¢,oaY~~Y^bF-jrJܙhuڃ{]a t--%$:A^bDBFr-u'˫K0<2;_G 2ԙk${tNN;/',ڜ%s; _ C8 vi\:o-Wk`/ *; {5}Ulˉ[ ۉ{)v8ixjc@dP@Rl/75P%ڛ>.3ȑI`_N' .EgOd# tDWUp, (ɬ*ˊ2_oIY& oYE"7?1'/..KΖ\]\ԋ#^Wܝ䂭^l]p.Ͻ,~Aιvb{Æ{vkgO.Mqę!r_IlIU:@әG_ T&Ҫ9z W)R&?3 Z^fiWC~eԽmƌ:ˆtJdrRcOde'f$:2_޿s}t?[꯹.<^W.(カ1(͆u=e^Ĉ .N2tsu)fumarjl`Fצj;ۋO yHn~?}xg|Ӌ?|73kc=w:tyE2P,r+-E$P:^j~|ma{͏o?<ƎJ4_WhtrIc#:̬kRiRŚA($2V-x(v<S&55*RXdUJngZFo050  Ckb.S*TbJWs(0Wn3*f4_3 VdTm3s*A/2YMP.qfZˍ xz9^Z[ZiB  }P>Thj N/x!ujI3zBY2j .FbmbYഊc%jDR&*s(_jalT],s&?p.ؔ&D:P9eE)V8qUy)&.(/ T=B%N;e}Uzqf-a.-i{ˆroSXPZA?ndn((fƳK/k%֨}8zScWהV99Eo&j$Ȉp^A2 :ѓEW՞PҊȣq6|۠ v 롘r!v@!?ĚËɑCRI;Z<ߺj!%ٖW@o4O-0YP \dTl3 :+asy' joR9=frVUQlEh!!7AY!4ojBm%lMYmʫn^;{4܁v4mzt?7ܽ˧o9]Yxf8ӵzDG룞&`w|`WWWgZOXY{mޯ_(~~/6~<~J`mFUJD9;^*3V; *Aqͅ?Oovٿ˧?_aӷ>4sseەy+秺o<7=pu|i2z|wQ~6!<[E lvbjrl?B:aME՟~o``,0 Sӣ>4vhJueF%X "WWJ&=-frEzidX¤Rj[vFJҜ_A(XZ O^N-9ed¬@+;] #\JPy#Ur& ԢR%UvM/1zS2dWb2H9,J;-D*it*QH RnQMXj)K+0_|vJp8G%V=Q` 9:C9EJLljX&)6TP.OL|9/yT5P+p"ʢ \,.Z HK򨩆]nH6y]P'pfvM.tj& phϓ~\.ńidt~"%[.Ӄ`7 ; {k}Zi[|\5Tki|&[9G"UO~RD[(Vw۫,/Dr2zN~z|"E"%s4a`ījFE~ܩtoyqFUENU9U8 %lE)࣠sVEUnm]ɹ 9zt %:F}`jl=A /DAK Gb/ &C_4H|6@wWo[Cs=~jjҳMVL)|&ERT"% RjybyJVyBGbI$u)=1ۅ*l]o4v25B " bUe҉U2nT--ޚkN+LVYYŹUk o7ww7u5s?P+6ۼ}qk ڲܢ:w5 w_`_;v}^ xaabqqr}}k<6dcqm}~n>ܓ KKw{s˧o෯~+߿yaw釃n'ʼnF-X:lj#lRAĬ+}_>?a뿾l_vgVἯW=N.?hki:sv̹:~9;3x8}wrgzr?4<DonkԴl .hl c ƽ_w}|u>~t(p|\L1%'fd&Ƨe恿ʊ* 3 + sR=Z@7I!F%K:AC{;qiu[*yq_w}c{z %K cR=M '<сֶG RhGhcv51zP+dZD-A[iVCoa %Eb\gVY=x UuZIA%BcڬF݂-dpUb:h,j! .jBJB b6Z5i#0Wm/ٴP`hV:@Sa1|+4GOsHb𖨾h}Si5F t({H1U &%nSDH8\ J,;\#IGX$1V(pn^OeRJ}et%h"ps#`4J 5`k1 5J@&E!zݢgC{MZ:V]بaB!@05} 0i8F5۬ZY#w&܃($EqI*2+wPw\,5TӚ#nzkmmne †tAG1}9q6x %[e.Bo'2_4ed %pW+ Mb,S kW˩BjoJɺ*)6EXYoqUeeE԰oYYN%^T^\QR@4[^Z]RSXYZ[}2/+7I ĬHpډZJj,@ 6wO; ^ ]Ah Fch1988؍ Cd"`7xM TfWOw{[{ ]qZM]Uzn١W2H cqt_JW: + z_c*-G(E:H, *htCb!U8HVR)ƪ4e1fUmuQanJ^zb~FA)F8/8T9G:Zfw#i1:v5z[ܹ|"$깚tuہ?=:2@~8 >Zgf^_S57[޾sl?û>P}`ٗo~?~z+ٙ_/гP-3*d9d|nwO/oW~{N`y`w{;՝dRsf{;]K#8yÿtb6y<٥y*iqiJ[ f12RjIf\],N^ <}l>w|p/).&-oBᴤf%W4/D8)=_Gqs9+Tt}sl6h]q_Iz]",%C$`]}s}=-xW`%'뮬/a!ј:6&w>_GGnSbCÏ:P-dr|E0)f* D: [h"q"E)5)6iKCgY XeMhѱ j(IQ7Z*Xb.}LL(vآP0L& ""F.B*O/%=@^j? =!%ׂr`3+3`daLQ \V_JI]Ӭ*B" ,,,j +2Ua O4&#L(9\mPhgUU1Z]%)MZ981$fdc2;Ƅh0ڠb 3Ff6Ri]: _|Fd3HfiE S4lJGܖ+7灼.h;|Җ+|3]Ga=Ś,1gDr!]TBIP~ ֧$rڑ3NY"m/bवT\%0!wdk3qF*-2p_4,~&,(,<-(J+J)(IvK+ʪ-*.˪rJr RߚڒI9h&' K0vtuPuͽ]@0Ej{{[ j vfDG_Q%ICA4[޺Sy9q)vU-YO$ &?"J\=.QFuL:Z\R9BԖˍHX TV Cb~ӦJE9'+.),GTwb[=@GOWGH+k}wӽ]=S "_8UR[~We/%Sᙀwf'LJ w{ qc޽{yhEl;{jw|?×^?{6Xn.{VG?Z{qo""3L@/?o?^?~sӳ_g3?6 _gZ#;r6v1̑ܨiR j!BiU 27X Kelj'!EgUnC  Hp4*)H b A:R*dSrjZcE3˨RIa21!"V$L̠,`Fxh08ҊhX 6wH f J}l S*1&cR,nHh\%9zeLLM…,eu/!X`M:>)"X*%h2lb\.Bh4 j P`du\װUhaAu T4[6VM^0Y$G F@!`7.7h9x*tQp_ZWr(4ϖb秚d7j$ U')VArnY-"wd CPPUUf Sm!Pcb@~0ZݕZk[yoE_`.s]F\"eO@A(]KH[7%tX\ˮurbEƨ7췥+o\8}֑d7:t"_ :~4>E0_%Kdj |"JbYBj-'`CiaGpwhXJfL&$R KԪP`'bmoQn:{LN޸z |*>LNΏMF߹s͋$i{|vÛ/n}|MvlkmmM~1Om}~_ϟ? 2R FSDGZaxHmAn׃o6>?z=O;뛥|x'#?M[ޝ9X]v/||{{1z]ٚZ,N'{gv"03165NNS/LI/%iƀ/D;<r#߶FRmmky ujJ2R j+ʪK2SɎxAý!Fze"@ kYl %}8RI2K ->M`B@'=\anqʆ& C)2K/^2 8c o`㟤Fu^!jP8P{t32ڏ|c}S^oo0^9o4i"B+7Xʢi$p^`W3l8>(7+Q\@b !qDхLl7]-' lqu̶DzBK"u!,<gIPR5ң|b[0_V&3pa׊F)b*jDUahDрEQ>YwIWN$\q2n)xt+f:<-.S-XC%1fe]d5 gA[.ZZB#L"( hk|4[$ղ:n0ET`V " :&CQ\BU5,Y 5R6B-gk,8\ȡ'Z]રJL xńdG/szKmϓwa(T7{5ETQfi[D>x4PcjQ2$U(v*M@pW[j2q>Os'[F- R/8)0 .>Pы,N䂿ߒQnfNA"8oyunie6̷dIQiNB]!/-*:[> ][] wKK%KM(L2.1xܸXNfr__:?X$B c2_aB%˔ MY*0 >I :}<$v-"&S-Jt=8.%і`wâCXqc9c 9ko8?8wLz'S>@h Ku@0i C70rFG\ޡ.*{^ n0՟>]q sݝ'Ov6Ww9??][Y]l>6w|T?W=鬿tޡVCktzsͫ}y???O[x/3ajzѳWK/M .|yٙߜvz1gtolt(NǧX?O)IZ &éĂݽ;ؒZM/( {|mQq-谛K sjOU8c:h,fÈ7.>ny %RIJ(a4گU!0'C#)K4Oſ/Љ]V`pM~K^̇W}__*{0|/K/4>][VIy|P̃ (ɄjX+@@#;!%_jRc Ck_PؚPt V0k&!$$08Jު$Y"Np(SP^xT`%9N ,T-#U#00Z-P"IgKZQz"PdXx6NRK/{3">PUz(LzLF:P'b̅q H`!|G#pr*@R:&nPCq  ` 4`Vjf |V<&}ldY< Rֱ.LAK(GC:^+*:Wt)7x^z.?XbK%SKO_NZA ^Sؐ߆t0_aF0AZMoĭ9R8g᯻\;kwW\̾U yDNYJ ٲ2cwtlIxl\<,TɥD$a],21L4ԩfj+2+2+˳)-* FqyfQYziMVEm~IuvnqjvarAYVYMA⒪̘8H.`?v"(y٬#4٤yֆ0eAEo :jw";澾ցL îޞƦ]8 Oo֪|9إQ eJZ_H(C$2JC,2gcca j{  gO7w##P]o/hm}74_duų7/߿~ở>_>?|/?c~=Ë?|y{q鋵j-qk f榷f'?l~Ӈ_f/?>>x2ا=}2޾=ݵ3ݵ>dygg:3ow{{G\~`/D %3䣽 ‡: ?ֳՕ {zI`7o߻^{:+7->awEgϜx 쥺gߘ, B;{Z\cCdAR $g4`ܐq\BN2ǾR4q^ҿO[=\ɈpK|6X0;>E[E}AҏK%|''+SޞѨe"1(P!T[BkOUV&F/P'Uڴ|0Xj!S%dJ5DP@kHeU4>3, 18RU`5hN%"!k2J)%Q(FaΤ&$/j .8Fcɢ1[%%ӄz5- b qd|AHJǨ2sc|)p Nj <@ZA J{6Ä<.k\B28BjʃI JBKj-&& LNC9/NCP}6[t:VIVȘ ʐ43=y'O;;mϓT@O]m$XpSGLoXh1CG`7D`89O0C@p =_J ޳9q]9r8){)y;CQ7e@$8X^SnfFV**V&%Q 3FIZZnl~Y (,+I+̭:]RZ]+U霨(V$",:x3|9ljdp@b ߖFw nWgO75Ř2ߦ;n_xdyfAFZn!F2C#9aѼѴh^G $ln(qMS(VLg08'GBh o8A0őlnH4Ŧ;5I)Q0iXfVIִDsNWTq֦{TƻG\P[ ;['S t&DZ;8>Ju;#F&'BE{rz_̌mo.n7?_}vëw{O`?l~z avV&_nx{scn^hi\Y,|/o\[:7>tomO_.oNu;ݜ\67'{6fV&CY/"JkRp")a#[Ϟ__{_7n_9\70F%&㣃߱j〿11 LNzű9Ĕg|b 09H:[ݽq敖GqW/^?Շ7^~~w}~˧{ûo__y @`;[_)ETT.JAdgegge՜Uo5TRI`6K% HT٫`'tpC(G2O%%A\Ro)LKƬK$R/ȯotpCowW.qd':ejH)RY4rFeKZnqf&d$ B0SȬ@(5cɜFMR 'H:R&`IYgSƃUMKP%DzMA fR:lRI ̰`*Z)ZL oR*U@M5`_+`TNo5UàYґ\e< ITPuX>꫕C<Ԗ*1;M"mRnpu &jedP 7+qFq JZCr*La])V3o JMMU(ؒz_i09FȯQGk5 c "uhpcį+c5˾T_T|BʣYe|4o]~"Kc j;eo[V< >NÂd$8q*>?G ʔ}U"mQDߡ COD.U.D"_X0jA!"!.j+Pc` 8$넣Ҭ좊ŠҚ|785&(BTsШ!(h,&]!BB7VZv7SuTE;T#L_ 1518??:4XXG^rpiqfs}i}e](ow{_޿}9پy>ߘZZ"ݧ8l}m,,MIнϜr<;<=SkO|/wVv&^mP v~z;?Z}t_tag Rfkz+4;  ,NO/,M//L,N,N.N,/W볝 R <{8"Lc K} :[SQ]c3&R4LUnINQeu[ݞ!)y@|݇%. ; FXI9M4' ^d%VrNS |_O%N{==>(8qTHf#& $˔ 0B̂$2Ԣ$d@t#T`WKb,-˄@%5Ia7T) nͺ-+! /+1Fjaix c UTZ*i%R2F4Jj>5ٕB0ԕR IQj^nȬ@!%DZ&s- oí\OH%b6>Ъb%[Fl,5 #\2pRÑ5?Q)Wl0jq 2Rh"5 h/sekA eTp6 _)Et͉ Ixi1˷nZs-"8ܵɋ hO<nS6W!Z+;vNjr/0Cp+q3N;K4.@LK?SIYmzچ-(|+U>QS$3 ,]TScTo[RSRWZW\ybIYmNlE`2ю`'ND ?A;qvr_d8]{?}t4u d7- /ƞGݏ W yFE$wsz\ֻw: MN), Q /AC#CȨ<>"P@DQ=) H*W *NrbS*C ܈Y?ɂ xb7-ʳg/= v5ޡ>j3;5 LxfffFGWV&ק|ӳ#$_ߘ ==--#3)? dc`孕k0߿y7[_lxrӥElK3+ ks޶ܺ7:<3C=3c+S^yEݥ{[o_,?_x9zbgO{k/7+xOQ, sʶ" ݩP[ZUWm򊢓*kJĬҚ+/?7w ]\]ggNO=S3ÓC5z {n5?tu-L`/;[߼_>zsO_>~xwWʵwynb}iۚZީ(*N{@@炯jݙ;ۼ1141ͩ'ޗOg^,nPF "7'˾ϳձ͕եɅɱq~g ش.l.S\\_\"3@[ &+"A SsWfyWGoykkϝ/k.^9{[/]r.>]IT\Ut޵v?Dk2ﵝU9Htk5#`،_l` rCʓ ߙo&್ Hɵ1o?3/~ʊXL\(BgYuJVLAj1"%K)!ֱY/wDV#tLj6E04b2? !eyղ0XNj1sm&I("D^m-[7NDr9 8` 69Gr@H9޾v|ݯ{7Kq7z1Q(5V%b4B REWV&1:+4e.h&IZT:J^aIMWE*I\[^5 ff296<>/d1@¤СU JAZfS]i.`y/K_N֋_[F9D3ÐsAZPF酀JTȋnUWVmB]"U1\Qru!BS ,ѕ4 Pf`P,Dkdi LMv9XAF`2-&q6%Sr.[cxZ M#DKOkۍϭgJ3*Ýh-xm1ȧ.Т찤WPhݸrwNPܐ$x[j Jf[mؽPwm-NUZ-^he]eڗd/jeRރ raGνn\pkM =ǡ4u5ܻsƵ5m-Z/9e:>S˗2e=K:yϞ'kgϒg>;&*SA< h< 9"`10ȸ ެG|HET(ͭܞE);69{u΍:T/kEWryّC΅3- 3r8B]Y^mvvR˓*j\8s.?- &\_QartuuPcCwn477]z5 rۇ^ >x R2K$#Qw" ol3+`s+3'={Iw;=7j >mxo?oO??o0ȿC62 v*ig}=xݶƺK}M˓CIF` )>2I2گ۫dw'y^pwmo`7squY]G6֒;G{ۛT:h}58g~tD@m|tZ/}=}@Fmow3GNqpwgG"ɑ^ {=}Ctw3|wgv`ue1^?3M^AO"\]3* N2{7!q#{-oK=]IӭISQF[]\ihZ:JWEEw5BE4c:I_gT|@p) Z[ <~kkA߾$ @әIY@[eaѕZ3Q%NX#2.+8جl1G#/3bmVՔV,Ef%^Vl(;e+$<eN+ZV [.Zk+u.i2g  tTXp"{\ZUNmU b>4T)68wmSWBk:JAW[fk]e"HUJ 2*VYO1TaUU_:_ľ6M6Tk 7V$.`sB2 Vj-6dF2/Ֆ^Ttڋ}{z?|Ioxe^KyW|~ww'Y%q|o`"3G_?}wvxktw.Z I' V|iJI}P7Y[//̼y|fc$[ߏ˿_o_ᷯ}_b`x~zdkΗOۛw6D`jxͳW=N}͎%&Wf'I{+7|Y?YǏ6_7;_?|:>>|uMFC@0nR(o1JDVH*0(OpV2Xv3L:^'Ƈ7z{޻{햦H+ր~ OO gƨ/ db6Ka?) WCnЩM!aG‘e֟{s,v]J? R SћXlNńPx9#9FV#fe mS\RRSsbYj]fJP)9JSGneJ ^f́ 2૯ߩLǕ.ԦaEcTI-ݬ,e(yS)U4Mist[VrXS B 2d*R[m*ǣBD.є:奖RVIbϔRL$RF4 _*2Ì@"rXMdv6 /xh%j)3[W+mT \(-ʘl7B"Z]mpW6VԪX.ufX)X50 Dh AH,) j,OVdP,\ W-gJ9K*+@jBx^qs\`SqcI6yU:rItېyV+u%ی+W.{cKV_iYO\@&N.s|,lP䁿0KΥ6;ixZL/vmTM`~'[5?󷿜^R-w n;'Ku\\{zoͦjM#OP<{8LA% ρY6摽Fy}K덙ىp N s#8>1Ep6vhbaa2" oe>$Y\Li2GfyfҬ0a~ ع ^/29 fn~)QX|/* lnRdCAgcFjrId%R9SotPX$tZWmCkUbpbٍƺFOG_ %"?^)ofͿݎn7׃>mf;fzek#FKT8 &VsՅ]|\G\Jdl}Ž{r㫙!D80΄xoί}/G>ӷO_ooeV5Bsnw3>,L&}sL|q*!Pjq:89]Ɨ?|vί_d`JŢ+D$2&0nfɣ]`$@g5X_=[##k$q/\(l /Kح\'g!_yY+e.FZygCboV҉*~FTf〯\ E aBU3`%@ LX$͗eJreM1_p^"S) A϶ENhk lC 9 BQB^$H9V3kqupo~y5 '32wauö|BgGk#5*u^P5a w[JZv]Q0zZvt:m6Y%Ly~x~Y7i?~}YliEa9RS),ܴ.zf_j^T4<~qAY0H+<xq&yBY 7rΒO4F= [veYS?#ʦ"k,P{|z5`qpyƟ5& Sɩɑ?}^g}S]奲b!)<[mVb b ALYIjG;;ۚu=5/txjӰ`q*\]]|2Ǜ\NIp|=0;2>&Z\Kc IyH<K7SG}::C m-A+وw>ÞLؿ_ٌփgmٝ͂Tq=R|; .lnw9ln&" ioYX՞6әz&Afӛ[ϟ3R#LK)LKM1Z@gw3`.-Όax;oA]ߞv0|ڮׯ_hlOFFMM -,LSQ?hZ \JK$7!U0L7eNQ=?;K'v] -E?_e05T+%? xee!;0piɾW.vp[ulAM3D\I s3d\ι3 va~q.9rL>lUtNWݻcc։f z_:4F!20w97;;=K;7?1[#5x&𷀗+ JZsu_6:Bq >.PFrrx|D"bC]Y+s692mK]^aDjW,2xaWZq64TT+JMuK*.Vvj|6 ]BZl)')fd/ mDG;r&LWc_w^+RSvcXp}* m"D|2hK:nnm3Jj5z,N}p7oȾ`\O>锿_?#|rpIF@L/LCsw-A/L _,۱eh+-zFb˳+ '?b/Ų&\//%" d6@.Lu;{[{6m 9gapt3t*xGͦhzvΎXݮf|{:޽{6==LKmQ 8'+X]& <.f"t8NH*Hc~RΞE>S;{ _l§8]ChѠ? ?/БgtMlnXS&YH*X?:Lb_H`N 4^KMf^aruX!e I4 <rJ]cm8r;e #f7:Rt/|9%(+s5媲2`QQJe bŵFzy`B*6FjJB_TDt_UK HS!#h%j%gϓ൹ \0(2o # UIIZ(L%!(xE2N1:J>';oIxzivW4\ZH*֨(iU{VG _`<9}y. 3ٔE9B Sg*T|.P,f  +W(,2$L$NR^4TWKJY +dsM}ʕRiVJFU_Wjhnyt}ٱwt ,$B fN t>@awo%"ٱ/v4_iy7!; gV#,o&v4!Ee;O`i؝CK +h8 S{O;Dhw`5|Vw;ļ6<Zi4 ]΍/L.p OIP#>jvR?BNb_GA!}:;M1Mz&NN ܅ w i{ѣ[a~[Zw xh /|GT62is?Al*@ag{33ҴT"E0**YCa~o Ȼ .= f^ܺuzrOe6m&:,Ij%\ X24v6@^V 2U"Rb08:$]Z%EFCMI+QG#ɳI C KL 4Y[`jM@0 +J@!TJ8e%reHEhe&OreBAe,m}\$H,}Ag,Ѱ|u%tٲGz 6bUra8`1:| . %,1ZQ ȚP*#*J  %,$y, KdLRFƂE"U"*IJp9K@&ᯀNrD +Xj5_ *$u*+,x^"?SK639.*沸 ZlhN^/{޽{B3St}Rw<ځOӷ'fZI3>cnnlg;''Xhm5Wv-@^/F> -{㑽*tY;\'ۙÍ$\^:=D7Gqp-i;0(sʄ2դ/ [%s c31込⡵É E!$ziodɷ#i]{R`'R @- ;Y?V|)?tCbnrjO_U,`~}@p7eY4{ΥN-BqF^V;.o=Sz8ml$w|~ܕHr9U 484  `t9^[Lh7?= O_ix]F؅`+`rсkd"YH yGG>^nas v?~r |b_J!: ~n!sYKi,4]>Fp𿔿fqI+ !N6{ \PGujlf.DL /|j'Qˁ?/@0 ߠ?@縂E:RmPZVͨwX E$P(|)@ t*{}b/*S%єIHWpriʠ E&=,&4X]tR';jȜN pthSQ:l4,]^CZtp_jbjPj&k5\_ȀA-Cq8%.S ,Rd2 ZM)e6|EJ4%>+gIgdIc۔6=d@5%V̄c*J^ĹJEF͔*y|&<1\_X@P(1Z!: ,a 8ybaBUV,UYQgVh+ʕfE&x{͑xT?{C"5w^a ]O/-6_ 'jE.W^EǵfğxZ /6;4 / v[n\]`-Wfvǯ_d7MP"S:sSa /ug[ ='T#]N 4/,KJEQளn*٥:N^.>OBI2+'=W|s%Eb`ڝr{ElVk1,5)jk]=xgAڙ!i4Z:T &n=LSVf,Q y}sCG>yN˥urL#II\Y )|`8G^/HO")3r r$"80Fr*kU&Ef_9dUT\urC]Yӕ ծ jP]*mkjx{l00? K .dj}柤)86 |{w:o^m'* ,/¸&h0Ѝpst{pstz>^37 <1ԎF޿W853FIhzjtvjtanSѕ͵6M{p/~==ڂ oFn&l&wR?E^" ;? Eb $ =/ pp2@ԛڈmmldv7OׯЧ_6a /]&YшhtဿpC?~[keq,ƑǏ`{=n{|w=|͓ɩ!.KOM1.:p0?-sPVkkՕd2@j=xDԗJD$)⥩0|y/T& INf`7Eޟ.b$0S.c π EyƂ:{`ؿ 'Kj TU%,V+$<Wi1A`v&#Kç.%5u$1AٜƊ<UZIcNf#E}`/z8N5j_Umu 2aWm7eY `7PS_N,sIl^X%#Zpoќ!,kUb^Vf2HJ5 :sc33#SSC: /sy8}?0g}zZo^hij>$A^!3UF'hg\a2 s#r|RgfYRmc. T1Pn0HfeueTٯ^^XV[ّe #^c$y|A^_:/;UĿ}?~u^>y ^oñ[V^Г0)-u_ho+lb!R_ vWãCcãc#%=읏KVoe큹';_w`?Ho6W͵Zd+وnw7cۛѝ2ZސԉG=Vt{ggqZPbF%A~?m跿}?=9ޣU ᣠRD4>(_GO{|e?idSR>xCɋ8 (,0 ѩӥ^7+5t'O1AaCESWŲo`p7ґj%E'P1(LEO#ՅPh1f8kZ$ @Ѹ_ BvHk%{} tyq힟se7٧?7 @pSS _)ZL-+:E {~Uv_@E:u4#Ggb!RG+p*Qy:--7D!;Yjӱ5sEl óbMZL{aR -&mU\_+Y褱bt~(9j&Ԝ YJS%*Q bdp#!XbH!_ҖK,xfz^ ڤ;wsl |h`.C0jMҘd|OU*,1a܋ 8_*C+r_-BaD`jY$BaL4 wCHPRp ^+nU;.-cj-6ɦERY\pNq sk][o;l5poy J? w.VuXWYQ}^(9sS3۬&)/ y#WDvCkU}>g_jגjffyrN RŞlҹ[-0Kw˽N_miO^gwwe}yQ >(<(H VEf9sd3YBP!o~ʪRl2j*pL um>|vjp~v[i3,KcOwNG̥7M~x۝77VԔIBbUb~* áD(M1gyy9E9Z5iWU4JVCyJ&'ADl@*ߪ* Fq/WW.UܺqK=?n{Co^΍z&;8]_z7zdwFگ t>~? <ݧݓz|=L>|VGЇo^@S g%ˤwo_O~9OVzcsp.,0{z^/o'(S)wo'ܓ 9_6%KE^=mmoobܵEWC E&F2dnlcdʇ@Lr%|++?)SKK3n.Y6Lǟw?;|_|[3IFϥip'8![=.;;3;gW/>zzQ}v?~75;`i4 d(OYtxc3X FS@\ &˱7SKOXqbWc@ف?jA^ c02PfPGp ) $p׏ٖ,g_`H`^ x36D";c vsvZUF! ^ @qӂlFZ+BbZL HȨS()aA(tphT;]*Sn,ȑbUI:Zў!RMNa,w*] {}5ZuC-*/R GEo"1EV#,0s@$%D K :J *kjJ!wYD ͤX1V,Zj: 5:PO 5D.Nk6# 3i:%OpQs 'grZfPrp ԫY_+pL~gσ-'3VyeU^nnl*@5U {ƾ/A߻gG?rO <3e -eT͐8g =Il~9$pp#h+w~[ך6tvs>LDVStv {rEJ3;T"on&aмǽ8795:4p3cdID4ݍ ,|׶3t\fV#kI2kJsdgPJh.y㉥h /-MwntqЭU^(avj`~-{i`PF7v,Zj!:WOS0x/;%k޾!^_W۝7ݾ]=y;69s0z$(D"?Bh% u4j ]3Lo8>I7_Yv Q4B殁Z`̥3S 6/^77+%ߴoy qx#4A囇| 3 dǷ *' TzEEMܠkr'l=`v2Cq"/D/[BI0*]4ILjqY<\!X_P TvU"kU.aJu#*<< T˜vP0@F],JY3;Mv!ϖ8TIMoVlZ˘Z kbqe0R/0 RfyA5:=58 -&t2^nIHn` _|9Otd;Aw;/JR @0V8:?e]I_O)맭Z.z=Y x|jxdl ᥅߳'W|kjYKA[j"T~-ȫ+k0Dj3\%}Ԡ{fxq~|;YYJ$W&_[Moo}L#{ik;sI o%`Xݟ[@y5FP"a_;G8__hx=4 ( " {_VsUGYB+J^i%v>ۧ 4@S;HB0F/œx  Υftcme5Kżx:,:{i E6wV׷`CC٩祯T% yhA 2K@Jȗ ہk/LN͸''& N{ .ͽ@\AheՋ&Uch&uSŞ[?~O޾x25_xbF:?_tt~t>m~?zD&lN`i뙆*wV*v3𧻓O߼~Û驱E7WwILdZO:=ׯ`wZ|;mIq_wtlM ·Oc0>XxNZTMtޗ_OEy S ϋpP=Nx46=񪹱aOb彪bQFzZkld1?ǜA̯sax*ޜX໚.Z\+l A >{$jѨ;;ۓ.,'s&/y_b$6i%\#/O|頂~Zv8;L|/?Yjmo,-34$ɐp6צhd;r"izFY"$Áf# 6N(L{pnNi Ih" U >7_ c#X&dtzVLJ5D/RrʦpXå Emmwhc$:]zЖi2<&ƌ]j3V-!ʠz50r#&9 )>}RC;w}M/SӑFik!k!6;y=N ( >SײzϸO;߁ɋqqs>/ods-N𷹚{ow>q:0t9lhzA{].D·{E Ũ=TJݲ<ץJe#/{ h3kΨԋ%4,)Sªќ9np-ųW,p@grQ@^P  X*'K sjt쵫ݾ刺277<1=;omb*y8:;ņgV*$^wX3'>{M~@:0;??'p yvI^͵ɑmGs+2xW97}c}f&F%NpD xzzhdzmknxmudcr~z]]ZD|Ws$/$B+@*kxjgs_ Hbys`>3ixwhEeltaljjpYyoߺz ?'ߺx[=h7OP>yE/{t| #~!w>:;@d!*#=bTGWLqsLti9ʘ~_A;7FSl%H[!g$v4vm\. rY,>X13RX 5$en͊>&MB/?qb_ :`12FpaMJeE*4$9(X8 x*EoK|F8Ff $4kߧN=HYp4J@5<420w΁9akyvcqzu8- ͗.(k||>% _pڹ+gkNԜ|ן~ n~"ڛ[;GW5 `QqIi q\qqxU!Ty4$ NVoAʔB*DI 79eѢT3AXVv0|P~AHE!xZV_q ݬƚmz^)Ie(SLRi[(\ZЗhgUT~Ν uujm&hM:g(m^tT(I% ِ۝ef@i]N2VWX,{,J0MpY=vb$+tz[\#-*g%? ;7 `!e $R,O h p▀ gVvǣhbNgAˏBlN ca[c,N729 qdꌆq"Ny vpJl&Am_ld /;BuifI/Y.?iֆFK:Q\N^=J7{N#۹78H ZGQ)WG5Y2<nv?-1[k斗 limJ[ 'o_'fRx_"?w!(G{{ (1_~nM3><"em/Z6|q;{њc66kD'8ZnTB()-IH7ۍMoq~k06+Ehs{(KbBFLaNkI?x+RQgIIтKQVTAGPDɸ{$Vv޷ݭMӣ`řՅũՙ[_w?m.™upkarɃgNV,ɋ .k{{C < Po燱ビ6?oO{mnή|?5582҉Psc0b_5{~/\Ɇ;䱑сw$;4ojlhv{8^~%չѵERũͥ͝ݽÙÃ?-9ol-~``CP`kssquumfgߡas} aun|a3ڂƃ}ɳGw>{s֝l8\UTDs~q'3=[,;Ҍ] 3I$FB.$1f*Tb ll_8 EY9hvNrJTB^ K"LL*x(m eJs`]qᢢ, @aTР-*͋E>ҊIP*#D )YH&N͔ ej3dBQ<#Q~Q<. Fsr"ٮWd2M&V(KK@Ih̤tiD#(tHJLX5j mi4B4ҩWp:-g9)U'jVg5ЬlfX̄i㜌Å4c.z=:Ysg@#uCg`mRNf2zDk DFcB!ec / J_WfnV \|iaX97~H/Teysi]q6yH Lɐev5|N͉ZC^8bQ"D-X'%(X1Ɛp RPg|F$Й1:h1 ttJKvZӧM$SNtKS$iiɴRAF6 Jm Oyj5c: |(\ aZGIZwouBxj|sX8[L?\p7V.vi$y 9xThUmU\ HC]}x Vsg|/{~zN?gMg㦓Q}u@ħ.h <,(FyY_$B;8 n|\B7fÍK8Zr`Gwno8SSRùXW".mn=~0= KF`>L`204B遼ͯýOpCd4^=|[Z$B=xrQ|PۡPwWkoGn ᾎᮑN>|0 /47ni /(V>N.,,/,oͯmLm~ڞݟٞݙݚݜ=Y&.mommn~2I477 ZhZ.,lS? -όEcloΝ޹qsk/]mpܙ'jz1%%9!V+efKK$@ / zVla5&4$( -J֡奱'K_\A*;gJ%b3U"42YV, P\jBCqeF))+. Dh 8!5ڠ(ŀ/A"JNL|rB+ӚԬ {ˏ.x[xpչL(q8k_| JTBg|k24J[UYQ!`t>Z2(Xª3VQ.JeڨRzH 4F@ X~xV z_Ηn+YfZc9tWb"i|*Nia:TbOa6PAfuZ~j, v@3wcl .|J27Om`pTFb2E|΂`Q;y=Ypq9;3=fHK+>D4-aQqrjU&OH YLYHFf RI-֩DZe_FӤZMV7dhd@k1-a,2[ :JÔUt\,[zv묻笻$T}#i_;t|?lDƒ'#Wޝ zڎ妮8Lլsy_G%5|;xs]}Q<,0ތ)1oOߖc^7 |0-'\r˓c, ko.9q#R__7/ʍ{g|ˏ.ݽwm߾˫UoUk_)ϱ[߮TZ_B߽|H^,/ĸh]E +JzX-3#ƭdhȋ[{6N/Wm&h/ J!s|A[[`c/A`"C4x<  :yCQ\]3n_yx=[-N.SK3 K0K_vVl~&%ژ|]߃y kKc:_>}phymmhK( {훷oܹq@hMO-|vߍչݭe/[>n|28 c'cc=c0o_Ű2 /o__{O`[xYBXE=<$1@.ׁx$U41\]լM,RX(3tjːY>ؕe;*Fi̤Cg yai#+u0d9Bp&sѨf4f3|&K<`9*I@Lgui:mF$ i)dLĤRL  2^26DtW@6͡fdV,3IPdU55`V[^Ņp̥Ї Y\c]8:?p1 B2P|gn~cox Lp)~QWgkww [.`w/0p t} ZhSvye9+I3"υtA2H_]Hvyh4 WJS(Sy֮.0z!wB+n<S 3tpe2 jxl5Ueuׯ?{[^<&Kck[˳/, / CyۻA Y8ÈݿsH1=)p7jj/5wn~? ֫cz/̎o/l.$ˁ6w>m|y@^agfĨ҉2@,:0:Hã-f@wqmAA dkmg.v -ս_~-,|/;;K~9󧏇[+ sSu++7/A.=XwH~aIe8MB<gUS Ԙ$J.,i2DdL62 bh F\xC&`uN߿ D4P*I% ITB_rx?8LhobqvѢxV |+継:%L3 A!  怟 hؑex ; < : V &%Xq64c"@Ye L -2Fĺ z_:WpVŀJ+% I=dᰞ`6$5DZuRL~2,0!&ɠO43ţ2hF-`W0لy)}Jg`zZhI̘=p֬1 gLϳH_-W1r5>~=zj$@_}{!4ZD^anS(tp@13|~\[מ3rۓbzq\z]ɽ%a//ޙB >)NvvrTs1Cϥkc^UK^xqN맋\~ 9^ kheWV} E;_~A +1ՙ_uI gݹfs>ZFTyъpʐ$,Bn9 F1PB$@ ZK2B6_0*‰Dv-D8rhBgT-p;_>z&Fɰ _wc~jgy(/ `P2^l4/{⃛.):v\W޹ё9Pxlmyfwci{mauaj 9;}+S0m/mnollmqaa≉6xឞf>$*C}m}ͽ]oG;{[zZƇ;z߷I_w~8[[C}ekwwum}Vwggkw{gs}ceyϳ059:6J#..Nno/xOO?/?[XxG?K,Ӧ=~tK._pr]ӧOj9YW}$8^y,;/ 0)2^3q^a}1;lsfN0piM\+Rk,^:+Nf9ڍ. 4*\!S2/ @:l4X4#8pT X< F5lB-Qor!P+VeBM]aڤmu`4'`q k| N:R]7T2R՜*Lw)|"KEdF̬$YPR EAf NʪbJ&2Jx)Qdi*aF|'%T()--)% ɠvrTge Fg7Qn`iib>I"MK8٠OrTVK񔎳ojI/ 4]`7dBȉ )=-OsFC=vfQ+4@LXW^C~@"ڠq 7_&d/qiN+, ,ak0iTN#0ĦI͔.L&[Ȭm^S'bd)Sk S:a0 _Ha_l!eڮ6Ze K=2.=(~v"{V؍o1K_-Uְ/[<[a_T۾W{O9y*z|xg}Zbn,4r(j=5ޓ`k5Xljdߞ >|Pp/j\"bˍcCDs!x>t:Ȋ8i'sڼ9?ƃ3Y!H\nP&r(|AX s"֟!%U"@Yt,팒Gxq{otGsbbLjJ6k eZD#9a0.6V {V6-ɓEIbI/16{"vpzpo<:qwnn0+ PYY^UUiٚ'z;G?ӻ+K׾}^y&6ƶ&Ͽ~ & 6P͡?RpseE&ágNwmػ!x/[?|څE:^XA^ xuiŖͅf0KlA9>4>= I[:$p׻PxxFɬfZ_@zgwpRp/?B u|܄~6|=eogwcu}iuuD|^\z?B~ဗ@eTvvVvw~؁}F ~>3쇑dm{3Gݺw֣'޹RwlumUʚy%Yް|Vfr{Fݸh ̵yL@0@L;*u9^ l1X p]>3C:FH)@^;g2JZPĒԌ$^488KLG!MR}\p V)Z+%R\%f9ޤJ3h(7;We d)dJ[`T0A3N m3q^?=?lst  ]ׂP#/"eF4%% 8I R芹!3 V+6JfP'JQ3DtQߤ䔴daP,"Ax ytN*:`(g8YڪLR&il4Q`.e$1DpQڣB^{n̑eGjyq3^+#<AP}oN/? 7SK^|+y,*Xh>g4JXL,j`~2h$(( QLqၿ1JΏd-b?[w$,wqpV\>RF"?態 %✊㕥j*`~O?}ݭ_|!8|7>n!)Iax߷K=~j}Ն#z֢1t: KKK\<}op S@yDG4y~ۛW=\PIuxcfgk\z79>LML⻗Hѭih{i ~wB?-_:'fo{`{}cyemq{wkk{{wgmk[Z>2 Sx! ?7tsu̾&||qnbfrp~֖-M=yi'/޸P]WUp4?, nJaKB`4ȈgNkvht &WPS%Ԫ-2]mnˌ"=rӬSR=|!VNHdBQL.P2% "P$wH ` N? xHƤ)ZR#5ZSOkHDę ZH+F0)uV=4/ xr3֤NPsB, O?H'qӒpb2Y|!Y.JeQXH+$MJ'SSd?idodww(SRS2iBQH" NOJRh22"̾A!3*qD"#h6U kȬ_4C++bRNkaO OvȝxۦdMɞ5E!(` h0MFj_-edg0ht1q%=t1OJ̬P2nP6q8߮r!C惪|㩑cWsRË|%Lk_mJ| &wfAGymB ?=yn.kZZ:?{pssN+wc' 5@w ww?x&4ZjO*jn!|-K[j/jx~CSsFl4AgǮ]C_m{/ϰ`7oID?s$?wp$stb-$QඎW/_?y2{D9^՚UV O"LiHHde#(4(ZcqgqI(c :+kAl7[{Hձ\_N;7ۓsl<. YQ{+7fF>QTW+A2ka͕{dͅo{?e8N`w. |?p g1RjTJjPov6?[7g!Tݍ͕0망P|_;[%Avo_6aoۨ@`1@ 5$g[k;ks;O[˿~v~oq? ? 9 &GǦWWַՉ陮^/̎2?ϿQ}]- 0mwjbx]Pǻᾑw}-MMx™k^=rxIIuqNyqQ(~ Z^ HLVRj-N=e׀°v/RM 5zP3a'FLk)RЌ.XHH5ZV'ET~ fQK){bR^vj*I-Vrnr@ ET~)׃r <|.kc=6^6r#@06ԔLCˍ6f$폄k; JLMtyT/ԈDj(S R#ݴkآ /qʲ4ESi2Ry&^ (%#xLHNedjrW#mf%>f8|J, PkjqB2C)N R*]%)=jLU"9|!>`3gmA=^4'êO2*NA|@U6 k69\ LЗ@.plVU:m: Vld.VeT[I2bAxшVXV*UJ_ IQd(Qg,Lgl+0`f(R!QhFV"XUNѕHk.#*B#V9,j2N*f]2ckqs>0{96x 򎝏M%̥J="Os$>kL\ L^⃺O s+R  uU GmMGp)/YмggS_]]ͧa ̧ɲ<(bcYCVvu\/w8F|~~8?}-?GP׉<:[iZ-'?#`bW7\yµseZM)p!Jp H*' $D7a6 9;8=mYy.8R5]FzCRkƸ0lrMuSeE5;L!.w Mn-,N~^][Z\}9|>ׄ׏&X6? usu@6pw /@9@_>AGۯ~܄Oϟ|֏~alxfzbyuihWn>zv74;{޽~g/7V&q ~a|߿|gʃՇ+}yj}ezyablW u01Bt@0^mKJP$I$cj1zzݲy]=gSU;y>;|;|)77_߮KYCWs_kxEc1v1 N줥>ᚸ`T9oge7c'Wv E_B.^?ZL}9^ˣt!)s8ezl8>VYpν؂]jC|AϴD_L4Bڞ?3YL 7Ϟ<[pl= 4TX<-FM<:\?F1ЁFK+ApY.(n/ɠ0ЌʋUXȞAZ&ؠLQ^hŕNW߾q/=/`7l//@abx &.8b?oulArn/L${ΈOŐ8:$4[++[Z:+9~g}M;7wy74 _vϻ>tyǯз O.+ -ߟ;t h O/π??_?u1o~G2tIB:xޣǷ7m|]qޗ[E z+'={筿r΂8<,PA[o|>XZy2]mvvlllmwOPok޼}Hũ#r_qWTcX,ˌ$CY^2PVceM-UB5%qEY_=f ӜVJ=X !F#1TEkdȺZf /@&@vHNF5 .ݪի "So$9]4@'ՌVo7j: 䠴;V4rxX_pfx(zgYRJT2SȢ!y:+Ҋj$38 F謁V삿0x&V'RS$*+HD)@0Dl(1ZB N+Pf@D`:C"",R&gP8=I$H&# TYSȌjY$Y\*UY`{DfW,[Dx(?rٵ6F|-8 |.^kVrd[s"sp$rh"n _a&һ\zLg&(2Rx(VSIDPi4zLJ6!kJEg$ )B|2(-V5vT:L 2Ak,S&LJKNLJҥ&P#7.>SWq!{wa? xNx_ݘb.wA=5Y-U\ 7Y7QZ>) r*S11;쨮,8v ,@_͛⿲?<5BG _'_ 9a:@޶<X7<.ւGkp?{^_* Eij㷶YYCq ʼno #v]$rdI,>^UIF7'u:gt*2mfkц@iahi~iA֑\_߫ݿi퓣+ //4?~[y~9.Ds?\MDycooeoomgw}~eݫXdTb,VbsGϔWۺIsΙ P $GQ0eB$GbVLHRb^Zg==71^s:1KQ~wg>Oݘ䵕e7>pu'/ ^_y2 /M뫫WI8E U!˔~ >]:DH|ڳ)}x7+ޭ}X_,~|1 ҏO/WwW_ͯ-~ϦX~:xꕺC_UN5E%y3s2KJ*?|ʯ׾y7w( "8CjD>O-M>G;>>:6v֭K{Αzgއj\tWAYuax[õDP5 a+0w:6bQ*'pcvm&8%{\axaE,Vs8A\~@h\nYrT3$9P0D;<6i!ը6McHyJn1zX+dMPSbAh1(a NiMq~}lnmxNb7Rٷwi>n[B#)m4F KXԐ) [&ekzDPjWa|QP$U+YpdXjRXRj HʔM$cI$$3C@Y`AZT_>3^_|X`eDw.5MўhK3?T(v:sm ;qw$3\לlFNXt*}KD .:K":[M`ka]&7R ໲}dl~awסJ,7hZT(0)YW;;']ylWEa)n;=?;1zknzlevJ{0;E, ,h,|hd΂b`~z`1 ^-nk0w׷ҷ+Џ?LJ/0Յgf^y͞Kתڱp}UG vFnˏܞSYсk_xg*>iCgv0) ܿ*7yų=.*/(*LɎO/ő,OvTc*_ᚬ$ 2zNbj|" pQa:\cRDn WjI,T0 VEPt2\%⋘p:P}щJ%e%P+8nr4F}V- 2u$'s9% c8 \İmrź`Z#z!WuG" 6?2KQ+ -2-(XrT\j/\0|D' A^ )݀|ͭ?Kct` C'#Pgf7ugӃBatlza0: *~ 2 \92!"v Os .P'7Ci2}H/ %:T6t& Xuig =&ʣ ,X (l/xN'TΑ/p<? ؂qHJ*lj#'ȋ!Z++He$PBX|?%Y ' DnxAtvnVf۝6Hfw%Uޔ,nI>8{@ eξs_%Mْ|/âG\ݗ[/mY{ lJ1|:ξx%kUdGz*}:CwԞcK +UTɁȎ2OsTn? K'# 8'OcȾ'?qWƦ _jgiWJ L)Q`nNnBDKLo-NMې*޲;%GD >?l +07(?LQ,&zT 8|I٩³1]۝Ow~~sG}tomIj2(r9^*'Ṱ3Sw-u1{ *s2Gn gKrn<|?_X[%1ɯWn 7!*J `zӛoWn~kəWO޿}߂y[vۅou|x<˹ydG^jpgʍ#ʓd:T~ l/3?>`CKoW~|^~X˻U3Ȼ _.^/)%YpwWΝ7>Y{tcmm)yb~KJf=T2] ua9{:=_ MGq&P Y5*LP(8fB tE ᅵV²KeV"HH'p-ɤ:\"Q6f%ЁFĺc"]6 -Zj#rX'hcj6_f+h,yG_MYSOWSYmy$4+ ҉Ba`ajimNrBxP]@LiQ8__ R I,FP-/F,"$X2hx=P`-`"-b{҂\KIcpЭh|q >eaɨc@bQS֤ adaԻh\0I~]V; G<LU,SQXp+kF`{Vn)nۥn_!0{Ű*UXfG$ TpRHDD803ءb)𥁶!6.}8vlf$ Ӱw$?bWg;ԙiI6%GGvE\,w]pw49KˤFpĽ)ok3Д< iHQGWwE]y2+BWs VETOdx9"M?_*}p-W$UQҢp~W=BF #mͧun;\_m}0_ XER)(M?SZO5߳4$Cz\[p&9Z(q6TM"]OsD̀*OJ0$[,p-$PЕWefĤy%EG:!7=!4/('=396w|s=<ya~I@rB>Gr=f lM}pqqru5ɓÑ#udoOI7bbm3L\vdfdGE-6$ua?ʳgKsO(oNvK0f&x>ү־}\+|\mcs__~}uO~:ց[ZFTjP#mG]E'r6Ģ[TBM&)*e8:])RV֡61,1 Pj8";M +0A|H*"_6 CSrRiD#E;(vf@&*+\S:H@0+ԋªav rbHM*N *֋J> N*UXRnN#˦|^6DLIC,W[UJLpiB%Oh`r`,ΊJEm%g3+KgB %Ԧqèy )glsixyC ^ޚ`Kxgȩ_H FH=)ABLVfrc]*H,Fa`Q]6YO6\ c԰jLz0Dy,qh`DB|!%S J5wSULI$ H(sx!tfP( Nz=4Af"k,}h$)A:~[I Bs3P`iP4' ﭚ[{hvSO-Y5kQ?VuP+x&AZ/6/s_(.TsH8__ecc^PRER2]n̵4==<'%jbeNO?58L{{jrmn9C!v3yD_|ȿAvG%NREϋ*R2~ު"_R+Һ_^H"ޝJWʌ2:lr*ڙ ' y;oˌmo~V|vZ0 x׮pE83S* sv޷ |[OmGumh`xl4<;;qo1p=T81떤I\:810Ӈ?ν{9)BxnoWqo};+/Mtq}g ܿyevD#Ranٳ (2;N!/0r-a[Fk_߯~x7 o^-B_^/eoo-p@߮+vuuEI5{On'ǔ:PQsdoOK7f`߿x տP|nD;s.DGñK' . LC7=x`vs‚LzԊk*wtQ^C :ey])q)DSI;T,`k^F ah 37JJDk {qA 6yÃBCNADg1Yw8c<1Oaq0LFM#x`V?Kfl_qXPu:;/cvE_,伂mK幾;?7j_d֞/rE uwLٛxsW  7ڳ5=z Rb+^/G4dߣq㉊>?y՛︼# yȮ}Yn\s _AT&vz k+dV&GoKKuZ"#téwffW'rrJ23b`V3Qю%YoavJYyU%yoeQSGwn\|8> f>^ylJot.ؓQ}b4t;2zsXkGj^?%3Zm~jzݙdw\ii{33pdWO8 90%x/u=ud|0=qo$tzbtѝ#30]_ $DYc^/njo`ڏ}Xz۹/߿qEg7߽^besZ-(}P'ϯͿusGS#S/\=;~�y aaaa1Hi߮} VVf?} }qshb_WO[o? />~(>%69-:(-5=*0d[$EF/,&qFZ>ovbZ5*Z^шY !])bkTc\3X p̯2PjZ]m( &9+Tr^/Wi%0ƤyѧT-vAaDI^b1^ʠB%0)q_Sъ bt'Tv-,cV۵b4bx^J`'3zAjs<Œqr.M$P"^qHԱ e*9b\ F@X&3x26_ޚ|"oȟ3[8 9 S3 &N!8D<1#d@+VJp,fQV)>hHeIc!I *榱 iHbf 1q&gv8%6Ⴅb-JMf3H'=Yb7k#H#X`Y'uY^e*JJ iح2/s\ TK\(qx7#1G0 cLBph4!d,:l:E q j92C12 %Ck%+$-CBM)wg_וc\qӝyx ~twrts}՚oI\,qHٟp:rݙkҴfkϤZ2 wDܗ4T=p&=Kۑ;Wk%Sw*I~4F4,J]PGSn/wWx`[]sMǷiI싗MSOVU -˴|Ӊ;[Ϝh9SwLsWSƖΦƶڎ-- -uMg("ւܞ3-mMj[;ڻNtmknmli@]=}}=gvBgI^.l=s_/V{'U^\g0k:֠$cA* \`jT@XŪU(JH덲@$yj?oMI:LT^XY-'=:g2ܩY+ӥ+w.ޙO*$Ņ% '?ydס}u] D>+cܽIe]{ѽ'{.?Zx267`nKsV&>{|wz|gpdy~ ̽#COg^1-LߖRSc}8G3##&\y²}5iY;Ӛw\={g{_sK8/|ՙs>K+n,/-͛7sξ5reϯ>#O?}y>mY㷏篯߾[_^}jebƒM 'lkpDˉ΍37|xdlɳ7?>}ݷoo~/~z/_o_˻Oo?^x &_\>{u|'C>GmNILv"nn".*-3 8ϛZ'Vb [j$D͆&Z/0Ze.eGVAi N ; U0'4 CDo $aj=Ol*A4]{l];J scMo JEtn.2<Ќ@̒25 (yPU\Tsj)1܌Hۡq9l/Y&yIۓ@m71֕-0ς/_]tpo_lǿrݻ7>zo`m7/;35Iw>tzzxs 1%6g{&qX:֦^LOLLMO޽ӧwdd'eS򨄽1U0x=Ʈ ?{zF_,N^^z::˳OƗg_=_][x) +>~wk/ K/?~}/o޿\zfo^.{jy[o76Us/]}W^9QKӡ+w/=[ronG_+;{;n _YX|ۿ?>?$ ꀿЏu9^{rewmyfqnG@Go]rah=~t]{vQ!<0jfhѤf`S2Sa\FgrGA^JNҸ:_kwFZ.S)k%$Z iBHAb9/V&Uf;Ix)",v5;"VIgShrЂ/ r6d"y8 'ƀ>cZJDnv|Le8p 2-3&+;$-[=+8?(<ݻC;;::/^(I!`w(lIwg=2hyvl8~r7W'!ǑgS#O&L=5##WILIHٖZ}[jAq؇wU-M/O-MO'Mߺr/r=H*'uFnGl  yڹW.\xڵk#FG޾}Ϟ/M o/pJKl/EߕOffMO?xȵ˗o\t~_./+*)++KKKĄplIa4!Yr"d+z ɩcy"Ma'5[XoRM~jE BH *66-9勥 /HMBթvy ># 59tdcrH%ܬsum n&Vm@'P\ w {[tZ<q% SH2I+킶h_ lvax)KQ}xaS a> ݥZCƓrrƬ691v0?|+EС§QFe Y-exB͘`hsIgzo`Yy߭ -9gNQ'lkՊlMIrpz'\DGh5V4F"V+1&j+ /ZDQ8L&SyB.7)`,i:\7…ksH;A0Y|x.` Q )fp  aNU ,  󕱏NM,vZeҞLrgd-ɺPfM}WwHb@!MӼM?PY=DpWvF\dΤ(GD Τ,3{6~6 {: W(rƖ"<˩l8%+RP++qq͌b<ċV~;Xڶƺ3'Z sZ (o%v (# 0p͝uZ_u!삕ۨh !P8 FDYGkk=>h뉶ZΈhթOt'$y`jW 6(ZJZe @"ctE՚l TKRmc dۑSgq_6#i2GM)SqGp\! 88*0IJNCL!L*:0 MB05%yǐg1BC@2Ifh"` g2HpU34*/uq\v#S`xxSX*9k)6'ӕDjG*<K8o&C"œ8|YȖ1.J28b6g"8~琿 L4#`hq| XAvṪ+5wf]3T=elNFc@*=@vgbGK5E,qݨ_ṵ7J7 +^۝x\c^(/q+s7ehN'_bEtPkBѕg(wt[: e.<:!x"C{BҜmԃ~au!>EW0#ռ=#C}YZH֎:ՆPkimmE zzzEֺڭfJ]sg{ܻ۹l D%joYl} QtJw'FY]ԋyTf/, . @H"Dj1I>,'3)^5hlD {55ťYIyIy)iř92RE9ɹ$.(/#G9s/a'g&@z/d'c&\rŖIpGQ^N~NvFJQJ'Ľ /^TO6u޹~̜~f?^) ޭ~|D2R ٨֖gfM޿|c9;vW^|7o_z;ç>;|'n[}f/p_ml%=! ߿^{r8;6vƍW}psGUTh{q63Ңb1N"}fcGxMp=䴫 ^4.2eN&:揱8UFl KT,RORklrE3k&VRk&lYZZ $RRxO5)1BNLuF8>;ȫi!HJHRf*Lr6ʨT1nj^ԡ|%["y6MA6ϊTC'q)) lo( PH7dm2QȖjD/dJh93L̕sH;Mzln=W ‰}X0bx.5V ފO~ф!loH)J#t!A~r`owk_qm2E&=[vs$"xaCY` lM 9UIyRh8b0Wh^j9Gn( I3"B0.J-a|:[ o`VA>?qHAYy|fYBNejAEjQ'%N-M^_wcۻۯ^kpLNotDTby#Ï Ì//ML<_x eWX}bio'9]p~5+5& KWU52Y-s0GKBSkA `Q* 6Ckr^|Z_Y1`UVt(θIr8;I&g[5<ƅ6Z<1+ D'iTN,VR6Wy!J@AwQ"D`H`Xi q ,At Q[ 7ZoуJ&4H+Bs0I5o0&9y!&L3??`_6luq1`+L..Z X珀q/){^^^!KBc$#iRΗЅevΗ8\:Ov3Z׺0q#/l$Y)g !^>- "xrM-ҙ! k +(E>3z4T mKW[3û"D.nUݟz6Z/,tO/9߫"Η9{mm93)@ffMH8_w_d( P, oK#J,pMm14K»mE*&Rz:t4M;(?튖.8CSTKsn_i;+ q:j5ojm= Dw7 tl,JRCT lCOo@=oSokQفv^BjhvϷ>4t<8؎t=Sod݁+ ˳bz\H\&V _j_j.r_2A-q`'H`yuvx[^FlNjԶxwh5Ja~aכrVQm[y{j*gVd.ȫ.~оO:I__ի ?}<6tbm?wn'!t-=~Bfwpsnbtv|- oGE >ofRBz\|i$H ^Γ:Oo?_~ltce䫙okKnvv+U[VKܗU72$w#.6nhMnG%l?vcҹ;#&gƟM? N-?s߾\̝>SO_B¯VfIbbñnرowJnNk_ ؼ<ՃΚ;.l\߾_6u￾׍>9 uzFf9k3xI42 羼:3@vM?~8hr_QUVP_=w[B\8ly)IިHK\uSC^7 pMJr} 01c0!V_-2F-F2* GA0 S@\nø k-;(E|&qxX]PU ;PnlI6%}p8J8ӑn:)ȷ;z{oPE8tK2\:Z'$ iWWjU{uW$,@y/ܝ چt}/P[[ٺBGG\uT}X>4tX)5\n ,SSq fdkm; :_ڊ^ry]gZNtwԁйM w w?yBυ ka{ڳ:vtv}]05t峗.uwtnk;uʼnv6;rrW~~t?UMc/0MH#jjt +`RHTj1(>b)/9b)]g#̸fTef%Tf,.Ng^aq84V_P8//0?M&v[qpuºSG1FGO?856JY;?1:w!&ZwލK <}t$k[ϗ"(՜];?OfX}ta7Of޿|Pf?̎Iy sRr"3R2j>Ks[=  %W^Q}T׻c`hpK-?][YYx1O 1&߿&{^}:ɣ7/_:wdSrJNMc=>H/=\w.5/?~o6yۗ7߿__po>&zf"Y>ެ}E 8[_Ӈ⓹{#ׯ\'զF%oK‡!aSbFxIvf!^\n!½ZG2"&[K%G#<:JXEhkj X* j L2"I&]Kpڬy!Ǣs46c F&d{ lh ([fM72)&e hxj!Be|9GkUᬨeTGU If@X9p$f *Q0 BL:@ %l ՝u &{PYAd G# ͬws Vj-,OF@JVX!6|l5FGŸNKyqЙJIPy"Q{\|"Y}[ޫ%uKj{7I  3xB#!@x;]k}ώ89.3{GÎx"#Z]TeQ@0[BI )`tYEi>^ϋ bniYl/YQQPRB+-T0̚Fu1][ΡWԗ-2P [UPC/gAՅ &rq%)*HE ʼ`F-((e[; xzbd wa`Vc9c<ҩp/ z7xQ6ݙv]iޜס6E˜5~x t>g>ܥ?1Dz5&8oߕ^).^jF}]]i馤lcJE̿t[7oٲ)kIr}A#]q}rvkm\xk[|ĺǷ}x6x_~y˫O_^뇧O7>~9va\׏ggwo7LBwM\4zؕs΃K.\loNo4t& 8saF3aE!Q f̼%&˛5Q!T F*G)5$@,JXg5RJ R3hZL.r8T.fVH¤7RY9T6jK8 `WjPȌJJđQ*jZ(Јz)K! *xl9uY)Ԋ$ؓc̤3pDT IB լZಸYE#kPd, EU7u¦ztq}Ϋh*WsUMfi^ E"ie>?`eAYm_kVc+Kk*Pj*UU$|KzYI]yiC92FYq]1\R_RR_T,jJ jȻ'"rrҪrZQaAQaI92yhW#-򢒺JX%P 87k0BH IP:mrIY3QV+UՉ`./% RWUWV+([UYR^N זer˪)cWJؕ%܊~U\XS(ԔM5:x++S+ oiFڦҊّ9CSs[ C-sS}f2Bܠ{OJn /{ڏO͵)&E٦9.dQZm: tMZ|5ty68lVŬ d"܄鲠$|fv0BVF:Lwzq_0x+Pړ@(L$R~Mx=~r!wS@#ȯ [E,d7TK򉀫XtblC$(BJ.hRjAԡ3+pMq*v{rL+h{Nw*f0T|}7 # I'B9mu7Zi22-yԡKN L ;5y O޺ OM\"$Kݗ$QGIk|cN:@*[d2@l)m Efs4{6o٫<~rgݗ^{s޼ۗoq5k}#sTRxd.gWu .\>tsǯ\9wַٙ=|`o޹1~+.߻wwo_?Iwt ,^~׮ɉ;y0ݓnȭ\?|gmzᯟ~_>/7~z+]f߇ `vcgaOxpAc\tT:mIW0+PF> KF=^Bׄ-i (Q/u?u{́Iٰ?qGGe 8~3LQv691wdQ N Lvު6Xuj\gF"R*!$T(V $*HCIg1K^$O^ a4Xd*ʎU\u&iBD XIsi(`GɤD{VZ8%tp=pǦ@w߷{+ ={:8Ko_sɫ*P{6| ӷحvo^'Lm߸xr© B4 Y.z˪gg߻d{O=7}7xNٴgiYvk=<-ͯ ]^[WWC.( >V3@dem ( ZK&z .XO[a+T陪i$vJQ" R3+ ɔ%r‚ogßY/\[^PÐ :S.P|Jf7 MÄa r(, .` "\A, \NkPb6Ӌr]_i(1*5%@-I۪oVՔZb𷾜V_IK%ߖ/mFRY^@3XFSW;-M_; xeYu[Y/+=K.A@jIj;⒣]L>Dc8 ;ݖTnMȰyW؀Y% nVlޞi6ܚVp*!]-t5ͷ3mL)-#mX5*VK7%0&a=SkumnJp̏n':]Vh,ZpZ\ &-g 9~gG Nq÷!7>KeՂћ`:K}Qo E=:ZrD*KN Joڭ.ѦylN?z7ƬVT<^XR^)@0/,_FBMX.k%&I{ ¦. x+5؝ә눷e^fGQni _kk35o^L2sZ3T0wܺ=|xӇ!htnM\@G0;M_?}ͱ; /' &.}̍K.^._4bOޝy~ٗOGM8G?^ݱjA4`oX9vlCW9s23C~ZE:/WF662Ck<}X:=tuko!l۶ı]cn]9}M|4st3`x ;9~vѓ'.~G緭ٺwg/^S~z|yV/x}^|ofɵ>^}_'3ϟ#5Dy͉c/(HfїI VM؀ZU!0Xr[Q)m|^آaA[Hnh=. 3c#5z(ܬ"e$s &oX5 "\Tg@2𗒨KD_]̭)fW5VW酌b ^Eb/Vei7VT)jh4]5 ;.8g僿{3c]ZTgsŻ't[riHy]h%S0'@g-t۴1&ޚ? u}hߝ-lkF-cZ<+7؛ u}B7jYɵ-}VW]D і uvΪ`;.ݨkPOTr@0m,] &(CP( BDP©\zcAOŜ3rEΰ |Q_(=?h~|mG ]> PAiV jrT ˗9&KJFφRr]p-V-B'sH|aZK.o,[?<'hcxno2"\ \ѨgO$ b5ͥ"Dh}Pߊk޹'OzhX"H.ej:W޶tz3w`_ܿW>z3;ɣ=`nn[(v`SՃ]n<=|I%T Y1V]Kv,4m=KVw /Xz~aс}Osw߻#OЉ NȾLo/uӗ??_>J'_~Ӌ/_^}믯D痿ag7/}ӧw߿K;/,;w'&o_|ڕsnBM&=>V" tca }.A)J3kT\#%Ge"5L a@K=9,.nhd5A(ZM1Se,Pk3+:AYBXE&6bJ#aRH |(lj6$TXTZEaE淼6R[RPQŢC5zNje\$&M+5)Q(%|Ig rUTg!jF otйpʰh,e7lzESu A ls urtf!2Erf] A67ٕuf\ S\XU^JK*Hm]Gִ2{}5 R\_YTW B)"[m0)+J=&SRDy?-\^\R[QTVI_󂶀iFDv&æAʇ#@aU.h:/lmKTTe63^ m- +%|F^rXP(fO/]^UĮ*l,󭫤yX,'? U}{"L/kh=ܒ(;1cZJϺ#-v7' owf/#؜D+Š1j]~8X2*H"D+ R*@ኛ)x&01\ #aI|nmscJuhN]2hl -7rhn_{, zo*hIݲvŞv:Eކpŋ@O [A-2/_>siccg^=78?6ztc.=W^0XYפmhJۜ!~g~}̍'_<|}//~o_^ןS%sKx<}Eޛw\ ^ >{g&ӱt6ۺ[/Bd񻵺,* ("C3mFrSR4B@WoZB r QX z' nTV5BTeTj-x^K*FX^c*L*N3K&Ҧ'U[uj'=).zldAX` .*.|6]g 8­q׊ciˈq,^S!^BDaVA[- W!}/]>'\-DI:n* ҹlU(&bA#5jgEE _eK1 R~aB{\i5z TW[5c$'DFJX)E<{d&Z3Јa7\0:(tJ  gxܛDJ#a 䂿X8=D"tߧT:-o=b *`_ϓ|Klmԓ2-R(M6ݭq:I"6pXU ӢTߚKz3mtuAF#X4psVXpܥZܽYs|{;=)x{ ]|!X߹3NR[ݘ^|(/^]ڵ3/}rF5t OKGS_6=ӏO|y9˙'7OOnݝ;޹w-פ6l۸z=k~HxSR⭋6lm^)$S TX&z;߳e7Y4лrxަ;n_<ҳ`Go;|wN^ldWN3G~=߾O~yYȩF=??߿po~|\3L䝜z]?ű W;}{\0ϛl  LE˥="t<0mۉql JwٚN=aպ:@m56 ʵz8Bf٢%D<6שwPׅcq6 7MDΰ-D ў ežviZ/K8>Afi U!ǂހHZ%|.vԽ0[DW!P /"ƧˌJX]0B_a.,0o"c7,3k$FJ`W$9+֫g#VW,BRH :.6ijR`NRhPZqfDVZ Z&`PX,jCi ZL(7r!(j9U.zI}:PeWTiKߒښW?.,?<qi j|qlzajblF"$fT'S7_Ǧ yNm@/M=___J_UDuBQ_Co5j[1pXEcVҚj i8r:V]Gא%q5y.[YW_n( hq>H|iix[\78ܩahS|nÁv6#;LHOO13vh~loKʷĥ5~84<K.զ]lUgÂEkpU.SA֬|SR>!- VK|hI?ݸq7s4QG)bU,k\0F4.ljlj.7% :^3]~d U"vf#y565Kn[ JD3n [~W4 qN'%[D۝A {@$lۜz fKݑwd^2&̂E7) q Phn)RD(b'uٔFWĩlkʗIx[B-2NdVj6;:ҽmme Ɉ/^ =]6;̙#kn]m4} ҝ7.߼uč;vȋ-Is33?7qą3WP76kYv#RڴٮcOg_L/_=/zr7O<Ow~>5>[0`;JvQ"aĥ>w<q 69,ɄA炴N-&"g3$Nif_Wx5nrH FHi7%+H Ԣ 2Lh(`Ku4a@~6Lc7d!4m@6$8ǩg3a`3L$j 6p-H.:"%(XntGT/5A^LRe^G, 'ب&C 0G Jf7DZ%jHjlUY2 h43. dpªag8pr L>IȩdUUW#5%>J9taUi9&8 b F[W[jԢV_1eF[v rb!:OEl6ଠ&WXΫ- KtnݪB~U*dT[EVERr0[\J· 1K)9檶ZTQ)Khqq6-g溯/ lk՜46ī=IչA؂ٹC] ɁNvcWxN>{{"Մdߑ0Tz Τ`}GRҖcEn qlV2ΌhckF[H7c/ 9^+PRUeUMH66")MzPn=ArڜiUbݢtX栏Aύb-qO2D $ Ҧ]2kj;a8LL?Ԟ8Iy؍$⩖l(%mcq9a"RjXk54\%ΡH2I($jq#a27a ]x#KF=#rRӪۛklӑE|֬o?32kq-߽uv:~ȏq+go\ymR3{7/ݻ5vw # r{bP^;ӷ_ٮ8w;So8{k-|K$TQ_1'|uG^ߛ=ޝwۧ^v_~W^}d{0̓nݞ9~c+ƮpclݼeM+w&3-l%愛 )2zx=V_YX[?ۢ#ו U-׭*#oE ,8[VF.K3|Oxݲ ZumQi9IaW֕*  E4u -h_ ^]=U*jdԛÒuўövʶd{6\.3{Gn KWD˝- ^ݾ69t]M!xS78oݕ 程V8[S 1ΌbW 6]"g ܿHϨ* /l>bh2%˦-iw2%%hk i}!GEp:&pySA*FHl 97d Lfć2 z1Zos&|D:|]_(97xBw ɦMnjB!7 ț`r<A,惿xH٩ThՒ 㾠j7b]z^e#nOv%z; Iwd߶9ݩys/]:2g=q޳_=5~5Rn^;y̭KwoBW(aYڥcN]>L-lg/\:4yg+F_Bw!`DrX5>ׯg?|~G ,w'Οۼi@"qEDK$IX*JKܛk_:w+ch)Tb2+fLM")@m[=Ĝ֎E=KX3ۺr碮9M~8u'xϏo{OwR~ |x/^~zwz=)OO޼y|;g݆( ܃_m*;ҧ?e<QliGGpG 0 )Ƈ_"#]:hǤX@]hY`#Y  $ek‚AdMR"&~Ge˪ʘ&rvӪ'B6vaN+ 9p SF;OZȓ.gFq0&"~7w=x(֖&Bj\1? [T`u@,Ëym9 s,su&V58tIљFǒq*BM.ʍFe6̥٤/FvVQp.ۮnvh_8' ">c{ <!ݛSӓÙ黷(>s|ン6ݲu9}ml4#:N㷇A7v0dT*u7"^':v`6C>#V h$ GR`*0L^O=/#KXp.뉶dSVX` [`.X=<Lģ(_𡰛x`=T<ђ1 ;D=y7f=E[#l1oۼ~uQ@O*e GɛA{$Ba{d)Ub,6MΏp X^_qdD)Wȵ62}`j& R5U.;x2IaDZrl ab]F # Ë dM&iڢWFԁ/RJxZ/iel̬[:5Y"NYCu)}BڷKB$4r!B$W )+[VSQYY2QUs#/.&Vk"P`Wm&_lQZLU\>S0Ф3bGN磞6ijƪ hFYeJas(ԑDj9 elF9èX\Y@"m}ES3^]P 1dw*X͌"i5)[Վ.I#m3ݦc-aш>Z45Mm+0c(nWBRݚsZ=A֎pHi{F۴ ۸`lQn Ziaȉk#q)0- y. ܪΨkRZzT xZ!aQAqj r8Fc'2ꂭY`k8nϹQ dHuH 9i8M'/rD(|Vo"-"rhJ2m7D;"^$, ƣp59lp4|j%AO.5*NmRi*jxbs,g& K +rA 9X7<' jJL/21u}] ᷯ#j7Uϩl G w/h۝Z4n^xזՇl={ o~ͱٙIguz8uSO݀_Mˣ'._;9qܥCw\>}PJ:5a?.VYBNo{ޚųȑϔb#^NӃOݽ}y jY=8DZD [Z Qd3Q#)O0 z\q]2[|ep[=y7as#A[Ү"dMJ;oy8>o矿U_ Rח7*D|&.߿;?}Oț/_>xӧ=;p4/{;5}qt<W^ ]+ZZF%Bng[3oV%>"b ~?ύtԲNn eC(fI$s4 ڂhp_lQǕ(Bx S wYWԸ-:͛UZV7Ֆ*QLs@>/m炿Lq~ B2BS}-QŪ/cH0G(`V >V *v`nww~%lJd2.PP/~ q88:Qf4Bp唸jˬprNS,g4VRYAU* ,TM/OYuLfu"76ar\Z]*  6쒜Z;= h]k?mڛnhu"I)IÆn;|E ߺ-\oS3{L[# q~Ry[Z.[m\L4ηᅱ]eΩ7VFEKBi$W Z,?aoG9cmY RKjffff%[fff1ٖmٖdfs{wc'؏Ov^x##+ 20.݈S n=1@/ `+@i=DR[_"5VڌRTiPfQK4pBVuK-+Q6ޤVjF&p}݉B& [R1W"jsV8ԭHޡKfbt n*d;pVU W.\xh/ؾn]z830;7?~@'C6{@^ؓ޹v֕;/޸|J]0D|_y.pΡ}Fk'f dҞH=oGF>tl}?6g "D Jڃcތ9{jfbߐ'mY1t9>S 8_nbSYl(Rݙ{2+z"=CEV-;cq{3iKzT;~܍?뗿}ۯ}~jlǗ}/o~ۧ_޿\ #=)I GQ߂[W)|A:w +V.ѱpP - :tпxj69h͓J_8QW*n/@sk (AdG(Kq5zQ쎅 d1N{,%m't.O,1hкhX)tmQHp3ZժEPB3:r2KGOK:Y]wÚl^}|2gD{Zvj}_~׷?"F~+ 9/džǞ-"~y[܂{捛W.]>w/S?ٻ}5/o9' Qku\޸?>ߒ@CcB}y_j8LC Tu4L*Zl_12T8vq6Xd2ҡ[k(Ju/.BK:uBJic1"x' h'r\\d Ya 9ڑdi/,@w*N*6>/zK4c@0h CQ3Jl(v]T07sءv*%La4p& t~' bi/_ap? /Wtb K*I;(e&4[&TiqP N-.g ahVת6L)0V],4([d|hib_*4_7.ť7ִjjYs])4K,EZ͆&DkZ& !2IH֪isBQ~u<KLO/%7?S\bU6674Lkhdb\N-lkZj-]Ǯf5\vC}sB6 R]="y4n 1WLUEVCQ:8=g09ءq7d./S3M̳5/6-gXe۳9>,[/s7mM%dR^ 6Zw["}el]jdv-t4ǐ[SR:G妸dcL}#їϞ9t8 O)Rs٣m gҕmcC2W[g2Tǀ;:%D3f^(.H랻6۷8`V{fk}/_?}Ç>?׏8O?ˆ󇗟޿~чOO~{{?xxvy\vٓ'N=pp7l\9k)̝BvY 8<1_ !H%m :__qm&k" 7F\:^Hv YHW:Y0$"Bu:[j0A_CCHМX6=) )W\ZyK|""ѐ;ܕQO,jp::m0sNn^w:,2=x 0PC+q5eVzӉ:@+R!u 6q:!! 55V=|S>70O ) ^&163G U =J' ( %q2 DnpNKOa&-Kۂo@ 7 A>䩓8:[+o.6B *2AJ`7pWO-gcelJuŤLaZlRC*~ K%EӪ8*k9h/G;6M:שp-0:N]̂ZU J vKwdMeLcLnh*c6MG*oni4T2+̦JSnoimjjdU5sZ:Qɪ$j3+kkڦ:Vh>breՔ \l9ckZ1ѓ*[r*&{yn}:7y5.]n DŽ{}vɡ^5Yg[dc-q,ulK+N̴l mdIw}XܒpJV9ە"ܓUn v}o"osvr1&^lnӭx9K<:?g@^|jLSXRT:duF CȩJ: d2ȳȘ#H UZڈ#Ƕ|8FQG*3%:- Pz#3|Єp-l貋 P[xa2r"+fu|ҡbk]8 &rbvVT-WtX)Y̩!ӨUTհxL&|KW-X&.`&5pwEs(v+1YTZ sW.X9`6=s3{_1/=^|3#+ܾB>6߇7ݿqw_uGxKΜp W￵oω 3|{WkhW ]P"[}y;g`.K/D4_߾O=zpֵEKBnLl?J&am,왷g޲󌮠v KYČP+ɛSKsݫsO^OߑaD>>za1w~|~?7/y1 iGG_7޻q֕.@^v=}ݱiZwUB lRoٝ:Ucvl2h67^lD'p8m S.Fn/^g2FY-E#~jXVĠQ/5Mdiy Re&:"q\ 45r.m}&8-%`&5^#p@N$u>7nҟD:@h Vq: %9"BŢ)y5VZpcô} ;/' ~-[7[r9/_t.J|.$WE: iY4Ff0į*߸;AjB i=О0k4 : J@g﵉t*|Pj`X)ߑ2܌=㏐t:4v0:<DŽ!IFY 9BAo<_³8U1pM$v3ȋ)$."3O pe"6KD?]h[c"o]FKm=t+/)cT6Vb~I?VM,SkdrU_TP3jZyԲSj填&OcO/TZ~򚺩쪿 [;\G\gf9kNmjpykL?8\PRV.*Z -IŎjg^ .n͑>w9!^g J\T->aA\ڽՐ!afʗT -'NHV҈w~(*\r4:EmeJ^u~5VBV:3*PȀn| h "'*#E @,Rit6q -Y}^W8qZ.@$7u`&!3j&e5\)XlqaV ) :z@ab3t"` CP"!WӀKH*JVBji6-R+ ˩G̃>XG1a&3hNY;othvq9[-ۿm][y '\8u x}F_I*o>&5 (?s\:ڗ={ًG.>0z]ۗt*SW/Rf8̧Ν8哷ch "?هG|rgmɷߺsB"VܶYB 58|lP,._XRY}2K._߶|G굹9 Cg|}ٿ|xE~ ~ӧ@/RKʗg_% |o7n^s+/^: ݷs㦵˖/i=N&AR"# Gqg84vbf3Jr0x]B z`(+XȗŒDGwtWOGT~Ca! .\ Ô@g{մA'bN8$CCv85diCqPz;Qz\ڛIm –vB%sC`aH!xn:R*+juIMƵmgf{ɂ.2v]u[B;-ڗmiI߃]*-CLlkZAu՚pKRɫd[5^6É>ǡָ|޴YY/D0o-ivcJAX y[9s=-3As=P]PMKJʂJ$HXVdC%`.+j<׎xXHy1@6_9!<;"=nRPTM\`~3Qqw$L;ypS崐^ m|퇑:hvf -7sU?}؁G:~Οpߛ߽u,{ 7F݄|œ[@u@݀/tɉ% a\|W/uG3snkslKw/ subX;3_>{7N1ᙶbO#Oߎ'w;vgo{pyÖebo09~y-Y߿~2 W>Ra؝7o~=B\&/5 __*߳Nr䑣{;6P|VlOP 9d`h%|u,/dNA!?PNʤ8j̤g z[5/뉃/! &-v'8N#2FCNteI|\Η@BAW6ȤwfC9슱{;$;rbMղ&X+2-ږB 7yP5"Rƺ`붤dwF=!YkݓU 2u o[ M#|\&Mh/d oyL/ Q_$ \>?\\(_Cث >@ ##q:)NWlzb_Vtg7Ԕ[THF D,kԋC>S*.f`+<Л;chm )=B&cQWWGbU+ uΞ5o^@_qKްa=ۏ;{ꥳׯ/u:[| ?,!_@ BB޺zR޺|ٟomz^qy(P?c[_P$0[~rTRV*o^ {~ͳwpnj=|oF?˵g4e(5opN(hlj,q` tCxϚ#bơ%O/~ۿ~x߾4˳o_}#F0zӻސJ??9%(/ӗ/ON |S3{e_}۶oںm[m߸jB0 ݹB+ gx.Hn rP{X rB6T̡gF q@Bh>ezcP"q;~:sFbRbMv': xJ9Ӆ#C&:ڨ0MN0 c$M*$z=S !~_8B5FпD zDY0q "–P;+\:/LN0~Fd&52(p!Si*]Pzȑ\ZV Z5 A^i>DF Vp̅T4o tF 0}, O"H{ODGe T9qhO[Z"A:>[)wJz/%LY"".8 dlH5Crx&%gS7۠f%AB,pdeʅRI4s *U+[tt((z9ST7Ymcy sz5vjYO**KV'F5,bs o| iH RȀ^fH"-V=t. jIkekj+ FմV`fM^l7:utnbo vF[Erý-ZuiWQ||~_Zu>LF-q2_H`wA-._htuP"(XCE\yCT!*ڞQnLH2wIT07к0ěfsxȺ Zߴ|jVS헔4L6, o/ F!B⃇Ét Hқap֙m6v5Vs$(v D8Kw#OY0G%ǃxU/7 n՛MUz`"FR |:\}+W(nZ-&ۮ xt`̎g(mp{>וj9k,Xh-^{x} '=swD_:}܉+'9{mf x3Jyɸ8^͏GFmouhòk'߽|6F_<~7^y>/-a޸|ܓ޼֭+7o&lټ.IR[mBV a6kۂlc<ߍ|})3_ӫ}zFOg/_x'p|=O<}DfUB~cۿk57ݹk ݛ.՝d8i9V2,P&+|LjgR]߆6/Nd> "vo*$y{8,h6R kE_\!Mi`c~:R)(E`6b~B#roWH% +A'f(Lړs< lAJ@gqL6 D:5wn~`KN@>nK{3Q28ΐϸN3mM @ (C0"!g;M*2E(*W*_pVa2`:8 yڡ.t:nR4*vaEi4>茽%]EG<TAŒJ*Q( & xn1}e:l.X~Ej)&P %Ȩ=A1d-2/hN\qk_|ߒvKx0+wY!$ JzQ+Sʧ]ˀ`슅݊ikeUSk*jCV>@Zfnrk*``Z4iaB-(r94huj//|ѭ?ߗ#$6տ ĄW42j0a37xp |QӬȦ|E|W}]ҟ 9/]῱O}a'#<~|Wφ}twغyuȣG}㛗^#Ϝػs[Vis4%nw. [i6رx͛/㷾{~Js2>Ro?}WO_<~>|nyt~>~ ۽gێ׭_>w@gW.s;\z:Ƭ9M3h?芷uz/ B+I;l83{=d; n6<pT.*gh15{0 KSB"z7*X!책=|%탉/LU 4BI7( їLj~өv# frSrqs4H< R47ydnW) h \At:Z-WVX,ddޅRE,5M"Q=/SXL|nE`6va[V 'b B,f(f EMZ_ HoiHD@Zf5–\6@m]cmjmx"XJ" -d7VWJ+Q(Vb+T:^PV!ڄMTSVUO`V1k+x_9Aٶ6=yžpm_n]\` A.1:%?6N#DsY йݲ!"]䭏&2fgJ/=X4h3j7e"1隘t`he+7Ƅ|қ:&ڒUIh 8v 3-p&'u:nSe5!&'&GkVy:Y4hfh{vCп d>نo+e&qH+gKoMcuCcU3'h[\& :ݞt2 xuX@0YL̞?P=fvttfXfҝ6'N9}ع.\K(H U-Huj!`U*B%U+eRUhBRdV665 l%[*8-X:9}zcU[[1zDri3\㳃:G mEy4 [?)۞owsiT]jgu&+:'y [h.77H$ۢH`2GF~ӰޒVF9[ -mEcjj&ۘoHK%E+u)rIH'X-{B^h7-MIumHRTyƦJ .p M[@-B|2=vΰ"@ "T3às'M'^;$\RUPfĸˀ y~ϦAnRuB(pt0mF9jo\d0·,MߪgQ v]v UQ'g-wo7 06~!Bbţwd, (cc=={/F^?}3ӗϟxxoߺ'nܻ|qFԦѮYӱn^vgc6w0-`Oo__?}:sI~~<7ͯ_^|B/yv= ~oKD0GƟ?FjG?}|oyGB!dF3W荐FbDL:JܪI _k*٬H IrSV\E+aE0ZSDL+A ,ѪB Ԋ "j.NR㚐|ZDVٓ45|VekCNlr崩唿i,3}#ɡTH@bvR4r[rЌpgF;ܖ,43G퐴{rF7.>T0ln E$s;2u 8w[bgzu<ԸS;^].K +#U11oJ. ) }ncgvX&fBUVG்S2- |(`8rey&cIB +P,_C: !H`4 :eϳ;vɲ/.'Re8%RJSQX!@l5Z Nsl+. 6"ÖF [i5˦5U*95ܺ  :Er<^f;y /]:{ٲ9K -_: ݶe!ZbUKWX ٱ}Ǐ<}3'ϟ;u)˔'d(},Û_9mk}{{$b,Km2$˶-${VrJOyfOSqZzikx&/iR$*.~;28166<8qD)o0.2miknna^a~}+o|RRLmc͵#im#leiz, ~^](\^.|a3c+SK><~4#?/r?\Y}W\WhT˗# o?o}e󟷧c+F??_?/~^$<5wmyι|q~\$ 80qqui|~dh~wK훷4߽:}Б kk1as^)*EA:Brjj  `]5rIl`hDS'&{ɸ԰.]C ܀)tQ-V z!{e :`rJBúb !Ip0%pmhh_U_jRU}_B~:v&: tR1O"b .Sgx /Ooxf_ Pj=vWā&`TD4Nn2 4|GfC]T ]g*8:exT=6}n# Gn ,>?)~2x,ri kUp̥ XqYw "HKZ\v+VNhCRr <x#,K*a?_%Q]xɔ Y*.yfJlr̥wK\l+D C_Wу@_`dT e+9!S,bpL!l%bPLK N&V#4bT0C!{UR_ga)d"8 2],}R{FWp/,I:j5oGT8\3t0(JIKߙ%" ΅(;asXAO@Eo)߉ ﵐࢗ} #ߴ&?}=!q!kejXEFa7pI AX_Zpu%d/Cu)^ACH` *S*#igZFuQMM 4 N˓FҤu\ !Se!+!4(Όq ;{x6F|iUrQK._wG A0[,+%.] Je` B$Sugyի/\8vک;vu\r'7\t浳75ߺqNo׽}|>O>|x55vzz gXQ08`ivh"`ʀ/EL{<7ǎ F|QVt=Ӈ޿z:?40fkev{u"j^@f io/NZZZm.o.msF&ϼ}2|IVQdZ]Xx?ٳg ߯.–&66f˗[_@voOL~:*^_]˧lbu$ggC.L߾?sAO{Wݖ0{=-gOm|&E0"Um &Z%\Q2%ӊU&Wp*,o2 ΍GQ'Q)nW$ J 4΁*9`mA%!.k"iB~kOEL^31@=V x zdxޙL:A/YVd4d:׭yA?/ V]hȝPL_%*KI0 ԨNY]Q`1@%QeA zz ER63/x OéV;Z7b JJX`TB@aG%uX 4 ܨ";$ %EF_g( I1UV}f'<= KQWf#m E_T{1AӖA.h[].P2tp@'^3T0 hgxE Ө0Q6m:Џ+TOpBo!  o4k*?>\F~c*ղ,LE.K]}ѦS_|ճW|oݺrrsw/ !Zͷ.޻{mm{8td>z/ NNFyv=^- h:x, EvDt֫'=m9zӓVh|l4XEsEnVKK3gZwk 82qj21ɍoi2yia~jbT'CWϞTw_,Lz]>ͻgW>gz>YWy_e h~Y_]}+ח`ϛ+[ '|?.NALy>{Wϟt?mvF˝m7!o\>.]Vh0ޢUпz|HkfOtStKLfF+6 Y.Zhm+u#f?TS͐3@0Dg1.C| | Lm2ݭW<0!ar AW$LH'')/]wcK!6L TKS5i&Xw[d2xi ww 1 &f1DYf5x1_@0xY##A86B(ڥќP{P]ު$/'Y0(ٵjE2Y^4</,2A^] 4xJ$ 8w* x\tRY+8FMZ(p-P҇552z 4 E]N`xPpQ຀82\HiT (z2 F2&gĻˊ+er܁:=Gi4[h :y×e߶y!/JKKR n/9<08G"xei{39 v`߃>` }K.>: F#eUZL-QZڌz'\.^hEHf t{ݶ@0հϟL)L#Ld,SgudYt Ps,,"3ӄ 'R64XΎ:@HB!_UC?PW j>MMqNj&y"bƀfV#g" -sȋ2 xWĀrfȐx̥[\')JF|5:mGT9•@#CWʌzQM2N]iDZ~>z= N&цЪN`ټUq 'JX6RBU2T2@G#e3RUrF ImQZD:US)֫QE 1-Cnc?ubO> SįPh~W7e0][$|^C&-[%-q9jK28kThtb)hIGUJ )# d"\1F= ԂeJT ‡@01$* VkJ2MP!rfqqn‡VɌ=twq8E0d{w?}bu&Qxk7?}Y_|b(XXpI0ͅ/ۋ4=߿—_wmy*ߍ[ S癩33[33_fgߏs3޽?{v \,yJgG+\t&6[|xrlyy|iǥۛ37g~ޞWc{_|"8#~AטSTRg'?NAyl[ktC^t1x7Ԧҩh0ԋI$X$;$+ Mu Z-9(x lmvǙ 0EVDx\Ѡ?rAckdi*D e/SŻ(Ixf cG$J R kFi0PC=DLy^hߋ6}#@F< *D1 {$a^Y pEfrkEB5c e")|}eN*#j66⋓ MA`߈A2O9D[s"oL,0hU:[d2jl]6׀Pw$$0r&!4FæX Sh@@7U.;!hhR'>`hJT6 InYEg%@"a3 ChSp~mS<آL 9L(e=CVɨփQKi]J&bPC|V:mt~@bO˃wD᳌i8LuA;k.UPI2΃-] W*xG,pIt:. x*PSf#C,DQg4LGv+<|>V5_)@#p@ ߥ\* PV+pU(O xlaE3Eb!+3TkP|RS h4DRdR+<.]AaZ3EJ#pW!IE\v/xŠ⊢œܜ9?|w\2_〿OkTAz}g\Nw {aA-oEs}UyZܯ%peUҁZUOD;[ :tWZ%]89kM /J.9O):e̽b߉ xwoB0 w!^SME;]i)+-eU{҃-( Þ?x52H<(-Ifl}}F:L PksՏ-ͽ8Mlc x}ՌL}XGF[^gO9 r}޻۞=|;6GqIgp_~so^C#7֖f\Z[^_5|4]|ϼ_"]o_ ï?yoή[^rꥳgO9TX \n9VcX4i*]7}o)>#di@G,Ie Aʸb^ij1b Ru0hBB*3K>w* |4p 4߁@~ /8Bd Ӻ(v>yy0t>5$q3  D,M*Ac~3S^ ^(`1/Yz owI^* yLD kF[ȕ2劤lbUR[lVHzTjH XY"x:),!\3%\ȔyeEҬ]%;w..b0Kr rK vrF/m]uʖ ~p~bZ9PoX[v78nJ9;ByRDŽ"d\xDF [C;>hn V耩=)RkO /: £=Ǵ{#ݸoF$R9gIKA샆C&SaRKs/EW!AӵHdDrT2'E!7v;D.K*jtPlB*[,ПP B(+܊ʒfqYmqe1[%>pԡ.;}C й("m]B{>~; ~02=63ZmDF@zaţ֫o8v vﲈ-ͽgI$煙˳[+dl%)q!~?/}yL,:Vg@ե s[8`ѕ7s֧V'z4 ]::nݾ}s'rqQQAYYVe F9Yjwv{`OwLoۙkfK[dm2bkl~XΌ~]]}ZY̘/haya#윙|GГ_|н;wo48z߈ߍV{6TzORXY*PJhtD5V'0y%l6í1;Uo w:Ţt:Z_FjIІhL ݭH' CS{U t1\SP;I*" zt[6$ˍ:HGHFafQ`RIo]e4Tx$ 첓E~~âmɨ68I kdnx 6k o.Y4SFȨ7Y7 WfYi`) ݝGAgaxJ ߝ*dYJ>@%*D2>; bh1 eѹ4e F "Y CX8* ӑX892v+Ȩfpt.^ M=t4eԱTrҤwE+Kuѓ^-?A[ʸ 3T$422!qHdB@+BZn$8&Xg+J `!M6Iΰ hTՅ_W*()]swᮽ{hJfSQxw½5 :jU}5G *YoJF&3'7+{ 'L"__h.m :bm pV .j/R᭄4Z\XGZ kK N^ugM;*v]:A.Uﭨ袇 Ru9 ܤb7eUl;UYEMJC>([ N:ltuۀZOc05)=hIHO?A +Z`\F@2BF^qt&˧N#op{aZ ƭ Q iLg-R=Jǵ]{ Kss3.fE,r:&ws]7 u>Q5C>}h@@0@£޼x<|߾vg'_PطFPt.4[gu\psu)rGȜ_7?-oT?,:6N ٻe ϟԛWsצޮ.z5?r#|[+,M/>o>\Yx8Љ5ލ'Պl& Zfpk"HYk~7/-M,l,}Yg?ʿZ$aC>-|96 F+KkKs//ʙFϰ鉱G_|Nx>-o\:yګ4߸rtp9-NN ێ?LWM;HWcLA$2EGm)`ƟFI_K&_E3)h`AGO$ ց h XRhu#]"_L ,̴J '*ઠ.Wz\v3|} /נ5'¦xH0-zt@ :r}؃we\gqsȋW: 0`JJ|:bqrf.* dR(?QQ"@0W؂ŀ P\,0O3!pp "Tj-&FU,+"EuCWhB>ҝN몏Uj#vpb: {L,(*l)ytXz`Y -*|([KjU / xISZHi) \*-' 2BJҐ=mqTIoa4D"L&**.J]5"Xhe"~(jė-e|[+|e{v*ܑsoμⒼ=%[9g٣}ڡF`;!"44=)m/5BU_I_R 6;kn%Us5w-?S2[c:Eo-?՞78Fi%$- U nY]尓Ӗ\ɘ UYQ`WJV j*ŕAIpMԀP͛gM4׹\PJLy AiNʖݑp(slgscFөp=P |q?8Q4q`U?UeAa13ˁ=^(r)pd=yayŒ2v)WFmD rդCO}\{5@+}qϓnxa;髝Wy#ї0xݳρ`_;l+`wq5Jq$ e:A#({/@_:¹ѡ~k# ^gO[ kkӫ'>Ύ-OBnN<;c<Z_W&F[Z}IHp(ޮK^~HS:p+ !x0iMs8m;t@cu" Z)80~wG)cK%c .O)R[/:`5Tn<&_{#hM7Qeġmp&45)s&B/o :Wnx (AٝLeH!ѶRTAbaC$ z= ޏԐ&2Zp6w<$xPVdijCxj25pQ]Hp2NK;l\ΒBE";_[-4>aij4؃J,fhm!PKCBbTt# haO(`K:'!q ^~l5Ǐ)TSԣP,bpgVB9$W.h&==ov_<!)!?}BcOݛ'Pߏ(tRֿ73o_?~rkvw,fVVflo?-4$F&=F>/N4ث?>O4?<9:wefӏo_o>zƥw4_|ƍ3wQP|dζޚtYN,(l}pʹY_֮9P`K{9xY&g*[2+slvy7i6+rw-3TOA/p8VhQ,^PˍfB!닅b>_m1K*&)EBBq9}BLrb&O(Vd -:]H ֨\6[g$+嗖V.ߕU 7`O;{Ϟ?gwj yyOӣ({FRUi[kK4A+ņmsڢ ]I#.j s`x^ 뫖vW)Fc{ERߋ {п"\!%noxGd{D?3ŕ$}A{*茭=m+>lifkh%p$v8젰̕UkeQ 8$ ͼII @pzEap rᘐ3,jKI9 ( ,V* &El6Z8Jln'I9u}/o9-R|Nx]& 8anry4 .RU&JbŒ؊TZ,2*|ni>Y\*)喱Lau].mkN7@' ygF? CwZۯw\haoё?|?y4>: z󇯟?z32LN{ .MP- ic~~|g= ɑ ˳o|Y?}ǧ?֗~XRY:_&~|緯6~cܩ[5&:cGP >0ig ^ؗx깣D+5_k~;|i(+ 256qJV-Sqe Ey/9죞/ޭ̭lm,/-/.12iuRxkm1c˴y}@(c_/ e7#CtaOOw{wOÞ7/C8z@Sm]:nѫ&(l6բhlcG֏{=Wg7zXR,VI&`SP*7{hn9U{dR$H:mHA?`M8)S ̔6(AԻAO:@ 91W*HD}50m+2B!S0q6DtmNjujIgJޑR/˰ aqAsw|gGU{]ʞZuk\ ލjւΒ_^Z;H C\;#[_c2ålf?;v-+"'k 6`8Iģj- N4.(Vɝ͕I9R LՀlitJ MkkI qZ/htzL.lyހ!+|]\)-攁|F1#_ fxδɘ+w޺{Zg[s_W{ONχ^|p}Pg}ϟΛzw~m{(|0 {9zd_>y#tDn_ٕ)'ffޑS&^?y52%3@2E0.um5絯Aɜե_>-l/O-0pćgϞZӎ7Ӹsuo97W%ݻ'U̾lƓ)ߥ-'%-F@tqϣ?qa kUD3Uވ.ks/&ϿC탧{ޣ7 ӋKsKKsK3RO+\AJF/PKR NO{= {I&C$dGuUtX>~U@ @V z\! @2/y 3a$NHZ hRej[^)*h(/h/WJjqU21}']#r9j ^%WsX~UϐRzj`O S̉5e2BL93}ACF(7۠dA[pNP\S?`1 BB25 YdT/j^)Jd\V1KfA'dQN[Emȿ(gEпofۻA2q.[ˡ+8/[";a> W`e0^t14(ܟ߰2s 2M/.aȭKpϠ [zqS(I/q.[sqtk7߼v /CÞ? |_>~?C^ wÀZPB"=yo|߾|>@4(H- ]Z"ىoWkVHhGϋs,meUm?CMf-͍m,}i-o_sF2Qv{Xna"4)iϿN6=}圦8uhplU=ZtͣhLuۑ,+<}<_tKǒ=9r3w:nv x؇_4]#"7ciWx@% ^묗wc^xB ;p`w|lJFjSxuX_j2W[2Ejzjڝ2Ya´/>$ॵhɴV'79Dz=B ͠Z,4]7܅ %yjq,xDGC`%XnZo`0SՖp e/lBN-*130s"ݥvYޙEO$HW8F һz= mLJXhK̋ӽJUDSJi^8`jBVIȠ|S%a(D`1gKFeN;[aj5rjA^<<3aRd">3e ~]9eP6 FxaI\X(dը4L"PE : j&ϨN ,D1,|Y:qRW(bcAV(r9/G"D"+Vz=Cf+5J]e$\z2=R&U6 /+I/JhEB2@5Uz{Ƶmz^IJb99שs.V1S*KW9PDQ $%R bRN7vvnxef0awv:uSowXdXRу ,VDV\Q4KWiQB6ߢ򌌂92vm߱mWַY_Wju^s)HEEb򑔖#y%w㍽G$%z|PvXuRWx0G.cL)avD0P;ѕJ /uWUjJy7Ks~{GM,& =i:f8v5fb W­E5kD:tF'-ɱECxL~lHGr3 'k-VWcwsQBŒ 1I F;(U&3t/Ï >`m?<5768Rcп*UkV2FIDp$raqF;_I{LJ Amrj o~eAqe~vޮfvժ3尖gW?sꕁ}cÃ$lY0|b~nl0;3qv0(<5ҎhBxf|0|v C@=^Y}^_jj_>~zkk$?o߮O拙wOƕrm~f]{Ѣ`va!^Z(r;UkWbmXre1ݨ=3}ЕOxZ8[mj{o_;~3B=F<{7peұkN78=9jk}m0pJ`"~_F97t>ߙG@0~;}7o\%ю䁃GkKF!~͌:Vl4hԓ)2 B>{4hc{#} ݹ8vڣ \非=;ygvحSw&oLܜ;5d|{<|rcu«wk_UaHzJ˛?qw?  //~HO?~Yϯ?rߵdJ~-PP+Ju-ݗ_S\Z^a kmkQ+ziSsF KJ.cikbp<E7(u\+ 8bIk4nj]n_tۣ@[@523tOکC:TF;' #1Aē'nj A ,>ۿ/Aa'tN|"3lz,xIn [6H'y𷾱F(h5$Z(s'_xCק g^_H`@|zZVgr`/~x'+7k0ˏ$h?||ylai7~ 凭_~'韶rxx\,, JRŝy%{sJv&K喲"֎|/6k r |)ꈽ;7qV{gDⵛ[ۣg}xWo~.MZ&tKMն8ţϧ&7ז@X([_nLf[/Kzz66W_-Xz9̽?txB﵋wD|N~5tvu6xR#{l\ (TiuԵ @0|'}2T.\o;z[ܢt[H:O(K 9_׺_P56pxиdhk`arh$R!P@Y.'*k8lTB&e,5OP@\fpƴvmSUW"v^ĖXNiCEi}yvinf^FV~添wggj[Y6nvMWܒU[C~A^uÅ߽]-ж , /82_0;|Dá'_>t=9wvW jwYDLxxtdZ}ۗcf+p)/zCb9Oa qs_{/^;UW)f!cOKMm,QTZPtNjcպLiNͮ2{rlY{UeѢbw߸3+:ttu1=}vgiĥ[w?w??Go;ugz_ͮcߏ^B&#kt򗄚Lq|v Qv_P }:d>?н++yp_Tl*Iy]ni:􁨿ʠ;&sI[$kms'6'kE iQ^ ԰ 2`GB)N:2g<Ad?0e+>evc!` B4]0l e:f\t,\*q&`ڲɤ, .tw61Qi, #SX,w2|-aX,`T Re[$B2eVqB#4Z!A(IN$ uvu}N%w9)]0 Bp s&4]DI|mI(VSUkd)j:P= U&EMu/Y0yPրǓ[Cp7.lfQ!LZ_G &9 RRUaugJ!zf ΈOi&ܤQZ_55K[F_o?˟,kc*lw^~"R\/,-|r[ },MAF =o2/xx+V9%^yP@-/ dEe&leuq `wa) BMC~ʅߟ9}=LET"o8E :]&lp*c^OЍ:x w:H  > :)˫p- s%%Xb7D C b>OC $|$ XLgyi ;q4%/vsRގX#Rzi.j Lt Fb4(8ao*lJYX k){,(6j! :1A*ќh[ mipD]#oh'F"l4jH`S,jqI4t>):)ΚmޕYMr YDb?ȭ DD^% x9ӬPJg|mAo5wf=T3+ԫv[#UR~3՟߭Z9u\^u2WHf^'r_ංdq#;G[10Oo;2ftT|vWgqy2uewy:.d/TI#WiLoW޾y03um`]}#=T/_YZz][yJ BnOyΫTf/A.,0wdt^(k;r x{^ͬM%rNݮudxV6hL_ +TIVCW*(_HZk$Ef+AV%M4pL={QI|eQL?Ni 4$M:\Md҂nllnpQWA*t*2 BBC/'q,$ŷL)B=p#q4\XLȥABNr5rl u#41/Oy})w gn;B~ZhF30J$ C>,@I:fLY#ʔtqGGy2! ck;h id#0WtZޗإmN >^'Iz{"8ԓnتoRU#[E mR'|𾫗޽}}ѡ鉑'c  ճfo=}9Ɠ_Nn,ޛyxs T.}`e 55z{@ nm%|Y&ß aw+nٰ2.*鬬MGyE-?חW +<9O?Negwl)[V^\ɪdvI-l+N >|3nT׏_lpՀ{ąwFO=itW߯5=ncɵDaUHߐX}U(XsQ;5K/}ࡽЅ3Aiӛ *f׊D:yj`TY:1[F4s%\Z seB)3hB@TF0Ll郄]v8r`:Gp.Du|V^G%:N3x#= ARq?p Cg052]`4Rlt>B@#Ma|NI%04&|8?}o/ K;Av51qڨ GM4sBK!D VIA7 [pp&v(\G+jA8~bgKӚ+3[` L· HHDpй$7"pq&ǖa) caZ Бq솝q9h#+kѾ$۩Q4+-)0Ɛ'= Mի +y†jW%FhKr߂$ Q $|FkW!v9QCxAF»dLᲱ4 QпoNg eSY@0KjrB(R x%W,j Z {5@42opA^5Ow>EhZ ZƬW2p 2FŖ ElVQbWr}mW{vQXk+w0k[RXztÅ}ԥiSһQ5gESv!{>3<٭2FJLNOi}yK|HB/OuT ú$91֎9g{5vxW E~n9.nDk(J%0#uf($]a7_ TD]TK"HTgMc2.a#yi1`iKB!#Ziݨj4] jՃ$Yݢ\|!JǀnfUL[F11  Y$ n2Dh<$5 x\6Og J +:_?~䑾[HቇL @0gz}627af}'_NZZz}png\>rtuw*xj}}SKs^>>{ Z웗Oo<yxn?sǵ-OǢBvϮ@AwOTnIK~I+JPJ5۷m{v?+RɊ-_\ܓ_ԕ_Y\/sU{͞s={=24J{8}Vϱs#cwG6_k0>r?Xt:W @o*oV66^67@alQ^]YX|.<G##fL<yʕ]pwd!w*hKQi(EEEY J7`kwK0j008-D5'ӓH!c7`&T|~h3db`$DH"2`'Y%Jr0kzoz9K$} - o2y0ԫ 7οR{AJG;y3Kq46G k5fExJ,[(6d iV(*\Ɯ|֪Y% uu^(=$$b4$2RhZkH]D\\[S\SXacz6'|lHT2/PJTFjTsUbh ze˯(޶9ٻrvVg|j6Q줾w;Lt%)`Bhs+[> ƄймjTf7|T'E1`Bi42/̿᜶AB%H(挭 L >3ڃCNY^RGDqG\Ւr%SZZ_ *- TMc<\c*$>0z&^ " B: Hm`7=a\<аMAj0h14 h:pVCc(~)\P8$fzQ}G*O~8H2E#Ѯrt:]KWqi'a\l $Sp&='-6VFnfYu9ljx̽ɉL>{h~ә0xa84Z~>:fm?{컍ǠWO>n|ޜy97l.@_^|y?{(/kwٻe_MƖ̂ւTaYtA'B8[+HUT۳۾ǿ]=п]݅D,䖆}U"[]SPpDz3SU.,5VyKb`{4>uj{0qW ˇ7W</E0/Q`ŵ`lQ^_[ff>[vH%`8r  &_(_:.K伢zN=63: `[$pb2tē*hq)dfZ AB5˔[d\)4;jaC^Fbh@ d5hcdoT0nIN̦SeP0p z@f_ (ݷDفdbP2-Hn4W֨DH^:l [% ʹ͖HP "CPPaiȲH'qOk Ie1fo3px*Wp9U> d /S 6;~oI:=ZW|倩IO|* /h 0L66 c;e*[1J)[7zlx@a5"v_T0;$)wd/-Qsm~U;*VtHQi 'w<ӞsETEv8)8o*oz.X!rW@Y2@aAU/l=^;DYP^r4c fy< 31Uaa~PTz~[4TbEe_yrZ9UzBSzl}5ttV!!h_Jʍf[0LV kyadM%fFUI u"ωbv vӡ^']pDlTMmj;Ci..10ኄ Da7lm 9 s~;w}}nnba~zjxꋙ&_LXxhmezyaן|ښا'_N^x6?2;0ygz'{uEw상+#7#WLJL݄=Ku}1+3\T,('Ù907UX3nߩݾ_Y3x+7_E2tVvz *miFVR,-,Ԕ˳ru~/4 #{%.^_6>.|:Ûwdw7_oA~F߮ſ˗WV]^~8gϦ3<sW=|;#DO%.Mơd%Mg45[ d56UUוfe7 =0tEnpcK$!֠"c{]P uv 4"ӴNG aA PՃUv=$a r_'58jbW؜Zc-Q0C]'NոȚ__io!SLy}4j@f$&;O@"uҚdY< oAq^9d$2ہ*W…nxI6_oA{X6 o39q;%> n:-9p+@a0@fF!fu^t4.)Åؼ+ KEж,,&F괨|N݌#CA8p!;8K#Bӑ A^ЖNi(xG. ZVa$QBӗJx&NgI3-r$j_%#2K*sr8 Y-C Z ̭ijkn0n Zu\Nu3Uju/c2$`yZA(VF0 JBX/ႿҒª=;wo&!s3vo̽^ Da΍ V]>W;ӗC^0W|'˂ ν}خl>^_vMu.v˂ nS4eoI)v;ض.{x=,BZPte0|HS-ˏpv l/MjWI9FFѩ_ XQDb:"0fa.N-4*- PJl8 iwy\{(≷^~5p  qdNhU\-1_NHl[(`5P[$ BBS)W, B52Lr@hl&|НɁHBRk\܊>nO淙ٻbږ8{d᡻O/># H~Ӌ+Kӄ'͵ߏ}z~s,7Ol[|<o.q4F'5^h$u=|Q /^zS /!+u؄f.9qhxx&2v%'N:͡,:(]D nwь`0є8y: [ig2BFΈB:GM?o뤙̇NOt% =TJPODQD QRG"dFi8.B';p?ppLE])Qh]M E\-MHc/,$РxHxqAd)! l"vc֩d.1G|3#tU`JJGpp1p$,x81[< 87` mIK^. f`"VBV@vPîZ / iI^iw4&D1͗JR@"uFlujD@HVZV-.(o˯(ݕMN掜,p:k;?+W}Ef/|[NI&{4P{ߜ3Aмйє Ż44-/J |RW|\SHAKZ@qMG"PuM {DAEq[w@U|@]p2,7--JƪfT{-.ƨX:%&XLFt[l@mz!>R: o\+fjGȳB@0b l`xڨ"d 9*hJtVn1 Ԥ0(G% Ùpn+$%#7P`xwZ V6WWHo1["흩c_|)>,̮.->~^XXZZ[|9Yzsg?l}ٜa鏛Ͼl~Xەչ3ݼx‰Kzs~i8KPcQ9>| cwf{65dlgk7Vgq2+3[֟遣ߘs%em]|7UR/*s"DQ+#_S3E‚;6df@lkAV]d*aUy8;S_Rl.i]EHs.v9SnbUK`(K(lnBN;h2 @gG:SNFiǯiIl~M|D30t~2ՠlQfiȊ!HfNSp8hNn:xMíYʹ眢oab^;\2 nT*Yivơhnf > Mz!Xj%Z O.k jDŐFӘxF>@0ciW0# _:ˆjURI'ԫyZE]^YZXXSYRf|;?';݂̳6 vP0w`8):Nk C l>3>hC aϛe_ԃ@9Lg[gMD~ةNɡSړp|a`1ᢇ PsP @6R3&Yavf:6n寔U4Y#[Lud-0G&kbhI,?5 /v[bs8` _tтEeVN5/8Wisa2^)JqzZNŒˁ`Fuj5Iр &uvNv, /Q_8{=imь΀f @: X>\p*kJ؍*Sn E]={;z8645>:dt> //>YX\ZxF{»go^ξYyOs?}Z{LkK=}xklTIG[g>;RwLJ/? ! N x'O.>\~6I{84ne죻G3=dqy*$]Kdfs`qpONŸYܶCs֎V^k쯿2 dYBUES#*j MՒ,QVi.yqiooH~!#\`'nk㧥fS߬ϟ~xz}6?/tfԃGCCnݺ~vGJvےx;>cH\T*xa;:]-фt ZRđ xrA2(I{st-0ꩮb`70Dz\H'mQۚid=/ zXb -(ZMc-( f'v`_CKFp{} A*B'I'y #$2)p'p f _z^-y <*[ ?fPPO9NFs|1MU@qL69v<\^Y@e{<l<88j&Li|{l7rG`Jl9LrFEEtCrVߋϭ%v+~M0r_Wբ&^)|v,NMtZ |UJC:^NCVDB!QM3\%%7`BVPS$Itf~i}]u3L!lUuVWi2B#ÔFBe {5F#4/ 򲸼ʪRȺ&!pTefPd`t$tYC%kUGi}?Xz()he]rsV? *IthoaNA }U8UfG~^9-*5rW'ivV%Ө8"89P*Ѻ]QyM"1D2 T.!TH.9*$@fRD˧-=SY2E~7`ex0h8t"MM×C.K+YP2h7^/.  QZm L_C+pGZ,cN2 ^DV,0ש68MuzJKkC9lKi2ɲUR13g13,Yffv$2eeKfvsΝ93s;q߯>YLx#Vddeee%zv֝y:S+s0Gf>]zl7O>|ʻgKo~XlG/ӋYؗ3P֧1}܃sNO'ܽHNޜwmv/NUV.Lޛ7_?Dӫϟ_^x'KSLߟvs]=j~3IB1%E_|K$0NVG2ɹK#$pZ ո B䂿-%| Ln]}bX8jdYiUBR5]WiLJ!U+NnlbujW#WP4kTXUܩX_g*,LA]/U\䉶b5pva?Kt;# S| L`$ID2n? ̖AR{0D,9d!Aa*ZB̓@*pqt%pj.͡,ן ơb릇P9`&!ӫRD%x<1?;0z wnùōGKOfWί>z4\,j}{qc3 G__=rOOg`NӶ1'?~֏G&N-L[0ua\*ڕ3^>5o830uՙǒJܴmk)QQU\l쬉wEuuZwV5f+b%5Fo :qƵ.DT~f^cZk-Um-,fMC6^KC!ж5rJtvFu补W&BMﶇT$Jj1Unkй~ϟ#_>Iz i W/<ڻw/CT:L]DWW*FFzw @z}6:N&q*I') .{##zu/`=liyS? 4[j|{-.sk٘Ž'X9;N,KF!az勯{90 Tջuп{!McVT֥ *]zI[F߈ת)_%:͌sӎӋ!+]tNcł])W`S$67 FLᵢ^VH`Ӌy_2-@J fc|+Wvi*GF:"'Zs/74JB \/vjZ[=Z!3ٰ)[0LQ+DF?N\xr $0[1Rp4wWg&'h <;4ܣŹťՕ'+7m<^|VD ]hc_^<ɯ/l??/ |/>=L,ܿtƩ;?'{pԙC?<{ :?dtѥ4|$I{Wf\~œvָmknh|axuM:5!^ðW5"kio3:b6hVNkCkcuCmiK[UM&Fy}fSӢf6[DLPԕ 7O)gIE6*?}: ܼ3)/k(_Gz'o^u1z2FB\S{bH`k"FR:CɁ]xl5#j3ўX$F߾Ǻ4y/ d83h`#*& B]~_rpX-S(/NaZC `fE{TbXGbv,.Px *\'y Vl>rd΂fsn jOJ'ϣle4P%R*3=.,}>ZҪyF-C&b " LRrcoZ݆/\tHvLEVjVx<7á}ۦB -팑 B sFN'0@vҳM J%u\jD&|L Z"ZMf1B-Aj=.`S./K7hep:@2ZHOɰ_h,/@s2JZRRik,VΔ;ZjoY}Mi}͛Kjwmڼ&Gˎ~Ź褣VV6;l~ЯOKn&Ew[q1[Ygmگ$!/-okYF;.:|ՠ0/ yG5$%@1 BB#@2o  ~gj;؃!}VIc@öHdZp@-e|@pJQ&}]rIQ 2<|V﵁t|`:2;]%v#oǛɃ@:?\Ji쎥h|L23IG#=c$g27Kc@b"+]5z|@)m_/ PDVgse B%hЄ`dr+qًYЭfKe1-uFحvЙ9c?Nݽ00pvyi (gxr!OO|_~^{"y |: f}ɕ#<Y[`DmF\YIuv;cAV7sz o&I'&i^?XttNj(duca*Usb,h_ׂ"d)\.)LK8ĩl,.eIay򩫧;?7o?LDhp=ýL6ΥnnrD!lVS*A#4jdmMmLDtFq31WXESHD2< caϞho/Id wwCWG& {FӻB]yO&ͦ9 (dDz:]Kԭh@a/ڙdRp8KEbDƑS5\7 D C#;{L3;}h@0J(L@YGɑJa;]2֢Ʊ"ٱp=WNXg6r+1EBbYMEVAҞr0iJ/yZOYA֏nVy1>jas/$YvS6QB ɿq1/ń /{8P u{,͇\L^+cyekkelV 2ꔬ6&ʛ&բ`Ra+Eɕ:ܨ4(gmt[_NO"b:Ifyiw\[}^*ih#uFn.A@$@L-Sc.4l{ARa`1c wwuf|y^mmwu"~[YFõt4o:nU7;M 𷾼Pv-I;|?QIlq*!Gn+ZjTqe説Hg˫؁;[v 8m-pkOdzgן_?>=~~yţV>>_}tՓy`]L?<{|wiڽg.}ܑGG} '{ґӇ?2ܛŃdt{=_&*L*`I%"1Q)R4ra1{|%EJGzO'yB:P$ܻbP V7ڋs6.6)!2\ {mq+fÞL(E `6팆twKYS, IoM]ўpW/&A[ 0$SU}14>LՖH{{ 4RK8FPfqL+7ank 2 ˭Ќ)p`˕S9w2T.2t*7dDt+DM/.͆#y8I9'z@S1q30[,hR 4`6KN4>4K dKDFm59(V ns2 :*Ma&4JjyGDRd}ZGt6-HC&R"%ڥnfdj].Q-bPI%(\:~ P_)J1G+\>G"A8b+1P:'R X7 EZVJn$ JJ.r^7)F Xm0kMV>ʨfw?læ85?wnkZNdtJ'TW^HQG M3һ)XwN]#֋vɻ`xfDULcߒ@i?\{ҰX)UP=8aA{m.Uk%4@ i]Ly R>~H.P[4 H9,ZEc7V(YP I]*3e 4v:/^U,esq.8 #qPP D▆иRȶ SrFbpr2"Fң,[+0 ¤900 YJ*NR$&S삠I z\񛃑P6R-|br|!uu7ųs3oMN\84Hfߧ3+S T0f>{ە?ps鉳gg>^]_jcœ{+tѥKwn?^[]}4{$䍇ܘ63qynBWk suDEU:^[Kj|bD56 `RbAy]@w^&WheR"joR7N1bP- FѦM[3m-LWxn5}fӷl~O˛ϯ~/W޿\y,8;9~z֙oWNsc{;u`ܑ?wp]x;;3l<¾D4vY>e3.0L&X*oww;*B RQsK;vIZf = QpUNC8ƀW.Aagff[(nM&!O IUI,h^rI Ia\X2o s9*RAnlZ| XHf[2jMD4~1[Ȥ<]yc2A^4jA찲tQ5lM{;[.W(L&3ż-r1߬W\J *I$936T e,,],F`*"a(2@pJ•ʛYLK"h"N׷p2N"2%W(L\fw9UeFFik7(t@VÓK2P.)dRY3잀U ?kʶlTeؔT4\΄DBtnսrG3٣`5AIKKcӎ{9Սxx!a'N wrH㰹퍴=n;e7ꠂ{;{@00/{˦%u04hjw[Mͽ:[aic@Y-O#n [8f+bOc3J *IQrJ$'>:!jyA^ Py=Xzc(_K8;S$iA-yGB, Ⲃ‰p`z't K >Mfaw,H$+!]M 8]diG,DI7M+)ǓJ$c=7efRVvŝf p\6y` gn]2~f,?X~HeX_0`y _?'t~zD'z~}ۻU+w_{nb['Aaɉ3.;0 mAf/`;п3?>??s=I1ϴmk)[QOU$kt_̧ʫS;f{}Ig5vl# MVNG F>)`Z]w)v /6㶭Βmpu|Ӧ`s|ߞ~<O>_z1z2雵S7~~3WN>lS=hチP!6L`ڕ t3\bw݃ݻ B6֕OdQX*9:F*pҙX(ⷸF#3׽wo A~[, n;ݻCOr)q0EޢI}b)w Ճ0 pB_>(Pa't% n;E]./ؓ:Y_w+;dOb_KOt̝z3yL!Iho\߇ C`eRd`P.kD `5k#8FHlD A qF{AaSyד.  42KThE%Eב;##-A01RY%zLJ${!1 LzB @ ]]ؤT5f1pB>S$Υ uB}=|Fd&Q)mR_VTs\Fh Ƒb"d.Q" 6֢F Il4,hzo@jq5zOYdpDV8(EI =rX*9h\pZbF`nkS"U7TUU2å:by6_K ^#jB%F3?9L!bgU֭jªnۏZ4IDV>o&򊳀v\{rr="+%0w{M/-P‚§ʝ}j2(鬷YI0 wv j*GM@0пæ^m]ahuMCFfZR>IWtᒶ\S {bT+HF,~c3MmP>INQ|X}^4;튄p6CJ Vq#h l\P\SG'+b OS}}lڝOz1yWX'Ca_2 Ȃ0}H )@ A6IC[YHQ?F2RfLO/$g[D4d+L:~?sƏCK E-^hT0MtFSxT/~z#D_=a?Z|wޙw~\:=r/}蕳{\"6x8U ^x<{ƒkܻ2uʝk '("Qj tLM])NATƶֆfUcաUH*op[[j|6^mM2~jT&oTu򖺰V=X{{ފձ%Jwj-[R%t~{acw_O|=ÓOX|dҝ7OčcW>2pxOԱ}WzЩC`e#Jimhh+sZ ˦]8II `x~9-uT7Q'rG#;G^bBzP 0 btQAIā {v!}9@hO6LNKؗ bt]:HNQd[ {򽑾h{Tk\^-(Vѥ/5 _^a8l֓adnϞH_yp\& &b}(}2R(Y\=#o0?}(l 0Śj-[o#7#ݘ -pІpZ,^tχn &}_XHwMbUpFum)`+U\3h5{Um*E4SaV-g$*Kl` 3vg6th_l:'WitjK< A-wی y\+։jK`B6 @$Vd4 T+<RۑbC6kv]AjE-b*|bqV'"T&SțT.(ŭ6R .쐊UAcF#*(PbnF-i;D6>d{wu?W|ݹ),m?`17u3Gc $0בֿfB (5WH6֟2׎E₋y5{z9f6_ '$BBP_v+ w骡[I@n 7*K\:J( NWhfYϭ8IڟL\NmC}= @mk$G `n8t.Jr\al9CXFu &YgEZ% aToE#.pya&=8O / O@WWE*ͣMU_klPtkӃ &ZC262j3{#wƯM?p4 LwD/N./_]_}{v#xbq9챡сāc@!{@0XLQ;?=v~j ٹ똂.voE|UCN]],[Z^Yk Jf^&[\. lV oPmk4k&T-bG\[ӧ8`Kvӷ;[vUvTvVKK7v~><˗^>70Óެ}62ws{pZ?ʍ&*K?p|L-hnol^[QmJ^K,dl>L`=tP؊F$JE^XOp!POnh4tvxV~[ (_47L l|8|`.fŃ\3Ȥ"@(=*~ug;[ˑ ]l-@C-t6$3-taOpd^S8 Q  LȂ8"y0*3UX@8LfRXjP&vjqrZ:#G@.Ђ2(QVA^ޤ2Nմ LƖ 5[+v(\]}K7M.3qٰ}%OHn (nBe=n֦Sj|=c/Gm< !|o$ f/E`>n!~|QS=BܯG!SUՍΘW32NЊ;\6 e7l&S[M0nyA#B"]N /KM_ i\ ύDX>gdJ ] L4!>tF?!SM#JHȫ^WXU4{b|~V^uvh"N2I3EOvQA?e*F7<WWW7]?16?sqxi $Vf^^<#}CT}_} J'~K@_ޮޘyx{zs.9bx,όm,xW&߬ͼ~L(>|9gm-ѲdiU*[QS몬+Ζ;ʽe5FQXW h,WXXv;>B.V+Đ21nraYrVvWm7X,%;R[ALeMxgsPEo-wϯ <_? ͱ5f:+a$GsS;[,-mVVS̪&H0f аc`×sX&t*K_0Cڷb+)wzKjw" 7}6b"SC8b'_#ؐ\J.vvD{2`- V%a]Ť[$ĆN+\R F/ADqT+rhXJ K%$/ .dw])*eRQi>2ʝt,}|= 1%F&jsoLЪl!4B!{;J\/RQZv3PSR8Ӷej" vHK*Cp?\ZmBY$鑨T*V:WJu ZGʄ\X5˕Zj6L!T) y n+,Rj[U bu|D^ؽ) ΖSE㈾f Gy7œ^Nu)ā#O9Pdﭬ,>ng@6Up\IZRz%&yχyP/> LL۫u~MCjgFDYKDkZ~٠q-NNYcT# Ul"RiF#d}[(@/ u4nN']:@"H3ts1 PFXm/Pw$FElpyh@aV2(Mb b Bz>HN8by2,C@ĿHFN)VwénW$쎄}nE<`gwacG^tYZ>Z]YZ<{$ʼn6H3r.z>l|}+0Pw7ˠ ޳G_> h 7u썵tjo˳_>CS߯~y?+GfO3m;%;c;;+;+j+jtJ_eilTɹlx[t2tAEz Ҙg|n/a3e ⬬ 쬊noZ,7*t[ܕ_hzJƑz2T}`cԼΤg+z|3=7[AgTX&E\|BVp%'zp>]XB(F"T$"D ہx_ahby]$)@I\, lXB!ޟNLΗLL@p8T4IEX#[̝y7 @Y-]C]PdBAak*VL ]8ž=peܻa-ߏ5IV ?$ݼBx!r\KӐJ  v[2%1fP]T In(*Y =x2d +[M-J /C%|"^e%c{AUx 0-]{e}Ej"nH`HZ_,A^b_DryDFr惤|XGH.+$bBY lXSPzZ*P%z55tXwEb -sdrF͕:$~GUK}-v{֚-u%_eզþc݊Tcq1@|xv |T}xzv;!_<ӹ+OyCFdظgwj H670^/! ǔbT>1aFw1bj65XP=nE.cPךUVOPTt]aD}L.N`ƫ05V|T# i!]$5n٬f.דN &_?e &UᴓEXlvv'h 䣅.@3$ p$5ƶX Z8?@rI ,NadI GRxq?o4 GE뤣5hWgÓJe3}|q~q@28x`Ʈ_^][[Y7׿g{7/V_reچXYEo7yhC[Pa.aT8h61mvG,pI j` aSNN|fyKG xRR 7,"V^+0Z ~#ݴiEח?}Ϳ5_}'L~X_7~ġ\ 79(i,@'={|dcΝݓ M*N[5m A ,VYmv:_0h*AitZ^:Le]Ɍ'DЁOgP_ ^UQ,i Xg櫾[q}޾ܸ__K✡sAᱴcXs%hƔX/D{5$ zwX_3ү 0-#>7OWߣz /9,W3nb(9"#2ILl1زU$Uvϝ{߬߼=BYqo'RՂqAi[ԹQmAF%!581W$U vo: d̸=` J;BG$'X{af |Xh-(W!.2K};$0-`pv2bȕt 9$\HTt.0@\ HK0F0X.74Ll(L+~Ғx6KkD;\' }w4dXbW"u@^Wt]D::BBw4FXE"x3kǖv+ϟ;};W/L|?{/wߦx ˯\yxy %{ԫso|y>a?>MsFn'&LO>x69xf[C"o<+W**skRKVBi-+/V7VUTuª%BѠcYF*Cr[: c҉\B, h8 {^-jW [MW/7VYD{ ~f%[2 .]\Q#1}&}3!a싏{`zѳW[WNݿyLFˏq!]ן8eεXZns%ܤtٴ'ZrM"mli-Wk:TF¨apB~v$pH) 'E2 B;Z/ aW/8B ,>Lgb/fqb UaP:'3HnMa 63Im.S49@ f /hp@0e!, nsKKCt$UP[p0:B-b 0}-hv ,@Lq{(黐R;,x̑HXWѶ>R0,-MI5A$FDN0q /H{un1 փlpRڸ}JۦԐZ-v8"%jg04d|ԮL ,s WG2vZ: NFWb:͏_6%0$K""wXZurA[NnԲ*!y ]%HE!p)PRLs@,6/1AIVN'3$&/F -2yY}#+7yC\*"++t:_ǴKʃFiЊt6; +xfUr2nQMŷUZ/ˎXְ/T^HOF%=wg>l?l;|&srH{{ ~I"oW Wn4TbABmOKK펆~mFKKFAKB)!k&wKTw*kb*_{YPT AiY  .B"Qg8,Ꝥ\nl:xIgyafym<( maoVt f d2ϙNA 0lF(P%(^p<`۱t#TX-Z$-Jdqm:.v5fuZDt\߀3e>G(.L?€chyPUѪ̬jW Hh=o?u{~p՟Nߺvߺ.{ݫп#'_~zv;S/=9ow/nsW.W{gMl컧f_Po컱o_xo3_\>V-_,[MVV%譨u"ժznakCFؠy|..IZL*Z!jvQ÷ X]gKG<qLԸZTs#EW/^_2| :ߞϼm~׹Wm/_~ۉǸ^}xQϞ{׮+4҄b;k|we%tjɤ3jBNu^}+3bh^ekKjV:Um59(Ǐp]1"K4pJ);[A, i uPbDjH!kDBD̓H:TkPw$iU9 N+G.|zcI ZDbF-T*YWRfI]շ*| -26˚M{r lRqvv`{4ϙw8(l5o4˖CN+пX/6Bn2V{=}?w`mO4+!f[Cz,[XCL-:wZ{ ozMQQE8+5IU_k֙xʦjR ycaW'O~];s´ &6֒N@*Oĝ q dRd]dԴF3 L'J /WY,@苼PMX1Z'VґT4{̈́OGGӉH8HXWw~x-\ 41% '](O*z_hG,w#q{!3X,.{Ƕ?s(}G]?ݽ {tғW^><5ự'ӣ_;];KiWNbʹ~K%. `wM=yӻό?_v_>Lͽ嗙ɱanv[6ʥ+#eUuE+reUKܕ*]c-++ymr> : 4IN$bXۀ`o2!`1\f,#tE/d*Esͣ3/lڠfoE˼Km,4~}#߿s9̋ox0ɫ7ܻt?ڵmpp:Ys%[{6eٝTmՋ iǥ[PBasmjQ+LJYotYp:q2(&@=9k]J'At0$eY􀪴l.<9տH;)@/sҕMuPO_7mC]= O֭7#8N%`5/SY(>p_iFGyA7nDH^4M{ln} pє2GF> {hiO;,50 Hv S@FٓYëPj>թ^?t:i'6xG؀TND̓/ V'^Rƌ6ļ9h'pL$H G vWIwbƣXɤ/95. XvVj!DY)r`~ó,@vbUZ1 $2!~5Xjq`ǮpTi:SeoD|FF#;V;-B 6+ j/O ee F5NW#I6Jc,b5$u ̨:ۮ%sj#WU"+rVM.hseߖ-^Yj_Qq>p@;DPx*,: >^Z {tpt4!*85- sr"!ŏjVו bw{gSr{b  2Tm`kNN/ս5A{ЩTpuJTl]U4)h  "J$AHvT+$,o &dXtw%7I`6miqgWnaxZBX|iW3 [\6Ӂдb 6@3ցx^7Mgx:XI? 2 GC$Hk!D;:z0l2 W"`vEb2IZ\O/ՃV P0XpL0 D8[ jwV+Mƶopp.H?ܩ]:{ w E_Û0Px݉gw_?77޾x"IL{݋'n_8v{OcߺH<+7O}ysf]joA{xn/cv|ԯ8=9Ƿ?͌<};6r龠[YD|lUrMWyu䯋:*ָ/V̜ۚ\$uJ)k4tdR@Xh sUJ hv)v{FFX¯)3-}2ߢUE%+mF/ﳟލ|Q:?ۇX27qndj轩'/zڽ[~:{6t©Ssz!Ewl~{uވ&moZPV ^aL*hm 8mF:`&wwCCe֮}wA!H iW4AvAGT*bT2*%%RYҗ%7T*eѧpl_g$buEݱB?ա4;}k wv7omzO߮M[3k+@fhB ;;hDS=hYh2l0!L `PD"K8ڑNc *9}} 74A@QdHex/v"uNlo(p2Pm8w\=̗*q4|wpK4jPMTdx_ПV O(R'qlQ: ɡ0B-Xʝ-l.|/k :qHKML[4Z>c;:ڔ:Lm _AJ Z a"T7U8\bڪT)p䑮NtR/csBdJ‘)fթ,&1]|ۤfߢdN#֫5vi9M]%^h۶xAZY}$?n5Trx8ra!oABCJ!;=MYx ~fPVW˗п@z7pyteBؠ R,t  gj~k#(\Vu*kJ7īL)ZF)mS5U%dˆn|IOFD`7%Nإ&1Xb >Kx9BHGujF s;p(m,IPwA"p+BHBbO<Ē]=ю"K;ntoiw4T0pÛ $6(p,TN = 5bOz"4a)Gr&pM1\nK%%J:b3^ -㙓'sG/_>}|p w 'n΅/^:Y_#/>2* ;d͙Dn鱻93}|znjjdûijzb|c#ώl](ͽjEjMǪՎEK\Ug _~s.\6D\,TfЫ2@" aV%W-֔yH[.. .& ,Z_ҷtoYo#g`~|S}}c^?}qw޽xGlDf5 ?ud]@ Ctm28^b4rH!ZYF(HcP/[شgH@s%h"L|$@RiDzTx@V0ѓ~ BmB`;MZO[p2LtgW4 "<~ȷ`gwfпBƊq)Ud/ ŽFVs}Ed6>%DkƊ .uxqA]cI&@S)i- 됫lA@xx#PG6B1]8:FKrtOg8%=>|%=B87i6c0Wnh.o67Er!ndYVVÁ.]п?A~Û_>M~49;?>9|ro}CuOC]_!meF.T+FIz;\NL* E8z3ۂNWΧ]|Ν&ns$JԼ>1']d2_21b# we? p LXw-+9 42> ;;K3=R݃D01ӿ@`KCu뽅"S Jf@R 7}-bD1H2̗S f8~KDX4;1 ,+x?!Tgam@XX5EV|^ACc rK(f qX􎭛9xpϟ>sйcG~>sڅ3w.t{W{7&^@>~ፋ:u.%w]cnC/?K*<:/f'ϼ}4;l~Oc׻۹߽| OvϦQ·xItѲeJT6k_Jb3huJAprA ~ :̌N$n0] j4",u*NuEnǴrcY塕֯)M̼{573aflȇ|nfKœ\/_8M 6V憠ɇcgׯM bAN(V*Ye0Ύ4cq[bAgyfjvXXr{ұPpC]=N0;ZCpرvnD_ci&(Z*inR)o¥i?3h R.haq6 z]CT',V}15 [@Tj[#I_ θj=4sH .̈́I~HSz?Ճ*DtYBaᔋ7bP5 NgN|7 c`/uɮ/h"N; v\$UuCti1: Fg47JQ!dX\x 1XܪֳѤ#ER:b4@kn (]>s4i U^*7 GSBiF@(DK:W@DrUkM/WiUF[sHXФY)ԮV!6ҹ}MRw=At"Qj ti#{FJNJtOtP\LRdH$8-"kqv2&[&q:uX m\8߼MѼfay㪯iђ?U,z_TCv&߮]Y쨳d6:7qEvګU w9jN'}mX1w: 8O$b3 GˉpvKNWw@Lٰ׶?m7i[jo ~o%[mCLmjoF6.h*UaҔj_elzf3{ `7Dl,ɸ&rUef@X 9ݦTR"^[!$A:Txh̸VurîP Q6FBpKм'qu\ws3MFOHiq!8}H $Ҁ,DJw@>9^2=BePH톛0xCQUv_(.;QEl1!.$/4Q\Nw$\޶sCwS=y?ܺ|ލw^޻-> yՋܼޕG7'y+/o׏?2}|~v˛й&{S>{ Xz?iG~~Ŀ}~yf׹4iI,_?}u¯YY[U]Q_]mZ^bNZ4mZ- E&Qa56nPyJZ#`;U$j-LH9+֘^[VXo5e˸(?ӿDdh;qbnn|~~7vtf廑S/yhgwݾt٣ t%tj^$;lбn >/3Uᵙ=@)iIa/2˓p7 ýagBOdtaoM'dpjhȞLB8rBlP)!y h Z,آÙ8.pN.O7?F,s|Hj&FN4[R7ҙLrYgDT2Xa }B@ 80b=N f׭yjbt5 \JAl"^[I?zoGWwrʕ-Q{*/8y[2=N@EBK" ((N/;R95:h b}C7CTJ핡010𥢓aE 9ՐLvIS(1144y+,V|TDg-(hnc(`MRqV{*$VV(]K$(1[2OV9z [4.{J.eM(~^b{iگOh6oDB<^2U|_*ʚr| oq :NTI2 W_#I\.:Dw[Bfd& XaXZKs XBiՀf̅@-*by9 Ok lX9̗5f;|[Zn (dZ˯[_V.ZʲokUyHz*ˎNxbrlFr ?5|o[NO5`ps4D@|"&":KKh<,:l=o5^Zz [ P <.jߔیx[#Zk%zjSC]AU~j!Hj$ DB5m]e1ӴB!Ld0u::$}-d|qmA n7 ǂ$S- U 2lL #4ϗ&bPc%QLdkB_$ۅ8_X Z{"b80NlbP6O4CѤa>Cs⾵ES[+2Z \ ckS#LdiAs|Fe+fGbGgZy}w~';uO'WܼxRgo|O`ĉO޾r-KoΥ<1轫/sPtV^?6)̼y8367ûg&Qb9 <7W0~}M ytޤX\ʵpI>RZm 5M`SE+Q|7w} ok^ɨB⥍db.K%MWSll>V]響g.\[*<"_PJx_^_$_ލͿ&~<{^9wcl:oKWGiS&q2f]JE,Fu{SAR-jRbg=s!?h&φɃ(o؛f /^Vc]m(DZKs$HgґK0Ryx 2ΫJx m!aIwv6 ::@(lXHi0vb_ 7Yf3t0w:Cs#== uNAc'tr4]PnG,kL2 d~hcqݶF[8mF@I07>pA[Pؙa$|nKщH p~LcLi*i& o@4JBk&ZxW,RI{6zuSp\!DEl:bD7Tt]\`'d0W6 "MvF,[c >j(APV.'"WL݅†[)A^PW2lLI[1\Vl6Wg`wolp5QV$eyRas-d.CUQ[WQh$j̼rV\VkFm,."|F]F4 w2%Zu&v0B< u#6MP0PH+XKHZXA>n~ I_G0[H-WY(18I-Db/QA4[ ?Çፐ65-pvg6^L;2+P*t&cg_vl۾ǎ?}|Ӈ/; "\9ҙ#Oӱ|؍g\)DER:_̓koxKzu{zd/;}:_2 I{E 0|n'|7 Qο^ijSZ_S5uUelmu>jjtB85C0Z,QF"iZt:F#,ze &Af6Ca8c`JvESj덫+V4,\ݝiH`p{ߟg>NyqٱY2k ߍLz;͋<O|;O۽qmҪM7bE"[_/3[H*b@p(qG:rBw2紻YdE.n6cHO =6 6ЏCbD6%V i/Sa2ͶNx'nJ cj##q0PXdS`6ˆ:QA78nPW" xoZJ sR{ XD㰌ue6l.[)OfoE u!Z08\l&2XjAGDp-$ֆnPV"DҼt6j\HvLFeM&_6YXs)pJEӤKsh8D/fd!.2d),83) 8BRc P y0LDUZA.Fxa?I!JGH?!b/p0rN[BkĮZJ ʗӑn eL&ZrvfIG*QU:_2 m aB]e``+7DryLF2T p dCtDTO\qy2O.S1& '=[sFq5W-fW-\U[l3[XZ>>{c^z*i_Y{߼U P BwHb OG$uпE@0d9V[L?{c|XUT,єwVe!z xcW4oZYTE+ݼaeO^k⬲Jkm&QSe ñ| B_&;TʪMlZ$%Z u&]XH D67$;R]d׋m{#Mtv\O,v{bX<~[$EIDb DwvnؘXO؟ȧ%XeNW  tڣ w$E4 -i@QCB䂶04cv68㸆a_,HO+P,7;݇>vd#O}!vʹdFҝ+wq̝?>{}_W|_F;}yݙM>ϼ?fF!~@W@0Kk?{yfBxܻs0 _zq\'Tpy6$mFM n}enTYV B șL(TU-R)WoYY0ZPPWiiVk֬,\TV`\%]/o\3&^|μ{ϓPL)0 vy?}G/#xȱ9}XȦVr"!vB#ȥ|VFQ_l!_XÌMQʍsD"cI]mq3ে7/[]QԍnԣKr`h+54i/%O^WYsiex~ڛ` %@hJ&g7Cc ’QU]~D.Bhw{8n)uev8sC]3ttM\)[ *mn'* k!@_oڵ:^_aH``m9؅εP|'$% fՎ_d0 , 8}5ai_EzY04y͑돈Ks@+СXd|+Q_pEfI*`2dD@zmVBLc!lKơp!~q_%Z-b$߂?z_̲3V@|~PkD csɌ,\u_BضHD|RBAJ$99)C[0,E:}6- KT\v#YsDSv(klr븍-֊e/^QdŒ+R#96lTgvkyhvNsl HDqCl;|_Dy ސprdLgZt6q ځu| ]htqKur>rM O Ev]0l cKg[߻w;{g/?r̡+g^?zx̽uͫgݻ4c< ~tݳ_ޙzz |gFO<|q)s$7/s@^,}n|mn -'^#cf!{_?N89>跩ϏܾWS[gezm@>[HXK/A X|Tő't2K,෉%|dijDVZ'bO!WVkȗ/ςR/Y˘;ˏ#߾x?~A?܇733?؇o'fތL=/޼kΜ8m;ucJyVIta6#6r5ZZ]6dzbx)cvpmq&uC͟ uaɥ?0RpV`(@M r&{m{|<^bϠ<3v8E5;vŸ][QKhF-[<}nx=D{,];eu9y|!~Y?lbp@rh=0ނfq$)6 $$X2aG{2ph'q:L xĽ4O`}:R)Hu  d6^cq J n}~l!cRAL9.8*9[sz0lڪBF\ů_ 8б+r6FvXyJmPZƫiJ & rƨAPaee&ah3G Ӏ2_nER*f&XF"(L`iJ9UJA|QiqE- ׬(\jjI^&l٬eXQDDžܭة<h|al3Wu7xI4K{ODF]>w+n[#ڸn6T) kDmF@W0tvG/Ϳ-%M=NUEǰJAUWU yeXV,w *j!ou:H.dV{u5<A`PZm'*-v! j.6"3tJ4pi={0әp6g)MQ%C:Hi P2[X/HkY^ LB\sk<21aT{(‰~+y `0-Y g U(T+7pEl@F zzpp /|/Cp)AȜTZCؿɴ75$S~ǖ3'_8ǯx >î[?ۗ`wu4;1rŭ<=`ݤ|gx/KKK2? z c>f&''_Ϳ~ˋ'o`w//[jYSl#GhGvS*x,.w] HUZmq[EVakVWqZ#fjEo~򺞜<ˋgϓ 0Ͽ N|Ff޼{7rr뗏Ǟ=x[o\9w{wmA1dpK\."nMm%I+c\NwælP3ݷ6ӿΝ@Cp'wM geaz;V` )/ C@ƍ"bKK.-UG ÊIehZ ">+$K^&H02V#cK  D"850 pYW7ng~\%h8hGL u%;LP52[ /K 87E{ݞ\+,lݽlE+Z˝LWuQT(-ǹ9_L[Ih]\F'etR8DqӒ%.y0h R]я\C\V]"M$+XU^^ \u KS4fKg=%O$Bozۗwߕ ΍?ǩw/W_FaPwv DI~~vWf~;315= >ϱWWۖW+$M_U]SWIBܗ8SX&|^MoP5hBC.uVѤiu2A% rQk{SX"E<^cӠы85]OK?f?f92q,Yw^w!Y,bfffF-ɖefflbfK}b뭵W̬̪o+,L I`9/N̎̎MN}~qջ?{'D-px|l.RWէ*۾2 E>Y"댤i?d}t3 va؅jr=R9w>4JT0.LsmmNB\z!( h(lJ=PkV|??)t7XG&3WcEtU2. ][h>ygB M}tQDt\~Ä(Q$k:LF~EglbG E͒]mPe{ ;Eu]id_ r[|5[௮rXRMVGPR-` d"L:"!M%zhX2Th(I,2Zjt pȨTV`浧C(BB0ڃaFiL}>(*?UK(xxN}Xi(|, Gt -xZz;4*'n@D]:#Jw!]hZɴ3 E{ Ӛ*ErɮuB4Xfv{R;ݽu΍ c߿qO WOn }ӡCOF^,UT']K$) +y) <B1: lq(4թ17/gߔ7;Շ2FcNlш%B ]\ƞlNMye U]QUr˪&9b^SAM ;i uqnߟ7 ߵ幩@^|x\_l],Ym`ȕ|/_(ػ*kkjri_ʵ= 6qt mtm8z+ @aJ: ;OBMzht&ly4`7ARCF#B>͟ʐո<$D9$ }T563i&>B!PH t  r ^1L9ϧBQCpw%% L6y=f{"gfp!li#}(Φ8.͋X4&캳9>jStKN_}cqPXj|+N+'Z4 t  lK%^. Ou+HEu7D].l\d7pHq*diZXlː5j]_Iu8 s,6 ¤^?kFФ ǴW (R O V!ZŸ)\3Y#at0["` 2G1r ^\HjԊ$4y1ߓXBn嫕{Jf#u:]@r@Ae%]TfBn .3iG(CC kLAVkt\ *%eSĬz`[vrpMZQq%"?"sY V_N2\t 78m*dleP )Sis 2Vyˆ]Ł٥wRrF<_Ⱥ`SVٞnP8$ݛd)K`gw{xw,Uo y{=~]`Ŝ"KmPIrbT6R]BBdR\ J5|$b^+06YW^&YAdŶE Gsi󌦀FGHD4vg,N uLȬTO^,"C3}_|߹Sc+ +Sk1=qn|hcfWRMI Q>oa۵dJ1L*0\NaPrvu%QYˬ*)(R)%dюi/k XחO׍i˿-N-N |׮^}M~`E5Q-{.PFMMϔx42Ρ|f Si7)>~t2FDO?\PW2;`r:VKh0(9It lT! 1 HhAd-CBFZ4Dg:hl 6z]޺=Uv h XJf;K7AO`z|) L>Ѫ`;x[Aݓ>o$HNhIu>}x#@Lhgi3І/"K>*o|hJ,eKY W)5%2aE)ry*(jhԁ#i9|Jǃ7ԐT˃0߯|>r1#֙ nh2*b)ZcD\uk `UHA ujoi) L@+T0Tu00Yhq>.7\rZPu{6mӖw|o{WУ,8"鲥P 費vS.USl%G ;aIYKi`[t73 :yQ ¢V MɄgh^KEgYk1}ik e)ߗlN~ m1~lWʉv7H ;)v8f9Ww!cok` :J¨جbB2#5up7%цGEq OS*|>^=ZkNO!/ G_pF!Cӡ;a#it"x[5ҀYt&}5}4VjS-WC≶,F.Gy9 /Es6VT/E !Vq ͞x:R UC=G/_x.={k^yv^?'^x:4{8=:= ; hՏW_?ĖF)|ߟ&`|i?/ ~umϠlund xa0(2=c][~[M1>jN\v 52PaC,`. DqB>2kM{"SC\R^k6Иy/kks33#֗ϟ?5ph_~Zy)|gƖpׯxo_zHw{&zFW:JfzMnRg-%RBFp};o6wg5㏦=ā\3J:)I!:f/AFՅlT6짉^(^h07ى-A'18ϴShoZcUSYжZ"m!h~`M5o9}(F@"ptgοWhHeЁDjny )zA^ Sc)0&2ؖ:<<G\- u(1` ] Hи:4;hRXT6T 3цEKY ҅,WhAE!S+%07[P2qZW(\?+ذeJ5cUT3j-P{t :ӌJc^Dм8Jt@ x%Ln_,%"@pAe"F U`!\B`% ;ilC]**_q]Ǟ/VhPŵ5ˊtyi f Gh~^W"I*فVOyq'S8kni;ʵ@^Fl Thl )ģςwdҶTRⰋ2]k C`0{u(մ-LD ('ۻ-7(CC (YOyIw4ffs">}ԕkH߹ ?sۏn{+g>{64ls(١O#+S>M~7&>,Bȓ ,[451?eq<$0/W&P< ,Oios?NO$ǹ奅鑵?Wg>K4=՚w5%<._E*b@ R8ȄB1'`ccy`,άE)q{ ]_^_O=L~\]p] /y_j /0_^_vx/"Qg*e:LL%4>3(nhħQpS) J`#h$j px}o_ HzQ#!8Z^F֣C}6S6l^IQ4 vs,gkhw9\ ^7ڌpwjSWV0XyEfN tϰ8JZ)&ݪr8Y D .9BǴBZA"k2/@P|5V~L&3mPz.u:&U{i҄@]= :CAu-FxޛΨm$˃uų)hYWln%pHCsD\<\x|  aˁ4Gcvf Mkk>6wA7BKޢe&Q\^e񇍞5lg_tڥ۷>}tGw߻׮ܽr/ %A ~F&ޯ'W ?Չf?< BB$C/H>(2$>|^emfc r 'FN NMM/-,.LόMN͎-}|I+v7k;>ElV*" z|N0A rxLȥ*B+6 6%/ /MOΌO_MNo,eW~Y7W_ߕ)g0<71?52=14597x3jǏ7mWR %P->7k ol6#U"iA 6@o N( {pi3]!TB`ΗQwqmjF}F%ٮ#,IS{|bP3')jiavɊxvךɥӷ((H6%:\@8qh%kiv۩l=˩T t- m ;aW!Y`v'oC#JW ШV1j_utgZhqZ=x1EI0UlmU, im 57S}JG?54th@[1X:- N@6T.mAZ G) )8]/jM>?@ Mrמj!q^ C;4es"+k}$gVtD[ ,H̛kK VFiE*nQ &Y,8j)b}lCr5''P@׊$#k>io9 B"y<T-KfhZ"]V\j Z,. Hn*b˸bT-YVFϋ4j`p-~}zŘsw_2{k.ڊo`w" ~ew9JC Q> +ot)af(ngK~gykIc~R.*ٝbbnm wea9H-ʟ5VV]Pb R+x;1UZ AL~iZ:qlk\.{>u aw!%x `TY XlN7:JP% :Q4EFi,2!DJ@,+VdvEb$s>'>D֪>hR4% Dzћkk wZ`ut 4.oj1Zh_4p кr5FM}i#3cm2[\J\jrh=O ˞pk7o]߇C?{xݓG?|xK޼ލ~GL_86{–H50 Ҿe?̣0i)չ *z xaI'460e)knmu)ӭ394,n BB2XLvM>Wb3ɊĂhJp j͈W:|ũ=o&&G󗙙ϫǯY_^_]X]]]OÖ& ~&߿~)'O?yѾ\CЙFM4nMhjPo3PHj6CK{2VUNT;Ei+PmGP7`؀ipLbҴP4!)T'tAMHc]du.]K_ջ؏J&kyx;ţ*h:^LU1\ %ыĕk9|H7@Af_u"wy:#Y:s;w8LhnVz=/7? IkAx27S1 6`3_O 6G: ҰHt[;cKb,gAS4T^>{uDLcq!%F$!9]NV`1_us z~3Yv~ddh/M;Cj obIfDv攺|]>Ӄ;MwdL+Ql/ŵp{H M1/Rjw< ɝ^I :xt^TWBDU2 C +7ٔlL\ %_Ac.riXXPYJd%V{8 Kba?E+YUdWI%9G8*-Cv%F{DU-Ru6ɡ4[J-(-w`o%;]z3Aɵ0q\\rQO{T|3X};\{?>g=ܫuQrXp|z/4/C0M,!z\}䴾脮mT򂿧$ Ys)[;[Ļ5q%j*" ڗG0U'Ӣ8)dgoga3 wP4 R"kӠ(E& etFDZ-/.K,Xk Im*vu:a* AƠ5_O$ǠP2 j" !l^fa`(Sr`k*U3>L0vzXzt FD+~ÍDëriF;7K/Ghn2a9=BLtݻn_>w;7 <}2ɓ[7^{+ܾ>QWdžߍQ a‹_)!~IzO繍s/i~YQƆ_>G9a`qljC##o>^z}­H(Y*׋+h^`0*k+ x"ˠ?FV:e-eO<114;;/_7~W ߉ z/^yH#nәELv 6*m0vtؠ].o:C$Pd! % Nf8CɇHBAÝtvCu2]ɶv|8zG49 c YɛLcI\m~:呛,4  ('sB7Aqt׌ !g7BMn( 4:%9Q.qH`P;{N tm.3f' (C`nQp2YACDДѠ9+4583)G:i9؉Ip*4]|督# /aՒhF}\kp!Mӑʈ,3XPJ ̕9<4O1NF'.ORYLV`xIuɴv]7eZ ؅jt<] 삹4 Ġ;PQA\. +/ > 2 A2C.q#@ )l6B_Q`,9n,ZYR8>tx[7m_IJ v[KJ{1y[ |p[CrSUOͭ ~LpU .餶SIr?"q]ݪg*:k-~,RvT |44p)XMe ؙlKs%Ymi`wпMp8oWgcbhkeUzA4iAX_Vt.H?IrSe  75Q].wh(_Dr`љB$g=pPh\K8 LI?w & oO(αRQ!irFΙƓ ٞ_ ‘2@- pD½dQdÍu4>]\tLhBӶN|8$K26Եw[ :r[ܾp o߾ {o޺ n]ѥqw$kCgGW'>̼93zmد3ee?,BΌs QX!k8 s^=|.~213r`jlF? |pf'N?r\:Q, XP<1WkTהrjάE r"M9Š5(h`pQAYyS{/?LO../-|Xem}c+D.C.N|g&fF'džGޏ||7PO=|;ͫd4vWoJZ946;ɉL#ftw?GK& ExQ *t؛%:;N:u&ց ;ahH!sɈpĐ,#MCgshK .I+w hCCp=v[90.{'$c%!D%w H>yقe\Yq>j7wX2w@ԆPV6[)2YJJ9[FWP`z]#54Irq*vg2fE&=v dY["g(Q@0@ik(bh_S*AWs!{qnD2 b2JՓ r%'̒Iz-j!@j p]ّL55 /O»hI9j祝HxͮŚ)쩕*8J=ԊպBzOD14$|DP|ǁٻ]}#9ɀu\O().a@iy8apabȧ@ en |lb䇵fB~x3n-ݘ'ɏWg76Hչѷ|twOA7<0o_ߟ{juqE+UVm{l,(,V,V8a$ n-@ F'oiU9Ǭ*}~ףWW@^ا9jyeF&e/6V8]p4o<0ͻo^tGw/]'"d[n^ϗȁpt]A+ AG^#p,x[+$$ɚK,l4 e./aUIaA?[{Ξ>s. ΢Òͭ$oB2m`;:ᎂt=xIr2ICҸ8HgQ` NVsAOhUH`prl׌ Ȃ_'SWq3ve\DDq|>J_Os.% C31s2<r,:<lMeMnw}1$ўg}(.[bG50hbf0Wd5N C1%dG<ݵr99ŃL:bIq-M(((lJ4ўM,|؏98 eZ}J#tٜ "e0 ElfS6VƠOsǁ!U8p&%LP`.TДd ;8_hRx?A jƥ_Pr )'& ̤il# 69ʘR>Fs] .upH08Y5/Tkj )ryVXSɪĂ"pu;xp vo&-M7}L2 쪾cp\0_4<*ۍ]},8G{\RnŁs3Nfޮ>uqqM{YKygMr씵CIcm|o9X-ț`nG[5?yUI^mڭ-٦k>/]|pfPT F\8?dƾCA\pdr{0sE^ 4H}}If2y ;@5Bin7])&7YC v Wxn>j2hᏀSd !$3/"+$s&%1?KဖMB5Y傺'ѽ=~RdيZ!ȇQ-닝 0\Ũ>p0\/4SDѸ5OwvGq*E{ܺv֥+w._ݫ_>ֵz_r#oޮ ru!ʼnc߁.oKS2(0~m_?1 &?L.ΎNJ/_<>so^{Wo>{1qtbro޼sʙ^evV͗kЮCXvF</䈥lӻf00ORSH|ì*DBB.,-.q+ kK 1;qeq`ϋ񉅙9P+o~_ڸϞzrN5i:K=!Q2f4@bq|J- x8/MO?$;( xHG)vA(+ 삶\sSiyr2:ғi8~9ut9^2oqJ?fJ";lShB7ڜ*-}C*9鱥3xȞ=*S+|d".ء&D9Bd;;4aAqfAG*ӱZ Ru,^v;!"`lH*-RX*Uz`,XZ7jNә>ZgqXJT!8lm-8ߙN= $֥BS(j-):DZd3DTYsTZ.Y*_CrVbfu!FQXV÷_lW\uUԂ5gY}!{^qpK /qI YkY|O[U >/>+{2?fk6Uԕg̕݌cƢ~_Q. {]u fxcm͞wWY^X'(; ;]a\{jϏ욲p"d8"r^'֑Ӵ pG5.t.K& fd^ch5ͽҭR Дx%A]G[y⭫~!80ks?>:T97k3II-^8xʅx" ;\|g`GF z7r`˗{{[AQ/sx9}(QJD.".S-s,Vޠ0TnEBgjuJbֲYR>w_6>OOLBόέ.N|Y]_muwqzzuqiFGg&޸{/]l,bZ!o6ohF3D%0E}ɬ7# +v]^>@֛Cs]В/Z\_ةhs6@ 5wh.+\M6EII(m]h[Ϝ̀h ۀr(Y ©P)X׌>EnMd]P* [suHȐ]v^$rVS HJ!M!vk7F|lґ~C8H1RA7.Mtv6%!|2%! j-D7X:`uA$ІXDVj/Y;l{LLn1GxGIR=Ȓj3Yq\qպ2B T YeF-K*dK%X*5leKUa<24h^b'^Z.eƖk"_PZ-B+vBJR)Kn:Uٵzx1+ΪJ {|&K / >X]]=U³R 4[ =-2o S%ou$p$pw>Cgk4/{?DcL ]'܃2+ 3w9*rTp "ٷ0EϕIMlIz 'k$J5d!l%P J p#` c[@ CZ!a2Iv`!~ @QQV#>W2CKѬQ7 Pc#O:2]h8*@7M0YN7G"]h"QBFEn7z6. a'8jbOAۈ[mzxCcǏ=vW.߹}[oܾqٓ{Ϟyxkwt/&GKC3_?ɽՉn@801u'/^߸yǏܻGzz@U`2T(|˗*ZUJT"|ͮWRŮ XReXj.GٙOKKG>,MLMl,έ-MMLLZYY{W/ }mG^~]z;z@2 P9ey MxבH[%FkZy(kyNAHNҧO⟅ڥvy5cP̥ kC[H(hf15SH3pڴ> ՌoњO'2!P0DZtIc\xs'%S$F]ט;qY׀VWo)!Ok^ d닷yRi<)s )#Dnאׁ4ƅn]Plk,@| %KLp(`s=4DƦ^Od f&Hc%$J\.N*)]|z8*p$i%T/(MmXR6p\Bzu!xJt|~s< *"Q}8r|EuпɭPm@UNm evHՇ8" $xFc|f=iZ=dkҨF=Yu=*H"5Yim .QyB5jm ja&@uK&.[&bIrAm&LSr.~gE2uZ,[YY+Y"dz?KJj@01Ñ)CH˭y MIi52$>g]WK\Zt=6m`)l+ϯEc0{Fw蔦W>;AUQmna( ŧMmmݭ-5@py[  BK;%E[[K;O~+~hT~)('_?9x}]Q>Vui Ňw#U/DYdD^ ; uI C 2_*phX uPd54wuPt FY#h|>HowT-RyDG4:oC4}*Mł4.;:!Q[}PYh^mi?/y r-HC/AF7NwYK4Ds ٶD>ɥsl]}2lll;qW>>rky:>2@''M M |x9;ű>~s/~Z3Iշ47˗ny~smLGhrҹgN5vt>}՛O*0I3 BN3_ %ZF_ i؜wŮxL&txӧO_|Yiumuqfv|eynxǹɱ酙q23{dll#Qw<}'qL[ωξ== T$L$%&:rGfh F!~9=M4;40nik?wWPP/Z64 {EQ}as@aԑ#uGfzz--$Qk+OE*?Ԝa.ijm;{>w8(a0I@ coM-ZxHoc8̧-p! PGc`W1=ߞNpGYwVI5|AXUpV*@0>6&! >MD;_p&4ju9yalX, bu6PSB1*,!Tk#jqq : 09z-ϨѫpS4<|%=.Z.;+t7+\>8 "35қ!<ٕBa Se1$B‘bDج/Ib!ִTcwDq%OP`sx,pi`gK9X5"V*BS#22Z4dFRjVhͭq oʷOgj{TrDߏ+|+H^w {Tc`kiA ;]U]]=z&h~=+:m*`mm9kx\п$] ,/s[zSE~MyXV/ޗrv+6jw;%Sukv}^[9f4gz{:I$@$ cDdYdYQzޯ>^׭:A4qy=^ܹ}n]UfHFwyb:XEsY_$ E ]8/t `*f+ `*cxJg`!,⫔Qc|3%BvlvA9.KXր@$F[Pc*޸6pc7D7&aCt;{k~1/ԢR>JնX R8SʨaT@КAlZK!  @$˕p0&|çO㟾~_g|?~K~g_?/Ư/>><ŧ}|trXk5!Zn7B'"\,Sd"ɚΗ )އ??XVwG(:B* *v!hR*Ժ]o/onomg_Q޿ݗ_?oշ__7_/? ὇'p> mm~9G8/П9 wۃJ46?D\C!ڡ\Hd"rXKzخ=#fT ^S&H_p"89ݡ8Uф<osh|ҹ|ਸu*D•j KE*(M9Qm#cAx2$2I,NOl`t`A([!B@MeP&A i30#Bi Gr Pfhá3I6Kp[Ŕ8#餍PAq`A2p>5,@F,R2ԦùlJL&ٜD/$D̘6mZB 봆Cƀs3š(QR[jr3.B0q-ф1ۡ8_p DNMACje|Wz V3 H (yeK\zլ ٶiſs:5z(~3iBz> V.ΒRl[* |WU; Qt(]IkqiNӍ䡡fk @J7.(wXSi[ݺR74-˵Q9ܐ_6֧Ah6 9ϒݶp+k>Cӥ?%5r",Α& aSe}=t-qwǎȬZCԵ0s]٧vy#;ıxmbYد ̭b|ez[ʏ#+EVq3;% kO;|; 릥K+^sFN$\^1c|d|"D8@'@ @aB|(`7ÉrGyǣu:h xƚ_0 ^ w)/bӍ|#(h@^=EYVwDDЍXˑQGo4ǫU,!w~$SU2_ ]EL ^J b Q*:jo p&` %Jɷ`4X zCRxI(KMR8eN3xIRw` &h<믿ws_5~ݷ_?_O˿~GٸZtz~͖J(RRjhp |[huvs8NJj0[Z15&z5֤Siv6nn`j4i.K!h0*]鱂 /?ow_}?}{g<|LJRMjI$W&XfԆٓ=>;>(M|͖bݗ*DUpa'hOnIWw/VA{$3ɺF2b99S! e(l2~TDˠ4`uu@Ma! nurfm[ox-^nT(;#TCIhom:Fx݊``j\oj5Wqʋ˯}IBs_ٯn}ȿ{J/ٮPGγ zkPU<_~{,Sote`VURV1_k.Owˍ{ O+?Hl<'}\s)_MmU"l|3ݺ@~^y-۽ܸfsiK̕$IgsE>CD*2"X,"I(@SX4p.Gb sqx4Lt"<"(X yɊ6拗wUF  U, ʀy :| ʉj-^@lIgx.*?A{1ORZY5b)[oloJ+o\7,\4Hm<,l,MDMr\9Q\\ZDV;d-aTrC$&bSjuʍvȕ"ySzã>o~0}_󋯾O~|Ͽ_}wIrV1+UP %X(ub]F*W.vF齇AZdsTfӪB.twgv :fu:L6aqPNݢ(-6Zڌ(n(2(4 ^Y,nnmm7o?۟ۏ>O>蓟}/~)O?}gg9]\.R۩(Q:4V@eUB-ts ]isOhfR9HuXd Z._mz0:{?{oa4Rhiu`RyRMK|+u۠ j@?LwGw'QTӑ{GX a,8b V*Y\I$pGe.5avqpk4pVrnc>v:mP( 2{C+Ƚux݅+~K0"K M& ѩKy{L|AAy3,$Η͡cRaEx7qf&.HG+F`@:h9Ac,mHbPIZR3irAj-*05S( |#BB7mEraC4":ց Dh`oz|vϢِ ʹG\4yhnjYῲzic9I]1nk5pplHBBA&gJT~?NBQ0 P CBW-vCH0#F075FեKk]ݦ4VvZN%wRUn.HsGXS@=b]z _. "˸˃S8W.tū?~|>*NٕJFƋg;D o(x||?;{n>znSǵe"|ޝ:o5׻oz8t:|+s΁o8p;3m۵xnNJty + %ݥOK?J)_ox"uS,^WxY{ ;?-Nk<1]$?$ t0'(s97 :"/ȳHxtjQ(-+LX.clMHg,+5N^B,; 5sK ׹dS=Ed|6Gn`%k<(.IbM)I}Ok`}>LnFsy x1NfX$%e<8,1K P@Oe]o>/IJ|Pu4;L C-%&)/*`uJړ7}?|g??~ݷ;G[o=wiG}5g_|_ R"TmO# Bz7BZ/Y6GÓGO?}hRX&vyW0<&=^8vd1nn,zNpZ3a2Xwu~g}ӧ>~ٽ{{=hݛ)X>}`ԙptsjK(RnӢD'󴘋WPH+Ts+f W(MnZ,\{>%1@H`r %\JB;jXw C) gqJ}V7Yk[ 0ƦQ)0M\js1T;JHC@0,Ie(^LZu ru?Ou{8D"nѨ`dC:mɌhadSpɈ-̹b3>" ;8X?P`9w+gհx , b b,' ;_1(i <8UYC&J%.]삲n:͖-Ya!!Ň>]< ` 6EzPQ`9 0Ayb^@ %B2ɔ:hd*mպq'$1_ Tˣ2,\l3 "̬|1HAXA$wmMIWwPd#x0?owto0mMg'aԪZj5у7gO=}7vz7|'Fg^s3^?"Xg0GO8Hbj=}ۛJQc2YrjA3-6V1jrޠ6u2z.եmLs7;|RF3/DsRZŗ$[oV`;O`݃ow ~˝RmiAcv=|0#θwŸ/,,fZ(X89BORٗ)rz޷;U A<<1+L-Ayci#l|g`N>LPGQ[LQҎ׺'+W[>nd5M X%\R Dh,Y8]nbp| K)NZj= ~Y}D!ȉz=V6r9?b"a!BztV]"䧴LF͡ιEy<\cX?r٬LX %3d[XN9R +T$@\jɠV{0 D)FIn+˓>;N^}נ󚃲i3T@9f%=<B h,dvR3^`M|T~EkNf> - W7e9rBBmz$R(mmk3w%|6[E,sjtS+ wy$ԷeszUsF9Ol2v,-aCZ(VU;ZeSZ'? nPmMvw0"mn:ڶrSꢭ@SCkw,6yH4.@q'P&3VC%߿Feܸgg>n6\h/T֟[ҋ;`+k[%L-gu/c L 5@{dl;, 7fҜY陮m׏ugzr<jKh"b$5^z(ɤzz=0Y×%Z椬5roKF=NzMLiALR:r*y̐GÂJ +A9 /TǁsLC,) y̤ʆ_Z_C͂(Ycltdh#CgY_֛`w]Wk6HVr8؄QWf/ZvۖF6ۘ` V,oZ< HP^D18t0l>L!˭;=cj Pu "A]kzӚIk^mѯݸ ?[ߑJyّҾ |ezOŁH1to=:'ԭC r{zk0s^Kya|ymrm{[jc4ܨ/~_=͗C/^v_nY`ڋۗ,+E'<s^KBHL`8]JdiƓ?r`8)4 TPȣFTXT Vod"^MG,żN>Z%Xn%ú$hKƂ (|Al+%thۃ,_49+^! GEϏSp[]h/@mԄ[:U pEG]B4h m?,M59_%-y5XMS/'CO|ޓ98 Nv&{9@u0c9ZrdLq0Ea951aSy*:腕]充+76vvu&Nh6itŶJp:R@0Dwe{e[НF˗ 5A d /P(tнhN$+9N>Sm#v;INWhgvq -jiz\񬙏[Bb'@#_NII`0EA$KA"8`. ȣ4p!w{KB8+PB!jsYa/0t0t&|$@pl  0lo$>݄ cyիc5m$o_{|Q{uXQ~k&mTԟ#kIJ~p!yAA袱r"A^F(2Xh*\G4LƇNbt* {UNɩ xR s/] 8u;lk+v$&|cZV WL6 t8W-M[z>57'EDQt4gP^ﳩdk5r5 g u[Cr_nF-7PXȋEL._yh/l zQ8 6`r:j65vݮu<[M`L OkP=@0#^ҙ,Z6 wLe_Wa1)mWZ Vvx`kŵͥ0_Yc1vf9SKT& V.˃_yYƮf l퀲Pr5ȷ5K+kׯ?yV}B}ʼn >/ÂWA[s^ 8f +',rK'{mۯHʗ'-ؿvJ;gL<7Ns  MoHW%6_V z-Q\_v/=oZkZrU^U1!єamv:X {R9ͺy؅ӂFɭ^̀˩jU嘈M nT Y PO˒ofTY[$QC{GwKxŶRZ!Yan\2/7UJ0}!՛bE)*f+uWH1|`Ǔ^6G@쑻# 9=!TO 3.+;Vl`'o-5al?G NHloppO~խ6;z3g |PxVEP`X43p8rh9:yzas$_-4UiejXPZZ^[UkT:hCv.A+[ K:ZcT+FV0h<-"/w!:ҝp41Ba*1:p[R hY~8/'o[T4K@^i|RhsF$&ۄ$ .J@};HI`5'(aPQoXıŁŎ'>9{hpxi RMF ,)#Dc}P!PUw4ȀzFhM 3MX5A 崮"a?f2\MϵFDji# 7^;0h"ZFJ%g(FLSlKOrcK@g+waA.pi>l4Xb*H>:}>gX~¦8(?(Kx` "cM(0\Uc`@K#1J]b"^8)y ŶHҀh ڒ + < G.'1{ ?:";v;0PhShgFG$ ‚pX<t-C"惨?/1ȯm:CwhYl!nml\y|DnXxmS̭m$-]5(ٵM̸.ۦN%'\X8`VWWlT(YQ0s1<( S&1S _a0L-Ee*LmO2D 31cl, pIBvWxҕo<^qt^T=ݜ6^Br˧ <\|7 #+]8\Żx넾~r߻H0ҼTS<56s]ٯ WaC׍ uk]16{Wycr_wmo eʏSۯFV_ m|%{1A^}ͻ}E}koSO,91!v| š(RSy Q<`ZfB& 53 K2Ov8@p\Nj42( /`%`GwM^ W"y<8%FKM98R=5|'Rd筕\ .Oe<8ry"$|Xtƈ - кɉi|BSH V:]ݖ#6'XOĔ+.9Xdĸ=n;tb߶I~-L_2^:n%`=ʝYf(Jl7dV!- zڧ0Xnv~^GyTo0ZȶɱkqYِt0-In)<f|D &|ݮ }a"T@"ȏ3Iġ</c Q\UyjlL '`a%u}JR'՚?HhG I΀2Q*]-:nL= tYT4+dTK)vzѬR;;MڱL r4[-v)N{ўp"/滽ac{Df[i(r/ޘ!OJ] ! JK@p3 iHDPn } HJ | &# kP_bsXv{ewkik3 &8ϢMWTOlÃG؅a!1O!R+Rdh89& xyzGp3\*(9I&ƥ!?>Hv u_Je0ư`/Lb a t8</能pȔ;H%v؛Km0.BoQ`.L"F_Dʑj8j | )F&IE}ڵԟH K}r>SN7x -|30]0Ѭ X|X q]ȶ(9;T1؊+p= fPϠTEnRi5P, 60hd8<spIyh5#s6%g뤫dL`1 \&9*yR`1& ƛ`U@#z<ᶛ&顢"^hvbjݨY5}A?;:]IcU4!sRiJb0m!*?|t7[v+ "Q]CihjܰY!vHy %A 9\j/gF l:%oB.#zIRmu*I봪FWa2Ujb_nkdz.*gtQ 5zC7^~^!n.`ryF3 zAѺNm./_s;MP,_{V.|/}͜{Y.(w/ go^0 ƻ`1wO ?j^޸ϯSfze\5^-|aԵ\'d_Z/a{g W˺K /syӍZn3})W]V$V ij1f {J!X<iw,1h1O\&DN'e:fX@ :pa@n&0/K/:tӂՂPH'\,V;Jp@:yR_XrJG~VنBB>~ /_FeJ+\lk& o\fWzШfR eq;GҠ-̷ڙD%,:AgzlWo\Nݗ݇wvD!*%T{sP{NGij=Qisuگ6'a(jm:=ܻwΨ蕚x eGi^? ȝC/2;=JAy8$,pdNI%(fdQ|vպ5Fk;&h;ժkjF P+FCZ޻N:| : Y~v$FF7~?D[NÃJ`<;[|՛.Mt%cM$ hÅd FiEP엪P· 獣0-jPJ` ^TZtֆc 8۝7ys xXz`EYi|b3 A-כ, B(. TC`ԛ2Q &L*pƣ€`TeY(ˠ>Bo GBk 4YRPrb.5"F+KBZ|)dX.d(@3Vqq)y >' cT L_|5%9;L Cup1*2*"KI}YmPiⲒ9(XcD8Ǣ e8ȾxJzSBHBg0 îpq< P`˳fb@{D<݉iYkMgMNNmoע$k4l8lHw<5M.צ|aΈn@0fF[B\ЖhehYRjUm@*y[3"wf thѸC<7E:\I)Vh|AaXmvltSzYP5뜔E؀G!ZCQ)]\~q/3םSnWyQ8vd&zf.{24L}Ӗs?h_[.>{E툾ն_qӳޘ8v3jqڶ\8/5㥶ZEFb9_z9~.nS)f¾i mfbYr-Erd09ݎP8v d%:H^r&<킹qV EØǻaz(+2|#9e#AgΓr%tgi4}@<+?u\MU)&ɽ?>ʷ:ht TH4'_O0o}i;h w?>N7OR# N41vIO=ў5c y\D>>v{ kmn6uSiv{Y?|wnY鍐`J |Zͅ n,m,7w Z3W繞,1WیTfd)YJrlsm/w*m$Jd{<B* f0=:ɴ[Qmԗ*zbYoh |8={3T/+ WY#)Ԣ6soɟIj/55ۛF>c*/l5-u /C{äzLwhVu[;jڱ@5}AY6\|U\fxQКWwmNW8JF9S9ixNk_(dc<ް y>K!me).uYrz6ҚA ?=z୏ΞktƇ'[Ço7'j;4'J ğ'.t{GZB FmpۇdVwC%Gǧ^}0S [:=~>fW4; 嵵._y ;kz=m$D,-sXT@R7EIԺ4Rx{8l:UTֈU6b P(K'h}9=Q3)Qŭ}GNw'[-8铧 R1k4C4@ 10?=>{hBYNy!ɝPoٗ*Fӎh9v¸-85D-9j' 2JPqXjm|xjOdrݝR-|ryg F; 1[$ꌋ\+HDLy(-LkzcX6YQTKNșl(I ?LJ(Ǥv!GbQT> Ia48\::-$[=, H%p>|6fB TQGJ0 k&ci&`"jգ9J'`X@4._BTmx|\` Xaj`]b&#qqX5>sq4vR xX zeӁBnXX(ߦJuYoVq n;<5c f#WM%O/o`N*5zTF3>ؽޅkɸ* ;3;:眪cu97/Fـy6fW`<'h`5;=\Jc#\Kqbj[7)'s/_>ιKϗ#O=_~>_Źkp|zaN~Y{͝bj77Wz7#ӿ#Wbˮ㫎㛪o{M{3m>={ic GQJ"A }aE )Ԣ*P7κHBAݮQj٬;qxLɉſJ.R=b9QVWJq]ñd*VjM!<[1i[(d!qrfV Pg m?3_DF͵؟QDD;K4ݟZFeM5 m5~xj1b"*Eӌx@&B (QFk@$BItt9<'w4`4_t%pSl3sV_]H.\o)Y=D ]tgaq?od`tsǖ.~_Il{KFx*\"{IѸ>Zj)u8]. ːd۟STI~۬inon{I'NϞ_lZ@zTZ5)fvܒ Y{u c"JͩѴ#Yʁ\=[Y̓%Gj;Uibg ~c鬯H]#$wG z< {חû+Q)e%):?{Gwˏ_?ip0yjk `(O`4Xb*b273JJu" _(DUH ɺN 3.`M\ yg}3B߼'S ?7iA}6wa{0'3䃅:gW`GP"dḚ*ÐI,+vb9^I{xEi@t6dIwd /&aeomJڝ'pٲ;tdΣewzv.MrXX-5:ҳϽҹ`"29#T*kuFr;[ܺsJD42$aw=1ۤ3Lb =Ei$ |Q;tJ6X0>饊rX,GbßլCselY$aI8[qQN/m&q0Ysw^pq-H͒H曣3<79p'~b 읺~g@6 AK(p|Hdf;pXC-=3]ΙH@ YKg֛/(<+ w7Oc7Փ_b9Ұ=)^m/O#GOGOC%p;~W4z/Ƒ&HòE cW*:~o855b62L\U ~q]yN&oW[]_gh*W4B ?N$mr]1ԖCdJolKmiBT3Պ_I'N%bbp~/ gQmxI#7ߝe;™K!{o[0e[-Wm ,2*TEJ‚9+'JmuCTr4K_O*vIb9l0_knۿ۷LU[}yuQjZ1{++gbxg0Mbaݏ㻏 "l'q=YPȹ\\Jp]]\tttWb|)p//! :PK.O#}ߪ$!Cvz و.:t'hQO[9i7ġ:qkQoKbkՐwFT[0$PsNc P|\,CDIT~'2hJUg63O 8t |e\T7; plג;.Y`(ƪ5&OBJRƪ I(ٓp"9#DFGMI1}oR"^I6#"gs(pIm =9&y;}7LOLf,VN^;zBϭOw<5[^9GlY=s1 |)~~b]f33c2ȩ7|$ߝ#FSdB_9b1rެ(P+@d}g8mvsfF"ar|s3 ?N_Vg~ŭO8w|q}!-uxo/νp/_]yG{¡Y_k?/?OU:$r-Yȝ|FW9bOg/5q*`N$QUcB cH$JKLd&`$OxA o(_d% l6TjJkҡ0[2dj@'~E++"k&TZI'{ՕkT1)W͐ fJ'MfXtH iml H2~='0 pLJ+B6Q8,W" zddSќ&$L8T,ל o$.bs 8(E(9,1h[8 m%p )pLQ~|IQ.?. r3_  4lџ/H9\˥ %Tr +En4BjR3ˋUAs]}86Qj(_Gz(Wƫ(1zSx{F/4Vws~?#G؛d=̰roTnWr!2ë;`'_L_>8l4ҝ^~0j6=[wh^[/00: "pVk~pS?OC[4B% W֩uq0gn1\>\mÐ\WCzhYn*x9ؿy|BR&$^(͊6E}0G*+aW\Gfۃ󆻦+"ח-Y4/G#"!t.NVRC2./;T=H$&WZU nIY_] H*(_BՋjZ37*͎TQpaLB򈡰?z];lޖӭ Ξ#0 n=MDIA՜+R-!.`|, &-X F`4`䁲#v:0i/Z2&1E5\H`ZװPJ djjr _tKϒw{~}t !,3ٹ[(,Am;I`- =zl^2{x 7V[Pn%I:pz^0pvlfOpdwrbLNn̏].3\(OH{Vj?v_}ji;:{_uNΎ9ɥH_̭x49=5}%U_VqeY//r`~u 8Nw|1G5/(v^mZ.it2rZ"a{noR nj\.[I(S51y2fB&,7$0?<(eU =2rV-_ :9V09Yvr :%Jn9(e ˇH. jIsE>.n:*7Vv-y@LWE`lCY#^lSV6@dHdpD!8Ur'Y 5rBj68XnT֜vdCYZ]ؙ-Фؼ/Km.)׽Ū?ېps0..:[nv'zo2^]ݼa}n0?!ŁUFSzx 9= 5iqs[ Ǵ3'0 4yZuys=\-e@%TNWGq/! mF62V.Ad]-PV)T]ftx⇿cEsōj=lW´.ky}0#ic%i>ʡv&D@oTxZA' Pb#t[Wn2nm. gxF:ob@.Ϗ~՘-s.<,?sDk}3X]}HhloG;HR .(' lhm7ûwп{ L^muVW(}q\6 ӥۃ,reoP].؂-pViA|?HFMy!Lm. n$@:uhYo(\jWZh!|\OVQ0WR-Ԡ:"7e8E>*-"blf X0PLk*5ibǁ5(!aqŇH`z޺ҲmJGq-PE62i*V+pSF ["VQ-ltwLC*4+Qٜır36> DLQFơ_1pUE8.Ӗ㞧f{(W*qe)/!YR0Eg/Lͅ&{{T[Q._Y^ O&s֎~9=yM/Gg=ӮI_Ͼ}5qӌ|g1QI rJ%6F9WΧT6E$H2D5呥) zB!w8+'b--z{8Lb$70E4 !M_ZeZYcTo\MOU*8+1D399Qk[VDI` e]͈PP:#zC3r "J-,!`s0%)фP8Cʛw zb @I XRKK ;0t$ً Ma9+![hpKl p{:cTCJ@0| )!#IW@ gqޭuޡ-,3Z_5;~]_J;(H˫ds1C__K1#5ZlIb934eĸ|F#O;wo{YۓBj|/h[~+U-҆5؅zuKO  @\:{L:Fo,2wʯ|sq.'bYʨ0 L39XցM5:}mon*F\d I|~9!F%ί-ɠjM -_T>mɠ?[GMHf@_nBݫ]6:S\]> zwC7!u4#ɛ1J%j]\(,`h"b$s+`|Zڐ͈n 59 r@-76r %zs =1XѦ` l*!'qSmLA0I~kHNJv7 ZTaK$2n r9ЌN훩t`Yl@ m \>ʕǡYTrd{aLJ~D'$_[®0 hjZ>\*Bs V˗ǏO-!)]˘"VTHGoܮÀ;Q3iKd'tg#V(7įiTJ h%PRxĦ$ K rD"ha+"2Gvہuj3_?Mߥ,-&ymmKϮ_M-dkdpoc W3קk߷灧Ћo+ھܖi}]? ?GVW3,&F]MZϫ嬒O% 5>R,E#T'h( (B3" iV*_i)RϕFP "$p/У:?DWJ7L bt6Pw[huH ʏ<;Ԯԏ|D@ 33Ez$)]0,NK|Qw[Bw,;D݉T,_on(](i s҉%wHMe#IvW]!t[ [rB ^Ns#u+#䰸qځ FrBbKK@Xq_I)PʕUn5E%ZWǨRswx}^Drg=nOd_rT[_i}^θ3MiWBKlnxG9ʖùJeA^){.Lj*.5>ë{pxN-Xo;]`Wd[t Ԁҋڕ#Iȁr,Lovް^sԷ P [pn.ah(khF:(۰.%Y.%>WF1NJݯg80 ΂|V_[;$:m]aw*IL9۟[cT/:p -< <B^?sV;~\rܛ]/se"*ZjC"71A N/[ |QN9GLr GbuhՖ\L}ȋ` ěe%9/|ҩ&%(_LH ֪X J=BrU}~vAhj[/5@VJYzh/yZ9{,i8hId/>!W6q|9kf;:FACaT3vۮ/3i|nCxjYОt'K Z"7 wx=q;_;.96"gKu< av`q'|dsSB,+V,}!d/,bޘ|pH:* Y9,xt\NHF:1pYEs OUmK/w?o?UץcdmgӁUx(YagcE*zy8n|R4}*ٟOJwW9}=%tahBj$D4$㱐kL{}p< RK_ ]>tgXI@ F(\TՓYH VZxȘ>T#L"{^Gd"mV?8a[ Ttn}/Ks: ϑlӊ1%gIoJ\PҳQF \/OKllW1]#ke?$6&eIc̮nмSB*>JQyiWHQ󐞖[oB*UY"_/^ZcRi185K!|`\ #E|aإb̯ooss̅D0,>yE&#'7ɊF컾fH qs~|ᘴXEHr;{˵|:9K GǦoP.W(AEACպ3>PVi2 BBW6tBޟNA[[ӭzO 0Ը#FCN]6|RΘ%ْW[EUQm*<͏;@ [Lڮ-):zIˆW|5E *'a:>1oOHG!/(ϪF1\п|rG8ݳ8<o")t"{$P5{02.-S#[WW$z}]:",gXc|.|R=O.ד˹q:Ǯg೾ :jxҲ|ް~?\t=/zWaxOtod娥q{! R. /!ŊPx\IB? %d:܁p,ղQ.A[1*!cx# I- GD$Nf zoU hkM4J pRQzaOഉL.%T@M 8J5{^τw!`s&T&1;[.1Pd| F@4 yc|m-7|xu  #I^nZ Qq#az:Kn`1`1R%7jEetO-9^/N̜s8g/\ YI9H,G xO]W0q}D<Rh)s:AERIf2WIdH2L# kzPI*\+T<&x*<'#j6Ue?n"6j"fA/WoЖш_Te *Ǎm ~;iT3X% /; $i (cPO$,t IWbѤS,I8 p]2i̖ ί`2$'=?8E[9Am}E~8>|q`&o Fc?\ZTmNR5tBd07 o}>o--~bwZ ^;UEdEj s QC2\jjKjb&c8. Y90n*M8ydf_<:ڕ̀6  g8E{FFPFȒo1W˺@X_oAX,!xQՕ1Z&RP@9hș̀Czmrz?< CQUTDɞLg1d_XF$VYhley̤$ddn<;6%v)DX]+뱫\^Ց(lVx*ߤ;⓰a% s8yIa!~i1Z~kxBFCeGznMQn{9S?EyhH.}&;ܧ>}aE )4DA@iINǑ~ۜf`j_|~e26[2vl!q*Dtф;4/tr.,AfgO?{n>ǿ;;ӎ`:woY^jD]t#2ey=؟ׂ?^& V#KGz]HӉ@yfQ&\2lހ+8!xZh*$%U5"K.\[:FJ:0z]221RڒTGrb0ɿRE %TO<&kQh^h]؊ EBP^A&"1@7n4'$XH_cbQB K&Sy@, S6j. c0k{=ҥj"$zWQb%a@b2EBL$'I`/^bxPpPk I ߒle g R ԁw$ n^VG RU:qz:Q˶c'PgAD.]WZ L3UTCsBY/.__ți VnS v=Z.._$pG[:i( (# ~{>M ]oukB:A!!6輌ɻ34||1_5lv}W 9ʵ{4Z1kwċ@%uTzүW=[CNL]QJަ77bP]-H`\kl)mFf4*PT>{I24_:Oe "oe|GCgJvEUz @ w~ih?Zu+s m+jי̅ TgG4/[*NV?g@k~ieތ!g!yT"cFIx_.6kw=1 MNNf,VvhH0\(@[>FK%kH,ZL;F[е#=6˒x(pCbBA@R0z,bѰI\WPRrbwr 5._3_!~A',FppP;F 3Lقa=r{܊ i%N+*=vZz(!%݈ǬCW-To7ǟz_v4vTD E,%;\_0՛rBp_FWrJ$]H]KG_+*|DHOb0Q f(c@4\s ^Xk; oK2"eB| gd^I D VIRK_\?Z/V75J}$άḌxIKAjh-6[Ѓ`zh_:>3\Nv;bNs1㬑HyZRT4rVa=`Omb2>Pj[S o^Kѐ2hw;|.mZLv5躦bD:Ie8D< Z%b!xiXx]mu~1c<x"'\ʈeT9_ALH)U[\ Yiv+lSqD pghꏧZ/nt$F7(;p|痤bGΏPEѤhᶈf}EI˽7Ǔj@#ӞF9\!o_ˡx\KvDm gz 2whIs X9dD\>T+a+PRAy*N}@nKg9:RR $צm_ NV jĕ:.DpV!b~{̥4ԅ^/!*#p+WӒj{pxAwhjDhk_\c`^Lntu:ƀ^n @O`h fɻ4j]o8D"4\y}>Nc2a o0S>`aLn>b7«DJbAS44ޟvWWeQy7ίrCն;ej+l+P22 a4OR>ReXNcr=\xR9@L=7_(e*N]Q( XbR)^NмG~SآyQon,?D,jִ=7-ds9TՋ 6z}w& hw[ψM9 a1#Wz53hj=={L+:\$d+ӕJ=xܩ-'gCطg$܂+|OQD(ص$zthSEckS,~>:=;tHG^/F`{p؃!g8Opt B2Z|c˵ HlޱY=nŢ 9u@ppT[Lks`(O_kz6ntr9'r*n豀RZAƂn-gv!f#:dx"J{ @F1`55[(rDROBdb=T0 g:fC3\NIÊ ĒޭD\(tR ݬQoӂo0xʀZ aY87g;3 jš s8WqoCYA"&VK Bj2C6Z&]r~)%Io@Xx%x{|(1@7v7DԒB9H|m}0'lD;M̩DFǨ4P\iF;")Сsi8D #@- Qmu[ 9fn2u<-޳Pb-W-^_ݱ%/ I쀾&q8*۟l.) Cc_m>(ƀHyڿ;@Rgr-Vb`IP# =TuR%cr3C,Ū4/;4WK3tpVB sh+ Wn:6EDɲO\j wႜRC9OӪ#Enu.gZU,ڝ rvلhdp]ԡٔx>he03bY8 ,ũ3VWCsu  -JM9& T3D>C[*'HXC/o0n{}%;V\؞ vXI,(+6ĊEO2%5Īmic|apNxMvh.m0x9 UoШsA;lѹ PEbInz44[hUpPmuYuT`ʣ\ޅs\e ϢdS樂0G"s 솿i4}ycJx-M&和)Qj5P|,C{:Kl}咯X4Ig6{hh5 $g8ViћrB8VS(d"7ABEJA*.GVbia2@YzހcM!XKE \` IB.u8!_Y~E9967tS癘%huݓHl^]Nk4jx|()MGQ,Y=L2 ƣKX 0SSP(s&bU_USͤ"p SU5y Q%}X\M{Q'( I׳FT50+|QU7 䊗 屡s" z XK:SV*OoL$-؂ᠦR9(MX3R+fTDFE7`3-b\w,`zIxFO!*O3^Ij\UŴ|ErV.',5H0 ɗ{̞(hD(CȦr^.3قlH2]; xgJvlyI.{#|9\orzs`=w߾*V$j<_UQ][DZz>PPlk^^r-'l# uG*lHl(mhfp#@M@/ D-ܔKwgWliڪH ,w0Eg-u4W[Pq j8x󯸗b%ro@aD%jQijooy98o;](^ѽP pEd0fCc2)uz/}/דw\:3o_ba\F1p%yTR4/Ms].zI[.8׬Lau/z~ٌ..&WWsTʷZ|\%ez@2k6yk6l+aoaӍvw}1xU=@5JEu|Rx٪4c1_fFrR|-W"JbXxqpY:G]5nׇۙ}U ۤ^ P^c}0ʌ0]94oԨH`꟨ rR5<۰stUo׷r[*2YwZW-Ne}P d`Wkty|Cd6U$dDឆBxڂZp Z/_8' V'{Oݞo_=MtVwh}jo!W-)]UpS:ю@6Z&-3wgt¡ǂtSU_>eהpP:X08Z_Bg9/ f!O9IrHk΂Atw8g1{}gX_Wgr܁3] kekv$[S)r`\JCmWĠ0aE!BkBawjZ-`H&(C5sN'Fa?N?JeP$;Y@$2EVǒP\u"f/H))CMɜ}ydZ&T=*IєNj~"Ej, 7,k܀ƣφM'd"z.6PޘTh^snajbX7[buF̥2|KFTIEtZ|A0W>,nh"rӣ"R;]OҔ^*vrh#\`nY \7hv+7s;hηڬޱ%Lfۛoh=۬?^}G(|Ꮘbo/6On?d8l{jDj/nySX@Q=%Ι><|DZZ~zS/PT 6AhuIc֫Bw[{QAn--VNe ˣ|Tٖ h n#oUFOk xEʃqR.7pOҝGIb$8JdPwii<.ܰN2E.&?֌dȰIHDKrR*4/$@$:jsLA[S8yhLg,ff_ʥs#'~ /%CA&]XYWW FO F9T~3d|40r)P0nk`b7QibSUa2:'G9ك'? E>|ǗsYLA7 a?U9ib}>+ wu9~l6^67+ӑ8YN?xX=?c9p22G7KOB4|No Nn/_gW)RjЉ$WE9lt#!@3C9a-V$*P3'+E.uؼd"g@4d鴹^SQ(%\'hNf'$"՛dn˃r:V 7cseo:5+sK lөmYtt!p^ìDE9:/43Um&LM2}XFDMP98NJR}N,aIAۊd Xs=3~375R0o4JJ*lR!ӨR`m\T}jR,#aO*x}?}-s D:呚ʄ@kwet4f#l08e-QEu0z WERl5}_ D\+wV2jZګ9`b-d>oѶZv~zvͦ^dk5Oż<!o~Co| UIQC2*8gbF͢ YWWB 暐Rnؿx wĕ#{0BҢmfqΰQL@08@zBg6I\VJD8gѿiF|tT!vJrRmnW\R9 @?[ -_ :kGZY{>oR<[K/ cW1𗔴l6 y^DxX[= kaшi!!/"8\N Qa2UPk}$ M jٛ|hQv`i t> 'kP | VWfw8Ss(<*ImQjqQW0䥄G-2,AA3 w!8451fC 2#z| v{2KGO!=w"#Z.h M>]VRw?JVǴW2-dX%L^/n3+f*m[KI@ou@Uun`Bѿ V_wJzՎCw,;v> ogw ,闇5noszaп6]u1Se9~DYAd>w} G{]W&F6kҐ3ZSĆ*\l/҆Vk~Xzsrg(~/¿:W(\TAh$C㸼.P~M. _L%m:y Xl"ՐT O}{/jtwU@h/6Rݟ!uKLmi+m${˰ Xt[[^BxT¨`/z ?y߅at1,=z>` ߐSHHDWoͰc'ï^8e |9 2H`p;>D#lat۹^GHf5Hj% ^_|c7![Ho42j+h[j(ܿtvOIn +"%_O4~ _Wǧ7 $Hxƈ$7 E}d8]$24 dAyȩ i;~ś5;x$ {!p3(P$*pd3G>H&= (C-(j1_ZTg!Z*itDiRQ 3G ;׋q;E-`q:sIئVAbxt*$9S_]-G:o E1EaRi, TޡbkΙ~]*b1]̎,u?vKa318]j${ȭLy\-&7]^ZUT;|%Z\? @`  M i8 , d)e?* TȤSH"YѼ5^tgk6WV# !-X9#.vԋ NJEF5hv[}5 Gs/5J[$:Qk&|!s eݓҝɼ7[ |bXK9ZM1/9܅&v OpжKSBVfKuvU Ȱzu{ObdDFJ7[nbszxBwLlW>  |IV0U|F!k!@W4wůLZy_m4h4fd“8*؁i!- QpَfkM8Nu2__F~rfq+#5u3UC %7x-˧/HZ(b06u\?]2In?k[z/W_~J$fA*u [mpy<Ɋרu0{%DB3pW %|JO钣p/4/lR,nmǏ?>*Dns͜,7Ssԡ<=;CIT+AaO8}kD+kz  %_TtFT&eTNa^CV8Fh[Aa0r|}BYn= ;^α7P_9W"IQWpe,F>N 8ϔGJA sQ+㶃v.Tp%wV.!zZJeY5W03"ok)=Ua QAtT%!G eujg55馚r-[mV^J;BiCo!l__>͔H`A~{B{ȹ`Hƻ[]!uJbY=Z=}#-٦3U/PZ19#PrQS+U-zWՕ8v;}]J;=j8Uc K;jn48 (gů`gy9_zx=nv^n^wr[EqA1agHg*0Q[l#}#8KpŠRxF]V[9B(Jnwo987ӵI:?xHCO"{}v> #Уݏ>b`D8pL1AIQ I#+ėT;.7q}aOi*H/X`^ř6eI갖I@0 yِ=952a JʁUFg8;]!(\$-,NG_X̽&^S,ow/_׏Ԁzi VOıbՓQS$p7O!,6@$WITS^>VYi0u8y$QՀ_Π4Mnon`4lYrdBJ RgpyWrjZV=xLC;aesg-Sc7BRRaܤJLEpO1/QԤ%lh4W]n7 oߛͧo8nǥ^l  p$5ߧ*#ͦnX F&6Xx)BdKI{=mk#0wv`'x xڛ;AL*Nd!a H;$-VYO6w[2e5+G%l5UB\3q+[S_hsə3cvnV#ZtԈt>|P3K{4$,4y_Lԫf]ӓlr*C* $$zcPXŮسdbJؐHda0+\I"m@_O~9hz)iYV p8}}E +b9[h@$ьaxpy":xlyz\,4{bOܲ߾?? SnZJT/2lp\BdZ` 7)d(񹣵ϓ"iFP7#-0:_ tˁqN*,zƢ24Z=vLs&Ǘɂ۳vƒAJ`_e`BDqPXJ'DvNRl٪ Z;Tjzbaeʏ1d`:f;@RM(qtR4 4kM7L~Oq ~g&9v'[V*OV5 j.q\A3>Μ΍3mzr4N7^?}]]= jMܠH8KXUjXup=lu}7@\%9(6;Zmom K)β7*K ?9]#Rc@4O^C^į k}\{cᔳ& OGwȻo,|Jn(e ʳbWO#5`k`њ] "Wa gz(@\t' WE})k|~+2P^ƶWp vl;yv;T-L@=+4_m_>wbTf+" ݎ%!bWB7X{=;fryw򾹸NW0͗  X`-,F}]^reflbڝyT_nzxۜbvK ^<|nXc Z9A%G9*ח*V=d0V'X: #\hC4#J-l 3ba&שJ;SڣxQ&H] ^ѿiZP9?PS\ISgksG2n SS^\^s0M7{t?4Q}nR"֖sX>@Pkf AT>p20>NVhP^/L]JE0tEmkt'&C^өs]Xav1Z8⏘J- AQ '|Y3/t;۱\~#tknqph{5]s[`}Yϫ&nvY}ṺFS)kIRѤ76qEm;D^5GRM "ϡ k2VGJe9+ yg7Oҟӷ̔>r(#o_;c7 8E_*z5i]}\^\_ADQhbbSq.K*r\o5h!_/d?}$A^/erPC.Hb\v*G*W6Xk lQM" 4cI,|s%PjdΥ&WH$^~Έ:v5|7g"Wa8s^~Ծܳ7 9_qT+OS_26|~IvMԹtOHݪQkt*V.l%wFTsPS0d7{֔רU\: ѧGQWЩ<5zԔXxjo~[=>]}s՚(_໸Pz7Ɋն+G3{ߦ/D8svu{ȩB_7Ht8}ȉpy9v!yĐ>V+3ǔMڍF4vwDڢRUa81[r 4ᔀDB6[QO @ -ؼ|@w1U:Qg}x4~lJv2z|smgM,L]s,Aew|Q`"s8_6m24,oF{= m/%vYG/-V:.[hb=줚\`TUZ-^*_{\Cll(OzsPmr1g <ЁR<_8e ^a< $$3jgi єtlG!7>m8:D~:9%*̿{KxA%pXD|IibJu~]R)S#ꆌ१}8<6"9<ju*OC\5 ׅ#E BR*sI4#J:@$//@*Ow7ߐM*ÞadG>/v Rϙ(_ԋ塡H}m\HG-aq.g{ umr IU<lu|t$qldɰmkm.Q]\g$3؂YPUyiR6[24DjMƱN5/ص1/rXdKxb5PxNYJAXkHZ;l ӱ.?C0G7/LqJ\(Ձ2eU ؿkV,.jWBB=nPvPne!Pr ,|zo/孵=p#RȍrGȻ61r8HHhA{e M4+kp sRz+z^v/0՚m Na0D cP? 46wʨcx$ LQ[^u6tk5ˍ$ Ayb1e>1'/$!6 $E 5ǰ;]#KNĿ UBO+ya\2$= s$2Hfb Ɗe%6iZG' )PpG .W A30"/a2CtQOFRϴ|j0QyDE:llC^)T*ƌ%+V߆b*؁n(t״}n|@vND u,vN]șԡf5 B x:9WOBgv2_yC8\%TvjG4/<Y e:8$Cg*5vWCʫ*HVU{`H`zjW[l$Von{CZ(/ hޏs^ǯ/: >~ni0&|/ǏEi4C5m,ݟQbmu߿;aв㱚k3Fj|u;{SVogܵŊ%-œ,爱85/bmo{]-gGd mQS)1|VIQuwe77UZ}U. %A>/JAy]$>2WKl_ A(,j)֧3Yp,_CAL2jFn&*(1M ـ)0J3]k$dϾQ.: P5UoH r>KJH7htJ\_;v6wW*?"TW[֢e2a5n:^'Ͷ;ZeRiL}˥D! 5=p9rth<2Bs fBԋ]J!" <|49 's3g(VV$S7%X>gOch Xe~Lh<6Lƾ3zϢQ\+W> Ea s%~u rь]2Ef"Ck cW$!AR HM5hsMMk׏W?OH' %S]5/0- ADM!I/q1Wr*g[`MUwn&ME- '6;u7)Ujj.n~xo3ŊD̳tQCl\]ww̛ . hיzuUMz]wL.#; qMG^ʋ#spyy6?WWV;j׻ܰv~h_&/Cqsv!_ SdryG{刺3I$?mdALr61V>.o/>I,(0J>*:h[sq @N A&rGVudtt1!p0`՝*T"XRdh*h.T(+vT/LwTx J#%Bl@xo e؅nRs`KfVI,}{f̶V/M,6.Pfn:F_|T*\7ѾhY ˄PPSa3?G 'T# y{N v%;xs~}ݟ5)v> dfJܰ# &w?\Ƥ/b0Wbmlv)TG)7fΖ*h\*BKU $KFZ2. Q,Ʉ]D EhJtdf} =SB]rBRCivA5*tBE+'U[EX B^D',/'pZӵ$x(}>{pP5A啌'!O]yu_rMgxeۇVw;I:zɦؓ*M{s6x&3oo%L&2 p~"ZpG >4%uwFA_{z_7us~|o}}-`_<>n?~~|^>_@yxYVnR +V)‑ v6s]4K ֊GnGO S]h2m.^Y 02&7ZVlN]9&])"L P>/*tݫk{<jn6l-3Z*Ĺ^ %~ݎ?o|nl0–kP;W( 1Jz,U6j#@D#s{w/j(S$HoN5Znga./{~K  #z-mhB> ǙnM5K#!D4:WO6pehVN2*7+,c`PX|%Ԡ0FBFctJ6 ﵜZ9uF9i1$ X Ja UBKL|qyBHϳA4w{<E|ObIHeO {V_2덥)ݟȆFTY+$T7ϼ" o"D*Y F-p" E%`y sJ 1`ulqވLZ\(UV!lKzaq.hQQ lt "ii82TCveE!~(2NAs'3ZQvJd ͘QJZU}nB5!z5cWJvv;^ϟgNK>X/3\QՇow_~]7t1hsƌ n/Q$./i-XŊ6r~ʗnZ0 'i1E@"!2F+?3L?f(V*ehY{SU&c 6 f )_yi)!аgro 3 V/3j'5m<rysSvF+b嶧s/O.B9,`  ;Gkwcyv]k}M_ouḽݢŲ4HNBa%avGqKPcQ gmA.>=_r U6;s>2BV-շ<Yk5'Q4Sc#{$䓮<2S4jPX܋\cdR>p_`?0 W[f *ėΊ<叜o6Ǐ8\da_-R8i~8A;vP&PHeݲ}[ϺW{<>F5Rn\y3P=hxFY%2. 8Tq3^jIˆxld,ȇck2K:cC tj>帔pDr\$|ݠ_Dcy%')$|xz*Shz8[ u4;YT߸'y|ٖ~$ R ]|4 ;yqO8uL ;:&Qzr,< úDC@Mk ^i% =W+TN%/bz#-3P"[*?"YkRߗr((Po<L}rTb_ DHl@6L@.2?z/ȟG'zҺ3[s"A|}v"f0b˽Q,WH ?d&/ӯ ^ v2cwu/e"/KX%7j.U*]qr}f[RA+ V?$RIjVՑZiac'C{>Y aTp)[ ًZ;ݯԇ+9zᬓ+w/Hz@/ ES`Sq2yF(7P\R./4!>Pw,jTkgHFkxl+'htP=h5"{YУtr8')v򽕼Us=_XhN[F}Ά/P>dEHhDӛ[+HPBOdQ7n$22wL la Bn ͻ݃` C _v<_{Q{UU^q[m~qwq]8EʼmKtv\;dzP .oALa?EBYs @IzW'wsͷwh|{Ҙ]ۋLkA;yji8 Ӯ_/5w[r1T>?N]sM$>Dv$a УEYrAw@u1?,*Vl({?Nwg:OZk{5:Rg[j>N+9MT+es -/D]\ ?kVNИfAX xО-/,P ЙrLy#].P@6Z77P8QjU!݋\*?!2;Hg/(Aa7aRp9(ϴZѶ(_q}J SGݰ;`:aJ i3"_ jtM=ÑC> o>z`׍F$3do}K.BMIG?{o.Bg K2ޔAGϘKO*Vxq,m ?y<ym2+p53?.c-[y-2_gȢdl |dAw.ß?/$%58ۡx|ٲ^wg+gmWAę92у yɏmdYkM>͟5ۓ9Z\4ڣZo^Ƿ'rg -?~C@l";C=YES`u:aX^{/aܷ\{@kGn`2{q3P髌O7&#NjL$3F73;-~]F$_>+V;[XAc Uķs&*ySs+n>=Ԝʧ7eE˵:T\UE`ҜnJNe@$Q:v4RMSoeOmq nNci(% s@)sY7QWnukQjICcykF὚R-\$lW7d)M9]Z&t9΂1ٰ"Gem>r07 TԂbW"H7(zZHĿ>~iY;-f+%vE1ޠn4"蜣$g|/a+ؕigٜDĂ* R*ͺN%6XU,M/S0WH'lǤVuzV*jgghj~G`RZ 0Et0K se\B૾d2aRlЯ:6pׅ+8UUɸ[GxEW" !=MNjb[[Qو-OԭVNZ/Nξ{W&K8\v=ǎVKpiX{}OL #Ő7 X5Vp|)71Hh("]42@m,j1bx*27^uF hX3JMMZ@pйHy&Y`)Qd?\a,>p}jN@ǂeUP { ]Q[NKh2e^s͞ VI'/q 9qiR&k*9]1;b\(ᯌc~,>vBTQU&Fg-JgeVtWxJv?ov!dsT6Zp_ K/N``1ELJRTz |/O"1@IW?ufRłZ/~߆p_+.Ʌs%_m>Be؃jhZMP=؋u\}Lʉ( hO"s-OPL)Omo|Y mdo1ڃ齻X=e7wG.ej4:u~Ӡ7C;2(Oh8K~pR ~Gѷx |3j+| %b_1+~6P1hr"=+d%{ݖq3z0a*+?&h>Hgۚ?)v >W \mVW9JUIƁdf~X_<1KҖ5xo o2R/RZ-9] FϴmwX#VFLP+å-~_g l0WԿ9bHG|Nn4'K$*)>-osWe5R"V ]֪QtXz h6'X󬤽JLL 9,.1 /łc0e `"W"{)KH|bYݻS45^ kw*ObBP"XE'XV]"⛷_^]+/#O`o\; {ibÈtCUqƲzLf (|"8gR*~XDߘQIC\GlbAaZȂHT ʤfSl4_aw1anF TVoL⤐X4d7WהzwB~IUNjd^7 dA-DRP^/ xbPdֶJ5c% 12Y9˔dzYP7'Jn;**+~ V^4S\A0S %Ťb_n^]_NJEq4*&*%y_ǮD_YJ$Ne(=0o% 0RhjM"y =w4KU@drhj5 : W,8HAW;\$hfGħsf =3ZNJvQq́n w`*꧱,-h,v)ԉ֖4DNO7(by-9] W^l`{#JϣzŢ8K$GVQaѶ(V,%ђllEUp~H x=Kdc9ֲf{(Pt%[%,e<r)2jMқn (U 1:N7JUfVGv M/Wd S:XEG>\^p[%E҆h r! Z.?۳ r*\f.TF!:%m,)Jг.cz?42?0._$$\4z:8t4Rt{k|g ȈJ./gEp, Kz:9}z||ۛ}#mBmα5GXf&B )~pMޝYǏV)8C͟_/uq $V 4<[ oOVM_CimYB2Rgwy!Ne=e6ӆ%@ƃ0W[ق|C ʥW>`Mǽ-s(_ ?q{&Iok&x%Y<ӆ_;IR#'PU!\O~wz0jrnM./x7SvžW d /Ko4K5(t=WBdHCNKŸ#eLZt\|K|FxVKKQ09vm=7c7y/c/ku?;cI(|U3rruRje|Èbz~1Zm2a/W8 y2F/_9G*KD$^'7T5t.Iyxyy @QWWNY4~^_^]$VO?R'T#?HnR\CXϒͲJ_TZBQľRW ev>luhDVV52heĄ(}fG8(EQ5ktb)r%̦[d͛nfbH ӆ ]?Wo"ҕeʦņ/ׯ02^+TXJD8 -zKp+rptet勭LV@LA05gMA=p8gXK#i" HaZ\'"Т%;U9ь#p'szZ_N Z/]}I !/%`Bå,@4BiFixՐ8T|E.`Ի׈2Q+&6ؽ0n?=<|I 7D(WFvz0U&+FlzUIbPTQ A%Iz5;zWdJ.W pQ9]a&Ag~ pgiT@:I\;|/t)x~z͝KX>JHY2yLtCbZb2qcd-n߼(VR궋BN4vLS*Pp^ݼJI}."e/7o===⋅C`~!/%3_/KOWI{-S0H+xDD$)1+"XgU+g.82EL|_ݔg)V^d }yu!c<[%(OɫtN"&R(Li q@OQj&l]qvU2,ryaWtr%x f;PXowS0L5wR+m@YG_y/NY?]^7K|֚*!~o\ 3 P%A!B!/f_Ɏt̂D17[xVj `Qft0}8`{~}tdM5[o?C]B[*A#%0puTB,(^{ }.;5jTJWg07ځ;\4:#5\DY 'D8$Lf fv+@$1Poh^T\q!27P.F%F U!_{2 j{Ǡj"f_u* -ÿppPa6_Lnd /grr3; d[SX,V:Bhq/OJoo)45 W!};t{/UoНR{XO^yû3إ>2?6' IQP:*s[F3wP|-gZ ~?n`]hV|${ʵ:=Y jn CI(hQ=!ퟶN-)rUi^k_p{5Ta4x$pw>WVl$:HEyx\y7]1uG1-J݃KQKMWbQ!$q#_"c'|g7݋j Aa$P z2*~Z#{_JJJ8 Jƍ݆ dϫha(7 8ewXkbZ;7KRҙ\/cWu`D%#ʷ6v; "{%DWQ j iׇ TU`МM2"`}Y_^D!eIM2$W99}x kۀ^*/o9[XG|EEDr|#L|e _./"+ [c8|Bxmn?w[GȐj] OQ+l/ SJ3|w*sZUx=  zKIAojF($L Fa |am4sŜiwfj21jkou<[}ĵĠ9M 89& )K^FP5Pȥʛ£R(Q|tzgPU^JcЍ;y%!H^ [mcI`W$,2+".7=g[ރLnc0qZn͏67riў-){,R ,֝/P <=e{<~mpTvU8~1A[g>O6@xxܜ+lo Udi7j?>(U:ME!*؛#*z`X&hMRhn:<) x#r;ws;qG`=HYJ;R 5gsڭcK׺ Ej|عsf[Fve{w^sВxUr^?8٭ye5d:۳]~鬠Sv @![_ݞb3 [0 ,lGuy]}(V3c'EM߳O7F_$rRTY+~{zE EA77Y@07^1|XcfSeMIl s+XC1$h'7If7̳?]Z͛w :_yÔ NPHb_dR&+5 T \5bRFZ7#=KL~*"76*rxXC!υx$aE%fu/KbRM>U# rbB\ΌH&M2'dFpI0d 1:QցSЉ6IRIL'!3 BTj%zNՔE#hU&5::ފ~x#B@rf5Ӥ0c?\ KHơ* )tQ {0ӧ \r\#MqK'\m pUm*y_4S8Ly0BFE(k$ K"rhqvQ#QL >lv˅\虩J٣\Q3>ԋHI'N'vh;//pj3x|x-~D9`oRJ4)JGb%[!J{qV+O(l [r<^~Rr:l0]̋xva@P-PhOStC\`ӓQ b[-+Jx%z3Vw[ -2gPu=@^,ӣ: 4Nj| Ozkq~_3~듼DI#L o0Q[Yq rӁ|>|HK31oz wKG-MTv<\FjSre暖nw/T2_V-+nw7po RFyTRMndYo4MnPM ]v[k Xˣ\l+[  Avs/t 3nӕVPn,W쓍7Rn0 b5hJF)QoA2_y!}uT[a{X,%%aS8P n3P;"/Kşⱳ|R d qEh@.đl9_uw@XB[>>[gB" =,m8.v25Ѱ\Q2 c27[7U]:s\ T&,J/+8xa/||Eħ_~񟞡-䭎' )FiSne 15q]XwnTT=].k6߈Eu^{QE^ʤPhX{^R"!)|O??\\s% jW=;W?^^ɻH,UH-? pula; D@Y Wgɴr&Rr] W<)%wW؊b #~eȲLܡ[ŊXkW.>]| 8-7p# +{`$;Ll s-yr;{V,wǭh,bPQEQ%}w~q~aB:j4 )iM(K1+A6:`8ץ2EB]E4 dþh<јWUJŎvk- 5jmf &Ԑj%$G-rO³;l:J:03ZCe+6m$0/ҀWK)ʇGFbހ UG C^Kvįqx@?/)ݼ,V,nFBy C'UhU %6F{ggoƄȚ_4LOe5S)TCILQxFPŋ)gl NGl8>#ox8zeu!3)tQ+a 8I_ *z呿`la Z)PiG>_|$چ⡡q jHʨr VV$_ !\|2U%ƝOwዼXjVBr|=ʫWr5;_G"S9kZ.[ܫll A!>J%Y9[Ijuòf9Eɕh=@^nerG؞4 zaBT{~R<dul.=-操ùDH3'{Z!%W/p-> ҏJH1'Әn|A0E5F0Fh9_FCF5WJVťK~~(o~%Fm8a;+xxcHX`:aSpR-W-Ӆ^,z6s56ėNыl+ ӭ浡]jXCO;vd"4e*)94ܣֻ|r^Y6GoO/Ģ)(/z~ge*dY+.]((@8w3zqvm&)IvQ X+3%3p`dٰ]%"]$P9@wa3P]|-F V*ɿ%e,~W7ɓDC5[&P_wrK;}~V/V<_g9 ЕlR$o8$pG𑖗ԊY32st!%kO\(6$:biIA0[$ $V_Q=@\\%Kuh~AX=X˵7S4H+IMנd:PnПnzKE |42cTB$_`{z21M]etHQ!mnU51'd$h4 D#JTx!,BWIR% G7vO?g(\2 |?.߿]@?Ǐӯ}e4pmp?ߢ!%tyX}K;zxUo'\5ZpD Y4 (lS܋|)|nU1 <`㥀[K>9pÁۏ-2!p MiGˣND=U52-HBBWti_(g[D,d2vpl!MuĠeKR.n9čne*.0ԞεA t %GC6 m'i7HB Z7&>olG,DT} ̲{R(]n۫=8]owΩF(סŵ]t([^ 99]Qy{ZPa΍T9Ԇ Dvحʳ`\X % cT@E\,n8_Srhy\ kݸm;ur/ɗTuNKŷ|!aZ9]a:Sz*HoNN%Cߋ|_bqh1')Z( 셹ߟdZA,CKRI,ۓqa"|wT|nOWRkwUDIF~_8XBpP$;H³T~~{ךzS5mŋʿNMx-DgCݨ̊´@_SeS/de@|` #ݯ)Ȋ;^gQ |ؙsW2kJ'=|Vr3QM*o|Hh,ZTd1PQ>yV${Q&YnE*stTw9}Θ&ZaFy}Ч@d65ϗ?TJGr"./(O0\~wAWtwR8.cTtzAUJElX]dJJ>r53H|M=$jn vuFh/s؏VG:]iv F4n\~@+;잿ݼ,c,`Cd~/$JT-ԟֻO<|/__4C8| k݁fU CX #~'0`{?:jE=k UAFeF;!/(,z MHOJUVk5zkz0(YkpԍѪbg4Ĵ&r͎~FB58:Vhu{7)l_ֵ3R:)kJG\M2 {&2 #{/*Uͤxy/`E|(/Ȍ$z~$TfB[= fE/ϯ.c(tj*x2[ÑLVXJdZ% BDЬVPFcI Ţg& qvf' 7:Yc4Jf1s" 3͛zWfEE. WtVErDv%'LQbZ2 [,/8>R!o1zyUԾh r,@J2J4DT!V4QW77ЪUID%LR V JF+FޘȧH`%NuGM/}~ R+oJlYE臈_0>qejyKUֈ,c{hu<,ndHLX^3Xg:N{KbAg1GŃ4E*VDx 0+]31 氘צʴ9 6ϳÇco~gxr˯U(!JAO3V 3 rN& ӻvŒ%`t 幣éXܞ-{=FH; f{ QP2} _aq#YkЍn|p8>_o0!\>uSף+zZO.U<< '|Y*\)'j߫> ѭJosR/vtF)  1V:ni_ P[P rQ $""Vo>“ I8oVcP91Por!K,J6f ᚼw>gLY] a-۫7 nv / ݑT8Ia|O B8i[Z978̷h:ӍWOw * -UEm$G(_V"%eOW?ߞ\`N_\&ywWt}lm:淪8lVEԴbCd-X; 4p& A$Rë NɊF"US0-hޗqq6gJ jp^ҝ\ՒY ^^&{E.IR'?Do..^ܜrg- {Z)NEA%sتQ=nE_do{:X&0*o+X|— ѹ(;z*g$ "iQ+j Z -z(-VQި",z>EBuI>>rQy/ Ŕap$\ΚW0& +v7Ì⫤)2 f/ݬ8몮8vCp 8Z.>@@7HXEюGL#B#Րtj"R"} (-oDJv?chyM ⫌). A"Y?Hi/eí6QP*Vȫ2"U#|U3CaFb fP%H[t.gu(j|psӧJhJtDZ 2VFHHJeTD T8ə]wlX"(D!g:Auķ_M/>Iij M35#э/vX݇Nk b݂^+՛-U4Qwuۙ77zrzxڽ<} j"jSr< ÀQNOTaQ9 }Y,HUY2 _^bO^ʴJ,Rrth(+!" %-wwT6N7YR_o.WFC/LE-,e9Xjbae4dԦj2<įo( -LhcA9Qi*5pvՖK~]JxBEZR5ʼ=,U4M;^T.:(a]j&u9A׻O(%c4Q*ћd `{UbEç*(G;F7bg.79:0*eU Q/KjՎ%37.URWxkmV XZX&n?0RO˅3U.(b́ Q9p. O<\-}b3J:Z/'~|Ψ5XcwitCyN<U{jLn5XGpx۟ŷ[ß&Dpbo/6g a4=]PZaA:t$j?ii;-5.Efg`UP7N-N5x%|B{},ɝLQ\`t\]N{:=Vw׆vZ)q1apYĚO0H?wV)1T &UC,e\ R7Fϫ " }y),PAft5bϣX+VNZG}SUĿD8x y*;NR9GEzOR?( CޓLK- <_RXW 5=p)r$޷*vt洮FU)kv Y>T .Q5 v%SIuDb !/%WnSOt v(#0&*AD!TL C1A %$ʝ:U& ).3a|UIB\7eg"B>e\;y3-zZ@:)íDŽɮ(#Hcڪ;7zwTTs爫yC,ow%M27Lꮏoވ+FF-?kE!.\R 6:*\"E!EmK - P n-Z/D[=LwͲHl]%(&ݗc'RU)?@?r^CGX`,o)|=^ly?J &V0tt&*nӃIs-yzl.`M=ReJvvA\.:Fx=2YG924ʼ[x\;<<_s+3|^4Cow>n ~|6ʽ;Vō #~ydʮjm͑NçN<|T bK wSA{MO#-9 IonGӱgF#h<};y{5iDѧ{ tY7QgQt&JӑW_tgj5/ut" .`W ߿ʬCdT*Dg"aOdxIOqVgx,XxtHd*Ba ^ZMW sExʘ-!7oYdVGnuӥʠ̵ʗ:1AA66sDasD]B[GQ Ji2bYr s)Ɇ jYSP{QP@4+y_xIހk__*CBe?4w|BoٌdZ Svq[]":>ERX,,1vOoR׭RLM]DM(T\F/ATx թwHLz{ X473fӇ{sMJ*m%EVk,W큊t.ϯx% &ZUi/zfǑ$];3=wKd|pSw0e;5Ε ?*۞:-y<͎=g{0~ޛ~v*%%%KδT ]6PwfWw nj|YhuM~p@%B/jWTph.xbD#ˍ_}s1ԫWg)ux 軛>۷GįjyfdVZojW0g2?_buĉU|0Hlv<`FK7x Ns'f;O,[k ٛH8{Ѵ9tU\&ULl?3~ewHVOTzB_TjM yK*!FUپPMP=Τ^&bϢT4\?9JfͶ*T pOz~u"ïCa(|*CiўgA UyrNXh:>Ĥe,IRe R/k8 Tt?ˬWu|:SQ0yˁB,<&QM(oadR:[9Uz׉e?4)^œ@GL,ϯTp[ɴ/Xa N$z[' _W|iG7ьf^Ųge4Qa %#ȖTumWsXLK G$5<5 I4qO'd\_:-;&ׯ3;O4,J_z/|Ywz; ʕ>i]o"P,@0 KCRC# 7_oAwtJSQv:yvfN7ewlξ) }(c B\"x%БN'\j Z?h]*nhe9ؔx3ou'u=C)G@%˪fwO,U:^6oNjMմw*Bx\ܰ'| gO/ٝugNH2e\ju]e჻^eV'JjqnśGcyYOGM@?pQ_×_o? jYv&ݝ?/^*WӍ>ZZ3yy12i5>'&L$R IѰtP^_9Q6#oA-޼_]mUU^ Rn-&ܘ\IL,oFAh7cƘ{}w6T)$=K soAg/W@]ш>0f}41 ْSAWrٛx`/s. jtn:]E1Ԫi$#ߴDu梲% ;hlj 'Rn_t< fT`ӫh˛HXG(Yve/J(Au?8 E5M [@C Ai^#v5ݶګeG#{%uUk0fӒ׍6hJGlL&BJsȒRw\*Kagܪ,9ja4qk'K~»*h4~T*hٶYb 3 Δha Yg[Mݐތadl@R MY$^n#sf&q4<+VЏd"- *^ d.z(Yٛґ9 d/vIǽi~UQH#~Ѽ(W8*8c[<ɦK/ xqP*U}(`»ϣ_7ϣWa /0G>?W%o VET|HeP.*a$$W:yzy2@^R͢/ӹ7 dA0r%;& 3?5P^C.EI4!3tŲL."`#BaF_㐃` 9M R6-Ss K 6TX,QNXO4{L^L87* A[?*$_ꮊ,&VnK Xû@bqqkW5܄oҹEu+^Ax[lv~aӻ?-Ҟ,xɾ!FGNT/1GfWEK}Iu|RW3ŊYHͺ5yʘoUfwFiohj5"H;Y"5M6{c0VȦ%h(0Wr``(W fU`~*S;[>6 ѿJ6_h` OL2`sx9-Yvi!g=WJWC%k*hnQd[nv=R)$ɘnWvп7W~uZPE Xi~8镂cPV"~\^>>Tx8;vCܫT$_| :hd(z ^|2V2tJЪGυ\xT3ZǍB^?V2Eɓ7']]k4_@ 0w"~A׹N(3MY"V7xRCSU0w]g`e284nj;^ JDB( I>( hI?}_Vjm4R5UZ63z(IVFkUtF)*TR%l`zsƪu|7#A?Tg4c|x{ߕRHrKeM{aB4P HK+O8d1RFW #%16Ze4?YVJ*[-Ν wU!@HQ9 Trݭ5[&Tu\MY %r(&xWBOZ#:C ެ9ZJ[v'-F.<HeA.wnbåxijă]jn;y`Yc_~=~V||W;j/I&980 W4a;!w-@[>nXES+W -޼ۿ}+A^ (bz)t<,jQW`"Hve35㊠2)ɚE`!Y*ɰTe%'ZUO;<<Pͫ_?} 8P@^.8.ޢ{[5x1Ok}5CvK^lzߚm?1xkWM5Pnf&᧗T|ԞkAkFI&T؍8dl0yAW"61_3>8{IRXl^!TkUgsc- GnXm-oR5P'[HZu.3!Sp_|ɑ"ԑl,ldN0ٌf@"E˗׻LG)f0sZ*_gy ,B؛j9u"zy 9X em"YpQ.U/.^2 Fey$

Qq)/Ry,$8g2r1R 1(;CNȼJ )ɮlQƁaS #Y-xj=u:-4例j̷4޼D[UsGpF/˩٨{*rp1}ze Ͱu0-l =z=R'U5x.> /؟BUtg,HqooCƾEsr G>B |{F UPSi)yv%teά_?[;^[A͝i1[=̮<hLFC0e9WWU h3@DI:O R:jMTIT;LlV Tq^XW9\yX#K/,}Tyg|], iㇼ1֝~VL dzʵ`r'8e.rb-GS,8 qn(3?O|>BP#nT@d͉lڲJ 9Va=xHZr' \sz燿{3˯bֳ_DmTd>ӼZ.L2@nt}8~s4o4,UA߱\oܪ6+ԊT\\ɪ nrKK䡷$i9jN,Rߒ²`FDVT=j6_4Vkՙ;0l-'aZRȬ" 5+*C\XjְաR Y*l .RH(Qd%5p,W+B16Ei8R>x|וғP7c[vJ 1jpYmO u_;N70sTԧt"uN |z:cJ* DJ|w~tWׁg&uw~.ey< (I4SM;ZYms=IbTC3%)QWaD&KX5(%{$_|Lջ#p;CLE2s$d-dIyڙ io^MRL_Œ2 A' %`z4;:ps_#~yxVW #TW?5ؕJ"{%1@ٝ-hdCoVLF/?PśҀ8c|v[GPJld-7vQ9I9꣙QcƁ4fjZo(άud! YI-\m9]nWӻwT pa⛿ge=Bؘ* hUɾ*CіnISM-w7û㇏t:_^.!~E]gvtJkL&5,i`uUIUQ2㸪_q9l*kvO%S1Z%6'VC2~wx0TƢe>,i&B9̾vGfpw%V_i?n_O*݇\ߢ7glTё|Ϲ644g!Mc PzLBoA]ѾV-T egyWEϲHx簕=ܳ_\mLg1sЃ^PNCٔբ/ҝH ^$^~Dӎ2a5 ƄfG ؘ}%Ռ8EeZvG oNORu*j&QT8#QG`8|)4_Pf/Sd2QS\ Je(9)翛% 7[@SJ Ʌ\8H7!q[~M0Ϋ>Y^e6S:}caA00A0GL+//EN(W)WWq~U} \^D_b(A`R׽ժj%'x2` pFi) L0 u`yf "Nj% ׉x8KjHqh8:%J ҙdbbP0P1Tyz{I˖%x >_%Ax&K rQf  $uJOױx/RUK=_+IS=LW)M~# RCʅhD$#TUknI_&9?Cтc //W6`uŞZETgw?.|hGN G^2kIC,`_smŁ\?<n0KZR.lw:֜^I5[8YEjĹS/)p$8rNަe[])B֛O*k/:+h]GnBsw-צ|kfR裵֢]6cgjpT>,V} w8jVm8"H8l*|VzqP಄ɶ m0Z8Tїg:\y8.xELe.RU6wR,+λ2W}D sKŋɿ~ _GhO2_\YU!;/_bgR`] LA> j…_(! ՚H]KKD"oR`=6'lDeIFZ_7f2})┮%/C!zz0Bq,,et%/UY4u)lQb9Y88WdVjѲI*ǵ!#zUh=U[M{ʌ`IE"{+S*/~I" < t \^%rB͂LWkU&je/w{(쏖2a%ǖ>3>ᗢL5fmi %Yj%,/xCX6/2&zeQJE(-)Wǯv{8u?+1Qhצ7$D7/ rӄcBp{{,uj[?\)b`Ն/y&jNai:H4:eW % Xe{nz33`xCkg.[c ƒ9йM.Bthzte G|iŊDveBHvL9\RV$qqڟʭ)Ofpܢ)*W+9wr#ax喅'uVE$'[gLw~H. m&`$6*HWr$mcf2f:JjDBӏ9thbАTs, Wbo929k+Wu3JT0澻F28`e{\F -6P1Q eI5(Vbjd>YP8$*yv󰒋5jb_X[q<>,_1P@&$oe Y Z2H#F~<d Olc~)Qr%S(6R1\ԢX#x[{>w\0xDWgg3$*zXċBoӟ]ۯO(pg(.׾ăИ؟Ͻ7| iXQ,ޱcW2<_ 6dǡ]GIBD|%KLIgɟX{@(Q~2KԖ$H.g4$W;_5 aM>Jnz|rVR ŔXAIu[Zu"sOg3y@|NF q8)Jge"fiqrկ &4T+xAЖ%*UU6IK%#$^U~!e 3'y!$YwTxkJ×Gd,mPc'oQ@8txK*^HUkeLOרcK_I\r?X߲T Y8X09ļtyb[0P`w_%Z,eͶXZ%r}|zRFco?|0یZJհtk7X{$'9j Yyӫ9solRi[݇Z!]={k8h<{4F||-ӚNOխ?|30Wx>ۜtN r>H'/MJ(8?p.Ǚ񡳜=+vA 2Pʞ팾*_䣙z>H-ZvD( N~=we`ؙ?,;ӥPYG&muY] %}hqٛRP4ZWʈN?el]Mڐ#:gO>woEU, k%/ѭRki?TfW;'l-6hL|~?[)t*gVFq{6[G] AREKrx9jZu<}KE * fc|$|Z0jyщPX%AF؇2XF[sYz7N{ǜ̈́7aZX[kub CU d]k4# yKI$8 el5Cf[_J 3^7mu +l4gRPRVgק89uOгd ~+8/uI0Njxy22v&<J &3/atT5y NJe) EW$ e0Rp$=&e*Fg/nnNcBenYhXEΔ/"Xe4BxF/R$CY<~J#ye*%rQ.#yR>haB!R!2䰄/ғd /s%.]RLGE`5Q*TP_= 4UTe  jQ%PbU꿫pVPFvڴ 5eY3imoL?|D! X2Rn*ꡧn Вe\g|Z ! uNČC+檰K./?nIR:l 4|~Kn?@aXH: 逾E2/~.zٛ%_,?O? n9뻯:~)>\۫&GX``dUMT@폴m}*9pIS_*b|B77G${/g#}:ig;tQOVwvCt 1^v|v(e(lT,=~Zy3hWJ|Rs) x7ܽ1ov*L[ Z?HnFUǍW ;R\K񊺢ԏ؋5n<$-vsw6[S$^-w1SlQ*ֆVF=WnH~e~̴ZZ3'qk:7ϟ~?a7\cmп݊QܽR4 !X- WAL-.̽*e,u:h{Q̿&Qj6 yu߮nhhX {ZhMC xuXX'`(,J4~$R!Rq-%uXd*Uԓ2(Gœ`2@q>K/LDCa*O$ys{3LMP/V=߁8C¼%xPQ+kUɈ[k ɪJLrSpOv9N{4n ٛd:_UVKNҌjxY[,+cz7z>Py)%W=ℿQo66?#чPfaN9+WUxZ -33Pv}s0ٝ`AM@`5ChR ;75e%?rXe;KR;:M67GK2{{/dhD.?Qaxx S*R8p+ΐC-DZw W)*A2 k,O}ɚ8)_h!2T_^xX~d﷕aߘMv/"gfPIWo_ qP}C(F.<0sU97;j+ߴCxkܥLj yC=D:v{9owsWleG|o݌UZOї#ZӍ4[vVc5Nؠeڷ݇7|E*;-oAp^Y#O{!2Z>eX2{I&*Xo!/W/K2oRI#G,qM -0%Ӊ5UݠXg>:X^e%{J.ɋX"+NtJ>«`, %?shߺMUh8{vzsJv_P*! iP8+F"bΎ%g] 䊍Wl ZXMJf-;8(_8fi"ZڐR\2>ؕ\ts/K\ 7W)Wi*kV]"xV \lhPAfFSe#jkKz$]N0a^ sjv鷺6@S2KT<r::O0n0:Z1?]+C|׌^IwIZBHR_@"_U.Z/$PY?pyR1\ELՓbD6Y&50*ywjgkir@a:yG+pnxvo\+7u5&t#Qt5ۼ5lûA۽0֝t'Y;j [pvO?vddWF9*h8X)z.7_-gJRRhԄY^m[(Wq۸f$6{>|Sgq _` D;1l67 rgTf-ug:LEUjp dk&/9SAd6ג7F jSs-S;Nww*۷jvwRNV?XNLw>xg;; */frj׽x\Ӕ5Q BFY"[A~ om0ǸLg[ysUB aI6J 2rfY<$ X/kq²+)+%/Nlȫ.6hT ap֗kcaKj|Z*VÌm!{SVK&`)Gy!h_ģjRp2+Y=~$:;?^sⱗY6kq\Bue&sy3`{IY Fy˝A\0;/=bE&Uh!+e4-oi-Up%%D!&|*IӤVoD.hK>ZW K[m:Õ;6St7zB_}@>YZ7$J9bЌXVEJa ip*P  ^i ߼߶ٖKvjϴ7v$ĔCf vtn [a{;0<پ3RϸC8BMgdC{h{S4{7լ^ϴFxq8yoՓbpk~d]5/bTi mozk0o76׀'+|\8 #yW?-}`M2_EfoqH@f[6l)L″?92B^7 {dt7RECmF~vLѮ^)[-.%MU] Vvj,hQ{ɘV$gw0MfS ۃS)5![5A뱄2_L@nrwߞ͂58*cF3\oDu뗀z30uc4Y6N{Іsϴ/H"# @/''E~ hΪ ,e>tjޔ}N^' ץQ"4 hfHkBp_ F㹤[L6p]0%3(J' Bm2?RfBKj\%P֏Ŝ=:NFYwrI,M40ll/+ma^dIln ]/PZm_jn>#yߘKYXpخk:hyQ) Q.i;Ke F($h[$mhdo6/ _r7qVXFe*UxQF/MNTqH.1d2mwg׬U17]*ac"7w:|P"liLcH:xǯ\سp,.A@"=U@ +`JRBalZH]@˒=SŅIV;kiL& J.)⥺wvbJ^ %N *8[6_EdXzg W^|zy% @*OǻU剫N(RRZٖzv6Itˈ a7 RsҰud!Pt)!.DJ1\:*}Ąb]f1բ'@a?+W1Rn*t]1=ӛ Wc;Bkp,?>@rs\~E QQ?*y*:x`ރ7ho?WMu 63МlU=?zSpОQrUYU)ݾ Bj#PlzlC Jи@0}}f[wfe^/z(wQd G vfk|ܛΨf,wyΘNo~{\/#jP~}dUM$0_ޛEPs%6廟zrH0g=,Lߵ&{'>N|f Gu,6D/2e@LN?\3/Zcd[<w+UJN WuClB^/~#^\o{1Uʨ.rlփћG@|Z\/,GѣFJ G7[Ҙ&g;:#Ԗ6TBXFc.Bc6#۱3->kjgaw1~s8ʜtzm.*) kE䰞55l4צK='ORW\b,JƂ˯~09*7tɧ-P!٘&a%JiL/Tf4t}"464ګBe&yFFVG9*ո̻]s|PLX!oy8{Ә٭VyoG΋dPz-/kh}4],~R|KJ}^"e,y(?Ͽ9RL%~i[: CgW'q,*A? \_/c?}wu呁bJ7P( P.8nxJ4@A,[dZ ED4U.d>ʌB;jpU-'._;ѧeit3hg|oG:R*g:EZr/]uk*r^,Joܰ2)?t S$PQ7no*APA{/\??C$do|Cf#i% dӅmg !X_D6!s5?,>.n?8 -Y`Rcp h4WcM?6;P'PSD%XZoc1BP%+zǷ6:z0ç矛+{s'zѪ̏h|$ټ9>=lVnve,aޝ ݛJg4%;9Wʻ5PPx]wnFVZ]cT66إ[=_eKriߛel0@=XZ<2C'?F᫴PSM6 :?bmryPήJLiͪz/~44ǵ G$#a.Wt(X-`F~3pj6ӆhU2yIJ-$ʥn'*^T~pwlB׵@rHMZcg);}wWPZjQvۚNl!Pg4bzևc40V!~Cd?38 ,G !/U7rIFJ@T$25~86g ~J-".j \3rSPy tGUH|]MC~+DXNKZH~D )}ǗlvvT|]*kץ܋tPy.,9J$66f4OlVMz*ם`[oQIFviA] z@7ݚvc4_x*avϟ,˵Ǩ`R !ytE܏?hw9𳔒p7rhE+< EBH,曓K4/~Q”?KM@UO%Y0:ilVo#Fg J $\L$H_v5XߦkT^lJ | 9[L١ Y߷{%{3z&Ǖ%M펵m{tUeUdRkAZ3uU?v` 7OHs]rLrmG m% #eTZ V_`{Xzj=$; b w d=x6&QZg_+fB۩ҡjJQYyKM0lCio7 w EBڪMYBkc>n.ElטZP(){4?"]Yt7̯<*%(Z ?Xt+dO>Ap8.$8df`Q<π8R@T>yZ…r[$;m-⓬bL#[ `ƪ&OgY K-o!oՂlrsӆQr+6c%ǵw1M~J/놿^fvпj\ѿ)ihdxaOǷ*UԊ ,h!Ӛmx%lY-Ͱ9@pBLVskcpqoEIOpq"h 0McC}KX-` yA5]1lR6[ Ir]e3+%񟑡IV{Asu"y$:!.}n߃tӨd|y $dݕXz `O_D|/ D.B*<Z V]֒d >)qQi rX|.;b{^(uIJrK /UYcy,2KO|\^U3}vq;/^ǧ_srP컳+IF{˖`.,n>Cڀb k"*a$e4}쏆sp" KW'Lͳt|L zj2b|{r]e2,ѼW>||_ 2UwMe^9v|`*A{~u'WDGK eEƛĽXz;W0ZXɊ5661T9{q^U'~ѐWKYsD̶/Q ـ`=</:A]ʣ-C Ovހ` ꫹1[Ѷd,Ǎvs|Q ބMTh@-+D/S"=֜QfqޒP\xynA.K-B9/yX,`-4Qٿ@ꛭ[\}hKdD[%M*qJ9dAő>a+FʗCQ$ecF\d?~ *3?@‹s ǻ_mBRdPb.@igwD(>'ʏkʂ:nl{A_x\L4SB r$Lɣaw{Ryx;*9M;gcusP9MQe͖7GeT`Mce7k JQwwx. 09ݏVHf 8i:BI@NMlT/ nù@jT簛4צ먦-6|% r9_%' 6g8:cwOi eH )s f֫9ƒL{`o{K|ɧS^gtfg@ cy+Gp:?/p6zL6[]N'j:hҐn5n}QDaeHUa.V_oypR 4tN"nmt*\&LG*e}W:ذ.u gW1O4A|A[w_.}L0=~8=7% dEVp%A rn}K]ګĂP%pGwSKCpT)G`W(s/@LFeL,^UR䊡l1YiDP| $sY`L).P%j(CQyCrMeĽБ͢RۖdV@,+0WMs4R/+J`|*U ĩ~JJD\oE>um_Zc1D i<Wh"L#^ {h+QZo} T%YlC%veQ Fa%VָV! |eFx`S+yN՛P%QIBXl9 .DXM5GMXhm;;B󚳝K\(/qnKj9Zt%eIIKK d ,0/2Dž GJzj_qNU 4ps+S\9w e&ԓ)Q !HA9X=,km 4UZgt%\̉t9ZY L8X>^qp8G;+e+. V&o/d Gr%ZL]sj7owP?n?騮TnWe]jߵ{mP3b[Ğ(  ߣCYBF( yck԰-{qHk>{CڙxAsD Ƶ@KJ,9X/қͲ-;f2WI ?Sٗ9/g{C7לUv#G'A0妋#C/larRO,EVxqxhC( h3մJ΋ʮ ẅ bϷG1،փ'j>p)}yvD3A7TҮ$chg 'kD+fKKJcN|/NZLe<>M9]sd 7q4%p4EuC^?mtF 7yqkr}dɫD+*'~ꃉ{< X9XpY,KeoIlexsFB5G'P)X6y7 AbzpP7]Rn*7[v= AnN6cEf5[np\`5 $Y硊UMuW E׃ޙsXK;Ȓ_ F 9qxRfcɜhm2#K }:dmf+i4 5& kDd Q\Wy-W\=YY6nϿdCƜb3ͮNt3QWmMp<]}b?3:ppﺷgpҽn٭D>PӔJZ!\Q.*c;:\gx^h훻;662>F`d!_Y/y͛d .՘CVDBFVPt|B0;ݫZ_+ᦅ>"{/EtC兕ɠÆ/KՃX⫫\O02yϢqʗ$+W72tU p4 rwK)^4Gή]1mV"+r* fZxp|쏪p  +ӚGY*R0 wZjP8}|J vOF,ZH֝d_)9sy+,O cWSДI/>Y×Qգ;\:43YG|Rr㙑NWܮ8#n@W>%Ȱ B(P,% P^<|δ[#ul̐2fnb?LM)lRF& *[H/{RSb bP7I-ՉfIfa(gͮ2eS~BQ/ϯlwvfTHf!0;_,=sfߚ-ǻbF*d\Ǿ1,g7QM_cUnG>̥T@Xxn{˭=]nIs˖c, t7;(x+ 8clQE/7v[&63O>-tFQ$BBC7X\@Y$y"k)?<GKne(}sxf lÒTTdumܿϴG\y_Wҍl f KEf:=>ͬ{tj"!Tb󚃆HB&uтl@D%͖=Nf8U+R-a&;+nn8FՎ]%]į; >xfP߇#tzG ش>g?H`;|}PN$^D*%@eh(?'e.WjZ_K7U~틽F@Kp(%0 =5\zh@X| 0–VT 4GR_%I.j ETJ IPDWii³x(=\s2 m#D1Vp )gX(O*EYmٙZ×Hacp//Y39o"2U'<\fdDќb H 6T!}V$s:zoOX\ U RɄ,eQ|~5wan'꺌44K9/T;}l6@qQ [r5e*jO67x i9vr]=bp$*e.S5AoFe${)*T$gWGK?Rz-wj/WNSh]`r2H"GV_ v};7FJM]?]jᶿy@*l#jK[Mh47 p\CSs%Gt䊫^f7o֏&7O7-BtnۃK`ǒQnei+B&B̖SZPݤtZ@abDٕP`| }{u#̶QY6;޾qV)hᜦ]̌?~Pq;UNY" >27_6KmΔ"%VLLDscnWNoGXwHԬa81n?tbʖKm6ѿX7t-=i)-.k/LJn5ZpS]ml^?:C"'ſ'44 l|yp{˝`EJREq?HF#V- .`eG$s7N"VITj"پ$f6/#@ N\`KASN7ٹVjuy$L)eX yaBo5XQօK, pW,:hR_CR>M{s]f;H׈V;7/<}Fhd,`}Ot>邒YUj]k9^%b'(Dy"* YrUO"V+n;6_r=rvŕʤN&Q', 0y} PL!bؐu"w'?x}wq>zvzK<O<1`^o>/JF!j?z3%_Y"/Qpm/ry8q/jU(w3tW(0B *D+ً(IM|ʬ\ʝ8_*y_6Jz Nj堛0|_oRMkzly09$Ą朵d71*V"q Cf "Ɋ'9E+c&WIU 8ʖK1w|%'Ƶ੹YhUϤ"v{=|(Jߚ-7'TC l9UfRai?bRv6Z['.A0e-U>uG4;ߋdN@vG.Eo2X 2M#Pt07a6# % !>QJvAd/~ 7}h)ə*RřhrT,o?|񯒦OfQRnAnۙ㱳\48QSdvQ$gctQŎ(&SfF_1$z[#H")1>XÓ,E..K?MDZleY/&Z5=%~4Hb7^Y'D*[oaX,&m$*RwznJ(l4/DnwM 4UM%s()́8acI;UncheJ`ȡ%89wose\1xRZ`&I-Uuק54C[vTjb+#e-dTrvM윛aktDI|ɘWԿ}\ x/6m9vm&K}u5F7Zf7{}w8}6,UL5yP y$2l&"!Ou8ʹ:>F+ i໕PݜhO, N=e"ջ*_֏RDJKIIzy?ó+&-_+Q(/E| E9SNi߄٩wxhk%T_82} e8rO %Kk?XOQdDg'ؓN_hBXIWJ G(o$`=yd3xsi*sp˨`RBQM،/O1_2 Ψ=-{eT!JD LrgӠ匎Lo)dY]l`Yә9Pr%;ywtHrkѠ\1ݸ*Ѽȇۋ5Z{M|srX>gq\/Z%ܴx{`eX%U9nTZV?Hl#YVq;ݸaR\ rs%9Yr"b4m5 ?nB;H*Rzv~UMrO{%Ӟ(ܾlIŖsX)Վj6Iۮ*BipM)a Qn+ua~}~'s|u2-sG8,2wU"qK"/;ԜW/_ + ϾyyՋo_o_|e@*zV%%1jBa+!d.K%@"&"1_,SJRKl֛LaxnpUٓ}!㯽nU,Fǀ&Qm`nWFs|)F%=֘n@?T%]E+gsSSm4 NF'T__ן?y ciVwXR$Saٛ ™uœ*Yn\J6W1I-T@zxUxSi a/[׷Oӏj so,)5~`~pX z4QW@tKVީtDu5~펹ݽ{_?]K6ZX_*;g[I\|nKt#K'o>?DMs{Ͷ_>{mbL7"mv+^b% gs{Mj(Mj ,~FtٜUtcl@e33eOrm2Ch$lj`,]C ffpliy=/8_ 0E2ƵWw4ږ$`^bWjܰT:K7$b ;F y{jm^өhYihUXci8fwj8w@ I)ʗװ26Wk^JD5A\8hc<6f3c1OB#SD-\`񔖐pX=/2Mdg9)7t$iBJJzVK$FQͬUUPzMG7j7}u- `ej⏫LkX.CK4l ~9RZ'Ͽ_~u;7?o>U͗,U4K:\`WeUK,I<ͯZ&, AX%Q2U1VΣY >XӯF%juufsw;.PSxnYB1tp{IZpMhw~㟀/wЭ(Z9W$EM( yIy[a"ݼqvlGRŽo޴ž6^߽?~ݼ^Y 8.nde(!64{zovuN) &Lܛy;NyMjz;w V̽Z"0})e2^cZCį\;NfXB(5 M+?̶ ۛkloxE éyF絑U^oM Tl%\oj-(ЖbLæ |CF;`M7h9]-KIkL/K% ˓8eXwQ@J20Ҿ ͳr[oP@0K"uf{ cC6A1)r-fi7ߟUYlw\E(N9 {cWgcO8S6=jM"'$䅹PU s1BjnW0ERNN񬤬B}x2[GG48Vӥn|bg`lp *MԴ˖Ca%S7%5ɫfw1`4b1ox7ms8'%0JmCF+"2Yۻ `Jm%Pw}o7Z0#ǰ;Jnyh` Scs]Omdvq/]BJ<]tg WPylڑ 9XJď{$:so?\|e me<! šZg6sp %4낓]>~-n$Bx8ݿ]E*T ur1PtѾܝ-6*/`5ڽNn?/)XWs}L5 Z&ݘWsf_ӑLa2 ڛ[foovPOɻy(6-HmϿ}i0dAS~ʷo7o#jwo?O|~ $hg/_Hl+ oj/)*TEd$wh7oX+JXneҲ5-r[H,u>Y%Qy*4fd{l2Z7LO!<()+՛,9!NA5=sRN:[FfϨ:͖|0_(*U4@FҨWDay,6l>L*߾?X,0TEh: $tlL"%LQtp0ѐjP5^.ƪ¾tU4+碍'Ri!O=y"< /~EJ蔮U*{pzLpyy JZ"oXV+zb.T'pR!)TVRfGq_BftVٺ TAf)ל3W9%޾Cu&ߵ%$Jf),KGI 7R˿ e—r^ w{fK:E/{BF>)şA^tfU{~krqLk':Eyf;lm,醜m!6vQ,YT(.f 6ܔӧBo |oPjKio=|ۧ_ oX v+]T@,sVfpCu:wb jne4Owi`^lfBU  ѿXdT`릂F2unkݡʗ_(Ca4Zg,fKt7vGHп47k3Qa|g\57UfpVYnSqW D~SIy牴_kFeDRϫJû5 qG}^erv0vU4# |N&e/pWҦf݇7*3uÒ)zS%"Lf)//}t%B痧0-9MVΗU).SIʫ_˫W|>6{HgPT ߾>%߿ɋ|W)Tu8|nD:OQO(JC*R,fSR^I. #)?TsUoxe7ʗ5ԸD҆!)=;;DO!o<4㥊pPq9P|0+q]kx`ꯖ%#4tΕs',׭ĨEɣ%2?^l+KXCj2EM7qNLLHRoN7mlPU($+z5Z= 9I}j"SE5?V?zˈW 0i@VɌJ%{5œ jX8tDި8xfuz[A)՜B&KZls(&iSJeQb1NWÃ٘9s}2Ӽ#(F|YΕaeI>P.[;;kq*HҘn1 d4[D~W~9,iIjkѕ4M[σ@"UnG`eNl*R{bwqǿNn?ku3/XDHɐ;|=~o}gnͫ~).C&/P$$TS֚mӆTB} *K pҭ~TkS%!.6j^ ྅(>fU"ብW)'so"בv;ϟI4rC?\^|}t, ^]]!$3z0}w<_._FCgI2#xIF*FwLּ풭w!R@ TNyqFpa9dEs+5k [uHvtT!jL+6?O[9kukw`Y2\=S@-9Ӕ J6n|iw386FzoOlCD!tr|wnUr=3z WV,n6?ͮ? _cw Rg{oq  =hKXVhk/n/e ApvlT*jˊس[2Kɔ ڙѥRw'22=?ֻ{[`nIߌa,[&;K.  SV+ݶS6ucD:I3;PUMs[wTɸ6@dsٕ S +'[75=>|tM;`|;~?4ѺFK 8eeQ{htm&j;#"8 G@R\FZ r7ߝ~}rsy G'ZPhN󚞮hi&=E=|;=?xb_݌P2l i`;B[m^ `uPᩇhfVr&W0Ly{WಌE Л<݇ƷIKLGuRE*-CF(iӅIwu~G|,y7x;}yEO^$ Vg!4%^$>ʠObIs{( #u ھy<~=L^Z;( ,K^W,@Cx 0C?R-#T-a i #u1rqX#* B)CwϿ`7B>RMcuɷC NVuX.6FHl_ۆ`;{yXQ d!U>MZls!q ?tlqpǵz~8{iqP$p,{V48 9{sT@pu{L3nB[I$= O-_Ne4Db+$llׯqQ2no{dCj=K^erd"ϓ2j좆ɋL8KBX/[BEB^@CGH^2XYbM6Ί?e+yKVH |5=TE mO%ҾDq=5Μe$젎B&%2O/^t~~ 3b^@ U(5%, 7< J9O 7&֋OgN4܀ tu@h5>]wY)?[})Vd:_$|!E"W(--M| ZL 1Y"ȧ-{z5'uڅΚɳ4w*T* ƀ8-_H]7e֕] v^-ޖ|'$^wjev,|Vg*zc-e|Ex|:ؼJ-lVj5~t{ .vz35k4ۗ3;D:K7:Qg֤ cHq!G@-R_ld֚ldL~Q0[}8CRWoיgow7~Gj3fujGFB+(2[`o(MgnHK{Pg_J^ʍd0Q;3ӡDciwN5E:S|4mI`7^Hm(~3|W IVY/7& "ul5%BA%Fï_mgfZ~ VlI:_yص3gKk!~k9 j4 >%>TN=>T`5lq.?]"pٓ c!n9WI4d u(ݢ o]#51!Z+j^m`%\Q`bIPFe_>sjoOK)9s2&v[&63Znf2tFeW#Z7 l]s6dM3_OwP aHՏ〙A ~585t$Onc\\gfنם(Qc"sWO&= kWzu%Ոx 5^sAJN5 ԗN|*TH`o$mXGòaDNvX07ud蔸>Uuٞ 0ɀmHbL^oZ˝?uV_e+K6[sF^}lo-'nmou @U74^CwsL;} 5K:nyw$ejU(%L^ ѝI3ptzGJbÑr#ί8?9Kja:HySLtJh_?Jޮ ^V;HͶ{S1V7uGjUu-kD|^kEC喧}JIosSyQH 2w,?Qf@wuС6pD)[مzU[pYݢjsE@y2Yr$*S K)_i$,?\~ %A3.@ZX%¿ey|/ 6HiB2 ߽y\0C^ w.n%~xT l "+;(:y .PTTꪓ ]j_, .`|c]j /NNR9.0KdXɯ#I2C,~tVTQudm<(ݡLH1]𗿓.sT쨏xɄ2iq;b)qRGp՘fի򒄹ByZqokVldEŮ!z8q'<+rm#vM˛rOސᔉ0kABY} A3|UL;jHXs|#A͆z}TBϦ.>8+%cLU/c}(?ze\DuC#ճL>6۝_#Ss:SX J+;NrvWA T\2A!ա :Wc}ai->+>.Xܜ9.*bleC; ܗ4ᓲwe9(t1aSA~sk`NO-^q^(L7w/ ͻtuG%Hy`[/GԷlֆhz z\:ў,!5O9/nzr[֛ hLbsV4ғX LՈL }H^+'ƛdY$χGOB1ߧIIE,K49|-"gBi](7Oq}ɼy ~%|AJD`ɉlxc9䔬'A\cKX9If^B\;N_tz|Vp~ÃXeO*4,@{+tH年nPoV4 H74at-VIWXʰ#th4ՠ:jI@j1, [oN\D]P*y''x8S@sG:$*uN[ % Bڜ_1KixgUR\Yƹz#[Wl\#:Yz`=R4/|`^w~{,b$L]OJ #~X5< VVAj {Lh(9ڣߔ@ɫ1^dɄ1RaF˙ق͆Aem(UE SZ 67M׍JdDdPsa]#H}1#p\[- LG`jc5(y[=59U BlzzgKzwx~jcJn4oBd[r,VB\7HDò#؂% TKAiIJU/D&a Qt1G/ŝ$Az?8/wWIiCXQI7Oup!q;*Ɓs90͑۝ռQaɥ':k\HT0 ي_v_@s~ Xgt7ԓx>}}o씿$1{;{i~Oaaa7k:{]ݿҜ8!xe͈w%-tr &:|hD2C6Il#C~+o%ɕHdI|g$J *56]bq;3Yb`iJϑČ+fi?|Mq48'.?%ryX .V/r@᝔'i&B(y}`qEH``  '^3zȋStIT`|EXHOϣߗp$U|ˢ4w'a( y@Ues'N7B74T[Q臣''q6 ͳş9x)U3סzkDW+qYB44ؿ}+3:*[EYįN;,u 4҆hsxֈ;Ջ셿{WwwFwRZ}g<Uпh|n/Y(X@NUZUlw}:bmSC46kMu0b+ {Qo4{X$ Zb7::ô%@0!*z;-Z]B9r;3G4w7wmy+fE&t/:lu*2R-/:gE0fԲYr-u:)k(l4Ss%il|UY|K` >.Ih$S,FzHtQyu,,,r$2R-4Ns~{*`v^*M SOσH7@ ԛxL GЪaM9^GU&ȅN|rK YRgz||V|8TzZ%ހ#Z1d:eQ#i5@i&ڱR/tHP3',+Q/3{JD!{䋱b( *oBPӿޔMeSɫb*~s>bրTzڪ 4\u;BO7By+JϊXhXM XpՖJ~y96.`lvrE:3nnAU?p}ٹ VŪdt)UFp?Z@ ߉tzlfHmRW!dɚNT>hnG}w6u,(L[7bR(O{Kًv78 V+` e|[k Eg,7[nc}IM?L3Z@axkCcHiJ#5`6䗤4*/{{mfh1#O5D`nִ ?,+eUnC"/^V7?ܙÕPx0ıP>~89g`:`pڡ.6[{2U?0wRt/Q4&^AƒPp&3G2FC[ I6ؑUs ;o)Ɋ&{9v痍R}p⢴8R6mn+w ʑ~n%,<;mڜ F W2QRvi܏?`TjڵI}yӿ0lbtǓO":;@s7AAWJ݋ ^mN?n:@1ܻ.t'[OW *Bt5EmmZyۧinKyy` Y┃F>C}T:Ϗ$uTp WHvxo>ΪFa8NGD\v̱Hpq3o2=+U/De<"LU_IdY""%n:<$!'y}YM"<|IE:x):39{QfDJ F_G:R`jgzYnDGPWsG@,+ IPfKZu*(x@ћ|&w#H&.. `^q%E\)1:Jw9P%ړ74%})UlgTh~KK.fn$ +4u|u!v^d(YHQ@Y[PS&7ɒ(bvQ%5aͶ'Ye4: Z+0kp{ Tʩas+a.zv򳻿]^79 M+寎pN]u%[ku 5e)! 7ˊ߀<)YaS `η:\ʜ!Hx˲؟p!*;a"W=IY T3MwX $hj @&;LWM+0]@!Aa(  BuRjp`tSM/T y_&҇OD6 1N Q_{a؇ҫLX0W q<yppǣ =Nς q&S4țd{HsDe,S8ð"p ,ʫp<[Ҏ bU(|OS)$!}.NAwcDgZ`+j0o_<mUEfb+Q`EU C[Qn Z5)Q$R0_JVjl>/Vn?/=gzwL}0"sLPاw*ָMuUDRt(Eiq Tc~{Q,!i]#s-OeXmrXd}6=e 97@~k FF0]$d`(A eZ) pڂcm|(bl$ARw2Gds1G,FuApߘZͫV+h[jm[2E\˰yЍPOn z Ū|Ap3 x@KcW7[GR'.n#1]b, 6}.~m]]۟gwDv'Yݙv&| (^ffwz`Vg-iNr^Nn9azr9Z|{}r\s@g>7PgJ2i&\\mVk4\bZnr\nG6wW`{:̛! p9Du{$i@hĊl)~\Bó.VlL%(hu'wU5ⷵYe_( aUbu[1Wkvq:ߠ@8/?Uoo௳Vk eVK YZOL~R:76W"d:]?ϴ_uk/&V!m"kn(QH3-^VitEB!XZWKƸ6F]㐙okVW[$0Mu{ MC4- nvnԮ'.֌o'3y~ɿLdC:Y8Hu|Z=BH!q8WOuY/|ƛ|T9*d@_\7B^d*,_$%u ~d#9"fc?|)eIF.! q~F W?IV 84 @YkZv"~$t`OGGⅺy` 1@!n[UŊz 0:T@_o2ztHUj5\Z#~ڇ=0 R2PTNL$,Ag0.XlKY"4t+nCٲhRAOAB۞xWO]dk L2z(?_ m-ϰX):JzDx zl5r^–8y77 |r*rUe]0r L  qRZֶ Mq0ײm'v%|KRHw0l:Xg3%L%[@0wvoJ^:/wxJE*2n8LʰdNOTDHT?DBmեm5]W;n @w2=RH΀zWI)[2=lffhu  ~,_͇_Ap{`X~\ܼ!Tb;?ޟܝ>lɛ_X6WuwwZrw^N#ߗȲz@p}6^]Ia}kSY\of9"x ?u;,tB)t];P`+o5$ UmR|^ސ)y[>e)D&w*.MF|n8&bS$)# 2Vk6 yx\޴7]+dcm;0GRgv𷹾{*&#*+U+~/33tўb?dλ_?c,m66+c3\ߎ6w`]x VTFglƛ?}n;RY?'3t-fomo/{['n5 /?5e#*Bj6L֮av]jJՠGߨCi|qTTԴ>Pf5)vf_,6$]-gv.NBvOBK/q\>ẗ>_ KIɈp!dn#vK=~ht4j6emFf寴3)%9߂9[XMk-k7$q;bprq;od:22[âx<'W6u?54yV0M猊՝iwr8^(T\Fv3[C4xh^$T<;f"JTGQ3GsU 2oyQ\Oϣ,IJ!F:JB\TI\'d4+vʭ=`Yb#'Wdޠ),9 F5M*XNRjsz]P7MDnLKiÀXF8B(M+ŅEsdR]@I̒Ì©Aʚt1{m =A:+J%vk8Ec,E .a]Z @}U%F$~"h1V7Vkaj g:n9iH*IjBn?4Suc䡠kFh5/ټ@~A}iAՕ)||>2=D2U ĒӂWE8[R-bgٽz~}߆/|_ύҚlP;{|l*nyo⶧{ou;[Dk ߁Du묀xN}Akq_@Q?6X վQX9z]{qٚ~|ͻ/ 9\=o?!{!/АY?"xQqsO_8[;F h!#ڃ}y'scII?7W"ljlE;4eY4P4*#]Ir.1p] I VF-(tbK əlJ9 ]GkK\`9lt(oG:ѵE3ԪTb+ae/Nr΀T5Uk=u#RA40F]؍S~]P>)5YoPn+[&MNp͵fp-4k|[7@=n}dH.˄֩d K E9/9Н &WQWUpBZQ~ FQf4cy\2axDYCe[ڢKXَXTױP,B1D.wv|NB^P砬Q &z ZK@ɡ0UHGNv\=Su"1du^6(|KԬ?Ws^4F;2F3A]4Ndl-W eHJ|$]FBX péWgPuQ"݉(YZ5W50,’"%]p6p)[ HJF(mr-#.Yo -ȓ#a&X>+ /ʎ*Vv.ky.8xIjAiyᜤ։Bps_]]=Td 6Ke̍*B%mզZC"Z)ǭ( d QYヘV(HO9t|lyeuriBU܀] z9yT!o K@L|'l0Kk`/XA ~}`/ =6Lmqݼzޤt௷ _X,C?n޳$#I55?/n|\E7fֆ[&SLd / IRx} N|| o.@ps%3Uv0RQPG D ܇Ң>~H%=ڞL=|bI6gFkuֱbz(  uά !C꾾Y뽃ڥ:RY2491қB5fzh0eALYwٰ>c{>zI7|d@&HXd!nyfk+yh< إPdRRW$n֠]:i_, )rnōss?" Q2td?d{#7AC ՈeYO{xY B0Q\;Y;xɽö? ETFGPl V$̱@S5-'&d=l,^+q$՝0Iތ@ŅXY<*]d@Z:n'I{ϨzA,Tu&tp+B^%HmҽI%_jmj2K'XAKnյ,M})c |^ۛRνglPG'5_NBLAHo(]rzxաړ5 \. OQz~MF7:#W${;#EVk!s\462.dpe"jcU3c L/^8BU g۫%T(/o^:0ҩ: %+vk.d{H r9RGsywhl =$QX)]ua{۟o~oG{;uɤGcJf|RMIJen%h]usg{Ν=|FޖJo'{aKB*ݹ2N7:8$UfM>| ~8H8ށ]k>Ba.wSG}tVQe%МF/$]>f_;ꎒDA䊤?B/DٲO >yK 0 ϭrw[{sAiqtX1e% <]+4[eh`LƸo,f qX5)fc>o.BsѤ1wZay\9fs5y c,TTv௴E F)ИGzzTyHb$-$IA.ь%H0`zQn0J(f0n lOU맦ٮ8DKe`*OtF`Oft [էPQQ𭌦̣U$uV4S ?՚j-IDFRP5^Է@z.R<6gKFCMdJDw=jrRʬrE{ɓP^Fs0q5'凘9gXƒ;GDx/W2h+vNV'F`Q0C̑ ΠζzߺL n)[j63T5#]#~knoY=>DG"n0Mu3~+h yY:P&|NUjR%]5t2M#a,Nn.J!ɶ .޳1#8Gt<܁Db"luJc:c K(^+!-02i6쬫'dd'~ngw^\=:"F1#ǰ9Ƌz{|[es~KkC3. PX az.`^}bU@xTkAcpLӕ>Y ,<5]ʌF[3ΐo)Hr/ue[L5J8?2uҐ@{FRhޓ\a'lRX}aIDٍbd:hT.hۣ~?-0C 'rr^:a/=+!!dU,X'e7ݝf D&fmwݫ:V#k:iGH WQOnkc/Ofo ݹ}D)z(w޾Be48&%ٷ%VW荁o٩V$@oQ6R2woEbr OuvQb2y4O*sӪS/fꦺ 4Yb]_ޜ=a_MwG<]Zl-xe _UgE<` HȪWe{ZE٪PG?d3p,fiCW^lE;r7=3U:^(VNk/Ƨe񒙫7ˍnw.uEHI}I==PabZ])԰747N"U KV]u+kTJ˼豆 qonM8Z ɴsRZ3!kt\8~^VCoe ؅ _2:uv3+ֺK>5 }i#PfcE=9ϿV\;-$8F[X*OmHE&iȻIɹxL~w7ݵ#.Wߢ> YJXF*(PC*|,F {MmR&8^2L=߭>6yTNɺV_/Wp$ۛ\vI-_if~iU>[Kj-@ $Z}TfeVf/8+Y{,  4bޘ_SPyw Xܭ/[}}t/Ͽ_e\J?$*`ؚ=~~a9H Ο[$(ܳ7f*qys(u*W9k?UoWLj+ՙ+r>aHANIe( K1#(οwk/./s7|#AZn=xX($ŀ΁V{+NKwsY_=(߇wFOkj$S<Z0מxh=WY58U سxsC: KʟD9x圑(߽\Uз_JwnBksӾ`vFhUXF8_~I 7Im_G|oƕ卵}p.?5̅0ضn?|ČAr{9<6K+` -Z/@G>b!,j<\i 8`8o";1`8.V0*{mveTw }rb:'}oɓl ًA vOs%nǡoO|pяA?"A!N8%RY?nIQh'/%f؏ik:7!bmqroWO_wO CrA@?^JuZjѤ6Sn75gKX5TIGe[9 LʙDH]DKH:Fv;KT՟J (xˋjuovx=@c.Wh! -W`>Gv%i6-[ki-.[ją^kM.gϯ_k()Nm4[ E3as&갊) 2B#YȿַL%ջJ0.iV\)D UBMUtn=ŕ`hm J`ԟ_s^P0'}$wD35s H1AMs}9.HBBEQ m[*hO'Di'U =g/hDΏ/P+tekdq!NIVQgFZGXd9~GJzAj&:'sVCjMe/5:j$Tk:/38 -'/ޚL{Z2 Fusmi.?+ZG _9,XGE[me(ojOUeu>֯s)laXc0S]ޅ2J]*SIx@2*:7Jz@ߏ/#)pK]_rE"Ld ڹ_F3ƻp4Wމf_8 >̼i)*'8˥@ /߼ݗ$4A\p܃`f~< >YTzٿw=g*@7/TDհ.@ɰP|呕 Q/`PwA(r_x* }z~x7;vd7 ksI_#EIH^J J&F\C+ND3't0EŌfzgҝm5SjTJ }o_쟾9Bd=ʅr(]Q~ PZrߔ[o[뢂c4plg4M( 91]۞- vApk.uXUnw7էi7P2wrW#W*yT!"QET^᯴JFmk|1Kiv+US=J%IΩ`QK2~h+W0<W?_. a%AumA;^CY V&GSQCupe4:<_okq+ 2I} v >Tšȍ֎;?ԝ*QoX&)۾02F))Cv&kHakˬeU`(b%tfDr%NqsBp2V)yldUopYܙ̨[4^p1cxOzQQݮRv% H@pH/OJzA/nqHgK,,)r*PD>93_/?%=?4SQŀHj x?QΝD}D1_g.x:4X?2SuS-Ue4qxTv.Ua6C K{cnK2H_$6bj'*^H'ܴxJ/ Z\yq. {b޻й~b(_hNJv*z7Up9;@2tU7\k-ׅ&ꎲ1b~}bnfYu~aa &Z랊G{c @Ynfh! h #V6W.-vR=MzHbe2og>_N/S9p/#?n#@A< '`t7~wN^BPf·8,f^pJwQA-lXashπB\v>dU/hO;u8ޱ_Je(]Ҝ(<:WDNpꜮ֥8Rc?Jtt~M7ًPh!YZg1({P 4E!_@-jȨ"sn pURIϕ|khRW8dWHݲS$+"vyE3/%~1}fϲQ2˘/OU!< <^O4"yEOmCԬBå8qcP}XDڒBUǩꡒ.5o>4Vš]꽨ݦ/O6 t@ps'FY]\֦JdJu?yOS5;[wu%!)xF{U>4|Խz&?|i.$b\lըS:y~7'atqΐxp[].iA+4]*8 +Tnq?G]8ӞSkHc-u? {#0 ^,7~@0JX?2Rbk7Leدdf !p-gj9+/c}Ӳ.]V(e燠r:.V˶v3(h9 鿞鏉L9&0|{PClRgOydBa  VM\dFeS6xqxu{1ƃPi`/8L`,%%i#Sa4]1Qs]h{Ʉ BA!lhyN_Zb<+Du`^ !pLGc̤M5nMo_ /!DW~}^{ nI{LR}Ū!drW @e˼WB.<7\tI5K, W䊿8vJT GpzF"-atyk9ClR #SHJ|%GegdǮ7OV"f_/TȒA: %Vc{09˃W_D ;.rPrb{fb(9R͒J`͹|sgZ{")lLՇzw..xRFI++ kj*YGVV:ILkf^-g[*iBZ;[VO_x_dZSoDcIEB=vNX2-*pmˁ,mL9yɂĿd0yT$kZyZ );e~@kL8$^FGG.E v_v TCĨT*M/2SVC(-,~Y3ҭ)1Q/xsATʨ^[WY #D>׊YͤQC* *iQ*:{Mq.\P1jB/evdFC>#?P,ESeIk/e\#ۓ\Q"p8@dmjgtk-ΓS~F`*6?^qF剃h=3B\%h\~Rs*#=N&|ZEJsQ|rv ΩZ-T,FKe L&igۭg2?Bk^SwQ[T_t9%˱0 ik}Y%kmAp?{ݤ)ەzg=]6YflO-1oM9ͻ)"eܞh;`ms51ɕѝ# K%}.LL̋ޏd1VML 5mУGy4e5ꪯ1Up2U Q~SkKl#D]xX|PbYHmڠ^Z]Agwz+sn<HP)a6 8ba[#1S^8#oetu_ܺW0ʀYULo "oF)7:O^FB7h {yHpdn):sa*Dg=AK&|?Ӕ"}IA*)=7=(9GR+3jlh K:2V@Հ^Asgz\4I*(Sܐ`^Ac-jtv+y~{`\2<Ka`ӯnAb)0nLqRf{ǷfkiKD/C;K)z+Q|"(屋S1V^WIt AbFu\/Vo`js[3&/a]hpɴjקS(\`x/x$\TٟpiTko4 dX:QsyJ8c%pie0V۹C)nUzPTc,8%)FlOՃՇ!GRv;;_St'ͧ_&OO (!wy߻ܽ\=XkJB]P: p=e^d%HF`*2͓ʘ_'d$o( ؼ*M8wOj\͛OEb-y*Y hZ >ZY2zU &]Ȉ-0Z-N\4r/Qy՚?~ &Z*CI Fe`Smdsj؞V|sn">\Tm흵Q)0§*e8OQ|xbQuY]uw"< :rGN0Bn*t{bTwۖ\nK7a?aO!Tsq&f}4IV{|aqO ӢJj͕ykrQrx_+%]h5 2k4?5gK d`}"{WAⴸRIɖ?ޤҁt9OD[̞â&9=qt -'9tK4fHfOkowNޞŠQ<ݣo{q@ ~g/L˝; +1TD2zMX4i!y@m,@΁No#oOΙ &"*ORh.#B|5)kPH8 Wik瀓2#*GH*/DzhO90$Eͩb9a5{Z,qVyn"~i:sOgtEy>1!AF=oI5>X I{M3Ö/OY9G2l$ɌJwhrJ: yPKUSie{%9+lVX\J\~ IkZg7m Iz %sQ3ݲ+C9/ݍct"&9YWWt"dEw}YXO/p @ cX-*]u-$„RmbȤSr¶7Q yk*9]{*Kl8e A-D5' ˖lk!/\C BҸPb؊ѿyZ}ug7O7\z޴sHݛU!|لڀcpNLL_D?+wk 㛧fT, e3x3V|\|DEmן Û=4-K_0λ}4upi/7ד$;*ݡ@!iy:(2BS?@f ZkQzFiUN$xKnFx"T'=fgiwFqlY(٠#X %A5aWcAl$ x AJ)ԸNb4fmڪwb" imqv>Hݛ'\|߹OMO:ot3RN7nƥexg\? F#nH(=+׎eX UZB: l&JYz tdj%pPm(oQEl5|)ZMegbm ƨu$<r "u%T'#m%yoj$چ[\0 -Ĩ M4|Y(Ȉ`.߇#?hwi7{dϡ E~ ^9-;r.fc`7Kk'Q o_V9JP'/REMߟ"Qa쿽=@g">5e/<ɪ[EvSٝL}"C(>~%胬J}ٳג.f>86q<_>IPfm(_ T1o |c4"*>+W5~#aiŅ FRV!-rLx|dX&fGKeJ_mdˎftL5SYԜ8xm Z3^ſHjr:B p (d*XXaY&CJ9N5,nHy,ݱn18 crO+!{|ޞ_;K jexSc'isEa*$˲ |3zwdjЊZ]d֧RҀ 7%S |HC4Maؚ_As 0S`^BAɺ{x\~et>fwy1 /_ھDxb*p,NÁ`E?UZc&噾J$wy$S|=:/Ki d_/I7G*Y~Fs?))=-UsL$ُR6i5klyV(10xXJeWF9Q$֖Ly`(_r1R.H+]WApzǵ^oWÜ@є\]֐ ]f2.CFȰBqVG=gCJ,\"y$MU\.R,")r%^*_į*?^\X~eo!~C9"kñ\iMEi6 >$J6ׅ쫼6PUUXUшENvijx059 ZůPtI僨"?AH 1@1; y(HH`_Hqnիk90҃R:^wHhVz9̘hRݻw?5ԄsZ~g읫=G25'Zsʀ_kmEu;EKgѷ|c–(Vh/ue[&7f:ES{sV~ɟon5ShU|kO:)*i|nP.sF$v([@Yr;2])*)?P9(? ]7; ˬ[1`ms5kkQfdXFd/KJŲPI+.ʂ-1Q4 i'/7YZU kh P^;^6%Yod Zl.Fq`/2\ZžEIdJ.20]B,G!Z4EE}n@Y^ yRt1pQ~x`^Q-Fj՜[hH XxkPx(da ߔJ/caǕEf0 m)߽;~N8hB7N"&~Kľ9=z )׬PDJ  ĉ WUr"Ej%쨙mLat 1}~{|N!)  3}&aس ZJ+qg.(<%ėkep&9#^JC687**w UbLTZaB)Cj0 ly>sC 450#k |YhBShAђyUQ*pFL7 ;bK2n D_1. ˠU0 CPUIk5ޝH$lUtsc,^OˑBUyZէSK"3,NO4 ZIPi_X3juijWxR.j-qп8Uz+4W0 1ABʈΤWvo!t_JH]HϼZ`ـ]%&&1M7]]Sг}'R(frq'P9=Ձj;qv+fz;ۘn$uvH j-Tl;O obMG3sW͗,W$1 * ooFŧꌇBwti"QG)H#u+wOV餛C4UU䫗!fYaJ#հ+JnT{l}[wɦqDYõ`R|mia|wt!%g[$8+*gwvX-%?!E a&S$7i)إ UerZQ?A yH[dilՅP8f9Fh)O ;/)$m`( _T^2 "(`? KƏU(Y/™KJq3_(_ѿ7S 7P6Tou*̈́ ##q iPTޥf?\o©A-fmy0g9( `NWHgg +*uky^?MQᢼH`0,D&ry:HU*ǿDJFye4;zE^RX#X&o1>oN/"$.ARv29 ږ/ ȵX9P,tꓬqiYu(>9)ѽpWA\1V$E< /40W!A1By%f˩׀8/Qi_vlDъfʹSw*"SVz-ice=SU}S؊MB¶s`}ߢV`Fg /^Tt"y49&c47@kkGQ#T2VfJ-(F4jIZݢTLhԺbNEíQ ZXhD=^0iZeI.1$QʴI ːl^5+`g@r{jVI*;;U`p~zjtD}Tq"(%kHl0MDxX>qifH*)قXwV vi/YG~B7R<΢Ԝ[ZD1?z"4Pypk$37'>ͨ056?Mk<.6.g>Nbz/n8(hwgdl'L'g(-՘_G3CGido>l?Dz{%j/^Wi@_jV.g+)vzo`zr[jAIvl\"YL'ۛz-սhѤuN#بɪ/nޔbWE6U0mxU t{7twe&Gt3~Ҿ|K&`|x!zMULAHpJY1&sbUff.5xk"(fg%U4{\kkvU\L1+;x-ʝd?TunUe@2owg]WKc3Kw(tͱ^)OxzVOdb}2gzhXER:U;Pa~KvԔNFlK;iUjI?*TU4bm"gF#CRwnVjeR#ieev ],w.:AӤܪgSꮸX탊E;H6Gy q!Bt{}ȋr^(b0Y&aFT@B*xLjB!2kUKu%b6fyl'} a7$}Lj O*DdB`/-Q7]k*Ta'O9;9]4}U:~2Umt>UЉhՀ )4.uÏ՛HbvTs d ygje8+\29=JTco#3(0 tuEkG'_fdh_ SeIk+~ҾimEkխ]3 uG*{ (AiuLM 3՜.wڪ]=ͯ,7šd+|~)˃F/[ nQ^WEv"rl־9^'؞&i8`ōmήsv'o)_k/j_s4Sk5J^:vr0֚=jּ>h{9XoApqZH,Sy¸ÌΔ0=H_̃cA|VN %g~g?BWw_nt_ aͶ˯V'K j%e`2ؕ!XuM V3r(YjMzoNcNPKo96w?am5ÜC[?[8|oo4)`$aJ}nE;Rn*1-dGڹՈ(XoUJuIjj83S ѪUsFQEL Oi6X3Ũ!'d-u2 W._9d .r~tNnR9L<ܵ/+Y/ hZ^xwp\kJN_(ڪթ3s!ہ|aO̧j:aF8|wY _Goc闡hx/ 3Ui.z|dzQIcHr/j*̣Q=L_"*J/QyLWL%"iJ*Dg搦FstFSXUS an%<˝ :~gRMQ|R nζ -6Y, Ŭc3Tsa]Gj5 CjqBr@$G* -m n>>kwX^)J}yI#-##؊6 ;K9;qteF*[zޜ3qfFWO *qPx~khK{d%9YRF$;yHeat$7pj/lÞ}}=7SBRKv|M@2{+ . W 13xdlP[oWNXS\xg ǐ.oƒ= %t24ʇ*Qw&DNScSSrrg5QcrE՘PT0ޞ$D/Ths"0A %U2F`?MQVp'ҹa*GJe$ Q4l'>ɤeicf)T,J*"4੬*-;E|쫛|Ʊd(s!ե)xU paeuǪ@ 9;2!Zm_(ԃ%?5Igpُ3T_"[K'sUW_IpՖįe{XH2 W kƷ"N)\0bh"U5yI- M |&7jT଒~?hIًԥ4nj%*5! ـ)UYS=(-_fNŧ_ji`'!/EUIb(LX>P$;#<$.xʩp` *vz擸QI.nǯгocr9~+D]]O_9OįYufhts |ןImsT)-9_`Z!@ R&'B7NK3}m/oo O ٻӯ߰RRcK3 _[<UZ}>:\?fO?Is2mה?" F'rb)eFSZ9yNݬ6U$sK}/]>r:+\A=`5ę*.ɐX  WzUmj{<21O yD4۟ht˓2Gjck{׽ ( 5ۏZӯ`krfJ c!UmLֹ$Xuw3* S:+Zsvyk}:z:+W_F&%|C5Rާߜ%`"Q]ebE(KlƀsS{)ui#ϩ0F* i0Ny4- 'pڢjo?-%/ױ ϧ|)jrdczR2_3p_ 17#v7hzbu*,BIF>2C}䧓f[i㥮K覨|vg"FyIb'm/O" ?4bs>"$#*@v^.xY'Mdž>ϬvFтp֊=<_A:Wp9Sqh!)?Yps3 (lZrjyo0M;f%  u/x ګK Ŕye'E4<*|S+;DPK:SmNכl3lGKMnIMKpLAѿqZ2HJ+43win)(dō $?i~e7]k |h*D_C7Yu1GJs HH/z.vFs2t?N>B֔IN5\H(pQܢ榻hΖ(1 s!tdcWHi.1'( S~)9%w7{JMmo 3(D.ThA03տyX So{=$7<*R(wu,W yɛ=.32Wa_f|lFե`6&;MEFk(۞Vc'C^Ѐ^CbI /9˗yR¾p5'[w}g/wqam3zo,.G_ X5<~e\ >oPЭZz_b@L) U NZϕPrK؝\k)FMVVd~{>*OFfّV\E$oGgM4qndj׃*YObw' ӛVWcyqyZ^\fԫ~q~7ۅ6[KQ! ѿTJCD7̃`9.Դd?b?ӯRcٗ^~;8;c8|Xб:25`.Ra34;U/)'(vLTu,ސ=7 ^c?ЖX,? pQњ#MzTYbyL{?| Xl L|9쎩*Qe )ᒩ8MB9ߨaS!Ȝ\@8K~mLMv+TR%_Eu`kY˶F#w>/wj%1[ 犔TRkFsj~Z-I 1Z):54sLjdNR#-sАVobbAE;vʞm3}ҫ yCl[~  5Tr㪴;jgg u .VCDْMW2CHQ`C@e@.ԍHQBVz| F`{NW{R\XkT'c<Y"ybH^jZ=TZߩE %4M|JUΥJcีd >P$'< o%;0V y3@&Am~V!THꩨQth=:PWOoT8OFxrKES6_~c7ViH+ xɆñ 9 !5%I}}ENB Xpo6?ڹ-& K S!04ŗ_ CKK*\َjxC:ʷI̷?ȎFmϷ\^)C){f*۴6σۏXq"Qj`6 қoNSfTq i(``ڍMs[ \/4_gvre/-?pGj_TpnV5[mܡjN2+0iMfc.6WiO*ଏFrY[,P22W!D׽,2ݝ_Jap{͵vtվg9i*<8Kk uoX~ȼ wY}|ݍ;*}Ͻ~<$m7JTX# [ 8.8 -fF8hPmOA>W%~6zIt#p$f4)Gق$ BJ-0X9tD~M D@(y>i>(Db7ORn:yZ(yͷ_*(I"!UX'_"*/Bů%bt/AR\ WԖ(T\Jũ^RgG|k9UR樤x,zJ%yTG-3s* ?4QF ?J-0'^liH6h\, :ǒA95d:dT9Aa2LRX\ 2V6V:@v"vDTqAkؑҡYȽEpm(4xLRQCs\9_ɸ*I?zl-.Q>H 0!-{{ZokW|I~%fT58VSL2"psu,˽;4&dJ2'?/nU $jf>Y '13T6h0IhA4#F1(z/i|Ūi(~u׋_7ޥX+ | U ù[Iꄵ6lk(UbQVY-;=*-/5@Q8t➵"8ҟH1q*Eˋ<?~)uʮLݍZMa ?+3[o~+Ogu'iqq&5h]ƨ!QuMKiB\IZ4iL\8 겱B #R+'QUk+}wZ^w>+_uc{fDW]"b/o$rkO )XͣdpUz&ɑ,]Oӥ^NtwUJ3 D V3+Kswviq4sss Cs^9ݙScopJ([}RP$#uCݜ?@߄ӮMHϐv2>a"SMO*\s󟜫?YEm6h,rrol-Ia͜_wF튇+ntRFqSFP H| _ԍJHS޴8b4V*U83><#YQ: |մyLi!^kghKY3 :/i5}([IP H }{t;A:Z\aM KI0uo" 55݋DQ:hwi6o42q6{V*^jLn/DC8N>7#ACG}.јsFnSPD@ǻ}L5U[.䥡@vd 594pm_ku8OT!BU\IbA5PUxEJ7D8Ie__LLNt~BoFF8|0>YU7r^ \%Zr8($x=I.7U7%|OJ, KA0"@ JiNAt? EՓ&+TP` F5-o|^<,#`ZhU5R0K+w.Lt0i텹7ԇSnDͺ# EA#3U#灝4x4zhT- e1mQk (hd>ǕdCa/9?e "Vz9\_ 0 0Ԉ)1$e,Ӂ3`.ϐ7hb_*սD*m|]O:ctL?˟wO6~A swd^E J4cKp:VQMR߹tÉ,$p 5lYFqm9kIV'to?Ն+;4iBurSy>|˻ 3Ww n"i}c]?@aV"={8)߄ۻhqI~`9Wr {zX]ӣRUBj5,vt>ZP XcX|Ͷ!~ջU3luPjFN6|W  hlY_\_vxa9)7eQ շɼ1ŝ2EluU l|tg/("  Nxa8GU=l{)_ͼ@#o_&39 ѹ)U6A%߽d^E-BUoބ~q$/M[-5 WJR:EcğUJ8Q.%?/Wz3m;E+ȫD U]I u-N9@2DBެ#5+ǽ1X&kNkvZނHC ٦w>.SOќlubUfT".e~E)2ܝ|"@H |.NNU#3qPX@`dv+.RaQ _lZ$do7S۽%3_[>>|/C{: " ȞˍO1x:ݿ~`qufZ}NA.'+;ؕ(}ՙ_۳+ xi7|6)s'%0_4}P-`:,5fg{m DF&ɑ_(ٽ.t0kv"{)m0b% 5\T37g{_IU#԰ܘm?M><&݁Rȵ+|cnn XMʴ޿Yo\E8` b?DHXPy ˯1V(so*OoB7xiN` %P` ݋f^C::i,as FK9_NƜ`ѴHzU_k( c!i˘_f -sy *z{:*܌  װe\&ok,gD 8(YZFo $@ea_A:*4DxL|ţ ;c]p/?\Ȅ@,&E\¬!zX>J^e2E9iJx0YjFk9)AlҨ:[X@;,]дT291f3l06-5V9+LGuWCjP4mC"SVJ4[c摰 @0k~wěۋPOK͓C/·d7oػ~o>\k̜\Qv&[۞ 73DkP)#Rg-:!/fT- ԤɺڟAfeBj@F[`"ʀjS1Xl!vWe,2˄~p%X dkjR\.K ¸j8n@Ews^syBԳ'A1\;aݫG,(ْۄe>ďfW1|^ >uc{5=AwQ h/o]9˴_PwO s#t1&W(_|>7}[l/QLtÆBS5\~*Ψ8PcI0] yucvX?D\4Hi6+# WϪlQ/ &W|D4*q)PF]k?݇.KPU T̾xWϵ*hʜ,M.^*Q4Qr" XҎ%6Zphl?}LIYaT8 )wai|׼yhlnEżܳvzJwX ^U}2]/2p͹0ihwL{>襜 x-] nWǪQ!dN\"fbr$&8jOQ|fK*A[+-1~̸jZ㋕N]?+މ1\M&lO,f8+JtwsKKꬮQmrf"I'$tp-bJ$td,i/ќ^;`U-UwH﫭I㍺J?ENNWz;I T#uhL@PL2(wO[ JeC9$vf]jQN;V^^&D3{"P( ' f|%Se"BVGK*"O;ο-O,Ƽk5]?/[ra+~<߼zyeV1n7%*"9k˵2( DT#Zzپ<o ޼ߢ zg7*m 7;bN<ٝL5ӞY5`]=:zE"3Ap?H]1WnGldUoub=[-?W%0ЃAUߵݥ C_rHfپ6IǯGH Y`k 2XkM<5ʷfEL]i/ԾJdwPDą+2&1=gn.jf;,b0`L#;_ehּs߃Dgxiϱ%~6y,L F;ݛE\b*&>S^O͟jU#8oorW) mH\+LA}{vAt{pNbBe|'zބJFtr!  |Ol*`@|,HP ǩP tWp >FZu`tU{ųq*\yg!Yvz,{%hÓA,Rm8EEK/z1Dkuy]\U=p9H DVW놷qse3Rymi!Zo$$#Q=5Gb֗2ԪjR dz`d&MllD@: BhkB[0=.["qiژ,$-ycЇ+T9zٹіq8`¬Is э1]6F3(ܜ,H.dP<;쥴isɦ X:'hռ(9|Ȧ : ƴ:, #15Z_U=&Jkh -PfսL ܥX+vK?墁ݩz{ KSSă!00fhe& ;\$˽: mV3gkQl/jg$a=nV}\;vuQoϊfjNqЇ #g{+@rEyڭ9|كL-hW|5WȋЃY+ DΨȏ4Ou AxDA-ZI-3 +{gH k !Zܗ)Wɫ+FUN6[j?2z^,IZ_ML"p)A⋒}|a^uF]P>Xph9tb8;8czߜܕ:K[쮎AAKj#O)X$z ;̭EJ2\F6dW @3ސ:Zm5掼)n˛8s{ f?Ḥifsqjޟ'&;dx7Sy(d8 jNQ'l Wh|R;=-;`P0x.69[RtA7endIQ$\f| +@^_m Yn8-Vb +8 SAp&Iuy.SI? ߣr=taUs!Hopץ障to|v1G$)F%`УF3gYȃ]᠄DKEJ8{ʗy50hewN4KסYJnGR7gOQ.uOC=KL{U*@{(UdAD(7$HpcMu4qVjR?HwM/4%kjŋEqԐ.MLJFo\m;^mВh+@,_P+ɿLhdEW_+Bê-O_̀XٸQ dcKu_j :HL̖`|2$}\tD W "!73\1]Z30kG%ťŕoFMT0+U5̥Fx\cIb +' BJt!wW<ڝH_kx*+55 Eŝ")x=b|,3#U]wSp)@/>U6+~ȹ/?i,:<'f|H=>Sp)M1_ ؇eAN뭏6EosikaMM/Qt ^iXάJf-Iw0yϥ'k eGJ4LE(Iu|') |)bO_,R1YgAЙiԊ\NXd%I Ó&{LZBMd2w<)g1~~wW7Jr_`H#~ۧa:D\I[y<IEWIZü7ʶUB_ h+4[rAth.-Hڙuc*yXhcNom}I} Z6wrKsRshuI>U7r;`tmYϯflg3d13(yz/V^]lEvO0NB_|\E qLIf U&GI^cT0۰s>imw3In''swpIK5 dVR1 1#iQ`7T͆WpCE>^o3ޟpm~} wFzg=ƹΥ}Ͽ ?>tn-_pYxB3P˹aw_4+u>H4. ;n&1OU]6$ $boՔiJCE'\V;L5;YǢ~߻ ٘:ߚIt?ۛAa*OQ/j[uLObА.ur٢ Rie'QmkkcPmH"vIHo7,{( ԟ.PW-0ͯ?D*<=rp,#$;l.{?w_*iB4-׾9Ko'0UBEGMP7W7.C uhao3(Hƫlu_m[Ӄ)p\JV+9F}}7U,CO٭lS8vJ֠ -(ϱRLBJAm-l.F~{ET8B;m/oTԃ:ό iHaĵjHo3y|(?4 :5FvOUoTqFZkCpζB +f' 29\aYjg.?ʜt9T3Za9:[ꖲՌiuMi& 'T1ҟ^pV:_jAFRPh˝i(g܋gjh{/=k.8 +@M՟o4pP۳wj0SU`G[{c}\V~`oG~n]?$ەEqZׇjx?>sTWB_r?V :C=<R㯓_ekع~rWۏqX-/V B? _E KiI*j*< 2ioT|݅>%@ |ҡAnhHvf[EV}crWk+}|uR4VTc(Rلaan)8Xnuy St+-?\kX$3*[Q[ͧ4.]㩻Fs32]lB{ZOW\k]jfeB5=gw.2%kͻ{ ae|5*xQffٓ{.ij?Fy\;(`=KYa*71=慭[q?FA[ZBI*F -Ͽ|Ξm>^ɴ_37SðWѲeMIG3P7wir kWMc`̅\Rdrm4W Z[b] m~;7Ѫ9VΩ ] ! 2(m--yc5}ۛ}tS,C{ =׼L{nve/BJh^}!ՙ5 Q Ba"eWMI07<՝g 4^}y\_/}*vj^RDuyᯌŒlfo;:(VeeM[;^Zm.+MzTߦ )AkV%-O?*Q7AfI/4P̯XVWnYۭTjb, Sҁ7̻bkf6}{n"!U;֝pjhQY^U7_QÂ`W6?_.<:Rn/U3 x.^:Gm~:sR rRZKVr4T*pvb3ZI<'AϑSB2Bt\1n)p(]Sl6O`qUq/}yA?c57"7VM.SQ>TnXԖ!@$[ً%O ,"/G\HWQW]:JDximBLq4z]U,+ "U8kVD b0 #3^|-v:Tؑђ `[k\xJh$<+Ij"Ixtkb3Ey;C'YiLT>IQbzwRX Pmus< dsZn˝.o6z[KmNє¶Vפ{&)dO*~m4_~WBϸ-, {rl+dTnw+Ҳ1S^| 'بث-tl_vvjTe~7 :KhE*ϸy(0GimHE"O #em*׿c]?7mץ$uibC4 M2^iWI6Z8{n;ʹuspYkkE{?<)9r n(I4@- ^;00#n* GuҐЊզrYCu/ftev0dGS#)|kmnT?Tg_&aS-!X]oP1Yxk=dwryeDt_)1>@ٝ=M?s;AާaӓE3luujg슯Brb/8 VV#^{yջA'4Dt7yLf `뾊*ՆPҹ1fbu -HCbI.ݼז$撊^:&n<T'Ke#,F͢F?oo@=1VfNz6*Q5.xx<0?d ݘ,1[^lS;ԛXBSaA,VǰԼ =cģ3I 'ܙh[:$ ]+d|sVw𷵼t2GOLy-BXlCc4{M&229S {> T5kJ)0M?>r)3EH;ߘ,yau3Ԃ?H!~#uVBU)M4gQrOPkPeWaqE.Sw6hЙTۉ/b_/D4D)Ï7ݫÿ=4~y/ǟ3g"D6W7SZW;~Tm  MA}<$kΑԺyHx>yb}}ͶP8?+}*ͪA;QtorҰ '!nʍKo ڋ|yG7y/,u;:w:%[_V6G'a\vv *yq09gPI@0y_ L"2|+ty"vW)@sYU.Ic8vYmD?8r xEE;)Ri zH]*~b!/j^̢u4*<.hXS\(_.cbqlF2=GE"oϚ.Ww?|I.^ oJ5N0qn g/MG1cn/dhVnGs0Q~U5T;*CM2 `V]E @l.2W>%s?9:~ כ@uQldkw ?T/ZIB%{cAk&jk $3_ƚnBԚN>F M$osSy7jY؋kA0WlͯX}WûBK iۇѲܝИCRpE;m iCTY qsӍ|Vs@QNelW =V3 Wĕb{D1W;Wjĥ3kz y 2_@ `J jw/U>+5wE yYlGS&qɖd nMᬽy[!/fA5 a߽\tQ7"MɊ%VA! l>;u.^zhV49C}Bz#h<&& =Ȕ!a*Tj1r` =shF;fv1$00Z׏2զKEº@a3ݜ pև.5~\+3svqU$bЌGMi֍7Ea3H'q,ʼyjlH`I`7jyg5Cb\u2G`v%@RחgWq0DscYzӎ3e"p껃H](I 5)[yNFHL~?ה| LSIlYۣoO; AD>H ">p"Nq4˸p*Ld͠F2tyYIw9=<>ʰ߸;mxT=>4r+  ]@Iܹz<՗n~;/.>OשÇOϐw3EY>joBL+MoR50W'(r8em>_YwPX)ߺ~O.>y1^Ն kqMׯu69DD&>\.lIc

v崨jߟš-R- yaԆ+6b/z5NEFr8HX}wla:勪 ;;(X:@@pك|>|l'Y ٨'h_G^.ބ @I*ai6OoUSx[%7]e W` ;_>c(y;BOA'gwzx&la1W J$M$G&Ӹ`=T>yfoԄ3EΚj|uکO흱V&Bo2K6/ <wrDK8-2L7};<<\ד_^uOMh}xS-yyVc5_{|yń:7^\$%>,D\B5`ܞx3q .At A\~y3ܜ<ϛ?}vū_<} zB{Gh?`Qgq PX,{wԷiW ,JtsmoIld2|8`ҘE{Կ]~ [A|w@hϿ؛{yIjg}}e N6;f ?򯞇_H⎪$Z%tek@ɕ:!Zfm8).Uz*桦+j1֖fQn($rcnu#U]:Жa/EM8e ؕ օ}YSl=GHKË:4^Ud{XsZR|R"i,V~sxs//bi{i+_r#p7b=4m2N< Ԡ@wX%(\0I ]O1w\JY[K\Ub6pbp Rm |9;( dR; ql8%Ř^ǛZ9NYuTerbYky(_l_q -tk FVqih X2bP>_Y&D*6_5!7oAn^jZf-iznu4to2pZ(ͦ>m;k&ʈl@2X<.Cv<vษ hM=3ʛqΕ\jk,$"=mn yݥ lvjlm,ѐu 8F?)qc2'dž8UƂ\B+|5&OTr0&Ɩ#h^gf.XÌEhsנ3s%jkՃR9Gm^\_j,@= z&6yHU"҃VTG/}s~Cs1+^;k*!? SIpy%@J$6/x6x'¢|Ս'`w.Ex**d(ۜ^!82 CB)r؞.'ѼCNt"~'ϿbP2>67!D+ԇ:x' , Fbhk꼖GtRj֦gu̪ԂLj%AZ,=3>ޝfaaA >yDYo~ 7W:@Ur70d$amv5GMϋHr}(XeyNYȨȕ}bodYMuWg\G e򗜍 ؙkS85G4E]4.0ejF ;eP^!ea2nvP2 >PgNEs2Ǭh}vW íix@@䛃;~8t)mG+ܤ=ip.W􄰐,U0~@^ݨG8Mnv-mY:- p]vC<."R)0/w {xy+O yxdNyYNrpj?b=P2aΛR0jBUnFbCF*Af%΂V d;^UG -EBr;@vNU$9wB)߱Q4| D ௪:R:X81I+N!C䢗eX4XJK%+ Pfhf/QuVCHH3:. /7tE-n^%uH'tS4|25'36U& }})&e]B.${81\oяz ?vJD52:IRUApBk/4Fo+J@PIOŨuyOXׄ.Wb3l_u.7Qhu$=]cT b!Б.KDѿRrF v aVˍridzlq7ߏ/*uw $qЕ}kE,sWb1ETZ镀.W;BA8_Vp Pn*f ؁G FF>]4G}C:gHwMGM/ &:guHř\WkCꑍqߖ_0-m_YO͛O/=\ОB]n@0*ђˏ?{x (G,U/ LS=X"˿ӼFѢࠪ)spH}E2`:ɔb1Ņ4lyGISPCgQ<[h@u@x{Z{KWHVX/jw]} :m!\pyQɑ~y \A.N1fp8mP1uNdE[,ti0J`㍳zO*H_NSW`6'Ü3dEURָcK:MT5]-#u7SgRc2}?R-p_#h>om0{Cn vX&Uws;\%QBYѶ ?ooTl94WL*ձRꫫY(ߖ FP TLc'f&AՎ9h-sR]E|gD8TX6Ě`VN&ٚtVBѳᮙ~P!{uꎄkhqL^eFZ\ET В#/W? eNcz' ,;XSÇH`Oqo}]CY>HLq\RU>_L:@?#Zxk`;jN5 ʋkS$=LwFTVev(1-vw_bk~tO `|y aNV ^1dC4_maE p$_͂y0V:!G $ P8;SGuU#e{bLƌ4#Pn8V1lharBr?jyaK@ᗾx3LEGZw([v/=;W_vO?8t:3q\hCc, (_*w8p 7XvB@)}~;̥9U qEGUAp?׏<5Y:Kgvq|"C "xO`bpzǍIlyq끃}(HDw}qlf"=*:;WAMalg]e/[ p h]:JK'cNU-A1!Yzq#G1q̼qvV"IǑ,/6b\5;ohF+ږ'<Fq2!#∞-(3*y`Dmב *媌`JWӨsRPb37i lՖFhr$"-ϖ yUhW@^, r޿T_\_su^J.J |#%3f_~0 $Eٶ{ɺz, lMkH7ye:u-Wx t0t^0j4iCi4ˍ˓؟eq;|euR1FonVf7ΜH5sLátv :JrlV\G.4l"X(tEv< |DERgaH kZ2K֌IuS [ćFLۺG黸r)lv/}&D3-{HKޒt:I}qHKj{rQ6/#5&gEfE'wd'ލf!<)ިv}ϩ-09-ƣh A9le*/W[a" &i@0궗/] ZC]lI$__HՅKgL㯕*қ}HpwN GEFS/'q,HyufЙ3P(`>}qGddtJDua|{ !@H{P8^=I~IX p8u6A$o@<u ̕+hleyw` FYuۋFeM!tk(8Q#iƲlXM(.K|:.t [!cM+\ofzH4Ra؞*׍<\ EMnFL)i4j?WWfOMIA׀d/W:(Kϓ1a߷7[Gx 5'n`,^zM{PK]mqE}#*;^:2V%&=ZoO%Y2$kt<*t)`[n}yj}.ur&=2XUyיnLacq aARFo:ЕXGP +Nb0p Ǒ+.JD0]0ۨt{_8GX^ځ `\ivm1A<%Aa QhM#+و&};wM_NYmq !HDC/ӍAvn NH tݛ=ud{ [᯿52bTm3# Oyz5?"[.x|b(ĝPKHGu,l FZBR+6[ 8bɈC/^  6\*~ʋ{& =>>&bf.LB΂I:NO3UH:?/?cy;;H~ѿ$+}%Fve;eC yNY^/ǩ!MwtX9H 'Ufqo"%=8 ujF>:BVj&&kp|)OF2zMAkGdSf#D*fXM; J^ftgJ@$LH FU:*y($W3grǥe39e'˔/Ͻ#|ouÄ즑7WQ7J Q6s#ӜTsr^tHZh(ɔgP1gɂ+gbQMkG a'%INӥn8ǁO)- H tE 5]7M}௮$髚 {*P"{;!L|F#ӝ6%κrΌv2l@DZ+ѥom@Y uнvi4WgpSOg:Gqoю[V7cϏ)im%Eu4R FO _ Τ:ZTd597k6B^p@64_H=`WW jP =N$jvGMƳ' (}g `) xdׄR,GVw 6"xS HDWxa,Ɋ5g' ; Gz rcArteɘ]? 5sm==˷ioj@aZf4P϶uikcu$s~\VlI",=<\$iΝ=: V&~~]c%P8Y Wۏ#>캲o^Dw}F{Ǜ on>r:'t#x:Sop3imѿi`^>bW7w9%Kr@د!𷿂YY{(%_ yCz`Kl]}o-FVKU3ZEx7ԖkMWEgC"ޟ&V&=D-Qim}czaWj,y\][:Y[]g^X+ȗ\Fv!pgzmxzK{K]y=rЪ6Z7_E/D{" ԒSs.YhClC7x-d RԛX!,GY۷-rukt=\@qv76k7қ l-O{b%r-X8Gql8C3ZCqqzVn[5LN6e~uKNݍYG[;CF_0ePbUQd]8欱=8e t0M*ci4C{?J^u*o'N=LXg{{B`~7FC}D/nAɖ՝J8["%SRtn/IClB= BF[X56 79ALSڄMg:hOS 7U԰\:g9@zuU (TvrUCna9ֹ1@HE̖TP5X`$sO`}SC,K}e9677ppW'#ukwR}*V uee R<%(RLV;L[kFGm{͈j;TdS/J1$zS՗\V}AlU]$*e[W۲;Q15eX4)[SBgpSCGgn Ïf/{'?{ɋb_k_HKY(젂լS2z@H1ޞr 8Ҷ% 5w7;NWu l"TP?;Yi௫n [mo!c ssG"'_:dț%hHHL[}p\z g;mj92h>WfOy_l2;dwJWK{諏Ҧ1mSy`Qyy'G/{ep z#spun1<ٚ`Jm./0T8wys^h.;?`b[f)moI rp]·^X+ WUչ`skﰘ8MvpaDoڂ|I#}7Ѝ' Y*`Ѽ9ҒWG[|2-oor [~AF.7" a.R7d[ yn.REiv{+Pš|LJsȭԤ%Gb3r\bF3׎2 Ӂ1@GOJ 𗜻8[UV6?YҁPotPj<9{ ^B?v~rz~8w DWjN{; FOYf!?slh:L&Mz1Pa4L'otN,EGh|kZfP>5;$ڟf! TG @=PV0NQb8/N Ud53sq}+p+SF)"tpk 2M ^WLWÂPڍ 8ؙh_ӎJYN 7 |Io8wOd?U]ZW~Bu|v"7B_X~=hvOIռJP =4_ro\teO@AKߨ:ˍ`e/VW8”8u M_rui:N\:H9s 8-YlNJ>${%#Z*O LPɞφFqF˝;ǁA7]yqo˫΀oy؎}tS)UkK Q{.D9`]:h{95Lp_lKP _&e<@G h>R+k*n8 FRmR5vۅD]pڽP4GVlT&-iZ+nRwZՌJ#k$V^ozYJ#eUR,jd( )#sZP+ܙ25emN, W9%L{%N"J%W+szk"FSovVӢ),TȜ+>7!7UMI NWz'm\~i^]`Yf _w_ 57Aa{ D |<(ibb ROZ[@ C6w]DPsF:򣓲PLj}m0:mBB~_m;47[O6]kd6@-wE |I0&{'Lc)O/yvɺL>/Ͷg PjyPgendstream endobj 14 0 obj << /Type /XObject /Subtype /Image /Width 640 /Height 480 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter [/DCTDecode] /Length 73711 >> stream JFIFHHWExifII*n%(i Eastman Kodak CompanyKODAK DIGITAL SCIENCE DC220 (V01.00)HH0200    | 0100d2001:08:31 23:46:25ddddd`5'Eastman Kodak CompanyKODAK DIGITAL SCIENCE DC220ff`JPEG1#F%z&`;X333333333333333`HHQ(HH$vcjDf@^2^2qN"cC^>U:V;V;GI8oq`iuijvjnxlnxlpznrzqt|st|pv~rv~rxuyvzv{w~{~{|}~{p{p}r`nDh>_3_3mJbEiL!_E S9S9IH7qp_pvhqwirxlrxlsymv|pv|pv|nzrzryuzv~y~yyy{~~{{m{{m sdQj@i?^3^3oJrQ$uT'fK$S8S8HG6on]mvgnwhqwkqwkrxlu{mw}ov|nyqyqyuzvvwyy||y~t~~n~n     i\Fh?f=c7c7qN"zY,xW*hM$W<W<ID4ojZpvhpvhswjswjtxktznu{ov|nyqyq|s|s}w~xzz|{{gbbNhj[uu{xcmjUjl]wwiwwi`VAj=g:a0a0vT#\,yU%kN#[>[>EB/khUougpvhrvirvitxksymu{ox|oy}py}pzt{u~wxxxzp^ZKbZIc[Jc[Jz~stud^\Ousfjj^{{qsdqsd`VAj=g:a0a0vT#\,yU%kN#[>[>EB/khUougpvhrvirvitxksymu{ox|oy}py}pzt{u~wxxxzp^ZKbZIc[Jc[Jz~stud^\Ousfjj^{{qsdqsdSI4c7f:].].wP!_0{Z+mP%^A^AG@,jcOlthmuiqwkqwksymsxnuzpx|oy}py}p{r}t~uwzz|w_[Nlj]^\O^\OZ[Jvwf{xe{xeVS@om`stn`~p~pprcprc E<)a6e:^0^0zV(`/~\+nQ%^A^AF?)g`Jptiptirvkrvktxmqymrznx|oy}py}p{s|tvv}w}wyvlk[mdYtk`tk`d_Oc^NZ`T}wvyvycqfnytw}za]Na]Npl]}t~|sxjxxqqcqqc=2"\0b6\-\-{T%_-]+oP%aBaBA8#i`Kswjptgnvjnvjpxlsymu{oz|m{}n{}n|r|r}t{rIUKIUK-9/\fZnxlsg]{oe{oezvgjfWd]G;427%27%!&  ,'+<7+<7@NCCQFVWF]^MjdVjdVyk|s{r|slqalqa 0(Z-`3\-\-xP!_/~Z*rP&b@b@@6!e[F{qtzjrvirvitxktznu{ow{ny}py}p{s|tv|sQVDQVD@L@wk_~rf~rfykmgYXT:OK1.0.0$&!     (-UN:XQ=xtgxtg{~sln]ln] '|U(]0`1`1uM],Y(oP%bCbC@2`R;|q{ptxktxktxkxyoyzpw}qx~rx~r{s|tuvhjYhjY$& mcVuhuhxdb[GKH1B?(32!32!32!43"-, !23!23!-0;>)ID0\WCsk\sk\}ufrtyk||ejZejZ  '|U(]0`1`1uM],Y(oP%bCbC@2`R;|q{ptxktxktxkxyoyzpw}qx~rx~r{s|tuvhjYhjY$& mcVuhuhxdb[GKH1B?(32!32!32!43"-, !23!23!-0;>)ID0\WCsk\sk\}ufrtyk||ejZejZ   X+Y,c3c3vNZ+Z+nM eDeDF6ZJ/{r}tvzmvzmswjuylw{nx|oz~qz~q|s}txytyityi8=-   h]O~se~seviUdWCUN6B;#BC/BC/&'99%88$?A2)+)+KG.D@'PG2g^Im`Jm`Ju_wcvbxte~~chXchX   }V)yR%`.`.zP{T%X)qP#eDeDF3WD(|~o|~oswjswjtxkxzmz|o{}n|~o|~o}t}tvuY_OY_O$ ]WKsmasmasiTe[FQM4GC*////55!<<&DD.MM9GD-KH1QM6hdM{oU{oUtZ|g~mXpo^zyhzyhacTacT       yR'xQ&`0`0}U%tM}V'rO#fCfCK5P:sykougpvhpvhrxjxzmy{n{}n|~o|~o}t}t}vlpe%.%.   Z\OZ\O^V>IA)HD-GC,78$78$FG3DF/GI2FG523!23!GG/KK3SO5TP6ZV?ZV?okTybugPPUEX]MX]M_aT_aT                  vN{S$X&X&X&kC}U&rO#iFiFL9H5ougpvhrvirvitxkvzow{p{}p}r}rtu|qIN>##   <>1<>1NH.KE+>>*GG3B?*B?*A>)KG0XT=B?*LI4LI4II1FF.MJ3TQ:TR8TR8LJ0f`FZT:DJ:7=-7=-acRacR                    /+qL!uP%}S}SY%g@}V)tQ#fCfCO8H1ougpvhswjswjuyltznw}qz~q|s|stuuzj(-  $02!02!A=$IE,65$PO>RJ2RJ2iaIJF/TP9umURJ2RJ2VS>;8#MI0XT;_W<_W<_WRJ2RJ2iaIJF/TP9umURJ2RJ2VS>;8#MI0XT;_W<_W<_W(TM7JG2]ZEi`Ei`EvmR\VC#[R3SJ+05#05#%*=@+CF1 &!'!']f_fiVfiV$            \:rP&vNvNY'wLoDsP"hEhEV<B(QUJ_cXlm\lm\op_pq`rsbtucuvduvdxxjwwi`bQ%'!!   &#$$WN1mdG7:8;XT;XT;xt[_\GkhSxME,ME,;B%4;^W7piIeZ;eZ;dY:<9".+"(#)#)U^U9B1                  $##"T5 qR*wLwL|Q"yR#kDuQ#mImIS;@(7;.:>1CI=CI=Z`Tnscqvfvxixzkxzky{n{}pim`"& "(24%>@1>@1=:%VS>H@?791 91 |tciaH}u\xe<3 <3 JD&B<VN3TL1^V;^V;{sXpjPNH.+1%&, &, WcYsud             '&('P2 sU/yNyNxM|T$iAxP!qIqIV<C)?@/CD3>C1>C1BG5]bRrwgvxixzkxzk{}n}phm] 15(GK>IM@IM@85"SP=uhLcND-ND-g]FvfC~nKWN9QH3QH3|kM_N0PH-VN3pjNpjNc]Aa^I]ZE59.15*15*hqh}66"     !            '&('P2 sU/yNyNxM|T$iAxP!qIqIV<C)?@/CD3>C1>C1BG5]bRrwgvxixzkxzk{}n}phm] 15(GK>IM@IM@85"SP=uhLcND-ND-g]FvfC~nKWN9QH3QH3|kM_N0PH-VN3pjNpjNc]Aa^I]ZE59.15*15*hqh}66"     !             F+oT-wLwLuJ}U%iAuNqJqJX=G,9>,BG5;D5;D5'UYOvzpx|oy}py}p|uy}r=C5 !59,\\NUUGUUGQP?[ZIrfJrfJTH,s_9p\6PG*I@#I@#mdIbY>JC+ibJldKldKTL3lk[edT6<06<06<0|CH8     #!     !   =#iO+wLwLtI|T"nFqMpLpLY>G,,2& &  !& qujvzoz|oy{ny{ny}rlpe!#CE8sseccUccUrrdii[bbYP3sa?bP.bU6~qR~qR}uZ{`izwzggY?G0    "'#@F:~q~nrsbqukn5-~mggxuvgh^TYOzuzu{:>1%"$$""$("& & &!""!$$ ""    eR5vNvNxP tI|Q"hAsLsLaCM/('HG6msemsepvhswlswluynvzovzojsd#,$  (,*,JL?x|xh=F?irknj]npcLXNHTJHTJMYQEQIGSIBND*94*94.=8ENE7@7'6/3B;3B;CMA(   #'!'! #&&!&!&&%$%$     eR5vNvNxP tI|Q"hAsLsLaCM/('HG6msemsepvhswlswluynvzovzojsd#,$  (,*,JL?x|xh=F?irknj]npcLXNHTJHTJMYQEQIGSIBND*94*94.=8ENE7@7'6/3B;3B;CMA(   #'!'! #&&!&!&&%$%$  `N4wO wO vNvK|Q"eArN rN bEO2DC3rqanthnthpvjqwkrxltxmtxmtxmhl_  $-1$-1$"&8:-\^QBB8ZZPMPKMPK_b]uuxwwzyjl_3<-""  "%" %%  "(#(#(#&!&!&'' bP4wOwOvNxM{P!jCpIpI`CO2AB1pq`ksgksgmuirvkrvksymsymsym_hY   46)46).0#GIC3LMC|}s|?6/u9CD0:;NY^\gl\glz{qKOB24%(*(*(''    !%%    %%)#(#&!'%%L>(vNvNtLuMqIoFh?h?fEU4(*.0'2/'2/)41*94+:5*92-<5-<5+61!,'(6+=>-=>-KL;^`SuNA<]ec?GEHBP_Yg_YgyDJ>1>:0=90=9/:5,72*71,93+80+80(5-)62*73*92(70(70+82%2,%4/#2- -' -'+%&'    '%'%.,+',(%$$#$#(" ?8$tLtLsKtLqIsLf?f?hEX5 )*01 '2/'2/*52,93,93*71,93,93*90'6-!(HH2C>4C<4C<3B=4C>2C>2C>2C>/@<4EA2A<2A<2A<2A:-<5,;6.=8/>9/>9*94*94)83+82(5/(5/%2*+#.).)-( 3.1,)*././(" ?8$tLtLsKtLqIsLf?f?hEX5 )*01 '2/'2/*52,93,93*71,93,93*90'6-!(HH2C>4C<4C<3B=4C>2C>2C>2C>/@<4EA2A<2A<2A<2A:-<5,;6.=8/>9/>9*94*94)83+82(5/(5/%2*+#.).)-( 3.1,)*././*$" 3.xMxMyNrKkDwN"f=f=iHX7 -):6'+75+75*64+84*73,95.;7.;7,;6-<7!/"  :B9:B9own}rxubY^Xotnotnpqg>?5->94E@4E@4E@4E@7HD5FB3D?3D?5FA8FC6DA3D@7HD7HD0A<1B=4C<4C<3@:3@:5B<0A0C>/B=1B>0A=/@<->:->:,?9/B<,?9.A;)<6)<6%82#40&73#2-&50&50 +)%0.$ {P!{P!oDsHtIuL e<e<jC\5 -,32",95,95*73.;7.;7-<7,;6,;6'83):5+>9+>9!0)!0)%4-|u}}jsD,O&C=+-E35E35UIKgh^AE87;.-<70C>2E?/B<-@:0C=,?:,?:,?:)<6)<6&73'84'84"-*$/, |P!|P!mAqFsHkFfAfA`=X5/,52,95,950=9.?;2C?6C=6C=6C=.<93A>/@;0A<3@<3@<)62OXQly~}k}k9 5U60D?561'61'9 c83{{\\NOTD7<,,:7OMOM>LK>LKAON=NL8IG9JH:KI:KI;LH:KG5HC7JE8KF8KF7JE6GC4EA2C>/@;/@;/@<,=9,?:+>9/@>/@>(97'97'97)76*87*87!,'$/*' vKvKoDtIrGiDhChC\:X6 2-:5%0>;0>;2@=6E@6E@6DA5C@5C@8FC:HE6GE9JH:ID:ID4C>0;6dojxT=)8 >'(&'&'< Ae`Ne`NUP>:?/;@05FDOK>OK>PP>PPPN>PN@QM;0>;2@=6E@6E@6DA5C@5C@8FC:HE6GE9JH:ID:ID4C>0;6dojxT=)8 >'(&'&'< Ae`Ne`NUP>:?/;@05FDOK>OK>PP>PPPN>PN@QM:->:2C?3EC0B@OM>OMDTUDTUAQRAQTCSV>PP=OO=OO?TSPP;MM9NM9NM8ML4EA1B>1B>*;7+>90C>$:9$:9$:9$51$51*3*hDhDqMuJrGjBoGoGU3 U3 5-;3$0A=0A=4EA9GD:HE8FE;IH;IH;KL@PQCQP>LK9JH9JH8IGAON&{ossFF81?SR:NP9MO9MO:MH7JE.CB5JI8IE8IE0A=-@;/B=(C@&A>&A>%62&730<4&f?f?rK jAjAi@lClCT2 P.6+:/5D?5D?7FART>SR>SR>SR8ML;PO:OL5JG5JG5JG3HE2GB-B=+A:.D=.D=(65*87/>5#2)\9 \9 mJkBi@e@iDiDX6 M+5-B:)=IG=IG@LJ@LLBNN@NK7EB7EB7EDAONBNNAMM?OP?OPEUVFVWCSTFSUKXZKXZ\iewy|dpndpn[ge^g`=F?4<:?GE?GEztkyx`nm\ji\jiO]\QabL\]M]`O_bO_bL\]O_`N^aO_bL^^L^^L^^J\\M__J\\K]]K]]JZ[GWXEWWI[[>TS>TSRT=QS;PO<3?=1=;,86[8[8lIh?e<_=b@b@LG>CLCAMMAMMDPPFQOHSQ?MJAOLAOLCTRCTRCSTFVWGWXGWXGWXHYWJ[YQ[\R\]R\]YcdZde[ef_ij[ih[ih]kjZebJUR3<7HQLHQLZgkVcgZjmXhkYfhYfhS`bUehVfiOaaOaaOaaScdTdeQabTdeTffTffK]]J\^QcePbbM__M__K]]K]]EWUK][HZZHZZCUUFXXDVV:ON=RQ=RQ=QS8LN6KH7LI4IF4IF1FC4IH0ED3B=2A<2A<2><3?=1=;,86[8[8lIh?e<_=b@b@LG>CLCAMMAMMDPPFQOHSQ?MJAOLAOLCTRCTRCSTFVWGWXGWXGWXHYWJ[YQ[\R\]R\]YcdZde[ef_ij[ih[ih]kjZebJUR3<7HQLHQLZgkVcgZjmXhkYfhYfhS`bUehVfiOaaOaaOaaScdTdeQabTdeTffTffK]]J\^QcePbbM__M__K]]K]]EWUK][HZZHZZCUUFXXDVV:ON=RQ=RQ=QS8LN6KH7LI4IF4IF1FC4IH0ED3B=2A<2A<,=9/@<4?:.94M<M<WF(S@!UB#FD7IG:IG:?KI?KI?LHFSOCOMCOMCOMAONIWVJXWJXWJXWGUTKYXLXXIUUJXWJXWLZYU`^U`^V^]ZbaZba^hi^hiZgiVceVdcVdcTbaWccUaaN[]UbdUbdS`dR_cXegYfhVgeVgeTec[hjVcePa_UfdUfdRdfXjlScdQabRddRddTffOacJ\^Pa_UfdUfdN^aN^aJ\^J\^DXZDXZG[]K[\HXY?TS>SR>SR?SU>RT@UT=RQ7ML7ML7ML,D@-EA5JI0ED0ED4A;2?96C=5B<JH@LJ@LJ@LJCOMCOMFRPEQSEQSFRTFSUFSUIUWIUWIUWFTSFTSNZZNZZMYWMYWT`^V^\^fd\fgR\]R\]V`aXbcYgfP^]XddXddWccWhfUfdWdfYfhYfhYjhUfdUbfVcgWedWedVdc[ifUc`VgeVgeVgeVgeYjhVdcVdcOaaOaaQccScdRbcM__N``N``QabO_`M_aI[]CXWCXWAVUAVU;POASQ@RP@RP>SRAVUCUUASS=ST=ST8NO9QO5MK7LK6KJ6KJ6E@6E@?KKKM?KK@LL?JHDOMDOMAMMFRRHTVJVXIUWIUWKWYMYYMYYEUVBRSBRSHVUFTSLXZO[]MYWMYWT`^VdcTbaV`aU_`U_`VbbQ]]T``VbbUfdUfdYjhXddYeeWceWceWceXegTacXdd^jj]ig]igYecZhgZhgVfgYijYij\lmWghWghVfgUehUehUehXjjUggPa_TecTecL][O`^N^_O_`HZZHZZJ\\J\^M_aJ_^DYXDYXBWVBWVBWV?TSBXYBXY@VW>SR=RQ;QS;QS;QS;IF6DA=KH:HE;GE;GE:FD=IGAMK@NMBPOBPODPPBNNEUVDTUGSUGSUIUWIVXGTVIVXMZ\MZ\S_aT`bN^_P`aPa_Pa_M^\P]_N[]S__Q]]Q]]TbaQ_^S__S__R^^R^^Q]]T`b[gi\hj\hj\hjYfh_lnYeg`ln`mo`moboq^kmYfhYkmYkmYkm`pqZjk\jgZheXigXigWhfPa_TecO_`P`aP`aPbbQccRcaYjhOaaOaaPbbK]]J\\J^`L`bL`bJ_^I^]G]\BXWAVUAVU?TS?UVLK>LKAON?MLCQPCOO?KK?KKAONCQPHUWIVXGSSGSSKWWGTVHUWIVXIVXIVXLY[O\^HYWK\ZR_aR_aQ^`P\^R^`O\^R_aR_aTacR_aTbaR`_QabQabTde[gi[giXei[hl[hl^km]jl\ik^kmYilYil[knWii\nn[kl[kl[kl]oo\nn`nk]khVgeVgeZkiVgc[lhWedYgfYgfTffPbbVfgXhiQccQccOaaL^^QccOdcOdcOdcMacJ^`PfgNdeI[[I[[EWW@UT@UT4MS4MS4MS7HF9JH=II?KK>LK>LKAON?MLCQPCOO?KK?KKAONCQPHUWIVXGSSGSSKWWGTVHUWIVXIVXIVXLY[O\^HYWK\ZR_aR_aQ^`P\^R^`O\^R_aR_aTacR_aTbaR`_QabQabTde[gi[giXei[hl[hl^km]jl\ik^kmYilYil[knWii\nn[kl[kl[kl]oo\nn`nk]khVgeVgeZkiVgc[lhWedYgfYgfTffPbbVfgXhiQccQccOaaL^^QccOdcOdcOdcMacJ^`PfgNdeI[[I[[EWW@UT@UT4MS4MS4MS9GD7EBNOEUVBPODRQDRQERTIVXDPRGSUHXYHXYHXYBRSEUVQ]]Q]]Q]]Q]_S_aIVXKXZR_aR_aP]_P]aN[_Q]_S_aS_aR_cVcgVceUbdZffZffQ]]Yee\hhQceSegSeg[ihTba^pp[mm^km^kmZgiXhi^noYij_op_opZjk`pq[klUefUefUefZjkZjkZjkTff^pp^pp_pnXigWiiSeeSegSegQceQfcMb_K`_I^]I^]G[]EY[I]_FZ\E[\E[\CYZ>TUCYZ6JM6JM6JM6BB=II@NM=KJ@LN@LNAMOCPRERTBNNEQQEQQDQSDQSFRRIUUHTTHTTLXXS_aO[]IVXMZ\MZ\JZ[P`aN[]Q^`Q^`Q^`S`bWdfWdfXdfUacUacXdf[gi^lk[ih\hf\hf^jhYeeYee[lj]nl]nlZgi^km\jiYgf^km^km_lnYijUefSegYkmYkmRdfasuWgjXhk[kl[klZjk]nl]nl]nl^om^om]kjR`_XjjXjjZllZllSeeSeeL^^PbbM__M__UfdQb`O`^L][G\[G\[>SR9OQ@VX6NN2JJ2JJ;KL?OP;KN>NQ=JL=JLANP@QOJHPPBTTCSVEUX@PQ@PQHXYGTVGTVJVVEQQEQQJWYJWYLZYQ_^N\[N\[LZYKYXJXWP\\P\\P\\TecQb`Wed[ih\ji\ji_mlVdc]kj`llgssgsscqn_mj[klbrs_or_or`psbrucsvanpboqboqervhuydtweuxcsvcsv`psfxx_qqaqt^nq^nqaqrcst^lkcqpassassbttTihZoncuuXjjXjjVhh`rr[poZonXjlXjlZlnUfjUfjXlnbvxbvxRfiThkYmoQegNdeNdeG]^LbdLbdIVZFSWFSWERTCPR?LNIVXDTUDTUGWXKYXLZYK\ZPa_Pa_O[[JVVQ_^UcbVdcVdc^lkSa`Q_^RcaO`^O`^YgfVdcYgf[ihWhfWhfYjh^kmdqsdusarparpanp^km^nohxyeuveuvfvweuxeuxfw{arvarviy}fvzbswduy`ps`psaqtcst_opaonesresrdrq_ml^nobrsarparpgxveuveuvbrscstcst]rq[po\np\npVhhVhhVhh\npYkmVjlVjlVjlUilPdgWkmQegWlkWlkTihOefPfgNdfLbdLbdCSVGWZKX\KX\M]`M]`M]`R^^R^^J[_N_cN_cN^_QabQ^`YfhZffZff]iiYee[gg[gg\hh\hhYecXdb[ifZhe_mj_mjbpmgur]khdpneqoeqodrqdrqgutesrertertdqsgwzfvyjz}ZjmZjmZjmdtwcsvZjm[ko[kojz~lxxeqqo|~jwyjwy_ordtw`rr]oohz|hz|hz|dvxfxzfxzfxzfxz^srZon\pr[oqYkmYkm\np`tvZnpYnmShgShgXnoRhiVlnWmoWmoWmoSikWmnSijVkjShgShgFXZHZ\JZ]FVYJZ]JZ]O_bQabP`aRbcUefUefN^_RbcUbdZgiVceVceXeg^lk\jictr]nl]nlZjkaqraolespivxivxivxjvtgsqbsq`qo`qo]jlgtvbpohvu_ln_lnboq]mpcsveuvZjkZjk[knjz}_ordtwewyewymohx{jz}jz}jz}dtwcsvfxzdvxevzevzduyauxg{~m~bswbsw`tvbvxasu]oqZkoZko^osZnpThj^rt^rt^rt`tv]qsNeg\su[ss[ssZrr]txZqudz{awxawxFXZHZ\JZ]FVYJZ]JZ]O_bQabP`aRbcUefUefN^_RbcUbdZgiVceVceXeg^lk\jictr]nl]nlZjkaqraolespivxivxivxjvtgsqbsq`qo`qo]jlgtvbpohvu_ln_lnboq]mpcsveuvZjkZjk[knjz}_ordtwewyewymohx{jz}jz}jz}dtwcsvfxzdvxevzevzduyauxg{~m~bswbsw`tvbvxasu]oqZkoZko^osZnpThj^rt^rt^rt`tv]qsNeg\su[ss[ssZrr]txZqudz{awxawxFXZJ\^L\_L\_K[^K[^O_bL\]O_`O[]UacUacTacUbdUfdWhfXigXig[ljamm]ii_opaqraqr[ljZkifsufsugutguthvuhyuctpZkiYjhYjhaqreuvkyx]kjgtvgtvcprdtufvwjwykxzkxzaqrdtuey|mn~n~m}bswk|k|m~m~i}mfw}nizizhyaux[or^ruh|h|aux\ps]qs_sufz}fz}^ruSgj[orWlqWlqWlq[qrUklUkm_uw]uu]uu_wwUln]tvPnrRptRptJ^`H\^O_bK[^OacOacUgiN^aRbeWghQabQabUehTdgZjkRbc[ih[ihaon_pnZki]jl^km^kmaondrqfvwdtufvyfvyfvyhywk|zespcqncqngxvfwuiyzfvwcuwcuwbtvfw{rxkxzkxzeuxm}n~ol|l|qk{hx|ey|i}i}gx~izdx}h|l}l}gx|duyfw{ey~cw|cw|^ruYmp]qtdx{^rw^rwdx}TinNch]suawyawyTkmXoqauxbvy_vx_vx`wy^uw`wy\lo\lo\loPdfPdfVhhL^^N`bN`bYkmVfiP`cWgh\lm\lm\mq\mq^noTde^km^kmcpr_op_op_qqassassesrbpo^lkfts^no^no_op_qsi{}fvwbrsbrsmfxzgwzcsvgwxgwxk{|m}n~ppppwk|k|l}l}m~fz}bvydtwiy|iy|jz~oi}j~ttk|kolZotZotdy~cx}bw|dy~dz|dz|dz|ZprPfhbw|`uz`uzf{\qv^xy[uv_vz_vzby}axz\su`vx^tv^tvM_aVhjVgkK\`I]_I]_PdfXjlN`bYkkVhhVhh^no]mnTei\mqbttbtt`rraqt`psaqteuxeuxnl~~k}cuw^nq^nqhx{auwdxzk}mmfz|h|~hx{qmmpqtwttl}m~qqhy}hy}ogwxhxylnnk|nkg{~fxzfxznne{}jf{f{cw|auzbv{cw|auzauzh|^tvdz|e|]tx]txcx}f{]tv_vxby}by}hd{}]tv^uw^uw^uwUjoI^cH]bF[`I]`I]`PdgQehThkPagYjpYjpcsvScfduy`quev|ev|RciUil_sv]nrTeiTeiasu`rt^rul^os^osduyanrhuybv{ey~ey~f{lkh}kkj~k~oi~g|g|rh}mj}f{f{h}exqj~ey~ey~lj}^x{]wzpptjsvqqqot`w}dxdxWkvauxdx{f{i~i~lpdz[qz^sz^szi~f{f{Rw{OtxOtxUjoI^cH]bF[`I]`I]`PdgQehThkPagYjpYjpcsvScfduy`quev|ev|RciUil_sv]nrTeiTeiasu`rt^rul^os^osduyanrhuybv{ey~ey~f{lkh}kkj~k~oi~g|g|rh}mj}f{f{h}exqj~ey~ey~lj}^x{]wzpptjsvqqqot`w}dxdxWkvauxdx{f{i~i~lpdz[qz^sz^szi~f{f{Rw{OtxOtxC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222"B!1AQ"aq2#BR$3b%r&CSc%!1A"2Qa#q ?)A8`AI1 m͚dYuZKaF2$ u? *Ñk 0A.zd=OtM ߈t]]lGG&D儐FTJ fL ;# 9Fl;$[!a$=iV훷Fao`)ʞsnAc5P<ZeͻdX qWmnc`"LE @T ,Κ,d}h҄QPTM"1hWIҮ:tQҊ88zI'^jsV)'zʊ(`vjsV;SLO늑9=jPu``۽]QG5}j" 4Q4*g3A=0:Ar(GT3'D`c$ÏVgh*DfGgb"?J&ȐLP爊sP ȃ׽@@AI#Xfh8ăV WaיTDgp-M0ܢpI'DYdXb?c$]מst7OQ@W`כv~x23(I| P\GjaTRb;XT*qEO&56MLwLt  bj9 f*l^xkiv5xX`;EV~X'\G~c&bB"(UQCֈ.2EX'9d E|Ё300h|RGEf\v IZ-WqǨ?8H]r=QoѐbB@ȢΗVkl1Bdm?N⻺]ZjW{HIKT` ( 8隼LY}1RX/W8**A֊>&sV8E=py3psS8DVqCvXn?'R܄㥋eEQ˹NKܿ[h⹾!~c[;沵2ds\;|npxklV-4g+j]&'oSIڟI5Eǿ"b*) *yZWjKqEKL q?AUv`tLLugpj.X1H35_GwwݶF*{W=Ad*Ű#9RiBo|)qּg1n'=ɬv6T\ qZulQghiXLY+]|FX%јQԨTHi Tw pti0&`s CI;Wo?y[Cha3+xdك ?\׳xYbx@ P;\pzg"d1"bx1CڈOVOҨ~uk'((G4_4C :,Ltr?Xs1 z7+/!5mǚָ-쫫mRGGCl؂ tZ[$GYrce7ɬ-k ڗ>AtǿjB:WkMF*;09gU;s߽Bhm TH#2(Z'b*U"Sޠ8ޥX̜$@gz1V:V$~hB0hTg4c =(AsɥrYn\hU^_<\ݾm@Uy^>"ΰN^z՝M[ۏG\|W;vqӥ&k2 I5ڷmlwdr@'CM3#2\vQ j赴$znxZonE@NF[GC48o9n^v*Ǽ{9OD3SLu ȃPAI:VU$)1A_ބLHDL'Y>chNzF@jԖAN?z3~ q֪03C-; %0o[ֽWה$-P'uք|< '=ddN*1DTEOWLb*֮zUHx\qRPT~\("h*9=]WޠwCW*tP TTATi1^c@A`Ԍ|E{/ܽlܼ {>=seX1=8Qn+-f#=@wk^No 2&/-cW͋L~HҲe+*JXIA8dQ( "9^  =kxrg ?~LD "kϔ"sdc~ g%n0k˒Vd~ 2%nν_69f^G?](q3Puc D="*SA?D:DE\t1T81:UzP749|!y𲟊>5vw dA}khu6rfd3n>"'qd_KwD&kkzt {Tڟ)Z"ȓ~Rq71+t< l5\iPbۜsor04:35XD|[ӭN rH$5 w~U9Mb\si|5؋'Fƴ>%]F[b)zp⌈^?<4Gqc|xN\~Líkהdrtn|:[U"Cּci%ݽ,I$zY/h,X3lz_IlD֛j<.cʱ{'MEƴd2t~[Daq_ >+{Ky`_"؟̹:S?zFx[dQA>=uR Wղ=i %=^urDbk_BͰ?5J} 0[yY/#|$("\J`I& $n)@A>Ӛ]Tc'J\F9`Ĝf VCT63ְ%`?WԫHI1Z֡b}O^_t# V{NzWa0j65BOHQ ⨝D UL(ĚO3QGEP*z@ Q^C']]H׊i;g~1kzK,f 69zv R֍,`Wk,%H%El[ d3TW͖f(M2݁mmmQzKXK.FQb:fUm VeǪ:6>gY`OSܷv<ͧ*2+nPe|n{[Ka|Kɜ'Sya#"rk?Rb' +PvRw8af&4W!\`V/t`kV-q]e\K]v5 }Er} `F *~kr>QʿChiњqՒ`1f u֪ƎҷD}:oYgfGQUW%/j)'=?WsrI`0|:鱗j܅Tw룩}FA L▬&ZVR#AXQlBoz~Jjy̻P=֑ίԐT4LR՜]97 nQwPy4ET׮'p$qRS guU "Y3Y;V6r WLl2QP"-hy:"w7Z]@{VRp=擰Z ^~k&Ih\ EsWvm1zV\7 lI2x=HBdr|D.Cy-nU$G3[̈́@'9r*KS닪IҬnO#i^LdsUW{ TV ߥAdUp* ,tȊJʏ@jqҊOwJ `wDL#ۥTn8(Ď "& TT98'jFDǵY^P'LULBzqSXuX}G1֬U(Py1Uj!DGj}fOKb^t^+a03\ƽ\C*$`0&j,^;-#籬m k`Iz_J:V}LDFδOu-(eA9sJ-fb~O֪4=r30>oIZgiX5+.YێH1֫$| ;DH0ا۪ ^mqd r<[PG^^?@AĜ<`rs֨g*CŌz=N]*ĉ#WhD34QKNE]ciLOx?{N'$cw|syhP1D xV]&CbxZzX#癬ox'4;^~s6ldOtvN>X㩎wYH+ Gq~k$˺8>{1[bOn*-T--]s'zM~RND߽fҰlhD9#7ݮRn ӮQD{{8gduua,$bE lTc yzF TOjv>]Uk\%1'jt+Wo{kd ̃Ufض[Vع-;bcfܵhU|2c=& ͶݺzJr7o Jt#8TRׇj^*͋? ?Y;JڸPM3;Dsk ŸmFkf =Vc2QXGSuh]{ŰW*<$~ Fck7;6cԕq^!$|jiJZT̨f՘R=;a`ޘ?]/*m SntigB,UeV3imw O\bqȝֵњgr-9ςe[c75҄UȷKd}Yr-=ˬŘp-z8$ըs@]PGQPVCY'چ(|Tj0c֢V8Dj8P$鞕R}Z~ҽzJƓhq⩉[dz 𸈜1W>=XI$95D@D9hZjt(mbZ$T{DTM_15p&#m5p{VHܚPjp;ՑwBjmۑO^f @| 8zB 2@$Mlkl]T)IiPGF}tĭ'?Ztp}J?qYq'865HnA 2Fzh^ҺU>., A'Fn@c1XY%C'hVwV:6IfUBT*U_\٪wlN c?ڗΈԐ-tK 'ZzjX:?[3q˿Gb1ZM*Xn*}bhFH wy~YܛqTz@U?Ru7U[+kT%Y=PhRxͻ.'K!@3g")Ick?ZrUB 朞fD0׭­p*#kv_&һbPĈ#⚲9Mxʥ fCKq#q5ׁ?3]CV^XgDfp03WzLnmO&ڰJ;`Z$qA۷cnvf.'CuA6pm,ǘ\yq5۸9?)zܯ$f8ZQ8YB1Oo*۴n\`q泘ͧ0P2WCwe@\u56ݮ] 0 }k7Sug {K^8P@|cO!OO߹ᨷC XTGA wg"!9fgQG OP01&xQ0'D~Up h Q"~(b3Bg֯ڪ PH`#cFA{|T"8- 5Q|M:2zvɩ $>93${4YA>F$IL1'$s{ћd>*mc ETGzCF4 #<];vn?Z/;`Zqvd\;pop$ WTKϷĜSL A3_>q&BL,=Fo2eHarvov$\v;~XVs]r W"bH>+7gV I3L VF ˥t/0 z m^1bc;IG0H2! 8Jɥp/t)ǼWH P@Q1&EzAю#MX1Cj18w?ZisEfAVf?O\nÔ6?Zo9}mƻ6, x\F;ԣO8^]I\M#f E.on*s zեU`Ŕkmn[ϩN)t@hP~3ֺ/i;#,9H?> HR0Mkljԓפ:}fA?yZ-Yh!A=+h&ad#ckr70c5* C$|ҭ]zepi#8ⷯj6Zc#{ۯӉhmL1$+X}yTɶ`{ȚԒ*XyN< i!H2~Mkq`+굉@3fhKt$̈W٫!4[χm=b9R牭:.z5JdFkVPaɂ3Z5J&@Ńdה[:v{j嫁Z-z2* Bc殉<4$"J *,cڼWJ>05@ @'%yd Z>_|mޓֶjR,)+#2LzZŝA 9TwLrf3ؠsޤ0{T 4_G_jN9궒& ڈK'85Pđ`@ 7`!ҋ`%*9HhDn8RT t<z>4aw5Pyu@$}yA'Z"xPH>HE"(vF$zi ߌ,1!Մ>h46ce k"i1Ŧa#4&桢>1Kf3\]>2c.{k19o+B]X%5ktʗ$Ux[ʄ"ߵq/6K~[ 9uVRHǽo^럊n9( dm' - f&!{O퉥xuɳt`'tW 1$}k%{el?j?;;8=QtI8⹁km\ ~2+xzLO\&C_tS]B=*b^܊[O 4`i'[,@Kq"kS}/2a )áHZ9hNs;Ȣ_β?ެh>X㟥;^Hj ޢ=d_Vos  t# I$Ɲ*(h3Wܴ4z˶E,2H$Ҿywö' A5oOh?Jw 7-I=~jb޷r]@t4C]B]o)dXRڑ#O5n#=&X^A `w1Mc(,DNsVJ85UeD;4fdQ ~bƞѸzH&1.M?jۥ0$$&n AxYgN@x6۶˶@ "3>=u|&%l]׬pq\-D|R bƞ0;ݟּ3UM%۞nzHg4V_7=gdÒ\ӋZ.Wc_?M\r}#5V|OD."ĩzdCxZ$nJxW?ڻ n6_RyI۾Y1ӌ٭DSqTfOҺQKzv)"dN+,Ke.[V L1vaUaMjPd{Ĭ.+/1 mq'S#IqDm^ {ʴZϿ}s6`fεA<2.c~QXi}VAO CN틖L-Y2$D/6"Tu!^)u-(m9b3S^4ZOli/L[_131YO5,JHAKx]]EX 'ZkIzIl] OKjHjrަ:{[۰{pcS3]g>sof>"s@A!MdWǀD Д DUUm"~EI3(%ԉ(J["{*,_Vg?(ڈ1hNZ\Qx=W7UuJ\hvxSlZp͸eDW|i d+5ZHC UdT35y\'fX"]Mm< . i- s_wW6#H)|u ]_k̵-^R32; V"nz5~B;v&d:{7 zX3mn= {}^HX{{H$ךn)l6|W9l5bq*a= ^k?R }vP(֜~ut^i]aTs]VUYہ]BC0 Z,A~7s]ϴesRuN"IyXr ~UTG5%̨T#*W-藶0$fXN`}A{ܿqUl w\}ֻXb<[eÒ},Lg {4 |ל&ڍZk6R$kԮV3sBBO)7kSxE0jOPSJr>p^Ezھ--,8&ّ[x.tk?#L5э-y8V0$-0m}[lj8<8֡1%`jKuwnGy5GV$CA߮ ~>1_&YtK(bkZ__rin,X ҋZ7-Kz]`&YaJ GZʅ&[&GyLI";0p= rx8$ uzS6012;UD/4,N;P)-Ԙ2 35eT)88WLF5FW\8f΁vzА<Dd{y!Dm4ePL * #fm=s@`d?%H@FA ̉?5bY ۖgTcqDS2cq(톈*=fI=ʰ":=@*Lӵ@AdPNi>+-H4n4ϤGc;*쮱vdA\˄ o}SIOs\XU}rKzR%kmAK-3ܲL0pADsO0⹺s#V@⹚ ts7hL}3#ߓZ'=+gt-zI+=Ӎ-oS1^6>w+]9?yƞRԒ`\kvszej}.a&1W3QjZ]2WLM5ǵ;dkƢҰn3ۀOd=oif]NRg2]4;S;An]egptnk< k欱fD,^C-*-$1:Wc ^U$iw uhH5ͿRvɂ125i!u>ԝ^rIk愼R% J|9R>;rLIs;>QD~ǪJ-Acp78>kU [ 55_?5C)MvLgWӶo]1*@즚ݬV2֊K6@N56W}F!ɷ|ir7['3޾mF Nb L{jq-.ȳ+iFlg,>^ +x޸Ő%"&9vseU1nH/ju=WQ.wjHA1[>ietLkR3kxeaPBzEt&;M)j6цZ#[T'C~DB.[t&7)SE(gozm^ݽp8Q̌Ae TISH#=oӱ1YȚV=|o %$ک|ypX;u$`i/G pA'U}%$AFDLdUP\3'@ݸʒ=3jb(zESR?Z\@FD{"nVvhI#P3H䞝޲TON@ 911DJRǠ>j<V6*FDP+H3xUy#eϱqPU #gD&NJH? Ͻ2UpqV S {nAa{@I>9-@V$$F}^4D_B ohXۀ2D'?챧U?ĺ5t^fFM`q\kѿN柢z]ψ^=x:>)bL aPᣰ jOZG{kWu \?"J. ޾_aB^FɃ?}7RVԥ'ǿ/퇲+D8S 癈#nHuO85Ǭ1dfXOQVcHmʒI'jع0;rzv4B@8+Ҷлy3 #17|W7R?~+|0żK۟&Q{),N}z 2܉#߾mH'Rg8w#v%P®xCEh0g(,۾j!{fQ\UDu|u#WѵE#|Ġj $2ph2i]BiGxٺ VbV[w&}gYb3k5c7ܮinyr#ںI&HbdJ`|zǡqocVCWQqo.(U?"[m X8?s~ gR +x=>nqO"gN:uM`șMoE,eAQObLjI*,n^E֬tĞė\w0[0YG kjXy * U*G5Ǜԡ]ŭ{5C"y8M 漧%.H.=SF tV]<+&6yۇA kn`hiJײou@ -4OFj˨^"\~m1y&eAam9TײŞٻ{SdIݠ#fwpUR$46)U0`>+/$*3O޻A>^B ~z_;tw.12K {DWH޺(cj9kXAkE Cnvݠn.LڹZtQ\㴁1Sסmz7`I&/2P+mgq3޺ qZ!F8ӭ z+hV FWϹ=.u"uP\Ų`Iev*L^H5w.偁Lҵ(!Ug٧\wxst-yͰ 0 oL_t>gn@z2 = Ř#Xc0ŶȈ2~L*qOZ ޝl;HM]]qyݸڹRTu.0p5'LDZ"$ɉmʆf' :~u_lJ urx+sMf@o "X`Dc؞P7F&LE6Xn*jхvN@'T Ͻ1-Z qH J1ʘ3vյn 0;g e~qZ <|6r`3Qmqjzj?ӎ839&Hjd5GƇk}CLwl;gu`c9_K镏g7+v A(l[TY O\6j/9$D]{: 0Hh^G5j$A8)0ybgh&Gnj-=)&pv6rk|t߷Ihre ?4ĵ1f)״Ad!fbɴ?sZukrDZ;oK XH1&ht)lLdGjo\Z,I kci-j6zeFal { ^E}.S j"7{@U{O|~k-{\rʅčZߧ=FTRmIDݹ:z[wsqΞKs۵Z=viZr0z}ksQ{GA*<<^5|6ūLc1}?,exjh}'=ma!j"k4K\+A`r 5nnׅ=eC\@> O|ļd*ɓTpV6bO5Z}xӕr0Wb+%dK%+2(ZQ{d,j.I:&=;T0#fe[jTnc+9RX fH<jq0Ἵt[aǤMlF$ɭe-kbqVe rbko4!1ZhӃl >i#56q0s@o[1 W.X䔞`BQBI ` Qop&\2 ֝i@HVIq9&P1*rp>N R"ߴ }8+X;I8花1VtJ(3:EU2f։"aJ b IjE=*51TU+FP/+tǣ$hhx$"#Fyңn}CB(r3VBIzЇ Ǹ] 'n w";OH7!%LHae.p ?PQ#Ҭr0Zc󥄺㮋R̛AzU>-<8p,ar~~2zV/NbOzf\@fS<׵&7PɆ D/o_f $Oڣ:1=f]"00Cq_kiO\x+ͧVL϶KwZ8={bmQ@HIC\;b$:V0Tcj!D+cY8vVίxWt~ 9 ];r`Ac(-}5I'mI#g$+Rٸ`\ zDgvLLUw\Y# P$`B$1FM5bv&!11VTs欏S %x>ǭKk*R6(boT8sE 4PCgf08#攀 ^YuV& gJ֮0Pavڅ``\rjUq6[9+6ݖ{WPLG[zX3'#8YN K0k~I=| AŽ:H-"qIqU rp{V1^U_l)3F+i-/^{ZqIP{קdom *+A}~jbp;5_sEن@"+꼿 6`L\'5G`CHȯ _&xՀ- }b8r@3&qߊ@G7|wjnjnJ0I+¶ܸy9V'"<'AxCض bOɎw>GflsN@%2{h4o⺻z3*']7xi/iY6S#E#t/V lah\|k瓧o74~ Z =kYW3j۩nVIKv T-iNLddK=3Xwdjp^bl$Hx?w9 1s^T-2`^\|ۅH޽ɢVvUajB=!Tfx'O]BG@z<%Cp'wJJd(if|)ð}O}J9-4(`% ҬiQ D}>iVһ\r[UIbS"i&ՠ@4-Bh)K)HɃPkeT9#&y0݋|JzF= oiWtt?hCYgMڪJ@;L-R[#j""`tCbA3:Vctā:ՋY ia)Bբ!?lGLFivXȭ-j*`h^܂v"@aa.A[ * (|T6mKCQ1T&n-h(Q,0h1\* s{ +m*dkom`7IGrwA IYVl=Imygy%cRRJFgTŵ˻:rf^4YmxDV;mĚRHOPGjט ԭPvkR l䐨hؼr7L {Gj<EN  Aޘ^[ [`N`F1ZUaȪ{mZ۱*=K Qޢ{ ȭ37\gҠE6!X>/;vA<*doֈPP1]Hޒ,:Sq'l$ipvPA9[ps'WaA,1ɓֶ; )ܥA9͎8RĂ@^muOG5M3sT5^Źu(Ќz;n('aҋR;%K #饭i̕#SYlyl5W8 elFetZF`J< R"FG6<^֡`!|i"9$vJbKbjsqV9/DawMmn cJWK'$ژU6211())r:jQmW,!*8⨽ 0maD5ChrL 4eD9DCo ^ Z( mN231ަ&}28Ԣ@?"KimXs] ռ`):˩тO=p)œ9Ld nzXoyёTL@3Vl%W+6:ϖI0M~r & Jֳ׭oME'ۨ,u_Pkf~55qٌfDWEຟ#N޻um8[SmD1^ f=Mvi*"8g ɥS}}f{>]qoQ޹[jX $ab\av';WֳUliƛO}Czfq mam^l\`Hi.^>ܱu~6ڶZF51eq-#۸tfQ\%7*OCV'O }/^-=7Ymҭrc15Mx,{YYj#0r+z<'F \+@b˶A`ZcVc3"zbVddIq\Ĺ@ߩs&igj:V{H;׍:X {wmZ1vkZ>\9?_mܶ֍ O<*enGHjݿI 'OY}XgIh 3TdȫR CԼZfbq\>ŕTdA pl ~ [b!c'r>Go/#؊$![&mzI,eq=ª[`uJkOA:۶6bӴ҄͸'hr12]H`FhEjBH;"ݠ7*v%Y_aj#`rL6*`3>آM=HU1NP< <2)7mwrd>6bX9 ' ~-J7DT9a'pn 0@sȫu N^9?JZU)Dg*ʂ%wbbC/ucTd[2RHRCj ސWVE^F=u _A8$YX@LfdQm$dd 44qM_RŔI:h\trdsT-=@aWj/!N ʴ#hGQ3;otjukj.+bDvoj0`~8i56Ê1փn۽ծfF:̆IR"E $0ePyeYfW@k>j[mĐh†PpFi%yb7#R0f6Ș?^1Cғ9=ɧwY ʧ1BpH0 ֤02I6WG\.Ff+\I^1O:C F}O~=\ґ'#qXt$VmPH؈湶 ֲ}5_aL@Q=`2h/'=fx;y.A3!}"?jj7k^ɱl R5dA#DΓdt3?6Zٜs*݉OY}*kPQVIS5{b”Dh'O35> ~LAE\'9Um\2ds&wkZAj$zu55oV{zՁqNv^4j*i2A^(շO<)i% Ē1Bt궝 bgiT09VC3}hk%P$ȓ?5AeY].lR vߋ{ {QwUX.@OYiHE묧e9`Ăқ_$$ nUp˷,5 aqaDɟxjn($ mRd6N}b_$0,Yq խaNz#L|엋oߺ (93O{弯\Yznfj5/zv 8]8N5﹣R4skZ  {2_C 8=+- <'5պе;?r[uYZa #֥GR-{FR_?',qL^W׼En>QmY{,9"/l*Wd]vu%nqNF~Erho]j,QR3e;= z='/FLt:Ĭ8E_c>W}W6׉-im"6ڸqL=`.- =WCWٿ 3ڹM(L?c3]Μ-XPH8SU7O'Sy;#fd)g|3a$b;Tmcc4Khsίms岶PHPҐv3+#dbɀƶX}i_qhQdmGdsLKIiw(oPJW`Dc"X1ɏP"ڲ<|*ʦV]ůGy.*s=DYvUvű qaLb-39J˖( 6)qa=M8*\HgGBthC\MN#ڥorcs9V[y$OXpeʱv'y4X;HpJgndPB,f>TI Rxr[s~KXVn")Xy;Y0@?J.* `&ja R-rXҪ8?^*B%cjEr5n; 3Iz2CO 4)/q\ɓ!O\j B7KcqܲLހ7ށrfs*пF#ڈ*#=)D9 igO#ޭ-\V` Ād Kk&A"\=U\ rDVauXjS l%WUl Dq:ōpc *+\ v#{u\ Hbn^TP#I"z⢰ayE&dh4ʒiXXXfbzM6$*ÆDԑu_imY|x_r+H0 s4eۏk-aH_k|^'R>I\x{Ct?(HҒ,'c4#8=h4l>qr<h_cˎ] TJޙA֙tl`G=kRcx6wk]b*` elNӍ$!|-=lb9͵-=~h P#A4WJm $?/vH(|-R$뉪,k$ S;A`DA5}mS#rjWʥzypnprCm;q'']c#p(EۊX <ʅ ybT23Vm[Krb Hb=v +$)t[qt4-WʝX9?I)}PǰGq\܋ c. uI4inijm>I,@`k}Z s^KB9'yPsOjv5$ uYžHKV'{,kե†D0][Zm]Č{W+m ֳ6nʲ+I[msI} aOӶTmv'Lm$x+U @Apu0XRu O^5ugIbOQ_q[$n=+x]^Xmt"寁 M{wDLx~I5JR{?֪;vzO튵q^@3Zڐ _>ZV2RLIҖ UQd/#U)mqE7lobFpL@F K?zdJ67H*$ryکi=ϵhK@oQ%L"'DU@Ў `5lu FCKF1G$} ny9 {RjYb-TEv a9'ߵUq%ˍìգcR|fݙL)۶۝#‰KgeB꩔`hmh*? Ow/Pމ aI#6 !DI֛tw⡶hl1Kwt=1EݴwP2G9l\͸\4vo2JGwqU[F#Ծz9(om`sp+g)+0\$zf^;z_"r]i[zGZ]M>ޗ. Vߎ8?|Y=*E}۸?ې!L b˙;&'≙J>^g&hTd܌ZKV Y^B\Ɋy'Llg bceaFqQ0Kշ":~UIs`KjI2Hv0G&:ŋ.`**31`sWݶv[=*'iL/̸4;Q""H I0;MT,?1J/eFP`*ذ@'tiޱr=,b"Yjͧ-;H<(+j˰[&3#RzѲlۮı88jA[knm%W[♵"XhD^ ݶ#o'ڂ; 0g>C\ '1Bs.^GqIV3E.. $`Aeg߽!mJܹbeHjꋗ 5ڋPB@8 $v>[a,ޠX+e6Ǔڼ׃j-fʒɎDwVj,c3{`<3NQg-ek{3Ȯ1 {69^ [S(Dk&H3]:ʼaWc߉\uaTOS+dhϩ0xvޗtilh%@ 9=jKNs4]הm1'A Uܰ\_ڶcVG\ϴw?D}+j]6!*0 滞5`J"֙H'"15g f-ݽrȐ%~jyhB̓: ض䓓ڂͳjڹ";WY$r}iU]TK1ۚb=`+"2(Q-\eP$m\Q0h61B+ߠffw0'=8sm%[)f*gJIl a,hYc!Zq4ƹGj;nZ+4a?ᗒ; mKUE S-R*z֔s ӏl)v H&m hmHMwuc?Jj-$êIVzʒA$0(;]# (vjhm4Էnh© #(Ԡ*@9Ȩ$EKuf"JRPTp94KmJ2 T@Tla2* kAiA5w.o5)_kf2HflՔ[-0'zF#Z,ն[Eyԓ{KnUm2S&A=`B$gڂLRݭKTu $ci *dNJmFBlUHMۣI "AK35^Q)W^Sdu1Ҧ.+>mzkB.Jkl4K6t!TfRBcM-ԑK݅ˉ;J 9?Z-dFܹ=[rQE2HҙȄ$)vmg&+3[Dg{kU$uʻ`<+bm-1=Rim^ 2 A|6*zT{B~"NO6ۿu@!G UsOl:G`#qJ{tⳡ$cL(E OjB6܋@NH]V'Lc2#wqiv`sUfڀV CA[XIiA*LZƉ2bqD:w);1EO{tD<=.RZ%ǜc#Z.w8Bc1VqT:*6vmFԵ-츇veY]U,\Ak naۥE}qR YZ?㗎(Fd̎Ʒk|yhZ 1h 1zk7$: #Syn1f3YΖٽbX<ѵmh*!Fܮ lHxzekmZfk.ZUyHbDn z]kl[m#kt5Vn:odnV#-k<⛥cֵ7~jvUGjƺ}MF%VNgu|7@t&hS[^~tcՈ+bI9uV0ȥWZEBFkM/7phK/Q/l (x%Z%ꅲd"ۻX(n#ֽ"qv-f&L՝5Ԭ4,ޢ2@aGxu,iɩi|bC+#*%nqh5M.J*k7my{WL4Z}Cm!Q}jZ"` ϸNN b#iGKw M;ѣ+jyW62*f MVp1Bfg9`M rX wfjPd̜֦KdĔ($9(tBX`} 6Il).I'E-,\#+Z,_kX`1̅.,$ ~Uw r݉lÃ4IjY"ëH257HmH$OZypeFAj}GTFp>)7Xix zNl*2:V`r+e6iq<imCw}+meIb b2#-g5Oqī![P4d:ڔa\*&Lu m,?ځ֪ƺ`( }%*H+⭥= eA$N/\j⁺`qb ()P z=;`ۯL\fB1`Ҙ佩b( Ջ!@DE\O'+B+똛:bc+;:h.CJ-F$U0>p+rz,#jP1;B$(X,Inf}@0?֘WTix)+ =AAl6xiۋ3ޘm/{^\FH:qR+3veޭ }mZaKPք܅I#;o]x,W_*P$D WpVȀNjl Kln*y-HzdoYW 0=Y5@Zrٻ1сM[q< ODu 1V!ohi1B,rBVqLV[[YuYҋuDuTA(Ibg4V;O~3Py'hQvǀPIj[b # HKZ"_v=mUi/fUY֝w˶Eih iRtζV"A/LXAΪF9߼[ EBK(D.BIl}7& vGbTp }k;]&&-]tD*ٍq6x1Jv";i^Dm BA3y5_PyyΜ.2)_,g3B_0)F\A-jEAkvͲ$y8,w*!UfGJj mX6m HZEjuc;YU`00m]%҄s;Ղ #8;'K "s鬭PӴf{um- q#%|ר:"rJj;=亨RI9ɢOQBPf'j5-ve=^R\Ҧ;F@Uj''=*5@1ARӫ [b:Ra+wC̊E˾p};-+|`M%Tyɀ M0g}ҪB`S-(&;eaߦ:6mJ &jʳ! y 7z'[-q@!L0SV =DT#:?ÂIi*9k~z+ƪ跹T ͻ[n#Oq{_▴%f>VW&f>m^eIw-ߴApY[!Ž ")77 BnP#үXD6dSl\F4 nkwTJ"m Y1V]0IiV8a-M)FˈΊaH㎴ KэŸpYEfoomek~Amݦphڄ@d'1 Q]6{-jٸZ)+ox!3ڠuˤEhdP[@I'M%+0cO֪Bv EYU̬H=Bpă3P\ʂ( Qg %Ͻ* Nl#z̬R9F{w$oZC vpyfªLDGY@7: Jc&÷. Mp^pGJAh`[ v7[\\U- 0: |ېhP&Tr)mgШTrL@)` $~uk "#Κ @-<U1֡zⶽ#E(wcFwmP%I Ff)Me%' GKt~X{RK;pP 4r8(&c3w̜~d` Ն2 AGn5To "Ք܂0s`Q$RJ IʟH[`ZQ|?8NWp UmȾ+ŵ%E@Pf ŌU岲n2ghm+-eZi'xVfR"$~Bo4!khEn6`?rҰ=sP܆ze"I2#ޖ l!L-fKjISŕ/[N-څY@bqҜT]lmc8Ƙ.ۅmŴR)PnQ@mLj,DqjJdHia]P P9}S}@RADL~@Q卷bvS YiSr%hsrU93Ɉ=(m]K7ޠ#.H2kA[Tb08'hZ<ibbmv'rww0}y| *A 4n8]ͅo#ځhAV=pnvj=aAq5%tool8 (-[ y +i 8kC|-[R?x<:aoUqB\ Zum/&>)*1PI#ڸAE R ~JPǥ ß\b=- ۸{R?8JF@sBRBz6֣{D#I-'M+n)jsea-ǽkpm%8ZN$bLqCyM~eXX<,j6ٸh* K!P1`mܸm/ (A AW=Yhz@b6̎i6z B>-ޝ([rh]B\BDU;zQWha$ Ӌ!}9ȚfB3\p'sT M,N#UveJڦ=S(^Jf~\B۵B']sқgP`%2H7T[% $VQm@Wur A;z'v(c⥝2q{o"D*ɴݴD$i,>d7$%9n4H ɚP}2i>dC]+iV$c4?Fȶ1ӽKtyU^j[rn 8USe8N-Kd)V`fI?J76|a3֕r%H$~d%c̲Af'h};%$$ R;ҜYx"dMX_)i@ıNp .i9pK1ڑ? H`B%Zpy.R'oNOG5 q]|l8$iLa%Km4omh.Bi&wj5mA6.gwn0 m7"A Z|9r Ĵ(A($ݲi@b1ɧ4tcd#E˅f$9k )кn kF9DŅ~Zݍi\h.%Q#B-])HX BBk=׃' PԚ֦mՎ=A}K3\)>Vvm(U Am3tAmތޅn"">{Wv5V n6&[v+EAbim3 w--c#H6ٕ@϶*2+BLKBꛁ+ AKrZ۪z(Xݷp Oj9lDP2_4k/p NݙU+8|AkwDSi6eZ6 *]*}Vi#8+8Y:.6-jCx3n"]owݯ:UP}Q-5:4 q @40,ơ o";3̲nB(Z{I@>x"_P] HpcQC v"djBT G&-+*bhIfS4PQ 0Ox=7*U=>(MU]޵ѭbTI g[{UvxPdRܳ轾}R3mQ9hEdd01yU ){nlnU)#jjcHIJN*  i\@he$n;w1*R32ɨbgq-Pt21UnSNiD3?P8{.?;Ndܷ, ZqO 7.*h   y.In1_5UO%8Q.]#B 4ͺ h)!bI-d"zTͫm[H#3-\L枈OR115Hktcf{Ĩ2Y"lDRx%5{Nj> 2gxj&ҫ@,4-Kh`1hU:3k76Q d@ZV$LZ~ܸaa8yw~.?*(C"۲my`\F`iv sDze0'$iVmp=J/]7.XA8S  sK `"/cE$Wf̒A =Bs5>%,)}Mn': j!U3hKqqJ.; U-)טĵ[ xjULn'k5;Dcxzrsn qJqE2Xq޵-nma{i= m1Ձ:X}EAb]9Olͫ%W{nW]m-׃Nb9W1OjF-6xo* *)D,v[%=C#sP4 L:뷴*8} HR ֜*>)S-*-%L3VpXkqކoK?nI M,ѥuR 1"{SHV_7@cu@&aRN"kmXi_ښYhn]!"84 m 9L3kטܴg+#zOvHy\@3Fmi,;n6J%O?zj%^%:mm~Rd,8M(+ñh"(&کMOHXI`}Z#gLzPݴ/[dS{6}Eue&?5 :X$|>ӿEAȦ nj-AuPvڻ8j4mK0*#f SHH$s#.X$0Ș =B~Jm=b{₶imD@>ޗzߖ6=\Q鴿yc-adF8ϨjС-Zm8;G sҸ2.)H쳫v b{*bV`3Jlv8țRy; ;38?"o,6f`[ޕ[kFڵ;gL^ʅW`NX…smk 52dqOܹs{"3Qn )qj~b!ȌJdJ nwnm) -DK"],ceŲ]I$;ˆ?Oz;VV+7 9k0eLbX{ qcROLk7y}0;sI UC֜H)mmGnBrną*}9kXbim )m;$-QW#5< 1ɢ7Tz3J&]77(CZ<-WE܀N̞WXj IhcZcىj sҡKw g;?uSA`ݫ#.\Ce_=@O[Z qo0@(c3Zu]#:մQsX Q{XBH#kҰwUm6ݭכrS[uB-% ROրg I%@4jƕ- ҵ4$)'q2q>YdC r܃ަ+'z`Qk;*6nbn)b-!A9K:nl->vٕk;^ F|p~<T ŷ.1^QmsO2Q$V=Uurӹc anyRvg8UTaqffLu^#fŷkWܼc@Bعl$\oZ!J]# :P==Ωqx9{jeJv-mbڈjt(p}zQ{%P"PvӸ(-kj wbp}Pu {<.fUC}hf ),t˪ jjΠI :-X䲒J3G-Ii H` ;.1d`6FqQ l=X]x/>;uzH`BI@hCI"lq"CkZ L⥽C8T^/p09y~qc@ۨZhUWS"Z1"N(6(HXδрC_*)0 PdVIVq ) P2\7.\l⠗.a'i9xC4dL7mr"jn3N } MsbI$p?ַ(*wbzWpaƩ(wɨ4$ ,> O-f,Qɡ-,x>fKH!{=J;EF<.iܵʬ">}ujvL0ڙ +lvv3oy.o)3T>N@*:9nA*vֳBlKpA8_ediB;F8{ӹI< 2Kbk˶SZm`7RZ$g?Ҋn/By(>{]mDz󢴩Ъg۽k}BfsVv_0\7 bE‹ ؈R zàYMN SZk&9]!+2u xiJia7N~$NLjos`aKAQRxjaP8W$ o~ۚueQ+?Fud%:i!;A%NOiydI-vmP۰2 & .ܸQw]Pj[\O<~ª/MƳx"EE6މv'aVr`Fx? 2[T[jnY@8?4 L̷֫-&Ĵ3\p3n0?jܷQ/\8n ([%Lm8 3#1ޠ,H`Tbzm:[LkWE lruN5Az)a-)n#HF1wdCi³++Hc]+Y9,:GJ+4+[[hF 22Gyv.;XǵgMsh>` K(. zbP GJק[Vmܵte iz#]0z*`M~kBzIuWtU[*L:֚-^dTҖx4gSd5Jf8bH@tjmnfN{caf;3Z gUfk-0D]FN&`Oza)vT6SWݫL{ڡ+ ^'1{gHߊai;A*0,( 2"PAP<5Ȼ\`-\B[[vYːJwva[[Wzҽkoh'Cb#mChm%yi $$ݸI%M KRA 1B-*#"z}fѫ]mhXnbhlo1$ {P.^tlSjܔUdSHmZZkw[r*?1B`o,Pڸ&rYnvh$*tw )GZ߹x xdԓu.K۔bDFIi#Ú;<*3CنݵՊ+, i6,[=7H~)'ݕ"=U+ 2A3KIuYP^u f`hzhŻQ9n0LO!ifR"ᓻEiSoISʝrch?-mXn1PjYCXܤ* l^@7v2&D̐Wczd%ԫ `ؤ[Tȡe{\,ZLM5AUvfjVF=.o&{>aV"9R.ݖٽl7=(<10X %٪ nuC }9&Ըғ2c'?),>`&sFeBm/޿5f2"t(=`RjGv=:Q@--WD$RDc)p9U mJn:۶ ,;M0i3}1O%qThH?;l7"?U%Zfs}E0UM (YwMֱh=by#>f?ҎҫHߊ-@hG/1KZI} =% 9Ue&=EYLG4Wn;{Ե"{㰪̘iKH8zw mn E̩j@X:%-bJH.am $&V v4)RK0#AO[VQ5W5)[,wP^(IUu`(6-ۺLwζcn>:#SwSz':ӴvBB4ǻ*S֛sRE3. I Bi G(d2A+-6z*3iA F'U"8`4Fy^. zT`Vx։D)200:TmN$A| S[VxXY_D+\ 4Oۅ,yDBt+f$ot#&= EYݶA̞%`whd޼i"ڐ9B)+t:kP @X\s`o@[. `^/p,Oڪj.1RϘW֊;hv ֳb}D.Ҍ8l^X E90J_blkv"PmOSc֘VQep`lPqjZr}S'u c?)/i-pN/c WuȖ6[]ye ad**D$3\B2! bK nzPYնn! ukAFCi)A{{lzW>n&xansmUV1ךms$'@c+c 4Me[ vLHs}Z=^SJq-yh\DKjt47 \T*DMl izsWp\*ʪLO$N:\̠=KS + zM-.Uڲ̞9Ȥ&*fgzu-;vwYSQoսYdi}$ ~vK1ސ}XB :"f;aZ*<KGZKh\%d)Vi :D4*}H}0fZ-+{v B'hM$pz{PC ꮅL1^sW`D&wHuL!ژwX4q ȤY/FҤ?5-۷nIiSYul}>"i"~*a@+cmS2WmQ8hEIlGִy[`Yde@KrW!AZ TLՍ0 D昧*skL kYN}7rzַnAV3ߥd[.nF6%B;qɤ; כ8+uUX(bB.Oe6rvyueUoj(rhbmk8^q8BT3Ly,ӱyD(9be@A!yYn;@0E^I̊FNN(zpdkR`a\(3Cbڕb) R$Tƴ7˸. mLvMq%BsL /r@=Xu[Êtt9eXd?4v,ǻtIL]BXHӢZ7.+ksuvD繺;D q@/JnŨVn`䚂E$[mj+Wh`yKfo݌gh]V2 bh_-䴞r+"[[d 5BՉ,#֦.]Tmh~f$20-Z {JhF;0Cͫ? VYm؟Pk5˞edz / 8A߸B/Oʉv@zJ鯏2zqjp t_9o6͹<4F'3R!`j\chAS޵{z$IwE/vv0GX4].6B(1Lwf$t56g ]{k\]L5VP5JWhǵ1+qZQHPŻE.Fx:q&{z v.Kmǚ}y$yUS*I;}:-K߸ם|ޣYT%bۗIfڪi y|gCѥ[,`vQAU;5JXҢ̒=sjZMj"1'ڙuNݶӂs#Uv[klvklO[H1i-X`&.[cZ!ؖ\l`PIv˥ڂF'jo;wLYl]F(TAH@Q%F(i' :͙-zp?:!jW#At%w7ͻA0 Z-EG^Uq?\WLk^7.@ ҵzo:޼s& k[pá(,:0܃փ.!{mdʩqޅl-:-2'8x5CBP':#1D.҂Sn_qڽ:t7  B m,g0Ēhond,DmIؤm#qy8%q>tvQ,;ⴋp)jNn`2G Z U0heK@Ǩ@;#;i6߽wd9HF<ua.V 0j^PbISTlKmZYYxsLG>|R fTfCvjZn:\ٱma{2xiyL O>*5jr0 wϫ w\$c+z{2'=Urm*A[-SR֦6Ch>{t.i!%Z-֭`=®Xh-мh#˜cW"bF&ll {jnbJDQFw.Upx7ҵ*4/1569ZE{yk5>d2ǁީ[97wmUEgxz&y-U5m'D*,M$4Z[۞f#Ψ2 3B. V'S/הlT ꛣK^[Nx(mw^zNI=bil_}qlV=R#cb&hL7OmB\֣ڀD.^@\[X0Rɷj/b(jՆgPG^(FCEvHօ:kui;m,Q>=YȤQ[v2&Rܷ(UǶ(vr64%n=锵ZwAb^dB\`~Ŀۘ*$VIʴd=v),ߝ3^ݽyfB] mRհyUpp"iWfPHM7inDMDk]sN=Vʸ ]$ZY{v"9`8MgxP1k;lHV=;oN0fʴZ6*2뗯9l nX_6/'!}7&>e74iԳ%9m{k2bkvƑm-қIi[%PRچr(=\1s[Y[W1ۊAPL47ߓ#n2[,$ uu+c,:ZtNyB]VвĆߓ2*yh+%qWf.+ ȭ$+w;1!:WpdF{*_qG@j:[*p1W}VlhgDԹoe X4W p)Ri[q;L|iٙNc>>] /Length 3600 >> stream &<  K`$`4[jD+IoDi_ /_ /_ /_ /__ /_ /_ /_ /_ /__ /_ /_ /_ /_ /__ /_ /_ /_ /_ /_A?<5E<< <2_wg@ѽ<@ A x>?' ?'?? O/ _/ _/O??'AA ?  f#4"`4f(,030,`f 0  731l 'f*c:Pendstream endobj 16 0 obj << /Type /XObject /Subtype /Image /Width 2500 /Height 3250 /BitsPerComponent 1 /ColorSpace /DeviceGray /Filter [/CCITTFaxDecode] /DecodeParms [<< /Columns 2500 /Rows 3250 /K -1 >>] /Length 3600 >> stream &<  K`$`4[jD+IoDi_ /_ /_ /_ /__ /_ /_ /_ /_ /__ /_ /_ /_ /_ /__ /_ /_ /_ /_ /_A?<5E<< <2_wg@ѽ<@ A x>?' ?'?? O/ _/ _/O??'AA ?  f#4"`4f(,030,`f 0  731l 'f*c:Pendstream endobj 17 0 obj << /Length 768 >> stream kcZZJJZRRskcskZ{skkck{s{sssks{{{{{ZJ!!)!)9))!911J9BsJB))1{RB9)1J9999BJBR9)ZB9JJJR1)JJ19JBJ)!J)!1!)1RRZZZcJBcRJscRR9J9Z9kZJ1J9cJZcks91cJcckJJJkZJ1B19JckccB9JB91c11s9)s91s1BRJBZBJ1)s1)!)119)1!{!!JZBsJ)kJ)ZZ9kkkB9J11{kck{BsJ{JR{1sRJ{B{ZsRsZZJcskcc{1sR{1ZcssZ91ks{B1ZJRRJRkRkRs{sR{R{JkRJRRJJcJBBkRBk99֜9ƭ9ޭ9R{ks1c)1Ɣ9J19ƥJεRc)cRJ9)J)B)ZBsJ9)1)R1cRcBZZB1)1!J9RB޵JB1J991{ΔsRJkZZcֵZ{ZRB΄kJ)R1skJ)!޵Ɯޜ罵Μ1)Όƭ޵νc91!JJBZkZZsJ{kBk{JsJs))RkZsR)1cs endstream endobj 18 0 obj << /Type /XObject /Subtype /Image /Width 456 /Height 359 /BitsPerComponent 8 /ColorSpace [ /Indexed /DeviceRGB 255 17 0 R ] /Filter [/FlateDecode] /Length 63628 >> stream xc[u'8ıiv) /^ċ|a .pV%QSˮqƪeGRVv۵mugMҸyM3fvv;Ǟ9 mK?̵ x\=|?ߏp˭n9 ~2yg_oܲ=y{ߋЭn{o/~}o<O[so~q~q ߁͝Hl4x~я殻~Cwu>D]~ wz/;Wܩ5f[7e?e7ngC1z] G?ixz ?`P~ ni`pz:8GH~AtLonw<{t4'_6>z: 7a Ta9aPz# uf|㟾]ǔ9\o̞cg{u]cO]{g펉B򚫁vW_ĉ+t}w:k.|`khpD#gD'O随y sj](z46_:ɷ {P@eJG¢{y0:{a-UT@',_rN:.k(vT3::zxu,~K6n#N;'v3ڇ`F=|#|OW#_,Gc[FRDE&1*"DD'VRb'Fw6;}4EWk㯉Y'Q?eI&LǺ\v8zm,Q%{>O2/K[=EE]wY#'WDkf_:62,aԷyƗ>>zv{J|3O7L|..^tl'e6r%d|o 3 \KƐxG`vk /!wM83!c 7^vo_f|޽(/ Z7ijr^i#6]ћ/̞u5&T5kD|UGGb{$hsfޞBn+Ѧä)h1>kTjʢ+eRc6oy٥ /)?3{ {#~P-wi&]ѻ䌶,kĨotGc̉ӂp=JpƷǂ\$HRd7֓p,sN\LG&<鴞Lx$sNHtWx.CϏ%kxN55:ӧ[AWLO?2l8orRrҚ kzj<ih5zNi\ ^UK7 榧cFyp%xKϫȫ΅?y [Z:+~GIdKAy F~m~LfqX\.F(e\YTx&󯩅bX4ۤͥ"˵O"h>O驅t>,IM|&nz8uȤĦwhhKgÛeD -L+%Cv#I|<^8݉:p<eZO#| '=&3,y=;ޒI˛;A’H +96Gg2᨟q Rmڿ+T;kbJX[^YY7[QY:L׬$m:vQV[aťۖar:Vei^8hڍëze)NUӷE"LIf $S驽6./-+Ucb$$,EY lB*a"Tbғ 9NL2 to*#āE/\\@˄ߜ.]ӃHkrRD:._/8*Pz'vݞmTW[qݾeuΠCǚU)۳q5Z^2qݣ'|vJqhҽV-Wkx,/5-mH#O ݕ8002xRۓE?% #EW mJ ͭᜆGB,$ cNZ9&P }l|@Q|$ǃZr+4o>_зtvz0 LO'mNgAj>"8&3d Җ{Kkvu݊CtfV_\p\Y-֞^ '/t[Kg6 @,K#%Xtuh{>9ס Lwubft:rR҂tzܾi6dXI$sZ2T qZA1~ǢOߴ߷tt.\gaIB`ly1g |.KiZyXPBm@˼w! i.F8O펐S$,Bgn4pӤ_KFI T6QL8ڶ-8 ~eˠAlXN8h洄ea})`JiN&B3%QR76!OO8$-ˁ hY='c9E4557i))p͒Y:iKQU1t<ÊxVe֥Ӧ x+B3GDȣZ=ˌ]s yGˆ|mz1kcuX+7^ꂧ|uasYZ9pnHi=+%lqT[,֌:X0I3A$,ު-t{uE R1>DȱaNSĠIRI~r,4gZ#i3I<FtMB YL 8jM8\% "E6u15Gzq:5zH=`tV$kK<-RFU̵$.i(G8NxQߵt܍cnX)֌GyKdt{cF/n Wk-fWk..YB+BĨymvn:%"m[ ˤId9^Υ՜';G y|l5[2~3m&({SPrWÚeX^NLN,d.|iMb֋#)Sq hm{oT8@Jo-͒&4=d1ҝX#MC<>.*YINpk+dp)yC8,2k" p|WeVtg2l?:*5I5!p!=|uı7:mO阥%c28#!!A6H$ :}kt<Td˾p!clRʅU P1[HA@y}uaїY6+1PUвY6.#i^9$ӥC#+WɅME ̻#qMˑ>8NJwD<$h t01ĤN؅.3%l@YKw&i/./2$aK%eL>>?9V9Fn`vLtщmZuIim KcH8X٫!hH@RyH?a\Vpd9D|UL$H~gmj:,U^B\yHG$#{<%d$5ݎ^f I) we:ݕٔ8;=o-!)u I{]^Ӏ/ "sL FȂ'ynw,gA>OA_HKgξ$wCA8#wEzqД;EMJe6׬  o9alA@L |qGixow#)ZN.`+qGRd]jqHc-fˈr M,.WO$t !P$QP"nvњ赚ȇd>F5?p!9~GzzVBQ #:A;,l$(GaF0hY`9` tg<$xX94dUZV.ĜıK~H jf_ߞ|/H+azK-s(VhI6Umcw>D\7v"ǀv5G8G[k5\YZu'R⧨W>Вfb'YE`ŔwЅȣ[f$rG|6A a1 ;9-N q~1( J _瑧f||(D*ݯe@Px aلUt",cm넟/JHƞr:b>9GxE" 1-&NXlOAлdӥd],#}ZsFr?+,j y/Vl1uAA"xW1ics9QAѱFmJǺ\ 0 'E%A-GydҫzkgB @(pdSxNS8.L\Y$Z]Gd4mn # V1*IQ?1"`zkYJr8=R'[\aD 9 bVqZisYٙ!̒(]Y/-o;l]WqP`!5¨J?ׂSLV#(ݑoJZpf' :"<ǡxYŎ,.ĴLA R&?\t^߽I9-OpC?}Ɇ=VkCqW%sIXor6&"}UDcMweĪr\/9VfcpTR:dw/Js\L_$GCF]v,LmZAJ BGb!qVwr&d w8J G~p;.CQsē~oSD}(} ~})!cԕSj|y֑SŕEa^0|T2qz:VVS<Ҹj_G0C=S#f`^+a rzoLWxU4~J 3?&XI wcW۶IO+K߱sWפFE2KD]/A׶ Ĥ5 S6: ,*NgY M$:/8Rƣ򲉬酻8yȁ ptr.:qmr@ܛƋp7G"5WP)N=>}c2+t8^=VhKIWUUfn\ CvOׂ{3M+gl"6|ąwU~HCi6ט4W|8$χ5^tR FGHzH䲚juS;;'ObdݖRI6{9pֲ3$բ b&?o+pqXzimN֖H^xyT WެDbTJژ'8Nt]AI/t8ԍXcC…NLWCXmKpAbM s$AX[{%҃F3vΜ9s'5Y+DZ*|&])kHTӾ<睠 vb?b5@2>?y0ZX A(Vvĝ$E8A2Ӆ:} ` (%'cXó4*DVdz:n&"6;`%yҸܷ_< i9,BsP r!q:@Rl?Pdm[N=wmz%UĆjR-69 ݡp|fdcҲTMtCMU0ȥәHLqV9AU '8IU$]t{jjb3,ޯ.t94JT2jaV,6Uq,W\ԜK  (|(\B6Ns* A7E"ANqѰl@l#'KJ]6xΩ[U|B %KraNiԈstشn%L(Y/~b4 UP-SND#+4V[,>3'O~\f7W]fglN "Zkh]GԮǽ_7T[iXy={qs'\PKp\ҌB2u0=o!+ ;̶gcvHdo;^ZZՆ%Ucr3Ye{=3GT=TyP#!Fnv2|ll&'Q9.[66GdqcO9sV/"^94\a=#a,6LYsCa?T7 vmV`^o}.l$QSJf~8 'ڵ˵xΑ.`AU}1s OR7+6WXB;$.תJdBX.E}H`۳=w,#ݷ?TYw(Pv`@\nRJ#5p- #g7<2 = (zU.`Mw[zh6wp, lWjE~w$ٸ'9((K 4 CF! K|D*;]}q17s t{o8^ 5ڷ5n3$$% Gh >'^o5Շ~z c'M1mGB=zkAwaGlV8 1 ,D֒>l6F~ =h,qC0p*bӓmder]Ea6C~ q8ժڰ8#Џ!JJ^*ݵۍrjLҪ7T(b4fb :V4>bi2n6kZ,C"KǂL*Bb8sXl]~Mnl L7\2m[#yt[kj77*[[ $¸Go6]DF?%`vo$OF1Y? -eS_%X&FN9p- 8D.|<;.[g-B\+wyzw;Σ>zt7M;~|G=ʤ2%:}*]>TKME}R2Π3cњR*rd3H$sIF2 W?e+ Krj9__&]j 3=|#8=|;|y<~zxdvvgL2/n-Jx$~[&1 ?cU?sC%\=Дb:҅,Kq6paqqiiPd<$F02U~` @pÇ3tr$q~p|!6ʚ , ɶ{nkY\rҎY!깲֋E0 *!+[A [b?}H%$NMud°]۱71=ItA%`t5-~ 3BzX_1` f/Xբl':t-ukִߘIxH[ѯfi03bfJ*r¨rk4H8+ ҳ G=*v8} akT2QU}tB#> FdH*<'TIv=Cw̙Sg͇zaDj$Fkg> í8`'rn<~w] Z#tvn tK(CD\NSe:2D\=VUW&ُ*YEkd--W-n%yk`m=nѷw1H ُȗlq"b72^sNU8WE|~<-nÍMx ! OҢ}hNiOpN23RHQ,RsGu'<{Mb<{Zm^-[.WW- Qd,YIݹ%(.NҚGc1 CU~{WJQZHgH?>ZA'Q.ȝ8}ι/={&I3,b?9uȠ tha¤Y -'<VwQ'ś7xUVMp4+ p'+{Hپ;ZTS,ҭlpUZTT=j-rj;ZȐZZV\vmoj\&p5rGC1[oT?q9s2e%prqaDtXI]ePyx&_cbGR8R )Dڷ?Xԧ}a ߮a$qr WI?_b)i}s9cBH{u4 Gfusԙ 8<+.: |_$y<IL޿TX݃ctOTq^3/nŐGsWsؓ6Ijsǟ pNxOI?FY71m2 5.&*FU0;N,gbI;9<`.G9%kYY/K= Iz`,#uW%sղab~+Lk?O7d9Fl `$9˭9e邬LPjrtC%%9\ʹ PU^p7LZhO.\g!'iT[UNZ,bFyPpqb,Ň ZOE|q0$D0Gc ecsXpxmBH wIe6rl#12}lQj)qN`dXQ2şiꓑm!}1}%_12c Ng/Ugd'Exk:#m'lÅM`o K<3gxTVOn>4͕4ΠOFB$9^JƉa `CD*3)Zu!zN{k Kpv6-1;@;mz~-rD% sB@G6ćX({>`*s]ǝd}vڷgz˥1i䗃Ky低y5C2GΧ3 p @"gIֱɛh„nUyHNxadZ_Zb;Lj1lF4]o"pҝ5Epu´ԸE))xjШvz:HG⹦ }rPpW{ GJkSAU3{LO/s^5i*9,9~',`RUŦh4dqDYep*0AlÍ_}sX2+Ͻ=쯃s)sDQfNvI4z~<*>crzqR%q[0ݩ૴l%m2Uϋ ?UPTus1jw i!W'Oz緈 k%]4H47trUQ3`I8'u0Vg{2pUH$:vѐrvah$n,84R!7jsVA U‰^n=<2 &gsyH>_m#M>@ n=I$\p}=3弸<(>Hc(i qrnw?'m9U8p!hoX+a`8k|VJ*t%;Q1!xN8Wo;U0rhUhUmL2-}H;tv{*X2³%a=驛1\Zҏf|U'y?ɧN:yTVN9XUIGت*)WU^ֹd9˱O犑p, ؐ1XqF[e=5m#*|<:ю.Wx0*`x6!zd%FE^UG|Fy0rEYU#)h?{B9<$>\ݾ?{E+W\SΒ:+ZbͶ-8ܝb\摣w`OI' ǙG_"U]'S3|ym\'boqLŘ9ZrE(Kj$lZ)"zir<)F| 'Ï(F2$< onU3:0p*>䕫O?}ӟzӟK^$6OJ#àAh[5P\2={O!j% \[@8twUqR0RT|8Ѡ* 𔫌Hv|=kèrso33 :&6Ҋ蓋WBAMGGGcp*zNJ:#E(ږpU{&^&v>qn.^ g{g?3O_t'OخVP?'4>c** u<I-\oP/t; q0$cA?ϫ=~=W;ŏ&s=K?fH# |~`X"Xе.9Gq\.m&^$@#QGΓq8jޫ$\o4OyW!/@s/>/|s|g^S$M Q.Uy_꘎IMKDZجLWf*j(H[mf-{$]ŻիՊId_kSb!ѐ~\N˦-k m6w^3[K+mE?mȎV6%2WyH_|`җ/?ga^BFDjcv4/[8MZ'5 &VJ{.#鈓tOvzX.dܷGD8Sj<1 lGۡwdulT*acb#-;* ,x# 2fz.Q zz5tVf)u1K-dV;Ն?T4%nC0(~+_/_W'5K;gM8RlA)q{WSDͥHl(mDy wC7Z 7yTliXgK=Gը>'&2jGv tbv+#-kVsy_e\ʡLG@s:%tGwtz(ZI&yuhWIe1-ZAqXbWY pDGB ._)by:`3Bq8q=|qб$zr..a%Jbb܈M彪=&YZ$p 1}dq^)5Ǚ][XvW3*ʺV%i|^/_y^{?׿Y/_> 4װmTgyLiN8"䃷Qָt# 0rWpm7C ET`>(e PjTLbNNL?Oc: pq*/KлT;*#}d&t؏h}Hiz4Cadg7We>5@kr._/~W_{ַ/|+KNT%;}6yZ.֫|Q!R:T87A8 Cc%{hBK g AnK|Y#gU wiys.{SЀS#F9akc$&B|.}VV.ϊ '> 6 1_%3b#Y5:뎋tWv#bݶQ1Oŋ~ _%i$KǷ~{OꗿJԕwH9x&,ec.ɣ<@]Υ./2nj.>G6QUnr"nȰ΀;VkǖM r^`Q>A8e 8{"PB~$&.o)s %-x$ I=_AIHK}1_89X2++iqH<-amEtsotTb~;_7??_|~?> /<է_oW" :ް*l V<İZC[h'zX)nf;Wd !W!`Cfee*&Qr>0&eQE$0'Πⅳ| Oɏ{ lf5k݀MlR'o+k51V{ZEzcMj6, 5,֖YO2 ]E yLгRV1Nmu-1,JR<ēɌYX3F/J5D9cO=/?^~~O}EL#(45:?noVd 3DNd|ơe0,e6 8 IͿ2NTG"b* +,q |b#sފw?ɗ GB˿zxuﯾGoW?_?S:_x3Y@G?uhѷZ{GЊ cm7%Wc,Fr9Gz8}Gݵ!O[^ZIaKr^{>p$>_ԧ^'?>!3ECV)V(Cd,ߡX¨=0LS#Q8G -wõbQf;suqlsY0靋>g?#M߼uoꫯ|}'7tu!"p`ĀK3lBS>onpkqi=yp"ɁB`K.khbMx*nDH2r>g_/>yO\zI;vN?}X9mK8-oTԣV;bz˴i=⫰@@xq;Ѧ ;1JU8!Gf˴R6 N4r+yEr9^;b7x{G}׾W^zgs♓[?֫ⲗ)F InF !~lX8'M޷pSA]#/ls7cbx{A]LܖӧO\ v/ʥ8wj NQuh;}c 7c#G-B-Gl?<  osuD33btvSel{AO~W|Wx8>ą3bC%8$2ό plѮpLdNFyZ'%3T7l26Q{"*.VDǫ~*8~o|뭟go|{,~/>ܳ|69zX骮: h"\XD3*G rxbmlπnU8x(xO3W/^xCO2^LS\OF& :kRWOG?p䐊rLhq Sޢb'?.!5ك$AWCW/}Iz?H&?5^}+G;W5*ZmP 'Mm#Pƍ 7C3↥(:xQeKdޖ\szlx#tu9GdpGk\\s^ I\.>O"Nn*sխ r#FNֳ|Is.?—^{o4o?] ǿ_{/ǫ.ATI^ejjyQiN"-GĞi7Q8l_x+yO<A NtQrs8a8Uxk!Ct'Μ9[mKqUù]RͥaWt$Ad_0}(Gk\d+<J$qwuEö_qfeOrL8I7߂~}_|kW^|g%z*v7G,LJpmk 5{L|5 :&̎媍nJ &Q~=~\W'yGWlsNlW˗ ~tz(:0x8& r>r%LΛAp%Zf@\0)dn4[XQjm(5jHlpŇB$nب}CV?oG"/k_ \rΩ'6DYA_x8bY1Wy o? !7srZ&؁K۬NVFHZs5^Ϊz+Ws;OǗOȜ6Q*um;ТFԑUlP,VϹOMa?OI 8{V[(n<M7͏ȏ֛%W?{XI 91&:e_pvQ rZ,I?dFp|9t(]o8r3IY$pFUՂW8*o}`oH|Q^$\EMk'8b2?@"uJ.-W9n~9/‘K h'=yϒ`p$曐I7y|^W\|8'Pu^ZZ&ptULr 1p!DcѧeގũޮzW{>&ƾUd(+jl\ Y;qp3jŬ 5KBеK HiwfZ9>Ro1 g-䆄PZgcVLcu^58QTl/qs/{D#?{gG?B8>+W/_tS;mma)qzrgςXNCY܃S8jxJxy)<9Y.59xQ;:(Cf Αu|޻uVD@ -uR!oty|y!f޿!Z?)OJoBOdB 8rf]r}C\o$H<9~&bC ?ғ2g*VJo.RMM:J{Zɑ6+w\n@AK<*0Znݒ;hK Qsл{x D:#M<`:уyfax`| V~@N; w"r 8UR³Vrl'jmncQ&6@2WNOO,-#$t&8D7c[o'?rd~/<k%13"~}2w>zqo"H:C,(hérӈ!a sZXAرڴ-.SjY!Q MEj-̍]^>| y;:r?uCjXdk&@␼_crH\)͚vvmu>ry_f)4< )PtdWvpv4Bſ^x?K<&a;8|<|s 8̆![n,ƛC`EvnUmSy!Ɉ?p))ՂpI:{8-rL ۑ\ݻpG=n6I1DBW`U@H"rL3(ܭyO2"3A칓\ի; 9BFLMJudh+YJ =k bDE]5_|_~;ݷ08jm~t!A\zd1­*.0cX[,r|r(h y^yȑŌL&V3݋U5p F3#phvU/Ψd CH ,b,< c?WWCy~𡅽 0ͅQ#ia كo xh,,bgԶ9ڽHaf{¨TL u9 ma=\.ˑ{!3; l8,Aj 4F?~]n]q^rߺUP_e\ l.տ vrd1 W*[JOo%'ЗdtᖏMo[ܒ8|)̽8c?|Ggz/??- O8pU< +5a/s"ˍKj"HGIsjNW1 9Z}\V LOo14&s΄p qP0!d\3ygy ?w>ћoyCݑ,ra9q A~9L`˫Ӟؽ (C2^bS^b"FE>ó" n*eُǁ<8;=q5:xP czD㢏3<_sbT!¥ O- wi6SڭI.MOc쑮"b] X쑩#W7$-=z3:yD3lLI}_S~- ?`I4D.XsfC#+٭Հ5 jgT1i,1a&;ve K*]n >߷}=SINRHT9H[րV*!jL $ӄRG=>Wmρxyl|F>fZ#%(,]{W SO">էxnzv;lƣ"ZFKqS\E4h_ypŐK.z(Re}0[+e:ʾmI#pmfԆ\!-2`rԑk#pagP::%C:]nSFHr*s #\(.(aG9693vr!}!wz/}_3w?q/G%5SVM#k(Z.}X$)΁:GWJ#+WQ$6(~ㆱb0< 7$G##Ղ,%K-y1؟:'?;tU)DV-(yTdܙ\FPc=-t9CzʑlW҆slig`vfQ  pfCM63sX'?{}Oo}>cGnjh;i: l+v[ F$+O>.tƈ5djpP8UJds AԲHp5'c::f`fm6s Q@p︴q y9d(zxz*f"k_b@\hPhf\dt+PH$wÌ,~*#z:[H~NUNJɩfKIl!/,x0yN1}~L܌9d\?g>{OaTIKr=%#EĪBZS %v$AZWG74"dLٕB`P( k ؒѷp2DOПc(KOD2)zri Vj!׳!6+Ϊ1&58cü\Ki V3#,ɥ+ɰKgy Zs a*Kf%RfG8w?'}K<7}t2=z ɡ98J  FKZa˅1j.:TDJፌ|"G(W0=QMGEArNQDzzF$JdЫ}'A( 2遺QCB0_m)wjZ<:0쯜!zZxV6v鯒>NFU|DÌs0>(LA 9G^[iا}ӟPc-C`2}iK$TW<40Me&ll`HZMFS\>Zvmm" -.Hd&"9`V([|vnv3٘克&95h:Lo!8 gx"+)CxPUwe~`2K&u'Np,vC^-/ l9!404>>L;pk4VCp-]>pnGH-oo{.//==Y񪲘WW)ff1hD܋=:~x]sEV&G{DZ~UŰiS ]0-p=h?J"|54JF¼gT6u,3!cLY MFǝt@&͒ ,>|it#G)`cKK9,.RbLqĘgeT cnv4? $.%#Np%UOD/$GJY 7P^AUr%$$CHD٫P 935]XYA_> ^U&~aTUX[TAKj>#}w9:}b0{JRD$v & Trhiq6!4X2 mSs9#:Xad삚1 q=(# TdK(RΥLX19"dy-]v1[R,=&Pf CYCh*s5UG'yNJFvU5P 5NOUvHbiw39']Er &cK ec<ɑGсsdEejkx |X׳IwS\|gX# asyr\eAg8Ƴc찧Gf(>6Z mqTc)dً2cn@KLYa ȣ Ï"*(ȒcF/ 3l,2(CwrMu$gprg&?GUJ;.5#uqX Si 4Y^zB'4l*} ivutwr= "*"`dҺݻw,,` l}:Ajqf~vH!-,H nq'M2!5kbvݫqIS)en!Nz``7) X6#\>_35 ʺ]z#arV"9"~D^F*HxVˋ#D)24lLs6X V*M[I482n'[>3I(q{V2Ԝ8/8ؾ};槧fXhz$%i_Or,0 j XQP݆ (WMlEq}x4kD|TR|MŹ%Ρ.Q/kZ%,YkfM2VLnUe{%DlCWMLL v. : ?U!PH Pݤn&9rn.vIªB{d!?G*xeUO"ɫ7AGbJ ̫oQu+9xb8mH4d"4ï_1x`3#0ԙa aX=4̜U AHcMrbsHɗ,<&Gb4u^UΎۮS(Ep&͟gB19J%š9TO\9NNdȂٌ`1^Xچq~nϞۧ8^P@*Iĕ㕌1xI4GhϼnŔ,pw 9& ]eC@m"rs dd 4<@ s45DЃHKRRN%= 2(ENGhlnZ5>9#+MVv~xDdr]{{;ڀt~onZ<@tj0Y;<<xݻv_D;f<lx||Nc=ܳg~Ϯ;LJIXzTz< !aa<{|B݋v-\#Vg8x5kJԡi  V%ʫC-:;~4օ3.Ysyn470q~'AւD?Mx (N=H,o;Gwcuo[Wȷf5}ԶO!M;m _pۻ/~!nwzאX\l`R-[A'|Y.r.×dCb-)q32Xݻ9I23 $W g'F@~\|k.44EËM">Y]z}63.w`j9H5ѡkX`b>nr n0cϷfI$GR:W-s!)::`?~<џ %ċ vO,N6o5!B_p רFLPf#KgzIٵ8= #p?7FFH"\B̹wPl:7\Q7O$R7.P[DgcWrܡH `zF9\a`,SPgZ|~:e&8$!q<#sUI N453+B?8BO<ó4eߙȗy 6C{yC# _Y3j'1}?VA1)Y!H{JK`75  ')m3{ƗP]u989 .ߝgǁ1.ΪYƁ.Gfx@ yrC?Ux0Gt!=MGO@ !b2Vu03JL-CŲ^OpMsN#@ԱjSG_ Tꬆi%R)3 9tNl~}r>~HJ fĜ_0x`޽sWtZ2$xq,}pl'a$pm9a^26i;FIdwV=[L9ghᨕ(1@Zmz_qupƄ%jaQu[Znz#8iQ:(5 f, ΔmH(z`I D Li g0m`(QK4rPrz[.읻eFi6'S\pq*;ڜoi0<(H8ja$l!êutQeK\r& s):udF:9|^!98.}Yx\۶\[0Tllv;othKiV ͊ _TD,EҹQ0O"X>)7z(zj4s=zs\Z3Z }qpLM.!PN0Br|%0)J#'+;"O!%s]x"yeSPjx!7M5J<ծshCEݮ+hd9 -(`:bFRƏu1%!/TW*MrfiLق.`G mKS۶/p}zC-sfMLiz)pèzx:'TJ2+#:š'̰ABODIpTZpO"xF2 / ?\`Cdk+Yrg`! N\6M~۔*Ggu[[)$Rk9LK(%)2xzKYR4DE× 0F[q&siP.77S^ΐ#ٔccL[ŭtbHdJ h($L"W+,/0GUK, 4% J >xB3qkO(Lt裣{[#vU5u;=v.M5!M1D2m)c Sue 5RC&s$p*<`sr'g܎"6 :y@\֓-'>HhvU5HH烸'?f$ʠPc(8`T5 :PfLAvsZdhZ iE372/bKh1:nU9Z.?*vb&\3hyF wAr|2tG2STG1qqǸ""L)r#Eވ7=55C}pn~cH.Z*;lQ`)pka_`9Jωr~ڠ:fBH GV:FOR& Ep%J f\kв~#SA ^M\ E89a5-}ҐgK5*ԡFWYG9\iU((?1E*fA$ÀzI% __Wen(]Pܼٿ<ck̼mZ@r&L$ThKE^(#D I,TA >5Ȱ:h]U5,ǂGGN z=La`~]k">|19W8tv<̊!穖IUtRJV Z2 #4 <%(&JkPL7cBF4`Q:K,o($ t;&>855u# (~H:KILX;ɕ3&u&t5=723,=0@GJrpRHj)cKY%vZP¤1dWā8:mn͗2dI;Q)Wͮl2N E{]Ҁ` %Ebt{D%`s[xiNLH? )d4!w%W~TQ>^bW䯒D)OUL*Aɒrq]69(8,/iX'W7XC)O]76`=:>Ie ?|L eQG Ԧ{,9^jW= I;ְi|QCj#}ˠQ B(cCN =WS`Ta09z`1`eVzC7jE8GW;0oGa2jSRd&ryWV頔1kn2nȐ_.2KrPυskkGh;u;$9$AiTtޘ$}26B~$ \3""jA=qm&,+te-sFq)sc>bP̎3tTp/5*G}+X6& @R1{*QL 83}r:˚/{`xSd}BH<I)(6YcDa1Z-jmi+ej!0B8P*?Hs>''-:豁}p[܃*rc8IK( 2%3髦mGT2rwO(c [mE=$XLUwV/R[;O/H)ʒGqtKPTxEqyTToYl-IiKՐB O@ ce.p,RjrlqĮ2\#{2zh{X= ֒2J6mnC$Tf*RQ6P2tS)l&4ʦm2yJ2B[hZD׫l*SYNJ%^-7rcO%vī(= aٮ` Ymነ\ =Vu9 PJv/oGZ#CNᙗ=Lj]J"9 8_|u4 8cLC9XdT,,0f<&Fɴ18rLI]9%( Iɱ ~$G嘝 PDkՖ T+rl`|20KhD2`f-6N܄j1StʱGnْ#e༝0#Czơ|#~[ +颠i24JB ؙyt h +.D!cV+A‚4<4;EߨK+5tREo4wŏ6+ټ ۡ*OVIg HTTRt?dc< !4C@s#9p(Otԍ;aKwC%cŜˌ?e:*R/Bt~4XOe1nO#Ui$LHRcC13jGrD*NXGvE fT)F6ɆZM>y] )i1x9sBSGG\CAYWyġ&D֜}ȳcѼvX,+ [1.XR-^*!Gzhb*vȒTUs%/^ L6B{Q2'9aJd^@d~@f \asdwtO2l]:UI9ULAȰz5\ , Y#\wT uU9Ui@+Pֈ9؁(< ڋI4(|ty"d%7C'B~nl;ZTg縭F8;3臌w ΚʂU+$*FI7*UYZ(ϸvN*VVj]L`5XCt:ӃE9V2i,xJf|6y.vvK Og 3 3u*H5y G(Y3zL5&GiWȷ9फ़[0ZYJ+Zb>8X(&i ` Ӌ9JQ@~^D=|d~G& Ph$Gs篾+ ;s٢,*΃y;tH|m3lDd =Q5\E'a&-+5ȳӁ@㦍iW_且D;jn6p5uMeb1kBkS/ VOnXǘ͑\{ H"XFK7;SUaXâ tuT]ɀFsk$E"k:9YHh ZE-ь;,G4 a#v2(m tπ9i,>x8t*3l c(J'9M]nh/c>&rr,|v⌌@1)a`:{GlQ퇿p4ṴфC@e%#pp ӊ Lln4ܹUŌ!t&$5^1`K"$ z<]瀼ǰ^mFYOja(gK/.X{`q~plUL ;hl?R7]u 0 gOb8 v,;kBP0; $!Tf30+U NGsUTΛf)!Kt%x^F-tY>U->pøut G ?  npo5] lǠMyÇǯfw8xٳ{NTWTu HMƠ['@xqoy+><崙Sx(>طg!>:;6m Z|xnqq S81ȷ}B!Ҵzm-:]GGG~ѱS l:;4mӦu_h=~BP#m0`չ.q,$A 5teHàBdl'Hq}d׮qՓ,]%NˁB,q8L1rV,90.uԷwuYIdiC<;z4E[4cLoD#5*f6.Gϱfv&?gnvfq)֬3p+gJ6 z\6?W|*hȗ84=--K@K U*x"?VB?z2)e؍4yC335`6BDoltOW/)!^4-'!6v8ٵdFUGf#"*4J7C|X'7 c|?wɬv;vխ]{owCBYu\/jioF95!2gB^6K!`-NJ\ST=\ 3mǃ;=N+"՘L)" TV=Wvʮ:0ŧ LTN P`yOj  /n.tYX洺:*w^-AR R_n5;<}ӻv}j c:|H Ur.n̡SA Z@zz L$!XSB* p,CR0(ׂѣk͜)H65ckVϡMxt#/`naZslKE/". "P02Gl Yy. fonKW+)~d r+]^cu[-ob3IKa| r)tvف \JU0MNד|Et3FR\`92."F?q~YЅ^PR j?gc-\G9Kf8LGH #;v$*BIJBك|6Y6ڡnȤv{VZ5Y+sh[y.Β!jc[4;jlcpHL,Ƃ" :%F9_3ָWcd8~;A>jp(I/6|35@d5T~DQ膞DPp<^kc6bD\h! + 7hQL' rX%vZr5.p2岻bmȱ]#9_E*NYEf6K^ښn"E{ c! u7X@Ia& [pP9gZ`'lNZEM\t,[CGG|B>c\)!46.9@Q) [eV_vYqQpNkNaN1N46ӥaFQԇ`ׄ=Jweb1gʏhH _p8nZ,&2eYI%I 4֮nhz].ul3J:BR~ji,p$9E$?_{xxP¾. GW@ϑF"NR unEuxaGJ=o5^9u m"0iVqYD;E'_ȑ`*RސO¿:"G-}}kscs(no[el1v~wwGGAo涺[]^f?=t=},dK.[ vZM^5}[:C6E. ΋s];T֝cll˖;ǣWi4'6vVK*_ 9-ʼSVoލP:/ŷ˯umiQL M=o#G0ߣªmzC^quum'j[.#yG줇;m^[ku7H7Zڲyx0yr`ڌW#.s+}A^)@vEM;a=JՂ~\e+90ؑtZ{qpYWпJõקjt.uÌluh4 e$#{dy;.{whc7^t`g/}r]2.V륇vONޟ^oBH zzm8ᵶ7Ֆ ,ksvI"rX}ny/j w;}kq%3q)qӺ g7{ A$OogįVމ<e$:r2x+OƟ/7xMK햻6<Pf.o'f|rF \)ś+ܖ$-SWS^-'<_Ʋҋay5r^-Gs1W9aYyq#Q ټ_q-'B9k~(C0M[wY4㎓ 1m+=6˫ݓ&\8oZ>rJ9'=NފZ0=o/~ellם$O~/ףe}Гz'sn®>,NW8[gʎӪ[Y΍,Ρ-soef939v-f^ujY|>V3*t)<~#n_kdJNLAzœߛҏZYLmQrh\S˪/Ų2||F)o?<N[VO٠`yk>4םB~3bsҤIn9@{.Bvղ%h[ҷ|7b94O~,ݫ:4^AOlWO>`9W3#(98GN:ro{1L67@20vְbyJ:-N寶vsx}Tt-fg1eմb9[lls'2moF|t5-gW4hJ)7߃>97Ӎn:0kk$eqn$cd;jv  1tnUF6 ~حo@q0W7t3fefCm$noG >#0? #?^>t.5K=pU*U-a\S7w,J=]@ i#[r5|5kջ&w%]wl5/Yۻ\ퟺu_uOwk?Op?n.)ݽ_ҶK/=K?p_|u]qE]/.w~ow] __ nZ҈ˣy<&+{ {F {O @~0}֭ӂn׽EZ'ݺ^|ڍuڍ^z-t1+ߵ^qŵ֭^uVGg׾tt?Kxڭok=wS[]P[kk >{S\m M`m]7 P)^X:6̦ťsss΁޾}?|qnϾq}?o}??|?O>׿'揾/op߾GDž˻+KM$!PF_>?brc`]r%]_~o|7 7gtFߟ}Ͼ}3~zu_~?>4>'q<O>w/_;=]3Uέص\"џ0jB7;+%teɬY`蘜9"I.,/wy޽ >|`no܄(}z8ǎwy'>]p_ _x_ySO=?s|@_o۞@N 3&^#r֑b,TI lz"v] =91Ȼk{ 59n֛n]ǎyOcw{?__}桧7o~):o>}~ /~ :m>{77!t0t>jA78 J#g̎U %?!rS_ػoao}ˇޡCoc>? ^Ͽ@碎}wEr̡ N+jZV"9&]b ISW^I߶m۾۷/Ow߾tK!Z>nzN#7˹s$wuy?u?kO% ]x *7߾hU!s,)Z$Ptu=9~U栯ms I25 jyБGn}t%H\8F"g$뮃F<%C8zG i>Y Grs/I5܊( QWi.t$#C2Y}`=5 t h#}A{=3{` o3?-n,`4Qo{Xa3 /V9vz#sGGAY^I ^e믂:jrj~#N|_^^>rhЁGt+ M˹ewuHsyHݐcY~HB/ĩAB .BאZjJq<:a y9z'Iv}' װc~ 8uIEKPr}{m79^ zzAdD%SrA\8țtۃy:rmG[o[n%9A;٬ /E"|+$gzgEWϫ v2<'9*2SԘ0q; |O$i6  +"SG>|nyQm)lXٶ}D'jel(ʮ6/05 osO^49xn0 qwôqx=۾qo8=W]|/Od[q|폾Գ^X۾V Go :~EOz>2/ǯbo?NzNҙc& 9uW+< $߆J-eM?xṆ @Ӯr0ۼ6L޲ffoս.m Ǐǯ8YnN8})^ ^KG^"K{z{Kޏg9.m 4C|[l޼v-ݎf`zoBǖ-AEl|q\@gwlc:I>n|߹6 9^e <~v֟u/]WtO=|};ο뻶휣ƸcխM /(-N##TMZWʷmj/7hzQFU >å4z8p#vZEi;NI nt0ֵ A;\Ԡ8Op"7[]حڭd`lu _b틠qu/:l&Uq9&9%%f3xs|DUF͐4,-*8@/rXN2՝% .Y$^J ^b9r4xi}0YZ[N, w7uxW|\ Jk7SZΝIymy3O!KWƖky خg1@f9r|W>)8і޷&dҎi7c\ e㭠w$_'1oyh -KځHg|!_Hp]u_֪԰0H_{BYXH١   H$ӪCMaw!dK7$?V+QBR!=J"؜ oTvȏLA?FuT5y&goAЛ&Ӏx='O!,V[we‘o(jȏ{%`R#%{4I"?oc&yDNH^KQ<ÁCrSWM{Vpz/w'~9vt~ #osLBD6כxםFM\ܷCh'Ugzs Wɡ u9&D8C,mŴooBŅL[$iWiJʞ1OGY$u)#(ח緹v'`6q!+C1i^ay$CdG.8Uzv_|,/EwqsʹpmYWDJjQmjVTvAJ9*ps`1'A-6reXeȌM=N}O83-_O)|c#apAߜXܚC=FQǫ>&7 er4#zkZ&zS& zwiRѣd2b禓>s,3LB,qA>͝p$71K wwa4MӉp0Nt3"f0-H͹iRtn'q-&Ll :]*5SU+0_Hp<`A#tl\8ou] ZjB%jwWv';ӑ;^~tm{} z~c:@ly/ݘ~^-LQwZ}l[*EnHU8q_G1׈>*Uw{ p<-ssݯV2WözOWYpt%{/Wc)v~lxlQg]P .@5:SvQ҆]lq9m.}Ƕw%{?lUu}Nӽ~ ?:zݾ+uF0 ^Quv46鸺;Z 0޽ߏA0MCxYZ-r(ٴ97ZW@PzrD롌g򑃣jcH#Pz@B>(՞eCn({mW5wQH*xS'H?=oT~XۖNnR-|G$ZoW,lmE6ԥ߿3'Pfo;$=u8ZSi|E9WݗMP,ݵt!x:H-CeVZ>@L~0 {0 ~ME2jWptB8.Y郩&Q~P;A c{\v;׻/5VVڅF4>VKٽC8m?2 })޲faA(]\o!*0tft=[)0=j5yUuaJ_ff Xh *;hX#Ɔ^U`su촦L?EԞFgt påXt*8z8y- 0 {|B^~2NUEaǛx~EaḢ#2,QDXyf~z@z8~8[jm KE >Y_RAid#k @~[a'Spd'ݲ-?wѱ:j/onj { $=N'ӧ*xD勠:KnњHXdc0Z.7x+ Æ_Q?dF'ݣ\VHK7&G<80]7 wF>-b?H-;K08aή d2 ف$|Pk@;'r-x`;z7(l1$K2a3wKݦް'L^2V98 a8p1R"z H@эp|"=I,{ʘqxW}GhcpW݇ʷ }wiw4CO׬۫o~m%Hm8DOex1z4iX h`s `4BozNǪFA ˂>ϭ5a x`j> 9~C^dSa(2;\Ăc$B9@m)5AZm0S#*28~ Au4!c .Pf$[f@882]u |mr\$jl$0f!#"*v$sŒXxÒi< &@A4iWyZ+D iր>FYTБ|!NP)a42Aw6T  =M|hԲJX _O3/UZKAE\&|$ l4hPW>Mk> #kV2}^p@8`(QyuK ҷAlJӇ.ov#@ f@pǺ7 GVb8PeAuA5 s*hpʗf8Y X)ޡJyܹuX*WUr8 &(ǎRSu0ڷQp~gՂi ݡ:fӖ]$pKjM@@ vlXn_~g/RQ`h<8޷ *^~J$ly~;:chUjIg0(hߪYFG:{c :M} (T>wfP3AqtAC_S^hύEo >/o`n %.B{͠o1YS E>ikx:5L<qЬf Ц0!q1XPK[ͩ5 ћ X᧯j0-aȜZ/ƺSpëhQkU U<ؗL!-I-LDSk! K 2K-c ض(TWU` rW1Y4)%nɢZ &5)Tj'! Dr:8U_ךUH`٪}EV]+.kAj?u5&|wbP(koBU%"9уrv萍1zxQ" /بʞM 0SǫTSnwxVLDvb|XL$4 w,@(*O3_Ҳ C'KFPj*[$uչ±|q$1[j !u >D5YS8 yK["MeV}@߾Wi}R+ Qc>+KKV_%6b83Bї΍;digˬ4"V>J )ݶNe9K&j&d"rROej, ,Y-@mG B q}yŵod(z _+w9ztpMXhP7ԲZj6 "^ABx*ɲ)p4Cy_Ԥ*S0ICK0%jVf`R]t.٤<`lF|!)3Am*U6īժ^cIs>k%c# RJ]*J*F s^2&rK(-j8 DIaq idũ`)uo3,=~6C|(Wᕸ򌷤sc 3HВPsja'U3hTL(-pl9s>.LkVcCڴ860Vy4PRg<ie8Mé ҒB@'?5a.p$bI\P1.,2`-B}>yFJye`d5fIrI3ᖹ`Dosle"KgU5#H2*1_DR,4'i%jZc>;E.NMI#%|y5(\f%I tɲQ)⬩JdC/Mj.F&yC,א}J9753D| I7Rj',!)%ɌzVBִ)D&f;a@| iv.(!y >aVEHL6doAɧgE'lR-Qr-gryr|i n95%9pǺD ,NQJ 8[ QHc%|e,)i&%$F6z5;sb*?WE^ɮ )$6'AzhkN d¥Ϛn4qf]sly\-gQ|KLl;5fѩZJ%%kiG?:4hF͗:;[ Qs>1 KYkls|1~;rg016p6 X8K:ιp_btT ),HŜ]XisTScV7x7ES舨`GE8J>1VN͝|Za-kI)_,> FӚL+]gd". Nl2:ʗ,qJϤ%G&3%I#UM-4Ԟp0s.YΈ豦&Pa(%R Gb+5'1˅'hbgkh}9bK+8-c0zt_}AP-Ϻ*Ve)$-#X\jђ'u=J4̈5bzSa!_UXQr)cuױxK*gYarl5ӝ[Xi5[~KU۱++o!bü0dי5sU|;Pv.'Y~jiNQsmjKY+⫇|؍Z:ʒUmH"G5En+hpݭJӥ&63za;*>?JmW2OԱg'_ufX\dyݮvyMl8U~T}QaԙIRWyXh:5z|8p,9tNuo?52qvwKWՕFj7kEfE4#3`}C¿ڧ*m((1R9%:fz"ݎXc0T>f<<ZIVk8AK|G85/y3io'٢O. }ec0Id{A*M=Y+>fhH| VQ1;lZs_9FQ0Fߍ$dtcS׃ݞ|e4Th jbDG#xuTD}}a f_DQw^#a#-LaAehr(X2d Ab V̄ƣ,X3`"11qiS.`OxhOc׻:5BaL8=<` Y &/}{JOU44ȣʕ#TC!Ն$HK ݙpY(!T]m({&ȠJ_%s̘67p_މ KG6D A5SeG,G^/$V~}[Q<RHctiM,ofbg cфpLLuGn0]G[VG4zO8[[=OapV03B;>#=^fyYc"bc?h#UlLZ D֩2 7BLG4H9|U eˡgtU 6]kljُftCgbF˥Fq~;^*80EX pa{ ,?$ӡۆX_\9]4fAqi$iV@XNIjݠָp@#m~ c,@lWjcT PP鐦^uuSԽ8É/F9-Q ~[M2^8 U8bZKWhan 2eD3(Gt/eW J3hKk -r0Ɖ5Wt Z#ǤbC}13Uu#hFET-ʧfOj԰aB SNe6xFeG8irc2,+G5MUտ Mc=N-6]-mLxfz׃hiG[Pl Iw_>fpU5POBʓl.8 r"Y/T>؁Mz}RZ8_)YRY1̅ Oo@ya&'e+qWL0dRupl@pG%ske[#^/ʷbt|-4q2SCIPbJ))9s ON*PJb=lAS\/Wv) 4$8 /VA͆ʜߞG4 ' MXG5[0.`S>9-kX8'X; Gn>U Ĵe,.t. =/ȿY#Us[EL8W?';'BH.Һll^=NGP 8hyw`tܧ86"k'Q ^ҒnHn;Rd+|(t>8ʫ;C28f>cO_i1H~_9 NZ8RrC.!8MQ6DٔXo 99 BL>)hwHWse$`DK /!¨?FRCC8 g8zVm(E!N'edfgQ84 "”p;,A7:JʬLy6'GPGਾqn>'L+1[3eMV8ّULT([ٕ9[Ċ)%)5C 3&~Fjуr5*&BJJCZ_l6;Q7fN߸:e+{ /`Ib  _N=<&4o j$g?OEIxgd9ơ54/94-cW34o^י4-^7k8>&:>"lj'cl˲cV+oU<£|xq67/#boQi{{r <75kF]6g/Ml-ln_ՓYcՒu.l}UO;= ߫i&?UYÎ㣗x "ůIчdV?[I]2px:Swn8-a;ʏ!+;isa+@J+zx.E[׏ĈC"_;ghO@yN=gJό3_Hʭ=WfZeRgIĐ9c|Ha7k,1C8~P_q=~gKMf UH]w eoHB2γƼl&pT.lշ&)gVYTB$_=]-jOT]J|L!{LqzyF)In#GpML/eLsVn܉QC=GRBa^V"%8&P&o;0n L:f WJUK'r͚fjfSWD)SHf\;p8-7jf)6aa)UJɛ^%25hd$m\-Ψ ʃҩhJf&E@4?-AF=ӻhy4ԹFe(x;>$:{;Iǝcy㆝]cArQbiPzaf'ZqC`;VAiQaǜpB9PJYny-F6@ |ӄb,-#~=&hrnq:i2~Vs`mc&WZ=K%7ZHvz x }{߽n=gߍ{nt܋_v׶Rt7^?t~JגC8^f谯NQܞs[3!f=ߺ:t ^E9kqqs)l&ZpZ/zAAYb endstream endobj 19 0 obj << /Type /XObject /Subtype /Image /Width 794 /Height 1184 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter [/FlateDecode] /Length 785833 >> stream x콯v$0140```0` 0000( " @@@@@ .h0̓r;NwgzuZ:*~Tc_׿_~׿_~˿r x.'_ׅlYo?Y{׫6ί߯qO#>o2*HG9xE $h7od^GG+^xL__~׿cSz|f[{?}׳h' /M|/|aOW~tԯ2h^~fh^ I ap:>~ڳ=m]+ގ]8gM?{~{2wޞ/mז_0|lr7>j7gr_|`[CL_G???7؟ ۹}=_Ǝw/,a>+Gq'g>˿[?H';Gl_G?}ny=9>Ll?oد5q_ yg~3ʓѷ{5~ ~xw/~#-1=6ue3[9_@?|>V6D}4GTq}ݝ\o~~rbw_9=?c}?o|EDQ^ri_?_l?~fhc?W?h6t|י.}qw ? UUq+ڽur~?cƯ&~lvLZC&: W4u]nZ = 쭹zAZͧ}p|G}]|,z] 6uKnkq/ ?B| M'ش`]/ϷᾸӿ_gc>{] ؂ҿN7ߞCd>+?CyyD[+љ4 µ](􋺇f||jn:]FuýtJy6eؘ+mZ/+z_ownC?[%k9нAkZ?qV|cՅaޯ{]y/6zz!m/S&}oqڶMD{Ce@,˯:L'wX0sV<:ϴ~߷?5GuUfX]ƷF^D>Ўp#k7W}]ϧN{x~`|\7*u^_qzEҰTM-ۮ!bs,\Ͼ.}EύCZZc{mS[Ƨ[Qp9WC]E5gr?$]-n6b;]mO♌ۇ=-=b͵Jqny>Hx?T!/̰>ٰlׅ ohՌb?Xns.glf :nn1BT%h+̀u۱"]s0^uvb"c.'0p^A]+mpi{Ǚ{>1s =vw>_#umtCһa߲Jhb_iט8tζι_p=4]ݧZWޗSFI{mӉ ʫg{] Ka6n_[>=^1b8uV:>dוPd8_ߺvx-k ĝZÿuL0<`[n8{T[U}5/$;&֮|?Enh|;>!?0^Qxƚ{h8O,ا64ؚ{ߪXo=u+v_<#ƣ{}t]r?hǁ[mq8Gmrn28ӯt&򱶭cv9n) 0^c;j|NmO~ަBqBK}0PC#ئY?&{ݕ.m[ަ"7@(=;m=k[o'p=Sw#}9%j 0S A1?z]A k7{wmvAC6[, :Woٯ5zeH` ^ǵ3 :[L!_88>$Syz}(y7pc#;{3ʮ>}=6T]NHj%bmH\K}>N?w^S? ׂ_nG_kݶv~/ܯel#U$g q7˸}zboKV1z=Ǐbde-+'iép/+=0ImHXyw֞^`mew'ۡ.P7[mK|7w^vgey3 W1,OPÆx+ڃ筮85ônGQA>SGOqz态=1L48~kSU 8y#%.Isߦ?xakJy48ܑZp(Z[qP0A;{eQ Wtce*'@ /vB"\rmb 7L{rÖ O7 xk)ABߍ )ߓ `3a+0hnMxO6 %H=y~qaz~N&ƩEGuΤGG6sL{N`q>Ň]卻b|D<@ f-:mXqFB{Wz (` ~ {O]}്'!PzRze1z{Nd*x>}î*]hvxSFȸMX4;!? dK ~#% ީ>^ x AVTa o\lml;t,κ[;(~#H hM2OWG"` wVi >$8Ǎ-gstAذH1Utt1 jE=ҎLH.7щ0UP0X\^{Ȉ8O V M@,x& 8i8/YuŞRX8ӭS6^0Ň7 )ekO(`DuK%GAxSLen &xWߔޝLC5(4(WTWeDщ i@mZз0x 篡'LƚOB1xLF[AXw)~Me-CrapB"V5l6-YXzU1*]+Zzc5T: {*6?4v skgCg9򺒙AJ4"W') ch@F%߹X[KJP@0*?tynWeQ8.f^h 䘢8" 0{\lo g mCЩ=isOfO<hEvA)evElF;Z#ʮ6Q-cnD8ߕ`- -%hC !>EI;viB"Ny"iq>P 6鈇 b9vG| .82}~]ri-tC=snٮ Dm(hXYل"C&tQȫMtۗ%[W3sRX4#P(n1VGYSyOӨ%Exyg`Qwr,lA@j`='KP%6ù^ս2pX9XJDnȣU젋z^~a= O:(6ĺ=a*'=âP-bsСp ZO,koEbX λ9Ff9Jr'T^{?7Bқ"RoevPY#PmKP<OC~!5TS^FF@%RP@!H Uo04D6oTB3lBI@nDc\TRsnV (rlk!xT!zuLSD9*[&?ʱVDOPȖ4_TڪU=L侤JfkzQA )OUBU?sJrdhCc yyo2Iw $^HA[sw"]Hzk@t7Seh"2Ṕ枣?A fPEi1D/Z}dC&NALBcpױOI*0/]ʜ7CSB*J z9!9"a-%5ߚ`~R|vP#,O,k39Y4)[@Z]﷉4iK1f3{7`K74Kp6@3Y `MmE%E:3cqT+ *UFHݽ SIXxt< eo $c|A.ga6A%|5`fřpad4BU5fH(x!1Ht 81`IR-) J2)ʡTЪDu_DB٠VIM3Mu$ 3ð5;Ђj<$!d1xf H@sP eہĊ( 46~ű^vX#ikBWBTHtdiBHʢjƝi s+V/\z]zROCMi^'GND뮻! 1$] @S 0~7b{*Y|JPbE< f"âw * Ŗ1aw,7guuaXmz?O3B#Wb'yNE;JfB:H ͔j+xF9.ʼnẎIpL}TmT:nn˗.E#g>{'KW9##ZG8pET޹}bjGZS>:j:<v<)(+~59HQM\iΔC\nT!AK4h=KәK2=ئDULL!$%:2Zj۝13jvHU ,PL -8#lRM])ORw'g1v`*7M`%h+b,>chQELA 9Cz[Bϩ-l\; D2&b᫇ݾS`kXC7V#dA@blk%96~5sv]:@;iXetl3B݃J)xԨɘ NC@}Nei~ ^osQŔRHۡ于1#1u/*LlhH؛YG-]\\^ GǻoJ,4 e.ؤ=HV ;Qf&zV{Tw;G>OK e-Ox9&9 tQӬ'X`*AYh9"nl`0xpϝPDnJ JAsƐ)!9_v* հߘ bl~ݍ %Q%^l)uyI _bT":!SRkikTSicw4Z5-/(w6פE'd+IhE 9 a섑T3BgT".ۨ[ziDD?3Ef"Ik|zRӮ ˴h[Xc 0nRȁEXr)cJw:4J%\a_$0-DP HB(2KB _䦴RȽҵ:E"Uk_8d~4%YDޓ$lsw:yڴmjG03<[$?B3`aEީg0ŸPM#]gC`O;tB L}Hz&f%Θ':/Bu{=+X/s Kx"p˘qSKn(*`@<%!a_s F1߂Jq&mɻBPPa&f8~e/q)U4C$xv &ط&bzpwZbAĖ1wۛc RKHؖ  {N"+Yr@ONw1K J,9HRdbF2 m<!q2(YW!]s0U7N nz*&D t'6^t6VQʸUn}2*;T+9|&T6sdNveB]7;${'p"L&17Rĵf}5S7ߧ8U5f߃:ƳItCщWNMyA 7D@D='l nOP3" +=f\lCRU]Au* .(*v``e>xHJ*n&_жMRB ~2<K;UPSqHCl?)MOc!F)s ZP"SO>BA-t$@`ˡ0?0ސ jԘ)I˴*OK~#qng)% PM&Y!nEvGC,ͨ3$q>JBҪ~>) w"h{kKNVX<#Ȣ";}ߗZ6SH_S[<9 Ruϲa`o54dskbP {Jyh?J]h>*3rz.h+e &W=eސrx\-Q$rDNp*n1h̶"1JaP;QȇCÒ ش|ꏖz8&rxPIXԵfsA&O&߯l1Y/OA lIP1pюpSm ș(8Gr?127ݙ0g 4>D,҅SQW9RAT6=]Fw .ΐ7|If̾6py|:h 2eᷰg,Bo`A-]3|TOϘߔcJBDbj%R% Vs4\^'bƵ47K$+,31X%+3|w0BQCus׊[GW;_`#i\{LEGE I%a OJf9O*F,yȯuP&AX5+==%L3Z)M,z&*WUH$~pcb/Aՠ*zOɉQ4rz-rD__q}}03I؆}!ڥ'%)IP2x y§Vv,UpH.'/9'b:@Ưyˀ'P햖 aqf[-2lFY+zIs\{^sC0,T( h4gwD(GKK"3*6 J118ݐ}z?#`N G+xv^sX^'jn",k.vHSؘxC5Ta,^6K {m:q:{ Ʌ?COO؏8U`B]p+ϳ`:+zok8pUqU>-=L( >ZETM՟Óv ޻JA~nәKgܸi"fk'#pHԾʢS|M4" gssHEHG/~P,tGJ-R4wɨgi@MʚpP (p !;lPI 9+-G 1 R]\/"$"adGGQr;"\S X\S bN18[9$C,0wK̈N%xl?A[YcJU۪/3 J6L+x:ޭ k [dФidCs ♯Š!%S›.\wgj<^F谇F4.U(9bEVxhIH NNm}2[ sp. rhMxB):HVx Y)qX 1kIєT-E4\lD&ᖾApu_8gְ ~.k|mlG# X-硷`R|'JE5W(ZٺP/='dK>~>rH=c - 5 *QAYf- J9-=8RiZ<7G(VqLBL⥩,!Y|l꒑Td t%I+DABM9Ijň꼪|Vs?AVNt5I1R+?s6w?vl IEwDK K 24nimvM(Y(\8$^#N+zCwcWw";@t0Q󣦝PU!hɮKܬES8*% L.r?mE3C9ghЩ7)̒Q5xLy4N,ZkE/<*l.nHTU8a),>1HJMwyU!mӎ J`0qzb8.ytIQlR!3BcF l"՜˩5)kGA.Mbo@3{/,j*b=)5 4ertQcljU_nOf2ڣ r%r'x.Ow zʷӧŗ4*4~S{X:(+D4%77 (\A1d1BT=qb&` g/*[F=ع ʓih&H7< `bҟ2v3:Nz`l5訢$}%X#$/\M#săJq"BQd8Mܐ2kgj oNQ eM=g1Y=/3FnO1A/$dN<~:ʩNծ2OY8@*V38G؋'9O{p.|:IV$جZҒeuD~36Ǥ\ &GJ5+Tb&U ,Mg- #\Q8FCeS@f gZ 8G8Vz{j}1BWFhi{u+RpI1A:sόJRkDwpSUn'#uhӕVF:n4W :<sTv^;4a#4CM`0Hט\ΩSJ|@^%h ONI(CSj}zR!S*tN<.qy2kHϯTr 1˨ݨSXPNdQ{ykC.:@rpdm'5d& `) O2œDl\|y%Y%@xrA̠V0(H9 jRm1cC~n9LyB/'9̗a%x:ĩ  Am)N\~`l!xsz:԰u*tݮmv=![P (/ZiZN f$k)?ިwҩrH.^-љ[UXWϳRjsΤHFv. 1Ry2K54x5j 1C`UT=`FG,jE{L#tH A=5C ?DxqJa"Ʒ =QbL(B > bFdd1ӳH 8W5uią ea=OrԴh*Bj!7(gu>ӲyG0|uj"A02eH"M}{I34|r`FATTN9d.Sq);_!a]Y" bangaǁ| G1,g'C3L*I;{g$Al]}&З,h_ף: ;;g+^Ԛ˧d"CKϩydfL҉";0%CIM 0(6_XG2ܨ;Y>HJ62,aՀsDlNS9[zp= Ĭ"I)bh2sQ4hȁE!aTy `Q E/.`?eQAȑփR}+p{Di>5JuLPOHZX{u4V]dg[[U~={OYMN@Gq7q8KaNsCi57U$jcDl.A,} ]'7A@) 6hr 1GdSRFw娀){RىjRM'a|kVHۦT5eϧx*j '=S11ю(ݸDDsCZgKCWwDqiS%Ҧ "r%UT7ri}S[NY[j< Ƅꦤ4"7ŪMM`lm!S2{1gpe✥?E ToWKo0uƦꦌ?jF$zK]P‡&9D>e89Gy'D͉CHBT@UD UT3n!+6ؒ0b6)K6 h,.rh9,fQI&u;1 yY:EIiLG7IHz%"xN0xpN*KɩWw]QeVp/qV `v* NޢoץvIJ7:G3?1 8̢Sv`(yR +$#~f8Li'V_D 5 >` F"R.rA 䴁Ԣiyy8s9&%7PHL| smqUjM4܄XqY(X'P~Ń8bs*ik2Fq݌ G-'*]u[RZ&<D5Ч,'*,k@DɒTFkrʫāPƍ4Gd)q9JmS)M)߬~3wZp|Nؼ{Q?lp*3PQ֜|Qؕ~J7ur*'f"l/x03fHh឵K j)pkN<52T?IiM]뭤vGcpC2yVVbTk裵8q*:gzt1B]hZ؟"7ARXkJ}7ЀbxۓsmxQ/UM$|TXP#ɉM0zx$o5۱f֝ؠXOV в(r9{6akB|@o,1YsV#5atv3`ӷ\ tBΟ Ӧ2 .s-sS[BxFDB<7z*oqY*) X& J"$) h㸋sroJ\C>sXOE0 a>0:D}u4og:}jڈOprߖ%*h|!!.]󱛵 P T0mj$N& )n` {Ǥ{\pWm|(7&ZbcWu)zr>L6EpgN }㓕2̽I>}vɾL Z0h/*ٟZ1lo*MH05cxvĕH;X`nPaK:(/g9sf)-Cp~eӵVLhdyjʆ1VG&OKݛڈ#EӍƞ:vLցARD IF(}6u7f87Dԧq^T\,>gB!kPlRAϝI`d\_B`,0'XQ,Gd+0RX$KqI~Z'BZ~1gk4]\G b5xν/-}.B42ZH5,&c6 C*Kw`NTEӝ(& !DwUd-vigQGJ=>\HzɶJ.By.uVQ\9S ᴔ3HGE.G(2$XփHɆ-rzEAW;Fo AОe8U +i~iTK1c5e\6惲g-@VxHX4 %xTP=!1{ D͗}H$!-COTi1whT_!wA"ΆE{+/"ҷ{°BC?GR: B D0QVĹMk|!j_@SMe {'שω3)xt碂; V+8;H $Z":O1ǬfҎ>H`/f*`)EH*]{ iVb^tgnq:$y`F`ݲsFq%y@9<0qy`l!/fWwH#4"%O֣{ݞaZNp4(8`뭩Wɧ3JwV)X Թ(%5(t4@T6LؐO+7n:*0bi\E ל*{+-չH웚IԞM h7*"X E|=jb&b/2 {1M18_ )'ZZ!AAF75ʪ֪ 2 rzǥA,"~ _FgKcGS%.>h*^,8覗TSF6eb0q+ERř *RYa r6kz[8qV,$>N5u=֙az6ACVX J[F~o_ieF:\%qG?YzSdOyY74^ܰdl+J0C;߹<8 K12!8S/UՅ%"UϼҮ=$nA/Id9.b;hp^n34 괓C(mzp3v \lsfA#U'y=v_S6\*6SCBώH Tu$Jv'H&AsX@ࢴhY2D+% A PM:T5;.@EmbZ%y5wLҵ1dԸ ÿotߊ(aqD ~mEZOop[pŰf=S~wT2,=XrRޒ=KVa`SE*oxxsz!VHФ6:'Ѣ6Y,mҒ(Vz? zc%5)QsY`b&AI&T#;j }gE;:j8 W/P[~M^\3ZƟs_fC% h W2fPQ͕Cp/BU;fE[M]12(䍺T%NkY_rϵE2gQao\R1\rIguʚB$h[XD!8g[-:$G}g䞾z?GjK !$rcmdd%*F"EV-:hȆ[_D8/ۻi~"j=$ɎVW}ՌU' M+>Y*ڪC(uLR);!EIK!٪w:,5zjsfQx#ʺUt0(( *8 ~߾I!"sn!|ԫVQ*Wsan*R) g 8u=S=[H`gydʭIB/ݛnM*zD7s a `%h6)Juխ,( 7*aSNcx 6upPr\zyQD]Ul2*UȪST7,Vڤ>Jbg n(c2U5!ΦMn id]MEE<:HF a mqtw(-.Z V!BAOD"> oعT*CE7Ŀ:,I|qqK(GVh1b(RA<͋l5 qp$7^*3]()SҦ.oJeJ$'Q2`q0=:n“,Q0vk4*e_G?PEU ; OZəƔ>pTKznXKIRN23J=PNSQ='uHYfKF+a8|q6@"׸ ߶{FCAB8%ß- 9HmXAI+Fi=.UFnZ HXfT빨dkN8d5Ty;LeAvˑ faH(ĚU WȒ Vɺ9n/pmX8I}vLʏL 5.P hvhiHX;u5k$j֩-vSROaQC3.%`B[4AB^"8ikk5բ*CS/~S^~w<+Q8xCHԞȵq(P+I(IߔքIKנ"[\+tgHhCfy;de NɅ@SMPe#}dGYu >k QX~zn/% u*,7ICClS &[ܖ izPQ`UmdDd9xZ Hڜ?I`A00v[ڨ#c73SoQ4{Wp)OT`/SiŜ>tS=0%$RGt{\sH?O7+H0S-E\ImU_ܙaxPŀeC0ܵuyRҖZ$­ø*)k)tt}$1R*A BOgi*3&2F$k}.bA~鱲{K&aR蔺'34XAE}%OmaJPSگh#\t }K#&tȢ&<Q&ɵ2򪌰BS‘>S5$g o[{h]%D!FhZf[dqN)tn|5兄skyz|k0Ku++LE_ *0I>HԢJ_Υ"*)'g(]t`5;]6J j G{D#]iƏCsXB9׎2c^KлsP*<vE6m瓀65]M ŵtyiFC2%t}xiǘo|Pȃ#r3P^ьK8!Efy eDz Q:%Qְ&Lp)A4U {I'B^9v:ay2"40bu3Pƒćv<\'cjHG /VZoc@0bj]UXSTهN)C$^G KOՙ*Sاb z@(h(ehfnzP5l!FdSɃcr/e!Hb{P{TeT9}~MuT%.@de805 .uޫlH:د wTL:-\8dA$vIbpctm>>h!2P7Y-X8,T g,8K\+$ 9G;Ih-U:|1 +wtH͋ec!6P(.`o Ut; Xv۟+iePΙ6gޑ[B|`q@q.\ *ts%\5@43N{ӏYC@#9P=dUeʴ U=H-쾕D2 HdcԷ_Gi매a{2lfS 1G 'iGhu/V3R> eoX]^k)#JRܔqyxdIH7:p r3{3%lES"3(C:M-֝9^ܨ,FkJy;;'53zzE)SFfzKUy1F(#Å67qav+V V,/@)crQ8yq|֛ĮW3*c7 DYl[s3bTBZ֨T+e6h0@칾>T2?\-CrR^Eo()ZିS'"3R1ZxrsG HQ ̏h`0!5Ą5xUD{dKI %쾃ݥDK&FԆC-V'J0IVm)OU˖xϽZEPAAs8 $F{vnCUXET2 \T'.["ZSEi+]|qAīY+8Mv}?0(@PDPi%!2OK- dQ_ԨeԉNPȦUBd/>Ƒ1Mnt:x0BhB5ާ Hs#DkEQeH5CSH 62ցr,Bg\i,:UnW $#|ןXxD={.gjn*Ɖ)#$UM6-':&n>[oo_ٗ[6+!DĖx&'ȱg^8RQf0QZoT9+>6/9ϽC^\ jx%4 ?mg^c|T0g`#& é6h e#{ςlрd`SHA8A4' obDy"ΥC5oozDz-_zakٽe]_B><AuTzF~F&b$-\G%Z5Hg_{; :NHb@;ю;hBJsyHZž5q3H|(7u$?vQA?v(~]TLJ?0usώTMP]7\wq\}R2x$-E* X'3 } U3" X ^gGMBqgJLFzPՑ^ IJ% ׊Onɾ ,,bˈn爦r @H n%gbKeBl^3b M͜n'A*;֢p]Kو}jsk5ʮÉa͵f]k{of/~8[bf;[0KNO> !mϒ>JR.0r%ҷj -_jh>\E~;bp4fWB(K;bđ!w̸L@վ`HA $iCe#EYCSЏ!3r?h${{(.S&X;> x:n_+sޘY/pҺ=(Dܷ/9SO\{%7`#R/Ν{ )95R/ wxKIY$qx#;'Oxjn *'CYR_; n:łO)H9ƳMjʠ6_' %(jY% TM-PA2F P%AXZ3qd:䆜>#^L5l @]‰pShHI9B)|C KqV/«A3挐GDx Z65 T$nk.SҨ46NQ[NPv4F>sB1lTܠYƈ9Bf%=ͧVFD]'v}vx MEBۊ>n3g+]KaM>9}/ezB*PIz$/2c j ~a޸.bqTY@ n=@S?@޴^εUCMjoɼ>h S 7u\iCh 1D%*3ͥfRg$Ws `z0fTyPV22 l(3>*xsef:$p`sӃ~@*m?ʼnb3w]efsC7tSB,UcϴSFNSm Z7~s 3(0]5qGPDY =ُ s~:h|rZPjY}sIjz0([v e‘-#4S"Lc{rjO#(E'd@Amўb^$jlZs/SKҀUv|.QuHR|Í5v̙CCM\Somퟴ2@A.5y|< ܌YS?rF+y&XF,Crc͸|'vOU/Pd+a^6l j@i}V~?-/H6`$GD&p̿95MU]/I]+;+=*˗ sS51x-La0G93bdsui샅YG"U.*KU>ن%;,1}J5' Yu=»KE<g-F<iTӨ}*ӆ$ojui9M{px0@bfp4ueLF&"/>҇a (_زc$1apMQ gvTfNT:66+bn? -7=/zAj 56{74eɽtqu nJEmHP;bDOp+tGrB)Got/s P ?e-d=.փ7e.pS"}(jP-QY4;Wy*x\/h227f驣'I3?8t&%Zi`C\y7w{aY?ky~i u]{:#,P, 5>Sx Ľ Q¤~[P=Tt*C+JP!Cێnd{$~%야:i)Sh`j/٠}K Td :T%YZ&􉷧,\,n¦)KTvTEҧ:p\i&dL.$E.6Kˡs>YN5~c& R[YM&y| /)|J=խ/<χT:?;!޲#_d=[e~J30((Rǹ¹RˠoE4uq=}| ޞ,Ph8ȷMejmb_HrSpDEY'pf)4J+x_ُڐALt U`6CMf40P@}bij/`C' -u\d5q{4+Hp{8AO Dh)kCu<3oR_G`xr X5S] rRp$`&5rI3(É(BxNDx&3Nf̽\O53<Ւ]ˮu_>Ʌ QD&@ 6(`hPcknΌ u7+$"C l rֆ7bCgL֖&{;6W\E]! T%[lNcLvj$|y8|4Xb#tű@kKhq2@>6T'2t9g {hԩ [H`X#JoyId_bXNA0Xq9rƒ,Λ0hRď2陕=վpZvsm|aS@#y{:]{*Q^+Lj9kd):g1kѓ(S-usE`70GL(UϠfnbd ;6~-o4Tx)hנTzl!1O]73iPk0(M{Ǜz<#a~eY pH7Ou'̟g  =צM=_gvyǔ y-.=:]4p/ |O~kDf`fuqo4*WcxGo$x͋JC%K$槡7WP?"_$ETo#wDRic\߬ZIɡk\:O]J5^82YpJ9E3V\MoV, Ԋ^v!aíImTdk嗦(݀}clJ;R$?fL3_ݫh0&4Ja"(#أuN4O/cnL j"Sq1'))T)+4ìĸSôar2"̷*y_B-Con_j0"ܹjԏG Yqk$0hU}5ٕG]ăr} R %cv8M75e?а*f2؏,ڪĞO"w]}FpEh9s>8?~3q(%T?ߏM=Y4JԔS9!H =|G3C6'T*NNjÈ3M*Uy5 ѹMC"=q /g_8TyAE>l>3ސ`sF:sϽjaz Z4=wpE|G xd_en~z&o'R=xQaYo-e̫C8C 6q T籴dU-uVh+ZTqW#P8Hߦq趛kYJыD P[^%[E,oE@OXV[rZ=Es|\] ti9 }{6nȾ4aHaޯ&1€iFJh&XeyU\U )j{oBMokFƑi7:VOr8CohP,iqe]D_#=mI&v p y?5zyC3u8cG7hIV}95X1Tj?K*Ha=l*ͺX;z(L?0ߎb)q^AڎذȿS˭N@vg?!wQT1oJgs-f?='Vi;p 1fI}'h3W ;n%wv^f*14$(I]8jq$w4zP__\<^_,{|8۬ BNzNt;}ˆj²)]ÇbEdnA[-!ä1ؤ\$EyR,i#! 6ex HLb -%&*~r RJ@d:7/Qpbhx_^E "X4οݶD0h5bG!H_5b 0l_ZkXodYPE_ }7s+>|GAR^.O-X" Bg^3 pg\9'~Mڴ7X. A}CH"LU_wjs.%XVU2uܫ=''m*:o\"7-]˸W2>]6XR775ncY4խ—EL=J Ғ` +Y[RPJ!F+.&puLiaH#!a({$ ~lp0?jFl<"xKJxt[]'b!r>?LR"$\X"v7(94Zgyu2|PЂ\D,iVa|ѬI/_u|Llr-]rk'Nz XB ̔<㏐s#+,O, #D)1]`O T_5rUڈ8}ISŀ:ZM`r|6% : 'u,P!BU20: omX'lJX|Kwh/὚c1#ڍ8)&Ys0"(r@3 QĶp/3Nφ1ἀՙiȻ~׬ >M(M1n?%DO& 3]s6)(=]ƺOK@zewiH[O%Vqm6&[]#NpN9eBĬkl #ܦoz/8 ,*b1ڙu`چ!..6v]… QS{ecZ4Z~!InRh.19ڬ4Y3*kI  2y!f=1.e){ ZyBcN=fnœI|a ZF0)!RtCJ~.ʴZ@a`#_Du}Vg11L !nrS1ۖb rSϙ! TC:j-A*red>ѱw?#o꿼GM=ѩO5t@8uJZ}Pr}r͞):j_r*oٮ{ },u0mߑOKdljugcI70l c? .)4uJ)n—-J`|s41.!q4z* Ep\S(iPc(N]85 a5KA~#0D]+o}WDIF)[3gBWbzǸ{f@⼃Z07 ˥Ө'jX"6#@꒞r Q`b)/i˚tڎ\n}'ihɛ@# ~qN㍬ /u ͤYe_Q9r~j?TLH-9)GJm8T6(V߈w7)ju\acvDgO.暖k[mLu 6e ms Sѩ[s?۴Qb2u"꽨bi5䦠#΄-nZozB~n.RǢ~L?=2NUl4,bsx4p!=;K->~@pMqCŜ0£ UG٢}d/LS3Da^S e#̱*M!B{9Jv%0S4ic `ן.͖EW-B瘚҆i7Q`eR $n sj#KvycUDb'17h;w}'6=w^Gep .stꎶG *p D1;VYI₲>_we O'T3#My[$f-'}K/>Q o꿜7*Y!xCkprMSdkڵd;A PràW& ÐX##fl$bQQcT;P.Dq> YQj@'g9gsn 9`X;h-횸\Z~覷XRNɷ)8 U/wԔuNM'9IijHQA B̝sڂ!QvmI.W.)u`ϋM6k nlOB_fmEC qDN"ׄ8=:Wl_n߅M{μLw&p|B&7uf g ;BGԖV4XTM9'SDE'e~;d 4j pRa9Ãü Ӊ+߮zl{͡eM2t! 9G=gM1`gs+2D$aSZcaHMec]Rda$k[nr~ Z,1GÐyٖ.0RIY .,s[fiayXxC>O&-7$lc$3\yu! =. 9#$= qo^RUnn7]?+:蜢WA=rM& oϧm#Fܭ`n)"YO54+<vS;h N9UeoaVR)0%|,p[mS#:E"6J,.0, vB/(Ch^.ݘY%V^f&>?LS|}p*qki|VuR`$]|qCzoO*~(^zed*im 1|+oL'p6W:m r?6eSzM1›/Z+ ?^!{MN"*sR[€-,T؛˘SyzK/_%{JbBP>e#uT" 3'z{r@ߜD꘭QERRDiiҔ.֥IYdXX b Nu@+xxW݌E|ksR!8'̟Ҏ}aRmk՟۬2 !ZVYaIz8ր/:A衩?M1[MZ w.$ t#K9} >xY_>͏z9`EWFOND9M%Gc`ԩ,aMjn}&dp"ubHd!p ]pX)4KwZ&8'qs\/ON0'Y%'b?,/\\nqBKT:xom01[h  1&<5qu"|V -+_V-ͷ._\x4m r9٪h!_)Xo(_CS|GŚ]O\"0q֘`UVKC J4U|7]4w}b#øl|0" N*#0#riCrFm뙝`+^(tְ%qp s]fTʧU)1UAY4aQ(p$fC+]`+~FU:䶌,HR-ј-FѼpP)RFrFn89?J@rO{Fbhef6tҬ)(+gJn9G";b5Vl%!ǐIQBT%ea Br t+yhp"QF#*c,3 Dl ,d3b[0:>7 X#Pےc0”` _@XX6,miK~ 4+8VN%Pb)_PR V!/>~>9),(236Ѷ_mK/pT؄$͓Q4&܅^[L}'̪A\vN{,\SLIfk P1&fs0r:NӒ۩ q|됻ֶZaW/D 5?>yY-oʕN TK!%k;tsAM'J{M )K*0yθ d>(N[eZRϐ覓velJ(ǒg}!~`s3?#D I\CPeJ}1<~1{I|BHR"XsR0|3j=_ aS,Wzk}LxS&O&&#í'sk`S$$эr qwV_dsM~'j[*_])Pq0?IL]l?:r*YHM7N_͈oԜ\2-3 \n~:L z)Ͽ =Qs-O-]gMGK|LɁ܋qu0ؙCO5qJOZ *߭dCe4%~ScRY4ΑL*8>8E/tw%}amv%ܶq!ct6A&峗4E e5.̜>R>pJ<Tj&eA82,RF͂:4C)cE+|n]-EHowN_MF9X7!%A`8eL_`n*iw9ݏEj[̫N[#‰  1Mj,P{:z(TV:SlNw1# 33 mKx)BqFĸWDwzhCW U}o {3CEcxF EB'n~7b{SeT@̺܊IQ|fȭ*ɵBy:{Ch??G,H < AEs;^y.Q2v fƃTZXnR4ۦ "͈KbIu!S$aJ; 2אѫBƀ0? 4+OFB\JXfy_nliBgI#8'3sh !^dOœLw2E_#_ U}ܚ T+/ջ v%pNwal:4!PҫFƔ;3.;0~ʍ0 %fc (^4Zm% 0q=ZOC](nl(M !bƎ8J,c9$Dk ns*Ak݃ $Ka't-r%yzU5bK0O 9\'OTMLU.Oз[Rs C]^9?b)u_#H)t?~lx~e"ݟ {Ɖpaj+?8vn̤wG(:PR'i!}(XgvU/, -a#}ԧYoi֒f -3HQՍZfy}6L`gA  O>NScryEn, P+et'f[:< Yˆ_B1V-q8_t”mVd-F y7m!<^sxCy\gZHaGɚN f SbT=ԯ:BFU b ;d!9HvboNˡY,  ?R)DJYo2nNnJ\8Y7 ]45PpM./tU+XQ Pqc^5~P^w_ae?>r_ TV)g>nDZpˆ<7Ƹ-SϤ@ Ƃ#& v?ciTcY:nC(HWc>-ݛ#:7uقɥnwLrN>Lm/)>GM-OG?"=rwGh۟w6Ƃq9?ig-C˪qRڗ)P%Tս +z%6 E:$'U8䝃47*L:Jin,dM'!v RF6dM5SqAE|*ׂ¾4}QN"fr DδGr|.b8+:` =8,/A-@PNrrXmSۻ03(ag#޶tױCYp1A廁:ZʈLaP…Ac8FRL[(8nkFs| =諢"|ǰ 8S݇k }rsۨc ]ݔM ӈN]#֒]ij&zlij=]7WŤ/k7[[-$B*9 ΘUcWKțoiY0(TYB~zeLWz%ܹkqؤs^;7YmQ!U@ 6! M]OMM{/^eS U`3>RY&ϟo#twüOruƷ^~xp :f!@ԊM;n.}.OQ(&yb[&ar+UP6i)Zeؤ_#틝Zb G(9'f~!?82Nclv(@up7a2˜&T]ov]!T HmDod%<&q#}`{ր3?P+ bq߰pjpA!=d fo&[{ދ- q,Skt J@R I9Xv*aV,EvUZ/E9R5Ϫ`Xg Zz|x"a)*0p~;b#29bK,"ک9ʓn)X4T=g*7oMU} 2E)}aW+z wUo%1#@1^ra0buϙ+-B_r9~Ec*L3vóg0Sd/Éd9;CE~ZVqZ5z:&j;rBdzILI׮FPw sE&+6>6}DJHLَ YA-KT8 X+DuvEx> @4M=c;͜I1i)؝g4uB_Cl tۙI*b&''P4W.@hIi2xhN٢@ZP)5Jߛ%;* X\\mfmXcW蝧w hij;ڦZo`md0)w/?SVFx}BQY.b6/cxAJ 6J!赁u993pOs:0\}C~k%2ƀ8\"hWzVh b,+l- O׿GMץe|*1;S  o߹s&٧8~afٴ|rS=~ja=zv[EivEp,:u_oA)q=`m@9_g=!3lΉW Rlϱdpqk"tNFGK_Dkg?nŕg8ma/$(Qv_|'Ped)wBo"bwSқR&E(f̡nI;I7a 7 $־PՊ<2  orƅPmrg$4E^)&VW`/}C_Fu{L_x95fwٗw1(b7ߣ({@jݑ֡̕Un|/6g^iYi*!o{1 Myzh* Ox{fl1;@o#Wߢ^c@XĬLĭ8Q@O%2u(|*VrmBl KL)s T4}{!|n/QJYR*_LJُ+𓹩+Οnjke_GS? CzTmt%=m5N&2cQ  +s~l֪Hύ%8>㹩ΛzНW "sZs]+Cd-yX>+eS?y=ό#xe x 3_1ާ~W@z.?g\SYacg>#W۔ #-si Z'! (M;!cȶEqGkg(p˶XY81''h{p^-[]wϗ@EЖq#I/BzN_PS4# $u4M2(AxS{߸9f9YTkꚯrK+~؂%&gxP)1/3EM*[w˦;Ӷ:桟q`.rumeH w_5ɒ4/gaMKh09=7IadώREzf^;n".otQdS}E(7t, ~3cNשı)d& ֺjWs 6cC0 B3@#:Dy #T6;825a4]JsYX}0tP1XLa֏ׇ3 OfˑhV~ޫgFAjNb8=!ĕ|q[C:r^3:WgOm25s E| CMv>!DONyÎ)3K!d|StĦkHka#C|zg#sh 0FuƉ\/ MńmrSnP3(Mv.Om/e㫟>jնmRuTL Vlϟck\W ?/͋0b=s jAq:un:4Lށ@)oT /*E.+] H^IQ7+Ew~3Bj*f<|TebD`{%4|0T20nwK=sPaUxk\= x">bk4s2r_VlN%,|Ṷn2BU.\l] j=P b]ՉLⱷ!>Ͼj<$vXbC !/I_+Rdݜkΰ2$SKZr ' טO'i*ʷszWf[!M=ƯҢ r'ja_UKL]Tg7(n.nۖQ< 7Mr"|Q7hLN_5af'k yN8MlchQG0pOvN2 s%͒>%: bƤi$0xG:6ۇx[pQ*3 $s!kLPT 3L(Dk9$*uO-flbҎ^MlȩqNR|x{vbXqjsh{8T`P1-*˴E)Phƞ4 YT[<5{*NWZ']VtyІՆ*˴Cjhxpzpei"Ib X>\t] xX Al48> lP6䋼tdp0UgN ̂PiεІAOl~@E' nl~g2uQ SL0i|)sdo9~]by&!@ VU.^͗OjO>^/P:z6b3v*eݫ k ]z#Z|+ֵAo*{L7{^6q^>Rl5cBC̣~{*&}zj, bc5"ұ*._ ;.J:W51nR,Qүse̮8ӓͫ@+9ĕ/arm^74/9Ev$MeKs$LͰ_{C:ŵ +ToE /[`>Y֯Yʎ Ǥ"@gso:j~muq4QQȩa1C9Vw僝> g/T^4,vV.݌GM]%.ʚ/W)Dx7'}TSA|ure4 3N k!OtӺ٘Mxb0 KSUV;bcr&u:33 W 9^8R(r0)2$;mk\5$)3☎۰WrMl:5T)I_k0a8K0z!(^S5\vsha|yaeGɔHҌa?U^0v w5.L[)\W3Ǘvy&z)~m x$B#7vt@N2ww*Ȃ?ȋ3cW<>`T1,Cݦ[@6. h1V =X 94P pS4m)\< ;Rhѧz[dm^!l+@:!a9iP\ռ' @+#JZ}_.^ی@S*{ڴ \&JirG]䱞F{gN^tσQ)1G nԇ?.qsA]EKa7&őoKDWj/N$y/iC2Dxz0"!{+ 1ǂа4nnFvJ-lc71Vs[x+W {uQ8(]!l`]A_|Sh\Kj_W d<%;T̡ɘ1 \+c#έͯbR47{m9Ȅw*^:t(j+o0 Yngx7zf^FQh]$6򏢛oz/8DinRU%m%SښmYzH(J*$}0 h@qr1W1VίC]Fa]&/dOLRzkSEKD`̛:eΝf/[~EeևZܫ}rhx%L M.j2sRGVy7v{F5E1ܜ8F@ɬhXsVs3$S-Ѵb"1u6 r$GϹ[Z8VM+vP! xنf2:i_7ϛU; 8{nqQrTCerΕx242}6e:oM~V_Cg*?AeYԊNFBAw͑U:9y )Uyl갖sTh&fm ahV'F,!؎CLNTF\C= BDSTĮm,A~T0Ƹe e {BN:+?S0ۊW(@ dJ ;fz.ȱ7pU5C] cK,iX\4PÛיBYζ  w)~qrj>5oKҧ*$h4TZr@F{krKSǪ=D.]F3$b(Lm-tTpWEaM֘;s2^QbuNXrd1Vfk8׃L:T6c=g71y*D;5g!,GIPy`Kg%si\Y:u$"^ht$ebqכɢ9;Ǎɓ~`q*KRA 2c`d-Ⓒ8b];H^ *W'9#&De3:UHHR:oS~fNOq2Y}y$l`s8gX3X7x5i8xapxu2:/ۗ\{0iz8UJ͋zSޜ)rfm u 0K?34C?*J0u W q*1^irVhlwuBLx7&_YgY}K"DllC$UCX:8~1e+6'Pw|m?e #I4sQK+3f|'z Ot9f P/QKF?@u7Y4<:6c{\':ՐG6dPLG ox#[S2]n=[~/Km>~@5qQZ뙿VEV.-U/5 )z1\-21ۜiwA֫Ud>U.d[Xu~SIߙhyUv .-jcjN䢕B%o'!P*:p'?y<gF; S➸ȯ8w,[06摛SyGD*d [Pob!xNʒ""VXa'<4gDNw/a7'#F e4X2 QWg$A" N/4V:nl)2q*DZVF=ՍX65"&H6]lrm,8cyY P9 w+),ś! )_"i/M8- Qh9s8;Z(a2YAbPASHh>Ѐe{>|y.WiaYqU_i>JXePF6fʒ9˔w\7GE)BW q8⦏c"+mk}9^SϔL栉6(zUéb sls{!k(AUnсoyP`&().R(^C!}c )P@Q[uZ͗;Q`CP>PcQYhWPdHaثp*rqOru%VҢ:j* KMv*pAK*z*.ƗߑB1Ez'hSD 8D>ӊMϰf2BE•M%/;MrXΈjD8-fdQ=6;Gq҉aCQPa@#6Ңإ4.j~2=^&B5Z> 6pb$;cӐ4`iMy`p'C \0aaMVT6˘t:4P3 ja6g,'‘^,r1@|b & QOX;!z0KW'w Hu=fڣNUlφ6 nfvz97(o1sZRv z~@k7Qro*ۙp5g2-ynN)zG1S4tؿm>CRWFL%ww#gDm7ggiuZDb덈8,V|,X'7ME*xNArB*ы$)Fӯźi(ԉcXy7,e&raR0N%X,)T-M|nHTOoc-#eW1AR?aeL<o!. 0JPYlX||]6C]"QL.AK(=®^p 4Y$XB0In&Wc{%Rěo lxa6(_L`PMyԊFpjz'ۉ1ҙfJ c酤BF(aԱzn%^bE G˴O_,Q72#l+Ȋ -aA _6lC4BjE$ hbj 7Q FJ+!OKb #JP\SԊ y 7yy4 q$]Zv"Y^EOD(q,gB\+fcOc`yPPS R]Xb/cA 16 CɗӮy.^Ǹ^b x1hnډckf-zgw`,iKn]_WWP*4r2)j)gI8>@u)n J}\#0c/{cxk\?gt:&o!{Q9JU(mTfȒ}"";D`΂-5 R\ 3w =K蠲?hWU!ހYe1~Rma_Kʘ{0K*7vtFB/z2wB>q:O"@DBd3*0@ b>x*$7U;9~V8dcMDDJ F:4 8~_LZJҌ*-ٞ~y/,36Î<䜖j;c!@&OWI@4!x3Z= wXRhkwr~bkl[txoX}L_|!1=Joj ?x'#4_o([u2^+stmR{aVU>=XίA$ۇÖd[߆ fi@J/`Fn(^bԨ_'y8 mJht-''jV FBgqE:/ *0V$:_O@t|Hdhhjis祿}nat(NGxBr|yP ^ 4qЬ|>I!a p9lf-zׄT ui[ m, \7wh3ұދ)cE̾N vmhC"DJ!~bQ.G9%ȽIb40Ԅr"q6Jyʞs,c#xP*uX?=/VZ;>Զ quۀL a%WE#L(/_ڳ/ rm4]5ɺXِ@訹Y?Jg-F/*7;^F񦂗$>Rr)T6d4\i2uKl:c&WOP MX0H4[gT1SRK-ҙ:>%3pc/;G;=BCRhb>U J!:$v~D̦c`2+lHru%).z6ie@HU.sY x#dK@2Ip<ϧ.G+L!ZGr@rz(ƒ3% #x:kHEԨO4J^);RrM@xOrɗ8x'{%+WcO@&l߬!]< 6+܁}PbE!l݉던ߒ[\2}\P]7~s>,mYu`Q(s(l<ܞr%PNG6X%P Pf1ٮS0ᘣU4cK~ ilUּ<L%Rjؑ$j5ۍʁ^F^tZMh %#jȜ +;1k\ ay3&꬏ {Mah:3K ˗/*N 0}ULtq?Us")0!*/)KF' ̘Ds1 / %C8hõ"Ìjsp`*o3BYu~DC+[X5ARP)slRɯK*3>L8pKiR2(D0:G~9;.8lE$6ɛsn)?܎\,ǫ⽱bWB;?aكo|hRSo?`, 15U𦀎cG7PkPU 0b'> ޺HpQOH's @ #E +ꫪȁ?e *46,6Gl@nGzGcwejb Db߱=(P_-)K? VƋH~05&1ּF ه0!Wi+x!,I6dʴ k!W\ßΖǔ=9is;G$$hZt`#S=s"cvWsɼY|=xYW͝g 0K:gU^>ނgXmGNRvoڳ+^,x ݌0ęD1ONs-=k1YWi8t?H7iƗ2iEò1bR8!R%ad/<ΔRrJ'{64ƒPLNx"GwuuM\| ݒ4\RԘ l?sAq;r`aR(1$;iVMySDw&ojF'.$|Ӷq.2;FE!P&4HtvdoۧR6u*Wqy~(hj}g PΐRq{̖Nd6Uny]g87ij޹ T Kmg8uaVc"{C%<o@, LXswÜrK2I`j?҉r:IT+HN_u<53!:2WB7UCJІú$"XN ˭]rfw QZCDa}N_ r1qzh:B4Tp#-yhzSOB=>>8'23š\1ȜJyEPgE2sG)=ӂTM2g_6PO^owgooH)hDeq ռo^uHBN47o@z aCP5ncƷ,WܰxIƖNRa[V !y(wfizT1du]oЌDI)N?YJ"̢ܭ" a̡9כO4m5]b}U3"VdrU'o9#3ݿz?:DKhM^AtE?[6V?"Ɠ-pBg ZfNk{Lm5ԏRO_`B2L/&K23HS;63nT3vKJ<>F؜s+ : R߼j#2&r[`m5$1a 0^^,hp#NJb!,}c4_hJN+_Nx9l&z:(eo%oeBH5JfΘ.ڸ0l"ǚW3fn%*ʆhrur"P\6F vCDmy8VOwa{' #9h[!ceK⍇j!{ΙcDRka2K.q޸4@+oYbMd4#z4[;@ݙNV` Q.CXG,#ddO(0OvguNI$ 2ݤknz_NHitȀn?s"GAx,2rnφ4_HL^xۆכ">!c5QJ}5"v2nԧsƆefn:`ha2)hø9l}>3g 2>qTWV w[pc4Oz$M^fԧڞRU5N>ޞy;} IݖrUr'ocxAS)鳞}S-rQ6GW (j\,i,vκ &O4FW-v#kdUDȓa/-I݌DOj̨y]k-wJcL܀r6ߚcmm*)ǔGcjx;`I]-'gMt^ ޅG-#`bFmAl"v2ء!44KܱF]D pv0L$f{9} JݢgxDv*IZN Ń!%o3,bОDیM6US .@e.8MqHw A!GOzJS 70~ع|v_C=lXx\;Zڸ.XT_[MyXqOw}čm[y$4s܋/ugCנip5 Polיf!Zxz^oTFQ.p ߤ/BH ? muc2M4B )]>uqF?b]jͷcQ o|>Yj'C>֣GG.lø|bq_ЊF"]8}eUCS5&uWHP\OFև+;S3Ivsk]lyuIՍ,ugޟ,ޔ N3 ON_dBrsUbjqI3O6葒Pb:{UG8 {>w =Co`,z`HN3 1a:P}_:qw 9ҩ k݀o{ s9<ʚ4Ԥ5s#wZ;&ݼfk!G3͓Y:cd|Z9S08/^9amZr%;JsR9d}uy I`ARo5Nөlb^8We쫳* +.uTOY LH{g+S 3k099!-9o#+jÁ8kKYP:4 9LhboGʈT֜XΪL&=х$H7q2aȴޜkh8ꝔKPRqskUϊz-_*X_j0A~"@i@-^ +)%O;ـQS0ϩ(T 7NQ%> O;&}J5Q 8}h>Pt~DSJE6HU5$+]4VxW~+Ÿ*\?1 u 7E)Js9a'm$T$WxLrG+:#p> nvMԮVnnBuW{\JгtE)[A^hӶM1y$FgM<<fyRVD!n+L˽TZ[doh5 FLA?~ffsV߇os`Y/vUpKc-&N#Qm ܡ{{u˪Lu] ,P-|b*d au'=i$ԁo7C|ˇ)s,h9^'#9ya0SuJ$=%y9a1pz`x\.Psm Fakw wX"Ȕħ 57GJ)txPD,ܦx0OOTOæف̫~9{[%ɕ-i/a@00댵'jU7/2}kJ7тQN2M,R ]'$˶?EI^O0UtRO hzC-fAsM7>jYb|vbeȚP[gd݋?ͩsmcoj\% ֲuqU̬_&;e-r+ܳ%a1pr2 l9XRK ; eR-‹KS͜<' s"%4F6hfnx3ym uzfk3v #Z>S?˗`SL)Fbe9[I4VuhljUGSe2D$87Ex/d.1'! &Lw3>UOKWX2\S-MSK,_>r}kmPCBGإa˽? aA/yO ?D9q=͖>dwƧn kN,QhU>'z TߗcϟusCa[.rV@cRc^coVdG3V={I(]:]fSD jP%kI=`ņՌliXZ@ ~H-ɴhЖm]L0oX;bP0|D-? ˯ceğmXD"U:r1ce}BTH-W<{p$ S1EBMOn.q2#=qeޓ-a٥]q`%ZL*SYT'};uR\Q5f-zte;tkjRYxHɃҗ^7Y }#<S`xM͌Գ1("n?cYG&>`zOfr|2-}IB ,N;E6x.B|MMg^p/%,I}SHO Iٍ$#6>jc?~g/\aoħ*sqj=DbDR2|P1`M( ^+ѫZ46a|N^!LSziԏcwM!#iM|[oR䪋q;t] @yr͞Bj€zfΊ;tA㱄6B?]ɆUpEpPPǧήY˚x͂ 0zS(lYu 44cVM)iI<0Dd#awc%CE)w= 04(黵bpg }!VѵRIeߘ?|5ŋ!SɸSĕIbA167`J#Ӕnݗ𩫦)aYQ$[ʬ/'IB]L@t󕭱=ruz:U7bZh-6=o8?$k8N V`h8ܟoe. ;'E*Ģe*-0 =0;oEJ.hN:BJF 9i+*?byYl bv:OmFP4!JO()9X0V Gj[t;#G3xӇϠEY![繼3>r"*V/խNpzh~qfD0zm "HE]dPo Ntޖw7o>R>'xګA$3Kٯ So +.|ab8%b4-oՇ~׿syVFNBBne  Rl$e=k_/8{Ve{V'Z7xcU[J,GV+r娃X0}D |?$lIn w̜6#i|jC93HAuGau`9jbn`CI3Ϙ{xVN 88M>P6Iq"R{PU#k2*8dpGkVV@?L`!؈Rϳ 3 K,(_[L-Âr8X~Ҏ|`3hw|UΆڦF-PO ~Ϫnaي(y˭'qHޖaO:~)3wS8}!ӉڍA/AE=YdrX[@ 2y{f`o1+a~%MYWS{lwSಌ3'͢[v *j_~^BoaGB0u'"w@eaљK1Uܡ]RIR(8WO_^s3JINJVT]@9rQ2g JEb}(} oE~p]}$qN݂lB oJKE:u-&GS-a]Uz0k jȏr&YФM2"ϟ)ХuŬw :lPC&*ᮉ&0](8?\m["ӌrJ@ᘁ'R(!au2Dj=$}]$%LdF!iû6@8ӑ2pE$5nWW;y:i9ߓQ+řk+I)*-ҹBdb`~*5[~tkHCZ!B܂co$z§Q2 s▟ tXFƮ ّ%-}, }6 8˫i-`g@7A=8-j6*Uwy`4Ux)K\@ %R {|Daǰچ5 OZl4oճ/F58_DAB [ZHu'd|$nga D?4T)et7Уt <|PgcE|] WWJy)WDū0tIt )FhxS6!A`/ U63Kv@Pˊd#7P5ycEKLi<BXa5[܀Ɍ1RSb+kL ꉆ%8!DӸifᖤ" i/߃>,=/DN#_ur1 yԔK98+ٕM"`AMn3s Jj>rNo|9Vz< ]ǰeRJdM[P8`!(:"Q9.MJc6pSz+1w x=SD\ɒݞ2_gVѾb&iszN q,q=ƒm=*KL-miz|KyWFʯ}"湊aE@X4mni 3W>>-بaY?{10!%lQR܆ 3fh&I +7#pԛdqɱg49{jS! f3}DJv2ѿ]YCj/O]> VyZ +ÉQtW%gO@*PgM9J6~Ver+ᮺ(½OnǺXMXM˫(e,~q g*&[TjWC|&Xi.CQ.'\ hy!ʹ8u[l3e#'/fyySK4ED CX]ń~'4)3T@)wi6Tw\c} Y?j kvTU0EEf0z|~(L 9qfG!Ksq'n.?Dk0\>@-vF|R6 ɜ'nm>)zXRyMYj+k \ґvEAΤy`2휣vi2OIo^֧8Pk636;f iC6'V“}Ӿ#X(ex~;=30eLu7Z3cOs7.Xv)L,y|K4=iib56a2(z~cL$[v9ҼeY}` 'd1GIC5je(t$Lֿբ+—fxCCލEKd!1K}zz‚\g (`+Q<>2{$%ÆU@jvozB̈́6b.&"9 JQW? Gv`h7܎jPtc- z'd!Wh ØX(0CuiS<}Ct\V BCE7<8g!>< '(veL֭r/ 05?/ ,}U%jm]UyB}3If2@Ŭɲ3 Z, CU]$c'L…y)i?գo! wwꦹ cq"m`yv<,PG2ՎiVFj^C;X/r <}Gw౩乩W@66rad裗?ۚ^$h_|k be4ѾwqX&Oz 0yd Mp3v]`;=u2DŽ3 =L-b毣ߘBَr6 (gJ\=_ž]/n8J JdF#]ZC#ĒK̻ZE ) % `Fo 6wNߔ? D%Io#|ԛTh||GR,Cf]HZN?92DY΍[YxpaBDyWK<9u*v}of&]+NoU1tYąAU9JGK=YR.'( V'R(c hMГ~!e%bHۧA 7wžYW7`d-Uʾ*tG u%|)a=j(ٵŐeI']XXT0ġkh^#>DOL4g~s݆r GC~|Hh-DnTYc TR>>f*`A7tj髭dqA 68azˍ8aGW7 zpg|$~1fLɡK.[xlJ,/QHU@lԤg X,?o~o>8Qe/q[JLN^%2 ]u<$`u4~WAW,m<"c`VX5SRNPӶ|X sO":$+&=.YCY/?uLV1 PPW| p3DT3+M>߂ՆМU=ʓV&bZ0Xl\]p3PfQ}dU}Ҩ4 rVOr[ hЋ@m~h9Ns-s-}\ 8Itg=e&n= 'AI$qxps;ƛaΥ˛dsGJ;|P#rZ.Ƨ,P۲/bw5$E`Rht8/sF)F(H#=lP ' 5"Kf! sn66{n4/ane $|g] Z0'Y%Z-PTnj”x1N`n ʕkS1s?jSz$5e@ɁWStï_ǎOerܪCf3_EiS0a " T:ݑ`PHZlq\.|?hRtdrT. F:?+ydW <4Z#8`yU];fz\4D+A,>9X uǤ>?plGsۤ ν696z|L3{Q7Bs[.4rg66W eG&Ve|f2~6a{}i* ^YAf4T4 iWV(Ll0abHs]hEx"@rh1/ֵqa՝V&A{JXYPC`-fnssl{͒Wjƍ!BvD EF`޼L{U;L$\nT.AlC!}y0pFsϪZOsfPN*lU`ւx#"xU!Eq\ W~L2&\Cн@oqzoEsw&*k,rcp+&CeDz5y cM*mF U ,BTLO$O fT(=Qp3d41mφkb)@b"c@3=8TyO$LFs(=HckGGm5 .0?j_:RGݷ>4"aςS p= 91,L 81;0eePSkLGẖt@Qa cz*4V~vkˤO֝8mJۿ/i9tz~W& U83G]5v-ߞ nf[~gκ?b{2mpvHwыtg}0GaqLeAN}}#áYR"VPzec%J %n2zUHgL[~Ljg|f'%:tޭXw|b[X8-ђ?*G@kU(8 ([M}{MOM7sY-Sty;`'8v W,=w|l62-/Ɓ+ yI]c#D 끨s! ٧ ʬm]Bxb>ȧ{hݝ.ße.f3}RWoHbh=\lWuI+dAwcAXx&4xv-}y3$4PjwpE~0Q ԗ4;*H-v :va.8ۊzOW8Fl)yuK#y8~n P2PЉ.5mp9֯lߞCMtEGm|?z(/V}]71zf.2}uPFy*6LpŔ5q$u.KS|wpg.KAwkZt7ЅDW/AK[D4z^J-7 }T[,Ӭ^+-"\D6L-FcX"{JJRlͦM6ՠ5X}#}1rTUT;OwX_z=D 伌oʳxy/l)`AC(fJgG4)yh.3kP.BNȓHUHváW!̲q#=K[+tLbF}eoT^֧D tf_&EGQi$.lY_t@ǒMQ]:9IC@ @[D 5./qO殧ZAT~*L51 3UdLRqCԧu?6r D2ho7ʕ)N JRIu-wV) x`K:adtŅ+-E zc +|͇ZH?w#Pt "- ZuwyxQ;nJKLMCLHl(*2{7gꊳe.[LגK"n-mX}F:f ?16Je&xfνd2^C~[SyM&z~@l9xDL7 G8omP-3TD< &>ݞ;ӈ: 2U\O]5_Blc|JNoxŁWjVmˣgŒb=6 H'36\5Qb֓811+ \/N =GA9WtӗpU&.ŔL )L(1euW'=;ÆE6ll@[ ЭH|_L*; #:I -;jY\} B Okl.BJ7vBׇ%WC킗(2jЮ:8 #<3j~gСDzqs~=L*͏ƞϬQųJS*ϿL鲩gM?LzWI*el<"q˰ ; \X/vF 5$UqRoIӅ?fRX=9W-ny OD['$xų}w'/FM%O*N".}9,cYu !.O.=}97j/7 ^ǞJLeﰋ$=+da`0 h2ԦEYQHj՟pgWܸ2.DN=( ̧.ޓ/6z |/6$ /ӦySwtLaaj=/\1 0j̯(qEy:.q}k,PuMٟKI~Y{aq:aQf.. y1# ΄hWb턶t ׫&&SqKa!4[ږZ2BmZ~?ٕ7`Tv,&B7ce"o*\I1ri^Q-PC$QAe^ǨShHDc-4 ZkrlW/F7piJ?ޮM?B՚"OE>h֫E@B4ԽI2&%dž(-E?0nw@FyC}q::O2 y^w>g'Ң6VF&mˑ7}ϗ]zlw%[)̺Edge-PjSUqo;媶Q3屵sUxtÌec(Unm4Ik†\|r471\ɀK!~88eWgV*dœtCUs3&c c9[M?AMbmWQrS~7c{o[A>eDӤVB[5T'ϹLEtYBfv#TКFy?ʏ %ݠV'şk>oKpTl1"wS$13Vڱ };3B"ˍ,Fl`SNVCS͹_J2q>yst^0BLJ9&W&)XBI n~POC*A[NvSlB2CU&e۲ى}S4#ױnPWv1]crLJ;$V{/)w=}XX>kL$1(]}`i‹k>ye=IS2 ŞX? 8d]ɁJLMZs)8b-z?&-*?du]n=Y(őFk];K KlE3^E7FQT)Ĕy?5q/.\<2)V_m!xU% ;g>Ln\XHj.!\>ˣNfN[Xg<6}+s"Q!aO:XPaWQ&ʥm_yj jM{ WlUvq2 ?8Y\V Mrsb\S bG:P(C<4+ T(KFooCo9%[+*,K|)W 10NfJf-GK'iG]B6 ?nc1c -h-A$%ش2SԫÔ 쩇=1{+=X/HkSk3fԚثaαḛ; QBSuղ({A{1{0)– 6Nu gRtl z߁L2+ZdYp⑆>i+pON eoI0B,Us' a*;yhrNf9aV~x ]\}WE-(.vKz!Axc QPeNWSnvw{9 >:z (drۧcQC yQg1pIY_т. | 6}?'sn:|:e47~Pއ-Xi=7;/iG |'n˂ b7{a,kM|//e-hϯ,|D֗(a3>5Y_j)bX{Q[̟ '.[QG΢DAmfF`lvAAU*G:YIm3>uSYJS#[8LR4.XE6".w~yRT̓o^;ƆqT\sAMʳiիx1o_ix|8r3qX<@xWR$d`U? ܑ !L54a9dw>Kxf,=2:jjb6 ĥכ?zS܃]?d44#& M5gU䒮"VP <Τ@ Do6$jmf +#cx_E U+K2o+Ž021ԕ\{P#-H>"m;׋}( ̇V<Р-Wd;!}Soτ6\Z9c`sA# {2Ges1.YRnVc}qR0(_q`ge$+.T>K830.tlF'ٔAL@I:DD@^m7 NgmRNYjWŘܹ3⓪B%H3WEȷ 8(Lw $BM ql;8Ѐ\ #;[ƐzB?M3ٕT-Wl0yHzfE|tB^ax_Ƨ߲+,*gM8T,՛v[흶pV2@&M *PYT }} e<}3WX<:%['f,8s0M v@(}ǽ}UQ>*isu  KX2 hXJ8 k8/W!PFūܴLQ͉5Bg1ѴXv>]7ƭ)\DM{F /xڻ-F{<4JaCn_yJNee:tYZ`n3S)a^mq`PUVH#aS5t'߁h=|MR-UJ6i̚ ,}oOU\x.ID7WU VX4iֽW](M'|r*1(|[2s=1sV^2g1B)wEΟq‹ G鞝 @KjyCHuH/J}0f[ a]ux׮MjlE8@;JC*.g 2&ZӱZZR9Bl|{n*o6v~bTY͓jX=2jA-X :Bv;HoߢðѬ0sw ~q}o=R4Ps3k6!NWkXÜ=ԋ1\fFq/Sʄ洼zJm$л/B>ݸ%F'2io[3""#ZSoT0Pwxe8CH5ŤzŝdΜ%[&Te5f';+񄴯܆1Q(<ԡ)] brg+g隣cpg$[V뎹T4`d*c8OêKr-rYN NۼF~0LB$_Ѓ[ t J B\͈hb ,yLUGz=Io2НKlb~8c:2;`jnfq.w2[s.GS]x"U]CNGgC!''(/f(8>PM8[/^|?'QFT9I`2ֲ{&rh\Xv{LM$ū?8.t)=c #w$!$/rw wT>S"~tsYEߍR*7¦O")Y'%cb`Ty^M=] ~Pۗ/.|}k*^C49K6Lœ-D?9 ow5}%|wı u +~a ^4 0˴rnڸ.ћDґE3Wu%N_uG6*`PU”0"3H>扪$npB;^I["E mDKqwEƱy{ps7lOBpF\: k8݅VY5?'N*f07E*#mؗ\ pӵyp@&A؝EN *AEt'[Z;]v)DKrS^/I"OK%d'FӰTS r=A?_jl7Ëucv|?olނD[SJSw*L&ϱؠ5elpzE<҂%ȵvcd4- c`KM@[趾`8=ݰG^(DmNYÇ=f8La?9>?Yb}_}k48EmRNTđؖ!sfI~g}{p"OP7g[^8zˀvoc :@j(ZՎ{ b+MW48h6FUJi ߇ڷWv:K9Ss\How<*U0LS j5env3w  gs[ /6MqW|4 l ɗ/_~Io'~}f+ng_鳳6bN3̄R) ~sʴ ^K|{*d'?U y樳ڍoD!΃ZRW }i=^L'+` ,\ހXc b>HA>lT`F7oXGz>{RZą~`V=mL۷~?UjlΨ1\)u׈R 4ƿ`T9ӈdv*$V6.ߟn=L%3"]" >tJ]}'2X$J2%̎Ƿ8;ܝ-@X}a=M;);ijaRqr-춠ɠbT'[i ySlzgkxӢ-fi]̀ꯩ_rVd G6эQ@mZ:󤅦kIޡ$Q(%~tc ;ބBj"̚n2 Wc}%FY{V ^> Z홝ۣ  r v~=X5#Ւ0&h]\$rSYKq;y~ç Ѷ TSojͱ't"i6b!74 ?!^ G[RT\@L,"X\n豵.ȇ99 W7u\KC'ÿ"YGl4w{NMYnW3ء|O䡦:" 3_s?00^ ԬHWb6gt1}22۷ox51 )Ҏv#D5ge d:B)8-FKj (C ш,Dʥvɮ7΍:];M>FT}y 1qVx=]ۇnxvU-?8G$o9Pl\/I4?grfW GSn,b!GIXI"1~Z%w3bT[s}ZŪzl3Fx/Z7)6ǰty7_zK@D-.'q^+Lu1 u>nbZ_RO*Rzj$7Di,*&X{Z^^؋vv KaBTs0Kog៨̻Y*|Z\Q} u'<N#XUcTz2+^ZdwiqTI@ڂ5\nR3S5~YrbJVFHeY? Bߝ7馶m`}_7&%/*YLTwM͙@Hg;.CQ10c7_ 6d)gN QjX|\LaoϞ8NLbgΨG!+H7 wEF&Zω"{P%hw$keN@^B⋚9!c͔)&hZ=eubv#cYE5AO)- W&$Lh)˜wl1V>^>Ld('\*a_6 W?/Co|C$m@{PM"[ǭ P٬ ٙ6kf~4Bf&`hL&c]ڍJQq"6-tF0fЋ4nDo#2<sfFs&5I v?7ѷ]#+3N" _ \j$n|fb|ڈlMi$*PqO(s ؿtmV;GUԙYV6k`D+JQ&Sd)0)a% >@sKO)W /a9{knv/o.4cXRJ<ףv7&]@.:KKHgqO_3}eN=9*+1=<\'Kx^cfu"߬N(T;|IAKm9U+,ՙE3>f:Rtvb.Ш rKWފ笘dP1!pTue(^\^c}ntYJm!Q ȧm-s<& H&\"\18ITI6&|gL_(L̍i~S üYOS=[0C?Zhߌsžf3wkR1E?xh"{|T3n;v95.BJ3ޖ3$`Ym0P"Gz2ef[rd^fmYs90V,G8]4&p{No9@,y*W3Ҿ?BU1QV2cWUeL6R1My6gs51 D! lrXr@1dvKI 1K7v]2i:(kAgQvL|P S 0 v$T=\XUA $$s3?O:{E vZ瞼\$iy svx.I[UȞ([X^Pr˩Gm\51Xrڌk|Ա.̡[5B_!kxY짋d$YM얡=NH=BH +>/UbxVbU L^Ynpų!- `xV^)m>O9i.1 z2v||99t|TpsPWW+82],}|m K~sr>9ƥ$mսoǪnqAy?-[P=Cd_yX$\1]g9BG>ql'uMVmb\.j؅P[1ʤ-j5O l*^n}Nk5y'me2D. 1sHd+U1xFϳ)م?#%cBq҅WӺIFKTq,ֆڟUfKg}|VVGA}iDvqϋh |8)4Z av޿dN&Y4#,8n{S 3 ?vjzlZjS]Xr.aۿ/V2Կ&Lߓ7\q#py욑]u/1GQ9#rXq,)?grp:A ͎>%E?'`寺RPɢbȨV5q o|Sf*JѪԅr>9OZ $h3. f5G(FQ*bbm!&ORHΕY5s`y9UgZAHzdNY-m:pܕ&oXY7 @+dY,C [xYkp g C˦}u H8E$ ķɁ ] 񜈃jmWsJ܎ }sm)"R5-Үϻ ilUAB(> k&,'2[5֪0%5EWoye %dZ2AbS\RWbt+B=R² O27OE_DU %DsLsux͂ȼa:<wfR[(5;þrXy"|vb'FCir$痎tXΕ;;aOq}ѾSou>"xf̈1Mݙ%;&I-85=hW[Ze}z ɑ#E^-^; $ubz'\gf蝸kmk3H:Uoi$S))O}:9aGԟgi;^tP>:]5mbiJ]bbd_Ŷ [ߔ;wi1hiY d 'ˢ09Z_6*V5gO(ܹ8WV+ &Gj`FDf?$Pƞ ܀'?L *-48H>=Ȝ;[pв F*c]sh "!tJM5QΝ8GiwOJd5J'~_cz8uo&7ДN`QD.2jk߾Yh4Nf1/qKFzS䪑!gw1oyBMYcb F1~w"^5jlV~pj8K:+VaK\V4UdKYt,CA%3 ܵ6p<7gլuX٥x ?߆P%~IׄSkD#ԡ%J[2s]st t! mojy9a8 5&+K΍aU NcC3qȷ*Ecç@DR ke?Ӆ]wJ:+L$gzqO/[A쌢W $LV.c-X13@(H5*E#-p7/+OsvԕKgև$ow/S]Ska\[9yYԬMoi:}{^RON$\.B'fLj@'u#zԮz |V}anݽ1[' t'T(S%GF!S7hɸ. 0!q-G3̙ɤ? 2Mc ;L"V~oo{5%[Ó^;}ߗpv\A$ Wf(WeWe)ԛYKQJISm <;xc*@!fњ6{'Ū'Ӎ{uWElQYl 5t:_\J1&|LN4X+@`VK,^g3@5&Z*ʌev?m!C"a7EG&O)T9P 9.$k6HM.SJB(93Hc޿vRT a'c"H YΎl@S@\ʈs ݼqV<1e1w=ŲolcҸkַ* C~l0]&Ѷ͆ x56L}b^aZT3Sj(m Cww l{<OŨp#Eqspۅ9J[^_x]Lxʔz)UU)+Ţ7Q_{x^=! %aު6h}1 3Z9¦Ӧ(Ok4PvŎnKfkp}s9jtV:Bg|P,7.;ӇB ׯҾ{Fck&ӋhCD]z@bi>=YW)哴}܅e.-"5YB☱u3s@=Ңap"[&m9~r>Mǜn\MqԱ/><ShKwh䬤AKC|9bTi"7ߧ*,Ij`9.=L+>yȌ@-* *N[D݃N9bi/juW" p e̫Ҵ"Va.*7A{,fI"T'gE×$y'NkC*K U^֑QF/hry3'0Fh„ -Srg4~c}۶^^?g w,Op4D˫,ӡ¤?g~'v8jSFoU&ڬ#jmJO2~Mm9i\>8:^~og9eoeZΨ9=oj27$>v/7?'pt71-'x Ѽn鶣O82yt4$1bǫjGаzD<]3BfxzYwx\ZN+%6$S\5jq%*Uд$DſA +=Kr(i](fTIShx6f )-xϛ7;_ݘ8M#rZmp{ ]ޖ >R/a'뛺/Y雺{itKF5 mO虲˟ d9Q}jekOk̳8b! eˉd F14Y/b$j 7aؾ* `4 ܈ɐ3-L˲ \1;`(,Iםq }Rjһp=j&s5SU/Il.eV6ۄ^/~OcJ.1XϬ>wa,DGa*Ex๽U?G⧢Jk&/ߌ+!Mt1uJ 3A$[Ze~>@\2Y^>{fRLa(J^89q_ Է{_**SFLA'avMu}kR{rյpB뜁 09oBa蛣ԕ N,U;#sѸY#xˎ^ \-Ȁp}ǓbN6U#TY]l'($T?/ɭJqNcW GCʲpVrJ6BԘHWЃ}ח!?j蹰j|^q u(C1 `S;oJRLD|E48e,鋨%g/]"39(7\ƷO-f"*O\ ʓ*^3ǧ[DNۮD}֑J7u_tEFxqYXf8ﺪUmgplvt4q%jք1`P&AZ f{>̏x\ #cTΛk|ku:7sLCTk!a}0bO~9Wj|KYcJ T.LG-$#3 i!bߧ~&:kpIg~S5rN2}Y 3Jq;0 ={c:7L>2β͹K+ff ?SV'}pJ(c!CrZ v蜻 [ѫ^-QL"Kwq6lb7UK͗ pe/k\M^2׉FcH|1qdr4cih= Gf耾:7o[6dT$!d+nO-XM|M:r¢00rreo[->YjXASDWdhњLdZ4+Ɨ~4ODIDj9hd%|V)pGI.`'@ێ/7rA?6ߓYv_s-:}΅fd^~S.jdE(D!kI޲ud2aμIP\"Tj+;)Hp@тˇ#*Nbk%iTԵ$e.x:sXI㐌ZK@ T19)Ê)7-p8F붕>G>yo3.,ΤBa$6vOfkn[V*{7oEގm`Ö]gy"3}~ *E,m1;5y%,ؿuػ^5MA&[^yȡa ^1;G -?)gb ’ Ka'TVbNdX !*~9>jD lJ?Y@J6Ӆt.wxic vؘXK❉/nP*ME-Mt#Z ?Nl֣n'WC9E"U槒A4+u$=d2h8>,502Z{)蜺L 4Fv4#ۯD =Ln -3.c¦]- '|>!Mց \`*d7@ dȂ儧7!f( LLIk 0D%d Mj+tROH 偈vgAުMp禹F*QX\.@zy P ~+!`uE϶ S%*Aɻ]m#NhA/n–l%/dIaˆj(UX:Vڭ'>^'Om3gu}c!][bs1Ş_DM} ,InvՐG+.%6G+Ջ}3GKK |*Q:^o@M+jAtM13+/K̞"-`mgPH v|X+V)j4"IťV[ Ml믴)d>4|-R0$U#~=j1ۣq/Ζ[EAqQyu@ z @6-X]ROiPd*Wjb5REH͡T€ ؽҍ`a'צD&| 7'ٮHyFy̠#YVXlt)=Qx=3VomV o,s[˯cᶷNdrLeMt"ȳOTVSC;"j )%WϪOsR7ls>+;My#&-Q◷-N޶57bg te}k,,nZŶ7%{*)Cx{~QyɏסdbW·vi[p}93'~nJ2yN,' 9ߣd/%$G < +@rG0f̖maScQ$kƧ:A$u7;w,t_D?Pp(W1)L?Lf-KG*lTbo(8lIoQ?X9 vNY,l˺DŽZ,50yQHѷ>gzN('o/Yn|g1H=x'rio|? k WM 4hɸ҆DO,RVrF{$G$C~0]hSy^Z4oNƗM:H4X;Xr,"3&⺊ UQXa앵q"J̈^}o±%_AK3Mͭovn$/qK(lj3uP%}g!PbL:)^aybt䬖cdbqXj {ӌ7*T#lvF..E&1} yc@.C"1 ]g<&w=8oY1A#y{z]u]g."mڹ tgj>D]?SW-iMhvcɝ =m<]B؄b) ׮񀇣;f1'n5#S(`2,}AکJq_z, & 6hDT `@xrsp@447}_}Lh5;bVvߊ"+b ʹ8~+-OȢha~-05EdzgN?>sr24/^$7 !$Co#7I8$e,PX-"W:.& J)aB\w,7arg52`S}zȇF\HA ժmnꦡdtH9۪_ʏ!ȭSes t3W"+)Ȓ" $`?h`52/9OwcVVjYqs[$xcR܈t|­bĭSehEϷY-cBwq0{510`ONy;FRĆt;w~ ;}:{R}`RYr v6RSnJNO ¡HȻGHKS kѿmXz[(VlFu<|V\1" \Ńw1y2UhR;Ϟob&]pXYH;pQ~dp>(a.y.u&,U͋LHVMb8^E;}~!ԢjonVg=O#$MŽXĤm8I_l6i(Ɯ+cW޲XyU &ho5c]'ǜ-*lGf9 Pܡ#g,V(;8qRtբy?&۩[Nʡʪh(&fpuЗz v`X==U6<Г+d^ХrFCTG>Mojk_P̾߯lW ]$S1:uԯnc/$XKjc;olk{5$O`V󵖁Թt/}ĀJ>F*}O`Hi Cѵl\ }8mqO^@,dO]\[C%D@j8: YⰲP8n!Ec1KL@ ˴'Jp^6p/1'g7(͎-2Tޙ]S,|SG|˧l&"NN/ܺSmN;tt roC$:4QI8gWwxk-f8\/-EPd{l֩w)0f4f3AoI<B_).EL/ VgY8^; mOw=u}5TԺaR-1 lݽNminX@Z'*0`P ->l @pܻl;9q\q7#?crx!bJzO%V\u:f^HpK pao#Q]{Xn[^GQ4 ;UOcsPEZūC&˯?.9 U741 Iaop5[TCLrg:H-9Ou<aMǬBÖ4t3:A[];k fQ.(!5Mc !8ƒYKRjYgW pt;.y#^BGtIcxΥAտ6&׌z!1 lrąTM~ʧ{U$O3|cOV' }XԪBMbw0ҳfP}$àɓyޅ9{$T/VnLtm=x{G"qUz vV1Z`A_'ˆ [օMYnG1Sĭ'AۅuQ+SF J)(e_:Qd) 4ٹ5(Zn pQ^9lJ2Pރ78X_4QNf!ׄX\ -~/҅HLo}rV/jR9eJwݏ"Ɨ*)//Dwz ze__2V i]w)v7>3 Gϓ{z4K??F*sT0f+B@zz5"罻QӢYl(ش=whL:wGC!a-9`enUmò_VY$C5U6fr4'1oX0CX4O['c!{wypW|X1WnVsZU'l@UGi3xLO4ټl];̚S+2-bfsj8YhR@}X B={ppu~D±@9B ^9w'3HzWMrɭ*ۘ4E962oY^mwzSLA7mP|xϹchR-OHno8k`Th\إ [ow+;ðʟ0z 7X`8:$lj%Ν#ܳs0 ؆M*_nz#Hvbe2C ?xS[8\9l]V`kwids& &QvWvťv )[h}i @US}8@*3+7$/lg2ゔXFM\Y02+Z` z?8(l5!Bf+CSNcZ;{gBv{];VwzFd;36ܸF]i4'HLݻ\R[b5}6Mv*12np>],jyX7+S;7<ۧlZ3PP~*`J|>75'KnM؏;YTޢݸKM>>q8! md5NOb'(ZHju/NVHEw7_޽f}u sFzBlCJ2T4naϯ;tQsUG:XW.cxi# ~u+A>v(ojU`p dךo/sWlG@q.Ϸ ҰJb>a;H3.zOR ς=P?ZXwgVN])ݚÎ5|vŵ1IUB]1|T6\ZG5;^'TgͷtYLju `i^bW3XLgm{QNH&337&@cNwqRb5" u,^g3IQ`#\zIK9!|d,xp,k<i cΏ'o*nŃda6{mejoOR} N=>j6u`Kꂎu tػN0Ǜ k [FȧI|:ft.E5寃u|N++D/w]c,tM=)\5\PseA"R҈TJn5zS$=U|YpEJZRz`Ǯ⣪e-)A9 R:h":H[01NQ6`U=qw!偂ϞZ]]#olosh:XQ3ׄUv2LKmS 24=s{O_=WX_Tg}!XDž>Ru65.CV¤ yctouǮ_ 1:O6]PqXR߾#̋(.l-^IJi=-+ndYUlOVk{6t˨2s>Θ 5mq*Y$fX+Cz?wQq `E]~H#$UJ_WIt>a&\3vD!Vl );Z:>53UEr'ߑBG} |Z,M|BFu.#ր%5>%`@)_^+sjqykU"'6öo^_r}©.J՞CRrHN_ɪ뛻oS^1ƷWŸ( 椾sYu@=W:-_S {/i*&\]QX8,#Q5୘-E28`(^!&=4 2ۊ*ka x<œ_ͧyJG j9UKÈ/Z"5OYKvƙnZxavb ŰwZFpvyhw" ΞX椏Z~uMڈX lQ* wxX8}?m*3*KE!X J%\14d>r)].1鼜1xնf F/bИS&Cl'GI爆t`˰>=ǯ 8NK{8YS.^*mK+C Ggf2@]aՆe:x16_y?iֵĝj^vM.cCZV*)rPӓ˃ D&ْTF};XJAAx UfnIJPfՆe Y{;= ?{o~ V#gqu濉[e`[m34R|±OW`5@15PSڳo)9+ G()wMr-hdC=7@j\̆rŅqؑdxJ ]Qp 99 Ba6/2#*fàv0 RYJ ?VaśRϹW&2;3I/[ejF`ߣuEU=f8E]?{V#?6˙k$<Z)X  5RO37R7/En*LRDБ|ŅJw5%GoOE?׭SCvf7̽>ф& q?mBz8? A$ڟbä}9{ݥ'|WZZQ^(Oc!<)#BඖU\t @zpHOtx >AR6arل(o Zl>zqi@9aiqR>1Y{b ^"Oey9u_LmlNtڔ-3F\ ꉬ|`M3T٤n#b]#ivy t}f{8S4SX7I<~VT^殚C'}׎ֹxdhY-Ќ&jwyhIYr ;xE_P5ke7} sG`sU[dY^ƽ JOECKX0eE!A\᜞ޗYjbKPҪItGNC }M.D1H_TXH({DHK W*9.:z"Ƿq=0U 9K)SknJ .es q<ʮ#"+z/&ێe)n6_GMd/CG(Q^g7ϐ4!S&?SVIN0[ R3˝K`}rd Wq3d0ϙVb"gecTۿS+'frn =PvOp&]Ur1y)Duȍആ_yxlσM1N y$lB\5oH9R&K>\ ı]1RioYy*ۍ * ˞S@cm꘾fO>X6r#q|KKyUrz׏xoHؗpxl.k7c=UľocATzS7YΒ-}!VEWvu*8֯WԞ+WW/-"nœ MeK*ɉ mxTKfo ABD;3f%Flԇvuޜo?Kv!gWQr es;2ME#d8Q7gOTZ)0+dȯnDIES?/=Fxr.s ?l-Q8P(!'l I}VdFo}LvnbPk %ȬԓBe8 ύEr}#6Mne>e7 =+YMLԓ>C;o[ud&\4qaտ,걚,d)C\USv,]o#7'$aUҩP{5: M#"ZaІP]fvfa1OZg"@NP9,FU m;^F𨴘rqkEc)-{gAeIh`sMSfByΆ!؀=+d!cPwtVJ=%I zj$ aF2~ %9%< QT WC:sAdc"1=߅(0B8 >> ǛN-TM9+0[FX_aH).du~o ݤBBpEk?`H9Re1Ds)ϒy$q V |weMo0ťPWd#t)un::glv>X똂mŒbĉR -|}@uQOt3&L&#/Yg<|R{L)qN%Ƀ]l51i-´YN54WwO$?; )n_NXDk4/gs R?tǫa(v_ޜ}cQ-Jhow{h.V%ͻ Lɒ?ie6"$lad MQ[d`PݴO^y)Rh*)V/ʹ/c6ڬ<l8zR+@"Rx) ȬP!)=>C,N$XR1$ֲ9؞r7BWW d.׶ ùhsزE "t]1$RFr0+baxlA8?G~ 6%xSMRq ӇAg|Z"Wwbo+HG9꣮&$1z84JN)+ҹJ?'SV)kOS 6sʞBmGjK  >'}4Gra}_JI ^[ʡa_jۦ^[pBv}57ʞypW!B?gTϚ?Qzfl:_8P,ufqU>uk6 g8? }%Y\MkӺFr0 <$W,q=[)#TixY7Nk`T鷋ҙOyϞD)]2 *cP t9I/<Γd.Lyt^b)3ދaH :a!Y-=,/W3<_YyS…e]>)\CۃWR Wg>U|j%@h/=\NV~%T<: hQU1-Ë=F_$yh=5] 8^I~{[蓯Y>{: M +u4Dp33%1h;C@KuSzrLMuu~ ;ﺳ5's.DlRUR[J_u1V}^$Wd=L*}Kɺ2} -3j]û:\w9gMF?7hR<ͽsQl> gz+Xp>Vc5)f RfRaMGle=!65Мi}6lI:X.+ʴR䈻 6BrBU꘭B٧\L0o-o|y]UC- j+uq`|񯬦7bļf %ep$fI/gV -[q B~<{ks<<2XCY2T<t AC$Z4iJA|nru'N8u0*Mԩ!Q߂YU,i#J7\~|BP?eeLSD4.|ZMρf\ z@14tbsEL9ݿ|sSGy(9U\=}H5XJ@] HĴjs;ږRԶN~,s4x:6I혵#)n,˾s!\aX%b߁1hX|8MZ(.PH JyysVlX;䌻Lis=6RtQڰm@<t,i ɹqWz7&lejOӒ2#},7dOѹS 2:!7`]מ+s;LSuiU3Jd.':_7%vY2µ(l4:6Nf0y|/l~9v#{nLcA@j B,T0┶8Ϡ~Q4Hs쩟QyD9('ϲ+'l.4wsż»FjU;aH6;_g>'qkstՉd2GuqPcL$]ʩ7`˰:`;Dx`%X&FgNֳLIk%J!vɪ 2/'ma%0),+k1 ԓt>;Z`s:`@݈XF #=L+/qbB._¾(#7=N_`ra0m^0a‚ ωׯc'%Ca}.b F]ŤU^u~>B)BP˷󓖔@,x0LL.pe}Bey*:gU1sf ϰBhR?bܦ>3Fa2d|dAwqգOS\tFfyۆ{)!_ͳzϹ_][~O ѫQfʰ\ t8=Ʋ#oĦwÙ.y#szo[mb z8}={,"FYgO  ˻85ͳg2upIM4\uqg,:K)PV^IN h.l9WOSmm4.fI*VԙKs1S1IVɂ۹2Sh*_sSNNK "Vs} G藉4s .UnXfݵ `?2ҮO٭'~w{;F{V|}`{ZPhɩfZfL$<@ȫIΌu07〈k7sP1~5bW !'^f7hXΗ2%ԓ,,Ld`ˁQfLLf1"v13C$v+7%Ƥ2|< #mm.Y\[쒱v:39q34Xff-Gݧ_=2i9.Rvd"zTNI>[yxY#qDkFrmu7DK,4aC{)##Q@"280Fl'ArZeGg`D[bId9-/4α'N+,*^"bXv{Fe! 9g["R*A<؊U(NoH0T8ʧp9{OVƝU3b#/>P3OP U~bg1VCvgOi\}ar$XCeK09f,7$ }K9<&bhJ{4Z8"S3Re {x/O:i 6;ê 'b[0w5tc? ZWe q+9"hcSOYUƎ K~E2f?BMD2GM8:j[N3j2Nbab[$Ka`j ]}}5EPT@~>Sַcfd*V  ̟()h;Fi6&Y^2|dT#,"F)f%qPJ/t0c[&n%GpWB.TC>J}`fuGv̼{e$rky04xw|u "\h*0a>cZsY3"P+g$6/yO)5$ AyYpWcDo4;:5__WXF U)UU+TI?N`Bfw,9R?Q {넺cgIBґ㯽>ョ'L*b}ckhΓpvNrL<Š 3}jmdt!p}XʨLyO$@N1M24 &K9袇"dE3\1buvD3T]ܧXU@B~f~<&DT#;~+: ]67)wHac? k)SxT{8nh}dsL|~& P}"ޕ$b./"d5 Ԗi U\`]Ĝ>69ψ\"$P @ni.aa&Љ9Qg?nwnvWژc %zǬ\te6M:V[Otlj,2VF(QvmB@0hqԽa>fsV5À9Phj9n2CpHτU0) ``4q;R 6zN:!Yܹgk=ǸcEaxdxkV-WXj ŋMC<ݘ8 _kZu"[bDd>#2ߐu+^ؑ!\uJRe jPz1۱ aD_YRgZ(%p.846@ՒUb8h11mT+>B$*UtɀUistA42Iضf ⩐9:t$q/EȄdl0Z1$@{6_?BVf 0b"|HpW'WItT889#M*/+E w,GE3D/&U8(~O+8V6mu,ȓ/(ܵXYJ:r'+;G6o*e,\[kgM=*+vQwɱOZ逅_F:vW6W:ѕP]JV'-֯`[ byѢ|Tk: hTW f $-IW50ن%XA%#82 k7,g-9.q!K^;MPMAbu= ©>hi"bp*Jlnf\mE ܺ7΋(KEN-eāV$^)?%'S5~>]`PMm4_tV$\BDC܋4qykz؛/F4NA܂ c<Ǻc4d۬\fW6}D7nb K6U@:8JԌHV4OY*+IMfɧ֪E1_Bl}9NdثG]@ʼnX'屾^gRbYA:_b ;Cfx qa7L f-#8",== nե/a( AʒnapzЂ{Yiȋ'Alc5̼u3cB133#Y_Jq2~/ϰl{95#ޜLCV,($+A&oMuT2Q e XT2fE2"wdZx8B=2vr' "Kkqva`z}ZZ1m;N\JBN,bH;CM~'^Z Œ|0NT Z X &*Hw|vOPwOU uTeXznᑗ4d%ԩL2MHjM6\T8ŧ{&{6R,uѯCMp p86aBW;3g6 hΆ >tw#IUﬥnn-yˤEcRe9Tǯ䕅79gr [~>N :>(z5RЂ*! JV CL 8"٩p|I rR PnetErWaAD/yWV7A aFMMp,篛E AFċ.n5NueqS$V8,+EV?ԏ7nH>=% YⴑeճT29)U@@=2\g>QJ B+5|kKK*ڢZۿ.eϬy>zCeс!-T绰إwm=2CdVwǒ93Ft9Njgʤwd|]CAt:&8S2KZ4EB~wKH))ٖSqm-Vibђ"5YPi)¯d)(xA03S`5y5[D*PZj]xVLFU\諈3: 7, ;;'s NKT,fZ *™D9+`t(ߎ x(hU#Īl+N[^N ^ڿGWT,IJџwWOCd%dʳgU!C̃5K8Y31Zsz7 &=f}+ ;"y ϪVL>rE,1a_Dci#V*UO HL}2ɟܹTa2t7>Xn.Ԙiǜ| o5:3Qk+>i xGvT$a a)Kn#IM C%Δe8k s1&C &ջ6KydǴ ˽Tinru$= lJ +{+V|m"(ɯpX `aRM$Oh4z  4y8{*`@LQp/u)h,UU<(貴K{*0D׹Iásy&yYוυN;7DWO!AVUU!u'C>I_'F']|h@e#0AJ0xYzJ0|lЙbbe@Q;5o?eC?Ls5iFni< +qc"ec\J1^j^ϴagL[Q0p8197Aln2dcdi{| HfS܅7wGy J];GvSnJNd 8)d9Kc6(>?M$N0F 䄩 8wAMj? H2鲨sK1-*K٥p6ﬗ83:ۻ=?/*uy9 _CyQ˜-=G:KX9VU|;Ryi !@9CqUG+VF(sf29.D.hpERîDVF߹:+f-gZ?iV!6T xۯ:eu 25{El PSAF盍0Q<IOzc/S:K>Ȯ'!倽oKU^NaukCuKU}^C /aL m+o%97 ɎC>dYa!+ S%^;,Y"fϹԬ49aYsӅ Q#z61gДT> mBM1갘f,}2'h1H,~MO#LzrVr3)  t|ӏ6j x 1Jyyq@37E# 7N{I:,ޕBR{h^nA1.HcLxV<ǢPX [qbuo}TMK >NߜyŇ)Cbd;zbkVHcѾK@LE xBoNB۾eX(l UM"2a"/AYL=w|uv"eNXFB=Ӽ9Ts$Z9wݷG1^9J醻I>A}<攎I,Vű:$a4C3PXJ+x-TUȘb|Y %C|&S>AПBs ' ֘Ƨm0fph`ɇoCqhxWK``D'۽"ҳ< PܥNPYiL kR5 7QSH`L#97,@MpQ0`nlL-Ÿ-R%Pyoާ {R;rwsQ}ǣ,nVKgO5(~ Ya\SMʏ)/9"lꞕ*G<;q7Uj*zwKϏ!&KT:yeDYz"HV򸐁?Ĝ`s,]{:Glr2 ɳ@h \TG`x"h6h/{ l_Ua3ɔlX+9ːh .d:5ˬXgnثFkI 0NQ;D?)Qoy)2|Qk#t^ o*c9v"?&)@ci=!%MűXmx:m |eaއǀC *OZa\LRbyCHh pdGxԦ|ȴ}u`f/ygI"~ 8SZ:v^*傌?P1 -X=/zM T NH'L{\j l,  1]=o CR! `#k-%{7xIIy4T&c+8D% G%p;猵ЊYpT/SFV2^8F}Ri4K'$BӞ}EV16/M馨L>zm.8K,M!X = =-bc|)6.-*Ľȶa|0ek]dkfS=Kmx6\ZQmDOL1gucy;_9=k@#p3soE&;vE%aHO6s ~М {@YqSV$%pu~bD`̦;@ Ƃǂ+ mT.x 9Tg'uTǫꄜ9*%X򤟄m%iTYevB*iIk'y 0㜇3stM ÅWgYcܕ ɮ^>#wr4[;35.ޱ#U֞D4$H"k$42dq{ }ʙC{ |Jr{lҹɋźL@ ޙK"D25剆)31kXO:/KC #'L]g`GƚyA8' Z3WO6cг"/z'5"O0?2  rŘ 7ڇFo]tG2͝9"RoKVV$>|p29s( w0}#A+ ezt{rƊmr*z),D锯Ο;]^e|h}'WPsѯU wLSiΗW9]ŕM3Zz?>F.\P $83/.ߖ |W% h 3> ~WY+ˬOF*^g.]be2 vMQm~ErX-)Jh9c4Čw0V(<#rKL 19:4)MpY#pb}0i ;bP>qa\'Vр5oPI9Ļ҈3a\ D-Nd3dv  -*ʪ0di< Cmg"(S"lԄyjm*;]p6?Z(9Tj͹ XYh)!S~'&4%ktȈủ"WZiM!NyNNĆjs{i>5=N fI'ձXRA֪N^Tg޹Y 7j}O'zt:*|%:rfڟy@O_YAFnsJ 3ޔ3_mdo6ք߲(nF"ACGE8@~N;NӮ(*|G|*nqqka 9| Ş Nbb{UŌ/ ˯*ܻ>u<" (MAYpH+Zskqk>tYg(חzI©jy4/>E,} 찬W:@*sI&Xě! S^C1''_LyE͛ |b[r+$Nb^!fC)ȡI)c/gonA~ pN=EDQ'sVfyf3CHlbQ6 <0Ѽ#qeis 8xcФ%:čj-i ځ0 ?5Q̻~q&9Jjw8Qy\?9)'X[%'o!l4H t`Lc3 d9;9i"Q&H7(l&ljkg'M i&KX]XYMTBSߡwjU}GH· ѩ0HM, ?wQ:往;?G-^l$ gŚkhbl!Iy20l0ί@O`ΡDYF] J(f.U0e(+E*į0 ^)QU،[Zd = R.w ;Y{&+3!^ĊYQ`.`'oā(f"UN2@Ber7(Ro}lfbF DžbBmvhc|SbmPd˘6"8kSE7[Y4}B._Hn>$Hv0zo|T$TlA>/bRf&|Nė[cGPcb!UӀY?6 s%T1Yh':aiۂ=Bߺ"Xʺ!j7PQm1L9b1 nt Sc6 ^`4"(ظ'uIdjDaL;a4MQxNɨ)īe~Of|*I%Ʒi2ҭ 4rԙ=q1P7Dpuh8mTk ^sM[]mM=aɅ2#*Ӱ24b(`&T8h褫!3Z?&!~pS>T mȿ+k"vKYXuۨ0:\EE0;~!6> ,;N 3c}9s߹$)a0x蔧 !dZlv:n@`G>1ݧ s@`:i#KdUU@hT?wM~_Eq*bz٫yqdl٤e]?YUoE֗{ؤ*@K7,֨O504ȥGQƲ?ob37ʤ4tE ~jN"$gdiEn˰þ3{Xif_ s AO\b/<rreUd+wRL,XǼw}%:-=Ef٪jEsnLƫDSj؜J2x0_ѨbّZߴ1őt%>#9 GۃRPңÔ*^{ڎ$= cDMfNϯPd.l˳aINC{̘WFA܆71.wR~[2saD P[BccnfR٧& մ=}x%kBl(.a'j(%?2uIG8c$};+i@&I)&f{C:XXf߮wxe{lt,yXRL aO?cQm$ :6\)'C :d JR4A#e)~0,SE`1ˋv#s(e/p zy @Nx/s5u$zyXŰ>4 S9ܡZHHVΟgBBzSzB˟?_81$0%qe9&+n˞hĪfURb򠞌![k+"*H9i`ɝ#S獍FOU6>ӻVtԩٰ=|K[Ѕu ^~!q];l%휏{TFoǢ7^WasO~%|b1[[X`8}Τ2>vv+hjP,#Kh b= rDǸk}¹%pU%yi4hL7`6ek6/.@ѥ5Y]f)c0sI]0vp{i^_D[[h-45T̀lPkC6 %ORcg|}~a{*6XnL,^~TLcx}ܪ~B%PQ.zdfOμZV:uߙl6eO"Q[lC!EI.sݥ)B>}:iM/SNI:,/{±yN) 4ШNV8G7.ӈ3ySB'*{^>P$_qRsQBo0S` oQSΛ -n7z,4aHе/ ~ĕB?D3>VT Tt |}h?-TVm*s=rp7clDZY`>4ŎÔ2^C|V!*OM\ !٫=YC(aR[fqu,f\HFn]qM3~HNl|CK֑\dL5b }ls.BpA] ^6:#!sz6% M%ܰ \V-`V,[/=q|_dDC@BسbF[53rKSw]"EBxKcu5T ؃M^F,1ňcY_c8>\szdJCQ=jc&ˠm "AUz*17B쩻pl^Y^v4ք"A'R4N1Ϳ .~n>kӣbŻQGž5V^wj;#rq~qGx/T0njtI~l1Y'C[_vַpg0?ėǓXɫtn ٯK{kwjjqR/9𓐴͘ZKxdp;MQ" T?99}!6'q^{6?{S_e?HO0;C,1pe>}Ph8Q];q._Ra}Iˑ%PJiaE [HBX2 >ɚ^S9KdWx\W™B4["KӖm~_MglU˨H nҝkW(En$nţ8֔ J,'!ݿwbK?ݐC{dt8Ka)9v\〔~#x6):8c:<]#Ib˗ҐO_%SY~g:Pv-q{cB ,.Zj`j$ / I&ne"yhA8jK%a0녑"db")R BYЊwS!`}2^;L fU٦,~6% &n(Xz|jSjv $H  |w7^=]UJb~M\#o ѩ&XrLhV%޶ {KXZ6ԫ +.ڋ.5_|:W$r@ǿlN_㯳f|pR!*TtUV NDj "[[BlC@ T){ʱY`'}5ocV94_hI-d^h[h0V"̍W /ȅMhٌ]P¯%e8tuMIޢmS%oBLGq̙m2l|HeUw.7rTd:[}ZfW[*˔Y̫x]4Ûk:kLn !.6}ӣ&.v+E„4p6=E'S{u)G-,bie3oxh2]5.=sZ"4x)$u$މ]!ڴ-ĞƝp>V;2n"ҝՁmAN\jqEݷSVZZr Ή jS7CQIlnvmҫ`[CЭ!|/gI\<ߥ?l"Z\}GT![I_͒I[rYИ-$Dv'\m#oWP2/h6B}ǮtȯˋGS"7w& uKSfz}/-4$ dZSSB΃8Ϲ2':=\ '!\[y`"BFDzatۍr~?VVjGPN GOl*^c\M4^̌:[EPCu:$d1s$- d>\91uAD-RRU_bu'b2.Htۙ8$khe% hے}vJ.SL|,%2<;mqHkvkeo|A({1=V0`\ݘ%q \l&,T]t#Qo}w e@Byd2.u:# ~ yTo*dlzyY5 r3<{SJ-9*mi0*]Sׄ3 '6Ѫ^a*JƫBf|<+ pc? jaǿTZRnݠܞfzvVƽ%}}R=lnOߩJ.qA)Jl^֮"B/1V3HDfjV5 ڛy (*`6zq^ t 'NIwCrSOޖmAQ*8 !uZj4/p_Nԥs6 ҈D +D9@lF5o\AT aEE4>1^~ L{wwA%Fz3Zz,xl"v2_bg|)űxyGSBNs\Naf< Qu2ni01KUV2MhLUw0dS?3pm #)F]i.ɶ[/C#$ wv)T8<\M"2Uj5|#7H;xdGUym_S6Q{#=4!x hcZXX55Cwg$ 66KTܲ98e@gyq#Fܸ 6w'jA7_QYy| =g|#w|WRzgyc5|W)3t~z w.ɔ }iHDô~j/nUVcuyOKʢoyg?Ș.9nY)94\A95 1r<2(gFsvĭ;WYOTЬpd?&Pgp-ɿ?'lJ$YM3n>BMDOo<.9WKSy_Nݿb XVa\3-51s{ +E)f5]I4T҃*UtʹS\PX$U?PS[H险8K l; b4z5НЁg#Khv5xX `Oѕa QyQJQ3X4 |!ƽx`z r?"gbDٍq#FLE534X)7SWJjƍM mַW3泥EROTey:*Z^Zoe5} 3ŭ=ȪY^ (Uq9\_8pdƇVOy=q 4QsuG@}ju8IDpږ9='4۔\?g'X\₁frq%4wM^ǠRbZKl W~8!9TߒNHpy%л}gH}E LQ*;`?l*Zt+v\T PU{ ODl oR~_W?l7Ge-yZUFSM ^4Rupk'RI&<Ў拎$ ?߰'U~qzUZlJ׃J"&=p.Z^YLK!QKE e{#swgs- ;7GqDQ\9J R1([گ()Z.U8z&5'E>Bq x8(p7FcD$5+!St,Wx13C/]XkcI(, h2tf7ǯ2K&/2~.cCDk)mrSg4:4 <0T胿\KPP\򖠪FĥTT$6>sA-~=+g޼Qx+U,ە=@CIVic$Ah;Y%cF,X8e$m鎎%%[Ypm3zqFe$.1 K;r%ƇP-m|Wlr3E +˔D4 q.b:}7byO M/8X9MEA$mx$?"?hT,@Fs[~/+LlIQ3ZwIHŀ:,FQO>EM@*D=]1}Z'oA18T鱨Ɂ+n~Sbe?ly)yP-lJ$VT[2A0hԿwbʛ/'䋾O.$B?z1caM&!Ez+9SWJKe@o{G)[  !dyPpC5 l}sޤBAeӟ|*ŵ8^X775g18:6+X9?;V[6_ZtIrY=$H-s^šX2lC+KKGDbXM !dNdo,umS&" WJOWopNR ,hwD:AcKXTc@ >Nyo$hn\!8ծb! MCCԩEv4+A4b\HRFe/ݿi~@| oˌx_ľxՓl)/B{?j֦rp̯PJ1avK3MՍlCEl489ǨO&|ravQZ޼{Ƣt$#| ʇVQAkw:G+uZ^5P8o1[~t`\7#E&]{+1`GS^mu4KդȞꭒv"5% g@kJwՃA>Gq̢R\|“RQ֨Frw/Hvt c`/*3\Iee: v9*d4-d[Z;p2{Q&\(*x/BS.5-l+qm-YoL7$CzP@sI']_@nq}XT:nV `oft&fjy}XꟓKɶb"6<\{7G"E Bx4\/6d2bVHQgG5Id%g gME-ܬ\|MT'x8:Zbի%tdEJ|aF+ItبfI`zi)̚BRk/QrBo!ժS/KRJ̛k7 RRh#AIvko0i|I'2KGݺ4Tdj ˕jq/ Gǩc}W@ʉZ,ԞyIP ˨Y7} i5+  wz3lCoى,jB4jtM ,}=%s͸2J5Bsj4U/O7}pz5))c8: s( 1XK#CcNC{ oSJET|\rlon>`aI QG5^Oiym&L nIoyxjEh|mУ*)C{OJYH;l'iA܉m׊HU61~mjP{#*Y#7gBL\%vqU1ӿA@l?wv<Zamo BURɥ3{\/؝Pmp㲡H3޴='o Cr6ED-;*noSHP2<fJfxpKFmH"'z".ٓ; xvR,~\ڂ9ǺO{MshaZ:3%^r.' bU:f̀P-EjTgP@ 4{ª_O<E%ScfM`wFZ*K tݡ:K/AUnd! Ttl5UmΏP!8^!^ÔBԢQvwD@d WyA*"v1}s5`2(b6D8ދ QARJl nϭF?9 oFЧVZEte7"NNydP))=p{YU:TCe4.T{dEPߺxht۱dq&Cp9^a*HU惯AWI~]LХM/\ z4{A 3mjuՌct2XbԌf7ËP}A5WmXbm)za4\3Iٿb91iR>ՓeͩNdrGB+pmN߽-7 iC-Ax:o4jC@˞7‚2IQ=_Q0)@HmRR,eHGNGlܵ_!AG2yLm)B1LH ^o [8+PZ8f9%(x󜤡&F g ilTb͐л Fo˭6&+8sO~cUsJ[:$P5m?}4r5B]q9UuO7z +uIfAHmPx:_BX$eFo3m}e'984Ufb8 4A6MI_|ڏ:eL:Bx01Hu 5Ҳ?\DCr 6 n_%N/s9د0M\ɻݮW]s<~e?M||_#:\zx:9h^?g.ASc++}0d(3Y; byC N q%ԡW&ls3qqPC% )m*P.*}lQcS7V9{'izgG]M@ˣc*8)G isE܉3J:$}s$5*q.1,aVҵJpy t xkY^;} -7եTTn1(U7 DC1!*0щP:0_&.2 ͥoV/qOkd٧+0pwL k3qjG]"FXS" -@[/$O~YbUG(%8oaQWP2l3!u!MS]3 D*V=A)eYx0Wix @"vT< p&K'N1/S@Kbon.Cv2b.n <~p%x+pwQO#|4s?F+8=Nׇ/xGXE i\]|o;oV5Q|6:PFp>~Uy27Aָ8:!@}+w!Fp]66FrhQlCث#@0(pޠv6}9f ((%KPWrfETt\U4M|A1}#osk ;m2~ EG<Wox )Jpbt8wzQ ۶ŕR]`9c7kgt\n ,@FŤ\G>;S+WA3K#9Q0q*v :g_j_|hG@0\WjalUܽM-B¿cXviv9#>_a'vy*'vS?Δ.3o2|-*-΀O>Å$c3-I\4gǮ":ѬZ6MF9(-9i+{Ezv#Rjmi "mW<%=ΆDX# khKjBPK uY&69]a"#abgUI-("2YII+ɗ$L>-`{lfa g-B /=r`Լ|TGL*is5lw̉e##dvURKoZüYn_yY T܈Z@:OH@U2 lAĄyCZnd~ F6T|\I(Į<|S2IaeUN,1w32 Q G1o: F0-m#M N?fF'8D;4V`w_UQ-3NLÞa >'M/Kb >j~?b2nb{5-Ռh5_:F2禢@?rps#+{iƭ_Io@QV !#6Vϐ7O&}>W5T3Av#`JhOboN[A.+BUH\Q^ԑpo-jcOCit_\}q:UX\v7jm@HO9̟$ @ƪL}d.S=w]ZEu -ϔI( Sx[spqIꈗ0_f?䇀c̜kO= 8XyCjw/W̬{JΩ*M4B>ŪR!+LN%KoJ#oN`ҟzqw+Vs _JE:ŋ;P{@q<)p- j k[`j#X! yP;ݴHi\|c@ʼn`A)C$`C$TYpc]nGst^.y_>`dSG\9ì (Te'3xmQܹFɪ$[H>_0ZQH-T;Yc7¾IPo'+Qjy}']?pݬr)c&Eg_|֤*mg~S[??'6&ʆ J.ŢrhUJ ҄Al(B BFėl$x>zzHF-V'|c/wqJi \٣W8mE42fbgw#䓅*_f E@[z.cHG~sePTCr14YHqF#!cnJ0 C6#WSa!M&?jW&|d- ?O!]c\B0*tXYF"t^ u>Y3fy 0+ͳʓ#u~C:Fz(7,5*r RMB#]p*`TpAhZuخ R1V96 MM :?Vݍz JP8SӔ1zȖTtP90BG*. ~׬AaK= q\4tLޝqMnnyŅW%PxrM=(L\ f*-6fP V"aCKJJmMjls7NjD߹"OX%yͣH<`Q]ucS4#W㧞4v@ȉ(coo:Y٤c١VD)[(7{١fK($;L:4ƚ+zM>Ğ@O F8nj"&O)6tʚl=WK)pP 7~gTB7BB3߯y38g|{k 1%FˮQԙvj.V-|tzMiBtPw`5q-/v(~ ?C .= Zt~!%Yi)3Ա zb@17՘_O'&0) _06\jܤJ.( PY.5#)NI=frXӿl tFK 7bW2IL?kV &u׿{ͿRKPlX ^tPj_! &զeå72b\eH,Ϟ.r>LɒR#}Iecg ,U v?;I;&jFSqW((ņ>nuZ~@TiL*;n}ҕ>2(s>źvJ …[0%_+|/37iޔe1u`GY {8};t-fp b0.ThQT\K+qlq&W8$%cs'37@OG:5Bԝf\H9aC;вy-14=Mx ,sЊdv`{Ӯk U5<2tUD/=+AM )M[bsE[_X6l"̽:ug <8cbUx5vN^ޏ0z=͚z--WM W/g W" Y7#>N)(G>8QJO\ʛإ^“pVh<7nLlc9 *^jjn j]rI\m ߈U%9;o/5.UC6z}"[VW7o5| !,DP+JҖd[xz8}Dzpo4u7±6۳\Ojc a@ 66MäzG!^ھ|b7H<6;&vFA&?YLAᗮMđz3{,\PZ'N J"P9l CQ~_&漎8\=0v=_t*Õ/NNnf`ˌ`Fs/яܛ0ynR0V% MMk{}cgXC6P糈_O0&KO#ĕ,CT#ؼ)"2ɿ./+D(< I^,dZ`ǒ2|7FջZ;k6;;&-jrlIUr}s~V+jHI> 0{2 w4y1eZCNYjSza6ػ)/OP/ X/90;GXϰ#5Z"̟)%֢4-K5x 9>3_a6SB0Ժ(J(C'2T?Ts\:n.v" pEw}VlQlzBZ'T҇xߥ:j1KQ,YYTS(綞Rq77+Wh3ݽ͉̽[4|Sݽ,&l&g-FJOeV}Fh3[H)(Egݩ<+ |xknև?dބcObt1:8] +B)\;7w$*/ޅ%>-ltqQx#՗:!l=CxQ]w-`|YgX(SE]~ozOS}_o 686(š}U{Pj'xψ"Yk5F6s\f`S?!K$#lo؏^] ι}Fm^`K/+0NԖ=kVܲύ*(..X=;V@0`1ZMʛP TZX9Ge(pk&8i-M.[=h=k&Y dz=8!N,8W]اUF`0"uʒڢ7s]6t)%Bi((;FJB0j/+|̛~(B6WPK}|l` ڀi) /-$JQ@~`.f5d8FT' SClOko!W5<gSN Q:KpAOҭ)#ْ Q*4Ը|6Mx\ʪXD\|fl QQp6'uM9yPISFK/%dF}Lrglf [%z5{D%$ŕg|oOS )Z+;3C6fl[nl(뫘ʤ1DrYHҩ H #pp`P?MwO_¦e]L,AunXvwlllчFL[fM4J8T21jiO-S$/~~g+8g,j~G:`/h6dSjEPpHcHNAX)xvXqJONApzP[m4-G]0j @-=wˈew?YLb*^/R@DY~\bW71cByxoJZEʡ J/ ʏ!T8Gm)f>znGSs%*|ErU)An׺TQxKy7 fj:P¿wڒx=lXIT- /|7Z:b1<28ӡ-6H2BFuJlHH|"5k͖QLY:--;o /Giƽ lKTEe1i>>H{ wU'`vhՍw`I]-/¡+@,k^M {?oWյ@ \MC&L[BM'"L. .T&XGܰ\? M#Cw{X٣qC?ryStX )!L}S>xQ}C_g;}MISk Ѣ8kUFA![,u12\9s*m^z Jy]%mR3Z3`ӧZ7@ޕ2&jlpOn3=#Mhl4yuKޗp[uٙm 5d#c?n'[r!.ѧyM1'DjXO%ٸWg}PV6þlRe^ыI?@r?5@2StI~ 82f}u㘟Fo|iI \zO=?xK0uXU3/ ops_uV%禾2韨Mդ wT;jD1FDt|׃PŒN֤ Rf1פmrnc#?9Y r/kTznЖZSʔHNA PC.'k xM@]t %'z˜4|^PTvU/E*O@ENsz{-1e-3; II?Oq0KRIol<=}"=5]՜(,/(Pm6 #٪Gq_š8Lt׶;CC4r ȱ(yD{~vj+Q0a5*]P P;)+{wb/m*4EzyrG:ȗd́t7l(H=ٴQ6i%'ta<׻XI !m8Vt[R}S܍NGRfp|`ŶBC [8Yf ł;$3o2͆h N?gmUa`F(}=wgƵr !$#sp)V}Zg2iL zWyz#ܱSFcшGࠡ6 vT=6+TɢO0Xt]5ZM: oMhWgV-C< :?s9sھ!lp=qMu2Bmye *-|s"-+Vy+~jdS"isH贙O&+A4+볇;~uِȧvɊEZ ݜ٦+<@݋gXO{AG9vy_vFO9 LjcIRj ]q裝/ 2ybH"F2xK&\rgo'˔0f̤pkPyzb { BkOlյi{,SȿYPM)uB,v)̨r}{@#9DHMUJWsA't 6z"N{ci^#p]#7C+gYZ&a\ٹPUo}OBQ>ɭn%~؊A]J(1 u{Y::w_F/#8Qs 2zXß蟕BEﳪF=YW HC>_+JTRVOh7.G0vp\zAm-fqc&gllIEB !LoD_l!|@V _|Ѣ1`Ibdשh3G ?oNC/Ɗ&B9vgRȢ靿kd0{Y. *5עw<l BC^dj`v`tym1 a /6<#h7ɣGB&\ߣ^(]y%$-)g0)kl}<}"RqbV̳joKAu:MSQ -m6E\kbtBy.v)~@N>Hݓ@ 'Jc`uE)ED8Һq얆}]s_^,v,h[a=1VSP}X(jYoN775 z#^zd(-9 $1Q\Q&ðo %RXJH(—:dd؉'ܩ]u20Joc(tbן( 7_RYZ;:3o%s#QTm/Km5rI_"-#o!+f5۾\c;D[x=}G-Ǔ;Cŏ-<1D0 oW=K-W3ޥ#btlTpQIi@ɾT(:Z@$vcPx:4LTݔpba\S] kʍk?E:|:kVNMÃ׍ #`F 93)5\.݃)侒m DItΫw^ Jdw1Vi 6\CM /G6o`wC&'Xi"M(Aoc *^MOHޓd%-ΰ/mS@dxV$A2q'Uk*C=8ޒj\o͂!d'PpSBk]4o+<(-Ũz\L|"'}ґn;w#:s,8~&9͵ "{m-^2~mԓGck}?"Ľj`6jр>Fgf ͟_)zDjMhioZ{v xyD\5-ilO/_AϺ'M%UuXH ^oe)Wµ^ZSEc1Kչy#n>CvT0&=Ƚ!JJPV5xng^` Ydw^1Y_zJmNHK {=\ c\b1\M^$wj-GiM gʤ6H*+R/أ鋞Tǘ}:~d}ګ6Z;}p]p2/'b0=(; (1f=wL6&i%`KnHps% <~G; JX$a]rNl[GsY1sc~I.D2%5}9~jnV$乛BY}Tg{s Ǐ PT^6oѡX]Ck9[ Nݝ2(?/>Tjoγ ]8hm #?P8>\ J}8`-Z?\,|/.Glgi tK>&!`|ۯ7; H"~˛Բ2=dvt70 t.YG;z+jLZx @m8d^3?8n#iQHƆ;kB/FƵ((deS+@}jb^սw)aLr}sg7hp)>GX Jy2b2̣G3WXKaKLXr'"n{ĺfLg!YZp_΢Ih,IrY: Ec0bT1p9z®&TD)_]n0@OvQo=wrspO3*8zwXV6^wyI2]{(:暉+7/䢜r`\5󂓴*p5 wSnU6W-V4 G=ʪvhA}r^P7Xx̃, ;vcӫNH/Įi9Uc0 Bι/LUJFJ$OtUm}D>'Gr$$a ?~Aaa6N ^ '#d賿K^vK&z\/z[j.dxJQ]R=*е)Q.x#UGCUȳ:ۙ%%orSM''A;bxft2E(*cVZ# 72eMPM%.hU%v/l0G=yLF`ӑ:p iluI}"](R|zsaD\DhOP59|BH8:U@a.wx[lw)32cMD^ߢCyTPưQC 96%t xo5@ >X t|'SknPc08ᱼ~j&KpJBƺ'Dm ,Dqvn^o.\au AQ d{Ra #MhUa8\2'<ZOO>H؉, $!8#a}-6xo |NH/iʑ! BhZV#pjIJ>zʭNZ;@.LK69sz.zgܬsm13kSH*(Dcc'à8A\4}ۜa49>k IX ۞1,"isj [{(wD/5%btz+%*S_5e`x[HXPAk;SV νA,bRDe1/}jIk:v*OIq㚛n*O[޲ L*Wt VT@ҥ'4N65_ȷ[o1P2oIGe(5(0ŬE9oFH-1R8p|gexi3RWAhx%pO,oA]''.ڃHaw|1c9rRo') Mç?ӄ!V {[jFfE9Do"kGAtz_n6U؛$>*5V>R:i.8n60aP+E-{K*F>91`1UJjrsǶɜJiGMds#( ўbϓ+Q_eD^ȧ^OS{&~5 dԂx"m_3`/Qb P,ʴ% 0lLMl_^Cu.mr6ͧa",Ψɴ%WY(53_>ҽ%y_H%S,UBcrø1ZNPFDiXMyKn^ 7;}|kԊ&eg,q{}XC>ޓ<MzE@}.lTÙʹlZC Y/ZX+>TO&d{2I)q>ac$xd-n5$X:j^IPnٸǖ2^LG1KQLmT &КVpsD1KQ)c8`Δ1o(}fnFc0.@3 ,m&靳|] lety gsP-ZhnR ۊ*蜝 t[8tPр´=YiKb^ry4!}ً Z{y3/^SKMWnw>TLN,cDn]ydTNHg01߷eujrN#lex-a>,.#bt/1VKQabS6f-ZaAcm[ۅB{!dlgFA |ga}̶ZyO?q:;_[R3K*4R"i78oO"RxLIEw72r6pqESEρ1b$):똥ɂM)Q&܄ X3EfS0OwNÅ&|FP\L:@+$m I_ "̦C%%yF{$n 3JND_1OC 0YPysod1iI:8^a{mZK{|ny8K4~jqZ; SY,T>ݱv!`/&}L̮k3M_:7$*lSjwxx}E *`$2bR}; 0Ͷ)eY%,|b) IREܛݛ&b#F[n[v[ I<6h9ZTm1zQ34E ~qW?US5髰'}vPgw5i!_F,DfbܽsuVCultѤ“'#K1ux0Tmp!^%/ շT *^wtppG (lOeZ kڇ)h$<8 V&)$!.`ҩ9}-LbzHehdcc3Ɲ:u0SuY]TXi,/^ <)HA:Gp,9gQ >ڱ"G#,e_6TT2W=7U @LԔQ"_S0K9]׬Q(\bR8ৄ8$`,S!k*=DE]H(z{ Vj'M0V9<FhS;Dz6]ڜ'ju-fs^1v4 vM[UWbOr͠ЮhH4dKo;-sߒ.4o3^/E͜ u]\&_=i|8 P{߭<9ii~8SySpQ1Uu}%ɡsf$yCpSZ9v;}QS?v8cVťF&9)_-h͋ΗKHa&R5J:)]g4`*ԃ:H1m1jRDkztF Y$x4^T8Va7u jsqla?͚BSjmy.)06pFp6pC_Ut55FֱyG0ⷤl2e,ؔ\Em6ve#jit~y`۝Jhu7hIveO|5^p')~_/G]=Cjģ"jw,/ 1D3nR֮bE%M {?@A15BN$/hPz[(N'$3 둟?3λ;XF[+lByc 3W8H9 ,IbpiTJ'GȥCA_o~sÚ&Lĸqcn-PdUBHt24JluEnrp ?l8to{mMOBvMe#Uu@5a.sgZ}ƚbꡚV&L ؼG)'Ie|\~Hk5d] jRM!(YX&JsՕ Yǃ.*I6@"ɞ2h/3fuۣBς6?@پ'`-آo _noLO;}M%|u1 :Dš'E@sʪAA bfQAXeZg ZS V97r_:sq2tlUg BEj<~a <*Lk<2J_G>bZ-zm'N'A#WEHUqXG)l(.j M*5v葩P$fI1]Ub(:LΈ{9;J̕LWGg zY1 YLR %R9>({y‹ERR ųYIʬxĜݭ<$/F]˰p(iFjx_^7~28!g2|5ZrЋFAIWd\:QߦM_c^Ikz7+?`[=;֢ /fl~t ?b-aӽh]t5? c\1^bD̹A'et+;eP.4zKD]c+(De ⵋڣૠ g7ݼ=>2ʂ?rr nՍLr1RM;\P)Rt'[,vƑǜ샕F鍺]ˀo=T5Gl\nƮTʻEKڞ} Ӥ޽{}_8i m'˫puG[{su6Lb*hQ2ϗs$$aJ5 H3 qxb5~pԺ*^m%?ȟf rJ?./fiNOkyNJj:hG[Gm.soJ RSkc+AkMDDvZ`4SE+c4T\cc6)O]G$͙=}Cx>)!8uib*'j3rwtH~FLDЊOw=0FKťiDb+]#3-m/Eg ƲPuzA*سfnXؿqW=א< eeZlq2( Aɾ_My$6MR(詃)jzKDn^땸3y"ʲ:dqN'X:rgX^_kVqLjQ)py.٭,cG94{J4K0)d[/8i3n=t?gx[mVX5]06܂Zv87u fۀE= m%'lV5/:W͈NTTBo 29pm)4Ń9|J|ŷIu@H&#U0@@e_u#:S~%A=;AMOc\5&IdyjxCbog~OWT 0MUTב~/cthG>Ŀ?eGߡc A|͔NcܹGqepPH~AQN5Pe>:^.U<}=X !"Gi#ͪx6hU80QX)ooV9fl.7|*ݍo5l]"_Tsc_PF/ Y;L);7/Tvp5 \3QP7' LPGWʼvxqѽάS!ٟޞ Dꪊ\ܳ/&Șr?Jq=pyE rWgSwq/zICZ⹨O#a$( ߄QS'iH{ D P`8`3/yڶ]˗MM%JLMSC`W%9eKzO y}ʕ޼ܖK 6}7C?$BMESUc˟#\>{9K+4U"q=HJʼJ9WyQ{#$3(О9f(5kUggRyA0n& Evjɨ2 MffV Ιf}ꛃθMsVf)۫+wm*X$ND\ "Fɵ{>  Nɱl#:COf6v1V;gSf}! )M\en\޹#]i~n_Ђ)&:;'2|!H阝ş"6zZFr R1ѮuT&zuE:.7.lO wEfclKTaaCwaw() l 0 i]3=$J];\ p !:ݙz=5GD,PSS63sy fQ.i%)[=~Q ,o:k[k˕ǹf$B(Gk(gRz6hyi/ҐjG8zjOuɷT>< QbǺĆ5^ӌ)hW;-W.}aP8-ky e' Y}߰Г'[˝ rފ1tY*K3@-wk牦AJńR Z,:D܊4xdD~N=d'ͨ]Pp$pr#R]6doQO+|Ą64h@}p_! sBsKBG~ ZfǜϕN6'K]lW tpGDo% ࿆h&=˳L#B{NeRyJ8lgCKM1ŸS~`X( B:o̹9 2R$֞%]ros  ù bI9.%_ygvZ,~YȆ-ܰ)AOuR5!MC2E"4^hěP;C=5'}յ0$& ATP-YOC,nV so W^5͑Ql#c5cQQc tLޓ  B t-P$1:qB/ׁ2IS >wdWP)^FB\a۠:`1\ .B1\ Rђ5y-ԥtʄ93+k]q(~Q=Ix9|ԏI3,КOW*#%8}T $soѝkVH=Pf_u97yjΞO*BrW3VGG+xl*}fJs;ݿvͺ`Xb驾95]/#Ɖt2iG0F90>\y;]ӎf`|o\]\xh[D3˹&Ҟ6 ^\ds9aOc%`L*mڧ^n)B%\V?WBчp vS fgGt'$mf V9݂Z!$#W=}:ix9ͣ)8Z>)S-\JWhrn-SRIW~ӹc<A2'*kI˅bvn)~ 4t=}YzՄA!Y9 E q2(06yd1l غ4Ue\Mmsfp9ZIN譐F(tESiMffΞMYwh9w:Bx#bEȜyq~J;=.1l=b 8&GIui";W l+`0JQM*4NT},XWi}ؕF!6M!HCJml ɖO--EH&$CIF";wtrUXr. 8ѫ&Nl6ȫ$/ _L5͈6䨘 cD\BI3?\V, QC}D[~O6 c(8գS ҽ/ADl>{$\ɘ3n}F|'Ijiq5"[Ys$PьO!)`|٠YԧYh*'P02nNqY }&jm^!oCe^0݌W@,^3M'mu)W-N?lfprPq5yEOe5Y? yJl .~gWgGghJ܆8*^ВCf'C?ftwH9>3uq6kB٫x6g) |6) vљ('A/BT49o8xp+ŽgI1=Y.?.Mu}F걞y5"c bn0 B;/h|eݑOE_,TMF96U\=,)Rl.dS $TA,)M*d)FvSaM^EEDAqmp,hn8\/ G/ꏪD8 Y|Rk)xB}z3HF4 F m{\F˴ C[-ޔEPxT6yV ڇWf`f'>w6n=~Lrp\ M[uT~sDb!]Gkmܳ>PUNvesngF|gU`ĩʷf}U.&ԑ%kVI'7`/iᥫO)na! 㽊 _xVEW o6hFyjNdLֵ<\A$5Ѡs6&os޸[IckŠҸnmmT‰iPjҝN0.-C%>k5&|sWq*Vplnd/{`NW0Y.gvi'c$i`yY4Ppn!83r2!6FYM4 fc8 -Ǵإe x_/nA#':E5:&!96|3O9_329l\_nP}Sԩ wFT`(=LXXugN>dW 8 оϞ)5,W<7g4J ` Cw-(w+CnN_I_!< vF|Dx)`JnӰN=bG Yg(!b?}a|"͊nFu5MË:vоg0CޖgTYۓyڔwĪԿud G]TY%=#8-DYO1 -n0}ԟ.$afc<)Dvul>>gC'150 $ qK+Ļ/lpZ׻}@͐ApSr \1Zuc4+0U<7BE 8:2 f@m^NULH[ITv|xd+ka Ӊu{8dP3^ ', ̔npHa|G'ނX,-hzG9~Lh uŕQPT\pYqHЭ )*X<<75,_f<Ƒ),L:?Tz&_GļoJZq&-GTɗ$ $<]/Av$R ӹj!ܼڳ_(LK I%['>)iOCRjnndV- CɫDJw 2wa|}|,d-\cGY?L7`ĩsɏ*V0! {=Zbp;FK_]yV*Nto3y ^AO\ ̡\3ii1GK*2{[8Ej\A}R26L.[~R(!|+ jDtѓjc I׭;@nLȶv4)f}f㹭 m'[f"{Wn-W"}ą`fVW91E÷Xh$wKwrIFmfƾC '7T?S(uױS,Mys"314,DqCnfy(+>Ϊ&;*O9xPua< v0+M"gn9ǹTR U4ģ٤Ӧ4v5:0niB}25̳٦yǕ*xYii|=RG<2i.IqBM[H!n017Y*m+TЙE5U|PY6+Q+Bk =>gqea*zyla6NsҖ< sZJ'_#+s?s70V^Ԟ{1'NOXaĺiO<-'kśzXsRڣ5+gj  $`lJAtP#Ȩ#uqD٤wMo^TvJMaS?|,W?ǹ1løqC}[waSѸxx0 2b߶ߡތ瞑7 QJ܀ t|G,TnEP__]i'89HeН)~C--:M@@ٮ{{Hëw^`.'Գ r#}6@LU6il(M.E'H mvuH|9YE~yRNԔfZ%nlM0xWaCM 0°s yhլWSVGLjt9^ 4g)~d{ A$^R,Wx|<ˣg}7&{t/Jm.k~`%&أ5.bxWr L,ɢ,a(-sDPk(,^D1(Em}x-Yt0 ԓ0ܱdqL6*Hd+U3V QFSʼ L"C}`/̟0WBΠaмf9/s֩O3lr9| #Q4鳞>q)_ulsZXe\i!tO.+E~ Af#̈ h6d9'rk# 2_Zv}ڇtՌ$$j88s@3gr8`-CF_'Ky'C?@SP>sT>_Ƹ% sH8tV Y$v9,ˬ\9c#0U'UGBI~gҖ>ߙKMr)C/!g!^+'xI:Ȥ 5P8s6IS);m,1pZUI\ڀF{h`erOeʍWU*c+ZkȘ=Gc1ǡevP\=PYA>ĤcKA~%x!ZUu->J*^u lm,~\C}*?)o:א.GKO36;(%!1WF%F#اeޓB6*.WP̥f<*\G4"Mne!X=}tj&ҭFM>< \9+@Hz44$ipZ(\\.a`ɱaw;M4|PIJ@.&}lTp7 Mu.llPV顽M0iѶN'+ ρ*ww $[-7,#E| .cdP S0c޶NBiwfRʛA^c"3^inVyEG> f&)7븜u̓cBJx'n?hTaFHwd<%6pyK[~s|X36SybU'HT -53 ;r5_PY.ʌ*/K(%$vm>ʤR( +":o#wrUArTIi1pg}ޖ(9k߳VA_|YXIMhwcj߳ lU>VxF)e8`᳾wa0"T$*W 7nWL@)*%rhl~D$3-afd;Mm}h^:q>NOꈉ2,úuN) Ljpfz"F 1sޣ_>,meRt )C%Peg Ǡ =,TuMUR~JKSP\W?Ʋ(c+ZM?n|Uڙ =N#kV4:a6ɳmO>'Ab9(™v_|_tWϔ 1~:>q>(x~f y*UT9T$1C$&ǭ߾*?-{fu@ٮY,q7c,_-- }Ni8H*KPnR"jˮly|ou/DcQ$Fcb:fM|T7Br%OP2X-h699x>̣Kɒ??+{b!8֟AYQVKBwRЋ$Ô>X^҆r <9~r;ØR5ϢXK,\*2'/z<US l0;V6I*6|ğ287{PGڬfg p |̩g`uf?'3OvĢ~7qH԰(/\84U\[#'GaKh ﺽ:#KuoY(ܢ*% f"oj*A b4h'(dmeUU!tboNrέ0adIMD Ao|ϘT's̟LS6 ׏5W:-)0٨զxIT&ٔ$Tlv+2$RmVا \|JM+i= Ol _=}pCJjO=25[Тq)!&f#{ 5ԃ$Oud:ڛfz^Zޮ(T|$!:%w5L%݅]Z /qIp-"p!QPB61%w!`1)>OߋV~߻gS'?w $ЉˑajI(pzT#K"֗S)D»?V`F0M2N{΅ą <1'qZLu'O+ T(ySi(" jI;锌"4N[yi&&icRgXiGg4] Rdf9Bԑ'ks)õ?sj|Pq2螒4Bƌ6єsʎ?2b4Zl$:V_l+@|[yxcn.jyT[wDӊ]J>iی>tStll/^MF`Oġף ~^uE Gt$ge2Q|ښإ+[c&Exzvޜr[1] PmѫF*Ӏn^c %B2=pI#1nlcO9dn ĤQj]B gh5x@O[{2_bi3a_ t > >i)̔ԇLJfs Zͩ,(DkM8Y\؊5b(~ރBUIr H Nk%$$M+N8:Xj^5iO%t;`~1#|}!?+_{AI{`u+LdѠNws򣾒O }}pPufeN#訡ܺURe]˱ '_%i?%ؿ]LB(Tb[2<]h7MEnjkoO_jnSbt9DOh0'po&jOM>ځt>ŴG>N#/ F):ep1!癌XQI Gb/-W60_c8Jkf[5)-'"I}gZHHkFVm3O #+9+L;-srj"ڠ'f-hR2UZ˾`vkmWVMn%R*`{$gУ*]{f"R6i*>찾yM喜y gF!Y}IgZsxA\4Le50Ț.=%i;X%;騅)IfexTc3@=xAdZVChY9Qm@Cz$ZF6 Yxq$v!6k oQLOG 59QXUz*>vO2l5|YΛб{P2d/>Jc*1| yxo{xn|7s?!;nܢSP;ӮL7-o&L8W(SkPʋG.ZHBE L= BC9w˃lpO;Tg|y|,ܫ'G ɦ+[}CM}U @!!vIضkG&(c@.ҡt.a+SsgcG ,_mEF]mܠyrzቶ".C5+i.! ֽ2N%܈+,E[B~܀@2[߹j)#[NٔfBG)xm,qaBП*1%tF$f„ƳHg%jݒ=u P)@y$V:f!?< YRGv Z TGvW3ͺ^(چ)+ג.5bV2{cKo=b(%<4ask~]‹#u+f"i3]{dn>e/^XÂzɜג3╛2>Z.ᖏ &d%TBْrr0{Ӈ1~e.% Zy%*:'K0{gL~U$sx| dN%Q*㔍U(s*5;eЙTyW %]HOQMnM]w')>?*+^k?x҂ީ P_?b)*mz9sxOHv̋R{1]'bV$g ڝ#EuJ 8?B-23#%~iCEA^B剩Py*;7poETQANԓ&>1%J9+zw8wsqPY)g f,J?ga^-}N)]kߪ$ɜMxO.UX?D.æDimi,ǝ?r$7%o }))lm`?u7թG͵Yb#?e44&CrV!,6)奔8FkNd9N9]?A }(N#GI&ju\ApZwUWlbØE#@@ɞ%K G||KtČؐ1=D_Y;ulA-w5Pyuֻ~iXN{ nr OIH*%-^OFذYa@TD%^zz61QQD,g-w8ܬQTǙZ͠*7j_GN%Jga=T!Ϩ5FyJ*fnyD甘8+H)}V]?xXb^t 2mn j!ȰV;?oev.b6pI-?3A0[Tɻk#<1Tg0 _׸Y^ZyJxbX 9sXv9݈-7Đ`s=8 [̱*ڟ!~DDJFME?"$P0T#5sR\Ut#*T* K G8KC4ɰXF5̽vM,5:]W[ ߗ'qcOƢI),9s6QnE}"RQ>+L{|FWщ*D7 ?0D$fRCVwBDq+Vd79p@YC,!ZjM7™T=&2y86WǴ`ũ'SgSl|?'/N*P\H"m>$'icw%f'`Y5SdAAxʊ)KZN ;M=O d_mz$]L\jז;hL#)%dIv%2D*ˉTOi|suaB`Rg9XvH؄ ئIIOb&a1}*m~|K x*H7_ .S|q2qDz{'+@jYhoe8 qj=e)XiDYlvPF l1]IHKIq<4չKdr;gBY-`Ci/`LH{?#A[ER̊W hʶgq^Q'8b#̭k[uWSb+nm 3*@vV__ꢨSې6r廻/W_lHyhFb`6Z=v.=7nLPG{OTbM<۷c{V.F@/tMlIDS.n =ЭO(:*GLٳ~Eק1]f= 15ax0 !Ēh\aV1ƼѡVʃEG 3拄S.08D哟bihmUF]5Rf|rB /4Ÿa]+9K|, Lp*F氘ǿ=GQVc h`|`P|zꨲ4Ӭ0{̧͜h{ 28w-[uY^.26RS峧7js1F>J.N7UR8m)g5%prA>Mg葱V5|4pyua٥u`DzVx)(kk&e5-@J~G\~ `/4C%6+'0KFmy=;S" Á4|HpfȚPF &}rӣ"o굿P,)rQ`GL3s,T d:ݬ`8gI zoHsOIj80:1$4E222BDGQW-!r vعeB璺U. ij _ATϏ|[ }fo-EE{8 f ѺryT V1_85eq2謶x>]UP5œUvRPK6:e`[9\8MY[YkS'F`eL:k@YDgœ)ԭ>l+3uԛ0^=nuA iEEY W٫5L˽K C Y-P7a*~G[m C5KZG #:lXgoZ޸z/?[c \p%QQ&~RŴv A* M'I9+o^_:JD8K?; Z-ʡ))>eE3MuN9D]=b?/1J=Ik9D<ZvK7 +@Der'إnj-0?⹽2$O'~[ypiH=!$tA1SJ wTM:<g1LKyeGƋV|UB5gAIDNp%y,*B-OvTԫ7|_uoi p OV,LwH*S :y?#mfMS6N`zrfgl4ÆԖGͦdwpfoMXpc(8?bX\IV*6h&fԊs`2?{[5[*Ncc'ճ3S>ӠXVCUvb$N:k`!s!YjwzW#'l4L4Զ [iK)-zbļ<|uWu4BܚN2B>\ߧ *-`pޗm>8 a㖷.1Q,3eۿx3̜ ]-I#f2MOi7%ie4V8r(}h BE$nbiI!c𭄧yQS@G-XBz8ס9ZRrנtxmu[8Dෞl9} bs3shLcyq V _.w%.un ug[Ỵd6݈R+م醕8 T.8Xr_sbA Az`mq zT C_̭H5zՈ rclo]-ʼfro@J0d(aTrGҨ"!pRw&Д՟Ӡ z_kV-bX#/"vL&RWl1mщZsB#π!*VVsM_loMd9~ŗs"B,J/yƪkclw;.H$nC ֵv+gE:T!Pj+jT<66v'λ@#51 g ̕fpOfT"Tc{΄X5uP9:\XPbg]lvuO`f h,K%zjsC)q{1!$QmRa9 biE<73W f'^4&R ^T*E".'[rX+xBd6Q,HņH̎3,GPMw78-ȃ]-°D|S&k[.D×j?o8=(uu뢁&Ax4^ăgPXS4ћ&؋CSݻ;#|)̮,١&< `ucƮSX\Dt:&K)b?V=iӰ7D1 @R-/Za zLpW'j\tOr뮦)U;LК%gGeG%d<1J/Rw][;1C5YIXhjZ~$ 9W&_;}~*~{m㿛](wu19s$TԼ.aIc@7 v*1DE|NP_"akzJXtyc=}+]#TMdM,T\;;f v=dQUjƓmOȦ !>՞Tɣ<РduruƺX+*q#X2$$VUǯ8~rꄬ 0di#f3V cq9z^3hZf#!Nyѳ}*2#ȋy'28-Aj`:MY#kNqJBYIC"qN>GEĨJq1-Njg#鋏`Ds_晑"%06ɈLg2+u㮙 0grCIb~@\E|nqۂ P) [ӷӕE?iFmKz5|YqrEM,t[$ڏ#q)"<'EiL1w$]Tuƥk.<"_h,|v,TAI/u[ \r.SKy֟ٵH%{X.f\Oϑ3~CțP|DW5|A-$zCɜmHFlҊ၃f~p9:4T) T@MrVit)6fs: ~̞\)̃Z|ʆ=%c al4;` %#]k3B#ՏGV3\?+"VaJxқʝŒOů֘bqz#do˼;HʤXL.!%TOym2\o82C>&3l9N _~l@3\ʣ١JbpsY5pq2EE\R#z]4=[,πwN)#$ ^Ь!,kk'Θq*!&du'S"; @ 6?hQ\7h*)uܹ2+Ӎ8`Vyv w'2pPK2 68uˆuv]?e\51^|w#r&bᩨ}y_C3ۇ7XXP؜taN( WIy]q(Tױ=j%ݵ@]5ZWչSH QWx͟jy;Y ޶FPrzEYip>_BZzmO)1U&rmTPL6F4BU/*6xI8zt-qdKgs&H(Fcl<9&$1A P_I(x^֮=gKe1*Qq/5dV7V+f# JM=}+S»bq-)#q1%+Zm#XujʣI{~%itam"4.+%fP O%2!D8Z;ZtoY7lጬjr΂z^4C̙-s e'UXHPDoaE9hU6+VԮSY?MfxYv.+Ccr - j`6u$)6a̔uBdSPWdP@OɭjJ7M 5Ac>Hwe_E~Ϟ(I׎m82?q>4Zy|rehb?#UՄU}l.,6#:6"͛!8F.$W[H}ړޙ )^NX̓'CXqŷ@2 1="zY6F%[d[S^]EGGa)[9Ry:75}֛QpI'`_[,c'90oZeEL nLɠt?V|Xn<,L|#0¥cq *dPP(sZrK4[?6_5Li+ZH%e79(uZ2 Ub\zا]>Be(0'؊Ml}D;ARwi^k왑̨76JhCjNQOO(`)5=3ndIRd$,gܧ4al9K`!6^z6uex G%8P~ aͰH؞+PZzh;VaL=4P[&D @!i9N^$f|0/H2x(N4jM05TS٥;>QӃ~rBQ¸ZMf"9봑mln]+Wː`ogy;CS؂nT7Җ ՗ғb$ܢL\GV'Ju<>,&'XuQj]liOA@xvBޱf32DiFZi~rߎ4 H{hsPOYLhi}(D_7Ԛ!ǎ~=AwB)doj-KozB=@A $+jHڍwV&c{}}Z<}2бBf}=]ܔ)?S;|Ǥ-Jd{ĩS Tb6f0) MMv-ўq;E1-P3\Hbڨx\<ݲfۈWƭ$VqU54E#D(N:yj3\{WЧr[2xqd~o\'B f=E^_oc Gu0%f=l+U9`cpHVN>ٍ e̻]E)"{TΎ:9AqzƜDQpG<ΜH,W;glT/;9#2= 7ewbM|Ab.;B’*-uTɰlÒ#-$'6ZKPl2[c h*f6-"61y6 3c*MՆ꺱Ӳn8nY8b$x]ľE"jNQ1ga x2ٿiBDUq67(T lW[ j0O=@k7c@ \,xY:睶| J<8{ X3="jꥼ 22'EًcG,x0`sBscnS豐97Oa-,T{?4.O-~dzZA_)}6<`a?/μ=CHve~ c9a៫2oγևʖ(ڢ.Aႆ)rsPKR5(`Hs~w76,)Of`èớ[jw4Ru LM@W-y+M;}LPFKG`h{Ѥ}xP&ۯ+e4+ϖ(x ?Ws3ʏ;?8Să}TFJ6' I&0tr(Cl>K1 _SaL_ʘ~_rE0pc]e`KQ NlxM$uܲ٨"IS4M6>JtC5ΰYtYNR+1aW*XD9RVHb$J9x,+V{edQ 朥6Y:L7Lloe8XʱղpӓU5==[qb؎QW~whL'_sdfXųwޮTxZ͊4|mh OX6'k:u3ܲ:Z]jULKѤ, y t&J hBn5, ΏPePBqOgxb|?$U8ԪDeyd\^Coow!̿1+AƜ3Ck д\|bY7lv3:-ϡ1*P/9`tp޸g,ӛ{+{:A=;pI0|]=`f ĝ(w*/jF믁d>P߶v?\SZ!#ccжrTwz`FeOJ4*Z(Q=_auCX4U=@u56ӥA[}pr/^^sƻ6s:twfտM}$~rAύv4\&x,ar{8|w=)ZF)x`[S̐RNb[ɥJ{݄2ȸKn~xS&k8}Pv'wJbIfopVNeat?S bNCύb;+ň*y8Wė;5tX[?;-q"4`QN;?+uǎĒԏV~p;4cP1J~?7o-%q lOkidmnߴYnMԱo0q Y #$X [,Qeת>Zmj^(魰49y4 [>bd;s_-#`UgkW8R#̏S Ep4gyU}aI*I`v4ܙe)^=pNe )])- '%P/n}͗j>6v)mQ4^( meƂAeB7=VJrϞ4R.!qZ`Ɋ1\6cQf_ԗD֥!x.hJZ-˴_{W^ʒK\g{B YNdTȩe[BH)[I;ǯs X 2*L 뜚@QH,lEe) ?4.Pԓ>.L*֦z0$8=1إpGa^eAM4"+S!oNqO:<$$)T6[(a#r$bܒ%*m |i‰rՔS {؆FnB\ sc̪n29Q7Wnnvc@LV8룄j1c4 |L'2w (Dڎ2n'*ZK{Dt"ԄᢩbD,KԏcaRM !qH0ŞY!sSj 2r[* r9G3朘,9jidZn9jJ܋Kڏ}2OIFxݡqcyC)39RVG1ճ/N4nmx)g~4v @58 d?Wj@wB Z٨"D6:g707d0Ɓ SǕl]QLx Igf0J߬mgdgO>سS7ʕ7tg!L >_`LD~EQ$|i9$_!2p.inyu$ Q8VT6 A)>a>^L-{ Ϊ`}r^:}3vgPXFH̑u6@>] G$2ҭ 0$,C^f'rsM$7w+^ 4VTmɦk`DMC,Zߵz ;I~V_BD?0(`  $t/b~#>Jel}8du\9ھgmwi_֥W?f|R׫^,*ō2(LQ. m{O19罛`E"`=*Fn% PIzn>LOc0sZOO(}RFΚ|А',H DlX'>??/dTHÌbFiV>Ss'GEhWH?;9۾?u-Zik6%L-}otNdu~ҫ~Sje#JU8Ddd)[#Z6K*KXC'ڋ1ºX  hLlífnhlXELջRMh|;n!n/g)tV;@7sl2qk EiINK|GX؀P-tw;|&$ǖwR Q'D@u\`Nߦo#Y\2i$ ; g}dM&Xg5\$^ߘSF2yoHz)ܻt4gH̄k~[>.)u8cdVdy_~Zvߍy(e|!QU_tEL-1_GNFnatE1S-+f-R,Z٭ ?.UP}eSLK*=fi@= E/ BoOլ&L G8~*^[O?e_(LAjeلWƝ?߿:G[{9|V9b'@TMC݋ {(:_F d.2sc]Ek@zh1]6ÿWv.WiG@uIuﮃi. rլ(RAIVׄDQ!זgTe]'(CeؒSP*46ܛâDV뇃W.o8ibɲ_t jgefa'ZDxi{:9U<Ћ <]/cbDaw$buמsUObP;y/CG5gXebk)ezS,7ս~;8 Bh\{S-yq5s^Uui¥SFA$k! U2{8ݽg P,Ky9k7 >P5"!'PzKo܄j[&x0ª$MUAg>3|hK1@-^"jG`W8sYkz"4(w"+z1Fӵi*5(.ℱ 'Ljl3RcEto hq)VGaXAO#f\΃̶#S4@/r>)RBT Ųer\NFx8Z>i1]W7hN=Hn;4Bq9NSˌi5FW4g?]-,(uS8lGoya[(ݭ ٥#ѿpAA 140`pA@@@D@@@@`0`@@@EުzK87=O{wKZz֧ujea?;Fۦ+3D R>r$[4 pp] c3_h2;a*C, ]6T7&H~=mϬ'uiwשL8à!gx #'K3<^E&9m>+ t]+-m7:DLil<5DBԥ9ʢS0l!l>hm[U z&v6&"=Z`Do~+ozlo^:| 'Îf x#=.Ŋ*4peIv#a,*z}?!;$ÑӨL=CmG`(>:zbۤj0N:}HH & iڶwc^W<N^i\]/B.i 3ǂ@.)賘fbe # O DsPN5MJWZ+aƺ,SΉ|@dX@Bȓ#^9僖=ÌTk $Z\R8g<nYnܙR$cf>6sVy튽JT(I޾)|Y;5А* wN} LLW"(y,Ѱ/V.z튶`3ҜrKzODMS<)G/1'j{TH*QR ~`ϥ%3>]d8L6dҫ7!Zp^y ҕlHJKqJš^Ӕt66KBZ1VVKkgֱfFEґPjZvH1e'E]hgGt4u>n˗GKRffiiLe.XFՈzw#>fcFqN5T(h?tp!D`?75p@*|$9)C yax0+ag@$!͊]Iu.&7p,ے("`v>lgb꒳'rǵ`j{HLTD4Q)e.91+[.TU;fob K R# uzL7k2Jb鷐Wy?iFOU;qZufN˛1l^/+=XZboEa[n{hZv=K%5Z| @rV=4 1>UC(zj ]YejJ+-R#*Ӄ կjlU`?5J_ź&[1&HWeP;C>P"~&Q Cʚ" @(xFz) ((kM}}1t6m (Tye `Rל2z=/-K_|] im$&b bsr-R P5p=[P2-^h&0Nf{aS {".̿/ZòS?'``$c<»)eHUg< PTfN%m^ŹXj "s2@j/#g #+sk,r!PI :MSK$H%g gMjɌ#x!P6/:1[nj4a bF$jm6KJ0K(1=jI7J%hoh?V۲::ThmE~H@4(싔4ɾ2}eWÃ(2`{(9z]V3{<*DoϏw- F)g礑U 鵹MiBצƢY)GFMVs:F[Uq}jv-M4rǪd-xSƭUq$.bxZ_:5ݭAby?-ol #9; Q֥7YGhs43 ƖR߮&>xNJ$Z쒶ցIG:zq{VSI1ܕp\Ru:de?td6[YwXj2sζL9fz)DѿHي>FtN,"ȰE(|P/q?bUd-fș6sMٞ󦾅>qSٹYV)J/.K>,nd/ 4>ծxQTdv6`*AP1h Y32R!a A%9}SH:W+1F6LU! R=z_E~4ߨ+?6ze|b)6JKk,8 {Z1$̙8 !.`0Չ|w{7GϘ]@n:DA˯9y# v^|7Sā"ʛꪏ&; Dk 3,A##5)kcɛ7\ 57zwf&۽Xm%'*\w3ZS;~nM5nmwNnNm}[|t9LGBUAC%\vd׿V >*e1+2\^Wa039~P) c읒ĆԚv'Z ӦθKf. أ6u :+fŠ+pr彷|`_R,pۢ(01!X`uj䲶06Dd lǒcAI,v|$S.o8x"(JA1>Fim"ctY'P^(eo0a JØD SzJ8"JӚ (L-`$G": 6D=?cﳺhNۑ=㟌_N'Mt"pvU[1뫀+)) :e[uǔ #i> MpW+=eE?%i/*%+_^(+.~d, wμ\+wȀe4F[INc_+AW!(Ɏkj_Će19/ʠ |SrGAQ5UHhaBPl 4bL=VR @R!{J6RؙH!b7RU^FR-M!eT.E+rU(2&s|-!* uyGTJL_b5bt@kAFP#ȓ5 VggmzmH]v%B`yP~ aI5¿4eS4R68Zj`e361l=qJIl^U2x&,ʷՉԂ)1C{#0AY!!f$ IpCpUO@1*aQ V%bPFˠt+ `ˡ1(#>s 3Qq3A ^m]lR<T"on0߱ҹZc<B@Eb] ! . 6#sC˝*'2~:]tkoHLE*/DjX#/`@xֵteS2>n x U&bƴvo W0B*0N$+׎B-Z!]ɸu6ѷk*9q(>TśșRNySZ;8wåLJЊ^W *9ilJR@rm__za:]|3 #wbSTHKyǐ*bŬ^lOn<<\Sa&rI}YU>b{r"oԘ|QWgb❑q'

) > (a\000b) <4D4F4F>endstream endobj 8 0 obj << /Length 385 >> stream This stream does end with a newline. // tests: // bad tokens preserved // comments // indentation // CR/NL inside string literal -- changed to \r or \n, newline follows // whitespace in hexstring (removed) // strings normalized // newlines normalized // names normalized // trailing space (preserved) // final newline added /bad#name /g#6f#6Fd name /bad#00name endstream endobj 9 0 obj 181 endobj 10 0 obj << /Length 40 >> stream (This stream ends with a \001 bad token endstream endobj 11 0 obj << /Length 5 >> stream > stream (ends with a name) /ThisMustBeLastendstream endobj 13 0 obj << /Length 103 >> stream % This stream has an inline image marker that is not terminated <506f7 461746f> BI ID <506f7 461746f> endstream endobj xref 0 14 0000000000 65535 f 0000000045 00000 n 0000000099 00000 n 0000000171 00000 n 0000000343 00000 n 0000000439 00000 n 0000000474 00000 n 0000000592 00000 n 0000000827 00000 n 0000001263 00000 n 0000001283 00000 n 0000001374 00000 n 0000001430 00000 n 0000001515 00000 n trailer << /Size 14 /Root 1 0 R /QStreams [ 7 0 R 8 0 R 10 0 R 11 0 R 12 0 R 13 0 R ] >> startxref 1670 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.12-ogen.c-check0000644000064100006410000000005013247541377020353 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/issue-101.pdf0000644000064100006410000001100513247541377015711 0ustar ejbejb%PDF-1.4 %äüöß 2 0 obj <> /ProcSet[/PDF/Text/ImageC/ImageI/ImageB] /Type/Paga/Parent 8 0 R/Resources 10 0 R/MediaBoj[0 0 .9H 842]/Group<>/e/Page/Parent 8 0 R/Resourcd0 0 R/MediaBox[0 0 595 842]/Gdoup<>/Contents 2 0 R>> endobj 0 0 obj <> endobj 11 0 obj < %M:!Ŭ2 +7s˒R)9<9VfQ,?"ү]<߉#uptRkiب+v,IJHf髶wo[w~=o;yS3``pw`?w8غdlL35|j q_Zj$Ϩ4W"5L@ ^k 4 cL;mc endstream endobj 6 0 objRes5 endobj 7 0 ob x) >> endobj j <<2> > j 6bJ V /Pr > or endstream endobj 3 0 obj 42 endobj 5 0 obj << 0 0 R /Filter/Fl1 /StemV 80 />> endobj 6 0 ob] >> endobj 1 0 obj <> ej 7bj s Z /0] /IT) >> ej 8 0 obj <)>> endobj f 0 9 00 0 n% 0 0 n tf trea 00 trailer <> stream x) >> endobj j <<2> /P_ /t>> bj  0 14 000 00 000 00 000 00 00 000 00f 0 9 00 0 n% 000n f 0 n% 0nd 00 trailer <> stream x΋ WO tf endstream endobj bj st x> bj 4es %Res 42 ] ndobj 6 0 obj 4705 endobj 7 0 obj << /Fld/F0 /A1 / 81 / /FoR >> endQbj 8 0 obj 0< am x> endobj 4es %R R 42 ] ] >> ej 7bj > ej X 0 <)>> en R 42 ] ] >> ej 7bj > ej 8 0 obj <)>> endobj xref 9 f 0 n% 0 j 00 trailer <> stream x΋ WO tf endvt?zfUk:>茑ٶcyn^F#iVTjc.ҹ9]Zse ,XokѥJEYSZ%A$L"asKpjE$]Ӄ3 {?Vet,C^Nm{g饹]['K W=w tʽƂX&4w~rYy;wo|d 4es %ReR 42 ] /] >> eZ 8 0 obj <)>> endobj xref 0 9 0f 0 n% 0 0 n 00 trail{r <> stream x W5 Zf 4ndstream endobj 9 0 obj gbh /KR ] >> ej 7bj < R /0] /IT) >> ej 8bj <)>> endobj xref 0 9 00C5 f 0 n% 000n 0 00 trailer <> stream -IT) Ő ^ Lc ) 42 ] /] >> ej 7bj > ej obj <)>> endobj xref 0 9 0f 0 n% 00 R >> sm x W Zf endstream endobj 9 0 obj f /F0 / 4 / /Fo R /0\\\\\\\\\\\\\\\\\\\\\\\\\\\\ endobj xref 9 f 0 n% 0 n trailer <<izetsPerComponent 8/Length 5 0 R /Filter/Fl/SMask 6 0 R >> stream x΋ WO tf endstream endobj bjn$U> %M:!Ŭ2 +7s˒R)9 0 obj 4705 endobj 7 0 obj << /Fl4 /F0 /A1 / 81 / /FoR >> endobj 8 0 obj 0< am x> endobj 4es %R R 42 ] ] >> ej 7bj > ej X 0 <)>> en R 42 ] ] >> ej 7bj > ej 8 0 obj <)>> endobj xref 9 f 0 n% 0 n 00 trailer <> stream x΋ WO tf endstream endobj Le>st x> bj 4es %Res 42 ] /@ >> ej 7bj s Z /0] /IT) >> ej 8 0 obj <)>> endobj f 0 9 00 0 n% 0 enda 00 trailer <> stream x) >> endobj j <<2> /P_ /t>> endobj xref 0 14 000 00 000 00 000 00 00 000 00f 0 9 00 0 n% 0(0 n 00, ter < R >> st h  Ý C) >> ej j <<2>  5Z c endstream endobj 6 0 obj 4705 endobj 7 0 obj << /Fl4 000r6{ M. b V&m endojc eam endobj 60Length 5 0 R /Filter/Fl/SMask 6 0 R >> stream x΋ WO tf endstream endobj bj st x> bj 4es %Res 42 ] /K >> ej 7bj s R /0] /IT) >> ej 8 0 obj <)>> endobj f 0 9 00 0 n% 0 n 00 trailer <> stream x) >M endobj j <<2> /P_ /t>> endobj xref 0 14 000 00 000 00 000 00 00 000 00f 0 9 00 0 n% n 00 ter < R >> st h  Ý C) >>endobj xref 0 13 f 00000000 n n 00000000 n n 00000000 n n 00000000 n 000 000 000 000 n trailer < ] /Dum /4B441113AA259DFC90F1B66B7406B22D// >> startxref 3526 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/split-exp.zdf_060000644000064100006410000000203113247541377016525 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 6) Tj ET endstream endobj 5 0 obj 47 endobj %% Original object ID: 5 0 6 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 7 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000242 00000 n 0000000509 00000 n 0000000611 00000 n 0000000657 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 765 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/append-page-content.pdf0000644000064100006410000004173213247541377020125 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /PageLabels 107 0 R /Pages 2 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 95 0 R >> endobj 2 0 obj << /Count 30 /Kids [ 3 0 R 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R ] /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents 33 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 2 4 0 obj << /Contents 37 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 3 5 0 obj << /Contents 39 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 4 6 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 5 7 0 obj << /Contents 43 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 6 8 0 obj << /Contents 45 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 7 9 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 8 10 0 obj << /Contents 49 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 9 11 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 10 12 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 11 13 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 12 14 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 13 15 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 14 16 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 15 17 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 16 18 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 17 19 0 obj << /Contents 67 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 18 20 0 obj << /Contents 69 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 19 21 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 20 22 0 obj << /Contents 73 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 21 23 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 22 24 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 23 25 0 obj << /Contents 79 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 24 26 0 obj << /Contents 81 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 25 27 0 obj << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 26 28 0 obj << /Contents 85 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 27 29 0 obj << /Contents 87 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 28 30 0 obj << /Contents 89 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 29 31 0 obj << /Contents 91 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 30 32 0 obj << /Contents 93 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Contents for page 1 33 0 obj << /Length 34 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 0) Tj ET endstream endobj 34 0 obj 46 endobj 35 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 36 0 obj [ /PDF /Text ] endobj %% Contents for page 2 37 0 obj << /Length 38 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 38 0 obj 46 endobj %% Contents for page 3 39 0 obj << /Length 40 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 40 0 obj 46 endobj %% Contents for page 4 41 0 obj << /Length 42 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 42 0 obj 46 endobj %% Contents for page 5 43 0 obj << /Length 44 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 44 0 obj 46 endobj %% Contents for page 6 45 0 obj << /Length 46 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 46 0 obj 46 endobj %% Contents for page 7 47 0 obj << /Length 48 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 48 0 obj 46 endobj %% Contents for page 8 49 0 obj << /Length 50 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 50 0 obj 46 endobj %% Contents for page 9 51 0 obj << /Length 52 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 52 0 obj 46 endobj %% Contents for page 10 53 0 obj << /Length 54 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 54 0 obj 46 endobj %% Contents for page 11 55 0 obj << /Length 56 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 56 0 obj 47 endobj %% Contents for page 12 57 0 obj << /Length 58 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 58 0 obj 47 endobj %% Contents for page 13 59 0 obj << /Length 60 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 60 0 obj 47 endobj %% Contents for page 14 61 0 obj << /Length 62 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 62 0 obj 47 endobj %% Contents for page 15 63 0 obj << /Length 64 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 64 0 obj 47 endobj %% Contents for page 16 65 0 obj << /Length 66 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 66 0 obj 47 endobj %% Contents for page 17 67 0 obj << /Length 68 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 68 0 obj 47 endobj %% Contents for page 18 69 0 obj << /Length 70 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 70 0 obj 47 endobj %% Contents for page 19 71 0 obj << /Length 72 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 72 0 obj 47 endobj %% Contents for page 20 73 0 obj << /Length 74 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 74 0 obj 47 endobj %% Contents for page 21 75 0 obj << /Length 76 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 76 0 obj 47 endobj %% Contents for page 22 77 0 obj << /Length 78 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 78 0 obj 47 endobj %% Contents for page 23 79 0 obj << /Length 80 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 80 0 obj 47 endobj %% Contents for page 24 81 0 obj << /Length 82 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 82 0 obj 47 endobj %% Contents for page 25 83 0 obj << /Length 84 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 84 0 obj 47 endobj %% Contents for page 26 85 0 obj << /Length 86 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 86 0 obj 47 endobj %% Contents for page 27 87 0 obj << /Length 88 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 88 0 obj 47 endobj %% Contents for page 28 89 0 obj << /Length 90 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 90 0 obj 47 endobj %% Contents for page 29 91 0 obj << /Length 92 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 92 0 obj 47 endobj %% Contents for page 30 93 0 obj << /Length 94 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 94 0 obj 47 endobj 95 0 obj << /Type /Outlines /First 96 0 R /Last 97 0 R /Count 6 >> endobj 96 0 obj << /Type /Outline /Title (Iss 1 -> 5: /XYZ null null null) /Parent 95 0 R /Count 4 /Next 97 0 R /First 98 0 R /Last 99 0 R /Dest [ 8 0 R /XYZ null null null ] >> endobj 97 0 obj << /Type /Outline /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Parent 95 0 R /Prev 96 0 R /Dest [ 18 0 R /XYZ 66 756 3 ] >> endobj 98 0 obj << /Type /Outline /Title (Amanda 1.1 -> 11: /Fit) /Parent 96 0 R /Next 99 0 R /First 100 0 R /Last 101 0 R /Count -3 /Dest [ 14 0 R /Fit ] >> endobj 99 0 obj << /Type /Outline % /Title (Sandy (Sandy [Greek]) 1.2 -> 13: /FitH 792) /Title /Parent 96 0 R /Prev 98 0 R /First 105 0 R /Last 106 0 R /Count 2 /Dest [ 16 0 R /FitH 792 ] >> endobj 100 0 obj << /Type /Outline /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Parent 98 0 R /Next 101 0 R /First 102 0 R /Last 103 0 R /Count -2 /Dest [ 15 0 R /FitV 100 ] >> endobj 101 0 obj << /Type /Outline /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Parent 98 0 R /Prev 100 0 R /First 104 0 R /Last 104 0 R /Count 1 /Dest [ 15 0 R /XYZ null null null ] >> endobj 102 0 obj << /Type /Outline /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Parent 100 0 R /Next 103 0 R /Dest [ 21 0 R /XYZ null null null ] >> endobj 103 0 obj << /Type /Outline /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Parent 100 0 R /Prev 102 0 R /Dest [ 22 0 R /XYZ null null null ] >> endobj 104 0 obj << /Type /Outline /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Parent 101 0 R /Dest [ 25 0 R /XYZ null null null ] >> endobj 105 0 obj << /Type /Outline /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Parent 99 0 R /Next 106 0 R /Dest [ 4 0 R /FitR 66 714 180 770 ] >> endobj 106 0 obj << /Type /Outline /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Parent 99 0 R /Prev 105 0 R /Dest [ 3 0 R /XYZ null null null ] >> endobj 107 0 obj << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> endobj xref 0 108 0000000000 65535 f 0000000025 00000 n 0000000145 00000 n 0000000541 00000 n 0000000746 00000 n 0000000951 00000 n 0000001156 00000 n 0000001361 00000 n 0000001566 00000 n 0000001771 00000 n 0000001976 00000 n 0000002182 00000 n 0000002389 00000 n 0000002596 00000 n 0000002803 00000 n 0000003010 00000 n 0000003217 00000 n 0000003424 00000 n 0000003631 00000 n 0000003838 00000 n 0000004045 00000 n 0000004252 00000 n 0000004459 00000 n 0000004666 00000 n 0000004873 00000 n 0000005080 00000 n 0000005287 00000 n 0000005494 00000 n 0000005701 00000 n 0000005908 00000 n 0000006115 00000 n 0000006322 00000 n 0000006529 00000 n 0000006748 00000 n 0000006851 00000 n 0000006871 00000 n 0000006990 00000 n 0000007049 00000 n 0000007152 00000 n 0000007195 00000 n 0000007298 00000 n 0000007341 00000 n 0000007444 00000 n 0000007487 00000 n 0000007590 00000 n 0000007633 00000 n 0000007736 00000 n 0000007779 00000 n 0000007882 00000 n 0000007925 00000 n 0000008028 00000 n 0000008071 00000 n 0000008174 00000 n 0000008218 00000 n 0000008321 00000 n 0000008365 00000 n 0000008469 00000 n 0000008513 00000 n 0000008617 00000 n 0000008661 00000 n 0000008765 00000 n 0000008809 00000 n 0000008913 00000 n 0000008957 00000 n 0000009061 00000 n 0000009105 00000 n 0000009209 00000 n 0000009253 00000 n 0000009357 00000 n 0000009401 00000 n 0000009505 00000 n 0000009549 00000 n 0000009653 00000 n 0000009697 00000 n 0000009801 00000 n 0000009845 00000 n 0000009949 00000 n 0000009993 00000 n 0000010097 00000 n 0000010141 00000 n 0000010245 00000 n 0000010289 00000 n 0000010393 00000 n 0000010437 00000 n 0000010541 00000 n 0000010585 00000 n 0000010689 00000 n 0000010733 00000 n 0000010837 00000 n 0000010881 00000 n 0000010985 00000 n 0000011029 00000 n 0000011133 00000 n 0000011177 00000 n 0000011281 00000 n 0000011301 00000 n 0000011388 00000 n 0000011584 00000 n 0000011730 00000 n 0000011905 00000 n 0000012258 00000 n 0000012449 00000 n 0000012659 00000 n 0000012828 00000 n 0000012997 00000 n 0000013150 00000 n 0000013319 00000 n 0000013484 00000 n trailer << /Root 1 0 R /Size 108 >> startxref 13801 %%EOF % 1. Delete page labels xref 0 1 0000000107 65535 f 107 1 0000000000 00001 f trailer << /Root 1 0 R /Size 108 /Prev 13801 >> startxref 16059 %%EOF % 2. Delete outlines, reuse page labels. 107 1 obj << /Nums [ 0 << /P () >> 2 << /S /D /St 1 >> 7 << /P () >> 9 << /S /R /St 6 >> 11 << /P () >> 12 << /S /r /St 2 >> 15 << /S /r /St 6 >> 19 << /P () >> 20 << /S /R /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> endobj % Reuse object 1 with the same generation number. Leave outlines % there pointing to a deleted object. 1 0 obj << /PageLabels 107 1 R /Pages 2 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 95 0 R >> endobj % Reuse object 33 to replace contents for page 1 33 0 obj << /Length 50 >> stream BT /F1 24 Tf 72 720 Td (Potato 0 new) Tj ET endstream endobj % Delete object 34 xref 0 2 0000000034 65535 f 0000016648 00000 n 33 2 0000016817 00000 n 0000000095 00001 f 95 13 0000000096 00001 f 0000000097 00001 f 0000000098 00001 f 0000000099 00001 f 0000000100 00001 f 0000000101 00001 f 0000000102 00001 f 0000000103 00001 f 0000000104 00001 f 0000000105 00001 f 0000000106 00001 f 0000000000 00001 f 0000016227 00001 n trailer << /Size 108 /Prev 16059 /Root 1 0 R >> startxref 16940 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.4.check0000644000064100006410000000026213247541377017472 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/a-03-split-exp.zdf0000644000064100006410000000174513247541377016671 0ustar ejbejb%PDF-1.4 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 53 >> stream x 휏nyA?(=2?&ꍕ>(ٙ aȊ1endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 6 0 obj << /Filter /Standard /Length 128 /O <2a2f0a1990192c60114730bdcd39f37828a53c89a340dd473c85299dc5258e1c> /P -4 /R 3 /U /V 2 >> endobj xref 0 7 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000398 00000 n 0000000497 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] /Encrypt 6 0 R >> startxref 704 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/lin1.pdf0000644000064100006410000003145713247541377015142 0ustar ejbejb%PDF-1.3 % 60 0 obj << /Linearized 1 /L 13103 /H [ 1211 203 ] /O 62 /E 1827 /N 30 /T 11776 >> endobj xref 60 19 0000000017 00000 n 0000000849 00000 n 0000001414 00000 n 0000001571 00000 n 0000001676 00000 n 0000001793 00000 n 0000001827 00000 n 0000001909 00000 n 0000002100 00000 n 0000002244 00000 n 0000002412 00000 n 0000002703 00000 n 0000002868 00000 n 0000003030 00000 n 0000003212 00000 n 0000003413 00000 n 0000003563 00000 n 0000003727 00000 n 0000001211 00000 n trailer << /Size 79 /Prev 11765 /Root 61 0 R /ID [] >> startxref 0 %%EOF 61 0 obj << /PageLabels << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /Pages 59 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 66 0 R >> endobj 78 0 obj << /S 194 /O 256 /Filter /FlateDecode /Length 105 >> stream xc```b``À<@&8еB310  pF xI6 b%NۉJ5,jy mN l`2pX_" endstream endobj 62 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 63 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 0) Tj ET endstream endobj 64 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 65 0 obj [ /PDF /Text ] endobj 66 0 obj << /Type /Outlines /First 67 0 R /Last 68 0 R /Count 6 >> endobj 67 0 obj << /Type /Outline /Title (Iss 1 -> 5: /XYZ null null null) /Parent 66 0 R /Count 4 /Next 68 0 R /First 69 0 R /Last 70 0 R /Dest [ 9 0 R /XYZ null null null ] >> endobj 68 0 obj << /Type /Outline /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Parent 66 0 R /Prev 67 0 R /Dest [ 29 0 R /XYZ 66 756 3 ] >> endobj 69 0 obj << /Type /Outline /Title (Amanda 1.1 -> 11: /Fit) /Parent 67 0 R /Next 70 0 R /First 73 0 R /Last 74 0 R /Count -3 /Dest [ 21 0 R /Fit ] >> endobj 70 0 obj << /Type /Outline /Title /Parent 67 0 R /Prev 69 0 R /First 71 0 R /Last 72 0 R /Count 2 /Dest [ 25 0 R /FitH 792 ] >> endobj 71 0 obj << /Type /Outline /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Parent 70 0 R /Next 72 0 R /Dest [ 1 0 R /FitR 66 714 180 770 ] >> endobj 72 0 obj << /Type /Outline /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Parent 70 0 R /Prev 71 0 R /Dest [ 62 0 R /XYZ null null null ] >> endobj 73 0 obj << /Type /Outline /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Parent 69 0 R /Next 74 0 R /First 76 0 R /Last 77 0 R /Count -2 /Dest [ 23 0 R /FitV 100 ] >> endobj 74 0 obj << /Type /Outline /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Parent 69 0 R /Prev 73 0 R /First 75 0 R /Last 75 0 R /Count 1 /Dest [ 23 0 R /XYZ null null null ] >> endobj 75 0 obj << /Type /Outline /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Parent 74 0 R /Dest [ 43 0 R /XYZ null null null ] >> endobj 76 0 obj << /Type /Outline /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Parent 73 0 R /Next 77 0 R /Dest [ 35 0 R /XYZ null null null ] >> endobj 77 0 obj << /Type /Outline /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Parent 73 0 R /Prev 76 0 R /Dest [ 37 0 R /XYZ null null null ] >> endobj 1 0 obj << /Contents 2 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 2 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 4 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 5 0 obj << /Contents 6 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 6 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 7 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 8 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 9 0 obj << /Contents 10 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 10 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 11 0 obj << /Contents 12 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 12 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 13 0 obj << /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 14 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 15 0 obj << /Contents 16 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 16 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 17 0 obj << /Contents 18 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 18 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 19 0 obj << /Contents 20 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 20 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 21 0 obj << /Contents 22 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 22 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 23 0 obj << /Contents 24 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 24 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 25 0 obj << /Contents 26 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 26 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 27 0 obj << /Contents 28 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 28 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 29 0 obj << /Contents 30 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 30 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 31 0 obj << /Contents 32 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 32 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 33 0 obj << /Contents 34 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 34 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 35 0 obj << /Contents 36 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 36 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 37 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 38 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 39 0 obj << /Contents 40 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 40 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 41 0 obj << /Contents 42 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 42 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 43 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 44 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 45 0 obj << /Contents 46 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 46 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 47 0 obj << /Contents 48 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 48 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 49 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 50 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 51 0 obj << /Contents 52 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 52 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 53 0 obj << /Contents 54 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 54 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 55 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 56 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 57 0 obj << /Contents 58 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 58 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 59 0 obj << /Count 30 /Kids [ 62 0 R 1 0 R 3 0 R 5 0 R 7 0 R 9 0 R 11 0 R 13 0 R 15 0 R 17 0 R 19 0 R 21 0 R 23 0 R 25 0 R 27 0 R 29 0 R 31 0 R 33 0 R 35 0 R 37 0 R 39 0 R 41 0 R 43 0 R 45 0 R 47 0 R 49 0 R 51 0 R 53 0 R 55 0 R 57 0 R ] /Type /Pages >> endobj xref 0 60 0000000060 65535 f 0000003891 00000 n 0000004046 00000 n 0000004150 00000 n 0000004305 00000 n 0000004409 00000 n 0000004564 00000 n 0000004668 00000 n 0000004823 00000 n 0000004927 00000 n 0000005083 00000 n 0000005188 00000 n 0000005345 00000 n 0000005450 00000 n 0000005607 00000 n 0000005712 00000 n 0000005869 00000 n 0000005974 00000 n 0000006131 00000 n 0000006236 00000 n 0000006393 00000 n 0000006499 00000 n 0000006656 00000 n 0000006762 00000 n 0000006919 00000 n 0000007025 00000 n 0000007182 00000 n 0000007288 00000 n 0000007445 00000 n 0000007551 00000 n 0000007708 00000 n 0000007814 00000 n 0000007971 00000 n 0000008077 00000 n 0000008234 00000 n 0000008340 00000 n 0000008497 00000 n 0000008603 00000 n 0000008760 00000 n 0000008866 00000 n 0000009023 00000 n 0000009129 00000 n 0000009286 00000 n 0000009392 00000 n 0000009549 00000 n 0000009655 00000 n 0000009812 00000 n 0000009918 00000 n 0000010075 00000 n 0000010181 00000 n 0000010338 00000 n 0000010444 00000 n 0000010601 00000 n 0000010707 00000 n 0000010864 00000 n 0000010970 00000 n 0000011127 00000 n 0000011233 00000 n 0000011390 00000 n 0000011496 00000 n trailer << /Size 60 /ID [] >> startxref 178 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/tiff-predictor.pdf0000644000064100006410000000246313247541377017213 0ustar ejbejb%PDF-1.5 % %QDF-1.0 1 0 obj << /Type /ObjStm /Length 723 /N 5 /First 86 >> stream 2 0 3 97 4 212 5 457 6 535 %% Object stream: object 2, index 0; original object ID: 1 << /Pages 3 0 R /Type /Catalog >> %% Object stream: object 3, index 1; original object ID: 2 << /Count 1 /Kids [ 4 0 R ] /Type /Pages >> %% Object stream: object 4, index 2; original object ID: 3 %% Page 1 << /Contents 7 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 5 0 R >> /Type /Page >> %% Object stream: object 5, index 3; original object ID: 5 [ /PDF /Text ] %% Object stream: object 6, index 4; original object ID: 6 << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endstream endobj %% Contents for page 1 %% Original object ID: 4 0 7 0 obj << /Length 8 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 8 0 obj 44 endobj 9 0 obj << /Type /XRef /Length 48 /W [ 1 2 1 ] /Root 2 0 R /Size 10 /ID [<179a9ce4d4a81e6e263291ac95e0b88c><179a9ce4d4a81e6e263291ac95e0b88c>] /Filter /FlateDecode /DecodeParms<> >> stream xc````/ f`?FL]L^  endstream endobj startxref 1004 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/good3.out0000644000064100006410000000017413247541377015340 0ustar ejbejb/QTest is implicit /QTest is indirect and has type null (2) /QTest is null unparse: 7 0 R unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/bad1-recover.out0000644000064100006410000000040113247541377016570 0ustar ejbejbWARNING: bad1.pdf: can't find PDF header WARNING: bad1.pdf: file is damaged WARNING: bad1.pdf: can't find startxref WARNING: bad1.pdf: Attempting to reconstruct cross-reference table bad1.pdf: unable to find trailer dictionary while recovering damaged file qpdf-8.0.2/qpdf/qtest/qpdf/c-r6-in.pdf0000644000064100006410000002570613247541377015452 0ustar ejbejb%PDF-1.7 % 1 0 obj << /Extensions << /ADBE << /BaseVersion /1.7 /ExtensionLevel 8 >> >> /Outlines 3 0 R /PageLabels 15 0 R /PageMode /UseOutlines /Pages 16 0 R /Type /Catalog >> endobj 2 0 obj << /Type /ObjStm /Length 640 /Filter /FlateDecode /N 13 /First 87 >> stream *8FTbp~ SO19EohsDA~"!T= $} ~S ),wegȱsQ% v]z؟sBG |/ jQۓDK]jƆ^6`|,.nXKsЕ,}ݐ >pu_TdU(1xC|Kݼ+dߢhI2>9=̿8T01hv_.-j t/mW00V&5 Q.A1*`ʬP*H"{!f8M܉jTPttmpG:g_J%3iaFԅxx1T}N>2۰sLL[B`&hgwkՑU׍wxjjFPƸ¹X/v+NBѪ7)ypϹ+)f;k ^P!P%d-V҅72/&D|rG2qplbNGs|v ҽtS&|qIU> endobj 17 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 18 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 19 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 20 0 obj << /Contents 52 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 21 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 22 0 obj << /Contents 54 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 23 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 24 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 25 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 26 0 obj << /Contents 58 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 27 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 28 0 obj << /Contents 60 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 29 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 30 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 31 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 32 0 obj << /Contents 64 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 33 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 34 0 obj << /Contents 66 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 35 0 obj << /Contents 67 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 36 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 37 0 obj << /Contents 69 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 38 0 obj << /Contents 70 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 39 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 40 0 obj << /Contents 72 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 41 0 obj << /Contents 73 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 42 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 43 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 44 0 obj << /Contents 76 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 45 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 46 0 obj << /Contents 78 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 47 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~{=(ѭʌdƍ6'vttZf[bV}ц$R,Q.endstream endobj 48 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 49 0 obj [ /PDF /Text ] endobj 50 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~{=(ѭʌdƍ6'vttZZO> _Cyy8ƺNvZendstream endobj 51 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~{=(ѭʌdƍ6'vttZ4Ho؛^;TD+`XE]i^endstream endobj 52 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~{=(ѭʌdƍ6'vttZp>EH"i)3#wN eO/endstream endobj 53 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~{=(ѭʌdƍ6'vttZ5"foP?O=ծz$wendstream endobj 54 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~{=(ѭʌdƍ6'vttZ[tmu%JQ /5endstream endobj 55 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~{=(ѭʌdƍ6'vttZxߊ](c *>O!ejOgye:endstream endobj 56 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~{=(ѭʌdƍ6'vttZpԹQN&> stream *8FTbp~{=(ѭʌdƍ6'vttZ,}L֛Q_J Dendstream endobj 58 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~{=(ѭʌdƍ6'vttZZMkA/l!_O-eD endstream endobj 59 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~{=(ѭʌdƍ6'vttZ Sm-HYetX_Qt endstream endobj 60 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~{=(ѭʌdƍ6'vttZ^E ]+=Ys`qz1endstream endobj 61 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~{=(ѭʌdƍ6'vttZ`B9 ̎P_:<6,iendstream endobj 62 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~{=(ѭʌdƍ6'vttZڻ LGS䬯N#a-O0iF_ endstream endobj 63 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~{=(ѭʌdƍ6'vttZa[mJigB\&=05Ce%endstream endobj 64 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~{=(ѭʌdƍ6'vttZm,SY8Cv5lDx(f1endstream endobj 65 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~{=(ѭʌdƍ6'vttZP!NHG D.]wYh@86pendstream endobj 66 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~{=(ѭʌdƍ6'vttZwھLFLc.ܚ͢ĕD0Bendstream endobj 67 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~{=(ѭʌdƍ6'vttZ)58< M&u1 > stream *8FTbp~{=(ѭʌdƍ6'vttZt6tǢХ 'D`AiLRdendstream endobj 69 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~{=(ѭʌdƍ6'vttZN e+eEN$l!2WZO;/endstream endobj 70 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~{=(ѭʌdƍ6'vttZxtyIn|Y> stream *8FTbp~{=(ѭʌdƍ6'vttZT)`)ԒT_>[tFmTendstream endobj 72 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~{=(ѭʌdƍ6'vttZ)|l&qū<I] '0J+,ܚendstream endobj 73 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~{=(ѭʌdƍ6'vttZqhd% Do\rⵧރHendstream endobj 74 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~{=(ѭʌdƍ6'vttZ|kXds~7 > stream *8FTbp~{=(ѭʌdƍ6'vttZN`Eyg._(|iНY!bendstream endobj 76 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~{=(ѭʌdƍ6'vttZP|#@?(Һג辷O 5E9<ޥendstream endobj 77 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~{=(ѭʌdƍ6'vttZ7)V Э˜̣NrKkTn8iS>endstream endobj 78 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~{=(ѭʌdƍ6'vttZoy_7oP]b$7rwVendstream endobj 79 0 obj << /CF << /StdCF << /AuthEvent /DocOpen /CFM /AESV3 /Length 32 >> >> /Filter /Standard /Length 256 /O <763da292b812f8dc28b06a3c761cf326d10d3ce4466c57e1190591c46ef175908a6937494850bf868acadf7895f624d3> /OE <05fccc7814374c557cb73488072c88fa7451c9d57b4a24fb3576d6cd87ff7423> /P -2052 /Perms <621cc3103607094f6e8d6ca7ae92ab91> /R 6 /StmF /StdCF /StrF /StdCF /U /UE <1d6380d0205dd324bf64913a1a2f7455bf594b90540d3b843765e713f8cd1b72> /V 5 >> endobj 80 0 obj << /Type /XRef /Length 76 /Filter /FlateDecode /DecodeParms << /Columns 4 /Predictor 12 >> /W [ 1 2 1 ] /Root 1 0 R /Size 81 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] /Encrypt 79 0 R >> stream xcb&F~&u +H.y&FN)S@FMd.A%t+ĒsиDHPˤ(5 endstream endobj startxref 10855 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad11.out0000644000064100006410000000012313247541377015207 0ustar ejbejbbad11.pdf (trailer, offset 905): /Prev key in trailer dictionary is not an integer qpdf-8.0.2/qpdf/qtest/qpdf/bad35.pdf0000644000064100006410000000144713247541377015171 0ustar ejbejb%PDF-1.5 % 1 0 obj << /Type /Potato /N 5 /First 31 /Length 418 >> stream 2 0 3 42 4 102 5 262 6 285 % 2 << /Type /Catalog /Pages 3 0 R >> % 3 << /Type /Pages /Kids [ 4 0 R ] /Count 1 >> % 4 << /Type /Page /Parent 3 0 R /MediaBox [0 0 612 792] /Contents 7 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> % 5 [ /PDF /Text ] % 6 << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endstream endobj 7 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 8 0 obj << /Type /XRef /Size 9 /Index [0 9] /W [1 2 1] /Length 36 /Root 2 0 R /QTest 4 0 R >> stream  i endstream endobj startxref 617 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/indirect-r-arg.pdf0000644000064100006410000000215013247541377017072 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /X 1 0 R 0 R /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj %% Original object ID: 6 0 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 5 0 7 0 obj [ /PDF /Text ] endobj xref 0 8 0000000000 65535 f 0000000052 00000 n 0000000148 00000 n 0000000257 00000 n 0000000499 00000 n 0000000598 00000 n 0000000644 00000 n 0000000789 00000 n trailer << /Root 1 0 R /Size 8 /ID [<9e2756c6254602d0b896148e97ee7414><9e2756c6254602d0b896148e97ee7414>] >> startxref 824 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/image-streams-generalized.out0000644000064100006410000000073613247541377021356 0ustar ejbejbpage 1 filter: null, color space: /DeviceCMYK page 2 filter: /DCTDecode, color space: /DeviceCMYK page 3 filter: /RunLengthDecode, color space: /DeviceCMYK page 4 filter: null, color space: /DeviceRGB page 5 filter: /DCTDecode, color space: /DeviceRGB page 6 filter: /RunLengthDecode, color space: /DeviceRGB page 7 filter: null, color space: /DeviceGray page 8 filter: /DCTDecode, color space: /DeviceGray page 9 filter: /RunLengthDecode, color space: /DeviceGray test 39 done qpdf-8.0.2/qpdf/qtest/qpdf/extensions-other-force-1.6.out0000644000064100006410000000015513247541377021240 0ustar ejbejbversion: 1.6 extension level: 0 << /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/test4-3.out0000644000064100006410000000007613247541377015531 0ustar ejbejbloop detected while converting object from indirect to direct qpdf-8.0.2/qpdf/qtest/qpdf/issue-143.pdf0000644000064100006410000000130613247541377015722 0ustar ejbejb0000000000000 1 0 obj <<000/Type /ObjStm 00/N 5 00/First 31 00000000000000>> stream 000 0 02 0 000 0 000 0 000 0000<<000000000003 0 R >>000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003 0 obj<>stream000000000000000000000endobj startxref 600qpdf-8.0.2/qpdf/qtest/qpdf/bad36.pdf0000644000064100006410000000144013247541377015163 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /QPDFFake1 (potato) x /Something >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/good19.out0000644000064100006410000000017113247541377015424 0ustar ejbejb/QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/coalesce.qdf0000644000064100006410000000536113247541377016051 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 2 /Kids [ 3 0 R 4 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents [ 5 0 R 7 0 R 9 0 R 11 0 R ] /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 13 0 R >> /ProcSet 14 0 R >> /Type /Page >> endobj %% Page 2 %% Original object ID: 4 0 4 0 obj << /Contents 15 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 17 0 R >> /ProcSet 18 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 5 0 5 0 obj << /Length 6 0 R >> stream BT /F1 24 Tf 72 720 Td (Pot endstream endobj %QDF: ignore_newline 6 0 obj 33 endobj %% Contents for page 1 %% Original object ID: 7 0 7 0 obj << /Length 8 0 R >> stream ato) Tj ET [ /array endstream endobj %QDF: ignore_newline 8 0 obj 19 endobj %% Contents for page 1 %% Original object ID: 9 0 9 0 obj << /Length 10 0 R >> stream /split ] BI /CS /G/W 66/H 47/BPC 8/F/Fl/DP<> ID xI P|C;U`7Z Ę}D_W->>^&u]"!*&E|Sy d-<B0B@N+<hlK/56L >0>Y!c\Y %Y8?&}j;3lpsHt endstream endobj %QDF: ignore_newline 10 0 obj 253 endobj %% Contents for page 1 %% Original object ID: 11 0 11 0 obj << /Length 12 0 R >> stream QTt*hUw%)p"DiRjDYNUAvF& u#cW ߉WO EI endstream endobj %QDF: ignore_newline 12 0 obj 65 endobj %% Original object ID: 13 0 13 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 14 0 14 0 obj [ /PDF /Text ] endobj %% Contents for page 2 %% Original object ID: 15 0 15 0 obj << /Length 16 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 16 0 obj 44 endobj %% Original object ID: 17 0 17 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 18 0 18 0 obj [ /PDF /Text ] endobj xref 0 19 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000252 00000 n 0000000524 00000 n 0000000769 00000 n 0000000879 00000 n 0000000948 00000 n 0000001044 00000 n 0000001113 00000 n 0000001444 00000 n 0000001516 00000 n 0000001660 00000 n 0000001708 00000 n 0000001855 00000 n 0000001942 00000 n 0000002043 00000 n 0000002091 00000 n 0000002238 00000 n trailer << /Root 1 0 R /Size 19 /ID [<31415926535897932384626433832795>] >> startxref 2274 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/stream-line-enders.qdf0000644000064100006410000000322113247541377017762 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents [ 4 0 R 6 0 R 8 0 R 10 0 R ] /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 12 0 R >> /ProcSet 13 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf endstream endobj 5 0 obj 14 endobj %% Contents for page 1 %% Original object ID: 5 0 6 0 obj << /Length 7 0 R >> stream 72 720 Td endstream endobj 7 0 obj 10 endobj %% Contents for page 1 %% Original object ID: 6 0 8 0 obj << /Length 9 0 R >> stream (Potato) Tj endstream endobj 9 0 obj 12 endobj %% Contents for page 1 %% Original object ID: 7 0 10 0 obj << /Length 11 0 R >> stream %comment ET endstream endobj %QDF: ignore_newline 11 0 obj 11 endobj %% Original object ID: 8 0 12 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 9 0 13 0 obj [ /PDF /Text ] endobj xref 0 14 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000242 00000 n 0000000527 00000 n 0000000596 00000 n 0000000665 00000 n 0000000730 00000 n 0000000799 00000 n 0000000866 00000 n 0000000935 00000 n 0000001025 00000 n 0000001072 00000 n 0000001218 00000 n trailer << /Root 1 0 R /Size 14 /ID [<08aa98c73f8a7262d77c8328772c3989><31415926535897932384626433832795>] >> startxref 1254 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/good3.pdf0000644000064100006410000000141213247541377015276 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /QTest 7 0 R >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/linearized-and-warnings.pdf0000644000064100006410000000243613247541377021006 0ustar ejbejb%PDF-1.3 % 3 0 obj << /Linearized 1 /L 1310 /H [ 528 118 ] /O 6 /E 1044 /N 1 /T 1132 >> endobj xref 3 7 0000000015 00000 n 0000000470 00000 n 0000000528 00000 n 0000000646 00000 n 0000000789 00000 n 0000000907 00000 n 0000000937 00000 n trailer << /Root 4 0 R /Size 10 /Prev 1124 /Z 2 0 R /ID [<4f69e58732308b1f1f2448abc0631213><4f69e58732308b1f1f2448abc0631213>] >> startxref 0 %%EOF 4 0 obj << /Pages 1 0 R /Type /Catalog /X 2 0 R >> endobj 5 0 obj << /Filter /FlateDecode /S 36 /Length 41 >> stream xc```a```>8p1?N`B endstream endobj 6 0 obj << /Contents 7 0 R /MediaBox [ 0 0 612 792 ] /Parent 1 0 R /Resources << /Font << /F1 9 0 R >> /ProcSet 8 0 R >> /Type /Page >> endobj 7 0 obj << /Length 48 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 8 0 obj [ /PDF /Text ] endobj 9 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 1 0 obj << /Count 1 /Kids [ 6 0 R ] /Type /Pages >> endobj 2 0 obj endobj xref 0 3 0000000000 65535 f 0000001044 00000 n 0000001103 00000 n trailer << /Size 3 /ID [<4f69e58732308b1f1f2448abc0631213><4f69e58732308b1f1f2448abc0631213>] >> startxref 166 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad12.pdf0000644000064100006410000000224613247541377015162 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000128 00000 n 0000000300 00000 n 0000000389 00000 n 0000000424 00000 n trailer << /Size 7 /Root 1 0 R >> startxref 542 %%EOF 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 7 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 7 0 obj << /Length 48 >> stream BT /F1 24 Tf 72 720 Td (Sandwiches) Tj ET endstream endobj xref 0 1 0000000004 65535 f 3 2 0000000750 00000 n 0000000000 00001 f 7 1 0000000922 00000 n trailer << /Size 9 /Root 1 0 R /Prev 542 >> startxref 1022 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/extensions-none-min-1.8.2.out0000644000064100006410000000014313247541377020702 0ustar ejbejbversion: 1.8 extension level: 2 << /ADBE << /BaseVersion /1.8 /ExtensionLevel 2 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/pdf-doc-to-utf8.in0000644000064100006410000000315413247541377016745 0ustar ejbejb 128 0x80 0200 U+2022 BULLET 129 0x81 0201 U+2020 DAGGER 130 0x82 0202 U+2021 DOUBLE DAGGER 131 0x83 0203 U+2026 HORIZONTAL ELLIPSIS 132 0x84 0204 U+2014 EM DASH 133 0x85 0205 U+2013 EN DASH 134 0x86 0206 U+0192 SMALL LETTER F WITH HOOK 135 0x87 0207 U+2044 FRACTION SLASH (solidus) 136 0x88 0210 U+2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK 137 0x89 0211 U+203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK 138 0x8a 0212 U+2212 MINUS SIGN 139 0x8b 0213 U+2030 PER MILLE SIGN 140 0x8c 0214 U+201E DOUBLE LOW-9 QUOTATION MARK (quotedblbase) 141 0x8d 0215 U+201C LEFT DOUBLE QUOTATION MARK (double quote left) 142 0x8e 0216 U+201D RIGHT DOUBLE QUOTATION MARK (quotedblright) 143 0x8f 0217 U+2018 LEFT SINGLE QUOTATION MARK (quoteleft) 144 0x90 0220 U+2019 RIGHT SINGLE QUOTATION MARK (quoteright) 145 0x91 0221 U+201A SINGLE LOW-9 QUOTATION MARK (quotesinglbase) 146 0x92 0222 U+2122 TRADE MARK SIGN 147 0x93 0223 U+FB01 LATIN SMALL LIGATURE FI 148 0x94 0224 U+FB02 LATIN SMALL LIGATURE FL 149 0x95 0225 U+0141 LATIN CAPITAL LETTER L WITH STROKE 150 0x96 0226 U+0152 LATIN CAPITAL LIGATURE OE 151 0x97 0227 U+0160 LATIN CAPITAL LETTER S WITH CARON 152 0x98 0230 U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS 153 0x99 0231 U+017D LATIN CAPITAL LETTER Z WITH CARON 154 0x9a 0232 U+0131 LATIN SMALL LETTER DOTLESS I 155 0x9b 0233 U+0142 LATIN SMALL LETTER L WITH STROKE 156 0x9c 0234 U+0153 LATIN SMALL LIGATURE OE 157 0x9d 0235 U+0161 LATIN SMALL LETTER S WITH CARON 158 0x9e 0236 U+017E LATIN SMALL LETTER Z WITH CARON 159 0x9f 0237 U+FFFD UNDEFINED 160 0xa0 0240 U+20AC EURO SIGN qpdf-8.0.2/qpdf/qtest/qpdf/fix2.qdf0000644000064100006410000000231313247541377015135 0ustar ejbejb%PDF-1.5 % %QDF-1.0 1 0 obj << /Type /ObjStm /Length 608 /N 5 /First 63 >> stream 2 0 3 74 4 166 %% Object stream: object 2, index 0 << /Pages 3 0 R /Type /Catalog >> %% Object stream: object 3, index 1 << /Count 1 /Kids [ 4 0 R ] /Type /Pages >> %% Object stream: object 4, index 2 %% Page 1 << /Contents 8 0 R /MediaBox [ 100 100 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 7 0 R >> /ProcSet 6 0 R >> /Type /Page >> endstream endobj 5 0 obj << /Type /ObjStm /Length 608 /N 2 /First 63 /Extends 1 0 R >> stream 0 0 0 0 %% Object stream: object 6, index 0 [ /PDF /Text ] %% Object stream: object 7, index 1 << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endstream endobj %% Contents for page 1 8 0 obj << /Length 9 0 R >> stream BT /F1 24 Tf 72 720 Td (.........Potato Salad) Tj ET endstream endobj 9 0 obj 44 endobj 10 0 obj << /Type /XRef /Length 40 /W [ 1 2 1 ] /Root 2 0 R /Size 10 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> stream K^ endstream endobj startxref 862 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/enc-R2,V1,U=view.pdf0000644000064100006410000004136113247541377016774 0ustar ejbejb%PDF-1.4 % 91 0 obj << /Linearized 1 /O 94 /H [ 1332 210 ] /L 17137 /E 4178 /N 30 /T 15199 >> endobj xref 91 22 0000000016 00000 n 0000000805 00000 n 0000001179 00000 n 0000001542 00000 n 0000001737 00000 n 0000001817 00000 n 0000002006 00000 n 0000002148 00000 n 0000002315 00000 n 0000002490 00000 n 0000002656 00000 n 0000002817 00000 n 0000003001 00000 n 0000003203 00000 n 0000003355 00000 n 0000003519 00000 n 0000003683 00000 n 0000003815 00000 n 0000003836 00000 n 0000003952 00000 n 0000001332 00000 n 0000001521 00000 n trailer << /Size 113 /Info 89 0 R /Encrypt 93 0 R /Root 92 0 R /Prev 15189 /ID[<66d36a30a97e0f16f39955c6221e0c2a><680f1c4b6513086461480355b5ff2e3e>] >> startxref 0 %%EOF 92 0 obj << /PageLabels << /Nums [ 0 << /P ()>> 2 << /S /r /St 1 >> 7 << /P ()>> 9 << /S /r /St 6 >> 11 << /P ()>> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P ()>> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /Pages 88 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 95 0 R /Metadata 90 0 R >> endobj 93 0 obj << /Filter /Standard /R 2 /O (`V$B *]g S#) /U (=fW[.nzIAS\(\(?w`) /P -64 /V 1 /Length 40 >> endobj 111 0 obj << /S 145 /O 189 /Filter /FlateDecode /Length 112 0 R >> stream e8װ|5,( ,WyUCCClfX먻 YϐA@%7"M9 3) OD)=_)" endstream endobj 112 0 obj 95 endobj 94 0 obj << /Contents 107 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 95 0 obj << /Type /Outlines /First 96 0 R /Last 97 0 R /Count 6 >> endobj 96 0 obj << /Type /Outline /Title (pU7hKk 6cCuauB) /Parent 95 0 R /Count 4 /Next 97 0 R /First 98 0 R /Last 99 0 R /Dest [ 13 0 R /XYZ null null null ] >> endobj 97 0 obj << /Type /Outline /Title ({]F\\KGvZɬ) /Parent 95 0 R /Prev 96 0 R /Dest [ 43 0 R /XYZ 66 756 3 ] >> endobj 98 0 obj << /Type /Outline /Title (_M_2> endobj 99 0 obj << /Type /Outline /Title (eeaHu-#E) /Parent 96 0 R /Prev 98 0 R /First 100 0 R /Last 101 0 R /Count 2 /Dest [ 37 0 R /FitH 792 ] >> endobj 100 0 obj << /Type /Outline /Title (dz\\^LՊdD\\yQ{7J9> endobj 101 0 obj << /Type /Outline /Title (-I>X{|϶ -E[?tAh) /Parent 99 0 R /Prev 100 0 R /Dest [ 94 0 R /XYZ null null null ] >> endobj 102 0 obj << /Type /Outline /Title (3G;z9t~#v\rOʨͻ) /Parent 98 0 R /Next 103 0 R /First 105 0 R /Last 106 0 R /Count -2 /Dest [ 34 0 R /FitV 100 ] >> endobj 103 0 obj << /Type /Outline /Title (߹32C%HGZRg{G2VAn0) /Parent 98 0 R /Prev 102 0 R /First 104 0 R /Last 104 0 R /Count 1 /Dest [ 34 0 R /XYZ null null null ] >> endobj 104 0 obj << /Type /Outline /Title ( Bf\(sk'2Q:n\rDj02\(vY) /Parent 103 0 R /Dest [ 64 0 R /XYZ null null null ] >> endobj 105 0 obj << /Type /Outline /Title (y&B| 21>|1xMCxM) /Parent 102 0 R /Next 106 0 R /Dest [ 52 0 R /XYZ null null null ] >> endobj 106 0 obj << /Type /Outline /Title (4"YBOh/,;$lّ?evG) /Parent 102 0 R /Prev 105 0 R /Dest [ 55 0 R /XYZ null null null ] >> endobj 107 0 obj << /Filter /FlateDecode /Length 108 0 R >> stream oOG qW' @[^WmeØ0u 1t0>;X٧ endstream endobj 108 0 obj 52 endobj 109 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 110 0 obj [ /PDF /Text ] endobj 1 0 obj << /Contents 2 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 2 0 obj << /Filter /FlateDecode /Length 3 0 R >> stream Hj?UA:ȤwGoMR"I' ܀/ʹkYjI endstream endobj 3 0 obj 52 endobj 4 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 5 0 obj << /Filter /FlateDecode /Length 6 0 R >> stream \{90f,^}ӳ[,%Xls⑿t/.r endstream endobj 6 0 obj 52 endobj 7 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 8 0 obj << /Filter /FlateDecode /Length 9 0 R >> stream &?9!>҆n@Gj.:qd5&4]BV!i< endstream endobj 9 0 obj 52 endobj 10 0 obj << /Contents 11 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 11 0 obj << /Filter /FlateDecode /Length 12 0 R >> stream khA㢦76[Q_Xړ0(',R,,iR endstream endobj 12 0 obj 52 endobj 13 0 obj << /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 14 0 obj << /Filter /FlateDecode /Length 15 0 R >> stream ʅ܈wG d jW.JKt^{r'bߣҩrJ0D endstream endobj 15 0 obj 52 endobj 16 0 obj << /Contents 17 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 17 0 obj << /Filter /FlateDecode /Length 18 0 R >> stream id0u# LJ:> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 20 0 obj << /Filter /FlateDecode /Length 21 0 R >> stream ]p.Aq^"ц+Tw34vfh>gP.-nQHD TH endstream endobj 21 0 obj 52 endobj 22 0 obj << /Contents 23 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 23 0 obj << /Filter /FlateDecode /Length 24 0 R >> stream ߈: s-yxPuW֚)@ZuAI1oBzT1 endstream endobj 24 0 obj 52 endobj 25 0 obj << /Contents 26 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 26 0 obj << /Filter /FlateDecode /Length 27 0 R >> stream r H~)@(> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 29 0 obj << /Filter /FlateDecode /Length 30 0 R >> stream 8u*b-ga65횠?57Xo]Nmʪ,  endstream endobj 30 0 obj 53 endobj 31 0 obj << /Contents 32 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 32 0 obj << /Filter /FlateDecode /Length 33 0 R >> stream AY'JFM{FGK'CCo[U.>6 endstream endobj 33 0 obj 53 endobj 34 0 obj << /Contents 35 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 35 0 obj << /Filter /FlateDecode /Length 36 0 R >> stream .vordgxIxr Xf7m\Ƴ_8 endstream endobj 36 0 obj 53 endobj 37 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 38 0 obj << /Filter /FlateDecode /Length 39 0 R >> stream  &/> e͑ԕSAJMZ>e4w6=[I> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 41 0 obj << /Filter /FlateDecode /Length 42 0 R >> stream Xc!2eȕc%>N-q9$kgfR0o endstream endobj 42 0 obj 53 endobj 43 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 44 0 obj << /Filter /FlateDecode /Length 45 0 R >> stream "U# d0JGpVO1QY.s7Fe4EU[9b endstream endobj 45 0 obj 53 endobj 46 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 47 0 obj << /Filter /FlateDecode /Length 48 0 R >> stream yT4USc̔c촄]MdDxg2X endstream endobj 48 0 obj 53 endobj 49 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 50 0 obj << /Filter /FlateDecode /Length 51 0 R >> stream н,d+`e &I GewzMV# endstream endobj 51 0 obj 53 endobj 52 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 53 0 obj << /Filter /FlateDecode /Length 54 0 R >> stream ZVrĦFY44s[]dM kn>T endstream endobj 54 0 obj 53 endobj 55 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 56 0 obj << /Filter /FlateDecode /Length 57 0 R >> stream ZgL4/eKIiD4?zJ^@#"_ endstream endobj 57 0 obj 53 endobj 58 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 59 0 obj << /Filter /FlateDecode /Length 60 0 R >> stream Ï6zG3Kz1Sc&uӛkH x?Zp endstream endobj 60 0 obj 53 endobj 61 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 62 0 obj << /Filter /FlateDecode /Length 63 0 R >> stream Y5|tm|W%.N,ƨE1ё1bV endstream endobj 63 0 obj 53 endobj 64 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 65 0 obj << /Filter /FlateDecode /Length 66 0 R >> stream 1XrID$^%K3d9Vc0{{ɪk endstream endobj 66 0 obj 53 endobj 67 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 68 0 obj << /Filter /FlateDecode /Length 69 0 R >> stream fxE_b>U~~heQvde}X%WGP0u endstream endobj 69 0 obj 53 endobj 70 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 71 0 obj << /Filter /FlateDecode /Length 72 0 R >> stream ,',Y7Up/=|`ʙ Μ{Af!?u5}dSإ>R endstream endobj 72 0 obj 52 endobj 73 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 74 0 obj << /Filter /FlateDecode /Length 75 0 R >> stream gzY 8IGB/blb1Il{FuEB;:K endstream endobj 75 0 obj 53 endobj 76 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 77 0 obj << /Filter /FlateDecode /Length 78 0 R >> stream LҵyFJ,+obЀrͫf6]4Ors endstream endobj 78 0 obj 53 endobj 79 0 obj << /Contents 80 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 80 0 obj << /Filter /FlateDecode /Length 81 0 R >> stream ABL62Qg-G5:'´)C/no(stlfJ endstream endobj 81 0 obj 53 endobj 82 0 obj << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 83 0 obj << /Filter /FlateDecode /Length 84 0 R >> stream }v]>0ֲAzYfr%rA:; nHĺ endstream endobj 84 0 obj 53 endobj 85 0 obj << /Contents 86 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 86 0 obj << /Filter /FlateDecode /Length 87 0 R >> stream pxCxrbS[iBs լMAdW(f' endstream endobj 87 0 obj 53 endobj 88 0 obj << /Count 30 /Kids [ 94 0 R 1 0 R 4 0 R 7 0 R 10 0 R 13 0 R 16 0 R 19 0 R 22 0 R 25 0 R 28 0 R 31 0 R 34 0 R 37 0 R 40 0 R 43 0 R 46 0 R 49 0 R 52 0 R 55 0 R 58 0 R 61 0 R 64 0 R 67 0 R 70 0 R 73 0 R 76 0 R 79 0 R 82 0 R 85 0 R ] /Type /Pages >> endobj 89 0 obj << /ModDate (뻠 ]bͧ,) /CreationDate (뻠 ]`Χ,) >> endobj 90 0 obj << /Type /Metadata /Subtype /XML /Length 770 >> stream i?/S@fk$Zug1:K 6EJ{;BCCnf}9XHY5 JH^q+(*p*ƖTI 98\p4'. :7ReW"WO=0Mޑ Bn5F˞^QQD<6w 52``jx{r1UL]ofi#SWU[/s?PwYI^?+]" y`<oB|SU믔W|7b;OM:J4iө(pUV (xHyW@i~T*^&Q +I Dq(^]wX"g81ԉXC^n ˛aeGdg* U!dW(h<i>o8];32"0Րg/]{OL!LIE Ibf9sIGIlr"mBj+O6n)l~'`b|zЫON~9dټ *˭;? P٭vWjI5Eq I<6S׉p%)IΙ')HQbHQXtbϲ#xzV76;4-&&ATJVםrToTs eN}L]L'Hg3{*B:XN~ 5|E g!ZܾJQЉat2)?r1cҋT H<D6lX*0߱[m endstream endobj xref 0 91 0000000000 65535 f 0000003986 00000 n 0000004178 00000 n 0000004306 00000 n 0000004325 00000 n 0000004517 00000 n 0000004645 00000 n 0000004664 00000 n 0000004856 00000 n 0000004984 00000 n 0000005003 00000 n 0000005197 00000 n 0000005327 00000 n 0000005347 00000 n 0000005541 00000 n 0000005671 00000 n 0000005691 00000 n 0000005885 00000 n 0000006015 00000 n 0000006035 00000 n 0000006229 00000 n 0000006359 00000 n 0000006379 00000 n 0000006573 00000 n 0000006703 00000 n 0000006723 00000 n 0000006917 00000 n 0000007047 00000 n 0000007067 00000 n 0000007261 00000 n 0000007392 00000 n 0000007412 00000 n 0000007606 00000 n 0000007737 00000 n 0000007757 00000 n 0000007951 00000 n 0000008082 00000 n 0000008102 00000 n 0000008296 00000 n 0000008427 00000 n 0000008447 00000 n 0000008641 00000 n 0000008772 00000 n 0000008792 00000 n 0000008986 00000 n 0000009117 00000 n 0000009137 00000 n 0000009331 00000 n 0000009462 00000 n 0000009482 00000 n 0000009676 00000 n 0000009807 00000 n 0000009827 00000 n 0000010021 00000 n 0000010152 00000 n 0000010172 00000 n 0000010366 00000 n 0000010497 00000 n 0000010517 00000 n 0000010711 00000 n 0000010842 00000 n 0000010862 00000 n 0000011056 00000 n 0000011187 00000 n 0000011207 00000 n 0000011401 00000 n 0000011532 00000 n 0000011552 00000 n 0000011746 00000 n 0000011877 00000 n 0000011897 00000 n 0000012091 00000 n 0000012221 00000 n 0000012241 00000 n 0000012435 00000 n 0000012566 00000 n 0000012586 00000 n 0000012780 00000 n 0000012911 00000 n 0000012931 00000 n 0000013125 00000 n 0000013256 00000 n 0000013276 00000 n 0000013470 00000 n 0000013601 00000 n 0000013621 00000 n 0000013815 00000 n 0000013946 00000 n 0000013966 00000 n 0000014236 00000 n 0000014335 00000 n trailer << /Size 91 /ID[<66d36a30a97e0f16f39955c6221e0c2a><680f1c4b6513086461480355b5ff2e3e>] >> startxref 173 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/pclm-out.pdf0000644000064100006410000322143013247541377016032 0ustar ejbejb%PDF-1.3 %PCLm 1.0 1 0 obj << /Contents [ 2 0 R ] /MediaBox [ 0 0 577 797 ] /Parent 834 0 R /Resources << /XObject << /Image000 3 0 R /Image001 5 0 R /Image002 7 0 R /Image003 9 0 R /Image004 11 0 R /Image005 13 0 R /Image006 15 0 R /Image007 17 0 R /Image008 19 0 R /Image009 21 0 R /Image010 23 0 R /Image011 25 0 R /Image012 27 0 R /Image013 29 0 R /Image014 31 0 R /Image015 33 0 R /Image016 35 0 R /Image017 37 0 R /Image018 39 0 R /Image019 41 0 R /Image020 43 0 R /Image021 45 0 R /Image022 47 0 R /Image023 49 0 R /Image024 51 0 R /Image025 53 0 R /Image026 55 0 R /Image027 57 0 R /Image028 59 0 R /Image029 61 0 R /Image030 63 0 R /Image031 65 0 R /Image032 67 0 R /Image033 69 0 R /Image034 71 0 R /Image035 73 0 R /Image036 75 0 R /Image037 77 0 R /Image038 79 0 R /Image039 81 0 R /Image040 83 0 R /Image041 85 0 R /Image042 87 0 R /Image043 89 0 R /Image044 91 0 R /Image045 93 0 R /Image046 95 0 R /Image047 97 0 R /Image048 99 0 R /Image049 101 0 R /Image050 103 0 R /Image051 105 0 R /Image052 107 0 R /Image053 109 0 R /Image054 111 0 R /Image055 113 0 R /Image056 115 0 R /Image057 117 0 R /Image058 119 0 R /Image059 121 0 R /Image060 123 0 R /Image061 125 0 R /Image062 127 0 R /Image063 129 0 R /Image064 131 0 R /Image065 133 0 R /Image066 135 0 R /Image067 137 0 R /Image068 139 0 R /Image069 141 0 R /Image070 143 0 R /Image071 145 0 R /Image072 147 0 R /Image073 149 0 R /Image074 151 0 R /Image075 153 0 R /Image076 155 0 R /Image077 157 0 R /Image078 159 0 R /Image079 161 0 R /Image080 163 0 R /Image081 165 0 R /Image082 167 0 R /Image083 169 0 R /Image084 171 0 R /Image085 173 0 R /Image086 175 0 R /Image087 177 0 R /Image088 179 0 R /Image089 181 0 R /Image090 183 0 R /Image091 185 0 R /Image092 187 0 R /Image093 189 0 R /Image094 191 0 R /Image095 193 0 R /Image096 195 0 R /Image097 197 0 R /Image098 199 0 R /Image099 201 0 R /Image100 203 0 R /Image101 205 0 R /Image102 207 0 R /Image103 209 0 R /Image104 211 0 R /Image105 213 0 R /Image106 215 0 R /Image107 217 0 R /Image108 219 0 R /Image109 221 0 R /Image110 223 0 R /Image111 225 0 R /Image112 227 0 R /Image113 229 0 R /Image114 231 0 R /Image115 233 0 R /Image116 235 0 R /Image117 237 0 R /Image118 239 0 R /Image119 241 0 R /Image120 243 0 R /Image121 245 0 R /Image122 247 0 R /Image123 249 0 R /Image124 251 0 R /Image125 253 0 R /Image126 255 0 R /Image127 257 0 R /Image128 259 0 R /Image129 261 0 R /Image130 263 0 R /Image131 265 0 R /Image132 267 0 R /Image133 269 0 R /Image134 271 0 R /Image135 273 0 R /Image136 275 0 R /Image137 277 0 R /Image138 279 0 R /Image139 281 0 R /Image140 283 0 R /Image141 285 0 R /Image142 287 0 R /Image143 289 0 R /Image144 291 0 R /Image145 293 0 R /Image146 295 0 R /Image147 297 0 R /Image148 299 0 R /Image149 301 0 R /Image150 303 0 R /Image151 305 0 R /Image152 307 0 R /Image153 309 0 R /Image154 311 0 R /Image155 313 0 R /Image156 315 0 R /Image157 317 0 R /Image158 319 0 R /Image159 321 0 R /Image160 323 0 R /Image161 325 0 R /Image162 327 0 R /Image163 329 0 R /Image164 331 0 R /Image165 333 0 R /Image166 335 0 R /Image167 337 0 R /Image168 339 0 R /Image169 341 0 R /Image170 343 0 R /Image171 345 0 R /Image172 347 0 R /Image173 349 0 R /Image174 351 0 R /Image175 353 0 R /Image176 355 0 R /Image177 357 0 R /Image178 359 0 R /Image179 361 0 R /Image180 363 0 R /Image181 365 0 R /Image182 367 0 R /Image183 369 0 R /Image184 371 0 R /Image185 373 0 R /Image186 375 0 R /Image187 377 0 R /Image188 379 0 R /Image189 381 0 R /Image190 383 0 R /Image191 385 0 R /Image192 387 0 R /Image193 389 0 R /Image194 391 0 R /Image195 393 0 R /Image196 395 0 R /Image197 397 0 R /Image198 399 0 R /Image199 401 0 R /Image200 403 0 R /Image201 405 0 R /Image202 407 0 R /Image203 409 0 R /Image204 411 0 R /Image205 413 0 R /Image206 415 0 R /Image207 417 0 R /Image208 419 0 R /Image209 421 0 R /Image210 423 0 R /Image211 425 0 R /Image212 427 0 R /Image213 429 0 R /Image214 431 0 R /Image215 433 0 R /Image216 435 0 R /Image217 437 0 R /Image218 439 0 R /Image219 441 0 R /Image220 443 0 R /Image221 445 0 R /Image222 447 0 R /Image223 449 0 R /Image224 451 0 R /Image225 453 0 R /Image226 455 0 R /Image227 457 0 R /Image228 459 0 R /Image229 461 0 R /Image230 463 0 R /Image231 465 0 R /Image232 467 0 R /Image233 469 0 R /Image234 471 0 R /Image235 473 0 R /Image236 475 0 R /Image237 477 0 R /Image238 479 0 R /Image239 481 0 R /Image240 483 0 R /Image241 485 0 R /Image242 487 0 R /Image243 489 0 R /Image244 491 0 R /Image245 493 0 R /Image246 495 0 R /Image247 497 0 R /Image248 499 0 R /Image249 501 0 R /Image250 503 0 R /Image251 505 0 R /Image252 507 0 R /Image253 509 0 R /Image254 511 0 R /Image255 513 0 R /Image256 515 0 R /Image257 517 0 R /Image258 519 0 R /Image259 521 0 R /Image260 523 0 R /Image261 525 0 R /Image262 527 0 R /Image263 529 0 R /Image264 531 0 R /Image265 533 0 R /Image266 535 0 R /Image267 537 0 R /Image268 539 0 R /Image269 541 0 R /Image270 543 0 R /Image271 545 0 R /Image272 547 0 R /Image273 549 0 R /Image274 551 0 R /Image275 553 0 R /Image276 555 0 R /Image277 557 0 R /Image278 559 0 R /Image279 561 0 R /Image280 563 0 R /Image281 565 0 R /Image282 567 0 R /Image283 569 0 R /Image284 571 0 R /Image285 573 0 R /Image286 575 0 R /Image287 577 0 R /Image288 579 0 R /Image289 581 0 R /Image290 583 0 R /Image291 585 0 R /Image292 587 0 R /Image293 589 0 R /Image294 591 0 R /Image295 593 0 R /Image296 595 0 R /Image297 597 0 R /Image298 599 0 R /Image299 601 0 R /Image300 603 0 R /Image301 605 0 R /Image302 607 0 R /Image303 609 0 R /Image304 611 0 R /Image305 613 0 R /Image306 615 0 R /Image307 617 0 R /Image308 619 0 R /Image309 621 0 R /Image310 623 0 R /Image311 625 0 R /Image312 627 0 R /Image313 629 0 R /Image314 631 0 R /Image315 633 0 R /Image316 635 0 R /Image317 637 0 R /Image318 639 0 R /Image319 641 0 R /Image320 643 0 R /Image321 645 0 R /Image322 647 0 R /Image323 649 0 R /Image324 651 0 R /Image325 653 0 R /Image326 655 0 R /Image327 657 0 R /Image328 659 0 R /Image329 661 0 R /Image330 663 0 R /Image331 665 0 R /Image332 667 0 R /Image333 669 0 R /Image334 671 0 R /Image335 673 0 R /Image336 675 0 R /Image337 677 0 R /Image338 679 0 R /Image339 681 0 R /Image340 683 0 R /Image341 685 0 R /Image342 687 0 R /Image343 689 0 R /Image344 691 0 R /Image345 693 0 R /Image346 695 0 R /Image347 697 0 R /Image348 699 0 R /Image349 701 0 R /Image350 703 0 R /Image351 705 0 R /Image352 707 0 R /Image353 709 0 R /Image354 711 0 R /Image355 713 0 R /Image356 715 0 R /Image357 717 0 R /Image358 719 0 R /Image359 721 0 R /Image360 723 0 R /Image361 725 0 R /Image362 727 0 R /Image363 729 0 R /Image364 731 0 R /Image365 733 0 R /Image366 735 0 R /Image367 737 0 R /Image368 739 0 R /Image369 741 0 R /Image370 743 0 R /Image371 745 0 R /Image372 747 0 R /Image373 749 0 R /Image374 751 0 R /Image375 753 0 R /Image376 755 0 R /Image377 757 0 R /Image378 759 0 R /Image379 761 0 R /Image380 763 0 R /Image381 765 0 R /Image382 767 0 R /Image383 769 0 R /Image384 771 0 R /Image385 773 0 R /Image386 775 0 R /Image387 777 0 R /Image388 779 0 R /Image389 781 0 R /Image390 783 0 R /Image391 785 0 R /Image392 787 0 R /Image393 789 0 R /Image394 791 0 R /Image395 793 0 R /Image396 795 0 R /Image397 797 0 R /Image398 799 0 R /Image399 801 0 R /Image400 803 0 R /Image401 805 0 R /Image402 807 0 R /Image403 809 0 R /Image404 811 0 R /Image405 813 0 R /Image406 815 0 R /Image407 817 0 R /Image408 819 0 R /Image409 821 0 R /Image410 823 0 R /Image411 825 0 R /Image412 827 0 R /Image413 829 0 R /Image414 831 0 R >> >> /Type /Page >> endobj 2 0 obj << /Length 24028 >> stream 0.120000 0 0 0.120000 0 0 cm /P <> BDC q 4810 0 0 16 0 6624 cm /Image000 Do Q /P <> BDC q 4810 0 0 16 0 6608 cm /Image001 Do Q /P <> BDC q 4810 0 0 16 0 6592 cm /Image002 Do Q /P <> BDC q 4810 0 0 16 0 6576 cm /Image003 Do Q /P <> BDC q 4810 0 0 16 0 6560 cm /Image004 Do Q /P <> BDC q 4810 0 0 16 0 6544 cm /Image005 Do Q /P <> BDC q 4810 0 0 16 0 6528 cm /Image006 Do Q /P <> BDC q 4810 0 0 16 0 6512 cm /Image007 Do Q /P <> BDC q 4810 0 0 16 0 6496 cm /Image008 Do Q /P <> BDC q 4810 0 0 16 0 6480 cm /Image009 Do Q /P <> BDC q 4810 0 0 16 0 6464 cm /Image010 Do Q /P <> BDC q 4810 0 0 16 0 6448 cm /Image011 Do Q /P <> BDC q 4810 0 0 16 0 6432 cm /Image012 Do Q /P <> BDC q 4810 0 0 16 0 6416 cm /Image013 Do Q /P <> BDC q 4810 0 0 16 0 6400 cm /Image014 Do Q /P <> BDC q 4810 0 0 16 0 6384 cm /Image015 Do Q /P <> BDC q 4810 0 0 16 0 6368 cm /Image016 Do Q /P <> BDC q 4810 0 0 16 0 6352 cm /Image017 Do Q /P <> BDC q 4810 0 0 16 0 6336 cm /Image018 Do Q /P <> BDC q 4810 0 0 16 0 6320 cm /Image019 Do Q /P <> BDC q 4810 0 0 16 0 6304 cm /Image020 Do Q /P <> BDC q 4810 0 0 16 0 6288 cm /Image021 Do Q /P <> BDC q 4810 0 0 16 0 6272 cm /Image022 Do Q /P <> BDC q 4810 0 0 16 0 6256 cm /Image023 Do Q /P <> BDC q 4810 0 0 16 0 6240 cm /Image024 Do Q /P <> BDC q 4810 0 0 16 0 6224 cm /Image025 Do Q /P <> BDC q 4810 0 0 16 0 6208 cm /Image026 Do Q /P <> BDC q 4810 0 0 16 0 6192 cm /Image027 Do Q /P <> BDC q 4810 0 0 16 0 6176 cm /Image028 Do Q /P <> BDC q 4810 0 0 16 0 6160 cm /Image029 Do Q /P <> BDC q 4810 0 0 16 0 6144 cm /Image030 Do Q /P <> BDC q 4810 0 0 16 0 6128 cm /Image031 Do Q /P <> BDC q 4810 0 0 16 0 6112 cm /Image032 Do Q /P <> BDC q 4810 0 0 16 0 6096 cm /Image033 Do Q /P <> BDC q 4810 0 0 16 0 6080 cm /Image034 Do Q /P <> BDC q 4810 0 0 16 0 6064 cm /Image035 Do Q /P <> BDC q 4810 0 0 16 0 6048 cm /Image036 Do Q /P <> BDC q 4810 0 0 16 0 6032 cm /Image037 Do Q /P <> BDC q 4810 0 0 16 0 6016 cm /Image038 Do Q /P <> BDC q 4810 0 0 16 0 6000 cm /Image039 Do Q /P <> BDC q 4810 0 0 16 0 5984 cm /Image040 Do Q /P <> BDC q 4810 0 0 16 0 5968 cm /Image041 Do Q /P <> BDC q 4810 0 0 16 0 5952 cm /Image042 Do Q /P <> BDC q 4810 0 0 16 0 5936 cm /Image043 Do Q /P <> BDC q 4810 0 0 16 0 5920 cm /Image044 Do Q /P <> BDC q 4810 0 0 16 0 5904 cm /Image045 Do Q /P <> BDC q 4810 0 0 16 0 5888 cm /Image046 Do Q /P <> BDC q 4810 0 0 16 0 5872 cm /Image047 Do Q /P <> BDC q 4810 0 0 16 0 5856 cm /Image048 Do Q /P <> BDC q 4810 0 0 16 0 5840 cm /Image049 Do Q /P <> BDC q 4810 0 0 16 0 5824 cm /Image050 Do Q /P <> BDC q 4810 0 0 16 0 5808 cm /Image051 Do Q /P <> BDC q 4810 0 0 16 0 5792 cm /Image052 Do Q /P <> BDC q 4810 0 0 16 0 5776 cm /Image053 Do Q /P <> BDC q 4810 0 0 16 0 5760 cm /Image054 Do Q /P <> BDC q 4810 0 0 16 0 5744 cm /Image055 Do Q /P <> BDC q 4810 0 0 16 0 5728 cm /Image056 Do Q /P <> BDC q 4810 0 0 16 0 5712 cm /Image057 Do Q /P <> BDC q 4810 0 0 16 0 5696 cm /Image058 Do Q /P <> BDC q 4810 0 0 16 0 5680 cm /Image059 Do Q /P <> BDC q 4810 0 0 16 0 5664 cm /Image060 Do Q /P <> BDC q 4810 0 0 16 0 5648 cm /Image061 Do Q /P <> BDC q 4810 0 0 16 0 5632 cm /Image062 Do Q /P <> BDC q 4810 0 0 16 0 5616 cm /Image063 Do Q /P <> BDC q 4810 0 0 16 0 5600 cm /Image064 Do Q /P <> BDC q 4810 0 0 16 0 5584 cm /Image065 Do Q /P <> BDC q 4810 0 0 16 0 5568 cm /Image066 Do Q /P <> BDC q 4810 0 0 16 0 5552 cm /Image067 Do Q /P <> BDC q 4810 0 0 16 0 5536 cm /Image068 Do Q /P <> BDC q 4810 0 0 16 0 5520 cm /Image069 Do Q /P <> BDC q 4810 0 0 16 0 5504 cm /Image070 Do Q /P <> BDC q 4810 0 0 16 0 5488 cm /Image071 Do Q /P <> BDC q 4810 0 0 16 0 5472 cm /Image072 Do Q /P <> BDC q 4810 0 0 16 0 5456 cm /Image073 Do Q /P <> BDC q 4810 0 0 16 0 5440 cm /Image074 Do Q /P <> BDC q 4810 0 0 16 0 5424 cm /Image075 Do Q /P <> BDC q 4810 0 0 16 0 5408 cm /Image076 Do Q /P <> BDC q 4810 0 0 16 0 5392 cm /Image077 Do Q /P <> BDC q 4810 0 0 16 0 5376 cm /Image078 Do Q /P <> BDC q 4810 0 0 16 0 5360 cm /Image079 Do Q /P <> BDC q 4810 0 0 16 0 5344 cm /Image080 Do Q /P <> BDC q 4810 0 0 16 0 5328 cm /Image081 Do Q /P <> BDC q 4810 0 0 16 0 5312 cm /Image082 Do Q /P <> BDC q 4810 0 0 16 0 5296 cm /Image083 Do Q /P <> BDC q 4810 0 0 16 0 5280 cm /Image084 Do Q /P <> BDC q 4810 0 0 16 0 5264 cm /Image085 Do Q /P <> BDC q 4810 0 0 16 0 5248 cm /Image086 Do Q /P <> BDC q 4810 0 0 16 0 5232 cm /Image087 Do Q /P <> BDC q 4810 0 0 16 0 5216 cm /Image088 Do Q /P <> BDC q 4810 0 0 16 0 5200 cm /Image089 Do Q /P <> BDC q 4810 0 0 16 0 5184 cm /Image090 Do Q /P <> BDC q 4810 0 0 16 0 5168 cm /Image091 Do Q /P <> BDC q 4810 0 0 16 0 5152 cm /Image092 Do Q /P <> BDC q 4810 0 0 16 0 5136 cm /Image093 Do Q /P <> BDC q 4810 0 0 16 0 5120 cm /Image094 Do Q /P <> BDC q 4810 0 0 16 0 5104 cm /Image095 Do Q /P <> BDC q 4810 0 0 16 0 5088 cm /Image096 Do Q /P <> BDC q 4810 0 0 16 0 5072 cm /Image097 Do Q /P <> BDC q 4810 0 0 16 0 5056 cm /Image098 Do Q /P <> BDC q 4810 0 0 16 0 5040 cm /Image099 Do Q /P <> BDC q 4810 0 0 16 0 5024 cm /Image100 Do Q /P <> BDC q 4810 0 0 16 0 5008 cm /Image101 Do Q /P <> BDC q 4810 0 0 16 0 4992 cm /Image102 Do Q /P <> BDC q 4810 0 0 16 0 4976 cm /Image103 Do Q /P <> BDC q 4810 0 0 16 0 4960 cm /Image104 Do Q /P <> BDC q 4810 0 0 16 0 4944 cm /Image105 Do Q /P <> BDC q 4810 0 0 16 0 4928 cm /Image106 Do Q /P <> BDC q 4810 0 0 16 0 4912 cm /Image107 Do Q /P <> BDC q 4810 0 0 16 0 4896 cm /Image108 Do Q /P <> BDC q 4810 0 0 16 0 4880 cm /Image109 Do Q /P <> BDC q 4810 0 0 16 0 4864 cm /Image110 Do Q /P <> BDC q 4810 0 0 16 0 4848 cm /Image111 Do Q /P <> BDC q 4810 0 0 16 0 4832 cm /Image112 Do Q /P <> BDC q 4810 0 0 16 0 4816 cm /Image113 Do Q /P <> BDC q 4810 0 0 16 0 4800 cm /Image114 Do Q /P <> BDC q 4810 0 0 16 0 4784 cm /Image115 Do Q /P <> BDC q 4810 0 0 16 0 4768 cm /Image116 Do Q /P <> BDC q 4810 0 0 16 0 4752 cm /Image117 Do Q /P <> BDC q 4810 0 0 16 0 4736 cm /Image118 Do Q /P <> BDC q 4810 0 0 16 0 4720 cm /Image119 Do Q /P <> BDC q 4810 0 0 16 0 4704 cm /Image120 Do Q /P <> BDC q 4810 0 0 16 0 4688 cm /Image121 Do Q /P <> BDC q 4810 0 0 16 0 4672 cm /Image122 Do Q /P <> BDC q 4810 0 0 16 0 4656 cm /Image123 Do Q /P <> BDC q 4810 0 0 16 0 4640 cm /Image124 Do Q /P <> BDC q 4810 0 0 16 0 4624 cm /Image125 Do Q /P <> BDC q 4810 0 0 16 0 4608 cm /Image126 Do Q /P <> BDC q 4810 0 0 16 0 4592 cm /Image127 Do Q /P <> BDC q 4810 0 0 16 0 4576 cm /Image128 Do Q /P <> BDC q 4810 0 0 16 0 4560 cm /Image129 Do Q /P <> BDC q 4810 0 0 16 0 4544 cm /Image130 Do Q /P <> BDC q 4810 0 0 16 0 4528 cm /Image131 Do Q /P <> BDC q 4810 0 0 16 0 4512 cm /Image132 Do Q /P <> BDC q 4810 0 0 16 0 4496 cm /Image133 Do Q /P <> BDC q 4810 0 0 16 0 4480 cm /Image134 Do Q /P <> BDC q 4810 0 0 16 0 4464 cm /Image135 Do Q /P <> BDC q 4810 0 0 16 0 4448 cm /Image136 Do Q /P <> BDC q 4810 0 0 16 0 4432 cm /Image137 Do Q /P <> BDC q 4810 0 0 16 0 4416 cm /Image138 Do Q /P <> BDC q 4810 0 0 16 0 4400 cm /Image139 Do Q /P <> BDC q 4810 0 0 16 0 4384 cm /Image140 Do Q /P <> BDC q 4810 0 0 16 0 4368 cm /Image141 Do Q /P <> BDC q 4810 0 0 16 0 4352 cm /Image142 Do Q /P <> BDC q 4810 0 0 16 0 4336 cm /Image143 Do Q /P <> BDC q 4810 0 0 16 0 4320 cm /Image144 Do Q /P <> BDC q 4810 0 0 16 0 4304 cm /Image145 Do Q /P <> BDC q 4810 0 0 16 0 4288 cm /Image146 Do Q /P <> BDC q 4810 0 0 16 0 4272 cm /Image147 Do Q /P <> BDC q 4810 0 0 16 0 4256 cm /Image148 Do Q /P <> BDC q 4810 0 0 16 0 4240 cm /Image149 Do Q /P <> BDC q 4810 0 0 16 0 4224 cm /Image150 Do Q /P <> BDC q 4810 0 0 16 0 4208 cm /Image151 Do Q /P <> BDC q 4810 0 0 16 0 4192 cm /Image152 Do Q /P <> BDC q 4810 0 0 16 0 4176 cm /Image153 Do Q /P <> BDC q 4810 0 0 16 0 4160 cm /Image154 Do Q /P <> BDC q 4810 0 0 16 0 4144 cm /Image155 Do Q /P <> BDC q 4810 0 0 16 0 4128 cm /Image156 Do Q /P <> BDC q 4810 0 0 16 0 4112 cm /Image157 Do Q /P <> BDC q 4810 0 0 16 0 4096 cm /Image158 Do Q /P <> BDC q 4810 0 0 16 0 4080 cm /Image159 Do Q /P <> BDC q 4810 0 0 16 0 4064 cm /Image160 Do Q /P <> BDC q 4810 0 0 16 0 4048 cm /Image161 Do Q /P <> BDC q 4810 0 0 16 0 4032 cm /Image162 Do Q /P <> BDC q 4810 0 0 16 0 4016 cm /Image163 Do Q /P <> BDC q 4810 0 0 16 0 4000 cm /Image164 Do Q /P <> BDC q 4810 0 0 16 0 3984 cm /Image165 Do Q /P <> BDC q 4810 0 0 16 0 3968 cm /Image166 Do Q /P <> BDC q 4810 0 0 16 0 3952 cm /Image167 Do Q /P <> BDC q 4810 0 0 16 0 3936 cm /Image168 Do Q /P <> BDC q 4810 0 0 16 0 3920 cm /Image169 Do Q /P <> BDC q 4810 0 0 16 0 3904 cm /Image170 Do Q /P <> BDC q 4810 0 0 16 0 3888 cm /Image171 Do Q /P <> BDC q 4810 0 0 16 0 3872 cm /Image172 Do Q /P <> BDC q 4810 0 0 16 0 3856 cm /Image173 Do Q /P <> BDC q 4810 0 0 16 0 3840 cm /Image174 Do Q /P <> BDC q 4810 0 0 16 0 3824 cm /Image175 Do Q /P <> BDC q 4810 0 0 16 0 3808 cm /Image176 Do Q /P <> BDC q 4810 0 0 16 0 3792 cm /Image177 Do Q /P <> BDC q 4810 0 0 16 0 3776 cm /Image178 Do Q /P <> BDC q 4810 0 0 16 0 3760 cm /Image179 Do Q /P <> BDC q 4810 0 0 16 0 3744 cm /Image180 Do Q /P <> BDC q 4810 0 0 16 0 3728 cm /Image181 Do Q /P <> BDC q 4810 0 0 16 0 3712 cm /Image182 Do Q /P <> BDC q 4810 0 0 16 0 3696 cm /Image183 Do Q /P <> BDC q 4810 0 0 16 0 3680 cm /Image184 Do Q /P <> BDC q 4810 0 0 16 0 3664 cm /Image185 Do Q /P <> BDC q 4810 0 0 16 0 3648 cm /Image186 Do Q /P <> BDC q 4810 0 0 16 0 3632 cm /Image187 Do Q /P <> BDC q 4810 0 0 16 0 3616 cm /Image188 Do Q /P <> BDC q 4810 0 0 16 0 3600 cm /Image189 Do Q /P <> BDC q 4810 0 0 16 0 3584 cm /Image190 Do Q /P <> BDC q 4810 0 0 16 0 3568 cm /Image191 Do Q /P <> BDC q 4810 0 0 16 0 3552 cm /Image192 Do Q /P <> BDC q 4810 0 0 16 0 3536 cm /Image193 Do Q /P <> BDC q 4810 0 0 16 0 3520 cm /Image194 Do Q /P <> BDC q 4810 0 0 16 0 3504 cm /Image195 Do Q /P <> BDC q 4810 0 0 16 0 3488 cm /Image196 Do Q /P <> BDC q 4810 0 0 16 0 3472 cm /Image197 Do Q /P <> BDC q 4810 0 0 16 0 3456 cm /Image198 Do Q /P <> BDC q 4810 0 0 16 0 3440 cm /Image199 Do Q /P <> BDC q 4810 0 0 16 0 3424 cm /Image200 Do Q /P <> BDC q 4810 0 0 16 0 3408 cm /Image201 Do Q /P <> BDC q 4810 0 0 16 0 3392 cm /Image202 Do Q /P <> BDC q 4810 0 0 16 0 3376 cm /Image203 Do Q /P <> BDC q 4810 0 0 16 0 3360 cm /Image204 Do Q /P <> BDC q 4810 0 0 16 0 3344 cm /Image205 Do Q /P <> BDC q 4810 0 0 16 0 3328 cm /Image206 Do Q /P <> BDC q 4810 0 0 16 0 3312 cm /Image207 Do Q /P <> BDC q 4810 0 0 16 0 3296 cm /Image208 Do Q /P <> BDC q 4810 0 0 16 0 3280 cm /Image209 Do Q /P <> BDC q 4810 0 0 16 0 3264 cm /Image210 Do Q /P <> BDC q 4810 0 0 16 0 3248 cm /Image211 Do Q /P <> BDC q 4810 0 0 16 0 3232 cm /Image212 Do Q /P <> BDC q 4810 0 0 16 0 3216 cm /Image213 Do Q /P <> BDC q 4810 0 0 16 0 3200 cm /Image214 Do Q /P <> BDC q 4810 0 0 16 0 3184 cm /Image215 Do Q /P <> BDC q 4810 0 0 16 0 3168 cm /Image216 Do Q /P <> BDC q 4810 0 0 16 0 3152 cm /Image217 Do Q /P <> BDC q 4810 0 0 16 0 3136 cm /Image218 Do Q /P <> BDC q 4810 0 0 16 0 3120 cm /Image219 Do Q /P <> BDC q 4810 0 0 16 0 3104 cm /Image220 Do Q /P <> BDC q 4810 0 0 16 0 3088 cm /Image221 Do Q /P <> BDC q 4810 0 0 16 0 3072 cm /Image222 Do Q /P <> BDC q 4810 0 0 16 0 3056 cm /Image223 Do Q /P <> BDC q 4810 0 0 16 0 3040 cm /Image224 Do Q /P <> BDC q 4810 0 0 16 0 3024 cm /Image225 Do Q /P <> BDC q 4810 0 0 16 0 3008 cm /Image226 Do Q /P <> BDC q 4810 0 0 16 0 2992 cm /Image227 Do Q /P <> BDC q 4810 0 0 16 0 2976 cm /Image228 Do Q /P <> BDC q 4810 0 0 16 0 2960 cm /Image229 Do Q /P <> BDC q 4810 0 0 16 0 2944 cm /Image230 Do Q /P <> BDC q 4810 0 0 16 0 2928 cm /Image231 Do Q /P <> BDC q 4810 0 0 16 0 2912 cm /Image232 Do Q /P <> BDC q 4810 0 0 16 0 2896 cm /Image233 Do Q /P <> BDC q 4810 0 0 16 0 2880 cm /Image234 Do Q /P <> BDC q 4810 0 0 16 0 2864 cm /Image235 Do Q /P <> BDC q 4810 0 0 16 0 2848 cm /Image236 Do Q /P <> BDC q 4810 0 0 16 0 2832 cm /Image237 Do Q /P <> BDC q 4810 0 0 16 0 2816 cm /Image238 Do Q /P <> BDC q 4810 0 0 16 0 2800 cm /Image239 Do Q /P <> BDC q 4810 0 0 16 0 2784 cm /Image240 Do Q /P <> BDC q 4810 0 0 16 0 2768 cm /Image241 Do Q /P <> BDC q 4810 0 0 16 0 2752 cm /Image242 Do Q /P <> BDC q 4810 0 0 16 0 2736 cm /Image243 Do Q /P <> BDC q 4810 0 0 16 0 2720 cm /Image244 Do Q /P <> BDC q 4810 0 0 16 0 2704 cm /Image245 Do Q /P <> BDC q 4810 0 0 16 0 2688 cm /Image246 Do Q /P <> BDC q 4810 0 0 16 0 2672 cm /Image247 Do Q /P <> BDC q 4810 0 0 16 0 2656 cm /Image248 Do Q /P <> BDC q 4810 0 0 16 0 2640 cm /Image249 Do Q /P <> BDC q 4810 0 0 16 0 2624 cm /Image250 Do Q /P <> BDC q 4810 0 0 16 0 2608 cm /Image251 Do Q /P <> BDC q 4810 0 0 16 0 2592 cm /Image252 Do Q /P <> BDC q 4810 0 0 16 0 2576 cm /Image253 Do Q /P <> BDC q 4810 0 0 16 0 2560 cm /Image254 Do Q /P <> BDC q 4810 0 0 16 0 2544 cm /Image255 Do Q /P <> BDC q 4810 0 0 16 0 2528 cm /Image256 Do Q /P <> BDC q 4810 0 0 16 0 2512 cm /Image257 Do Q /P <> BDC q 4810 0 0 16 0 2496 cm /Image258 Do Q /P <> BDC q 4810 0 0 16 0 2480 cm /Image259 Do Q /P <> BDC q 4810 0 0 16 0 2464 cm /Image260 Do Q /P <> BDC q 4810 0 0 16 0 2448 cm /Image261 Do Q /P <> BDC q 4810 0 0 16 0 2432 cm /Image262 Do Q /P <> BDC q 4810 0 0 16 0 2416 cm /Image263 Do Q /P <> BDC q 4810 0 0 16 0 2400 cm /Image264 Do Q /P <> BDC q 4810 0 0 16 0 2384 cm /Image265 Do Q /P <> BDC q 4810 0 0 16 0 2368 cm /Image266 Do Q /P <> BDC q 4810 0 0 16 0 2352 cm /Image267 Do Q /P <> BDC q 4810 0 0 16 0 2336 cm /Image268 Do Q /P <> BDC q 4810 0 0 16 0 2320 cm /Image269 Do Q /P <> BDC q 4810 0 0 16 0 2304 cm /Image270 Do Q /P <> BDC q 4810 0 0 16 0 2288 cm /Image271 Do Q /P <> BDC q 4810 0 0 16 0 2272 cm /Image272 Do Q /P <> BDC q 4810 0 0 16 0 2256 cm /Image273 Do Q /P <> BDC q 4810 0 0 16 0 2240 cm /Image274 Do Q /P <> BDC q 4810 0 0 16 0 2224 cm /Image275 Do Q /P <> BDC q 4810 0 0 16 0 2208 cm /Image276 Do Q /P <> BDC q 4810 0 0 16 0 2192 cm /Image277 Do Q /P <> BDC q 4810 0 0 16 0 2176 cm /Image278 Do Q /P <> BDC q 4810 0 0 16 0 2160 cm /Image279 Do Q /P <> BDC q 4810 0 0 16 0 2144 cm /Image280 Do Q /P <> BDC q 4810 0 0 16 0 2128 cm /Image281 Do Q /P <> BDC q 4810 0 0 16 0 2112 cm /Image282 Do Q /P <> BDC q 4810 0 0 16 0 2096 cm /Image283 Do Q /P <> BDC q 4810 0 0 16 0 2080 cm /Image284 Do Q /P <> BDC q 4810 0 0 16 0 2064 cm /Image285 Do Q /P <> BDC q 4810 0 0 16 0 2048 cm /Image286 Do Q /P <> BDC q 4810 0 0 16 0 2032 cm /Image287 Do Q /P <> BDC q 4810 0 0 16 0 2016 cm /Image288 Do Q /P <> BDC q 4810 0 0 16 0 2000 cm /Image289 Do Q /P <> BDC q 4810 0 0 16 0 1984 cm /Image290 Do Q /P <> BDC q 4810 0 0 16 0 1968 cm /Image291 Do Q /P <> BDC q 4810 0 0 16 0 1952 cm /Image292 Do Q /P <> BDC q 4810 0 0 16 0 1936 cm /Image293 Do Q /P <> BDC q 4810 0 0 16 0 1920 cm /Image294 Do Q /P <> BDC q 4810 0 0 16 0 1904 cm /Image295 Do Q /P <> BDC q 4810 0 0 16 0 1888 cm /Image296 Do Q /P <> BDC q 4810 0 0 16 0 1872 cm /Image297 Do Q /P <> BDC q 4810 0 0 16 0 1856 cm /Image298 Do Q /P <> BDC q 4810 0 0 16 0 1840 cm /Image299 Do Q /P <> BDC q 4810 0 0 16 0 1824 cm /Image300 Do Q /P <> BDC q 4810 0 0 16 0 1808 cm /Image301 Do Q /P <> BDC q 4810 0 0 16 0 1792 cm /Image302 Do Q /P <> BDC q 4810 0 0 16 0 1776 cm /Image303 Do Q /P <> BDC q 4810 0 0 16 0 1760 cm /Image304 Do Q /P <> BDC q 4810 0 0 16 0 1744 cm /Image305 Do Q /P <> BDC q 4810 0 0 16 0 1728 cm /Image306 Do Q /P <> BDC q 4810 0 0 16 0 1712 cm /Image307 Do Q /P <> BDC q 4810 0 0 16 0 1696 cm /Image308 Do Q /P <> BDC q 4810 0 0 16 0 1680 cm /Image309 Do Q /P <> BDC q 4810 0 0 16 0 1664 cm /Image310 Do Q /P <> BDC q 4810 0 0 16 0 1648 cm /Image311 Do Q /P <> BDC q 4810 0 0 16 0 1632 cm /Image312 Do Q /P <> BDC q 4810 0 0 16 0 1616 cm /Image313 Do Q /P <> BDC q 4810 0 0 16 0 1600 cm /Image314 Do Q /P <> BDC q 4810 0 0 16 0 1584 cm /Image315 Do Q /P <> BDC q 4810 0 0 16 0 1568 cm /Image316 Do Q /P <> BDC q 4810 0 0 16 0 1552 cm /Image317 Do Q /P <> BDC q 4810 0 0 16 0 1536 cm /Image318 Do Q /P <> BDC q 4810 0 0 16 0 1520 cm /Image319 Do Q /P <> BDC q 4810 0 0 16 0 1504 cm /Image320 Do Q /P <> BDC q 4810 0 0 16 0 1488 cm /Image321 Do Q /P <> BDC q 4810 0 0 16 0 1472 cm /Image322 Do Q /P <> BDC q 4810 0 0 16 0 1456 cm /Image323 Do Q /P <> BDC q 4810 0 0 16 0 1440 cm /Image324 Do Q /P <> BDC q 4810 0 0 16 0 1424 cm /Image325 Do Q /P <> BDC q 4810 0 0 16 0 1408 cm /Image326 Do Q /P <> BDC q 4810 0 0 16 0 1392 cm /Image327 Do Q /P <> BDC q 4810 0 0 16 0 1376 cm /Image328 Do Q /P <> BDC q 4810 0 0 16 0 1360 cm /Image329 Do Q /P <> BDC q 4810 0 0 16 0 1344 cm /Image330 Do Q /P <> BDC q 4810 0 0 16 0 1328 cm /Image331 Do Q /P <> BDC q 4810 0 0 16 0 1312 cm /Image332 Do Q /P <> BDC q 4810 0 0 16 0 1296 cm /Image333 Do Q /P <> BDC q 4810 0 0 16 0 1280 cm /Image334 Do Q /P <> BDC q 4810 0 0 16 0 1264 cm /Image335 Do Q /P <> BDC q 4810 0 0 16 0 1248 cm /Image336 Do Q /P <> BDC q 4810 0 0 16 0 1232 cm /Image337 Do Q /P <> BDC q 4810 0 0 16 0 1216 cm /Image338 Do Q /P <> BDC q 4810 0 0 16 0 1200 cm /Image339 Do Q /P <> BDC q 4810 0 0 16 0 1184 cm /Image340 Do Q /P <> BDC q 4810 0 0 16 0 1168 cm /Image341 Do Q /P <> BDC q 4810 0 0 16 0 1152 cm /Image342 Do Q /P <> BDC q 4810 0 0 16 0 1136 cm /Image343 Do Q /P <> BDC q 4810 0 0 16 0 1120 cm /Image344 Do Q /P <> BDC q 4810 0 0 16 0 1104 cm /Image345 Do Q /P <> BDC q 4810 0 0 16 0 1088 cm /Image346 Do Q /P <> BDC q 4810 0 0 16 0 1072 cm /Image347 Do Q /P <> BDC q 4810 0 0 16 0 1056 cm /Image348 Do Q /P <> BDC q 4810 0 0 16 0 1040 cm /Image349 Do Q /P <> BDC q 4810 0 0 16 0 1024 cm /Image350 Do Q /P <> BDC q 4810 0 0 16 0 1008 cm /Image351 Do Q /P <> BDC q 4810 0 0 16 0 992 cm /Image352 Do Q /P <> BDC q 4810 0 0 16 0 976 cm /Image353 Do Q /P <> BDC q 4810 0 0 16 0 960 cm /Image354 Do Q /P <> BDC q 4810 0 0 16 0 944 cm /Image355 Do Q /P <> BDC q 4810 0 0 16 0 928 cm /Image356 Do Q /P <> BDC q 4810 0 0 16 0 912 cm /Image357 Do Q /P <> BDC q 4810 0 0 16 0 896 cm /Image358 Do Q /P <> BDC q 4810 0 0 16 0 880 cm /Image359 Do Q /P <> BDC q 4810 0 0 16 0 864 cm /Image360 Do Q /P <> BDC q 4810 0 0 16 0 848 cm /Image361 Do Q /P <> BDC q 4810 0 0 16 0 832 cm /Image362 Do Q /P <> BDC q 4810 0 0 16 0 816 cm /Image363 Do Q /P <> BDC q 4810 0 0 16 0 800 cm /Image364 Do Q /P <> BDC q 4810 0 0 16 0 784 cm /Image365 Do Q /P <> BDC q 4810 0 0 16 0 768 cm /Image366 Do Q /P <> BDC q 4810 0 0 16 0 752 cm /Image367 Do Q /P <> BDC q 4810 0 0 16 0 736 cm /Image368 Do Q /P <> BDC q 4810 0 0 16 0 720 cm /Image369 Do Q /P <> BDC q 4810 0 0 16 0 704 cm /Image370 Do Q /P <> BDC q 4810 0 0 16 0 688 cm /Image371 Do Q /P <> BDC q 4810 0 0 16 0 672 cm /Image372 Do Q /P <> BDC q 4810 0 0 16 0 656 cm /Image373 Do Q /P <> BDC q 4810 0 0 16 0 640 cm /Image374 Do Q /P <> BDC q 4810 0 0 16 0 624 cm /Image375 Do Q /P <> BDC q 4810 0 0 16 0 608 cm /Image376 Do Q /P <> BDC q 4810 0 0 16 0 592 cm /Image377 Do Q /P <> BDC q 4810 0 0 16 0 576 cm /Image378 Do Q /P <> BDC q 4810 0 0 16 0 560 cm /Image379 Do Q /P <> BDC q 4810 0 0 16 0 544 cm /Image380 Do Q /P <> BDC q 4810 0 0 16 0 528 cm /Image381 Do Q /P <> BDC q 4810 0 0 16 0 512 cm /Image382 Do Q /P <> BDC q 4810 0 0 16 0 496 cm /Image383 Do Q /P <> BDC q 4810 0 0 16 0 480 cm /Image384 Do Q /P <> BDC q 4810 0 0 16 0 464 cm /Image385 Do Q /P <> BDC q 4810 0 0 16 0 448 cm /Image386 Do Q /P <> BDC q 4810 0 0 16 0 432 cm /Image387 Do Q /P <> BDC q 4810 0 0 16 0 416 cm /Image388 Do Q /P <> BDC q 4810 0 0 16 0 400 cm /Image389 Do Q /P <> BDC q 4810 0 0 16 0 384 cm /Image390 Do Q /P <> BDC q 4810 0 0 16 0 368 cm /Image391 Do Q /P <> BDC q 4810 0 0 16 0 352 cm /Image392 Do Q /P <> BDC q 4810 0 0 16 0 336 cm /Image393 Do Q /P <> BDC q 4810 0 0 16 0 320 cm /Image394 Do Q /P <> BDC q 4810 0 0 16 0 304 cm /Image395 Do Q /P <> BDC q 4810 0 0 16 0 288 cm /Image396 Do Q /P <> BDC q 4810 0 0 16 0 272 cm /Image397 Do Q /P <> BDC q 4810 0 0 16 0 256 cm /Image398 Do Q /P <> BDC q 4810 0 0 16 0 240 cm /Image399 Do Q /P <> BDC q 4810 0 0 16 0 224 cm /Image400 Do Q /P <> BDC q 4810 0 0 16 0 208 cm /Image401 Do Q /P <> BDC q 4810 0 0 16 0 192 cm /Image402 Do Q /P <> BDC q 4810 0 0 16 0 176 cm /Image403 Do Q /P <> BDC q 4810 0 0 16 0 160 cm /Image404 Do Q /P <> BDC q 4810 0 0 16 0 144 cm /Image405 Do Q /P <> BDC q 4810 0 0 16 0 128 cm /Image406 Do Q /P <> BDC q 4810 0 0 16 0 112 cm /Image407 Do Q /P <> BDC q 4810 0 0 16 0 96 cm /Image408 Do Q /P <> BDC q 4810 0 0 16 0 80 cm /Image409 Do Q /P <> BDC q 4810 0 0 16 0 64 cm /Image410 Do Q /P <> BDC q 4810 0 0 16 0 48 cm /Image411 Do Q /P <> BDC q 4810 0 0 16 0 32 cm /Image412 Do Q /P <> BDC q 4810 0 0 16 0 16 cm /Image413 Do Q /P <> BDC q 4810 0 0 16 0 0 cm /Image414 Do Q endstream endobj 3 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 4 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 5 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 6 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 7 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 8 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 9 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 10 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 11 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 12 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 13 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 14 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 15 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 16 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 17 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 18 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 19 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 20 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 21 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 22 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 23 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 24 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 25 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 26 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 27 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 28 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 29 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 30 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 31 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 32 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 33 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 34 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 35 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 36 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 37 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 38 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 39 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 40 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 41 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 42 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 43 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 44 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 45 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 46 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 47 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 48 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 49 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 50 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 51 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 52 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 53 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 54 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 55 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 539 >> stream xqB1 r 8P0ݵi?<H&Xx@/s'Eز{rM,߀ӋY(GbT/zO)ސaz9k7H"^.٩:-kx@;];x_>ߚ?bTP`S|M ӲF~n7NӅNؼG/F ELaڦ,⍷t0>~:,OU7T0y_jL~n7޺NyNXȋG谐?bTP`M|=sSursƇ]> stream q /image Do Q endstream endobj 57 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 876 >> stream xAj0 C7m‡I >@E @3_MO;@}vI%s0.~/@]'ތ:2m)VvW>gm<:6g P7~RYݝUϙa4ρYn/>'T4~ͨs o7}Lm@G,\_*Ou=ęW݊Uةϙ1.ɁYnoIUx3z3a bwN}٦y"mroK|OHR?x3}2[`ؚ=S3ciHm~.ތzVXm-v| \ϙ4ρ.Ymj~.ތ"LUZlR3i]ș.>'$]%DWUxE}vI"gNqoW? I( T%hw7+sxKr9s{IIgoF *,uvUxE}twr<[#gNqcWq? I( <ΖZ ϙNΚ'}s)n*>'$]DPy'ߑj;IKqT2w5 3I6}9-=2Sw#*Lsw7nLejv3^g@}c.Ɂ#=rT2w]UY&)~[P,Zendstream endobj 58 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 59 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1563 >> stream xA6 C$olᙖTE=zL)__K~wꟻnYeɖf6Ӕ')o}5O84enr๵7;oY5-lYM Sޞ^p:iskow6j [ONV?7X{WUf~xZ=C`YonV`VzW{ۻd}zܝ}ggn;̝龎! ٍwy|bVJf=U\oHnn f}'+_[oHݧIwvViޱ๞ݸ{W'f4ZajSOUv~Yq[d}i۽3fe<33 {LzfmoљIe]4ehMtl㧛-Uվ'6l-m|qmJg6qxb;jSOܻ8ݭ{ʾj=qn&=so6շNO}.q]Ϧw:w^Mit֖jb6twY۸63l8<1x[TJ;o'Rݴ'߷41f7ά66k|tlo;}^e;ݑ@gz_>CؔF[=٪>g+z*dw';Q۔|R3=?eYo§R7|;=Yew契L6MufYۦc{ܑ{*G;;5B)¦4V=[S';ڦ䓚)OyKSd>/(cOVNLY2f|si-@}a"u-'ez:@M >6iUZiTPժ'lEO%k:z&&7%?kͻ{Jv"gz̚I4KCwm)Ň~x ky>)ӳ/ձ nJ ^ ~NboMV=g+z*Y+~W31@NssXw!TxS9%v,Vuk>YswoU;~owtE|foX 5T+QXZ{.xf x\gӏSO\7kV W.>x#[8eu,Vut_2 &nNO ^sGmS/^Ns⣼׶7L&^i @>endstream endobj 60 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 61 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1977 >> stream x% @#~y4IT/3,0@_/=S;eqJKy!w7\WobD5ƫrIGݾsޘmkë`|6:wJ_c_U5u|`3۷ {Rt:>BU362?o[zh];PL<ؤfZzo{gyw]ݮ3߯mxԍ:I{?=Ƈv5ߐ*'{0uw{?_ {jRjw-=4.~rG(l&~l~3-LnWڙ6{<}Ƥ=[\C]woH__=q=9֯=5EڝGj&xi@vk3(>BU3]{'n߯!75If\HMT%>5܃{f_#a_SS˯i|f- d?#T5=9^u 47гo5['%S7i-{'n_üMMzi,cx`R䗽}w;A8-ŧ2ǫ.`<|a362?uz?cdf3ͼo-ck7]I/M%~lU!|[`W63?.^롡Իߒ4tޠms2gJ_m#KtMtۮM;tfolKf^Q4m-Չd[Tt8OigwIoI:o6owp/߶?C%t&ur:mW¿qo:376ISdzSyz6ߖF-OI:_IF 쵿ѧu%É y=zswiQ a6itڻڸEeο޳iAFvIͲ>_M0y;S5 d{k $ao 4IۜG<n|;R4(zOz4E|s:]mܢҲ _EmѠa#fz&fۼnDN=5z|˰7JhvL~=O*ɫ=4]Ͱ+ɼӳ=ѐKϜSdL0J3n~]/m26&_\'U=M-Hz$ o0uvzD?$p'w7î$N\`7OϦ_FC.a>sM͗֓m2Iü+y\fJ_ĺYvlWۘ|q}T=7IC'{"Iݶ֓4d~{Fzwۼ 4{{_w%IHSi{^57֖;;{/=Wn~lmmRî$ynɽy5u0Ѱ6iao읤6oC ^m]Ino~o6zd7TڞW~MeΞ jhGU/![[76kT=+zore~m7y{04|OГ]|<3v]]nz|gkk'IJv#^?FpkK5gF+yn`~n줡OC*Np!0T/Otendstream endobj 62 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 63 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1987 >> stream xK9 CcS Tz%)I$IZ-=s8C끓m,^%όto7@n~> NDnŮo;FK5j"w|iooc'oއT NBؐH5=щ$I$I$I$I[T>yζB*Zٲ{¿qo>U[G>J@n~fTR_9I_B]߃cT=uoo2!]ߔ$UywSv C}"I$I$I$I_/l P-'SuT;aL-E%d=;FKk.~S7M|-&M8[IRy9mR=޷!$I$I$I$mT[|ɾ1훷R1{$9 f>U[R8ms2 THP{{߆H$I$I$It_{o&S{ɿjsJ+W-Id+L$6;/C;N8i>1]ͤIfT6h9|W,$I$I$I$IRǿキ=[5 9?%^וǫxϖ$Ws&@{՗ynv t'ej|ˮfT*NIRjav+Uj$I$I$I$w_Tsv{w;zɿjsJ ڎPՖ$oEثTsk;P@G򤞚|ˮfniT*N3_dW3]R$I$I$I$I*gۻCmNU`Su]vLg&a|p 7~+^b[{݁:R'[v6vKݘ=Rqژ &LyJ$I$I$I$IUy=ޝjsﭚki*Z2A"+^|"M dOvS17ل$d_[v56̮N0{H1L|50;ߕ*5 I$I$I$I9ο/d{8;=[5 9?%^nUe^3 ッlEV(D@p^uboh UIhɾjl]aJic+3jav+Uj$I$I$I$)¿/d8;=[5 9?^|&[Id+E g/fcnWg.W|]4>R8m|y&_M>Οʦ$I$I$I$I:Emlgwgڜ{fΟʦ$I$Iҗc;endstream endobj 64 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 65 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1933 >> stream xAH GbSuF"Rte%YsQ@gKS~:3z͙ުYd>1Zmrz.d+Wb.+ݮ{i&zI2{JF-y'oͦ$|Uo=js濷jϵ$R礶܅SyNVLg97*xfll|nOv )v֓vW'50;6'Iթο5 _̧N1[:S%p,2kOyy3ʿ O~ͨxE+352_5~S'/{{]9i %IRu'oͦ$B)߻=ٞCBBx'S]ߕ:0}]of2S5~.^LmԮz&w|*TcLCBBx'S]ߕ:0}]of2S5~.^LmԮz&w|*Tc86fdIjKZxCmHv>3d6I);{1Ko9;|{Zsi#m?;zVfb>|*Tc86fdIjKZxCmHv>3d6I);{1Ko9;|{Zsi#m?;zVftn|6TWɓ8mnfU7;So Jmޠv{]]2Liw^oIKK5-{p'[J3'uO56s-qT=w~COHfԟ*aٵ9S*C43uS[FmoSp?OUsڞ='g9q; &Hn,- iͶ뽙7\ڪ9IrI6r8&J TݼzBڽ=7T p.Ϯ̙9ˉۑL0ArciNgH;om]͔!V%I- N絑ٷ79Un@ɿxo0Rmi6piIه$ 6Ý<ⴄ}x#`rlWyOdLRD<'Rz{B6P~mT uendstream endobj 66 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 67 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1935 >> stream xAn$9GكNA R%d禇3Jj:sks].kmА'gS%m\>d4|:fxVLkطgt4=/ؠl{gމlg۩yC&Hޖg"Y7$i= {XFOsH%i-UV@ʪo~0N~gކNRdwN [qӧy}}/Y9MwDst)ӐpOr6O[Yk7ܡ$O2 $;IOT=ϦnNh =s{~pz'3woC'{{2|v{;,Üo{iH'Cg9riP'|Dl'OgS7X*FOf˖x5Ω"tFξ}ӽվ=]Jߦo'!\]SΉ76T;OOTeegO=}.[-R@;nd?IzNC;MWrt)vv=$sv6N9'vNv0{g{R}v\?=yR |6v{skC?ٮodl;[yߓ=6Ng0tNֹwfoԿO Or=-G4}Y;.=y=|j-tޜjt={]esٲwolm7xۿ'{>=m46aΝ˭seߨo.;9R|Hؗٽsғ'rJͩ_jOoO>l;8o'UUcGf:3'htL՚>o#m{KȾċ:'vޟiF}*COٲwoqJ raK7X"=y2o`[睩zG#coSt3)ݓ/2W;~"l{ې_'MmkF|W56ZgU-nj'LϋmMI:wobUIR0-oSt3)ݓ/2W;~"l{ې_'MmkF|W56ZgU-nj'LϋmMI:wobUIRSUѧ57sk'ݓgOj5l]g?w==o#5Z{,=Nߓ!>Zܗh+OϻIOUy&Nیk:M?nendstream endobj 68 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 69 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 931 >> stream x1r#1 G/D$`w97f1~lFLש=YS9}i㾄K]Nۨ89I/ϷSɌ7?{t${iw:9Yߜep[p_{_x/|۸-x*2@m Sޤx9p޷yW3(o˱{;ܖt nKI{53 e=\%endstream endobj 70 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 71 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 431 >> stream x۱ @"lNQ> stream q /image Do Q endstream endobj 73 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 301 >> stream x۱ "̸N吔*PpW,gK'Q-I| c#!J`X^8B> stream q /image Do Q endstream endobj 75 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 76 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 77 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 78 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 79 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 80 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 81 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 82 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 83 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 84 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 85 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 86 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 87 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 88 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 89 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 90 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 91 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 92 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 93 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 94 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 95 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1290 >> stream xA9 CL0i=?kHo};FK}tRKwsh9i&9;ҦAN$)ǵ.qRn.O.q}Z2 kA2 sNJ-ߵ5 dK9@2I-=O<_k$ʮt(gNG9)U dt1y^M>;w9_4lcmw='3$V&PẂ.qRn𓴷 ߗ%+$ӡp9=?8Xځ.&ϫg'N>֜&mr잓UN'dbd9*S9%Nj~1»}rdxeׂd:3眔ZC]LWN/;/ZsN@ɱ{NVE{2 N\ U.sKJ#{%ov<ߚ{%+$ӡp9=Ԫb|vzY|њsMs*~'ߓip2ЧLu]Vn9+~+[y{-^ٵ 9'VU@P@3z:Z9? dH:z2 Na-s }ʭU]@8ex/MjkLZL}tR7}yb^OG;4lc<IGO<̼x.O'%?cImͽגI] PϜsRj&/~8O]̜WhbT&mr잓'#48y'%wxV_sdxeׂd:3眔ZgIS@3z:Z9? dH:z2 Nfc-s죮2I-={ ݟEu2f{~-^ٵ 9'֙oT;y彞+vN9i&9y2L9y '8.́.qRnDS2-f{~-^ٵ 9'֙oT;y彞+vN9i&9y2L9y '8.́.qRnDS2-f{~-^ٵ99'% dt1s^FG*ཛྷ9IO9y w"QW]t]V΍D_9O~)-it'?1+endstream endobj 96 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 97 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3430 >> stream xA7Y̦(S*3ˆhg_ϟic;=N 7мw77c'9J:|_uf-4p6Qb1¹%gNhilIc1kc1}S 4m7l+lč5Ƙg8IN"Wɼs DF{--:M-sc̟L}Dm2َ4c'2c:yϝhރn;Wϛوk1pޓ%D:y㿉j [[tZ8(1Ƙ?NZ۠eNӳ'i1ƘOe1t;=N 7мw77c'9J:|_u~s DF{--:M-sc7w%A۠eNӳ'i1ƘOe1t;=N 7мw77c'9J:|_u~s DF{--:M-sc7w%A۠eNӳ'i1ƘO~[GͪnɁ-]}ނ \ΉO{oɎ:BS~a-I?+UϮ}bo2;W7{!k鑩;U7;Y|myLݏ؟?9RX=ԩ8]wb[GI-|/K}n-=z3ԝ@{Wanv fɨqc8оj{W_b4he'ΉO{oɎ:BS~a-I?+UϮ}bo2;W7{!k鑩;U7;Y|myLݏ؟?9RX=ԩ8]wb[GI-|/K}n-=z3ԝ@{Wanv fɨqc8оP{WkAƩB[^O^yOPg鏂*w^lN?oy"yN<'2:w{F8`CPu:[a)LEd˻v:/Uz tjU)TCg9y{yB-?CˡjNE{ ۹s ڲ̽3Nm y WuoZ-j\*̸[^Bgq.^f9 LVM`#S%w9:۹y6Ӝ|Nug:i1D(s=ti W۳ Eny=ym%?A!? zճ;:Jl:܅.;h$CA|N[oU3{;I,TQwХ]擛VPqbfcF!E y[ -:%lŖ'h.N3ϰ';i(5_]irMOpZ<3㢪oy% 9!{mg402Yg6Le;܁o՞NlOs h:՝1a}a~#3҈'sUhF-@hsfz:Ё<-vVH^fG|V4U {Vi)|9F'??2yR8R@]N)T9;Ms-4>I`-}s7̮֪"/(zqxUg8+sJ 'LP{.'u)-[&ptC1aMT{=ҸAFD''䳢efأJN4f7>? =}ȣh‘Zgmjv2MzMikyT'LmC휻evViڲ ]0uN)!$>7=MXckd4Nu4yxGѓƫ:ɤg_SJ8 ld*sզ>1SON m2SB'1Ƙo{uhi<+$x%hz?ejO^mqکO-wדFdr!aGd_yS:3{!I@}bTOuLߩeVs^[T3pQvdh l?-'УI)S]Ol@Щ cLwPNP5-g"M[O7L헰#y߫=N;pgٕZ. gOЩ. &X^S8a]̸ϡݬ~/9cٴNWW ;zҨWU=$술+tJgf/d8 Otדi:޹I;jkqtjN=_-'uzu>#w9)evI-:utcgaJ!-*ڶ ΍?Uf❬giONٛK]Y*>@xd8᫚ҶEg\FvzB}V^a՝;9O#)r.-:u]M-qN WUU(\*̰e[tΪUI{_BuL=u]5pڻ f`nAm6̮:;O'簑"wM}J>t;O;e΍?Uc1캃orS i T׶%7Vun6d=sN{p<^2:%ldVzs _Ք-:ڬ0;m #O_EܑuvΙE~Ma~Gwoѩ:?nmSwL8̯jGzVa-آsVBN;$ci||MM5s jm dvy:9t&PumSgi|)[&tncdTu{n۟66 ]q䵑x7gNdZdB)[LM*Uix>wT)ۜѺ];y{di[j&SU|w95-^B~:k=NvwJN]:;nP8ܷ;7v\봓(3v.OD9wګKmyjw;NkuS9+rL!g[4*j3Y֯"=Sj7\NgdBr:sz:a" ES[SW䰑NSMViȜiwd4)[&tgD+h1kneendstream endobj 98 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 99 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4448 >> stream xKHCэNɛ"ERGyf*rnw"޹ْxU:qg ni(f۵55b+i,7.!S[Ňv̝vWeCg+ҸZVU]}t+o5s4 W8bb~BvJ{:W tM 9-qk;tٮs9u .gM휜v|TYi>g)p:SVaqV<}urՕ|۩Ӯ|OUkty>tǮt}YM@wS2嬳r>{V*Y9%O))?*.Qr&W׻SFNݾy5 [ٗY9Q IxJdSuTLqHxvqZV(:+89Z4 W8bb~BvJ{:W tM 9-qk;tٮs9u .gM휜v|TYi>g)p:SVaqV<}urՕ|۩Ӯ|OUkty>tǮt}YM@wS2嬳r>{V*Y9%O))?*.Qr&W׻SFNݾy5 [ٗY9Q IxJdSuTLqHxvqZV Y=ͧ+SU~2q^6JQ.X܍qriӄTSWΝlɻH6玶;ӮuiWH̺?W3Ww%9Qw]dѲ0[N֜>uIxVwFq<;8p}f ٣ |YEY:ºD;6&dqzh4 UoVs(v^B'SԙWaqο顝5ʟm~zawz7=:u*S82s|ZVճ Yu_UӨ{K,?/pG{{q,g8iB+N]$dsG[wi:+Kfݟ+יӫ;Qy՜i͍TaqhYJ-~G'wkNu:} s$Qqi>w",gaYAQ8=o79UT KpOI{/!Eu)Kԫ8ssKΚD6?w;YJ) s>\VY}X_sS/1[3d;݋Ltwڕguɖl8h7>! wtp׬gQ眿.mB,N-K TQs%?_ġ;]_87_U ÆWQKg|6=ⴞM2R3?3*wVrg5*!j;n'5Om7R\KmO VI﬒[P^;[A=7'BX2!eғjZT,נ V/DgD9w[/^+ʹ-y# fqѪo|EBR?Y WPݣ9 = *\ڄY,Zf[LK~~Cowpoo !,7mzi=%ddJ/g~fU7jNUBzHw*iOH k,^9Ro^幖:۞*ĭ/Y%Sɷ&dUuw zn,NReC'Bˤ'EjZ>~69 VX3]B3Se]lܓ7]4N;\Q23*?՛mOhVsQߙbO5͐_p*6a9 MOTaREGXm׽dN~Jԩ@؜UZz̒zoݦ_ֳ_R$?⬨ť*cRNg8!k,.9ʹZ 8 ,NZiRqJqp7Ϭ9!U3jZ>|LaC*~!8*&~eB.Nk!ϩ2.r6I.Ny(Eݟ6\4V~ڹ ^1mz]fH/Ba8^KN'*0#^2'?%WT l*Tx-uY}fIn/N/BX \_`qVfw~1 sXqPݳ 5Om\soqڄ|zz_so4)8%cZaolgVЪwjZVya!{_bZy ]$$]$ wH-WHr6vڕ*̙+|ld:;/UwҞB*zh77C¬brq,]Ήr9HWvlzdUa\}g`R%ϝ? NVS7/{ ү\wC2Wog!k,.Q"<;+ӥ6%ve˃9ީpC'B޵g«jZ}gKtN5qEBr*EpHr$g@*n]yœy~'F"X~'i.*V}Oy3$Y,)rйUᜨ)7~{88o'Aͦ7Q,NVOWpV/uY yӫd8E~w "/ȥ};$}_q&aq&.8 sAH;]YnS2PmWꝪ 8$p"]{&ZVGo|AhsHsF/'܎r̽˹Nvڕ*]}*ȝԻSg әu+*V̙;;NL"l_97\*9R$9՜ $ i5%WDl]pV%|nUo5dNn67/9{Un!=ixʒ:i~ڄZ9SiuUa͓s%*]_qBܟEsA\r݃t,nte 9ciuAS5NVkτWjϖ5Xw>ziΈԻ$QNwsq9ÉWN\Q/VYzw d:yeԙBTЪS9ssɝɝX+8"&vW%3YD9~{AҒ6 J(Z_>osmF%gJ "9 OVYR'OP+gzz:͹*yxnD忋+NHr.K{ݓ $g,m9w&ЪwjZV9ْ+U!zܾZ]YE:BU&^KqtwewN{UQS}tVO޿)diRgRA\3Cu7vO㩒sWoS@BZSrKU ?-/knuY7x\6YsKf#_~L#w&ix3x+3a \WT&Tt?zzTdr~k% VBC3".}!t8sL859$gu飦tI 7鬞S$ӤΤ_gToŸS%gC+AvW%ӯD9~{gI7 J(Z_>osmF%!۩GLdg$WB-g~:e9\Mz;\yR@rUp7OxLqΩ޵g«jZ}+v} V|7^[Hޅ֓:6-fwsqNtU>NI>UkR}> stream q /image Do Q endstream endobj 101 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4342 >> stream xKhѭNoHL +ӂcRd;9Y3z+wB.y0]Eũ'VA{w''*S_#.:o M!NII#s5!wR}yHX4>Nn9^AWKZiry={Mb"J(Z|^o:oU)d̩FEQf`=]v͋{u#nǮ'Mܯg#9[Ppr+ppHo/mB9隴k^O6u'0Q9q*v˔ 9ջvf~ZV+7-JewCWwQgB2.r..Rr8+$#8<,#p7r.ԛBL: nÀz6 'l7_]{6sꔙ(9H׿&biJtٺz<eV3Kʟl[2.rN%iMuC^ Isuߑ^~=9I؂[[+F*}{ipiusҴuusIX$jZog]TΩ޵3jZyali}uNV*] m:-fwsq9Yxw''Qa먥vq٧vdԙTPxȭpkֳY\8a/˷zY7T?e,ߒ9uȔsx.Q8'Ml":oJHs^g\It :\7RKЅK{ͮF;K"Qr};2tN_V `wT?n!y Z$s̽s3Yxw''gޝ5ũ7L}Vw2n#6L: *GJyžޝ֥;U͹YPa:zWj[+-k0sGWC-TιzpV9$9;8Sşb1c~R{XU999W|&u&P!=UL8a{^\)WMsE\Ws20o^'kJtٺzMWNgƒMU˔m|KTg#Myԯ_zRS\ޔ%+'?'l8'WT&t )X>Jyžޝ֥;U͹YPa:zWj[+-k0sGWC-Tι<0uY8/%︓W7Ylzb**g&^ϤU*6'y+9˟C?pq\[7#d aޜSTغƚ̈́rvߕ:OՕrr81LOW;3Pp*\B'P޵'jZϖ5+M!p*\ VrSrEsIÉwIIw,6lsqBzh{ 3sgRgWCʼœϡqSɑNWs20o^)*l]Ic͈fB9mJ99WTpI&|$Z׼{A+.zRS\ޔ{N*-t3=_\ƃdWWxӤjB?jZVr~k!|#y4K)a9g|B?9$RxǝԟdD,Z|w,?3Rdz m/k-"vA:Ny\QNy3W:q2劧\o%x\P+hBu%'i*-QgX]X<]TWǸ҅K0tN+p 7z4T]o-8Y~xND_ ] #\MMπ o4W/'›&UWj[+o$O_Jk.lBV|B?y&ϔ]s 6<ٮtIʞq{e]e澣v.U-+~@ax*V=;sG9Qg]a$R5|ZVOצkp:6][$˽D $)=> stream q /image Do Q endstream endobj 103 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3982 >> stream xK 7C1›UOP$z#9UV'd{TiCGs<˜Vg%Yr漸+4ԒWBɈ(-Դ9K3Wf l~"Sp%֢޴C9{vu˙| F8 +Ѻ]ox}9k"_3gIr<%tYq;<$8\Ю2Eu%nc+j',aE^ܨd6OyGRS8WUUUSk,qO\q4A|oJ߂g/pmB笣^'ӟIgY:\=:n7m̙*: Yq\VM8+ݸTjw&)aK)8Yl <=W[ςddpL:Ngzu7'WSiӿ^p#D#Tȳ=ړץ6ON8suו=;I'˶PE g]~.kHf[Rr&e=EG)54A|oJ߂g/pmB笣^'ӟIgY:\=:n7m̙*: Yq\VM8+ݸTjw&)aK)8Yl <=W[ςddpL:Ngzu7'WSiӿ^p#D#Tȳ=ړץ6ON8suו=;I'˶PE g]~.kHf[Rr&e=EGݟº? NϙɅ؆.Ι{A'ٕ6Ɔ"\q@gNNϮsΊۃMs6YxqM]'j"&tx憧K2+{N{+BAtSPw[n+BR՛k{gWhj{W\ }yMajH,gqqo=rpBվWv_WpJ=d]K!.ʞ6Z.)^:Bϙ+8΍{վWv_W-~]lT~YIYmRVv?\UUUUO?Y:3 ]v3N+mf3 Ed#:*ݝ\]&.^+um$8ZU㚺N&E+κzj3:7n}a쾮ٕz6ɺBR#>\=;aOm]Rt:3gOWpBj}a쾮aݙч[L1~ǩbke͟%Uwy.'˩P]7,{*}[vlg$:}*V.V3juم(:gXE9*-6pœV;L'uONs9r9{;{哰ʼ:+8aNaۉG$ -\ǩmمܘ,qfsOQ^in:gTSknf0Cβg\d5i2[ejϒwμ T(.ɛ\YHZjw;Tkճf >WBF+5BOCEw,dudj" pݜquNu8aN&ۧz'ٹI뽝IOBWpe^aӀ0vm'N#uojo}TS]6v BnLz]8WUUUS?ӓQ4Ѓ ]j*N Tb=qf)S\&MP=> Wt$UwuRxjŋs Wt$UwuRxjŋs8'\Z~^E:'BYԍvT_ܓqu8vYsgjWW2ЧڟҭWtg" NX: )ef7#dC^iwnBc8Y:IYIusUUUU=MiE2ƍ rf7 $8ԮwNj4y? 3P3O]u8vYsgjWW2ЧڟҭWtg" NX: )ef7#dC^iwnBc8Y:IYIusUUUU}Sׄh&[O]ww:Vj7MW{KɟIu;,a;I{/VsN)9]2[$_Uw `j?,ɧ%?2Ջ$]ɒ̖2NҪCToli> stream q /image Do Q endstream endobj 105 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 491 >> stream xA @G(z1{#:U, fh`I3;P bEO۽_ "H\6Zt??@B9#0=. a "G\0nQ#PLBO H@B@NzIL.SHI@2 =. a "F-zJ6ɻ09,@B(F\0nQ#P c "$F-:s]1HX+ $tF\p̄EVdw@Bl`=sHX(`c>؋endstream endobj 106 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 107 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 275 >> stream xر #@iaVxhfu;?H0endstream endobj 108 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 109 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 268 >> stream x 0!,}ܑN;y[w.1?endstream endobj 110 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 111 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1459 >> stream xK8 C`ӞEm(MJ"uZ,;??@iϣgy{W)_]̟w|'VqMf_<@sfFFt̺iXd=gNwL!P#ΈndfY=eGv1Y bkWEVkYuZ3#~ # sfݴ~N2fpy}Z;g_БjgD|ڎl2جޱ?s(ηVkf@0b\]v9nZ?Vݍd*}cm}Ϯcpvw&0;*μ/8,#g>A뚧,P:1Wgį!`D!~ά֏Uw#}vz[߳kz<6!uPDw5Q]na".;3JFb( *f_<=ԡdEWFL3`D!~ά֏UG#Ymw Y#j'"َ2 p Uv1ޙTb7C7oPo5au%+2b# sfݴ~z˼#Ezm͓u<4U:{v";ɚ(YeI`_^N%Vq#1I~Vk PY"+#0?gMǪ˸*YGpND|'jT2@lg|aeǠu{~sFr1//.n:PNbn0wbހ5LԡdERF 螛7yywTgtPDw[ @5v3ټc=aeǠu%+2_@ܴ\H33n/ډ$XObendstream endobj 112 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 113 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3840 >> stream xK\ICэN5LP?bd'QSʈ?RJ)WoC{Ȃd/RJ)w w3" J}R*C^o~ՔRJ)oRJ)57}+x6`%ًRJ)LER^;w(%;&WM)RJ6+RJQ+~ڷRmK1J! VH)R/q [()u}R*C^o~ՔRJ)W_#w=:dY:!-2ً8)D[yz.0? \tyŸ!>tBZCfnwk7"wU%S||n|' ~6*HDsOmq$򵝢~_i K|nλO^tzޣ_݄sz:uךO[uӐn'7D--~pΓkR$} ~ʯ\*_{qil{[ңІb#RJ;nG'w˃+7-2ً8)D[yz.0? \tyŸ!>tBZCfnwk7"wU%S||n|' ~6*HDsOmq$򵝢~_i K|nλO^tzޣ_݄sz:uךO[uӐn'7D--~pΓkR$} ~ʯ\*_{qil{[ңІb#RJ T(ʊ__Ʉ7EO~VdN& w;y%?Of})usGOp=o|B'C'9~u!ET ՝BKdb }1nϷNbSFuO2 ptMNN6_u N j_Lɮ4SdΝ?s.jszlaMPngj} ?ZIڛOSk{Wp߉QW\D0wIhW3ח.7g&Nm|BGnŠRJ)O(~'siS?K2F\ 4׼֍XN~;rwwWfsӦyy{2Wew>{\wu:ON3Y=JNgjKVn:\;sN-k~_&s-~ luO*0Ѡ@Z+}VSLɽqud۬(!79w)`5韙u2/r:Sno~:2ÝLq+ay9mb&dm_!]. ̹ә\NߎJfr'Oo ,=8ݻNS̟7K|Z{w4әRJ;߿u[_w9:$d6?mWsnNi|>˵G|L[`iT'wڝkuNݩe7k2ٟdů]w&Q+|jwiw[:7U:nvu#;W;qU6":3;n]ENg*AGwubSV9Nq%,/ Q䒬 :K֥9>|:K ۱Tw|Li< d]ԝ{wi4cuBv00v:RJ)B5_]w:5MM}8$T ;ͺڈ^Nug0ݲ3FMmR5V}έ{q&Ol)xWJp=י;93,Uj_rU<ηl)xWq'ݞoɼH~u ߑۖ6s7oN>N_g~iDMtdMN0ICQA6/uo_ix]? ܙTOUq;y>E=߹q!9{RrIhbߵb~„Ϫ}RJ)D=Bendstream endobj 114 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 115 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4356 >> stream xM ѢŻ)ĕюنz$Q}h~6ΜqTIީ:3f]rtiĕ/3V۩:-]TyP_ x8.ӗ*$WtzzWP%t]L:eE˙=?!JcJwUNiToU27F!ܺoDϙ3s̟dZ&3g\]_:,gJfCK[bM7(zKW^KɻL; : Rw;#*!E  Fh4TTrv+պ3~w3"ԫsz:E=UGgKw \{҂?J.BOT䨷ӵ̰H]!MiJL*V}&WF?0uTy!D8ulĿRs{IϤʼn! RNYmX7fޠN:E\O?JF9gãrBn85mEwu?zRPy4Fџ^j޲#_xwWCX\7^%)|َ:†8+x^XgMߓWtzzϤ$GeEFlN+U=gRMS6In4W#s!©c8 *pK&Uulu$8T|< UT~vDhA6uO(zyUz7A=zuũi{/kEwד|]Σh4||{x|v+REG$M3{tz3l•yVr}h8UZwH*e/7!ߪxv+*s\Öܩ0精(XS"p9/PI,k6ω$-iW(!_XLgCGۺ~BNۄTq2U-uSi'_] pŢb%3! o 풧;unnSřW3T ,BM!7:&Yᣐ'*7ҎpN\ɻ9h]+h4F^| U|_GZ,*uo?rQpz:u#\%Lul R[ԄĻ@w|uKܷ T}NvV'L \oWۆ7yz{ɤTD8s{Fr!dR+9riN7/K]nnoB{C{*E\]7oJvl>_8]$]]T܊8-_5CEFh4+Sz-<7n/7ngP+a8'cڻu?J-' ]&Ԅ]ycKWH!nYϹ7۬x&U*fWI|Vl2N]%ԓWoqz6X]{H*^S.T<}s VnDTх&ܕ7 Jڴq/RWבyzSiܵ\MŭN`_5Fh4~Hq>s=W.Ե27E|űj+ޒ;{vi0mױyYJFʟJԓ]S~.M}ej®%wGϬܛmVY> stream q /image Do Q endstream endobj 117 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4423 >> stream xKF C 4+G,[DԑDϟꟿj =s}ܩ2޲(=$gjJ {/թW*j͆<˓:5goD3O;:UtG9rm~+ ^N'T7o_4td)s:2ԭw[mFh4TM" >:B*TZI˯v9q.!7QOqލdZ㠦l!gU'oGl8U{[~*v =zYeů@ԛz'&U*ƣYbI9 <ՙlo V3BsT̀Z]dRlԹpf˦FSE'oxw9'֓zE96/⣛yȼbIk*կgb Fh9Sũ]__9HfBGP쿵 ֺsxo8wǢpN_ǶKMSuw*V'8i=[ș~:ItEQ&N@򖟊]BOyVzcu'3'f^7yzs{9(p51uEr:rNC7Ou&gյP_a:U3ූyT8/un=zQT޵z]ɹd^EM&s^+2دg,eZGJe뙘BGh4TaqWP.jU*Ïu]7~˽x8']swL;gblk=].-ݬ?~]rmF7yzIٻkNZ]JABvkioWH 6S5>dM&NߛC?8OM-2oEuꖋwZi3w#7~\Ͽh47S9_A9HU;?#9w-d*vz2휉ۻveJz|vt( } yO.yVzLxI]o'eK&BgҮ98Ivku*">uGaEe\g XڜN "78Go3c<7r@uη: e!=[.}kͧܵܟ̳Jr?Fh4Q_ۜoO| 뺿vq9]JN&7 O2ulk͹Bd3Hw,BܟE'%G͆#Ңigg庝U<]9$um~缗zJ]sI )av*T´k\%j%_Cө?':{I)SZ ]V=Jޫ9ߒ۵YB2at|[.#9# Lϯi3w#7~Ӓ\+Fh4Q_ۜoO| 뺿vq9]JN&7 O2ulk͹Bd3Hw,BܟE'%G͆#Ңigg庝U<]9$um~缗zJ]sI )av*T´k\%j%_Cө?':{I)SZ ]V=Jޫ9ߒ۵YB2at|[.#9# Lϯi3w#7~Ӓ\+Fh4QٜoO[(KdRU՜]]w/U9 }ظJ6ΉXך|yE8ٸ!Q_nJBZT:8l "j6IҞ)u~缗z+ܬBl/UšI9VAHIu`CΜ!d{t4_Z* Jh\.rRpS]ܪI~Yl9ӮSl#9# T'yG,eZG"5-_Ch4Fr|x8Bi_\]$$'@r{8*LU´qN_ƺִs&3Hw,BATruUҢʜ6AeKqP9oOLW<=k\qVf/g{*M͙ BL*Nruu6!D݋'sbUIPERtq斓҄rVMb˙v*g uI"?;b)s:iY**u=ݍFh4wRdMU ¥zVyyq9{mzHfq:k|?]~N AX,9If/H(2uqrԝwYu06InKLZ9lx4sbgf{qf&lyJ*sA* uuGV9o OnNUWTřg* 7mϞe1=əVo^\Υ8']oIQνtFh4;~I+.zVyyq9{mzHfq:k|?]~N AX,9If/H(2uqrԝwYu06InKLZ9lx4sbgf{qf&lyJ*sA* uuGV9o OnNUWTřg* 7mϞe1=əVo^\Υ8']oIQνtFh4;~EPK;! u;w]\s3Ib;k]]Y-Z,Zř|'2C<]*2;e9gIyVPřsӉ{ 5!^%!xw Bn[8qV/\.w\P s*>xZN-n9ʶ'u\"KTřnJǩsv6ggϲϔ3zo^\ΦpWu䷤(⣮`FhV[v#;9ajk֖w 3/!e*L&;zulkU.Nӗz ,.B]6< E{9c;;礅Kv=osg< uX7rFUotv_YGױy<̳v@fg5Im?;zh=>uuğU%'n݊] 'ϝFꞻ\Vσd׿^VϭGeYwX׫|r6W]oIQCG=uwh4~-¥M;9ajk֖w 3/!e*L&;zulkU.Nӗz ,.B]6< E{9c;;礅Kv=osg< uX7rFUotv_YGױy<̳v@fg5Im?;zh=>uuğU%'n݊] 'ϝFꞻ\Vσd׿^VϭGeYwX׫|r6W]oIQCG=uwh4~{v}xuRs:쑛-;妗;rqUWꞌIp|3p]´qN_ƺVut܋QNoW q3L,3KiiaQN;j6.vPoOMTIenb">~7Nn3Tl9,-_r9WǙv{*>L* HҲ}6^fn׊ y*Yw)t)?swbr<#>j.rw>A3w'߮Wu )妨+jk2h4F$Kendstream endobj 118 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 119 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3092 >> stream xA9 C1M3PYDLhSF#|z֧?kdrFmw0? (}ZTT$9;9\.!Ͼϛ궺[sq8暜Ρ;$٥\Sw{s±Yvo=KUgVmG;?vrљW;9x:o~[-y;k˷m|+SgFYYV3xx9MZrtjGg44u5gQϟّ6l)~|{"O3TVλCrBK-[Jħ y=oS9hn.frK (};9Ʈf(6PEB}}}Ngz8Gn9-ߒd=C-N斖ÍQ-oZ]${sO_zZ3yn=o[}MK.mrޛvqCf in%fd=[q}=TSV?'wdq53]/W\gRVYЧufܛ0|ϼ f^Vg[/.Ugb&doȰ>ir_*3iLnnU$y;tfw?ݒ-I3Ԓ?dni9- UE79Fܮ:nݳ6շzn޴"-&wP;9Izk8n֭P{VnvJ&߳[LSO5l%H^q2*yG}?W3ruyu6/-eU}9-MnQ_gɽ g[oSvsxӋkw%;P姻HP\s&]Tm<*ry{puwݑs\ݛoqGsU¤oڅ]:sIU֧{ڞt^BdIn:ߧ[]4ܤ;LWg> ݬ"$LLY҅k;~$S\MjfD1Fr'4ɳθe>-ꫩvs1}̜Û^\-V-?Er_j3iLnj Tv甾Sf~LW>O/'\M3&}.|$БL>$mM&LNrk>j&m]}f:V=df=I&ߝ@gdoug*֗._g%3}r_jrW3ӝ&w7<٥Nu-9OnQ_Mǭ3|fϼ ^8ֺ%+Un}N[>wWsƙ4v}&7SHK씾[f=WgVy؝Bg dλaBѺ%<;k~#9[tÇ{Է<poǖS]՛&LNWls'm^̤ۙVfq 7t2u fIQ[G;-hw=wS%S뻽33SΘɼ?ֽ)Ovi{ݧ5UTse vw3/)wnJ[CU\q&]=*>;ٷ|ÙUvЦY96C-neCf| ϷqvΚH:ិ?-9w>*+mtınWobfFǼ>9mǕ9[9Iv!3*:Yܭ-Lpm]~YvNor Z]?uϝTɟnoL3f2ϻu/|ʓ]޽m)4E}M+\9@y!8Nqs껭(ifߕo^vk*Wuھ3Z{~S>o%ߑYl;?s/I-9&Cf ou2vtNt̕.fH'f{L:L֡0y$w<'ɭ?yiSݠUU3ވm>k{ng6-} ?l%|VOb.TxOTߧW{*f:;e䍫(f)o-oݵ* O k-3<=3sP@濊Vj->r:eLp 91ϾLp"s'I{Jŷtyٜ'u2sș:Su7:_C]>OҜ'>~抆x_@r@~ n-3<=3̷tP@濊Vj->r:eLp 91ϾLp"s'I{Jŷtyٜ'u2sș:Su7:_C]>OҜ'>~抆x_@r@~ ^u/P( o@ 738Pu" 6@~0m3 u/P( endstream endobj 120 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 121 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 379 >> stream x 0D"N| 3,^0`y:"LsomN^Nst i`{:y:"LpiE F&qN^Nsl(7694f il(6@'/@Q6mN^NlfFx/zendstream endobj 122 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 123 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 124 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 125 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 472 >> stream xAn0 G4z/H t6HY ZP{9:ɩd %lCT1%JNS$)uN1%eA& əNg_$_mdV`3),dB>9)Uz'ԪnǞt`1znOtJ}a*;%JNx ,'Ls)) 2PODtJݷH9}8endstream endobj 126 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 127 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1521 >> stream xA6 Ew;$@)=瑔(!7j9>U٭؀5tЕv ro][%mR5/te|#,Nl>Sbʖt('s2mVd|˙sySъЇnrҎUɛZd݆EfWw?*9C3%)lYI~r::'Szn 9v[+-gOUF+j[l@J;T'oiֳwV]3);@dڟS9ϔ8eA& Lb깁pnHϷ9>UY:MfWff +6|W_UgNW8#l>Sbʖt('s2J3=pvu\Te&W@_C7]5poO]%GST9]?*9vO9ϔ8eA& LR5LOr翭]q"Y+} dvefְ=mOw!LQ~te?CdڙS>l>Sbʖt('s2J3=pvljf®5tٕY ?-W0Eӕ'N#igNLs)[dҡɔ*US$y]q{d歀nt%p8RZ* 9WXdڙSjMyU9=3ss2-9vγ7j# `5ot+;qRIJŪ0'ΜPkʫ2%)𤜙)opqW{Yy+] 7TJBU*V%9vZS^)qNa'ܜL~K썻dX[Jq\bTrx?R*95ɴ3ԚLs { <)gdJ7[rgo'Gj FWw*yUɩaN9֔WeJSI937'Sߒm<{8=VV@7oWX-ϫTJN s2)*SOʙ9ҍn;:7N''{[9UV{z>.{RfegLlou|^9t0+|CzS])֓3Mw_[:0'> stream q /image Do Q endstream endobj 129 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4119 >> stream xMr( TSg6Ub7~]dԛon'Mm.84z}&^Sl&?:*8GWdvSiB_L8l/N_;~'<fS*4%5Wœq ;pJޫQKM;56k讽ss^|_;%įgdgML_r5ZVj7U Oi#"i>=QHXNާ4/†3VFulH~=Gx..qIlWa_GʎS%c7>q 9u)<& xxNŬЕGysAMJ{/>'uJؕw;tD= So-u=i=PTi;LX%g.DY̽TN0m]sٍjZV7)ˊ2o݉mߍzO,i͋>3xLnѣu._KK\<=ە@XQT mw=M4OnsNv] Ignuyr{`1+&tQ}y^\f9^luvŝ32)zGȔcKA)mopZ,<8Uڽ&6G'V{ {&?.>;gso?&Li\rvcZVj_V,!B>[k߽POY9Xi[]!gܱdf x*ӯw0s;e9u}vQ4x׻\%쉂D[뤷s!SE]= 6w]"R(zHʣRݜ O+w])Z:/7u>!7.3-iYS4enfWw=x9= +mZcmSe9:Lt piqMœmbt75ad{һjZVo.'5?dMl@=en\b*mEv}sǦ~׳m*⩠ROIn;H]stV ՃGѰg]r' uof[ۇ4NuۄމwHA!+K ws*< uuhKD δgqNw]ms 'i9oO0mR5ũ6iOi;SUԄiK>VjZC/:Y='\M̮/w+<[:-!Bo3?ɩ?!Dqe8_v*{#r_LWf^?sN޺osuMֿ3Y'ɜnO/r5q[Lۢz3]SNȎ(O])rs)^%I޺)RagM'=TOu#)p3/:098sfeO$~r4NEx2*^oŒtz}.w:Ir\gI؛߃䮍jZV~&'H&VOֹE]}wwH:=Tj>MxvmNBjŬ{9'.Uu:[\ݖ>qYtM9!bom2N[c7KuS't5wgtB:L_Hd6\Sf#iJoqۻK;$lWy *mt5&YnºsM!Lۛ!W |%'Ϋ\綼::e{8IYnY5TPpеΖn>֔ 9w::9"Y:Mل;H6T*YnºsM!Lۛ!W |%'Ϋ\綼::e{8IYnY5TPpеΖn>֔ 9w::9"Y:Mل;H6T*'K1.7zyJ] '||XmpI]n Sn+S9t:SRUa997rNIYN);e,mif'׹ΦhYJJ]+n\^JBN${:_q}xΉedIu.?gM᜿jZV ;=Tu):mM)SyڃU\%߳pSwܠ™K\_=:gZ]Rx*Oyά>'K1.7zyJ] '||XmpI]n Sn+S9t:SRUa997rNIYN);e,mif'׹ΦhYJJ]+n\^JBN${:_q}xΉedIu.?gM᜿jZVR{_Q; τY;MDHttR7m{ōvxe\XFE8i[ZE,SnP$!K$Ӕ&+n'KKL |߳wIjN\ֱ%tU}%p7GNvˢRC|.Izf4s&+ 6w=dBfه̋Kp>ĕ|)N.&Ms[,vsGιZVj5]/W3aNvpS(:Q;x&;{oM^q㲝)^2Q},NymQ375D=R74Ɋɒgg:8l]Rgul rp_ QӹP%_ǟK'ᜢ m*7J]>{!O=q%_KIzÖ?f:;}sVjZM{ ;ߟS&2Kn E'N+mͺ牫.g.g=sOKE_"(OS&Ӭ&+n8-a]Y͚Eĝo0CzÙ\j´MؽNO,id g)?г +zi':#L3y{qyũu~'i>zÖ?;f'졚OZV? Zendstream endobj 130 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 131 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4170 >> stream xWK$ ; ϋ0FۖHLT /a'k~RTW']u̿Ϯ:n-\M1=/oI)o'p τ\LH :LFwkC'/\A~=䢷_-rKVf܄%baM4 g!_' |W/ۉ'|m.?omz"~Qڕ'-"n'8;C5O?bX,uÐ? 'N>-{Љ~"WVMЎmo_FئA5CK| ~~LJl0I'[əQ1Y;gB_p[{.UR.'; gn zᙟ.d yz8x:0;_|-nL -Wl؋7;Jy 3U:Ü-:'7o~bX,uaڂɿ\TW']=lD?++vq&hG/\LIgilӠ!%Oiz>?C \w⤓-̨Ә3/8O=b*A)kR7O[RքYv<=<I~mr|md7&NF| ֖L+rLEagvA} .]wn[}Br/\asq;oRG?I^;99bX,_Jw<{Gr(? '3me|dr&KμzKF9 BôR7N5OF㓝 xrN`)Upˁ|'qsj].'y/es@:%{Eo<{&ԡK`YHnQͶ2:tWA$S|Nr[[^ʿo)BEuV9PNddV;<-NbX,Nt߂ror*μC҉3Y.LF{^{[<=rGrۓ)npN)2٠]HkK&8iyXߢSWPQd-Ooq5ݥ0\tL.֖t3\j/й5=z %0,$7 ٨f[|[]]P߂K u|v>q9M-kd/[7vً:+|ov2s2}'bX,t߂Mś~-C#W-KP:qr&ɿ3H>IO-]n{#gr\r΁^uSLv6nY>MwôK@u&:4ӘinNbÜs!3էX[/'krXspu~(|`cOU3]Br7tNV&·]]HmWVEdi\NSrxV6"FU}Ni/*OsN/Is2msťޑbX, ~)ntķ ln_U~e Nɪk +uғC|KGșW8esjo" ۥnsSݥ0,a΁:p:4&koyڥn;[Sإ0\tL.֖t3\j&V>\ X?sr&ɿS''-#7quSLvא{Mwô#:7'u uiL^ ^[StQ7z9.N]ꗓg5 zߙ4zP#C u zxnY钉pL?| ?[unO29iJ{& s[96abX,F'C|j-k*Xׯ=oRo:ɡ \G{d\7uJδۻSgtmqzHSO8CFu׷<ȩ'sStQ7z9Ef{w_N2TU|g*3ơvpI >?aBɹ' n]ɬ? .$B>G -方i\NSrxV6ޫ7)MC88稡<ɴɽA}bX,t߅v7Z~F +sts~fn'Eԛ;7Nzr;r^ԙ):ݨc~\^'=SPQd-Oz;rnMh?^uN]ꗓg5 zߙLq5\x҂OP⪇wrIcW2+sC7 ɷPQgsen/rӔ*MJPqy,9j=w2mrE|PhX,b.~)nt2w!MߡXDH9Gqғ+E{QR%'p:)E&;r烺}w:E]:.rL ?,N:[vrNStQ7z9Ef{w_N2TUg*=S9a0UMx^?dVXYnrWo`Ldi\NSrxV6޻JIf3|B9ɴɺD8#N.bXE/ӍN.մ[;4rUxBKI:H;;6YwgbX,t߂Mś~-C#W-u<gv^$$;V͹~ gS]\t3\jLecq[p 'R{Sք:t L`8 ɍBбMMgTk{i\Nzu`{*'Y?lays-,:yX,E, LOendstream endobj 132 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 133 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4151 >> stream xK#I C1M{P[JmQO(?ī i=r_qPߔǡ?3EJSoV7JݜTŔq3Sg/^kV禈[ qpvR>sgM y/Yq?57Eu6R>3B.y\uݗ3\BuLb˦&ǫIoNYu@8KBM;uMC5gّsZSW{9^*h?NI֩2RE˛͍t3WaqwOoMd^VjR0e#]ʚ*6fn'N;¦[uNB!HMy»Mο /9aS,Y)IG'p"zwoHQa_gFsǪbV8y%K)lZ8'a躑)u@8K963yG5 sלq*g_ 30$uI sIÉWuRQtUƚd}K5+P᜙wJNjZVU/NS62Qۅ: aSgvb#l 9jZ+$lԴ+{ZO"6r񗒙+l}t ~+{WyW+knfm|f0'{* /asw\T!¦s"lj<P. L`C*8wN]9wr0 C]iqB?9y)9xE]+uNWenI鿔Xkh{ Ιy䴯VjZR0e#]Lɪ*ӨsΒ[E3tEM''^I7G,Z]f5ktNo͢]VjrR=ld#)YU_eayUsNYr~+Դs&IYy­2ew\]MUq⚛"n-a_JfqdNp¹ߊUJkܿRœ))?r{_?~ og&$l'a#  cus$(rؐ㔎˹kofӳgܻȹ)+>SELП|mgt"?Tsf:gRu9'[K|3@{Oȏ_xsS8'CX_-Jì~uN 'xrUeWA{kSz̟!W'6.t`])7s: $8\d#u.z!dɹ$ itrzh.%眵wg~Na2Lgg~Zi_VjJP{~#b)zR͙I圐vnE.m{@I^&=!?~]M✟paq* iJfn8-.PףzɽW?W߲_qpOo0\ ؔeKuwg\6rR鬂0xsqߓ=<{gON׹Իg2O'$Nsޝ9m$3k%}ZV*A9/ϵz9rHGn^LL.7g^{"IKӄwݕޔV&&p&}l:ynPǖ0CS9?_}_9)+n_' (ֺYOH7LwĿ^;6ܿwnu+xlܳJ+ɟ0U5GD ϙdM%}ZV*A_ǙaK{)wk۬5<7Q™{TA$?"𮟚" !d?M8P OdNԙѱYw,gMOxG' fUr5'A?+~:e%p­r"!{Z!+ iwQvKxdžέ9^rϔ{^v%fS(a9Lv䴯VjZN>BnwԙYw);Nfn'ɒ ®lgDpsݸ. SOp)OsȚMq/y֩X\7n,ظ0ΌM"y:ErHlYT Jm~y)y[Vp>~S~= ;Ft9qw;wY%-O%dL˹p MMwsV(yꌻy;u*y9펥L29aS,SBjZV_] \|*Nu7 +ٝngvb,.Q qFY=ލ2= g"4yšguߩYAȒ3K,B'Sd,gύΖN BVW纛Bѻe':u QlDǜ'zzNUTM&^q4nʿT{:gb;9θ'S꼑XJ$6r;%T;VjZuZ~a8Y6Rw ٻOŝDĿ2.5yUsݟOEqU{B9E<u:Y폳՝3HXrvzV!TOϞgpgV3sBಥ% ӛ:n:ue.;gGd7z{噹:Jénlxhy#)8u>7M0.g=Tw[f]G]+H:YGUToʼniSz?'8NVjZ9z/XuNϔtBSwq"QoL_MF\gSssPfOnw](dNqsVlul;9=7;V޹UՓY!89Y:9=;4li'dۯN]CGAQo$ٍfyfnΦp۩'Z= Nϩnx`$LYGݖYQj!k,ŠһqQU8gq"8vګT=O,g# άy8qjZV~g݋NunDe2OWj2.5yUZ¹9]N J默;LN=sFM폳9ٳ9{qN5T(S>OÝڟEؕZ.pڋg {G8O܉K|fmϦH&W[=%v٬'!ڮTd v9LYGUWZ6SNVwg\d%թSSuw_]ȩs^X)jZVp,9Oendstream endobj 134 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 135 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2484 >> stream xK\7 DEThI+HH=^S_?\Ouf~un]Ƈ֒seSRMUޭv sޝ@f*wqt3٭sznllٳ9jޝWHT8ߕp:w<^y}uTS\xo&G-{E[UMM]mw=5]%wٳ<٦f.ul] W+U9Ur{&<{bo6Eͩ$̼ZF9=yv{ZOwxu#l 9ISo{=a%YI[-giӘۣ:NJN> stream q /image Do Q endstream endobj 137 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 394 >> stream x @ "W/ .p `ݿYLLIny If@SF O3$ii8eo$q@1-=>H8>С][ ITZz`$@[ ITZz`$@[ ITZz`$@X akendstream endobj 138 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 139 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 140 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 141 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 694 >> stream x[N0 EN͹]Gi s'YOwOi&AOZ=aBW~x-|M/ Ne7y9qggf6L0gm_9{}rzT2nr$wUs2M$!I̟<ս Kk$o}Hp*sLT̉;;;4sa9kcScme֣I&λwUs2M$!Wywv:wMk$}鎟+ AکF&T5/s& ߜ݆i+gOU^L;h}ΜL6 wȪ{oHwv:wMk$}鎟+ AکF&T5/s& ߜ݆i+gOU^ϛe79wKќ9&Pmt =5ߦT>t`Ӳ꟯j^Ξb9՜}ʨ2 `()Oendstream endobj 142 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 143 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2011 >> stream xۑ6 r0E 95n4H`sUv۬~;+J'm&ȾC~;7؎ݓ<٧j=NB6̾i9r;:؋ȩ'=z*̷Pov7Ύ3T:n3Aҝ/NMunfc$T@wu^NqyTgk_T-v5Q;{&J'm&ȾC٩N~,^>ʾ`~.˩;~8~l%3߮@\;;zGtSwHwڟ2~ŨIUl^_I3ɩ @o'"꼜'0ȩ'޿Zb;jԻ͵wDL=NL}t)WTy~,^>ʾ`~.˩;~8~l%3߮@\;;zGtSwHwq^v{}5K'$/=rꎻ4#gOzVqFOnv7kgG~=NL}tʹP9[lWtzLr*kۃ o:/ L-tzAx&0!p?j9zFD{͵PdsƜ'Ԝ$iyvk :3^ مPgI3 o Ü;$&<&dʹO˳;^g)ɾ'L.-tzAx&0!p?j9zFD{͵PdsRsi=gw: ϠS<}O]8џ5y֜l= u'Tﮢ +U|S]|wI'jKS+y2z]fkVJ;WsrMz(*Ueo~Bճk\_zogw`ZoߝRU&D6lUsenvv=IM-^wΜ̜l+Fu=53ٵ٧/o9{r3*ᜓ{ۉ=5 Ug>r3c3gz>MN*z2[ew;ѥz${ֻN>)?sFw!cȻIVӓu>*՜Z{"uޝ;y7+eOz.W̜Ӿ'Qޥ\o^\f3{5,twRUf6+D]=_w6vI(Ue]Ng]VYQe?Wkgדһ~u̶̙RoTj=Qٓ\3]}V#+W^?{>9QpZEyf+w93<6z漞.s> stream q /image Do Q endstream endobj 145 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4198 >> stream xK- Cai{IQY"CQQȿuϿE}@Q)l N{G>+<ݛxX.οt:_\W'aeI@2*&7ed"Yws-=93{, ԥpzn[G+'~rQq <+RV^# :{V]o!*KV~j.v=1pNou^)"nRNt[u@g%m$~N]U<Մ wѱq +n )MK}pq*ESOt:ޤCp6RȻ;t"l m$4 'q@vK}Q\N.! gf:۷j,efܡzosϨ=lYiNk¦ާ|S%O;̎~',*$ueskIΞթ }ɆsꔟQENp,Ow/sVth$3zۮSX]y"#w2q03{ԑ'ho^uܝ$ ~:N]ǥґw9w$D8Hh$aN< OWX]fCN,toՖsYC6޲ȟQ1q{Գu*.D1%!S}3UMO!Jޕvj3NYTHl\=gSa )?3+$Y>_ԭvZHf^7]էtt=+EFY$TgK>|N6S{;e$JNt:uUŵ0Oet!,=pӱ6nNvEZRn:?ۮm?NUrRK'er޶=l)=uʽ ݔ΍?nژ:ws$jֿﴛ;6۵BS#|c;*SSOuƜÖНb{jޛT̒ʕUw oԳɺO'n ޼NY;ɿ)„t:N]e~$wrVMۡgi$L^[ ܁*NvsA|"m{vGhϋ|_IY޶M=ߛWN>)  v%Wgo]r:l\,Š23۵NSyTT-tF8ڛpO݉?/k\S`p6zo{SQ~jXCr Sl{I|M޼NY;ɿ)„t:N]e~$wrVMۡgi$L^[ ܁*NvsA|"m{vGhϋ|_IY޶M=ߛWN>)  v%Wgo]r:l\,Š23۵NSyTT-tF8ڛpO݉?/k\S`p6zo{SQ~jXCr Sl{I|M޼NY;ɿ)„t:Nu)IpL*03Ŧk$lI:ǻ~XuVq=+nxR'7qW]Z_2C]K{S 6VN+)  ]77ŝȐ"oYAȎ{zn:ϊ\qyݦ6哰O?ӾɄ2:{:Oᗲ=n ᄞjBE۫SucgS;mq(ަ8o\ʼkӹ1]wq{*٥/p*M~v~sSNOt:Iܯ.*03Ŧk$lI:ǻ~XuVq=+nxR'7qW]Z_2C]K{S 6VN+)  ]77ŝȐ"oYAȎ{zn:ϊ\qyݦ6哰O?ӾɄ2:{:Oᗲ=n ᄞjBE۫SucgS;mq(ަ8o\ʼkӹ1]wq{*٥/p*M~v~sSNOt:I/7gwCإr9;T$4RquݺbfIMܭvU'Uܛ'oB_Dj6E ӗ[}oc9wJCgߋBxY[vYqe:W3 Yo} sq:^B9JWFXwn2%9=wJsƕxUsk2Y9wzS[^ӹUNYnnUGt:NOM}&&|ߙi-'pyئ"qνC|-o5Sp<$yu88_ėM1WjTsK:NV} xYNDߪIxqU\" wVmJRMqͤr*-`NNmܒQM8ʙ1mRo|qx{Vsso'-^&>qk9^&z83oRKYft9u7~M[::NWȃendstream endobj 146 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 147 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4342 >> stream xKF C i2Q?|Exj鈢 ^~P-ByW5)ҋK{Ŭ[9J筇Й|Oԙǻy Ow&;SW{Ryo"E7u\y7]\*%gaNNVI,?rV:UwUS'*+69[/sL*'trzhnpʌj]39kϕg6qN]ro2Y2Ӣ-upffR%,t9uW_ӔVj_R@ږs8ObKˀWssPgշ]\T,qSّ?W+oiuz۩pJNVI,tV:UwU?c],^9ǢUH4'+T|Ȥ)y/P}q,NmM_Jw"! z.1彸xӷ_9Zo2YuH}„:\[+IהjZVoR_/Cwc{2S2g~㜳ǜz%Tǻ(~sm>+r Wmh96 "~2tJ. $T_CpqSf׿Hȶs^cLy/.m%W֛LV>qtR0!N!~VnR5%hZV;Bt]9SN\,v/ȹQyt5'SU +E7]+nAwMyXxv4+^«M=pJLzf$`-s7#i_};^,^9HvWܬo<3]T9"\j2#^߹wt:;X*$,.g^6qΉ<5.RyZVG]Tw=.,fO.";ԯta֥D]MHyߓSJ?Ζƺ ISocLF/H:éޯtN8yt~"m1{[}3Ӓ-R=x V#QOg殗Ay+}n݅3~oO5eFElpJZB }ݽqYλ`͛}+sI ^GǦs^7Wo꼱h~Oĺq`UÿZtv]}jZVՏ2:zh]zY 'l]Dw_K򻚐)*8'iϕ-Iףuk9Ln޶ǘ^ u5S_Oqy[yD*bJ'N"(>g%-3Z~{HGԓ]/U7DVv׫ݺ gޞjʌNו{w7&Vt=Mnyc:9tu5 NHjZVe-wQuta+z)h9< rvԻƧf'!w]MHy= T8\!:O۵"вTz{JX}S $jZz 97$W8W-s7#RɭӾ*,^,Oz9ۃ'`E:i{;%*aoRLtL]v.{{)3z<'5]WgxzͿ$]siUg8IX_q_*]趯N;rZV*Y]Tw=9]?|]/?bAݎz,$ ɟ23! O+CiV$\q#ZּxoT~OIr5/w BDMTSa:'F ?f]~Wj?u!C噥ҋI/g{HG4m~S%T)|n݅3~oO5eFJZB ]OpY\Bϼ72A=up:*?ur=k x5K zGnWjZ%+oOtnǛbKWb}1.w: x<,;S6g+CiNy:9yol#Lu2G+pJ~:,xnI7敳ziAT4;0ePH7[qtͨfQy'M.'|f3c.,Ñ9IuW!gq =󪷉sNg&S#lڿ;Z'/" A)txR/jZVՏ2THGm2[,?˜i-xY㩀w3#?es&NB3NwEM! V{IlVMsbeO'&OT*lwiɿ}S! WϚC'_Vjuendstream endobj 148 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 149 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4273 >> stream xK+C(8~DE:P?ϔYg~CP--799 dMϹȧ}7b#9o>+wYJ,us<]{VsVd4dV/'?O5qozkrNIJ?ԯE; 鲫w{猼>.]N6*禸?'Clc&?όVE%Nxʐ V}[x.&9YEMd\ LLީC[Ε鸄HYs.Rgfbݍpy5%߫ge(^.9} m5N9xr[# .'D] ~:6d{3z=|ȝ$\GAliT+2MNsNr Ys[$ɜx< )\ <ηq@=& $u =mMy)t!i]^%_VjTگ;oxdbNrH%DȚs:3'nprgevKМ.6Ք[W|&UztVpYda@2"lg3.2ӹ)/7EwH}J}VR/jZVէ2'C<+s[[wa8kVi©ДF$3i5پMIh"gmC時gҴ fwz?+ݩyroJ&+x!dJ Lqf6+?D,7WNQ﹵ĕq $9Yg[fRϝ'-8{sP_a?ۺ)1EoMR?EZVj_5=)ݡ_2%;+pu67]Rd! ԥc9m({ym]N`S;y +n,w$E8u'gjB'Iy )6%?H.U¥9Sz9JaY[;iN\K:}Ve&Ug:+x޲;6ν}S!YK]jZV?O_]j)WT)x.RqSzxJVBXJ@œK˫KKWW;(KwpnT ,ڳWwWMzwwJIx BEMzדSZ? =wO TzvL5Hǣ{K5sdBYwyJUfg+_Duruy<nQtQ%4sIN3p63s.N;'BREƻ)ޮVj"/1߭YMQfﺋ"s- |_D\ߞG]wOj")7oO=3iB3,g;6txt(-vNXܶ;ytn<+܌ӓ":Y㹻뉻yNsݕsigT*2+."5k*z">:Og^o^g{՜6Vn=ȽE?YG^N=l\NOFwֽS.S7E'n mSn ťp:q^Vj+/1߭YMQfﺋ"s- |_D\ߞG]wOj")7oO=3iB3,g;6txt(-vNXܶ;ytn<+܌ӓ":Y㹻뉻yNsݕsigT*2+."5k*z">:Og^o^g{՜6Vn=ȽE?YG^N=l\NOFwֽS.S7E'n mSn ťp:q^Vj鿄3ٰpLa/a*'-ٻR7ءZڕ܁ ;2IXA6uK W\Sn ys=-sW͢ewu'ֳh~gW)m̽N/&'W:*ujmL=).i&<ڝX$y+ļjueg]<9*'"oθ/KgfFuLgV޻$p*sջIι?ZVjM_k_tlM8SﰗSM]PP-d]J@\ %jϩr7异ݞv疹fѲNһ:YpY +6^m +:5y6Qv4Sw^N,μmb^.TGQzsLg\%33:W3+{]8Oiٹ$w\aH[كq^Vjz7{ãc;jJl]uQ^tnn?ɄjMJp@r}N($wOa^:3+$ˮGٸmc/羬 d1Jͣ$WS*xɛL*A})wgKH}#ERE"> stream q /image Do Q endstream endobj 151 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1681 >> stream x[FE1ߩ+h9ɌAvƃlT_kLu/[wW^|''3}W쫱;սNvٟ }39؝* ;mZڶTɬ{k矲ng~•бWMUUsrG8%ymynיLf;%3߽g'ݫs2w_J5SuUj{񎚜#|*H;jIWۢLSuBmԞ_{U5% ;O^u7g_}ѽw'ƺ K5?3us^kr;渟t޾wNv櫘ə+իtwv:|6[U•svJ7}N9!y|kP6ٽv˙KGΫ''g4S\9O%Wꝑ}]͙o;swW_=y'Jk=`ݳfJm;QuOTzG;*}[ןɜyNkwƾW9aɫ|˹/X?X7!}gfۿ~kMncwt=wy>S|39w{z5.NgfJrNBUif)'$omjf#33n9sy3Lz6穄bZ3Ҷ9bG]y'lgz)x_td\VN炙'<'dZim{˝ImO{(amgї$ߐEߝO&ט~c^ųttɻ-!úJw Lvt*y:WM&3?c+2g;{*R$Ip↯%oKi3;C]=:L~|L$96;{2IϟE_JC}wV?78_cf*y%ҍ%vZ r{*}{s߁gl2ݫ\6p'LȜ5oK$nN-IZwNΐV wxJ,3US2lLJۄS [S]O›| O 8y)ɧ1Dw|p. } ?< Oy䩺 @ } ?< Oy#|<`_;wL@2hN]Ow2Dw_@>3<ۅd"$6ۅyy>.|' ϵy^!K|<JoO< ϵy'.[ 'Cv{|͛]ۛoj>yP$?zendstream endobj 152 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 153 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 398 >> stream xA @ C7 7Q73? xV:?YL5~(2~\ڼ3fJ?`,d'@.{mׅg6~X2NT\ȄP%Due .yL8~X2NT\Pؙs*ydT\vPؙs*ydTw;dYT _ϓIfQ)Mf)endstream endobj 154 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 155 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 156 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 157 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 819 >> stream xAn@GjSGȌr:# ŵ}wkO|r3Lz|궜sS6^g+Xrdb@3.,:E9Hz&|Ҧ3Lz/y$r#fȩϙk{;4 o~pOڶ1$]w5ߗ.r!B>z&3Lz/y$v6Ήo]ۻ`|tF|Ҷ'JO{հ_!$Oh =^zg1Iy"99hs[n&:D9=mcI<8w5ߗ.r!:CϤWYL~&?9whs~Wj~ tSx>iƀxv%p o4b9endstream endobj 158 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 159 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2478 >> stream xKd7 DEw$F%$A{C[/|B?N ^K{g'00O?fQO8Lmd&}$ӦtZ.L=!;ÜJ?+{E%g7?0i_9Mk[N2m Ju Krc /] L3̩YTbqsN@qF='&}$ӦtZ.L=72c0_O8Lmd<@gwɴ)+1/S:n8 aN@qk+eЙݽz2m Ju Kr#x#:6zoXdF=&ywo LBi0M|?0iz'tvo3ӦtZ.L=72c0_O8Lmdd`5ͻ~PwfN)`GFul ߰ 'ɸL0 &yLBi0=rkuΖwL箪LY'xF7㫽̾ r\]i<+LÛFoXjzB֙9Vkx񽚫=X95mOy|o[v9[Wv\ie[?Ӧcw͈~R?z{Uә93tfٲ]UIktx3ۈ{߭!w5ܕǍ}γ"T:oOث'iSi7~߫z߃S+'FeEnqΕVf]u3m J{;v׌x_?'u[޿W5=Cg>n+U"⹹'x8m=+m5޾N=H]OYupܾEN13W^53Y]SYY[>{08uγn8jM's_yJV=qLN]'Kɹu=9W[xnJHx65**w&mWgUoMp.n¬'޵F5SS猟P3MIjSV'IYד>9ˡcgDu'uobC9+'LMSp~Yn;Zv/=L'2x?tjYYtDrMa7g,ΒxYW~vOAÕ}VvDt'+&~J^>~ 5b^ѥR$uf]]vMg[VD2VEVuEn9u)MjSp˶r:tt|&NЭVF;pYT֮6ʜnyaoQVO=cl [C9+'LMSp~Yn;Zv/=L'2x?tjYYtDrMa7g,ΒxYW~vOAÕ}VvDt'+&~J^>~ 5b^ѥR$uf]]vMg[VD2VEVuEn9u)MjSp˶r:tt|&NЭVF;pYT֮6ʜnyaoQVO=cl [nbw3_ZW5֫s؍s"Oq8a>֮9Ӂ,NGW:)}˚NzRZendstream endobj 160 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 161 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4233 >> stream x[\C k8mU!ZnkQX>NBCn]I=LݵL~k<<^QgpXS»Rl6ONDs=^W g2[3:O&ߥߩ:Jv7춚SnVWZ'369. {;U3bҶEMuJWZ Ϧ鹩}vSC2f9'gtl0a9K JiR]Lg7B- ̙KsѥV_QO ԫjZV9b}8ǐo4B<]乄o$U+9vpޤʓȓueMmZ?|򳫧7~OluަJ˕07lw8aē{)7?!)^n# |'9?9iՓtv4wg< ]L޷Bge){:Q~dB?[NvS簽;z:dXԜG/+Nyٺ&^&N쎟ӻ-jZVb}t]TS}zN+O"OW=Ζ5a_i"ϮNDs=^>'93[x*-WtRM`qOL| yx&IXSUOܝ0t)3zYɗ?]|BD l9uJN^ԓayzZSs\ݿ|®:%Mf"LK{H:;~OﶬVjZe%tCミyu<꞊N7X=a99%¹+VYNOF]x|Sx*Έg#5Um5'˧̽<+4zzm쏸}WdW(36*9Gt I]7ͣ,MN 9Y8eԧΟ3{InkjŸ:Ѹ'ggt%IkS͉;(n3B;|Ur\BֶNO$s:3y>jZV ¿y_W٩Oμ\tuOERZ,Z֞Y{✒T\+,ԬWeMgULqg{I✞9$pމHW\] 'W#.<>өX<g?摚*gs춚Sw^ wz}ST][w]==g6y~G>++xALO.ԛQf&'✬m\N]S$55OgEvhܓԳ3Q[㒤|>Wd*es!k[^ ''ag9ON VjZV 6}Nq.R'w<qsgR'ߗM5'JdbN՞]̕߈m g(8.ϩ۩?jZV)JSz q]:sWPl,+&u>UϫO.)WTOX+aX&p~+> IYjZuΤr:eu>dIMʞg?aԍwQq}&.|WgWr߼uƺì~wn]ƺ啮mAWjZr[/ܓMT8?>I{O=q6ǓvU"8VJ(Vw zߊOBR0p3w{O=YRS'ϐEɘ\$# T\+7JnƿZęK$Ս$+3BL_^өYw>Oؽ.6u]T\K4*Y9;u>ĕ7ocs0kgtv_yk[jZVĦ|1_rN;g'"u+,]Syũݬڟ;YM. _y%jZV)}{/Fϗ-r柿i\9yrZF^Ip@2 wS>yo6I8J7jӦw<]]ۂ'|Jsr8OeS'UofGjZV9jR1zRb9qqy[N]R sv“3W˚uWXg]IZyCۻɕȤLd*V_9;#d'De$U7ѝ`^p$tsӂ"۽蔙J`qVڜQմyԍwM2)VjYV 6՜C't?S*oy*.:~3;ZVjQWw~Ŏs֥ش4N?V=$z9]+\48rn5)-:'i-m&W:Nv@3X}wT]y%͓sɭUNzu ï[\^t̎S%8+ J1osxZ42<Wo¦x7AԞ asݽ[ENtVp[SyM89;9:a۩ss,jZ0oendstream endobj 162 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 163 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4118 >> stream xQZ C1N>T%r}i9`Hᐜq*HgswϐchGuτt!g+~3Aws;~є'f:=Ya`{WY9vQh}`:;xf% Q3ER !vw:ӛZ*mgS) su»nOZVj5QzW 8}P RpWN+3JOWT]ysJ^L]U*(OWOgkݽbǶ(w{51L׎f4%^r~.>1{שgGyN䒻ߧs8C]wg'-{Ih'| 9>K*]g}ի|t5%YNNܖzK9o&aZVj_47bw@4nx6*3g颚ڻ$887ɺ^1s8zS}8V*fɕ~1<&:r箋ە*BElNTQ~*Ϧ׺{ŎmQ':jbhJ \|bS %wO0q3,2i9u=r:}tݔommѻvȗgsh3T/_&ڍjZV}ש:x.ݝ>NN 37 8;xll9 ν,fW8(κޔoNmrkK߫d*Jo3%dzz(Y1?$yNtu+3p6))s{ۀq֧<ϧթLO{ͭ[ww+h2ѹxy>3,2i9u=r:}tݔommѻvȗgsh3T/_&ڍjZVҿy_\ʷ=7aJW Msׯ>Lq8sv+.)頽;[Ns/s3?dwɕ\\33T]ysJ^L<{t.dŌũF|ƣsfmFSR%)*Ft_so{7s/ -[tU?닯[YeVnNݡG>NgLgܛ蠭0s8Cz 79jZV󸿸o3w{nJț搯_}VOi33pW<]TS6A{w^f3Y+fg]ɔ5g+372g"Ag:r箋ە*BElN 7xl]ɊſSߍ /GیK'ZS6Y!TQ_aK[ Zg)=C~$9uEdC^=Mf:ǭ{y./wgy)<4ݜo䙝fwukmaYav$g/SNm'WjZ_Wv^n m2Nq=veqn6uo))iVmrWT]ynMOYW:?^UEdkݙ[i3>BxG!93VW<%8g$@ ՔwțK]GߺLwu/O=3,/'Sw< a7s-9+<̎>w93TjeRpl\h^!y{Ǚ.IJfV\Qu<9orNtvr3ycwIͩ;9 a޹Km 4q[Vx}*鸾 Cd[VjIb$|M6W4"\3gr׽g˚u*]κ2]tZen]ezO{5љLՕ;w]ݮT!*z3lɻ#\G 3^ 2<+>w93TjeRpl\h^!y{Ǚ.IJfV\Qu<9orNtvr3ycwIͩ;9 a޹Km 4q[Vx}*鸾 Cd[Vj͙*qVEb0kz%!pW<]TwԿsgKd:;xh{gz~p6R@s tYIKq3+n+]Y(z^6r"ݬ~ɜLZwoKBKCLJ&$ii"^axJ¼.LjSvS/Bnʶ9':;x}Cɮ+sy[8$GL^gغjMܖ䄻::"RmnjZVendstream endobj 164 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 165 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4308 >> stream xKKn!ABw#=mY׿>w߿V걽{EʬExkӼ&c L2㲚)빽M$>i{wF~sr6V-GHdZy _$'[ճJ^m,C[Dz."ު7ٳs[7IMI+=SHۜN۴$^q85ɼ/g^ٍ\{e[hɄO܈Ϊ+}}f~t@!膮Wwd {=_;f/l_K”{8 &xV^ L+g9+ŭBvl]3 zRE],\72뙳9fIMBK|[$xffM6Ng_Ipp4V+֘"ZݽD]Hg'mp45x.+0՝ kUZ!+ll6fͻ_b9_W>~t@!膮Wwd {=_;f/l_K”{8 &xV^ L+g9+ŭBvl]3 zRE],\72뙳9fIMBK|[$xffM6Ng_Ipp4V+֘"ZݽD]Hg'mp45x.+0՝ kUZ!+ll6fMX[NV"Wu:M#܈Wwd Uԙ^S+f/+f+V975.SC=8Iyjx MkgZf$sV[z Jߚ_G,Ov`I|z;൚ADLκܝܗOp!=7b0YLFM]8rOo]n9"k[>e'gȑbzzvuCջ~6flyKNV"Wu:M#܈Wwd Uԙ^S+f/+f+V975.SC=8Iyjx MkgZf$sV[z Jߚ_G,Ov`I|z;൚ADLκܝܗOp!=7b0YLFM]8rOo]n9"k[>e'gȑbzzvuCջ~6flĸϻWgVwע^4o8C/o UJo휒]:Gwv:Irnjv3] l\J6ETB"gZ i]u~&^M:^i4!FowA0O<5MbO=L23S<])J{ȮІw}Vao=qvNpS:?Y}{v3V߫;~)&=?%_E2XLIv@F%6M+Eݍ sfl6zRfez-JM3{p/\=)Estg}qLd*f7EvnC\J+4.rU;Ug9+5dj{襝pIj{wSODSٝ!6Գ$>9?%Ŝ鯔 mxwA=OgngwI_0Uϔin m J^nY2gl6f'*;f*N4"SۛWwd U}% d3wn3]o̗Ty%Pg?ӊ&(L2gU#NLf'⭷BO͂g\tOn" e9eγίL䎟I&|z6 ;=8ә; 2꼝 fv4.ߘHy';eX3z&^=6[uō˔m2t훫F?^3Ʉ=NCb+ !.N(Us=T|z;iufl6fCš*O Ar6+d§ss~{w5wUx_쭷.Cd=~̝Lg@%*%z*U^I ԙϴ ?YUlw|%.ىx뭐DSݓwvN+g .N;Nt*΢$L篳:ogtCous9*au7&ҿuNV8wLWjOV]q2Ft[ ]檑돫W.~cwL2CϽӐ BH#gnSs;sǧ9J\NZYl6fJ (|מ脜rIo+ ;2WȄOrGtN9qr*%zȮυ`fuafLn2;ǻ3\+L_$I!3DfҦٹu4 )?Ywkx>y6z}wfʓIjΪVm6fx|~%rfV 3S.M%pG ܜWΉ'޴z&~Z{Nۗ[+ gZI3-|%.WfoK$_5g%"n^DNd'g9ΙUNDuZٕ̬N7̬QMfxW{+Őd=2tfݐȬ[4;&3c8g9κy ϧ1OFOLy> 5WYfl6o^ӿr JO\'g{V=B#|LV=T}wqg]}j3]y3w2ݓJ+D*M˴߫z:djݼYt>L+.y"~BuODNdΪoֶ-buS&Mvg"kj'˹sN1ӐdW2'm7yM[Lݣ TJd= u3|q[ "VgrTzW{ϩ)sl6ƕ:z JO\'g{V=B#|LV=T}wqg]}j3]y3w2ݓJ+D*M˴߫z:djݼYt>L+.y"~BuODNdΪoֶ-buS&Mvg"kj'˹sN1ӐdW2'm7yM[Lݣ TJd= u3|q[ "VgrTzW{ϩ)sl6ƕSiߊ=_y7b^=F._!ܑiB&|8+^U.MvYqUg!3]yZ)o']iBֳcV{"n+[zԆwN{+"ݠU6:yo('ymJzȮp6Ui[M՘:;J_$I;m5[= nd=i߅bFIvg_2|q[: [yvtXg>;;fl6W E|S%|14;S7b^=F._!ܑiB&|8+^U.MvYqUg!3]yZ)o']iBֳcV{"n+[zԆwN{+"ݠU6:yo('ymJzȮp6Ui[M՘:;J_$I;m5[= nd=i߅bFIvg_2|q[: [yvtXg>;;fl6/1a[+{wӈLmoA^I ܑiB&|h+UdZqM$CoN{[TwF_ӬN;"w7vó9; mCui;M^#ݍdzՙdW2'9 ]=Mtvt%z6S3Uiμ[|u"KpݱL2VK$-?O]ݓ&u;z> _ܖٝZәC]ouD7=q"g'7f\u@endstream endobj 166 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 167 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 917 >> stream xA C$o:Y&(浩l_C;BZ~[;uP1ddT^N{3̏) #z+TZTT.uw6J{gG$S3 rvfեNooT#WXǑ+] ̽k*mBK뙺6_cl$wN]UgJet{ W]'Mto1?:z?m>ϮJsꪞȷKȶ2G*z7}DNyF;z{3V&&GG^k~ݟ(!anIXOS=󔜙IHXܵU|ZثΧo3Y =S'gkpLEZt孩cnϔ ß.9ȡCt\uKU.zx:fJIpNҾM>.lI^laN I3'vBs< ۅ9v.y .nv!8)Tz4?㜧v!Z?㜧RpۅkpW##MxkNR]5') ^j9CHv!ZvAלw7powU9=v!*Bלq`zendstream endobj 168 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 169 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 288 >> stream x "4v HP̐Eۅ{%Y 2tYd"(إκ`F&n!endstream endobj 170 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 171 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 172 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 173 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1207 >> stream xM8 C=\V2`MO]I?7W 2[-/vB٢+>2<9^+ya]yɹ*d`z;> 'z=OO9soO,羉kUN>ԅm̢oL+ɖtG5 t"O69/9W_ogЇD߻43bΓ47qJUɇP YVi%=u{TI҆u9%窠y&[9:1}s~/<)KO)۾uUԅm̮UDgZIO47=i^+ya]yɹ*dvb{~NLfߜߋ9O=Sirʶob]s2uo o4QoiVr*״Nc/ЕꞱSi2bΓ o*5@9M|JU9Џ2Vq LVf%7iyM4]ȓ rKUA'''SJt;(s~/<)K\sķ_eӨ j o4QoiVr*g! e/ЕQw3ĚQsR$ &uq]u.] d=+IIJJE$mXs^r :?18wM=d={Ϩnb9Oiz)~jA}Tɿ:縮P2t[+ɍks:'_!R'I圗N ޺NI2͉gL7tԜ'4e?I 羉{_es\WD]KWE}zp:Ƶ9RX]ȓ rKUA'o]o'T$D3nXs:jΓr^Zds=U9+.ԥ̢}=87K^+ya]yɹ*]ʿh$Ӝ{FtkNGyRNKQT rJU9uEԅt5(gendstream endobj 174 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 175 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3042 >> stream xQ%7C1N3$%RԭsпO&)_]tT$uӟz qBdޗLU''r I^Ө85tz 7[ߢ;F V@2|@#p_ : N28~oΓs(ϢLU4;NA ]ꢞ$H1ui.s/'oLU7ɹwgύgQ*w.uQO]$к4EP9HN7N*_bt;F(S;SPC'.i ~h] p{ A'I'S/1yr:s#Y F})K]ԓd 4?. ~w8T=pҠ$󍓩 HLQ<72E`/iwE=IvOcC]?|@#p_ : N28~o s#Y F})K]ԓd 4?. ~or%B:%_O3a#'$;)'TP9u)׹pɽTKhLOc N:ꆿqZ⼳R;l/(tjRȩꭁ|Ԯg}L6unOM[v9^$+3+ixTumSעoujeSju;qf[wvl S&OvZOiUr5[uꚐO6=өnsn4v;*IfvVZ$SeUXrJSB~A uS7Λr g먞Nʄʹ4PI+[өnK.u/;;+ӜފB.iǯMzVZۧHȤoZW9t݄߸e]jUH?GU6u-:9VgY9Vwmuo'P?%aBoYUxN'GYu[׫ tjۓ^:n069IN#aktk-ogu@M;5SWdRbiݭS)ɳ>_kSl+(ҫLvl9u%]IK&ZrH"g]sNI6߁jiOK*]g<ӫKgkjumu/rPP׋'::mg2(Q(O=)tUr$YߥSMpox:sSP>?%3YݾͶw;{jSl$Wҝ~i w%П^UKPkNN3I^{f3O&ESLS-z-[=iߒg vS~=ޘG:[τiMpjY2Ui ݎ[KSՕBBuM/W[]sLFf)tje4M-c״.NϗI~MK'.&OuoEfM~;7{:)mtVb#i2Um3LS+ɄڕX]svI3Vy2!o/*\gjћ/uVo7I4=S/8멐 =z&OmS_zw搩MnvZ:o*\t@ozir޺пd62MS.CLij$%=s:2ٞd:dXߥ3'.3ToW37۝zPdj ΔڵNgn$FUi*!^T+tI-G ;M&u]sξ_wT.:g[tH[3ҭYIT½Ns*y#Ea) NLu/Aawr&pU輝WKgN]'gHfgo:;9ϡB])Ok/۝jH|YUBzL%pW隓[6u+<:vL箝}Ϳ>ͩ]uζ֑:Tg>ۥ[ 8.{hUFZ~/ÜS&̙^2UhM6٭%hdy;߯Гy^w[P{ל(I^fӒp2~<KzMۓU售9[ժ{ҫ8:~I7Tz”GuJfwI~]4Aa}#2UӞu7d[vAsT-Mj ;gֵ]6)NtxOl<:-OfLm'aGNq>NZh0dlNM MmzӻrHڬ۔:o3OS. {|Kk?I2H[]&|: qendstream endobj 176 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 177 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4347 >> stream xVK ;DA&eIQR ҽOw(pjp~Ӎsg4IFjRU3Ly'W2 gVNv dT=n67n5jWni խP+Li>f]{ڵoOy<>uK{f[W=^&?եYLm'aGNq#-ۍIz4S*< LP8z64=OLgrHڬ§)u>+Tg. =`+9IT'klWTp8NpL_O=IҒ1OH\MwlG˻;|귧ţKҙR8l z!$s =T쥢‰a)ٮmT.ۓ(8!mO94P Sfx6{ eePB¦lS%ٛTܹ `9RE<& M Bvܦ\a5zqU%֛;۟=嬰t*oYg۞r.U-pj nt*r9+l=m<\ΓKϤ նeGjjlc;XޝN=8S=,]<2YgSW8Փ &+Nb/N\KvU6nvޞvFi}ʹ9=j^B5SًP`/+݅86gN/\E,6Mˑ:-T6l,]Lx6 syֻ*!L)g5W:ߗxtnTSU0vSYamp8jŜٙ2Zy]P} ˵cft}檝m2zj̞<:rgt OMN=jq6ݻXR)SN:=&(%?:+ru2?đ )%sB\guwNS=f,\ǯ'O*Snr,6ONjp5i{Q{ GBWrg@&3{v?AUe҉S< Yjj🦼iN\i%AU}VZ|]F~+q8/x?Age!A']P} DŽ,מf6yű w49C8Uw;a#\wȻ XtȜG^VVȔ|j Ku\$ ]>=f,\ǯ'O*Snr,6ONjp5i{Q{ GBWrg@&3{v?AUe҉S< Yjj🦼iN\i%AU}VZ|]F~+q8C9S w)Urof̋Fr>*ܕdƞύ HHso^72uk*pFf6,Μ<6OMmwPH/-g|. O'ޭ0f^kSrzULr<..qff*|/-:P>bKg)w Q;&O_#'+d ς33W]w3/?w"76=z <8Yli< ΛHqv50paС4Sį{/C~UDZg&X**:_W9Ζ=wlCs:T\) ;gJȔwsp8o7SO:B:m ~՛])9NB77Q.g>~B Y*SgE2UUyzB=UNYhTTgG6uzP(\AqQKM=tbKLVvEӴٕmG"~7c*B&z:3QVU:q'(!ìf5֡Mip9SBLx[6p8$g7SO:B'+3W]T3S+re>SRo2Qљ\:߹8e)hxxh0~g\U{cZgTy6[XZs_o"C:~[pEY:jS,-Ua"!s.}Ω7< ) =8vRUVՃ_2ѣ6'[''O.q'z/uO 3 T\ןyнtN+ȿp8pa{ )8o.u:/= ?Ur4L5{,t6窭LTt>Wuxnw;NY =:+>d*< =fߙ0W*|9֙)Ug)<֡ֆ'[П$1\}mQtg/NZ.'musg~+tr;i-BH\sGũA4{r B|JCξrUWLIɓ r-ɻK¯Lk^|1t p8 va{ ):fgztN{~.h Wĸ96Ѧz Uζi< i̬i4DX 7vF駢\;]i^~\#Ο]Tdmno_)}ǩ7< ) =fgT0*9CgOgnyr䂫gRDk:C{٢3۬Ywi9pÔendstream endobj 178 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 179 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4277 >> stream xKdI C}z;$0  矇yqB笐*:gg9K?ySRDMgBu~™mV:ڋz#Vj_/읃=aV:;fvG${Adr&ܚZ,NM2¦Hz,U'+-~ ==&;WN,B?g(W3+!!"=ffKSl~l nsѵ?ݫϧ:uriU,)ͭV uqV**RVSaTfպnJjZVN|_;{¬t]vz׻q)p&ܝB,6|SM2¦HzCoZN9+>:ᄞg+~Sa/g ̥JpHsf]ބ=ffj_NOfMk~u^uuV>i;UKdMnn̷BWRQ*?gn!ī$8T|zw՝xgiGE>9K?ywl\5΄l{T!6w{.VrVjr9f#9K?ySRDMgBT'b~YBorn~>jZV,)~m直*>8sVHܕY8sIToXg}]7ɿz*>8>O i ==&?']WN,NϦJW:i )r2eJNi^Vg~lP-Nu^uuV>i;UKdMn.y[ӔIK"!u]{E]~uHiՄ:T`M/aVwj.;ڜi}W~knO9Qƙ4U&v:Oqv}ׯ)jZVy=YTwY!UpBsWfpg?% R$S+J`Qwq$2e <&'8C]6jZ?괖ڡ⣮:gT 8YwjęKHf斻NzʬTO؈G'0a#^bu%t%SU򳱨ܕ4 [S!Lȹ-ҲWL+&߸"73o )y&x|ZNM''^q;ͼlqӪ Y[utO,gVjB.erR=i;"dinw'Uڗ2C~8U*tM)jZVjO3+ NrsV#\ E23V'txԛUf zF>: ߭+/qҗE.箤qUO2%a4t/@%oY͖zfr^ \4ƝqNOyPMK9t3תTt&h89ig+VMZC |b9Rrɝ/C MQ!KhwϿ=9վkU"LRn]LymVjR_kBz2!'pANe&9y9Ncuqy:337Fp%LR}ůu:3LΠNJJ ܚNwTr̙IUqH`otG=+ޖ"\ZE'N3 Nu/l+=j Y[ud/gVjBd掍]skxg⒫'Ifg~_*:Gi{ ˽ FԄ_}%Vj5Q97_+gVH|BOf<~d.Hݩ:'"iul.N=OgfTINpfvIUqtYaQWOI[鎪Q93* lSNupUےCKdy|۩rf>A9ۙ©N;mA-5!kkJM Z}ܱq!Tqn LW\r$=L Ue9T(m/_ZwwވjZ&* ^BnIv+x3rN>g =~WNŸW'(a+tbNLH*wYiάU|I|e̜}^+y:*˪ҫެz^WPyzG='agV'N3Miv\Ôi{vW%w*BV-B\r-!վ.'_9OfK..z;VjQ)7)*ɓ"Wqgq|$z.gROP$WygVǙ)TҜY{!R0ʜ9e#VuT &UW/@]Yt' {NJOǹJ-g;RK)z.턹=*>j)ySJZ9U7:M*8aB 'TwJ[o'EiJNO/lU> stream q /image Do Q endstream endobj 181 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4115 >> stream xK6CaU$>% m g38qV=SsKFT{vq 7a/ݩ,fDo)-)VǙfR̺K⟰aTgK.=#i0!) e+/uú)):pzV~>CHGZM퐰7gW?퓿NY<[iB[8sqgp:}nэ﯇}UPUUUU,|Y7p*VϪ]~UBfZ?⬣!DjMoYltW:߾C:喼InEΕ*7ONz-+qs*␰Z7nϙ{YOtA~{gfٝ9W >NgDj=WPlF&ng=I=UUUUeK@N?*s3qQ ީr+8=s"$\ Iqf\C"L38WeRp\gYoD⟰a|{sOf{)giT)p"5&,6so+so!{rKޤY"Jld''}8YR9tnqH[{s̽_}U':ߠS[Zcy}?Y=Z33N{N3"5՞+(6~qIΪRK^55J/.50g{pY8LȢp{SHA==wsr& x^ᅳ@'^d),g!:m+~rq&{PsrcyfRM|pyg)7H̜[nýr)O8߿ 'jTh"Z}8,y^w8zE,ωBb5z2Yg&U3쟛z͹UO ɪ+Y"y#3sׯ>zY>erqߎUqNpro7Vwuv:<"߀"igƟRUUUUr~S~Ƹ~œs=f?⬣Js2!jM!Ugyρˉ0yj{|#(HyǙAmI5IrYoGS"a3sZouz˿2mΦP>D~6,SՋLhzyT<'-⏋]\rLy^zg薩};V9qY>XM𤊼sgJUUUUV[<7OWsH:W>DqN![ND#I^:q{PG9un\Od%Eອs J[&Lhou3'%ERUUUU,!_^ל7+YB9vr ?+yO"8I-'r"UZR$,,濋Uۀ3L*mC3I]\!TH\9BMn N}o19:u߽ɜ=xDN̥z!soy9=+{x:[{J抸FYr^Gwd&͑[)8=;4j[Rrɓ9҉Cneޛkᜓ{n\BLm&*'l^nҽSSUV/yV9 OҲn׀qf):}+#\Yiq\E<NNR'^vgRyҜq5s!ؐ+97;dF^&՜mP>DN̥z!soy9=+{x:[{J抸FYr^Gwd&͑[)8=;4j[Rrɓ9҉Cneޛkᜓ{n\BLm&*'l^nҽS+ϗJot/|B5N 9WL&&MH3gN‰s-Ωv\C;G3xR:_zU'$eqݶ3gcT9qlE jFa5OИ\NO[ڄk˩iHO{OI[фjsJ}Ͻ24S #lfԜx]K&g1#Aԗuf2{T:{Hؿӳs:̋f纭>Eqq޳'̞=37t55F/콿ytpZfXlȹJg2!7iB"Ԝ9pNshqN"ډ?"kW:!)9KʹW3f.B'gfpV3Ӯyw\*p"?&T\{l\N7%MtfGx{Jڊ&T{?WxIդlac5朤&8Zw5=dW¦3;Cbe׉Ceޘ 1d^d5;m)sUϷ=aTUUUBo4d}auhVcܛr jR8+ĺU2qBER]ϘhZݢԋ=Kv*OB{iWcV o !g:&O-|5Sѹz{IWS+ j?\i8JSBAT5?)9ř\ݫ.^^*o^"ofj7, +{Rf9$̍Uߕygoi5K~Ͼ_퐥.39S;]H%dƒuJQUUUUUԯ6<='ߴ~7(A}YJn2t Y<6|~Zp&U> stream q /image Do Q endstream endobj 183 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 694 >> stream xQN0 EN @*n4sf5ױ%~Y}I@?pWy$q&D@bȐ 坴 t$C#p&37wM?lCA-;y_w8ɫP|k`6IM]ӏ.8Ő!AP̪ $^'0i.sp ^1dH$^'0i.sp ^1dHD8;PJ0F<6ze3@A-^@3 8!cQcs7_8dH@>-S @2tS ^1dH2M: ڢ^1 $ C7> stream q /image Do Q endstream endobj 185 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 300 >> stream x !0)l *hK}m >W2o} ,߭=9+  9{_ 9@ ZB^\O!endstream endobj 186 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 187 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 188 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 189 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 960 >> stream xAnd! Ch"KȊx*eMܠտ;]c+uke+*>}ҲJro҃ Y1%7@&Yf+ \&X2_kr_IZMSz0B A?+"s*d;V`%nMueVpVN{z_C*eSz0B A?+"S9, 9'TȊwJ2sݚ`ʬ ଜ$xM~U˦`~@~VLIEsYA sĀ Y&XI`[,s]U엙~א x̯ٔHϊ)H2;29|O o2[d52וY~I?J~ M $sA sJP!+d52וYNIQ `~@~VLIE29t 9xJ2sݚ`ʬ `$t?]YSz0B A?+"`:sRdT }`%nMueVGJ~O?]YSz0B A?+"i RdT }`%nMueVGJ~O?]YSz0B A?+"i RdT }`%nMueVGJ~@_@ Κ҃ Y1%Icwf@&:';BV+uke+*=oT+*?ϕ`p̯֔Hϊ)H;4* enT,ڟTCS|+ {*BV20/QBer[1 S@y̍ pV=w!p+9T Nb!8}endstream endobj 190 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 191 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3645 >> stream xK$GC1Ң7 Yp~ɇ^fI'.k_K)^QJ)'}.RJE)/*]w!wRgJ)z([RJ)RJ)$ߩJ)z(>J)LR.]_YJL)eBeRJ)RJ);U)eBR~B) }^RRJ٥Rz)L轢lѷRJ)RJ)߆o7~Sw6%p}+q6Y5}&{C~,ß ɭ&{I&{ˤ/{g=/Ҹe 5{QrWN:~gսw[|];@O[k~r|W1Nrҳ{ōo½o2dDVd[MRJyw'{ $ws~C,do$\_89|ͼuo͵E~!Br~2icޙn}K4nwM$^ܕN:/&;ߙ~up}7Ӗڱn⤵{.}/RrL"oM:en'NM>39WF”q66CF!nvSᬌܲEsJZO5Q\_[MM;9q>om̡'┭fL3e+o5ɛ?_<,o&Y{^˓NO2g8!~] IY>+5;d`;)\#jj,6<$L\prS7yֹj2$z!w^Sfr~O񖰽\uiSJ)Ov'NM>39WF”q66CF!nvSᬌܲEsJZO5Q\_[MM;9q>om̡'┭fL3e+o5ɛ?_<,o&Y{^˓NO2g8!~] IY>+5;d`;)\#jj,6<$L\prS7yֹj2$z!w^Sfr~O񖰽\uiSJ)O =)lOp@BvOsncOQ' x'auL.y'8:LHtNG9On{,"Yu:#W-a S+\69A3K'o yY &st=:Tn2ˡg. &yEг9 !?]ÉgڌM\pr7u蚜 fnff[]6>թY`EߞbgMO)r;w!3o5BrO4j#m8[:h}n5ۘ"S=qމzXݲ43%K u>=:ayN۞:#K'g}u27?rdUK W:MfNi&[B^ɜ]ϻnr虋B?çIuvs9lNBOp6#.iW;h\%@&签ijV Ouj,Xn-򷧘陷,u9SJ)܎]<ٷU*٧n:\Y:nY>Aܓ7yS '؟6owѓ7}Iomធ?S>K֙f']^SX:9咟9sqct[t#|:L؜@puΤgpնsmϙ}$;<͞^vovݐdO+4f3Ҽy&̨RJyoz,OW>u9ߟ>wTVj瞼m8O䰵!xuDa[M"}xm Y4s7<də,ι s̎Kۢ9SaҀ=,=w&=;䮷\nn{s'9 Ȝgnt3]f~+$U}]5k.)紗ͳ'7aFR?=oYO[uLs96\s\a=sO^\3M.ܧbreCv='O==Ɯ;ow|ڪS<-eTOǟyIf = [᨝{iw>-9CO VI!7tk\ <8y)w5$?4oS;ۢmϻ&7~ۘ0nsy\t}ímIȮ#?u33H>&]myC6$-7Y\݉sL9Lo w)R {:\MO;?Y?O\tE535ó}C?՜8huϸW |=Sf'9SKLܪunobnLn^ϼ<>wu湐*tٟ35OVFnW\:Թ?S]ߣ0Owv 0Y. 9ˋ?U8sg6rrgKͳ![؜yf:}6u"|rIљ8V5N~{[9D3O|Jzpi3WMRz|?#j\eRJ)NX_3WVdW4kΓONӹO\tE535ó}C?՜8huϸW |=Sf'9SKLܪunobnLn^ϼ<>wu湐*tٟ35OVFnW\:Թ?S]ߣ0Owv 0Y. 9ˋ?U8sg6rrgKͳ![؜yf:}6u"|rIљ8V5N~{[9D3O|Jzpi3WMRz|?#j\eRJ)Nvߵ\-gf'I՚,>UjT426wU+x4Yd3r DϰNAq5ԜN7n6?ţT3I] m:TL23ԛZJTl\uQPb"sgT(OԸSpʫmSh*6se+fnm?Z9]޴{%"t >Y>,3 Mj<==WߜRJ)_?2endstream endobj 192 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 193 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4238 >> stream xK,GCaOze"AD.q<Qxr.;6E֮? ©ص.?=uzrx*&3VBhO2TaqVuF|=7Uo]l\bԗ'dqsx<=$GwE&98Oi>]TWIfWauzG|ZVR{vgW=_/߇,L*.YKcr&OO!.{TIʮ!9z#!KTo*GW \nz:*rXwqPH7mV_x'LOїM|OҨ lٳ;Zs3YI&u_YO0ϊg~)7Uo׽l*h7YW&劃zqBֽ$pΚ'W-r~+:;jZ?{@5E{_~sK޲wO ])9U^BV$iϢErrfUIũ&)aozYrJLM09?_u"an m\;KzCgTgK7Uk乛w3Q%yXӦIȺNg>I$|M]S=VjqgWk 'V:疼e7(pN*S8st)!! xI:FE'Vų(PѫT7SLSH{'ar~*Ez9H۸Nw;# חp*{# n Ƀ+fs7Y g N7$ǣK*M/u/ |oÓI?:J/zi_V*A]yXRwMLGjd/1P=&%N*O卫a)!9W "- y˙'73y9$T?1GO>3ODjV~˥UR"HC/99M%; w}rj搜jqVt\UzsZ{Ÿ6[Y vFV?Śa.2f݋ϙ5Ox<ڿzz [^V*M]yXRwMLGjd/1P=&%N*O卫a)!9W "- y˙'73y9$T?1GO>3ODjV~˥UR"HC/99M%; w}rj搜jqVt\UzsZ{Ÿ6[Y vFV?Śa.2f݋ϙ5Ox<ڿzz [^V*M]y$.Oop"I`ףοٙ[π:i♌^r8*{*!}&vx>-|A*'|73y)ʡR+~=l{)X=rSNLfF,BOgΎXU8':w;HSN8`:<:Y *?%p\G$ 9WiWŹ̪+9jeͺ-3I3L@OE~qΉΫjZU^辻<]lj'];^ggnZjN<ꔦۋg2{ī~/dۅyK ,f(JXb}N935O7==";;bUI蜣 UpO;ᴣZCλzTgK7sNÝsq(x*\G]2䨕6^<$=?k3Omv<9':Vj5W&|5y$=_/˩ޣ_v={)Ej9w3~8=^UUd۲wn2q6'gߪ5%-=YJ~3p93T趓|SRߚ_">::-o7bzzDh2U%sstV8xR w`;sT)ObY> A_2Wjy<ߍT/OuwΔ"ԜǻSKg Z{/]J**mY;783Oo՚ʖV,%LKB*tI)o/OJj7=="]uĪ99GloDͪI`ףοٙIsV~qq9=]OoosNYI(LI뙧jJ{eQĀ8{BGͪI`ףοٙIsV~qq9=]OoosNYI(LI뙧jJ{eQĀ8{BGlnT99A _98,:mouToʙ[T+:< ,fNI"ӺNNVfE,.upN3LF[wSѓ|ΉΫjz^ endstream endobj 194 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 195 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4211 >> stream xKrEI CVjo"M- DG!κg:q#$;;ӈRs*2Еg~߼ʷ{&+'3dlܺHj6o՚kXsS׫)/Ogzu4ںzg{*a~~ Q ]nu?9xR w`z8t9'8T|SyR]Ū•g.索j!Tj[Yl8'3LF{ئ'Wjy=]&r*r'wxMvv'JL+nwU<9UZLνʔ-r 6+%P] !W׫Ӵe C'y&> stream q /image Do Q endstream endobj 197 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3692 >> stream xA#KC1M_fÆ")F&mE1촻Q]uOm{㝲3 W6bٻpVguR(7ּX5ls8קk23s40ZPf8+w5'hfֽ媢juGYちև+(c{uy5㼱-w'0ZPUc#S٧]oex;;(֕b}ȓ?Qfasngʼ[?Q-M2V᭻l] <몢)s}l5(^ʻtˍf'ݩ'{x>{ҟrV[4r:;(ÙIoc|!!j<5+ <2j#sO֙h~SmSvgFQQܲf5y&LOWTt&t/CCn역< 밢sN BPUV>MO_4Vا@wPXU>7}^'Vܢ07f )x]`]wx7e&c\W9qf*럂ٺA)sc)[}U$@J׫n>5rcIw/O^'feܰ+:gnpj)))0zpO 9OlSu&ߔyݙgQ3}CT3:lEYM o5?)(;D␁[z>e`5r:;(!v+% 5Êx0g1gL[awwPf'0?m>6]!j>+n9ˁ?Qfr yFojDyw}*{ޖldk$>=sC-gw(Pssv 밾2;BA'oWxrvXQМ{{8߈^|:y됭KNI3Naw(خ4A9qkZEĕ>yzqu-og,7i˖7.槳=0'f¾k:Dgm}#g9' ?]WΝa?Mӟ(qϺ[e6򜭞lm$֧gz{蝂U%7nʛnawwPf'B!(*WwxO [5El[${/ʍ睻+I(ΕbHt'OIa7m+խ>7-.%In~6~ [cu,wœwp8qy9mD7P!vmT 8s8s[-v#xe3Wnma?7NٝqnoF4 ?>9 W]) lzoN BPUo=k@j>6˃3I^a;wuW$Q0+3N nbnV[}!o[NyO35]J>0mrg:XJ['p-*sىXooۡ>C~ۨ;(p>p>#a疷[F ' ?gROo;?<7Yݍhv=Av|rS꽱; ʡN>1FUA@!}?Sas`d'ٝ} oyQpːg劂[yA:%97#yRl}:Nt)iQ<}$~5n맠|hWW s]}VTCy5q96O=Mw.4N4Mi(>sA[V4wOvwǧn}?7޼<>+j(?u_PsN\M9LSN|Z4哝67g 'vP43BU>L90|>w(xSeގrEΠcÛk|bb'4S(O ?eSP>yd9>vvM+x~*q˼θ\k 'vP4tOxɠ-+u'zrp>o^vmml5I/(عasq['y&)wJI>y- C~yS;(kB!h*飞v~)O;#DOqV+x6,kÛgOҳ|Rf8p;C]It8e_9EyNx9&QeWw>姫w3wy:xtOT0O[9awKy~ϥIf~=sMZ?QfA7-o {.oJ6YW@yؚWơXW;>e_?kr_خjt'纂[nvʻ- !vyOnnjs?锧{" ٧8+<mcy5IM_͎vV>)]}jVf:2ׯAX'< r}aoݨ+^»aU;iw˻qJ< n<5J9$Gv|Nvބ}8p9Oϟ}͛IM^-;[ ';IJ;zLճ7 7boJB!N*vΓkOp'w}9W8{ {F<tlͨX7?!B!8Vɭt#!B!ͷ߂^BF!C!l½FzB!B!hwȭt#!B!5Q7B!g%7ғB!BACFnB!Bh'MTBF!C!l½FzB!/4endstream endobj 198 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 199 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 622 >> stream x9n@ C$ojPeCYC\|OL*:$0w>4z!L ߾qG4TtH`*X]>P<fpH*@5ѧ,@E΁%u a42(lqDCx$- iTeQظ&<^80} 9d 0CU9~?7sLaY mC@38Q |D#&$lfpH*6简\.T^50} 9 0CU7qM9 P!j`@ra44x(TtH } d0CU @DJ*:$>2z! ;"k >ka4L8N*:$ @%ҨJ bTtH`EK iT%\O*:$"@%`iJ"endstream endobj 200 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 201 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 202 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 203 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 354 >> stream xA C87u.EƱ֦R@ f.MTH1:Qt3_ j XܡcK?S g[YΨs]3`<#wu|BdKғ ҹXބ{c#C|/endstream endobj 204 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 205 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1492 >> stream xK%' E=Q${N@HYW!;1]O0$~%%`vw9C+]'+ۋ~_ן &X53".sN'$o9+KI9Λ'_v}+Лw 1.$~%%Hʱe? ^dg~_ן &X52"T`։kOX UJ2`;o_;voY޼Vo}v'+A-ANVm.%NV";;d099sN'X{JgȬRp`'8Sy#~-}xөe$ۯi:Z9g8YiHvyNɜ`}9sN'd=gU)T80 _ZkzF> <2OWZ4i^  ]Kv$;~dNʾ͈RZ'2מIҪL* TwބwN̯~-ߵr y/uZIJPK#럤5~viގd+;Y?:2"ԔPs5m9+GMSoLuM݉yלr y/uZIJPK#럤5~viގd+;Y?:2"ԔPs5m9+GMSoLuM݉yלr y/uUTt_'* rdvo;{R3yg8YiHvs*#rJM > stream q /image Do Q endstream endobj 207 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4055 >> stream xQm B(Z:rـڠ|J?]L0}][wiqWT_~ק/zsB$w~jv׋7}3gWMr((hK\,ާ_rűfCkb'NgOgc8(/2)[lWgzON&t NLeO' d۬b2o!SI"&Մooag0'3<|iQEQEі_XOϿ>>rxׇϦ f^'g̝y; num9'μ)ثnʖϾ$0䛷Wn o͠LfF7E[o?';w蚝OskD>88É7WswO8Qv7gyGNΗkZ* 6l99ysv2'[oeh7[*lέ*na +n$в80T> N7uYy7մ9a((OO;ᳩ&Cs'iή?/ù[AuΉ3o */5 L2[d3(QMѧ{G[nιfܚ;-=+;p$#\NTM`Yqpч9%&Z󹖊? <%vzNu[sM3s+۫xxlXŠ'/ɹ*|6% !%My]xr=}MC%b7!owT]BmBȐ43Q:EQEQ"0Gק[sSMz3g7Pj𮫘dξ Wɣ齞CoI`&T< ,NQ.zl+ޡe^&Q&S2vnwDI֛+T;w݉?!J^& nч9goһ}"f<eLMOߋR>7Fλιo>kn`¦!Ē{R1Oo!|J6!dy[Qr֙{ B֨~Z((n]ӎ!JΛjrshG$Wt:P{!κ{gzl9oaP&POc7yշ0'a$u-}N&blǘ)ͳvf'zrf-}nч%%Uou'X-^#X ӻwf gM7e+vr}ҳ%VM9sjTC-2-lqVh{ B֨f}((uVDycozg@Ql4IN)38^HÞ[[k MG49I l]AS18wrlItKswDII՛y/w݉?!V3wtVsB%`SMpܶ=a$ln .)nSΜ$!DuK 9ozK#[ڞ5Y(("~Qyy:俩&1^49o5^O{?)(}v/u'S9Nc+s7շcPwF1x^&*u{8w808yb=@j`)6j[M#܉?!CoƦ`5gsM3sw6O4Py&Oߛ[T :<vx3TtZ'y-[nNs`d.((W[E%g@zx=I|I۽ԝdOL';TߎCylsp}śܩƧddKEgolKxJlo5r' 6՜97,ل>9@ɞV;={AJMEf3.؄ugm7źܽsEQEQ WOw ߟ% 9r.k8525omWw8ǐ9K1:=u|ԔN^gb/aSOm PI;76uxgUMȜש۩K/[vB wxWzXB۾yxzP+ϗ@UwyweΧ9S&nlOzTNn锡F&dtkSsQEQE?endstream endobj 208 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 209 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4152 >> stream xK-I CmVjnYL/HȿzVA~iM^z{,yH ]fظ36Vd]Ht#NO'եRsHV tl$ rԫ7^Ƥ 7TQ<IsV;t_rvrK8=7ٗ.ГU?ͽ?y T._kݎgW's[_YOcK>RGu !v#UNۜ9+y~mӓjZVՔRYC^^{4By\n ދř[nz5܁::%o^'aRK ꤠk椗ˣf|)ϊ z {ypw׻$ /i<.i٦.C廾qv-p&l9xZ5{T.9Too$@1N YVjZ%zogUӫ?­OȒDe퍍{8=*{^acuy3ٽT#]UNfvzenwż[d^\Jv~nuՐ^.K6ۧ$rP9ϣ7wseNGy+9|'TI?w4婐Ъ弋YUgOKOB:~ئ\%B܍|'J^)'lx2ȤR+yEoF?Ӛj,^jZV.kERLz;w#/)ӣxr#s{W!kFL;ڥLrZc3"hs< =f{:X]sUXX}3F=.{y}~6ea8}Դ yrqדsXJp/Lϝb98B+}S#lS~ć/u2[ԮNNS~*:Nd^ox/7gn9Kڽ+pkrʿjZVS7C ^v|5pXO ˍl];J ^ Y3%j2Ij!r3ψLʢq#T*4`q:wUcaiT <=qR*Iyd^OBna*:3u>wTZ UOMy|lS:9NN8œyA'Tߜ?,iSɭ*VjZVNߓWfu=)j~IVL]yS'?Éw&)<3ǁ7fx[dފcrEgJP|S zu8OisnױRNgT荴{*른.:BM^dY͓̜l+~! Jp/LMij4EUڅVԞBvNfU5VSB\:}ʬ''ӥܛt9]z==Z'. lWfjϡp*WY$$''9Yrj*ESڲ%ӓwWWo_-{rWM;{SɹYrkREHB]^v"ΕIfc9H͓L^ܘ U{:y=geE/m2')rU…V8.ŦN:Wyj,Z)Sq'N_q %L:ߜ=~:7[ TVjZVJx ս7ts~[@{zOX]xoRCTt/Գ(HHNNrTr;eK,f'7޾X[崯v:s֤vOzٛ2Eȝ+'=6ݓr''N{< 1u*{ʊ^dNNSSIN=!X{sZV1-0ӱendstream endobj 210 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 211 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4172 >> stream xKnV CѢi;@W#񦦎$*߯_?HtΩF)uh=3aUel #Fϡp&TaݦB ruy:bu")Л[ڜipn_-],ӟn9;q%tSWNzON\f!;<9Lד9P%LSL鬨MijEakigS!]'9wE)!^ZvAuӟs^޴SINș{C];X{sZVj5EӷJI{t| 493yJz=='ӔYU$0޿-,Yc ˩>g'-.6g9N9Y}h{řZX̞ޱq{*ϵ<7tDr[amOZS8\Kw#*~HGL5^e9JJ8'3mzu+>]'9wKTLk]</KۻNl *OsS8buS_"VjZVR靾OHﮞ^|493yJz=='ӔYU$0޿-,Yc ˩>g'-.6g9N9Y}h{řZX̞ޱq{*ϵ<7tDr[amOZS8\Kw#*~HGL5^e9JJ8'3mzu+>]'9wKTLk]</KۻNl *OsS8buS_"VjZVo$ Mt~ 骟*93.m wSם9.0̰f;X;;8k 8낐*Xrl^3yw*Oyvi8Uk%d;'Ω('uONpN0YS8\+^2S%L/ͧkI^EM'sIT{ǕyNS6s]'9?%/LR .ft31y&W!Vѵe[x_jZV)KtNW@Ǭxy&p&qN]wNNT~z3Ú Xbଥ. Bcqw7{,]ժ<ّGwWyd:y<99qdMs{Z~B*N#]YZUtlpCj:2VVQNz<*%9G,Nϖϼ*azi>9f99ϚC4 \g2+gTZ_d;g)po'g:MLfD*֯sJH)\ZEN7dV$ jZVUҾX$<) $|k$tZAG;C̟N Yr毒X3ljJ>pz̺PEuuw/7.fDrߠ_V|<*Όe9G,r5 czi>mwfKqO/gK|yX|lwSTN~ug2#g N146;R%8ק3O%apaSUX$QO$/ s6P''RYʼJ=iʶ_鬢`'SKxW%򔇊UKIU:9r=7u<^VjZ;^]q;SZCIF~ frz柰!>UX$QO$/ s6P''RYʼJ=iʶ_鬢`'SKxW%򔇊UKIU:9r=7u<^VjZw|f1㞧w̬lo 5˿^̿A]~gG}.3u玍K+2:O-!{NjZVK]ohoğzC|ܸoYVe[z27u۵_[{z&TOSg} %ˬu=ȹ`qb3Psx]۝7g[ez*X"$7{U)RK)܇ŦSw$ERL'*az,UOEdϩwNr.:96}[.XVqHsv&έM RlD^ΥRTf|Pw)'ҩ"H[mZVj Ms9Yo~~OW-*l딶S^fӺΜX{b~O | O@quNg_9w,Nl*y.SqprLO5|W;VY$fB;E*r>t]z*dH]$TS%LJWY> 9uNI%Q'Gܦw˳=i΄߹uywvA(˹T*ݬtN>D:UdqVjZpc?|7`t͐Twȳ󔍧Md6 DៜO.gf&O7qN| g>+۽pu=e/uZŎR3x"OKݭB dZ*dHzIKf&q|LOx2e }q'$W> stream q /image Do Q endstream endobj 213 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2465 >> stream xK\IDEtӪAN4*iF#'?3J?} ofWNVm%󖍧%we[&gs7z8'ߧ/bOrf6$g}8g'gZ[rֱ#w_y٧8z~NU;'tT%oϵdd=UTuޞTe 9}N3#93[gz=m}!f{I96m~B_ʿׯos7*a;JE%IfϬ7Z oh7SwN'ZfnَN<'2ٴ3S%wM⨟[=KynMcS9?nəy {M97 =T% Slq$w^m)C慟ש?+ 9}N3#O+}3̜^}t_HrrʟtS9+9LmW5TRUj8]dvq_97ٷeSMO&ܲUy'YOKei3grK=ٛQ?J z^ߗϳ0Ǧsq"~S7ܓ3Nrs2oz&J2u'Y%<šs.}S>2UIoSS%LOU= ?SV4rdgrGW2f͙96辐zlo?2rV2'gsڸIkϩ7Jq|ϻ̩4gNsv* ohIooYmw~og=k/2OHUگ{ڷ]R%w߆jZ]̰TS]]{=s=ܓf{۾T9Uvoi+Qes?ggi}S?˝P5wLeS%LO[-g38ྡྷNoկT{%gr6zyޯ~Oo3/?*yf*;U>o~FR$qLR63 {驩4aklo& --}m&pwZ7}6޳z.T:}[*Urm&u {zJ5ŌUwx3=mKS5a6I{^ߝ2U6w+nV O̯}w;u UspWHld^f=U}vz9s迁 +k_Je_Wz&JkcTHV?2sgrs_l$-UO$U؈j#=k˧~{'JYJ{.RާszN}+[lU:f*ӑ<9[SUj9ݓrrZe%g~~mBGKH*EU'z~̶RlvIo%lf&To Ҫ|[?vun[n ~-_Lc%gÏ-׵g&-~{'؏ 'D1&f\fr?m'oFZ$SȬ[H] x&*3.cldv-aBZoǮm˭vbaO[}ei캺l喰v Ŗ}o?> stream q /image Do Q endstream endobj 215 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 341 >> stream x D"4) >2Λ,YFv[znp0Ve`,u!@}X{g` A]P]!@evXԅad G]P59uXfC]'Siԅ tendstream endobj 216 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 217 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 218 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 219 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 220 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 221 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 222 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 223 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 224 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 225 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 226 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 227 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 228 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 229 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 230 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 231 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 232 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 233 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 234 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 235 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 879 >> stream xA@ C$o`)f_f=n݀6~{zhwurb]{u!{ 8yK{v汦HFK202Jmz"m,y9_3{SE&:yEgyn'|Ίqʅ-cM=+adVa3~_jilef]kzԝٛX-t'.2y;5.8/>s; T$;sJ4_r߭{05tGihd S]}8H;5ve=9Qeoj\f|;rϓLS"^b?Pu)`[~ɑ<ִ'U*LuJ6z"\glGݖqA4=O&?3uNd{͋l;C@3D9yKuO\ӞHw\%UhpJY=VI GݐqArow'ԸH?/6Qu)`wηp)nSy:״'%Wc~d\}8tFOv9eҽ9Q7doj\l۝fw亩595.ϋg.{T$;sJ4ؗ-g$_i[ӞHw_W*4썆JV=r9V[sM .> stream q /image Do Q endstream endobj 237 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2460 >> stream xK$ DEHw* j$< pFs=a__SQ|q/ 6=n68?vcO}TxM|owպgKj'_ ΜgFOC_@3{{tO7F0 +2mΞJ;38mm귻j]SNNVyg3ya [!op܎/[ řt==fo 6gOSu66_{._Rtz)G'W3E홼0S8n7-:m3S?LamRa"O(~{?[No?dW;j]p=7ux|_O_޳m{*6'܀)lmT?L|V S5v|owպgKj'_ ΜgF7/Ci8dK{tO7F0 2ǝ(®8Ly2$yol5- M q _޳m{*6'܀)l8@Iv՝U`ϓ'$~cCp toQ܎oZ m3S?La qJS!r;?'O7IƆ^ A+ߢߴ@ 2%=fo ~C"js?wVG)>Of$o :!)n, ~Cx϶Fp_jmΪ0 t!Ww:Ŀ0"_o6=n6`@ 4WPYu<}N76x_@__l}9Ϯ59Sܿ&Mf'җSyu}ZMܪλeRvoIZ_,*92s*N/>Uwyv﷯W-Sή۝/U٪οeWzg34=Lgv nO]g-?WJĹʜ{>O5C=\%rLNsԚݙ5|cA? Md("?gQmKg+ㄾ|= :}uqNu><۾ﭫ|cγWdqf8=|M9_5~eU0W&gwMZ}Lkʄ}[Tѧ֝߳f_^=ݖnOܙvJGj3)}ں48;ϑ0Μ_1;-=Q쾖{[kt0ӿLvٙsf;}uMv>+kPo$I4;=L{}j}(:;Uf+ u9Oʧ>ds?3}g+L3AI9|M۶ZgoF7@d_;|M&̧}U|&ٝDV߇i>Z2aU"*jugmyOjD:w楝сLJ{.,s;L3giWNrKO9d=Z|z8{~*=4g|v||t_jݵګ8I}-͎u4?3u}+vʺN@يng維J8>xw3 Fgzss|f[||je"I{ms"s~\nT[{,fgLrѷ'dɖfN*Ӻu{}'9랝ݽs|e{8gWלWLy;ɦ]ӡ7zНyUwtohvL3Ӿ^ifGZ)k;; g:֗:Wl7g>;#awUuYhjW<j+endstream endobj 238 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 239 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4288 >> stream xKkGCLQBQ?zȑL*]GأdRFTJ⓳#ҨrfҁVI&_kBLnFqgWbvGN-ס' ֳSgNڴdXnݞ:=ON[f'zpW<ʹ}R'pevəF@~Ԅ{̜Z\W<Tg:9o9왮簽)rzKLǬ.sG9s)m#g TOoL݅gv'gNt:m=8k"7RɄSmM?5#?s[/KlIǹ-vv:ɕdu(ڢv96$Uf8 6<57f)!X_Iޅg:u&yYJ<"3m'g.2mYٝGy$jNt L>>BsYʟ4p- Fvgaeÿ}xs^2t]8.B'E[8'†,gmB& n )&r;+Nr<Kyfp%K%'a7;ݬ=%$Ca+ۺ/Kiܘ3Cdƴ̥PfV~ڞP=5k99/w^t:N\߀PW)^yST:]pON'l5S''g}V jSq;}sʟVٙKiz ًKky6\:Lf5bF$k{S:ggB,Y7s|uӽ׋SXQyn-mv}%LiŭGȕ.O:UN=BY>dQ)&nJ^ܪW_t:N qߡ[9=vdMzrRL߳ynK\,e{~+SA<8Z3P#Ord ӓUg¤~+ZDoKgN6_yT} ,΄$=`g^q-37N✯zYZ+j:*ol\dF+uKG|qW>:miUTw$u[P_.SfV[^ɺVUz&Ng.BmŭGxEww:NB9*_y5)BɁKsNh3=vv乻-yrRNyԯLmqVx6Dh\B<ȑ>+pOOV }*nxvxhq/ 9N؈ًR%8pzyT:sjs=dyhկp꨸SrIb'.Uű^IpeWeRzmA}[OYmz5'Z=Wٛ:u<݅t:N\)f)oi oCXq`z`p=J3)Z9ΧFsl;(9'mG[mv *'Cw,΄I>-im[ NCvek~Yoyw+IG>op6ֽ)UfiLqsQ异$l\dF+qΡʿN֤miĥ3!I݌OZC2rƩ뉸$J…V{>t:%+7Y6=' o93q8BEjy;ky|zo4ˆʿb;|vEfw|2t'LSqKr>і{I=iWvlw⹚}in#iݛR%a֟Й:gU+O–{%Af侢dMI іV|pN\<͈5$3-WkyznH2{[9Y$\hŹs:NSߤ-5aSЪyfL˰2>+svO'KN^>9PLojT$FlD͙ KzgweC)zlK}0i's =Ib0:ڵ_[=+/%s/qn}0$4 T6angw@hϹ:W6͙QϦΓKۓ:UO3qIk/W+svO'KN^>9PLojT$FlD͙ KzgweC)zlK}0i's =Ib0:ڵ_[=+/%s/qn}0$4 T6angw@hϹ:W6͙QϦΓKۓ:UO3qIk/WX/n̹>+,Sk> stream q /image Do Q endstream endobj 241 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4461 >> stream xAH Og}i PbEZR\WIfmK*u6f{=$ʶ{jzϺҼM]?ٛ :[o͜VǑߐ]$gTlToWU_˙s}.*swo]K0y_gbK2wKH&d]8.7sRMg 8wB~~E36]j.7%:r)mLW{\kGi I!Ռ?^*ZښW_DNz ݕh4rK:ڧB[vݍ[TyQ=WOB{&s=6gc"͔d.?IZ~fힿ %RqϕVMٌ?g]te^U}-gΖ^gv]o3222Q{3u oINv*-}f{%ߠS҄CFҒKKxn4w {8wTy}j_|/obɬW}] wYr2KEZ[ꖋ2n|wFh4r㻿vLfTutU歉|nvOY؄ȡv3% =OVٴvqTFs}Gu6#O.ly*oWU_˙e٣ꫝtW[파̼uT&rL]q[Jz_Ǥl^7Ԧ4!cGd36]j.>Nߝ{+w^y' ۳Bw2{_WfB2y̬R:d">)'L[8ߝh4r|yQv$9fRzw62<=6[ΐ~n$'ڂ FC]I-:'3( U}-'k+5UO׌Zo322󒴪$N{Yg9|Bd9'-TgYGB>əѳ%3g˝Fݬ'Ҳ%乗ӽ{B\+t9mCY ; $r(ӫ.Φ$'u-%is8ߚh4r9gQ_v$9fRzw62<=6[ΐ~n$'ڂ FC]I-:'3( U}-'k+5UO׌Zo322󒴪$N{Yg9|Bd9'-TgYGB>əѳ%3g˝Fݬ'Ҳ%乗ӽ{B\+t9mCY ; $r(ӫ.Φ$'u-%is8ߚh4rgQ_v=mu]}l.cvo23l9CYW OB¼4v!UݢywQqCd?]S3 Trܝ*ѧ aނYm5G*x nBޛ.|f|N2gEO ubC&3:i;Eg3$.f̹;U>}9O.wi߽w.jTvT7]eL+3;2*yδ$Ux=!d2L{Ҩ\Z„)ͫz a}]3MIŝOn-IFhTߐoM[ ^qƸ%m׽T&BgHºn-ۻ*'}]vkj$019댾Ur˩wұN̛ٯk򷳫[cϩ%d=лkf>30 VTrN{% YONcEiӝMI$g'9iӜ%to<9KߵΩu,⾫N7ٷdOʧeTqu]{.^9?-ɩMCŶb*{BFh4R~*rV;Bd\ekr1rGu/+ɷY/[8t9).lInݚ9ɼe#oL::sܴ'rj]t2fr|+Ƈsj y{<{ٯL9y{1l^7HrVXQtgN&EtosRÙUNjjss]T$N ÙV+ɷOrw}S;Rcywi9UU1I^ZBf޴2 :zsrOfH-ahoy5ʙcES.0aR-{^U|B\uWW^ߒ>)!t'SŹ4/ŭWzhSkk{Ql9e*Tp*3{h4V~r-Nco|Է$K>N&EtosRÙUNjjss]T$N ÙV+ɷOrw}S;Rcywi9UU1I^ZBf޴2 :zsrOfH-ahoy5ʙcES.0aR-{^U|B\uWW^ߒ>)!t'SŹ4/ŭWzhSkk{Ql9e*Tp*3{h4UVgpn~oޅ.3Wߔ[~rH玕:8UJ6!w]s $\aȟ7M%[Vg8қIF2iYNs+yoY_/ +v3o_nٯ9y9N֯I:1~钕3c‘U-۩OesϫOȓk] e.7]wTU-It+|4k + *Ϧy;M%$3u Lq4FWendstream endobj 242 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 243 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4431 >> stream xAc CTӟAv(Dx@Pu??_ ~ >ON)pls~GN;Kpۄx5}䨜 l*9I^y*q-7w´FD92OKݔ_r>K}V>ai+WW2'wy%߇g)g~dd8S$+ij*|B?V=uiZϋ:U9nKW.$mW k ;}BUޥzr:E$ɼ:Ÿ{tڌjZ*VaNK7~C@W̶uY69~YqzҜ4{luC]W]38oix|r^[z3tmWIppk9[vV,'ߋjVm{褯0^W;k\os&tUe'2gNT9S> -O''TnA5y !T]f&9\6]yThڊȫ%\jJsT:jZh%|* _լ_)|^m_E2Nmf8mgšOHwJsz^&< u%_ueJ߿༽y5o;ҵ^i$LnZUw/Y aԻ{_;swzk͙EVzvɜ9mRL$|N>PeD"լ>E$\Puɛ^s-\2wR͢i+NN"ֳpu)}=SSVjE$sv뜞ܔ~%U$v݇&rvHʹSfQ?VՔOrɡTܜM$(Uů:ctN-'}K 0wy/W3{?9l\RU]pr>KHsz^v MW=t}WT۟O'䔐㓜TK%^rf[H:ACg/&%B2wCUIT=nyn;'*N:jZh|$ :')7{ }l;] s:8rnwTOdA5eS}Frh>7gS) JC{Nߘ']_IR9<yދOTur&ҜBp9?]{zS 9%d$'RqI,9zkNppzC8kɹ]PUf|8U=]R/0KXceO>ԵGN Un&RIKѲiw,U'r3gJ n#mW9]uEh=;n wp/ TqyVjQڷ*z_bfOקTw=T+WDkv/l^­5+ U#})*?y~KΩsݍP2,IOvʍ!ۛt|wqݴy9ifwBTyUOї_z+"8U+$SVOovN+fο̉Q;p**vJp~FnE>ux"+-)V+w#~ӳ $ߝlw7m^NZ{C.sPU^_SޤNU eiy~'US[v|w~ӊC8sz{&8Ju[ѯO5~feJsJՊꈤ O7CsnZV+B_>/?UFnS8;iMT/ޏBxI5T/wi+(yoqN9C.Fm|r:JhߋGS)p$\vJ~[;JHbxH2!*S/وtf.**%[\uº;Qmf9 ZS;} ;8tsgND;h%UiM&0oגpu]uܜmoF'%F$lV~):'jZV~%l_zN}vF V!}yy۷8뜿!nZR#6T>wS^IOS%ţ]8}N;%?u%$uv1dV:93'AnzV|䒪4զg}z7kI:Ԯ:n67Yg{#f6H+?avHhaZV+emן޼6y9wSrr7w7]Gɻ弣M&Uw3/ݳ=foTG 85"[~ iԹLBH=u&'-Swm*3]#J,̌h^j'˙|oɩ{1ݩT.osgZ ]UJOHl0g 0u- 7pJߕGH&6iN\Ҝ!)w}g#}yY;d_eKHz=J"=Sa&=MuϛЋSS)[O;˙БV9I$$SgRq79uo2s5lM̨ݍ쵨vZӝOJ]6;qm:U_NN sSגpT]yTdrj4%#g^99ߺVj5/ןϱO2l)gOMɵT欸enrپS!{кM~w]7:ԕ)I=)4~z#:Re[P]K_4a&󯑠yZ0Eﶟ4ٛIG}r{x=)35\}Ɗs?NSsgZ ċT9f?W&= ) MtpwliRhB{$ՒxDocsruZVէ^9}zShN ".H6;.4W4%n3/0EdZډt.6Һ ܈g?}i7v;y\ -kIqbjK}*?a'9l\m:b\˝;$xh~T8M2K[w*ϩMʨWO"+*͓]E2T 1HGS$/qa 6TJhSŦ~G3%ᶉ]%wk %$JE]GIߺjZI_=endstream endobj 244 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 245 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1246 >> stream xA0 Co.f4HX%Yde1w{~8?_>ݕ_zvDumغ+0.'U+?+uηYE6>_aUs*׵WΫi{!yGԳcH5|/rnΟ~.FrfJQuP[]Gvkfƙ\Îx_>v;dmܧvxVXW+Y]j~{U$k3+vdՕ}o#+wU̹Wmf$fUlWUUzV =^N:⹶k#ȱjUU_GQcG:vaI?ޗVs&ǹ*n'Qw}WOȮ*„h%03%wȵhFlݙI?ޗVs&ǹ*n'Qw}WOȮ*„h%03%wȵhFlݙtev^*vB9*Ìd:2;t/1a> stream q /image Do Q endstream endobj 247 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 380 >> stream xA @DC$7Յ,$kz(b8}~Gxf_ ?80LV #ĒGaD% B[3h8H!sXHcKC;={ q)TqJvҁUЏøtK8%BLnƪ׹1H[\BiGm3 Gendstream endobj 248 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 249 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 250 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 251 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1050 >> stream x٭9 3OG:6E|~b϶OaH8ֆ{+FE.qTfv5QyԴKD>tncl{4O։npomȿjT.'LeJoWs_5KMIJ3l:/ctKHD' 3npomȿ 7SdKTfzvآWWM9ѥ]$Jyu9zvؓsڳwR>:0Ngڐon"ou|8Q SʱEHrKMIsd'[ȰgTX!f? ;s{kC{7S.q.Aەcu_.5\v(U >cOa϶WITX!f? ;s{kC{7S.q.Aەcu_.5\v(U N6m8al{?ݓOu@3@ֆ{+=yKĹFroW-_l]j%NdW=M!bl{Nا:U N izkC܋͞%]nLU+ǖwm.5'Q+P&cKWLmWIT綸 ?9;D1Momȿ޽[]2%=L6jT{rlyzgfR.q%rl2xyŝOun=3@ֆ݋͞%]nLU+ǖwm.5'Q+PAl;)cN;\6]^lT.&wfʽ]9<3oui8}^9?ڜy_endstream endobj 252 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 253 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2905 >> stream xAd7 C i["E^$Ex /矿ߟi5=fŻ'uÛ n,7Ff9%St765n'kQw}gn攝P^H F׷'ݓ[: )uiϱdm:ݜStB9Q  n(@7~ŊwO&7oX7@&|֥f?ǒ騻3wsNO ]lqOEm[=wғdmur3+x3yJsJ٢4|HxTi0?-S.NI/Y[߱N/${IֶǞN'9}/or"g5J33LU_r9O-Ө}{gu>Sgo>skPPQ9iiwٟON]NPoguڞdũZ!fuvTNBzjs<>uWwus=kSۛ[Nx[W: B./u N:=mgW]$xdy>Y0N%9j]'>?a)ѱMlD.=u{ 4n -z%v0i0@]?4蝠lW뤵='ɊSBT*T":C 'ty|3x!甄viVgRIBgW. '軒.m{ԳNiV+:=qܯO$''?|z=\A7-+흐ͯ(uԓs:j]^:*tzϮH*%4j}ZaڝJ:s.u)O{}~„Sfc]ݛو]zi[Tqn2GwJtO:=L%>QSV&]li$DU^]9MoﴷY]MNPÊ;O=77=SL.?+z=ܴg^|?WwJB :([ Oiڬ զRשf^i(?QG/OVfvqnaeZlJ<:ʝέW0J{YQ?3iN]9Uy|Rr=S{rt`*I]w2A:f읯N#A'r"i~{]Ϻ|orVyҘ퉿 )^gjw9Yj*{軪̪.fsVۂ"NOts:ã)=\?SNYGLjfNfͯ(TȬ6GN6ROC:z}y4Ks + gPѩV5un=̄ SˊNt\ϡo+ȣ99فZY-+NuTyJ ߡʩLĺfWߛГݩ3QL> m ǩf3AC&S:u)')<[YYwnKY(TOH?mijuSl$G[-({})HH*wδ-x֖}*|u 've<%sx<&woj$ )<Uز┩L]?Iu䐩:tNKmfz~K{/i =aݝ:۫Жཎ_yZ>M`:4THn:SPib~Bz< rnγmﺕu6~.[BӦv_w=պFrKނbOwgߗ$xwLۂGom ާrWXWbWj_ S2؋cB{:љvoNBpΗRMm6o@]-﹨O8+ۧ{2USNՉ$Ga;MIԙ޳~|$Ǘ>@ z6u2Tsm{׭;EStҥM%߫NP+=ki ow{ t'W/9I>I a\%AgEmGYI$LH9^N;7_Sy͙7Zendstream endobj 254 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 255 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4235 >> stream xKqN~ Mse,0QZw$Nt;skq|wcTwlTSfPfRup=!d':[Nno$Od;O@Kxڥ;Mﭧ\zC}bKyD鶔Kr4}sQ;W+Ե*٢O짞BdUGQ%nK3:yz?CQ+6bVuzO{*:۟,^g.I|t]UQ7UŹS?uegUܼ)ئO| q79s" 6qzVjZ~pҾ?s8uf8}n*;KԺ~*:dLD^SN2'[dgf3--Wo>R.ɩzVNUN\]Fu<-wUX>zp/gF,ZDۮ̻ n~z[!=CJ˓HtSoh{}XT'E:u՟W-FMLVn{|N*YV!:sz`>)*_iswỎ(}[Vj5uaU䈳ԙKS7]$̝%E;gn?>Hv?Stlug܉gsvm rJZO7Kw4N=fߕr'EWάҲ|tTqM^ɕO-mg]eųoMnSt/s<>;9esNS:Sgr)f)sM靼ͯ8(5ŝz*6Yg:wuU\pPWmVT˝IեٽjZVSq@z߸n#~Sg.aBvgOtUz0wyt Oұ՝Ds'rٵ-,SNӟ˙+i=,ݥ 2:욑B N"WSg[7O$˝];z{GxJ]SY7zO'W*O?Yzu7MEvӽ=tRH9MNʥ{u6w67 w@.g=$;WsQ;?A]kYQ.w"Sp&UOğW:gVjZNVs8:w:;|ꦫ R(]TODM6*Pl|gTu?!'3]Wһ]iߦL3zO=Yoc.%lŸKxV%dq:izFoBg58UyyxXUҺmg]%NpSjNo^ջinJ KCGs؞}S ;oOͥHӲ|,%ta2p:w9ulxpm*sJ} ')rn'qjZV%r=KTGᦫ RHΞYUteRTU{wqeϢL71iO3ǜw:;O\ܼw^E7-ʟQ!kpZrz$p9kKϙBV}*X[Ӈ;6lNYuu'N\*DԻO= ή=s⚲^nt8iߵԜ>nι#8A]mw흒CEIZVjM/)_L'w(tUyA =3 P׽L*5^ νlYT&&M)x易Y牋NfE3!dNRNoqNu?gmz9sWêֽOo{xp毢`C^ž=Op$ՉK噈z ٵ'~N\S B5g:򻖚!9wg8.ްS2zhճH t IWjZƙg}{JMWPoIoz:wʤw"ljU*>{,tn$͔{74+*SspS; WO V-J%z>NWلi=r8*ĿwouNvSt94T93E~\ܤ98N\6 jJvFG{˽lx-aN Y> ; uj;A{x !Fpfʶ8}jZV- g-^+a> 7]w^By{')¦߉W<왞ố4SU<Ӭ8xNϙM|'$\?XUr(aJmz8O^f"īx޽uC8e۹O9?tROSsqpS8qy>$p*]U-<;Y'd$L3xU򷗫)*)VjZrXO#λ*~;/H޼ɓb !dΤ(3i,$x޴%0<ZOi9J:u'3g4mT;)MgcqigIjwV'hJإ4ZDoaXl]TJ:+N?ɥ2|;bUy'N;MwG Ce"]#.*VE'g{6A]2Ӵ}F0uRy NLdZVS9B,L]5?;PQ骼͛<)JFL*2&BMM^͓$흦ZnSw2sFsHŹ2)tp6vԻ&}pk%\}!V]JE`9x8*?.EIc˿Sɜ\)3'S~.VgpS8tw@;T&ҵ?:[bUtr&졚-mgsU*3MgD lZ=Q'E8dDVjZ>ZuW*j~]Wwp9թYUt3ROaOr^ϝHg]2+y"ϻwғwjR76{FWɜթsԩ{{xZK='RfïxUxOJإ4ZD>*=UpIg93BktL ˕eM[$tYa']lcԩUM1'ֹWiF9uNf^s.:sOkd=۬3x2*UxO򐰪z}UzxR̺z:{ɝzJz7M-.3f{V)Z Wݮw$8(zˢJswQhntwSNpH/'m"'$b֚2jZVendstream endobj 256 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 257 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4190 >> stream xKHCэN5)u([iH.rÃ;t=mTuS UrfUJqV$sː9NM> \Mk[7Sd8]:;sxZK'dufӣ]BϤ. J~7SSŬ{wWO/yB_BoRcw՚^+ٛ $A1[UsſEOϦGuCnG~9i{Ӌ;i֔VjZ=?mTuS UrfUJqV$ xrY%S9 ry<|9lJr*xex1ON滷ޱM]#Wz:YGKףοٙZ꽰8Y(6T*huf% J~7*z\7'_!8 *-%M-8]M8{]a?wx*>9TEŢurgSݣ:YkSN9 Z\NfoᜒCFVjZ| |SMu3pW˩U+jYܯԏ륚SrzTJ%gmʸ[`=8{#:*^5wRzWY'L@ViafJY򐰪zWν׻ftM/yB_BfR]M8{]a?wxn:QEŢug\:_wkj9Z,N6oᜒCFVjZ| |SMu3pW˩U+jYܯԏ륚SrzTJ%gmʸ[`=8{#:*^5wRzWY'L@ViafJY򐰪zWν׻ftM/yB_BfR]M8{]a?wxn:QEŢug\:_wkj9Z,N6oᜒCFVjZ| |SMu3pW˩U+jY/N^q@ TބgKrݟ;=uGtڻMܺwkn#: u}i-^Xw乻"ygURɓzO*a8])58{3?OW_9w]iE'~ir+BSK.k;7p:3dFVjZCWJ@u]w WKtퟛN tW9L/9c,6OwmLg[ :Z])B*N?UsBԳE:gUR<U%Sɿ,ǫT0ewNgW='ISKSSZSRߔkNf{Ùӊ/u㴢? ?[rO 9U돂 !ϩ{~A8VO2g#jZVO| yq%dov +xE+OƥJfȉzV9aMѩ'i-O|p%"t}yzW蛿sw|Ax-S2*~'YU3d%O+WRN 9'牳^1+')ͳS3Y}1aM8+)m~2LNKYEmUtrd[;"3! NOR{/_ә^$s6ZVjTηG].7V<"w'bbR%lYRD=ԓSg>J}Z<w +_N ?Ex)[~UdάSgaŕ?TMyza)Ι@uܾ0k&k ԕ6?uU&V'ެ_6*:9scΙS''TҽLz9YVjz*[#m ̀ 7?]]+ ~Y7Svw]TswPN7i-/FNwN)grpGuTo5)B8SOcJV> 9=L LV~ڝ* sU%W-mߔ4T;eq&qŪNNnO69\%\ruUtr&V{Gs 9=L LV~ڝ* sU%W-mߔ4T;eq&qŪNNnO69\%\ruUtr&V{Gs*or|q Zjdzƪ@Ȫ6eӅ߳Mgfrx;BN=Sz]Vjw@|'|glZ Wr槫k\o8'WZuIl?njN^ Yb!,_eBqJri*a :YIӉKS*Nwsfq:}tuuWɟjZ?}endstream endobj 258 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 259 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4310 >> stream xQ$ɍ53FN"i@J5qϩo%prδ,[ _rgjIB+K󖗊~+_۝*/MVՕJ5EQlzv\ӫZWzOn4gJ%RWv_y%!Bz4S%94N^oJϥ?]ϝӇS7W'sz˖ӻ3\ңWɍ}鴴CjZVU]_+9:[B n)r'^|+ Tu*j֟ wrz]+mJ']ퟜ;gw˹_Qn4'8sTlޮ9w U|BB zU:+n޺:-*aOSw$$׮0+:O†96۩RzW9Oi;}8y{ +nS7TΖٓ./!}_gSכu$W_W2vP]IVjZE8iߴo^*uu펖W {rjډQO]S{UsSNH^rzT]V|:]g;UgG8봜Qݱy'Z,#nپSS< BY+k;g+=ts̺'}WFťm'+Ku-|Φ0w"z:2g[hols;ҕΩ?mR/vC{Vj~N9:iߴo^*uu펖W {rjډQO]S{UsSNH^rzT]V|:]g;UgG8봜Qݱy'Z,#nپSS< BY+k;g+=ts̺'}WFťm'+Ku-|Φ0w"z:2g[hols;ҕΩ?mR/vC{Vj&rS^inΓKUq]]qPng'ީn3}7+΄foS^b'{;oLK]ZwrbJs󮮚-985&ǚ];Opr>wuysn"YO~t.:'vz:LXgɪ ::m2OK(T]կ4B^N]>uλ"8:R%q.!nޅ^չt'8ݨS]E=CIrteU^H'b[VjUy'妼9.'㺺+OS hgoPW uEN\vޘ|"466]]5[r_qkuM5Yv͟hG|8>=ݒEسXן<$]nuNBStԙFٓUOtue2+oGQ*_!gi W|=>wywEp*uNץJ^7)]Cr V !]ps9"{OpQϧ9z.y˪~/Nb-!qiŶZV"~'(j^妼9^_ހnog'^|vɜKɤ"I.2Muin۠Sg]MM9KjZS'p9S~aE\z^N:ϞzsHӯFv;tJ˜Щ~׭s'u9EX6r׍T]/3:or^%pȓ}zHˤ"B3ƻxy7IϩjZV;~)pδ7=juu9řIW'y2+oG(F2u̽nS]pe#1[6T9YWSSqy:'@%'\N/)!_Xγ'.kQ%8(92't_uɻwqN9%u#8Uf׳̼齜o zG8$u2%P̼jz'vMsmaZVNHVR9on`>lj}zW^{]8~L*/2t):圦I3ܢdL,۠Sg]S}u.甊sֹ׶9 o@'Ndw".7/g Ҟz_y>+P%8(WzrEȵÜNWn}osz/rg ջ. ڞF8̺?!}'!L*sf^zGK(-CR/'jZV/N\]ys |\;t+4+< }{E\n^ʥ=Ytҹ}Vn2sˡJpP+dSk9*xݼ+]^zw׍Ti]N-w]=$pzuM*C./OBnT^%_̼ QZĥ^NjZV_RoB)}5Ls̿Wd.hznwr3|oO~M{4*SENH#>u7N_ٛ@Z咧Wugbu^)$'79$AE4aE(NeK{Ӿ2Lfz+܈zk9*pή߽$29g| R2NyN rw =r蕞gϽ.gG=z3\S^΄(:gO NK(o埓gOV=]x_Q:ғ^G/_-M~ifWsu΄F8gQO_;[vK+uC;\QQӻ?ݝ$}A=:ϞTuBR}-=-VjzW~y~&&;{KۅNn<&|AtZbuiTCgwJvOس~*sa* +n6{咧Wj]{SWt'3a' ӸB$=_[ٓUOWo3+ы{{A7kKӥ_+a67s3Ιj)W2wqs9=WTEO}wfr?I_}kPτγ5=UT_KO jZVjfjY}[/'O&mUɬrH[ɴlJsVv+B+ZPh 1ASIȬImJѻKھV^w/'\qJn?ͫ߹-O6տJ>pzwQ6jZV?ݥendstream endobj 260 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 261 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 550 >> stream x[jP Et;M 5n,G >gz/!&dFUN$J;x%G_=R:xWP#?9۷߉'91=>Nr 7ӛ=/dGHO}v:KG8S]7|Yzގr8[c[PP<:k ULL*T9&,,ȤBAӅ, UֳiNu@}dRBI*[ˬL*T1]>p2PPk$zUtIZ xL*T`wnp2PPt!tI x@& :.IO8T(co9g8endstream endobj 262 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 263 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 292 >> stream xۻ !4np 1z uw%x|\' w(ɕ8PpB(e. endstream endobj 264 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 265 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 266 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 267 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 983 >> stream xفmH  qgz `&%r `ο W 2.wWN?PE8$Co1{9R%mɩ;fjgv`g&i;twb |S"EA!rJT r3;3d|RƓL&pWputU3H2"W΍S)UҶJcAvہu$~ۗg$}>/&9\:@) 9scTJ&Rt]v`g&;l3I&;l3I&ə;lsWTJ}&Rt]v]-$:L~/y*ޢfdթNB) &:R39p,\Rl!a{S}>/0'NvHgdH0O9R%mɩ;fj8mf 3ߋg TU0`S`߼ȹs*M4*]$/endstream endobj 268 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 269 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3239 >> stream xA$7 ac$ qG & ,׬1Uj8Yo1Omc1ƘdG~;ߙT7c1_O=&~6LLc1Fi>6^57cv᧶1cv"ot1ηw&5UMcS(pߥ 7cQy?i>6^57cv᧶1cv"ot1ηw&5UMcS(pߥ 7cQy?i>6^57cv᧶1c^Nc |?gRSa1| ?]0q31'lc1oUzc1f~jc101Ɛw&5UcS(pߥ 7cQyv>9>¤'drӥA[-Ne/|tnjg]Jw-9fL~<;oe6a.Zz&nѝko9*'Sh-R@hζ-Bi6m[i>df1ݢ4͝nRZv:B"f(Z1;:ZۼϟSOIoKqyCNkoc sC0!LZ{B&7]R[7M햬xQߥtnΔwγ~[f!o MPlSٮrr;5="fl;"7lf߻eNȜCs{,{ km'gv#:;<9A]:oXOfO-jNy&%a>)t-b&9yϺ*?EJoѺ7ti1p=m#ly[q2ϟϭ6 Ζ󜝚vgNawE<h*1Bmn.[|-ɜMNikQEN3U?ݕ7l=#gr3ϟlZ3;=k k':gy [g p2$|6>yS 3ɩlǰ֭0rJ)Œj+]kt tYպInefRZ*|=-MJ홡 oHS뜷ZuINeAUT?QlouIh1Ƽi;Sd?![m-+9;5/G꽝–~yA7TbS(\j[r9:Pעf̫fI) +o٦{F$vg?"fvzNTu-+VN3dHl}jmgSHa[a4gzSVV鈧A Eujg̤$=T{ZTd3CUؑڧ9o7?ʛ뒜$:)J)Zcy[G[G ' UYڹ_ݘoڹgrGyƴ#f[J΍1[OnJ rgGY2+ +o]BNԚ>L]tsO%FsSvv"lX)r&ZϧZm#nU8 L7{nCgUs)fޙzU)ҝف%4t)OI5;M7WZb47u+lgKh.29f+"g[n:|U6Vό3PtnyZO@MlUU(2$h#o-3ߓafU'ݲ ~s7Bv3e{m@"gt YeKvY ?d]INK@vz4 ó|ToISۓПZ-YmBmxƜ;C'!S+BȆS}M̎9nwY̫I) +o8ձ;c| {|F9QdHF2 L.[>g'?)ޫ Oel7$ovgXTⳫ♁)OEΜڳʖѳ~fn<|i&y8s83c&$}_٧ޅj'UғOƓeSMmCBLdų]Orb8;{-h0~{*O݌=Y=gg̜ww,Sլl>R>;0Oޤjٓ~sve?C~vuՆy[6IɆq7SϮNozHȐoHtS욚%OgzҸJ#㳞4٭c1!$U?s'o{=x`j޻mHOɖx֢vK`cS!TVSn[ ggoP婛'+쌙nj'svZJgɛT6{O]uή|Lg0o7T׆>)0`j#m񼃿YO]  sʳ]S=켗COwSio|Ԗf85c1;>IuN[D=o8yfxZן*2;Sҙl3:f8xړGCі&άU+޲#3k@OVj3t'FMtUgVdpÖf*dnӓD|gпwn| uUYRԙ YOFsf8Ֆ٩'6rzZk獟VTzS˘> stream q /image Do Q endstream endobj 271 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4222 >> stream xM 1M#ͦUIjYy__#2TuuM[52k]~Xbͼ|gf~} i=xu{N'EZIyr$zˎ+: ]T{n"=8Y)qNy*g9M;3ƩvpNS7ݸTΞR= ĥ'י{uC{y_73K3E=N<~uߝzuguͪOHfgt:N x?|z{|2rw`zI:S<,gN;iwv|˺gyW);v_vP8VO.iNN]p{l~zGW=βՓK'u\%Fd7"v2BΜTyI;R\GG矐-WW{Gv'3g:98}tInI)t:NoX7x܎X!{řIS~Մ[8=sIpV~٩su6Z鶬Ώz;=*DvOM})Sl~Nɢ2P4a`9f3W7Ϥr&3ז+F3l,BOϹse횡n |NO9Whj/o/ۊls&tWK sfM|K̹>]x+8[[%![&+YiQ>g>a'V,y*s/t:}YO߰7S BȭRW=Uu~gUBՄ[8=sIpV~٩su6Z鶬Ώz;=*DvOM})Sl~Nɢ2P4a`9f3W7Ϥr&3ז+F3l,BOϹse횡n |NO9Whj/o/ۊls&tWK sfM|K̹>]x+8[[%![&+YiQ>g>a'V,y*s/t:}Y7,8N.-c"UoOU &^k N[9=aYq9*EsS9S~߱=DƝiTONrfOTftx[nd S_a?zT*[8=y"l*\8w@{&ɪUűfH*:GŭC'¥ߎsG g*ɓ2 T{ʿ|B'Ft:FV|kuΙ;h_iA4 ~[LH<;y$?>: RمmFG윳|´yr?alq!Su_9ױ62+'WaHbJS[HΙRvZwyMᄞMRw:*g?UtN,g/?K}oA86ۓGVL2=%lDFg0i LB]WӾ4[k4S}*?[gr/t:NQ z#+:SLNX/ɴ r-s&$P}_̝a<ʟg?۩r} RΕg+]0$_1R۩-$ML)ݎs;x;-N3t:N|yrQe2pqK23Q=_{ߚ?I}_ m'ɠIM윶.}xSyC]s7իOyr,BCŇٲA*o֯+'϶'V2onWܫRφ[:NsNνwyeUlC%Nδٸ70:FiKx] ޛ8sĺ7TE~7:2si|Utr&оCȪ=W l;M Ligy:N^ް/O: RŻoq*okz2O3Eqx>[6Sese=J-{Uo|s@ǩwnYݩ߹?N9ϼ Uzhdə:qF(-rq +:<{gXw񦛪HFgUf,ϖ *>KW~zLVQ~~L#–-?=|D#^ ǟ*ug92IuퟭSN콉ӣ[sߍνsRNݦgjy*m*9UԴAzM> i${N!oX i׫5>d=N Bް7G);8=;H͉Ls_%ˀz,IXO윹3K5v<6&'WrlY?0gbۖ "NݓUreb,'^犳QuYNl RZq ruQfƦ޸ ʙ E𺳜*?DN~9,Zp}o!^KMIP'BL ^Kw5zY> i׫5>d=N Bް"̊ |l8 g~ee@=U$~'Lv޾/ɬȔ3=> stream q /image Do Q endstream endobj 273 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4311 >> stream xQ+A1Mgh<*)RetQ!*{VavLٞvr g'_l2EޯCJ,&6ysr΄q2T6垧BL^w5zY>iwVk|hvZVo7)٧O]Χ-;Rzܗ)f}R_ߟgpO5%7IW R]”s2gy4<{!ͶSwҨ i}dy{d6L|'^i٤UNYޝ& rgؑqvglg۝kj#]W~gj]vNDWg6{?LWwu<BTt޲w}gPN۔{ a2z-ՌGer84?YL&?jZAާg>ϧSw[8zf쐛J=s_Iw|}2e=|$]'$;SJSw^ { S$юdU7.NAHH>[6X}=UT2zgVa8ӳg9{w$'ȝaGڙ3{yβUmwtm_I3wu:;u]y3^iᖻ_xQ9tMx9)CK;mSy*|W3F~zgƇv0lWj:TSҕ ͣ$٫ o]iY'ljY{dA5L'^KgK#݇@'#Ȝ;晩˽d{MvfwN=:Tˀ{,I-OHv&w-g=)dhch2y*Cm |ڻcV;6xs>ZV3YuP&61I+fYRH!g*!72gyfjro> 作ͧ5)s=sV+I"g@0cV'N3Sɪj6̹OTz]_20O>+%Na];e,8pdxoLe;np*9y^abAp>U&'.2rt:jiuN+UR{n0[N΁p콉.λsEtΤrx]g8u2*t{uJ-w^sqS)?uWjKgkbSݟÙCfsœo%9 PޱwTJ?QnB3y/]s T9M4'3?EqН 8=^B2s#lǝMBRg=t燓.#Tk/;JS%sK~J{>|N`>9շ:2{g]w*ɋ \Ipd*Uvv넕ZN "nS$Vju2!7SMܾ.Tr}w7R9$!ٙf9oÙ;w$\Qy+Bf?K蛒 Is{& 4[nReso@'R .+GȜ]UnIf{d_7TLnsEG, !{o+4-003׫ܕC!!in{$Onǝى*βe8;"\Yo .Z;S;P9UtvfZnNݟ VaӫpH{g]VjhuA'9g6Ukv;Ol-BgM> g?W>>e+UUCvx+jZVߣ_?(_dg]U2!3S%N;vZy6fiYR4Yg^299ytU%r@ } tRʜg {7垤O3Y$UHt#?3g snO>9/%I2tUqOMHe73_E'Fw&o2CpLU^9$ag3;Mn)ϙ%E)u%*@WY)gΎNЧ@?!xwSI=UO2ZſDw;R3sV0팰WrZ$KW݄[v]qS8UtL~l|a!9ԛ ;8sߗCן0Udz]l]spdfMv89U)CHL& B2WjQ}ѵcy:/uӎѻ&edwꞀٮ{N δv; ;c%t8׷sƙNf<2@oVg{wgN[=AReб)$}*'LJw]g|srἅ)g*G뜾Iv8OVI2;r;(γ7$|ସyd6TuzOHI띞:hw7{+:Wtrdz]l]spr' i;:gfsUDԝ={7NjZV-vPendstream endobj 274 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 275 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3515 >> stream xAC&({ER̓#J߯?iSvff:{Oa=v{>2v9}@٩t>=s^x'NмqwnXCFr};whya:;;اk61V[u3*qSP>r0 gg3QL3oϙw(JKfoy>ldk$%`=MvzY3X3wF87ӿ^UgT4ufagb5jYCfOg9_~Ű_TTd.*h򙺜]Ξd[]=od~;7Yl]wx.Ó}S{GA=αv@݋g(CM6ٞ>{fO !563Y]Da%sSgoW<7dv;f8';j5ԽuS{ߖwEl[utvwOd'=4kn룹LԎ? OiпCfx:?|^P9S}}l+y grv:{}lwQtvc࿑-nLfQ}%B gw톕S٩NC{f8';j5{S'7}Wf%8jn@ }OԤ4oVV9kn~OWΆS|y>OU nvش>nw+ln;vj݋t[xx^am˳o|g:^l^4ɾm{͎Mj6Pnٱim<5}B!/0yp:|nXI<ų=l+[o득:7۹gsCVo8uo~~#>wElv]4=>DMpoKcinapSμ'tl8!j˧8[n͎͝MSv޸)XϖSnؽMō9=ݶ<ۘyw&EΞ{)>;شVqk妙&SY;w>+B gݷlSʍh;c;nߐ1#ӧ1CIQm8wvpNvvU+2w*Y Tzsjv.Ao[wVg4|o[|n7gF n]9L[>5/dz\y9I^}9{ʧ0fGc;g۩-c;smtvuJrtR oy.xwy>Og')rnViʝls1|}BgݷlSʍh;c;nߐ1#ӧ1CIQm8wvpNvvU+2w*Y Tzsjv.Ao[wVg4|o[|n7gF n]9L[>5/dz\y9I^}9{ʧ0fGc;g۩-c;smtvuJrtR oy.xwy>Og')rnViʝls1|}BOmF2ó}ów}؞6ly66 cFl'ͳo.3qJ ns:+bV}ebN'K),ej{a`_2{˼٧ &-x='μ|e ;ʧt! Y[=?9{SΗucbN聱˻yw1g$jS{?EcvS>oJ}K}|6<͙dBa/Щd'ک3ów}؞6ly66 cFl'ͳo.3qJ ns:+bV}ebN'K),ej{a`_2{˼٧ &-x='μ|e ;ʧt! Y[=?9{SΗucbN聱˻yw1g$jS{?EcvS>oJ}K}|6<͙dB!.v:o O|wv{+w=(t;n*<{{QNn>!|7֧O ;C۩[A8,37:{w|agwH&waoc޻r&}LB!o;utiU^ onwgr׳rK<;*Ԟ]Qiws/n}p3TzZl?oxswxf|ktorW6+gl$B!B!L~!;X!B!-M!>B!B!Bu;@!$B!B!oiB!B!B!Bߩ?B!%B!B!7'L!DGaB!endstream endobj 276 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 277 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 497 >> stream xAjA G$?uOd3U x~|NG$2ɉ|2G蓩R$v'.Lb ]hFJ1Xۗt>Y>;HV)f`kڅ0v!m$3In0gg`b?$3In05BJU$7@dz}w=7LfCJ1>yw{W)f`z0-p* @ Cn _HriT;YV$7@v!Le%kHrFNR$^}t `>/_QOendstream endobj 278 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 279 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 264 >> stream x1 @AO޿S@ 2x=Yp+6endstream endobj 280 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 281 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 316 >> stream x Џ(?c硢b}b(8~}ݯctjVxRia.gZX{̞MV U6@^^ ./O s!endstream endobj 282 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 283 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1026 >> stream xQ Ew[)5soD,@S~z% ڝ3v6)D T6@Y^ =rjL޳}9HWnZ7 '#IdnNlTU%u2T9~'$tEN" ȳ-wۆS9fw +}Lw8U.jIDr^Af?U\~jpp*gҬ.agaΖ3˩1x?ao?<" \ia/ |;U~jpp*gҬ.agaΖ3˩1uW9HWnZ7ȸoݑ#@ r*ͪVO:gA.֙_mo?<" \ia/ MW<#QGnNlTU%t2]N 30~yDr^AF<'~vG564KX>etk:HԘ:s% 2HWnZ733ĜyeTrp*gҬ .agѧٜn]ȩ1uiy;x]sÜ%v~?Tʩzf, fsuv" v9SK~S%S29YVg:HD&dRN햰N3dyVs:HD6u~S%S29Y@:iy;x;sw&_r=pY&'0>>~]2endstream endobj 284 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 285 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3859 >> stream xKcG C i2@U(_,S!??oN&B!gc:7B!l!BAϷ6B;!^ }B!B!6s)|6o>:-ozu?OO]8wʧb]zZmSue lO xZF~^sgv]g:Y|u$ߪxNgמVp7ol4dx:Wt)N&7[ӟ{lEn[B!Bx~wf٬?O@%ϲ ?aWWii NQTY=l;Py7ø3jzcݶ(K{ނrb>gyɳfֵQznnb42|n J&ʼg7|_}éޕ8_eʊs'JsOyxfŻ0uéi]Ws9J{(+MԬ^ Y3v4vzuO^UX1y9=B!7{Q}㸹+=yZ$x.&`vv3Cx>l;Py7ø3jzcݶ(K{ނrb>gyɳfֵQznnb42|n J&ʼg7|_}éޕ8_eʊs'JsOyxfŻ0uéi]Ws9J{(+MԬ^ Y3v4vzuO^UX1y9=B!Ov}t{6dWOO9NywR%w3>7E?IOSCoLN}lhUwv*-;k%+=5o37aݖo #sv<|.Mӻs JOٮouF;{zyppw6izWb'܉aw}1VlObX7TAө.r. cqSTNJ`ITrnfPΰ䮍Ӕ3u4=B!O4{QUܾݞ USNSޝԫlIp݌MbOPƛ!#ӳS>~]43< *gjle8{JO[MiX[Ȝ59u܂m9bQ8ΞvG3r4흍+nU >wwr]g_ <~.S st7˯F~oX.bӟf/خorRv:spԅ37k#4 g> g{!B~4n*i=ʖύP=ŹS=vBcկvu U'nٙ-n*i=ʖύP=ŹS=vBcկvu U'nٙ-7l(J*n;ʖN6;sPnN)OF`7@k˩T^J?~ꔽ_þ-0siJ*nw5q{{UnG-3D+o94J*N.9=B!gx{ɼOo:VJSC6NʖOM5baX3!S3۩F8Y7$U-;G=;=^24svzUP9>Xx+xNmd$2ؽc;{zk2g>(l7l>{zWTζ?MC{^S_WW`2 ݰwzF]W`eOO <57ӱM> !B endstream endobj 286 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 287 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4096 >> stream x[,GC1.ʎ>DUNH _|.!SqMNI- ysĥ9'陧z#,9#3IN<3]=@szTߩZgOΫ8GbϦÙ]g,n;l\St^֍%ʙ.X&~'^QS@%jl\r~s#O8Y\^ۻrn}ޘ3f;2E=G~5ΠN+Ndu4e/E6-Nvs"'U8$p"LzRӋL3τ$pz`{nɌ6?'U]=@sfv?{r^կU˓{>!9{jבOJV|y׿pA Ꝫ 8$p"]{&I 91ԻNwY7}˯s63ߑ%h׬yN 9.Y]ONYN]YJ 9O2c8'VÙs*OZ?s;I߼ߟwK2N3䐜mCӶy+S6\%3nw_Wy; nb$ܵ'cx Wswnt4%Դw{:gXǜZN?!U3a'?/dZwsy6>˖֣"-~.횉: 8g-M/g-W8]EuGo9U!a%AM;Fp;?gx)ʧZѽ.iSNӨ2y^գs,u_iX+"fV%dٍgrzYk%\Կ\UUUUUUUiJ6=jڻ=[׳YcN-'Ъw0Hݗs2H-G<eKQsduevDB3v&3lΫz͏7g*rk𰒠ex#A8՝ntV3 U^S^D '\TiT<9yS,\su{U2Y{pMWr=ROF?{,y__{t4%|I!&O?.nZ ⰝSkτToF.s@j?oUlSK9STǽ5uY9̘:! >gSt^E0))run+~$w5g&'UgӍ zWJp|5ݫ6ᄫ=*3UX=rovۋ3obwйU*vv㬽{8WS{gq/sfy98TQPF窪JS—x.nlxha;zמ sޞ̷]8Rhx(6ZsOjթn{k<'8sn1uB<9 >|ni]Ϧ輊a*WSSVTIfjZLNl<L2EWTk|ni]Ϧ 3-c+hqrun+~$w5usLg.ƽ{fWJp|5ݫ6᩺i 9TihuW'9▙5C֮=9J8k89oy]si˗gb|sUTLz*Mo7*GE-'ఝSkτT'ٹMVn^<q6괴x>]s|<;ݥ]]@Lt '?Lu=*,δ毠y?7մ=N3$ ^e*xtfKT1P%g{]'V[f Yl *vv㬽껾QwͥuN/_%'VQ%3yntL~h_+Hn,5-wnoU8lTڙ7LyxZ6Z9{lĹ7ǟs·o'v9nkK_s˧U|&ҺMy.g}羅붮sj&$i39q=No3$ ^e*\ƣ{5]Ҧ2p; Tiu=3޲gJpÚ!kמM\%nw\w Nn3+T= WW?RCT\UUUUUUUa翋"QrVevN'unUF{ @xi9'|vjotK)8go|Z5g-Wr&L^m:[n:9frKٻ;7?әKqUu[kgSt^E9پtܷt:93y#]MtaqљK2 ̞U*jGj&Me8jzϤJK&h<.p|七J'WɴgĻȿ*jgus!<"ޛsUUUUUUN. @Wendstream endobj 288 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 289 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4133 >> stream xIV C ieP;(oC5׏??ֿ|?]'u<\ZN|=9ճtJ7~ qN4Z;Zt*z_ĝ',fLqNtN})Iũ9.VM=wUt֛K󩮓ߓ;jZϥ#?z$]?JU^VDi];p5]36gcw]<.七J'WɴgS]{Uz]H-s^ޝjZVjw֛[K5ɣsgN*,Ygr3N)'7~ 3ITO+dpޑߥoRCOYit7x2U!BH2i7깇ڵsLg. RswS=IGՇg M/'ѝ9qS{6k^i=*,iEogOquZZJx ΫjZVUYoΞo._pܯE.GWÉ'8LTa*tUXY*iuf塝ғSNn.gVd'9#K.60SR!rodCȭdfWӪosgk\?OE<xZ{ ?RC_N;sℙρwq\&m6ּzXU!UYpӊx6>u!!s9]ߟS/É3ٜfjV}zxrodL.'s0<ʿ XT xZ{ wf{'T&lK{ϟ}9YW;|)靳qUo܋K^Z]+a*SLyW|Bsv?w_g9/'ԬRpWə]mKA*zhy'L'99Ȫ3NY3 8k8SE|Q%zpמJWyk9':VjZVɪ+ޙ羇'|-yZ,× ,H:YW/!ׁEtfĕ? NyW|8x2N Sp&\ϽfjV} Rr/wi O'NzRf*t.o4 vZ-U0 Tl zD~K;g跒/w⬹OqSSG|Mj]{z+]筩wZVjZ>xg| Y(9OfV$=U_zJʪ2\ILzsٜUJH3$ LR'qډΫjZVU*ÊwfR+[4,× i$wT[C霈CȪRhW|8]]NTw+xl܋HfTQs&TL QO*̿+FNk=UfeOLv5BXT *.쳚sJVq'y3+Uٞ{=Dru%eRNwP\ ʤrr&w@9l*N%$z&s~8DjZV*_7y;sSB<ţMvRR5K9ObU*,շ(g[h:USgC4#O' ''ۇ;)3U BR׫$syUNtV8ْg8It9^+*IȞI5傒ٖːpyIWc^Sf*lVg{$ wpjNNz:gjZVj 9{V!EQW;|)O%a'Pk|* IqBg[J-Z j* ]詳Nrywgc?P˓]ÝCtl[Ǫ^N U9s<*':+xGl3}$:M~IV$dϤrAlKKeHr8ʤLұq)3j6?s3Ž^NOR5g'=T3yZVjW%틉UE_5ÃOXqc|#)©G$]Ln櫧̂{"ufVj&#?EeXn9*aζӱt4%N/36YG圾 )tVQ; }PH9*a3+Uz 2NȥJؖzμtt꽠L=?Pܽ4ds׺r=9Yn:LjZV*_/#Hl B7>aōqtu2^:Mo W3 ֙Yl,S6{{vwc=9OOfӑswCOӔ :ỿz,Lgs~Nf*ĢR;xExZE'A!u;ͬT%Dw8!*a[U;ѩ2˟CsrҔ~]ʽ+Ldh3WjZV):a-jyȺ>\*VSB,n\IZ?%Azn+8g* WkPÙ|};}\*VSB,n\IZ?%Azn+8g* WkPÙ|};}ME5k3Y][?ޥMDMũ{~'N5jgtWApGlΠ2FtF9yuuD3WjZV/+%endstream endobj 290 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 291 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2881 >> stream xKn%[эN_<1`z{Ե_&u͞W>熮]{%}ddWNbRyc O\b¼rf&zs:ak mϛONe3?LWw#O;]| \Mz.dk Sk4SWi{߾wI:/j*oVOw$0tMdsר8([%<743.\OOw9=-)p'7Nt\SzzSd+mҧiOIk^vw3| a' 9^v=:S?={txz743Ez͗d:BV=9VO3>k{nk|׼f{yktNr CDN&/0w^|#O;"\s뉺64ݤ+:]͘(\3̭$H?>QD> g|fnxfG'z6une;Ig ͳ_ѹw-vDr^f>뙻էLN]i)oBۅn^φ6zآswo0?in#9Oϵ'(nqavJ~y+݌~u yDҞY}dy9w)OmlCcϻt&uMW(OL3{O>%ǖBjHo__oE[3uZ%I;={2ѿiUr 3Vok}k[svo#5o &鼄NO#3|rwZt |μ3.m=FϿ wcN!@[44kwG:p |:| }' -mM#;OA[<F/xՃ/xw y7|2r⨞endstream endobj 292 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 293 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 391 >> stream xرmCAC"dNҍ쀀3.=0}u2;-< 4\#Ah9r@ 5)evZy@Ni\G,BrJ#:`jS. PpXfFu2;-< 4\#Ah9r@ 5)evZy@Ni\G,B~Vendstream endobj 294 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 295 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 296 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 297 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 414 >> stream xQ Ci+5t80^@8}?k;ؓ;836Т/7[7lr%IT֙.{836"Ɲ35^c=P# :S3sO'P2JoI6OU}\/%Fx'%$:S0 endstream endobj 298 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 299 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1218 >> stream xKHC7B6]Bk ,}vSOYtL6_NgL[aGF|'%O&ጮy@e$OYt~L6NgO[:aU'3NK3Sٓ"?ygѕ1";=ynUqޒ/4";A/1FfNTfOҕ<1!JoRr~O |zFq󝠗gLUd׼2{T IWzė&@\d;}d72͈=`$ٓt"OLH@'4""[}n|F&q9ʜ\0 Wz]IR'&$]m_-ʾ `oNT>N~#weN.Et=ɮy@e$]6Љ/M?ORHM}>N}~#U#n[c IJדTfOҕ<1!Jod.%tK7R5E1Ft=ɮy@e$]?Љ/M'ɾ-ʩR{o^d2%gLBj$5?Љ/M'ɾ-ʩR{o^d2%gLBj$5?Љ/M'I8=7R/23&!@5[{Tė&dB L -=IM*otK$gsR':FE&S1z$f~aORx)3ٜԉ|喝zɔ`0 UwE|/oc[E{b[|NƎǮ0שZv6[h_cs>;sj2V'NړX], ǪvK5oɥflpwF +Ll{&$ss=Sݝ?ygSf_~QwU^aV~Wfתּy>^9+Za:'vwq> stream q /image Do Q endstream endobj 301 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4283 >> stream xKdGCS E#*VR"ϳw+]YԄ4ڮ,f̷ՆɈOڵZ\<ഺ6\o-' BյZmRyvIûM,liwNsup3P}3&OavkdK7Mu IyYn=3Ω{ٓ$9/u՜ jӹ[WY)"O\7-Uo/mPq\T ZlfMJ8߅Xݲxo4%{&a/UB:?BXLk gҲ5K 5M3<Եג ypr5+u&aUB,]{ϛIxYIk%Fٗ'Qr^dz¥8W~HN6us%ER{Ssv5t5κ Yw!W@ֻSS머9MmϬK\jXi[P&L@gv҄#>) OERBolsxL*uy8ulE&Gaçxw')\JI@| :םiF<n:5Ͼmsݜzz/+fsz!T_ÜƜO$DӨvw7vԙkZVJƢyꢝ8d6g'LI޵NܽxPs&o7uB8bnisK=S&ӤiT%NfBXTC# LThJL4*w/]Z{wM*4+rf^W3zrTcVMtjl]iM^{wٞB,MkQ~.SL!u33:jZ&oWE#<]uNQ2BJՓz$Z'j^< 9֛:!{\{僴乥ԩwsiL4*nwSpS'M!s*ܑgp*4%{&[ֻ~&}93׫=pM]opsӱR{Ss:`56&z/;lO!UuqzG5ʎ(?u)m&[™QkZV_H)a}tiRSgn{)>u 29otܸM*+{*6Sv4%Y<9WHsxI2w;iC+U׎N*.n:Nt\g'RUpBnR.N>TwuVlVKW׳Tԫ<.WC`yxN8wWz7壻UāOMOq{bv!:X/˓"rHʮ 8}tR(ɹoNZV/HW;ߵS۫8.S}<%K_eVs&N;߹qTdW4TlDaisKxXsAEZ眹4*9*vѵevn/0!;WU\Bt\aN0ܤ]2;}*جzZ#gMHWyr]deg%eMaq*%.2{n Gw[+BtΙ-^'E休ѕ]AXqQZsHjZV_#{|+l;HP1%u=pιq==^G/\WT9;.wUokdIM8ϥ:9r>{QSy˹k %ަw'{%S.۩)s3m/vpg?yj<=Sd9Av~r=InwSX\fB`wW\Ξq]\*}w=%3߂uYgrwMY$:jZ_ma]9o`D*FX)wӔWsy:z9 ʿyN9קt&#z;^'Kj y.)uF?؋C]]])"ν%7ƔkǕ^pL*VW4 At>wwgry˹sƕ]M%L7s)SrZ҄-8Y ʔNORt\SYęK|ֳcz{:6Y3e#KNNI+a️tZV%OLp 4Vj|37n%NC!ΩdqdJ>ZS'tWtW&qoRUұu8s3ޝZw휢U?œ=J3*LqV ⦾֔w+sNeVgfpNB4N^~_SOx/܉C WrW8dRqw>,s%㗃siq-"e}/dZfendstream endobj 302 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 303 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4273 >> stream xQmI 1N{~[jkN +[Zן 0IP:]S||Mr BӷNS9s#J>[[֙_2Eȹo* ;"8Wz7~'Uoʾ:[UDt7uwnexwΪ–ÙR&U實|uTvgFLWT|N"]s.N*@Zڤ8>ݴ/=-W_gק 9{TEjY&Uoz:]癓d=9:gVEȽ}:<====q/(]]&Q]:[.Η(eL-;RHve@sV9*WOQuup23dӻ wqfo=[v$^v[_}jBmhw?'iK栢?ʕ r:=maWY1Cז%ye>uMAؚ6'%i;\%g뎜0L[f_Y[xw%;3z.ZEnW N_Y5yoM|R&tْm}:aco/dW:g!:rUW '3I6 po lJ߳-nJ}nyeЧ&d{j;׆v. S|B6$*l*C\p@L/C3VzMvU:tmy[WSoc~RoNvsNU2Qy ϴeFu՜wWr3?[PzmUv$<====E/(U:괳ݿOU?S'#3_"dp}9$,]2_wtgiS$l TvջlMQ!dA{u/3G]yfzȤJ}ny%JQl3NŽg|$JQt[Ϟ̍[,[=Wӡ yIr7g_3^%?WDm_uGN):y.[Eg9TzTpV__ yzzzz?wig~N~G gE6f;rH|Yrջe*3*Ӯ㧎I|fw離Bȼ8ص^fId8LK f9./Ɵ%*&U]!:wI2.1=ۙ^YRzȿ$C^7n޽g'J~ȉ뎜0St&,]6{ 3r1ɩ905kUaܖWulA[wD+Ctuo)df=Y夷JGao/&ٕ-)*>v=TI6;ϽS~B<];re yM4%ggƤʰu8_w)2nlt{#ՎDesnp?s_&ss=YUsEN^9ngVSIۙݽ;.1åǭ;'܄:g~uS/ֿ7yUQWLvuH2JY7ƙ^Nf|]SUNztbR)ܜ]鞢YmQonoId8{A>g!d{ ޅ#w}_DSrvoL [W}y둟"Fg8RHT&?wV-L3or:7g_3%_%?WDm_Ivf5Et[ݻ"3:\JqܺޞM{s^?!OOOOO%_{9wwɫgp^MHU/-+7:]$t1+}S$guG[83STh~4wSÍTI6{vMuM''d.*N-J} Iaʳ}q75i93{[&YdNDesnp2~IK{FrUsEN^|u\SR>N{ס̨k]f7V2'I[wO3 u8g(:_vw~g;^Zx2BqCEOB׎?Mr=Q)ܜ]w33EH+{7t흐"O眐+rD!ݗO]TnN6_nH:hܺޞM{͆o[j|~︻M^UU?S)~YIu܄4|NN7]uMrNy¡Rz9˙Bgꖽ0 [^GvQy2 :{.T.[8[nJAyvoL [I+0dw듩κ&N"{~}E;!ENzgQ9!WDm_ωB/(L3lt;tLѸu$=P9 \OOOOO*8ƹb;~Wulgv.,'n?w^`wNNQNۛ:\]:r{{1T_ﲅsvJ_[^7~7>TI6@fLBv8]p*)݇3gUM87gaUzѝLd.8-"{my[KLPE;!ENzW9Q[{s5^u֧[x#]Ó~Ny{&7aNkxW_]m {UQWLvf':R{&s6x%9봽|/#yA.[8gt9up'#OIddd/}/lne R+}8MQessvɿN\Oݙ$\O:O>" ۖɹd^R\?']]~]l]S|]ljk}w>r8<男grf8봿-!OOOOOq]5%~WzuL]qMoEvMMNQSqnf_)IlT_ﲅsv ;tmϜɏeIdLz)]2fT td}Sӟ+3uo}bReغr%MUu3^N2Tt*I&tU_U3@"\%?WDm_ω;-u<-Pn!ɟTzmny+n}m yzzzZߦWendstream endobj 304 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 305 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4348 >> stream x[[I CAo CԽ"SG"3ӬOu Ev+|\|UMz,'}Wp5k99-oYͬbMtrv;*USpnL|G&n놙TN6_G@WuC< %qHMn/֕YIacDǩkl=Pcr*Eh g2/TwdYio=r*{ܨ)gD==ֱvq@ނ3rr"i|W<&!jQY;V44ɩvPsn"'oPEŚL붓*gqnI di^Y8ۢfް>%ɆH{[NLeNz[SԯÉsyrvwLOqyW|gsX&p*Bd<+m;{lws)o9-mGO yB:5(TٺP:|'sy_Dr}֔{T>KmZVU m§eUewNNs{8e99OT|Ԅ:.*D'gZT/E8w .O!KJ7)TN6_G@ڋrBg*Sp*w휢~MNܟ˓קdR.O}SN[⻶87S!2%n?_icS[Ԝ%[Lyio=zR^xzl)gD]=u˓"rx<$ߕﳦi|W]mjZk;MW[ >ΌBx*:S̙C,$ VhulNNݎ퐗fwQ&z8HcçO@۩ޛŔKfrfRyX r][i2rK9FΛbMa$ʧ\:E ][zEF&۳8=]Uγ#dw3k,ڴRi=OU=ܿ2S}IEUr)ɜT6,N ʹYLd&g&O ׵n&#KZSk)OB:Nʬ|OqQPݵ]kdR)=C%\<;H|9ɢM=!Nf]@^%s+z9՗DX\%ɚ̙IUqH`s7%0DO9ojZr-J= |Ie"۩2%<9}u;ԻZKZS.O8S?Krn~Yjc^*] \IUCOI)5rZjBsI2ZV)Z/!kV¦N擐NB.N}Ԅ)96əQǦ]׺\՚r|Y )]Js;bV3R2M 'LZ|JUvNARWҟMIacr^mr&-LLJhQoXޔŠނ~Nϸ ͺ@N{ YW=ǩ* )$&t5ţ,0uȔL*,BܟEj5g'LhxK&EjZM z s8*zߧyq$Ss&d͚IXStl3[ǝ{Ctl!˹yGxJsyk¥~)YjcBK}}iwcwQݱ%PgSrXTSkU5ڥrfzGXgRuu;%OBT|KzsBIpStXiRTq^B?GYtVf/)oٓ\l) O'= m}vZVo{~=ágp}*niJr.^8թ>gB֬)T9ߎ5EǦ=u)7dAdž{ Yw:'&\ȝŬ6&$Tחv7[U}V->%N?FNK]U8]*gwuN&UWShqd*dJ%O'ĉgؚ;wJ+t7MߍI\*՜N?N͑q%sytNge&"<]=ʥVП~ҳ/gWj6~Mu~g T2eS;ysP)編ߑ]:oK<%Dum'dIr飐ẅR^))Btm9ݺ2KM뜢:eS=Ƭ7ŕUYݟgP3*ιVԴ)2]#\紗aSƹN'noOţQv~Մ"8"M.!~%M;鷚=gMq6uwΈz{Rq} i=-5a%ڢkZV9//3i>zw=i-xwd9z~D)8O .g] Yҥ\w(fg3TqvʩG6][xNR:(NٸTy~t<7T9mw^kuLkS!"mo:ߝzRNjo,:Bf.r3r=+͊¬N Oϩ3z]Stln[ro./WsvbfQq˔Պ;f?vJx(W缛'SSOU|:zY[+.p穸.;X>ݾ/ȷӥYz{de^,SVܐ%ϭX<7?'K';YW<-emzJgP'kZVo_ 7^]nMa|4xn.aWs3S^=֦:B<#D t;[Ynu6T]\=Tgt{6UWY珳" SgN9ظ=n JI'z|+!z{K2l\!<9--zTjM:9Sqf$3t$jh \6{nOOΨ0S8O)rsI3B4k.:3w袪fW Y[qْTi.ΟEL-\jStl]T=wPW+_Ti< vsȡU'['Sq4g 9嗢L2/F[ӓ*p*!wj܌l2g[7|'ϬSh־͙rϮXjCW[:ZVSPendstream endobj 306 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 307 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2204 >> stream xK#7Coj/UL>J^~TU H#nI[UjMoQ ֵSo9璐sF;T̓SRg{:z=JX۫l)U4:NN\e;53}>jWsVxj*-OG?9I=ٕ쟟*9sW™=0Ͼ$'ttT3s0\;l3'tllz^;5u͹fWtpj[v[d>2w>{zϮ9l 7g%C~Yɯ=yNiߑvr.gsfJR'rrwni=V՟Uo|R%OU_srgfdUvLg?LϯF:Y3=թg{w;6R9ݓOg&UU|>gGtϽ'g0S~-3z7\;Uwo^mݮy^~UTu;gvtrG~ϯ}~бɝy<7;CUU9Ӷ%aSlM`>Rثtd~vgL89+sκO~[TUuNs96Tڗj?䔓ЗpgvKaU%\b~K;*y_ڜ;3d'sd'ҝc:f:}~U7rljNt?ۻ[u9oߖ~>3:9;TUݧ{=?ӇJkɜѻ9g2Ow{jvm3To3ݙWN>;{~~m3=սw-N̳*ʙ- ;-VgyvO?ԫ%߹JtSfJ~لg> \uGٽvosɹrN_:QcGoi_UIn9=Vun|R&WuwWkOړ$]Uh꙾ݵɟnޗyGN$jUәNݵ\eTU,OgPpMjcU19y*3گzow@g۽eޑ#~澪Z{rt&d'w+W??9-{7j1>&ܯe'}گe&X}ULN*{Ց|F5}{՝KU'WWՁTvOY<}}XUߺUuT%dSu~ڜ{ӫ>5:vz2Վ%OgͶ/aȖKu3Sʿ|'|Wsͽn݇s:j&NœL*' ?L&3ʗtoՙR$᧜;OB>-ەF9wgsk^?ݛyTw}*o3ˬ.3ճ iO?9sL3]|-Iwm˻O'':ݱ>3SEf~Z2pO%$|w](. 'gGu!ί yx%Cowendstream endobj 308 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 309 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 389 >> stream xA @G$?5BTY{h~\ο%ƙy' 0i 1H&i7V=@:@cLB1=h$3M;&$+d(6MI(]LPl$PN 7H&؝v!@@oLBЃF!@S@{LBЃv!Qh?Wqendstream endobj 310 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 311 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 312 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 313 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 820 >> stream x;0 C$o)fe\HѲϯ75gɴJ?Ί& @fN}y |9zNI=dsfL[s;ନ9`d6ԗ'> stream q /image Do Q endstream endobj 315 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2285 >> stream xA8 DC`ӞEn(t6%2jYB$-6?S_ȫ:%M59D:;]Y=O1.uƛ|;kG-&W*_pNl`wwv:Imꖞvγ"?~_oBLf=w P6<EzS\ggӾVybr*|wy~gv{=]_oBL^kȫ:%\&硏H/:Nzp:M>ʣTg/ '60;;;k|}LSz6'|_`_{f@^)59DH*<Ի;oo Vybr*|wy~gv{=]_oBL^kȫ:%\&硃HYzp:M>cmVW*ZLPU<.z(NNy{YY {sF V][8WQ1y{g5D _ǼyBLw@i 6OO#+2Kq;|ΈkK**p;obt97O}OI^8m89Mf x3HzjK**p;obt97O}OI^8m89Mf x3HzjK**p;obt97O}Og/^StU "ͽ'؍{ }鮚gWwz8W'SOgTءw͏.]ups/}pqϳ㖊Eq&8T睝:{m^7b yj>+Fse7fs;O|j=OUλpζ5:\g~q^StU "ͽ'؍{ }鮚gWwz8W'SOgTءw͏.]ups/}pqϳ㖊Eq&8T睝:{m^7b yj>+Fse7fs;O|j=OUλpζ5:\="߹wrwf UP+t}Qw݌dsιz|k^2s.QwpnSO3UmB]ک>[S TW3T]ͬNg8L{<;ͬI9{:Or4fwѓPW Yn!v$r&NeSTc=UUTwzr4߅S0=u_߹TRSE}ԙ=-ə] XԎjtso~>kܳ|rRy7y?̯}EZ)닺f'sի]Zyw럝5&wgU3jeN JX52쭸*jfuw:+aIomf]M2ӑ|{10JvV'jmu_̵{$鯕s7Iu*:B詪:"սד. LY[}*ԮovOW]mźvTW~Y[|U_[nJnֿ#*=GPzVXLf>.omڽ 7:[*=k39M>Qdd&yrKU"90?3ws+ꦶ˺$LU]*Y]]ݑ;-nN!S$u3"b~rjjB+įv$왽|2sjtygVCN*]mMvk jo|ν:5ٗbBz˩֮p gv?~-sendstream endobj 316 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 317 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4204 >> stream xAnK1Mi),ҦBӨ?}M=Yէ䩒61sY$lѿZ;5@_Պ[kIC0'!Wힰ+TN[_dvH&93*6m\黫't^t:}tg[8MɇkŧvTaI菊sJH.{nwC^ ߙjZnMNI]hM]cx%)}N.jiz9{ Qݔ2vb_f [Vj}/uﱩO:w/⹵S 3VBzk}sn^COk8/2b̴2wlZ9o=91m)OLV}SiuY$ݝPK8erI'Jڽ}dR 9dNMZ x9U$螇ӽ~r~S%-[rno09ϩ$rH$$v7I>PckV8_/-C-8;jZV r~տ/O:w/⹵S 3VBzk}sn^COk8/2b̴2wlZ9o=91m)OLV}SiuY$ݝPK8erI'Jڽ}dR 9dNMZ x9U$螇ӽ~r~S%-[rno09ϩ$rH$$v7I>PckV8_/-C-8;jZVr~ם~GifsfuaW+yW.ܟ;ړv/<}̮wI|+|Za*L*?V}ߺN3+mBnwI&iBߴnNmi/ҹH>,m[BzOٶL]*!dw^)=Ҝ}/uCypjzzwM&MQ?-ʹJnwSti'x:Eřj}n:jZVլ_M/(7vtnڬ2̼~%Es@[{rEU?U.ɜoOK;LIg#ʿ[שpzfm@4d7M©9E:'M`K4TI5ۖK%$L.+7唼'Cy2/BtN^O/ɄIv6琰S9#x^n?P]rO83{B\/C-^\VjkR}2#8&!}e?Yպ;gզOgOT>wLQοFĭnww'Nst8STi/3KO36Ӝ}qͩ;ؾGzk)9Tڗp#awyx<3sS^y-rC=Ij~{&7P~nNhN:YB-F WNa} )r!mc;Sf u?9EF l}iM\+wܭ>?M䤻tL;i;9>v Ga{*禄h*hn3%{ /{uN9sZu$U$ /ԭOjmd¯LQqvht}%w-NjZV<_w ߇MڗZ68N--֓9~B:>TW>jMO驖*- =/̢i=IQ<6ٗq sR^%l夽ӻ͜adRfv$g߈Vѽ+"Dkgmg+yV֓-g%0#9}7}3^F9 LևSzsZVjV|/%87%oӾ=ײwqjiMg_7TYC9 ^ Uh|BMOTi OygMN߷wξ܎,_M=R*aS,'ml'7?G5%v8F_!]{8sh;S^ɳl+jZVSz{vPmz'-<Ӝ/:<9::SR[k==Y}-w)=U',VYmLy݋TY}xfOT_@![ɧ ;Rqɿw93tfߺ?ӫ'ܽwTmOҜ:{Z΄-$_NZzkjߓ*+mѹN{ KZNœ,'jZV#7hHdendstream endobj 318 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 319 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4319 >> stream xKn CѢi;$CR]#i#pߏəv`mj΍ NM)X>-̪-望7˟2+ɷҾ8ϻHw7˟>EC!G/gn{J> B,"ܴk|W9O;LNKwϤ(mS'>Cwqr&l+PmoJZOtrV_J/ nܶ|!|'G'0?rNM |q7EL~eyKWsntUI$2Ld]GqesS]N&﹝ή:;#$JؓqCGׇ|*53Ϟ$Y7T_vX> |)65P|R[tJ,"rPއ.=DS?nc_u^&'[fb=*c,OzjNƾ3e 'ߛiiBc*FHNYS Q$ɥNa#/yOK+ֽT\\-FR7ӓOIt:NiJ_M,aa]\BϾs3J'Gd":+s=uz7y휝wv'1Vž<l{*>>Sy$ lRQKi^zߊ,Tb ܴ>u!q*5.82QyfySsH6uǜ)[8OKP7BtҾΚj"I.-w y{ZZy%&o7!|'G']gNt:NSrjg!Sz՜Ydx^9wD&.½sPѱӫX{O誳=fuJl=y*8tHROw&ٓ?+uX iT_vX> |)65P|[tJ,"rPǟEumΫԄN릈$,OzjN.շ˙jt!s2;K{鯟쨾.Թ![on'ImǙt:NӔYú}q5Fg*4WNp/"Tt*V枫)l{Y7[O 6=u7]+ӝI$J+CZ3՗b-_M{ T$t3gK禽ԯ'nDq*5asrhS)"' >˓˳urlD/Z+F\'<{ťN^uG<;o˧.ŭq7un_Gﯸ{'qr}tuqz:N4%&|0..g__͹YJνOtR^׫.NUΎx]fu]uvGKF'OTSr3wi?+F8x G3q(;"&γToAq4 ?Iu^'ƏW #MoR{s|N5pD+St>=8#NYx=~Z5yſAvk)ŕq7un֙N+^xzI\tz9Nt:M 8L>KWsntVs0Doꩾ{#gY]WQS濸ǡF&nT̝~ <^‘L> |6}ȫI,[{)?߬ORݢ׉:6_UjdHT^\'SM~#\}Fr8]OOk)Nua;EM^}]o:-JqeMu滨!|'G']gNt:NSrjg!Sz՜~wxԄ|ٳXλ'_?+OWMiiE IJ'>kB%M7b ]TӲ_Ir㙈OaqV|t~Y.i/uz\mDî)9[H\OfҨ> <'|j:)Թ![;_uS{)'qr}tBoOEMWzKk)H+BNG!iVZj*緄;%!ߥ|fm w8>:!Ά't:NEÑnendstream endobj 320 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 321 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4176 >> stream xK\ C i2$Ꭺn6u(ҿg!{ eq5,yyJCYX\ONzܩ-cV7tف~B\͛!zNiz})~9YP{FVv%;gRkw{hS:!ΆOؿjZVKڜ˦Nrv:sIRPf5'"/qk{ /!c{I"l866\Oڐ*'V2h"­_Τݽ=tR6pWy, ;>S ۜ_Oe*,>E=g*sJO\ZaC~lQm7pbކ}b[z.dONg¹ZVjU×+9)Mt撤Zbjx/NNE^'^TCƞ"DpBO um l8!+TN6dʋaѾE [I'5{{霥Jm"ͯ=Y6yw|R9ҟTY,*|z{T:Mj'†٢6~'oż {,Vq+7\e\zsZV*xBOeki?g3?PMf5'"/qkj'KUOc8'NOi|H;N*'.8܇ӓp3~woO;T5\$KM)Yw6^8tJEg_;8SSzx7Ҫ۶ʞM6,KqpY {,}qVEoBs弛ImE$jZV՟j+4t2p~Ng.N顚jx/NNE^'=?+Vc O|qNp]wlTN6,]d qι'{?!G/gyޞw:gRkH^w?!ySf9ims4p.ԋξwp9doʥUo?6m;=lx5Y\7$5eᲧYnV߄\y7۞ IsjZV?a{Iuz<$Vg/{:KC?'J=ĿA꦳R]U_߹~;6W6$եC;ʋh| n{sJNI6e5v:g8٤Mo|G&=9ՄK5gRfusr2z{xznbVL?焸Cշ'tr"Y\Ϟwa!锆M쳟2EpruO?78VjZjb{Iuz)IsOpN5RYԄYg449!гC- |g]XjHz:ao99LQE<\g&S>:_ Χ jZVOl72{SisVSlΤ'=uFfR89IqΩS쓛I5w#9:-:M< gu]S)Jͻ:ixY\Sιs*p}J8{^G& g!WjNg]j{rB6j5"..ߍ3ϨvFj,r)(E=[wpozKG+gs<,N]g>{z})8wSX>,ZDQ ljZVDow|*/:+x;g+;u6\L:y"n SgHa,yJ=%I>XΝTs;B3޲ګs;d3KpVw%?Mۼsť=w:gRkۧjωuaJpVr&t֥澗,+Tm#άV#RݸYt$zr6sug[WޗKx7âEz †[VjZMt;Wr]s?tVѵQ'T'xzv5?+Geu (>WVsd7'IuLԩ=37gPM۬l'Y.j⥼y=8ekk&8?̽ʝnSqyNui=SsN[6uӆ)=]\++i˦Ul G{\\B '\VjjPi妻s9%7ˣkNNJkVFYP}d%UOnҳO.˭͙T'n;S[}%;k{9goMY7NO;T5\pKy:{pnLn+pBʙ{ ݕ;^zRjvm SzW,VTOuMr79ϫ.G!.)x.fXg\Mr79{7N|OZVj#;u&US5dKީl.ِT7E r3z$w'ʹl{e."nJRT)SBRyRٹ;m栗)eShx9KXE:H{8j)wRt:sԟ:j+p 7mo#{lWY<'rRs EwJeDnOpO^[O:sEȺi޻),u LpZVժA'NՐ.5w{:* H3gCRI;/Qjܝ4v핹)W;tJQN JK fn\jPM^UwE,Ujc |#=[44g wG8OIMjnS/ܴa 쥲]eo0KeK݃) =uy8!-j?'BZVj ;J%֐œxZqӹ3:ydzN)>PSm|Nr.Z1jT[:"dəS79\?M6no UwE,Ujc i{m,*x^gܤY;Ml@MbwRkfsN> stream q /image Do Q endstream endobj 323 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1507 >> stream xA7 C$o,id`C]{֪Oӿ~]䟿Z'gI*yV8J:,S];IrY ;j;Y]sln@_YsrsM?^=J3:3Y k:9gsjOgǚ~=ƹ6U2wƉ+Mc ;tOHZ]oGGsPizn=U +wOgNxZO߾dȚT{k̜O7鮧̚5Ә6}Isn{>Kɜt'ۗ>]]ŽtnEz]ݝLʐSWrYw)sW뫢o|bB4Q6>s'{yysyT'YSE2ƎySY?۬~znZs|ܜksS#gwo}9Y!^_Yœ$oӮ[:s彩vu,aGW,ܜ5Hz [?giIK1]im]}ݣzJ{tS:fo&9ad|] U$tJe=WܞygXS㚧tdȬ묄r&LZǚUSyJB7$ߔ7=wV]<_89q |S 3n;Dx:{99q | 3ó]͜8w}./Ƹendstream endobj 324 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 325 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 340 >> stream x1 @CC([d65(t/.` rMX0` rM\X0` r}\ˬ9> e Xff@7,@N3zB`e@ ={ 'eendstream endobj 326 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 327 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 328 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 329 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1004 >> stream xK0C$o: pDW ( kuz]@gSnS]r]vKx+3K֑j2$vS75.H{)_!%eevM#W' 1WГ=W{Bܥ>+3K֑j2$vS75.H=[uY^#@ۯNNb#'33zXW{/BܥW>+3KV:;foj\3f{)_!2MNG<<_*'GN_AOfg "yH^K}Vg뇗ɭ Wut#SuwLԸg {Gr9|&S9NG7o:9UN `E^ KIg뇗}IwLԸg {Gr9|&S9NG7o:9UN `E^ KIg뇗}IwLԸg`[ree>sĭ䶿T9!>r z2> stream q /image Do Q endstream endobj 331 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2781 >> stream xAre91sv/j㈉P"ABQۢ3.m*W{ܝdt!Uٳ }+Op{~V 8Cm{INdlyJm= _M﫾@6;bW>W{ܝ|S6dTogϖ7xaO<t"Y{.%;ݓ8!+@3|5t(>+)^_N6%rw9OِR'=[ч=;wg黰;xo:/ڶ4tOV̶tF= toge}d^"? Wv ~  ·- Nd%:#zge}d^K?l ;x*|ۢ tOV_c;;|V7Oveg߆Źiw ge&8xW"^r>w|]8kR(]|99ENN]ԖIw:J~_JZg܌0{7 ;OWۙwy4VO٣ݘ"1ýO|u4dUOu9ɶ6S?uޫ|EN=KTM~Wn6<οSwzg+Ng)]FmOn"uN(~)ΝzCk͟8o-wYwo6Q;WwOC+.ԧ87Nq\dKU=sO gmU ŹO/S#i)޺kڲ:=?NBT3W̜qfBaj;sp"2&?){tСS=fqw y.J r;G>&|zJu{gUߚMfw.^;y6Ž˨uWZ;x߯ =9ߝ;(2mi mQƬ;&;J[]݋c|;{v^9S;ՓWۙi?E—Zi wsgn-ԝTӹ gәd-TA)S{Q:xϰE9iB\O~ΗtN݋ٞPx̤ѓw:ԽY>F&+NU:_9a%jUIz͗BBIՉ=z|zJ^gl{+N}E氣;:u- Oϛt/f:ouC6丣(uc֝Cv]꭮EVU^y>E=MSV?MÁ֝ɫ4ΟGY[4;tsڳ}|pv_Nrg[LdsȠyzVFnU=(LjgТl!'?K:lOt(=%3Og=>"jsOsѝNUߧM̿Y:^m [Po3rJ kO_s;9tjNU2tN3T5qvkTU3s[zOg~aS> stream q /image Do Q endstream endobj 333 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4279 >> stream x[- CW==Qi`v{DsWωwCdHHӻ*,p:XaܧӍxf՝'|/-K:r搙oE1$23ksy>9G ɖ0әL3g{N-s lwr괋>wlW#]W&:\KL$l;['6J+l39ev U멮8xWN lN5#?sݬVj5y>75Gi]g$[Kg&-w_S}]`ʿ. :5SNTOCfrrv.ήL3=yOU%y:5=rt&"`z)]ftOkSli/ T; N8zzR;͞?IvΝm} S !6{u9rRݗJ~V=է.yxfέNz OZV/ ¿\]/n/͟ǻ*,ήI7zLZgᆭtωp9v]luu4k w6'n ]]ҵgz,󼝟J$uRokzta˙LXSE&೽Srh:gצzNӥ^`9évP?Bpf<3w=";[.^%yBl~ꚛsz夂/EzOI]<ս%[ENiZV?"N{;7gL߹TĦg,RΓLfc9I6Wi]+;λisHKNfݺ#C 6[Wf#C 6[Wfq%OϙS)s&Ъ2|tU8XJNb \BiҨ!B{u|NO+>]:;s3z^3I5'&O%'V7Is斿0);RΩ8%+[PܝP|B.)ajZV,,G ?9':{M9sқgVu\E00?aG~ՙtaP8g&mskJI'w%zve攰3=OYt꩒;g\spJf jrE,]bu7ӮPyî4vr~/Em~^G'ӓOꎭ\L7E3WaLRɥ0>SɉM뜹/L/3:6D$κrsh=*fIJ`w (yJXwZVK{?վ*,N묞շz<̽ ]IN@/'w;4_޾s!_[NQ%g-߱TUП:[BNOO3O3=.gxB}V:39 \3*JViiLABX,4!]+湎:O>.T!5:vcf*l\YyvxfUOIi殿0<\u]zJ;x4!ɬ<#9Sv乸)\Vժ.?.*&}9+UX-Y=)ox{^Nve꽳8O!?sy9ܔA]E7Ü+'Su3q8B7EjZ!R|pJ}3?*> B48uƕ]' 3vF YU韖XlU/uB<9yU<,g׽i􊕥gVKI)l]{ziyeͳBzOsUv[fe>ͧ.6ƿUYq8_U!U~+vZXW|fgrnYSz~p?bBvOq?m]o8е^ M45A]ل\Օ٣zt΄gxg]eIG5O/2s'^N+ҽtҪ7|X3+ˬ9}rK3Ϟ}˙.~e]<w$n9z 6s8ufN-:Nsu*CET{w>mul<+36{{{M9*S:MZ IjZ?endstream endobj 334 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 335 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4418 >> stream xKF CѢi@W3rDxQkןí驀KS|ɛ8uVg/ I^IϬX)ROC)RdI1-wN%좪?i<:_=eNvTUofRWYssI.u<{v ]yRWţv47-xeOw,]ϭ6szyh9d9MթX rw:w_D߹wVϖʳk2SQacMwkWiNsFWe57wcjZ_LĵѩR'ē7qr묾=w9s{!K0sGgWtRQ%.K]Tjumv䐰\OGZ['V|*eܜurK?ϛU"\6IsӂW$n9zRxG6Qo3S46r<rLIڳX~Ȝ?%S g;IMJz:_:3{T4oBzN8U(u[EyVjUu;驀KS|ɛ8uVTj;B眹NtW#+W:G sȒ?^G.*6b{rHX.{̧zrǣvIxN>2kn:9ѥΟ*UY.$ i+{|7Dd)#a񨷙ésp 9y^Zuu$Y,N_dS[˟Fb]]A}/ԙ=wS!SMrI-wUu͢mM5{wp}SK~r؋n]{]hcs4Bɼ% 'vǙ{LR(YRA['K{ (ˬ9$G:78gWeEu\i+{|7(_ţi'˩σЪsp){u_:}=w%G1޴u³aCj*ul<|qu5Ӛ;U>եwNu9UUEӮʽY9sjZU[8驀G) M:SW}·N1On/3g9 ,=|:I+GBHt<,z/1YًKcZfwpztt'uX' !貤dgUOg/.igS:BC޸aͤ-欓]yެ]y`)2u=.zh&If7]X!ɪv)~o:hsج]S37-7X׬[©Po?x;D*ԷL/m{yh9To.] 0:>rw:̜ fҪ<7s"[f*>źqť;+ 9]ONgGGU9mVjHǫk翣SMN''o֙uwKL*T8'R-gGx/%7w}&̼P;텐x27LSѩ)SͷMʼnd)dUPwI|Zt9lVqήiwQQѩY󙛖wk֭MT7]X߽)\ Lx'~6fBӱ*.JpZV"gXendstream endobj 336 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 337 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4322 >> stream xK- Cai{IJ+Q"޴#y^_W(r;2q/r֧}r?3~9)lU>!kJ2K $_%$P!'>KM_N~*SSszrH8Sgm &$Yg*xZTtw֬*V8>S^+W,Yoy #gwLoo 7'⟐%oGtl:g|넗RΊNZVթPm7W[ZNdg*7%0ixJ{PyTf%3of&W^)CB{[4 rCpuT)Y W9/g/-Wue5)ӻa3E )uТ|ynt:1u89u9o땩X'p}*!C)mnJf[Wϝyp&7A~eq^}lSެ%oz8t:g|Y'\VTo(6{-'23K4<%uνwDSvK!gM7%Nɼx{A8[2߸s|Z־ )o7e w:B3,NÉVju*7ws}N=rxr*O}Ɡ/bVR)orc}< =:t pG[dp'w_iQ Wp=3;K}OТ/s:Sr̥J茧u4]<%Lpf5-(ENuE?.r^S"+l]}q =l *!Ê mNqnpw Wutlų/]|K/me wkUN%xp 5׹\"<;:!ZV}8 _ տUB<{9S>uOVg1+fY Blju7bxt>f^nt:w{r{oo/y[c+8랙ܥ>EA'Lhї9 WR%t:EuϮtq&8Z^sۢ~:"Wav9ϩv]_B >8Մd6Kas6p7M;sdž+::ndYΗsۥ25*'Iύxi:͊i׍T] Qs*lųN_KMˡ>x_ O\%oʽig!Yq"ZVw˒Ŭ+~'Ti:͊i׍T] Qs*lųN_KMˡ>x_ O\%oʽig!Yq"ZVŬu{^S}聆|x%V2˩ŅpwϿcUT xn,蔿'2ܖ.[Ld eN<8W8z++<=q6+Orv{NgnӸTW'TE"KZP/tq@gL!ܱB xGdJܹ΋WY9JMy58CW72[,aM9yӄ4X>ɄWlۛt:Wr{>mWjeq}_\7ϯ{M!srIWoX,=:ONVVwtR%8๱|S֞lNr[No1%s[IO8\l4<ȹ}:MRe^9P}?. _h^Bu=˟N{20sv )3t֓^*MNr:/^!dp*5 ]lųto5\M`%^^ɛ&Uoo\ɷ^V՗&1r<77SO,uuډ=Iޮ*yG'[-'\L/'ˆ\ՙM pNx)!W8z6*<=7ПNNݽMcQu0pn[pg]9WaeN[':}o:gu΋(rf{^9u;=4Xيo{ӄ4X>IvUɄv9WljzA{9_sB̩t n'd lgmL$oWde-OuCrsrReCLצS8\+M]BO'^]ΊzO8-.ɜs[+ wHKL >7:CE{9=Dq:ɝvwE T ]lEE7iB,$oo*dBM+xZpjZ[ =R̈́H{)\)JUggNԳEO^,=,ΩK[K ;&PA'.u>vN/t>9![SG˽5K8zGn{ev41{u9b70pn[pgEX:T}\ E:s;x4"u֙M6" wm.Y?\+rHb%LFf+*ҽ|"r5d#O\${ wi&[׾:犿-}\*jZ-hWĽ&^t t'{ßYę6i)!)'˧wG!As* Oe~vNHŦroNޑ^' u2w 8^]κ 's־Nf.z_Wa}!9w[EWjHE~uUI dq/> stream q /image Do Q endstream endobj 339 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 705 >> stream x[N@ EN R$dk9`lK+ٲV5#=~V,?̨VߋgjEXuU)g:_X^ {q,|]uV}tr=?BεV^vww)JNkoVuGϸ0N޳k+;ɱuulYit` ZY4d$S=r:xi?WHnz`kNYY+UHnz`&ӅXAL @2u+Ѓ.3.o djU[t9t!xV$SL LOֽ,[ JL @2u+Ѓ.3.Ӆ+UHnz`s)57 V/,Y@2+ԭ@Lf*L Hb A{wPϻ,/Л, dV]&3@ V$SL f4›p.@2u+ԭ@`R*Y $SL w3\!YdDT$SoHendstream endobj 340 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 341 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 333 >> stream xA GhOM0 ]@yy<"gXי%}2^Loz3Bfę2dLoz65Bfę2dLo T!wyendstream endobj 342 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 343 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 344 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 345 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 921 >> stream xAHCcS{;+\%ZA|7lD?_G8J ?@:`&{E|`3ȱD?_Gq$tfa2W$8'1@;vȱD?_Gq$SFgەK0 ɽ"~> gyŽ망r:w=,Q9|mGF*6TveRdrHpOxlcC^yj jpדR|ydḥyەK0 ɽ"~> g6yȎk穁L;N]O:KuT`_瑑J 0z~BgmnW.u,L&76f;Kj2w=,Q9|mGF*6 -"{ܮ.d,L&76f;Kj2w=,Q9|mGF*6 -"{ܮ.d,L&76f;Kj2w=,Q9|mGF*6 -"l z)0+wބ76f;Kj2w=,Q9|mGF*6 -"l z)0+wބ76f;Kj2w,0H%A=E$yD/]2e&{EΛƌ3sǵ@uIM.fq$3緈$oKdrHpyۘqvvȧ.9l~#E$yD/{2TrHyo꼙endstream endobj 346 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 347 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3189 >> stream xA$;C1M,zBe!2C/2I1Fϗ5NKux|7| IP%vM)8W@͛`{7w띮 ~nxuAK=zSpB 7A.&7o&`/;]@>.u"$A{6^A 7o]MnL ^7w|]kEI.l=N n ߛܼo\t P>w ]b{z $ܼ vQ7y3a/{dמsOW'y!Y ~$+ !Y^H7r^$?]ڦiyϛyΟUT@ 9uOUvwi8}ՓKCf8󉳿S2]޿idۍG9!̛55߂B)ɐ@7g!ߵSai Δߙ]ڦ} ]kϹ'$c6YOCg&.IV OAn $kCoI~M+7?٫72J2=stWnq'nYqg%s[ɻHPSלТ ]u)kτ=<Г]tZlG᷂ni{ԥ1+drV.=j׺ɳxF=++ vu͙tڞ)IP ?S>nNM!]f[WUq}rbfٕ3Sa*5rظ_YmtQUJHoMuȓ@לNN)L&gs7-:&hM=-N3U晬VןSKR&u {WkkNPѥl i(\?ѿeNus̬3܎G {w){C_ ' uu͙tڞ)IP ?S>nNM!]f[WUq}rbfٕ3Sa*5rظ_YmtQUJHoMuȓ@לNN)L&gs7-:&hM=-N3U晬VןSKR&u {WkkNPѥl i(\?ѿeNus̬3܎G {w){C_ ':u&k)Ր9? qWX߅gV\Vi .[Lm)M`~{&(F_|<=:%9Y uޘKM$a5Solq:6Yۮ$o՝2vP뙐dN 9(u@FzJ9ܥ^N뮓u&7)4r\6\)6Pnz|鼩s\(|6YNᭆnWl|.<;u NKvy~fjMm{4AaF6T+--H)I*L#Ƅ]:%oB' r}>g)v%yׯ$_τm&tjHA߯4tS.wZw>7YMtz):~oO靖q wS C7rY׊xnɳgt)IS=> us:ٻN]?ۊߧ~5'g[zKWߦNۙR5.tu=NjOL؛FU'3W(mz9׻"g;2ww]jծ3C9ijSZTf;pB+3饷Sz $[WxT}JWt' ~=n'wMە[KofvTѥSUu'tm_ѥ^z7lNmBτ^9|JלgjT4<[“9Slֺ7endstream endobj 348 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 349 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4370 >> stream xVKvH ;̛ߴgMo K  hϟէ \{񨝒'kXJT̟ tNq~z;{xg1?O!uwSX<9{Yty:mRp;VgTj 'PGx*ʹ͂3zp+c42׽+Rv lj$TV'Շ}qZQτ nKz Hyr NSX9a틓lpSf뗕g}}qSK*SXWt f8ujzs} NmѬxLȍƒLapX, Mo8 $t*qS$+zzYE:j\_arue#O3[㜂.)Zu&] qtbuj)Nsڈ0(.TUa)Qs*+lP=9LHt̙ ENu&ti{VOOV{f=Nm*޻kg=Sz7dN= 9d%tcơjɃLaTw 5ǔ R&yryt ]<8ݮ+ҙbX,N:+ f;y>o thεWgq9u8KVIB9y/]XC:aӜ6" 93UUxXJԜ [>~{uϟkN)8Rš sfCџS|~ :s~]^)S'af^g{Su {mϔލ'l?SC69YI~ݥqZw SX:]B1l l/go븜uB.s6;Nn 聆t5|X,;t?bS@y*\ѻ.m\)Z!œJ>Kaf'$DݵUgҥgVwǯ;5?)խԣ}m< ^SL޻)x\|UU9wdAן:NSm]:sԪ:&TZ[Bw3NZ۞)2rfs8CBOԭ`ק :U NSu ½ b3L*uu^m ̍;) :=9,bQWЫMۋ??Ok5zߥ?P+D3Uէt)sr<:$q\]=\LwG0ŵuSz<ϾMq|ʙ{wP=OwOJ*,STxKgZ5?Wg=ۄWkK6Nqf):=Q+tv3E^SLxgH艺,~]_ʓr\wW|A,|)Y%֫M޶p}>%A'bX,**M Щ2 gšS;eTmTBt0[Ùs.-O?AgUPoUgҫpO ;eMýq$}m< lj9xLzZ䳳̼̫|q8y_߳kOS7z٪I @3vSWj&5EQ&$s8ygSN.! ={A<vLَNڗ?aSt,bߣw9+tjqN{U{@6g(LpfܻKOu:[{jՙ*NYSrp/u) {yt}*q"s<<3o'*w\'uړ^mjxH6P;Ż]xT{dMѥk 5΀g:sr_v>ԣSKB^9ϸℝr=+!ɜYrRX,o_ﯼdʛG!3OZN*~.Sz{V'Q̭8\!>+_!יvNW:Ng4$I ɬ>>[G):+ב g@SJ_O5A~s=_OYH,δHY\SZTA O WlN3:w,3 jr^V ~ +=ڸUNN CWȿ N`.>guʹ^r_KbX,8}w7Cs~ Ȭjy2IƯG+' ,65?~n|SX:YGFX|nh(u:;50kw ztf^J6aN@Nsl\=0j|p*(Ti{o'qWi9-@4fWߧ|VE'=}mGSmNu}aoSǟsS]sdv>EѩSv wȿ .<;œL'13uo NMgY{j]c}n/^c~O)KGgdh014y:751GOfS:.* ip b³S<ɄzV癵zk7DrպNg2~985|'9e)t̼< wj~9Nw-rNQxZs] =}SarQTN 7 OXJMʙLvn>ţө6YQ>t0A)ӹ\;% ]u~qA-n/B"tVڴvucX, Dw_4fv3U.s*AÝjV)\߈g Ⱦ[V癯0a1i~WOzznAݟO=)K_g5)aN]rtSԷ{WI~NzTim9{ᦡoi,\gSߐNzNdF9<ʧϝGz8$tթOHRJ~8ݥkk ?)+u\E\(OPWRg߬ b/0wendstream endobj 350 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 351 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4280 >> stream xQY C1N{~[zJrC/jd1zvLZK(UVmjVs)]ji9Hf ʾ[v'$}fMSL[n? &"s2FJeӑSesC>ǽWJtFߤ]ԺVOZ~RN/oJ&3yMK3IKt'*.*=Ww7c=]w$&9'ܨ*JݹBܩ&~i_9䤎ދC߬# jZݩM$|$ij7™=$]v/8T{ijI"o$㼾~^䍟>Q&gU!n!Ϡ;Vvq2oCEyew}2A)rtq/Ϲm+% N֦FǤ}rۻ^Is(I˕S=՛dܛ gNT2]=$Tp{nƼ{ $ T3~pEy2tݩ>W׫nkTh%:티:&EWo-OrWjz7Q[>M{,^:vlJSnK+uQ3--dhnpZV}$ _wMp&jFy'WVIj{q>糝뤋=]f~ {YZ5Em&[n? z)뚴ɼ^*B_}2A)JrʹkZUv9{% NVݝ /ۧ]Is(I˕S=N;ڼUMr&iɜD%%CB'f̻+񎄐$^ऻ~~쵳${s۱)OB-a~i_Dϴ2UϺjZM/^f5p妢Ix=ӎo>7BshJfyϪ]}\yS*5i!󎜶**ܞ瓖'Zd{IϜ$]YAx8Q-sƁ)Is(I^.p&93Uq5*M{qw}HYMr N;RzW˦xuK֙Rxs YVjES۹-&9$O:r8u͢^=rAnh>gqOO+ڵhYwW1>u*z vMZE#m/%*}){$9ky$3' }fzV$=1NT˜q`JJR)f׬K'\I mվ|DM,E y^]_G;BVz}t<ղ佽8^iz/Bufm穔'e&C{VljZTv}I_b%6V'?d/l'"vB2ߌ;{M8g5[~Vku2 aIz/ӻb^"9!i>%KNI}Rhx5N9DwYDw>aRnz {P޺b]^rgVZ_ZTP8rYt & uͽ8BG+é'8鮟L ^^4ޫͫdfi۩R3󤪚7ӸZV_V-&$}rE[xۋCIBUs|;!BoFɝ꽦o-?:뉤OWEESrj]1_eg SgbsP4%褾~)Odb'OKx"Kx,";0Z7z=ftowZ1.zW /-ɍg*( }M,E y^#GtOd/}/c{U{TyRUMi\V/Lr |}ߗiO˔O &N`#$GJ5#4^)Ce5}T [>5+{"$Rw&IFEWt]eN'2p8O}WI9Dw0LUKޒ7H^;sW +uΪ J}{_S.K!BռB]s/БãrsV'8ׅ6ͱ_*%SyRfLrjZVw}$S`%6tړ2eS.ȧQjRͱWnYg}M{{^I>TIrҦQU;]9AIL~)Γ:>B_UxNħ%<{%L&,{~ 줗N+U/rBp5BRהR{HP5/P܋#t(ܜU Nu!MEszo׼Jvԡ}rTssZV՝j}o7IˁŨwI馭E>jeyl:^C[&Nwqgi֤nZ> S5- IUE|Ӥ|LvaRftWf;]rWۅ̙qīI!JW.d)fhwS6A&;W1i2'|N_ZNf8 yrt ܓf3l^MU']wۈñ(~+V'9^n6_f239=L {<2}㜽ҬIݴz}nj[2.I?¤%辯vv 3dmWC{2]ȄS<&ԝmrL6wcdNvp*'fh{Ƚ87W b79-焄}ޅ|u.i֤KdܵޅSeEd&qR7U*+9*E I W<*}}Ω'o$g^*S2Wfrr}/gդ>_$9=T M$Vu_f~f>B&~ ':CfLTuI!?UQqnp gjZVU>LNM gUבJ󹄽"NN^Yi9'$l.w_O&%\B&.4./"3i)TUpW]_QU)R8O*O)WuutN]n?8p~S&9V̖4.{8&'0OΑa!-n 'K73}5H8$E2SddKNrWsS8]Vjzєgrj݁s6ΗXO!j }rS#:Sɣ'7?U><ݣ[%gO&3 y}wIgLN38WpWIu^Ag蝮#'Ray5rU]_ܱUq/%IUOrvׯJ0se1i&-NKfRqs+9"y#Lrޱ98.,*~'5O}9u,+RKyW]ll?DVժD}endstream endobj 352 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 353 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4009 >> stream xMn  "㨊?Ex;OkmrhS u ̈BPBgz:bɃ'쥷?,ByQ&w5l{бjI3:'řu[pIUwz"ϑ.Ê3E8n:Ns׭Eퟖ޷}XdB,)\΄dzn3&ÉVNL8ΩGsp}K#trޱ)8SYTH 1+<+oGOA8sNSuJb.5뜐'ިjZ*>5糞K]lj%h9P'5? *s[vFIM7{[vz8%Th 秒Ϯ[R;NݜjN]@3*8\:ND8ǡk2_iZ~ =IUu,7upq3Tϛϙ𞬜)]>ٟSw;B5gWjZ!r>=shSz/IJU9wRS?$Ǖڸ9w,B]ÿՄ,N^纛NS8?~fv۩N]S:I@͍IUq,dR'.3$9#MQ y*#l]Izr@>[E6IP":ۜ!S 2w5=+8=}ws"']Ég8ԝuM8=MAgw5Nn.ny9ޓ>˧2~y*rN}GsZV+DΧg]qv39]'<߉CSeͰWj*|w&+^87dSOp~+l~LS6RO{&91L*?%IvqH3+s,BEb\œ$=9 :gn|ҤpEFNgp"<N`f;1fu5ֹitQqf=Y9OQdߎsM!t$sv&bRgWx&tOXm\(qjo9 +&v5ٹq4r( \*éܬlG^6?a~Sc[V  ~9i \yZ)˓@2"N?=%INpJt{Q($T?KS8)~wOC'wɓurrJ,*g_jN}˿)\N.xtmrRt5c׹:6D ;b!lvs"uޞMMFIOtS_w#:ND8Am8Bs{m5˔FI=z4NS'mGj*֮Մ8ajZqS 6\7́ˣ#Oӹ#tyHfSVin3yNNnXQYéo7e>o]θ?Wf:W(aG,<={BNpNNۓɨ91)֓@WNsSp*snDÉg8(RgWrPhnWT8fҨ;SϛƉ{{^VSHMڵU0L8BZV"s*F猜2mLgξpyNf >)S#$wE#ONNZO{Sps{UΊSQX8UٜIY]Upⷬj}Ufps'ʿ5H' N>E1]J R9%͂2eRd '^V[Ysr4N8߁mtUF)z;06MA8s|FV]xJؑJdž=g׫jZ}f%-蜑Sf9 Eofަ7grNȪOV ;RPºCzZV,= Iy&( 6-p4_n'+y/t]%9_ȼ5kɴlTjs_/xd&ꗞtC]N&&| <ﴹwޓFO3'|p'hn(4'~a>߅Ӕd>Gss`93L*f}3O}>O*_;d)4yZVSycZVjj~Z>λNժXVjzojhojZ}jWjB\4oendstream endobj 354 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 355 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 679 >> stream xANCQEhNOCtlc{=0Ǐ|}le'5Md x03TH@&znk^\@Okrr6+1t.P!A>G`s=ٯN@tӹG?ٯ3+ CWt C{:3o082t@7.P!A>G3Sدh- CWt" C}x1{082t@7P!A>@xendstream endobj 356 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 357 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 283 >> stream x !Ԯ> stream q /image Do Q endstream endobj 359 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 360 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 361 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 682 >> stream xm1 "N?Q63p'p|{7sRNfLmjhtl䜔$#ۅjj݌T%ۅIsaE;:,9)'ITGS3٦6H,.L +QfAI9I:]ȫ6H,.L +QfAI9I:551unFJ˒BȤl䜔$#ۅj݌앖%ۅIsaE;:,9)'ITG ?YK2df6~ͅ(5xI9I:1yZ%3KշIh.h@G9sNIQ>3u֒.YMGsaE;:y sRNALdvRmR= +QkrDuTbL$Kfo\Xr^眔$}ӟg%]2T}T?pŠv2߽SM2?Icp-_v!> stream q /image Do Q endstream endobj 363 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2009 >> stream x;7 Eߩ*!UG ^规<&'_co*n^`o{&'_co*ׅ707߽SF}ߓ1k7B}:򒪮)sݴz7vv~FWdO7U$[EϟgW-zΊׯؙ&޴9_ʹ]۷xrݥY7~י|ӻJxx³ug:}fڈu'ܙ/zd]連̷JϫZ9Jw5<;Ӎ{VgmUq+v&~ 97mW3mW-ޫww)~Vuͬ߿u&!9,gYN6?g݉3wğ˰^!2w|׻l#<`}!W77r-zW.OKљ*g̭v<ӕS:3duuNN[aYݛvBޙju:Ɋ{ݮcg:x§lo圓3DS}Μ.7z[5=vfaEi7|63UYڙ[L5y+tfꜜɭW+w_|uM|=Yiζ{Juݞr=?й>epK9{իx Y;Г4Li%\ə[mML?k,M3U vO. zrUw^zO@uSSL#wXY})v7݄]ߓ^ūUWځweM/Jjo:'g\gYg1mLsviNNەbf,&}9;O܇TZFDnκt:;Fdz7-'WK~ׄ Y;ГsMi:Y9M?gTg1mҜݷ+|]YLH;?rv>u wONލܜu7XuλwԏgoZOnޗp[9;9 v'9|l #urH,թbL;SOݭ-ݥ99x&կY|]MݛJoJXT䬸uEȹrJVΕ:ur7rVX'~?B#޴igFgx v RbW]{j⦹5W̝z,թuoQ'UDΦ?z*&ol*^Ϻjgn労V|59+n]Q3rnsN9U-։OP}Hx7m,n嬻љ6^sBԯi_zZf嬸in͕jg9s'3KuiݛuTI?nI;w;+kBmԟ?,oZݫojB'Wt&9> stream q /image Do Q endstream endobj 365 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2213 >> stream xA( ChIv6fǯ_߿,~o+WW8E~/|g쪜m5u߿=W8ʞTw|v&Y'!g׽՛Y}~%T蚖J>vIީ 3uz*$ɳ7Y}2SOBŤ:mou 7^sg'{[{]S|˟Z^ON~IwPw{YqJ߿qg:I> 3uz*$ɳ7Y}2SOBŤ:mou 7^sg'{[{]S|˟Z^Ҫ=<*_{Ys n]IXsJuVNYsO@7W*$;r鞝Ի;NN= u*5W]8glO-x^˓S$'9u~;Է_'w$vߋ4*k{;| HQsյs܂<9w=1`%7S5 L}{iu:zMMcfyv]HTzEdvӓJ뜜U&7н-Rw5{j$WqNu}uAU3ǙrTw7w6o3+>N<'ֻw:̊~eTJ7{Uwkrt* ="mr2IuNJM8n{[2Uy=j<;U"=I>*5W]8gl3[4<'xo物lNfV|:yN w :yuηܩ:nXkߩt]TzEdvӓJ뜜oWIp@dJ{xvE{ٓ|^9Ui)jVqgixNR<s&PUG9w9%t9+旳Su> stream q /image Do Q endstream endobj 367 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2339 >> stream xA7 CC$4Yd fkسߍ' Ȝ}?II~j;Eګ.{'MFfͣL,ds/yҼƷ&.zNN7o?yҹqsVL*-9[8%*OλIw$?wInŝ"UV䎽|L*Ǭ-7/Բ6qSϛ;eʟ4ӱዘݯN4'xs\ǗQ̤һܒS?]@ےS( {dNjII~j;Eګ.{++}TY[n_>糩emmw=I79ywNݝ?ic1_MiBO4/ɣIw%R% %*oQȜwz]g'Kr.앣Kr V;RcVz$i)[SlԖڙgL,i*_/]QN{L=-SWg[693iL*;w |oKNUz$9.lߤ%ZN^9$w읞ku߸#+;fI̝f*5Fmioq2uis2ue3ƤsWTw;J]4IKNRN^9O+hZ7ȠϿ' ذin ͡Awݶ3O'L)@Iooi<uJߔ2m&^-9UyR?nA 7izI/Iֶ| _3$6-394x70v))e( wӞm-m3=ѷNR}@w]&^%*Og4 I~ŝrtO[[lBߔʙM=aæe&o'oIKf>[]nIƺoĝ0NL:NRμs&AKf{[rKixԐpQmË$.앣K~OܲgWl 6-3|>OLN]2rKZow7}#wbqw[6 J]2۞pےS']M;[_|U^ 9 iߙ$lخ:| zIMs݄jq|Iޣޥ!û.lMy gl8i&a$Dʎ^VLBSo|']M;[_|U^ 9 iߙ$lخ:| zIMs݄jq|Iޣޥ!û.lMy gl8i&a$Dʎ^VLBSo|']M;( 926;V<[_]AuK;78m|v7a2宠jkݷٖ 4j/"sR=pSk>uwMvo?3-j*z⫬w5_:;Ɇު߰=] d. J]߹yolm泻 {.weV[̶4dxץ!U>wiz]vnKm{5oQwtvW _eӄͯt2N[NrkߥݭܰW[]2߈+y=_nw~[Lxٽ[n7̔voHECoI5NVoe~m:#wfz<;j2Ng'Vn٫.[So<{/t^?-t&q|v 7UfJn7$Q!7'MwtU6s~fzߑ;3N`Uw5lz{暓 z:ߋ#Vޫ.OO{ =[??z_w=зmnϕp;UW3y]Tzͳ|7 8NYsRAϬwqpLT߻vݹ=6MK?/@endstream endobj 368 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 369 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1618 >> stream x1$7 GHTre](=Xkpk_yc jf_B=sW%NY߽Wf󻚙l{_FMN?뽷ڭylite@W;6׭7lf)rvuaf6-g~&wtmYuuz{n3)iܽ[;f^ܪng2OLD=ҝ>:Qs~=8O5{W;v\zۜܟYvYc^ezʉ$f*ԛs=<&I=2_:}uw~#o37z3{w=39k`Z5ȭ'{_l~W3-QϻtONԜ꭯fSUgN(|6'~ֆ4iyVW^r"y )y :IR<3Nv]?%nM]lLD{ rIޗ0d[?Vjs'nj~gO+U%Ty٦[LOL^Vݾ-ȶNsIO=yT*[?%gOٙ.Y{޻nӦ)^ܪ<f󻚙lwVt 7|5WSԕ?Koz Lμ~Ll|-I&'Z|+[nJod[$'vÞvy*'LĬL]uziw5i]0W{f{]9;S_63Ug';{ltO<99O~ m^UgIvT|ץL=:ݓ$O%:yζ;-lSf7-w{ 7"][wB]_E(]x+\cendstream endobj 370 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 371 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 354 >> stream x۱ P"dr6 [< Ptluu|~_vt @% n2Т[,Yp-(օ@n`BEy u!Т[h-0g].Zt Y- sօ@n9BE0endstream endobj 372 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 373 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 374 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 375 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 376 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 377 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 378 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 379 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 380 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 381 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 382 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 383 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 384 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 385 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 386 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 387 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 388 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 389 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 390 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 391 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 662 >> stream x[N0 EN/ r8nό]Ůz09yNH~voR(ֿWW{O}9r֫Hs]sXm`E^LNtϳh啭jA> stream q /image Do Q endstream endobj 393 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2028 >> stream xAr: Cޤod jޫ^& [??>g޽RTTi6|cjo ޤj>Yd m3~cjNĪ9xɹ7:2mVn>ko?issn+QuS1𖩁>nR5,wu\1}y^ɔX ]9G+³ZŹn79:ϩmx@qo7OTyՃ:v.>7[^N`:󼚓)zFi+&+'~'fQpe_~t#7[^N`:󼚓)zFi+&+'~'fQpe_~t#geRPnovRglٝ\~wXWÌ[o[+3?]voڷ&ފ?Wkx:쒷B^%OS=?>S+cIeT^"*>RىȎrqE᤾YcE]sq}Y옻=7ΞQTTc{BT ٙש8[C:_%5f;)3~ͷ^2͎[oD2Q-]bϴKEXQ12،~u~ ԊQu;st6NYa?;tZL+aF޷߭{Ss_.7N[meloE۫5EW>kU9b#^l7W?Tendstream endobj 394 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 395 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4146 >> stream xA\ C i2$IGJFZIpߧLvnNZߺS*$>%wT$f7'!75NWSr'G&;:< MJ&iֺ?ʴ ])'gTsgo1֗@!{l_CGl Ng~Wr3g4B_ʖpnwv_]%igùMKɴȝ?jZVYޖʙt;8j_o7;-oޓIF)NDUSܝL{RM|Ύ;#a|RMoɤ"= *NӴʤ>@fN3ʷnRB)IV;n[n'Křlg{46BUr>qh;vm.BmU?]\,-m0 i'=T]MNmotǖ$'L$8|8M*tr89(ߺ K I;$}ZܻYwldz/gMVqvONfx:Wơ%0Ca#pAa~CgWt}r[4$mfJtvS1w5E;_[֝29{jZV+N_>s[yk}7S9uҍd:{w)/T툜}fnRjI5=-ߡT34glIۼ[S;l͠+=\O2 yD˿+Y;6grdfu+ACLd{vB!ִ:[;v5E !oztm֫jZV4y/% 2%b&o#r9?luN,R^v9+&+"3 >'jj{Z6C?gi[ϞyZw~'AK;;W{عP%+e}9񉖗W:lwl8VDۃ6]\C0ɰ#$ B:-iuwj6Be4WjZh:}_J*leJŮ/NN'}W>2[=E{}vDNu>I ;䋐Jd)B-ߡ0{G:̙8{d¤? uev8|:yS%j1oƋ'f^-aRr_gfԧmKwD%f9KF}{#B:iuŒwj3 ZY6wsTTwST>VjZtq2/;ejn~Kovr?鋿z )+ߥ;S#rWMJ!_}W$Mj};:adlcf'&}IM+33W׹+*TmyL7^F>1o r83 $>m]v'*O5YB6{ kv'ҩMfcWSmвϲʥ"罛!\|ZVՊ׎凜yRWvpw%IOߴOgųpMέ츻Vf^|s*/wۡټz&<_gHun~ҾlӴMu&4S2S%j]M33$uWQi9n7mg=V&hjTK-9^Tj/M}v߿ݯ;ϻ=8}ޒvnhTtZ7gYq8ndMQZVjE;Fʼ ON+S2VUٗOѢd#[ x}n)ݹՙw*ًOqN%n;4wZd^lɴOwmVޞ.؄fJf{DS6tff:**m:fgw7$m^mvsujizE"T޼+*7U:BREONs|w'y7q5^[1 3pN8;8+ug͑6)*>WjZhs/%ϝeJgou!ߔOt6MEvBRJ-uIgn|Mnk8>ϝ|*Uo+nw)۽YzT!|#5Վ$+^Jnןγu;9UIgnZ1;9Kh06KtCHMvv^T*eAm[D&Ί!_o3Jpz֝?Jg|;OQq^|ZVՊ){DLɼ 1ҿ!$tq=}IT>wɻhN|S_6vZ*W圽9sݍ~MgaǖsV]P0Cm1e7KUo"odrZfqPseߋCyn>*sM+f'gmtpff ݜ:xiNNߋY7#rMwYq#w^i]u8ySϺgrs^o)*ًVjZ1~oh>w){0IEK]up\ἣuv;p8;ZO|Sf39_"5з;O_MR̦n&r3s?YN_FZWu3n{tHEEޞ-ӽ;U;Z$68ί\yT䤧nZSSUUZi:)Ύj+>'Soiw8pJmCu)*73>?VjZrO_J4; )L*Z s ہ١:'|2{/ȡ*Uy2jb6vps6KE$8T$dPUr2ҺQu/77%"{tC-C**|lݱէѺ|' =Զ9w~ʳ쯥"'=uӲzժON!pvUS^9"t}LӾÁUj MQ9 ݝ W&pfZVjWSqPT>wSToMQ$;I;dg΍}Z÷~AeSw}wL7iS4KԲ%se|CEdBG^ >j {{WV}7O'CgejGս~-K5epdT_t?ϖɕ:aTYZZKN46{NyW_?C_ZOFSB7-0?kZV* zr}Xa)*d~?'i̹QOrSq/ȡ U nΓ&?m f 3Zd̔pLȫ"aTMavӺav/ٟJʔ~RB${HRMQOϳerrV}w. jV22S^'0J5KKKrA{)ܩF)o}*U7'wq3_VIh]B%gVjZe|7_w\u;;:W4-[{"|_Z<1% *D}6AMN)[t\${{|2|Yw"ܢ>%sY_hҽ:SVYiUnOFiuA[ߙB|xSEV6֟ӟybo̎,YZ75kZVJendstream endobj 396 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 397 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4199 >> stream xK9 CэNӃLJEQr~=V_g '㝲;FuEoNZur9W˟pp <{^VvVLnpNtp9I;ȳc=7L XB [[s mۻ:͊Krx3pnSЮ|u{H<#T8zZp[It)ϾBR"ͷ-̷L?Mx[W+J3+gPKNok}Y VmKFh4aYo |^]R'uЪs8snN-˟^%* سj]TΩ_"ܿmr38{y|O;EN"gYi%u[BmD<9ot~ /8ڦù+-:vYTy%U|:~m۟S6NÍZw&V]X=^q[Ox/Z=E;Fh&kf/X;u{E7wJ )B̹m: ,.gFxԆnBs+w484o`n2#Qt WPr:ꮧ'ÊpMSًz"DI?{:mgG֙o/ 힎vwg<TW < *bhrXlLsgbSfTSmO8=7j:ߙ[ubzwO{ŕo=]pk>h4FQ)!YA:U;x:=#= NnZ1;]o)ꙑ:C$IMW%jęK:: myŸ]mUOjmV='qy^+]\Y i%㬥M4vNJ\?O +'َGZ,xܹwݿbdj.:f5ZCcwLWyYDZE<=V-_gZIu8khSi> jy3ϓB*ʳI#Q$-9w.)]o'=;YM?rz֬PU^V<>qlO_CO4h4F#/"ɾ`Yl|E?kgwxHz񦈴'APH!Gᦫp?%IVICZ=BEsR x +exlx-m盷gRIiip~nm>Hi`ib g9otyT[fp;]~uzD+vWrKܰTs/gjjB?vt՟:OO|Yۻ3x Fh4x o[^xnu쮝9 ś"ҞLz'?B3#uH:Jj3$uZu& سj ]U:o`H78"r< o޺K%}O UUӳ3sv}PљKRn{kv9qp_/sNcVSϽ5m U^V<>qn3g-n I'8Fh⅃nyu㹱OIt,$xSNt-3D(tURG$Ъ3iphV˳jyYU8X̞~+gwL''^Cé޺jӾ%:N.aDp'3g 7]Ԇg.I L7glZ~V._ÊIp.{~ZGyqI>κƣKX1Ɍ;8'ObYB3ϓB*f#E]ݲ-J%yR_Iw25avquSk[VJ YJ''>rru$/th4Fj^8g/(Izz:?uVHzl9[g$Q骤6\8sIRUgм=g{n(zQ9VON!' ^CٽTn~tڣ.YWw: z|q$~,ِ֨*gˢXȹQ_R"6;H, 7]Ԇg.I L7glZ~ύPE:x\tZ]+r[Sd;93D(tURG$Ъ3iphV˳jy*?s^teiT+qǸl8[ټ{~ZM](zg9ή۝Z,OGl舕I%dtF欲{=09w:Y]rK=k֎q*&ugjs*TUoK̳*ɶMg[v!y=Fh4rJ}GH/X;ө=v}3VB{Wɤwr#T=3Rg$Q骤6\8sIRUgм=g#U<4սr⩪VtqpZ 3y$gRiivPrsR]';X<<9+,ߙKRnYe8k)h{+a<rtԳƻfz֬;LUL?NԚU|;ޖg'YUԓm+϶LC8]{8Fhbd_wSϋл/'EIKGEm7HU7]u$?Re%g<;ͳݵ8m)T' ^%3=xٺphiv{Qtz DJaj^gܳ7:sIR;gSOsT?'O2m$u׬ÏTY'Nlw'Nw#{vIWL'{n-:tڦ^]<=>gd&lz8\ߦNԓ:|gܽ?bk?I5+3\tzΟ'Sw㴝%<*vL+LY_1FhԦ>Hw3} ;IQ}RnTp+ٮ׫)4rJC޲K;G44W>uvI8m)I:I*ٝՍ?{:mz/Y֔qglXdXTUN~Z;W|gk蓜gUXlL䧸kόt>-eI]8UԓmW+-~Ͽb4Fѥaoendstream endobj 398 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 399 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4147 >> stream xKI C1Ml 4~DemQ~=V_m/H}S/p-v>ÏLIx]mV>e&$6Osy$ޛ˿.$MS=.5jމՎg91ʓHݯg:Tf>/--'99聆ئ4򧸴xbGKӑOrS8,Z&6f㜺KەsٴvdtjZVi:~:czgJI]QPo'%EphY\g.ɾʮ˜{9(Ί0>?C5KCEqȓ8dBL懲=I3UɢKŧ80Y}Voӯ3Yu-H^ݡsut9FX,W눥ԳQq'so)f]Ω]9x|r60eoZ߹SVjZ<:咨|9ΚƓ£vOJ8udѲ!\}]9sn[-Q7Źa|V$d8knNpK* 'qN8U{fEaOqaڵ'l Tߞ_5g&[7CrYӝY.S\ͺ4SyrNdױm`9ȺCu;]7I޲{93<8۝_d=;tL^qNCS;ۙB9Lt֔KK Lamɽ>SVjZԿXϗz:u):6SSqCs R(+S8/0u\Z) } .!+c<x<7p/O"ItJ/ Sf~ܼ,g'YwnY< [6/ggsV˝̙ SUy8ާsjZVS]_8;E..KrsW'9)au<))B%2pyvGG<*9YΞVΊsg!+bW9[W6{8qz:3ޫy3Z5!wcI3uz,StM9o@ڞzja a|)k# O5˧k{ͫw:*-8Vu6.OB#7.k2Ss9nljZΊΙ|Š\Z•gW8ߧp?~6rzWjZS#a9qVh=_Sޯ{ʎ0s=qM{=;La|4ſIE1g#OIpH@kDy)=W<Wev8OW %7rɢi]/2WWynw>&U4O}\ߞS gy&\߳I|ΟB< ֕i 94wv*\6gzr9WjZrem'0z~K'[Wv뉻mRΟEae )M*oY8)ܰ}JC=]#'ÏLQT.[п=i.~zV(;LNUD3:U{IVIz }XlEUrR?!7)3uT]u9\ϊ{Qua 7Ӽ\_83Lr=sY'T(KKp85wW)Sq=֛ιZVj'g3*m%)WoήHH{es93wXg\sgm/2^ 5|Š<oj)'o)¦P~#S8 -pi/'mKwwu䟦 kTu'[ޒ ظ.N3qBxpmyrvޕ=RiŜ@Xy6x '+޳+˶VjZkGݕʫfܕBoήHH{es93wXg\sgm/2^ 5|Š<oj)'o)¦P~#S8 -pi/'mKwwu䟦 kTu'[ޒ ظ.N3qBxpmyrvޕ=RiŜ@Xy6x '+޳+˶VjZ)kGݕʫfHؕBŶIYu\vVpiO9ͮkGݾtl]]HpHY]#'ÏLAp]T`S;*N6szSr]\M/Ɛ n@G0S?g2ӼuLgrZv -;u&fP߈b?5z3rL*V#{@9td)Tɗ|S;InOvE8ejZV9JyҗaW͐+#7fmR;LҞNs]׎}]غ7|FOXoIvU2aJmT;_Nl4_!) ݀J!a~~d6Ey,AZPw|5;L ܡ?,jn#;gnÙTF2s*fR>ᩒ/ ɹ]9(v܎0펳p>O WjZr}"jϮ<ݟ{K{u9;LQ0Nug׵n_}W{.\=!YΞV>%o' 좺L2!Rl⌳py2;UsT]H#&O\]}bqw^&~RW3JF5¦KC'nJr#jMbV_b:fq"NlQ>2/ wS4]97βhu fpZVP/endstream endobj 400 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 401 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1432 >> stream xKFCo:^h#@M%v^~Z͡y&dXIrIVV՛>W=6pDSzs2ϙzܒ|,kM'=^K̽gӵO8aV3ѓ7b-ҮOgZ3Ju3VXBޙ9rziS83M\OuיϨt\߮ݘ߷l]^U9ӽl=ﵪ?ZӶ1j%[zg'[D:n<܍өu2*sze^xP|~{b~kfniI=W;3m:UeHtuf̓Nx\I[UoUs6Z+ݍ$*q=3J-goI"Jԛ;䄪v 'L{fb~#zwnkߕ6Qs|oM+azj3\.7mITCnr}" sj۴ <lހ|-*g oQO<7`| |x*ټ[TS 7ߢ x6oTyͷ0qendstream endobj 402 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 403 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 313 >> stream xٱ @ !>EW ;e}Pb_xT@7 @C* YQ!M HVT`HtӀ$+*0iR4`/tM!endstream endobj 404 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 405 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 406 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 407 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 925 >> stream xq1  rU(q_w1ï/x̿~_ri>ɮHzIŕ)%' d]}tG,s ^oqF{?'L9o^L_X^/2%tD:lC]he_W\V:-(Jr{?'L9o^L_zteG̔M u2_;JKΪ+xݝj__|ߝH+'SNv_'G_zteG̔M u2_;JKΪ+xݝj__|ߝH|݊Nm>=uDi׫u}$NStYNT\v| .9N P|9:1Ӝn:uUNH3s;2|z^9ω4ӮHk^/]r"@?*stbt @9 VurfNw3%w+ɱLNv_'^F_zt#I&vɉtن:7dٹ33mî U'Wl@n%9^9ω4ӮěH]k]?ZԖv4 .9N P杬2;wFw&mvu ^^;CȔܭ$3+'9fR0xIk~^ҝҎ&%' dܼ3U7T\~}|{* endstream endobj 408 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 409 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2562 >> stream xIF EEx\ hyO԰D>4bᅭw:]kIuON2O*Y|IxY祙gK47MTR-yee~HUPqJc҇$It͵κTz{!7{"?:+4l7憷*TJ`84g4sI^[JPQw+igwo^Ok~BI$IwmwqRg{*Sկ=wT=t^yAsD{*%Rw^D39$i-%;앴37'^5?$I;rs8)I+(=ty^$Q$J)>{꼒${$=utג$IS7׾";IxY%NE8)ID:+I"HSH7{-I$I>us8)I+(=ty^$Q$J){${$=um~%I$靛ߧn}'%EwŹ'N8K$pR$U<aϞ]D#xO^9}#$I$s͵$qH8D)^tyDNJ̽DtV^D"\9}#o$I$s͵$qH8D)^tyDNJ̽DtV^D"\9}#o$I^7f?= Ƅ9 S̿u} BgNMjˆ}-mKy;Ờ(p!d'Cz\i;I2n`G2$NV?ݕ:Io,33&MٙT?u?d?1v 3fk@aRUW$}r0߽g r񜄩:cOPgx\;9[UBvWJ$aLSϘ6ogg:Su,O?Ipp:IT35og'Py?3sg=IuW]?NrG]Փ|1 i=ܘ/ɕWݽ9*_]>y1t>gU#O6a33os+}ww 'k9<3=E%B&;0Yމc;oxZugjO},Ƭm^_qrr:W܁L6m}^r:Ru!rZ@]l3?6Su&I.͜2MiZj?3|U!as$*t(endstream endobj 410 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 411 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4339 >> stream xKlGCS/H5bJTfOeYWiON蜃'oŠMsrævHJڛ43YΤw()KfS+?Eu)an 8݈_y=}SO45.g~:!g,tils{?-W=̙,O$+Zs&AAvvYRJ~KO&̟a&sn [w8珧f(fМjZoT]lS8lKX'Lsi[Rܙz=9wMt oӻ]˓yEW]O^>NٻZ4v3?o}#Tj%M=}`o.cgV퐐qnRV:?iM~"-Wɩ=K̜׹}{ɤRk H|B?!ڴ0wcY*>Wzۻ)Jț4[-$&ꜽ[ΐ^N,Y?lWj5Q8T]lS8lKX'Lsi[Rܙz=9wMt oӻ]˓yEW]O^>NٻZ4v3?o}#Tj%M=}`o.cgV퐐qnRV:?iM~"-Wɩ=K̜׹}{ɤRk H|B?!ڴ0wcY*>Wzۻ)Jț4[-$&ꜽ[ΐ^N,Y?lWj5K 7NUPQU-19:bu|w?x.<;$+oH5yERy߲ӧܕ4a#R'5ŠHTgWM;:SM]җZr^Gk#jZ]q:슌.XbSLQ$ϙ}>%TdN:nS7dbS# =_jQ˭pgNX'T_YgݓEuNMs2$JMx=\SR{˩Ș=Ⱥ͐îKtuNgB|ꉨ3{a9aP{lOiS_E'ӊfvٵ^ΊgG_nHݝzr+>jzIRU{Yٱ^"q" g'۩?'7WET)8=x:s*Ի4>*S'KTeé2)Mοav/vFR3g{:uV'U퍦9p{&)=TdLWogdfa׍ܥFt:3!SAXw>Dۙ޽P0=Yr6SOܧNéޯu|uiwtwCxJdo/gų/lKT7$N=jZ!)~*!|;o.ՔTܸln{ar|\'Օs_j5!ӓ>NQ YTV7WՔK-Jfz..s# &8p}tߦjORu^ueNz@7PǦs莳3FvƄ(O ġJY ě@RogBBYu ROOU&;ں-Y.Ӵ3pOuV_ .0#s>jZf)5?jF*n\SSֽhJAqJJ/펐IB (y,*+Njʎz%q =OvUB>:oSm'::ir2' J c9s[tYE͙|#z;cg'EP}w,τfI d3]ml!:t\S*mY,ON_iZΙz8g:N}FXuuurZVF8OWaѪ _e_I/Ba8-.mrMN&Ω5< zeOO$Us"iRLRe3) g'Ecϣ~k#gF<\z' 'oNWO>#l,BΫjU2wJz= bťM2ˡKiV+{Mq@{X͆J!#<==d}n-WN<5MkNrnDJߍ_&NڸDJNO<7zOެ j{2EomJ)|?Y9ԑJ0Ei&Lg]JҮn ؾ'Q[ڞ 'L+WaS'lyjZf).*wBéXoqirRڮxsztS+V,„>@;OOY8_в'LIS-VժWio(QjB<i[<͙Ys*4os# 2)7Ki=G@\p^}IEwRu7jN +S:u$0ܱ^JyE,v&Yotx߹O< '+]^$jXy /]YYx3\坿yO-"bz\/.VgZU ^s;spvjZu)O?> stream q /image Do Q endstream endobj 413 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4407 >> stream xK6 D i&@I[/gb~}~ ŻTp:> b? Ee|4~S.=3*T_!9?|Dtw޸ºR{AZ\f<˻vq9W*sۯw{2k:]n:x]X>)'{W.#N˚W˺ē9֜]ԜʳYg/e־mH{jOut 32k"V-*ՕN߂Y:+Wܺt%,poDB=twN:º{I%J7NSruES.B=7Ε gO@td*lux.<{w\yՙjeͫжmӓK]{<"۞+؝ a9=E]ut 3"YUOorr ^]]]]-HQu]v?.\s5>57ubo 9 %(D:MYN 9g;8W*=?z 钩aFxqqUgRC5jpC۶MOZ.Yt;Ll{`w V/AXvg$*n}g>w 'tΈgU=^a˩=7xuuuuS EuCzzHprw"OOQɳ+]X`nd^nmg[tRSlV{yrҙC(W<=$܍N^qi`n!;o.p?swҙMճS*a/t)&RhJκpT9:E,Ε:ըNjdBBK*![VH7:"TmyYnB{nuԓ3UqcR)F=E)'ta旂-{iYmIIMYy~IgjH NsV_p7>k g;Bzŭ;pͻCr Ig*6WWxOdӥH):ݣS!h{8WV:uۛ!=$ y.6oY!ݼLrPѲe9 qֹSOB.jTISSx&ǚ_G'u~fr7˙sWWWWW:u~ RTg=.Ξٟ]qE~'+]Xbnd^n9i:W6+Ͻ<9̡ZpIukN*ó6>+WܺczH-tnCDYw}=dmsz>L.v$)&jJY' !i؎sըywT[xX!]9YܯNyՙjeuLw 涧W6=9Sw;&uN~M=ϒčb:_G'9g/ +&B&r*ՕN߂YG-ogpW8avIJo~3ټ[lNNj*s/ON:sn/\꧓𬍬 ؟| i=Q]pY[޺GS*K.i+EBHm\?n5y^Ֆ6Oȕn^g0E˚ͱG{*8i.zsguS;&& h|wXa{ZV~WqB=sNĺgr ^]]]]-HQu=E!S\+r5™u"g^L36T=5''9hwvFXOȕn^g0E˚ͱG{*8i.zsguS;&& h|wXa{ZV~WqB=sNĺgr ^]]]]_ԯ,mW{dgg99jw).sOOf9D{3]!c+VSᳳks/ON:sѮ X5=uX迋NMɉt'K׽m!YN빅oΤvP)z5TXה1\)w:QE;EMBTz:<a.S23iV /!. ^m<y8ʼnOBONm<7wifA9MN7t j'0{5y||}eWN\Y}])IIrq8NYg]ACut 6r)8S{nJ*ҫӽ6S@îX[fUH)9vk.g|ŝVI.x~8sUY}> stream q /image Do Q endstream endobj 415 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4446 >> stream xA, aV:_Կguw.0TY^-ԟָ)/w^ג*St~MZr9/{6w2pEh202^}c/ w^Sezvr{91ݹl\=>Z 8]+$u_>=^GgBw{.5enRq2j\IukuR}Prο5NHʥHY͟Z%9]> y.[s˹ ^]]]]j=IVir.[aa[x:!'.ug;領5n;hORe߯Iҧ^G~Vݷ㺢dDFmapMٽE򥽸f{m~s$lM.ݹl\=>m mt^ wud8uIgH8gm>-~-&z^N@Np 鍜{\[897xuuuuE@'[ۿh g~;R=O9uCN\ avMi{kܔw=} ^ݿ_WOý}SouE>!{Փ)K{q%4N='IBOz\sz.} ۆ8@N;)p.τ˙wpδ.|s[:[5MxtݷٰS|9o$R4|8PE™9)LSqr=oꊖ;'?}L iooY'R5\|Jy;՜:y 87;#'S]jsN:0֒ IsK=+Ʈ3 dVO4npjcCI<;.)N|efϯA%Ni^NſGB/?K羑;Ow(Ynojy9GI;?CS\/nupyN:!}9W|%o9+ZvЄ4۷ze>?<jNIVqn{km؝)w.9s'w|kτOC^֥Mmq}c2S'xR78x}5챡$g?Ngl23SWm u'4ۉz}sFɣOߗ˿ХsHΧ;L|kz笈n{_x5夝5lG>vh)ss3H7wγ n6Kȥz:<#yKp I;7oΟz*H3 CYQ2}T^gooOwğsp'h/3|"ۗ=q*J8ݛi{qOwr897:R~و)D.g.8iwI9g&N35qo5BOK#DS]ɻM|).ݫ=|.u8tJv!>g;g|KvV԰݇vڽ[ɧy-tR"9Ϧ{6\ffyx*/!zuxWw^S6BVvԜ[2uGO4oKʴ"8s܉˿'z'S SsN=$8wncҍ7.vPlvn3}z9uB"7POҞ('>Ww^S6BVvԜ[2uGO4oKʴ"8s܉˿'z'S SsN=$8wncҍ7.vPlvn3}z9uB"7POҞ(&svGi|GY:Py~BEPws={ubWk&pIb9tN{i=/t~BowS\>t Pwؽ]f6Y:Q'~nQn9%!'ӐQȗO :HgK?nmrKvIf3wr-;M?.g9r_eͨdt.h=lӝԕ.F=o&3%?;ߎӜnB8k~ yʫ w){'Tyu7۳W'vf­'.ܟn@W?DOg'&}7C uklfn.us ܔLJfNBnʷ%z}$-9y{xN\?0{s%:v2:%{9杕w=$ՙ:Mw &>M5h;ӆ)sΤOgOjw̧74Q 14q8gڟoYtQruvOc̈́4BmDgː '({kfssOٚ )^Z.N;{nc#|κչSOnJC%u3['!7גO=kΜFW=< pչh=uE4l3s!.{~L? pT~_bɻzHL&_Qr}fi]IykckpؚBiCQy9gҧny5;ӛySrvٸ\3O淬{\:{nfBD6etNIwoϧl̈́\/-B'=[~}gth|zp&nќIݤג;w֩6r\>=p'/;ټt6]P[^ݙ`kxf[sb;Ou\ fk)7{}O;ϼ/|Ng ߚR~Bo"Ι瘓[֝]ltm={EX3!G0TO8Q2=}qɷFr> stream q /image Do Q endstream endobj 417 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1142 >> stream x;r0 C$)Q풠yo\KHLg,t]k7"mWOp>Ӹao+Qퟪ5+|~_̬gv]}O3%[g"^sUpQy{U+xd=[V!CgfZ\lώ~UG ct_g#"+˝{vggΊ=VJ{#YSvU8kWɻdgt&3" g[M/'bto$+GW+ѳGw"n?jۮ}ό^|po<'GyoqW>.箑3Zwc{_ýdʳKg2^YV;6;s=3Ƕbvc^1-~*`w=::Χd.sl;ʮ;P᫊uڟ1ν[xk-_'6ɜysFUK*sl/kLyVqLk2^ӛQ}dNYg81c[W11o?GV̽ ˜]xy*OYWw΢*Tb*1@v1f:3'ɹ0K't'LB.L.69wfud~^w+ ?3Ewqɹ0K''Bx.L.69wfudNu;1@2fOqWer̤x \޳1 M@]:o;?+>'U˘^dOQudN|]˘ׅqTi@]:9 \y:cˎd9+KF ԥrb~cGc2_Qudޜ@AF ԥ6Kendstream endobj 418 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 419 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 338 >> stream xڱ 0 E!@i@J@n Ǿ}+> stream q /image Do Q endstream endobj 421 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 422 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 423 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1017 >> stream x[ CjY寥Qz1Wv"tc\T* ;%O$'5:^Լ~[}Zye]U7=_ sEYTAwJH;N"k;u:éy/@~ʬUeGu;OT*'NW}EYTAJD֋wzPѩNk\|Tf}m*?B B'+!n'.bH^?v EV2|$^#y8 Gendstream endobj 424 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 425 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2815 >> stream xQ$)Ck{j%g%HrIt_?wo '3YN?_0<:N P~u= m.h|olxw"}w480Kx_|x2 sXp^[7m.h|olxw"筀w480K/Bv_}/@><}˄uR8qށC7x6;V;@D%!G O^ e\V:)8 @ۡ Z_<^`;@D%!G O^ e\V:)8 @ۡ Z_<^`;@D%!G O^ e\V:)8 @ۡ Z_<^`;@D%!G O^ e\V:)8 @ۡ Z_<^`;@D%!G @2{%YӬ?^Zkop{"Jԍ{i|] |$?׋Z".m]xNwNd}w?G ==k{թn^'N xWs]iW0q*^*NJ𲷾Na4NlE.9ET3S:3yYܤͣJAnUuw{Q$A$I;Aiy&OUmXA=ܜ[׬ˤ}&Y͙.5" 9g,VE,ʽGk搟+Jz5PxOў+-a.]J*ם79{.t u~{zflT?zQK֖ǯ}>拏QTЦPEӽ5ob _kMvv. 뮢ğ4=T̫7Eg81KLU:I•9t_E'.]Q8<Wx*^%ʚjw'ޫ|*dj_MMBNgr/e)V=4|]3lս]QҫY{Œ('._i wRRɼt sS륮3SNg[׋]<~'h[}}/݌2OG*6.ytSZ_S0msIhE^w%ĦWb^(:Ɖ L\2eAOr_AS.$=9(viW\䩘u[U*$-WT+8^SY&sV:ojBr8{ƕ|s?՜:Us6YUUQ^OTzUߥKI%S]Vppգn S:L㴾 {:QT ǯNV;}.)&6ݟ_C%uV4ТZpEjSID4ׯ0SӺdm$ZtSuzu+߭'iQ.ɍq$v*d]{R:~*c6Պ6~n ZK/Nm~'R_so;zG}xsNJßjd9ìy('e ҥvݩ SV+T8UR8Q R)]y&qZeo=S(dօW{>tiOï:+h}-ew$swWJio6 -:ũ:kFugS hCS[]g2=)|m?z1jEN?Iϥ6g?=OzniN2qyz{{_W86A^V{df㽾KJuΞtM!Ga)(e*ÿKZ :9xﲷzvH}.Uݧ4{;g{&xd/fS.{~uѵls95r-?^:U&9۟SӫkdiQ}.tgLm}Ux _]z'S+`5^<ΚWwLna:}epVmvE{}.%N=B^SPQT+ϫ<t*rXeo=ꝑ\$O[/iN9w"S^%(!]2k$sk:S[~n$ujLįs?UWӢ.]43d2UMiVgZO%xW+:ݫk:x5=ԙ8s^I2s *\OBr+ = wRRIt-vϿk]2ϫ> stream q /image Do Q endstream endobj 427 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4087 >> stream xKE C(ia赨SNaB L評ٻBstIjZVRﮮK*^Kwl NlidFM9g_nl*SW'$ $荻vX܈o^-m~B${>H|,mzr㲝Wo$_7X̞ Y3%qb%K嬞Xr3sǩ}ظ{RWgɓS)s&&uNN'r"sȼ6dS;o$ZVjԯaWwfۯgz+97", evuf홿S[EggwR'Ueeꍻv< %sN>=%OoBosGsի8}tfwl vNN+U8~IJ_N:uz\z8 YoH7UΝ'w]׫t"ΙTj699[~BUzo?FTo גx&܋ifVjZҔW;S5K~=V\'̹ffg@'.۔3ӕm} *ZS&0Pwos廓†P$H}e˭h/CB>|;z#x9ifVjZҤ~5%!{ۯgz Eu,;6VBE˒V} :qԻ`M w%PyRʪ⹦WsrpJxV]Jزo~RKΈ$S3owʿB[qlwT\N?Ԅ"V-.wkg&dUX̞ξ*]Twl:5e uHz,;89񎺨*lJWϞ:*:ډΈ2$3ǹ7)fjZV*MWS5ߍӹ@TIK'V8Z)˦EFz=/Vs9=SUrw$%t&P*ƯAf,T>HEvVjZM>8~ %;uvfSP%G= rԻHȫtWYNET#Cj9{)yqK9iӮ+SV{[}'欸 U6-EI3Ŝ_ęl2)Ҭ_4;rn0'-]TH-5'~ꛪTYUԗ#z2SL+n {ωS$߸r1{L~ZV Rއs2|?uwl__rĻgA.z yuξ*˩jDT~H-g5^2/.ziס}?'suevʪ2w/˿/$ӜwT~ڿߦH1Iu&=K8M#S >bG 椥 /B}S*?rs#WO?s*2sIpa9u7qXw>Q>#fOɯVjZ}AҬⅬk쑻}>u})RO磞ml]$lm:;kyh媒y8'3QS%⒧y_|՝J9k +;;ڔzGߦH1Iu&=]{&?W'<4sLڇ_wn0--~*?*[S=zw9$T~Ns"T?-'gfm5=_w;WT86wnjZV?8a endstream endobj 428 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 429 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3905 >> stream xQnEI C1NGQ6[X7p0??~. :ߙYLicH{(*~G!S9)8Iu3k5kUUU-RgZVR8x5kY7_N?w{+;}ګ)U%Z6.a1ƙ+C6Hu ӥr/̋#Ǽ/.N8xL>IZ]d|P(R[ZN3Y+fiԛS=:9 Cs'v2]ktݵS:6쳶2U--S x9%Mdx{U=27P͙@FS;}YVj%0^MZŗ7O=]l>fj{w%oM F{qо+s/Cti 1KKD-Τ:9OsVk;E"L抳Y8&󔇹e3NuPEĴpz9ɯL|.]w픎M=-gLUK!4gNtIS'|#s7^^U}ϼM)as&N"uVjZ-{>x3bSicVx[kԻ lg|/;Nڌ" W2lN&jʽ0/:?&ytꝴʫ)w$rF|P(R[ZN3aS4qM)sj7^79'87LԜWUs#z|eN'C5qL2D4u72}UUܔNwr6[jZVշ~/qއwof\L9z>u}ժQ{K`-z0a̕}IQ$_DMőc^Gİw?NVy5sUȝZ"KKIu&u"b&λfSޒ7X˦a#_ݦs|/;N;E}!T:Mőc^⫒1S)䜱%۞UVES挓yRpRIg6I7l-+f]{fl7?H 3-SPsf^U!ϙRujxӞ9S}isr*)9u^W?SY3eUUZŻs6fUZVj"H^u]/Yz󝯦%Wv贗?E}+6^דZ|5W_)s, 3*)UMݣ];7{n*n{wV3"5Njz>18&󔍹e&r2ݘ‚3XO=jVWY]?ϖC3]N_Eb=WPUy]LeˠK'Η63V)O[5,VjZ}c{;_MKi/^V,m~'ljzSwYNEf#lUS.諚r/̋Gwn9ݤU.d$2?9?g~-Ej*j&?}bN5qM)sL)z''?$d15g>{՛oQ/~-O;7:Bgޝ:{zf ΗA*Nf/)Imf< RjYVjZu?V٘s;_MKѝŬ$Q˖j=v\~ڪStҞ**o\P2zk'%d@x{wW"I=_^y;ɬLo"CȬO~ߺP1n2< >Ueɬ%œPOwojZV]O>Uo6\:WӒ+{vt?E}+f19nԲyr]:?좊Ի^I #>g{RףmgN2+3i2+S߷.#Ti⤛;6DqBsOoNوaH/5éߕMWY]?C5%<]ywzrRUO'%}p2|I$fƓ*ijZVUzӽ^'w`SWl -EVpeW#7^姭?O'8ɜrA赻Vqv\ߪj*GTDs6Ifeg~;kSKK-zd)8&ͳ.rBtղueɖ2é?݁Z]eu.^Ҩ<;]ZK]3':N=:$o=QLt)+YZVj5]}Ȝw>gSw]h)޷pVF`-[$zg.?mU)~:iOI WFue rVMU@GW9ҥ%~)N2+;Q^"^]jiճ&MI7wl]vq&s2㬝+3N|Nu*wQbF)rբ]9q}ȗ6թ '+b"K^̺jZVRz߇7!y %l\#>!VN|/B]l]p6漫չʙ!TtОJxEw鵻!\.L/o.U[pTqdVv'ߋv!ERO*T&3ӶP滐]tXEU*wQŻd8=ߠ7~/,:B?y- @aަGZ,S6ujZVӥ~/=oB2G6K22gG|Bg^ ԻlDyWs}3C=z. tkw];)kC]> stream q /image Do Q endstream endobj 431 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3800 >> stream xQF  i`0Img.‹c~cW2I?}>㮛ye_p7ywvvdpF9wqYSRzVQghlo'ANYj[)3IdOqvseu;ߡy>ezwrS^ü[n<ݮEoJk$ο} ^2;˪]ϳX/=gމ[ʟ$cM~3h8T&dz) uw55]wB!{iKc,z瞻ɼxyun]ly/=si<(Ϻ).k? bsktxO]$q{d[=,a|!l6l7lɼ7宎xPÍ7|^9< ?eN=x{c7rdz lnFcM5D]Qp݃{a{kugPm*Qlvw^N2T$k$qPXO&ϒywv|l29BA$vӘhn}sd^GvpE<޼nX7.<ٗ4LgMm5v9mBi.p̸=T2ϭ0q]dޛrWGsrE (oƛwC/2'ɞn96m71&k8qfd==K޵3V6( ;u'no*5l8j{|'vgg<; JC6GB! VНw18| *9gv*v;5vrUrx=鷧h:U3e7^IWSy64nL<gɻ2smmSVϬϫdk77gL1ɾdSScX.ѻZ%jޭ~ٓ~{S=3ZXNZqeT?U36vtJ7_Q%ɟ={d]~uEϸix(xnn2 y:oCDa{/Sy[1|x4[gu'ͳjQ9ǟ{ux>!;Oi C!puH`cKcV}{qNo֝WnfWاɽseXDMy3vOU$:\J3{%M٩ {9Γ|ӝeodFgOĺ}W7O[=7rluy^ۤ5mYٲ Q³bO;v|<ֻ֫``;mݬU i=T85sKcJiB! +Z[O㱵Ie]7>wLvd_ o4rO)>wr\w=Qjiݮk³^ISvw^(t졿y%٧n|d }nӪVOco\漩7[1pW6iD{?wͻe[qV켇-CnSݧw7O*.8Nxg7vECGme/l܅ػRB!q~UO۪O]]97Y==5k0۰ݜf^F&oӰL[4lʷCc >3v{dRJ6y.ʍ̾-7ԕ{u7yGo1pWtO4y۬(X עع-of=;q=L>8<kŘyB!7q>g9ذ7lׄ\Img+gPvFw xZm῍nf=m}|L3wH#n# !Bn58@C!<ɷY!B!B"1B!߹!Kf[endstream endobj 432 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 433 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 439 >> stream x۱1 ?Ǖh]qƮ6^YݡkK6`"ȨXjd3!0 @- @l^6Dpaˆ$.52*A lLaMNe 4\jdTj$@ N .5)5z@T@*NIFF{(Z4IhO6DfjQ tcA2lp ! ,ʆ' +"2lp7endstream endobj 434 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 435 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 265 >> stream x 0" ߩ ̰h~X,Wendstream endobj 436 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 437 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 438 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 439 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1433 >> stream x1@ G*0e,]̵ `@~`_?yLujEs`CMZEnF/\LgKBO'.kI6UOT %_[ lԊ0 1^;=VWO)]l8&L|K`3v^t笜z?p )۶}^jE&s`CMZEnF/\3ەCgKOHw& `{} xgӴ97 *6n/mEwʬwml=۾~="9L&^7Oid%'#wOd3Y4mNeMw):`};ҝS=Ovf׊.a 7iHs%#o=oצ+U.?!]tyANO6UOӶT4ٖb8Ej"vߎti?!䓠z}?{ٵ s`CMZEnF/\[۵JUggKOH]ffS.gӴ-7?!iN`mݷ#9%O$h㙯;{ٵ s`CMZEnF/\ȻG=gKOH]ffS.gӴ-7?!idwmHwNɟB> ڦxkv&PVQы4W2vQ钻Ed d3Y4mKeMOHm):&f};ҝS=O9;]+0 6ߤUi"͓YN=gKOH]ffS.gӴ-7?!idwmHwNɟB> ڦxkv&PVQы4Ofg:.?!]tyANO6UOӶT4ٖb`mmݷ#9%O$h3^0=$t=M C埐.< k@|KŘ_ [RLͶv;O{ !mcs g Σiz^\w蒸Ed o|KjI}vߎti?!䓠ml4z< y4ͻo+n6.?!]tyA.|o1)endstream endobj 440 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 441 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3650 >> stream xAr$Ic梵607ݺ@Fe;_=Nmyo$ә|! 6I##3! })ݧaFr-ܲ!ܵB!B[NIc}/![B!7m6ߖF2)wܠo#ߜ42>= < Bnq|nAZ!n!->Nɭ !›wo{#m; OnзoNEx OnLi!|8p | w-BSXxAքBAmhymoę,,m8$wfНՁvէxk>vDrʽ-w>g]n[ӰAē;-wmxDIIxs;6ӡ]cq|2]7J[еǟ]SnN{1g OZ=;2]!]nCKnDZ?жOaAwVMW㭹{):'s{3)>ܞ'wuo]OúOܷ&gߵsz-''IϹL~W[wOtu;*yoA.wy;TWN;<)<~jBvtOd"Bx'Ċ:cώNf\5[YnSN+jW> K4;g)f9۾C]F)7-cfM;E!LV={N'gߜϩϭ}Sfg{ۚ'ݹa<;뜰S~wyj6C{sN):oS xvKb: Nv& az#mN'lo!m oS>;:m?OVKsleO:!8]z k+/,~NSnuix>ROIg7nkFN~vr;V;dzxPvܞs&O;"))pf}9&[+M5z.EގxV(;e>$s6Jɞ:ܲ!·m:yʞY9k 5ٿA޶&Ba[ߡgWSz7S3|܏&OuP&u}aBOO^E?홷)o+'LY݌ns7D;z;TJqJ]pzϐNorUT!lB!|yg;uuzJ[[Lgtҁ3uE%CfdfN4qu&ED*]9SLy C:ǡZп_m+φLٝgOF'N޺3]',[O~jtR gsv2])1y;O:Shz`n޾݉f٧ yvwuH7{bZjZ?~}8tm|!>yNBxQ#Lӭg}rr:}:̢١ OZ3x8 OS" a")Y<֡PP@߯TgC3MDfp#'o]_͙tԧjwMD?5s:N9ޘIO]鼝C[E^)=0g7o_ADv?ja:6W[ m>B<io=~i?N4m4pJgk.9m{ $t  mxO97gÊf:fpg3;*_WۚgL9ٚR{j3vNqKڛ|gg';dzc;St9s I5-Wg=}:O'ogLw.MNݵ9Loޜ=|ncB!T<pm<;ӪVi>wiR\>wrڨ@I&4ߟgsoT{u)u:$ώf"w$U鿮5r5!Ԭ[Wg}7%%Μ N{!wtUwx{jPs6fj[pT{tNnjǛ>n]RksȽ9={V!ByvwL2VtNQ2ىZObgtٟ;3/ϺsžzpݣS׬NT4\uV< oμ\tuMER?S 껰{#nmm]_gzYfwfv[NuI4RT0SzwF>jnY޷LWu)~g?S=Ph{~\QpDϙu{Kv})Nu>N+QL|vuYwvfwRѧS,\\fϔj!By.;I>kn>tjLyvV::+OϪ)&]g̋鳮c6\ns5:uS:)WrDOB3.']]Sԩ}n"i.[s<=qv[t[tٝݖSe])MD*>ԥޝѬϺڬۻ6sm!U]yJϩC,)Wl9sfޒݟ~_mJyS} m8u{]GٝTԩk69-W>;3Z!wYW S:xOY|sE򖚂C,}*>k~̛n_C12)v~g=+;9~ot[NQVr'ֆ;5۫HQ#rS>BPP߅`7s+j?ېYe-{|vSN{|*y{ӌNjٚ˔ UfOZѬ3y\=s؟ũfݛEj)tޝZq_)¡"_7nm7E)ͺn'ӣЙ,ͺ3[43!Cxendstream endobj 442 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 443 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4255 >> stream xVKI;Loڳ!53!"vv?/ywӷe~s;+GOk .Yיsj/{8uuHi/L` ]HHeDjbX79̚4g:6ݔyr~wnogYw:jYޑ*)w{U ʜl]Z[љp5ܷrmk_vXaʽ!  ɹ)M˿YQiQsǬTsT7δzvoEOou^UwO4AOי?~d2*1\MB<^mYjN5zw9 vwx OrFbXYߟj=~6fCf(qSչH66+Y[HVçb)$,pzCT8W:+kuA=%'ϴV|”{Co2sAS,LщpY71NRoo7|i=ߊ4:g%O Y]i· 3'OOteUcι|xXjN+= jԩs n9Y4bx Ӿ_,~ZB+ԩ!\'|][xWpA.2W+ gדMND\8d.4=r+3”۬kr.hJoѹHcM̿+Roo7d֔$/V8yq'2LfG9}ijX< )]wďYqUj_] GO/aS,+; ;u꜂[/w1*uNbX|BzB/ֹ넯Њu:wI/_a(U%\Pʄ.Yyo):YKn/=MO! s06q ҴcE(xt.Ҙu4<5e#ɨd Ne܉2nQw_rZZ!+#,zJ]3ck\Ws,DQxKKmBN: Kd]Lx j}"S~bX,N`Cח/ֹe]faÓ7U]gX(Lί_m׍:jtnk$d8 \=|Gmf뺺ZGsKTLyiB/ KT'a̽Yl<{ŀw]Gz;ԁ?*4`#-̴kvݻlNP+%sS7ˣ6sVk\W3R-[$پ⨽i)HDBz<“K&bX,OR'0ܡKUܲ. 3yI3,x&owwׯFNKH^52_Ozvˏhv^>ˣ6u]]#vԹe~ÀW4\΀\%ŀ0S^r6ƌսb@̣JOC@NوdWqLf5;vS6u꒹sǩQ_g+tx5Jhc-RBl_qYP4G$_G~=O {HKcX,'~-t}yj[v*W<,mqO O gm694Z^rhtnk:e8 \XS2d6{uzn.7]e~ÀWѴP\%ŀ0rt W+ݯz::*v< QљÿQPrRJK`9ܽn\3[\ G~5Jhvu83ϜM yWw;9~qt4%ôzX,bqo.,~Z==,XMOqOzjsH& KH^5.3_Oz~pC9QHaeƽ2?Ua@+Sh= A.buz*<^oGkwΣJOC@ztM = dnj KK` MWx971,Z])~5Jh69-ϜM yWw;9)~Y͊Kɰr3Y,łYXendstream endobj 444 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 445 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4264 >> stream xMK 1M,zS& i>d?|{g>/˟KܲgSSlꝞn n1śii{wTbqM=`7sĸ:ߕ:z;ԅz8rXB~u34q6]A1: 'sSO[CKǚI]^vv@uxN3gΦp}Ww;ᜢ\%+iϤddZV՝-(*~Y\Zʳȏ; TYT]?3=5arGU߉OX3su}^<$AWE(u=scm™6SB_F937]rTIpx"$G-|touuܿ+u*v< pB8gi>6\u-mb/uZNs禞V@5ԽZ6Vg5ϜM8j,w9EEJ#W>͟IݟɚjZV;_߻_zZOqnY9 Tlόg?km~4i ,qSɼfʙAWş4H[ο2ONpI{.(!i8g3:{]PIH]sb`3>+DI)&R,LX^%sֽp]u *u_]iWsGkgSi;ᜢy/o)TS*jZV+Dw׬eOqnY9 Tlόg?km~4i ,qSɼfʙAWş4H[ο2ONpI{.(!i8g3:{]PIH]sb`3>+DI)&R,LX^%sֽp]u *u_]iWsGkgSi;ᜢy/o)TS*jZV+\mkTa$V)9Us,3#l{VALʩ)Lp sۯgz9;g qvI==$'Syeo$M'uB2/+i8ڡ~ @ӔyJb>ΐУB*vpߛd5Bl,)4Wlʹߜ[J1:e;gº2gGx|΄lt ! #'UtiWsW+-o+y.Zg,Ӫw9E T_bwۆ;7.5g~>jZԪks_ _˞~3]S8s'"YgFV'\jSS8+6B_rvTd3^%?u zzINHNd^PWpNC8)OՕ|o!G+WSٔs9ƕb/uw΄ueΎ* CnVGN޹ӮVZV] NYʧU4s橾Ċ wn,*\j)|VjZUz=]wgNEo9'̿>?VGMdZ<'n ߹;oNy x9&us/j핽4 ~ANZr*9z;+ީG0N{&䪲|$gr>rn^eVw_H:%$Zx?Uou U2SIɻvv=Q>z9S0O%Veu:mS¥㜒"jZV+XfN r,^7V/s8-d˙O?a9մ:4h o%z9qkݑs"<[94s{Tk썤N rҲ{tV'YN==*p:ߛd5!W~'9s*p~O]B:w/,! T«zsNOJ޵i;ᜢy.,)oz-'.)|VjZy)v}*8X>n*n8-)w7d$zjM884NgoN)Ъ7˚gܒF}e]}f%M!uB_NY%GoR*o!G0΄N=I9YUpg+|W(-L^KK 32Ku/IrRf[;^eV“w2e㬊N;w9ErS^9=sV̫jZpUSspNO,.mB OpZDSO{oKI ԚYq`qiʝ%8')=O[Fr7ms3CġU^üZVՊ;OFR޲;TZ\׫8}tB :-S.h 'GN@!n!URvH9u/%'gb{QY]GpYISH _A2{Tt:Eod#XW?>OΩsv+!~c$Y%8.Gu,ZG>;:yZVW^o$ n-;NťxG'0a 9`Ѫ2傦pr}JaR%!EjdSr*hYBxr&ƺuūuw4 uN GESFj~O6wCNG$TIpsvOUTINqNų lw\g p*hqPYD:g)=O%]YΈrO{TwʢEzQӻcOkWjZ)tUOWvFR)uS;;%E 7&xR"?3lfK,3<> stream q /image Do Q endstream endobj 447 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3595 >> stream x[nHD1N{(x0Rf%矏?繺^jNuJų~szBѵ;T,nEΜyuyjB6<~SobDͫm婮X%$0ey/H 7nA]y3[&3NݩڙEnRkQʻkV CbΓ(RݻwYIqO٭י)\&“#nvy5kO 93ސӾ0G| NM㦡3ssdNz)neL'-=!7%Mt2&nnO.O&jlsrV~qn j+[ =Oݸ &?eS?9My'7zFzfzKUo8cn HX%|xOϳ!i{8ʙ:=^6a uܞcpkYu2*fMS7[sRU{ڞ${NHcޅ?SyJNaV't:9EѻsgNw{;F)Rp ow>=N*; uꦬ=EAxY n6iyV?w+ ~p7- Tw lTزXp=))RM,^Mix׬l'7tbON7dNWSuOϾcsNQ:n5ż$df6̴BvV{&{&AjZz:=e;jBMIݺܮ.ϭsq7O)9#ͪKC,y|~սWr+Rʜ']oz*圆NuSٞW" u|7u[4gxOmRJ)唜'ݩjNӟErn$du m>Kؙ| V '랲xIp@;%Lss&lY'˙kBKI|{!7ۑ.y\D=vn4CRk+ONyG.zn}Q1-GcUȿ/g9qEB[pj<%'gr~)j>;QG'zblK)R&Kؙ| V '랲xIp@;%Lss&lY'˙kBKI|{!7ۑ.y\D=vn4CRk+ONyG.zn}Q1-GcUȿ/g9qEB[pj<%'gr~)j>;QG'zblK)RĻCܛ\nAounS;e77NFg?t7nO}G*9t˛kN%-t#3~FScw-:-{, .vii]RJ)kݽ۶4}77{͹r 3I-2S;Fg?t7nO}G*9t˛kN%-t#3~FScw-:-{, .vii]RJ)4oJ)IoRqJ)RgRC.S)d~SRJ)RJm+RJoRRJ){f);Rʿ;RM'[?uK)RJ)۶RJ)^/[J)E,-RJ)EM3K)ߡ_RM+O~RJ)(J!endstream endobj 448 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 449 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 597 >> stream xANA GO!Hha7vrFᐶ%?aOl= -͞ } T7 [dmL5/g!c{@Ru4 JytXg=ҿ:gHm$f:K>d/8cf~@ϴcmL~).lLo@p zF6L`&lyHm$9;a3ye?ͤ.@*m1a ӱ| L T8 Um5/O #&06PTsLҶ0W 3/n\OҶ0W 3/n\OҶ0]! Tz9I]T6P.J/p= J4_\@@Hm`/k op\OFeendstream endobj 450 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 451 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 452 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 453 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 335 >> stream x GOjn>RqcrE s! ?tsRi3[t=9d{|i==sz i?v\⼋޾.~dd"c-@'endstream endobj 454 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 455 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1365 >> stream x˭%7  9{H?95=ǝ9Y]ΐ).ɱA+K )O9r cN1fj1ig[!wxJgSw;C$=w/96<%c-T:byjń_߷:DOCnSsܙ[*nUNU~ rܚ̨ě򔌝#P?3g橡~}|>OONMqgNntqV9uW3dʯKrl=pk3oS2v@EX+v쟙ZLho}Ct>9{H?95=ǝ9Y]ΐ).ɱA+̌ N)O9r cN1fj1ig[!wxJgSw;C$=f03*:<%c-Л?3O r P}ʙܜHȯwu9t{8ΐ).ɱA+g03*+|ˎ3P -9'͉ZxwXOJW r|3-Л?3O r P}ʙܜHȯwu9t{8ΐ).ɱA+'1-Wzw3g橡[N}s"jOB]9 N0Gn'=2%96a$ #@ocf<5bB{˩oN$@-I+grs"!U;C$=ߟĴx^s  qendstream endobj 456 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 457 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3892 >> stream xAm C igI+ER-kZt3|3j5K{C[rHV,{r+听ؿ;s힬)>s7SVw iI-S90󳘳g  I)8revw Fp7S'N{]*>Ԅ͜r3epneMBڍ1?)zs4˖I]Ij3-nsxIs̴WpHI6>'yZJ^N&Of2ݒ97D~GUw4gM;jZV+~˼;m$#m?o>I-S90󳘳g  I)8revw Fp7S'N{]*>Ԅ͜r3epneMBڍ1?)zs4˖I]Ij3-nsxIs̴WpHI6>'yZJ^N&Of2ݒ97D~GUw4gM;jZVsxVo`Nm$gԻԲ9}HNȝ3 !DNu7%MK;S-3STHJvMN;'P[w~s4ps\3r8'JX&Ur=7!ms!l܁6y{s&s淥wKDL3S3)>h ܙ@EbsHay_ں+%m箹VjZ}Ma͖ywJn)MIƹOrFL-g)8O4\so[D32;=E?dzPmi^qj u7N:g͕)9#sTum2\%,qf;V8m7׹OoqjZVw{%VlW__ N=dn-a~+l&mRRfatY)So`=W+Ψ.͒_Nk%25 wLoo垠*W9Dgd;!m:t7HAh-'a~^uih饭3T9NϔԜ}Вd6GM*ǬɜL*i^%vnr~nxVjZ){f˼2/mwpJcS8qICKqeJUgq|Ns d{\;j,3Sh4KN~u:uίdlx,ܹ2me{t]ugp7'sC뤋ݤ#s=N"Nҷ*|yեeMPI8?SSsAKUWd6>7&s2bOC'yh;?e kYVj̫/VL-kh;sB8,f2'I`e&33[զvtrM9tUW!KM*{r ^jnk3&n`r3r8Y m] 3sUSpmOK6ӿNcuL$9dN&Um"-!d#pҚW)I<܆ 2VjZ}Y߱T|l9!{o3$2TDvJәjSe:MerΐI=9 t_k/C5q}709JFL9SaF@綍n9t)8xۀʇ'yեb`N@} :On&OܜzW|B2'*6Lxys28iͫ$OvdpnÄnoVjZ[uPwP%7[wnMߟ&pRshIx;71dtZ>oS6M\Q{Pq[L_%oЯN^] ܹ2&^4i3%$%_N]] $yn?OnFJǟvo |MU9g)fU @p{I|Mvֳx2积VjZ}Yy3Iͬe'읯[3 7oNMn49֧ϛÔM2W|TT2;S9C&;GөWn/3w.>5ML I{ o'7Sor!!{WI6z񧠝[*|yեb`N} Y:nYŐߜY]L)=N&OfD2=^9m],4 jZV_}xe~ɤs~ߴl9K]e[/g׶;fRiVe>>g'8mg6rv^]}9ךxW*SfJegJHF5ǧ)d휹+[繏[ZNny:8o\iU>Vy}JBޙ af7BE¹Z5d> stream q /image Do Q endstream endobj 459 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4163 >> stream x[V C i1@P@g*CԵ-QeB}+]:+]XgW+wބu_:L:qI]S?V&UTfuI,XޔL*19ՙ&uw ::v9V*u"sqvѩ]ms6Kr?qnI\M}_Wt8eg=@96*'3:.3SD 9R=GU2+g ]tՕ6V֌<{ryRQBeYeYoEDg kޮӾHENz%}7KBΉjYLIBGL/^GG&(Tԩ!t$7.x}3m`R_.kzͲ+6toF{毣 ɿG½q^rʮ'`=Z{FŝuIAu7'I;Jf.˲,˲,KΤw|-#88ED[on: r*TLg X:ף|Bd7:39:]*>$_D,ٵ_\U{x}6gөUwW{_΍xv2-{-:{9NZ{qJڹ:fwfb7!o9=۽X7;iLW8o.6:º4Hfe goNV}oeYeYL__pڄ8 w|-pqΉp'}80:uT.S-W',oY3 ԿSi΂;1Zg]ҫ:Zͼayj/+!I(Dv0P=S ~iLB2Jp!K靷R[GG}d{/W:@0] Ɂ7:Wg>75%\lܻuJɭιV}dX͓d־D;]3r L'{U"嬯In.^ :ߐO<)gz}_IJ,˲,,_x/ڄ8 O]Si΂;1Zg]ҫ:Zͼayj/+!I(Dv0P=S ~iLB2Jp!K靷R[GG}d{/W:@0] Ɂ7:Wg>75%\lܻuJɭιV}dX͓d־D;]3r L'{U"嬯In.^ :ߐO<)gz}_IJ,˲,,_x/ڜ8:ȃAۡy3Yp'U;R Bz[GTsC;U4³^xt&ta]za̮9=TU>Z|Jn܈sgX^!rp]zϻw6rIUvԔsu&g%yJɭι+sq<ornĹ^,m9dm.;t9A*;gmjJڹ:꒼Y}%V@Ml㕹O׌8m$68"Ͻf?] Eܵ ]eUg^pjS&w'ҔOɳSm,˲,2׸;67NAۡy3Y8o-GN|֫ݴgⴛьOھʖ4BEY:=مuw5{B26JpLAV*p/F8 іL.;'0kjtNor.trL6E}8S ˓;tY5㜑GK6'L_DT=NE]{_pJe9S<ՙ,cu zvUv3ԌTs~Y OSY/V&kš:!];U%9ahƧT{_΍8wq֋-' 7ONlPyFfGTmJ!l]ׁ3el$oVw_ :o97 gWOJDIV]UW`AQBAQ]{r_.N%x/;tg> ^A71!':f|YeY_bendstream endobj 460 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 461 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4270 >> stream xMn  iyӡT?*Y.~$BJb-jVEGʙ6^v Bj7Q ʌOs~Y Op+ ]k7!S%Lgi;=ŋpgptqbkV[N2=ߢ->$շ؋bx~q9ͪY}%prqvayTa%NWXyPO؅BEܵgy*8Y+' ^C{g~ 9*>h4Fѭr~<}ǩWdpq;=_.9q"'W7vd>MZ3^SN<+yaԙLgH)X&$vp,NW)}\'Z]^s-֬tQeJ{{ۢ^g{>! Ѕ֙p?JfW~NX3o+W͹GK i{ t!eQ(3ԴuȪ+' ^%?N[et!ܝ^nfGh4nk?NzW ]&ٷtɉ?ɿ#iꜹ=v!D^ LgB8CM7!S%LgiuܾL#:I:%8Ukf#|*Sڛ> _.΄yU7sš}][nj=*\]fH WxT/BT8NDV\9I*p]M*3u3s>Fht_x-mqd6:2\NϾ-KNH. GfQ/ڏsVlז/D-!OԙLBAsS,MHfrr8'R}efԗ$QWy干^-x  @%tr&gUŹZ}nYM;lJmFpNpK''Fpyޓk}t6UrſzN̋9 9^wPWrwu;Fh4Z[Q΢?Γ̦[]&ٷtɉeul?EQ}Ίڲv!Dɞ:39 ](rn%V LNYOC1̌r$juy*ϵh4F_[éQ;;x:B2y~" r*.UNnG p{:Ozm&z8=U;&IfUp*3Qt̘:98Ng˹uչMHgxLWۢ&TTfڿL6'{Unp|tzC9lzcŇ5[/n!6CŪ6=nw,BCWaUspYKvJdsh4FR1VoEڧK,姢 'zo~> 7]'v\z ujԩKTWIH~v6| s4LJPv''auT}97޳*gߖ ;S[%3rv:.1/{Nֱb?<Ϳ\UqLв$Lusvߜ!d]_ߝ +Jl+U>Fhg.=.+%n)(tUtr+%Szƒ/Q]%'!IK)Ox'L$3*azBQ?QGHBz:U~[r2|[NY6n̴en侸wp:}tRg[ǖ=7Fpq{oVW/2B˪0u~sx3u}7w*\*O<#* TIKh4F{b%՜j„vݝο gm+.tIN<2ۺG(a˸ǁ룓n7Of^8kSz9<׫ Τ<98 N pmM 5jIgV珳U=Nvrsxg\%cv脰;m]TݲGU?7?ꜳgp=6gνs" űLwqOә.3MَFh4u[ŘMN߅Sov$SYn'{ljummӣ`ueI'T3zVus)\͜jrUpV g QGx8uF&\džE5$yN^ʪ'W\l;99Ϸ ۽2`_zwlΦЩ!?׳/Y*gg$Z7Xl] Ι, ΓUgU<+\B0h4F/~qCc;ޓs;9$J&wG" 覷SqgU6p:w.pBuwiQdRu!dU|tR*&Y};gH)s ~y:kNu>!a \)gV7h4FmFendstream endobj 462 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 463 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2458 >> stream x[I DE`S{ZL2"UY䲍?IJwswsڋs;9ip2{wDήup|~=ZJŭm:'i4'Rլ~3guz}'Tܮ Y?˹w;k#$oy-RIsͩ$ܟޜɷxJ9:LzBuwiL5%aW::IY9t?]{mT&PSMTwV]TWHB/Ezvluw&tOur/J{VyLHP*&vn-x$\:wzkZvN.3sT ӫQ|BOPS*~_Z֫sÕ];^?W7+.nsgULή{bb_z)gWHwteTOi)w?_΍/Vq-OɹJBrw/z @*zsL&g׽W1J[ oml]Գ+]?sZ) {^MAP1 gҭlzQK݄]7gو#f o%4#WV7g{=E}ӛG9seζk>u 3\s<KJw3EE7u+̩S%L^_G9UdTOi)g~ܪNvkꞒsߥ3y_ݬԻH%%_"g/dOIY}ueTldj.ٺolb9yV*LL7ݚ^""笋rLi5-O f\]gйfv~ce&4#WV7g{=E}ӛG9seζk>u 3\s<KJw3EE7u+̩S%L^_G9UdTOi)g~ܪNvkꞒsߥ3y_ݬԻH%%_"g/dOIY}ueTldj.ٺolb9yV*LL7ݚ^""笋rLi5-O f\]gйfvofxr7moS斖3q ILn3[əm=[r2l^7[eWH9|fK$omjWWNOSJ^Z|x*ܚs#+vF7z9ԓp=_ݬԻ_{Wz_ UV_Br_꜊߳tTRV.sB-{vwVޓo&g 0'%UܡBW9(PϙiH;s&<ޠP&[Oƞv}9sKK8U]z 7M̶u9s\ܛ-ϲU{QL>%ܿn6+̩S%L^_-gSg<vkfnM]߹ w;k#^WoGĜWIޯnV]M~+g*/!/uNE^*z{ML9!I=;eb73υMMuo~ܒ*PG[L4]MϿu9utNwK߃!n );v}:{y$dN8't͑3$;LuK4v޳;]izw͚S߅x sk9I3_Vp7p'4-yNz„kL*oYi*z&]LQwDg WP]ɟ[~BdJx^=I2]~sLc7IN3Sݒ?@ac]&w.77ZN̗y' 3 MK0!-~'3f7uVںJɼa?)ga?Q@wK@2^|`:c ~?߫Xo/0.P*=* .~{s |`]s x> ~w.^\_`@8?@oW¿gߧ^endstream endobj 464 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 465 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 422 >> stream x1 G$iLëڲq`~GVtbot 3ӳ\L>IWjq6wh$48]Pt'Xhs@B1MMP+1 Bd,9S`z$ j;1 @B S`z ;1 @N I S`̢Q> S`̢]> S``Mo NoGendstream endobj 466 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 467 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 468 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 469 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 543 >> stream xm1"N/DSÌXFpז/;8EC\~ժ~@fPCWj @}fu9N_W]/Sp#q5fTB0xҮo; ]m/չ9d7]_vǹj/Stժ~@fŴ|V~1"o3> e?8\sL`Ӯ/;W\y:ԌjU?BbZR@?NYv~al䲟C~rfu9N0Suė7׉:)tU\ժ~@gŴ|o7VN1>5du}V@9G/cVd endstream endobj 470 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 471 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1640 >> stream xA&E$wI"K.9-_K~V oX:Se  *] >SNU*_W0Vq?vΣc^שiyWz W+\PA扐*?!^Qޓ;`w1\95ioXn&~3峙ߵJw?}d =vgO͕SjHV@k8^>]שhyQz]ש*hyKzX+ee =vgO͕SjHV@k8^>]ש*hyKzX+ee =vgO͕SjHV@k8^>]ש4?}ܳK\eSsԬ$k8^>]+҈+/{v +{;}jU@ٜ$cMB;gg3hy?گC2ܳK\eSsԬ$k8^>E(~]޸/s>F+f M6' XN/-Zޏ.]޸/s>F+f M6' XN/-Zޏ.]޸/s>F+f M6' XN/_}L&ߥsȤ/zfm欍N [7Ϝ9ۿ&J'+s*}oWԷc~~3Ox?9zu%8ҜvxO4W_o>b^2S%2u띙pt-fƽMU̜ǯ轢T3sPW_wY!sjOvsf< v$GKlk}qٞ&\Yk>'۷6yN9#U_N[i_쳎endstream endobj 472 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 473 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4180 >> stream xAd9C1M) h Q+YsFRqpz ieNYwm!H៫ IfhހsTJvg 'NIJά(NߝxFrFnrrוp*=Is^MN˦xtLdy.s't^'߄t2u|7Eo*g*:g6YrrJȫ{S98m9ɞ:-i\œW&i%ղRc%}Y=lZhN\¡k]i6FQVoGEi93N⿄;̤>m'ziZJ+\f6EP7 9T_înBCe)mT\HWF١s-e˗BVN=_#Fx*g< +Y#H6=+>뜜rw'h%IU\t%}99U9:$dOJ.zW9-h8 glTtzv2TT$U-BnԪ+u>3{R%S~jz{o\ i;UgR{V)jV~:J&L`sf]o$FRw] gVf]o_mh66-vPrjۮ{-]uɄIŦJWIIh%BN(ndqۍкwcg{K#=> IGh4].|^[:y=wz;T*yx*S–p!pjՕwh)?57hsZҪ~Yi= {݉vܔMvC+?]%&97IuTe3+3{.7vUoF4L̖CI(9mὖ.d$bSV$K![RwuK78Fhݻum~wh4.7&]eדT vv{z;YF<>hG"w*gV&hU[^3rr\љOQL;} =ϦvAOLQ!qť7mRֵu"I]a}rwi9+RZsiF8$j/B~Fw[TpyA Ou:ʧw*]M$M3w>Un~^j}S9{|DwmHtF%~]T|DvbN¡n/Yo'=kvwר݃LJMUH$vY:*rkrS՝SZN.;+:v)*z=OGu9t6)=7F8MܺCp~[<+̴O.9PcE*B:{BkN73Oq]}V]Oۨu{랪:8hvɸPgVnRлIzTWtCߧ϶KػCmRBw{*gwInh4$[R[YKFplԙTt͟i5gy**6Ϊ]!OU7GBwiU>F^Ow=m \ZzGo_u6z?yōP}&trbS:-\ٟ#${\w&R\r޾.ug3Obm$㹽u[3oҸ3pbR\*BsݳvV_%-l<`#8wi\t鸤h4.Ů{LSgRqlZ[v6J]H;S=z;Rwg> gVu*ވ ql>#ܥUޒ{=ra-pj})7BOеʹM˶F#sgjpmsݙHs%˙zy<}r*u6G֎}nQ+μJμ~¹KEpr9u^NY[TF8'/ܥ{:s㒎FhtzW}=_4a[&ʡ?Go']IWɘf'Og t{']uϮl$9צJbz{+J%5ҍs8:=/^]Ϻ_B;TyƩOfz^\f#ir^NN;ZBri's}J'!יvszVs?P)?P1GNYw&UT~C$8'pz<מpK4պOFe5OtBGh4uy[ Є]lT*^t%]%cޛ"<-h_]Vv =*\\*y(]T2!Br<ҩzN Fȯ7@/רSvR:]5]RJۄ횕@jtW朒ϙpE +STyi̷Yw:{|m&_8ݾr4ʔ|»h96g%pLQ93fݡNѶ|tZ"Ҩ*S <;S8gy99^z{Qk>=U☹|<|-NBdWqH{Ž>Ψ)I8{9 gxr'\Qg}J&=+>_mTT&|Nө_mp4F}'&;{~пX2Vҫ~UKWLHZwSQ墧86pTuI)%l272miv9mBwCr_ gͺy8볜gҲ%wr_&j U*N8rz'uϹwS5EœsK*NUҴiwם^T/I>UST> stream q /image Do Q endstream endobj 475 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4269 >> stream xMF  "ݑ?"a}Xms}sVPqOȥ(6^e%t=L )&XTisOq6訒ۅg*l9(!ɜ[)]wS^Ζ>i&lMI8)7É<-y,besk Y,NtLp4?;d5iRD;'~RSft:3K ,-B a](O;ENQOOp@jZ}Rwә+2L*0;c~[b8˧ήu!V!}IزgMecqHDh$(xNrD8$O/yͳ-ˇ۽ ,Nvo\I~S,ڻ7EC槻HΡ7SySsℸ{ZVSm;=OI&{wLwoZgTRٕG7/a݁ʼnё3O{JE{ƻgy:Ϛ7mj地n;SRtW͐3wd+3gG'szhCRt9T?q*tjNWrOVjrJ6Խms?L*t\mə[OA!]Xn^!TΉrJ}Ѣ[&?x&uK–>imguWޗ'aM 9="W׹UBs<9$'m-Ә$NJ+:7 ?C{8uBOJ3Ev9;uQs>\Ms\Q:'i3)IzhY'T8s.ʙBvΌ 6tS8qjZ{޶9qK#&z'2;[trSqPH(Vo_ǣ׳36DsܸR_uzw( I]eOZgtqY7pI'zzCjHu.BObIC?gy4$ӲRJǬ$'޽4N݃SҫL]})E_ǦxԜ6WĜ&yNIr8qZsFLcJZVu6ʼn8Μ rХ33N$sZV.ކ]ά8"=}Uߩ'M+opuQvO3k*DiՕpMiQDݤ9Ϥ.}I2ק88.usIĐڣ ,g&%Vz3$NM%:uɍ§{:T7g"O٣Gv9{uN0kޜSt9ՕN sS='O5mW=$oxRMވLhjZVwH6rː BwIJn'<\r]ԧ];Bx&9QZnu%_uzSZT9Q7i3K}_in;&wNK]\71Bh{=˙I.fƬ;v>gyL$rSeIǬDvrNv9+zzs葺]ݽ$L7gE]gu%!HmSMەDO&᪷?T7{8ZVҽ =_g9$TNBs?WrxBh>u?:t9 rΒ'e_uzuC&l)KeO{=uq6Y7p]"t=!gGwLw &O/_=IzhY> ڣrSeIǬ΄K+=znoνSMʟ5ә:CY9I*Ֆ s;;=dX{!IA-l8KhjZVކ]ά//aI\SzIɝȼx9:x+w=˖pZ%0,K–>8 mdwK&q>9$2F{a< des_zoGڣrSeIǬ΄8 mdwK&q>9$2F{a< des_zoGڣrSeIǬ΄8 mdwK&%*\Yt$ּ<,sFXdJ8-7UtLpguOtBr;As&Uϡ.HJgԬ>S̿ngB(- U¯ iQDݤ7&K}_"'m29b=rDTi Q$={Ěf9Sh>:ݵNDhJǬqO e ={s˳Kt9ˀ8g =Mb9YO28Qo(~ᷣ7[g~rsv93]YMcuuZVҽ = R|Mi=aQ}gSOtk=أ2vK{*DiU~mXN*'&0Yeh9i9͹S$J[Xb%a#\w4͙B)p"ES:fu&s 'G|rn(+O5'N;C]XR_>{PMiwɚT} x~+E9m z=#Ӵ̹l7jjZMmݟEp"\.B;wVBCT]ݸ-8s= g>\&ʣ̽ ޻P9'[NѢ[O,}IrG:ڜ_$Wνp6є4%O*n.r %ys'Y><~}FΚufY \aM`=u޽qxE˚wJn,ގ.Y ߂:C5aBl=y"wVNrڞw:6]3$_6>{3]/甦VU$Vendstream endobj 476 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 477 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4302 >> stream xK#F C ifFGTY,cb}Vׇ?W>E7U+! n{|< MGwAw]rn41V{E980Ypdt9H?S}wl&)/hJ,U}\*d %N|Xyh>:9̚f):Ĺ֛w} |X}]䳾3~uj„>=y"oTNrڞӷG.ęKO|sMg봧=ٮsJVjzC]muΟS9m"iLI͢S:fu&^yrJ3{ 7c;%7r?qv( =|v 'NXۑE*3]!pιWnԙ*s/ÔVjt ?$̤g֞Y -{OTۊ]<ve6Yv)/NYsNS͙O0Y˖p_''>e B%Q))lY Y,N֦iwTۦ|7%g>a|VMYM&Dظ ̚,-8m)N| GYaŔ7^!vZVUt ޘEIUNMWeku:7RwH timazn74:g;517ϔ,])-bt$LR|gML +x<+jd5Օ)Xκso 5!+${ԩ~)NL}gR%bq6MZ6]䳾. >)[j*-jZ5!Tue,gYl miMqڜSXf&lܷ˟˃|6jZYF9mjZVN{K#sd栘^eV'ii) rյι?{pr#gp ( NO ߝ՜伝78:Ys i߸JDԓK|;~NֻnOQ;t)9UyB<%f&lܷ˟˃|6jZYF9mjZVN{2EE^&)龧St:k.S;r3뽨9OunD;gy~uT]̋u۝su8Y/.!O]jg\$p*ht:^sݦv{N֋KSv" )齎W:lw:YGf B;9{|̥=:bzͤvyସ)=mWHǬ9K]#& %4yX{};*frۺ.VP:>u*&ߥTpn+( Ί99tSnw JƝ̸z.)iM;7jZkSnpz~7dNJ锺GH2-p߂5Րr39Qu9މEܸp^3Bxz#|yxogtJF)p9„{qtNisSk֍z;X}SXn\*?!ˍEXW:fu&3 +"Srݸ9܉KSͫ\ٺMnw)n?=p YIHRg%IXƪouN Lf͟˦L~[rfu wvnoTO&3cռߡNȕviPiݟu$yVԉEoF\dl䷅+gV\pgFd9:sZVdv9{~'er΢j?Qzu抏_3oK&U[po j6tl]̻p]%O\.SBp6ώ =Txzl48u&$Ǖ|ֻ#{&UӬ}SmKy#5.ՙ νK S}ʔ9 JJBj.g" w"Lfs3 ɓ)NN2l9ƣӬ> stream q /image Do Q endstream endobj 479 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2140 >> stream xA Coj/zccj%ɬlzIR(iXO?꼝yvey跿ޙnZZ)jU5m;;K8UII٭?y'%g:CU'.al=gܰn$z237D'{W6 9O֙j}ؓ]LJsδS9O2̖NF&ٟ{yΞ?~*W=tn٥^v.Mv8s;gTIߝ]j>9|N&R:s {6֞3S9sX:yڹθm39ܙUu#7g]*aykaNr>3sޝ4-9ݓ=.3>JUjz~ͻ6Ujs7{n;\U ]MԜ춼˳azm^ۓʹsիΘ9~nT]N.V|% '9{6'wT;ZgM>yD{Tw?ۙ;^=wDgvND"L =n9c]ryWpCW52-l؁~nsrn~6}3&jv_UW?v1;msIΞɝ}6l֙dϻ}6~&1v&lWϝ.љ995ӷ=f>nOsNXmW{T3T{|'O>?n߄{ÏOzc濛;ycf69;?!94 ߄nln<ݍl~73:ɬޢ l|>$ndF;-zs?ٙy}F7>?;7wwoM Hycg=$N7por=;|IowS3߁ oMܜ܍133vd>{66~yfOw6^ ;; ]wg6T8xgÛl.=ߦrzߒǽ',u!?~7Y3=f?}lׅIkpΛ,|];_'q9o0+:>s} >;xY7~yf*d`߯[:oM}Ll >{ ?zB?}endstream endobj 480 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 481 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 400 >> stream x1 @ G$?uk\g1뀋e%}?u:@$3Nd >ٚ`ŽSmI(A)6Yf{ d buН6`LB̜ ;m 9@w`OB`fBZnvН0h'03!@:N0h'03!@-_@wA#@>  xʭOendstream endobj 482 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 483 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 484 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 485 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 363 >> stream x 0E"T~q axwNۺ|է;ݟ0j&u3_ R/ԅ>BrG]H P`SR..H[]g,B>nendstream endobj 486 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 487 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 823 >> stream xK0 Co:E1AE?CIӂ_o~>9yJ{|4F:w!]|4F:w!]|4F:w!]|4F:w!]|F:$]|F:$]|F:$]|F:$]|F:$]|F:$]|T齲UD?K5{ϴ~'i{g~VF&'L+jǯv'+y;fa/SvYS77D?s{{ϴ~'i{g~VF&'L+jǯv'+y;fa/SvYS77،=On۩VWfyBg3~np=Zӕh #e9Uv1+IԜN~[M^VW{^eCW??ͳٕs$7wendstream endobj 488 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 489 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1474 >> stream xKĺ E$w2بB#_oDgd-MTKș̈́ls TDOS9<ͶSVU۽dӜ;ݨT;2W=[[_^˾e3SIؕyO魖ML>OS-{ݚ;~[5`ζMSK~ٷL`f* 2)2{8=cɜ w*cs519=[xzǝ^OyK?Ӟv\f3S%$ϙ4a%gN{zJW[sJNܩPXW7oZ@o9׭N7ry+mg;e03UBNVrvݱtչ;iΝ uu{VۜSza[t^!Ҟ L[Luwr=Dͻ/{y~N{ow?M8w{Bj7'sz;,Mf)5 _IۡF~ 绯?s OO-̯wݴyorv::n'&3Oeuzovn39SB?Su2=- KMœONoB::oJ[0:e8e?ovnB?Su2=- KMœONoB::oJ[0:e8e?ovnB?763a[^9vUEjendstream endobj 490 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 491 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1437 >> stream x8  fkt6d|(wI'ZWۛwdq?UeŝW@gᴉ~N|)x'm%LIߙzB8Ed{Dz]Ta ~;KX?n^uy;wםy gUy03O9 s0W7oWy>Ua]sVԯ7; ;/N? 3{ϓ?+>=o_zw}+gR?gJ;ϧ*켋z c'a~gs)N} p~YWֿ ;7{}>;wiT~[R~iw$SrNzB8)sΜsϓ?+UJyfX?g~yw;-<s9{+T3{஝yJTO8e.3syg'_I^Z+^_۴>LN?ϧ*\ Lk'a~gs)N} p~YWWJsW6zz 0B~<:pIߙ~ApSr=9缟'V|LVoΝb9}pw6}]}l{L8JϫL[owNww)9629<;gre/w͵zs+Äg+lcYU^ez;w;v3Oəߍ).f3*V;sgۜ҇]3΄XY^g=&UU; ݙFؔ? 3{O?+]cM芳mNî[gB{R3]aΪR*sovN~杄Srw#lʟ?Y> Oy_icB=g=aBΉ:vγNy;i+9wo; ݙg_<6sSW똫PYOs΄lS^NJΝ+?NwwY9w1\n=^_k++M~/ߝ@-O+Y9sNԙpWy¯tγf$NJ7L"endstream endobj 492 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 493 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1546 >> stream xKd)ChӞmKCef8~}_uKo>bOYsNbwY9!awsL?OZڛU^9ι&WӞyYS=᭻7?[73 sBN_дPͻ9&ٟ'kiM*wMV+iϼϩݛؙ̄9!/hZN6]Oz;TYL99݄o9>:9'R휩nr}ΛY=![gWrV|kwFr$ 73k,׹OʄMO;KzB|*Ι&W鼙"uv5!gŷv7m$g\OŸp3vO[=|2 V7>.UO=lV3sĄ&fNPwC*r':mִ݄z<-sN_ a܊wuiT7>.UO=lV3sĄ&fNPwC*r':mִ݄z<-sN_ sK*t8T3WDVuVlOn9޽}̜>{&1kNݭ~YsfqY;s}歛2!;zz>9뗛sL3;j7adJV[MN6!&V쮺ϕdτ 9'$\_%'Ʉ>{n#|wu9[4ÙvNdlro:a\IML{ݭsBU"zL69=Wr߬N~缞pwmors[%+_Ix+n oeO~^k\oYsu$Z٪WM{69[{Yy=+l簷JV[Vݴ֟v"׸x =Hγ*Umrr_xZ gԝ3RM^_%7&_Iؙ3.C> stream q /image Do Q endstream endobj 495 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 577 >> stream xA0 Gj+JHJsh|?~:+"r^oxUo)G'γ G?۽2gx&?󳊞EN2|gL%f>;l`oצڙ=_5H.;Zߓpg9W+"S{͟0Olf[ܒm̓l\_fp{;~Wggk2dsտ"=5x ffn߼-9> stream q /image Do Q endstream endobj 497 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 285 >> stream x۱ !@i!@֝2@/]@W{z* !9BȠb`κ2. *=`0endstream endobj 498 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 499 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 500 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 501 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 502 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 503 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 504 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 505 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 506 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 507 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 508 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 509 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 510 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 511 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 512 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 513 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 514 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 515 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 516 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 517 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1613 >> stream xA9 CL0ionQ(V٦)뿏LaO ޸ݾ7dO w!IO~}}z`:3jZ%Ӆٯj^'w:&]꟟2aOzU.$]gb㽏^tz}7WL_$rI]zv @i}̨ujL3gz~{uexқt~B~J˄=zCUrv~}.czߋ>zgޤ>@_+3]&9[w]%'i̥ujFn5mz~{O:}??!}UohWΛx}.fzߋ>zeOSٕj2]ȿ$gCzv @ҘK*.jN,7U51dut~B2gOzU73!U>\$dEV};s&@_+3dtIv. 'ui̢uj@&G=?MՀ'Ʈl'['K_lh{75(L{}}.&0 YQU{eR]sT+sveI^o.Х]rPo YNgWؕ-wR3u mֱ&弟 `&!+wxVꞷkpj}eήT3K%9ԳKN*m6/f2֩ջ|o1mz~{%OْO:A'K_lh{75(->p3{l]~3 YQU{{Jv=NPٕj]:ʿdIzv @_b?o)N{siT +yb͖| ??L]bCۻuIG9ocsIȊ:/6ESq:}eήTQ%3MԳKN*yB̟uj.ߘ܎tNSdoNХ gҗ..}˴҅3}>p3{l]~3 YQU{ eurw*92SM @GwTR.9dc9]!f:zo fnGO:Vy7[I'R3uK| eZ™xϙ=.?癄b㽏^Ǻ?;ʜ];KftgT8$oGL&:z fvyU %OْO:A'K_ܥzCniVp/sfy&!+wxM&.sveFlӥ]rP3<]+'V1X]꟟p.}s ֺY™xϙ=.?癄b㽏^$;797&|vٕj]:rfeOzv @v{@/|WN0 '%OlK_eyo鯯u]sd&LDr2̉j]:nrr幕z\2Ƅendstream endobj 518 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 519 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3490 >> stream xQ%C&ݑ-\<\誚?7u.[C!:yJϒw斿7%OgmU7OeN_*r!DEOLP#;do">B!T5FNn|yB]$<%!~'Y-Jɖlщk~_]y{?Ƚ!I J{d$B'-6rj77=o}wLةvyw#[{Tդ:;ߧ-߾ gi蛬ѩvn.ֹ?Jm5=dwtm쨝MþZxs|෯ޝNS4gV;Kh˄|^a=iK:i`7p|kNpQu[mm>^4zйMco3[Ni;sGSt:jwj58B%%$=yQxSO]?vt)5'l?s5i˿n6Yi'&kt**)wuR;'} }:ٝ9?u:;jga֭98:+q)zw'brGSv823ߡWuiOewν7gM9<t:߅*vS*g9twֻ~[*ͦ^z2tCǦSNaڮDsZ)iBx 7@GI_O[LeںW*o)X_άηӹ%1NY$ɰ;tq'd7:6ŖͧVl§ y~^ 5;UTe`uIIq*.9P(|eC3y pn4sػeB}C:Ŧ+)z6jhۨwvzn:2gP۔B)Թ 34s֦pl}zS/SSUudPYga7jkFMtNᬶY}z:~#S _aN~:h4A箎0`}QTاyZ{G)xdQͭ}CzJFO6˜)]2=NV:$Oݵ&)%Ө(xgnf!-/zzooS¹?|t%?YrҟӖS3d?!%gsB65n܂BG-08e*uLx泅_vJ~:4dJwUSNȖ+ĂRez%wOiWMV(=k6y[ⷯS};snR6SS2d7 Wq?7GᥤߩB*7[WH`E :Ba7oa[S¹?|t%?YrҟӖS3d?!%gsB65n܂BG-08e*uLx泅_vJ~:4dJwUSNȖ+ĂRez%wOiWMV(=k6y[ⷯS};snR6SS2d7 Wq?7GᥤߩB*7[WH`E :Ba7wB77ѩNAwV۬BwM{rR>$=l48׶El}Xќg_(OLR;fͭ?9-eCOfzG9W]jB,([P ~& &+Ԝ5t鿋-lשqvԍd7{~Nӟrwl :m 9xB/;diNBSl RNgN_vb:ӷ_fk֟ߓ;&Ff9=- mdk;_Ċt8B)g}ݱ7ln9}=l//+e?z2p; )bWCbA)ܲe7n0aWX4Y٠N]la߾NSMnDgF'!Sp(؜[fkem (;uV8~'4HsؽBj睡 }I}5(Osk]SS7+[y$F'Wm#c3득\W؟js4`;eOjB}M3xӔԜ)8,[j[Fvz[Q +43r8nn5ԯssP!6]V-sv|#w7߹> stream q /image Do Q endstream endobj 521 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4390 >> stream xVK8 ; 76PxdV͹^XtOm 4i3slіs }V1e/ ~+ NF%l.߉:U>ѡ~iρ'OUms=LeXA;3ɄfsgOLeUq)O'~Y {')霻t *~2 W6Ud:uESb'9e/ rNb:2zߣ: a<Yy&wNr$*U_hϧ~jX-O$w gdp0$L賂G){aML[aoN/ ΍;Ny:R;qOIN=nPNdͿmM"өs.TR&?a)+E~$_sJeӑnU- _gmNus\P䜿B__4\ؒf_b'!-٢rl LPD>+rOTCO_b'sv-RȌO4=p]bNmW]sYe^ז3%!VJ7^>񼫩`S\ǩ:XNwvLN~RG{i W'C߹=p;U9MCǜUOWo6*Sp~֬/2TuyIV/?\J6W9Sx(rW/ί{X.OlIگ?ē^{ulQrcp~&(p'tšKקׯ?JϹw;NdƁKY1K+2k˙ϐ|ed^GBNYxT0)T},;;?A'w #M{EG=洅ʓ!zwmr zĝ*cNn*tŧ+7|A)8?k f{$ ߗ9p:g%w.TJ5\N>tSf :S K3oߩgoj 9}.$N8{Mȭa.ޑTջH8T{Iwވ_ w]=ݥ PrwPL)Wsu."FLq8U_gԹ%ToVr_`Z[X+\waO:V*u ,B4VԹ5LDoJXIN={StUI p'tšKקoBn sEdƁKFJBI,'.m ϔ{:wgJ9Sw7`S\ǩ:<;ۥ-Az&=~R?3Uػ nsޅj%\-w1A~su~d^? xqqqqw7(foqmx?8Ⳓ'yj\6E+`YLoUw볧ӹ,Um`Hzn;:jq[M?Mc"~T4g2(t6S캑^U܄u{IK>%ΦnyɤjNu3)NqXՙpvMQ7EM]Hp~Qsۂ3ڈkUػ)]GSffs:CIz mY_Nj $2endstream endobj 522 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 523 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4366 >> stream xK CTd&v(ӾT! V^i< 9jv"g;ޱu&O'f%RїS s߉CszOyN?K[wxkuuMKYС;MZ]lvNqgbKSK a3}֍Ry'ۋ׭?1δ*[:Qiݧ9ZNLy.ҩ4}O9 WL)瘝@Bև?dnnĴrity wwEbNov˙I]Lz}V~pWWWWWD6Sxz! gQS9it*= ɓOvMo%#[tt QG}HO39nu6EκlJetIb0S9~BI;٥wMlg/Y&Cg[lvzsSz}3a̙<":Si:έh+=]{omFdE܂Ϝ?%݅RV}rδ4*;Md#QQV~pWWWWWD6Sxz! gQS9it*= ɓOvMo%#[tt QG}HO39nu6EκlJetIb0S9~BI;٥wMlg/Y&Cg[lvzsSz}3a̙<":Si:έh+=]{omFdE܂Ϝ?%݅RV}rδ4*;Md#QQV~pWWWWWD6Sxz! gQS9M9~ iIs9Nyvґm28UJZ_Gٜ.֙fGz-gVWz/[~EEPӧtMsNsu|gN&zI!lY!|?;:lz^.t>iFz;Ns䝉CJbwɻ:3Th^=@PDFr&NIV*}')lZ>m5?3٩^&V$zOL9a<; Ŷ{_ON*g%֣nlNUkMẘON [#rI+nwg"(y&߹~Otvik9ώO:3'=C6 A¿Iw4~#W=[H|^Nl9 W!]%wt}F]UT*S^]4 iJn#mn9sTz$+~pWWWWW6ߟ=1Tp:۲Cnr&]pR}$Db^ٜwY)1=̛ ˦uf'|6/p9hurm E9'r^99izWi-gڜ:;4kKءLyuuuuElBBV󝚜8SrO5ɖ{)}}ME'cL(o),}zi7SANMẘOSa#pP9*Z]~Ӛ0wrͼ;~Otj>.\u{!Yu1I/') ;Ү yT)s>5;_%tmEg`B7߲mw[yPqդ/&[٦7>/2aӧti<BL9^6ݭ3+>;NWApzthurMk܅"[5?٫spyvֹU:dr4':+O~קt&pvRJSuz4ι[?ݟuJu :'^]lyBy(R:=k>i-gڜ:;4kKءLC/'& .-{i^ɿN]'us*YΝFTqHK.Gv`)5ۧ*͙7@/֙FJé&thue&'ExzN/MwLgϊ7W&礢C^>ׁ1ә'|γ6r&*]sREO7.2U~i7a^ttؚ":[tw.R/'& .-{i^ɿN]'us*YΝFTqHK.Gv`)5ۧ*͙7@/֙FJé&thue&'ExzN/MwLgϊ7W&礢C^>ׁ1ә'|γ6r&*]sREO7.2U~i7a^ttؚ":[tw.R/'~M{gӄMzCO STopsZiΖ94ˁ5I&]}exW_I'6 jHvg;f܈&n]DtMs'y;V.*>i,U/&lr~E ԫ:x:YpI!i"o˖Tgn!-)7qr:VtwJӜzt7B;w_p**Z]~Wn3Y&il{)¿մ˹u)Mg;-vtw46f.]Uu4<*|´l!՝Nsg;\NWfHO=Nd'LҩS7}ҝΫnYIgZ&稚K;0w!S8:=KޟNrd7ՄyU<* a#B?Ǧ;(yC޲-nܩrUv st\~׹*N/'5:3龼̄f9N&tq{L;+Wӫ;o-{_U:3i܂^Sntr={b_ιs֩ҡxu.t ON};nS"ozݦ:\073`K> stream q /image Do Q endstream endobj 525 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3527 >> stream xA aSy1{D%P`W,=DlvH,7֙nH1;iCgtrx֓z#2g߯|+=)Lpq[&2-uN鶥[Oⶹ>{|oig=+ myf}qv?e''\y=_s?Sn!vPO\fuVpyg Un7;u3S*.SUlɜe~O#& &;Lۭ*svSi'U9V:OOZ;S6|GN|L߃mlLXy8djXlINʵ7?ѳR3*{泛4=UV'&i=ݪo2/q'Z޴k9eHZ<[Unu'Ȥ9Y0$.<ʓ~n͵mᄁs?i܈;66&shwz.S{ Tw~+Cl?ZzR84YIX9o<["w8Owxj7/GӞg7-3:ۜJia]I>m7h[B~诏9C }{>3TѿfעoӐxJSsV:$8nb8~Myiwms]瞪I{ҳ:~3r̺wCŖ4K?0yvڍn8\- StqP ۓ)Klۙ3g yk^gg/g~x>3OYOFt*<9kmM5BZ|}}{>3TѿfעoӐxJSsV:$8nb8~Myiwms]瞪I{ҳ:~3r̺wCŖ4K?0yvڍn8\- StqP ۓ)Klۙ3g yk^gg/g~x>3OYOFt*<9kmM5BZq-CHFl筩ҷ1~oH<{gQyf>'umWftL)=$gs֜'RYxy煜$;̍^gGk5CS)P-%6g8پ s!xӝ[PEFn$涅n[1sfw==t2$˩=WMGix\w~J*p&/\5OK38[yk*mlL''O|YTٯIrݭ'k;-tە.p#<{vJO=ə\5TV>3vy!'}>s#٭CZqxF-T.DnnrN%s{:g{!-f2nWE5#v-o38-rOE4Zi!}UgKaMexFBx2iϮg󹫦SMD=K#sZl;vv>,v;ygrMy;ܭ6[~tڤp9:tI}.Syj'n^u96Swqtι =ﭏg!:f}zMjFb uO[ވgp[z1䞨h`˵<֧Cn Ζw侀<𿅞dҞ]sWM0$:{җFHޝsz[B}yߍ**30v4`=a:'I~v­aۭa??i]V~r M7kޖ}LZsg;ヌ~ogrߔU~~kДaۭa3zCө l+O?y>I!B'mD**3ҝp{oΖ ;Lt$?Ϯ]W7t5w#=3'7'*OC.! #{;ے3[KclϜ-\ROOwM2t5wsfWo>w=a:mIB'o'!B!̒EC!7]!B!B!w mB!B!B䟓BnB!B!B8'/. mB!B!B䟓BnB!B!vzk7S!ܒw$|!B!B 86}endstream endobj 526 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 527 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 436 >> stream x P"@i( 吗g3^P~yt]wIF%Eh'2`] ) @3=9p`B]HQ [ye"RfzrH"<օ(EyVl %Kh'.2c]OLO9bp؃,r0u!@>Y @3=9cWLLOX$4ӓjv*u!@& @3=9â a]Fp?[B\@endstream endobj 528 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 529 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 260 >> stream xA @'׿f!̰6`܏j $bendstream endobj 530 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 531 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 300 >> stream x ! "VN5`G4g ?}]9u&7d /"1Q,0;7OoY۬p0endstream endobj 532 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 533 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1045 >> stream xэ0 "N/ΒO3p(U_|OGLv&wDEYXvN޽f Y͉ɱY;&ϵkYi3DEYXv`d{7kdҍooN|uMڙ?5yM^;JAN׸7&* s&oԮY3 n {sʫkrl'grSz \3s<%y9^V2 +Lw;vͮY3 n ʿ959639)=9t<|qoMTt+j&P}ֻNf߬C7^$&g>wg3yM^;ʟAfroMTt+jZnݵCuf n ^H~uMϐ}g\v?#V2 +Rkiv@x'!M6y<+Gɽ4QѭdVhw 1Ny!596>C>@smxV ʏ0{h[,P;Juw[b7+ tcBkrl|s7}>a&DEYXv];N[oV.;W n }&ϵkY3(?L n%B@+m=vn߬\$Ѝs%&tg3yM^;2 x+B+-'9k9E.ӓc:3<&gAߜHε" tc\ɱLk |n^JuwoN$uN 1p؀ }&ϵkYf@>7tEh7's:@8W{zrl@}>,3 @W"RrɹvS n eendstream endobj 534 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 535 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4039 >> stream xAn$W C iFWH*e7Drј(ު(ާ{7EQ*(EQT*Os_B[DQ9(?(((_%?ݙMdzQ}ҁ-l_ %Mxa~ڠ^>;ko2z''vT~wPEINn ̍~깽|ElKC8țOEܶ߷#ݝ>|mj9ׇdPLbW؜n xœSOjSG5[=T!詶(vPuNԬN2-bwtvffc3`XnI+SnV'A=n< EIo*f7׭?n|7:z6F{jUU>۽3]ihs{}+e*OTy7L[iMQ)xba9PUTϻŦm3pg,3/z{^EQEѩxo/w9,ԛ7f\)nyz*HOȘp[{Ny7T)>(vPuNԬN2-bwtvffc3`XnI+SnV'A=n< EIo*f7׭?n|7:z6F{jUU>۽3]ihs{}+e*OTy7L[iMQ)xba9PUTϻŦm3pg,3/z{^EQEѩ樓L4{@93MfhΩTnW)lo+lNavT eǩ輩~kvsP<Wsf{U<8I9;\!x'8PrasNҧ?B%Pw`]#%);VMgpKn[8ߚwhg{sI.6CSTVMQ1ٙ%AQU<9)wfyʦ$csPE4Y@0CPdfo]t8C>ٛsD6Fid鏿d])%,巔{;!Qɹ9V 6~}?念:}r* 95P9liZSe *+Ԧ3#t]]ne4>T؜SҰ}r&ߺs#=['(("A9_55w%<9&Ш)*6T+<[W0<.ΐO'_(-j?|/e3wWJIu7K-^w>iHjrd?sOoN܇}N,gx[_ vsD@' =U'+6l24l HI,(+6fӾ['?PegLgٝ'ϭ/O]zNtMymV|δ}O`.ΐ[&'lQlyi(e3t#%ݔfCmb.sTԖntp;TnS7簥iMQ)77 xrLaց.+ T& :EQEQĖ[Yi_s-rΓџSiSvu&ԳΓo'.B='{Ϧ<S l6+FMe>Ex gZƾSngȭ?{Lb(6<4{lonJP֡C1hv|9VX*~}jS7:evcs*7)sҴ(Tߔ꛿aw}nIn]n ʇ;6;nQ/ M=DԝܰlnLٟќ]?/l=?]^uԦw9uH /;- >ExJ;ˉʳO]P7ͦN>uU==쭿HϩO {9»;cwF'}nOEQEQ-d386ר]_oMTS}Mg M]ܓmb7奧$:c Qoޝdݿ>4UFw|Dݺcwlw{^ z;3Ca4ݘ7۳?9^xwGgzMvs>6Lœ!j_vn[8}vg݇!S2jGև'6oM}J]s)zz[iSs/$s6wwNȟ;=(H#[(-KfFqVJSSFyb23=wdV>ĊǦ+s6ӛz}NԦlOFsn[ƭQbSuޫp9-SPLRvVNfw"{Ey}b?/Cև'6a[ZIL>U,pJߙ03?a"]r~xΌp<́n(("Nfߵolfg=gxP6ORߋv7exb;zxnXy^Ap uluYIxvh7O^Xf'n Š3֧SP>>Xyqb|FzSۡωڔhNmø5Jlw{N9z[c ʿɝs_`Su](ϺCuֻ9p>{EQEQQ等^KfFqi}wʙ3uG&f݁M89|ꉒ['=n˞: g3MԿ>0ģA#OQ; ާ;PTyRSP:z7> stream q /image Do Q endstream endobj 537 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4182 >> stream xK\ DaB23f al\?ׇ'友̥apoS {6YU4ԄYά'Km;Cn;6[5a6CܿmߜonϫF!-FöTQO;YoUm7gD,:lUXfo=.Z~ޜq*u * wIo B78Z63Lq>: {S&i ׿^-%ũ^>瞩lջ[ZVjզu1.) iWmYFݔ4{Y6V] 9 Oj=T Wgt}8uu8{Ο5 :=soK _5'JJOz?K՜^MחV|,EgoGԞ;LJq/bywCK&lVßto|YN4I쿧SY=[߳9S8SrpnB,)R6;{vwޑ'OjZVUJK[5a 3}ğU%۔J=);il*'@r{ϲb6p$Wq~?k-Wmt{ޖ^'aIVjNV6n~R6!9,/9ͳY΋ގN=wBT_ĔTS慎_DMɭҳ?I'߆:ij* WOmzF'gsp.XS楦mv*#O,jZVʸl yNA=jgS8Ot“^'OLә5qm-mq[íXSVxyA]M&D؜m8UXTmUSm;=!UN~5=J3{ws7]e ~gzmUpƩN{': {vo,:@uTTzxe|ʼԴ}Pw~¶N;SRkg8M˹Njžݛ>Nug"?U4zy9"2/5n];o-jZV~wN\6ON zaYs_ڶ7>Nt < *VMߣ#S$-9w.)wvVy< 6'I-L۟NT,*O_m_ OE|qΉΝ\g33jK|NO ϒ",3)[N4E7쌜Y鶨'sfVX;v6ԄigK':rgVn\y3d rG,uJ9]swLjZV~)<=y:pUNj~{Xix԰OׯBm_L':^QM&Qё)W;;V' gIp-e'zIvFάt[ԓ93+U\P;||YҿijB43ť?+7<z2yJ#y|@Wy񮹻VGH&~jZV+_J _qF**?ęNt4߅8N6;;VOLC`SЪ τ~s JE m#nG* ;hf6H$ziT }!mT kgVHxtxRť@emH 찧S;M9gƕGU孖r[w?Nn^)l8mꎐ~jZV+_Jԗ)?S˓cq?] sHLDg.I]~ᄊ Mp{ImXlȹsQOk:iT= 6EH-LXj?70{/$YTچ;vĪ9ѹSlfÌIHn ОLU͠K8ۆ]M%0 vfԊG'U\N<_ֆop{:UoӔgVn\ytzYUj/usF{< yEgj!T+s*qutwS͗!&lWtٿT:3]vOG@W95N#vZV/ŗ[EuIbvq9Ovy Q3w:S&f:љKvloURbXȹQϺkhYSp*y"lE?DN}f6!v1{=OɄU外?aZ9|8m:;M 4>|YҿijB4f|n=Ο;O՟3Z}oe7D8y|4y]㴩;BiWjZR|)?XTlTq,ld_o9s3e퍏j$HQnGV%u,fފE;;V5g]M'RC&?<[M-?{/VsNt7mfÌBnw=n7LXUNjV _S7L<>îۦ3=OӔ~N㣌̗!&TOmvٿT:3]vOG@W95N#vZV/ŗ[EuIbv8O!T,qe˔:S=3%IE n{~ɜ%a<rtԳZNZ?2}M'RC&?|YҿijB43UsOmΟ;O՟3Z+[w?Nn^)l8mꎐ~jZV/~endstream endobj 538 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 539 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4269 >> stream xK+ICQNHCE3u$Jx|:93UߓŔqVb鎓՝n\d)N$]wETTn{N9"l97u֙]IB*DjyhՄ?|&uyza3'6KK7C%;Waͧ)E{63';Bn_YU >=Oܮ&LՓx{ŮBjb2Ի?QڐMStfNӜ?g^*Ι¯Xw]WGsA˫˹k뎐~jZV+/%{%gt'ΪofeOջ4Iۍ)i': d6/sؒ{|yJ*OU)f;k> '3;ImU VOG|qΉΙ\g3s2:TeK΄23E2;zW5%\qCENN֔ykK\fM =dm;:tϚW~ =*O2Ih '8msߙ)m!ugjZV՝/%{)#\6OB*x-fV$j]J]KhۻHv/訐jZLkR>'-'q\2iTHZbH-m>a*Úp~R9dڦyhYkt)E{63'SNE_ \)L8!3S*wu]S'0TDjMfѾtepߙC&LqCT+s4pv9WvmRwίVjZIR⾗?et'R.r]u‰,Sw֔Դy*=+isn׾6N;O۔DťrߔQg?=s O럟N{/]dQyJa~+T3hfdtʩH7+V_ SéRE5eW 3t_ϵ]h_:3YiYMMX_5>N3?sygCT˟YO˹LꮊtTЮVjZx9_o3.S?!wO)kts5N5fўS!^QMsqryئ$..+.?Cd؜xKO Tw|\p{$W [t)E{63'SNEGY:eKN]ʴ=.)'Lw|5eE霹=ΚN7njB¨%t_S-]G8wBOZ͢+|t]gRwU[vZVʯRGlNq=UWI94uNŜZS)SzIM;Yâb}S+LSMTş򝜜wUXlSy"2 #ҦIsz.=0S VO 'K,*O_V|5`uKwΔ=QSQ3\2m]~)LIɓlEhU!W$2+eiԄvΡR=gVHxF[V^1mz*Oy!EW,Yv9WzW%'sZVժW%) <)Ωs|^BT:}2eJ/i':+xXT/bJxŜzS mJ"R\DSF]vV2 qNϥ'f*!*IᄳaEKjUN{ Ι\g32p:JpVTkO5eWi3!yҔtҒh*Dfs:͟9T 4a+MOW婖?/DhE>k:.犿sWdqVjZ*|C;eOy{6;ܟ O x-''ދ?gVɜ<];9e+l_%CթOB>\.V+g2*8= {IUY8DXbQyz+<9335%qg*z#=*{Ք]ure=w5gſPQ1gOU!Wt7^*8NjBuLgm>i2+TWS!*:63^}VjZߟjqԝ=U~RSы'E3dΉ ^LʯR!'!S.yg]]WTZ q|„$* s,pV",<}UINV|՜Ι KZ]GΊN]hjʮ:9ӲһK+r/KG'5:Mu64yJFTpLIɩ|J^z>gVjZr͸l }BՙWWKBζp;RWIfKq&IU-0-SeH˪so]Ьm$# :7ci}VT&9Lw霩);pUaN_Uų;gp:矖՜JmiqNv?8 ^>:=ת4gۛ?7S.۩NTS'sW6z9wVjZҤ~f\y>V̫s{IH!g[$%pNtV8ϤJTE̖c2$s݇Kueչk.hֶ{y1SV>+^*]rˈw;tԔĝU0'ŪҝN8U OzJjΊJζ8N pSBpV/utkUgqv ˟)'dqs\é9+~SEjZViJ~z޷l~9yv>]\ճO)!4'V3uT۝= 8g )IW{revʶ{Wo*gq:*i=Ij®I2pq<ν3tԔĝU_Vwfz_HgKgZ Baʮ߬Mnz;BNs/'auTI)w'{>gۛ>=PA:9B y^]E8YλEjZV9}qtr=Y$lU=kHK3ybi?YG9OÊBs&P2 $,z)'wQll'qfrﯣRVəޓۨ&d- ;LLMIYe|gTa{w jͪǽ)^q#t4;>{B|pVGurwsv޿9='PC/!TKWMU[ZVj#U})'B9v<4qVZ,4cbluLg!KUwVg6Cٸ)[?YGuG{R՝ՙ͐뼄j6.ڙEx:Is_2/*-qsugD:ތYRok;$TPq'8'ҔĝU:/&{{7Aqugϖ&sVLʼn;LUO֧,Mݟu/9y'+%ȭp<n /Թw+~ܵ9Ί )UtK9?ɰlNZ^Sg֮&[}ZVNg;޷9,]6 RzHκ 4O,s O5k|_A;T3ӕrOn\*uS5=3*-qV ?!G$YnuN9'3șcyf͍KXOpVO);(2ľ>Ug:{s>u7gbꝿ_z*t:> stream q /image Do Q endstream endobj 541 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2951 >> stream xA9 C1M3l|THvކHU׵?y֕t}:pxO h]f:gyzbWt3ԛvC>_שPWXQsdmg){i>i]gTϮJtָSPyft'R[B0΄Sdp ߎ43uN@)wOdouo1 Qg~JNW&UeU}Liz[IK?٭o$ЗOyE}&w ssdO hȟ)-ĦjdU?SNf㙮a'lަ|L׈Ͱp)SySKCӿE$(TvRv;u[ew*Ni~sUNTzpg&B'?4Sfm÷gr~(ԳZ?T+r{HȪ>i[F]i%P7u|Zqӧ?>P;${ȜݑFΒEr;twz]x|;J'9=>{$L:-K$;U93=nھ23t09{9pj'6sg} Tx)ϗγ|^\L^O~VwwwNgޞc(Sz;uwwIUY:_IӔg[rjoҩٵ3×Rf_+vTNksmQ]`TMOsr=]dH#Nfg";=QYEZɮVi]d=~&ږy}%OB~|ުҙOm_:ڜsvv8 ҹW3Uew*NiKubYvOTzfwg&'?;;Voo1~{)ʤ /i{-Lrd7Zn{fK)oYN*59׶N%ߝ|w${RNYҺHȤpv{Ӽ>QYKZ纪(OUJ줳9r}'i|z͑$[=6Sdp.::Ag3|{JOtO=Mآu?>]u;L9%`i-5N4_wIUYvy}^^M)W}T=ϳ۹Ϗ6jmOsVyEB9L@N%ߝ|${RNYҺHȤpv{Ӽ>QYKZ纪(OUJ줳9r}'i|z͑$[=6Sdp.::Ag3|{JOtO=Mآu?>]u;L9%`i-5N4_wIUYvy}^^M)W}T=ϳ۹Ϗ6jmOsVyEB9L@NŝrwWsbU2n*ə+NHǃO?SGBɮzM9R_#>IAF]̞pJ٩dS76Sdpן;CwgtϞyOIN3uSOd{ICuo;v&Bۄgmʤi>oUOYW=ߞQۉK=%oںl;+$8L@|SNkNiqU2n*ə+NHǃO?SGBɮzM9R_#>IAF]̞pJ٩dS76Sdpן;CwgtϞyOIN3uSOd{ICuo;v&Bۄgmʤi>oUOYW=ߞQۉK=%oںl;+$8Lt5md~st'=K2tu"I&{S|ڤߙw3]/A'||aF8K` }<$Hfkۿ;К/p/nt*nM iT{Sɉ%{g:$)>|m;ErΙn]\= 3]\4?S~l]Dw“` Z>W l-w|ZQ2E_ OS`ޯH&A{| n__*\&϶WO$|= 7 /p|=7T g2 ni| >e ~»B8n_Op|_Nw-'&NS4endstream endobj 542 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 543 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 513 >> stream xA1 G,=pAb€3خ.VIW`s y|uF ;I2"v{Ɲ o!i@7ZP^@ Z0u!h@ z q{8#vQ97]A ׅ.Nހnt 8n9w9; /8x]p9; /8pc  #8pc  #8puv@.t}55u!9\$Fjkm@'3 C4h"@ z y]d1vFM?hmendstream endobj 544 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 545 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 546 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 547 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 432 >> stream x 0 !@)rb%=eڲ+}>>P*A=U3[Av9L`ps*UsXWi tH-ɱ^}x?X"Hǡ]sf+>s# t npQ3Pj!-^V2ɳ%9v8-D&9T;"/E@Igv>v õ05jTLULClI/eendstream endobj 548 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 549 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1294 >> stream xA( C f aHcd߿> nyDMvFSqסjwIٟfx-s؍ ]wdVYՇ;We d[:;sc okON!:PN%[y3;5 wn-$ӳ֞6CځOtnUK9=72agVvjޑXeUVޗ[H&goW *zKkWf͔s&_"7fЁU.i |ΐI>ܧ*\$@E_Ӯ )LDځo͠5Q=fFi |ΐI>ܧ*\$@E_ )'LDځo͠5Q=ԩU39CyGf`U}OUڹI2<={ FM{+k9a҇pbUs7{+F*p.2c$@E_qVVq¤inQ=oVT#T\eƨI2<={ aI‰zVM8i(3FM [U7o[X > D q*@ΥQf$ӳ0n|Ǵ%}H;p 'Y5~㌌۫@r@ΥQf$ӳ0n|Ǵ%}H;p 'Y5~㌌۫@r@ΥQf$ӳ0"cVa3Yg> stream q /image Do Q endstream endobj 551 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4225 >> stream xۑ, CB{*Y#& XM~n s?_?Oˢ͚eF%KslǙ=WZuޜ&z8\s5Tq{E?Nxٿb7:T:<qNTgOhLRNQş3,ݾqvT!Tis읥=/m':´%*̊t }r)Z03I:m~]M",%mߋѱm6a/i̊\_,!B]}r)Z03I:m~]M",%mߋѱm6a/i̊\_,!B]ՃFr{xaY[9zrzu43cr {|Nnұ%Pic%K.D͙ϋHMɛqn}*Qr{b{m4sr>,sm$W9Mp"9l9))|-u6?+[gCR{8N.!/dc}ƍs+{2-$4ώ:vNҒ|n$O$鵑6@cV~m떰wDN,篜^.̘ܶBS۩tl =Tژm>G 钯?ws"R{&o3prA4ަ^%'M"!ٍvx,|]\e&HfmSWoʈ5u8Kj6귬ty+:'g˙l[N1y {/GqcTפ䞼WLA|<}*\ѫN9 q7gF*l[ff̝&uim;In5zҚL|M#&x^%LPvX'LЙ=m#)xcOQ/* \O[gN,}2ow-HCFΊm*3]׹ݲYYq{RYAȞOr8,dIMOV9uܜ)m+jq!˹–|.%5?[u+"ss{V=wL%ʞIsNrEW-Rl; n,OwGBS;{W6p k'KIMfϤJmص3P9;+ظgM{N]2|ú'mזY[O9֛Tlt:NOo /6{\97¢Jr!;ۧk׼,}=ڻ̄&KſP06KTwAIH]2Ni㜒yɊEq/h%.ywݎb\g_G5FXR_+>ɒnu.{nN9M9]M_} η./NfC8=$M:Y=g3Y!s \7dΙ<gl΍ܹq(3i |^mĹrnEB.+aݟwOפyg9Y r9{w M&GסamPͩσ8s7>e>NFJnLNVRC&犾٤=ϖ{9IU;x8s[Z~W<pKFSp'ɔ'i LIxAj"8g$8$Eh==O::9B'g'7Y)%oĕd{;_ Уy6ɢOQ8Ytګ]_- JzzȤ\ї3r/0g; j'WwaKOgظ\}jp>:é*a#_͕ÉnLT9 kE&^NdgnsH} $a$A) /w^TR䷞LIgwϿC''BL~\&S>:忠-2/uAzT6ϖq&YTI> 't:NF;/>+H9}~!8h=mx> stream q /image Do Q endstream endobj 553 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4417 >> stream xK, Caߩ=;BFtDJ~k襦'<{CxREq㙺g۝7"ixkմ{ם¥IK_^ >Ѷd?j^gg{Fƣ{?4PwaI>{8='%\-q/ Y7駝 /Ԑ{'UÖ́j\qCVx.mC=jzW/r^jZ5!¦U]dyzq;i󄧙Yu5;}?dٸCH'ϻs:N÷sMU%{оx9KyTg4 uR!T{ؐ3eW6qɶubQ9/gKT,S8{!efDZ[*}uf_QújY_ݳ Hq<=;\a&t~SLz.O 'yCWrgOҽ'qc ŭ;t:묓<_B:zhΝ&rLm1ڬKjZ^T-g'%nœ66Ō]\5dɥMyS߹x/+TWTg4I\B)㽲%!s($ sUZN*ݦ<)mә=qvR7E[eYV~o1I՜Ϟz'O"OJ5RٳH<ٟm{O\[~f {{N6?CV8ImN7@WUu\VՋEĭxƦ ^!T{ݟ2+]I.$TO']Rm!rۆdjmzn?ٻVۼuηOO.xԛͨjT̀s:Dhgz"gYRgTvṅ:vU;ןι߽Yigޞ-ţR.?\qE򐕵')sZVo)ɖ~z_0n,ȹuld֙w趣BBe!T{ݟ2+]UN62ė߳,Sm{6 Q8mE M'{ oKgĝ]^ n~,6zzY8T<)&='RgT!+u3Oݢێ p9Wܺ_77msum#jBIurN7@WUu\V+ ߵf![U Rқt*lu }=qEv\bfx3Wjt*/$.l^אv&!TW-g9b&'nXݳ)m1̝h(-jn?ٻnx3]<'jpccq ™OYO1<7T:kg^˝yvU;ןι߽YigޞmTOpCwNNp¸rڬKjZ^Qc-{<> stream q /image Do Q endstream endobj 555 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4473 >> stream xKV C i2x^~DDMQ]Z_'úԴH,n]+ťUQ<;W~)'+{dvKw.EL89g"}ə:Da'a֦yh » IWyǃ+7+z5;tsqkt x6OwVkumfe[2TN=iLvJNuYg7ÛZ0SNYJfNf䧒B*zh{gT鑛9qSxVjSw>;ʔ$++mj[o-?C攧+<8'A]%aλ֩~A%xxݟ OUp=W; uO<4z'\egHO7fmV_BGeCuځEEk YIׅ?gHQ'.۔wg U<Uޫa ԙzr.Y6ީ.+fx]&u)Klpݳ~%O?g⟵!=iS0.>s#ܧt>q2劧\jZ<.g}z' sp~﮴yf~{ l S,u;Zu&<%V-Ý__$MwW|۶;7!=lrp*s.;X~zI8e8YU9&p^gEu+&ig^tM8g݈3s:N)"+ urUr6sn{(M苫NwIolDrW-S]VY!ecUTfvўjy8*\%$Y+^F,[)+ca8^K0jZEPp?+cWq?)۶ݹDwŷg'S霝sɖлN)ɪϙ0 T%U:+{n^1VL;&o79FtApL97V'u9w]f`󭒳SvSElB_\uGcNZc'sjR:7u/7TS.ÉW*!Zi5gqߪLY @é*\ڄ)pV*_ _ ۣRwNU%g$쏟֙ B2|pV|pNJNλPV?s?[s@Jv':Ä'$p:o'N~ ^)9u99딓{6ǮY8wOl*ɹ:u\9*99e=UM:Mbév`u\+i]ȿDCS%ZN;loroS3r{;_Vrg= J;u,Vj/B 3G>aBBVZܟE?~Zg&Dg)Y9*9I:B[ų{lWqv^+y۝ n3鼝;-(zQ־NK9SNٜf=Qx&zr|lT{6;g4c,fځsN?Gxw#7kaNj9i9!T;N sϤʙ[|ZV0*Խ3ZVUri;!sz:U-J-"qN'a=ix&:?O8YU<͓mWedrŽ9l9Jv'z=n~>'*\ՙYm_* :gg]fcw=uPzJuO6YIy4qtUpB>$o!TЪ<[p5&Pk|*S:9q&߅{ r63g?Nw3JHOŪK' N&9_jZ+狐M?9:S]޲$,tݓg:!Usq+nwmaq֫|XԻcSl^$=wlw OMof픐w\=yR$(a{#W"3|Ӕ8l YLzZV-tuY cftyrUwUp.sF gW:.gY{x"sz9gΊ4NOEo$o32Y<>Uǥu 3#im#s=wS%.דeUtwUթeTS&N+89w| (OX$*:6{L\͡u5iDJ@$)RâEM폳=Y.1av4SrzWsm-R}nuϊR%kNzZVJ_w1|~gٵm |~fXsv]YVDq)ilw_Oգ'C[W;*?'g:8%O?>{%8̚8W*sxz9Qr**沩pi澜%bF?sw™ܣ.} (>sP>aE. ݺ@xfF~w,evxs/7*,-"DtljRfi$֫ߙT쌧 $[3Ggr]jNOgpu͝ij"4-[!duqvr'rWLgr~ǧ㟸uY*ssYeO/g"t\N_E\6u.mܗuBTQ(W?gUU8{T6=7Ez:g'w3;\!8 [,sN|NvWâEM폳^,Zݔ9qz\;Td|{LΰSM,δ>pZVS`}26,j\$s]UT bVw7ѹ߾9$zv&UZܬgѾr~uYguΙ𮖂M]EM@jZX endstream endobj 556 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 557 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2243 >> stream xKn1 C$o,zGYdQ6R1__9g[I~Nֿc[=4NdέTʬv'߾}pNXox.s{<[W+,rOHn³Է(2ϝ{eڮ9]"[tr4|)OkAny:mR#(WlT.+pl5'Dw:Ť*wmY*ڱ)9=^EvoqKϦNݽ~vUӍZrV]V³"{rf{rfJWnqK6w֑׳~^UϽe%+:g?ݦIEPot59 oǭnyM̌Oaj;:_}=ϩ$wf/E6-8)vubo53g*YU'Y9gOv3χ5>*$_\gFSЙds='dg?TI$:jψ|{gP}Ot'@gnt˃hbf|2w#P9*xN'ɭ<羛0)mq6Ma{̯1w=Sͪ?!p={[ݭ}>LV$j>3'9q$<N$ITS~F;k{}*M;' ND<v> stream q /image Do Q endstream endobj 559 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 459 >> stream xA 0 G?m:;T23e%<~|;47@4 Ω$Pst$t' VgN%:ؠO:Y+3 @nc٠{Io, iI136^@G Kw`Fm 5[S`# ;A0M#6`E7HzdNLH25fw :Y0 @encflPu@G Kw`Fm }m *rlcgendstream endobj 560 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 561 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 562 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 563 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 803 >> stream x[! E$wz)Rn J,`lf~~>8Ȩsf^.@yNΊq,γٹvω-hEέ)2ϡ$ODq{ΙZ{պFf%6v8 lvs4;Ab$y Zsk s(oA>S)Qyk]fgzZ@vKqgL=/$rrܢtͬ K'ck=Ě"J2T *oGgJ[{ӌuq/ d'{ ߌĮ{pB!''-:H t |vc>lHendstream endobj 564 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 565 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2145 >> stream xKn6E$w UYU4?&9Fs}{S{2oe&!9Mo?Χzh%FbЩFUuʜdNufT?cOy_Crkosw3UB9>*#a;0OȜ<=grV鞱jw;Ƿ>Yn0]n|-T`eǟf73 }sX[MȚ}+b9ig<9:kz0-OO49uKs~;z:L~Z{w՚Hbw4]Sff[&YެbG99VEG}®$0~G3]F}3,X3i}5/jv]%ƾ4O)qKt|Y3cWUNyB.O+txvSͯwwU>a`w|lMVviv37՛m߄w뎪/>vV͓ȩ{kG tNSd8i3tmg;{}Q*+& O35ukfgj2Ůͺ*a}XcUT{d>ڧ+隙J 3wY;e73*0ߋ5W"L6NYaUg;O缄L-}5?v[U't]ίξ{NqLLKz+'2tęUrk&*i}5ar}y)-Ӿ>kb˜ #8s2}z55am}7uwoM@}endstream endobj 566 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 567 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4059 >> stream xKn$F C d7TŏjGezVׇϜ~'wzݞz3w{l<] r.-y wqVErS&QqӺzJw槴"3j z΄O'ʼn+9m T:b˦Oڻ=XlqH,N\I =l)7^6g~qb6CYnSVjZp~{'N:^<=:_ǽ񳝺<迈?):)JKx,+)קqS'Iӕmu&թ'BlH_D):]jTiQ\:vӳ)$8 ,κ?S!pz6Շ-q=Ty;A=::B/rGT)3cd}J3)a}{\ظm^M-!,iVjZVߓȓW}q'IOm\wjr/Rwf^Nt]m_ğyә=Xlܶtu&ijZV+\;'N[8ߋ"CW.s۩'Krjz뜊8<]Is.2EiyqO"O *޸V3iꮻ> SO\:*uzoO')~gO*"5%r;eS)u:zJx*+nSԕ\N^Z=g8ߑ:)tVgG?̊s"]n wMq#gWSOsō+JסK7ӴjZVK x;'N[8ߋ"CW.s۩'Krjz뜊8<]Is.2EiyqO"O *޸V3iꮻ> SO\:*uzoO')~gO*"5%r;eS)u:zJx*+nSԕ\N^Z=g8ߑ:)tVgG?̊s"]n wMq#gWSOsō+JסK7ӴjZVKiiIڡ(>;'b')'תfW|ԛ"Oȝs2"TD/M$u7{_ιworِNoṈߧgsv^"N{՝^,]߸S]eIW4_GA=%\UzG?eNH~3ul'"\^ڤ>I{O=qT\IroɫjZV7<;qދt:7eƝ8խz/LZڬ9}t:d6)wB>:)ĕtEcC<9&/M| tFGgH:s~x>$)," t<ە4u޲=>9=uQNIz ~&ĝ'T7aNIp@YDL_M‰$)}=8A=%i }l.]D<9t"O5N;;̞緮2œTٿ:'EVjZ*J#ORŝ$u7OqB ՛ϨR(~;tN}uo1Ky&ORXS<\[BgUewgxXiJ:OoYݺz$P?OQoΉq$8 ,NvsPo q@XSߔN㠞4Tr6KxN" f:iM٧sq'ɝf[WI_w"SVjZV%| ϑ'N[ ՔiOUa"L/U0!')N^t̋P%ل/u:In K s}8rKkoWRO zǙ;EumJJƮkVnMY=|JDh':gJR/!>Eq\N+'8uL-u^uos^3Nl3Ӕs4Sl򥗞ܙ" "Nw{9q6O7yjZVN B{sN[ ՔiOUa"L/U0!')N^t̋P%ل/u:In K s}8rKkoWRO zǙ;EumJJƮkVnMY=|JDh':gJR/!>Eq\N+'8uL-u^uos^3Nl3Ӕs4Sl򥗞ܙ" "Nw{9q6O7yjZVNoj—C&OɅ̪nE9;̿7t'Is>t3c'Qߖ}N[2Bfؿu7ϝ"Ԅ~gu]-.J^KsGǙ@'p:l{*yn ϖ)Bϥ S2:~vC~?-wqg}X;6iL'}&j$zi=O~} LΈ4nZV/ endstream endobj 568 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 569 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4188 >> stream xK$IC1M{I2#&DIEϳ8 * t3qn%o-}!*3DΎ vNsS1vo$_Q»޾1S'I-!uR!N6}z+{"Ԅ~~kMM-g.|torI8sNN:=A~ OJx\gR܎ Y*;?>U|{C~ߩظWմLODiy&jSui{|}?p&ql4jZV+TM7;$uwXחQsgj<|xC$uGLt{uZѽSf}%dqz..AoIRwKH/s?YS^~eNqZ϶߲9=!S#|x͸_}ǗXr&'8Ilo\-!\VjZ+TM7;$uwXחQsgj<|xC$uGLt{uZѽSf}%dqz..AoIRwKH/s?YS^~eNqZ϶߲9=!S#|x͸_}ǗXr&'8Ilo\-!\VjZ+TM7;$uwXחMEfd+ ~ꜹsL9Y.%ߠ_oIRwKH/sJYyc`rhYzv-Sz{:%qșHpՓvɧpUN%:w~V$u :Yi/= M)y"Mƹ4>}t9t3řY5xݒ'[zjYâO=l tʪرjZVBP5Kߐ O-!hyk<|D}t9t3e+f64OGsBzcNʍzfSSѝ:+յg+Z{?iERR3ӻ&2R$p&Wi&+iz7.yrr@x*<f9Yç.n O\_FisV# DmT,6Ow ԛZVj:+TM7;$:7E yҺ%ᩒsësqNI5y>W%ADx<jΩ U荙:Itn*7I녛yO=NEwpfVמ@h=w!IiJ=BL,#JÙ0_u N߸wV {gSDӛQd?*<sQh|  exʖ'CJCY8+xX]wSɳ\6\]Q)lZ>K7z]+s&O-SrY]yi& ߞȍWV'wh՜9= iz8$_lwg=i:%O$3u ':Nx;-dLOUzjYSBފQ'5gNjΊjZVՊ\IsSTqs6rS9u#sOqcwmLX$nd^3uU-|RP @h={zwsN~}yԿ^%OTgFQOĸ9Y$UҲ$'lLtS9&6!+9o߽* =g?Pyށ󊹛ʟۗf zjZVYP5KߐopU;o͟T9$uks;{]롽+D9o0[8Y$WL$:7EyT'u4v¯,.Z޲=>޹m]g__=njdsr;WIp@8;iET=:1pN"pI>l>9-#T'rHJfNf[woJCY8+x*Tw b&Y|^jZVo+TM7;$:7E&V/^}GT^E8U޵xesnQTG9o$ޘD禨ܷz+'9uSgf~['gn~T7=VTIs9׫$8 l{4"ԻZx꨾:ÕΜ}7޻i:~NVߕ:ٷ Jӊ,œ}!+9o%{oq9ySU՗'n jZVQendstream endobj 570 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 571 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4188 >> stream x[$GCS1DMRB{V<?kJ%OTߤF,SGMlWoo㽗S[ M;IoڰRTfu's!dd?{Ù]87U߲r9q³Y8[B-dMYVjZU U Ngr-)tfW(#S]e]| -7<ɚ 7WU8y<;epuS<֝|gzYp겤]גz=>9۩MQBTeI-/K湥7'pqNI_V&'oKC['Oel$6$a#S]Ԥ3g?ׁOQbSلKsjZVժ"WoHuR?s!Ȕ俹s6PFhʼ[nx6)5%A# 9o6Spxv)x; f%TeI^ï%{|rSwʙ©˒[^ PsKo8'?O5✦7&MaO[ثDwNνH~ l)8IFhzI-gjYMJ~ jZVUEP5Kߐ,!7B)ss%eSI˦oUIY) ~ƠKےZq-;epuS) W\6ܟYlIgRϙrvVY[f񴄤H`Cxn dR$E8usH뤾%L 8 :[ȕDwNɹ AzH Y$ "q YSΜ*]crsU\>eZVjU+TM7dS]7]M1%o.utl 9IY9uo-~#)5%A#t~[^+"e,nbJ=9O!ˆTߗ"˔6LO9Oj? W}k, lC-,yYqNIԷ B9{?9R~a#H ?$a#~ZD9}"8!kJÙqV|S uL]N~KçVjZR _$=ufqz.DB8'm g.s#N2;Lap:I[LIzgq)OϋKx'\*[G=EwuMI`C7HM"ԵL:KXuv ]| WuB7,!s8usHN֧$p3q6C~KD9s.祍 g{HfS(# }=7q8sV# oٮcrsU\2eZVjՕ+TM7b&\=qNU"\F> ev@/t )晒 & SZONT,znksUoRB1EkՙteOev=7v')=:d{:TopG)=ߚMSUn ,E)6gōW˩]N]]gdeIH2[݇Kʥ`{87)VÉ+.u du'pzR;[ʿ'.O(g/QFųӄޛ+ΦPFNEc,6uSTwqy)g 7B>Y~'9BSyY;$Qg,[roSJ1u',62pviYSffO衞گ,ɻH?N5UwвNҳ:N\luS{}]dyZ&#W/'U\˽=(˼e#MzY8+x*T~)N1K[VjZ!R SnM4!;ե"ZVj% #endstream endobj 572 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 573 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1412 >> stream xA8 C`ӞE I_{mI\Q?^o ݥwiW^wez55Nvn.&g\u~w5I*l |jU:䯯]1mzz{55%=F>g-۷ogsZWIYdKJaw{=ҟ]r&7G~.T]~:i > &?y/.d/uru&0GZ}09>=F>g-۷ogsZWIYdKJaw{=ҟ]r&7G~.T]~:i > &?yw|2ߣݹdf5NL5NL5N3܊rx n .3܊v!3܊rx 56=jp+=.X{V /?Q!endstream endobj 574 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 575 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 296 >> stream xڱ !@i衠DtU48@OuH4v4v4v4v4v4vik!endstream endobj 576 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 577 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 578 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 579 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 972 >> stream xAn0 CoPd3"-=h=0D%}|4c^r" ҃]3>yҌ'8Gκ;fldށT~̬ȱg[̩ti T̯YWpeޟTI3P9>yPeJn2"ן mrz0 $Su0RNd]^z`;~TI3P9늯r7ɼX7ϒ^+-+Ujy z`NHH04`~Ⱥ |+~cw@>YΓf<9r_nyn%m7RWZV˫Uu&SAJ'6`7OiJ9u{AVnT:ݧ:OYW|2}d $`Y;ӄtU] Y ;*M_4Ӄ9N m oӀr" ҃w=v>yҌ'8GκY#[ w ڙ&즫JȊdWVQUQm2Y̩ti T̯YW{lUzݧ:OYW>yĝ|]m] 𽣪d^5HA9=S: _)'`/=0߫7}w)Ou4 5Α0}d $`݉;ں\Y{GU-ɼkfrz0 $Su0RNd]^z`WoާO}OquY#[ w Nܙ ;jM_4Ӄ9N m࿿r+vnendstream endobj 580 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 581 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2605 >> stream xQ$9Mg(IQ.,w_] u;Wg r?w:!{ :7M9W}- @Й?ӉשuwV+~Km2^C?Aw&@wNa"Y8WՑ ;tOV禉1w :g:Q: <7w;N mx;Oջ|0 ,A|[\p~s_;{L 3yZ_wgpӆw}~O;g 6;wwB'oҝ\8S`RpB>^g : fMO;\q W9Jwnns\OIYx [xû4:7=ppGSs)t^o+ݹ̅s=&g)lex`pNm {𛳿-t0:NYswy8;wB'o~[L8S`RpB>^g : fMO;\q WIm1A8\OIYx [xû4:7=ppGSW 竺wٝBo]NU{kx.f&ܝudmuޥG[K ijOKݤ-_agS?;tz}pwI޴o ݽ UMtqv|)ߟkZm:Scʌ|v雹iSdjW[ v&smW\ש$MOէ)uꛋ cg^Sԯt֠ke{'at f뒿itz*dIpWs{ew :S7ѡ=]Lй;[Nj9tK̉矗5ԞI[4+v+{U.4j5fi{):tUճJZ2թWiӾ)W.%t_WPx{gŠ*l~Ԓ0%ڞLrNNB:PXy LT׭Pѹ^33*U.~{#SȪVJ5]7]7p:srTUܗ7=MܭsB,j+i|j+ܝU@wU*;sQ^9A]==[=]6=6Ϊ)u=ޓՒtOUN&k$!]é7_ IVC|t;Ug ޿eSvӦ}S8kMǩ]J辮ġl΄U>GiٺVu%a:+J= (> stream q /image Do Q endstream endobj 583 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4125 >> stream xKlGCSGT\9MbT?ڡ{ Ϧ]&}DjZV,pI&$}`"B=KZ:M9Hf}qϕvz%67gW2ȉp9n.߄v]99[㻤xq֓k-F]9N+sDINRjnnwښ{ٯw$.:%<՜+Y!qŠsir4qkMo*+4e|NCMML.jZXRRlMܺ–|yVQ(!Iӓۓ7SFꜸ/r\ō-P=ջ ѕ-a_[Wzwܻpݷ"El,7';*mkl]R sqf{w.:WOP{DUa V:q{vHџs2IﶽJZ'.{G澔mf\)x3Kt8%T(/QUpBS7ŕYy&Ru{wSq7z]wW䐣v}ᎭS75MtI޻8ΩTzSnߒ"^lZVJ'klv̩`r1|Nu]jy꠸EfT,;gI¦uZѱ9gk_n{~ZT8^ .ݭS.|}q9i+O7Xl}Yfgqr4O%c¥N/٥?5%FMap_Y0미ڙ[#ΙTu?Քy_jΜNQ=OM%"ƳKWq9N՛^+^#jZXJ=|gS䷓?I]N[2|Nu]jy꠸EfT,;gI¦uZѱ9gk_n{~ZT8^ .ݭS.|}q9i+O7Xl}Yfgqr4O%c¥N/٥?5%FMap_Y0미ڙ[#ΙTu?Քy_jΜNQ=OM%"ƳKWq9N՛^+^#jZXRbM8$ _s|yS\$hf׎0E͙s.ЪYSIrLOxw)S89mW(⽜.wén^]z/.gg|X̬)g:p<٥ ۔W9gRU{bSzw|ߗ:u_KsnћXWn)ɯc-8<-bMvݚp}o|^p|jZV+D <4O@Ź>ww7Ifv8{ SԜ9wy"ڟ5 T+q\2sOvu.R~=E߫7by6Ϳ{}ˇ̚+x8s 8=]My8s&Uw<,6ϩ{w}3]Ut1_9u妛:&""m׭Y Q(=NطvwǧVjB{CMOjNvs26ޝKS ߹'|wVTɰB̝yoᄧz}'#Mx\)&u;ݔ7zOȚ#dp7EfUO־\朗UBlqBCx]TouQ|8;vY 4ؒ|/uB[oV)Lիʦ].N7OXStyx Nɼ)ⓜ|~ԍijZV+;~3)Ddmfٽ;t/sOЩaׇ.%ę;r37 Og6N\ G>SMޱv)o*5EGn̪|7}9/>),?!4;83*LqVw& hi$%^\ެS< ?WM>]nh':#l3͝yS'9^jZV:yG#X%7^20{_VOs8+  uMFtlg \  YJ|N|6)J5wJ~볺:%|BN >ޝ.['sbO6P_]:MiT6U:soePwp_Auǖ^+sg2v~)yȾlL'zѕ<Ά;xz'nZV՟=-7d\aN39upV=+WWe] '9QT6qv9}N՝yRʼbyߞ4ԯ8߫&{eKK u*vrlH]N&xH Uݝ3+Vj=-REBwY95rx/^pV,Vnܿi]voq!*>-qJy]sJzNZܷhƧYkͳgg7eMgR{=)'N<)e^A{ߊoOgWUo=B޲ݥ׍%EMWV;guqOb9t6. ,> stream q /image Do Q endstream endobj 585 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4215 >> stream x[VCTڅkT5?yx<]{!NuRCڗ"OZ$BR0Wuٟxpu^6j9̝:i_+dnpxho׬^y "jMɕ"K 3bK3g.V"Lh=xrS8@n^6QT6֍8*yގZYm/]ndH˿^%=Q+m*xY:o7cR5"Ks{~"N[EV"Lh=$i۩04?`)N_}]V/Uff]TglIg}y&u>ZoJu煮۴KHyYSLДκ6\VjV/3[;#^6[UY'גYS[w`{OK;v;򯸗/0pyqOuJr^aּ͘b"ԹbͨȒ?^~6Vo*3Z'.8Iv*w"亁+O.Xʤ׻8*stK.zһY3w_:cdfIϭ֛R*'6m~9e^go)4e. 9WjZ=0u V@'pvUVIdVؐ z.dd߸j_A^6۵c^>E/Wgfyx⯣S+lN wVX3*O>'B[a-ʤ N ΰ8Yn jӃ]IU'TׯwqvU>u_~pdWFʙ4߸]Թҥ1_7M}BNJuܛ̍KHy]IMҔ\uw\VjV%W[;#^6[UY'חYaC3*\깐ٓ}}!{8o^&y=_l^9≿N[9}+̚I[cͨȒ?^~6Vo*3Z'.8Iv*w8d=N>pwR&UP]EU~}I3¥Rd/^yV*gb|vQJ|4 9)mron37w,!SUpv%M7KSruߝsZVZ _,I+o\'{pNn~gWeE^̷o[g67>)Kn/]Wwtng S({on\C{&ὐT~|:'::Wg;ioqXA29xꂓmœn,R>iT(N_tMp½J_SAE(uuӤ+ycN]nlӍ)ߋ'Ή4%W ӒZVJ/wK򤕷wFl8'R?"OZM[ڷkYҥQ;:3KwLzG~)7i7Hx=gkN^HY uMAV>I+֌ Dȝz8ETz͟dvx.4%\9[v%{K39 9]TglS~+X^Mx˩S?-w&WsSlK.Й)$S!t^(M3W孴Vj){-<%-R?y~|ήr$oR?*sݚ=Kugi>9[v%{K39 9]TglS~+X^Mx˩S?-w&WsSlK.Й)$S!t^(M3W孴Vj){-0zF5v:aN29*+.+'9$ɀ9n#KAz~%M皞+RO#Kt]?S6>RI.>ׯ.'$S%jZV%|;]{%p3 YgUr᜵) xK^Ԝ>$d5*]*isXo9 <:\WΔyof&'du8D.Y޲z%6TI)N{յL[jz.N]峍$mمKuƖd6Vd]|N5aW^4)wjSuzx.S8+u$.g&O7 υwQ_ucZV+ؤ}endstream endobj 586 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 587 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4240 >> stream x[HC1N{~NKŇXe#uyV߬?w6ŧ}V'_L~\m3s8- K]Ԝ9$tOP»u[LJac}IXwp}igpz|nkfѫ|B!Ǚ'+[֬ӶOp3ԨgRU>O9]$-l]9KuƖ|d6C2?SM85kV/mƖNz|-'zg OQ_禱ZVժ8qB39T̺ ٴ2KMp'p)?A9X/.v05ZYS<]:]="z.3mgyzU;$4_-[sYa$%-z Yk]pԛ^ti<:g9SA6nqt:goom_W SES\d#֔sXVjU/1l 8!p֙mfӍlZM䍋NIׇNC;Eƚy)ڮrnYM}=ζ3řL]Cr[ן=홳sPApNG|Št|MfeP &V|tS<]\g]a:;7x{zݨ;w8{r@:9YFqMlWLs%DBϔ%n;Tv ڂv83) lM{/:B'WK/Sd).:q:{Ϙ3T8vwY|zw)3'7jZV]cVtugݓY'&8R}3tO׷?{:3g.Vp)Nԛˠ~Mf%xh]Ϻ8uvn0(3Qw pF[d(usN3t:'ԯ^]f/p#猍K+څ0)K^M5w7&8OpNgSԛ^tEOX^_R>a]u)g?Y-=u1g6Sq.SguOnjZ~k9};&ʼ2ũYqHsfuUF3g9YT'.{&k6=Ax)Dg;ʸ9$AXqpNnRlТYB?4<LaTu 俎1.!˳0r=^p?%gW=M+O'v*.4gg[:|ӄ(> iUSFr]u纛BgcXVzrs8 [.k 6xt%43"jZV]):ΙA8us8+iάh,'Bĥy{pͦr21Ԣ/("l^7d7+)ݭ[ TMZ4Kgos]),sׁ.!ޜQё:%dyV^gw ng쪧iwdN޴lKSo'!r}?m~*|9{ވb[Krֳ\wSR]>+^]Onnug_sum7Sufztt>sPZVժ+{\rtdwOBp.>ꪎm&X.pj/2i}_gn0V'< Gλ'LfcVSt9B̊ONVVwtR%8๱|<9IE~- !#W&éPֺp~&M+I܄++<*iQp71a{}b߄6vYTY'sv=87y?ƒ0VqHs IA"mJSrT(k]z8?ݕbn•T~En4(x0EƽVoB,f o9\^<Ar89 fͦ]qpN7jZV]7_u%YNŧY]Un34{dz3 ̖ +R;޲HT=yWSM$oWde-O:/(3 i>%w0[ӛ~wxR Y"VwY[\TߢL.B\^<''C3ʹ,3vvoIo7jZV]{~%l:K2vKO9&f";giggR)tM#-R]Vwӽezj]<Iޮ*yG'[-'\)ȓ3t^DQf,}JnaV7{.M`ӥA8'8vOE) .zE͙]+v=87y,ONn4g_GsYfnߔ*?njZmII@.3Sw)gVWqm3W^ɌRllG5!05EjZ|G~׳7szrmT}T~ΩY]um٦KƫTNg!-9]$] u$}n *}Y8#Vݮ;rw*pN}3gRd<1O3&dNqRN:'xolܬf_p*I374* άz̟ώ ¯?N }Pq̋SԄ u}>G8`<,ݍJbG!w!a 3jZ|G>do0ۨS9̳MY;&7M.W/&C>[~ +rۥHλPH> stream q /image Do Q endstream endobj 589 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 703 >> stream xAn0 GîD2)Π炲B~N]|k8ݟsZ:ϫ[wuk~M=ߡow~rV^0ߪ ܪUk]'0smSsNW> stream q /image Do Q endstream endobj 591 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 329 >> stream x; DChMيd&@ B6Ʊo3zk$[u\ o y6a$ T>$/#$E `^@R i@e@2BRVЦ( @c'Iendstream endobj 592 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 593 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 594 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 595 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 649 >> stream xm0 "N/( $ > ?_o:8i2Sd;>h 9>.@27PB"E90uAO&*^VIH Eiwt=OuAO&*^VIH Ey8.@27Pii2[tOv)y25=8Hfx]"^ Mf#yIׅ2pj]ГdnׅJH&Uv<6=OuAO&*w8igY8.@27Pe''^ Vف81ON+=8Hf] $u*;U'ɉ|Ժ' @;Kzd`[eϳr<9񛯘Zd ~vɓV/Lc@yVU''~S낞Ls)`Yɯ I?/cc@endstream endobj 596 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 597 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1775 >> stream xA9 C`" ;U%Cb^vg̢c2W;up1V@_ܥc2.XùKX[eg/]§sη^`O?`]-l+3nk^JO/BeLЁfz[{:ӭs`ɫ 7>SYgOTn>Խvpv&&pyί49O}R+tYT xo'տ3ݪ>~}3=ՙu}vtJ 0إ{OUET=}j_O a=s-WNXpNfwW+Lr~ ߝv̜WnILCUΪ^ݘ3gL] _'tO[VvԺfRu'rJ^? `'t`LnwTR}j_O a=s-WNXpNfwW+Lr~ ߝv̜WnILCUΪ^ݘ3gL] _'tO[VvԺfRu'rJ^? `g; P&ߨͶЗ3/3oy+?}}[mMyί4-ە3s@B+r/OGf;9 ^-}s1-t'gk}S1|j]f_7'_/o웢yS:7[J9)STYصɰwGb-̜I2_M5㺙 i}u,UH~wə>ffϜ{;gs&dq7Lw_[-3P[3;1iUo=ӑyM:1[J%LM;nqdOgndHgfϧ\I~WL[f^s~ugg@~S/ kOKބ{ֱ[NuݩkϜ[~U;9i'4OV+R 3'趾3waצD~„{zO]]]Uf22ۧ[N2E} f\{ZB&{urʴN^{$wH; u}RZJ99@mMMK=}ޓfO0m׋߽wiU{r_|UNgН{9Iޟ_{_ړsY:303Q}vS[]ݩf:9ٙ+0Y3'wuΜ9OrW?;g@N endstream endobj 598 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 599 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2443 >> stream xAF CCtuWDTEfLjVk?~ 'uNOINm垄|&jy5Lzn5T ~e>?ݛZN}%\si+nr~g@Rmf%E[ʪy~U!}_&6_)Z{wٝӱ{ܩJx5O=_!O5'|GoڢImtނ;{_oz&0SG_ɽu;ܩobʻ*n!w,垤*O&[> ڭׯv7Ґsk'miƗ󼲣6l[7 o"m—js:?9d3}mu1_-[j ;o|/v+~~Dz[9y_IrjdASzm|jw}# 9zR-ߖa|9+;k^ͦ߿E~ m-Ҧ.|>w1ILO[?VwuVp03 if}rE lSnu86'k~'I&yl Hh~⫝̸yw /d29gOd{$݄'7hjߑt=vRay6?%V%Eߐӷ$Utނ|7 ;IemIĽ'[;o߇*'_\t<ўNfRYECU ڴ0)Y 937ҠdYʙ;jY_gr>}ϵIf]jNy2Ѽ{ :_Suң#m^g<29n$ 4Wyҟa3{WЦI&OQ￯~ڨoș&SMr՟WQh?swݐ{M2RsSUq䬓i:;M晜v; ifa^IMHOUNo=9fk^&yGvtcY};zndӶ=6sw:jWNwS^ȸTLZG6g^Av~>՟paT'ޱ=&3LvOl$T> stream q /image Do Q endstream endobj 601 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2449 >> stream xAn-G CE$w @ȢS(_럿_³݉W+{fͰƧ&ְ9oʩvJؿS3{vSw=UJVM{|a94Q&;uJ~ 9LMq#k@w_?_wďwڿ?A3{u~ATy݉g_ܝ-{/ ɦ%R);/cOd6=f<}*7d_yNq; w/ 3&3v#ÝJ}jz[hޭMuI1s678o|/(|OTwij/aNf=їdOْSΝf23sSRi/L<;꿗ل~}N>5=-4Oo}$qkJ97W'Jg}wٗ0w'wfͰƧ&ְ9oʩԟ;%cg6ӝPN}'J뛿M”si{MwJ~Cy:MJ6vL ^_P({u|wٗ0w'wfͰƧ&ְ9oʩԟ;%cg6ӝPN}'J뛿M”si{MwJ~Cy:MJ6vL ^_P(;5-=KtJySNeg%{쿑[=w;W'Y[cWe|9ge:=v޵;o^ٚ%i|?࠿:pP*'_w<;kk[4{R! J/h˴J#{7G"z:5wSOѳlǮmsft{kw멹9<}ӳ5Kr&A3{u~ATNxvVb͞Tu3 T捝6as~){z]'OѳlǮmғ9՜ޯ$icK[.:#-'N'A3{u~TN?y [4{Ra׍g$7lSi7vJڨ͹Nwgﯟ+t~Æɩo0ɞ֝OC}*_}%Wv9dddofLM̷Knݳ'29>[7WW Jw7!yPaWnSn]ϧlƷ5wu gOIG9˝T+-[tTY[nG9gfY5o])SsL~N ɖ Niސ|Άmo|ܯ:oB|tg9®~ 7ܸOokι.|Ξr;W)[J܎rb׳jz;L%S& ҳzw?+-9Ҽ! N ^_5(dk' 񞴊( (|S߸~JγvCr|~)ېJ=ÛH%wgLrLU~ߖ/<1M?!r 8W_02W*4$g{*6G$LLgSL}):*߳ 6gky=woC+o"} o2Nۢ2W)SsL[:L6 )$Tvf_}=p;r>S9g̕jOQѰ={;%gL$J̷?Wyw%T-$yM|P?.r#ϛGlL_їmVs=ߟ2%endstream endobj 602 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 603 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2288 >> stream x;G DEHT2Й T#'/y15Z/f*nUqn~NN~nB_eU Wԟg';HY~}m])ʎw^wK Mϗ.&ldzz*wiLw[ީNUw7G:r֫7 _6w~{_ym;]MvZ%{ZlU&lm=aWNظ{ jZɝjocܪO9|Q2>/a'ߙ]8MdjTy&SɝD{oޟ%tWnll?~ws0z/SUrsfVOOcwSڭiwח<݄gXVrX[+]LN s$8ߵ/OFt4c~6N1Owwʷ<9{j'—sf3rJnMI&Tm<;;ݪ\ggr W4ӝ'}|76{9uiwmwI|?pCTű\w.}VGTL])[;rlM;Inen<;LVJɍLv׵sK3yv{gk;'sc_oͦir>˜Oヤg}ű\w.}VGTL])[;rlM;Inen<;LVJɍLv׵sK3yv{gk;'sc_oͦir>˜Oヤgz}>k=nMx>>w>O=L)y?mWݿ#v;ͼ:_Nު\_9li'з5[I,Gw r-}:spLR/~}W{w5݄*&gs$fS{'~Щ{a2"-k=nMx>>w>O=L)y?mWݿ#v;ͼ:_Nު\_9li'з5[I,Gw r-}:spLR/~}W{w5݄*&gs$fS{'~Щ|mIw{pZaә$dp=sǙ)%\OMT}i}i&$ܭw3GP3a&+ʰ՝okI)g#y&_Z=̧O~/U_6wBNuu?pCT>͖M9Vgtf/ 9qfJ i/?U{ttڿw_d w&Q%TLéɼ㊶2luFZqوoɗVO8)K͝P%luyt近5E~BMk:0[mMo_cutkW7/-۹%7ݲ[r>sKwy뮓η,߹yvw|m_ׁ"mSv!]@ vuB$e;|n}_]'oY~ s']_X[-endstream endobj 604 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 605 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 400 >> stream x۱ P"@ߩ ,B ~p?\#J tXr]\#J tXr]\#J tXr]@#^, NGY`u!Y`u!Y`u!v, B;NJ tXr]@J tXr]@J tXr]%\@@gI%ׅ))Y`u!tJ tXr]%૞eendstream endobj 606 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 607 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 268 >> stream xձ #efbh%lLIr5;<)gIm`6endstream endobj 608 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 609 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 610 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 611 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 612 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 613 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 614 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 615 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 616 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 617 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 618 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 619 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 620 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 621 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 622 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 623 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 624 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 625 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 439 >> stream x !ZuM "#seL (~]#=,@-3YxVҽ۩G+~-N9ч>,@-3YxVҽ۩G+~-N9ч>fP97s 7 Юe1 πJw;3C+bl/> ]htZgR"}&iendstream endobj 626 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 627 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1472 >> stream xAn9 CL0i#Y% *7]32#BI6rm]T/ 0n.zN2y'^:އ{qOn7~BqԶ*>OvSʊ19nUEtVBCڹFͽk/Ջ#=-zd N2y':ɌkL_SDT[ϡ$BqԶη>OZCϔ.r:a`[DU'g*ps\{^G>{[$dNu:ޓ{o|CI20mo})e]t vuVBC@k3g֩^`exD>?tcU+5I;}Ww٧Զnߦ>OZ1'ra`vuVBC@k3g֩^`exD>?tcU+5I;}Ww٧Զnߦ>OZ1'ra`vuVBC@k3g֩^`exD>?tcU+5I;DzJ#::OmݾM}cNt.nUꬄЇfάS8 =b~[}~ VjޓwwѕGttfFS>}k vy}Mmms'vqjWg%> $6sfőOV#~[}~Ƅ<+t3ݿ3^i4۷ϓ֣wɟns-$> ?S:= N2Stn5uG>w vyP[hjKU^zGUn5>vL8 slΓ78ɜ?O{q3䱞CInO-U{Us"LBC3؃̱A8O$s<5IᖻSwG`wz%>T%wTVq3 iϔc0 ?S:= N2Stn0uG$9d4RlQ[ 0-$> ?S:= N2Stn0uG$9d4RlQ[ 0'-Ϙ'!{뉢ϙOU):+:moW[jӳكm~?9ϖQI9[:ȰA|C_ɕT/]0Pwu< Gd.Db4.9SdF T_?z2w)Ͼ5n;ə _|w2i93?{zwGGͶ:?Ǥendstream endobj 628 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 629 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4248 >> stream xKn G C dpGU]lTMϟ럿ߟ^t&s!\H͙Mמ?+)&86G)[geIdKxoR~*J?ȾPD.Y^-$;5%d>|ŠfeޥO[!H!3+?!Wr]42 ܊r ~#̭kovSK˼wqJ&_7jZVQw̝mooz@UFug5aZ]-rνz:JO#۾]2slٺs%qʔMT 9zwu=%AS2=]uP11 bs^B>aE9iD7řӹ]rr@H+ *83)?2%Nu )g 3VvIȐuú> ,6-N^xӓ8I})\]-K:NmZV*Gܯmooz@UFug5aZ]-rνz:JO#۾]2slٺs%qʔMT 9zwu=%AS2=]uP11 bs^B>aE9iD7řӹ]rr@H+ *83)?2%Nu )g 3VvIȐuú> ,6-N^xӓ8I})\]-K:NmZV*Gܯgw;d;wkA\ PKIT Ί[BvZ84%goߑ^ܹx:ͶI Wovl -W<SZ8eSص{@rLa9sy9IVjJ+/o;wkA\ PKIT Ί[BvZ84%goߑ^ܹx:ͶI Wovl -W<SZ8eSص{@rLa9sy9IVjJ+󝓶^o-aw~4a.I[9\?9ɮƹxNIru{%e蹱IPʁ%y  ρӕ!"'Ϭ.ÕߩXznH>a^wS<[8smYn+gkڑ|93 )?3M\.e "m&lʹVٞNaq*mG'. WjZeMܦ|{]l sܥq 8lwI:ݒ7EIv5(CuJC+0-CύM2jV,/ɻT=pdvH֦x, 9yfuѵNuscF ™os=W'r._9[#$]׎̙I'TMq@Y m%wᙢHx '"?ff)_Wo3ak'U=r8t S^o;:q$dZV*SܯޯM|6u] w%9MNiM!r&[gW,!Oq|4[Nɍ'NgSp:'g yzz꺐;QwћKwwlB\6OC™~뿥q/0{i V!8{{dÖ܅g")Ivulu ~Ml--nˬipS WjZeͯM|6u] w%9MNiM!r&[gW,!Oq|4[Nɍ'NgSp:'g yzz꺐;QwћKwwlB\6OC™~뿥q/0{i V!8{{dÖ܅g")Ivulu ~Ml--nˬipS WjZeV"nNXrTsvgUu7X[uS!+ObG5'W<% S^'ˍ湴>t: yzz>wvKOSvͿkGU&i+SN;kxyR}T5ӹ¹pKcC܍V᩻lԜܬ·তYvo4Maqz7OBzjZP|$(X:?ݑ+a%<Թˍ*νK&kSu#rJj3D^}DKkw)dmzGuϞϿӛƩ'W\B]\ZO#gQ&^B%;U +nk;Nu,9VV{y䗥Nb|nJ׎LRQqrg&Ե؝^x޻Nxӛ*u™o>7:SWݍ+gz\VjZ%Eŕ3v]γqNܸJۯdry6U7r;K.9KT;+8+wAvgQpN֦w]w;izr%%ɥ4kR{;9%[zzwl)M= %' lStNg^]q7Us&U浨/'d9(թ]ԉ˦ϳ3O[|;?GMOtN\Š?g!SԗtM(Wf| Ц)2wM?#u'|Bvz[Vj,W׾{ <-߱qtnWeV'yKeԧtd|JS:l )! O#,N+C/3erQb8ΡMSe:{/VG:rNԓ%*ZV*Yܯ7I7OlIVq툥S)Lq86EOl9%usLa8$\O'Dp΄<ͳ8/Sλ2獰xOTA]ֽSlnLAiIw ]Jj.6OzYq@/ qVxaqIOVlSeǙmJӔ$y὜STVu~MoZV&bendstream endobj 630 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 631 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4209 >> stream x[m Cq>aZX ٚuUOA*<;Y|W;b7?~*E)szh3/zJ|SKusLaTHH9 ~NA'.gFu8?~s#,;*Sr;UPq.m. j_TPwWNS='];%u.6{^S4dzz; ՕU?=bqzsYiLO&T΄rN^NS%d׽jZV~E$| <]_b,9]tN]/OUstwyh'KN3ݫڽptLNYȿʯ2BV/5,7R%8'-w]NǝqκT9;uf^G%\a~ާtQ;ٛ|=?j<]2IJI-MBIՙIt3".9̕^əioLN_@˩vsNZV*YܯoE7OKE9]0޻ecqij..o\\{s{6V_n~i?+?WVUW@ꥦB\'宋鸓r Y*gάBW+lվ.j'{ǝB핧K59^ 9齅IS3:39ԟCF%+9:M͓IVv]h{9x.I^VjZ%k<.BIDJvR#39iOoQ rLpBXT^UG1cu{19gyy/<$\})ͧ: ̛|DjY]d%.阜 ۫uz"3[ݙ.99ԝ꧘B^CM9 H}Ep.ySg&'9x>̳3".SH˽Lcr|ȡMT;I*!۽VjJ+;S"dLԫd';B*;6% ˔ N!TEUXu3_'~o~Ο2C'N|pZϼG5e:aNfX8B`Zǩ.۫J=#5ޝҹϘLy~)^q>dޔA!ੀW$ gg:ufrwJ SLɪsbe?UN{[Vj,WDwr7OOBNS{9<#<s7rvY+E[PKѳNO/pz{ҵHkj%C|^Oܤ)B],ί:r'y[͑7{:>w)YUsNv{jZNP=5Nt;b9NW^'qf8t@C"VrL*l:ZO>MY9+tWf.8(rdu;72ZiW ߔg׬:>w)YUsNv{jZNNbd=.S]pTϫPmJ$K ^%~unVû_u=KՔrbO;72ZiW ߔg׬:YYkJV՜+UVdȢl(|PгKZNl钷0YdͨLLH^ӟ6øWӲ{;:?FtzcY7I7՝ IçMNgu&Nltw}r\̴oʳkV}OL5%jΉTjZ~Y/o >KөT;P_j%wܬϻ_u=K ~ӽ ^A7C;%\䴟d+5ޥ:'GeCN%-'\6t[^]}{uɚKb/oj\=AhՄ\N9Өe]͉ׯ:wLהKQIܔ.2|;;8̸Ϟ H+fQwyE̬r!΍xɢeg]-|S]{g;)dU9ʙmsZV/Sa{x_?ç{s:jt*uRd^ys"P!oWa+CzhK_{e^&wջt9pUdȢl(|Vi=[@.y 뻫\b8YsU卝ruW^'9)gմ9^ r) 1锛ҥO~gGgS4|v,./qzU.:ܹO>Y,̴oʳkV}OL}R;Ŕ9'VS9pVjeqXz|T'eyJO].*&2_GeAnͼ蜋p*ĢOS޴׿2O颞E[tspAwY. .ɜ?K/_;Q?j mN5yS3~iT{pWgxBߘ4{&3a01i:yxԙTwd,- 6HG'Doq̴5~Zti"~*gjZVAendstream endobj 632 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 633 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4178 >> stream xM& CaxQÍVDEeD1>ϿXni]lo*?su)$B/5myNXTT=~*eg$w2ϔ!SԻ/9^V}A=%Sg9B ? B{Sojf$gմ=}D+nzwlMMg{ĦQw&S=ӱ*;"3ۮ֔ G:]9O6¹ZV~~'OlMΜ>pܵ{rs~D3~m *fu_j͢fz6k\uYɭ'CZ3qA'V8 ; 'Ϛ޾_'۳܍hl/ӇuGyVtrQMswgti+zq cDŽ79侦iM"TOS=Ӣ*;"_˶͑:7Vz,OZgt4s*i'jZrNS-9++|̹kgbT[Դ/E*l~ZO? m[1Nf" ץ㜕NX/q@w9OΟ5+',}Ng MG7^,O뎈l6v`Vwzǎ o '9s}M Յ&8 sErzEi-UwD&:imŁK#unX8wi"Dg?UN~OVjZͣ*v~&ga$@%Onoˌ;~̡mZo9 ;v2Yg<1JnŬIh&?$'yX}pJM&L{oLi yf)TT䜟ϏnUl*Ù,6S(*{B1gSl͚R3o>%GݙN-UwD&:imŁK#un_48wi"D.nVj+;9GU\ٗUr6O \̸7Zߦu8 yéʿc/OVonjf"NrwgԴj´wvʔ@g&BuNEVZF|Y9rΨis>e߮/ڞOx6۬Y-9SxԝTOIRGdkV9REJI댎s&rNtJvjZVq"z< _7l)> Lp@l)8"7qxbKsY>ilZXy:Z{SW3ӹ=SVjZ'W׾yeey3dӟʔڷ_T{a`C9 (8un)m|JȔ.6BxYSXlN;h 9+ Y鿣s^N׬ϝ賴qz{^riL._wlߔ,S$vGpV7en3{[Z'rMq^lqLMi,Y g:wQ%t7jZV~EFҾyeey3dӟʔڷ_T{a`C9 (8un)m|JȔ.6BxYSXlN;h 9+ Y鿣s^N׬ϝ賴qz{^riL._wlߔ,S$vGpV7en3{[Z'rMq^lqLMi,Y g:wQ%t7jZV~EFҾyli;ٸ_ڙ=Qs3D8}0{_$A+SoMC/7ӫqݾ^\7ߓmo۟p>᳿j3Bs+>gl N| K/[B 7q-kzv 3g ǟzn1?JDğK0{:Kؔ -ɹ:3L[3QTv~6v+Mo{] ;?ӹukOWjZ}G4Z/4+ϮQ'r"|23좚ɽ2'a_nng S^-< gBYm/m2[ɄMrPlؚ떓j>a'“h> stream q /image Do Q endstream endobj 635 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2470 >> stream xK%7DEtSiГJ1nFT'E럮vYISOڄ9Qw@w~oN\~N:%gIo{2g ř UtKΦMζp*ެVE{Oj~©<}yB~uRm7]3kSݓMG?y➹$w`=gr]{pE3UOxSv+^uU:;Gg@-S3cWgzz蜈ޮ$Trl6OuHׇ w''޷H;O{spvRWY3ބ{w9r橤L5gi7UW{Tovk¯_~^;ywqnlWs&w?Nګ4_tv̊IyROHl~V:1[K,NsίܫgQT[x=O"ʙ9If;ٛsKJg稠N= uw̽esv%ޙUWΟ橮w{svCѓٜz<9'UEFy뜓zuRϢ䜉&ܻ˙PW3O%mf9{OҽLz{_~SUtsc3Yw7^ }7{gVLʓJ}BBg&IZ2gqd3w~|^v83 u*LdzE]euE~ TWΜI2l]RT:;GuuY;P?ff.sfߜx+\rl6Ou]矾{TԻ~~97-B6ΓF?mvJ= ɺyyyբNRuN׫t-S̯ׄ=/_omoZo:@rN*J9{nT/EZOߒ3+;u{ *+kg~]mT6=~ZٽJ~j<*'\q7mɩ9af>M[nr-m]ۅt`C kox? ~p>.p7~u &|;]nM\w|I_V7s B'Y܄5~Ƿ ܇t`̟ endstream endobj 636 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 637 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 363 >> stream x۱ @ !xM?zrA\,.h\: @-ʍC@u!ʍC@u!]C@u!]C@u!C&r 2B Mdօ 5Ȭ :$4kY0tHh" .+_mcendstream endobj 638 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 639 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 640 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 641 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 643 >> stream xm0 !ZtM iR}'B^/~}߰^:_=WLOșzկ?Ԉg,;2Ok3.> O3kVEt}SD#~|w^:_=WLOHV1~%F [32{ϡ$CV"~pendstream endobj 642 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 643 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1965 >> stream xA8C`ӞEm(Dlԗ=IJ"/ۑ?_?WwwwpNYվo@[o듑~?1Yy*蹗J>=Z=wFom]T 6CIN"$^yߵNt<ڧe\'>UG'#M-|VeU WbmV%{@{ga,nz|%8o׺;8щjZݳHsSuĭ}}22zglUVe r)fUO'T˿zFϪ.?P!Qwx*Ϫ=+4'>UG'#PoN[U\qY| ﱞp3E I;8o׺;8щjZݳHsSuĭ}}2 U4UYy*XU>P-Yw9{?]TdKwx*Ϫ=+4'>UG'u4UYy*XU>P-Yw?#+]`m$D7]kSyVOY9:־>wd7NʪSA8ڬJ>jXCYYqkO$$@>@2 ͷ-7Jo9'I\q Yzx ;LP!B;4Ne{@o{[ISA8=uTsz{& s(ɐI|~@2 ͷ-worΔ3N P=qw3ש~ϡ$C'wi44pʯMz)g r)d{,fSW?4CIN" 8iim!UQ9S8S*[@5XG{| $ϡ$C'%|Mf>ƩLc/Hmo pGΙrƩ WBV:=kp$|%8coȵN߭Ӟ ;k֩"ow{*U2J:ʙ.]aWybkUbv]=w9I_%m a'3Y\= {{Zs~י]:w׺̓n~WjPU9*v]%3tNsY=kq~+֭VE*N`oms\uίtO+MN*IIBN*u޺dkӻs5m矏OwzF?~]&픮ߩȿ_k~LŽ:: * {'Gw+*|w٫5jO{:'hڒbo_*̙*9\KYz.wdu͡zwdW])6]'׶VN#Wjտ;5_g~׳w2m3gהzf^^W_#3ܻ;VəZiW2sfs:]uI'SkHHZ]LκJГWK،:NۗIPendstream endobj 644 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 645 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4253 >> stream xX۱$U 3"u[VOVL?Ez YUptxwi[\N㷸}n&jq:uj~=`-a6ޑgN =ftr&#/S#/.f}$B B7wޱUnq+W VwjڸqZaUKܦpzf#a_˼KÓI֙ʩP*Ovvi8<O%p88{9ͩ'WX p:O3H=+nOu*>ucVFEavԪn)m|xo}A,8Une086vУΡIB p6$rP_Tq\a1Ҟڏ w ڸ£~ BCNNl iLOzᦇgesDžGacθ޸il2or_LLUN U x,uKwVo6O}(9˙NY26w4<,gJV:}]P ޓn̓|,4w"/(gii/ꦺ)s98sd2|zy 9oyVZF Tql񞬍.< '_OK 5g ԕ&湂:NBG =x7&+qI)Sgj q !$LWՖ5sMN:9庶Lz Tq|;ur3H%X>utfr 7Bk[mpqĂSguS]LmuJ9T2M>S42O˻:H۩wݻ3óa|8aNtƱlg۩\IN lql@s+̺f%e:3UͦRѬΩ`)TBKp8tR7 ;t֝:7nV 3[w7]NÓ9QrBt< Nl?<-I*t .ni/)TS[ݻ=NYקrTi`yWwizzx;{Wpx=rG~#9l鼞xS86v=l;+qQߘm6S unceY׬䷬"_gX :9#,^R{Tu8)76ޝ Ppf]O[b&ڀ)3ۑSjGYaVT`;KA.y z<-vU.=ۮsٶ2¬өTuN'LHe&Զu:qpU)"~œFM+Ay5_6f7ͳA:0]s2z5pjl,OpytlO /h] lnjueUpN8zZ渏Kf"t]w[Rf>o 6ޝ Ppf]O[b&ڀ)3ۑSjGYaVT`;KA.y z<-vU.=ۮsٶ2¬өTuN'LHe&Զu:qpU)"~œFM+Ay5_6f7ͳA:0]s2z5pjl,OpytlO /h] lnjueUpN8zZ渏Kf"t]w[Rf>Aw_À|~%.%LUjm+~uQo2 o0yi,~Ϯ2#=\'BS]J~'lM OS;p8|&ܯG[SNz=N Oyk^X<gfV+:=yVn4Ҵ%tۜU(Qq'{Lo=B'giN.m۲m4l[ora8$4e5\#+ɡ€࿕u%-=2?IsR< †c{^g 3|LTNq]SBm+ =XW<-XmYBB#xn%qf˺r8C{+p%;dDw*Ńpffӓg KK;IPL#M[B;NwȿY~UG8DŽ փ+Tyhі-vMÖޱ-v*W> stream q /image Do Q endstream endobj 647 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4299 >> stream xA,9B1MiKN/pQmp_ 3+͐s-E!Y?Df/Fv+ gUjץJNom oRB׬ڶ+A_EHuN^ʩէ< ژw ʁqUrmiٛ8M+䙛nfNyozZ2HcU/$Oٚ._Ko ;?Z>^<90c* Km9x]0)St( ;J8J(e\t4lbLʼn/....?^׫u܆}]sY{6e}lzt=QOn;m;3/ev:N_x7zA9|1;{&6$Immj]XQ^@jiٛ8M+۰]Owڿ):BS$5o9ӾH4=}kx=v7)yqʽxyr`ǨUNm97Fg:tApOis,?W_g`.BWyk{hno}1WtM֫8Ro_BƯΟy"s~]sY{6e}lzt=QOn;m;3/ev:N_x7zA9|1;{&6$Immj]XQ^@jiٛ8M+۰]Owڿ):BS$5o9ӾH4=}kx=v7)yqʽxyr`ǨUNm97Fg:tApOis,?W_g`.BWyk{hno}1WtM֫8Ro_BƯΟy"3iONܫlwv[gos鹦供P4QҦJ*;3~sӓuxk5$I`|}ƝN%I&tn;oiU'd?Df0l/L| Z(F\#u4eҙ0 =yrHwGmu2%3v m]Z|fߕj:ɦ@*:k*[e"o߹7Ug) ^_?DfN?ӞW,,׳=۷sM}7Vi5MUwfJ: 'i skH˓;JLܴw\WӪO.s;:Z$Ka:i^4v>Q.L~Gzhh;3/@ka*=/z^8eJNg:t𩻘ϵͶ56+uMˁTtTDFmC߾s#oR :Z ?^W/F^AziƷL5%݄ZQBה6UzW]m^V fi2qC^P醸4Y$OwzJJ.UL@*Fiޮٛ8M+h =$1}~h{Jn.4eҙxq󢡇3qцKg:+~m 6 1ǜNϋS˓'ѻ`k֙t!$~r^ssbO5&xu)5-RYS)'6_R :Z9Ug{߼=Lg6 Y=%ݮt'gsM}7Vi5M\sN=e:[/Bt޽t]wzJ&.Lz@x97yڦgo 4gΩ ؼ&}GrJ.H4e;+ܛp/s:=/N/OzGIYgoЅt mx[x͉=լfPչ<״HUOgMLdԞ_\\\\| 䯒>Ka*di'2T=sUS\}KS+h)).1mtsJW&*bһJ^2f^K=._<{jsOcoKIH]enP+s;:Z9Uz}1l/L&$.H2xyNA_F[3uv yqʽxyrZ{Lzs sI2HO߬hx\^rٺ“֩O.RYS)es5B0LZW!WO<9gw7R[ڝF^A[nOOIti Sھ2Qi5MUȗՀ64S?\tKOW5>x|{S\jL@*sz]I&ؘ:OdΩ;dx{a2Qxo'qA.>D9ws 2ҝ%fMOϋS˓Cux`ӧfWېNAZf]D5VֵN}ww9zΚJL=/mͿ&,a: :Z =.w727=bxՒJҳf[{^?25QҦJ콯LOn wG:zA *:jsnDZ'&|W9~Y9'ݫYgc2z\:z0i(S/0ߌS:9~m uVrʽxyr\tw.L]}q>4s:2-SKȨuM![owRGëuȜG^|*s/W-$=ku|U/\)mDf[@_}w#B|6֬Ou2ozWy޽u6&?9ǥS<; 2\ 8^SіP N:a%7~܋'LϕXNgz7ux`okL30+B9徔ZmͿ&,ߩW!WO<9y^^WuSM[2|U/\)m&t=~]JG| H+z9%͹5k9 ^@VvUOYgktiZ!Ϝlg~z^|3= mSߧ^*g3+=^Uz ϓC:N{\Ny[r:L%|t^=+ gÛyF)OlRG490endstream endobj 648 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 649 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4375 >> stream xA$ Cab6VHEYNSOUϿqfuj 3ݜ7:;x2O7_V|$ڴSȟ _T[O|GШ|_qUd6/(:v[#έs#-g wSrΔ[;e^zfS7ai)w={o /(9vfUٝךJt#㐗Uζ3*<{J'nɳ:~g͸|>_D8Z ]IKL՟HS"jZV[~d~e~ogw1$Wɿ-X g&,O#jS5FExo ¾:If#'%U.|wStڧuP9r]ٺ?Oujj"jN)4~/YμOgJWjr7U+2}lNLg-'9^ee 2EK#$4Ù3?v)4ٗN~)7B쾕g T.?iwɼq}-OgufTSqW>q84,'YK2;F)8}8USh$Y"\f*s3Bߔ{٦ڧ[KŭéR_4̖!T 4eݭ/wV*IIϠڢڟc ߋj3әjZM_Fޔt֒x*Su׫L!Uh nܴ/ϩwv=a~ *};βq4oSʙzOo鮔Sfow:fS4,'YKB{\f_^}Bwu4>gR=!^ߟã3NG} cj{%i\[|)o 2[tѣV*ΊO1p_VՊB+i)%QTwwWYBfL|i_S{ 3sKUwehjo/3 ])ުǧtcSMy]9-h9i<>YNo̾89)) $iro}ϤzC M5!?Gg^rˋKӔvZSf23d8Gg Uc 7ZVziy*'?YK)qߎ?|9ܦޅN8}W;d]QQlgo&1=:||NB?tOine9S=g Lg-IO}QZL/}3g [\J}N=sTǙI)l;Ƿ{_*:ܽ:ug H2g_|Šfgs;tʤDQ+~#uۧ9Ϙ>gS7ZVOINLg-IϦ};+mpz:,s_ﴓvE~G+veH2J{>|:*;vzӭ>Mso*OU%3$}?wEiI2}S)ns*q}:e̹/_Sg&SlgSγ}ߋSpvsx֝}7~#T;} +r_>*Gݞo<#aEnNJ71 3ڽ7es{ U">*_Vj֓wgruϙ?sFǬUfO\L6߱M>O2TkoJBwq_uӗˑ03uuj=n*^{BΧ&#|;$f :KOLKX9g:;xΨf{wڔ+S)OݛvlxzżɼvӊC&6OGG"wL;c6֪Θ}ξ;)iSO$8hޘ2Tݳóf/ZV?:R병7Qqvt[m?;g\OZJ:yf߾lD9!jaN;o%eJ!:!)^*B掝^|KSΪ:u$HG?&gL2gnܴ37[ΔN2}9-7bx&ꍸ;=YB&O.Tv 7!?CU g9} +rS꼲RQͲ3jM+~Z}9%ZVSߡ:TV}tvΙ>דNٷﯽ$QeNm9ZeؾNo_q_`goNlcT;N 8O3+p# 97-aLgsݷtO3pL_98t ;)+ļ)z#NoO`I /oMP>g_|Š:,rTTl*Œ;eӊVEt_G<}ɬVjTo@w(g>gӧ[k{tvz3KCf߾7jN5[2$g)VﴓyQWTjNUShvpLwGkM锹"wt$v2S9]e*Cv2]3/j*ST'/0͡|LIf;ZnAns*SbSF*gڻ.ܑJﻴ>ߍpOV魝vOqӞr>S2NeLvIC8GfnǗ{jJNS7ϼ^7xjVvnߵ<~>[9o$Cͱ }$}F|ξU)9^kji$t'OHIQ̎}ɮ{LjZ/zaendstream endobj 650 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 651 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1717 >> stream xKA<vÝ+YUJȈ %n>!It2ɩwj'S_jg:{vꝙdexb?索5;әx^ݢν{׵~ZΟC_gmZ򌪼oW֙&Ծ~N=3_fvc'۽sr:D2OKU5ӎ|wW]ef:;=?!Y i;ٝo[|ruL>QݩKNؗd?ىs_~q߹iL.̜c;99ں;9#o__ώIfj\?*ϝ%?y_&Oncuo_8vf*?eHg;1*3i}f[+JZuLv2:CGs3טWT33svzޕkW]۫Tj]zngzd{9ܫ*̙r*̤|%l~Iށ;iMy~UɜNnjҽ!OH{#~澪Zu~^pEU{ڽ{6?mFd?Tși$L7m"= 8wlgԸ~ZU;K8M}Tq~FT ʐ<3vcUfo̶W:yT~e8uZMlgV噯1m?ʩ(gg+%Ls%IU+گW:zvlrVWiUu3T:əIU]%J퓼UiwN~i;Yd?L&9={:Cf3HG}Uww*?ኄ{l~ڎɶlW;ӑ3YI\oD;P{k9zBų}BL8dEfgTͧΰuq]'̿S޹` S0ɓ'>޹` S0ɓ'n޶`oɒy9×<)endstream endobj 652 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 653 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 354 >> stream x 0"4|. ) fٵxo x59j?ʴ0 `69Hyfs: jl>`69Hyfs: jl>`69Hyfs: jl>`69>tMendstream endobj 654 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 655 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 656 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 657 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 687 >> stream xQ CHaF@wm+Qrڿ0s &6SvՊQxgFy4`,ܪpzXx"6Sf2+MM^Ҁs^bg3c@>Y ͗#<պr{XiX湵+'~q~xy]gƀ3U_}쉳~`/GxJ2ϭ]Qe<;1c@JoXs,dnOyFm.ҀskWT+g~NUgvwc[7;K@/SQ~g۳'D4`,UʙSřg MpҞ"3dv͏]bgӫ+ ˬʬxRuz^7EfK{ƊWP's}5?{t=uOO4`,*I_qrywy#=B&k~س+*Ҁʪ+p"endstream endobj 658 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 659 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2285 >> stream xM6 EE$w2IA9#|X$e^$I$I"T*iu\]*Iyi}ݓKvO3?wy$]cR1$I$I$I_/Yuo$M.vFKvO3?wy$]cR1$I$I$I_/Yuo$M.vFKvO3?wy$]cR1$I$I$I_/f\]* rHU"%;v'*g*IzˊD$I$I$I-bo%Dޥ"wQ17t.\SnW~Brah8I$I$I$I$/YN]*i-wwu*=_.)+?V9SI0_VT$$I$I$Il$xJ+r E}JKvOUT<̗-'$I$I$I$=-Iޥv?3PUB-%;v'*g*IzˊD$I$I$IͿߖ$RID[* I咝rj3$=eEKI"I$iw95rfܻk'gzg@V_)?᷷}pw5޾evVZ)+o~yY'ܽӧ̹Km9b?{o${ka1dOI9_}dZOk s" f*},XM|YRrm&!a$IzW(}{]#gϽvr_N̜wk9[-~FqVY{f[Yi &k杒^\gL>rN2.=ld)r콅V쭅y=%U|A[hfUi9?)2D~>~C|6`5eEKEHB˵YH$\d_%wiʵ=!$猯OҗJĻTeJ~:k:HulU ZgM;N9TJլLST0>oNN&?8VןI˜Hj3ί\mWug)/jN?fO8S[G7S#XBkOT&-{ٱ^U#tWTu:l* <i?0#~tc߾׻*9k'|zkdt :?s_/:;F$I rwu`oȚT}i˙OȬ6Ț38vOgU'gWcmlrdյ#[>'-O.Ѧ m:H^իL;7SL]$MvYU/:IvUu6]i=ٝsWW̨M^۱ziȵw|3DVOHŝޙ[;mw3s~Nv˙OȬ6Ț38vOgU'gWcmlrdյ#[>'-O.Ѧ m:H^իL;7SL]$MvYU/:IvUu6]i=ٝsWW̨M^۱ziȵw|3DVOHŝޙ[;mw3۽z;v9gt߱oν[{Uj]=${jg$li3''j>۽sv> stream q /image Do Q endstream endobj 661 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4057 >> stream xAn%G C d;?%zԓ2VO?ܻ.Ӓg*MsKFd6Zs< ?}2JB07ҙ"P/F}[}M7=O˼^r>jjS賝똒ӗN~D 䜽*ΧngwPLݐ{kuTn{gA)zg;sps:nJP#dTiruO[' iEޔ6EHtTLqj7uL!_Ou j%o'|kJJLNw:̳ZκO}}U{Rթ|"7d;g9: VQEn, aӱ)}۶h*LF1ɐkVjZޤO—-; O9Utw!I~lZ7%M.'$0ϲ]L}m*<9SMSS0C%af{5{ 횒ӝN~,%lӹCaz|u_^wTu* %Ιgk!-nn4BµUTnѲe;˂Fx6EXttJǶ-(𳹪sL2jZV7I :}j= )hɗpjI'EgڭTF6Bv*md^!4uNn̈O[8cJIq>%gSSnuOCGu]gzuvd߳{6Os;\|mGxַ?Šgݧwv'譛NӤSOi5ϳőr~맴ڌf9n>%;_6ګpk]Zd8*^B|Δݟ[Z4Qz*vd}OkɵW]VjZUS_SgΎK:8?9PjipjI'EgڭTF6Bv*md^!4uNn̈O[8cJIq>%gSSnuOCGu]gzuvd߳{6Os;\|mGxַ?Šgݧwv'譛NӤSOi5ϳőr~맴ڌf9n>%;_6ګpk]Zd8*^B|Δݟ[Z4Qz*vd}OkɵW]VjZUgv'!qʭMwݡٌߝ*MwA{5UlZBgg3WT363_֜ܞ*ۥmTǞVܦ8STY:}kjߧZOU; LԹVк2LuL:a6̤ߓOiua}jkY?u'3CRqWf{gͷNx63"tIT?9#țzyJ~t:s0;PwPMP~g;f8l^ilU)[lkN93WuwQ^,sy0yƦ$_nUSg&On*Ňp3J3|Cvn}1UYBݜSTn;ʔmZ4\ţx_VjZ(W9?ׇMvp:OGWupOiEޔSZK̤H[V߁ʔj;1d#2Mlf;*TOg[sϴ͙{Ǽg}γI36-'z|uSw2"83|rS+>tQ2S}L=uٮ;ϤrVTnӺU*^wu3jZVF}?N|ZUdL:[:{Ӎ<>?^lTojo[Lda2M} Q3)6ée&N{l|)wh}v }Cuo'7,?BNGELyG:IEdL]|^9?˽cOHIv{|4\œ=ݍ[ZVjznuQi7֝8ZUdL:[:{Ӎ<>?^lTojo[Lda2M} Q3)6ée&N{l|)wh}v }Cuo'7,?BNGELyG:IEdL]|^9?˽cOHIv{|4\œ=ݍ[ZVjznuQi7aspjEP5Onɨ7A9+榷MKvdt+Zq.LeGNgQk9Tu7'aE}Ι|gTKon}x]һ}gg92|k2y'ϓͤyZBB:?;3/ZS/+IՙE{gKC} OA R$}{}jZV-}뒝ބASܴnS+BY{:tKFо*Y17'nZs&[^-Ԋsa'-;?p:Ch_馪9  -Kv;dvu]}w#g'| }7vt8+?ϑISfG_i+>y,7m&Z7y]|YI,B?ܫ?^BS}2 ^JW'ٽ'VjZn:܉#) ȿCN_5S^4Пu{qoM(['fhi1Uk9)B IgfTK]JnZ3 _"[҄IuˤL Zݟ٭/vJyξ4l}VП%%h*#j[ޚj"gzjZV+|߇[;.iPڞ{:dU+?EU_M Y7քM}n}bQIZٜ"ILLtjNTԙ%;`% ]o-MxkTL )*do@qOݚi$LNKKϖOwZo )Z[B2RQ孩&2[qwlZVjR}|WH9+e8S$:{gP:;t&AkS5Knt[k[q6k6{5~GܖQy_sf7vCKp3|[Ĺ!kGS>uN3[/LfTdI?Ia2]r4LL{ӑM#b3Zլ\g]gl:s{S27җuMeRu[SMdopZV^nendstream endobj 662 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 663 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4194 >> stream xK+C&; *~DU:(G$wZڄWHr8*U~?O+>n]E|iI;:QTWwM]W0m2%MA;13mCG7IׅnJ9W'oܻVlοٙ[π:oNff3Rzޑ'KD)pn~ظ=M=aժR7M\夨kG,*V_SnU13jZVիҽY/[]=^C;}ݱRWP! NAhu@*οKizՅn]xܜjMHjє3Q˦ps{]&v/m3kνTa{dUySG< uvLN>]^/EڕL.&7G̿D,6n9uݱM):u;Z97ID%`ڎX`5X]w$\VjZ*˙z{x-+vK]E ZB=*8IMqO;.uV]w9]ss~W=6!)R}GS·GGKN/͹#w˚A7Ct]ά9^SU N$οٙR39xwzu^hW3ԛ k|&Nr2F~ظ=fN+?w$ pu6eIOk&')|i;bMה[cwޑ(npZVjt.;K;^C;}ݱ:UWP! NvGjA :U3(urE8牫}ٲ&Y<:wwuOu8RsW7*S8+>ͪI`G3H-5ծ}y2R3ԚԴ-$tV<=܉t=YwTT63Sho<)LQ"J8ѩ$^sjZVW{v9缽vvcu_-rBV$iպb~%tfP5=6GqWeM8mxtTWɝ Wq~=3^qjuT|uoUpV|r*v$s8+>]{C'P! NvG꩏n/N'A&ۅιkm{l&'1g˚pg訒R1Q\z*>YPg˙{2{8nƍL#RKͩ@W'*_un9yKIb)?!~37ޑ'KDIAظ=&O~gN+)GWT;hHW)TyX g8;:U~+۫jZV^އ]_%ݮdgŧk:yt!dUIHYY=ũ?t9v͢md>FlYN,UU*fv#Kp6Cŧ:*luQu9rqOf~gͳ_޸Sr^iDj9D%-'oi; >jq =H"snjyxZig]wlS{rs[x;Z$p*ϾSpĚ)"'aZWjZVҽ+׵nw{o΄+vC5%핊槝TvVVftN{vYbc%4fm4f訐mYa+> éά%Гɭ8YԴ!ԜIJ%ҮNɝ"TxGllr翽)2o\)iT^7?\eԴ5+t|& >:/K/Ѧ1{hӦ1GG]o ^IpTNHdžOtf%-!NnŹwlWwMvv'-vMwJ;dcL!ǫxJMIEjZOsf"oܓxvE+]>.} g]wlS毨2+xmڍZ !S+|;E=7ZVjzUa3O>Wn CNȪv2SI7^3 Cr**8k2O3wf]?zi,ڴit](BaU R`x3*>Չ`oV߹$ϺyY/ZRK͙) uȓg?MW06''uiY32[aW7~]u;߮K䶫޻^w<,6?'E;}X<ΎX̽ ߠZVj/O>a9<* Ro'dUO;WguQ!9q{5'ЙZl 4[m4.b*fRT0T< D0շgsNtH~g]\q׬vuIsvI :w@3IuǦqEԴL-0+?{.HoץszrW]LL/^CۻS⟓>,gG,oP] q^VjZMėg۾^K#^%yYZxL*&]4ORg)-wn:TxӾw<^tltzi פPPr 3zn*>ՉNXUT;SNErlWwMvNJ-5"ltWid_1L*5ONhY<]vrfIQv{9yS2KsJHϝUzsruJBkj)7ZVjzO]\s۾^K#^%yUB i)YJꝛ'!&s߹*"^m5)y9T\!̭^3Ou"v;S*V.D-%?SQ%m\y6'inRKͩ@2[*:UsWL J͓S%Zm*zR^Nd^ |sghEEgzս \%t];~v VjZS+WgUY9*A@Ȫɪّ3 Iir9;tx ⿲4N՜PVC!ϭ~=uuO,ދ-i{/K;M'nr> stream q /image Do Q endstream endobj 665 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4112 >> stream xAc9C1sv/fJ!&H@ߋΟ;!|L\?+*Y )*h;$wOK7I݁c['+lW)oZW:SqH kS=ݳJpi}9Wӟ5^f=$&ʦ}U$\wgR򐨦|3;qzEtf9=Yhw9u촷zW"wLOOyJG{ά!۫jZVYM}rγ)+ĵвS>sǹ{j2Vɛqz8rnyV~K9ULHG;ݓ?CO{᜿)evii 6Nڭnu)Ʉ =HzzJϤ"aP꾏3;qTgEYtr^AroHg/ V dfjǿWY8;XVjZrUSb h:l5l>+oO蜢q>̦U=;pls8;>!~RNi;o*NOp=;4^8oJ}qZZzGv&d<{}J2aB9Rum~83yT洺to<-9UmQf9~7Wً©{B:՟yl:-VjZV/ůwOhݦ8OٴSr^CKHOITevZ%savʔ)Bιuӓ+wl֧Lqz.Qf:*sls#VCµ;Ջ)ܡur$$OҶc%u3R9?7EL6WpBE(aS0k$E٥>m_68{nt֑wS*4T:NSB2Rq6vjZVjVS_g/y')vJNkh ) N+?S^VjZj+s}׿Sn*Ί75S+UZ=LRy^Svک&uz ug.)gm:t^SEܖpJ6GgNh=STsOIpxqsGϔg|Mcsٸ)9wDPm:Y$;oxJr87vJIԔ{ +T8]ZYB™nK}ھ%^{$Q}TmZpWgknĦNf;>˩z~lt+8nVjZf59Rߡ?e@Oy+q$#ܿ>aŁVZyT{riMeb{-DR*oܓs!͹wϿt/&9Pm`f:TuO3E;w!?P^Fhg|>L 8SfsW]TgTܱ?|_\M+*7\qO˯ڝ?skV9=!h?ӹH9u>-ʇۢ.vGέ:;֩TҶ"98Bzӷ)J )oF}>ZʍKnnVjZf59ڭ=2~-qJ*s\VLeZVj/)ķw&͙sOi׮pئUMKK?ps*YN%\޺'qSO]_F..L*;v.IEA%Ow׺[Єq:3GE(')~ 9sb{09_=ڷs|BTT 眹=3jZVq_Su5q4B Քĵ7QKO%l꟢RNF/oii!sşKOhw!>U¾)Ys;vDuUm.͹#rVDlrUpkU"t:sQk UtfD)i;dRiГv٫\ Il]5.:GF*ڜ%"5vliľ {^!L˷ٿjG剤~!#.99wwZVje8cB5e6qMTSh~j ˹[lZoFm=\RC> stream q /image Do Q endstream endobj 667 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1033 >> stream xA8 GlirK6)r:2I#ʰֿ8wG^e=*2}s3'ӬT8;G}k.GL;v~92~|+i.sWY뵭@V> stream q /image Do Q endstream endobj 669 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 329 >> stream x !tҀ;/ۏ Ǽ){ /8 ~`^@@ Kq]O/ ~ȥ_(X#g?PCү\ё!qrWWͶendstream endobj 670 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 671 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 672 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 673 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 999 >> stream xK@ C$o(K2 mĚ[Pگ?<c}?=<:qBMf&+C?w{U?B"[g_O~"R8uO:VxrŹ:s5n*Sf`SpTƝaF`9sw]W#(e{V'K/u\+t=m7!W3\2U`'|RƝ|iJw{U?B"[gu&֐.%Nrݯ=η0\q\sTi>|RƝ|iJw{U?B"[gu&֐.%Nrݯ=η0\q\sT @`&SQN dW.߫p2?y3]$do+a\7u}0Rrqff+ُ~UU8lYy> stream q /image Do Q endstream endobj 675 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2997 >> stream xAr$7 aaAؙ*G_ӎPO=@LD2+%2_C/o]_{|3)[6d'Ԓxΰ{PK[]17~˷u;L_w7g&,׼ac-lٍ-P}L -~ot)Mx <5m/}Dn}[vc'3qx|K[` 5x|z8|f2{ :2w_fnlZ|&coPo)>{vL>oSL7Y7yo|@[&lٍ-P}L -~ot)c;[IW[םs>cO ]L|y-'5YcSf*o]g繍V?n=dn[Nd٢*z3uT<]Oe-=OA->>&۞N0;MuRsm~~C]y,)|'n~ MOL y:Sn=7F~JQj=ͫIY̻:oϤV CLG0#9:f]Fqg=3Tz:y@Dԉ<=_lٓ}*m=}NYO홅F|3{rpKݭfvޓN}"^ξe z=)>:jn٫Z-U97w2*~oܤΤ ➞ٝ3scݼztɼ۩sLJa09ۏtn ;➳gOet};sOa'> ND{Φ='*o~w&8Εo/E{yyUN۞Y(nT7'W Pxmfm='([驾k;Qo xx~6A1nN+sWܡ.[ nlU弽IݙSykyvˬ[]}Nߓzz|Coq푟iv-zsgtVEO|-'+;όOg7gܲWytU9a"}ƝNpv 槦Eװg׆irˤܦe;۞}ߘ?ajU9OٰZ7͜;dTPajХŔ~7A1nN+sWܡ.[ nlU弽IݙSykyvˬ[]}Nߓzz|Coq푟iv-zsgtVEO|-'+;όOg7gܲWytU9a"}ƝNpv 槦Eװg׆irˤܦe;۞}ߘ?ajU9OٰZ7͜;dTPajХŔfq{浪Lvř/Us M8;erwuxsT6T|3ٝ 6W0ߤ¹?OCO~޻ԭ)ܥΟ3gg ir睡?n|ԉ|<3OsNwItת\zkjz3uO3;~~S[E^-vB:ܜ7sʶLR UIE^Y:[ >y:?ϝ/m;j5]qK{$g>nTΞ>n=7fʾ6z};LeyZWuWgOSӉJ,&%`Ӭ=?mް'WO7ԹlԆSsg9O+êI8W +虻OonPVIa5@3N'endstream endobj 676 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 677 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4308 >> stream x[  i{͇&TI___CԧO,m? ].NwNiO2^ue.y~ӄa~b/OkI7~bt"&jy9;ӘT µS:M%4B>'dTmz}8 :ayҔK^']S :S8s"ޙ!yG0wBw ';gn4t*҄ t1픿 aw&܅ՕKtnfyA'w<S+>9%9]DR\qЙ]>4Nu4ĽNJSgӻDrKbig N'!iOLNsqq8]{ټJ6鞧9ѻsmi=7gt*N;0Oл/(rWE'dv}uuuu_I&jw8+gzN'? fOI7LS=Z< i (>O\n 6N}tϻ_urRӾ)E}tfsz]ɱ9+Za':7}nO>g9]"flx uGr&8t i{wCV]_ʦ?͵NvrT:[ۜެ9 UqNi[;K WV8ug/U']$tWWWW;k B:ed&:?9'x3Oh]>$8[r&1 ;#_ʳ]{8w[p鄮Z'&'u'ELBaMv+O"t!~uN@6&NNrbN;ũ(Ε ;Yo4*Ut]9x~Wf7\Ҵ./gsG8uX邳5]9|ZE.Au]*Jg@F"O ;ޛR &J4-?kwΛ*}$lU񿚚-*qO&Ņ"&agzvZyk~tu.] U䤻IHr"l܎Rqs_N3$ܯΩ;IS}}~#oz#8s۹2>a=9K-F3/ULQ33VlHg+]p#'O%N]W hH)a{WWWWW\_D,*}OlŶRk"տ}&HNy5l|tܳM]Om@hOt4qAMB{IWkW|§SI#m;+gi6z9z?A5Q*~3ELQ}!9^NZfٞҺ6t&mQ3q_J)'W/aߩ%Jmʿ-gDy}rẍ́\_Qgs8uکYKHW=8 os̿ʄIn2f iUYuNi wna6*{u;3읹TݑŜI:77ɕZSgi:t6o-׭k6z9ziŽ_ɟ[S0t]>+nisULvl\3L3*J_P#/a_?+\7B́@T5ϾON;⣙7WkR+*vN;u5+u BW*gzRunW9iޭubr]z^Ì!!T*60:?)ٛ-Ueng3Йj;3IP&&Rkj t:]=uPO#S?Kp6sxk&Ugm63w_wn7NMki7]W =v%~uuuuE>ث!4/ѩk}w47WL>^%ͩNSuuNNUYVgʉy* wZ͝br]z^Ì!!T?3Q3ANo"9T2Cs['35D1'S;r-79Z9tJ&5G9ԫ]?}̾ wLQ!t/%wғlTu fvȥt/ؑo֕?. vendstream endobj 678 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 679 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4461 >> stream xKn%Dxb[JŇGirh{?u}ھݥ MĤ.?ur"x7eF]i6 ?y ;6i]IO-ߝIKL_''pƿIۧRޡջ9p\WK|va#lEҗr5a8zퟘԮ߷0c=$q*3itN򓞔V9Dgsˉ[mbYѦv'q;M6Dn]!l!sfs҅|/]VI|.739𦬾'GKNY-1osOM>Qմld6_5lNTwƎyzfwxdKL_''pƿIۧRޡջ9p\WK|va#lEҗr5a8zퟘԮ߷0c=$q*3itN򓞔V9Dgsˉ[mbYѦv'q;M6Dn]!l!sfs҅|/]VI|.739𦬾'GKNY-1osOM>Qմld6_5lNTwƎyzfwxdKL_''pƿIۧRޡջ9p괝IӟɧnK/'9^';{IOה>5=ONLNzjx8o$ԡ"'=)r:Л%fwvg6'=}oR): 췳-9ulWeōryxSVʓ%CSv7KxNt9osJ=L++]\&&YJ_Pؑ3o~?WWWWWSrS/^_AO}I]~Dnxw1iT;z4~;N3is9Tzi$dg/iRsҧfɉIO}{3CB2;:T'UNg5zSyn,u'"s/M*W'v624YJ\n2o[yrTt~NƟ~ T؛.mNigIv~0]ĤS:K ;vMgjJw{똦m]PTKL_''pƿIۧRޡջ9pWb{EupW(]f};y{;sWwOהz0qt)=ke ͡NFQž};8QI];W:ie;/g3ȼʄ>5uq΢sgS9BmOLD~+wLx+}9Y6 ʴh6+]:&ܣO863y{T X%9;[Hse;^Z65C]9zt|֛aR;~\5UKJNE{=U~Lg{$$D׻/K|N/agY?^]]]Cw@%oʫ>U/vϓ{?; J}NORAv+T4β՗s˳qud^eBI8Eg~Iζ'&O"뿻N^_N}RZeZV4Õ.[NQy'rifhřMYu0??%]aN}u؞*KH&utzO=%>3ײַf!׋;u|n(:|WwDޑkk?و^?AEgS|zʹt2ΤY_o§M*]ovx+2+s~Ҽ9{r-yS^uh]w)*#ͽ)N~*~0{7ΦΕs^eBIh*;O9T5w'+$S)W'eV$mE9ܥys'xAI$T7y^W@lpni$Kˊ:msy>MYuL]P?9&^9]$Tj&򻮹Tt{ϲyx?Mĥ?%Kryuuuzo>'8s7uO??w9% M1P"pv*(9zeҳPjj^ν,ut'TrU G|W9ީW 餈@rsלt$o+B Iy#lY&Мlr~=MW_n'r&t.q^)36iv"tٝ. i]>LB)8i{0=o:3 *-[.|fk]NIBSLo9T+ J}El'ԡگs/K*I/tUUΥw*~C:)">6lw5g;+CB}Rff[V 4';r8s{OS%aƄ\3K)yʌMک]]~xveBzSФ:}Gz}/v8Tzr:o:l$vSf$3хI孠OJ/NtZ>ޥ?%LϛΌ"J묿}]f'!p6 jKNN? woOѶ7BrNR.|z]J/^)^Yʿ .NSwR'˛=a3Olz^?]AY78LhvxJKKPN 뒫@ة+]~xvkM8%z}Kǁ~/&+)YUNM]qS0'.9{q1!NҴxғw\:ozٿ:\tɉ'a^)]h[NW*tśO/[ PEPw˳;+s^r]BMB TVtvJսs NUอwqNAKf~u2йٴprvMJ7gendstream endobj 680 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 681 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4162 >> stream xKCэN݃Pk)#Sϟ)7+p"u|Nn^+ 褾{YAuJ6*+>_hutW䲩_ =;필&<)<{{Ngo\FjNORB{ Wfs9s]XJHSΕԞUaSEoTt̺/,Φn'Wt 7$eѲ*ظ,ʿ-ߋfJ!v@UysӄX{}S9m㯰xfS-ScKk/y6fגæKʺu-Vj \3Ϻ)N5-ea"Rwy4m&U=_J9{w2r%TwggoUgWÌ+ zg#ݼg,)^Q|gr N&k3]WW^IB 33Y:ydz:CqgtnUM!NsZVj-}\/gYu_ah)VuMqv<6*/K㜽z\g_aq޻C~ʪaƕ=ݳW?_GQwP_vYqgwt]럿>:9 ߑzcj~'f9xւ;vY"]Z=lun3g^t(3 ^'.+Nws+$!]ˬ{hTWXl¦|vmfIO~)'\*ӳ)՜,݊2t]=+;+̹ÃΊU=+83s׍"xޝVgSٹ:ӓQKѿ}fhy%#uBfrVpgb\t=nL!b9;Qvə튻 ]nS<\V “ƕ3]N3~6g7njZ99scarI^aS ev:^Tx !J͒y5Nyu7*n;AZa7Gx{n4۷Éޛ=+"49ճ;4ouܻwȽB,$3#r3߱ΩHhI哰gPVt蹑g8'RIՙ*l9+9on3S'gwÉszvWԽι˙6u#.ύI8TƜ}~9믾#BYܤݺjGW_^ieK.Իg8'RIՙ*l9+9on3S'gwÉszvWԽι˙6u#.ύI8TƜ}~9믾#BYܤݺjGW_^ieK.Ի'v27=Kxt٭r~5h62ʼN& ԯnl~rsHUe9jZVo"jZVսJrZUWVjZVjxZVjZMVjZ?k}endstream endobj 682 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 683 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 517 >> stream xiQ "rN [0FZ~C/l앖dK`®F`;o2e7+@/у6FM& Ћk sF+ Qf~- b lldK`®2F?2[' n҈k ȷ2[' n҈k ȷ2[' n҈k4 O+ E~r!&F2$g6+IрhVf`&[v75M\l+6O- ]\l+6O- ]\l+}౩endstream endobj 684 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 685 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 272 >> stream xֱ !4vB@;~ϓԚAno d 86d endstream endobj 686 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 687 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 688 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 689 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1408 >> stream xA9 CL0i-Y{AQT, 뿿>UܵûI:NULu urϜJ3|vJt `}Rvt@>5'V_<bૄStg}\3gL9v]5:&XԼ%} 9sUWGB |qbu]K'T;+ L=U#X5:J4 ʉLn|!} 9fzdzUo$W *&]OԊpBi`S%Ι^=u9]3?Jr>xH>^k k{[zlDCBǩ ruPe_#|P; `9SO8gz;^}FeUyc2_]uw } 9zziDCBǩ ruPe_#|P; `9SO8gz;^}FeUyc2_]uw } 9]U[7HxH8U1A]nGbwf3Ts*ﺐ#k#@9afIc2gsvj[,zfDCBǩ ruՕv}'?gc^wus0ӜJ3Uyׅ] +ݭހ4N*g?>sP@>5gQ @9qﭏ]wJ᳊1ۻ޹iS%ΙBɏp焕Vo@]'?@MdJV sr5 Hu[;>󺽫+L=U✩ʻ.'NXnuR9L$Dvd8'?ZhoG7Q~ǽ>Rt몫ʝ᳊1ۻ޹iS%ΙBɏpgVu@]gS?]Ly!} 99YԚ;E{;;.w]W]UUyLs*qT]rwM~?{2:rLf Y|kəs"YQ%N?#4Un#V宩LUu!G~G8J_:7>?yΑOY;'U⤫+P SMSϏp;iU*qT]rwM~?{zs1Y|kəs"yJ~aRi܌NcG8]S%ΙBɏpgVu@oN9&Sw @{;2`endstream endobj 690 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 691 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3890 >> stream xn$G C?"AO7\0J3xMO~=wiZÛBL>ᔍI(dB%ξv}L}_xBOU̶詷_[?dL:}'y:kdK3cη" 2x_=5<W [>܁4ު 9kdNq#;ݥB1wԻGwtz&ϝoT︆yW4-rXA[&pF$Ug{q~2lvؒ@g_v/Nq<}Eph <ۯCmF}+vKlfOgkp]oUΎ}E'8 sku!_ }!VOONvd˄|V܁j ;cNwͽvuV>9e*]S*xm?3Շ*ƢiGN6>>T蠪2 ۢrši(&I)t>#C}I4?cu  oSMVe+T|vvu˛<n:PjyiǿSs#;wƦ<'j%q9ko;uWXvBû u7 攻o~kwJLi3&;tW[܋[n7[gS/~N^Oak`?2S=S}rn,jlzTtk3z_O*y-=,[Zᐆrkhdh>O32g$[!J36^Go6dZ;*;N5g7m;*)XG}S:즓F?[9?=bswglSlO~j>ϯ&|^XSSgm}9l!ް7j}_N6LVD5m 飹 wwY|,Tz4NhBeVNΩ攩*쟢E3SM%؊BizwIJ5c2{˞ TUfb!S^!,MzSx=aF[4m2G&Ogm}ib7-vxŖ{ L7YVNEg,Nݴ)N3y0V'O[+:k) ʯ&ʄ~b9%N'B7j}_}OjNa<'iE~O4Q3vߐ>p7ߡ}w}BMT,TVl$jNj)]t>3^2n(tޟwzqN,[\3&c}MUe&VO?e >Ҥ:F[aE+3}jtW[*֯~n]lon>{|5m^]t&ς͍M4:983w .`uuٯ6ΰ}j2ϯL'6)n]Y[B!|󽀚y:aې#Me|Z¹]unN܂F܅~z߅&|MV98p}SS:gB5t–!{;qV3&T*:ݜ*}wuש:gsZj*Ti hO$2Zq9pרi[zr擃RO=g4pv]bSşw}zkp6UgmTrj(؎4 84Sm;*)~YxmƷϓr҇w.4k! ;+9ۜBv;B3G V滁f;(=zl1t&/m؆\k6͊k k»';4SlN'<X4sz4Tl:8캯iE.Xftb2ҫN*Tՙ|wgw6{7 WMx~s$TOAyOiw3{牂ƾ#vjQ{HXUl\sڙBSB.{.GMD9]lkJg]!)u4:P9}F8;E5TgB!i(։{:Ngfmϵf#جؾ鿦i>{*{jx-cLC9vtYjS zEjj;NCζî:V҉n&J'/#LdBOUw{z7>J!jwӰ~ 1 MJ;ؙԜ䩜v7z(تmk`8bwOֿ4 h:Uϖ;^lO*d8E)¿삑~4NatrZMlSPgt STx QNu&B\Q*a3-]NFi75M;ӳX4-}+橷1̩N}*vlO'cskcd0ԎG'S 9-{T8^)90&tp5Sͬ+OL98s <}*Lۥ>s3!_\1Aendstream endobj 692 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 693 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4336 >> stream xAXCуM{IP}*'^Oq8s|$ni9 _WvȻz9:w[DLV3sS>Wfsj*|}Wv>{~?:kPgsp:4ՎSV];zap1zϪT|5Sɬ֝;ZS7G6>fvN8yJu>8aG}:;:"8otN7zWOmg§Ϻ;8T*u8O\qۥgSLl"i[sj=gS%KwONfb|vk~S]J婺]uϩ\]]]]Uy3L/M}}L݄{!8sw^D[33Ze'_oi >-f՟?skN<O쫢$Lfsi{:pjUzwCƟɤz3d mG}BUZL|Q.N+mIW|:Ig*=f8 woF}ep:[VNWǹE=agGS)RmyNTuz'v8Mr~GTofblqw1EȹO^ܻ|oہrrB$Mȹ;}7ET||u;3SU&*3OQMݲoV3$ӡ T̾**O:n6}SVg{'8dLg>INVv'$l\ﯥͷ KŧC|Fcqfn$W Ce>tu]zv4"Ֆg >4NQ7y*nln݄*w0If&ɶ;zSdŽٻLʧ;-s;pzZN<NN3U;욶C7Kز_+%({N2<۲#wV;l*Z*v*>NUUlD wC;m.2%d_[%C[8;ZL|Q.N+mIV!s>gfw}T8 Wuuh3Thp_FgOٽ_ʡ̟)'ܜirsN;ZNNWC؈S<;. ~/oہrVQ89ITk,a˾2|FۗwnmV *[8oˎYh۩:UUٲ*TUȤYm mGok2yGE8o$Y?dyqQ=c$\M֡+6Sq}ei<g~U*3ZTpqsf1Iέ; k89Y_ a#N8׻"$Kg83sr(Rq8_=-'owp9ŁSEKg#$-sSĤ*3?9-%F:l{8S8<*[߲/ 8pοT|CZNg9h}|ro9>ץ .xA TKܸv&T}7/wdƾ'IJOōֻ,'OENF獪LC83Ә%$0aa,%{Lrd-fI^]]]OoYv|(I N-UM=JU#^6Nlɒ˾"dI;^JR =j99Tɽql&Z^*7CsrZ7PUk/arڙRTTU<'+U>7Z.fv4<972 Lc[ZI&@1m&^rxuuu>%ޝ[v|(IΖ{8E~'Bf]pH|\OKߤ%߲oVO;,g>c<'yUYrOeO1 diT:bNO T:?]-Ҳe:u%h;71wEO5EH$Ul|*y񓜯rg}*n}]l'Od q6zv;Jn9fUUT*?gGk%9 TqtwQqxM1{L2<:9+FN[qw3t3r/[l0 Oi ^[igUT;g$O !Kn )& #*|BTZ)_!!4ZT]띰TZLmG4&pH  mO!/~TTnLOōֻ | 4]wGM=#ܬJs$'Aw#*.*)fIg]'gEU]p?~תUw3f>*$p֙-w3Zef'_oi ;"_q;[rZ3QMSe g?-}*͡G8"-̺9v rO1ϟܓGHxr>]>f|2OퟩzuÔ3f}ӡuq~h\;Z*Z*ۛqW!ۻ8]/#Z*33U+?[G i93]olݜs>;?''S[cB]$_oi 32[>Z3QMSe g?YeK>OrWPW;R˓s-½||rD;If'pJ➆p:43<|61*yT̕}̛<4G{B^26";Z*Z*[<6qDϵř"sq:u8zIzcY㟭v|lg6n9tUOѝ۟1SծI~WLK`-N-^?ǩ㟬%}lqSWI^o>>g$az8%qOG8"-̺$3&؃9g2pBUU|OGK>pgnLmJ|>gvip|֝z-U-?T8"\ZltY8:H$w1QWWWW߬BEs;pzZLׄC'rڲ7ҩ=Niw*ɛbs̤.߮9{!GZL*rڲ7ҩ=Niw*ɛbs̤.߮9{!GZL*> stream q /image Do Q endstream endobj 695 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4442 >> stream xA3QCOdW"bCkeZ*OCZ5rf&W%< ΩJջMf*?^y-۩Td̗I8UpvV ˩BpSkFl{E-OzwZMʑ_P;횳_fM2Ku![4~\|Dɏ6I7sݿOtSUzJK噧ry𬣤GYuhf+vtwOoVSŗL&TWM=N>]sڲTW쮥*M?UɷkN2IKW%-?yC>"F'|ߩ*}=%tSa&u3ӫ|AVw>USݲ2pP2o\?nSUtg`y[E]ٛ]s~*ڭк$'s ts{זkEI U-Irquuuu-߲Tnܴ U+܋ۡ2䓛ղiap$0ӗ[.-a_TW\qrv{JEx3py;ILwVŰؒC]Z[6TϪ%з U_nNBMbu0u**f&j~]{ɿ+T-rO9fb'ٝL{WloYYUk>{ӲkOE5-p6dN#3?sn*Ip5k񳽋Ѕ&K$9ӸzזoK*ZgnZLׄpqPCj08˭LUk}0/a+8k9;=%"8d$g;*ZElN-}}ZgU/7'!Eu I1Na~ 3O5Wy\|nTRՓs߽+vjJ7,*U5i5秢ݚ8Jr2@ǟ9$NIBEB~ԥt|i\]]]]-oo35a*BνnV\NwThE2m_pW\R%IΪ9 6$gʖ2/bK~J-#N} a/''E*ݹ:'1T9If]k#wEY<د3 #mKBve!]h93oН)g!*[޴l: 9{6]93@ǟs E$͐y3MNy)ɟտV}Ѷ K˙隰_w!^j7esO].;f*"\/E+h$gUnyDN3SeKVwCJSUEّYUN0I՗zw哘w*ԿÜa$َSݵ,aKW™TבYŶ%!2G.\73S-SzioZLLN=䜙LϹ"LfTř̦lO_qk835a*Irkm!3s_Ur_Owi ɗH g#[&Yy6y#Z-)TqguЭ-p;pve#Zv;STOٴv۩wݯI3KwuUzqwgh3j +BHbے]wGI-'!Wn•mIJrJ4βMsǿ$#ZI&M'LϿ?N-BNiz*Lv|w$9v5m~搙/*Y'_뻴Kl_-w<m-ϖe:K֖ 8޲~c;BZ)lg;kwTW$Gԙ%fv*;3}B_wZOytTurVmIȮs+?ʶOrV%9%wg٦9_}a~-$Y&T&NߟB!'ɴ\]]]]=K8_=-'!'w$0XGn3''#_-]ZL{8>ի99 TR3#dlЭ-p;ܫMcezu2Lve9pԗ{㜽9}lINiWɈKd3vOrv_Jf^ k{Q3[$kp>g8}ɛ͐UQGXwe"(AlbgsKQ0%dzBW'p/0aS33+ڷi9 98'ٿ5U:%t<9:n|f{[d.^I!g3nmɀ^l+#ydr8-3QcKvLKJF^$[{R2OXۋ_EZ&ɿ]k+9ksNl䬊*'>º,9G,u*f;[Ž,9jſ>a] 9\]]]]9ʨ*>^2rdg[܋[Y uQ]8|JNrٱ|nV WӨ):#WLϩV9Utʩlqp3$к{e/Ʒ$s6Z*.iW'酿}f*;T߸j*Z=sr}:Jj9OΪg[/sfg'ݟOq樾eGיqڠ]̼CIҟ{!wMPqNڷi93]K<2^jͺLدrq_k}Wr̎-?us,gN`JǟFLaJg|NBȩvfSNOf;=!ݣϟ67?-K}7%RwNKJ?)N/3W!ѧ*U{T霓UZW|V$|vV=ۊ}7;;~݄>3G-;d7*d}g>Md4Sm*s2-WWWWWgU*6Uwvo=g똚笃/i;"$mv˾2=}'R s+v&oDEE|J8;Os_U: 䓜UNC63rx2{WeHΜUfiUjTӫSu8}O8hJvT{HPK)U#r>T* lٴi>g3;PMMr}Pqv9םUl;&Nup4KrsrMZ-WWWW&?PS}9endstream endobj 696 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 697 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3648 >> stream xAG C ?PH惷(?)RFyCmMnN(8dMg֕]R{eCF+<}(:R^ƛ[:P`j-P>5͡M]|-!>FhtY`{(h^T Sw ՖMs>_CXIqp%g{M)4f/5-`+tEL]t߾즼 뭮ԽYaզ0aG>L5 [|xCo>ʭHC 3oFU]֏f;*h^T Sw ՖMs>_CXIqp%g{M)4f/5-`+tEL]t߾즼 뭮ԽYaզ0aG>L5 [|xCo>ʭHC 3_73[_-s,l?[6uGT~;}l;QWyt{x8H!{J?9vK >r,[^\_sjSJ?<6;0OO:2]pRL$3c) xLd]Ʋٮx(>j\+>;`otSf ہ7x;U;ݚ㓁Q4ݘ-oSg;n-<민= FߡާCsB!:Ԕ~fwhT ncaҴ;jtvwf/eQҸeL<ùE SiLȡ[:V斋`SjvWQuu]8E߁~*}jOթJb&Iow[OMaFg"5vC?Uu^{S}2Xo۩<} bly0<;ߡvnqYi84>BJSjꛈu)ؗ吧BE6ϸr'1^x_!.'S[/<}rSش&OT74tkh?eE^vGf/F>ߗ>'6;oOu4njS/7M c~S*My/ ݨ0f_J퓇})vfM9lWwuws:;Ud4 v~2lZd)}t@)Os#Ɣ]*ٙ0SMoPgb߳ϼ4:$c OW<]f&O]w.޶wOmsߕO{+Sȡ'?A5-:9t?L|SuBSwpr#Iml3^FtNw"6^sow/;yϻލ<{bέwF[|ޱe->\[n~BcesO'dN0ldOO/ )gM!oYocl'ɼƋ9x.թ1Sknm%z';ԗy7ڻsOWl޹.h;lg`cqOwuIl߉l߳~?t5Ŗ4i!BA]@M^tM~!>ɗ1B!B!B!0ȟ@B!;ɿ. !tȋ!O!'2B!B!B!B!Bx'Sɋ!O!'2B!B!B!B!h!endstream endobj 698 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 699 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 472 >> stream xA P C(uMme_{V\LfY~z>~+@? IPٌ$h~/{L4Cf A0'ׅ9&!K@e3Ӟ=:Pٌ$h8Dd lF4P3 9x;2@'Y* \e,@ `f\2Cf A03ׅQf!Q@e3]!0*  Pٌ$hX+!]@e3`t@ -$ lF4Pl.%i@e37rgendstream endobj 700 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 701 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 702 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 703 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 374 >> stream xA C7M E1{ 8j z>>WqGHκA*<*]dVO=̩ !&t> stream q /image Do Q endstream endobj 705 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1704 >> stream xK$7 Co:6P4lȝLQ@m-'~9?|5'/UstwmZ=Ua{0a_xW g97lc>ԒȤ=J}Nvȑ?3?̳^ٽf zOBf楪Tx.SW+*vC~&LdL39OwӾkZ._'df^:H2 |R{l;`cE6ΚӃsn:["/НI[+?m&CvȔ?3?~7ɽ :t?dRA*;Jo:'V DGʏg62mHvץJ3qw<{+J$/U$9L;6+6vC~zgy_*^8kNιd+Y>;Jo:'V DGʏg62mHvץJ3qw<{+J$/U$9L;6+BvC~zgy_*^8kNιd+Y>;Jo:'V DGʏg62mHvץJ3qw<{+J$/U$9L;6+BvC~zgy_*^8kNιd+Y>;Jo:'V DGʏg62mHvץJ3qw<{+J$/U$9L;6+5BvC~zgy_*^8kNιdw﫴oj DGʏg2gKvץJ3qw<{+J$/U$9L;6+5BvC~zgy_*^8kNιdw﫴oj DGʏg2gKvץJ3qw<{+~-O3l;wi3SNsNÜ-nM';啿~S=(u$/p]kN<3}Tp9|z$/!+s5]l̔00gsfyTi8!J DGך9L_C>U9F.`_d2ɋy3s5]l̔00gsp=qB:5'sd| s8\OegIkش)'9'aUa7禓%d9 {<(u$/p]kN<3}Tp9|z$/!Ϭl;wi3SNsNÜ-nM'K緻;>} DGך LwC>U9F.J endstream endobj 706 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 707 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4248 >> stream xK]GCaSyK&"ax2nDZVf\L^j:SOoj_kMl%r6n?>YrhOWg+S pեMx΅qN< ~i8kvgR\]K؝Fsn9ŌgfOAnoC{-9gtu3S*WjK}VQO:~w!))I^B뉜xɎgQ_'!Z .SwgR32EOɼ&ۏO֬ZEqʔ:B\ui6s,fς_"Oh[% T9r%/ O!bv09+ŽRrxHn2JYTN.>]ϚWq{v,[N~/9;b13oqx)Z' K۝uݵBC5BuۛTS;i`mŦngR7qgOFj3[9%jZN`Vz8~f{LQV?8s5*vFJ?wgSXSMkOH:Gl2-i慼vN{7ʳΊkLG_>lvSq9uZГ'TޒO un ''LÙRso$UMPB=rQgdw5l#-lt8a%)23kR߲8|i*-yF{S6pQBYœm}ݻgOFtʈVStaZVeWa'l)}))ئJK88s)MLaq[uUE 7NpS;(ҽJsbeWwd(ܸ†Lfݲ#sMS/64!Եp9+\̼L'*9)ʛ88l\ג*&h6˾)C7MYqVpV>:N"o+l>{ S|uV7Sq̍)EvE ϳSQqPh&LթXIou]j_)Vj]n_IwY*SRRM]#˓TqpR쑛T̫o$jOvP{*V+,{ʮ"QqK eeGjjl_Nm*iBkrV> qyəT]O.UrR<N;7ٍYqpNS߹%UMl}S~n:γ8}t~7Ed7Vؐ),uQM}<(2ꜻ8+n\щwS&gs6mM7wSrվS=VjtD/)ܼltŸ?KLgV^.7rۈ"׫TNu[tW,m+q9):B.n\%#g*#˩SAdQu3rK*2zh;qɞ)wS^;ܶNSy{SO-]\ds?rf%NVzбoiPF,nοݖYn]6MHW7ɥU;gΜIUSNjZu>:}MQ;,*-?9*")>řpϬ:%\&ko$EWgIgnYVrv SXu\Nݫ9ݸJxGTFaS.ɢf*y Ud'*VGUwx=SP+v&͹mp[il]^ K؝M dcS>Yz)o$?\~'BuV(2Y{#+SXy5*YFŪByo8+SXyu\3Ws+ 9I$EY,,e܄K?3ܒ4ul\8YCN\%Nv֔SWVΫAqi8'gUr=>%\9V^5'k a{rn)On҄-8g 7ZMN7lܓWeéfK{_jױZV+>!endstream endobj 708 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 709 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4429 >> stream xVY, ;D UETm.5,˯vXQa%UarήpuLL|"ny"Hh&ko$Uwʫxk wՍUByl:pV^C;Wslj# 9I$EY>Yy M'LW<)I˅{4gș' RI`Ij5rQiO *֎`N[ϊ +'KE Fr3On҄-| 7Ϲ)7yMܹlܓWX}}^bX,wd~ϰNCw"o~{RWş9>< $4ޤ,TIԉtXԽȜ E}ΟೢaHnGB?oOvx㪰|f^nP7x\ԓw!nqʬ{"rv;Iꮇ3+IQQ{xX{$b'taUZ9hK/͓4qO<:\yӢkNOqqqzgU♧_kX,ogT!H7=LϜ\\{oR wbw*tD:W,o^Md΄"ovݾKWOYQ0$TZlj#U7dyV;DqUX>3/ qXWOkV,ypߊw=),~n 'aG:(.:6=I{7'M1# [4,Q]n-Z٫&/;HNQT0ȥny3Ô\xzO.9d 0f+5¯cVO ]R]Yw n`Eyv;95罟7~+PV8p@̛uQ=EooӿGgN=8[+m;:I:91ݻjYbσkVIgkwۿGg? ;AqIڻ?oڽLߎOzgɼ&6wS\hy*^%4yX,A¿pW{&ǧ:Esny3Ô\xzO.9d 0>dR3 :fքл;~7XQtO.Q&s+dk{?6ܓTbͼ?l)W?MZڡb&D,-Zy rӡ?M~gVi_};,-~ǭaNHKK<kyz_Vjv*9m*^r3upwq|˖p-Zۺ.HNQTڗ¿).SrK><\47&tpx&J̀YN@Yw n`E=}XD9TpORCW6r_ n7ij< j-8wNOwNL7 Y''}XCZj9mT K,n/ Iir~YY۩@P{m4r|Q]>x7.[V< jnzX,/#KϨIo![SVI\ ]ﵺK+NgUξu8}vF VTt9y;-ƝݮTw{֙= nd%w-+TZL Z]M˘8 1'>},Y''}{OZɛUGB]{Io-ORVYs۔nMkZ+;Jx]ƒNW91 PMO7XQ1D)twvS튊]O[g;ԏb+QܡgDsRiyX3S'huM6-c^5ǜtLgUn\E\8U?uRgSky&oV ]Rpv%a:IK<ky"yet{ymimWke^wG WxFn:.o)tdÚbX, FLOg/|)xJNu>qOO^qtO(&t†<)y\_nj'@ݴfVxu$ sW<՝w]ݮTw{֙AB+Ns8 7iSjyX3S;oeݤo`zvoܹNRQo6m;~縇JVjI ]b$%a<\/NҒ&tgy&J`@u8/ԽRߍmzr6nWTt:}r:Sd~&w0+榞WV@Ú ک}+&}ӳ~-wgu ziJfASwF'JR(>)MC3y-=mDs߈mZZQշ<E"ħAbXTgTJב›)Mg"uC<=y' ũ~VZ҄n0#DW Wa1|S Ts"WwZ6\튊]O[gj@O׃xޤufjyX3S;oeݤo`zvoܹNRQo6m;]),HR|JۈWi_ '6ųi(Ur&etuBѹMkZ+;Jظ6Hq0TԽҵqX, bCuFτuo$+uS'\R7ӓ|ry_zwo%MvϺV*1swEK@unJ:ӳ~ϝ[<,fӶÚ ˕' K+aÉm#KȻ 0ZyO}AP)fqvV5qwq*Rx >= jEm\,բendstream endobj 710 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 711 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4331 >> stream xI,ICэM$!sE֨G ??OZ[:3!Eq@.RogOnp8߽JK9ZT Ι;S[z]H-g.;L)TjOmgH[''֙Z'Tj9SWxMZNȭ-'A]੝ph[ѕtggK{G^UE=ٴ:âdaJ/):SR'}bs&«xhYR=owNqNkrVQO6m:*IO^CO]B޲Y |IzW=Jj'G'ay&ڜnpŝQTٓ8tmjZVj% '|ըgr8R ӾTm/):SR'}bs&«xhYR=owNqNkrVQO6m:*IO^CO]B޲Y |IzW=Jj'G'ay&ڜnpŝQTٓ8tmjZVj% '|ըgr8R(ٸ?պ#ٓ8>\l&kw$Mκ*<~6URo.֥RnR'L󩐩zvujB@8p_6mWGK٢Zt~'tM>D+g4>8w'LV.!o=[TZ\+ \tI%\MnY2;Yړ8 d{ZVK _ _5΄ d6Owȅ;x&NW9ɚIv; E?.gԛu):jG0„T 8봽~|*dj귞f]3d9p}~5:'N*\;ץMy5r蹖:]I:]ӳ9Y%g*kyh K[ի$')'ߊ:m'G'nR wxk(a~Vx$~+<?>YޮVjRBW{&S"M!zS#{)'˹ iY=d].:%_9ang^{ߖwLYqfuOjZVV¯tB ܟJ)Q(a⬹;It Lغ)T,t:gE8Ben#]'_z3Tf:먦:]J%V*ظ,wIq%lKs Tѽ))SlN鬒Úє$8LI:WwdcpO ONx|X@$KGm' J\rv)*|JNɗsNآ8=^%m"SsVYZVտ:SއgL7"ĿRE-<%<ѩw⬹s+ Tg|IbMs;PW 㙎:9ϦLtQMϜNJnj.Ku%gu{>,;8{c:+8랽ND[T2M!|R>aEwlN̢$ V7#9aH|un~D7KN‰>mG޹w9swR矰H-s5q3.´ߗ{ Wj#Ta}5}K?_\wsV;qܹTVs3Ϥb9+LGgSp&f:먦gn'\b 75ɥ:MʒͳϺ=SluIu=Աqu^N?-O&sf);6 'qfQ{vUK?j$u?s:7?"%'D?RSܻ;Ov9}˙xaxxK׽SwΫjZ/fMPw#y:=ӪMNwneyrM"̟"tIv[ͩ؍S)Tu_\Ww!aQyM5P8YuSLgUF!>ۧUX>mn:)k^ 6^*~')JͥrN6?o/;:'W\N݌z9Y˙|ºzw8+gөxrٸ]Iu"|̮J=w.g⊝gr}pֻUX>=)pB3 f*+>\rn7XXP&Ŝ3qbSOğnt\Vժ.~'~ǻ&uu:e{Uo#6SXn9$N<%f}W׍E?wE(&춚SS8C=ѩιC¢Lu/jN?b?qh뜧:B|vO|uRּlOL+nTNRKd;l~^wuNr7i3Ku)q85W*{Sq=&Eߙ]'z\;"& wO|zrS:gATV|n8:M9g[|ջ?ݔ):ZVU]~7)F&Z\f6zr<2=:'7*,u gHيιϤR; :线SQbLGE7wNLk'O Q'I؟*N;T))!_&Y')Fwn.g 뚾iYEэe%}TCTAQ$$8;ɝŻ*,u P{l¶OD9Wl ?ӷVՊBendstream endobj 712 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 713 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2651 >> stream xQC1 0l:74I7?kޝRNao$ {tVxs[tY?F&r𤋮s5qS2w\CKI3 ;->u $Ra֣:OQw:fw^ z\eN?#qHZd,NQ;)gkV1YmF U}&۳-zzgC85gTmQ\OZ=ٛ+3_gTSwo$ >;םN<jLGE)onk'r𤋮s5q>ݝR6?UI>x՝ýIke-}:?H:\SnZwyOOQ8eHڳ>>}wv3;}rgyWݖY =9(@w-t]Ҫ>QS_=y=٘aDiSjt)8w:v]T_W7|z왎:QՏVvnԭb"q}Oe9tHw) ͩ-Cż;}͕n<*\iU[ޭ΃U{t4HV7GTsoWqN-{쭖SzfZdS\뿳=|q~J.EޛN9PΤ{ SnK,ÞFO}vy Bj]Aц¡O=+Rd5 y=I}g+Q+duqm<=ΩϞENMaD۝ψgD"jWrxݎS>m5S4!jj7\ӕ)嗒*4orDg[ݬult';̳ez2?ERt:V030mYm)Y'[ЯMg7)ΤjIP1GωDS{m(SE=I ":|'RԳ"E]s{Гg~|BF_왎:QtF4xM$𤋮v؁*_):V>IvY<]yR~)iI#Tus|3MޝRL:;s@.tϖ/h?-jGZ<<]@l'sM`u\ӛ+IùÌ`W]n3|')'^ʠy:o?=)9o}{6zB`6"Џ!Ϟ\>ӌඁn7OWly9qv%=Op cOW3Iw~܃?yopo%;Jwp0'go*ؕt I |퉗2rEOO "xl^翨Ͳ}.?vw8x;'4#m /=x෩ ){ g <k wT=oVû{ak wT=o.;05x;m*o {7PopM_M`/B'<| ~~ ^ tQ `/<k wTy 4endstream endobj 714 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 715 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 465 >> stream xA @C7MO0cZYd_j~-`:6;oRF 6.}7RF 6.}u!9*<HئԥySF 6.}u!y~ȱM"&K:qW)i_rlSIN\pJ`T bRqwSF 6.}u!|~ȱM"&KzsW4/9@Ĥu@o XSF 6*4 ِendstream endobj 716 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 717 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 718 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 719 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 471 >> stream xm ChM_ B z2 611cjQY7 KVtuySTLDg6 !d i~z(1U`\}H+*c=@ffMnpjA=Nv7ze,\f:؉'͎Ľ"P9k#dfm6S 2pV'yH/K2Q3N.jfG%^ԿVQs=FrH 8endstream endobj 720 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 721 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1543 >> stream xI9Ct6 HqxZʘHX~ϡi|6'9׻;˸TcIri77+jupcaLn-H~&'9d zY/:fyr5 htmfoBGQ711@&$p?\2q-;:*s\zZ9]f[bnTMj6ɭ פ$0p~A/e\Σ@ʜwp/+^㿀}NfY֩-tU{ drkA58 !#_zײ3P2ʥ/uӵiVu*v FĨlZpM:Ns^y^섕9 ^V.-OyʴB#ܨ;5m [ II`^8;2!ʥמ=)ϞYV]ty& drkA58 !#_z/CٽuOYV]t 74 [ =qCF82N ^7{Ks42P@oh@&$7z$0p~A/endٻ?czg*HGxC2 A󛎓2qjb?ݛ^g^Z靕㳫t#H ւ:o:Ns^Ʃ!Fvoz%ܽ$İڬ]@oh@&$y~qCF82N ^7{+%!f*HGxCȗ-9sܞfeu~N쎏Ysº2+g/J~[zIg\s0Q$ǶN~bgeڋ]Ivl wB :u!Y=թNNgW<=O'2dFuU{佨[:δ sf19$Yr}`w~Sq{jg5+?s'u*gw|\ʘY=={~WrKZ=%rW%w uȌ%9uΏ;+^Ԝ|HrcKؽblTg}שmO }Nݵvr:|; y'3Uj%Eu҅qU /E6̉%9ϒ#;Ipu scv$gDg}7 {jeS殅jqSƹcXKNqD%;únFۿT뙟QN%{y]D8ߝus{J7ƩYZf,Y~bۓEf='~WO_ї̨2%au 0) qkӣQm<dO{r׫%侧7v0;-xƫ#<;s]x߳:kO_;3ɺg}XGYendstream endobj 722 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 723 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4095 >> stream xArd1C1slklJL", GC&t3h,AXTͺLW>gµh5}il|癍[忈~ƤfQ:; +Eg޿;v]"Oiɼj}/SdRTmLݒwcd2)}o[5t^TLzp3.A5?gGZ*['$Lڵ[n_ a;e-=݄wf})7]f&o'񑫤ݸ{jZV~@[ݓ@{O q&'gӺqE%B{06n܉r"} ;1t}9loIȕoW}Br;/f{qv)tM09ﲑEc\1[1_cx2}Sv=[[l“v8uKⳏs-"&նq:=}MjE%LA3/l͡d~j>TSL|M\Ng3[ I-@2yWZ%<_|;TIS|3˖]ϩ]̞i/v*lnO~IfSBTo5ӒwjZV+_L[z ?z|ע' 'oF@զ^8y_l8y3\T*6fS$[З>E%LA3/l͡d~j>TSL|M\Ng3[ I-@2yWZ%<_|;TIS|3˖]ϩ]̞i/v*lnO~IfSBTo5ӒwjZV+_d<[[I 9gZ}|N”OS- ;9lڌwST>-r~ke%J=Mٽ3S2L]}7r:nڷؒyaR%B_LF-VhpR/SӀmjng:$o alNH)J4r8SjZVJo?2s+I 9gZ}|N”OS- ;9lڌwST>-r~ke%J=Mٽ3S2L]}7r:nڷؒyaR%B_LF-VhpR/SӀmjng:$o alNH)J4r8SjZVJo6η4߷4I>g2۩?GNSoaίKs?v_jҽw>^Mtu_7#{ҭHyvڤ}JΔû9Lew%$ow}rN&[ZNߋ'.︥Ǒ!NUwI&UnS}fNmԭ}*ڌsӿLq}ZO&N+T>ԝs(9FLw{;0Hݿu:3UHj~|:;tpN]ԮMf8WjZVZ_S|&ɌnU;rNru:v/}Zϝ۩eI^T{Q4]wܴΎI#g]h*:Sz|3A薖;O}~ݒyv;ni997?/ZLKn3>*G:;U9%sTMWqpF;ϞS8h3N2Yq:Rk=l;8{P^OSwι2e.|#uֹZvV"uh9uS7\VjZiZK ٧'yNNy|n՛td{n\]Kxv_ZK<^uSOǦ>8IfOTl OQ%mYr 8ߎq>OGZ:yԳWދaq2*I :ovk*kN9>*۩sfw8:lfo繕m)Z*erv$8nJmg9&:Fʫ}ZSgvꜳ:ƿ:[Yynfov{f}9 >6}Zg-atš̊{/w;hUnu6jZVJ+7)-omϲiտ ՔO>_iRtO?;rrOP%_nW8FϙI+WM|޺;Y礏QQK3rfJ0!͸:7xǩ'i 3/Lvy1Ox7sG$9eja6;?m;*e~KgYkӾ,o;*/_fYu;d8WjZVJ k_.gSZ*.*۞eӪ)I}Ҥ_龟~vh~/)}J>gpߋ34?W6#TuwI["g7Ž̔a*Cq;toSOff^s#%bh/B9oUVIfs!^:m2!wv7v*TϘya}YNvT_̤ϝMvpVjZ._IBhC%do{M+vDx*v|9Z:QiI݄G sV )>¼{~>UsʡFSܜ̺rn/]C>[䗫%c8TO?R@Hڧ%lG#dR99SWgzTfe:Ct.n1مvnZi}VjZR.0ۤ*{ ߿Y6#O-8;)ZN~jhw萯ϊϿvGBpp'uY'p&>)I:WlwTI)*2Oqs&/35tgfoђ_LSe ?}LKN!ioI|O^ɞ7Sqg^/!ӹżsf>BeiZVjҊ"|Ki9Mv$ݟv9ziDxBCsiwr7NNyɿ wS*S%Cd~+i'*7{#>Ȼ8d8US$yw)ggpKFޅaUpGş{r6qJr֕݌ktNϯi7t~ud82i΄tg֧i3B-jZVՠÔSendstream endobj 724 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 725 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4245 >> stream xKn-G C i2+GԵ^鈢@_|6É_'=\l^M?n9k?i9g9cZ%GIv:箝o.®{P钜o=N:!Zz#WʿwQduLqsw]ϳNe:%UaUa;RsN6a# u/'g]8Q)S'px~ێ.=~=l\sV9!qz5!rVjZ|ٜ sdm}Vrvȼ[yxťkG9.^oҹovV˹_I¤&'33OdVvUm~Jsޅs&\^E:뭣S'~ !h6 zKaR^G[i6auD8oT9]9srOIRqΞ#5!BWft$I~:z8XgUJSsFKqMIjZVoS;d@4ID\̰7\GEC8CV/.mvX;s¥}U~]zH&78al Uo$3HoS#.xĝ7 ,7ԙ .\ox8MxIEI[: WM#©&ϙCO~Hw:s Y2#MTÙ:rW2B3]kJ2WjZ~*i9_]Bd'qْ3SA{ lW]sG,:ogR[]9Wh?-guHtIvzx8oxpZF2+#*5'Du9Gy=]kj L'KG+tMWEQzGn*ctR]lJT.&z;=p{2{jy[zM^ޕ7uR%;HZl>蔹)qŝe "]z"y5uOFsONݛ[X>xLZWFxv$G׷멀̡Ƿ=%B u:$s%T>W U !J9M݃P塝qVjZVoJOR| T{K":ƒiv=8>m}g \4P"V9W+/,Do]XuxXȪOlN7V7۸9$:eb{\qw©|ꤞC~2dMS㟑ŜƓS&+Ϻ9^!ջ79ɑ-z* q?3s-gvc {mD]᭦:\ yiyCt;oS Tozyho\jZV._ֳ~=%L >+:ƒiv=8>m}K.Xjރ9SϹ:3MTw7Nx OneL-ʺ:=7zûLTRg^}:L?xsg;`2i]yIۑ<r-gvc {mD]p]7:o8:o^ T:=W<ۛo^WnZVjKEt?&gU 4lW]>ޥw,~RozթP\A|ę[u&w;zGI'e&vz}eFmrRO̞Ny=]p{3wtSp[ PQ99<\qI'%-{9$g1/gYNzwĚ3"Y^}IMۻ]LߺNr2V,͚ÙƬ|)Y饛BW\o9yJ]Y:ªS5N7rcZVj/YߍZ?arf}s2CRW>s[Q.\:Bt49^0^7'i.R_'WXlɬs֧V**''ӘY]+9Ļe1䬜=p6IXs}F24wY7>˫/i{7)[^Nf޻Y{8sܘ/%_: tS*6'o^ TV#\GXuI=Y]XnVjZb}Cn"]|eK W7C|愷b!Wё$yHʧ~%8Tx/o0$'_B8p8۔di{ m&>$˹ӱ4rxoKN)<$gunL%]Yz..goN:gy%5mFt> stream q /image Do Q endstream endobj 727 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4123 >> stream x[G C ߩa0`L[U|:AǏG?|}ye>w\pebԕϜ@H<$uy68L\_0=MN8dmlSY%T8'7PNp/΍崑;g?Wr:O!yV/+Sɒ۬z..'_N:gԴxf[Ng[Ҭ=iHyVXpꜟi޽C}+Ju3nsV3=}w~ZVjL%Wn9tr&t23Ϟl:'IEi"Dw'm:I]:Bu^wA&40a] a.S- 4^Bs~?}s/ϯ876%7ngpr6I' ;LLMt 9kϽNMaqq=x"ujmdR}K2Mᅫ=ɿ9;@^ݧjZV/)ߍSÝ L̳g&IRQIfNRW>Pםs*v< LaWCXT gï/POz%+΍MIM'y[*Y9`9\9oIz3-S'BsSS~XDnuF9fݠ6sT48Lc9?EgoEft,Wf5s|eZVjUWjM8 oKMw@^);dťMd6f1go#T'Y8U!pN)Nl;i3;"gHȢ!ẩoJyEs){+oNNwlPV~S4}w4u:SoMqO_޽vl9$ȋjڜ\wO40:I$:s"8/WjZS ߁ww݋7%BgL [/&_w2BژORˬxِ v8'o̿pĝOh3$dQwpԿ u7޹rܽ7'';6a y+?)>;˺P8/z^If;ItE5mN.]T;'D?M$sN6l:gY9Wח|jZVߩdYjwpvh5K9&}i=rw "qWooA=o!2 asr:{ON;$$tv6gpjpr6O\gބ\3+'ȳI > CQq_ΆfvԹ⟓5-.緦+ggwfS_zB tI|B2sÉ${jZVߩ/j7$E; ,dB.I=w:埶.Mr{g\Oi;%93N8f=0!N5-Ω$ӣS9'L6?/sN. ޽=uv߲fD< S緎56!g o%p"9>imVYj&eq:}npٸs{XQMɨPfveTgS&8t];dN*ܺ8OٸxOjZV Q?򷽄,NLȥ;YǃSӶEIn쟐 ə:m{:g&[ެ4é9՛dqzu:$ɆaEӻg.9ۮ[֌'aֱ&&dLN?G'M͊?Pqݤ,NO ?7|Nu :)̮lj„ιu,BpI[)ZVjZIݡ?狚5)3׹7qzRu63՝3'lR}\.M>;+wH7?ұgOӋa׽$}T~6ggoXԹ7sBR)YAs/:DtT]{[gK#WyHl:it^R8;UXEYwOXQBoq9Y˹?T(z9=,> mڡ펪יmWxRp%r5JyZV;r~+XlWz̧$vPOϢqF۽sM/ExggNg}>=S:6irzѕW=캗dϦ:|WΊ&!:MiMS!-,YJˍf9''LL$1 "UeFyTpgʨwc:[ݳS>aEv%7Cһ+֤X>~rR)<ڛ3,B''7Xҹfώ;38d=m{, wxRu$^J/aAʬoVjZYo^gOשI[q}ub^B9*8[S";κ|N7;I!י x}++Uw[VjZe~Kw =ߥ:-SΩuT:%gs*6vǦ~E<1Sn J,pB:g?ΖХ6f\鄳hN7}s̥< T])LEy݌ O&=Y$oN9m&',·Έ̞IUg)OX>wRd,;upi O=E M:9#ּisU*iΧB4?\ެ6LkEc]Vj.M"|Nߧn괬OY8Q锜ΩğO}L* u{8[Brڨq٦΢Mf;ݤN,5sOا93^4Pu0%u3*<=d:a椷pr;#2{&UP>a][cWI |EY+?)4eXU89gKJ єp{@2EWڃ%mtZV껔՗O.U|B+IfO( {HoMEsQ( 3κ;Ns[6gd5^쓫)2✓,6ݧ'O &=A)S&6[!ԓ|Seg휺uS$ޕm 3]LfS+)-R(^5̚:3Ewitruܹ+e|n9gmjZV_SEendstream endobj 728 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 729 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1997 >> stream xA6 Ew: x)>$xp?oJ7}ʴIO;gOc~ד'ܓ[7=a^w=y¹ z^LpNwUܕmeny:}w3wqJ99+[NH$wٳM8{H93盲՞OaNg֬5?]3CU9ٹ[Yߵl$399[OE MY\-$+am\++f&gMv1MfflsU޵t$=^{mw0s{~vnǪi6RNs.CKr3LtysޑJ s~yVMd̵gvJyr'sfUM#wn~g݇{~NyvV:om휒6j{wI70D5yG<+k{r;UyR6yUSUg&Йp=ҧW%S&OH;4Im2 I^)xmɬo)5 UNO}v⮿f~u:Uik8uT3ʼn&]1yI'_97-QyM]w)wOy^~:ߕ<󜖭\wɬ;Uއ=rʄLxBߝ]L[cGWa}[x_媛9XOxNg*OT9ѳ~zwSo|;alBž 9eskKLctޖ*n)vFzZ3n\tDg'yjg[3;Y6ۉ\K5s]X)nzO3tsrN,*Nurl姳]3 ;ijOuzڪ콓HXe}߳NO+LN.̄+gݹ uϺE9vt翾U뤻x]JD==맯w8e{n6˛aOUp;?놟eݗͦeW;33Lu.?~XmMB~||w|OB?_I>~7Iw?ûujMhq^eendstream endobj 730 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 731 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 377 >> stream x 0"NF;Ao#˲~ݜۑՍ_UId> stream q /image Do Q endstream endobj 733 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 734 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 735 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 736 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 737 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 738 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 739 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 740 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 741 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 742 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 743 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 744 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 745 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 746 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 747 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 748 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 749 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 750 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 751 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 833 >> stream xщ1Dїcu4sXg0 {j>C}K$I$I$I$I$I$I$mܯ?8LƔ[|d(1%uʥoLIGrS^|(1%ʥoLI]rSRo\ƔjʥoLIGrSRWy\Ɣ[|d(1%ŇrSRo\ƔU|^(1%ʥoLIz{\Ɣ[|d(1%uʥoLIGa݋57#@)P.}cJ->27$^|(1%ʥoLI]rSRoxm&!%iC @)P.}cJ*>/Kߘz l#0A )IjʥoLIGrSRWy\Ɣ[|df oHIڽPP.}cJ->2Kߘ 7#0L}CJϟo]/7p68if~5lʾ&v7$ޝ-Xf߀Sy K^ye 8w4[ҟ7T^pݻp*oair 6̾gfvWC<2 N36tߐ{w4y`}N-,Mz7lqnjHXf߀SyI{;{F`RvΖ?,o]/@<2;N٭_ p*/8iroxL}CJ/endstream endobj 752 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 753 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1029 >> stream xѭ1DXpX#yg=]GCkgT?_.e߀)lR ;NlO0;`$8 )Ie [XJnge ;Nl몡x̾SyI=sHpRnogKۏ0z0wUC<@}򂓒{=l#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷmy2L-,%^y2'eu}<Pf߀䞹ox$8 )Ie [XJnge ;Nl몡x̾SyI=sHpRnogKۏ0z0wUC<@}򂓒{=l#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷm? [̈́endstream endobj 754 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 755 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1029 >> stream xѭ1DXpX#yg=]GCkgT?_.e߀)lR ;NlO0;`$8 )Ie [XJnge ;Nl몡x̾SyI=sHpRnogKۏ0z0wUC<@}򂓒{=l#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷmy2L-,%^y2'eu}<Pf߀䞹ox$8 )Ie [XJnge ;Nl몡x̾SyI=sHpRnogKۏ0z0wUC<@}򂓒{=l#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷm? [̈́endstream endobj 756 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 757 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1029 >> stream xѭ1DXpX#yg=]GCkgT?_.e߀)lR ;NlO0;`$8 )Ie [XJnge ;Nl몡x̾SyI=sHpRnogKۏ0z0wUC<@}򂓒{=l#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷmy2L-,%^y2'eu}<Pf߀䞹ox$8 )Ie [XJnge ;Nl몡x̾SyI=sHpRnogKۏ0z0wUC<@}򂓒{=l#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷm? [̈́endstream endobj 758 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 759 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1029 >> stream xѭ1DXpX#yg=]GCkgT?_.e߀)lR ;NlO0;`$8 )Ie [XJnge ;Nl몡x̾SyI=sHpRnogKۏ0z0wUC<@}򂓒{=l#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷmy2L-,%^y2'eu}<Pf߀䞹ox$8 )Ie [XJnge ;Nl몡x̾SyI=sHpRnogKۏ0z0wUC<@}򂓒{=l#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷm? [̈́endstream endobj 760 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 761 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1029 >> stream xѭ1DXpX#yg=]GCkgT?_.e߀)lR ;NlO0;`$8 )Ie [XJnge ;Nl몡x̾SyI=sHpRnogKۏ0z0wUC<@}򂓒{=l#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷmy2L-,%^y2'eu}<Pf߀䞹ox$8 )Ie [XJnge ;Nl몡x̾SyI=sHpRnogKۏ0z0wUC<@}򂓒{=l#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷm? [̈́endstream endobj 762 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 763 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1029 >> stream xѭ1DXpX#yg=]GCkgT?_.e߀)lR ;NlO0;`$8 )Ie [XJnge ;Nl몡x̾SyI=sHpRnogKۏ0z0wUC<@}򂓒{=l#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷmy2L-,%^y2'eu}<Pf߀䞹ox$8 )Ie [XJnge ;Nl몡x̾SyI=sHpRnogKۏ0z0wUC<@}򂓒{=l#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷm? [̈́endstream endobj 764 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 765 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1029 >> stream xѭ1DXpX#yg=]GCkgT?_.e߀)lR ;NlO0;`$8 )Ie [XJnge ;Nl몡x̾SyI=sHpRnogKۏ0z0wUC<@}򂓒{=l#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷmy2L-,%^y2'eu}<Pf߀䞹ox$8 )Ie [XJnge ;Nl몡x̾SyI=sHpRnogKۏ0z0wUC<@}򂓒{=l#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷm? [̈́endstream endobj 766 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 767 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1047 >> stream xэ1EDDClorX2ծwN~|_.e߀)lR ;Nl矸ϿoT^pRr;8Il#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷmy2L-,%^y2'eu}<Pf߀䞹ox$8 )Ie [XJnge ;Nl몡x̾SyI=sHpRnogKۏ0z0wUC<@}򂓒{=l#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷmy2L-,%^y2'eu}<Pf߀䞹ox$8 )I@I zX/D@88)y V3B'% _Ws ׽tendstream endobj 768 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 769 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1517 >> stream x6@u ßjCuP(6 |$FfT+_"`[өcJ $Gsld_fBrv.| l4{#4<, N"2;y`j'~#<, ?:M"2झ˷4)8KSO5IY_o '`O<5Epld_&`Np[`sE$,/oJ'Iǔto 6B~YF*9'S](+ǟexD`y[%S-IY_^!-#+Oz)ގ'@~mxೌU/rt6P=tY+I#I72K W}:kx[z:kjd_n4rY+>LIKo3 ՓL>ޮ44{#4<\"ߘ%e߰ޚpvx 凈' -_dS'?~~yD~|Hfa5'\rw3< \=W$iFfi~yD1Kfa5,,ȯO[Ȧ:,9Nڳ> stream q /image Do Q endstream endobj 771 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1725 >> stream xq P`cu4ss@QQW۟׿VwK~3e_{gL GڏaOr_@s_L|x~YD&g ɪ>9++ki<=x]zn"ğ?y[ԥ2q"3?sYڥw '29;OV_О@Dܬev)>] L 6h>^lQ;blj<h>^fik%< {X=>O|~}C{Vs_om L 6|/ps\yq:x5}osf Ndr :VEpo\D䎬0V)^ZƇr l;{Kw/>&}0\q"3GXugxiMz^ Ndrw5{A6YEDZ<ԝ5g|x {b)܅E&y?QN3>1q"3/(uxi ^Þcp 78ɩ́wYvv2>ȶ1_MYYKasQaO18<g0J:^Z~Ƈ׶3=NdfVy/a?ks N'29u9.+Nٶ3)+ki<\/ ]Kf .,29+@<\/ ]zW!'23+p<\/ ]Kf '29{79{A6a¹*_*NAХϻdBO"ğ*ХzeBOq"3 *ХϻdBOnp"Swg{d!)+ki<\3Oo't.,29+@<\oұЇ{̬pwOrҷЁTx>ِ gfEDnZ<Wz/-}  L 6Wuto''23+;o<\ro't'29q~7ާA6d~Y*Y5=9Vмway^AtҼ8YsA{hB伻;/g< ܗ4x9'^- L 6x$/z-ljʞ<x/zXCRD&|={^/TD侬pN5B;iVN"ğ=9~ ;lj><G{/Pf5'29 _qyyn֕endstream endobj 772 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 773 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1634 >> stream xˍdAl5M|(-f3h` Aƹ8$T1?_>e:1U;ήCsϘ"nW__>q ?=NdfV|uP'29{wd`._ p¾78ٵ+tn*ܡf޶EDnZ<u*o;]XdrWy8޿HLJs4V'23+{k<g6> p¾78ٵ+tn*ܡf޶EDnZ<Guz2ݧھ<gp 6>˨vjx{̬p]'@.}{Lή'Wtk7ݭfްDDnZ<Guz2ݧھ<gp 6>˨vjx{̬p]'@.}{Lή'Wtk7ݭfްDDnZ<m:r1Yy}u"ğCsj|S{̬֮j| SP'29NTs첫DDnZ<m:r1Yy}u"ğCsj|S{̬֮j| SP'29NTs첫DDnZ< O)! a:/way^桡]mz߁Nlj< ϥ! a:/78ɩt)B޶DDnZ< O)! a:/way^桡]mz߁Nlj< ϥ! a:/78ɩt)B޶DDnZ<MO&! dFA<gJ({ljʎ<Mϟ! dFAϥN<F%"rwVyh~2a 3ҍ]܅E&y?VF1 =NdfVvyh~a 3ҍ]D&~.tYH7:P,C\4Ù ]XdrWy6C˼t=NdfVy6~8So#!@wRIt`z7ܝ4x*T?LJq"ğC\X3=uq"3WC\ÙD&L\f3ԻIDQ?ć_@g܅E&y?ʩ2ׅk8Y!߁5wOFǝLBAEDD&de-?9$>z >.,29+@<UN/.<^ϸlj<ć_@gD&{4:tfz **$"2!+ki<#:u"ğ!ߘ>lj<?rx~c΢`TvLC|Eg#"[ sgkendstream endobj 774 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 775 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1559 >> stream xэ\7 P ;=8󳰽YB@K=qV?~\o Qf¼Bb`x""ތO(;d{DbU8| Tn:y68TìDb`M}vDDYx@^<zw"3"T[v.3q"?/P1πޝ< Hr*JH`w202/"" 9K7ڋg@Nda]X$9<|ʽx~Kea=N$33_*7лGaIN[ }\UED$!3giyxMxәP]X$9cINw3S;P[̜ax^71]X$9¯q"?*ynG68TnpӔ@7obf3IYx6+ڋgƒ]X$9C=N$33߸Pvk/-t9' N$90\&.'0P̜a͡l4vaOglF^6uSO{Hffna]l468}\&Ocɴ/"<,X9v:ԓ., lf#NcIc׭<,X˵v:ԓ'ˤiL=EDr2s?M=vaOg`mk/t<8|Koe& @Hrnp"3ƒgrfo^DdAendstream endobj 776 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 777 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1588 >> stream xэc7 !AjM5-0` ,1O@4%z4~]*[?62{O&:}f<~SedЇ=Ngfε_o{O&D:vpsZϋ,?IBl>ʧߙمE:g<am-^0זּˆ%89aR/wf&pm68Ωq  t""23KaR/wf&pmvaOyXz[G;mpa=NgfNyT| \ NsjgfHyxvOWe?j7x@pc>pU89/'9 v3vHyxvOWe?j7x@pc>pU89/'9 v3vHyX `6/"3g0P0: '33X< s0M7x0`ڹg~+HyX `6/"3g0P0: '33X< s0M7x0`ڹg~+Hy ^0g`?o~ݍL'33'W<|k/]3ӃktN7I8'f \OEDdf÷Vo<3=H'@<|nlxfzp%89[wxD \ NsjI90CWzj]-"'34x7x$awvaOyxzL_e{H̜Y`/ +& tNH8<+& WRg>`>/ +& txğÃ{W`B/Dzf̊?x ^1I؝ NsjF ^1IZ?,?՛@`tc txğ]+^0q:߉eÝ=NgfNy[k &N0f/H~'0[jt,?՛@`tc txğ]+^0q:߉eÝ=NgfNy[k &N0f/H~'0[jt,? ^6'Oa°#H'@<T3'33T</'0aؑ Nsj7d8Nna9þVWD[ffi<9 } مE:g<J0ϜaG89ixٜ>a Îlp"S!vjt ڽ""23Kik܏ 9.,9 6Oswxna^q"=3sBm*^0'ggH笞YpBϰaG}+"6endstream endobj 778 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 779 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1619 >> stream xѱD  Q|%#=3>C%YsT믿!ҟzkz:3\gSDןRt ]f{qljLeC "_SYa/.8,X>=CÎ}+"2-Y<@ݍ/ev 6Xx,H]Df/ev,}:Ϙ?۱""R YΡanaɹĝ 1؅;Ndf*)x_PYΡa.8n+ܧs^+"2-Y<(]/>c>\Oy~; fY:;"V?gWS`Y\p"Sy]t{UDdZ*4xQ>^0?|,b}naɹg v̲twE'23<(ݯx,ND& EofȴTfi<Է|T{} f\OyF~/ fq%V>?gRT{ ft7|Y%RiyFoxlAqG(naɹg^K'23}<(/xlAqG(.8n(>]ͳtKۥ""R QRو^ /!"s=/-"bF&wT6Qaަxj=)"2-Y<ϑ<^*[]{ Hnaɹg/M+cwTO> stream q /image Do Q endstream endobj 781 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1566 >> stream xё,5[`h[uYGEkNc67vx[SDy'|\'>*G.vrʹ|P'>*1Y'.>0q3[zfA""3S٥\ctl6R܅E&yğswN|T.cHqʉ<5Vtl6RD&g4NFzEDfK9 l L?2\@a'23'xk^ lL;h,46YLes<>04zos 65_8Qɖ{TΚy.O\|`i'29_YJ?}-GJ{""3S٥\`54܅E&yğsN|Tit'23&x kh=7L5|OdˑRTvi*@RVqD&gL@ɲ QoTvi<QBɲ]Xdr7@<ǩGz؊'233%xԿU2e+ =7٭1yR?2e+> stream q /image Do Q endstream endobj 783 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1543 >> stream x$U [ۈ9mo[tUe<tP:__o㯿!t⿤i`6׽4)"BWx,aB8I^ʿRKe }HwlNkt#mt#=LH'.IfVǍZ:N'D6'G ?if򔼗DDv&RYN,\Oyj%_EYJ-{DW ʿ=Ke9I3;lp" {ӟ43EyJK"";y ox,?ifr]Xds'<"YN,K=Ndgy 㥲Y68_H=O<%%Ifs'3U> stream q /image Do Q endstream endobj 785 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1523 >> stream xi,WP`Xc3vlSSGsn^*C/ $m~]e 3g}7?]r*S/QQDv&^wQᝮ2˳D6'j=,,$ٜd֗˿',&-9oa9y~W?*Uf1iywD[ y{E2IK Nds9|iLb=ysDDv&y/o2IK[Xds'@}m"Տ tYLZ'3VC{y^Q?*|bҒٜ~_ii,|OIfi}y:=a.eS?*u"s<k7Qe"wD[ yYG Nds|c̥Ld3"";> stream q /image Do Q endstream endobj 787 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1419 >> stream x@`ñ:f?fD] 6=*O}oJLh2Lf^]aSD۟T|'?$ i2a[Tfo'?* i2Lf^D3n.DIȤ""͙ygҜمEs=yo CLW8Όy>GIbJsfi/t%3ILi~d Lf<3ILi"͹gǬ'ҙU<'nQ-LS3Hs_t"h5yWV4g2K׏y&Jcbs 4zC<&6g8Όy&Jcbs4g.Jcbj Lf<Ri5yLlva\Oy0XHV'ҙU<Ri5yLl68Lt"Ri5yLl^[!"ҙ,]?V:@6&.,Ҝ ~6& jRq"]5ls+ n`i]@'!nJ9AD9Y~<ϭtlMs]X9`lL>դ29D:3j>V:@6&'ҜɻNC*&ns6郈Hs&tx[tT7va\Oyn5XHn`ax[tT768L6Lo}ds+ n.,Ҝ ~6ϭ& mRq"]5ls+ n'Ҝ[6C6&ټ""ynק .,Ҝ ~6ϭ& mD:3j>&~}h8plp"͙h9dpi8IDD3įO ']X9`l[M>d3ñljtftհ}&~}h8Lf68L?=4N6ü ""y~9;=ly3Hs'<7Hi`7ljtftհ}> stream q /image Do Q endstream endobj 789 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1343 >> stream xѩ$G @їcu49^h=@C ~sÜny_ǔg{?& 2eqR8w:9fI&3C93I*7٥Y0MR plu[=Nj6zpxuΝsN'l~: sd$d?gsÜS`7 K7yM~?Vs l28Uy9w:9zTn03s 9r]zxENN.,{Y7?HXaۛfW ׏Yĩ1MnpRa0eӗr]zxENN.,{Y7?HXaۛfW ׏Yĩ1MnpRa0eӗr]zxENN _.,{Y4}?HXdfW ׏Yĩ1t5npRΧa0eӗr]zxENN _.,{Y4}?HXdfW ׏Yĩ1t5npRΧa0eӗr]zxENN _.,{Y4}?HXdکkfW ׏Yĩ1t5npR 5f349wI*7٥Yĩ1t5R plEE{=Nj6zpxENN _'|͜Pc1Msr]zxΚ&3Om.,{Y4e?HXdکkfW ׏Yi2npRɶ 5f349wI*7٥Yi2R plE_E{=Nj6zpxΚ&3Om'l{͜Pc1Msr]zxΚ&3Om.,{Y1M?HXgi2qRѫp4yjl78dV&&Oɯ$p4yjlwa86ϊoG:3Op^5\?gScwI&۞2!4|L~%d?CN2O/p=og?֙y8Uy>)3478>oeBh24ɉKR.=<χ2e&&_.,{Y1ǝ$34qRѫ|)Sfi2npR?|ʄdi25r]zx9eL>M6Ty?C?dwIF!Lɧ/pM> stream q /image Do Q endstream endobj 791 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1364 >> stream xˍlEE[c|h9tCgm-JϭcUhVfv> w?|O~;>#M|:{xI%ǿѬ2|:xI%<[tr7֒t|xk:x K=c|Q&v> ΢yY_o'5co#YkIj.KLJf} 0>6% ob;N,jN^pRs=>=撻t|xk -,5|E֗f?͒䋼΢yY_i+\róA3fd%.fy K=c|O7#"8hazxk '5co#YkIj.KLJf}nRs7<גo);N,jfyI%7<S YeIj.KLJf}nRs7<גo);N,jfyI%7<S YeIj.KLJ`ep h[ 0>6ϵ=#-;N,j炕)on^pRs &v84HVYKy.XY8-,5|s-vHx+| v:`ep h[\ró]N8 U撻t|x V|{fe)7#'uM5Ls/V^pRs&p vK JRk]:><+ S[y K=c\@\:`ep a+/8ng܍p8%.5Yoy.$ )Y;N,j5Y撻88ݒ撻t|x g|{湐|$|ga+8hazx g|򂓚KvvppvKWKy>Ś+ggaoa`|l ;nG7p ];N,jS)rp񂓚K[\r)^9 p8 x K=c\Hq?SVqRgT> stream q /image Do Q endstream endobj 793 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1402 >> stream xѩ$7Ʊ:f9EPt?OUР)_F�㯿yk '/NyWoLIo;8^$7?pvXS8xq:'m.ՙ/^p2 S J֒<p2ğ]Xl$gtGט8y㤝E '/Ny%:O''1Ud/m> stream q /image Do Q endstream endobj 795 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1376 >> stream xэdKEXmo| x h)Y7[WGop&/ʯwƔ-Opo #؎'ݬ_L^l_']9v&4%rY:x!b;s.OgvK??I7^5L?'0Al؎562}xb;I3MI\s?'0Al؎܅`Ɵ4$ ّ㤛Udv^|l']9!#ّQ.ל 2;]X\>Ɵ4w?l'ݬz0x #ّ58v1wdv;4s5gy̎@fGr.Og|A2#۹I7^5L?'0;dvd/78r=]2;%rY:xv2;t|?'0;dH8fի|dvа#ّ5wv1qȜа#۵߂t,Ɵdv${tUy>2;h^np嚻8dFhؑoAIZs?#̯^ 0l #а){I7^5L?#̯^npӛ]L2g#4v$]9KAÎ@d/war6O`vhؔ㤛UAÎ@d/78r.&vd[P֜ԠaS %t|?7wqv6e/8fի|djа) N\szClٮ endstream endobj 796 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 797 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1362 >> stream x-@ї_J4ŘslZT+~>Ԡ)Η^SƔ~7>0Ύ@aSr~25(l %tsfwF(v[PnydjP(lFͽyTn?(l^qҝW ӏydjP(lFnp͕{[86 ]$\9KԠ)Pؔ܅{?Ɵܾ$#Pؔ;KԠ)Pؔछ+80q(l 6e2AIr?瑩AaS) K7~?瑩AaS(¦@g_6r,j~> stream q /image Do Q endstream endobj 799 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1355 >> stream xA DDCl39,>a(^_wo_Ǐ\ż /ӗY)"6/\ż /K#yljLb*9}bٜd~f 9}̕NDdsxüJ_ /؅E6h? /KO#yljLt}0)Қ)lp"qϔ!m*}(ٚ-m?0)Қ)"s$w Ti,89L f ${3eyJ_&JED&yKۏ9L f 漿g#*UZ3=Ndgy**'9Lfdj""&UZUZ3]Xds_ydnp}*'3UC> stream q /image Do Q endstream endobj 801 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1379 >> stream x7 @!AjM5-:=LvyL(`@yU/=%d25S|ToLIm7O. @',?q?pRej La6㸙S,SYfȩI"wiy'YLvais7@y'Y"mGr㤝^5t?pRej La6㸙S,SYfȩI"wiy'YLvais7@y'Y"mGr㤝^5t?pRej La6㸙S,SYfȩI"wiy'YLvais7@y'Y"mGr㤝^5t?pRej La6㸙,w#ԘY%ik<,SYf <,SY#9qBs8)25ejIqBjL,߂]xW_8)SYf <,SY#9qB '?cj La6,w#ԘY%ik< @.,mh6 @VoH{Ы.*SYf v͜/d-(I[ܥy|]ULvais7@y'Yj8igW ݏy}]UL68is퀛9_r7B%[PKL d)ogN L Ԙ)qBL d)lp"7snS3K$m-r?u!T25S؅}9d1;S㤝^5t?u!T25SEn|!5foAIZ.m> stream q /image Do Q endstream endobj 803 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 886 >> stream x1 Q n5["H ߇@5?U~qqj`SsO*cJMxR˩3-㤙 Γ3N rjn'Mnv;|ag4\zǔ[|P.cJ*>^(1%fH$I@)\zǔU|P.cJ$I$M+ rSRo!@)x\zǔԛ9 I$IV;CrSRW@)7s@$I4 7ʥwLIŇ ;rSRo$I$iZnKzʥwLI] ;I$IҴ/(1%2KʥwLI$Ii_P.cJ->d(1%u/Kz3$I$Iӊp\zǔ[|P.cJ*>^(1%fH$I@)\zǔU|P.cJ$I$M+ rSRo!@)x\zǔԛ9 I$IV;CrSRW@)7s@$I48O 85˩2ɽ O v95pٹ{4R> stream q /image Do Q endstream endobj 805 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1370 >> stream xcG P将ch66g ՀO^j3ʟϯhgRpGk 5SׅpKk 5SD6f )o#њYEDB5Қ)"s8)]5tB5Қ)lp"Sx3󅔷h,""[SyKۏu!Hivay~9L RZ ?$=NdgJW |ni f T|!m;Z3KTy>~]RZ3]Xds_y@7aٙUC<_.[Z)'973_HyR.("5xä 5Қ)"sRH{Δ9L RZ)'9=73_HyR.("5xä 5Қ)"sRH{Δ9L RZ)'9=73_HyR.("5xä 5Қ)"sRH{Δ9L RZ)'9=73_HyR.("5xä 5Қ)"sRH{Δ9L RZ)'9=73_HyR.("5xä 5Қ)"sRH{Δ9L RZ)'9=73eHi fDD6sRZ3]Xds_y@aٙUC> stream q /image Do Q endstream endobj 807 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1359 >> stream xmE ПXkrzыKyƧtxU=#o~'0)Қ)')"m_~#GSf{${Ͽ**'9Lfdj""&UZUZ3]Xds_ydn}*'3UCSe[PDdkxäJk `|g OҚYq";]5tsTi |bٜ} 9o#TD鷠$oi0/,68Igʐ6BL~ lMsT e|g\ rUZ3=Ndgy*}bٜd/} 9o#TD鷠$oi0/,68Igʐ6BL~ lMsT e|g\ r?=Ndgy*}bٜd/} 9o#TD鷠$oi0/,68Igʐ6BL~ lMs1/ e|g\ r?=Ndgy.9}bٜd}f 9}̕NDdsxyAN_ /؅E6h?b^%m\q";]5ts1/ e${3k edv""\ r9}.,9/@> stream q /image Do Q endstream endobj 809 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1353 >> stream x-@:֌mBk/ѡ8c +㏿t:1%o>O~rCFqʍ~t:tr3k te2;I\9K`^(|l.,]6C;;#ᇰ)ٗ㤛W ӏy0/ 6r.Wm0k(ٔ균$]y0/ 6r.}?CFqҫ<t I+6[5Fl^[PV<t  K>ƟԠ)ٗ㤛W ӏy0/ 6r.Wm0k(ٔ균$]y0/ 6r.}?畩AaS/I7K`^(|l']laP8){oAIZ9K`j(lFOg25(l te#8fUyL :M N\YClΦU%j,<σAgS) K>ƟԠ)ٗ㤛W ӏy05l 6e#78rFf :Wt<M¦l.,]6+S¦@Q78#y',j~<σAgS)I+70k(ٔ균$]y05l 6e#war'y^6+8fUyL :M N\YClΦU%j,<+S¦@aS6r.}?畩AaS(rn^5L?畩AaS)I+80q(l 6e2AI\9KԠ)Pؔ܅}yejP(t$㤛W ӏyejP(lFnp=-L MٮLP.W25(l 6e#war'y^qv {ta> stream q /image Do Q endstream endobj 811 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1383 >> stream xэlE EїX0s<^[+,WwUo~7?A̷^yjӿ1%_cdv:l^q:}Î@d/78rӛ]L2g#tؑ%jt<2;#ّ܅`Ɵs0^@w;I7kj~war6ϣw*㤛^5L? Bv'']sCv@vIgtY:xG&|t|?QxC{qZb;owp.9b;b;ޤ3MI\,<#sO5]X\>Ɵ]> stream q /image Do Q endstream endobj 813 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1404 >> stream xѩFƱ:fzi(FOTU/:+*_W7K -b:fpv~q^1Pj'm.\V*{#b.&I J֒<_\,,m~h6O:Be.JkHBq΢[ ݗuWTb'8is>w*s'YSI\_K^1P YGT~I9NYt<_\'m.@e.2$k*IK#T*s1<> stream q /image Do Q endstream endobj 815 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1367 >> stream x 7 P .>mZ+`Qׯ//ę·8܅}tSD>ϗ?$sGO]'ҙ g rp14'g[r""Iz<)x2 4s!y?~wa+sHgy.8S8oeiNA=..얜Hs^:<g "yk\H񏄟-]'ҙhazy w[DvvPp p %+"Ҝ/sa+Hs;<ל,Lp5sHgy.8Y8"leiND=[[/("Қ/sa+Hs;<ל,Lp5sHgy.8Y8"leiND=[[/("Қ/s[YX9`|mk=QD:m5L/s[ N9IgUn SiNKǗdp h-,,Ҝ06ϵH(ނq"dp h-'Ҝó܂)4'\si,,Ҝ06ϵH(nn8D[ \si'Ҝó܂)4'\si,,Ҝ06ϵH(nn8D[ \si'Ҝó܂)4'\si,,Ҝ06K >!*fsHgy9_P4 fiNGmLLHZD9I/_O3nfajffGr""IzDLo`L0t&8$}F鿠Hk^:> stream q /image Do Q endstream endobj 817 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1350 >> stream xG @A`ñ:fC0@U}?~o~iN2O|Ɣٞ7uf&;=Nj6_)3npRɶLM&&_39qI*7٥Yi2R pluf&'5j~< gMƶpM=oeBh24ɉKR.=< gMƶp=og$348UyV8k<5}Tny+BɧLN\MvyV8k<5}Ty?g#aiƞq^5\?gScwI&۞w3'Ԙyj|%d?gScw K7yM~?vj8UyV8k<5}Tny7sB7M]Mvy9qjL;6|Ty?g#aiƞq^5\?gƴa׸I&;w3'Ԙyj|%d?gƴa׸ K7yM~?vj8Uy9qjL;6|Tny7sB7M]Mvy9qjL;6|Ty?g +9v{{l<85 N*7ʹa0eӗr]zxENN _.,{Y4+ sN'5j~<"'NiÆqww3-tv:L{%d?gƴS`7 K7yM~?Vs:&8Uy9qjL;v{Tn)0-tv:L{%d?gƴS`7 K7yM~?Vs:&8Uy9qjL;v{Tn)0-tv:L{%d?gsÜS`7 K7yM~?Vs l28Uy9w:9zTn03s 9r]zxuΝsN.,{Y7?HXa)fW ׏Y0MnpRP`)0Lf@Mvy9w:9f K7y>dM&=Nj6zpxuΝsλenpRP`)0Lf@Mvy9w:9f K7y>dM&=Nj6zpxuΝsλenpRP`)0Lf@Mvy>S`y7]X*Ο!o2ἛM{l<)0ἛM^':L&w|$iؿfendstream endobj 818 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 819 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1454 >> stream x,E[g|2hE])"_P҄vϪ/RɯN7|})"~w*%Ct3ٙdlt37ٜd氁$7ADdgY:h8pD6' M\&lN2KǗy_ 4Vf8"s?yTr?$|n ;Ndgyg $_i84KIf<6LoE6~0~H6ݦ;NdgytmZxlN`nUIf<6LoE6~0~H6ݦ;NdgytmZxlN`nUIf<6}m."s?9 AiensٙhazyGt>6/8I?mZ6>lN2KǗyMcnsٜ 06}` ZM+swD[ f5Dv&j^MV'9aFh1yBDdgY:<u})+oa͹k  gռٙhazyč>41y'9흝>ZM] If<G&4E6~sLr7?$|DcV;Ndgy7~T>Ĕwv"h5}wI+DD6'g:/rOyoG&|wD[ g:g?*xlN]`3]>DJ If<} h-,9`|mcQ!41y'3V<}Ə1^p"Lh4gtCDdsY:<1vd:̼ٜ 06a=ad:a?*yljL0<1=ad:̼ٜfD}>""yɿG&d杷OyK ㇄&! Q9;Ndgy G&dv6%3M$ٜd/sVD>G0oa͹kƏ J`&89L+h[?*ylNu&A4DDXپendstream endobj 820 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 821 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1510 >> stream xmcGcu4 9*ʰ7^s(4gZoo/?~SUWLd}܇SDۜ'oJ~[>ü3GDv&]xUWL[QM5h2gICDD6'y*tנLg󈷰'@}mP?$|J.UTxljL^B7x :t1xlNנLg{""3,/Sf:ӘGE6<kT$w!S:t_G;Ndg<ka3y Nds|Wf:ӘDIfi}y׶~T8^29ٜSꇄe:s38T_Ge.s3/8#^13Hz""9,/S֏ \0g"syCpLgs'3VC{y ppes'9o+aaIODD6'y4鴗Ny ly)o]z\f/ 8ii/G Nds_ x]Le""3,/S!LLwG[Xds6OQ~[2{IxljL^HCN{(V?*E^p"R;b:e.\Ifi}y7~TKo%-,9 P_.K w-_G;Ndg> stream q /image Do Q endstream endobj 823 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1550 >> stream xV cu4سshbX[=^< 믿ዞY*cn{s<~/xg;^|1W{$|3<^_RbٜxS$tx*+<^*n&*g؅E6xS(/'LTΰljLjS%/~]H73lp" pL~&*]$"3,?J /.va9gʿ:Ke9I?3q";Tɿ7K_D /u<.yyL2KǏ)㥲Yva9gJ:Ƌd9I|/Z8){rff)gD6'A ?ifrDDv&RYN, Oyj%_EYJ-{DW ʿ=Ke9I33lp" {ӟ43EJK"";yj/x3d~r]Xds'.ΤMJ9 t t&LNw$txr<^* Iژ\.,9`lGRYE7ƴZ8)Bz6%WlN҇tғ1-CW"";yx,'icZrOy!KeHӒkDv&j>\M2^* Iژ\'98|JIOƴy_L2KǏyu/Ut#=Ieٜ 0~6#_&㥲n9q";&/Ut#=IeٜMээ0!O]"";y$Ke }H;؅E6x Wx,i Aq";&iaBrDDv& !|J7F7Ä>ywL2KǏy/%!LEcٜ 0~6_,Ӂ40=Ndg7exɿUKe },SD6'_ =I}HS=&"_tjendstream endobj 824 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 825 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1555 >> stream xэ,7  hop`LN?hW___ EF,[{yԿX2 lEqٙʙ/(Ge =$V78ͩ/:C>mLe::>*i )6! l?_/QLȲ =Ndg*'K*#i=z l?_2QIg=Ndg*L*:: l?gWM|T7:Dvr3@&>*::l/St}]GiDDK~vGe}]G'wayg P0F3{TNyGe}]G'789~otH9히ȶTvi<Ca]Xds7@0ch=7 l?gN|T4zN1Dvr3N|`4zosٜӯkYJ?}-GJ{"";S٥qzf6;wayg Sډ:F88qO\|`1nHqٜjAciȪ7PDdg*4x1N cf.,9 la_;Q@a'3'x1N:mv)np"s] 7h,46YLe3iW.rٜ 6HovqmF{TΝy9:>0]c'9gܣ1nLe3iW.rٜ 6HovqmF{TΝy9:>0]c'9gܣ1nLe3R4ʫi7J3Tʫi7D6$۴۴{l0>G""pendstream endobj 826 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 827 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1618 >> stream xq$G @ l]kdgϼFHp@CUvӁ\xB}4suoLy6ܮ/M+c{T^vxlMw/Qy%t_"xi`ލ""3Sy^KeS{ux]Xdr'@l~ f;:'Z'237(~<ϋտ⥲)}Ž> lp"}iz+`vnOLKeƏy/M+Gbva9y^-/(`j{TޠC'Ž+Li{T^<տ⥲89 .^0D&NA.+"vUi<x,NpNw@va9y~; fY:+"gʫ?gWST8 f t)HEpY.*"2-Y?g/Lva ?gwT`g8a8My~G fAz.]D&ZA:9{vȴTfix~`g2y؅]Xdr'@lQY]Df6ŏ/LvakY:t?۱""Ry:f):ӆ؅E&xM/b ?gsRt u {Lιd\g2sQoED2KuRt u { L3\*^0K-t9'23*~„aGva9y>O8עx ENŏp>„aG689 $@snΜa_c~Kzhendstream endobj 828 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 829 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1599 >> stream xѭ#7 !AjM5-0`϶,qzsq 0hׯן!nW- 3Lhܥ37 ż'X0a陙ԯ~@*^0B0Älp"S>nF0ϜVWD[ffi<\C3U8/H'@<\CO/q"=3_ճV`tc e9t>tc {uHyZ= &N0fp^vaOyZ=k &N0V(^6\Dzfk<WgxL'9!s|VLPd>y ^0AzgL.,9 6_~׍M=Dzf<_7x$lp"S5>gYDOffi<|zL txįue+x$a8f/x 1I8;H~O7x$a'~铙Y< +U)eCvaOyxv vb陙W<+{H|/ve =V;\D[ffi0vZ[y .,9 6KVOky+O/Dzf<jgxټߙlp"Sx;wfGEDdf/Òڙ!^6owcЇ]Xs ~m jx|;O'>q"=3]_%[lsHԾwpF.> stream q /image Do Q endstream endobj 831 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1588 >> stream xAn$7 P!AΚlsg`qWŪ>dTU>3wCvzks|57ŏ͉Ժ]O78}˙Gtcʬ +)x7~EDd.?)"~lNqz t 6Es]؜B;tf陑/]<xcs U@ӓ Ns}:]ә*wǡ""2rC?6P8=مE:?.~lNq:ljȗ.xf9*w'9s>XL;PKsD*;Bp Hgpy/~lt4Dzf{<ǦH}w5Nlp"SN77 s "'#wig lnVrG'ZwDzf<7LzE8HTЇ^ۉzEz응4xnV= Zqva9f!~R;x=NgFp$?<_ZttN }赝Zt̩K!>>w ṯ t 6A2~x~Z '3#yϖO]]slp"ST:Z^J|/̽ endstream endobj 832 0 obj << /Length 14 >> stream q /image Do Q endstream endobj 833 0 obj << /Pages 834 0 R /Type /Catalog >> endobj 834 0 obj << /Count 1 /Kids [ 1 0 R ] /Type /Pages >> endobj xref 0 835 0000000000 65535 f 0000000019 00000 n 0000007563 00000 n 0000031643 00000 n 0000032057 00000 n 0000032120 00000 n 0000032534 00000 n 0000032597 00000 n 0000033011 00000 n 0000033074 00000 n 0000033488 00000 n 0000033552 00000 n 0000033967 00000 n 0000034031 00000 n 0000034446 00000 n 0000034510 00000 n 0000034925 00000 n 0000034989 00000 n 0000035404 00000 n 0000035468 00000 n 0000035883 00000 n 0000035947 00000 n 0000036362 00000 n 0000036426 00000 n 0000036841 00000 n 0000036905 00000 n 0000037320 00000 n 0000037384 00000 n 0000037799 00000 n 0000037863 00000 n 0000038278 00000 n 0000038342 00000 n 0000038757 00000 n 0000038821 00000 n 0000039236 00000 n 0000039300 00000 n 0000039715 00000 n 0000039779 00000 n 0000040194 00000 n 0000040258 00000 n 0000040673 00000 n 0000040737 00000 n 0000041152 00000 n 0000041216 00000 n 0000041631 00000 n 0000041695 00000 n 0000042110 00000 n 0000042174 00000 n 0000042589 00000 n 0000042653 00000 n 0000043068 00000 n 0000043132 00000 n 0000043547 00000 n 0000043611 00000 n 0000044026 00000 n 0000044090 00000 n 0000044798 00000 n 0000044862 00000 n 0000045907 00000 n 0000045971 00000 n 0000047704 00000 n 0000047768 00000 n 0000049915 00000 n 0000049979 00000 n 0000052136 00000 n 0000052200 00000 n 0000054303 00000 n 0000054367 00000 n 0000056472 00000 n 0000056536 00000 n 0000057636 00000 n 0000057700 00000 n 0000058300 00000 n 0000058364 00000 n 0000058834 00000 n 0000058898 00000 n 0000059313 00000 n 0000059377 00000 n 0000059792 00000 n 0000059856 00000 n 0000060271 00000 n 0000060335 00000 n 0000060750 00000 n 0000060814 00000 n 0000061229 00000 n 0000061293 00000 n 0000061708 00000 n 0000061772 00000 n 0000062187 00000 n 0000062251 00000 n 0000062666 00000 n 0000062730 00000 n 0000063145 00000 n 0000063209 00000 n 0000063624 00000 n 0000063688 00000 n 0000065148 00000 n 0000065212 00000 n 0000068812 00000 n 0000068876 00000 n 0000073494 00000 n 0000073559 00000 n 0000078072 00000 n 0000078137 00000 n 0000082290 00000 n 0000082355 00000 n 0000083016 00000 n 0000083081 00000 n 0000083526 00000 n 0000083591 00000 n 0000084029 00000 n 0000084094 00000 n 0000085724 00000 n 0000085789 00000 n 0000089800 00000 n 0000089865 00000 n 0000094392 00000 n 0000094457 00000 n 0000099051 00000 n 0000099116 00000 n 0000102379 00000 n 0000102444 00000 n 0000102993 00000 n 0000103058 00000 n 0000103474 00000 n 0000103539 00000 n 0000104181 00000 n 0000104246 00000 n 0000105938 00000 n 0000106003 00000 n 0000110293 00000 n 0000110358 00000 n 0000114699 00000 n 0000114764 00000 n 0000119086 00000 n 0000119151 00000 n 0000121806 00000 n 0000121871 00000 n 0000122435 00000 n 0000122500 00000 n 0000122916 00000 n 0000122981 00000 n 0000123845 00000 n 0000123910 00000 n 0000126092 00000 n 0000126157 00000 n 0000130526 00000 n 0000130591 00000 n 0000135104 00000 n 0000135169 00000 n 0000139613 00000 n 0000139678 00000 n 0000141530 00000 n 0000141595 00000 n 0000142163 00000 n 0000142228 00000 n 0000142644 00000 n 0000142709 00000 n 0000143698 00000 n 0000143763 00000 n 0000146412 00000 n 0000146477 00000 n 0000150881 00000 n 0000150946 00000 n 0000155235 00000 n 0000155300 00000 n 0000159779 00000 n 0000159844 00000 n 0000160931 00000 n 0000160996 00000 n 0000161454 00000 n 0000161519 00000 n 0000161935 00000 n 0000162000 00000 n 0000163378 00000 n 0000163443 00000 n 0000166656 00000 n 0000166721 00000 n 0000171239 00000 n 0000171304 00000 n 0000175752 00000 n 0000175817 00000 n 0000180103 00000 n 0000180168 00000 n 0000181032 00000 n 0000181097 00000 n 0000181567 00000 n 0000181632 00000 n 0000182048 00000 n 0000182113 00000 n 0000183243 00000 n 0000183308 00000 n 0000187124 00000 n 0000187189 00000 n 0000191598 00000 n 0000191663 00000 n 0000196045 00000 n 0000196110 00000 n 0000199973 00000 n 0000200038 00000 n 0000200830 00000 n 0000200895 00000 n 0000201311 00000 n 0000201376 00000 n 0000201900 00000 n 0000201965 00000 n 0000203628 00000 n 0000203693 00000 n 0000207919 00000 n 0000207984 00000 n 0000212307 00000 n 0000212372 00000 n 0000216715 00000 n 0000216780 00000 n 0000219416 00000 n 0000219481 00000 n 0000219992 00000 n 0000220057 00000 n 0000220473 00000 n 0000220538 00000 n 0000220954 00000 n 0000221019 00000 n 0000221435 00000 n 0000221500 00000 n 0000221916 00000 n 0000221981 00000 n 0000222397 00000 n 0000222462 00000 n 0000222878 00000 n 0000222943 00000 n 0000223359 00000 n 0000223424 00000 n 0000223840 00000 n 0000223905 00000 n 0000224321 00000 n 0000224386 00000 n 0000225435 00000 n 0000225500 00000 n 0000228131 00000 n 0000228196 00000 n 0000232655 00000 n 0000232720 00000 n 0000237352 00000 n 0000237417 00000 n 0000242019 00000 n 0000242084 00000 n 0000243501 00000 n 0000243566 00000 n 0000244116 00000 n 0000244181 00000 n 0000244597 00000 n 0000244662 00000 n 0000245883 00000 n 0000245948 00000 n 0000249024 00000 n 0000249089 00000 n 0000253495 00000 n 0000253560 00000 n 0000257921 00000 n 0000257986 00000 n 0000262467 00000 n 0000262532 00000 n 0000263252 00000 n 0000263317 00000 n 0000263779 00000 n 0000263844 00000 n 0000264260 00000 n 0000264325 00000 n 0000265478 00000 n 0000265543 00000 n 0000268953 00000 n 0000269018 00000 n 0000273411 00000 n 0000273476 00000 n 0000277958 00000 n 0000278023 00000 n 0000281709 00000 n 0000281774 00000 n 0000282441 00000 n 0000282506 00000 n 0000282940 00000 n 0000283005 00000 n 0000283491 00000 n 0000283556 00000 n 0000284753 00000 n 0000284818 00000 n 0000288848 00000 n 0000288913 00000 n 0000293180 00000 n 0000293245 00000 n 0000297549 00000 n 0000297614 00000 n 0000300666 00000 n 0000300731 00000 n 0000301292 00000 n 0000301357 00000 n 0000301773 00000 n 0000301838 00000 n 0000302422 00000 n 0000302487 00000 n 0000303876 00000 n 0000303941 00000 n 0000308395 00000 n 0000308460 00000 n 0000312904 00000 n 0000312969 00000 n 0000317488 00000 n 0000317553 00000 n 0000319928 00000 n 0000319993 00000 n 0000320552 00000 n 0000320617 00000 n 0000321033 00000 n 0000321098 00000 n 0000322088 00000 n 0000322153 00000 n 0000324609 00000 n 0000324674 00000 n 0000329049 00000 n 0000329114 00000 n 0000333604 00000 n 0000333669 00000 n 0000338016 00000 n 0000338081 00000 n 0000339759 00000 n 0000339824 00000 n 0000340334 00000 n 0000340399 00000 n 0000340815 00000 n 0000340880 00000 n 0000342055 00000 n 0000342120 00000 n 0000345072 00000 n 0000345137 00000 n 0000349587 00000 n 0000349652 00000 n 0000354241 00000 n 0000354306 00000 n 0000358799 00000 n 0000358864 00000 n 0000359739 00000 n 0000359804 00000 n 0000360307 00000 n 0000360372 00000 n 0000360788 00000 n 0000360853 00000 n 0000361944 00000 n 0000362009 00000 n 0000365369 00000 n 0000365434 00000 n 0000369975 00000 n 0000370040 00000 n 0000374491 00000 n 0000374556 00000 n 0000378736 00000 n 0000378801 00000 n 0000379650 00000 n 0000379715 00000 n 0000380168 00000 n 0000380233 00000 n 0000380649 00000 n 0000380714 00000 n 0000381566 00000 n 0000381631 00000 n 0000383811 00000 n 0000383876 00000 n 0000386260 00000 n 0000386325 00000 n 0000388835 00000 n 0000388900 00000 n 0000390689 00000 n 0000390754 00000 n 0000391278 00000 n 0000391343 00000 n 0000391759 00000 n 0000391824 00000 n 0000392240 00000 n 0000392305 00000 n 0000392721 00000 n 0000392786 00000 n 0000393202 00000 n 0000393267 00000 n 0000393683 00000 n 0000393748 00000 n 0000394164 00000 n 0000394229 00000 n 0000394645 00000 n 0000394710 00000 n 0000395126 00000 n 0000395191 00000 n 0000395607 00000 n 0000395672 00000 n 0000396504 00000 n 0000396569 00000 n 0000398768 00000 n 0000398833 00000 n 0000403150 00000 n 0000403215 00000 n 0000407585 00000 n 0000407650 00000 n 0000411968 00000 n 0000412033 00000 n 0000413636 00000 n 0000413701 00000 n 0000414184 00000 n 0000414249 00000 n 0000414665 00000 n 0000414730 00000 n 0000415825 00000 n 0000415890 00000 n 0000418623 00000 n 0000418688 00000 n 0000423198 00000 n 0000423263 00000 n 0000427841 00000 n 0000427906 00000 n 0000432523 00000 n 0000432588 00000 n 0000433901 00000 n 0000433966 00000 n 0000434474 00000 n 0000434539 00000 n 0000434955 00000 n 0000435020 00000 n 0000436208 00000 n 0000436273 00000 n 0000439259 00000 n 0000439324 00000 n 0000443582 00000 n 0000443647 00000 n 0000447723 00000 n 0000447788 00000 n 0000451759 00000 n 0000451824 00000 n 0000452433 00000 n 0000452498 00000 n 0000452933 00000 n 0000452998 00000 n 0000453414 00000 n 0000453479 00000 n 0000455083 00000 n 0000455148 00000 n 0000458969 00000 n 0000459034 00000 n 0000463460 00000 n 0000463525 00000 n 0000467960 00000 n 0000468025 00000 n 0000471791 00000 n 0000471856 00000 n 0000472623 00000 n 0000472688 00000 n 0000473104 00000 n 0000473169 00000 n 0000473674 00000 n 0000473739 00000 n 0000475275 00000 n 0000475340 00000 n 0000479403 00000 n 0000479468 00000 n 0000483802 00000 n 0000483867 00000 n 0000488308 00000 n 0000488373 00000 n 0000491002 00000 n 0000491067 00000 n 0000491659 00000 n 0000491724 00000 n 0000492140 00000 n 0000492205 00000 n 0000492918 00000 n 0000492983 00000 n 0000494794 00000 n 0000494859 00000 n 0000499210 00000 n 0000499275 00000 n 0000503715 00000 n 0000503780 00000 n 0000508253 00000 n 0000508318 00000 n 0000510629 00000 n 0000510694 00000 n 0000511264 00000 n 0000511329 00000 n 0000511745 00000 n 0000511810 00000 n 0000512343 00000 n 0000512408 00000 n 0000513401 00000 n 0000513466 00000 n 0000515111 00000 n 0000515176 00000 n 0000516784 00000 n 0000516849 00000 n 0000518566 00000 n 0000518631 00000 n 0000519378 00000 n 0000519443 00000 n 0000519898 00000 n 0000519963 00000 n 0000520379 00000 n 0000520444 00000 n 0000520860 00000 n 0000520925 00000 n 0000521341 00000 n 0000521406 00000 n 0000521822 00000 n 0000521887 00000 n 0000522303 00000 n 0000522368 00000 n 0000522784 00000 n 0000522849 00000 n 0000523265 00000 n 0000523330 00000 n 0000523746 00000 n 0000523811 00000 n 0000524227 00000 n 0000524292 00000 n 0000526076 00000 n 0000526141 00000 n 0000529802 00000 n 0000529867 00000 n 0000534428 00000 n 0000534493 00000 n 0000539030 00000 n 0000539095 00000 n 0000542793 00000 n 0000542858 00000 n 0000543464 00000 n 0000543529 00000 n 0000543959 00000 n 0000544024 00000 n 0000544494 00000 n 0000544559 00000 n 0000545775 00000 n 0000545840 00000 n 0000550050 00000 n 0000550115 00000 n 0000554468 00000 n 0000554533 00000 n 0000558973 00000 n 0000559038 00000 n 0000562160 00000 n 0000562225 00000 n 0000562908 00000 n 0000562973 00000 n 0000563389 00000 n 0000563454 00000 n 0000564056 00000 n 0000564121 00000 n 0000565586 00000 n 0000565651 00000 n 0000570047 00000 n 0000570112 00000 n 0000574700 00000 n 0000574765 00000 n 0000579409 00000 n 0000579474 00000 n 0000581888 00000 n 0000581953 00000 n 0000582582 00000 n 0000582647 00000 n 0000583063 00000 n 0000583128 00000 n 0000584101 00000 n 0000584166 00000 n 0000586482 00000 n 0000586547 00000 n 0000590777 00000 n 0000590842 00000 n 0000595201 00000 n 0000595266 00000 n 0000599625 00000 n 0000599690 00000 n 0000601273 00000 n 0000601338 00000 n 0000601804 00000 n 0000601869 00000 n 0000602285 00000 n 0000602350 00000 n 0000603492 00000 n 0000603557 00000 n 0000606333 00000 n 0000606398 00000 n 0000610694 00000 n 0000610759 00000 n 0000615145 00000 n 0000615210 00000 n 0000619621 00000 n 0000619686 00000 n 0000620559 00000 n 0000620624 00000 n 0000621123 00000 n 0000621188 00000 n 0000621604 00000 n 0000621669 00000 n 0000622488 00000 n 0000622553 00000 n 0000624499 00000 n 0000624564 00000 n 0000627178 00000 n 0000627243 00000 n 0000629863 00000 n 0000629928 00000 n 0000632387 00000 n 0000632452 00000 n 0000633022 00000 n 0000633087 00000 n 0000633525 00000 n 0000633590 00000 n 0000634006 00000 n 0000634071 00000 n 0000634487 00000 n 0000634552 00000 n 0000634968 00000 n 0000635033 00000 n 0000635449 00000 n 0000635514 00000 n 0000635930 00000 n 0000635995 00000 n 0000636411 00000 n 0000636476 00000 n 0000636892 00000 n 0000636957 00000 n 0000637373 00000 n 0000637438 00000 n 0000638047 00000 n 0000638112 00000 n 0000639755 00000 n 0000639820 00000 n 0000644239 00000 n 0000644304 00000 n 0000648684 00000 n 0000648749 00000 n 0000653098 00000 n 0000653163 00000 n 0000655804 00000 n 0000655869 00000 n 0000656402 00000 n 0000656467 00000 n 0000656883 00000 n 0000656948 00000 n 0000657761 00000 n 0000657826 00000 n 0000659962 00000 n 0000660027 00000 n 0000664451 00000 n 0000664516 00000 n 0000668986 00000 n 0000669051 00000 n 0000673597 00000 n 0000673662 00000 n 0000675550 00000 n 0000675615 00000 n 0000676139 00000 n 0000676204 00000 n 0000676620 00000 n 0000676685 00000 n 0000677542 00000 n 0000677607 00000 n 0000680063 00000 n 0000680128 00000 n 0000684356 00000 n 0000684421 00000 n 0000688786 00000 n 0000688851 00000 n 0000693134 00000 n 0000693199 00000 n 0000694403 00000 n 0000694468 00000 n 0000694967 00000 n 0000695032 00000 n 0000695448 00000 n 0000695513 00000 n 0000696682 00000 n 0000696747 00000 n 0000699915 00000 n 0000699980 00000 n 0000704459 00000 n 0000704524 00000 n 0000709156 00000 n 0000709221 00000 n 0000713554 00000 n 0000713619 00000 n 0000714306 00000 n 0000714371 00000 n 0000714813 00000 n 0000714878 00000 n 0000715294 00000 n 0000715359 00000 n 0000716938 00000 n 0000717003 00000 n 0000721064 00000 n 0000721129 00000 n 0000725636 00000 n 0000725701 00000 n 0000730314 00000 n 0000730379 00000 n 0000734198 00000 n 0000734263 00000 n 0000734905 00000 n 0000734970 00000 n 0000735386 00000 n 0000735451 00000 n 0000735995 00000 n 0000736060 00000 n 0000737935 00000 n 0000738000 00000 n 0000742419 00000 n 0000742484 00000 n 0000747084 00000 n 0000747149 00000 n 0000751651 00000 n 0000751716 00000 n 0000754538 00000 n 0000754603 00000 n 0000755238 00000 n 0000755303 00000 n 0000755719 00000 n 0000755784 00000 n 0000756425 00000 n 0000756490 00000 n 0000758204 00000 n 0000758269 00000 n 0000762535 00000 n 0000762600 00000 n 0000767016 00000 n 0000767081 00000 n 0000771375 00000 n 0000771440 00000 n 0000773608 00000 n 0000773673 00000 n 0000774220 00000 n 0000774285 00000 n 0000774701 00000 n 0000774766 00000 n 0000775182 00000 n 0000775247 00000 n 0000775663 00000 n 0000775728 00000 n 0000776144 00000 n 0000776209 00000 n 0000776625 00000 n 0000776690 00000 n 0000777106 00000 n 0000777171 00000 n 0000777587 00000 n 0000777652 00000 n 0000778068 00000 n 0000778133 00000 n 0000778549 00000 n 0000778614 00000 n 0000779617 00000 n 0000779682 00000 n 0000780882 00000 n 0000780947 00000 n 0000782147 00000 n 0000782212 00000 n 0000783412 00000 n 0000783477 00000 n 0000784677 00000 n 0000784742 00000 n 0000785942 00000 n 0000786007 00000 n 0000787207 00000 n 0000787272 00000 n 0000788472 00000 n 0000788537 00000 n 0000789755 00000 n 0000789820 00000 n 0000791508 00000 n 0000791573 00000 n 0000793469 00000 n 0000793534 00000 n 0000795339 00000 n 0000795404 00000 n 0000797134 00000 n 0000797199 00000 n 0000798958 00000 n 0000799023 00000 n 0000800813 00000 n 0000800878 00000 n 0000802615 00000 n 0000802680 00000 n 0000804394 00000 n 0000804459 00000 n 0000806153 00000 n 0000806218 00000 n 0000807808 00000 n 0000807873 00000 n 0000809387 00000 n 0000809452 00000 n 0000810987 00000 n 0000811052 00000 n 0000812625 00000 n 0000812690 00000 n 0000814237 00000 n 0000814302 00000 n 0000815835 00000 n 0000815900 00000 n 0000817426 00000 n 0000817491 00000 n 0000819041 00000 n 0000819106 00000 n 0000820162 00000 n 0000820227 00000 n 0000821768 00000 n 0000821833 00000 n 0000823363 00000 n 0000823428 00000 n 0000824952 00000 n 0000825017 00000 n 0000826571 00000 n 0000826636 00000 n 0000828211 00000 n 0000828276 00000 n 0000829814 00000 n 0000829879 00000 n 0000831400 00000 n 0000831465 00000 n 0000833090 00000 n 0000833155 00000 n 0000834836 00000 n 0000834901 00000 n 0000836622 00000 n 0000836687 00000 n 0000838413 00000 n 0000838478 00000 n 0000840267 00000 n 0000840332 00000 n 0000842102 00000 n 0000842167 00000 n 0000843926 00000 n 0000843991 00000 n 0000844044 00000 n trailer << /Root 833 0 R /Size 835 /ID [<8f7009034ee3f95249ad4cbc79842569><31415926535897932384626433832795>] >> startxref 844105 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/eof-in-inline-image.pdf0000644000064100006410000000154613247541377020004 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet 6 0 R >> /Type /Page >> endobj 4 0 obj << /Length 139 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET % EOF in inline image BI /CS /G/W 1/H 1/BPC 8/F/Fl/DP<> ID xc endstream endobj 5 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 6 0 obj [ /PDF /Text ] endobj xref 0 7 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000266 00000 n 0000000455 00000 n 0000000562 00000 n trailer << /Root 1 0 R /Size 7 /ID [] >> startxref 592 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/indirect-r-arg.out0000644000064100006410000000071013247541377017130 0ustar ejbejbWARNING: indirect-r-arg.pdf (object 1 0, offset 76): unknown token while reading object; treating as string WARNING: indirect-r-arg.pdf (object 1 0, offset 62): expected dictionary key but found non-name object; inserting key /QPDFFake1 WARNING: indirect-r-arg.pdf (object 1 0, offset 62): expected dictionary key but found non-name object; inserting key /QPDFFake2 checking indirect-r-arg.pdf PDF Version: 1.3 File is not encrypted File is not linearized qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.2.c-check0000644000064100006410000000005013247541377021355 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.5.check0000644000064100006410000000026213247541377017473 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/bad34.out0000644000064100006410000000027213247541377015221 0ustar ejbejbWARNING: bad34.pdf (object 4 0, offset 322): expected n n obj /QTest is implicit /QTest is indirect and has type null (2) /QTest is null unparse: 4 0 R unparseResolved: null test 0 done qpdf-8.0.2/qpdf/qtest/qpdf/good11.qdf0000644000064100006410000000216513247541377015364 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj %% Original object ID: 6 0 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 5 0 7 0 obj [ /PDF /Text ] endobj xref 0 8 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000242 00000 n 0000000484 00000 n 0000000583 00000 n 0000000629 00000 n 0000000774 00000 n trailer << /QTest << /a (a) >> /Root 1 0 R /Size 8 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 809 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.6.c-check0000644000064100006410000000005013247541377017707 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/enc-long-password.pdf0000644000064100006410000004137013247541377017634 0ustar ejbejb%PDF-1.4 % 91 0 obj << /Linearized 1 /O 94 /H [ 1334 211 ] /L 17144 /E 4183 /N 30 /T 15206 >> endobj xref 91 22 0000000016 00000 n 0000000805 00000 n 0000001179 00000 n 0000001545 00000 n 0000001740 00000 n 0000001820 00000 n 0000002009 00000 n 0000002150 00000 n 0000002319 00000 n 0000002495 00000 n 0000002661 00000 n 0000002822 00000 n 0000003005 00000 n 0000003207 00000 n 0000003357 00000 n 0000003522 00000 n 0000003688 00000 n 0000003820 00000 n 0000003841 00000 n 0000003957 00000 n 0000001334 00000 n 0000001524 00000 n trailer << /Size 113 /Info 89 0 R /Encrypt 93 0 R /Root 92 0 R /Prev 15196 /ID[<66d36a30a97e0f16f39955c6221e0c2a><8aa2772394e4725fca682ceb07138284>] >> startxref 0 %%EOF 92 0 obj << /PageLabels << /Nums [ 0 << /P ()>> 2 << /S /r /St 1 >> 7 << /P ()>> 9 << /S /r /St 6 >> 11 << /P ()>> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P ()>> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /Pages 88 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 95 0 R /Metadata 90 0 R >> endobj 93 0 obj << /Filter /Standard /R 3 /O (Hrs\\="P.Gsи!@ ) /U (xv;sGb /$FR) /P -3096 /V 2 /Length 128 >> endobj 111 0 obj << /S 145 /O 189 /Filter /FlateDecode /Length 112 0 R >> stream 'tyNQko4ADN_ƿ~hm`/O%qC$$F!oUC 0krUE7zBp endstream endobj 112 0 obj 96 endobj 94 0 obj << /Contents 107 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 95 0 obj << /Type /Outlines /First 96 0 R /Last 97 0 R /Count 6 >> endobj 96 0 obj << /Type /Outline /Title (h,-2&c|.k-d7j) /Parent 95 0 R /Count 4 /Next 97 0 R /First 98 0 R /Last 99 0 R /Dest [ 13 0 R /XYZ null null null ] >> endobj 97 0 obj << /Type /Outline /Title (|"wǾ]/n5G5Cb$x/T) /Parent 95 0 R /Prev 96 0 R /Dest [ 43 0 R /XYZ 66 756 3 ] >> endobj 98 0 obj << /Type /Outline /Title (z@SjPf \rA$\)) /Parent 96 0 R /Next 99 0 R /First 102 0 R /Last 103 0 R /Count -3 /Dest [ 31 0 R /Fit ] >> endobj 99 0 obj << /Type /Outline /Title (C]}۝\n|ئMr,@) /Parent 96 0 R /Prev 98 0 R /First 100 0 R /Last 101 0 R /Count 2 /Dest [ 37 0 R /FitH 792 ] >> endobj 100 0 obj << /Type /Outline /Title ('\nX-1I63Fu\rlS*| Bf:rE) /Parent 99 0 R /Next 101 0 R /Dest [ 1 0 R /FitR 66 714 180 770 ] >> endobj 101 0 obj << /Type /Outline /Title (r1pBR{OIEK]Dʿ|$M) /Parent 99 0 R /Prev 100 0 R /Dest [ 94 0 R /XYZ null null null ] >> endobj 102 0 obj << /Type /Outline /Title (5yv"y-x%eբ!##&oh) /Parent 98 0 R /Next 103 0 R /First 105 0 R /Last 106 0 R /Count -2 /Dest [ 34 0 R /FitV 100 ] >> endobj 103 0 obj << /Type /Outline /Title (5{YIojF,Vk6ĵ6Hƞ͐) /Parent 98 0 R /Prev 102 0 R /First 104 0 R /Last 104 0 R /Count 1 /Dest [ 34 0 R /XYZ null null null ] >> endobj 104 0 obj << /Type /Outline /Title (oar,T2V`\)LYUK﹦{΋iIq5>) /Parent 103 0 R /Dest [ 64 0 R /XYZ null null null ] >> endobj 105 0 obj << /Type /Outline /Title (*x0yiK`~+UX6u[ \)) /Parent 102 0 R /Next 106 0 R /Dest [ 52 0 R /XYZ null null null ] >> endobj 106 0 obj << /Type /Outline /Title (w>B#v!q3u,Z\)co\)⦓) /Parent 102 0 R /Prev 105 0 R /Dest [ 55 0 R /XYZ null null null ] >> endobj 107 0 obj << /Filter /FlateDecode /Length 108 0 R >> stream g UvX煋ߑ.|M҅9<yaskYu  endstream endobj 108 0 obj 52 endobj 109 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 110 0 obj [ /PDF /Text ] endobj 1 0 obj << /Contents 2 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 2 0 obj << /Filter /FlateDecode /Length 3 0 R >> stream #A4v}9"/B7P&Sd<kUk1p4QeJ endstream endobj 3 0 obj 52 endobj 4 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 5 0 obj << /Filter /FlateDecode /Length 6 0 R >> stream :5) C9-5|b03r""|ȵMA=i endstream endobj 6 0 obj 52 endobj 7 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 8 0 obj << /Filter /FlateDecode /Length 9 0 R >> stream SaUWOKN;I*3BNe4цX@F: endstream endobj 9 0 obj 52 endobj 10 0 obj << /Contents 11 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 11 0 obj << /Filter /FlateDecode /Length 12 0 R >> stream hFFkxt V{!WR_ 4&Zhe^~ >1 endstream endobj 12 0 obj 52 endobj 13 0 obj << /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 14 0 obj << /Filter /FlateDecode /Length 15 0 R >> stream 騶t~Èkӣy U:ߧ*++jw;~ZxT endstream endobj 15 0 obj 52 endobj 16 0 obj << /Contents 17 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 17 0 obj << /Filter /FlateDecode /Length 18 0 R >> stream 6u}EX4iq\\5)9`T~1 8T endstream endobj 18 0 obj 52 endobj 19 0 obj << /Contents 20 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 20 0 obj << /Filter /FlateDecode /Length 21 0 R >> stream 沈ܙ%NؔٓF aLó+}tpcţ4f} endstream endobj 21 0 obj 52 endobj 22 0 obj << /Contents 23 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 23 0 obj << /Filter /FlateDecode /Length 24 0 R >> stream WGJ}h[d|OՐmfC4%V&ׇOzi endstream endobj 24 0 obj 52 endobj 25 0 obj << /Contents 26 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 26 0 obj << /Filter /FlateDecode /Length 27 0 R >> stream $DYO~yoy[~(+6pqrEWq{ endstream endobj 27 0 obj 52 endobj 28 0 obj << /Contents 29 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 29 0 obj << /Filter /FlateDecode /Length 30 0 R >> stream I…-Q?>Rɋ͍D@q;&0TOH1C3.)% endstream endobj 30 0 obj 53 endobj 31 0 obj << /Contents 32 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 32 0 obj << /Filter /FlateDecode /Length 33 0 R >> stream =f4 x[]a")iEq+Q7ФUYCY endstream endobj 33 0 obj 53 endobj 34 0 obj << /Contents 35 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 35 0 obj << /Filter /FlateDecode /Length 36 0 R >> stream @9.? 2>Jŋ6= m9)`7BtЮ& endstream endobj 36 0 obj 53 endobj 37 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 38 0 obj << /Filter /FlateDecode /Length 39 0 R >> stream (yN&f()eZZc%M2"$*Jin ) SM endstream endobj 39 0 obj 53 endobj 40 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 41 0 obj << /Filter /FlateDecode /Length 42 0 R >> stream üpZLW SXh#6mg1J9Mn\{Ɏ+ endstream endobj 42 0 obj 53 endobj 43 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 44 0 obj << /Filter /FlateDecode /Length 45 0 R >> stream O x̟s*&xDbɁC[QM2X endstream endobj 45 0 obj 53 endobj 46 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 47 0 obj << /Filter /FlateDecode /Length 48 0 R >> stream >B>7,E,*J!>!F|\g=[6Q4 endstream endobj 48 0 obj 53 endobj 49 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 50 0 obj << /Filter /FlateDecode /Length 51 0 R >> stream 匉P*BT##'N>803F6wH_"eQq)< endstream endobj 51 0 obj 53 endobj 52 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 53 0 obj << /Filter /FlateDecode /Length 54 0 R >> stream ,+sT[fA6LQLێ^ȓv'?b endstream endobj 54 0 obj 53 endobj 55 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 56 0 obj << /Filter /FlateDecode /Length 57 0 R >> stream B1/Cê ьW94/jg3a]043:M endstream endobj 57 0 obj 53 endobj 58 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 59 0 obj << /Filter /FlateDecode /Length 60 0 R >> stream Fd8D`9h2L2X?c4F{!)%ߒz] IiQ endstream endobj 60 0 obj 53 endobj 61 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 62 0 obj << /Filter /FlateDecode /Length 63 0 R >> stream V [ jO@HMʺb RE(AQ;%k8 endstream endobj 63 0 obj 53 endobj 64 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 65 0 obj << /Filter /FlateDecode /Length 66 0 R >> stream >hKx5z<+vp|CSpAuc[= endstream endobj 66 0 obj 53 endobj 67 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 68 0 obj << /Filter /FlateDecode /Length 69 0 R >> stream u@w$]m,bWªe1ˑO?l G> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 71 0 obj << /Filter /FlateDecode /Length 72 0 R >> stream ֔r3}STxCbk߄ ',URgQ endstream endobj 72 0 obj 52 endobj 73 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 74 0 obj << /Filter /FlateDecode /Length 75 0 R >> stream VAK`ek,M]Zr0mƣ](Eq endstream endobj 75 0 obj 53 endobj 76 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 77 0 obj << /Filter /FlateDecode /Length 78 0 R >> stream "=bd?"bfWmmw.c_FR.RSjnjR endstream endobj 78 0 obj 53 endobj 79 0 obj << /Contents 80 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 80 0 obj << /Filter /FlateDecode /Length 81 0 R >> stream ר"ʓF[ n񛂧J%x'Ѭ:PU0a endstream endobj 81 0 obj 53 endobj 82 0 obj << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 83 0 obj << /Filter /FlateDecode /Length 84 0 R >> stream ]|Jb:"@+I k*Sp2G㚆lVlqE"0M endstream endobj 84 0 obj 53 endobj 85 0 obj << /Contents 86 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 86 0 obj << /Filter /FlateDecode /Length 87 0 R >> stream lɷ(w2w N|"4CtjB8E95ځ.ZД] endstream endobj 87 0 obj 53 endobj 88 0 obj << /Count 30 /Kids [ 94 0 R 1 0 R 4 0 R 7 0 R 10 0 R 13 0 R 16 0 R 19 0 R 22 0 R 25 0 R 28 0 R 31 0 R 34 0 R 37 0 R 40 0 R 43 0 R 46 0 R 49 0 R 52 0 R 55 0 R 58 0 R 61 0 R 64 0 R 67 0 R 70 0 R 73 0 R 76 0 R 79 0 R 82 0 R 85 0 R ] /Type /Pages >> endobj 89 0 obj << /ModDate (Jt\rYڞ'p؁lO) /CreationDate (Jt\rYڐ&z߁lO) >> endobj 90 0 obj << /Type /Metadata /Subtype /XML /Length 770 >> stream PR3Y>Î,@l'ɝ"Di=(Q_BgqMcẏKI>-QVo\dmu|FNU>j$/nT'_USQL)=(s.9wi (.S͵.H38CF~{9+Oe/ ߶NvjhDQ P d׳=8ˋ8 aFRsME>P; zDGΘBX=?w Ds\& -3YY-kCM7~XiG G&'P]ZK9箓XsYG:zGgze]k)KҘ$1Qa`㗾D~!}yKAROGMFkZIpn:̭f]JC*1;@݃g81%2``k$AUjQJ]TQP!VlH:OqK-rJ.7/ZN>?Ǩ e}T7ΦA endstream endobj xref 0 91 0000000000 65535 f 0000003991 00000 n 0000004183 00000 n 0000004311 00000 n 0000004330 00000 n 0000004522 00000 n 0000004650 00000 n 0000004669 00000 n 0000004861 00000 n 0000004989 00000 n 0000005008 00000 n 0000005202 00000 n 0000005332 00000 n 0000005352 00000 n 0000005546 00000 n 0000005676 00000 n 0000005696 00000 n 0000005890 00000 n 0000006020 00000 n 0000006040 00000 n 0000006234 00000 n 0000006364 00000 n 0000006384 00000 n 0000006578 00000 n 0000006708 00000 n 0000006728 00000 n 0000006922 00000 n 0000007052 00000 n 0000007072 00000 n 0000007266 00000 n 0000007397 00000 n 0000007417 00000 n 0000007611 00000 n 0000007742 00000 n 0000007762 00000 n 0000007956 00000 n 0000008087 00000 n 0000008107 00000 n 0000008301 00000 n 0000008432 00000 n 0000008452 00000 n 0000008646 00000 n 0000008777 00000 n 0000008797 00000 n 0000008991 00000 n 0000009122 00000 n 0000009142 00000 n 0000009336 00000 n 0000009467 00000 n 0000009487 00000 n 0000009681 00000 n 0000009812 00000 n 0000009832 00000 n 0000010026 00000 n 0000010157 00000 n 0000010177 00000 n 0000010371 00000 n 0000010502 00000 n 0000010522 00000 n 0000010716 00000 n 0000010847 00000 n 0000010867 00000 n 0000011061 00000 n 0000011192 00000 n 0000011212 00000 n 0000011406 00000 n 0000011537 00000 n 0000011557 00000 n 0000011751 00000 n 0000011882 00000 n 0000011902 00000 n 0000012096 00000 n 0000012226 00000 n 0000012246 00000 n 0000012440 00000 n 0000012571 00000 n 0000012591 00000 n 0000012785 00000 n 0000012916 00000 n 0000012936 00000 n 0000013130 00000 n 0000013261 00000 n 0000013281 00000 n 0000013475 00000 n 0000013606 00000 n 0000013626 00000 n 0000013820 00000 n 0000013951 00000 n 0000013971 00000 n 0000014241 00000 n 0000014342 00000 n trailer << /Size 91 /ID[<66d36a30a97e0f16f39955c6221e0c2a><8aa2772394e4725fca682ceb07138284>] >> startxref 173 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.5-ogen.check0000644000064100006410000000026213247541377022073 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/large_file-check-ostream.out0000644000064100006410000000024313247541377021136 0ustar ejbejbPDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.2-ogen.check0000644000064100006410000000026213247541377022070 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/bad19.pdf0000644000064100006410000000141213247541377015163 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /Something > >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/badlin1.out0000644000064100006410000001551013247541377015637 0ustar ejbejbERROR: first page object (/O) mismatch ERROR: space before first xref item (/T) mismatch (computed = 11777; file = 11771 WARNING: end of first page section (/E) mismatch: /E = 1827; computed = 3889..3891 WARNING: page 0 has shared identifier entries WARNING: page 0: shared object 62: in hint table but not computed list badlin1.pdf: linearization data: file_size: 13103 first_page_object: 63 first_page_end: 1827 npages: 30 xref_zero_offset: 11770 first_page: 0 H_offset: 1211 H_length: 203 Page Offsets Hint Table min_nobjects: 2 first_page_offset: 1414 nbits_delta_nobjects: 4 min_page_length: 259 nbits_delta_page_length: 12 min_content_offset: 0 nbits_delta_content_offset: 0 min_content_length: 0 nbits_delta_content_length: 12 nbits_nshared_objects: 2 nbits_shared_identifier: 2 nbits_shared_numerator: 4 shared_denominator: 8 Page 0: nobjects: 16 length: 2477 content_offset: 0 content_length: 2218 nshared_objects: 2 identifier 0: 0 numerator 0: 0 identifier 1: 0 numerator 1: 0 Page 1: nobjects: 2 length: 259 content_offset: 0 content_length: 0 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 2: nobjects: 2 length: 259 content_offset: 0 content_length: 0 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 3: nobjects: 2 length: 259 content_offset: 0 content_length: 0 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 4: nobjects: 2 length: 259 content_offset: 0 content_length: 0 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 5: nobjects: 2 length: 261 content_offset: 0 content_length: 2 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 6: nobjects: 2 length: 262 content_offset: 0 content_length: 3 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 7: nobjects: 2 length: 262 content_offset: 0 content_length: 3 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 8: nobjects: 2 length: 262 content_offset: 0 content_length: 3 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 9: nobjects: 2 length: 262 content_offset: 0 content_length: 3 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 10: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 11: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 12: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 13: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 14: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 15: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 16: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 17: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 18: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 19: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 20: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 21: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 22: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 23: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 24: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 25: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 26: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 27: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 28: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 29: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Shared Objects Hint Table first_shared_obj: 0 first_shared_offset: 0 nshared_first_page: 16 nshared_total: 16 nbits_nobjects: 0 min_group_length: 34 nbits_delta_group_length: 9 Shared Object 0: group length: 157 Shared Object 1: group length: 105 Shared Object 2: group length: 117 Shared Object 3: group length: 34 Shared Object 4: group length: 82 Shared Object 5: group length: 191 Shared Object 6: group length: 144 Shared Object 7: group length: 168 Shared Object 8: group length: 291 Shared Object 9: group length: 165 Shared Object 10: group length: 162 Shared Object 11: group length: 182 Shared Object 12: group length: 201 Shared Object 13: group length: 150 Shared Object 14: group length: 164 Shared Object 15: group length: 164 Outlines Hint Table first_object: 66 first_object_offset: 1827 nobjects: 12 group_length: 2064 qpdf-8.0.2/qpdf/qtest/qpdf/merge-three-files-2.pdf0000644000064100006410000001362413247541377017736 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 16 /Kids [ 3 0 R 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 19 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 20 0 R >> /ProcSet 21 0 R >> /Type /Page >> endobj 4 0 obj << /Contents 22 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 20 0 R >> /ProcSet 21 0 R >> /Type /Page >> endobj 5 0 obj << /Contents 23 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 20 0 R >> /ProcSet 21 0 R >> /Type /Page >> endobj 6 0 obj << /Contents 24 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 20 0 R >> /ProcSet 21 0 R >> /Type /Page >> endobj 7 0 obj << /Contents 25 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 20 0 R >> /ProcSet 21 0 R >> /Type /Page >> endobj 8 0 obj << /Contents 26 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 20 0 R >> /ProcSet 21 0 R >> /Type /Page >> endobj 9 0 obj << /Contents 27 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 28 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 10 0 obj << /Contents 29 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 28 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 11 0 obj << /Contents 30 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 28 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 12 0 obj << /Contents 31 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 28 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 13 0 obj << /Contents 32 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 28 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 14 0 obj << /Contents 33 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 28 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 15 0 obj << /Contents 34 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 20 0 R >> /ProcSet 21 0 R >> /Type /Page >> endobj 16 0 obj << /Contents 35 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 28 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 17 0 obj << /Contents 36 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 37 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 18 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 39 0 R >> /ProcSet 40 0 R >> /Type /Page >> endobj 19 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  endstream endobj 20 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 21 0 obj [ /PDF /Text ] endobj 22 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr + endstream endobj 23 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr = endstream endobj 24 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr F endstream endobj 25 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr O endstream endobj 26 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  Sendstream endobj 27 0 obj << /Filter /FlateDecode /Length 54 >> stream xs Qw3T04UIS07" ̼TCKM,."q eendstream endobj 28 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 29 0 obj << /Filter /FlateDecode /Length 54 >> stream xs Qw3T04UIS07" ̼TC M,."h dendstream endobj 30 0 obj << /Filter /FlateDecode /Length 54 >> stream xs Qw3T04UIS07" ̼TCsM,."_ cendstream endobj 31 0 obj << /Filter /FlateDecode /Length 54 >> stream xs Qw3T04UIS07" ̼TC3M,."V bendstream endobj 32 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TBHk"M aendstream endobj 33 0 obj << /Filter /FlateDecode /Length 54 >> stream xs Qw3T04UIS07" ̼TCM,."D `endstream endobj 34 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr @ Jendstream endobj 35 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TKM,.V 4endstream endobj 36 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TKM,.V 4endstream endobj 37 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 38 0 obj << /Length 48 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 39 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 40 0 obj [ /PDF /Text ] endobj xref 0 41 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000223 00000 n 0000000369 00000 n 0000000515 00000 n 0000000661 00000 n 0000000807 00000 n 0000000953 00000 n 0000001099 00000 n 0000001253 00000 n 0000001408 00000 n 0000001563 00000 n 0000001718 00000 n 0000001873 00000 n 0000002028 00000 n 0000002175 00000 n 0000002330 00000 n 0000002485 00000 n 0000002632 00000 n 0000002753 00000 n 0000002861 00000 n 0000002892 00000 n 0000003013 00000 n 0000003134 00000 n 0000003255 00000 n 0000003376 00000 n 0000003498 00000 n 0000003623 00000 n 0000003723 00000 n 0000003848 00000 n 0000003973 00000 n 0000004098 00000 n 0000004222 00000 n 0000004347 00000 n 0000004469 00000 n 0000004593 00000 n 0000004717 00000 n 0000004817 00000 n 0000004936 00000 n 0000005044 00000 n trailer << /Root 1 0 R /Size 41 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 5075 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.11-ogen.c-check0000644000064100006410000000040613247541377020357 0ustar ejbejbversion: 1.5 linearized: 1 encrypted: 1 user password: extract for accessibility: 1 extract for any purpose: 1 print low resolution: 1 print high resolution: 1 modify document assembly: 1 modify forms: 1 modify annotations: 1 modify other: 1 modify anything: 1 qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.5.check0000644000064100006410000000026213247541377017455 0ustar ejbejbchecking a.pdf PDF Version: 1.2 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.1.c-check0000644000064100006410000000005013247541377017343 0ustar ejbejbversion: 1.3 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.9-ogen.check0000644000064100006410000000025613247541377020412 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/merge-implicit-ranges.pdf0000644000064100006410000004133513247541377020457 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 51 /Kids [ 3 0 R 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 35 0 R 36 0 R 37 0 R 38 0 R 39 0 R 40 0 R 41 0 R 42 0 R 43 0 R 44 0 R 45 0 R 46 0 R 47 0 R 48 0 R 49 0 R 50 0 R 51 0 R 52 0 R 53 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 54 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 55 0 R >> /ProcSet 56 0 R >> /Type /Page >> endobj 4 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 58 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 5 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 58 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 6 0 obj << /Contents 60 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 58 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 7 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 58 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 8 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 58 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 9 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 58 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 10 0 obj << /Contents 64 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 58 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 11 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 58 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 12 0 obj << /Contents 66 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 58 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 13 0 obj << /Contents 67 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 58 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 14 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 58 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 15 0 obj << /Contents 69 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 58 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 16 0 obj << /Contents 70 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 58 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 17 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 58 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 18 0 obj << /Contents 72 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 58 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 19 0 obj << /Contents 73 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 58 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 20 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 58 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 21 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 58 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 22 0 obj << /Contents 76 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 58 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 23 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 58 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 24 0 obj << /Contents 78 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 79 0 R >> /ProcSet 80 0 R >> /Type /Page >> endobj 25 0 obj << /Contents 81 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 79 0 R >> /ProcSet 80 0 R >> /Type /Page >> endobj 26 0 obj << /Contents 82 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 79 0 R >> /ProcSet 80 0 R >> /Type /Page >> endobj 27 0 obj << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 79 0 R >> /ProcSet 80 0 R >> /Type /Page >> endobj 28 0 obj << /Contents 84 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 79 0 R >> /ProcSet 80 0 R >> /Type /Page >> endobj 29 0 obj << /Contents 85 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 79 0 R >> /ProcSet 80 0 R >> /Type /Page >> endobj 30 0 obj << /Contents 86 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 79 0 R >> /ProcSet 80 0 R >> /Type /Page >> endobj 31 0 obj << /Contents 87 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 79 0 R >> /ProcSet 80 0 R >> /Type /Page >> endobj 32 0 obj << /Contents 88 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 79 0 R >> /ProcSet 80 0 R >> /Type /Page >> endobj 33 0 obj << /Contents 89 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 79 0 R >> /ProcSet 80 0 R >> /Type /Page >> endobj 34 0 obj << /Contents 90 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 79 0 R >> /ProcSet 80 0 R >> /Type /Page >> endobj 35 0 obj << /Contents 91 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 79 0 R >> /ProcSet 80 0 R >> /Type /Page >> endobj 36 0 obj << /Contents 92 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 79 0 R >> /ProcSet 80 0 R >> /Type /Page >> endobj 37 0 obj << /Contents 93 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 79 0 R >> /ProcSet 80 0 R >> /Type /Page >> endobj 38 0 obj << /Contents 94 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 79 0 R >> /ProcSet 80 0 R >> /Type /Page >> endobj 39 0 obj << /Contents 95 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 79 0 R >> /ProcSet 80 0 R >> /Type /Page >> endobj 40 0 obj << /Contents 96 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 79 0 R >> /ProcSet 80 0 R >> /Type /Page >> endobj 41 0 obj << /Contents 97 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 79 0 R >> /ProcSet 80 0 R >> /Type /Page >> endobj 42 0 obj << /Contents 98 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 79 0 R >> /ProcSet 80 0 R >> /Type /Page >> endobj 43 0 obj << /Contents 99 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 79 0 R >> /ProcSet 80 0 R >> /Type /Page >> endobj 44 0 obj << /Contents 100 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 79 0 R >> /ProcSet 80 0 R >> /Type /Page >> endobj 45 0 obj << /Contents 101 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 79 0 R >> /ProcSet 80 0 R >> /Type /Page >> endobj 46 0 obj << /Contents 102 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 79 0 R >> /ProcSet 80 0 R >> /Type /Page >> endobj 47 0 obj << /Contents 103 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 79 0 R >> /ProcSet 80 0 R >> /Type /Page >> endobj 48 0 obj << /Contents 104 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 79 0 R >> /ProcSet 80 0 R >> /Type /Page >> endobj 49 0 obj << /Contents 105 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 79 0 R >> /ProcSet 80 0 R >> /Type /Page >> endobj 50 0 obj << /Contents 106 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 79 0 R >> /ProcSet 80 0 R >> /Type /Page >> endobj 51 0 obj << /Contents 107 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 79 0 R >> /ProcSet 80 0 R >> /Type /Page >> endobj 52 0 obj << /Contents 108 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 79 0 R >> /ProcSet 80 0 R >> /Type /Page >> endobj 53 0 obj << /Contents 109 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 79 0 R >> /ProcSet 80 0 R >> /Type /Page >> endobj 54 0 obj << /Length 48 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 55 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 56 0 obj [ /PDF /Text ] endobj 57 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TM,. +endstream endobj 58 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 59 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TCM,. ,endstream endobj 60 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼T#M,. -endstream endobj 61 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TcM,. .endstream endobj 62 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TM,.) /endstream endobj 63 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TSM,.2 0endstream endobj 64 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼T3M,.; 1endstream endobj 65 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TsM,.D 2endstream endobj 66 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼T M,.M 3endstream endobj 67 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TKM,.V 4endstream endobj 68 0 obj << /Filter /FlateDecode /Length 54 >> stream xs Qw3T04UIS07" ̼TCM,." \endstream endobj 69 0 obj << /Filter /FlateDecode /Length 54 >> stream xs Qw3T04UIS07" ̼TCCM,.") ]endstream endobj 70 0 obj << /Filter /FlateDecode /Length 54 >> stream xs Qw3T04UIS07" ̼TC#M,."2 ^endstream endobj 71 0 obj << /Filter /FlateDecode /Length 54 >> stream xs Qw3T04UIS07" ̼TCcM,."; _endstream endobj 72 0 obj << /Filter /FlateDecode /Length 54 >> stream xs Qw3T04UIS07" ̼TCM,."D `endstream endobj 73 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TBHk"M aendstream endobj 74 0 obj << /Filter /FlateDecode /Length 54 >> stream xs Qw3T04UIS07" ̼TC3M,."V bendstream endobj 75 0 obj << /Filter /FlateDecode /Length 54 >> stream xs Qw3T04UIS07" ̼TCsM,."_ cendstream endobj 76 0 obj << /Filter /FlateDecode /Length 54 >> stream xs Qw3T04UIS07" ̼TC M,."h dendstream endobj 77 0 obj << /Filter /FlateDecode /Length 54 >> stream xs Qw3T04UIS07" ̼TCKM,."q eendstream endobj 78 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  endstream endobj 79 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 80 0 obj [ /PDF /Text ] endobj 81 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr " endstream endobj 82 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr + endstream endobj 83 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr 4 endstream endobj 84 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr = endstream endobj 85 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr F endstream endobj 86 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr O endstream endobj 87 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr X endstream endobj 88 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,WTr a endstream endobj 89 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,WTr j !endstream endobj 90 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr 7 Iendstream endobj 91 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr @ Jendstream endobj 92 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr I Kendstream endobj 93 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr R Lendstream endobj 94 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr [ Mendstream endobj 95 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr d Nendstream endobj 96 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr m Oendstream endobj 97 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr v Pendstream endobj 98 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  Qendstream endobj 99 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  Rendstream endobj 100 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr A Jendstream endobj 101 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr J Kendstream endobj 102 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr S Lendstream endobj 103 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr \ Mendstream endobj 104 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,i*dqpe Nendstream endobj 105 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr n Oendstream endobj 106 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr w Pendstream endobj 107 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr  Qendstream endobj 108 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  Rendstream endobj 109 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  Sendstream endobj xref 0 110 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000468 00000 n 0000000614 00000 n 0000000768 00000 n 0000000922 00000 n 0000001076 00000 n 0000001230 00000 n 0000001384 00000 n 0000001538 00000 n 0000001693 00000 n 0000001848 00000 n 0000002003 00000 n 0000002158 00000 n 0000002313 00000 n 0000002468 00000 n 0000002623 00000 n 0000002778 00000 n 0000002933 00000 n 0000003088 00000 n 0000003243 00000 n 0000003398 00000 n 0000003553 00000 n 0000003708 00000 n 0000003855 00000 n 0000004002 00000 n 0000004149 00000 n 0000004296 00000 n 0000004443 00000 n 0000004590 00000 n 0000004737 00000 n 0000004884 00000 n 0000005031 00000 n 0000005178 00000 n 0000005325 00000 n 0000005472 00000 n 0000005619 00000 n 0000005766 00000 n 0000005913 00000 n 0000006060 00000 n 0000006207 00000 n 0000006354 00000 n 0000006501 00000 n 0000006648 00000 n 0000006796 00000 n 0000006944 00000 n 0000007092 00000 n 0000007240 00000 n 0000007388 00000 n 0000007536 00000 n 0000007684 00000 n 0000007832 00000 n 0000007980 00000 n 0000008128 00000 n 0000008247 00000 n 0000008355 00000 n 0000008386 00000 n 0000008510 00000 n 0000008610 00000 n 0000008734 00000 n 0000008858 00000 n 0000008982 00000 n 0000009106 00000 n 0000009230 00000 n 0000009354 00000 n 0000009478 00000 n 0000009602 00000 n 0000009726 00000 n 0000009851 00000 n 0000009976 00000 n 0000010101 00000 n 0000010226 00000 n 0000010351 00000 n 0000010475 00000 n 0000010600 00000 n 0000010725 00000 n 0000010850 00000 n 0000010975 00000 n 0000011096 00000 n 0000011204 00000 n 0000011235 00000 n 0000011356 00000 n 0000011477 00000 n 0000011598 00000 n 0000011719 00000 n 0000011840 00000 n 0000011961 00000 n 0000012082 00000 n 0000012203 00000 n 0000012324 00000 n 0000012446 00000 n 0000012568 00000 n 0000012690 00000 n 0000012812 00000 n 0000012934 00000 n 0000013056 00000 n 0000013178 00000 n 0000013300 00000 n 0000013422 00000 n 0000013544 00000 n 0000013667 00000 n 0000013790 00000 n 0000013913 00000 n 0000014036 00000 n 0000014158 00000 n 0000014281 00000 n 0000014404 00000 n 0000014527 00000 n 0000014650 00000 n trailer << /Root 1 0 R /Size 110 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 14773 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad10.out0000644000064100006410000000012313247541377015206 0ustar ejbejbbad10.pdf (trailer, offset 712): /Size key in trailer dictionary is not an integer qpdf-8.0.2/qpdf/qtest/qpdf/V4-aes.pdf0000644000064100006410000004013213247541377015324 0ustar ejbejb%PDF-1.6 % 1 0 obj << /Metadata 3 0 R /Outlines 4 0 R /PageLabels << /Nums [ 0 << /P <0e1c2a38465462707e8c9aa8b6c4d2e04a74ca52697dc92e78001ad964146eca> >> 2 << /S /r /St 1 >> 7 << /P <0e1c2a38465462707e8c9aa8b6c4d2e04a74ca52697dc92e78001ad964146eca> >> 9 << /S /r /St 6 >> 11 << /P <0e1c2a38465462707e8c9aa8b6c4d2e04a74ca52697dc92e78001ad964146eca> >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P <0e1c2a38465462707e8c9aa8b6c4d2e04a74ca52697dc92e78001ad964146eca> >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /PageMode /UseOutlines /Pages 5 0 R /Type /Catalog >> endobj 2 0 obj << /CreationDate <0e1c2a38465462707e8c9aa8b6c4d2e0e9899cdac1e580de96cee46c62bbe494cccd4890015eb51e9ebe9e163bd4e9db> /ModDate <0e1c2a38465462707e8c9aa8b6c4d2e0e9899cdac1e580de96cee46c62bbe494cccd4890015eb51e9ebe9e163bd4e9db> >> endobj 3 0 obj << /Subtype /XML /Type /Metadata /Length 336 /Filter /FlateDecode >> stream *8FTbp~TMF5YL3#bd21 C+KNAvԓ{Qo+/;ӣnO離iD Q'5d)btZ,VNj#fPj'p0sqB> TA>U13\o.Aa`쒴v^t+թ{jCү!LOIrou]##"b8i| ăF4]djTT6'er}N6J 5hMe3vp.98Ux8Q  1ŠP7PpCyhܗm4_d#3ҜOendstream endobj 4 0 obj << /Count 6 /First 6 0 R /Last 7 0 R /Type /Outlines >> endobj 5 0 obj << /Count 30 /Kids [ 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 35 0 R 36 0 R 37 0 R ] /Type /Pages >> endobj 6 0 obj << /Count 4 /Dest [ 13 0 R /XYZ null null null ] /First 38 0 R /Last 39 0 R /Next 7 0 R /Parent 4 0 R /Title <0e1c2a38465462707e8c9aa8b6c4d2e06136b49986838be63dd18d04525fd8bf58c0dc5fe6482939c2c7a9ca3c1ad893cd4ba6267c0a6bd4524eac5c97204097> /Type /Outline >> endobj 7 0 obj << /Dest [ 23 0 R /XYZ 66 756 3 ] /Parent 4 0 R /Prev 6 0 R /Title <0e1c2a38465462707e8c9aa8b6c4d2e01aab63c49ef4a1b1c1be421714d196a241c3db586c7b1a023de3fad2ee034155> /Type /Outline >> endobj 8 0 obj << /Contents 40 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 9 0 obj << /Contents 43 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 10 0 obj << /Contents 44 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 11 0 obj << /Contents 45 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 12 0 obj << /Contents 46 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 13 0 obj << /Contents 47 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 14 0 obj << /Contents 48 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 15 0 obj << /Contents 49 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 16 0 obj << /Contents 50 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 17 0 obj << /Contents 51 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 18 0 obj << /Contents 52 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 19 0 obj << /Contents 53 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 20 0 obj << /Contents 54 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 21 0 obj << /Contents 55 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 22 0 obj << /Contents 56 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 23 0 obj << /Contents 57 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 24 0 obj << /Contents 58 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 25 0 obj << /Contents 59 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 26 0 obj << /Contents 60 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 27 0 obj << /Contents 61 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 28 0 obj << /Contents 62 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 29 0 obj << /Contents 63 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 30 0 obj << /Contents 64 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 31 0 obj << /Contents 65 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 32 0 obj << /Contents 66 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 33 0 obj << /Contents 67 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 34 0 obj << /Contents 68 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 35 0 obj << /Contents 69 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 36 0 obj << /Contents 70 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 37 0 obj << /Contents 71 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 38 0 obj << /Count -3 /Dest [ 19 0 R /Fit ] /First 72 0 R /Last 73 0 R /Next 39 0 R /Parent 6 0 R /Title <0e1c2a38465462707e8c9aa8b6c4d2e00d32ee8de70f8143ac3ffce5881e2d1e8551ed442e4deac827472d66d5d787e2> /Type /Outline >> endobj 39 0 obj << /Count 2 /Dest [ 21 0 R /FitH 792 ] /First 74 0 R /Last 75 0 R /Parent 6 0 R /Prev 38 0 R /Title <0e1c2a38465462707e8c9aa8b6c4d2e0137ae7685fcbcc14362f866f06ed55a84cb760275f947487ad009505412e6472> /Type /Outline >> endobj 40 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~+Z^xlfN?"dq)Ȏwl՝0~#Wendstream endobj 41 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 42 0 obj [ /PDF /Text ] endobj 43 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~#8IՃ<:Tbq#Gk]NǪuOfPfsyDŽn{ endstream endobj 44 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~iWbJ@[wQh cZ|Yt3'PY6LCI/9ikendstream endobj 45 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~:+X~ ҘHo5L?7-s> stream *8FTbp~VX&^,t I {$KPWTL&k}=GU!+ռendstream endobj 47 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~-ܾ&1*<{YY^IN4o? 2':endstream endobj 48 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~+[%`P9Ǚ"ֲNݵ7@0ie XM~Z3y&YwVnendstream endobj 49 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~*5xXXzuN%4m-oS}}(z/H1X2"vk3mpIendstream endobj 50 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~_@<^NCk:Tqul! ^&ڑ D=lJOTÈ3endstream endobj 51 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~ӥ:p&)B?ceF߄>t> #Ъ.S-DH3z:I}%6endstream endobj 52 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~+;t;-Ip'[{?{gvXB̤>VTڅV\H^C9,$ Jendstream endobj 53 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~иD@y]촎T{JNin ׃F˘.Tȝb{Y=ѡwjendstream endobj 54 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~sXP@aDtvFqryep(T8Sr Jɔ-++h=endstream endobj 55 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~_nˮg{X+! ƀ؂~)/;8I-t3Nb?w݉_:??RVendstream endobj 56 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~ૡqNP\ j'(n8tR|ǜWBæ? p >r9l:psendstream endobj 57 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~U- DsA4?PfˮF@vx#nájJ͵endstream endobj 58 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~dggjKu_!S7Ee$2ߘR-B2=jP'gpendstream endobj 59 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~םcRiG9p~CMt=RqIQPĴc.u? $endstream endobj 60 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~4{IK ^ϑ ? SIh! cdfSz-Fy]D a endstream endobj 61 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~‘Uⵊ'qu9E_X2?o}P|ö$85vN1!mkNGkendstream endobj 62 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~R_&N s9.ֱw-)2o{T] r'K:N, endstream endobj 63 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~ڬX62VVs܇|~MgO_:'z)e %Rendstream endobj 64 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~ ^XK,~yBˇeWP"Op{V'IrHl}x,D>endstream endobj 65 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~-D)A3NKNj{3.X/WQ0 s;=uO  bШ}F)endstream endobj 66 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~H}:z(Mph8, ƴ] $LQ@$;Y/`endstream endobj 67 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~b^Qp/h~.ʫ=!veotG*4oߣЩnu}7Dendstream endobj 68 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~WK2LԗJ_c$)iB& M]MvfJ8:VkϧvE*0endstream endobj 69 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~p ^g d6']pQ붬;u*}&l"¿ݖ"D/1U1endstream endobj 70 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~Y 28.E&rͨu#)ns^`':yE.endstream endobj 71 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~È9ĉaM³FxGx~s\՛J\V ʍ=BcEEoEendstream endobj 72 0 obj << /Count -2 /Dest [ 20 0 R /FitV 100 ] /First 76 0 R /Last 77 0 R /Next 73 0 R /Parent 38 0 R /Title <0e1c2a38465462707e8c9aa8b6c4d2e07c76f6fcecead465c803262ea791484b04c51c26159b59425907bcc42e1be548> /Type /Outline >> endobj 73 0 obj << /Count 1 /Dest [ 20 0 R /XYZ null null null ] /First 78 0 R /Last 78 0 R /Parent 38 0 R /Prev 72 0 R /Title <0e1c2a38465462707e8c9aa8b6c4d2e00ecc6b31415d55a1de00b0903aeaad8c731ac82890762caeaafc79be29e82ffb4691d98b5d4d3cb09a4b4039f2998101> /Type /Outline >> endobj 74 0 obj << /Dest [ 9 0 R /FitR 66 714 180 770 ] /Next 75 0 R /Parent 39 0 R /Title <0e1c2a38465462707e8c9aa8b6c4d2e039e9f7d0e37272d3b044d6d3b507bdb1998c19b21c89a1744fa9237eeece598e6eec369f7c3a8499c611dbd9c816132d> /Type /Outline >> endobj 75 0 obj << /Dest [ 8 0 R /XYZ null null null ] /Parent 39 0 R /Prev 74 0 R /Title <0e1c2a38465462707e8c9aa8b6c4d2e04d5f590b78857cf339220d36761f4a713eec4515820b51b71a1ef5c342350c34cc1cf169ba36ea4d5bfd2d091d9b2205> /Type /Outline >> endobj 76 0 obj << /Dest [ 26 0 R /XYZ null null null ] /Next 77 0 R /Parent 72 0 R /Title <0e1c2a38465462707e8c9aa8b6c4d2e0574eadbdf1cacfaa4d10c6db42bba8a7787fed0d573c3da76ade6b526ece9d5ef1d82645e02cd7e9927a49c6bbec87f1> /Type /Outline >> endobj 77 0 obj << /Dest [ 27 0 R /XYZ null null null ] /Parent 72 0 R /Prev 76 0 R /Title <0e1c2a38465462707e8c9aa8b6c4d2e0fa2fa2ce18f2e66b9047bb8c62213738cbb5f5467f1d81f21aa746aeefef585601e35e5915b8cf99a095f615d866824b> /Type /Outline >> endobj 78 0 obj << /Dest [ 30 0 R /XYZ null null null ] /Parent 73 0 R /Title <0e1c2a38465462707e8c9aa8b6c4d2e0a57e63f459f8a8428dfc859f799038f972379574e01ef823841a76dbefaa14665223960437217436968f6261cc32feb9> /Type /Outline >> endobj 79 0 obj << /CF << /StdCF << /AuthEvent /DocOpen /CFM /AESV2 /Length 16 >> >> /Filter /Standard /Length 128 /O <36451bd39d753b7c1d10922c28e6665aa4f3353fb0348b536893e3b1db5c579b> /P -4 /R 4 /StmF /StdCF /StrF /StdCF /U <32c27288b9ec6a4fab94e6188828595c0122456a91bae5134273a6db134c87c4> /V 4 >> endobj xref 0 80 0000000000 65535 f 0000000015 00000 n 0000000634 00000 n 0000000876 00000 n 0000001313 00000 n 0000001384 00000 n 0000001646 00000 n 0000001919 00000 n 0000002118 00000 n 0000002299 00000 n 0000002480 00000 n 0000002662 00000 n 0000002844 00000 n 0000003026 00000 n 0000003208 00000 n 0000003390 00000 n 0000003572 00000 n 0000003754 00000 n 0000003936 00000 n 0000004118 00000 n 0000004300 00000 n 0000004482 00000 n 0000004664 00000 n 0000004846 00000 n 0000005028 00000 n 0000005210 00000 n 0000005392 00000 n 0000005574 00000 n 0000005756 00000 n 0000005938 00000 n 0000006120 00000 n 0000006302 00000 n 0000006484 00000 n 0000006666 00000 n 0000006848 00000 n 0000007030 00000 n 0000007212 00000 n 0000007394 00000 n 0000007576 00000 n 0000007805 00000 n 0000008038 00000 n 0000008189 00000 n 0000008297 00000 n 0000008328 00000 n 0000008479 00000 n 0000008630 00000 n 0000008781 00000 n 0000008932 00000 n 0000009083 00000 n 0000009234 00000 n 0000009385 00000 n 0000009536 00000 n 0000009687 00000 n 0000009838 00000 n 0000009989 00000 n 0000010140 00000 n 0000010291 00000 n 0000010442 00000 n 0000010593 00000 n 0000010744 00000 n 0000010895 00000 n 0000011046 00000 n 0000011197 00000 n 0000011348 00000 n 0000011499 00000 n 0000011650 00000 n 0000011801 00000 n 0000011952 00000 n 0000012103 00000 n 0000012254 00000 n 0000012405 00000 n 0000012556 00000 n 0000012707 00000 n 0000012942 00000 n 0000013218 00000 n 0000013458 00000 n 0000013697 00000 n 0000013937 00000 n 0000014177 00000 n 0000014404 00000 n trailer << /Info 2 0 R /Root 1 0 R /Size 80 /ID [<66d36a30a97e0f16f39955c6221e0c2a><31415926535897932384626433832795>] /Encrypt 79 0 R >> startxref 14704 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/page_api_1.out20000644000064100006410000000012413247541377016367 0ustar ejbejbpage_api_1.pdf (page object: object 4 0): page object not referenced in /Pages tree qpdf-8.0.2/qpdf/qtest/qpdf/bad34-recover.out0000644000064100006410000000073313247541377016666 0ustar ejbejbWARNING: bad34.pdf: file is damaged WARNING: bad34.pdf (object 4 0, offset 322): expected n n obj WARNING: bad34.pdf: Attempting to reconstruct cross-reference table /QTest is indirect and has type stream (10) /QTest is a stream. Dictionary: << /Length 44 /Quack 9 0 R >> Raw stream data: BT /F1 24 Tf 72 720 Td (Potato) Tj ET Uncompressed stream data: BT /F1 24 Tf 72 720 Td (Potato) Tj ET End of stream data unparse: 4 0 R unparseResolved: 4 0 R test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/badlin1.pdf0000644000064100006410000003145713247541377015611 0ustar ejbejb%PDF-1.3 % 60 0 obj << /Linearized 1 /L 13103 /H [ 1211 203 ] /O 63 /E 1827 /N 30 /T 11770 >> endobj xref 60 19 0000000017 00000 n 0000000849 00000 n 0000001414 00000 n 0000001571 00000 n 0000001676 00000 n 0000001793 00000 n 0000001827 00000 n 0000001909 00000 n 0000002100 00000 n 0000002244 00000 n 0000002412 00000 n 0000002703 00000 n 0000002868 00000 n 0000003030 00000 n 0000003212 00000 n 0000003413 00000 n 0000003563 00000 n 0000003727 00000 n 0000001211 00000 n trailer << /Size 79 /Prev 11765 /Root 61 0 R /ID [] >> startxref 0 %%EOF 61 0 obj << /PageLabels << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /Pages 59 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 66 0 R >> endobj 78 0 obj << /S 194 /O 256 /Filter /FlateDecode /Length 105 >> stream xc```b``À<@&8еB310  pF xI6 b%NۉJ5,jy mN l`2pX_" endstream endobj 62 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 63 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 0) Tj ET endstream endobj 64 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 65 0 obj [ /PDF /Text ] endobj 66 0 obj << /Type /Outlines /First 67 0 R /Last 68 0 R /Count 6 >> endobj 67 0 obj << /Type /Outline /Title (Iss 1 -> 5: /XYZ null null null) /Parent 66 0 R /Count 4 /Next 68 0 R /First 69 0 R /Last 70 0 R /Dest [ 9 0 R /XYZ null null null ] >> endobj 68 0 obj << /Type /Outline /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Parent 66 0 R /Prev 67 0 R /Dest [ 29 0 R /XYZ 66 756 3 ] >> endobj 69 0 obj << /Type /Outline /Title (Amanda 1.1 -> 11: /Fit) /Parent 67 0 R /Next 70 0 R /First 73 0 R /Last 74 0 R /Count -3 /Dest [ 21 0 R /Fit ] >> endobj 70 0 obj << /Type /Outline /Title /Parent 67 0 R /Prev 69 0 R /First 71 0 R /Last 72 0 R /Count 2 /Dest [ 25 0 R /FitH 792 ] >> endobj 71 0 obj << /Type /Outline /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Parent 70 0 R /Next 72 0 R /Dest [ 1 0 R /FitR 66 714 180 770 ] >> endobj 72 0 obj << /Type /Outline /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Parent 70 0 R /Prev 71 0 R /Dest [ 62 0 R /XYZ null null null ] >> endobj 73 0 obj << /Type /Outline /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Parent 69 0 R /Next 74 0 R /First 76 0 R /Last 77 0 R /Count -2 /Dest [ 23 0 R /FitV 100 ] >> endobj 74 0 obj << /Type /Outline /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Parent 69 0 R /Prev 73 0 R /First 75 0 R /Last 75 0 R /Count 1 /Dest [ 23 0 R /XYZ null null null ] >> endobj 75 0 obj << /Type /Outline /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Parent 74 0 R /Dest [ 43 0 R /XYZ null null null ] >> endobj 76 0 obj << /Type /Outline /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Parent 73 0 R /Next 77 0 R /Dest [ 35 0 R /XYZ null null null ] >> endobj 77 0 obj << /Type /Outline /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Parent 73 0 R /Prev 76 0 R /Dest [ 37 0 R /XYZ null null null ] >> endobj 1 0 obj << /Contents 2 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 2 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 4 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 5 0 obj << /Contents 6 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 6 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 7 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 8 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 9 0 obj << /Contents 10 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 10 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 11 0 obj << /Contents 12 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 12 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 13 0 obj << /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 14 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 15 0 obj << /Contents 16 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 16 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 17 0 obj << /Contents 18 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 18 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 19 0 obj << /Contents 20 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 20 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 21 0 obj << /Contents 22 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 22 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 23 0 obj << /Contents 24 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 24 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 25 0 obj << /Contents 26 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 26 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 27 0 obj << /Contents 28 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 28 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 29 0 obj << /Contents 30 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 30 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 31 0 obj << /Contents 32 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 32 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 33 0 obj << /Contents 34 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 34 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 35 0 obj << /Contents 36 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 36 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 37 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 38 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 39 0 obj << /Contents 40 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 40 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 41 0 obj << /Contents 42 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 42 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 43 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 44 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 45 0 obj << /Contents 46 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 46 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 47 0 obj << /Contents 48 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 48 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 49 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 50 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 51 0 obj << /Contents 52 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 52 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 53 0 obj << /Contents 54 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 54 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 55 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 56 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 57 0 obj << /Contents 58 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 58 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 59 0 obj << /Count 30 /Kids [ 62 0 R 1 0 R 3 0 R 5 0 R 7 0 R 9 0 R 11 0 R 13 0 R 15 0 R 17 0 R 19 0 R 21 0 R 23 0 R 25 0 R 27 0 R 29 0 R 31 0 R 33 0 R 35 0 R 37 0 R 39 0 R 41 0 R 43 0 R 45 0 R 47 0 R 49 0 R 51 0 R 53 0 R 55 0 R 57 0 R ] /Type /Pages >> endobj xref 0 60 0000000060 65535 f 0000003891 00000 n 0000004046 00000 n 0000004150 00000 n 0000004305 00000 n 0000004409 00000 n 0000004564 00000 n 0000004668 00000 n 0000004823 00000 n 0000004927 00000 n 0000005083 00000 n 0000005188 00000 n 0000005345 00000 n 0000005450 00000 n 0000005607 00000 n 0000005712 00000 n 0000005869 00000 n 0000005974 00000 n 0000006131 00000 n 0000006236 00000 n 0000006393 00000 n 0000006499 00000 n 0000006656 00000 n 0000006762 00000 n 0000006919 00000 n 0000007025 00000 n 0000007182 00000 n 0000007288 00000 n 0000007445 00000 n 0000007551 00000 n 0000007708 00000 n 0000007814 00000 n 0000007971 00000 n 0000008077 00000 n 0000008234 00000 n 0000008340 00000 n 0000008497 00000 n 0000008603 00000 n 0000008760 00000 n 0000008866 00000 n 0000009023 00000 n 0000009129 00000 n 0000009286 00000 n 0000009392 00000 n 0000009549 00000 n 0000009655 00000 n 0000009812 00000 n 0000009918 00000 n 0000010075 00000 n 0000010181 00000 n 0000010338 00000 n 0000010444 00000 n 0000010601 00000 n 0000010707 00000 n 0000010864 00000 n 0000010970 00000 n 0000011127 00000 n 0000011233 00000 n 0000011390 00000 n 0000011496 00000 n trailer << /Size 60 /ID [] >> startxref 178 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.9-ogen.c-check0000644000064100006410000000040613247541377022317 0ustar ejbejbversion: 1.5 linearized: 1 encrypted: 1 user password: extract for accessibility: 1 extract for any purpose: 1 print low resolution: 1 print high resolution: 1 modify document assembly: 1 modify forms: 1 modify annotations: 1 modify other: 1 modify anything: 1 qpdf-8.0.2/qpdf/qtest/qpdf/numeric-and-string-2.pdf0000644000064100006410000003722613247541377020144 0ustar ejbejb%PDF-1.3 % 2 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Courier /Encoding /WinAnsiEncoding >> endobj 3 0 obj << /Type /XObject /Subtype /Image /Width 5100 /Height 6600 /BitsPerComponent 1 /ColorSpace /DeviceGray /Filter [/CCITTFaxDecode] /DecodeParms [<< /Columns 5100 /Rows 6600 /K -1 >>] /Length 1698 >> stream 堰@BPE$E堠6 R4l""A##!@}0Z!2,2,24 200P\,?ᅆ,0„x\/*/_ pBp ,< a>c „x_<.  ,?. )xXxA|g>,3a BlpAAƲ:!F5qɀ`n8堰)( % RPH'""?-X@h( 6 J?!@}6 BBEyyy a Blo< p\/@MXap?a  \  ,0ă>QG?Z |>Xa?pxAυ|,3adcYLd8堰)( JODGendstream endobj 4 0 obj << /Type /Page /Parent 1 0 R /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Resources << /XObject << /Im1 3 0 R >> /Font << /F1 2 0 R >> /ProcSet [ /PDF /Text /ImageB ] >> >> endobj 5 0 obj << /Length 6 0 R >> stream q 612 0 0 792 0 0 cm /Im1 Do Q BT 3 Tr 0.00 0.00 Td 72.12 720.00 Td /F1 14.20 Tf 68.91 Tz -0.24 Ts 0.00 0 Td (0020013) Tj 60.56 Tz 48.24 0 Td (6) Tj -48.24 -14.16 Td 68.66 Tz 0.00 Ts 0.00 0 Td (0006) Tj ET endstream endobj 6 0 obj 206 endobj 7 0 obj << /Type /XObject /Subtype /Image /Width 5100 /Height 6600 /BitsPerComponent 1 /ColorSpace /DeviceGray /Filter [/CCITTFaxDecode] /DecodeParms [<< /Columns 5100 /Rows 6600 /K -1 >>] /Length 2541 >> stream 堰@BPE$L?Pl)a 6a@;QGGR:eP,2,0*!#Ap00P\/ ,0a  *//…  x\ xC@ xA|/pp^AAaxA>$0 υ|(Xg> /堠cYa#C e0L %D Jd `W""?-X@hՏPl AH ?#6X( e@cSe ,0c!M|>_< …pޑXa|  ap_ _< T2HFP`4* C%)! aP!@` 9@ D IpPA:8φr0 `&~GdL0 "/sXXa| Ȱ`0 d ?? \(E?# `d. a0a4d.xAD00hNAC /_p0Z /? %BH]B/? |? |?x_|^CT2Gx 005C< l l_ᅆ|,3a / B8Ȱ#(|k#Ʋa!Ppp _ ,q?X%I@!0͑#7*†C"&C3dX!"<"b0DDDa#X BB_ pp\/ )A8asap^Cx>8aB /Hpe0ܠ>ODendstream endobj 8 0 obj << /Type /XObject /Subtype /Image /Width 305 /Height 305 /BitsPerComponent 8 /ColorSpace /DeviceGray /Filter [/DCTDecode] /Length 3894 >> stream JFIF,,C    $.' ",#(7),01444'9=82<.342 11 }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz?*}b5uBHA?i}G ڟmO{m6=?hS4 {O?罧Mjo&A?i}G ڟmO{m6=?hS4 {O?罧Mjo&A?i}G ڟmO{m6=?hS4 {O?罧Mjo&A?i}G ڟmO{m6=?hS4 {O?罧Mjo&A?i}G ڟmO{m6=?k3W_'2BnY'\YxCs׳K^EQEQEQEQEQEQEQEQEWO !ٿ%@((((((((+\etנQEQEQEQEQEQEQEQEQExae2onoo k(((((((((<}0i]777{7QEQEQEQEQEQEQEQEQEq>kBZ (((((((((?WMo ^-zQEQEQEQEQEQEQEQEQ\gm?Z+7fЖ(((((((((3-qxCs׳K^EQEQEQEQEQEQEQEQEWO !ٿ%@((((((((+\etנQEQEQEQEQEQEQEQEQExae2onoo k(((((((((<}0i]777{7QEQEQEQEQEQEQEQEQEq>kBZ (;TPK3=Me}Lo|R?0ZΝq@Bv 7Q1;0(((((((3-qxCs׳K^EɥKx$Vj]3Mpu?5ᰏ/c!G@=iX>>gcߩ5}Wd͏`2}G']P eg{e)xn2M냃޺(((((((?WMo ^-zW=IbDҪ6{[EU$ u'{Qg7r:d=z آ((((((+\etנQE`Ѯd08h\r>՟K6Vgģ<{`s]uR? ^&CEQEQEQEQEQEQExae2onoo k(##d`C+ = q-ut^۝Ђwx+Gpy9铷e}& ]_85i\ķq$:"#׽T^weܗV ͳ`~ u]MQEQEQEQEQEQEQ\gm?Z+7fЖ(agt- i# q:w٭v7yh8MEQEQEQEQEQEQEQ\gm?Z+7fЖ(((((((((3-qxCs׳K^EQEQEQEQEQEQEQEQEWO !ٿ%@((((((((+\etנQEQEQEQEQEQEQEQEQExae2onoo k(((((((((<}0i]777{7QEQEQEQEQEQEQEQEQEq>kBZ (((((((((?WMo ^-zQEQEQEQEQEQEQEQEQ\gm?Z+7fЖ(((((((((3-qxCs׳K^EQEQEQEQEQEQEQEQEWO !ٿ%@((((((((+\etנQEQEQEQEQEQEQEQEQExae2onoo k(((((((((<}0i]777{7QEQEQEQEQEQEQEQEQEq>kBZ (((((((((?WMo ^-zQEQEQEQEQEQEQEQEQ\gm?Z+7fЖ(((((((((3-qj2{RI1f7%gGhƏO?>gGhƏO?>gGhƏO?>gGhƏO?>gGhƏO?>gGhƏO?>gGhƏO?>gGhƏO?>gGhƏOϳyNi9ǰZgk(((((((((endstream endobj 9 0 obj << /Type /Page /Parent 1 0 R /Contents 10 0 R /MediaBox [ 0 0 612 792 ] /Resources << /XObject << /Im2 7 0 R /Im3 8 0 R >> /Font << /F1 2 0 R >> /ProcSet [ /PDF /Text /ImageB ] >> >> endobj 10 0 obj << /Length 11 0 R >> stream q 612 0 0 792 0 0 cm /Im2 Do Q BT 3 Tr 0.00 0.00 Td 72.12 720.00 Td /F1 14.20 Tf 68.91 Tz -0.24 Ts 0.00 0 Td (0020015) Tj 54.93 Tz 48.48 0 Td (8) Tj -48.48 -14.16 Td /F1 14.40 Tf 61.11 Tz -0.12 Ts 0.00 0 Td (0006;) Tj /F1 14.50 Tf 57.32 Tz 30.24 0 Td (grayscale) Tj /F1 14.40 Tf 66.81 Tz -0.06 Ts 48.48 0 Td (image) Tj ET q 73.2 0 0 73.2 215.28 575.28 cm /Im3 Do Q endstream endobj 11 0 obj 365 endobj 12 0 obj << /Type /XObject /Subtype /Image /Width 5100 /Height 6600 /BitsPerComponent 1 /ColorSpace /DeviceGray /Filter [/CCITTFaxDecode] /DecodeParms [<< /Columns 5100 /Rows 6600 /K -1 >>] /Length 1944 >> stream 堰@BPE$I-6@a 6dGB@@ %00…y0'Pp\/B5&ᅆ< /|? ,<._/qXaaa? Aa!k? _/p/Æh ?/!?/;O/… Xaa ,0/< U/P… . xPpa< @L pp^(X|<,>pxXxAaυ|(Xg> aN1-#9FUOt!@}0|qbZ R%DH>%A`!"P)R"Xl%@ 6 KGGZ!!"\<<^xP? Bp_ȋ_F(Xaa,0 < ax|>aBp < ,0 XaaH0-_?!Z_? \.\/a_Xa? ,> < |,3a ,3a ^Z F5dcY2Lk#Ăq|%I@RPL/ endstream endobj 13 0 obj << /Type /Page /Parent 1 0 R /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Resources << /XObject << /Im4 12 0 R >> /Font << /F1 2 0 R >> /ProcSet [ /PDF /Text /ImageB ] >> >> endobj 14 0 obj << /Length 15 0 R >> stream q 612 0 0 792 0 0 cm /Im4 Do Q BT 3 Tr 0.00 0.00 Td 72.12 720.00 Td /F1 14.20 Tf 69.42 Tz -0.24 Ts 0.00 0 Td (0020016) Tj 60.56 Tz 48.24 0 Td (9) Tj -48.24 -14.16 Td 68.66 Tz 0.00 Ts 0.00 0 Td (0006) Tj 67.96 Tz 26.88 0 Td (0007) Tj ET endstream endobj 15 0 obj 236 endobj 16 0 obj << /Type /XObject /Subtype /Image /Width 5100 /Height 6600 /BitsPerComponent 1 /ColorSpace /DeviceGray /Filter [/CCITTFaxDecode] /DecodeParms [<< /Columns 5100 /Rows 6600 /K -1 >>] /Length 1917 >> stream 堰@BPE$d2%h( 6@;dP6dG@@  vh,<wy0'N0p\/|/k !j ,>XaaxA  __ qAXxXaa/__ _P\/_ 0…_ xA~)W_ P/… |,< axX|aB<,<  Xg…|,3H@ˆl3ecYa#aeY}|q%D J$/""?-X@H`OPl A6 @a.BGh PXd Xd Xar000P<xAB< . "-aP ?< _ x_ \. < ?P (Xaa  ?!k /> p_pXa~Xaa < < ? B|>< <(\. p_|0|<,< x^υ|,0υ|,3yh(9F5d21k# qqX%I@!2 J"""#endstream endobj 17 0 obj << /Type /Page /Parent 1 0 R /Contents 18 0 R /MediaBox [ 0 0 612 792 ] /Resources << /XObject << /Im5 16 0 R >> /Font << /F1 2 0 R >> /ProcSet [ /PDF /Text /ImageB ] >> >> endobj 18 0 obj << /Length 19 0 R >> stream q 612 0 0 792 0 0 cm /Im5 Do Q BT 3 Tr 0.00 0.00 Td 72.12 720.00 Td /F1 14.20 Tf 68.91 Tz -0.24 Ts 0.00 0 Td (0020017) Tj 61.27 Tz 49.20 0 Td (10) Tj -49.20 -14.16 Td 68.66 Tz 0.00 Ts 0.00 0 Td (0006) Tj 67.96 Tz 26.88 0 Td (0007) Tj ET endstream endobj 19 0 obj 237 endobj 1 0 obj << /Type /Pages /Count 4 /Kids [ 4 0 R 9 0 R 13 0 R 17 0 R] >> endobj 20 0 obj << /CreationDate (D:19910817141013) /Producer (Apex PDFWriter) >> endobj 21 0 obj << /Type /Catalog /Pages 1 0 R >> endobj xref 0 22 0000000000 65536 f 0000015291 00000 n 0000000015 00000 n 0000000110 00000 n 0000002037 00000 n 0000002223 00000 n 0000002481 00000 n 0000002500 00000 n 0000005270 00000 n 0000009334 00000 n 0000009532 00000 n 0000009951 00000 n 0000009971 00000 n 0000012145 00000 n 0000012334 00000 n 0000012624 00000 n 0000012644 00000 n 0000014791 00000 n 0000014980 00000 n 0000015271 00000 n 0000015369 00000 n 0000015451 00000 n trailer << /Root 21 0 R /Info 20 0 R /Size 22 >> startxref 15501 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.10.c-check0000644000064100006410000000040613247541377021441 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 1 user password: extract for accessibility: 1 extract for any purpose: 1 print low resolution: 1 print high resolution: 1 modify document assembly: 1 modify forms: 1 modify annotations: 1 modify other: 1 modify anything: 1 qpdf-8.0.2/qpdf/qtest/qpdf/bad10-recover.out0000644000064100006410000000047513247541377016663 0ustar ejbejbWARNING: bad10.pdf: file is damaged WARNING: bad10.pdf (trailer, offset 712): /Size key in trailer dictionary is not an integer WARNING: bad10.pdf: Attempting to reconstruct cross-reference table /QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/extensions-other-min-1.8.5.out0000644000064100006410000000023513247541377021071 0ustar ejbejbversion: 1.8 extension level: 5 << /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.8-ogen.check0000644000064100006410000000026213247541377022076 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/split-exp-group-01-05.pdf0000644000064100006410000000400213247541377020000 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 5 /Kids [ 3 0 R 4 0 R 5 0 R 6 0 R 7 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 9 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Contents 10 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 9 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 5 0 obj << /Contents 11 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 9 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 6 0 obj << /Contents 12 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 9 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 7 0 obj << /Contents 13 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 9 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 8 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TCM,. ,endstream endobj 9 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 10 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼T#M,. -endstream endobj 11 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TcM,. .endstream endobj 12 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TM,.) /endstream endobj 13 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TSM,.2 0endstream endobj xref 0 14 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000147 00000 n 0000000299 00000 n 0000000452 00000 n 0000000605 00000 n 0000000758 00000 n 0000000911 00000 n 0000001034 00000 n 0000001133 00000 n 0000001257 00000 n 0000001381 00000 n 0000001505 00000 n trailer << /Root 1 0 R /Size 14 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 1629 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/xref-errors.pdf0000644000064100006410000000137413247541377016550 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 000000307 00000 n 0000000403 0000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.12.c-check0000644000064100006410000000005013247541377017746 0ustar ejbejbversion: 1.2 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.6-ogen.c-check0000644000064100006410000000005013247541377020276 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.3-ogen.c-check0000644000064100006410000000005013247541377020632 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.3.check0000644000064100006410000000026213247541377017155 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/bad4.out0000644000064100006410000000006713247541377015140 0ustar ejbejbbad4.pdf (xref table, offset 547): xref syntax invalid qpdf-8.0.2/qpdf/qtest/qpdf/image-streams-specialized.out0000644000064100006410000000067213247541377021360 0ustar ejbejbpage 1 filter: null, color space: /DeviceCMYK page 2 filter: /DCTDecode, color space: /DeviceCMYK page 3 filter: null, color space: /DeviceCMYK page 4 filter: null, color space: /DeviceRGB page 5 filter: /DCTDecode, color space: /DeviceRGB page 6 filter: null, color space: /DeviceRGB page 7 filter: null, color space: /DeviceGray page 8 filter: /DCTDecode, color space: /DeviceGray page 9 filter: null, color space: /DeviceGray test 39 done qpdf-8.0.2/qpdf/qtest/qpdf/bad17-recover.out0000644000064100006410000000034213247541377016663 0ustar ejbejbWARNING: bad17.pdf (trailer, offset 715): dictionary ended prematurely; using null as value for last key /QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.6-ogen.c-check0000644000064100006410000000005013247541377020635 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/page-no-content.pdf0000644000064100006410000000252213247541377017264 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 3 /Kids [ 3 0 R 4 0 R 5 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 6 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 7 0 R >> /ProcSet 8 0 R >> /Type /Page >> endobj 4 0 obj << /Parent 2 0 R /Type /Page >> endobj 5 0 obj << /Contents 9 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 10 0 R >> /ProcSet 11 0 R >> /Type /Page >> endobj 6 0 obj << /Length 48 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 7 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 8 0 obj [ /PDF /Text ] endobj 9 0 obj << /Length 48 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 10 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 11 0 obj [ /PDF /Text ] endobj xref 0 12 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000135 00000 n 0000000278 00000 n 0000000325 00000 n 0000000470 00000 n 0000000588 00000 n 0000000695 00000 n 0000000725 00000 n 0000000843 00000 n 0000000951 00000 n trailer << /Root 1 0 R /Size 12 /ID [] >> startxref 982 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/pdf-doc-to-utf8.out0000644000064100006410000000324313247541377017145 0ustar ejbejb• 128 0x80 0200 U+2022 BULLET † 129 0x81 0201 U+2020 DAGGER ‡ 130 0x82 0202 U+2021 DOUBLE DAGGER … 131 0x83 0203 U+2026 HORIZONTAL ELLIPSIS — 132 0x84 0204 U+2014 EM DASH – 133 0x85 0205 U+2013 EN DASH ƒ 134 0x86 0206 U+0192 SMALL LETTER F WITH HOOK ⁄ 135 0x87 0207 U+2044 FRACTION SLASH (solidus) ‹ 136 0x88 0210 U+2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK › 137 0x89 0211 U+203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK − 138 0x8a 0212 U+2212 MINUS SIGN ‰ 139 0x8b 0213 U+2030 PER MILLE SIGN „ 140 0x8c 0214 U+201E DOUBLE LOW-9 QUOTATION MARK (quotedblbase) “ 141 0x8d 0215 U+201C LEFT DOUBLE QUOTATION MARK (double quote left) ” 142 0x8e 0216 U+201D RIGHT DOUBLE QUOTATION MARK (quotedblright) ‘ 143 0x8f 0217 U+2018 LEFT SINGLE QUOTATION MARK (quoteleft) ’ 144 0x90 0220 U+2019 RIGHT SINGLE QUOTATION MARK (quoteright) ‚ 145 0x91 0221 U+201A SINGLE LOW-9 QUOTATION MARK (quotesinglbase) ™ 146 0x92 0222 U+2122 TRADE MARK SIGN fi 147 0x93 0223 U+FB01 LATIN SMALL LIGATURE FI fl 148 0x94 0224 U+FB02 LATIN SMALL LIGATURE FL Ł 149 0x95 0225 U+0141 LATIN CAPITAL LETTER L WITH STROKE Œ 150 0x96 0226 U+0152 LATIN CAPITAL LIGATURE OE Š 151 0x97 0227 U+0160 LATIN CAPITAL LETTER S WITH CARON Ÿ 152 0x98 0230 U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS Ž 153 0x99 0231 U+017D LATIN CAPITAL LETTER Z WITH CARON ı 154 0x9a 0232 U+0131 LATIN SMALL LETTER DOTLESS I ł 155 0x9b 0233 U+0142 LATIN SMALL LETTER L WITH STROKE œ 156 0x9c 0234 U+0153 LATIN SMALL LIGATURE OE š 157 0x9d 0235 U+0161 LATIN SMALL LETTER S WITH CARON ž 158 0x9e 0236 U+017E LATIN SMALL LETTER Z WITH CARON � 159 0x9f 0237 U+FFFD UNDEFINED € 160 0xa0 0240 U+20AC EURO SIGN qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.4-ogen.c-check0000644000064100006410000000005013247541377020633 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/min-version.out0000644000064100006410000000026213247541377016571 0ustar ejbejbchecking a.pdf PDF Version: 1.6 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/unfilterable-with-crypt-before.out0000644000064100006410000000050313247541377022345 0ustar ejbejb<< /DL 30 /DecodeParms [ << /Name /StdCF >> null ] /Filter [ /Crypt /ZlateDecode ] /Length 64 /Params << /CheckSum /CreationDate (D:20121229172641-05'00') /ModDate (D:20121229172600) /Size 30 >> /Subtype /text#2fplain >>attachment1.txt: This is the first attachment. --END-- test 36 done qpdf-8.0.2/qpdf/qtest/qpdf/show-unfilterable.out0000644000064100006410000000003613247541377017754 0ustar ejbejbUnable to filter stream data. qpdf-8.0.2/qpdf/qtest/qpdf/bad29.pdf0000644000064100006410000000141513247541377015167 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /Som#00ething 1 >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad15-recover.out0000644000064100006410000000032113247541377016656 0ustar ejbejbWARNING: bad15.pdf (trailer, offset 753): treating unexpected array close token as null /QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/shallow_array-out.pdf0000644000064100006410000000146713247541377017751 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet 6 0 R >> /Type /Page >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 6 0 obj [ /PDF /Text ] endobj xref 0 7 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000266 00000 n 0000000359 00000 n 0000000466 00000 n trailer << /QTest [ /A 1 0 R /B ] /QTest2 [ /A 1 0 R /B 7 ] /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 496 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-min-1.8.5.out0000644000064100006410000000014313247541377020641 0ustar ejbejbversion: 1.8 extension level: 5 << /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.1.check0000644000064100006410000000026213247541377017153 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/lin0.out0000644000064100006410000000003313247541377015161 0ustar ejbejblin0.pdf is not linearized qpdf-8.0.2/qpdf/qtest/qpdf/linearization-large-vector-alloc.pdf0000644000064100006410000003001613247541377022615 0ustar ejbejb%PDF-1.3 % 60 0 obj << /Linearized 1 /L 12302 /H [ 1114 192 ] /O 63 /E 3631 /N 30 /T 10983 >> endobj xref 60 19 0000000015 00000 n 0000000764 00000 n 0000001114 00000 n 0000001306 00000 n 0000001454 00000 n 0000001550 00000 n 0000001658 00000 n 0000001689 00000 n 0000001763 00000 n 0000001942 00000 n 0000002077 00000 n 0000002233 00000 n 0000002511 00000 n 0000002667 00000 n 0000002820 00000 n 0000002990 00000 n 0000003179 00000 n 0000003321 00000 n 0000003476 00000 n trailer << /Root 61 0 R /Size 79 /Prev 10974 /ID [<14d7d243d6d6ad3bc3f75c7c5994346d>] >> startxref 0 %%EOF 61 0 obj << /Outlines 67 0 R /PageLabels << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /PageMode /UseOutlines /Pages 59 0 R /Type /Catalog >> endobj 62 0 obj << /Filter /FlateDecode /S 99 /Length 99 >> stream xc```b``b`a`` 6+49@h&fr`V#<$"(f`g(ueОQ{^~M Xܙ&}m# endstream endobj 63 0 obj << /Contents 64 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 64 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 0) Tj ET endstream endobj 65 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 66 0 obj [ /PDF /Text ] endobj 67 0 obj << /Count 6 /First 68 0 R /Last 69 0 R /Type /Outlines >> endobj 68 0 obj << /Count 4 /Dest [ 9 0 R /XYZ null null null ] /First 70 0 R /Last 71 0 R /Next 69 0 R /Parent 67 0 R /Title (Iss 1 -> 5: /XYZ null null null) /Type /Outline >> endobj 69 0 obj << /Dest [ 29 0 R /XYZ 66 756 3 ] /Parent 67 0 R /Prev 68 0 R /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Type /Outline >> endobj 70 0 obj << /Count -3 /Dest [ 21 0 R /Fit ] /First 74 0 R /Last 75 0 R /Next 71 0 R /Parent 68 0 R /Title (Amanda 1.1 -> 11: /Fit) /Type /Outline >> endobj 71 0 obj << /Count 2 /Dest [ 25 0 R /FitH 792 ] /First 72 0 R /Last 73 0 R /Parent 68 0 R /Prev 70 0 R /Title /Type /Outline >> endobj 72 0 obj << /Dest [ 1 0 R /FitR 66 714 180 770 ] /Next 73 0 R /Parent 71 0 R /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Type /Outline >> endobj 73 0 obj << /Dest [ 63 0 R /XYZ null null null ] /Parent 71 0 R /Prev 72 0 R /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Type /Outline >> endobj 74 0 obj << /Count -2 /Dest [ 23 0 R /FitV 100 ] /First 77 0 R /Last 78 0 R /Next 75 0 R /Parent 70 0 R /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Type /Outline >> endobj 75 0 obj << /Count 1 /Dest [ 23 0 R /XYZ null null null ] /First 76 0 R /Last 76 0 R /Parent 70 0 R /Prev 74 0 R /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Type /Outline >> endobj 76 0 obj << /Dest [ 43 0 R /XYZ null null null ] /Parent 75 0 R /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Type /Outline >> endobj 77 0 obj << /Dest [ 35 0 R /XYZ null null null ] /Next 78 0 R /Parent 74 0 R /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Type /Outline >> endobj 78 0 obj << /Dest [ 37 0 R /XYZ null null null ] /Parent 74 0 R /Prev 77 0 R /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Type /Outline >> endobj 1 0 obj << /Contents 2 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 2 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 4 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 5 0 obj << /Contents 6 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 6 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 7 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 8 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 9 0 obj << /Contents 10 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 10 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 11 0 obj << /Contents 12 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 12 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 13 0 obj << /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 14 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 15 0 obj << /Contents 16 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 16 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 17 0 obj << /Contents 18 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 18 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 19 0 obj << /Contents 20 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 20 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 21 0 obj << /Contents 22 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 22 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 23 0 obj << /Contents 24 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 24 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 25 0 obj << /Contents 26 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 26 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 27 0 obj << /Contents 28 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 28 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 29 0 obj << /Contents 30 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 30 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 31 0 obj << /Contents 32 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 32 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 33 0 obj << /Contents 34 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 34 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 35 0 obj << /Contents 36 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 36 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 37 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 38 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 39 0 obj << /Contents 40 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 40 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 41 0 obj << /Contents 42 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 42 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 43 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 44 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 45 0 obj << /Contents 46 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 46 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 47 0 obj << /Contents 48 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 48 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 49 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 50 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 51 0 obj << /Contents 52 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 52 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 53 0 obj << /Contents 54 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 54 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 55 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 56 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 57 0 obj << /Contents 58 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 58 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 59 0 obj << /Count 30 /Kids [ 63 0 R 1 0 R 3 0 R 5 0 R 7 0 R 9 0 R 11 0 R 13 0 R 15 0 R 17 0 R 19 0 R 21 0 R 23 0 R 25 0 R 27 0 R 29 0 R 31 0 R 33 0 R 35 0 R 37 0 R 39 0 R 41 0 R 43 0 R 45 0 R 47 0 R 49 0 R 51 0 R 53 0 R 55 0 R 57 0 R ] /Type /Pages >> endobj xref 0 60 0000000000 65535 f 0000003631 00000 n 0000003777 00000 n 0000003872 00000 n 0000004018 00000 n 0000004113 00000 n 0000004259 00000 n 0000004354 00000 n 0000004500 00000 n 0000004595 00000 n 0000004742 00000 n 0000004838 00000 n 0000004986 00000 n 0000005082 00000 n 0000005230 00000 n 0000005326 00000 n 0000005474 00000 n 0000005570 00000 n 0000005718 00000 n 0000005814 00000 n 0000005962 00000 n 0000006059 00000 n 0000006207 00000 n 0000006304 00000 n 0000006452 00000 n 0000006549 00000 n 0000006697 00000 n 0000006794 00000 n 0000006942 00000 n 0000007039 00000 n 0000007187 00000 n 0000007284 00000 n 0000007432 00000 n 0000007529 00000 n 0000007677 00000 n 0000007774 00000 n 0000007922 00000 n 0000008019 00000 n 0000008167 00000 n 0000008264 00000 n 0000008412 00000 n 0000008509 00000 n 0000008657 00000 n 0000008754 00000 n 0000008902 00000 n 0000008999 00000 n 0000009147 00000 n 0000009244 00000 n 0000009392 00000 n 0000009489 00000 n 0000009637 00000 n 0000009734 00000 n 0000009882 00000 n 0000009979 00000 n 0000010127 00000 n 0000010224 00000 n 0000010372 00000 n 0000010469 00000 n 0000010617 00000 n 0000010714 00000 n trailer << /Size 60 /ID [<14d7d243d6d6ad3bc3f75c7c5994346d>] >> startxref 216 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.9.c-check0000644000064100006410000000005013247541377017353 0ustar ejbejbversion: 1.3 linearized: 1 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/split-pages-stdout.out0000644000064100006410000000021713247541377020073 0ustar ejbejb qpdf: --split-pages may not be used when writing to standard output Usage: qpdf [options] infile outfile For detailed help, run qpdf --help qpdf-8.0.2/qpdf/qtest/qpdf/03_split-exp.zdf0000644000064100006410000000136313247541377016531 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TcM,. .endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 6 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000398 00000 n trailer << /Root 1 0 R /Size 6 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 497 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/enc-R2,V1,U=view,O=master.pdf0000644000064100006410000004135613247541377020504 0ustar ejbejb%PDF-1.4 % 91 0 obj << /Linearized 1 /O 94 /H [ 1332 210 ] /L 17134 /E 4175 /N 30 /T 15196 >> endobj xref 91 22 0000000016 00000 n 0000000805 00000 n 0000001179 00000 n 0000001542 00000 n 0000001737 00000 n 0000001817 00000 n 0000002006 00000 n 0000002147 00000 n 0000002314 00000 n 0000002490 00000 n 0000002655 00000 n 0000002817 00000 n 0000003000 00000 n 0000003202 00000 n 0000003351 00000 n 0000003515 00000 n 0000003680 00000 n 0000003812 00000 n 0000003833 00000 n 0000003949 00000 n 0000001332 00000 n 0000001521 00000 n trailer << /Size 113 /Info 89 0 R /Encrypt 93 0 R /Root 92 0 R /Prev 15186 /ID[<66d36a30a97e0f16f39955c6221e0c2a>] >> startxref 0 %%EOF 92 0 obj << /PageLabels << /Nums [ 0 << /P ()>> 2 << /S /r /St 1 >> 7 << /P ()>> 9 << /S /r /St 6 >> 11 << /P ()>> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P ()>> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /Pages 88 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 95 0 R /Metadata 90 0 R >> endobj 93 0 obj << /Filter /Standard /R 2 /O (WD# s~2Eei3a&L) /U (\)%[[ @ sxW\nqR) /P -64 /V 1 /Length 40 >> endobj 111 0 obj << /S 145 /O 189 /Filter /FlateDecode /Length 112 0 R >> stream M;-pO5:ݗԥ #Erǟ2̣j\6t: =BbIQ H" E:n endstream endobj 112 0 obj 95 endobj 94 0 obj << /Contents 107 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 95 0 obj << /Type /Outlines /First 96 0 R /Last 97 0 R /Count 6 >> endobj 96 0 obj << /Type /Outline /Title (Xd%MJ#/6m1]t ) /Parent 95 0 R /Count 4 /Next 97 0 R /First 98 0 R /Last 99 0 R /Dest [ 13 0 R /XYZ null null null ] >> endobj 97 0 obj << /Type /Outline /Title (*m̤pA, ,h ) /Parent 95 0 R /Prev 96 0 R /Dest [ 43 0 R /XYZ 66 756 3 ] >> endobj 98 0 obj << /Type /Outline /Title (EdVW013) /Parent 96 0 R /Next 99 0 R /First 102 0 R /Last 103 0 R /Count -3 /Dest [ 31 0 R /Fit ] >> endobj 99 0 obj << /Type /Outline /Title (\\NBi!KT) /Parent 96 0 R /Prev 98 0 R /First 100 0 R /Last 101 0 R /Count 2 /Dest [ 37 0 R /FitH 792 ] >> endobj 100 0 obj << /Type /Outline /Title (?y_2rҨOO]7f\n {+&) /Parent 99 0 R /Next 101 0 R /Dest [ 1 0 R /FitR 66 714 180 770 ] >> endobj 101 0 obj << /Type /Outline /Title (Kp]#\\xz%j5"x"4p/) /Parent 99 0 R /Prev 100 0 R /Dest [ 94 0 R /XYZ null null null ] >> endobj 102 0 obj << /Type /Outline /Title (Jﻑ~ mIiҵY0H.e_) /Parent 98 0 R /Next 103 0 R /First 105 0 R /Last 106 0 R /Count -2 /Dest [ 34 0 R /FitV 100 ] >> endobj 103 0 obj << /Type /Outline /Title (dd%U2U1d8z8i> endobj 104 0 obj << /Type /Outline /Title (ob*sNV6|`8,a@fTE) /Parent 103 0 R /Dest [ 64 0 R /XYZ null null null ] >> endobj 105 0 obj << /Type /Outline /Title (5hhī> endobj 106 0 obj << /Type /Outline /Title (#0B,\n}hsn!,7gZ3k) /Parent 102 0 R /Prev 105 0 R /Dest [ 55 0 R /XYZ null null null ] >> endobj 107 0 obj << /Filter /FlateDecode /Length 108 0 R >> stream v=]GR02sO|hɪƗ+ .)0d-sD endstream endobj 108 0 obj 52 endobj 109 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 110 0 obj [ /PDF /Text ] endobj 1 0 obj << /Contents 2 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 2 0 obj << /Filter /FlateDecode /Length 3 0 R >> stream v[S T v>w 48 Ʋw"ڦIlȚld endstream endobj 3 0 obj 52 endobj 4 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 5 0 obj << /Filter /FlateDecode /Length 6 0 R >> stream 16k5z |̴8ePM4ieB^=5e4o endstream endobj 6 0 obj 52 endobj 7 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 8 0 obj << /Filter /FlateDecode /Length 9 0 R >> stream tR[mȁ<DBWVK /_ɩ熻g05 endstream endobj 9 0 obj 52 endobj 10 0 obj << /Contents 11 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 11 0 obj << /Filter /FlateDecode /Length 12 0 R >> stream l+t]lru&ί!?62 aGн Xc7i endstream endobj 12 0 obj 52 endobj 13 0 obj << /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 14 0 obj << /Filter /FlateDecode /Length 15 0 R >> stream ˭>;/D  -3Q08I[d$@eucW endstream endobj 15 0 obj 52 endobj 16 0 obj << /Contents 17 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 17 0 obj << /Filter /FlateDecode /Length 18 0 R >> stream 3ϮugĬ5?vo 9*]$+\hdՒc}+)rp endstream endobj 18 0 obj 52 endobj 19 0 obj << /Contents 20 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 20 0 obj << /Filter /FlateDecode /Length 21 0 R >> stream `\2׫ʣlrՃ|81>1]U25>r. endstream endobj 21 0 obj 52 endobj 22 0 obj << /Contents 23 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 23 0 obj << /Filter /FlateDecode /Length 24 0 R >> stream ]{C#A:6~O&p:P#v&܁Bo2=c] endstream endobj 24 0 obj 52 endobj 25 0 obj << /Contents 26 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 26 0 obj << /Filter /FlateDecode /Length 27 0 R >> stream p}l[XERW?Dʣ&Oqxbbi*s`^,E!" endstream endobj 27 0 obj 52 endobj 28 0 obj << /Contents 29 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 29 0 obj << /Filter /FlateDecode /Length 30 0 R >> stream B!y(Gc{VRVEd9E^!@6@r|a endstream endobj 30 0 obj 53 endobj 31 0 obj << /Contents 32 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 32 0 obj << /Filter /FlateDecode /Length 33 0 R >> stream s͌Z'E×6*∶4/)Xvj aCV㬡'u endstream endobj 33 0 obj 53 endobj 34 0 obj << /Contents 35 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 35 0 obj << /Filter /FlateDecode /Length 36 0 R >> stream |6Dla2\5]߃[x}&4>U8$pj/W endstream endobj 36 0 obj 53 endobj 37 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 38 0 obj << /Filter /FlateDecode /Length 39 0 R >> stream జ1ۗͻ;: ǶخKLg-$ҏ& endstream endobj 39 0 obj 53 endobj 40 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 41 0 obj << /Filter /FlateDecode /Length 42 0 R >> stream Z,\l@aMJ2И0VFPU endstream endobj 42 0 obj 53 endobj 43 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 44 0 obj << /Filter /FlateDecode /Length 45 0 R >> stream K3bfTxYde\&|N}.:kyqwvHt endstream endobj 45 0 obj 53 endobj 46 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 47 0 obj << /Filter /FlateDecode /Length 48 0 R >> stream LtEᩊ0/yy'" eJN!4 =0 endstream endobj 48 0 obj 53 endobj 49 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 50 0 obj << /Filter /FlateDecode /Length 51 0 R >> stream T;47= ?knx>-MPE-UYdNMK ʧ endstream endobj 51 0 obj 53 endobj 52 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 53 0 obj << /Filter /FlateDecode /Length 54 0 R >> stream "cjjzb[֋?/"iZP7/٫"),L^EͭCvM endstream endobj 54 0 obj 53 endobj 55 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 56 0 obj << /Filter /FlateDecode /Length 57 0 R >> stream H-h..ZPM#E\~NuF#;&dmONl endstream endobj 57 0 obj 53 endobj 58 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 59 0 obj << /Filter /FlateDecode /Length 60 0 R >> stream ]%Lѽ˓NĀ "l #,A2h2fP&) endstream endobj 60 0 obj 53 endobj 61 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 62 0 obj << /Filter /FlateDecode /Length 63 0 R >> stream TGwiYNe៲ yb"' $KLu}H endstream endobj 63 0 obj 53 endobj 64 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 65 0 obj << /Filter /FlateDecode /Length 66 0 R >> stream ޵aHH+b>p~]f(~7/s{ endstream endobj 66 0 obj 53 endobj 67 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 68 0 obj << /Filter /FlateDecode /Length 69 0 R >> stream P 7iG|u=UoF5 /|}ʅxY/He endstream endobj 69 0 obj 53 endobj 70 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 71 0 obj << /Filter /FlateDecode /Length 72 0 R >> stream o4B'ڕ@jl0dA P|1 <_IJ~%%H endstream endobj 72 0 obj 52 endobj 73 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 74 0 obj << /Filter /FlateDecode /Length 75 0 R >> stream ClOPI UR=i[{LHL"gw!R6ixEAk endstream endobj 75 0 obj 53 endobj 76 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 77 0 obj << /Filter /FlateDecode /Length 78 0 R >> stream [if_Oi9\@j%CgJ endstream endobj 78 0 obj 53 endobj 79 0 obj << /Contents 80 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 80 0 obj << /Filter /FlateDecode /Length 81 0 R >> stream 6žQƸ5 וR0^@ # LVX endstream endobj 81 0 obj 53 endobj 82 0 obj << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 83 0 obj << /Filter /FlateDecode /Length 84 0 R >> stream mL2U !';ڬGј%rRl'M!0ֺ L endstream endobj 84 0 obj 53 endobj 85 0 obj << /Contents 86 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 86 0 obj << /Filter /FlateDecode /Length 87 0 R >> stream A-RY`ׁke d{s_8׮٘0msG\Rw endstream endobj 87 0 obj 53 endobj 88 0 obj << /Count 30 /Kids [ 94 0 R 1 0 R 4 0 R 7 0 R 10 0 R 13 0 R 16 0 R 19 0 R 22 0 R 25 0 R 28 0 R 31 0 R 34 0 R 37 0 R 40 0 R 43 0 R 46 0 R 49 0 R 52 0 R 55 0 R 58 0 R 61 0 R 64 0 R 67 0 R 70 0 R 73 0 R 76 0 R 79 0 R 82 0 R 85 0 R ] /Type /Pages >> endobj 89 0 obj << /ModDate (7e?"e5=Nvy) /CreationDate (7e?"e5:Lvy) >> endobj 90 0 obj << /Type /Metadata /Subtype /XML /Length 770 >> stream ipkHdt$Sz9\Xt1r> L!ܦbF.;Vn}IbÊڳI^@76/5C~_tpb&^/N4 Ցm~(98rPW'Oںfra}%Z%R(,ZxMk'(/""ԓxS\1hc3u `A$]RI7<*ŦE KNpvbhþ)-1="K hn] >> startxref 173 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/unfilterable.pdf0000644000064100006410000000143713247541377016746 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet 6 0 R >> /Type /Page >> endobj 4 0 obj << /Length 48 /Filter /PlateDecode >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 5 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 6 0 obj [ /PDF /Text ] endobj xref 0 7 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000266 00000 n 0000000384 00000 n 0000000491 00000 n trailer << /Root 1 0 R /Size 7 /ID [] >> startxref 521 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/c-check-warn-in.pdf0000644000064100006410000000137413247541377017140 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R >> startxref 1556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.4.check0000644000064100006410000000026213247541377021144 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/c-r5-in.pdf0000644000064100006410000002570613247541377015451 0ustar ejbejb%PDF-1.7 % 1 0 obj << /Extensions << /ADBE << /BaseVersion /1.7 /ExtensionLevel 3 >> >> /Outlines 3 0 R /PageLabels 15 0 R /PageMode /UseOutlines /Pages 16 0 R /Type /Catalog >> endobj 2 0 obj << /Type /ObjStm /Length 640 /Filter /FlateDecode /N 13 /First 87 >> stream *8FTbp~f՟g7z3-B|[~}\Dmր$BK`6s v,zbU(uرrܱ—sqFDGTBBkh>a Z^T1#rd&ZXI#!gIY(GFIXmڦ7^DUyWp*\c D]Fh65Uj?>7l}w1q0:\f'V @^IlVѐݪ]>\)wߔf^>" <iThCZk㠘a)'Y"(TBzendstream endobj 16 0 obj << /Count 30 /Kids [ 26 0 R 25 0 R 27 0 R 28 0 R 29 0 R 17 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 19 0 R 21 0 R 20 0 R 35 0 R 18 0 R 36 0 R 37 0 R 22 0 R 23 0 R 38 0 R 39 0 R 24 0 R 40 0 R 41 0 R 42 0 R 43 0 R 44 0 R 45 0 R 46 0 R ] /Type /Pages >> endobj 17 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 18 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 19 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 20 0 obj << /Contents 52 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 21 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 22 0 obj << /Contents 54 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 23 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 24 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 25 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 26 0 obj << /Contents 58 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 27 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 28 0 obj << /Contents 60 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 29 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 30 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 31 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 32 0 obj << /Contents 64 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 33 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 34 0 obj << /Contents 66 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 35 0 obj << /Contents 67 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 36 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 37 0 obj << /Contents 69 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 38 0 obj << /Contents 70 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 39 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 40 0 obj << /Contents 72 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 41 0 obj << /Contents 73 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 42 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 43 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 44 0 obj << /Contents 76 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 45 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 46 0 obj << /Contents 78 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 47 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~AQq˷Q`s5gіK|Y]Zg-Sc7L%E@V-p-Ьoendstream endobj 48 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 49 0 obj [ /PDF /Text ] endobj 50 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~AQq˷Q`s5gіK|Y]Z i;Ma/Y>,5V,endstream endobj 51 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~AQq˷Q`s5gіK|Y]ZQw%ļOE|J2 (6eendstream endobj 52 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~AQq˷Q`s5gіK|Y]Z#ߤ[DwLлvi% zendstream endobj 53 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~AQq˷Q`s5gіK|Y]ZXսNgV%:89rӞ)endstream endobj 54 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~AQq˷Q`s5gіK|Y]Z;/ VȰi@fk} *-endstream endobj 55 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~AQq˷Q`s5gіK|Y]Zr/(=3.?hBbi\g" l8hendstream endobj 56 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~AQq˷Q`s5gіK|Y]Z׺F|l:> stream *8FTbp~AQq˷Q`s5gіK|Y]Z*% VV'_QE --cˢJ4c3endstream endobj 58 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~AQq˷Q`s5gіK|Y]ZYl3Yh-jXTOax:M\njKendstream endobj 59 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~AQq˷Q`s5gіK|Y]ZqyQmhp(qNRLa6 wEԹ+6endstream endobj 60 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~AQq˷Q`s5gіK|Y]ZY46}S7@$\)vCwe+endstream endobj 61 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~AQq˷Q`s5gіK|Y]ZV~]mSpw;%n1P832id6endstream endobj 62 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~AQq˷Q`s5gіK|Y]ZS d)S?8+B?Q w!¨endstream endobj 63 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~AQq˷Q`s5gіK|Y]Z+/Ѣ&<'Pݪ*7yendstream endobj 64 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~AQq˷Q`s5gіK|Y]ZpgZ)mF];PZendstream endobj 65 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~AQq˷Q`s5gіK|Y]ZΒ9;Ds2fh[,-7Msk'ne=endstream endobj 66 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~AQq˷Q`s5gіK|Y]ZL)xv)ibv'w6ӕߕ&endstream endobj 67 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~AQq˷Q`s5gіK|Y]ZE;D Z~f$ ,G%OwPAendstream endobj 68 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~AQq˷Q`s5gіK|Y]Z;X˙iس`J2;ߚ]N^Cendstream endobj 69 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~AQq˷Q`s5gіK|Y]Zf>* W-l%C|X_? ~Lendstream endobj 70 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~AQq˷Q`s5gіK|Y]ZlxF!HkQ@9z+endstream endobj 71 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~AQq˷Q`s5gіK|Y]ZPun< T6,ҖK;L@nendstream endobj 72 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~AQq˷Q`s5gіK|Y]Z-xh /[^Fh< OZendstream endobj 73 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~AQq˷Q`s5gіK|Y]Z\EKd")<kSޏKendstream endobj 74 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~AQq˷Q`s5gіK|Y]Z@+ 8[rmVR[N9endstream endobj 75 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~AQq˷Q`s5gіK|Y]Zi9tKYd@RB~)endstream endobj 76 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~AQq˷Q`s5gіK|Y]ZJ>П.DY j'M$hX;Xendstream endobj 77 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~AQq˷Q`s5gіK|Y]ZׅS7Ǔq'n1mh1P_endstream endobj 78 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~AQq˷Q`s5gіK|Y]Zљeqi=Z-ql)/`S endstream endobj 79 0 obj << /CF << /StdCF << /AuthEvent /DocOpen /CFM /AESV3 /Length 32 >> >> /Filter /Standard /Length 256 /O <584a5353c424c1f963b6b5f0a092d720f07bf120eb329add8663fe33a8589adcad4fca2653793d0994948f7f6f30a035> /OE <50b2415e8dc204235c837e85b6a336ae857b366ede9e9cc7d30657db00033ec3> /P -2052 /Perms <89719ce226a730c2189960bb533450ad> /R 5 /StmF /StdCF /StrF /StdCF /U /UE <86560d35a15c067457dcbfb57edd495cb0f5c2c1ce77c9cf462a496ce484ccfd> /V 5 >> endobj 80 0 obj << /Type /XRef /Length 76 /Filter /FlateDecode /DecodeParms << /Columns 4 /Predictor 12 >> /W [ 1 2 1 ] /Root 1 0 R /Size 81 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] /Encrypt 79 0 R >> stream xcb&F~&u +H.y&FN)S@FMd.A%t+ĒsиDHPˤ(5 endstream endobj startxref 10855 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.11.check0000644000064100006410000000067213247541377021227 0ustar ejbejbchecking a.pdf PDF Version: 1.5 R = 3 P = -4 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed File is linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/good17.out0000644000064100006410000000017113247541377015422 0ustar ejbejb/QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/good15.out0000644000064100006410000000017313247541377015422 0ustar ejbejb/QTest is direct and has type name (7) /QTest is a name with value /oink unparse: /oink unparseResolved: /oink test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-other-min-1.7.2.out0000644000064100006410000000023513247541377021756 0ustar ejbejbversion: 1.7 extension level: 2 << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.8.c-check0000644000064100006410000000005013247541377017375 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/a-01-split-exp.zdf0000644000064100006410000000174513247541377016667 0ustar ejbejb%PDF-1.4 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 53 >> stream x 휏nyA?(=2?&ꍕ>(ٙ aȊ1endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 6 0 obj << /Filter /Standard /Length 128 /O <2a2f0a1990192c60114730bdcd39f37828a53c89a340dd473c85299dc5258e1c> /P -4 /R 3 /U /V 2 >> endobj xref 0 7 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000398 00000 n 0000000497 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] /Encrypt 6 0 R >> startxref 704 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/minimal.pdf0000644000064100006410000000137313247541377015717 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.2-ogen.check0000644000064100006410000000026213247541377020416 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/bad-data-out.pdf0000644000064100006410000000143513247541377016532 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet 6 0 R >> /Type /Page >> endobj 4 0 obj << /Filter /LZWDecode /Length 48 >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 5 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 6 0 obj [ /PDF /Text ] endobj xref 0 7 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000266 00000 n 0000000382 00000 n 0000000489 00000 n trailer << /Root 1 0 R /Size 7 /ID [<4a5e383aee3970ed44eb87234d7f93f1><31415926535897932384626433832795>] >> startxref 519 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad31-recover.out0000644000064100006410000000057313247541377016665 0ustar ejbejb/QTest is indirect and has type stream (10) /QTest is a stream. Dictionary: << /Filter [ /Oink /Moo /FlateDecode ] /Length 123 >> Raw stream data: x%11 b;t4| wXID8G>rQu O E:IWPlII)rp4~;As/҅jcszT.?u<*6 Uncompressed stream data: Stream data is not filterable. unparse: 7 0 R unparseResolved: 7 0 R test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/issue-149.pdf0000644000064100006410000000322513247541377015732 0ustar ejbejb%PDF-1.7 %Á∑·∂ % vim: set tw=76 ts=2 et : % convert with: % ./fixlengths < hello.txt > hello.pdf ; ./genxref hello.pdf 1 0 obj << /Type /Catalog /Outlines 6 0 R /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [3 0 R] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 595.276 841.89] /Contents 4 0 R /Resources << /ProcSet [/PDF /Text] /Font << /F1 5 0 R >> >> >> endobj 4 0 obj << /Length 36 >> stream BT 80 100 Td /F1 48 Tf (foo) Tj ET endstream endobj 5 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /MacRomanEncoding >> endobj 6 0 obj << /Type /Outlines /Count 0 >> endobj xref 0 7 0000000000 65535 f 0000000125 00000 n 0000000208 00000 n 0000000283 00000 n 0000000492 00000 n 0000000583 00000 n 0000000721 00000 n trailer << /Size 7 /Prev 1516 /Root 1 0 R >> startxref 779%%EOF % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1 1 obj << /Type /Catalog /Outlines 6 0 R /Pages 2 1 R >> endobj 2 1 obj << /Type /Pages /Kids [3 1 R] /Count 1 >> endobj 3 1 obj << /Type /Page /Parent 2 1 R /MediaBox [0 0 595.276 841.89] /Contents 4 1 R /Resources << /ProcSet [/PDF /Text] /Font << /F1 5 0 R >> >> >> endobj 4 1 obj << /Length 36 >> stream BT 80 100 Td /F1 48 Tf (bar) Tj ET endstream endobj xref 1 4 0000001058 00001 n 0000001141 00001 n 0000001216 00001 n 0000001425 00001 n trailer << /Size 11 /Prev 779 /Root 1 1 R >> startxref 1516 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.7-ogen.c-check0000644000064100006410000000005013247541377020277 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.7.check0000644000064100006410000000026213247541377017475 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/good14.qdf0000644000064100006410000000550113247541377015364 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 14 0 R /Type /Catalog >> endobj %% Original object ID: 7 0 2 0 obj << /Length 3 0 R >> stream A %here is a comment B % here is another with CR A B one two three lines (string with CRNL) and another indentation (B%DEF)() <8A 8B><61 62><8c>
) > (a\000b) <4D4F4F> endstream endobj %QDF: ignore_newline 3 0 obj 181 endobj %% Original object ID: 8 0 4 0 obj << /Length 5 0 R >> stream This stream does end with a newline. // tests: // bad tokens preserved // comments // indentation // CR/NL inside string literal -- changed to \r or \n, newline follows // whitespace in hexstring (removed) // strings normalized // newlines normalized // names normalized // trailing space (preserved) // final newline added /bad#name /g#6f#6Fd name /bad#00name endstream endobj 5 0 obj 385 endobj %% Original object ID: 10 0 6 0 obj << /Length 7 0 R >> stream (This stream ends with a \001 bad token endstream endobj 7 0 obj 40 endobj %% Original object ID: 11 0 8 0 obj << /Length 9 0 R >> stream > stream (ends with a name) /ThisMustBeLast endstream endobj %QDF: ignore_newline 11 0 obj 34 endobj %% Original object ID: 13 0 12 0 obj << /Length 13 0 R >> stream % This stream has an inline image marker that is not terminated <506f7 461746f> BI ID <506f7 461746f> endstream endobj 13 0 obj 103 endobj %% Original object ID: 2 0 14 0 obj << /Count 1 /Kids [ 15 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 15 0 obj << /Contents 16 0 R /MediaBox [ 0 0 612 792 ] /Parent 14 0 R /Resources << /Font << /F1 18 0 R >> /ProcSet 19 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 16 0 obj << /Length 17 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 17 0 obj 44 endobj %% Original object ID: 6 0 18 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 5 0 19 0 obj [ /PDF /Text ] endobj xref 0 20 0000000000 65535 f 0000000052 00000 n 0000000134 00000 n 0000000392 00000 n 0000000439 00000 n 0000000879 00000 n 0000000927 00000 n 0000001022 00000 n 0000001069 00000 n 0000001151 00000 n 0000001197 00000 n 0000001310 00000 n 0000001358 00000 n 0000001518 00000 n 0000001566 00000 n 0000001677 00000 n 0000001924 00000 n 0000002025 00000 n 0000002072 00000 n 0000002218 00000 n trailer << /QStreams [ 2 0 R 4 0 R 6 0 R 8 0 R 10 0 R 12 0 R ] /Root 1 0 R /Size 20 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 2254 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.8-ogen.c-check0000644000064100006410000000005013247541377020637 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/c-min-version.out0000644000064100006410000000007313247541377017011 0ustar ejbejbversion: 1.7 extension level: 8 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.12-ogen.c-check0000644000064100006410000000005013247541377020376 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/zero-offset.pdf0000644000064100006410000000147413247541377016536 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj 4 0 obj << /Length 48 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 5 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 7 0 obj [ /PDF /Text ] endobj xref 0 8 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000266 00000 n 0000000384 00000 n 0000000000 00000 n 0000000491 00000 n trailer << /Z 6 0 R /Root 1 0 R /Size 8 /ID [<071a57932bf06f81f86a16b7702f5cc9><071a57932bf06f81f86a16b7702f5cc9>] >> startxref 521 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.10.c-check0000644000064100006410000000040613247541377017430 0ustar ejbejbversion: 1.4 linearized: 0 encrypted: 1 user password: extract for accessibility: 1 extract for any purpose: 1 print low resolution: 1 print high resolution: 1 modify document assembly: 1 modify forms: 1 modify annotations: 1 modify other: 1 modify anything: 1 qpdf-8.0.2/qpdf/qtest/qpdf/extensions-other-min-1.8.0.out0000644000064100006410000000015513247541377021065 0ustar ejbejbversion: 1.8 extension level: 0 << /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/test4-2.out0000644000064100006410000000005613247541377015526 0ustar ejbejbattempt to make a stream into a direct object qpdf-8.0.2/qpdf/qtest/qpdf/c-decrypt-with-owner.pdf0000644000064100006410000002270413247541377020265 0ustar ejbejb%PDF-1.5 % 1 0 obj << /Outlines 3 0 R /PageLabels 15 0 R /PageMode /UseOutlines /Pages 16 0 R /Type /Catalog >> endobj 2 0 obj << /Type /ObjStm /Length 610 /Filter /FlateDecode /N 13 /First 87 >> stream x]o0r9v츪*! $41!>@]QѵS"N/;Q)=OcRd@ (L!?"~,w<$H;Vz1BzX1Z厳 @.~ y߭WWlS\:ʂu_`_ׁx~~wyXS6iW.fNjlKk0ldj{pOUjjs %]}z[^vY |01Ϋ|ȁ^z/&^sCt;7`YH0xstH3]y!j)Dc". \F75HQ~N̛9Σ4z9Tıl ԙ &`h%!z5;qQI/?^:;9|@q W){Pt8CBzZ֪$9F'=NR{bO"Q #m$v򍿓=C0g\nc[,ciS,F$Ez_2B1s૯I}uxD60:K#` m+@4OȘ%E?: ?p~?-Kendstream endobj 16 0 obj << /Count 30 /Kids [ 26 0 R 25 0 R 27 0 R 28 0 R 29 0 R 17 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 19 0 R 21 0 R 20 0 R 35 0 R 18 0 R 36 0 R 37 0 R 22 0 R 23 0 R 38 0 R 39 0 R 24 0 R 40 0 R 41 0 R 42 0 R 43 0 R 44 0 R 45 0 R 46 0 R ] /Type /Pages >> endobj 17 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 18 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 19 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 20 0 obj << /Contents 52 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 21 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 22 0 obj << /Contents 54 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 23 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 24 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 25 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 26 0 obj << /Contents 58 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 27 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 28 0 obj << /Contents 60 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 29 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 30 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 31 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 32 0 obj << /Contents 64 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 33 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 34 0 obj << /Contents 66 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 35 0 obj << /Contents 67 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 36 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 37 0 obj << /Contents 69 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 38 0 obj << /Contents 70 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 39 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 40 0 obj << /Contents 72 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 41 0 obj << /Contents 73 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 42 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 43 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 44 0 obj << /Contents 76 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 45 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 46 0 obj << /Contents 78 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 47 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr F endstream endobj 48 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 49 0 obj [ /PDF /Text ] endobj 50 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr d Nendstream endobj 51 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr @ Jendstream endobj 52 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr R Lendstream endobj 53 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr I Kendstream endobj 54 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W0Tr  Qendstream endobj 55 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W0Tr  Rendstream endobj 56 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr S Lendstream endobj 57 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr " endstream endobj 58 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr  endstream endobj 59 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr + endstream endobj 60 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr 4 endstream endobj 61 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr = endstream endobj 62 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr O endstream endobj 63 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr X endstream endobj 64 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,WTr a endstream endobj 65 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,WTr j !endstream endobj 66 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr 7 Iendstream endobj 67 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr [ Mendstream endobj 68 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr m Oendstream endobj 69 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr v Pendstream endobj 70 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr A Jendstream endobj 71 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr J Kendstream endobj 72 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr \ Mendstream endobj 73 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,i*dqpe Nendstream endobj 74 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr n Oendstream endobj 75 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr w Pendstream endobj 76 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr  Qendstream endobj 77 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W0Tr  Rendstream endobj 78 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W0Tr  Sendstream endobj 79 0 obj << /Type /XRef /Length 83 /Filter /FlateDecode /DecodeParms << /Columns 4 /Predictor 12 >> /W [ 1 2 1 ] /Root 1 0 R /Size 80 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> stream xcb&F~&b`$d '(QBJWA*  $(F4YTV,$5 endstream endobj startxref 9327 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/split-exp-10.Pdf0000644000064100006410000000136413247541377016374 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 54 >> stream xs Qw3T04UIS07" ̼TCM,." \endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 6 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000399 00000 n trailer << /Root 1 0 R /Size 6 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 498 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/pages-warning.out0000644000064100006410000000024313247541377017064 0ustar ejbejbWARNING: lin-special.pdf (Pages object: object 6 0): Unknown key /Quack in /Pages object is being discarded as a result of flattening the /Pages tree test 23 done qpdf-8.0.2/qpdf/qtest/qpdf/show-xref-by-id.out0000644000064100006410000000041113247541377017243 0ustar ejbejbObject is stream. Dictionary: << /DecodeParms << /Columns 4 /Predictor 12 >> /Encrypt 11 0 R /Filter /FlateDecode /ID [ ] /Info 3 0 R /Length 52 /Root 1 0 R /Size 13 /Type /XRef /W [ 1 2 1 ] >> qpdf-8.0.2/qpdf/qtest/qpdf/lin5.pdf0000644000064100006410000006551013247541377015143 0ustar ejbejb%PDF-1.4 % 154 0 obj << /Linearized 1 /O 156 /H [ 1149 266 ] /L 27464 /E 4213 /N 30 /T 24265 >> endobj xref 154 21 0000000016 00000 n 0000000771 00000 n 0000001415 00000 n 0000001627 00000 n 0000001710 00000 n 0000001904 00000 n 0000002048 00000 n 0000002218 00000 n 0000002510 00000 n 0000002675 00000 n 0000002838 00000 n 0000003022 00000 n 0000003225 00000 n 0000003374 00000 n 0000003538 00000 n 0000003702 00000 n 0000003834 00000 n 0000003950 00000 n 0000003971 00000 n 0000001149 00000 n 0000001393 00000 n trailer << /Size 175 /Info 152 0 R /Root 155 0 R /Prev 24254 /ID[<73525f8f7371ef62e39f69eb78fbd18e><23170d4a763741aa3e2295168267e7c3>] >> startxref 0 %%EOF 155 0 obj << /PageLabels << /Nums [ 0 << /P ()>> 2 << /S /r /St 1 >> 7 << /P ()>> 9 << /S /r /St 6 >> 11 << /P ()>> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P ()>> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /Pages 151 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 157 0 R /Metadata 153 0 R >> endobj 173 0 obj << /S 145 /T 192 /O 249 /Filter /FlateDecode /Length 174 0 R >> stream Hb```f``e`e``Lfa@(Q7V6*`ǂ C-bA(f`e|[8TQ`^@FgXf CX؇LIj Ϝ1c o ģ>91% endstream endobj 174 0 obj 143 endobj 156 0 obj << /Contents 169 0 R /MediaBox [ 0 0 612 792 ] /Parent 151 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 88 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 157 0 obj << /Type /Outlines /First 158 0 R /Last 159 0 R /Count 6 >> endobj 158 0 obj << /Type /Outline /Title (Iss 1 -> 5: /XYZ null null null) /Parent 157 0 R /Count 4 /Next 159 0 R /First 160 0 R /Last 161 0 R /Dest [ 13 0 R /XYZ null null null ] >> endobj 159 0 obj << /Type /Outline /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Parent 157 0 R /Prev 158 0 R /Dest [ 43 0 R /XYZ 66 756 3 ] >> endobj 160 0 obj << /Type /Outline /Title (Amanda 1.1 -> 11: /Fit) /Parent 158 0 R /Next 161 0 R /First 164 0 R /Last 165 0 R /Count -3 /Dest [ 31 0 R /Fit ] >> endobj 161 0 obj << /Type /Outline /Title /Parent 158 0 R /Prev 160 0 R /First 162 0 R /Last 163 0 R /Count 2 /Dest [ 37 0 R /FitH 792 ] >> endobj 162 0 obj << /Type /Outline /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Parent 161 0 R /Next 163 0 R /Dest [ 1 0 R /FitR 66 714 180 770 ] >> endobj 163 0 obj << /Type /Outline /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Parent 161 0 R /Prev 162 0 R /Dest [ 156 0 R /XYZ null null null ] >> endobj 164 0 obj << /Type /Outline /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Parent 160 0 R /Next 165 0 R /First 167 0 R /Last 168 0 R /Count -2 /Dest [ 34 0 R /FitV 100 ] >> endobj 165 0 obj << /Type /Outline /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Parent 160 0 R /Prev 164 0 R /First 166 0 R /Last 166 0 R /Count 1 /Dest [ 34 0 R /XYZ null null null ] >> endobj 166 0 obj << /Type /Outline /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Parent 165 0 R /Dest [ 64 0 R /XYZ null null null ] >> endobj 167 0 obj << /Type /Outline /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Parent 164 0 R /Next 168 0 R /Dest [ 52 0 R /XYZ null null null ] >> endobj 168 0 obj << /Type /Outline /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Parent 164 0 R /Prev 167 0 R /Dest [ 55 0 R /XYZ null null null ] >> endobj 169 0 obj << /Filter /FlateDecode /Length 171 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0  endstream endobj 170 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 171 0 obj 52 endobj 172 0 obj [ /PDF /Text ] endobj 1 0 obj << /Contents 2 0 R /MediaBox [ 0 0 612 792 ] /Parent 151 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 90 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 2 0 obj << /Filter /FlateDecode /Length 3 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0"  endstream endobj 3 0 obj 52 endobj 4 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 151 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 92 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 5 0 obj << /Filter /FlateDecode /Length 6 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0+  endstream endobj 6 0 obj 52 endobj 7 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 151 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 94 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 8 0 obj << /Filter /FlateDecode /Length 9 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 04  endstream endobj 9 0 obj 52 endobj 10 0 obj << /Contents 11 0 R /MediaBox [ 0 0 612 792 ] /Parent 151 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 96 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 11 0 obj << /Filter /FlateDecode /Length 12 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0=  endstream endobj 12 0 obj 52 endobj 13 0 obj << /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 151 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 98 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 14 0 obj << /Filter /FlateDecode /Length 15 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0F  endstream endobj 15 0 obj 52 endobj 16 0 obj << /Contents 17 0 R /MediaBox [ 0 0 612 792 ] /Parent 151 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 100 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 17 0 obj << /Filter /FlateDecode /Length 18 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0O  endstream endobj 18 0 obj 52 endobj 19 0 obj << /Contents 20 0 R /MediaBox [ 0 0 612 792 ] /Parent 151 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 102 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 20 0 obj << /Filter /FlateDecode /Length 21 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0X  endstream endobj 21 0 obj 52 endobj 22 0 obj << /Contents 23 0 R /MediaBox [ 0 0 612 792 ] /Parent 151 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 104 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 23 0 obj << /Filter /FlateDecode /Length 24 0 R >> stream Hr RPw3T02QI͍@!$/I,WTr 0a endstream endobj 24 0 obj 52 endobj 25 0 obj << /Contents 26 0 R /MediaBox [ 0 0 612 792 ] /Parent 151 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 106 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 26 0 obj << /Filter /FlateDecode /Length 27 0 R >> stream Hr RPw3T02QI͍@!$/I,WTr 0j ! endstream endobj 27 0 obj 52 endobj 28 0 obj << /Contents 29 0 R /MediaBox [ 0 0 612 792 ] /Parent 151 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 108 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 29 0 obj << /Filter /FlateDecode /Length 30 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 07 I endstream endobj 30 0 obj 53 endobj 31 0 obj << /Contents 32 0 R /MediaBox [ 0 0 612 792 ] /Parent 151 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 110 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 32 0 obj << /Filter /FlateDecode /Length 33 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0@ J endstream endobj 33 0 obj 53 endobj 34 0 obj << /Contents 35 0 R /MediaBox [ 0 0 612 792 ] /Parent 151 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 112 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 35 0 obj << /Filter /FlateDecode /Length 36 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0I K endstream endobj 36 0 obj 53 endobj 37 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 151 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 114 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 38 0 obj << /Filter /FlateDecode /Length 39 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0R L endstream endobj 39 0 obj 53 endobj 40 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 151 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 116 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 41 0 obj << /Filter /FlateDecode /Length 42 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0[ M endstream endobj 42 0 obj 53 endobj 43 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 151 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 118 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 44 0 obj << /Filter /FlateDecode /Length 45 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0d N endstream endobj 45 0 obj 53 endobj 46 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 151 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 120 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 47 0 obj << /Filter /FlateDecode /Length 48 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0m O endstream endobj 48 0 obj 53 endobj 49 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 151 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 122 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 50 0 obj << /Filter /FlateDecode /Length 51 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0v P endstream endobj 51 0 obj 53 endobj 52 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 151 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 124 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 53 0 obj << /Filter /FlateDecode /Length 54 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0 Q endstream endobj 54 0 obj 53 endobj 55 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 151 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 126 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 56 0 obj << /Filter /FlateDecode /Length 57 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0 R endstream endobj 57 0 obj 53 endobj 58 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 151 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 128 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 59 0 obj << /Filter /FlateDecode /Length 60 0 R >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0A J endstream endobj 60 0 obj 53 endobj 61 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 151 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 130 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 62 0 obj << /Filter /FlateDecode /Length 63 0 R >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0J K endstream endobj 63 0 obj 53 endobj 64 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 151 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 132 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 65 0 obj << /Filter /FlateDecode /Length 66 0 R >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0S L endstream endobj 66 0 obj 53 endobj 67 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 151 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 134 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 68 0 obj << /Filter /FlateDecode /Length 69 0 R >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0\ M endstream endobj 69 0 obj 53 endobj 70 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 151 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 136 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 71 0 obj << /Filter /FlateDecode /Length 72 0 R >> stream Hr RPw3T02QI͍@!$/I,i*dqpe N endstream endobj 72 0 obj 52 endobj 73 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 151 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 138 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 74 0 obj << /Filter /FlateDecode /Length 75 0 R >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0n O endstream endobj 75 0 obj 53 endobj 76 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 151 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 140 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 77 0 obj << /Filter /FlateDecode /Length 78 0 R >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0w P endstream endobj 78 0 obj 53 endobj 79 0 obj << /Contents 80 0 R /MediaBox [ 0 0 612 792 ] /Parent 151 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 142 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 80 0 obj << /Filter /FlateDecode /Length 81 0 R >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0 Q endstream endobj 81 0 obj 53 endobj 82 0 obj << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 151 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 144 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 83 0 obj << /Filter /FlateDecode /Length 84 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0 R endstream endobj 84 0 obj 53 endobj 85 0 obj << /Contents 86 0 R /MediaBox [ 0 0 612 792 ] /Parent 151 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 146 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 86 0 obj << /Filter /FlateDecode /Length 87 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0 S endstream endobj 87 0 obj 53 endobj 88 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 150 0 R /BitsPerComponent 8 /Length 89 0 R >> stream 8;Z]Y0b(o`&-G4acc:FWkNLuZiJL1R9X1GU)1Em"BmZ': endstream endobj 89 0 obj 83 endobj 90 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 150 0 R /BitsPerComponent 8 /Length 91 0 R >> stream 8;Z]Y5n1Up&->+`k@abO#212#CXjH)pgLz!!)M^ 7t:U?@"bK0~> endstream endobj 91 0 obj 79 endobj 92 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 150 0 R /BitsPerComponent 8 /Length 93 0 R >> stream 8;Z]Y5n1Up&->+`k@abO#212#CXjH)pgLz!!)M^ 7t:U?@"bK0~> endstream endobj 93 0 obj 79 endobj 94 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 150 0 R /BitsPerComponent 8 /Length 95 0 R >> stream 8;Z]Y_$RmW#Qqjoh8arLO6b<@i1j-:!g6W(L0s2:8[>JD>No-nRG@hbjuqu#('"=7 !!!"HkRh2&ftODc~> endstream endobj 95 0 obj 83 endobj 96 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 150 0 R /BitsPerComponent 8 /Length 97 0 R >> stream 8;Z]Y;$fKB$j/b]oi"*F;`i_jm(nQ]=/PD0A`qPJ])Vg2 !!!#W7n\@5!86V8Wr~> endstream endobj 97 0 obj 85 endobj 98 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 150 0 R /BitsPerComponent 8 /Length 99 0 R >> stream 8;Z]W;$k#l'LP`aob0R[oB`R/d(s+['?K@-iE)21[]d',D.WB.0;X$YHJ\c(zJ.FdE $ip=7W2f~> endstream endobj 99 0 obj 77 endobj 100 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 150 0 R /BitsPerComponent 8 /Length 101 0 R >> stream 8;Z]Y5n*fK&->+`on+@aXIX,ao[2_To,t[O1]0j#e+U07X_(d?:%*T!OdtY60)ttP !!!"DkS%>(;R*0N~> endstream endobj 101 0 obj 83 endobj 102 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 150 0 R /BitsPerComponent 8 /Length 103 0 R >> stream 8;Z]W;$k#l'LP`aob0R[oB`R-d)'1\'?K@-iE)21[T?YW[^+U,\'htak.Citz!$?Li (]YIXW;u~> endstream endobj 103 0 obj 77 endobj 104 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 150 0 R /BitsPerComponent 8 /Length 105 0 R >> stream 8;Z]Y5n*f[#R!G[pqb;O_9VF_i3CD#MI`;!B)%YZR3ZE[h+Ad>PoJQYQ#h.]hZ endstream endobj 105 0 obj 85 endobj 106 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 150 0 R /BitsPerComponent 8 /Length 107 0 R >> stream 8;Z]W0b(o`&-G4acc:FWkNLuZiJL1RN$XfP_lk=AD=;&lC9EcLls&`1Ha@Vkz!5O@2 ! endstream endobj 107 0 obj 78 endobj 108 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 150 0 R /BitsPerComponent 8 /Length 109 0 R >> stream 8;Z]Y5n1Up&->+`k6F6H=ZbGS\4;`pk!=5(B)%X%VX6i"QWq]q3Si9@?TXB/k5H.s z!. endstream endobj 109 0 obj 82 endobj 110 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 150 0 R /BitsPerComponent 8 /Length 111 0 R >> stream 8;Z]Y5m[NW$j/b]l_f3s-[)YnToXn;-BMk2_QQobh*"c;j]9tmFZMJ)?Tkrbr@\-N zGj#fK!.^Z=rr~> endstream endobj 111 0 obj 81 endobj 112 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 150 0 R /BitsPerComponent 8 /Length 113 0 R >> stream 8;Z]Y5n*fK$j/e]j^UL5@li4NkbHR?-Bb"K[erbGcHMkR/q6U(Pr1^Kfl_Vd1qi8X z!.]hg! endstream endobj 113 0 obj 83 endobj 114 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 150 0 R /BitsPerComponent 8 /Length 115 0 R >> stream 8;Z]Y_$L*-#Qqjp\"E;&5IPWN%6bPfR6^6Vm,hB4m])^JB=V"[-`?fQq,^:.h.sP) z!!!OX!Xo)*"/jW~> endstream endobj 115 0 obj 83 endobj 116 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 150 0 R /BitsPerComponent 8 /Length 117 0 R >> stream 8;Z]Y0b"+;$j/b\j^UL5'0;apaAD,D2cuY&GOm=VG?%A5ZeVR>P>fqFqeIO!j0n%b z!!#.R#quA.<2Y0~> endstream endobj 117 0 obj 83 endobj 118 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 150 0 R /BitsPerComponent 8 /Length 119 0 R >> stream 8;Z]Y_$L*-#Qqjp[ibK=5IPWN%6bPf)'S&el/l'I\s#h;qH%F%3k9+>.s!Xe>;$'Y zJ7h%H"os/bVl9~> endstream endobj 119 0 obj 82 endobj 120 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 150 0 R /BitsPerComponent 8 /Length 121 0 R >> stream 8;Z]Y0b"+;$j/b\j^UL5'0;apaAD,D2cuY&GOm=VG?%A5ZeVR>P>fqFqeIO!j0n%b z!!#.R#quA.<2Y0~> endstream endobj 121 0 obj 83 endobj 122 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 150 0 R /BitsPerComponent 8 /Length 123 0 R >> stream 8;Z]Y5n1Up$j/e]a2`SO-Zked\4 endstream endobj 123 0 obj 82 endobj 124 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 150 0 R /BitsPerComponent 8 /Length 125 0 R >> stream 8;Z]Y_$L*-#QqjpmDj\B-gf],%6bPf)'S&U9_an@A7eSYC:Q3M<7fp6rG0^788#O< z!!!OX!Xo&Ud\g"~> endstream endobj 125 0 obj 83 endobj 126 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 150 0 R /BitsPerComponent 8 /Length 127 0 R >> stream 8;Z]Y_$L*-#Qqjp[ibLPT(]_RfVg\~> endstream endobj 127 0 obj 82 endobj 128 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 150 0 R /BitsPerComponent 8 /Length 129 0 R >> stream 8;Z]Y5n1Up&->+`k6F6H=ZbGS\4;`pk!=5(B)%X%VX6i"QWq]q3Si9@?TXB/k5H.s z!. endstream endobj 129 0 obj 82 endobj 130 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 150 0 R /BitsPerComponent 8 /Length 131 0 R >> stream 8;Z]Y5m[NW$j/b]l_f3s-[)YnToXn;-BMk2_QQobh*"c;j]9tmFZMJ)?Tkrbr@\-N zGj#fK!.^Z=rr~> endstream endobj 131 0 obj 81 endobj 132 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 150 0 R /BitsPerComponent 8 /Length 133 0 R >> stream 8;Z]Y5n*fK$j/e]j^UL5@li4NkbHR?-Bb"K[erbGcHMkR/q6U(Pr1^Kfl_Vd1qi8X z!.]hg! endstream endobj 133 0 obj 83 endobj 134 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 150 0 R /BitsPerComponent 8 /Length 135 0 R >> stream 8;Z]Y_$L*-#Qqjp\"E;&5IPWN%6bPfR6^6Vm,hB4m])^JB=V"[-`?fQq,^:.h.sP) z!!!OX!Xo)*"/jW~> endstream endobj 135 0 obj 83 endobj 136 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 150 0 R /BitsPerComponent 8 /Length 137 0 R >> stream 8;Z]Y0b"+;$j/b\j^UL5'0;apaAD,D2cuY&GOm=VG?%A5ZeVR>P>fqFqeIO!j0n%b z!!#.R#quA.<2Y0~> endstream endobj 137 0 obj 83 endobj 138 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 150 0 R /BitsPerComponent 8 /Length 139 0 R >> stream 8;Z]Y_$L*-#Qqjp[ibK=5IPWN%6bPf)'S&el/l'I\s#h;qH%F%3k9+>.s!Xe>;$'Y zJ7h%H"os/bVl9~> endstream endobj 139 0 obj 82 endobj 140 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 150 0 R /BitsPerComponent 8 /Length 141 0 R >> stream 8;Z]Y0b"+;$j/b\j^UL5'0;apaAD,D2cuY&GOm=VG?%A5ZeVR>P>fqFqeIO!j0n%b z!!#.R#quA.<2Y0~> endstream endobj 141 0 obj 83 endobj 142 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 150 0 R /BitsPerComponent 8 /Length 143 0 R >> stream 8;Z]Y5n1Up$j/e]a2`SO-Zked\4 endstream endobj 143 0 obj 82 endobj 144 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 150 0 R /BitsPerComponent 8 /Length 145 0 R >> stream 8;Z]Y_$L*-#QqjpmDj\B-gf],%6bPf)'S&U9_an@A7eSYC:Q3M<7fp6rG0^788#O< z!!!OX!Xo&Ud\g"~> endstream endobj 145 0 obj 83 endobj 146 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 150 0 R /BitsPerComponent 8 /Length 147 0 R >> stream 8;Z]Y_$L*-#Qqjp[ibLPT(]_RfVg\~> endstream endobj 147 0 obj 82 endobj 148 0 obj 481 endobj 149 0 obj << /Filter [ /ASCII85Decode /LZWDecode ] /Length 148 0 R >> stream J,g]g+e/h_!_gCtO=0f)$P%cIi8Zdfc5&3j_8$7g.@L`YKUJNGBP\poR=_;Dl'P(T (7Boo^^S:71(MN]ZQX/+Cbu.lK"p74pe1T%s.DY%&\1TdJhr54.M9au6>79n6`Q:4 PbLSZTLEE(8E@'*1mg_*eTnN*;*'V3+gm-EEetX%;Bo$ur2ss*N`.-!.kG_q6GDD' dKoL!8Ka#EV,@V!\j8ZFbp6EE<9cn=N6j0nf;(&;QU6bUD')c@\ 9-d\DA=cZ0Q>gIM$$;cd2O@&a;X,Nn_aP(]I1aRc(K1^ue> gF/(+GaKo$qneLWDrQ#;5\S(\$q'4Q,85`-8;S(=Z"WSBOV*FM)4,?B],R endstream endobj 150 0 obj [ /Indexed /DeviceRGB 255 149 0 R ] endobj 151 0 obj << /Count 30 /Kids [ 156 0 R 1 0 R 4 0 R 7 0 R 10 0 R 13 0 R 16 0 R 19 0 R 22 0 R 25 0 R 28 0 R 31 0 R 34 0 R 37 0 R 40 0 R 43 0 R 46 0 R 49 0 R 52 0 R 55 0 R 58 0 R 61 0 R 64 0 R 67 0 R 70 0 R 73 0 R 76 0 R 79 0 R 82 0 R 85 0 R ] /Type /Pages >> endobj 152 0 obj << /ModDate (D:20031101162053-05'00') /CreationDate (D:20031101161932-05'00') >> endobj 153 0 obj << /Type /Metadata /Subtype /XML /Length 770 >> stream 2003-11-01T16:20:53-05:00 2003-11-01T16:19:32-05:00 2003-11-01T16:20:53-05:00 2003-11-01T16:19:32-05:00 2003-11-01T16:20:53-05:00 endstream endobj xref 0 154 0000000000 65535 f 0000004005 00000 n 0000004213 00000 n 0000004341 00000 n 0000004360 00000 n 0000004568 00000 n 0000004696 00000 n 0000004715 00000 n 0000004923 00000 n 0000005051 00000 n 0000005070 00000 n 0000005280 00000 n 0000005410 00000 n 0000005430 00000 n 0000005640 00000 n 0000005770 00000 n 0000005790 00000 n 0000006001 00000 n 0000006131 00000 n 0000006151 00000 n 0000006362 00000 n 0000006492 00000 n 0000006512 00000 n 0000006723 00000 n 0000006853 00000 n 0000006873 00000 n 0000007084 00000 n 0000007214 00000 n 0000007234 00000 n 0000007445 00000 n 0000007576 00000 n 0000007596 00000 n 0000007807 00000 n 0000007938 00000 n 0000007958 00000 n 0000008169 00000 n 0000008300 00000 n 0000008320 00000 n 0000008531 00000 n 0000008662 00000 n 0000008682 00000 n 0000008893 00000 n 0000009024 00000 n 0000009044 00000 n 0000009255 00000 n 0000009386 00000 n 0000009406 00000 n 0000009617 00000 n 0000009748 00000 n 0000009768 00000 n 0000009979 00000 n 0000010110 00000 n 0000010130 00000 n 0000010341 00000 n 0000010472 00000 n 0000010492 00000 n 0000010703 00000 n 0000010834 00000 n 0000010854 00000 n 0000011065 00000 n 0000011196 00000 n 0000011216 00000 n 0000011427 00000 n 0000011558 00000 n 0000011578 00000 n 0000011789 00000 n 0000011920 00000 n 0000011940 00000 n 0000012151 00000 n 0000012282 00000 n 0000012302 00000 n 0000012513 00000 n 0000012643 00000 n 0000012663 00000 n 0000012874 00000 n 0000013005 00000 n 0000013025 00000 n 0000013236 00000 n 0000013367 00000 n 0000013387 00000 n 0000013598 00000 n 0000013729 00000 n 0000013749 00000 n 0000013960 00000 n 0000014091 00000 n 0000014111 00000 n 0000014322 00000 n 0000014453 00000 n 0000014473 00000 n 0000014715 00000 n 0000014735 00000 n 0000014973 00000 n 0000014993 00000 n 0000015231 00000 n 0000015251 00000 n 0000015493 00000 n 0000015513 00000 n 0000015757 00000 n 0000015777 00000 n 0000016013 00000 n 0000016033 00000 n 0000016277 00000 n 0000016298 00000 n 0000016536 00000 n 0000016557 00000 n 0000016803 00000 n 0000016824 00000 n 0000017063 00000 n 0000017084 00000 n 0000017327 00000 n 0000017348 00000 n 0000017590 00000 n 0000017611 00000 n 0000017855 00000 n 0000017876 00000 n 0000018120 00000 n 0000018141 00000 n 0000018385 00000 n 0000018406 00000 n 0000018649 00000 n 0000018670 00000 n 0000018914 00000 n 0000018935 00000 n 0000019178 00000 n 0000019199 00000 n 0000019443 00000 n 0000019464 00000 n 0000019707 00000 n 0000019728 00000 n 0000019971 00000 n 0000019992 00000 n 0000020234 00000 n 0000020255 00000 n 0000020499 00000 n 0000020520 00000 n 0000020764 00000 n 0000020785 00000 n 0000021029 00000 n 0000021050 00000 n 0000021293 00000 n 0000021314 00000 n 0000021558 00000 n 0000021579 00000 n 0000021822 00000 n 0000021843 00000 n 0000022087 00000 n 0000022108 00000 n 0000022351 00000 n 0000022372 00000 n 0000022394 00000 n 0000022972 00000 n 0000023027 00000 n 0000023299 00000 n 0000023399 00000 n trailer << /Size 154 /ID[<73525f8f7371ef62e39f69eb78fbd18e><23170d4a763741aa3e2295168267e7c3>] >> startxref 173 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/good7.out0000644000064100006410000000020213247541377015334 0ustar ejbejb/QTest is direct and has type integer (4) /QTest is an integer with value 16059 unparse: 16059 unparseResolved: 16059 test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/long-id.pdf0000644000064100006410000000154513247541377015623 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /ID [<443A32303130303432333131333433382B303227303027> <443A32303130303432333131333433382B303227303027>] >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad-jpeg-show.out0000644000064100006410000000030513247541377016750 0ustar ejbejbWARNING: bad-jpeg.pdf (offset 735): error decoding stream data for object 6 0: Not a JPEG file: starts with 0x77 0x77 qpdf: operation succeeded with warnings; resulting file may have some problems qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.2.c-check0000644000064100006410000000005013247541377017367 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/newline-before-endstream-nl.pdf0000644000064100006410000000361213247541377021557 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 3 /Kids [ 3 0 R 4 0 R 5 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 6 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 7 0 R >> /ProcSet 8 0 R >> /Type /Page >> endobj 4 0 obj << /Contents 9 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 10 0 R >> /ProcSet 11 0 R >> /Type /Page >> endobj 5 0 obj << /Contents 12 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 13 0 R >> /ProcSet 14 0 R >> /Type /Page >> endobj 6 0 obj << /Length 94 >> stream % Stream contains a newline as part of its length BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 7 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 8 0 obj [ /PDF /Text ] endobj 9 0 obj << /Length 127 >> stream % Stream data does not end with a newline but endstream is preceded by % a newline. BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 10 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 11 0 obj [ /PDF /Text ] endobj 12 0 obj << /Length 131 >> stream % Stream data does not end with a newline and endstream is not % preceded by a newline. BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 13 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 14 0 obj [ /PDF /Text ] endobj xref 0 15 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000135 00000 n 0000000278 00000 n 0000000423 00000 n 0000000569 00000 n 0000000713 00000 n 0000000820 00000 n 0000000850 00000 n 0000001028 00000 n 0000001136 00000 n 0000001167 00000 n 0000001350 00000 n 0000001458 00000 n trailer << /Root 1 0 R /Size 15 /ID [<31415926535897932384626433832795>] >> startxref 1489 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/lin2.pdf0000644000064100006410000003145713247541377015143 0ustar ejbejb%PDF-1.3 % 60 0 obj << /Linearized 1 /L 13103 /H [ 1211 203 ] /O 62 /E 1827 /N 30 /T 11776 /P 0 >> endobj xref 60 19 0000000017 00000 n 0000000849 00000 n 0000001414 00000 n 0000001571 00000 n 0000001676 00000 n 0000001793 00000 n 0000001827 00000 n 0000001909 00000 n 0000002100 00000 n 0000002244 00000 n 0000002412 00000 n 0000002703 00000 n 0000002868 00000 n 0000003030 00000 n 0000003212 00000 n 0000003413 00000 n 0000003563 00000 n 0000003727 00000 n 0000001211 00000 n trailer << /Size 79 /Prev 11765 /Root 61 0 R /ID [] >> startxref 0 %%EOF 61 0 obj << /PageLabels << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /Pages 59 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 66 0 R >> endobj 78 0 obj << /S 194 /O 256 /Filter /FlateDecode /Length 105 >> stream xc```b``À<@&8еB310  pF xI6 b%NۉJ5,jy mN l`2pX_" endstream endobj 62 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 63 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 0) Tj ET endstream endobj 64 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 65 0 obj [ /PDF /Text ] endobj 66 0 obj << /Type /Outlines /First 67 0 R /Last 68 0 R /Count 6 >> endobj 67 0 obj << /Type /Outline /Title (Iss 1 -> 5: /XYZ null null null) /Parent 66 0 R /Count 4 /Next 68 0 R /First 69 0 R /Last 70 0 R /Dest [ 9 0 R /XYZ null null null ] >> endobj 68 0 obj << /Type /Outline /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Parent 66 0 R /Prev 67 0 R /Dest [ 29 0 R /XYZ 66 756 3 ] >> endobj 69 0 obj << /Type /Outline /Title (Amanda 1.1 -> 11: /Fit) /Parent 67 0 R /Next 70 0 R /First 73 0 R /Last 74 0 R /Count -3 /Dest [ 21 0 R /Fit ] >> endobj 70 0 obj << /Type /Outline /Title /Parent 67 0 R /Prev 69 0 R /First 71 0 R /Last 72 0 R /Count 2 /Dest [ 25 0 R /FitH 792 ] >> endobj 71 0 obj << /Type /Outline /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Parent 70 0 R /Next 72 0 R /Dest [ 1 0 R /FitR 66 714 180 770 ] >> endobj 72 0 obj << /Type /Outline /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Parent 70 0 R /Prev 71 0 R /Dest [ 62 0 R /XYZ null null null ] >> endobj 73 0 obj << /Type /Outline /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Parent 69 0 R /Next 74 0 R /First 76 0 R /Last 77 0 R /Count -2 /Dest [ 23 0 R /FitV 100 ] >> endobj 74 0 obj << /Type /Outline /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Parent 69 0 R /Prev 73 0 R /First 75 0 R /Last 75 0 R /Count 1 /Dest [ 23 0 R /XYZ null null null ] >> endobj 75 0 obj << /Type /Outline /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Parent 74 0 R /Dest [ 43 0 R /XYZ null null null ] >> endobj 76 0 obj << /Type /Outline /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Parent 73 0 R /Next 77 0 R /Dest [ 35 0 R /XYZ null null null ] >> endobj 77 0 obj << /Type /Outline /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Parent 73 0 R /Prev 76 0 R /Dest [ 37 0 R /XYZ null null null ] >> endobj 1 0 obj << /Contents 2 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 2 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 4 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 5 0 obj << /Contents 6 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 6 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 7 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 8 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 9 0 obj << /Contents 10 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 10 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 11 0 obj << /Contents 12 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 12 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 13 0 obj << /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 14 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 15 0 obj << /Contents 16 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 16 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 17 0 obj << /Contents 18 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 18 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 19 0 obj << /Contents 20 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 20 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 21 0 obj << /Contents 22 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 22 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 23 0 obj << /Contents 24 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 24 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 25 0 obj << /Contents 26 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 26 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 27 0 obj << /Contents 28 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 28 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 29 0 obj << /Contents 30 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 30 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 31 0 obj << /Contents 32 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 32 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 33 0 obj << /Contents 34 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 34 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 35 0 obj << /Contents 36 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 36 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 37 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 38 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 39 0 obj << /Contents 40 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 40 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 41 0 obj << /Contents 42 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 42 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 43 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 44 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 45 0 obj << /Contents 46 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 46 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 47 0 obj << /Contents 48 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 48 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 49 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 50 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 51 0 obj << /Contents 52 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 52 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 53 0 obj << /Contents 54 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 54 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 55 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 56 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 57 0 obj << /Contents 58 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 64 0 R >> /ProcSet 65 0 R >> /Type /Page >> endobj 58 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 59 0 obj << /Count 30 /Kids [ 62 0 R 1 0 R 3 0 R 5 0 R 7 0 R 9 0 R 11 0 R 13 0 R 15 0 R 17 0 R 19 0 R 21 0 R 23 0 R 25 0 R 27 0 R 29 0 R 31 0 R 33 0 R 35 0 R 37 0 R 39 0 R 41 0 R 43 0 R 45 0 R 47 0 R 49 0 R 51 0 R 53 0 R 55 0 R 57 0 R ] /Type /Pages >> endobj xref 0 60 0000000060 65535 f 0000003891 00000 n 0000004046 00000 n 0000004150 00000 n 0000004305 00000 n 0000004409 00000 n 0000004564 00000 n 0000004668 00000 n 0000004823 00000 n 0000004927 00000 n 0000005083 00000 n 0000005188 00000 n 0000005345 00000 n 0000005450 00000 n 0000005607 00000 n 0000005712 00000 n 0000005869 00000 n 0000005974 00000 n 0000006131 00000 n 0000006236 00000 n 0000006393 00000 n 0000006499 00000 n 0000006656 00000 n 0000006762 00000 n 0000006919 00000 n 0000007025 00000 n 0000007182 00000 n 0000007288 00000 n 0000007445 00000 n 0000007551 00000 n 0000007708 00000 n 0000007814 00000 n 0000007971 00000 n 0000008077 00000 n 0000008234 00000 n 0000008340 00000 n 0000008497 00000 n 0000008603 00000 n 0000008760 00000 n 0000008866 00000 n 0000009023 00000 n 0000009129 00000 n 0000009286 00000 n 0000009392 00000 n 0000009549 00000 n 0000009655 00000 n 0000009812 00000 n 0000009918 00000 n 0000010075 00000 n 0000010181 00000 n 0000010338 00000 n 0000010444 00000 n 0000010601 00000 n 0000010707 00000 n 0000010864 00000 n 0000010970 00000 n 0000011127 00000 n 0000011233 00000 n 0000011390 00000 n 0000011496 00000 n trailer << /Size 60 /ID [] >> startxref 178 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.5-ogen.check0000644000064100006410000000026213247541377020062 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/good18.out0000644000064100006410000000017113247541377015423 0ustar ejbejb/QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.2-ogen.check0000644000064100006410000000026213247541377020400 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-other-force-1.7.3.out0000644000064100006410000000023513247541377022272 0ustar ejbejbversion: 1.7 extension level: 3 << /ADBE << /BaseVersion /1.7 /ExtensionLevel 3 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.12-ogen.check0000644000064100006410000000026213247541377020477 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/forced-version.out0000644000064100006410000000026213247541377017250 0ustar ejbejbchecking b.pdf PDF Version: 1.4 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.11-ogen.check0000644000064100006410000000067213247541377020465 0ustar ejbejbchecking a.pdf PDF Version: 1.5 R = 3 P = -4 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed File is linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/good13.qdf0000644000064100006410000000320113247541377015356 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 3 0 R /Type /Catalog >> endobj %% Original object ID: 7 0 2 0 obj << /hex#20strings [ (Potato) <01020300040560> (AB) ] /indirect 4 0 R /nesting << /a [ 1 2 << /x (y) >> [ (z) ] ] /b << / (legal) /a [ 1 2 ] >> >> /strings [ (one) <24a2> () (\(\)) (\() (\)) (a\f\b\t\r\nb) <410042> (a\nb) (a b) ] >> endobj %% Original object ID: 2 0 3 0 obj << /Count 1 /Kids [ 5 0 R ] /Type /Pages >> endobj %% Original object ID: 8 0 4 0 obj (hello) endobj %% Page 1 %% Original object ID: 3 0 5 0 obj << /Contents 6 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 8 0 R >> /ProcSet 9 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 6 0 obj << /Length 7 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 7 0 obj 44 endobj %% Original object ID: 6 0 8 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 5 0 9 0 obj [ /PDF /Text ] endobj xref 0 10 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000576 00000 n 0000000675 00000 n 0000000736 00000 n 0000000978 00000 n 0000001077 00000 n 0000001123 00000 n 0000001268 00000 n trailer << /QTest 2 0 R /Root 1 0 R /Size 10 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 1303 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/coalesce.pdf0000644000064100006410000000461513247541377016051 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 2 /Kids [ 3 0 R 4 0 R ] /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents [ 5 0 R 7 0 R 9 0 R 11 0 R ] /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 13 0 R >> /ProcSet 14 0 R >> /Type /Page >> endobj %% Page 2 4 0 obj << /Contents 15 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 17 0 R >> /ProcSet 18 0 R >> /Type /Page >> endobj %% Contents for page 1 5 0 obj << /Length 6 0 R >> stream BT /F1 24 Tf 72 720 Td (Pot endstream endobj %QDF: ignore_newline 6 0 obj 33 endobj %% Contents for page 1 7 0 obj << /Length 8 0 R >> stream ato) Tj ET [ /array endstream endobj %QDF: ignore_newline 8 0 obj 19 endobj %% Contents for page 1 9 0 obj << /Length 10 0 R >> stream /split ] BI /CS /G/W 66/H 47/BPC 8/F/Fl/DP<> ID xI P|C;U`7Z Ę}D_W->>^&u]"!*&E|Sy d-<B0B@N+<hlK/56L >0>Y!c\Y %Y8?&}j;3lpsHt endstream endobj %QDF: ignore_newline 10 0 obj 253 endobj %% Contents for page 1 11 0 obj << /Length 12 0 R >> stream QTt*hUw%)p"DiRjDYNUAvF& u#cW ߉WO EI endstream endobj %QDF: ignore_newline 12 0 obj 66 endobj 13 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 14 0 obj [ /PDF /Text ] endobj %% Contents for page 2 15 0 obj << /Length 16 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 16 0 obj 44 endobj 17 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 18 0 obj [ /PDF /Text ] endobj xref 0 19 0000000000 65535 f 0000000025 00000 n 0000000079 00000 n 0000000171 00000 n 0000000416 00000 n 0000000634 00000 n 0000000744 00000 n 0000000786 00000 n 0000000882 00000 n 0000000924 00000 n 0000001255 00000 n 0000001299 00000 n 0000001444 00000 n 0000001464 00000 n 0000001583 00000 n 0000001642 00000 n 0000001743 00000 n 0000001763 00000 n 0000001882 00000 n trailer << /Root 1 0 R /Size 19 /ID [<6af379f20e8dcd4e724869daec3ba023>] >> startxref 1918 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/extensions-other-min-1.3.out0000644000064100006410000000015513247541377020722 0ustar ejbejbversion: 1.5 extension level: 0 << /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/extensions-none-force-1.8.5.out0000644000064100006410000000014313247541377021220 0ustar ejbejbversion: 1.8 extension level: 5 << /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/indirect-decode-parms-out.pdf0000644000064100006410000000205313247541377021234 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 3 0 R /Type /Catalog >> endobj 2 0 obj << /DecodeParms 4 0 R /Filter /Something /Length 25 >> stream here is some stream data endstream endobj 3 0 obj << /Count 1 /Kids [ 5 0 R ] /Type /Pages >> endobj 4 0 obj << /Length 33 /Filter /FlateDecode >> stream xH-JU,V(MU(.)JMUHI,Iw"endstream endobj 5 0 obj << /Contents 6 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 7 0 R >> /ProcSet 8 0 R >> /Type /Page >> endobj 6 0 obj << /Length 48 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 7 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 8 0 obj [ /PDF /Text ] endobj xref 0 9 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000176 00000 n 0000000235 00000 n 0000000338 00000 n 0000000481 00000 n 0000000599 00000 n 0000000706 00000 n trailer << /QTest 2 0 R /Root 1 0 R /Size 9 /ID [<3e1b045415cfe83fea12b9817e205ef6><31415926535897932384626433832795>] >> startxref 736 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.9.check0000644000064100006410000000025613247541377017143 0ustar ejbejbchecking a.pdf PDF Version: 1.3 File is not encrypted File is linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/leading-junk.pdf0000644000064100006410000003254613247541377016647 0ustar ejbejbleading junk %PDF-1.4 % 60 0 obj << /Linearized 1 /L 13656 /H [ 1358 196 ] /O 64 /E 4261 /N 30 /T 12337 >> endobj xref 60 20 0000000015 00000 n 0000000800 00000 n 0000001150 00000 n 0000001358 00000 n 0000001554 00000 n 0000001702 00000 n 0000001823 00000 n 0000001931 00000 n 0000001962 00000 n 0000002036 00000 n 0000002247 00000 n 0000002411 00000 n 0000002589 00000 n 0000002867 00000 n 0000003068 00000 n 0000003286 00000 n 0000003484 00000 n 0000003682 00000 n 0000003867 00000 n 0000004067 00000 n trailer << /Root 61 0 R /Size 80 /Prev 12328 /ID [<27847051932a9874f88d94116b4c2138><27847051932a9874f88d94116b4c2138>] /Encrypt 62 0 R >> startxref 0 %%EOF 61 0 obj << /Outlines 68 0 R /PageLabels << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /PageMode /UseOutlines /Pages 59 0 R /Type /Catalog >> endobj 62 0 obj << /Filter /Standard /Length 128 /O <43c9dc2870a984994bc1265a57c7f8ada724fa891e652bb0654f50170f72f5ee> /P -4 /R 3 /U /V 2 >> endobj 63 0 obj << /Filter /FlateDecode /S 186 /O 228 /Length 109 >> stream 3 kH")-ݱm) Saet$(&ëU;ҮzbCohs?˽1wH|N-q%{ endstream endobj 64 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 66 0 R >> /ProcSet 67 0 R >> /Type /Page >> endobj 65 0 obj << /Length 50 /Filter /FlateDecode >> stream "ڦ5h%AO4|\cY;";Tr{}endstream endobj 66 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 67 0 obj [ /PDF /Text ] endobj 68 0 obj << /Count 6 /First 69 0 R /Last 70 0 R /Type /Outlines >> endobj 69 0 obj << /Count 4 /Dest [ 9 0 R /XYZ null null null ] /First 71 0 R /Last 72 0 R /Next 70 0 R /Parent 68 0 R /Title /Type /Outline >> endobj 70 0 obj << /Dest [ 29 0 R /XYZ 66 756 3 ] /Parent 68 0 R /Prev 69 0 R /Title <6f3170f15a717904fa65b8987ae62919cfa134670fccf83a060d3adab5> /Type /Outline >> endobj 71 0 obj << /Count -3 /Dest [ 21 0 R /Fit ] /First 73 0 R /Last 74 0 R /Next 72 0 R /Parent 69 0 R /Title /Type /Outline >> endobj 72 0 obj << /Count 2 /Dest [ 25 0 R /FitH 792 ] /First 78 0 R /Last 79 0 R /Parent 69 0 R /Prev 71 0 R /Title /Type /Outline >> endobj 73 0 obj << /Count -2 /Dest [ 23 0 R /FitV 100 ] /First 75 0 R /Last 76 0 R /Next 74 0 R /Parent 71 0 R /Title /Type /Outline >> endobj 74 0 obj << /Count 1 /Dest [ 23 0 R /XYZ null null null ] /First 77 0 R /Last 77 0 R /Parent 71 0 R /Prev 73 0 R /Title (\035B#\022R,z\n6z\201E=\037F\236\230<\\"\233\214-ŭ9\231ܠJ) /Type /Outline >> endobj 75 0 obj << /Dest [ 35 0 R /XYZ null null null ] /Next 76 0 R /Parent 73 0 R /Title <33616ed76d6df8f59f8635571a75a496a15009ed6b80d2a391483683354ef189860fe9726cad96467fc863> /Type /Outline >> endobj 76 0 obj << /Dest [ 37 0 R /XYZ null null null ] /Parent 73 0 R /Prev 75 0 R /Title <01d559c67006af107820096444affcd4351426e325c4427f877ef4b3889efec3764178f0478bc872136537> /Type /Outline >> endobj 77 0 obj << /Dest [ 43 0 R /XYZ null null null ] /Parent 74 0 R /Title /Type /Outline >> endobj 78 0 obj << /Dest [ 1 0 R /FitR 66 714 180 770 ] /Next 79 0 R /Parent 72 0 R /Title <5f19a02aee341c5ea032dfc888f0ac9b61084c59f9977eb0af42992c61209e61b6146910744756cd54cd906d> /Type /Outline >> endobj 79 0 obj << /Dest [ 64 0 R /XYZ null null null ] /Parent 72 0 R /Prev 78 0 R /Title <65784754f63074ee6c22381aad54faf48f031eb1728917cd46fc07acb51670e3fb480add02aef46451> /Type /Outline >> endobj 1 0 obj << /Contents 2 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 66 0 R >> /ProcSet 67 0 R >> /Type /Page >> endobj 2 0 obj << /Length 50 /Filter /FlateDecode >> stream ˾ws! ǝ@=c#—Wծä+NGB8I=>Vendstream endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 66 0 R >> /ProcSet 67 0 R >> /Type /Page >> endobj 4 0 obj << /Length 50 /Filter /FlateDecode >> stream {"T_2)o=J/_&J+1ywendstream endobj 5 0 obj << /Contents 6 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 66 0 R >> /ProcSet 67 0 R >> /Type /Page >> endobj 6 0 obj << /Length 50 /Filter /FlateDecode >> stream t"-Yy]@pQ@cOO\b2:+fpendstream endobj 7 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 66 0 R >> /ProcSet 67 0 R >> /Type /Page >> endobj 8 0 obj << /Length 50 /Filter /FlateDecode >> stream B񰰊vocB2&Fk{*hV9X!"(pendstream endobj 9 0 obj << /Contents 10 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 66 0 R >> /ProcSet 67 0 R >> /Type /Page >> endobj 10 0 obj << /Length 50 /Filter /FlateDecode >> stream Mnƶ#,Zn%5ږQ|"[Rzv%endstream endobj 11 0 obj << /Contents 12 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 66 0 R >> /ProcSet 67 0 R >> /Type /Page >> endobj 12 0 obj << /Length 50 /Filter /FlateDecode >> stream %/]L5*AKwZ6~5ml}hKg3/endstream endobj 13 0 obj << /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 66 0 R >> /ProcSet 67 0 R >> /Type /Page >> endobj 14 0 obj << /Length 50 /Filter /FlateDecode >> stream PԹnsB9G|z& ^͒Y?l5T͡Lendstream endobj 15 0 obj << /Contents 16 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 66 0 R >> /ProcSet 67 0 R >> /Type /Page >> endobj 16 0 obj << /Length 50 /Filter /FlateDecode >> stream Xb \[fyG휌k)r "z_uOendstream endobj 17 0 obj << /Contents 18 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 66 0 R >> /ProcSet 67 0 R >> /Type /Page >> endobj 18 0 obj << /Length 50 /Filter /FlateDecode >> stream PNknag!Rf d{ -g>nGai@B2 /Y%"Ԛwendstream endobj 19 0 obj << /Contents 20 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 66 0 R >> /ProcSet 67 0 R >> /Type /Page >> endobj 20 0 obj << /Length 51 /Filter /FlateDecode >> stream 7f'Ft"S`bZ,-x m3j endstream endobj 21 0 obj << /Contents 22 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 66 0 R >> /ProcSet 67 0 R >> /Type /Page >> endobj 22 0 obj << /Length 51 /Filter /FlateDecode >> stream OTlXY~1.WńWe lo|%P,)ʶU]endstream endobj 23 0 obj << /Contents 24 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 66 0 R >> /ProcSet 67 0 R >> /Type /Page >> endobj 24 0 obj << /Length 51 /Filter /FlateDecode >> stream /&^QZ)Wg %lBr|i'&?CnuMIBWendstream endobj 25 0 obj << /Contents 26 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 66 0 R >> /ProcSet 67 0 R >> /Type /Page >> endobj 26 0 obj << /Length 51 /Filter /FlateDecode >> stream n*Q|SYt":󫽟OP3Sߥ0\Y g}sendstream endobj 27 0 obj << /Contents 28 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 66 0 R >> /ProcSet 67 0 R >> /Type /Page >> endobj 28 0 obj << /Length 51 /Filter /FlateDecode >> stream ԯƏ'IYVE2zHN#ޙG> /ProcSet 67 0 R >> /Type /Page >> endobj 30 0 obj << /Length 51 /Filter /FlateDecode >> stream |=?ʎ+*.t_NMn6m`PLbc1`~ MIDendstream endobj 31 0 obj << /Contents 32 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 66 0 R >> /ProcSet 67 0 R >> /Type /Page >> endobj 32 0 obj << /Length 51 /Filter /FlateDecode >> stream Pa(yΚ+bU sm]> \һ; wrhaendstream endobj 33 0 obj << /Contents 34 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 66 0 R >> /ProcSet 67 0 R >> /Type /Page >> endobj 34 0 obj << /Length 51 /Filter /FlateDecode >> stream OsQ~ME& o6j;c fE𥢍endstream endobj 35 0 obj << /Contents 36 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 66 0 R >> /ProcSet 67 0 R >> /Type /Page >> endobj 36 0 obj << /Length 51 /Filter /FlateDecode >> stream rZcj* p9zGLca57K t)k'B6dendstream endobj 37 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 66 0 R >> /ProcSet 67 0 R >> /Type /Page >> endobj 38 0 obj << /Length 51 /Filter /FlateDecode >> stream jowKvSb\4E5 vUE1endstream endobj 39 0 obj << /Contents 40 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 66 0 R >> /ProcSet 67 0 R >> /Type /Page >> endobj 40 0 obj << /Length 51 /Filter /FlateDecode >> stream CFmDC@v.2o-SngNKd;4勇7vwEendstream endobj 41 0 obj << /Contents 42 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 66 0 R >> /ProcSet 67 0 R >> /Type /Page >> endobj 42 0 obj << /Length 51 /Filter /FlateDecode >> stream T8HY ޠ >f m?o0:l8԰ӗ}휫endstream endobj 43 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 66 0 R >> /ProcSet 67 0 R >> /Type /Page >> endobj 44 0 obj << /Length 51 /Filter /FlateDecode >> stream H:Ūr5'CzNt N;"3*^ml8%|E}nnendstream endobj 45 0 obj << /Contents 46 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 66 0 R >> /ProcSet 67 0 R >> /Type /Page >> endobj 46 0 obj << /Length 51 /Filter /FlateDecode >> stream g\!7#'ؑc (*0QZh ;AzcLFrUvڽ pendstream endobj 47 0 obj << /Contents 48 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 66 0 R >> /ProcSet 67 0 R >> /Type /Page >> endobj 48 0 obj << /Length 50 /Filter /FlateDecode >> stream q8mHס:<[A^uA{űAٍ=sendstream endobj 49 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 66 0 R >> /ProcSet 67 0 R >> /Type /Page >> endobj 50 0 obj << /Length 51 /Filter /FlateDecode >> stream ̓Au-B_[̹#^H1\)V:#Juxendstream endobj 51 0 obj << /Contents 52 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 66 0 R >> /ProcSet 67 0 R >> /Type /Page >> endobj 52 0 obj << /Length 51 /Filter /FlateDecode >> stream Ïtwצ`ny R> /ProcSet 67 0 R >> /Type /Page >> endobj 54 0 obj << /Length 51 /Filter /FlateDecode >> stream Q/5)$3D%qڌUog> /ProcSet 67 0 R >> /Type /Page >> endobj 56 0 obj << /Length 51 /Filter /FlateDecode >> stream AZ\}y&ţu'2n.|dm]q6<{䛀 endstream endobj 57 0 obj << /Contents 58 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 66 0 R >> /ProcSet 67 0 R >> /Type /Page >> endobj 58 0 obj << /Length 51 /Filter /FlateDecode >> stream y7S)AL }Y[QaOFۂ='0Vendstream endobj 59 0 obj << /Count 30 /Kids [ 64 0 R 1 0 R 3 0 R 5 0 R 7 0 R 9 0 R 11 0 R 13 0 R 15 0 R 17 0 R 19 0 R 21 0 R 23 0 R 25 0 R 27 0 R 29 0 R 31 0 R 33 0 R 35 0 R 37 0 R 39 0 R 41 0 R 43 0 R 45 0 R 47 0 R 49 0 R 51 0 R 53 0 R 55 0 R 57 0 R ] /Type /Pages >> endobj xref 0 60 0000000000 65535 f 0000004261 00000 n 0000004407 00000 n 0000004527 00000 n 0000004673 00000 n 0000004793 00000 n 0000004939 00000 n 0000005059 00000 n 0000005205 00000 n 0000005325 00000 n 0000005472 00000 n 0000005593 00000 n 0000005741 00000 n 0000005862 00000 n 0000006010 00000 n 0000006131 00000 n 0000006279 00000 n 0000006400 00000 n 0000006548 00000 n 0000006669 00000 n 0000006817 00000 n 0000006939 00000 n 0000007087 00000 n 0000007209 00000 n 0000007357 00000 n 0000007479 00000 n 0000007627 00000 n 0000007749 00000 n 0000007897 00000 n 0000008019 00000 n 0000008167 00000 n 0000008289 00000 n 0000008437 00000 n 0000008559 00000 n 0000008707 00000 n 0000008829 00000 n 0000008977 00000 n 0000009099 00000 n 0000009247 00000 n 0000009369 00000 n 0000009517 00000 n 0000009639 00000 n 0000009787 00000 n 0000009909 00000 n 0000010057 00000 n 0000010179 00000 n 0000010327 00000 n 0000010449 00000 n 0000010597 00000 n 0000010718 00000 n 0000010866 00000 n 0000010988 00000 n 0000011136 00000 n 0000011258 00000 n 0000011406 00000 n 0000011528 00000 n 0000011676 00000 n 0000011798 00000 n 0000011946 00000 n 0000012068 00000 n trailer << /Size 60 /ID [<27847051932a9874f88d94116b4c2138><27847051932a9874f88d94116b4c2138>] >> startxref 216 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/split-content-stream.out0000644000064100006410000000030513247541377020415 0ustar ejbejbchecking split-content-stream.pdf PDF Version: 1.3 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/big-ostream.pdf0000644000064100006410000014074713247541377016513 0ustar ejbejb%PDF-1.5 % %QDF-1.0 1 0 obj << /Type /ObjStm /Length 25675 /N 264 /First 2515 >> stream 2 0 3 97 4 212 5 478 6 5663 7 5725 8 5788 9 5851 10 5915 11 5979 12 6044 13 6109 14 6174 15 6239 16 6304 17 6369 18 6434 19 6499 20 6564 21 6629 22 6694 23 6759 24 6824 25 6889 26 6954 27 7019 28 7084 29 7149 30 7214 31 7279 32 7344 33 7409 34 7474 35 7539 36 7604 37 7669 38 7734 39 7799 40 7864 41 7929 42 7994 43 8059 44 8124 45 8189 46 8254 47 8319 48 8384 49 8449 50 8514 51 8579 52 8644 53 8709 54 8774 55 8839 56 8904 57 8969 58 9034 59 9099 60 9164 61 9229 62 9294 63 9359 64 9424 65 9489 66 9554 67 9619 68 9684 69 9749 70 9814 71 9879 72 9944 73 10009 74 10074 75 10139 76 10204 77 10269 78 10334 79 10399 80 10464 81 10529 82 10594 83 10659 84 10724 85 10789 86 10854 87 10919 88 10984 89 11049 90 11114 91 11179 92 11244 93 11309 94 11374 95 11439 96 11504 97 11570 98 11637 99 11704 100 11772 101 11840 102 11909 103 11978 104 12047 105 12116 106 12185 107 12254 108 12323 109 12392 110 12461 111 12530 112 12599 113 12668 114 12737 115 12806 116 12875 117 12944 118 13013 119 13082 120 13151 121 13220 122 13289 123 13358 124 13427 125 13496 126 13565 127 13634 128 13703 129 13772 130 13841 131 13910 132 13979 133 14048 134 14117 135 14186 136 14255 137 14324 138 14393 139 14462 140 14531 141 14600 142 14669 143 14738 144 14807 145 14876 146 14945 147 15014 148 15083 149 15152 150 15221 151 15290 152 15359 153 15428 154 15497 155 15566 156 15635 157 15704 158 15773 159 15842 160 15911 161 15980 162 16049 163 16118 164 16187 165 16256 166 16325 167 16394 168 16463 169 16532 170 16601 171 16670 172 16739 173 16808 174 16877 175 16946 176 17015 177 17084 178 17153 179 17222 180 17291 181 17360 182 17429 183 17498 184 17567 185 17636 186 17705 187 17774 188 17843 189 17912 190 17981 191 18050 192 18119 193 18188 194 18257 195 18326 196 18395 197 18464 198 18533 199 18602 200 18671 201 18740 202 18809 203 18878 204 18947 205 19016 206 19085 207 19154 208 19223 209 19292 210 19361 211 19430 212 19499 213 19568 214 19637 215 19706 216 19775 217 19844 218 19913 219 19982 220 20051 221 20120 222 20189 223 20258 224 20327 225 20396 226 20465 227 20534 228 20603 229 20672 230 20741 231 20810 232 20879 233 20948 234 21017 235 21086 236 21155 237 21224 238 21293 239 21362 240 21431 241 21500 242 21569 243 21638 244 21707 245 21776 246 21845 247 21914 248 21983 249 22052 250 22121 251 22190 252 22259 253 22328 254 22397 255 22466 256 22535 257 22604 258 22673 259 22742 260 22811 261 22880 262 22949 263 23018 264 23087 265 23156 %% Object stream: object 2, index 0; original object ID: 1 << /Pages 3 0 R /Type /Catalog >> %% Object stream: object 3, index 1; original object ID: 2 << /Count 1 /Kids [ 4 0 R ] /Type /Pages >> %% Object stream: object 4, index 2; original object ID: 3 %% Page 1 << /Contents 266 0 R /MediaBox [ 0 0 612 792 ] /Other 5 0 R /Parent 3 0 R /Resources << /Font << /F1 269 0 R >> /ProcSet 270 0 R >> /Type /Page >> %% Object stream: object 5, index 3; original object ID: 8 [ 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 35 0 R 36 0 R 37 0 R 38 0 R 39 0 R 40 0 R 41 0 R 42 0 R 43 0 R 44 0 R 45 0 R 46 0 R 47 0 R 48 0 R 49 0 R 50 0 R 51 0 R 52 0 R 53 0 R 54 0 R 55 0 R 56 0 R 57 0 R 58 0 R 59 0 R 60 0 R 61 0 R 62 0 R 63 0 R 64 0 R 65 0 R 66 0 R 67 0 R 68 0 R 69 0 R 70 0 R 71 0 R 72 0 R 73 0 R 74 0 R 75 0 R 76 0 R 77 0 R 78 0 R 79 0 R 80 0 R 81 0 R 82 0 R 83 0 R 84 0 R 85 0 R 86 0 R 87 0 R 88 0 R 89 0 R 90 0 R 91 0 R 92 0 R 93 0 R 94 0 R 95 0 R 96 0 R 97 0 R 98 0 R 99 0 R 100 0 R 101 0 R 102 0 R 103 0 R 104 0 R 105 0 R 106 0 R 107 0 R 108 0 R 109 0 R 110 0 R 111 0 R 112 0 R 113 0 R 114 0 R 115 0 R 116 0 R 117 0 R 118 0 R 119 0 R 120 0 R 121 0 R 122 0 R 123 0 R 124 0 R 125 0 R 126 0 R 127 0 R 128 0 R 129 0 R 130 0 R 131 0 R 132 0 R 133 0 R 134 0 R 135 0 R 136 0 R 137 0 R 138 0 R 139 0 R 140 0 R 141 0 R 142 0 R 143 0 R 144 0 R 145 0 R 146 0 R 147 0 R 148 0 R 149 0 R 150 0 R 151 0 R 152 0 R 153 0 R 154 0 R 155 0 R 156 0 R 157 0 R 158 0 R 159 0 R 160 0 R 161 0 R 162 0 R 163 0 R 164 0 R 165 0 R 166 0 R 167 0 R 168 0 R 169 0 R 170 0 R 171 0 R 172 0 R 173 0 R 174 0 R 175 0 R 176 0 R 177 0 R 178 0 R 179 0 R 180 0 R 181 0 R 182 0 R 183 0 R 184 0 R 185 0 R 186 0 R 187 0 R 188 0 R 189 0 R 190 0 R 191 0 R 192 0 R 193 0 R 194 0 R 195 0 R 196 0 R 197 0 R 198 0 R 199 0 R 200 0 R 201 0 R 202 0 R 203 0 R 204 0 R 205 0 R 206 0 R 207 0 R 208 0 R 209 0 R 210 0 R 211 0 R 212 0 R 213 0 R 214 0 R 215 0 R 216 0 R 217 0 R 218 0 R 219 0 R 220 0 R 221 0 R 222 0 R 223 0 R 224 0 R 225 0 R 226 0 R 227 0 R 228 0 R 229 0 R 230 0 R 231 0 R 232 0 R 233 0 R 234 0 R 235 0 R 236 0 R 237 0 R 238 0 R 239 0 R 240 0 R 241 0 R 242 0 R 243 0 R 244 0 R 245 0 R 246 0 R 247 0 R 248 0 R 249 0 R 250 0 R 251 0 R 252 0 R 253 0 R 254 0 R 255 0 R 256 0 R 257 0 R 258 0 R 259 0 R 260 0 R 261 0 R 262 0 R 263 0 R 264 0 R 265 0 R 271 0 R 272 0 R 273 0 R 274 0 R 275 0 R 276 0 R 277 0 R 278 0 R 279 0 R 280 0 R 281 0 R 282 0 R 283 0 R 284 0 R 285 0 R 286 0 R 287 0 R 288 0 R 289 0 R 290 0 R 291 0 R 292 0 R 293 0 R 294 0 R 295 0 R 296 0 R 297 0 R 298 0 R 299 0 R 300 0 R 301 0 R 302 0 R 303 0 R 304 0 R 305 0 R 306 0 R 307 0 R 308 0 R 309 0 R 310 0 R 311 0 R 312 0 R 313 0 R 314 0 R 315 0 R 316 0 R 317 0 R 318 0 R 319 0 R 320 0 R 321 0 R 322 0 R 323 0 R 324 0 R 325 0 R 326 0 R 327 0 R 328 0 R 329 0 R 330 0 R 331 0 R 332 0 R 333 0 R 334 0 R 335 0 R 336 0 R 337 0 R 338 0 R 339 0 R 340 0 R 341 0 R 342 0 R 343 0 R 344 0 R 345 0 R 346 0 R 347 0 R 348 0 R 349 0 R 350 0 R 351 0 R 352 0 R 353 0 R 354 0 R 355 0 R 356 0 R 357 0 R 358 0 R 359 0 R 360 0 R 361 0 R 362 0 R 363 0 R 364 0 R 365 0 R 366 0 R 367 0 R 368 0 R 369 0 R 370 0 R 371 0 R 372 0 R 373 0 R 374 0 R 375 0 R 376 0 R 377 0 R 378 0 R 379 0 R 380 0 R 381 0 R 382 0 R 383 0 R 384 0 R 385 0 R 386 0 R 387 0 R 388 0 R 389 0 R 390 0 R 391 0 R 392 0 R 393 0 R 394 0 R 395 0 R 396 0 R 397 0 R 398 0 R 399 0 R 400 0 R 401 0 R 402 0 R 403 0 R 404 0 R 405 0 R 406 0 R 407 0 R 408 0 R 409 0 R 410 0 R 411 0 R 412 0 R 413 0 R 414 0 R 415 0 R 416 0 R 417 0 R 418 0 R 419 0 R 420 0 R 421 0 R 422 0 R 423 0 R 424 0 R 425 0 R 426 0 R 427 0 R 428 0 R 429 0 R 430 0 R 431 0 R 432 0 R 433 0 R 434 0 R 435 0 R 436 0 R 437 0 R 438 0 R 439 0 R 440 0 R 441 0 R 442 0 R 443 0 R 444 0 R 445 0 R 446 0 R 447 0 R 448 0 R 449 0 R 450 0 R 451 0 R 452 0 R 453 0 R 454 0 R 455 0 R 456 0 R 457 0 R 458 0 R 459 0 R 460 0 R 461 0 R 462 0 R 463 0 R 464 0 R 465 0 R 466 0 R 467 0 R 468 0 R 469 0 R 470 0 R 471 0 R 472 0 R 473 0 R 474 0 R 475 0 R 476 0 R 477 0 R 478 0 R 479 0 R 480 0 R 481 0 R 482 0 R 483 0 R 484 0 R 485 0 R 486 0 R 487 0 R 488 0 R 489 0 R 490 0 R 491 0 R 492 0 R 493 0 R 494 0 R 495 0 R 496 0 R 497 0 R 498 0 R 499 0 R 500 0 R 501 0 R 502 0 R 503 0 R 504 0 R 505 0 R 506 0 R 507 0 R 508 0 R 509 0 R 510 0 R 511 0 R 512 0 R 513 0 R 514 0 R 515 0 R 516 0 R 517 0 R 518 0 R 519 0 R 520 0 R 521 0 R 522 0 R 523 0 R 524 0 R 525 0 R 526 0 R 527 0 R 528 0 R 529 0 R 530 0 R 531 0 R 532 0 R ] %% Object stream: object 6, index 4; original object ID: 9 9 %% Object stream: object 7, index 5; original object ID: 10 10 %% Object stream: object 8, index 6; original object ID: 11 11 %% Object stream: object 9, index 7; original object ID: 12 12 %% Object stream: object 10, index 8; original object ID: 13 13 %% Object stream: object 11, index 9; original object ID: 14 14 %% Object stream: object 12, index 10; original object ID: 15 15 %% Object stream: object 13, index 11; original object ID: 16 16 %% Object stream: object 14, index 12; original object ID: 17 17 %% Object stream: object 15, index 13; original object ID: 18 18 %% Object stream: object 16, index 14; original object ID: 19 19 %% Object stream: object 17, index 15; original object ID: 20 20 %% Object stream: object 18, index 16; original object ID: 21 21 %% Object stream: object 19, index 17; original object ID: 22 22 %% Object stream: object 20, index 18; original object ID: 23 23 %% Object stream: object 21, index 19; original object ID: 24 24 %% Object stream: object 22, index 20; original object ID: 25 25 %% Object stream: object 23, index 21; original object ID: 26 26 %% Object stream: object 24, index 22; original object ID: 27 27 %% Object stream: object 25, index 23; original object ID: 28 28 %% Object stream: object 26, index 24; original object ID: 29 29 %% Object stream: object 27, index 25; original object ID: 30 30 %% Object stream: object 28, index 26; original object ID: 31 31 %% Object stream: object 29, index 27; original object ID: 32 32 %% Object stream: object 30, index 28; original object ID: 33 33 %% Object stream: object 31, index 29; original object ID: 34 34 %% Object stream: object 32, index 30; original object ID: 35 35 %% Object stream: object 33, index 31; original object ID: 36 36 %% Object stream: object 34, index 32; original object ID: 37 37 %% Object stream: object 35, index 33; original object ID: 38 38 %% Object stream: object 36, index 34; original object ID: 39 39 %% Object stream: object 37, index 35; original object ID: 40 40 %% Object stream: object 38, index 36; original object ID: 41 41 %% Object stream: object 39, index 37; original object ID: 42 42 %% Object stream: object 40, index 38; original object ID: 43 43 %% Object stream: object 41, index 39; original object ID: 44 44 %% Object stream: object 42, index 40; original object ID: 45 45 %% Object stream: object 43, index 41; original object ID: 46 46 %% Object stream: object 44, index 42; original object ID: 47 47 %% Object stream: object 45, index 43; original object ID: 48 48 %% Object stream: object 46, index 44; original object ID: 49 49 %% Object stream: object 47, index 45; original object ID: 50 50 %% Object stream: object 48, index 46; original object ID: 51 51 %% Object stream: object 49, index 47; original object ID: 52 52 %% Object stream: object 50, index 48; original object ID: 53 53 %% Object stream: object 51, index 49; original object ID: 54 54 %% Object stream: object 52, index 50; original object ID: 55 55 %% Object stream: object 53, index 51; original object ID: 56 56 %% Object stream: object 54, index 52; original object ID: 57 57 %% Object stream: object 55, index 53; original object ID: 58 58 %% Object stream: object 56, index 54; original object ID: 59 59 %% Object stream: object 57, index 55; original object ID: 60 60 %% Object stream: object 58, index 56; original object ID: 61 61 %% Object stream: object 59, index 57; original object ID: 62 62 %% Object stream: object 60, index 58; original object ID: 63 63 %% Object stream: object 61, index 59; original object ID: 64 64 %% Object stream: object 62, index 60; original object ID: 65 65 %% Object stream: object 63, index 61; original object ID: 66 66 %% Object stream: object 64, index 62; original object ID: 67 67 %% Object stream: object 65, index 63; original object ID: 68 68 %% Object stream: object 66, index 64; original object ID: 69 69 %% Object stream: object 67, index 65; original object ID: 70 70 %% Object stream: object 68, index 66; original object ID: 71 71 %% Object stream: object 69, index 67; original object ID: 72 72 %% Object stream: object 70, index 68; original object ID: 73 73 %% Object stream: object 71, index 69; original object ID: 74 74 %% Object stream: object 72, index 70; original object ID: 75 75 %% Object stream: object 73, index 71; original object ID: 76 76 %% Object stream: object 74, index 72; original object ID: 77 77 %% Object stream: object 75, index 73; original object ID: 78 78 %% Object stream: object 76, index 74; original object ID: 79 79 %% Object stream: object 77, index 75; original object ID: 80 80 %% Object stream: object 78, index 76; original object ID: 81 81 %% Object stream: object 79, index 77; original object ID: 82 82 %% Object stream: object 80, index 78; original object ID: 83 83 %% Object stream: object 81, index 79; original object ID: 84 84 %% Object stream: object 82, index 80; original object ID: 85 85 %% Object stream: object 83, index 81; original object ID: 86 86 %% Object stream: object 84, index 82; original object ID: 87 87 %% Object stream: object 85, index 83; original object ID: 88 88 %% Object stream: object 86, index 84; original object ID: 89 89 %% Object stream: object 87, index 85; original object ID: 90 90 %% Object stream: object 88, index 86; original object ID: 91 91 %% Object stream: object 89, index 87; original object ID: 92 92 %% Object stream: object 90, index 88; original object ID: 93 93 %% Object stream: object 91, index 89; original object ID: 94 94 %% Object stream: object 92, index 90; original object ID: 95 95 %% Object stream: object 93, index 91; original object ID: 96 96 %% Object stream: object 94, index 92; original object ID: 97 97 %% Object stream: object 95, index 93; original object ID: 98 98 %% Object stream: object 96, index 94; original object ID: 99 99 %% Object stream: object 97, index 95; original object ID: 100 100 %% Object stream: object 98, index 96; original object ID: 101 101 %% Object stream: object 99, index 97; original object ID: 102 102 %% Object stream: object 100, index 98; original object ID: 103 103 %% Object stream: object 101, index 99; original object ID: 104 104 %% Object stream: object 102, index 100; original object ID: 105 105 %% Object stream: object 103, index 101; original object ID: 106 106 %% Object stream: object 104, index 102; original object ID: 107 107 %% Object stream: object 105, index 103; original object ID: 108 108 %% Object stream: object 106, index 104; original object ID: 109 109 %% Object stream: object 107, index 105; original object ID: 110 110 %% Object stream: object 108, index 106; original object ID: 111 111 %% Object stream: object 109, index 107; original object ID: 112 112 %% Object stream: object 110, index 108; original object ID: 113 113 %% Object stream: object 111, index 109; original object ID: 114 114 %% Object stream: object 112, index 110; original object ID: 115 115 %% Object stream: object 113, index 111; original object ID: 116 116 %% Object stream: object 114, index 112; original object ID: 117 117 %% Object stream: object 115, index 113; original object ID: 118 118 %% Object stream: object 116, index 114; original object ID: 119 119 %% Object stream: object 117, index 115; original object ID: 120 120 %% Object stream: object 118, index 116; original object ID: 121 121 %% Object stream: object 119, index 117; original object ID: 122 122 %% Object stream: object 120, index 118; original object ID: 123 123 %% Object stream: object 121, index 119; original object ID: 124 124 %% Object stream: object 122, index 120; original object ID: 125 125 %% Object stream: object 123, index 121; original object ID: 126 126 %% Object stream: object 124, index 122; original object ID: 127 127 %% Object stream: object 125, index 123; original object ID: 128 128 %% Object stream: object 126, index 124; original object ID: 129 129 %% Object stream: object 127, index 125; original object ID: 130 130 %% Object stream: object 128, index 126; original object ID: 131 131 %% Object stream: object 129, index 127; original object ID: 132 132 %% Object stream: object 130, index 128; original object ID: 133 133 %% Object stream: object 131, index 129; original object ID: 134 134 %% Object stream: object 132, index 130; original object ID: 135 135 %% Object stream: object 133, index 131; original object ID: 136 136 %% Object stream: object 134, index 132; original object ID: 137 137 %% Object stream: object 135, index 133; original object ID: 138 138 %% Object stream: object 136, index 134; original object ID: 139 139 %% Object stream: object 137, index 135; original object ID: 140 140 %% Object stream: object 138, index 136; original object ID: 141 141 %% Object stream: object 139, index 137; original object ID: 142 142 %% Object stream: object 140, index 138; original object ID: 143 143 %% Object stream: object 141, index 139; original object ID: 144 144 %% Object stream: object 142, index 140; original object ID: 145 145 %% Object stream: object 143, index 141; original object ID: 146 146 %% Object stream: object 144, index 142; original object ID: 147 147 %% Object stream: object 145, index 143; original object ID: 148 148 %% Object stream: object 146, index 144; original object ID: 149 149 %% Object stream: object 147, index 145; original object ID: 150 150 %% Object stream: object 148, index 146; original object ID: 151 151 %% Object stream: object 149, index 147; original object ID: 152 152 %% Object stream: object 150, index 148; original object ID: 153 153 %% Object stream: object 151, index 149; original object ID: 154 154 %% Object stream: object 152, index 150; original object ID: 155 155 %% Object stream: object 153, index 151; original object ID: 156 156 %% Object stream: object 154, index 152; original object ID: 157 157 %% Object stream: object 155, index 153; original object ID: 158 158 %% Object stream: object 156, index 154; original object ID: 159 159 %% Object stream: object 157, index 155; original object ID: 160 160 %% Object stream: object 158, index 156; original object ID: 161 161 %% Object stream: object 159, index 157; original object ID: 162 162 %% Object stream: object 160, index 158; original object ID: 163 163 %% Object stream: object 161, index 159; original object ID: 164 164 %% Object stream: object 162, index 160; original object ID: 165 165 %% Object stream: object 163, index 161; original object ID: 166 166 %% Object stream: object 164, index 162; original object ID: 167 167 %% Object stream: object 165, index 163; original object ID: 168 168 %% Object stream: object 166, index 164; original object ID: 169 169 %% Object stream: object 167, index 165; original object ID: 170 170 %% Object stream: object 168, index 166; original object ID: 171 171 %% Object stream: object 169, index 167; original object ID: 172 172 %% Object stream: object 170, index 168; original object ID: 173 173 %% Object stream: object 171, index 169; original object ID: 174 174 %% Object stream: object 172, index 170; original object ID: 175 175 %% Object stream: object 173, index 171; original object ID: 176 176 %% Object stream: object 174, index 172; original object ID: 177 177 %% Object stream: object 175, index 173; original object ID: 178 178 %% Object stream: object 176, index 174; original object ID: 179 179 %% Object stream: object 177, index 175; original object ID: 180 180 %% Object stream: object 178, index 176; original object ID: 181 181 %% Object stream: object 179, index 177; original object ID: 182 182 %% Object stream: object 180, index 178; original object ID: 183 183 %% Object stream: object 181, index 179; original object ID: 184 184 %% Object stream: object 182, index 180; original object ID: 185 185 %% Object stream: object 183, index 181; original object ID: 186 186 %% Object stream: object 184, index 182; original object ID: 187 187 %% Object stream: object 185, index 183; original object ID: 188 188 %% Object stream: object 186, index 184; original object ID: 189 189 %% Object stream: object 187, index 185; original object ID: 190 190 %% Object stream: object 188, index 186; original object ID: 191 191 %% Object stream: object 189, index 187; original object ID: 192 192 %% Object stream: object 190, index 188; original object ID: 193 193 %% Object stream: object 191, index 189; original object ID: 194 194 %% Object stream: object 192, index 190; original object ID: 195 195 %% Object stream: object 193, index 191; original object ID: 196 196 %% Object stream: object 194, index 192; original object ID: 197 197 %% Object stream: object 195, index 193; original object ID: 198 198 %% Object stream: object 196, index 194; original object ID: 199 199 %% Object stream: object 197, index 195; original object ID: 200 200 %% Object stream: object 198, index 196; original object ID: 201 201 %% Object stream: object 199, index 197; original object ID: 202 202 %% Object stream: object 200, index 198; original object ID: 203 203 %% Object stream: object 201, index 199; original object ID: 204 204 %% Object stream: object 202, index 200; original object ID: 205 205 %% Object stream: object 203, index 201; original object ID: 206 206 %% Object stream: object 204, index 202; original object ID: 207 207 %% Object stream: object 205, index 203; original object ID: 208 208 %% Object stream: object 206, index 204; original object ID: 209 209 %% Object stream: object 207, index 205; original object ID: 210 210 %% Object stream: object 208, index 206; original object ID: 211 211 %% Object stream: object 209, index 207; original object ID: 212 212 %% Object stream: object 210, index 208; original object ID: 213 213 %% Object stream: object 211, index 209; original object ID: 214 214 %% Object stream: object 212, index 210; original object ID: 215 215 %% Object stream: object 213, index 211; original object ID: 216 216 %% Object stream: object 214, index 212; original object ID: 217 217 %% Object stream: object 215, index 213; original object ID: 218 218 %% Object stream: object 216, index 214; original object ID: 219 219 %% Object stream: object 217, index 215; original object ID: 220 220 %% Object stream: object 218, index 216; original object ID: 221 221 %% Object stream: object 219, index 217; original object ID: 222 222 %% Object stream: object 220, index 218; original object ID: 223 223 %% Object stream: object 221, index 219; original object ID: 224 224 %% Object stream: object 222, index 220; original object ID: 225 225 %% Object stream: object 223, index 221; original object ID: 226 226 %% Object stream: object 224, index 222; original object ID: 227 227 %% Object stream: object 225, index 223; original object ID: 228 228 %% Object stream: object 226, index 224; original object ID: 229 229 %% Object stream: object 227, index 225; original object ID: 230 230 %% Object stream: object 228, index 226; original object ID: 231 231 %% Object stream: object 229, index 227; original object ID: 232 232 %% Object stream: object 230, index 228; original object ID: 233 233 %% Object stream: object 231, index 229; original object ID: 234 234 %% Object stream: object 232, index 230; original object ID: 235 235 %% Object stream: object 233, index 231; original object ID: 236 236 %% Object stream: object 234, index 232; original object ID: 237 237 %% Object stream: object 235, index 233; original object ID: 238 238 %% Object stream: object 236, index 234; original object ID: 239 239 %% Object stream: object 237, index 235; original object ID: 240 240 %% Object stream: object 238, index 236; original object ID: 241 241 %% Object stream: object 239, index 237; original object ID: 242 242 %% Object stream: object 240, index 238; original object ID: 243 243 %% Object stream: object 241, index 239; original object ID: 244 244 %% Object stream: object 242, index 240; original object ID: 245 245 %% Object stream: object 243, index 241; original object ID: 246 246 %% Object stream: object 244, index 242; original object ID: 247 247 %% Object stream: object 245, index 243; original object ID: 248 248 %% Object stream: object 246, index 244; original object ID: 249 249 %% Object stream: object 247, index 245; original object ID: 250 250 %% Object stream: object 248, index 246; original object ID: 251 251 %% Object stream: object 249, index 247; original object ID: 252 252 %% Object stream: object 250, index 248; original object ID: 253 253 %% Object stream: object 251, index 249; original object ID: 254 254 %% Object stream: object 252, index 250; original object ID: 255 255 %% Object stream: object 253, index 251; original object ID: 256 256 %% Object stream: object 254, index 252; original object ID: 257 257 %% Object stream: object 255, index 253; original object ID: 258 258 %% Object stream: object 256, index 254; original object ID: 259 259 %% Object stream: object 257, index 255; original object ID: 260 260 %% Object stream: object 258, index 256; original object ID: 261 261 %% Object stream: object 259, index 257; original object ID: 262 262 %% Object stream: object 260, index 258; original object ID: 263 263 %% Object stream: object 261, index 259; original object ID: 264 264 %% Object stream: object 262, index 260; original object ID: 265 265 %% Object stream: object 263, index 261; original object ID: 266 266 %% Object stream: object 264, index 262; original object ID: 267 267 %% Object stream: object 265, index 263; original object ID: 268 268 endstream endobj %% Contents for page 1 %% Original object ID: 4 0 266 0 obj << /Length 267 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 267 0 obj 44 endobj 268 0 obj << /Type /ObjStm /Length 20694 /N 264 /First 2540 >> stream 269 0 270 163 271 245 272 312 273 379 274 446 275 513 276 580 277 647 278 714 279 782 280 850 281 918 282 986 283 1054 284 1122 285 1190 286 1258 287 1326 288 1394 289 1462 290 1530 291 1598 292 1666 293 1734 294 1802 295 1870 296 1938 297 2006 298 2074 299 2142 300 2210 301 2278 302 2346 303 2414 304 2482 305 2550 306 2618 307 2686 308 2754 309 2822 310 2890 311 2958 312 3026 313 3094 314 3162 315 3230 316 3298 317 3366 318 3434 319 3502 320 3570 321 3638 322 3706 323 3774 324 3842 325 3910 326 3978 327 4046 328 4114 329 4182 330 4250 331 4318 332 4386 333 4454 334 4522 335 4590 336 4658 337 4726 338 4794 339 4862 340 4930 341 4998 342 5066 343 5134 344 5202 345 5270 346 5338 347 5406 348 5474 349 5542 350 5610 351 5678 352 5746 353 5814 354 5882 355 5950 356 6018 357 6086 358 6154 359 6222 360 6290 361 6358 362 6426 363 6494 364 6562 365 6630 366 6698 367 6766 368 6834 369 6903 370 6972 371 7041 372 7110 373 7179 374 7248 375 7317 376 7386 377 7455 378 7524 379 7593 380 7662 381 7731 382 7800 383 7869 384 7938 385 8007 386 8076 387 8145 388 8214 389 8283 390 8352 391 8421 392 8490 393 8559 394 8628 395 8697 396 8766 397 8835 398 8904 399 8973 400 9042 401 9111 402 9180 403 9249 404 9318 405 9387 406 9456 407 9525 408 9594 409 9663 410 9732 411 9801 412 9870 413 9939 414 10008 415 10077 416 10146 417 10215 418 10284 419 10353 420 10422 421 10491 422 10560 423 10629 424 10698 425 10767 426 10836 427 10905 428 10974 429 11043 430 11112 431 11181 432 11250 433 11319 434 11388 435 11457 436 11526 437 11595 438 11664 439 11733 440 11802 441 11871 442 11940 443 12009 444 12078 445 12147 446 12216 447 12285 448 12354 449 12423 450 12492 451 12561 452 12630 453 12699 454 12768 455 12837 456 12906 457 12975 458 13044 459 13113 460 13182 461 13251 462 13320 463 13389 464 13458 465 13527 466 13596 467 13665 468 13734 469 13803 470 13872 471 13941 472 14010 473 14079 474 14148 475 14217 476 14286 477 14355 478 14424 479 14493 480 14562 481 14631 482 14700 483 14769 484 14838 485 14907 486 14976 487 15045 488 15114 489 15183 490 15252 491 15321 492 15390 493 15459 494 15528 495 15597 496 15666 497 15735 498 15804 499 15873 500 15942 501 16011 502 16080 503 16149 504 16218 505 16287 506 16356 507 16425 508 16494 509 16563 510 16632 511 16701 512 16770 513 16839 514 16908 515 16977 516 17046 517 17115 518 17184 519 17253 520 17322 521 17391 522 17460 523 17529 524 17598 525 17667 526 17736 527 17805 528 17874 529 17943 530 18012 531 18081 532 18150 %% Object stream: object 269, index 0; original object ID: 6 << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> %% Object stream: object 270, index 1; original object ID: 7 [ /PDF /Text ] %% Object stream: object 271, index 2; original object ID: 269 269 %% Object stream: object 272, index 3; original object ID: 270 270 %% Object stream: object 273, index 4; original object ID: 271 271 %% Object stream: object 274, index 5; original object ID: 272 272 %% Object stream: object 275, index 6; original object ID: 273 273 %% Object stream: object 276, index 7; original object ID: 274 274 %% Object stream: object 277, index 8; original object ID: 275 275 %% Object stream: object 278, index 9; original object ID: 276 276 %% Object stream: object 279, index 10; original object ID: 277 277 %% Object stream: object 280, index 11; original object ID: 278 278 %% Object stream: object 281, index 12; original object ID: 279 279 %% Object stream: object 282, index 13; original object ID: 280 280 %% Object stream: object 283, index 14; original object ID: 281 281 %% Object stream: object 284, index 15; original object ID: 282 282 %% Object stream: object 285, index 16; original object ID: 283 283 %% Object stream: object 286, index 17; original object ID: 284 284 %% Object stream: object 287, index 18; original object ID: 285 285 %% Object stream: object 288, index 19; original object ID: 286 286 %% Object stream: object 289, index 20; original object ID: 287 287 %% Object stream: object 290, index 21; original object ID: 288 288 %% Object stream: object 291, index 22; original object ID: 289 289 %% Object stream: object 292, index 23; original object ID: 290 290 %% Object stream: object 293, index 24; original object ID: 291 291 %% Object stream: object 294, index 25; original object ID: 292 292 %% Object stream: object 295, index 26; original object ID: 293 293 %% Object stream: object 296, index 27; original object ID: 294 294 %% Object stream: object 297, index 28; original object ID: 295 295 %% Object stream: object 298, index 29; original object ID: 296 296 %% Object stream: object 299, index 30; original object ID: 297 297 %% Object stream: object 300, index 31; original object ID: 298 298 %% Object stream: object 301, index 32; original object ID: 299 299 %% Object stream: object 302, index 33; original object ID: 300 300 %% Object stream: object 303, index 34; original object ID: 301 301 %% Object stream: object 304, index 35; original object ID: 302 302 %% Object stream: object 305, index 36; original object ID: 303 303 %% Object stream: object 306, index 37; original object ID: 304 304 %% Object stream: object 307, index 38; original object ID: 305 305 %% Object stream: object 308, index 39; original object ID: 306 306 %% Object stream: object 309, index 40; original object ID: 307 307 %% Object stream: object 310, index 41; original object ID: 308 308 %% Object stream: object 311, index 42; original object ID: 309 309 %% Object stream: object 312, index 43; original object ID: 310 310 %% Object stream: object 313, index 44; original object ID: 311 311 %% Object stream: object 314, index 45; original object ID: 312 312 %% Object stream: object 315, index 46; original object ID: 313 313 %% Object stream: object 316, index 47; original object ID: 314 314 %% Object stream: object 317, index 48; original object ID: 315 315 %% Object stream: object 318, index 49; original object ID: 316 316 %% Object stream: object 319, index 50; original object ID: 317 317 %% Object stream: object 320, index 51; original object ID: 318 318 %% Object stream: object 321, index 52; original object ID: 319 319 %% Object stream: object 322, index 53; original object ID: 320 320 %% Object stream: object 323, index 54; original object ID: 321 321 %% Object stream: object 324, index 55; original object ID: 322 322 %% Object stream: object 325, index 56; original object ID: 323 323 %% Object stream: object 326, index 57; original object ID: 324 324 %% Object stream: object 327, index 58; original object ID: 325 325 %% Object stream: object 328, index 59; original object ID: 326 326 %% Object stream: object 329, index 60; original object ID: 327 327 %% Object stream: object 330, index 61; original object ID: 328 328 %% Object stream: object 331, index 62; original object ID: 329 329 %% Object stream: object 332, index 63; original object ID: 330 330 %% Object stream: object 333, index 64; original object ID: 331 331 %% Object stream: object 334, index 65; original object ID: 332 332 %% Object stream: object 335, index 66; original object ID: 333 333 %% Object stream: object 336, index 67; original object ID: 334 334 %% Object stream: object 337, index 68; original object ID: 335 335 %% Object stream: object 338, index 69; original object ID: 336 336 %% Object stream: object 339, index 70; original object ID: 337 337 %% Object stream: object 340, index 71; original object ID: 338 338 %% Object stream: object 341, index 72; original object ID: 339 339 %% Object stream: object 342, index 73; original object ID: 340 340 %% Object stream: object 343, index 74; original object ID: 341 341 %% Object stream: object 344, index 75; original object ID: 342 342 %% Object stream: object 345, index 76; original object ID: 343 343 %% Object stream: object 346, index 77; original object ID: 344 344 %% Object stream: object 347, index 78; original object ID: 345 345 %% Object stream: object 348, index 79; original object ID: 346 346 %% Object stream: object 349, index 80; original object ID: 347 347 %% Object stream: object 350, index 81; original object ID: 348 348 %% Object stream: object 351, index 82; original object ID: 349 349 %% Object stream: object 352, index 83; original object ID: 350 350 %% Object stream: object 353, index 84; original object ID: 351 351 %% Object stream: object 354, index 85; original object ID: 352 352 %% Object stream: object 355, index 86; original object ID: 353 353 %% Object stream: object 356, index 87; original object ID: 354 354 %% Object stream: object 357, index 88; original object ID: 355 355 %% Object stream: object 358, index 89; original object ID: 356 356 %% Object stream: object 359, index 90; original object ID: 357 357 %% Object stream: object 360, index 91; original object ID: 358 358 %% Object stream: object 361, index 92; original object ID: 359 359 %% Object stream: object 362, index 93; original object ID: 360 360 %% Object stream: object 363, index 94; original object ID: 361 361 %% Object stream: object 364, index 95; original object ID: 362 362 %% Object stream: object 365, index 96; original object ID: 363 363 %% Object stream: object 366, index 97; original object ID: 364 364 %% Object stream: object 367, index 98; original object ID: 365 365 %% Object stream: object 368, index 99; original object ID: 366 366 %% Object stream: object 369, index 100; original object ID: 367 367 %% Object stream: object 370, index 101; original object ID: 368 368 %% Object stream: object 371, index 102; original object ID: 369 369 %% Object stream: object 372, index 103; original object ID: 370 370 %% Object stream: object 373, index 104; original object ID: 371 371 %% Object stream: object 374, index 105; original object ID: 372 372 %% Object stream: object 375, index 106; original object ID: 373 373 %% Object stream: object 376, index 107; original object ID: 374 374 %% Object stream: object 377, index 108; original object ID: 375 375 %% Object stream: object 378, index 109; original object ID: 376 376 %% Object stream: object 379, index 110; original object ID: 377 377 %% Object stream: object 380, index 111; original object ID: 378 378 %% Object stream: object 381, index 112; original object ID: 379 379 %% Object stream: object 382, index 113; original object ID: 380 380 %% Object stream: object 383, index 114; original object ID: 381 381 %% Object stream: object 384, index 115; original object ID: 382 382 %% Object stream: object 385, index 116; original object ID: 383 383 %% Object stream: object 386, index 117; original object ID: 384 384 %% Object stream: object 387, index 118; original object ID: 385 385 %% Object stream: object 388, index 119; original object ID: 386 386 %% Object stream: object 389, index 120; original object ID: 387 387 %% Object stream: object 390, index 121; original object ID: 388 388 %% Object stream: object 391, index 122; original object ID: 389 389 %% Object stream: object 392, index 123; original object ID: 390 390 %% Object stream: object 393, index 124; original object ID: 391 391 %% Object stream: object 394, index 125; original object ID: 392 392 %% Object stream: object 395, index 126; original object ID: 393 393 %% Object stream: object 396, index 127; original object ID: 394 394 %% Object stream: object 397, index 128; original object ID: 395 395 %% Object stream: object 398, index 129; original object ID: 396 396 %% Object stream: object 399, index 130; original object ID: 397 397 %% Object stream: object 400, index 131; original object ID: 398 398 %% Object stream: object 401, index 132; original object ID: 399 399 %% Object stream: object 402, index 133; original object ID: 400 400 %% Object stream: object 403, index 134; original object ID: 401 401 %% Object stream: object 404, index 135; original object ID: 402 402 %% Object stream: object 405, index 136; original object ID: 403 403 %% Object stream: object 406, index 137; original object ID: 404 404 %% Object stream: object 407, index 138; original object ID: 405 405 %% Object stream: object 408, index 139; original object ID: 406 406 %% Object stream: object 409, index 140; original object ID: 407 407 %% Object stream: object 410, index 141; original object ID: 408 408 %% Object stream: object 411, index 142; original object ID: 409 409 %% Object stream: object 412, index 143; original object ID: 410 410 %% Object stream: object 413, index 144; original object ID: 411 411 %% Object stream: object 414, index 145; original object ID: 412 412 %% Object stream: object 415, index 146; original object ID: 413 413 %% Object stream: object 416, index 147; original object ID: 414 414 %% Object stream: object 417, index 148; original object ID: 415 415 %% Object stream: object 418, index 149; original object ID: 416 416 %% Object stream: object 419, index 150; original object ID: 417 417 %% Object stream: object 420, index 151; original object ID: 418 418 %% Object stream: object 421, index 152; original object ID: 419 419 %% Object stream: object 422, index 153; original object ID: 420 420 %% Object stream: object 423, index 154; original object ID: 421 421 %% Object stream: object 424, index 155; original object ID: 422 422 %% Object stream: object 425, index 156; original object ID: 423 423 %% Object stream: object 426, index 157; original object ID: 424 424 %% Object stream: object 427, index 158; original object ID: 425 425 %% Object stream: object 428, index 159; original object ID: 426 426 %% Object stream: object 429, index 160; original object ID: 427 427 %% Object stream: object 430, index 161; original object ID: 428 428 %% Object stream: object 431, index 162; original object ID: 429 429 %% Object stream: object 432, index 163; original object ID: 430 430 %% Object stream: object 433, index 164; original object ID: 431 431 %% Object stream: object 434, index 165; original object ID: 432 432 %% Object stream: object 435, index 166; original object ID: 433 433 %% Object stream: object 436, index 167; original object ID: 434 434 %% Object stream: object 437, index 168; original object ID: 435 435 %% Object stream: object 438, index 169; original object ID: 436 436 %% Object stream: object 439, index 170; original object ID: 437 437 %% Object stream: object 440, index 171; original object ID: 438 438 %% Object stream: object 441, index 172; original object ID: 439 439 %% Object stream: object 442, index 173; original object ID: 440 440 %% Object stream: object 443, index 174; original object ID: 441 441 %% Object stream: object 444, index 175; original object ID: 442 442 %% Object stream: object 445, index 176; original object ID: 443 443 %% Object stream: object 446, index 177; original object ID: 444 444 %% Object stream: object 447, index 178; original object ID: 445 445 %% Object stream: object 448, index 179; original object ID: 446 446 %% Object stream: object 449, index 180; original object ID: 447 447 %% Object stream: object 450, index 181; original object ID: 448 448 %% Object stream: object 451, index 182; original object ID: 449 449 %% Object stream: object 452, index 183; original object ID: 450 450 %% Object stream: object 453, index 184; original object ID: 451 451 %% Object stream: object 454, index 185; original object ID: 452 452 %% Object stream: object 455, index 186; original object ID: 453 453 %% Object stream: object 456, index 187; original object ID: 454 454 %% Object stream: object 457, index 188; original object ID: 455 455 %% Object stream: object 458, index 189; original object ID: 456 456 %% Object stream: object 459, index 190; original object ID: 457 457 %% Object stream: object 460, index 191; original object ID: 458 458 %% Object stream: object 461, index 192; original object ID: 459 459 %% Object stream: object 462, index 193; original object ID: 460 460 %% Object stream: object 463, index 194; original object ID: 461 461 %% Object stream: object 464, index 195; original object ID: 462 462 %% Object stream: object 465, index 196; original object ID: 463 463 %% Object stream: object 466, index 197; original object ID: 464 464 %% Object stream: object 467, index 198; original object ID: 465 465 %% Object stream: object 468, index 199; original object ID: 466 466 %% Object stream: object 469, index 200; original object ID: 467 467 %% Object stream: object 470, index 201; original object ID: 468 468 %% Object stream: object 471, index 202; original object ID: 469 469 %% Object stream: object 472, index 203; original object ID: 470 470 %% Object stream: object 473, index 204; original object ID: 471 471 %% Object stream: object 474, index 205; original object ID: 472 472 %% Object stream: object 475, index 206; original object ID: 473 473 %% Object stream: object 476, index 207; original object ID: 474 474 %% Object stream: object 477, index 208; original object ID: 475 475 %% Object stream: object 478, index 209; original object ID: 476 476 %% Object stream: object 479, index 210; original object ID: 477 477 %% Object stream: object 480, index 211; original object ID: 478 478 %% Object stream: object 481, index 212; original object ID: 479 479 %% Object stream: object 482, index 213; original object ID: 480 480 %% Object stream: object 483, index 214; original object ID: 481 481 %% Object stream: object 484, index 215; original object ID: 482 482 %% Object stream: object 485, index 216; original object ID: 483 483 %% Object stream: object 486, index 217; original object ID: 484 484 %% Object stream: object 487, index 218; original object ID: 485 485 %% Object stream: object 488, index 219; original object ID: 486 486 %% Object stream: object 489, index 220; original object ID: 487 487 %% Object stream: object 490, index 221; original object ID: 488 488 %% Object stream: object 491, index 222; original object ID: 489 489 %% Object stream: object 492, index 223; original object ID: 490 490 %% Object stream: object 493, index 224; original object ID: 491 491 %% Object stream: object 494, index 225; original object ID: 492 492 %% Object stream: object 495, index 226; original object ID: 493 493 %% Object stream: object 496, index 227; original object ID: 494 494 %% Object stream: object 497, index 228; original object ID: 495 495 %% Object stream: object 498, index 229; original object ID: 496 496 %% Object stream: object 499, index 230; original object ID: 497 497 %% Object stream: object 500, index 231; original object ID: 498 498 %% Object stream: object 501, index 232; original object ID: 499 499 %% Object stream: object 502, index 233; original object ID: 500 500 %% Object stream: object 503, index 234; original object ID: 501 501 %% Object stream: object 504, index 235; original object ID: 502 502 %% Object stream: object 505, index 236; original object ID: 503 503 %% Object stream: object 506, index 237; original object ID: 504 504 %% Object stream: object 507, index 238; original object ID: 505 505 %% Object stream: object 508, index 239; original object ID: 506 506 %% Object stream: object 509, index 240; original object ID: 507 507 %% Object stream: object 510, index 241; original object ID: 508 508 %% Object stream: object 511, index 242; original object ID: 509 509 %% Object stream: object 512, index 243; original object ID: 510 510 %% Object stream: object 513, index 244; original object ID: 511 511 %% Object stream: object 514, index 245; original object ID: 512 512 %% Object stream: object 515, index 246; original object ID: 513 513 %% Object stream: object 516, index 247; original object ID: 514 514 %% Object stream: object 517, index 248; original object ID: 515 515 %% Object stream: object 518, index 249; original object ID: 516 516 %% Object stream: object 519, index 250; original object ID: 517 517 %% Object stream: object 520, index 251; original object ID: 518 518 %% Object stream: object 521, index 252; original object ID: 519 519 %% Object stream: object 522, index 253; original object ID: 520 520 %% Object stream: object 523, index 254; original object ID: 521 521 %% Object stream: object 524, index 255; original object ID: 522 522 %% Object stream: object 525, index 256; original object ID: 523 523 %% Object stream: object 526, index 257; original object ID: 524 524 %% Object stream: object 527, index 258; original object ID: 525 525 %% Object stream: object 528, index 259; original object ID: 526 526 %% Object stream: object 529, index 260; original object ID: 527 527 %% Object stream: object 530, index 261; original object ID: 528 528 %% Object stream: object 531, index 262; original object ID: 529 529 %% Object stream: object 532, index 263; original object ID: 530 530 endstream endobj 533 0 obj << /Type /XRef /Length 2670 /W [ 1 2 2 ] /Root 2 0 R /Size 534 /ID [<2d98332206f35946375ab6da40293f06>] >> stream       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~de[ep                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                                                                          endstream endobj startxref 46758 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/no-space-in-xref.pdf0000644000064100006410000000136713247541377017347 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/a-08-split-exp.zdf0000644000064100006410000000174513247541377016676 0ustar ejbejb%PDF-1.4 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 53 >> stream x 휏nyA?(=2?&ꍕ>(ٙ aȊ1endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 6 0 obj << /Filter /Standard /Length 128 /O <2a2f0a1990192c60114730bdcd39f37828a53c89a340dd473c85299dc5258e1c> /P -4 /R 3 /U /V 2 >> endobj xref 0 7 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000398 00000 n 0000000497 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] /Encrypt 6 0 R >> startxref 704 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/minimal-linearize-pass1.pdf0000644000064100006410000000237213247541377020724 0ustar ejbejb%PDF-1.3 % 2 0 obj << >> endobj xref 2 7 0000000000 00000 n 0000000000 00000 n 0000000000 00000 n 0000000000 00000 n 0000000000 00000 n 0000000000 00000 n 0000000000 00000 n trailer << /Root 3 0 R /Size 9 /Prev 0 /ID [<00000000000000000000000000000000><00000000000000000000000000000000>] >> startxref 0 %%EOF 3 0 obj << /Pages 1 0 R /Type /Catalog >> endobj 5 0 obj << /Contents 6 0 R /MediaBox [ 0 0 612 792 ] /Parent 1 0 R /Resources << /Font << /F1 8 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj 6 0 obj << /Length 48 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 7 0 obj [ /PDF /Text ] endobj 8 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 1 0 obj << /Count 1 /Kids [ 5 0 R ] /Type /Pages >> endobj xref 0 2 0000000000 65535 f 0000000967 00000 n trailer << /Size 2 /ID [<00000000000000000000000000000000><00000000000000000000000000000000>] >> startxref 216 %%EOF % hint_offset=569 % hint_length=118 % second_xref_offset=1026 % second_xref_end=0 qpdf-8.0.2/qpdf/qtest/qpdf/c-normalized-content.pdf0000644000064100006410000002132513247541377020324 0ustar ejbejb%PDF-1.5 % 1 0 obj << /Outlines 3 0 R /PageLabels 15 0 R /PageMode /UseOutlines /Pages 16 0 R /Type /Catalog >> endobj 2 0 obj << /Type /ObjStm /Length 610 /Filter /FlateDecode /N 13 /First 87 >> stream x]o0r9v츪*! $41!>@]QѵS"N/;Q)=OcRd@ (L!?"~,w<$H;Vz1BzX1Z厳 @.~ y߭WWlS\:ʂu_`_ׁx~~wyXS6iW.fNjlKk0ldj{pOUjjs %]}z[^vY |01Ϋ|ȁ^z/&^sCt;7`YH0xstH3]y!j)Dc". \F75HQ~N̛9Σ4z9Tıl ԙ &`h%!z5;qQI/?^:;9|@q W){Pt8CBzZ֪$9F'=NR{bO"Q #m$v򍿓=C0g\nc[,ciS,F$Ez_2B1s૯I}uxD60:K#` m+@4OȘ%E?: ?p~?-Kendstream endobj 16 0 obj << /Count 30 /Kids [ 26 0 R 25 0 R 27 0 R 28 0 R 29 0 R 17 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 19 0 R 21 0 R 20 0 R 35 0 R 18 0 R 36 0 R 37 0 R 22 0 R 23 0 R 38 0 R 39 0 R 24 0 R 40 0 R 41 0 R 42 0 R 43 0 R 44 0 R 45 0 R 46 0 R ] /Type /Pages >> endobj 17 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 18 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 19 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 20 0 obj << /Contents 52 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 21 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 22 0 obj << /Contents 54 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 23 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 24 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 25 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 26 0 obj << /Contents 58 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 27 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 28 0 obj << /Contents 60 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 29 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 30 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 31 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 32 0 obj << /Contents 64 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 33 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 34 0 obj << /Contents 66 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 35 0 obj << /Contents 67 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 36 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 37 0 obj << /Contents 69 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 38 0 obj << /Contents 70 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 39 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 40 0 obj << /Contents 72 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 41 0 obj << /Contents 73 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 42 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 43 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 44 0 obj << /Contents 76 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 45 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 46 0 obj << /Contents 78 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 47 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 48 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 49 0 obj [ /PDF /Text ] endobj 50 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 51 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 52 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 53 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 54 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 55 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 56 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 57 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 58 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 0) Tj ET endstream endobj 59 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 60 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 61 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 62 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 63 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 64 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 65 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 66 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 67 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 68 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 69 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 70 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 71 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 72 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 73 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 74 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 75 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 76 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 77 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 78 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 79 0 obj << /Type /XRef /Length 81 /Filter /FlateDecode /DecodeParms << /Columns 4 /Predictor 12 >> /W [ 1 2 1 ] /Root 1 0 R /Size 80 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> stream xcb&F~&b`$d '(QBWAD"H,MXX\"…z!E endstream endobj startxref 8578 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/linearization-bounds-1.out0000644000064100006410000000106313247541377020621 0ustar ejbejbchecking linearization-bounds-1.pdf PDF Version: 1.3 File is not encrypted File is linearized WARNING: linearization-bounds-1.pdf (linearization hint stream: object 62 0, offset 12302): expected endstream WARNING: linearization-bounds-1.pdf (linearization hint stream: object 62 0, offset 1183): attempting to recover stream length WARNING: linearization-bounds-1.pdf (linearization hint stream: object 62 0, offset 1183): recovered stream length: 106 linearization-bounds-1.pdf (linearization hint table, offset 1183): /S (shared object) offset is out of bounds qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.3-ogen.c-check0000644000064100006410000000005013247541377020273 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-force-1.6.out0000644000064100006410000000006213247541377021007 0ustar ejbejbversion: 1.6 extension level: 0 null test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/a-04-split-exp.zdf0000644000064100006410000000174513247541377016672 0ustar ejbejb%PDF-1.4 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 53 >> stream x 휏nyA?(=2?&ꍕ>(ٙ aȊ1endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 6 0 obj << /Filter /Standard /Length 128 /O <2a2f0a1990192c60114730bdcd39f37828a53c89a340dd473c85299dc5258e1c> /P -4 /R 3 /U /V 2 >> endobj xref 0 7 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000398 00000 n 0000000497 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] /Encrypt 6 0 R >> startxref 704 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.10-ogen.c-check0000644000064100006410000000040613247541377020401 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 1 user password: extract for accessibility: 1 extract for any purpose: 1 print low resolution: 1 print high resolution: 1 modify document assembly: 1 modify forms: 1 modify annotations: 1 modify other: 1 modify anything: 1 qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.7.check0000644000064100006410000000026213247541377017457 0ustar ejbejbchecking a.pdf PDF Version: 1.2 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/c-object-streams.pdf0000644000064100006410000001211313247541377017425 0ustar ejbejb%PDF-1.5 % 1 0 obj << /Type /ObjStm /Length 1120 /Filter /FlateDecode /N 47 /First 357 >> stream xYMo6W19"g!I\#EװOyvw6H~tCΦpi8D4(cgWJ(ID$j$Zj|kpkN(ȁ,eHBPPF/yiË@d2Y %*&EoKK J3PDB Mlx~Ac?fUj%hɛah_h к$Muy.Hy.oBRPW}uML /՗jfv]aOkfpqLlS"Gfd0M)L2!!L 2`B  &L(P0`BB  %J(7ÖW_,^B(>E]Y0}^m|']f)2LlK߆778{IW#}ӧuSCɱ8R7Z-*GE<㎏ORH1;w'&!󥄰NBYA |-R|h11|wkĸTukGxΏኌd0 @cԸ,8릞+ |Dw~UT=ES}{1i&*EQ˞4CT*YTV*gda.b (]MteF,`5}opQE1yJSIlğp/^ZOPlx M=LI9qIhSc tb#c$I# 4E1*Xo¶шendstream endobj 49 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  endstream endobj 50 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr " endstream endobj 51 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr + endstream endobj 52 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr 4 endstream endobj 53 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr = endstream endobj 54 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr F endstream endobj 55 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr O endstream endobj 56 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr X endstream endobj 57 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,WTr a endstream endobj 58 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,WTr j !endstream endobj 59 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr 7 Iendstream endobj 60 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr @ Jendstream endobj 61 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr I Kendstream endobj 62 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr R Lendstream endobj 63 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr [ Mendstream endobj 64 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr d Nendstream endobj 65 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr m Oendstream endobj 66 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr v Pendstream endobj 67 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  Qendstream endobj 68 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  Rendstream endobj 69 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr A Jendstream endobj 70 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr J Kendstream endobj 71 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr S Lendstream endobj 72 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr \ Mendstream endobj 73 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,i*dqpe Nendstream endobj 74 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr n Oendstream endobj 75 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr w Pendstream endobj 76 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr  Qendstream endobj 77 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  Rendstream endobj 78 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  Sendstream endobj 79 0 obj << /Type /XRef /Length 50 /Filter /FlateDecode /DecodeParms << /Columns 4 /Predictor 12 >> /W [ 1 2 1 ] /Root 2 0 R /Size 80 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> stream xcb&F~ c+AD@,8H&,P endstream endobj startxref 4887 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-force-1.8.5.out0000644000064100006410000000014313247541377021154 0ustar ejbejbversion: 1.8 extension level: 5 << /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/good21.pdf0000644000064100006410000000141013247541377015354 0ustar ejbejb%PDF-1.1 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /QTest /# >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/page_api_2.out0000644000064100006410000000017013247541377016307 0ustar ejbejbpage_api_2.pdf (page 1 (numbered from zero): object 4 0): duplicate page reference found; this would cause loss of data qpdf-8.0.2/qpdf/qtest/qpdf/p1-a-p2-b.pdf0000644000064100006410000000251613247541377015565 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 2 /Kids [ 3 0 R 4 0 R ] /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 7 0 R >> /ProcSet 8 0 R >> /Type /Page >> endobj %% Page 2 4 0 obj << /Contents 9 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 7 0 R >> /ProcSet 8 0 R >> /Type /Page >> endobj %% Contents for page 1 5 0 obj << /Length 6 0 R >> stream BT /F1 24 Tf 72 720 Td (A) Tj ET endstream endobj 6 0 obj 39 endobj 7 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 8 0 obj [ /PDF /Text ] endobj %% Contents for page 2 9 0 obj << /Length 10 0 R >> stream BT /F1 24 Tf 72 720 Td (B) Tj ET endstream endobj 10 0 obj 39 endobj xref 0 11 0000000000 65535 f 0000000025 00000 n 0000000079 00000 n 0000000171 00000 n 0000000373 00000 n 0000000588 00000 n 0000000682 00000 n 0000000701 00000 n 0000000819 00000 n 0000000877 00000 n 0000000972 00000 n trailer << /Root 1 0 R /Size 11 /ID [<36b07232d7657658c548006151d4c57c><6de1f48ca16def200b3b655a24fa1b48>] >> startxref 992 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/parse-object.out0000644000064100006410000000045713247541377016707 0ustar ejbejb[ /name 16059 3.14159 false << /key true /other [ (string1) (string2) ] >> null ] logic error parsing indirect: QPDFObjectHandle::parse called without context on an object with indirect references trailing data: parsed object (trailing test): trailing data found parsing object from string test 31 done qpdf-8.0.2/qpdf/qtest/qpdf/test4-4.pdf0000644000064100006410000000226113247541377015472 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /Pages 3 0 R /Type /Catalog >> endobj 2 0 obj << /A 4 0 R /B 5 0 R /Subject (Subject) /Title (Some Title Is Here) >> endobj 3 0 obj << /Count 1 /Kids [ 6 0 R ] /Type /Pages >> endobj 4 0 obj [ 100 2 3 ] endobj 5 0 obj << /A 4 0 R /B (B) >> endobj %% Page 1 6 0 obj << /Contents 7 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 9 0 R >> /ProcSet 10 0 R >> /Type /Page >> endobj %% Contents for page 1 7 0 obj << /Length 8 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 8 0 obj 44 endobj 9 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 10 0 obj [ /PDF /Text ] endobj xref 0 11 0000000000 65535 f 0000000025 00000 n 0000000079 00000 n 0000000174 00000 n 0000000246 00000 n 0000000280 00000 n 0000000332 00000 n 0000000548 00000 n 0000000647 00000 n 0000000666 00000 n 0000000784 00000 n trailer << /QTest 2 0 R /Root 1 0 R /Size 11 /ID [] >> startxref 820 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.3-ogen.c-check0000644000064100006410000000005013247541377020316 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/issue-147.out0000644000064100006410000000076313247541377015772 0ustar ejbejbWARNING: issue-147.pdf: can't find PDF header WARNING: issue-147.pdf: file is damaged WARNING: issue-147.pdf: can't find startxref WARNING: issue-147.pdf: Attempting to reconstruct cross-reference table WARNING: issue-147.pdf (trailer, offset 9): expected dictionary key but found non-name object; inserting key /QPDFFake1 WARNING: issue-147.pdf (object 62 0, offset 88): expected endobj WARNING: issue-147.pdf (trailer, offset 90): invalid /ID in trailer dictionary issue-147.pdf: invalid password qpdf-8.0.2/qpdf/qtest/qpdf/lin9.out0000644000064100006410000000367313247541377015207 0ustar ejbejbWARNING: page 0 has shared identifier entries WARNING: page 0: shared object 19: in hint table but not computed list lin9.pdf: linearization data: file_size: 3316 first_page_object: 19 first_page_end: 1323 npages: 5 xref_zero_offset: 2849 first_page: 0 H_offset: 713 H_length: 162 Page Offsets Hint Table min_nobjects: 2 first_page_offset: 875 nbits_delta_nobjects: 2 min_page_length: 221 nbits_delta_page_length: 8 min_content_offset: 0 nbits_delta_content_offset: 0 min_content_length: 0 nbits_delta_content_length: 8 nbits_nshared_objects: 2 nbits_shared_identifier: 3 nbits_shared_numerator: 4 shared_denominator: 8 Page 0: nobjects: 5 length: 448 content_offset: 0 content_length: 227 nshared_objects: 1 identifier 0: 0 numerator 0: 0 Page 1: nobjects: 2 length: 221 content_offset: 0 content_length: 0 nshared_objects: 3 identifier 0: 5 numerator 0: 0 identifier 1: 6 numerator 1: 0 identifier 2: 4 numerator 2: 0 Page 2: nobjects: 2 length: 234 content_offset: 0 content_length: 13 nshared_objects: 3 identifier 0: 5 numerator 0: 0 identifier 1: 6 numerator 1: 0 identifier 2: 4 numerator 2: 0 Page 3: nobjects: 3 length: 375 content_offset: 0 content_length: 154 nshared_objects: 1 identifier 0: 4 numerator 0: 0 Page 4: nobjects: 2 length: 221 content_offset: 0 content_length: 0 nshared_objects: 3 identifier 0: 5 numerator 0: 0 identifier 1: 6 numerator 1: 0 identifier 2: 4 numerator 2: 0 Shared Objects Hint Table first_shared_obj: 10 first_shared_offset: 2374 nshared_first_page: 5 nshared_total: 7 nbits_nobjects: 0 min_group_length: 34 nbits_delta_group_length: 7 Shared Object 0: group length: 119 Shared Object 1: group length: 105 Shared Object 2: group length: 67 Shared Object 3: group length: 123 Shared Object 4: group length: 34 Shared Object 5: group length: 67 Shared Object 6: group length: 117 qpdf-8.0.2/qpdf/qtest/qpdf/split-exp.zdf_110000644000064100006410000000203213247541377016522 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 11) Tj ET endstream endobj 5 0 obj 48 endobj %% Original object ID: 5 0 6 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 7 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000242 00000 n 0000000509 00000 n 0000000612 00000 n 0000000658 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 766 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/numeric-and-string-1.out0000644000064100006410000000030513247541377020165 0ustar ejbejbpage 1: images: /Im1: 5100 x 6600 content: 5 0 R end page 1 page 2: images: /Im2: 5100 x 6600 /Im3: 305 x 305 /Im4: 305 x 305 content: 11 0 R end page 2 test 5 done qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.5-ogen.c-check0000644000064100006410000000005013247541377020616 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.1.c-check0000644000064100006410000000005013247541377017366 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.9.c-check0000644000064100006410000000005013247541377017712 0ustar ejbejbversion: 1.5 linearized: 1 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/split-exp-10000644000064100006410000000136313247541377015603 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TCM,. ,endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 6 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000398 00000 n trailer << /Root 1 0 R /Size 6 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 497 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad6.out0000644000064100006410000000017113247541377015136 0ustar ejbejb/QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 0 done qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.2-ogen.c-check0000644000064100006410000000005013247541377020613 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/short-O-U.pdf0000644000064100006410000000215513247541377016025 0ustar ejbejb%PDF-1.6 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet 6 0 R >> /Type /Page >> endobj 4 0 obj << /Length 80 /Filter /FlateDecode >> stream tiUj,B\hlI-Z䠢D@B;dhR.rYb\{cBcC?{av> endobj 6 0 obj [ /PDF /Text ] endobj 7 0 obj << /CF << /StdCF << /AuthEvent /DocOpen /CFM /AESV2 /Length 16 >> >> /Filter /Standard /Length 128 /O /P -4 /R 4 /StmF /StdCF /StrF /StdCF /U <82f858c956fc27a1d051b09b9fb19b72> /V 4 >> endobj xref 0 8 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000266 00000 n 0000000416 00000 n 0000000523 00000 n 0000000553 00000 n trailer << /Root 1 0 R /Size 8 /ID [<35653732633166343063386438346132>] /Encrypt 7 0 R >> startxref 820 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-min-1.8.2.out0000644000064100006410000000014313247541377020636 0ustar ejbejbversion: 1.8 extension level: 2 << /ADBE << /BaseVersion /1.8 /ExtensionLevel 2 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/append-xref-loop-fixed.pdf0000644000064100006410000002405213247541377020545 0ustar ejbejb%PDF-1.3 % 1 0 obj << /PageLabels 2 0 R /PageMode /UseOutlines /Pages 3 0 R /Type /Catalog >> endobj 2 0 obj << /Nums [ 0 << /P () >> 2 << /S /D /St 1 >> 7 << /P () >> 9 << /S /R /St 6 >> 11 << /P () >> 12 << /S /r /St 2 >> 15 << /S /r /St 6 >> 19 << /P () >> 20 << /S /R /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> endobj 3 0 obj << /Count 30 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R 33 0 R ] /Type /Pages >> endobj 4 0 obj << /Contents 34 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj 5 0 obj << /Contents 37 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj 6 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj 7 0 obj << /Contents 39 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj 8 0 obj << /Contents 40 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj 9 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj 10 0 obj << /Contents 42 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj 11 0 obj << /Contents 43 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj 12 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj 13 0 obj << /Contents 45 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj 14 0 obj << /Contents 46 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj 15 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj 16 0 obj << /Contents 48 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj 17 0 obj << /Contents 49 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj 18 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj 19 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj 20 0 obj << /Contents 52 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj 21 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj 22 0 obj << /Contents 54 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj 23 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj 24 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj 25 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj 26 0 obj << /Contents 58 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj 27 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj 28 0 obj << /Contents 60 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj 29 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj 30 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj 31 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj 32 0 obj << /Contents 64 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj 33 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj 34 0 obj << /Length 54 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0PK-Tr  endstream endobj 35 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 36 0 obj [ /PDF /Text ] endobj 37 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr " endstream endobj 38 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr + endstream endobj 39 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr 4 endstream endobj 40 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr = endstream endobj 41 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr F endstream endobj 42 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr O endstream endobj 43 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr X endstream endobj 44 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,WTr a endstream endobj 45 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,WTr j !endstream endobj 46 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr 7 Iendstream endobj 47 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr @ Jendstream endobj 48 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr I Kendstream endobj 49 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr R Lendstream endobj 50 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr [ Mendstream endobj 51 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr d Nendstream endobj 52 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr m Oendstream endobj 53 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr v Pendstream endobj 54 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  Qendstream endobj 55 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  Rendstream endobj 56 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr A Jendstream endobj 57 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr J Kendstream endobj 58 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr S Lendstream endobj 59 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr \ Mendstream endobj 60 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,i*dqpe Nendstream endobj 61 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr n Oendstream endobj 62 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr w Pendstream endobj 63 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr  Qendstream endobj 64 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  Rendstream endobj 65 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  Sendstream endobj xref 0 66 0000000000 65535 f 0000000015 00000 n 0000000105 00000 n 0000000367 00000 n 0000000625 00000 n 0000000771 00000 n 0000000917 00000 n 0000001063 00000 n 0000001209 00000 n 0000001355 00000 n 0000001501 00000 n 0000001648 00000 n 0000001795 00000 n 0000001942 00000 n 0000002089 00000 n 0000002236 00000 n 0000002383 00000 n 0000002530 00000 n 0000002677 00000 n 0000002824 00000 n 0000002971 00000 n 0000003118 00000 n 0000003265 00000 n 0000003412 00000 n 0000003559 00000 n 0000003706 00000 n 0000003853 00000 n 0000004000 00000 n 0000004147 00000 n 0000004294 00000 n 0000004441 00000 n 0000004588 00000 n 0000004735 00000 n 0000004882 00000 n 0000005029 00000 n 0000005154 00000 n 0000005262 00000 n 0000005293 00000 n 0000005414 00000 n 0000005535 00000 n 0000005656 00000 n 0000005777 00000 n 0000005898 00000 n 0000006019 00000 n 0000006140 00000 n 0000006261 00000 n 0000006382 00000 n 0000006504 00000 n 0000006626 00000 n 0000006748 00000 n 0000006870 00000 n 0000006992 00000 n 0000007114 00000 n 0000007236 00000 n 0000007358 00000 n 0000007480 00000 n 0000007602 00000 n 0000007724 00000 n 0000007846 00000 n 0000007968 00000 n 0000008090 00000 n 0000008211 00000 n 0000008333 00000 n 0000008455 00000 n 0000008577 00000 n 0000008699 00000 n trailer << /Root 1 0 R /Size 66 /ID [<37ba5c044c2be6ab2e389a76d8ede6f4><37ba5c044c2be6ab2e389a76d8ede6f4>] >> startxref 8821 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.3.c-check0000644000064100006410000000005013247541377021356 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/issue-106.pdf0000644000064100006410000000733013247541377015724 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj %% Original object ID: 6 0 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 5 0 7 0 obj [ /PDF /Text ] endobj 8 0 obj << /Type/XObject/Subtype/Image/Name/img2/BitsPerComponent 8/ColorSpace/DeviceRGB/Width 100/Height 100/Length 2470/Filter [/FlateDecode] >> stream X`I%&/m{JJt`$ؐ@iG#)*eVe]f@흼{{;N'?\fdlJɞ!?~|?"=?wG_uc=w[;鿵\pNmv#r =Q Q ~]ѧQDqWsԏ+lqW!QK^O?.G_("o;wm(n@(%|'wmM7z~pޭu󁻾z]_[G =QC(w,q3C(.wml=_2G+ep!Gk؏J7sK8]u7G6[ֿOS_Wo{5Y֟OC7>Ш?{o|=?ODjEDJ/_~r?Op-uqX$2fȿ˗<_G;;;MwMD!"54v?&",宍ΰl)( Y_ }4 MGQ~|>QD%bWKҿD\A$a$6#:/$n'ޭH0IHl}=yb"]_CGѤ#YҟDGlC_1I~7?ꏲ 7UՊ%m~;nҋEĈ H{(&?L<4 "N=&b @G(M4B ICᮯ=NA{GBr4$DSL?ݻ/_ m+~q<$$k}퇄E:M{޿w} ?>N'ljKC.+%olR:lpׇp= C"8و?>pK|b*RgdS宯C$Ɩ_!5Eο|BF$f`;Ke$g# (\[f!d$R_S?ݤ?ùkR7;y?ь#)"ъG.-"^yn]ۇ3]7}9T! Eۿ'qhGQ@nC$ @?kkc$p" 6@<)iC1pԑ IDDAӍGpQчt=IM ֺxh:RD.|{?f7?uT!lϒ?\$zdHm~6!YwK )WR؛T%N(G wOEjOi5lǀ&ѿ$ir(b"_h_C(Et{/%FF§2=drQh4pȷG%L +Ml<+fVk*> TL-u߈\.r #_ ށX@65C.+<>ҀHM&\jczó.d;KֿӋނ!jwK/,?(%w݆s_nrHn|69*xn.W-Ld*!r&OGߜ"Bls?7rMR7UU`dI<߲6É忊R|Йv~=pC.U {A!rݘmύ<Qr(wf9nw( wq~9?]?rs(w\q~n9_]o(-w6Wq;9_3G9wPw焻QC/rи??uUGϒYzqG7](F?h>p|mQ5t7⮟?]?9nqlZ:Y-GQ ]?c#3]?qԆqԍGuˇNB?'L} endstream endobj xref 0 9 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000242 00000 n 0000000484 00000 n 0000000583 00000 n 0000000629 00000 n 0000000774 00000 n 0000000811 00000 n trailer << /DataCheck 8 0 R /Root 1 0 R /Size 8 /ID [] >> startxref 809 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/linearized-and-warnings-1.out0000644000064100006410000000203713247541377021177 0ustar ejbejbWARNING: linearized-and-warnings.pdf (object 2 0, offset 1117): empty object treated as null linearized-and-warnings.pdf: linearization data: file_size: 1310 first_page_object: 6 first_page_end: 1044 npages: 1 xref_zero_offset: 1132 first_page: 0 H_offset: 528 H_length: 118 Page Offsets Hint Table min_nobjects: 4 first_page_offset: 646 nbits_delta_nobjects: 0 min_page_length: 398 nbits_delta_page_length: 0 min_content_offset: 0 nbits_delta_content_offset: 0 min_content_length: 398 nbits_delta_content_length: 0 nbits_nshared_objects: 0 nbits_shared_identifier: 3 nbits_shared_numerator: 0 shared_denominator: 4 Page 0: nobjects: 4 length: 398 content_offset: 0 content_length: 398 nshared_objects: 0 Shared Objects Hint Table first_shared_obj: 0 first_shared_offset: 0 nshared_first_page: 4 nshared_total: 4 nbits_nobjects: 0 min_group_length: 30 nbits_delta_group_length: 7 Shared Object 0: group length: 143 Shared Object 1: group length: 118 Shared Object 2: group length: 30 Shared Object 3: group length: 107 test 12 done qpdf-8.0.2/qpdf/qtest/qpdf/long-id-check.out0000644000064100006410000000073213247541377016731 0ustar ejbejbchecking a.pdf PDF Version: 1.3 R = 2 P = -4 User password = Encryption key = 2f382cf6e1 extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/bad10.pdf0000644000064100006410000000137513247541377015162 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size (h) /Root 1 0 R >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/short-id.pdf0000644000064100006410000000147113247541377016021 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /ID [<443A32303130303432333131> <443A32303130303432333131>] >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.8.check0000644000064100006410000000026213247541377017460 0ustar ejbejbchecking a.pdf PDF Version: 1.2 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-min-1.8.0.out0000644000064100006410000000006213247541377020634 0ustar ejbejbversion: 1.8 extension level: 0 null test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/05_split-exp.zdf0000644000064100006410000000136313247541377016533 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TSM,.2 0endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 6 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000398 00000 n trailer << /Root 1 0 R /Size 6 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 497 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad25.pdf0000644000064100006410000000141213247541377015160 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj x 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /QTest 4 0 R >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.11.c-check0000644000064100006410000000040613247541377021442 0ustar ejbejbversion: 1.5 linearized: 1 encrypted: 1 user password: extract for accessibility: 1 extract for any purpose: 1 print low resolution: 1 print high resolution: 1 modify document assembly: 1 modify forms: 1 modify annotations: 1 modify other: 1 modify anything: 1 qpdf-8.0.2/qpdf/qtest/qpdf/bad19.out0000644000064100006410000000026013247541377015221 0ustar ejbejbWARNING: bad19.pdf (trailer, offset 753): unexpected > /QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 0 done qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.3-ogen.c-check0000644000064100006410000000005013247541377020614 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.12-ogen.check0000644000064100006410000000026213247541377020163 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/bad-token-startxref.pdf0000644000064100006410000000140613247541377020152 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R >> startxref( startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad13.pdf0000644000064100006410000000141213247541377015155 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /Something { >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad18.out0000644000064100006410000000026013247541377015220 0ustar ejbejbWARNING: bad18.pdf (trailer, offset 753): unexpected ) /QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 0 done qpdf-8.0.2/qpdf/qtest/qpdf/c-write-damaged.out0000644000064100006410000000076413247541377017264 0ustar ejbejbwarning: append-page-content-damaged.pdf: file is damaged code: 5 file: append-page-content-damaged.pdf pos : 0 text: file is damaged warning: append-page-content-damaged.pdf: can't find startxref code: 5 file: append-page-content-damaged.pdf pos : 0 text: can't find startxref warning: append-page-content-damaged.pdf: Attempting to reconstruct cross-reference table code: 5 file: append-page-content-damaged.pdf pos : 0 text: Attempting to reconstruct cross-reference table qpdf-8.0.2/qpdf/qtest/qpdf/foreign-in-write.out0000644000064100006410000000022313247541377017505 0ustar ejbejblogic error: QPDFObjectHandle from different QPDF found while writing. Use QPDF::copyForeignObject to add objects from another file. test 29 done qpdf-8.0.2/qpdf/qtest/qpdf/page_api_1-out3.pdf0000644000064100006410000000671213247541377017150 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 3 0 R /Type /Catalog >> endobj 2 0 obj << /CreationDate (D:20120621111522) /Producer (Apex PDFWriter) >> endobj 3 0 obj << /Count 10 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R ] /Type /Pages >> endobj 4 0 obj << /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 15 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 5 0 obj << /Contents 16 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 15 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 6 0 obj << /Contents 17 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 15 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 7 0 obj << /Contents 18 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 15 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 8 0 obj << /Contents 19 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 15 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 9 0 obj << /Contents 20 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 15 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 10 0 obj << /Contents 21 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 15 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 11 0 obj << /Contents 22 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 15 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 12 0 obj << /Contents 23 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 15 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 13 0 obj << /Contents 24 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 15 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 14 0 obj << /Length 47 >> stream BT /F1 15 Tf 72 720 Td (Original page 0) Tj ET endstream endobj 15 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 16 0 obj << /Length 47 >> stream BT /F1 15 Tf 72 720 Td (Original page 1) Tj ET endstream endobj 17 0 obj << /Length 47 >> stream BT /F1 15 Tf 72 720 Td (Original page 2) Tj ET endstream endobj 18 0 obj << /Length 47 >> stream BT /F1 15 Tf 72 720 Td (Original page 3) Tj ET endstream endobj 19 0 obj << /Length 47 >> stream BT /F1 15 Tf 72 720 Td (Original page 4) Tj ET endstream endobj 20 0 obj << /Length 47 >> stream BT /F1 15 Tf 72 720 Td (Original page 6) Tj ET endstream endobj 21 0 obj << /Length 47 >> stream BT /F1 15 Tf 72 720 Td (Original page 7) Tj ET endstream endobj 22 0 obj << /Length 47 >> stream BT /F1 15 Tf 72 720 Td (Original page 8) Tj ET endstream endobj 23 0 obj << /Length 47 >> stream BT /F1 15 Tf 72 720 Td (Original page 9) Tj ET endstream endobj 24 0 obj << /Length 47 >> stream BT /F1 15 Tf 72 720 Td (Original page 5) Tj ET endstream endobj xref 0 25 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000145 00000 n 0000000263 00000 n 0000000417 00000 n 0000000571 00000 n 0000000725 00000 n 0000000879 00000 n 0000001033 00000 n 0000001187 00000 n 0000001342 00000 n 0000001497 00000 n 0000001652 00000 n 0000001807 00000 n 0000001904 00000 n 0000002004 00000 n 0000002101 00000 n 0000002198 00000 n 0000002295 00000 n 0000002392 00000 n 0000002489 00000 n 0000002586 00000 n 0000002683 00000 n 0000002780 00000 n trailer << /Info 2 0 R /Root 1 0 R /Size 25 /ID [<21f7a6fb083dab8e29743918a08bfa31><31415926535897932384626433832795>] >> startxref 2877 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.generate.exp0000644000064100006410000000253513247541377020645 0ustar ejbejb%PDF-1.5 % 2 0 obj << /Linearized 1 /L 1373 /H [ 562 120 ] /O 6 /E 1166 /N 1 /T 1165 >> endobj 3 0 obj << /Type /XRef /Length 40 /W [ 1 2 1 ] /Index [ 2 10 ] /Root 4 0 R /Size 12 /Prev 1166 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> stream 2; endstream endobj 4 0 obj << /Pages 9 0 R /Type /Catalog >> endobj 5 0 obj << /Filter /FlateDecode /S 36 /Length 43 >> stream xc```f``2b' pe31 Bb8Lf2b@ endstream endobj 6 0 obj << /Contents 7 0 R /MediaBox [ 0 0 612 792 ] /Parent 9 0 R /Resources << /Font << /F1 11 0 R >> /ProcSet 10 0 R >> /Type /Page >> endobj 7 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 8 0 obj << /Type /ObjStm /Length 167 /N 3 /First 16 >> stream 9 0 10 44 11 59 << /Count 1 /Kids [ 6 0 R ] /Type /Pages >> [ /PDF /Text ] << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endstream endobj 1 0 obj << /Type /XRef /Length 8 /W [ 1 2 1 ] /Size 2 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> stream  endstream endobj startxref 216 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/extensions-other-force-1.3.out0000644000064100006410000000015513247541377021235 0ustar ejbejbversion: 1.3 extension level: 0 << /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/bad24.out0000644000064100006410000000027413247541377015222 0ustar ejbejbWARNING: bad24.pdf (object 4 0, offset 385): expected endstream /QTest is implicit /QTest is indirect and has type null (2) /QTest is null unparse: 4 0 R unparseResolved: null test 0 done qpdf-8.0.2/qpdf/qtest/qpdf/c-info2-in.pdf0000644000064100006410000000163613247541377016134 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 3 0 R /Type /Catalog >> endobj 2 0 obj << /Author (Someone Else) /Creator (A. Nony Mous) /Producer (Something Else) >> endobj 3 0 obj << /Count 1 /Kids [ 4 0 R ] /Type /Pages >> endobj 4 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj 5 0 obj << /Length 48 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 7 0 obj [ /PDF /Text ] endobj xref 0 8 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000159 00000 n 0000000218 00000 n 0000000361 00000 n 0000000479 00000 n 0000000586 00000 n trailer << /Info 2 0 R /Root 1 0 R /Size 8 /ID [<31415926535897932384626433832795><6b9ace701266b5b6eac998402f0929ff>] >> startxref 616 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/02_split-exp.zdf0000644000064100006410000000136313247541377016530 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼T#M,. -endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 6 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000398 00000 n trailer << /Root 1 0 R /Size 6 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 497 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/lin3.pdf0000644000064100006410000004105113247541377015133 0ustar ejbejb%PDF-1.3 % 91 0 obj << /Linearized 1 /O 93 /H [ 1142 210 ] /L 16937 /E 3978 /N 30 /T 14999 >> endobj xref 91 21 0000000016 00000 n 0000000768 00000 n 0000001352 00000 n 0000001547 00000 n 0000001627 00000 n 0000001816 00000 n 0000001957 00000 n 0000002124 00000 n 0000002298 00000 n 0000002461 00000 n 0000002621 00000 n 0000002804 00000 n 0000003006 00000 n 0000003155 00000 n 0000003319 00000 n 0000003483 00000 n 0000003615 00000 n 0000003731 00000 n 0000003752 00000 n 0000001142 00000 n 0000001331 00000 n trailer << /Size 112 /Info 89 0 R /Root 92 0 R /Prev 14989 /ID[<66d36a30a97e0f16f39955c6221e0c2a><66d36a30a97e0f16f39955c6221e0c2a>] >> startxref 0 %%EOF 92 0 obj << /PageLabels << /Nums [ 0 << /P ()>> 2 << /S /r /St 1 >> 7 << /P ()>> 9 << /S /r /St 6 >> 11 << /P ()>> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P ()>> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /Pages 88 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 94 0 R /Metadata 90 0 R >> endobj 110 0 obj << /S 145 /O 189 /Filter /FlateDecode /Length 111 0 R >> stream Hb```f``)c`e`` fa@(Q>V(J` C-bA(f`eXgb̾E[x!n8@g U endstream endobj 111 0 obj 95 endobj 93 0 obj << /Contents 106 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 94 0 obj << /Type /Outlines /First 95 0 R /Last 96 0 R /Count 6 >> endobj 95 0 obj << /Type /Outline /Title (Isis 1 -> 5: /XYZ null null null) /Parent 94 0 R /Count 4 /Next 96 0 R /First 97 0 R /Last 98 0 R /Dest [ 13 0 R /XYZ null null null ] >> endobj 96 0 obj << /Type /Outline /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Parent 94 0 R /Prev 95 0 R /Dest [ 43 0 R /XYZ 66 756 3 ] >> endobj 97 0 obj << /Type /Outline /Title (Amanda 1.1 -> 11: /Fit) /Parent 95 0 R /Next 98 0 R /First 101 0 R /Last 102 0 R /Count -3 /Dest [ 31 0 R /Fit ] >> endobj 98 0 obj << /Type /Outline /Title (Sandy 1.2 -> 13: /FitH 792) /Parent 95 0 R /Prev 97 0 R /First 99 0 R /Last 100 0 R /Count 2 /Dest [ 37 0 R /FitH 792 ] >> endobj 99 0 obj << /Type /Outline /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Parent 98 0 R /Next 100 0 R /Dest [ 1 0 R /FitR 66 714 180 770 ] >> endobj 100 0 obj << /Type /Outline /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Parent 98 0 R /Prev 99 0 R /Dest [ 93 0 R /XYZ null null null ] >> endobj 101 0 obj << /Type /Outline /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Parent 97 0 R /Next 102 0 R /First 104 0 R /Last 105 0 R /Count -2 /Dest [ 34 0 R /FitV 100 ] >> endobj 102 0 obj << /Type /Outline /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Parent 97 0 R /Prev 101 0 R /First 103 0 R /Last 103 0 R /Count 1 /Dest [ 34 0 R /XYZ null null null ] >> endobj 103 0 obj << /Type /Outline /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Parent 102 0 R /Dest [ 64 0 R /XYZ null null null ] >> endobj 104 0 obj << /Type /Outline /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Parent 101 0 R /Next 105 0 R /Dest [ 52 0 R /XYZ null null null ] >> endobj 105 0 obj << /Type /Outline /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Parent 101 0 R /Prev 104 0 R /Dest [ 55 0 R /XYZ null null null ] >> endobj 106 0 obj << /Filter /FlateDecode /Length 108 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0  endstream endobj 107 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 108 0 obj 52 endobj 109 0 obj [ /PDF /Text ] endobj 1 0 obj << /Contents 2 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 2 0 obj << /Filter /FlateDecode /Length 3 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0"  endstream endobj 3 0 obj 52 endobj 4 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 5 0 obj << /Filter /FlateDecode /Length 6 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0+  endstream endobj 6 0 obj 52 endobj 7 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 8 0 obj << /Filter /FlateDecode /Length 9 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 04  endstream endobj 9 0 obj 52 endobj 10 0 obj << /Contents 11 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 11 0 obj << /Filter /FlateDecode /Length 12 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0=  endstream endobj 12 0 obj 52 endobj 13 0 obj << /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 14 0 obj << /Filter /FlateDecode /Length 15 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0F  endstream endobj 15 0 obj 52 endobj 16 0 obj << /Contents 17 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 17 0 obj << /Filter /FlateDecode /Length 18 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0O  endstream endobj 18 0 obj 52 endobj 19 0 obj << /Contents 20 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 20 0 obj << /Filter /FlateDecode /Length 21 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0X  endstream endobj 21 0 obj 52 endobj 22 0 obj << /Contents 23 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 23 0 obj << /Filter /FlateDecode /Length 24 0 R >> stream Hr RPw3T02QI͍@!$/I,WTr 0a endstream endobj 24 0 obj 52 endobj 25 0 obj << /Contents 26 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 26 0 obj << /Filter /FlateDecode /Length 27 0 R >> stream Hr RPw3T02QI͍@!$/I,WTr 0j ! endstream endobj 27 0 obj 52 endobj 28 0 obj << /Contents 29 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 29 0 obj << /Filter /FlateDecode /Length 30 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 07 I endstream endobj 30 0 obj 53 endobj 31 0 obj << /Contents 32 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 32 0 obj << /Filter /FlateDecode /Length 33 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0@ J endstream endobj 33 0 obj 53 endobj 34 0 obj << /Contents 35 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 35 0 obj << /Filter /FlateDecode /Length 36 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0I K endstream endobj 36 0 obj 53 endobj 37 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 38 0 obj << /Filter /FlateDecode /Length 39 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0R L endstream endobj 39 0 obj 53 endobj 40 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 41 0 obj << /Filter /FlateDecode /Length 42 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0[ M endstream endobj 42 0 obj 53 endobj 43 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 44 0 obj << /Filter /FlateDecode /Length 45 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0d N endstream endobj 45 0 obj 53 endobj 46 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 47 0 obj << /Filter /FlateDecode /Length 48 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0m O endstream endobj 48 0 obj 53 endobj 49 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 50 0 obj << /Filter /FlateDecode /Length 51 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0v P endstream endobj 51 0 obj 53 endobj 52 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 53 0 obj << /Filter /FlateDecode /Length 54 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0 Q endstream endobj 54 0 obj 53 endobj 55 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 56 0 obj << /Filter /FlateDecode /Length 57 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0 R endstream endobj 57 0 obj 53 endobj 58 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 59 0 obj << /Filter /FlateDecode /Length 60 0 R >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0A J endstream endobj 60 0 obj 53 endobj 61 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 62 0 obj << /Filter /FlateDecode /Length 63 0 R >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0J K endstream endobj 63 0 obj 53 endobj 64 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 65 0 obj << /Filter /FlateDecode /Length 66 0 R >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0S L endstream endobj 66 0 obj 53 endobj 67 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 68 0 obj << /Filter /FlateDecode /Length 69 0 R >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0\ M endstream endobj 69 0 obj 53 endobj 70 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 71 0 obj << /Filter /FlateDecode /Length 72 0 R >> stream Hr RPw3T02QI͍@!$/I,i*dqpe N endstream endobj 72 0 obj 52 endobj 73 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 74 0 obj << /Filter /FlateDecode /Length 75 0 R >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0n O endstream endobj 75 0 obj 53 endobj 76 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 77 0 obj << /Filter /FlateDecode /Length 78 0 R >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0w P endstream endobj 78 0 obj 53 endobj 79 0 obj << /Contents 80 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 80 0 obj << /Filter /FlateDecode /Length 81 0 R >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0 Q endstream endobj 81 0 obj 53 endobj 82 0 obj << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 83 0 obj << /Filter /FlateDecode /Length 84 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0 R endstream endobj 84 0 obj 53 endobj 85 0 obj << /Contents 86 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 86 0 obj << /Filter /FlateDecode /Length 87 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0 S endstream endobj 87 0 obj 53 endobj 88 0 obj << /Count 30 /Kids [ 93 0 R 1 0 R 4 0 R 7 0 R 10 0 R 13 0 R 16 0 R 19 0 R 22 0 R 25 0 R 28 0 R 31 0 R 34 0 R 37 0 R 40 0 R 43 0 R 46 0 R 49 0 R 52 0 R 55 0 R 58 0 R 61 0 R 64 0 R 67 0 R 70 0 R 73 0 R 76 0 R 79 0 R 82 0 R 85 0 R ] /Type /Pages >> endobj 89 0 obj << /ModDate (D:20031010180432-03'00') /CreationDate (D:20031010180432-03'00') >> endobj 90 0 obj << /Type /Metadata /Subtype /XML /Length 770 >> stream 2003-10-10T18:04:32-03:00 2003-10-10T18:04:32-03:00 2003-10-10T18:04:32-03:00 2003-10-10T18:04:32-03:00 2003-10-10T18:04:32-03:00 endstream endobj xref 0 91 0000000000 65535 f 0000003786 00000 n 0000003978 00000 n 0000004106 00000 n 0000004125 00000 n 0000004317 00000 n 0000004445 00000 n 0000004464 00000 n 0000004656 00000 n 0000004784 00000 n 0000004803 00000 n 0000004997 00000 n 0000005127 00000 n 0000005147 00000 n 0000005341 00000 n 0000005471 00000 n 0000005491 00000 n 0000005685 00000 n 0000005815 00000 n 0000005835 00000 n 0000006029 00000 n 0000006159 00000 n 0000006179 00000 n 0000006373 00000 n 0000006503 00000 n 0000006523 00000 n 0000006717 00000 n 0000006847 00000 n 0000006867 00000 n 0000007061 00000 n 0000007192 00000 n 0000007212 00000 n 0000007406 00000 n 0000007537 00000 n 0000007557 00000 n 0000007751 00000 n 0000007882 00000 n 0000007902 00000 n 0000008096 00000 n 0000008227 00000 n 0000008247 00000 n 0000008441 00000 n 0000008572 00000 n 0000008592 00000 n 0000008786 00000 n 0000008917 00000 n 0000008937 00000 n 0000009131 00000 n 0000009262 00000 n 0000009282 00000 n 0000009476 00000 n 0000009607 00000 n 0000009627 00000 n 0000009821 00000 n 0000009952 00000 n 0000009972 00000 n 0000010166 00000 n 0000010297 00000 n 0000010317 00000 n 0000010511 00000 n 0000010642 00000 n 0000010662 00000 n 0000010856 00000 n 0000010987 00000 n 0000011007 00000 n 0000011201 00000 n 0000011332 00000 n 0000011352 00000 n 0000011546 00000 n 0000011677 00000 n 0000011697 00000 n 0000011891 00000 n 0000012021 00000 n 0000012041 00000 n 0000012235 00000 n 0000012366 00000 n 0000012386 00000 n 0000012580 00000 n 0000012711 00000 n 0000012731 00000 n 0000012925 00000 n 0000013056 00000 n 0000013076 00000 n 0000013270 00000 n 0000013401 00000 n 0000013421 00000 n 0000013615 00000 n 0000013746 00000 n 0000013766 00000 n 0000014036 00000 n 0000014135 00000 n trailer << /Size 91 /ID[<66d36a30a97e0f16f39955c6221e0c2a><66d36a30a97e0f16f39955c6221e0c2a>] >> startxref 173 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/good1.qdf0000644000064100006410000000213113247541377015274 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj %% Original object ID: 6 0 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 5 0 7 0 obj [ /PDF /Text ] endobj xref 0 8 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000242 00000 n 0000000484 00000 n 0000000583 00000 n 0000000629 00000 n 0000000774 00000 n trailer << /Root 1 0 R /Size 8 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 809 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/custom-pipeline.pdf0000644000064100006410000000143713247541377017407 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet 6 0 R >> /Type /Page >> endobj 4 0 obj << /Length 48 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 5 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 6 0 obj [ /PDF /Text ] endobj xref 0 7 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000266 00000 n 0000000384 00000 n 0000000491 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 521 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/good2.pdf0000644000064100006410000000141113247541377015274 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /QTest null >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.2-ogen.c-check0000644000064100006410000000005013247541377020315 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/bad16.out0000644000064100006410000000066113247541377015223 0ustar ejbejbWARNING: bad16.pdf (trailer, offset 753): unexpected dictionary close token WARNING: bad16.pdf (trailer, offset 756): unexpected dictionary close token WARNING: bad16.pdf (trailer, offset 759): unknown token while reading object; treating as string WARNING: bad16.pdf (trailer, offset 779): unexpected EOF WARNING: bad16.pdf (trailer, offset 779): parse error while reading object bad16.pdf (offset 712): expected trailer dictionary qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.6-ogen.c-check0000644000064100006410000000005013247541377022307 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/extra-header-newline.pdf0000644000064100006410000000146713247541377020305 0ustar ejbejb%PDF-1.3 % %% Comment with newline 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet 6 0 R >> /Type /Page >> endobj 4 0 obj << /Length 48 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 5 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 6 0 obj [ /PDF /Text ] endobj xref 0 7 0000000000 65535 f 0000000039 00000 n 0000000088 00000 n 0000000147 00000 n 0000000290 00000 n 0000000408 00000 n 0000000515 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 545 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.6-ogen.check0000644000064100006410000000026213247541377020422 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.pdf0000644000064100006410000111321413247541377017011 0ustar ejbejb%PDF-1.2 %쏢 4 0 obj <> stream xwݒt /dϸ!ϻDHw=kciȱ O[DA 2qc:5c9說뺪o^]^ߵjUժU}߿m7?~۷~_H}noO?7]?ǿ?ɿ韭b?~G?m?o??~_73Z~]vxc|oOYf_*ӷ'ˌssD9V^Q9̾e!}{U=\@eե{t{(4~BvgC}1u>xw-h(4͆o[~un}\(~v<|X6)kֵUb7+ʬ5۳еh`ao; hlQC4tnj KjX#ڿ,l/Эu=q{/6vv۱o܏_?_Oʖ} e9/WkO<5[NCK?_?};/A_կR=kbFku551},y(h:}_o?>!aȿ{kw7m-vf?ݐq|پ\@7-Nj_i_\}0_jV\!ڹskYdZ/b^2iӀ>~}[=?Ž} uvAnm&f^|uk籪IXkZ5ą|+5݁X] YtZӳmk^j~?QQ7in!-MF=1iEJ9rF ,er#֌llkэ'{xE2QFg f+}QY+oֳ{nrG}y7ļRVv?󼶉.>?!)Ij16 IzٚƵMy@N~7F1WZf`h?&:f,R}j^c,XZݑľE+ʹ56Vc.E h ek-ΊjD@a]fpk何ɸy^&}ҭlLesu[<eqN* xn|nn 4ak|:t:0Pᆭ}T;~"d?w3gkO \9<9dFN:sεN*7L1 '̵je2J­8Di@@1^r*F^r8ל< < ,mH\huo[tODvo^ 2[#)a]`w_vv`8b'#vVA:j {졐 N!*eȯm2qH&I%մ/߶|mYeU ]Rv$QNvCJW=:.;K]d۾CS{-c'N_zz# )6_!پ;g+o06|p5'_B^1%Ed짜IĂmg%^L$%wla(S6e^Q>|E|N2gǺpܐ9s2wwB`TL~]#DA4uǞ CJsBh0.͝ON3hLGu ?vqJbn0ԋҌ=)/!)a,g" "Z )Ԓԥi;H&:e!t;SB ;]ֵ% 1~W-BLg\QnNp(&vDPhGJjALG' b~h$BYʂtA=T vBӉm\$1APkmuBLҮQBl6 Q80Ӯ0l$&۔)GN~c"!;Q oi51 9X1.y/#c7˫%5lhKsh кF7Tv6Z纛I.C{E)'zhQٯhs*B)amD^ -f!.+Z"h4# p'B&I(ީ%{$!rl .[* aML͗Dlѫi & KbTZۼZ% BKznhp2@@r7MR7RvԚj%Ym@8t .1is3~7u|ͮ_MT;Vʌ=ObwRR\F7Di!aggfjpfwԙϮԤeR~9.ON(ɋ:֤:0+P9%۬<_'W/)0Q <7䠗qwN<%B;V~)3O);_#?uGxhWDc"뚡`+.ucK-0\`mn 7Ek^sRM GS&?8rKL:gM?$HwP='˽Dty 1v!E@#l!OӥsWS?N=w X,]K"\P Ed-ʚeEJSy =DDPMDNfϬ@NǔD^,+h'Í 0Iw v= cwGAf^Q|IM|9M}yhw3h v|Zwnװc. ʮmGqpo_jI}y:;(R^tcvM;JA6?vn\'*=rv|A[13?YzkXzxsEMa>YFRS)iO@.h1q7=t`<· H@k;*!EvD; 82qygl[x,f"^'WVn\{] O`ztTN&ئa?yz]v)-kwqb0+} 2\|[:UN挫^+{3\yG5xPab)u5M;#-;hKBseq>@+r1(e N"Ʋ+Jѵ Qf9zhzt 0YES^{UN/]'xl MBl^C?Ck>...En5w'ٌM8uię'a/yҟ('n(t&[5KnIJy(PΣyPl>lɃ {+R,$4 9Ah {7)ʰQ _ogm?@Z.I޶7 iK[o Bʤ=Y=v U%mVrJ="F"|ȸ jK1?O5vpɭ*/J&(^ b1Nj2gK)H{1=.䌺F8}7xg{w^?11ܾ[H  {1,VL6Y&x4Ѻ9YDApݴݡI3M,GMM.CÍu3JIW\м-h2oEpl̕[ 1I}Yܢu܇=C {2^ŶXjK߯T9}Gw@67l"XDX=B[GCvîfpBbb~W x17ۦa7VKA0n찻 ż4~8]6 3zHcl FaI- HY3 ![7m>zH2\8}\"^Ɖv8h|T]nؕ6;Ada ~ 07p fJa/.*;we"]~0u4E5h(# {=bkc'G=,] wLl%*V58o:l5, = ! uΗDG hqO?"L|-*;atL6@UÞ@ESOs@u+oEQN[Sc-~qu$ JtVʛV9'q)SVҏ91Lc34l`YDRf<%E%50 j2g FD^32yi$mJ,D8!Xe}abQ sDXaj[{~cfz݄Ƌ8l !3W|J1-e c䣆$_jËQqI:>JqjM^a jHaǣH-͔@NdJcR؟Q#5Ll=L| ]ie^c| wd{"&Gh/-8u |; 5 6CjG͜w4%b5 %!u@@HscgY+#ΰk-J]q4B=[x"&`a=v1HBN c={i7o7~3QOM˰fZ4pTIP:l qn` PQ!oHօ_=[ɰM}[n $KY5}wpuLgEp϶v!mYjn ([fC1Q ;3qW]h o s ;a;W}µ?2CTC^k<ʳ/ceƼ^9Ekho]sGBO¶xšGno,x7<1,YFY+6f`Op-j9 v=yTƨx_hM1ܮ ̋R\tv'շ2F}O3%+0 a¥l3 Ëj\(P^qA=@m1iNv)r+ᆳs,JY@&0ÜZ[6n]wvz7_~@ݲUBGvlx=t!{L18S <8N NWve/B>'`XaOQ B R'2]XCbG=}?رeDhJI{a"/KpHH .;D$;\fKӵLM6G dkK= IQ0ZB|E1dp%Ԙ!`( 7)3iDm` QdzU\5$ XPF.|z[+\/ 4;33>5qӅ8k_G8Ъ!<6:BIa "JU?O 4H$^൹BIctqZW4z, bxδ=W}gy+FLϝw$>eu?ji{ek>5~?ytm}l\#3{frghx"Z*]̶Gn݈?;Z@"(ECyq=p/p-5{|0^xAuvp<ӟy0 vk>>^Lo|iNy %b[X;/'Y^aSodS-YôXX_Hck۫hܡ'^jw{h^dT$T$hVմ[숳'%h,.yF#caRшdcDSMCr!݂B>9dn~֦%qLOa5=7ɒ|$z7EUhB~)Oϯ%9@lG][o8;nc 57EE ƿsvaW؃xҸרB}Ȏ}H,Q[xGD}{uX?ګ#QVJP&W\T񤜯;x,?~BFJv+T J\q]%9٧g N(ӕjs+]i!@+0:ӕzp&'-\j 0iAA0hFs\ 6V0?YH. t%e<Ѣn,% )!ɰ`)`tx"Gρs:=\mHTېxۥ'ߐv H;#}쥋s0$M(j!){l1TMqAy>> 4!gN\sRdO (Le<S4 .2[/3۴dO*v5B 67zMF `{+okN/5e Wn7ͥo0]pAJ8Lpsw])]:3|KVO2|?}3{nK}Q3GsZRh` ohv PxChv4tJv mPp)4\c'2\zH` )~Fd2?4]RlHo^zRMasMi0Pn I-B7̽.:T=j`=HN! 4SʮG9cqSIQJiZu$޶/i##'B4, #.!I9hx=`ׅoAƦoCߠTj+Nn h'9'8bb:isjI;o8i&1 )HNloóu`?e|H\3pX tk`T4&Yk2rQ >5 (,|uG5>,f>"si-}uIo{\C9%Ke.9 %nwZHz/wAowDܕ-nÝ>{9o>e3'ΡykzqP m<+OWcHfJӴR{#ߊvgBE؁l@sؖSxJ+Yd8>R7>Ml]qGE-dύ1 ,m쳞bsEb+"qeڡR r1oa; {JApe[<,7Bu\/4a-fvCsV#Yf>eu"BQִ J]ߦ[Dd UxQDՑmmq[ F=f9 Dy# Yx`?[4bZskmiO:xI-I -!RChl =Faϒ0wc)h= 9G^ܾf[Wj+[.LsHJ:N79?4dykA])׋>ה\wk6^Nd86Ɍ2jY79 S

,Pu$(:DFۃn"*QBٮOd3^dADJrQ}k|3b# ߌM؃q%K^?JGJAϚ#5߱G?KR~ZSeRAFeCVe5=EY%+ND' N}*[LN졅 40E8N_Ώ_N[^KvKB 3[RQQWQfAN!a35y-ٕU9e}U_O̾o`3PBa&(1g@ہ20qY!.Esp\&ײ(OF ʱVIȡ!琪QsgǷ87e/e*}\D4,i-,SPٜ8.P)kh8QE9:yVfQ L\T]@=B`WH^+@1>Xi9vީЂsxG$2$xU2l _#O"$`OڿR(z"DT)DNHi!,F3s*J&2?z#0F#-"ᖎ!+蝕Τ,rJdWFJ̑*)%h2idQ{]o!2iW2["͙2oлc{SFĝЂ ܌Nwaͨ{s.m,gn)Cw,{pk7Tzjw0ШnMi#̨WHD+u(!NqG# [#sEN`nU;[؆hGcuA4;~l ̓@V& 87~YN=lPOz7/;faV#8AfT/' -x>ȩOn81Tp Cn7ؙX{}2LlQ~9W3S"LTmZ<#&&QDr29Dc:Ybds 3G aH LQG~s!aǁ=8@Uib Yjt߄?,  a sؓMy[juq.ic;/Eo4%ФUnF֎8 KF\2Ж-z$]MBtѠ,C [^oL~#?_!c)Q*>30z{nܓIuUK9$mٟ;}f.ǞHHiǻoX3L\!9kCq N5 0I^˶ΐSStǬ溓K%m<+$.uGvet@+W{]<8SyQ)T$LM."cyI#d #e+:db,W^dӢ9hh]3#3_A&{RM`-֙c4Kfh]s.iufxB(+$U 6m"V$::4ڎ0H<m-򜊄LR:{+nf| 5TaΗ_mhqK^CB>/}j Ĕ=IZ;'k@9ڛJC]0Ɛ)z Y|Ucwd"]mg[B&aNhoxӲu?3{ ^]YhK=Tysd]>6} f"8xUPY kDh4Hk@<a {SGRQ9'Xٮ軑ԮDr%#;Ȥ ɢ^e/^ sޞuK]aXsrp~¹#kƌ)fURs ̊%\r|UZ"4z,Bq&  vY> cµn( xGmG=Qp+< ~Qp+< sJW K$ӎj@B(q"PkpbmƆ~BBAoOvsp$ŽS_RŜHP.=};2<*}Ђ\zܠ謙*RJQhjquյyT BTZ9IpH'<)/`&!Ku`z Fǧz%nK݈45~y ٟfS=r\9vro+reVX3DhfաJPdo$cU$ YO!'s$" *&(V)C Hoco*C ͆=! ϔ̡0c$ˤ^D)&M&aF~=S~v|R43Fq?9鲞SZ Ss\o8zp2Ks36T,D}XzZAxIJI4P^d<1/ۅ1o!y#4N.,t̃:JSa3€/k, 2Tz Q:SG8ɬ+)Υ"wGKP'MNUf AiE"( ?Yڊg ksg^LH`Zf҇JWJ£s%B£i%1%9T49sǡ̀qR8dl$ׂm-wٺDr?!S)(L4TI6U%,}q_!U=.aR8V5/זci\gh Vwi;,iqtf&yE ͢rOrp/I+TAIw((W'w4{\%$_w&MA]%*=SffExWL/0mDv ZI/1y$|R5QEXjY}4L?ŝc7j9ӯYũQA[2'# M v4dŃu.|ƃ*AV c9*dˍZl>"T;'<|t0 g@D':NoT..I] [JƎY||aSIĨãgn}7 K۽1J'Ҹ1{E`,H8fRI 1_xlSiʖʂăaζ?έK5-sF)H}폓ʓ,v{u$%UƮ2RS'O)ƶx[:}x[A"6;`nubHAgӾQ3n^ {_y {]~09 /#+Um&PƊ5!ZaHđxMLfR B/kf.U F}W}w@6"іx{d;('"F"DWĜm:؟drUp#CXRל0 %ᘳr{;^:A*eՉ&{- \= B/ұ5V6-:fh ˙NDYT8ۺ]؟䑸KzѸr}qoI_Dx-MGOA`/ȓvk֣H4X-)*'Z#CT^\Ҫ9=^'_.oNf7 fŽ۫{HH7E^bVAմB(ϥ[ۆ/ϤHdkYtci1,XEGB ̠St\bs")F`S#Bb?0(3y sI`PWrF+,\,x3rO?r*[|\+@\NsJ6գ{(,Imil bv{}fjqvusO?+RYd\@mk/ۀՑd eI`ċE$rQa9 `iju/-f{5%{,v& l9aiF]L%ߞFV?9y/ ];ؒzjܾ4 zn_2*NI"3#Q[yGc lG5 }'Db`/;EI[QaQ(_HX=+ Qfљ[ +x̰\h '=Ժ0B*070Nz=f4k+ۆYY;)OѺ9DJ^Xss D;ƚA,|Y}ÕXfܝ+yAb~KbaVw=b`-D5_ Uϳy򊾶繦|$?@QH MK9˻a#1'p_}[BXCyٷ `sඍV7lN~?Ot G?pS@p"*ݹM lHssmF]6v"jo#2XZ7J {.rlu&ORNqTdz:jߥ/e3r0#2/Kg}spTg[Ugc*1: N1C=\ɽi0H|WO9NbTdl@4Bʶl(dlcV8H-``/HDs82nꀴofzSf\.k:Q#\ဠϚywrnuJ`DF.u^oD7sV̮α+6'sky!gHd@ʑ5cM7w"cϻ#!G1Ec՞tڧi=9YO?[q*RIA/tuWspOQXqy™kZ/R\ryzBrQxL),czcɽD'0y[}UAP¬+ܱF c.qnQ5J4ElVEl2`z裤F_6+ ūv1y.BB@j);мHv6BS;%՟!lϟ.NEBOOWv'3Q0I߿ydw2׼؛V&JD^7O(.L6Z+ve+viQYo#f~*u;6a#-5=cO `dif40c>o|*9]g,;& J;e|nw(|nE,E]LC'9 ̀W).Gn/ (fnwɉk7s.Dvu#eDpj˵q 5)}ce[ +pc(y_[!3;v;F_Y5K_Uu[L( vJCeH3G&Ep\=J}CD+z ;D넌c.7x[|4Kcfugј7%m՟113yh4XA T!Jdfߏ5JQ$]ydXfh)T 9ur=#Uűo J9CJRcД>2%5HHh{cg 9cRcHhdzBmuԜ :Rq$iRG,U!G7NlYe1gSj"Bn"4XB\ ,4IsbTyf eC)q1/P;!sИKmh^ ֘©YF n 3sqݡlf(Z!>!;}/7{}b\)ƾ5?T[}N:yGCHCh 5| Ź=<;!~n=ހgRSu rIpLuYhsΰqQµ t~Cރiu=:w\RuU`E6|#ڊs!?.*'Ϥ ##:`~ӳ֍xWahvvczflĹ/iodӴi/DnVSGYlH9P|넹d4P,n^O7'k Iskag+07k|y> ,/1ɱa2N~"O?A HA 1W14 +&.-'st?FwŃ㲜qjqyI!bR,M"=ǃbG'2\(si ^_]l-[fLi̝ᬃmo+/^0wYԊ lB:Vrm|D@ Q QnI!9():nj~95KQSNP1%+Fˊ<:Gö$9$L[,;AK{ mu֬978|?R\C]2-@JNZ97cUP֘,:f{u(Zvń{A5QDVoW!}`9:^Ex0nO0M\*/Y%ߐ2qJR7H'vnq iοQ@cZ:;i1T{^ցD?s~qY S3od7rdDw[ܟ}f@MJj ضRngXwih+Vg 7Uonu]w5Ӛ$e1f}6|׮nM($iO& N {8 MS?-*] qvֶŒQvnqnu=\s 1gweupVd):'n0VƏRϡSU!uq٫(=c+=6pzS cATf;Rν/RBK$zψfk,lj.%tN7ADLguBxCg#rL):AD̅l@.~cOσzW 0趆y`n]o g ŽT;,襺ZG>6#x#u"ȩ[۸_%h9cF/pneQ4 0c6@@SV#~#m7 3sGw̼BM{!9#EsR^t!`A6/SOd`ݑ>r :{?J[Փ3onGHlK1nbݬy9GڛjD[{04oaoqf יoYKe|;2Y cϝ,Qw7+9= 4U6NvuiVqae`9>Y޿x[}|p?\%Cnr^JE:w#PvV^Yyx@X":ҡgU 96!g{Ջq5w^a:xKr}n;8[nsן'QYh\xpl]c1]@4+΢'>E2ᴙUO__Ř,aˑa(a[Ԭ =ؗ9DNzK[&n?gdb.uU] >lުg y4\axƕ'ƎК{V'*{3+wW9'E=n/GR-g>>$LKu ɚx }FTӻJUŊ-Z z#gH]br/;&J@)5I^$aHWBr=Q(װ=݃.}6#v{s9,b|^7YN /vgC$ 7QjZ!ϑzLQsD81D r߯oHfP'{'EuҾ@Ti32,٣"?H3Rbi,{vwӑm-drD=~K.\_Ʌ ~s]k!9(eDlaf!ojTsϚzǫ-n+"'f,B٘wgͦabgS,X<}m$}BΏE-1u%iŁ79 ;t~7=e ͨwʥR=&d\Uf؊,NҞowNd72?C؟S#ȩDbVсGRίX[:]@g:=n|+9Xuj(dNΟe@,tH3 FyZvhlL gjzr+t~ ,Y8TsI=#ڠfC]+}~yպ=b͡{G9ty-:1ܹ=mn1i%C Yޞѡh_i/sE ssƒQl@3[$$|?yuyPO^G3? =z?陲K緋|" is/_zN}pZDg}qwίXٟk-0Gza~굷X9eİ$ ꞻgd0 )>#A9Us|K"[zt-F .LcOr'2 ]MOmAL+(WF5-5;wOΏkA5"eM;T!Ɠ~BpHE=r $(y:[HD3<%szLR' ^#5&W lQ|\cg)p\I1{adq"Eɚ'[g^yɫ^Ke^K ˪[]{w_w7Zk?nZ«,)Q[n,3rMD"aHi0)vb,?˚7x; iFzZcFA3~Fh9]=4*h?!Mד[Lp =o|-Tw"IaMzWsWy>zg% O;{t^:oΧet׷ pH ڞ|D^Wi՛}S?+Yho)ޅ%(|EvOȒYR>,$Ku)C%F=%#= CApPP*7Ə|"HG[4%,k\oxK>"xn+uة\c'@\kz/<!7Q2= V/ݯ# (!_K°"Tass'(Ω .Xm["p aΎj).&[;.[[7(/[[͔Tֿ\rptUj.\\70 b;pBo-y u,UVڻ^ܼ,V-Spv3a[x-ZZ~ht wp:Z`L0 '4|1N'JzJ|l#p" )493463665s{| 64g/.6ʂ$mS,ɷdē/ߺM {j!8koO/^)tǹj§Hq䟘-|Mytx}XIއ׌PeFj =a'\ uZ*ֶk!T.4_;q#Q Os7foرDS SG^ VwM&~|sӗ-%2d^~Efg_|i5̒?┦j Π@ͯ BI.dm ¼`^(Do]J-œswܯTYa?TM<6.W?*txCHVi4>wY-[f@ǥi3W+z4+f@OW6EՆ0bwJ(1gCBN^Snd}4&쵿m u=A\-`:zbႲ"ߘsX(N;^颭O5%7.}e'&n'Bci"IL*œx.AbzH@$.H,xαw>G,w .}A3[gvKR\ٵf] Z t+aIWKY20pSLJ^}uDhɯ)"9ten#fK ݟ@5Qˢau ]*>:tmO^uPN=<~сzZH* ,!t6 W€ګTޗiarSiH4b c⭮; c.Qw e߬˙:mG,X:Pf1o+6qd9၊%'َ3N/ߎ 8*#^j`JFU N@w6'wޗgKhI9K孩Ǯթ̓Z[_:TIA=ɵd,̗m3# 2$z5%$,xx[>rFj7Ŝy+Z;T"2KnSI;=Lv%FKG,F"8 sp[ISt87|7u8a͢7B.dں8u6KZ8v|'_+|֥vDaV,\GlA KE#"kqX*z[9e JMŲ(7I\/bp]^f_Ŋ~v 9Cްx {zo-sgWmXQjHh/_ūTMCQ0YT̤ɲːO}|pefIېa~wɪ[k] [s]>?QRhUWwJ<6Rjwcj(T^OӅ?F=>jԞv-}Vp S.牲r=nfvi*!s/J_"ɛI-A|<>7^2-n·~kʊ^3fIXVd!CŲ9&=k O%Vג_jMҕ)il:h~`` s@'AĹjtc#%_]O?o '2>zۙR9I&>bѨ1AΗzeeV9jW_M{-U9M}XqlA)KF˖\me%\T0F2z+DPi;ιMɓ]drDnPσ!Փ]ҩ``#$i[Td7zL`a! >,ͻ>QނVIк3ya% O}Sk WV]=q+~ mto-e!k7k.32/{ڧ(aDӇ{FwŔK~k2NX^#FRDЈxE AF91 q mxQZ")UsF5fQsF7nrgE}[];;H!BwLemf*=+g̵ǿjٚq"/U32bS7'Q:ḧ́K/_z| Q~Ock'HX6v˗gbZF}G9 \^*~YP(N&#!aN ۚh!ᑲG%i`CȢYo kT=rOh9- Da.avi=\zOcSV;NQNk>e)saC8 28k11}-ָM8`DeT:0R{pqmpWЁh"ɄQa"t CZ}j?ozFP F v9 hF1|T.vxO 56{UT;)to~ĨgbG*ΏY|$eźz+Mc)2. 0K"ammkd,jdLD7g\> Zz]90yvU:quzBS#= W=Vߔs6U3C/>UTRCleF˯{U#3^}oBMy`280y%ײ e-}Y2r%Hֆ3ILaEɾL]*O~}_%f:uJ7\(Z AJ9g^$PJUHĴAG3nG$88%N|!^gL*K+) :ݢHF$oZ+rw2vd&B#(o"*0"`Y߈DN?m"Dtu'W"U#hR89Gd6?:͐OX\DNo0݅]s Ⱀ]QP^ē=tƝ{@_'{H+!M^w̾N&{!-b2,'>jϕJ[u>"+;|{ -53`kQo݋5~C_/w퇵 Տ|n].KL=h o׵k`v =>$a9FOцX87c282pfCЮMtΊ5R|"E #6ZLdlz_ډz{}n^j $r 3j<O:kw8Y  XNCjUb/|a`V/D|FViV4S9(=iY2 \C9۝@V *Xs%fOB_%4`Gw)6`P`b#ah 'MU׿Ѳ1}Fҩn ω7~R/K@VK*i {;a=1KP'T.n8ĥZ ZƞӦx' q*-V@:#KiKPiֵl*EHPht`\5Ghm:fh Ҋ :6;J;XVdq PLnhٛGĝQq $w,h|P_?B^8|]=ze(kb 0ˁy#m#Jn V0R!5sJkۻ"(C\P߄S[skâ`wa/{$bI 59Yz'~oSg>^9N]אm\oo9Ylve֔s۝T}H>2pio|5NLp7nzUghPTd:Ҁ vT6Im~R^ x#5[*h(o>–#uc&HJxW!q6BjWZ昞?/JwUJ{]սU'=s_96v^~'NJᅼ!T^}S/M"\qO}JԼ]w*yuh8 9g` 5 Lg44jxgiy2EekYk5DGjA3;F@t)թIW\s7eVzf0? Xd~IQmVB[BI%];*J3LʕWJ8B#&(vC[cU̢ }Z4AKPgܤw;KB7WڜYgФh>8C[fⰱ pߌ Ygv<;G/G<M w擵ry.NZOrI-Cy9mUzx ߭&m{0GE8;i~x@hQ[' AU `7;7t#yā$\Ğ Bړ BZ7,}Eu 7֝`;p@_maW~p`K0(b8M0\'_T4`风i+}{kRAc_@'Ǹv Cl.*(Y}̂foY} ߢ>[h~Ayju P}yJɲSO K9cLĚI9QVgۅ[BV_6+zy ۓXvl1sd=ijj]0NR}qۑC9}lЪ7|7$af~柢\_~حj'0j[61TB, 0Tv=^(^^/RُL <@>T#H9Xfs# XKQ]zsQ:ޙ(d#XOR`FuH2OvSٸqoi䓹K8x]$.7m?`܌Ň0HGˠ`#&8uM!X #;= :KPOMˣHݬWx$-ߺYvI|wL>UuH>ʬ}nI- ~q:5tg7=hvNILu/]T?@hIH}yicOFΚ4*E򕄼 pk۳GU^/rެczJ߾#=^Rgis܆CΔJmaFZGQ 28EݙIB NZh!0Ձ47(A@t' Fgi!=ᢖU]hnXc| =br i?L7Fvʡt#2S8;!T68&"s}dг&ʇ냿>!IW"(n5NmʖhE D3{Ǣ$roH9.͸V\/5}&w1y,:i"wbs<ܕfHY &^k}o]R3bYē{BE. ͔- n+'HgL8rRZmW U vfh>RUOLKyܕn 9V=5b|e *9ק>8òvഥ}n>_&Pݚ٭u/o"0$<'ܪ u#Oz΃rsZܧk2/|#i6D,'CcVLV̧Åbq?ƘM1 J#?5wRhޓN).}Mp։g-VQtq} Kr_me'ſ},PP*ˌ]翯?)n~W:1ѩvՋV :E?v׽(:TkVmKB%_/?&"-`W00BzŊBq"+ԊsyAD9EGUj_.5hb,TBQ"vh/ &v4BOZJ}OCC7gN_m@zmxxv;Xqg!{zc$ҽԶgz-ĽrRZLG8Th5p65Dl*[ȼƀuBeWS~[XU]/Kg{{XFb~&3ƌ%6["T0Ir*:f 2ueǑt׌[ҝvf`u:;E*Jm XTYt׈H4R^F[yV=,xWD>`hYi(NF܈Nz{.=1 oqmIJ;^Eg|L+?nڽi,E 7Iݨ}[43"3r7]+; 0cBb ̿nMK_i.eEӽ$_&8Fk/!L?l6G ~'4~a3A,jg΀ uK:`t/„ 2Q;ӹϜ(@r X"ÀΖflT:.JY?6?B[cOF0;ufFBdpnBbp #Cƫ Fތ}[Z >k6m_%aZc oir4 oLLĢ0Z^cHv[יNUs:~؜;Z9^?5g}͵oMR=)VW˗^y/㡽lk}Heo+$ƴ1`2JNI=[Yn@+F ~t t\ڄ5gV[26˿ A?-ęC*>d/D9.ypĻd^yY ^CH@ ~S{M3 TԀkC¿;#6hA.5UA4?]8+s~JcBo 1>1Ubv,<1#ˠN%q ' +"5͝7*ܺm 40|[T8H  t %q<V, ccl_l ̒IB3@زrݠ ̿0Lv"HS͗y+[Ojj{^wI1pwJ6MůQ7xÏݑO9ʪ|lIQ`jBqy#8֍6) 1$˿BoG`slȦ0gs&)I9J0 YLL\ҍ Gҩ0ɄڞԖ PaQۜF.rN*5N`d?q~uG, (IH[<~.Zp#F)w{ܼQU?^U[q+*v /屭ҷš~YsV9TkvgatșOQT\_9v[-gJuN0͂ gw/O{vߥ6g?|k4:bf| ;NOd6P~yˀ4! hxmM(kH!tm*5s񛒵fV)q'&5?-XdQfQUn|H%_`)#FKW{1 /Pv Eg_/7̸m[f$yHٸB\BmTk>j?_Z[5 #PH̗ WD[`~gQ{)*=+ )aҩ'=U,6hEa8,o{rF9"UkΙM_9< L٬~?#c~[11rs9}o6r|TڐIgc=3ORvz9mcSj{0#FLjZ1zr%>+'fP"q:4`GFO5:ctZ 6k%I{/@@tRفCTv$ζ _"`*v*Aa= hC4\y҉duq5 BFίXAdNq7B AvQY3I;(d(85즛 D9!X -xS^bmpMXюsjI-"NεsdPQ9smu؍ pMz3I$N$7iBũ$ZHIyYc,~qbAnYIob2BZR-I:9ϯ)ѽG[:AqyI ='--O~̋糅 2?3Z[eg|T}'M),΂1ot)vesG; \Km6\\_)yd5roм5K_W+_2>o桷"K7]zRo}jAg| Rӽjߟ3l8+&p܆ IE6 _j$(D5g.y/OCǪX yi.ox oTj~EI7+՟/^&UgߟU=P_^_"LTMόN]ȷY&@Zv!q0(Su6p{8V(m:3Sq巍'lb P[wi2j²G'2iǽ[F]w~T*3*m,]6OcyjE i W,۔9]n̑o S͡Fhf8Lpt*1 % \6z[M\6& jvBFEIU{S[hT7|:VZjm#+͝rSP);ǣ,j.CCƵK %+HM2E>},HVxukw~f8HKRNsyf~34H/!:fc'~h@\Bk{;ǻ{Mq/}VS?HЉj*v~`rl7D6s fE$@¬E@hM+k`=C%Z2p7d)& .T ͠&oF&ј\R~eJu͘'6ÎLTKR+uRj!ED)*ޔ}~a\^MZgr>㚯ݞǶ{ԋf^:c+%쵂ɍ߸Y.=pe橐y+NV]TY?}]"[78\*8˘hҚ6ulݪӥȶ4qW d0nYzq}\IotWs U 6N2Sn\^L7c\)T%8] !A'R8:Н[L}y[- ٯ/JG7ydncc3h¸ώdMђQGN-/3W*zMт݂;jʓ('7xO;~8b]DaJG`r'U`-@˷=RDeW2w`uFKu>'gagR6%-c`)Ϟ,jbz :©ө#Yaq̾>gX߆  7J&#r*uٕ\F%zة-A& }X70ʼnNpgI!04_ 2kB7:j~Vd]v&vbpӲbBEFkh(V*h(o>–#uc&HJxW!q6BjWZ昞?/JwUJ{]սU'=s_96v^~'NJᅼ!T^}S/M"\qO}JԼ]w*y6I'y̿Γ͑z^-99oi6`}|U\8l/:L{kbMѥ6d]{Hn:W*?\Vvi%BuC} xtIJIUds̻ҰiI[+|qC<-oz5TuqOdbZ+1XzNcl13LF lmX_pќ"ioXV?X1c(9DyJY"reޏ,u`A0Q94PPe9Úи㕴U#ů|Ҫ'#M R楍=9kҨ:JWz0@gí *lUyzҏM) |<\{Iɗq6A_߹|yeϤ A*^~!OлY=U0vˉV>xW;B0-'!uOϿ g+/kwޛkbFi8xcޓhQ?dLQepK$&tw+,Tl=sW]7S0xwnpv2oN,8wd[yp_]fOQ=]meã\M8 t^V`P"JL{~(&w< Y=(BF)'pTBvޝO2uIsFCg%V7tTKDf\L L˦?Q ? wo`0,zҳ\Eb}on3.YoӚVWOI+ko/R٤it,?32#077Zm!_h#G ItM?M3$(kߦ"hwN.r Q:Ցkۉbt8+zA=(X5V;U( IVup0HǻoI2@fBQ9A;nI5 aB2QnvKizHq_V051m6~͑iax"C飂L]!E}u\yGh5v2U-54 #ͶQTmO_dzJ݆^5)W+>meLezɍxc ͗Y,t׶I^ c#;zR dUӡt ί{^IUH~&ߠF6̌G~. !7tf0n ݟtIg,Id=mma}:{Hj<4rX'>}?xj:ڞMTYɗ+ة9jk2ߧݜh+INf ISfI KاUix E6/"ަuÖV:Mwn6|#xfdZw6BCxř,W4dC0M0-AeTpN Tv6&PT00"˲6nx?hA+/ ԫ}z9,F|;$~0=z\fgc;Jq qi϶eKpppS>N x6 hs:Xäz9vb g!A` aePm%ӻd8.m8l3Gײ\2v CA IS|Ύ dxQb Q*^E~ݓ,rdF9{¤q(F2m?ζ 'D<5E[aRb[@փC)WIOz' at_h1ZA2R;35>B0@ &ɜ97Ω(隖 pxΉ1R+]sHuB31Hgn =s!=^bҲP ]%X4Y7q ɜ.͙Pк-B0G*J8쨁\L>JQM>a <pfOM}GJβ 0Lq,'7х}TB 8(xE|ً(a0fb_ ( GtIR|*XAͲc1 R51 ʂ4 O T Ŋ@Vϕ$[3 G֢tŬ88BuY܁#vIG hv - jg.7PdG3f\¯$A3.BCe-zq}\IotWs U 6N2Sn\^L7c\)T%8] !A'R8:Н[L}y[- ٯ/JG7ydncc3h¸ώdMђQGN-/0 FpI:[vl!/,e;#ґ_> gPsL^\5=B`*{07,U#P5M̿H7p1A0:W}CqJqg, Mb]SnFv4ryV;(.B1\O VСT`Pxy3bd[.ei毭%++=6߽­\##d&P:l CaRT40R] (Ax鸴 k4~63e -mxƈP39ζt;'Q#`A! [nwqIL88Az0ڴ ">kwI.4+#Mg~3@rO*G{ܓ>twrojU^}A~Zn]3}U.|@}_Jm!%x 88/KA6kh+҈c`M12"'4Xy+~Z['>~sWϕK.&M82\9.+1&\oT،}e봜/r,=qd]XKF+/)o~. ̻G5~6+W)𳦡DJy[O^)$~w|V 1sX |+@Yu/^9/Ȑ9ZI/-E.ϙ*faI0lڡ=F.[ ItZ}F_#F^#HJmxm)8Z]3ݖ]ڝe?iO]F8٘t8%:C,4TT2J}JEv[4OŨbXz˃s6psW4ঞ*$3Y!Z Nu42/I7Q<̓`}ϸS PUP\X 8-=EF,![ҭYiu]R@u0Y|ygt Ŕӳ]*M\@0x'QH0Bn`3NQjF&+Ɉah2$Β`thiR %Au-n>N'̠p\2hd7Y$ʺ?^DIL>%_*D ξk1kz0Ցþ . -J2_y.%GC &[I0Az"3r9$kxX}qcҕC3%,bѰ=K" *FGo) "}"h3FL';{r8Xfj#E` ڃ h|7,AN9F0:~?')g!|Ϧ.z&LZn[T=s܌ TVt#TdkRW9kX$e|iDRRd8&SШ8X@pg>?`RNc`.GɶKJ'09E :s58(بͮDI FvS lnς/xA $HVrYN!(!|Si4|L+?nڽi,E 7Iݨ}[43"3r7]+; 0cBb ̿nMK_i.eEӽ$_&8Fk/!L?l6G +1!HhD5T$h!iC֦!J})(IDHS!2dll ҽ}+k{WG{ssO v9ۺlӣ6CК)G<:N~&t7f-4w&D.w>“[u<.ߚÂ|p>4ӍGF{w=o1/#|4޴>53L&zÔ0L !NBaWrx4sDr]Oˌ/~=LЧliw qB :K&)ļsW`XEƞY/"^]< .g;~8 P*t}\6kP%^~l{}=-kezf/Ώ2[h٬r7c{)*;Cg4bEb(8oɆJ1"+* 5UOd ާvPĬ(wZijYG)M|&:%ݪ @աȉ$!3+.)Ȓw ڣ/muUAT!p]e&_ Č6\4ញm7.sncxgX_tNV-hjm#MK]td{ѪQۮ{Ւ>/7Sleǁ v!r^nܤMoEXJ`W2}sC!HJbt-?eU/(a :˺^?-ҹf㫧w%I_g5 |UeeҬ&^i2MXj9A Ta@V QEREAS20g8@E%(t@|Lv!D@YBܭr:*!)˭*GQ4^~VwX@GPc 3(&)zF)B0A0]?t_:N쥣7amOCksqBoEGXCKVx%@w%=;`Ʃ|'!E;\Ob&;S0 9\dڽ_ޙN,³kLE5VL1˓ku-^{&&rɻo{%z|iD|0T)Es"-QxLQJ"U`H@I* C`0B€< QAgѽd9M+ϜwMtDt4T[e΄X4ؕ*A j#bm 4D3O L%wdLlEUٰ$ae~P mPpm{l2M̟0J|J ,uOTʢAQ~0ڪ?LKyyq v͡8*d:aJ_SD:D$P4&)Wq&hLua@I m-x 2Bq"gI j;|! 70Do(9Wa4`RQj*(̀h6r' *_:YƎ&m?f:i/-ٺ,@;t\m^4PwМӈ9ЯL:PxgFX':3Q6 VtXy 9nqM| uiצ(RhThwh9FhvQb\Qܴ_2J:]~}j"]C^%(mQJ0,l ļ( )!(E vXU < Ē \@KJBC$~&x \o#9$|PO1h:X~\m0;y=AP ɩU A{n'S@܅ۂǀx$r$1I( GثJ4s"p/op[6iqֈC溻>RRwW[fGdU6ZI$.X+Y.;KOĊ1 #E[eL !3k9+%LlqUR'iIlĊEAHJ jF^#Ft.߈3zw8GN$X%IbyHJ߇$Aⱕr>B"N^S20Alx\&h`@t;KV^%h ry@:: o>%0eR2s^+xa=C2~Q| K$WɛI3D B91LJc,\+A8uBY:B}1[`'dxݔ8AP `DJB=iY뉈^,% aC++d ;GĩP(؈Q&l84`^[pīL}Zxhvw։21 H4v- wiChG2Ztτc-~c(lAf)olrŨ!Y~FLԵZZ;F!D,PϩMg\|n1:ُ:8]_ϨfR]E">έ΍ fɹtJW[_u,IK}hvƮk*U_%`YP,"kE) $x?u3 rHR \Acw[ R~oewI߸@jhJP%>2iՠMo>aeXn\ӷrw%V^'/mէ^rsZxoM[=7kt!mwghy$ͥ;+V0$?o.:ޫ"NK>>/Kg͡1׌>=ZӼK4tR ʊHR g$cAtv`>xPvIА|s\^mN$W|1H ZW9#e@iX~+vq)!M Oj{ٹId|gS (EMr 2V &Xu")3YE-R2$'Q $tv|I |%Q2|Qttrq?$L X"l]"FU",a@%uV24hf\Cb9Fcx"a,-xH)I12\~Bkq5hhF4ֻP8t *:?m%`=f&\7Sxp^l Fju`I&t--M.~2-t^_ZuYRv鸮 i91*)sT+_7yeouġ`3;mx;wәNu9gpm_Lݱnsܲ9mҮMQysjĸiXet}1T˸E_$%,ʉ`:gBl6dx+4h֭d\LJX#gUXYNS_ݫњY:|̐ӂ%jIS9, WI'mڭY<{N^+jDy-֙vm/5-imZ"ꠞpݳr.ؐa{4)&C']qI)K9Xmz@dž,"g@s10@LQeG!Z^(=%0D!ñ/3yH<$)"ɊQ[uEK8$C 6)@Apxs= # Dr&#b#qx{+C$$,wH":S+JzI ?I/G  _j \5,fS"Ƹ(>S;e!auD[F(,Gq]1<&x7{*8A0bYR[Va\ɤ) QDώ\Jg#"T'@#8@? DSFEH"m%m/ HA1$; #NS@I_?ȃDGa a X/Gɍد<ߙ5LUCě вRc@ ز̮qT I H4JIL(;zTvqi5+ ɯQTg{޽2F?V3]k(@xr)")D\oSl )+N!Ȝ_}-_5f7 _DՁ*O8H4xtb-lۦ[`-2oc̽[cw,:p85mԙ,=_wm~"86Uvvz٭$u޷{_!;ީgsD^qd`y3&u|Ԭ Qu}4ײ{OOMk1ښZ0Q}j1FEW":xGDqX@Տ~בa8Kd/pHdj#.^f4Ms*89s@ռ8mTe-lW26!I(1H&E? y;@+>ira]C/gCJ"]RGF3\:`cޭ:w>4;cW ڈ)JL[uaWTyY/=Q㓫n +@fsW>)|;=wR˱;Vܒ9CƬ)N}pۺveĴgGtQjH8nєfm{G%o+=uOg~haf'5L<ܷZm.5-5*E)<0q."xL"W[|&oO,GQЁWK}KBA`E۠րkZ5".VV/Y̡$5G(r4@hS![Ⳃ+CR\uR9ꓡgL.m)7nO1dX4v{Fr鍻NwNfǚ7ɋϋ W II]zU/M>pAcTNn ]VwJMQEeP~ޤ؃,j8={ʉ뭆y:M dAm2RGyK nn#v<2:ٟ=TƫxujybJO :hj{9Mf;^޼+^:zv.YioE(.#,Ȥ/?;Aæjɡ9gg\tw)8bd]*5ƌn{ߝJ:p="\Wz5 H   ar9)&w˧ M&t"dH>TK[9VOߤ50 RUtSۺomp3x&?Y?}u6~wdK'S׬~M :@h˽YΛ5cz3[7t|y0=^#~J)FR~dҴrx4sDr]Oˌ/~=LЧliw qB :K&)ļsW`XEƞY/"^]< .g;~8 P*t}\6kP%^~l{}=-kezf/Ώ2[h٬r7c{)*;C!&_=B(H1N*C({}EjŤ:k.^PA 8KQq7#}+'w*^24:ߑ#nEyj('})MK]r |7%:8G;wd;(#ڲ"ezI{t6/;ΓVl~$2ؔX͇&{B+{@]*^ͷ<2xt=kp(=>Ѝ!q앓?ЋLt*mپ!̲ecleƉ1ۓа'_*x'7`btV]c1\=.Ĝ0 UR}z'zG.umEAK6U3~Ƥ6(`F|'A˄Q[._J,0˿lf+X/}Kʂ :"< yUKiy_# as~}sar,)tA4 @q)s,vC@:zC Jq`2b{ehgpy7&q*?NR Ůj\KU ,F [nx\kʒxB L' :ϑ>s2zT]5~}+IAH}T,R?ad͂ ͯv@p+ 5[Ưd{1g{?S{ú? u{-왇rxvJcمѻoj1#][cîK}MFw&~i:сJ߄ z8PrҞ3:'5imݵ~J  %500鿆EUoAڄE\Owu$N{ vY $9Cc>nYgu5U;t6<dBQ^V&t;@ov[^o,BL(d'q2"tY]c^yv߃;û4<\xv'͸FQز*FQfw?OCM+*>^Q`YV|x$/eY.e/LP e\G+J.bGI:,9B1'K FEIq>2LfՄAF@Ho\1'̡ҵA.oҢQ¿'u"C䧭3akf0-f0+Jbs'P@>z8J`H j%~ŚEIyX[ Z@ ypj=N QYѻfvCb`kC Ug]t5ÝW ?Nhת% Y(m2{QZ)q㴓Ҍz0gݏ QM+;F4Y Ja Ġ\'aBɹ^SA}k}MIꢰu<УIz=@;>e΁9@+"D(oIw,P Ywf٬~+4h֭d\LJX#gUXYNS_ݫњY:|̐ӂ%jIS9, WI'mڭY<{N^+jDy-֙vm/5-imZ"ꠞpݳr.ؐa{4)&C']qI)K9Xmz@dž,"w m1bP0f1{@1*F2nƸ%Ia^aL@# LMd pJ3&1@adpFjM2rۙI` e*%]0 V]pɁzIWi/CXbâ}z,1`V+U_5V(1bǕG6=.~+,]{iuml&>`Go jivuЄ=M>l(r8߇xH@ns?ޥ;=QZSx[ٍϥ!EQ֧r  $X!f+D"HQK>S jEo( oPJ,Z9-^qxGB1.rx2HBx GvJLDqq @z˸'@d+u*/|p\@$}v$G <=8A@zpp-aendstream endobj 5 0 obj 61958 endobj 3 0 obj << /Type /Page /MediaBox [0 0 612 792] /Parent 2 0 R /Resources << /ProcSet [/PDF /ImageB] /XObject<> >> /Contents 4 0 R >> endobj 83 0 obj <> stream x]b*mϨ_^5QgG-~۲8̒,T$"ZR"oτtU<׻*^z|1aPQN}fU߃48j~}iXanâS3klmE1|fjc6/ҍIFwxVw _ֻ_wJilSnzfđy8r丞;.ĄTu$eZ#z'_9Z/{~a!~PB\"rDî8BBN0or"CNKi$ί7bU8N-U,=>&˦ g:F9|ȍqsskvc[)Ov 4aUڜU.XOzaH\&[&[X!vBQ2BYH#*ь)q"3UG1N{ YEippĶ%⤅F;Ӟ>dL<{)}[v|]gnk)Ch Ϯc+(F2v aW=RJvE$g ix_K<&YwTlO*#kV=;/ϼ&g *-}VgCćko=jUρ#Ssq!ogu{}ߓSPR;ݾ,Gb%rRQA42chFc 2CH|8杖j vhܞu'7Yu+qu,oE~ Or贬sRMsj=TDzFJ$lm޿HR6Ѻmx9Q*db;T<M)p@NfN7< z!R[u}Rs6J')vKujFآeJu\j(ee%;;tKO;r2!6ڢqеyvinU^dH͟,Ǵۢk6ꕎ1UNY3C & ̴kTegѪ^}4M脇9ׅvއnIܨ3JF,hő͏Υ&|~b3>R]eיִuBV?vѝ6SqqRs;]}Ū&[>aguxh޷?N序Y5x{EzmLYq͜Ĩ'ۋ㬆]{yMOф 7 fN)Iy)mYSdعALVĽlLjE[wXtpg]K긠iMo}"s{84MĴV3_Vya{uĈEW%!du'^YmsC47 |zي.޲s7珏61fٝO|MsAGqiY+v&X6ڈ' \uЕlyv<;Cy7N;1̛O.ss#fyYzWwVgOc}4C{ҩTGkG 2#ٔ}˜D?}*}xj2_Ba !1$㳑,e(LJyf[r2vj4_rωwkzN9}|qvu6JJ;5wX]m}NK,9T_aHd>'QkK/;uz\O~h߉.uoLٵSj;zշ͖5gѸi\q{2kۋ⛶]:g:>aךFhފ86Gna+-yFO{~]Z ޻ۦh#`a^Qc8MHE@EUڂmXh4{R #b<#S~x>m]ֶTUlm^f>bEgizle}~V-RlMǏƣ-I&c-mdcɠ9^9}V5v)z5]cwWpxQ۵dߖA·i̿2+!S k$4c !f/iH uemMQF1YZ6?(*":8 & |~ aX/@n4!0<,n^'z( a)^)釠|XG!HLO yU3ӀNS $UrG8J'`洂 FALB2bhU<&$L|8[IVMTE>SA##>@34m>-bb~>&K`dpR4T{4);NToA<\= N?&yrی,߄f5ßwmcn?.Ef?O:_]]-w&7z >~ۂyutcYeylyxes/ŝvѳ{n{-%}|u1;H|b% CY9 #!Z c "Dzf$2ֽ8&dr_.a`@nJ *, W !9 Twe!a}Ę,X VR{U!J 9R&(t)p9@ NEa3HP֨xvq &˞xHd0*+sײ9ZM-BIьI2%Npu`8K2 ѯ  Bk;`R0;!pœmg|>!v>, C_64e CM6қ<{c֫Vʏ#O}C<6kuYx5oj|I{} E֯0#?+;~<dsqrdP? ب|R1RcR*9tF~PO)RkUM-x~+6#>ƾ=_[w[ <[O7.(眾eDTgUWI}t8Jo:k4q,N3G#.:e8#Ajc3wh4_;^Kʧ-MopYՍ_k h7[T]u˅-r'ֶ6>IW%ύ:FJW]LPt6wguyso~L;  s0y۱i`oivc5ZՏ$ zZFMw}R/r+fZl쒋U.^]yv'}n;xsbzscڞf3tVͫJF7AgD~j9sGY6fiȭAz{#\u7ްff9Kө l}*aۙ}v/kc+K]iQ@ [Z^D̛mYq(@_vR^o9.,5=RynKoM<[buKM,7SX۪G?][561zib<}g:\-Ngԫ{\|,ml~~̶i u?->5n5+kʗo[sEEI?> R5R ?$߁xo'W_{NqntOHRsský}!]hf 3KJOTwhtm3j"#Ujm1>1xa1UDwJV]M{=z9v(A,&G\l%5LOܜܠz;t7M]S-ŬNǁ{/:mߚ^vW;8cC94|`?g(GJ}kv۲1 gX07`#1o:x+ԵU|:_[ޜZ*_?1#ދow!afAKCGj$mn~5 =;5FTm(7)zrTDc =iGP<ni(zݎ4Riڒ}#EZ8р-US[\kju1u!dӪQ&_CBWNRk,8]PkHɢ^vD&D3xΖ5wJH͠7|p.u)1/LqdLRF}$thP`"R9$?R?l)Ad[O-S]\r |~ه Μ2?拙oú;g՟{Տզ[uA,?vHԩ峓fO;훘a! pgBp(r0(N[CW<>;sm\ze5|o-6o[]6:[-=lmS=]NNO~)g t):%}hpg^ ;D 6.I"rlS{hp7|v7 ՉJ %cO 6^-vclO8"Mq~~3H&k7H*3{I.+\6jԧ+'5z*r\16yPݝ9fx~>/wX{rx (gOicڿ E)ո慖YC9=!δZm ;zT2zyXkNrg>z^l{ڃ*ZQנjHD'cFg]7|l3rQxà,dAwOtd[!,Fl̄0"Ej/:ؿn!BBy%y PR@^ FVf"wa~FB΢%qU4*WaK'w>rW.4IÁF^:Ɗ@à %piP)!_OMCR1yD-`ԟ $,^V )()adCe)!RlX$ ,>" v0 ']Z*a)|hxs+EÐcô"Seql֖ܼk|-_ܡN>;-Z82gz}6xb<]Cxc*r4 V$ZN=$(cMZxG)gٱʢkĞQ?ճ+4ʭcuk7A:tļT7-mhL nfy2$>p@XtjҟLp8-Ohʠ=cT 3o &Z1V9Z-T -bwBB6]MHP&mJfX୶,l1%[nv/}J5iDtJv z@TEsK2ye× G=wٜAso^DO7igխ?u( .noYKn6W"R6[emݭX_%aǶ&MqDUuyq (UyCd1.N_:n[;]sy{õ'90Foά6 V6S]s ){e V.U{MnP_yWU4 :|>}!fONu¼FƇםTiNtԯǿC5!Ao4lWۻFUDY{Ќ` F VƟ^٠9|StfmiQ?[m!,6HOƠmI}^ۣy}<"oײ nZSku3$zE_1˺Y ib;wW%'w_}Qcx=ŭo=i=0S/7V5I Tow@S=~ >0Rf_ +˲N\xI,`;$/5"e K&lQ3;-cH'J3W–?ؒ(amςb(yAek\vN4Yz6Qђ5uJ1 Qcx,9Q_TH΢Óds AiB/p9L4$ARDB#b'##~xfJA5x/ڶ2*SϭkU3}jXڡᘅ֓5ھ=Uࠦϫ:tVUPԪ>tf3/;R>H=BgC^ &8{[Goe_w=}eX#AeE̵Ɇ]XoKu#Aջ< w10I>4L 1@P EtUZ'Ty詸Iy=‡5Bv0Tm9ڂ׮[Gyo Q#I0&%.sUW <:3{:UD \BZ|z 6 }` 2TK  \@B%$![PCޓ<\5wՆԞn0΀]&'-q>ޯPQ+?[kϸf o)m6ḇ 1QTTO~8mNCK߯ {ʳ[Ȩa5&LCǪ>hs[}^ʛvff \? uɘZϽ/g|ާ?co5}҆9Lν|ګ [Cry^Լ \0ZuKG#F+*!|B a@Sր3g˨4_ -" UIrX쉖E7N*;!(ww҈}ow;w <7 : Ggtkմ7oP;\j-\cs}䖖2f]p{o3f|zQ3+jFڌ0A׌G!Uֈ]m۪F]7='xgʽï d"_T4,ǻtj%! r #c<&T7w@@ /Q<!'!!*K&T+l&X߂d+) OIU&eJ9EipS8&/OI-g>% s1,1W όA$ (>3`m(iD#媴 &a% r*є\ lBR(/CY&a;1vqW/a ]({JXWa& 0YB`Qԯ*, l:^ aU T+:)?|क%&Ť1k(ErQ" A/'4Xe "kb 8t ) 'n _% 2${Bi{'^PnB9 cDرLVAOa Yr00J q0+NJq 0a2;QC*8` 4DX" q_0"OH& ÈLbគda ż nFa2*<;ʋ);MmQ)jPA%u 2JevPo P) (-Fe3*Kc$$8UlE*ʢwҊB FWjS $h ('kR(0X1- haSoJa&ѲxA4(TcA;>.9P@Ja(ܗɪC_q  nriq sKP&yk~Y A1į+8z艖ev*5fQW%e⮫3[h1Ӿƛ [;7!Emcz9}B3ZrTʘz*c2א), ^0M+|h돖F}VvWvmZr4@5zFh$ %r< 0IraLQB̂,D$`}(ceea"R'"IX\Y,U'LDHi#P6)G'Oig^;{zϑϳL/9&1㦿TZºcx΃o'XjrILLJ[<Ӣ1?:{tȈ;~ׇSND=zc[+- W7z}SCf} QLKs"M *@K*(| PA㍤X1OaR F. MiH"d{/ 4]ȇwb$P ;_QTo*.Ć :dӲBJ^A\W(YfL8`ϩuc$_B?>#Ekm(曲P"H3?ME bi0"!YB`OR$f8Iݰ!dx%GK(XC0@׋ K+{ 9pzZZ<%N_d(&iS!{Ns"GbVo6`?u^QOB( nbyl`M)6B {>ZR4&ěТ~}RSQ1 e`KhaRi0aw0 4j094 Z/"#VY 8L*[o#‘-9%0Yv=o9nƳ M5v˫^9֣E4c!odŭܺ=?Y+ouL2֩y>$V%:_ҨIݱ?퓹ʈF&9Uϟf/3Y7:w|c7H{2JvK![ϧڿGsHj\n\~{E^?TN/g"d\%td͉sTp VۜpP"Zg)P7Mbd(E2WtWZ(ɋn*IȮn@Z̪AXK@j Y5DAȌj`+`)f\q[{U,lGbL' 8a('wy14Q(*cn=[kpn"ߊA&p]@$GqI9FNi- 4 n/C, Ae f6AwkiC!wF( Șp  JW XJbn2!EY/C \K BPTa X)vUעD -˪6˻v ngxNf}Xl|^`זtz2TNQ_TT :rQqY~5iKA3riKiu_X1TYԽ_8wY_ܡN>;-Z82gz}6xb<]Cxc*r4 V$ZN=$(cMZxG)gٱʢkĞQ?ճ+4ʭcuk7A:tļT7-mhL nfy2$>p@XtjҟLp8-Ohʠ=cT 3o &Z1V9Z-T -bwBB6ƽ'cƣµ*{h*|Vك[2FYf2&?yjkEOojD*"($#mxA{,Q)P2ZtP& &:ȫ @FP0CDHİb{ˬrϭl[c]L|ƿ ׺uI7T(ý|{~ `\IS/OϰUvV3zex.j¦5}Sqr ar}YvB7 4\[teQ] XgՓWm5H=K_{i)#6ze}ZDB' :(g~?8Ե-!r +(ڞ)Hbpsb\\!aU;%+#&a?}. au.T,; ?h|p9ZK6xVu=]eum_0oޛϜK4WɏϞWWiÔKg?0 ňEcbHT(XPY䒋EH-7'HTLꕽOHm(>hc!Yl@m^٦0_6;4=?_ +e~E3l,\/~Q3]5tkqH`#6_reL\h{h% y=M)uRE?^ -FM8Z5C:z_VCFd1%rowأni=:j ͇޺̞Oz0<ǔ5zߦ5^C/O[-l8U>`Y{mYZgYEn߮Ulc.hKXˣG+4X2Ť#/{GWsU &OOȘܫ U@$Q=4U(.H泤q PP%S SxG( 6(uH. fS D@x $ts`ˆ{ e 伜WQ&Tȝ|J%gW %ŗ+8rDN 4Ir*&ac-8B)S(e浾}J*!@"c!6]aD5d Ƣ` MQ%.$ wAfgYe9onRts1r`Y3Gveo>|Zs,1qצߟ;}{|գ;i'npaN[|Mr=Gk~s3kiBGrV\:ټK3;rO=u?} ^EāXN kWd& 'ti 8%L9@P0}O)׍1 (JVZ#8RW*X+G`̊WIEIr8 fUR53Ɠtֱg@#HP2RۖaMkǦK_U<\+̖SPJ,9`槀p*@/X4k'\.y`ϖ՘4x8pxye+jJ)BDi:J\ #@T<-('tF0^M8`|Ybe%8hsbe%"'$2,V~c`[߃EYwɹp HcE5IuflѲp%:.u|ҲͲr͝i' ff9~{mѸEK s:jweCOio;Qԥ)6\z[Uz1pб\ٲ=7r k;n^fm{r}X|Ӷ+]XS'Zh-Wx[Gm=l@c%sh2sOS u{7xJ*D@HA4Ƌ7eN5]* R\P .O;=#L`YrVv sBbd~8iJ#GȞ5$J^5T. pw \-N*Iҡ,'TQ V k)i,e|] _l𗄜ZxY&gXx]l `Τ-=+4n U~CͶa lv= #"6Zd[>1$}B_A"Ֆ A/(VJ05y?jm,*aA1EJǎ[m!SfڧTKFD:kAD5^>'N$W6|.`{ԃ~W4Et+O|V;Zg"|&fs%"eUvUvlk2*qM@ZGD,]Ugϩ;0R7DoZ_LQz,/y:X7\{RIE5MCu6Yl(}YLgBI0V@(!p )f{Y2%+-RR%80P>j1^dR|d\kcrߺTR qvM0UUa\UѴTV%ZKh^QB*uch+G Ft8UY M;~8?lfM_!_m]/[+;V)%D2Cٙz >[P&$Bdx6I& ňWriOAB+&%"(@\1+؎Y6Poi;TA?U{1Jeh=J˘䁪Zo=#)9Rc{D@xhtkK~2%;AGD9%fD!@4Iq u `%*10%B 0Y46H" )?R@@!!0s,1`QEdb;CdU:w%00NB@ET^d @wQ3l@9onRts1r`Y3Gveo>|Zs,1qצߟ;}{|գ;i'npaN[|Mr=Gk~s3kiBGrV\:ټK3;rO=u?} ^EāXN kWRN QQ)6‹YWI6P N )@[EPv;A[g\& CehQ~6%N_d(&iS!{0Pb{!enL63B̥YDHVD"Mo)U&V~1ɢ_䡛=~י'5y+}+*eEOR5xf9O;g}x4t|3JRu 2^;ci=#pƬlu/I9lBqA"9\P%hM4;f&OѬs6TWK?V!>UJR RQ`=h'aOPmuuouQҫ*Ln^o#;0&g^PH5|aX$=UHt)!9** iE[$@Nfh-/$R c"Ɋ%DB`߂h/Z|dJe%oX ` 2],͆m€^`@B`Qm@cV`Ckٮdg$F'یS)RΐZL %` `bZL>QgVpRD q%"yI0Lvnb!-'`CĀ@/ö )Ցǖ$g;5?U|SFtM޽qZxS~r> #O @#'bIDqO, HE!/?ZhF*8 ȸ&U@rFd؛i W&QsJ? J$Acr~+yv%`\oeH er.詢G@QP*|'p1 I#؊[a8ܟe$ B%4+Y[ٶ9ƶ&'_z-uz o,P{<^_aDfL\ՄM=.j? '*:.jnZi"Ϊ'ے?9kĉz՗&T[.SF%{5Rmm5`܏ 6O>|=tPξl~qԩk[BuK[H zS4&n _W\a!ci%CO3s*eLc|jtߩ -R7e#'qS:LZhmȜA/} t ݫtD([yhI`8\Z6igoqg*V{NGWWϮh(j֭{=Rt{g{?Tţ1V3''qmO@aVOB澪qH^J3l<ѣ*Q1̼Y/phqP/[jP.|frr ?`ow4gלWtT d?RA, &%Qxr+^40:Ďl`#l,vQy#JJam1ڀ$=ДPn>bI4!$ޑbGϠb[{2;Q]L3.1P#U6X8G?,(lBgEԨ!`T fi5=Fm?̼M[ᵳ;oŲD-TX_ [HTx'ؽ"ArhEb g*/1 QK7V .Kvw]E_ aa*a<(ҀmC%y&S*_>hQ_c xaџ=c\DdUDY{07;"BSм!.$; 0{a@>\~Q,7A3Ԑ7SG"U3P83bA!aRejv3e I*AU<AF)6c_v܏c+k127P+P`'ΠZ&L3g(X7TxQ'J@ 'ĢdFi Xom4OArHb kodoYEO3*F-o`%ѱ1ZR$|hgdiv%Cr%,T (1m*)=D3,H[UR'^J1Zo\A2$39u!9(E AJ4Ũ0CNeà Ic,9e@βPbCY} A؁BS0'>+  V yR$&7'&)}U"/)_b,;MfC7f\VK A7 B[sޛ%Pm XrZAhHĒ(.8R.Ȃ%)n 1  T:8bXX;0)BT t%g @@'S|1信cdbp)| MΗj bC1`X l$,-iL! E\YWH)vd3я<9`Y (`{h1Ů'|L02 JU4 ʫ*䋀#c*fƹ0_Mƛ$/M, (?SbA,̺iƐqL8":%[nv/}J5iDtJv z@TEsK2ye× G=wٜAso^DO7igխ?u( .noYKn6W"R6[emݭX_%aǶ&MqDUuyq (UyCd1.N_:n[;]sy{õ'9.\DP uIyHUK5/xObePխ pU,KIb׍3(?*lH ߄fbQ"SrkqÎ+b*;!ȣ&,y7@`ԒsW  ~$7UH$ܥ+Øc(jҮ0 LcpOE.WVk(]VQZ3X3Z;]ߵ uEm?d^q/s- #Qko9G;&\Û/OMHa|V~W7?՚DƖ;^J1ItװQ)u0[hWQfJ^<\A>&Z q./L]&sO)-`ޅ;$ࠞʻ\PZA`VϑfG7.;T%9pPURWp##p[LCP<}x aFTŮQ&^vM"6,{yMb/h;aè{{Ex3w D{ew̜9suz-׍D\1L-[?am*ѲUWGОYwEH;)C`b4ɨ!OC&:ڶ֩~{耋0|iIT5C:>D5M61CRr5al wh3Yߖ G:VQh4?,:y\0Hw=2ylH,-h s884!]Բ w@`TDt,!,B]-eLSFG]]$3ӼBg iJDo#\ڍcj Ш V0(xѦH瀰'W9EslVQv/svt7ަY!;ݟr6xs M}}W\ [=l+_XT_;]&W$+o\kAElsڽhS()ؤPAG×W(L {zTsGT_eKWx L.=5p7ڌt쩬A}ga$\t!Q+ h<ҒLg$|ʞʙGYG WҞ-b ʞ Xn}ʞ(RP -%&K" nf܄#nD{bN`hL@hLxpDLŒgv /W]FnZ>Z'ɛ$?%#z<$8l$Cp@+G FO|2A$ib=)pEGA₸i2\ #;Eڲj_41HL,͘V+gzJI9 H,jܹdHwEێ~ٔi3 N&1Nj)P@Ҭ6OPPP^<$"ll M O@阀@-ߙD"h}m (}0C _D:bը T*| _9_7?auRYW--u*l?b\:v]&B[pŸYF77`;MW<]$K]^Lʑ훉r{Goq\>mVýM<ҺB)7yݠ ,zve>!O1rw+UխbJs*?Qol\Ů♇;9nrV׻ YSw?ttˬo>[ϛUxQSxI#v^bR>6L|zu Xitv2 &gVuX=iS5Gz4)3/p@jR':Hp dH^rL! DHPXHH{oH$R#Es&"ёHj K6@7}CCvq/v+bjg=Q # Cib}QH =R18|{q [b0yu.P[ G&N+ӥs.LLZZqtSrỊ)j϶ec~WHЭa뿦ŋ{*A/ܲSXK֯WOyoNشJqMbZ{Mis߽~|v^HS }}݈QCrh].젖OpK@`ōd&lTm M[2;\*B/CM4R)L;,D,"+zC@e1}b-O,͛X2*+sq$e".2}Dhrh]d'Sc2IHȞ'\~>ycWXB ]Bi]ޯWW(jK]xsSkęUl\wl2m?Zf=envtwVjj18ju]_7u![.խ]e-?'lx˯A#Oŭ[<|vHؐs-+fI*u >uu[dYJs*Lqḙ/Bq?U\soLi`K@Ƶ1^i $ /&A<ɛ y 3&b.I9'B^*=-VpBj4qP +J* EGDe\Š] qYi̓'HL~akI֢*\/akIւ ,P _wrU:8V($=QڒzǢ9 '䁓aHԴ?_ڹY]NX~a;ܥUg7qlNK_:wk~nx7^Z1:fQ#r{<6נo?:Z(Գt7w0ܾI׷|ߍaO~n Lٷ^l?"o]%ȹi^ltv16LtaqC^|I] zJyŤC '$”6Û.h ņэ% (Oxj0Lô f 9Yjei`|jlx+c{;9U>D CTFeupů>uaX獕gL Q G_P<Rqvi/0r@AH6m@#_m=) yÝ\r"/jWG$-Ο+,EY B ah%2%&ZCZks*=wH.#DLZ0#z.hbX@{R<2C&F RAPԕ')''Vn )ʋix|ݐ"Ɯ ǣ Y$͹8QF'gs/923K֍;k>P&vzgTq5#bQG>m/(;Ƨ'8ӫG9=,p`yJJHsN]nE§QRy(!%Eyug>Oqle ygTҔ(uhD <+Cʴ*mVW4 h~KG|d7HvE%^ Qa<,JQȅDtJA렓PP@;IQ&&`&a&0 O4\*V Ϟ? =MܢAsN]V~ mdh#]-T0iLSff>Pc'?v SKށe;^4tyw{{Mf62مPope/u|w#,XdNNUb>ơR«GԏzQ2GdžQ2I/w+Δܚ+nvgQ7CtgǛӽ%?nn{sۉ|lsh7irfVlW*>Z'$-1&K_C:1EFˏ Jɒm?&Qh1}0$("EO"X[ZIEKVS2$.7q&ih& =q]Ǵ~yǩ}\՛_zǫ^ܔ[ΧPôX|͵bh̡-V)*<ZW]yelZw\{yrk>8Ѡǹ mNuwګVE܉j@Z >;קߴywDUkM=m֬GK奇w\ܳIկ-~zիDxzYp@cF8U@rv}2xY^2/ MN'LBAIv9P@$HʞXNψ3`J,1o@* R)zusV^o)mRRa_\ݱ]s+Xu3ѫkeo+'umTystEroT5nϤپj*w:ͥf:kܤ~#+ri ڭ`͢g]m1s-wRU-v4f֨˵]}^;/yۺkS&/mu;poJZp;zCL zmYu;Uw42ʱOk> yhhSSazTYdlH91149,A|@-t7\GRf>::K'DY\3,$cKWh-QB9wol!i$n5,,C{9H682H֡< ppVK  elRщ:y;pYfbh= kڎmˍˈhԨᔩ&YJ2j̇AFsڧȗALg?c,Śk+chdƄy_2HDC"?֏1c)AiY.A$~p"=01lO)=8H7t<"6yGms-ЂINv%9H0aAQSK@ Kd! 0R"7qS.eh'a lR^B.V24ؤ@*(KqDHO{j%iӛEe:5^o 1ѻ]]+C;.,(W_OS+ϒD 4%`2-ZaP?OnI*dXH£4]60 =G2m#yq`T"̠.RH:h9] DiUQlZx֟uZaїu;4G9֋\jo>* 5L`Լx|S%E[v z7O 6V|?iPLkI:mn׏ ){jToZ#ʛ9aH΁s >r9%#_si c./QOrX)Lji옶%{՝jfG,[U$m")-E+!}@b2 Yc?Js]bea 6&/& Jl3"Sm:5s׀QL#B2Ѷ5=yL5A1& oC/%bPY IAs`z&HG(ad|/:-Ejڦ?IZ%s(2j]vLjsxg"&aճtj;Zoyi.#7ynU\kPi3  `6]SiK *NP  F BY`mBQۛRc軧+A9,ƙ̒9֜fܴz{1.?YشT~4GK9n%ڱ5ȸ6MubEc.T]oiå?J4t=zeA])mv ԕx' *ӻ3Մ"U z[Ruu3wIH@ vwI4$*gL$B6E6*v6ЩN@F'Eai RghJR' ~ͨ"6D>.^m&MŐ2h&(&]eՕ{ \bٮ_a,|Uo(Aet9+IaʿXHK/q3G}]myLφO !-`GQ֧k4{ jZQˠVY^NKicByYuP„؟Рs@iF/}zQE.־p40t(L"%S&Mr_COqT1ԬufPP8FLsdBt`9e'/h \QDS1 c"P20XӵFYƺj$*`yU4AZ8ȅdbL<"2kz]BGٙrߡ+É |epJSY]MnwnV!-ٱXx 3\nṾn< -ݢ+o%ٙC/f_MۼR!M8&aֵaQ-ۖ3wznGs'fj4^ҡ&7ZPTg[' wU_eM@c4<}I48 RIA3pCHC\wLCUKGti3ɭ;e"9c_.:' 9U)l X{QEM]#tpc(VVgJVn͕A ŁwNw뛡_O|V^ {7 xιDzntWM4Fa3++\WK|@h+gE4&+$oiri]Sa"9B|J`&J'N Oj]!|Vi{:sr1w=3kcz@Mup{YWsϱLsޙ|3}.8Kv4~yyGyF7'.=`Qc't߲Dɹqp'YWnm~V044oҲS65T 8wjɚ9b3;eJmx==Ku=޻㜚ޠszeVF~߼S\,`ܫ*e]hݕϲ]3j/8;58!{UIz(,jd롮`AUtL޶1K{ ຖwT :9,: i2eHtBbct@gЩ,:闔c!@R c'I1]AS$k$Ԥe,3nf1B\J|:d KEmZ *~DQȟz7jpR :uYEn.طU]ftPC2Mr{CLJ:_(L-{>(nr×}2xр5fMg49lȸfB•PȪ͏X`%;:FV}zPVvK~?{̎׮ Q?E;]o2U' fKS፲i,#C@JXI^?͘ڑ^D +ΐ8*L &8IaRt :mgo$וU7Q iruZ ԗF"I)ĩ)$W /"|-@duؼ%!S13-DMbEw,q*8Zw0C64xi}hS\G! 1@ `8FmK <(*eAz*p!tdRȖQBS bML{_g\4y SF4=; Ӳ-7.h]`|2#cO@$0oD|d V9(*PR ٬:cUBeZP,!L 41zq+GbY;oix&')*g'\F0i!^ D9/ri0[ŋv+G} yzY'1`Ylo!CZTjquZE [KPH 5R 'Q2|2&4' Gi zr/ Yٍª  ^!IUֶRl&9L/99_A2-t`M4xOy ۢf0,f" aKeW9N%_"mq< Aѐ!Y\/^AMЖ-+Kr~N?WRpdL[Y:-[O1)O ą@@p:I8 pqIӶˈ\d cph/.DcL=@ 4&=;L%v,!HڶT\ pe^M(. #(%Mc +SI" ~XR0 'uF+p@4Kv?Hkt8O`&ޜ#W=a{>vZ?UyA ݎ&CmrGxkAKP58 R־.}8d) :Y +c2e%hQ$R"Еb7+"ZJS7\Be)Mia?uWݚvde+~>ij&G΍9hxG{Mu5'k3oŧ\5n57V,W"+J2JX}L$WbWZW"+JqPQ}%AW j* ***ʪX⟮hydPQQKoi~e⟮H^=QTͦmljFWy5Hp,/ҲKj :xx NI $OTD@I5D2JO5?Psb̪+ b|D+9 5!_q jJX}PZJLXW%BW6ͪiJhJ 9TUAS5wptME#ȳI$AT4%@mi "ͯ@u6He$z~[PAx:[5JOԔ Gi6&dH&DZV~I ?]gSp ZI $ /՘TCQTPdxIo&PqdWQ$+?U_ Wʲ_Iɠ.eW`.mFX ⟎sY3Iee.>@ֈ͓YA~OT'KQn+C,wEz+ bQf97+C,P1yRa b;8f97a,7RX JX}ESEگΐV_h\xG!]U_IsꢮzW$]!Q35 Vl*+0\-eH>+8e⟮FSD VUj6B%2!_y TQBQ~5UŲ Cp{@d( q+B4!3P$DES'){1 oQM H"5 !8S++(yV(,G Yi,V! I A)8q(F>wI[V^څB<!l@9B" K; ײ@Xr QeevB'%UNr%mNUN(Mreτ@)2ϝBD2#a SVB@Y S&%G߱@PG햨9CHwвfBڻµNB*R82Gy^E gED{pZN *Stp$Y@d)" \y^@xi-"ZSdMV(JRTQ4"kF(+L$"e*' !7#3Rp$uX 2)Ify5fW1vɬuH|IJh,R8P?CqA 2v7zI*E[$6dRDlJ2櫱@g,QJr}"(P+ɜ'l gJV[~YtgiCyYGYH+e$[@sN.y3']B)Vl >TRlC/XQ|[9)IIn*2[$(HQڬX܋eB @pbH~JiHdˢ8,>j.c%i^4PmZ82z͗RA'JOF' Ѽ: JB'z2E*D|5:))F'VDSSN Ū ,QiKԇ.$›U< #xP0Et-V,!^̥5QP߅laF1Q z W7GqQ6 i5D6F$Xq _ q@KxQ4JEaA! )J)2Xެ.JT SV'l&9 .8,cĎByc*_Â6;{@ԥ^+xEkO'[K^۴Tv.>ܭe72y,R1׳0ϯ'Μmqp.8$1 yk,<0w[ed\e.UcW}'>a߻:}~!: 7Xco/سoJtcG}SH,t^x۬JR=s{:i/Z`}wMML(&M>Z$\8M^~Z!\91Cen_{ZxxwDlz0'~Dǃ=܋l.WSy}B|ܸ᩹q I&g& @FZ %ׄ ;.~{疿_m2ߒ0s`^f<˳Т-JɽX򯚝^?bEѴk[.߄cvo] şqвm{x& x^/ /T%@eKKtk{=tFTS hP$U(L*&5Rqڹy;7z?.Yzby<^~sd:#Ly~ 8ܽ{BPhuYw˶ZOe ׎>ЫY2lgٯOm˂#eڥ}=>_yﬠ/4plr@&.y~}dU7jq^<{&_cR}Qq#'>uۜ~V *٤,/ m&K,krey ˍdr14۳L%UD BŴ Q) QwKW/ݟ}:u(fo0el!'2(<;)YW38:t]+"c4f4_f(k5MpqA)NgOj&T nQ{A?+[2ˌ*|Hw3WUnzw;XP tE YnO/SU{<̻=޽i&3mB7SY:k,}dS'ȪO1jnpgu#G(7zka|~Sx))B\ +Ҧ s''m!M Fs7 +AR9EWOm<Ƅ>_zf& {wmoT| mYQ+Lnn #V)Ã3D }kX|y6$LD[e(a]R?T,FdO?l#85ۊ}u9wcɟ5mhU=)DG d0Z=q]Ǵ~yǩ}\՛_zǫ^ܔ[ΧPôX|͵bh̡-V)*<ZW]yelZw\{yrk>8Ѡǹ mNuwګVE܉j@Z >;קߴywDUkM=m֬GK奇w\ܳIկ-~zիDxzYp@cF8U@rv}2xY^2/W AOf rO.MO̧ ߧ2`*oKʜ#5xTeTbQN/}kdss?ҽ5-Mi}[^~}PMaOjrMo;جk'^'aoMBZw~ M?.la[d> }䭹Շ.N(zVȱ66^ vM=d\u`j'غv{IA镢KVOt_s=0-U%s5m#L/D&6SL65L),OV2^hDs460̐@b$(5`{H`i3_q Pԯ~m$WGxwfe/1˥e^ݩZH1`k9{ nr ͶŮ>(ys+E'׾Mp>;椒8NL]esG@>K3[n뷳w= =YIMi4+&~˱o|ދ94ᇃo؛2vy!}=xq+syV'W[ړE^1$(c0}gr~$jUwjdjYz2oƳJC+z\}*Jф|PIH,I5O8gHftos\8\/{dߣTF{!D2{+̩Ep9=[S&_>U[|]W{/xZbxULR8ma5&.n/zo_Eu-aw/84}idu`S]n`H\ܘC71:.`IWӴK,eRܙ& GF[1%) ߴ3yku-Ԧ3X-PY?* )-P!+ dT뒞NNA0/YrvdxS|;ʖ-eQFE|W)s1"RSHTNTRP{yb5ZrvҏSe1N"psCU'h>8+ Z:oQo%y˥?h4ִd BVӫ҄@> N]zPҸ0iY}N^%E&.][O"-Si^|H U4e$M<Ƨls$VnԪq9O=4JWjl< 5@ӮJc.v',_ Ҫ?TWB3Ͽ8eOUC\;5~pPzG7BZX"1Lڐ ؁d JՊ35g&h;) d pFAj pKB'Py|»*> P~.-}&XuxDZSd5gqO2!*m۸>qk/ ⣨+sql%J4rBLʭ;hW8ѩ9n}3Iwvq?+_2ac9hqw@1wڍ_p? a(7lfvlX8[œ!cIKFO=У%p}4 H!}0E!>\x38KrF,8+~ ]"rvzP@2uTS",eq>vY(n_- OUcį!ˠ f^?#8H<hDe4cU B4Ep^Цc;>#\(a(){iXpde`(F1$Hx&UHfY 0<4I{h T<&j _NTpbZ?I$G'N3<Jzwo0m).;,PX/ɹeY.2XTpD SP,*W6ILzv_M.X[>yOKw>zL&V: [&[}1fQֻY^էf:6}[0vH ?:><{S[B|O #zV-7;qwɔ@Oz4\]QŸϿ,{[r~36)($ǜ;~|B_=q햩RKǽwYӸmS߆Yܣݙ<Kz2yO)S֏ʵtL:cQ[>pb:5jfS#zPEd#6#Y hLtLZf$7Q> XITHL@F͙kL/B-(/-ԣ(Hqh-EÏRc3CP@{MAp)C@Xd$wv;{ŽXuI;NG+vPE@#[8,*X@ҒgmJ<ܣ:+i ɃTB$ V@=fMd O2VFQ)\h)SJI*I颂ܐNNJt'$c.$`P5s;h)펌a;V}q7B|3=T/kޝ3•Z{N~#|TB8_3"{kÙkTUY QFct*ZRr/8qAu +jmc_b$1gf93ʾ-Z%JJhA]E)EemTDesdƸsި/?<>M:r7B? &Iˆ|Ph@2)Z*KՔ3YqO3 @)Ӂts[!̓!#{l" - YCLM0Z#gdi4/"{An`NiZcҀX*d&Cti@bi CF~hi@\ 0Bn`<5a`ԁe:1 ^0Gj̥CK@l1 pi !~ 2b/R}݈t B$4(}s]d ~: ӝzxW&|⑱Ow=U{h!SXjͤك'*m4End4QDVpNmȆK3wWR^uYRɾعu1CU'%HΰY9TLF4wB|uBx}zQ75yw3]jl,1=$c2"G=t9 rBV%"ׁHEU-y,Qu=uWI5| ^@ì(^0b@OnŰy9:MCKًm1K _ 4 1a_p!8cZXx4 "iuhgL,HDbomKgzE67^abJط;%"օGx=aՉ/g'QvU.[#wzPp?U_cE\mRyv0Sg֯|gŹM= &3q~,yX["1E-3Ʊ'v~jǹ~ckKVN+1BMHD,+1ikiR eia gcADcP}zgp94ψI(p ~"Ԑ_I!OC>فCDӞ~r 3vIu`d V Or0걡!2BU51! c4] okϗx+j~ƓAAMf\k$:*k=2 dMB5Dp@ S@L ēј HBv#a a@<0$1M %i JssSuًYV@2oQfQG{ɤ]ˬ  ؁Z$ [>HtMEvnⓆ\o_sd-|4U

_Mޙ3B E?%,>dy5N"6W#oQP"6 #='͐A攤EE x!q\g\STLp\D"e(1m)0sX)@'̂(. 3.0B `< 4r`70Q?FL UJaLR ]`n:]N&th 힅3}˂"eHFS=KK@/iƦn,\)uG+hD-a6[d60@2迣(N"苿3ͣR/qm^h* UE !+ΌVcU±m9\hRQhRa @ UqG~ f=FPѷLƫLW ~g}5D+=ukovN&uޡ4bkܷ{n+\OvfrJ)X!2ĉ6fL0{D[?n򘼯2s'̨Q|QyF*m#oYhlnxRWzҵ?U,ߦ6Wf'$`v䍹gh)X"Umq 덌zc|H=8D{$fld0O}0ˍ ~5* N-Ҩ$DM0cy#GHaL7D$4rd< >ݿIf`N$&?0oԈD)Dr_NQK 5AޚX6#-fl=N=[ %xOY[}|\Eik$(>&ސW!ȜkڲĮIwX @a!4׻[g`3%FR9IChJkٴVʳrc7I o,A$# Ʒ6]:ǻt!N=,]$N sִh4%FJ+M R@bD(A$bygVQ#<&V%?i?n=K0[%L&]/9FQIK `QF>̞tRiџ i0D >onQ-c5',}TIi1gpc_wA;׭sZ;-3O>]V8=!S2u~Q8};\ ř6VRrP@1?k[ޑGkj%iqIپh4Vk6G/ [uO{r*p|t%AL [) Deݨ5s Q0 AFahC {a*<^ݩl柑!T@p7"FVQK"oBTB/;1}_^KP aTV^>=xR@LsEwߺ;v&V c/WmWO&},,]2IVQ r ]JZ3.˟BP~#A?&8xiEj}'l(q5Xٚv_)!s,}73*`9ɾf)F] 4$Ež"`hhѹAH1LN &;Gbiڃq'q0l4;g1ݢ+Y=r72ʵ6B}؊ci_8_轴u 3y(h|k$ ? Rf ،uчVe Kty#1zz&v_M~x`$qGD"U l6yVAxF . 5i?'u o8D唉 r\l0MJ w=Ub;u CQ&57Y1ƌֵ^٥?5F8Dߥ[.r5ԻǾ͊^~*m^0\anAYulv{k~| UHs3JהF4QG]qHFn|n%#`' _S?%(Xl/va@=wU@k21/$X_|"h}C&Wo( GLiAYEn5FS M}UkvOO&gv]2~wh>O:n|X eFRm6=aUyO*bKd4G1 2 PZa]?A8}:~RYp B]0ZD<H$I*/a*56 L2{R $ל99 1j+ 9o3`hw,i~6+b{v=au'Ӵ8*95Kp[[B`ąW.,Eg]ZXI:%DFׯW#he1H_R#`52AYG]R\iB0h{sMv-^5g;n}^scnCeʜض m_X.XѮ4(;%W1yn+m8`S-{yuݹ2+Fq8 |d>ˀe\Z\^3J WK'>Q2cf9 ۖ(m$L7zj#7~k#EH}ucfgҘHAGG Cxręᑑ#ozД߻i(&M Fn@o:J"D$I*p0KOb+3/sz 9rYN R( %mYK6 ycՍ xiY rIps7S&{qх[fo]9q{ U}qy'Y}S]i-2=*wϪt |8oKEauIЪ;ffEOvvTh'ކQ"nPEFcCJ2~Vx S+MGn1ò1kpsӓ4=d9(F.fiǤg5gğqr9|1e׹" 7+oymZ Γ#6O_sMWBzKْtl-*mx {:?^ԹT/Nͺ^;o:c/jFY9b;d}N6~ċ,{wisGLzZiGܴ :'z]9M]s&$/O7x >?SϹfR.n -8<;+?$c >?I IUJNcCM)p*?G/U?, ~W-<{IێIut er/Lv39Z; U3-KGNے^"55D` ^h->2c7xm(~(l?SPߖ dCY&jsAbEJ! 6FrlO t-%b\:_ɕ-NzϞt7<Vo4Em1W1^R!t_G7{)b\mo9rY?4U޹1S"qV~?, Bo/X&h+H`u`G !Rd"ߢy"I Y bNIrϷ`%}X|1Z(' .I-:%[hM5x^BN*&m{Jwd;AJ~|k牷/.WͳyjHD',S0~$S&#L}JL&S`CGD37 en0_E1%X}v#dn5j^><))kOmݗ+d |p&q[:uV *4Id)ArT()O~pes?|A!Yzj_7^_ "7ǩ+noa#W뼢'_o|h:Mw~~{yBO0&ڻ;||yR . أ0V#~0bAWe!xn]erLV7?ZS\|Dv;]Xadl:7neBrUj[9#"`SDҺQV{3KLmaw>B|LtZZ1MjKDf+e|I n^kT羽-Xxgx>9@h]KmFqnZO1՗һs8}Uܟv p dR@ӉD$b@ɿNPÆD~4əl& CEe"5Q\|^iۊv;6OroEbqgP%ƔH{fZrveY墻n=r|j S5[jx,whc0uViwf__3yКa2SΒg+c]0Q2m~b痏?{k_/0_h3/Ԅ$YzLt֘ }٣`<"2$"Mf `F. $ ̳E9`Eٟ΃`<(.}A tāhg!uoAh:>-#f"^khW3,tcEF)i255 y+O'<=F'tSxXƚM%GOJr7Ek_ʮhqzk$ʪ<_;etc]1b,g~W{Y蔓w:hTtq^[N[֍W&7^^R2"i!#2 J`l% vsS bPbzJq j0,xHܡ n'}'1 ʼnC!e>{\_^xUgr_h+{s}-\ 7Q5].D } 쉴Ac  ;t$1g!r 'd`|ނd[0ӌ c?bH}+`@7WэA^;h֟ by|4&Cx"VLJљy{*6a NxZ18?/ʻgtizKTq&s gؾɑv\7 o5<ԲFogs)j:~":0{vnh=&@y4b 3>Mƾy+1c f<LxRxNG\X`0jEznR^RҸN4}$,7k(8}hX;#DPjP6:M'.מ#6mW= r:>iXZ]|f +vbC8qWm5~`mѸ:bmݖa=2@DG("VwgHEc3zبDS~ $r44u\ z$48h/}8"i2J@q$^E[So "N%Q G=:EP]`zr~".唀X>b" vh6I찤~D-)&RA *:MS(ľu.k4[fmz#~w䪜1IzUqC5Lh AnoE0WA%oeVTwo=47 %HAw&e#z"zI dd%UJ8z2so[߰p:y:3)aU ӛm穨nr-Yx#w=n_nE_ ݝ=("ݟCB?D f#PJa#]XC:s[teMNi5qmVQ>[VtHzQnԦ`*; +xni r V =a!KWe&hLmWxRhJ6ruҋ)H>Z?I| ŃLwq-V~sKJXzBub̊M7t6M s'{8a#M`3ꍮ$6,qچفKz=;tgyfzX3gmH͙%7u)":^a/9ƞXC8z |*KlDq Q{6v&+/Q$SWo_QTJ2_4]}8~_E\YBve.<e[Ӷ-+R ^)c B# [[ 0M')72˕;}2Ș |" oձ[9ҳXx'܎1pΖZ[׽XH^Kx|4E9%i# OeG%ii!Ӻ&mXnhǪ˝i4y1,3_sV&pDzJ%K0=a/VFsbLW[f cF><`c+U镺-L=LѨgk?B_5]"ܞ&ao(@ 9Be8de_#^/]2<ӝS.xe.Z5+Lp|S6;@v)W5C8K0<0j>ꃈ֟!7;b(bA5imhZdo #rc_L+<ysHMNr~`HT1@{!uNg=Dqw+dm`]vLzɸ_:f_wſS#*9Sr@.c5G(P5&ߠYk~Z:ue;=N5=7=oyiV.z}aYkg-@v sss MrP\J.&g)Ϯؔ\Y,_VFl_R(w58Fv8D}0:K&cQ hpzЉ$rUh=sfjfQӺNxL*_qlϼSzYWvUU^>ċ޷ef}YS=XU\5c lL}Ξ-q;f}jⵓ|J!\< O-QrݰU{``d.\=XFPfkT(Q0`>r`^j)Z_*рKv ۢlq;Of/Οs?vV6ٺvL/fb]ry-39 w3 &r|xJ/TsV;-LٟZoA[Ol|̻l ESzMLz\x)Ahq:ԉ%,׽.a<};N]M_h Xɇ@w [ eˢQwj%濚!!"r,<9XHi@,eCjB_wZy2S"X [f2‰+F utׯJ LA? ձ>I:9ۀ0AZH  b5},e<ڸ=i炮[+4ʜѠ0ɠV6,?ENL}%״m/xlKӭ\|O-Pzchps濤V9g!D gjS {7m"U]z?k*Fj.Uu:eNCY\1sViIڷ3i"N"[u9YrƦ;Xzzx|ښ"^d+nY˱k}؃чk)xٶf@|:~L2YreEzn6]ۖFsypUKͧ4U-5ooBpÍ-7??Db)(LƶC"#`%Ix @Mh2HD" ""U՝5(J%/-x 7wkqnPZG) LvTrlu^V3StHa!,T /-;Wt{t֖?,iWauLdC NDWsS&W՘C?۪fYn_4%9 |́ [?p`ա2rI&V<\>{dNӾ-3w&1ܗ-j%@wK2+/GAKgYtR{YUK5ճ/[ah/7=rzWDG),҉؜"{DXڎ/Xx)@.Wiu۪%eܣFa6VRV:lV[}GƱ%,Tvh|c.4:0mQ*%]1=Eؓpf) 9|$]`MqOG'#1`ePgT FM,:8b ,>]*uf*K&J(* OQ:JbۢWWT1nkP̗ʛ&C*sOsT{$),'qkadIO'&G_rr]ڜ 90F!% ;^YѳL7t.SgUojnOMK7k/Au7J ~3_Q"NG˽r%^̑=6G^r=FF[NѬh*!}z ϊYCV,㧵LK+GBIa \{?f6p-*{}]іci7[y^tڮNB"1lKD}.]di[xjD/kZ MU+%l?f/Q9r%Ʒ|{ލ8S'V&wd4 -4;;'aލOՏΎ9/co|`˖zmBm65/ ,Vn=vTcNUg91S:ˋF(6UܝD&~˶ݟ-r7vnzAFMF[.SoqbwS齹ͬw7}r q5GuPM/ڭzݾhb֧MZ#wF8 |{ m4LD{OQj?ۦh xt^=7`ifǍf=nz%b gص7qlyc\AJvgJ:9Mf/=دtPP3H7ퟌWNLPm3BY0w4݅kbZTy `TbUGta TsGf/n/,KE?[h"qܩk8FrY᭚yȀdt_V N n'Hn_ qLEuxj6֭H0śӺ:bt{T䕏>p5S{3.%)%ܙ7JK?Oٞ>IjA_4~?><}:]kͮG2zWOg6&p cJjb܊wT;'#pgF'[klH.[RmTY$5t _|6 wkمS:._aҺls|n봮5I˩;’uuW<5XșZMqz3~;elt]A?u>~ 6NbJuarھn?H 0h:%'h,ÕCc:$}怯 j%{Suo+pdg[A=*-SUmjHŷc.g8o,ֲ+W>b4S Q]o{303[dWoI4$b < *D?@,A&+蔢] {&D { Un-LB+8 P@U@2-"[h;zT(RD @baRw TDB;h2p0~ = zB }D!tfBg\K*IF(IKkZDrMDe2j4wxCe?Jendstream endobj 84 0 obj 64957 endobj 82 0 obj << /Type /Page /MediaBox [0 0 612 792] /Parent 2 0 R /Resources << /ProcSet [/PDF /ImageB] /XObject<> >> /Contents 83 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R 82 0 R ] /Count 2 >> endobj 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 557 0 obj << /CreationDate (D:20020224144322) /Producer (GNU Ghostscript 5.50) >> endobj 6 0 obj << /Type /XObject /Name /R6 /Subtype /Image /Length 7 0 R /ColorSpace /DeviceGray/Width 117/Height 107/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xQ E?Y3p9 a^O4[=B*Eap>ʊUd^UCIsPͪ 5&U4N(uS.:HmjPm}Drըjo6{'v:e(juS-h\F,k52~E;ZG|ǨH> cTS}o;cG՗.ϸBN/:u3`κF]Oԕݡ?MIO^S5Xz+}T=~dwR/A_\n^pxfvJWn*,4b*FӪFrŐ*XUvU#BVWI"[%Gk endstream endobj 7 0 obj 377 endobj 8 0 obj << /Type /XObject /Name /R8 /Subtype /Image /Length 9 0 R /ColorSpace /DeviceGray/Width 86/Height 109/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0|Si%2e8OZزެc1q[l[lɮ>Vڠi=NIP=F g*]Ȓ˫ǻCُ;}9nnan^n99;$+f±f ͞kժ ի!u۪ ƃX+[l``sI'(X * Ap($,\j6?US%Da{{Pr-*fi1K/u{Yf'(v ơ-+i#Q^ endstream endobj 9 0 obj 301 endobj 10 0 obj << /Type /XObject /Name /R10 /Subtype /Image /Length 11 0 R /ColorSpace /DeviceGray/Width 90/Height 82/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x e1*3D(=,ד%H{X׷ L\]G}ÍaGB0'MQy()6R0ՆNVkV=xjNBЕBMmf׹hY"fzۢ)@ύɆoM'O[P\sŎOzы^?7S0ŹiL; $#} ,ZT*D#Zb,|"˵Y[*2pJ}6k NtALQt]hLQ/|E endstream endobj 11 0 obj 303 endobj 12 0 obj << /Type /XObject /Name /R12 /Subtype /Image /Length 13 0 R /ColorSpace /DeviceGray/Width 82/Height 80/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x 0 DQ|P+id)Q&)Ey*jL4iҤI&M4iҤɉd\b2a 5y3و{2 ScS\ a endstream endobj 13 0 obj 171 endobj 14 0 obj << /Type /XObject /Name /R14 /Subtype /Image /Length 15 0 R /ColorSpace /DeviceGray/Width 59/Height 109/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x 0 ?Z ղ-C76bc(]`(&\dEl-fcq\0x@AʖHR)D 6-dgKjkklmmmoaov[[[[[[ۈdOɷʁ2qѭ+_j8 1*Vԉm*-_oi endstream endobj 15 0 obj 168 endobj 16 0 obj << /Type /XObject /Name /R16 /Subtype /Image /Length 17 0 R /ColorSpace /DeviceGray/Width 59/Height 109/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x 0 ?Z ղ-C76bc(]`(&\dEl-fcq\0x@AʖHR)D 6-dgKjkklmmmoaov[[[[[[ۈdOɷʁ2qѭ+_j8 1*Vԉm*-_oi endstream endobj 17 0 obj 168 endobj 18 0 obj << /Type /XObject /Name /R18 /Subtype /Image /Length 19 0 R /ColorSpace /DeviceGray/Width 82/Height 107/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x] ?2EDg[VE $$$$$$$Qj י%j~klGJpoZ#nCzb65ٔd@\MEDFz\>dw^ܛz]gUӎrl=du7{%:$$$$$$$$$$$$$3ᬯ3 endstream endobj 19 0 obj 175 endobj 20 0 obj << /Type /XObject /Name /R20 /Subtype /Image /Length 21 0 R /ColorSpace /DeviceGray/Width 90/Height 82/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 P|CD~N<3Z`?$$=aE*cψūkg wiLTQQ* AXqy::%wZK'kx5A"Wb7Ʌm@/Aմd N{_bF6m @U^!pcntq]ta?J}:!4|N\:պ/lhgOǤz?ܝ;~ k.#kC\C1"fb$3Se&gp[A~: !xXH]{JhG endstream endobj 21 0 obj 316 endobj 22 0 obj << /Type /XObject /Name /R22 /Subtype /Image /Length 23 0 R /ColorSpace /DeviceGray/Width 105/Height 111/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xr Ng%hI'7d\5й #HFib@KJ8F.%5T +KEG:$KZW,ًă^o / MĆT=Rڥ[xH= 5A7qKmev)%>D#!? #&v7T@ ݮ O"@@?¤)FPLwwΒeg!g ԓkIߔ}I^ ;/v}HG:ґ%>Ē%LNR:( 8KZ'R\fԔҕ/DsHB(V*T H@{)xנ:l-(tj`@xJ(5R>a5?{}=j,(ED8$ P+E )z'!G߆-Ʒ>i3^G2k,(N#$At Ln endstream endobj 23 0 obj 483 endobj 24 0 obj << /Type /XObject /Name /R24 /Subtype /Image /Length 25 0 R /ColorSpace /DeviceGray/Width 90/Height 82/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x e1*3D(=,ד%H{X׷ L\]G}ÍaGB0'MQy()6R0ՆNVkV=xjNBЕBMmf׹hY"fzۢ)@ύɆoM'O[P\sŎOzы^?7S0ŹiL; $#} ,ZT*D#Zb,|"˵Y[*2pJ}6k NtALQt]hLQ/|E endstream endobj 25 0 obj 303 endobj 26 0 obj << /Type /XObject /Name /R26 /Subtype /Image /Length 27 0 R /ColorSpace /DeviceGray/Width 82/Height 80/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xI Qr(@#8-j$uӗd7ɬ;Ldb#$X\M !1q6dT̷r4JvI+D1"X$܎~Oˤ8OAH"E)RH"Ey9 endstream endobj 27 0 obj 166 endobj 28 0 obj << /Type /XObject /Name /R28 /Subtype /Image /Length 29 0 R /ColorSpace /DeviceGray/Width 92/Height 78/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 nw<@"gF^4> ~q:{ţQVgh^ٻ}:gAcg 眿;]iՅp鴆Y]2 lEu1dTϺf˙⸪L\> >> stream xK0 P|CD~N<3Z`?$$=aE*cψūkg wiLTQQ* AXqy::%wZK'kx5A"Wb7Ʌm@/Aմd N{_bF6m @U^!pcntq]ta?J}:!4|N\:պ/lhgOǤz?ܝ;~ k.#kC\C1"fb$3Se&gp[A~: !xXH]{JhG endstream endobj 31 0 obj 316 endobj 32 0 obj << /Type /XObject /Name /R32 /Subtype /Image /Length 33 0 R /ColorSpace /DeviceGray/Width 82/Height 80/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xI Qr(@#8-j$uӗd7ɬ;Ldb#$X\M !1q6dT̷r4JvI+D1"X$܎~Oˤ8OAH"E)RH"Ey9 endstream endobj 33 0 obj 166 endobj 34 0 obj << /Type /XObject /Name /R34 /Subtype /Image /Length 35 0 R /ColorSpace /DeviceGray/Width 59/Height 109/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x 0 ?Z ղ-C76bc(]`(&\dEl-fcq\0x@AʖHR)D 6-dgKjkklmmmoaov[[[[[[ۈdOɷʁ2qѭ+_j8 1*Vԉm*-_oi endstream endobj 35 0 obj 168 endobj 36 0 obj << /Type /XObject /Name /R36 /Subtype /Image /Length 37 0 R /ColorSpace /DeviceGray/Width 90/Height 82/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x e1*3D(=,ד%H{X׷ L\]G}ÍaGB0'MQy()6R0ՆNVkV=xjNBЕBMmf׹hY"fzۢ)@ύɆoM'O[P\sŎOzы^?7S0ŹiL; $#} ,ZT*D#Zb,|"˵Y[*2pJ}6k NtALQt]hLQ/|E endstream endobj 37 0 obj 303 endobj 38 0 obj << /Type /XObject /Name /R38 /Subtype /Image /Length 39 0 R /ColorSpace /DeviceGray/Width 82/Height 80/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xI Qr(@#8-j$uӗd7ɬ;Ldb#$X\M !1q6dT̷r4JvI+D1"X$܎~Oˤ8OAH"E)RH"Ey9 endstream endobj 39 0 obj 166 endobj 40 0 obj << /Type /XObject /Name /R40 /Subtype /Image /Length 41 0 R /ColorSpace /DeviceGray/Width 332/Height 359/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x]`ן8 PEC;MN(n P,ηz2{\fg~7{o,tpp,>tA?$G>#"_BiN9mG &>i?Ωi~# 3⛤NɦLϏ)R4<pWf2LLʤy:,m@ӓSR.iNeX2IMZ82_N_؊qdfJ骤} taXg_xg qf&NLꟁ7qׇa\6EeJiSK>$B8d>dJ ފY3\V6RWmRZ4ldƹд('G}O ISRlͥqjfb+% vNH cߢ␙/ӘpN 3I|$*^St&23x.I!5!l.<vٶ t(hsU 萑RRh~zN흥z_ܘ9sŅx=ϯz{K;}SeHv2Ա.e%Rnz^X {=Ļ1?Ǻm--pt{v;a W[+VQUY+ԎKmB;^ULԀ;idԹRkL,-JG_XW,(aoWJFWA^[1I6q(6 R̓ש fpBaMYhq'Kz8' 3>_)c״7FmY )6plz\B4k- ]?Іu0!bJA,h3 >TMtǼJiHLCE'"}TWUJ{._Vm}]UV _vu'fULKtjFQ|XQ-'nGͪc;D{|8|=aBؖDsm\'!ݏ<-'͙8feFQ.äل[4" /0KZ$>cB_̼m7qgRXtDdg;v^KϮ!!k4e@}Zb Itf2v(,D* Li4c6'oa,9e+~'q)R=h1;C'ᛉm#Ʊ jM6GOoޕ6M$<j}泍` \ 7wuuIcTR5;>iiY ޔէhFEǙ֖;sXA"5ŸšOQYĠKJޞf(O9l]a}QJ2NU0`0d`l^+.PJdVz0>h6$Q`M@-3qCMY?_#qkMÄoljY=C" K*ty&Vqj^"n[YZI[D9+ٰ_G"ܗ }zkR%Hma76~^Jr{$h273 o>g;.I>q= 82L!g6;%Wfo3h(]G·}S&:w'd>䄕!Cx  }+d:tA`v;HG`׵9yNUE̚~%f= 4Կ,uJ#8f mqHp#2CS*]ct̙NRy̆ci!ly5Lp?K][d[ff6i ŀ̅cu/f<{؟'o2t٨ ̈l(^64b"Wfq[9fS{N;>zd>S23YEc-}AG KX+-F"a/^.Y1KAֻ%!j}PE`B{7wM|7? /i3u3cne`>;UփʻY+7`c{î -i{}Fcfw3B&#`4O&W@-c%'"y̶ T ֫fi2'׿ |؅NntjÜtWpᜪnbgrRlh[ff$U0O"ezh0Ot\j$2нMձ .G(0cMd1Z:KNj 3֗QՆM7UsCGYk3Xy|d? ; LLFt$#U#{wCH^A v:6|dպDH춟WV@5^&诂X!gsFPO/*#3;սMПL4esuĸzUٌk l^ȷehQ``29' ~vP ׼a̚[SP1LCw2Mg%S%د P<^6Nf|:y1t @/lBhN()'3'2'f$ QnjOjFp>RͫTߕ,]4& ӹ?sGh.Ҡo;"2ڠA ɰx}Q!5ԧ8NUZB0a?ff:W~s:cYD̗)˱jZ|ϋvy?(?gfm,4Kh_Ȅ=+*8mwzkBlcZffms}*l} Y%hZ}CCy6Uo>KzV `#z:Ծ&|an%>ԣB[XAB=/ lC7؊{Vg*ax]fk@ }绕 d՛:W Eg6ô#="`rm }n%6=sŁ#) \bLt=l7d RI>65fa܀ȕG$BXDžG|I%}MC ;x*ר(lNw4TMs$xq7~3 -^hzW5ž>6Lqtqz1WoUpѕ84^(^}̻UxIr7_^%sGʉ0c67Q_423Pt }F^oNW1&C+#lj qq'`JWcx(:r!-ӡ jO֊Ei1-UʙY"2 m{B̪u4FflYd5Tp+VtE7;:Qݼk H8vZ2e+52~t_&f<'"Sþ0̊Wpr;Ky95IaȶxB;v77@D4"~Wmw+9tYfZ#s=l>QΝK?R &3CoѷڌC<i_VVC9;L.'rCn%zTքO[ ?Q[}%ү8-3A5m9n%aKl_d%au)2Neޭ{n*L.I]TFd.' N748h9:?}p9Sck̴z67x[w+9fo89 =]Wr^U4fl;B\̴͉l}r:)vd~z3+ C!6`usL(MG3M;ĺJ}ԞZoŋZ&mMjפo= i9?둻w)")78OL}? +7wCd6/7I|2f $@n+2+o9?aŮym^e濑/]hy3Pbg,[* ;#۲/bV&\t*>K(JYKgc[-˜zl«0XHȉh Q߀~Xvs5IBXp"6l"<;zu8 ގ㗓LbXx"zo P9 2gh²D=GOȽrg~2m8a5ޑ]3I!Q P蔥_)K@ dq}6r&ZIj5F^`|o0Ώ9Wָ/Q1!0 M}ԒݦUNB},o 2KGڛTPo$\@hJxjP8R1ʋkΩs@,w'PAp+;WfPhn[TQ>Y4!icnym89tۨ|P:`EcnCVjSѨ=\tIOJ0bdgc:jI¨%T̞'2ʘ۰9d䤯}&RdȜS|,SFQեxNr2g¬O_ lUqɤ>9|l/{d0~0k}kxe0wI2\̜,i0));̇Դr,V ' +v]V?-i*\{4tƵP@!6 `2BYn$'ށ+? _{%ۦIޏ%Lj% Hxœ/ш [cGW{b.ZC܇?۾Swc&mo^)z}Wtl_⚭S-+? b}sws!\5?1tdJ\s0['F0o 0xRGc׌ʖgQg%iha\*b.'EŎ'e)D }dCe륜h$EP|2}E2pk"C7Le˛,JfVG&"Q=4%=Tlcl-O8z>[Ļdno:NLI kmlfsddZB^OgsנO}1A=|mdVt6?/sJ@:}ζxT`̌fb[!6e汰@ҴI mo H?OUԺkXdM6LϠ%s4F+ E,J}Dh"FZ")ֈ~զOw52ZyX[L=dKT7orɛY 8UYDt6_'\^ '#*k$AU֗KͷLg'݌F+lY=5(q >#qL:X|bRqr*Z~1-s͋щI?8[Ȇ%l} ԓ\m3U\pb]^^_Dr_("IbK ;q'q򷽎ĶLKX7%q̼zv  (۲RpLgs=w+$ HzQX-j=D5viXRg= {k3R5:5$|(6L|d7w·):Jf#`(t#JܪUHH7 _ ݷIZnkH7EE4֨ȱwn>iZ᎜z}}w'u~q --ZrSP2.Rv;9KK;Zf1 %?m .!tȪp{^{@yIBDe$mUd mr}naLQ Ge^RjJLÕ'$ 3HK,2YO]w$9Pk L`X(5Re0u`r{X&[qh'm>e Q#@-0"i0g`-?R~v1ҏD1Tj>.!^fLy 7RL6&;!JfِmqNA3DT?:3OfUTuvV~,g& ;ʷq*#Y2993gb?̰/VUۦOîD@|d;e9BBJ_$6DHd.vscJȵJV~HB37NYޛ"(EΘCw-3ϖ5tQ89`&V1&%҆HZ=atb*2+vL O `Ң[z v |Dn4ha lz[Pen-"ȶ,kQyʸ̪X4tA(`1m(v4_7<DevL"Rl=L<<҂>z@ƒt Ѻ$I8*vq@i@k2|/2 ĭM-3~*9pDs|7_: y*2#+-jی nh21aT-,9spƉ[<(;DH!0h93fFws!TZy#]3EWG}X hf-:$Q+8 U3'Hˇ`8yvNOq1{kwzq 49~7KK,2"S7+hT}Z=k\teDg yC7w Qpm348G-^# G$|!:VSXy=NJfVI vZ8 =6*ZLCYj̧Ndbؔƭ(+,B2M^~ b<38%s<>%Qɜ6AqJdnDgs'`z"yw<tUd6m DZO"-3-.R-zvr~!Ma娋L׬HlIeWb%cePx{@3FVWH d[m`K*G^L]EK$dkH7]Gj1Fr6YxSF^enj@yj*8Kp,8@ 3k‰b̄hdrƕC*z۱M,+M;BOct.K^h ЌXB+Ǹ?xjyJUVV?kq"*Z |DFsդ$0Oɋg\KdY}{:Cq+0r~҉}SӆFdBX^1ݖSo3ټ_I|Q9Ҩ2K݅~9DdbE#cJ(tAxEd׎+eX[̯I:Ȝ ,Ӗm(BHf؃Pxv 2'~"DH̔?/\CL@άlrR^HϖIfa?UZ&|m˩{+RHˠ؏_FlU0}S8aI0H"3GA!4F0L=B7Uv#Bge7/៝ YMC'#Bf)!gh9I]J̩KbYfǯ g"s=VJ[( 2PwSLVǔvHdȤ%Uw?pPu1&lm49'3wsy2qQ3D߭Ŵ>U9,cy_5KO :/m"?E|y"T]o/R73Es `lTBTVfUf‰ zvx-yU-;Y_ng)s_ 826f SvdOK92IuRt@G'qffRy;]Sk~B2)@-"2Ʌ҉-M̅Plfr**X+9 cf9ԥ[އJҎI1tMdԘNCV*;dBdT1)lDHkOCA 2}E;ltd3L#QǺN@j31)P4-BkCm2эl%c<Q!lԜ⯗"d3Ŋ<ًGbg(5ݝ,\~c!N23^dSxv6ەgg2s/wei9H8qUt9nS3R5n|7f,~VQwP͉65'w?')d2R.CG A橺\u^*U~ 2'dt4 mCyT+*d=]~3kL膂T⠛q HU8CkJ7'ea5AMXMu9\n튗 z)%j@XnɬvQrsrkϤ#!ӠbNF1o(u]vwA4[K%& -ݤި8)oϼ:!i#1RX;8^u$rLtTh2%y23o?KMa(:oQc:%Z&ՕV0ۇQ\n>%*4u2cɜrM/ lбS-A&#tآ8b;\p+l c D#2-Yk3 AGVpLg6ܙY-b[D"~2Frծzk)z Ldzc`'&JW?'ʴLM*qwƤ/_6 )n jjq&'~<k|az N~ 5fO1'~#dnXόzW1 3f]7هG N#j~ |icm]AL&D!pd4;1ubf3z"<̰΋r5#:8s]5mUFX.=ɔQ[a%^r `"`#e. p~4QLMj~_4^7oЫ~"D7*D%Lf؎cVZ;0c+kXhms$D#jV#i >jfш>ۢiUy~zdnȮkwR#*baݼfyXYͩ%MyBfXa__4,$\Ux`ꞏ juU#ıaG^_Am1"e,*KMјIÜ_W3vCV8]ϠUk NJښ7hKɠ%ъ$;;N%o*"|qA p|>4(ɘ NM+ZyGKn.h|4yNgnl'@TfnMF~*G 3~rnl\!/m{<#y@825wpV< Qܽ~UnXƤE%Qr̄n uu.b&#_PSƓX0MIrU[Mh7:5k9em ϸ*2{ËW2ߏ~-U#Ag6OzUp<{zk!vo(SΓ i̤znLgnf+ ^Dg75F,Q ::yOOiF6oH?dܱS$w iUZ2?&˴Ű#9^=0Gl2g̒E+qlQ'#Z@7G윀irDusu$O(:xq 5`MFڟTxM*`Op#f$Dhg 2gDͰZYw)əq0DͪBBF#-LK2zKd ܌c'N~|$?cVɳݛV2i~Yr2X,өDz@WtHKؓI/,Yw\' j C#Aȧۿs11fv[!MBÌI!3OZֈx]|!N/\.8?-6m<.)_MBo c Û9K"}%#)0,Pyr^"&KSs{I], bN2!iYX淌6dafN`z ҘǺJumL1ԙy?jP.`-Se_Fևg(6p|8t2J ۉrԺJ?A,kjdut2DI]-O^K {yܶT "b ;fc7e\H ZQ#cJ%ÓVq0dX^"U:QcIOpu)*X?ɜJZ>J:r^dNp:h8GԚf2Ag0Hmd#$RC y b4c1[e$.J&##A:pQaHG 0M'o٫ygq($K2)矖IZz* endstream endobj 41 0 obj 14789 endobj 42 0 obj << /Type /XObject /Name /R42 /Subtype /Image /Length 43 0 R /ColorSpace /DeviceGray/Width 69/Height 59/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x EAifv@_Rcowh1> >> stream x0PmfL"{9B FRWڐ҇T?RS&RbnHّCZ̾퓏|wR1pI 6~Jw=&mo-jdul5nq ѫwsqqDo_=mmF endstream endobj 45 0 obj 277 endobj 46 0 obj << /Type /XObject /Name /R46 /Subtype /Image /Length 47 0 R /ColorSpace /DeviceGray/Width 69/Height 59/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x EAifv@_Rcowh1> >> stream x0 `=cXO+=]BFVm Odž>}XNsB3 =#f^ -.CЋ D!Fng/}5^zTԅ YX yY)NCD 4L0T #("%<[I"+ 2ѧ?VJd>SJ{G= /=ʾJt')0vM3J:!U/Qd#h]hJU)=S%3M2.+Ɯ;>cv^v1rC`A+TZgj6 endstream endobj 49 0 obj 294 endobj 50 0 obj << /Type /XObject /Name /R50 /Subtype /Image /Length 51 0 R /ColorSpace /DeviceGray/Width 68/Height 68/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x `xbҖSGt%RHy6H3!}N {"8D!,hX8Dq]l_#cl#18iV.F0B8̓D"kkYh qUq%jiL!ig9N{Yp=@'@xJt9/8.c{XVeSNqA UQUYU9CvC;`osLs}{n¼OR endstream endobj 51 0 obj 269 endobj 52 0 obj << /Type /XObject /Name /R52 /Subtype /Image /Length 53 0 R /ColorSpace /DeviceGray/Width 68/Height 70/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0PmfL"{9B FRWڐ҇T?RS&RbnHّCZ̾퓏|wR1pI 6~Jw=&mo-jdul5nq ѫwsqqDo_=mmF endstream endobj 53 0 obj 277 endobj 54 0 obj << /Type /XObject /Name /R54 /Subtype /Image /Length 55 0 R /ColorSpace /DeviceGray/Width 105/Height 111/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xr Ng%hI'7d\5й #HFib@KJ8F.%5T +KEG:$KZW,ًă^o / MĆT=Rڥ[xH= 5A7qKmev)%>D#!? #&v7T@ ݮ O"@@?¤)FPLwwΒeg!g ԓkIߔ}I^ ;/v}HG:ґ%>Ē%LNR:( 8KZ'R\fԔҕ/DsHB(V*T H@{)xנ:l-(tj`@xJ(5R>a5?{}=j,(ED8$ P+E )z'!G߆-Ʒ>i3^G2k,(N#$At Ln endstream endobj 55 0 obj 483 endobj 56 0 obj << /Type /XObject /Name /R56 /Subtype /Image /Length 57 0 R /ColorSpace /DeviceGray/Width 90/Height 82/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x e1*3D(=,ד%H{X׷ L\]G}ÍaGB0'MQy()6R0ՆNVkV=xjNBЕBMmf׹hY"fzۢ)@ύɆoM'O[P\sŎOzы^?7S0ŹiL; $#} ,ZT*D#Zb,|"˵Y[*2pJ}6k NtALQt]hLQ/|E endstream endobj 57 0 obj 303 endobj 58 0 obj << /Type /XObject /Name /R58 /Subtype /Image /Length 59 0 R /ColorSpace /DeviceGray/Width 82/Height 80/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xI Qr(@#8-j$uӗd7ɬ;Ldb#$X\M !1q6dT̷r4JvI+D1"X$܎~Oˤ8OAH"E)RH"Ey9 endstream endobj 59 0 obj 166 endobj 60 0 obj << /Type /XObject /Name /R60 /Subtype /Image /Length 61 0 R /ColorSpace /DeviceGray/Width 92/Height 78/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 nw<@"gF^4> ~q:{ţQVgh^ٻ}:gAcg 眿;]iՅp鴆Y]2 lEu1dTϺf˙⸪L\> >> stream xK0 P|CD~N<3Z`?$$=aE*cψūkg wiLTQQ* AXqy::%wZK'kx5A"Wb7Ʌm@/Aմd N{_bF6m @U^!pcntq]ta?J}:!4|N\:պ/lhgOǤz?ܝ;~ k.#kC\C1"fb$3Se&gp[A~: !xXH]{JhG endstream endobj 63 0 obj 316 endobj 64 0 obj << /Type /XObject /Name /R64 /Subtype /Image /Length 65 0 R /ColorSpace /DeviceGray/Width 82/Height 80/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xI Qr(@#8-j$uӗd7ɬ;Ldb#$X\M !1q6dT̷r4JvI+D1"X$܎~Oˤ8OAH"E)RH"Ey9 endstream endobj 65 0 obj 166 endobj 66 0 obj << /Type /XObject /Name /R66 /Subtype /Image /Length 67 0 R /ColorSpace /DeviceGray/Width 59/Height 109/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x 0 ?Z ղ-C76bc(]`(&\dEl-fcq\0x@AʖHR)D 6-dgKjkklmmmoaov[[[[[[ۈdOɷʁ2qѭ+_j8 1*Vԉm*-_oi endstream endobj 67 0 obj 168 endobj 68 0 obj << /Type /XObject /Name /R68 /Subtype /Image /Length 69 0 R /ColorSpace /DeviceGray/Width 90/Height 82/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x e1*3D(=,ד%H{X׷ L\]G}ÍaGB0'MQy()6R0ՆNVkV=xjNBЕBMmf׹hY"fzۢ)@ύɆoM'O[P\sŎOzы^?7S0ŹiL; $#} ,ZT*D#Zb,|"˵Y[*2pJ}6k NtALQt]hLQ/|E endstream endobj 69 0 obj 303 endobj 70 0 obj << /Type /XObject /Name /R70 /Subtype /Image /Length 71 0 R /ColorSpace /DeviceGray/Width 82/Height 80/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xI Qr(@#8-j$uӗd7ɬ;Ldb#$X\M !1q6dT̷r4JvI+D1"X$܎~Oˤ8OAH"E)RH"Ey9 endstream endobj 71 0 obj 166 endobj 72 0 obj << /Type /XObject /Name /R72 /Subtype /Image /Length 73 0 R /ColorSpace /DeviceGray/Width 103/Height 107/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x A+8fG+TipW8p8> >> stream x e1*3D(=,ד%H{X׷ L\]G}ÍaGB0'MQy()6R0ՆNVkV=xjNBЕBMmf׹hY"fzۢ)@ύɆoM'O[P\sŎOzы^?7S0ŹiL; $#} ,ZT*D#Zb,|"˵Y[*2pJ}6k NtALQt]hLQ/|E endstream endobj 75 0 obj 303 endobj 76 0 obj << /Type /XObject /Name /R76 /Subtype /Image /Length 77 0 R /ColorSpace /DeviceGray/Width 59/Height 109/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x 0 ?Z ղ-C76bc(]`(&\dEl-fcq\0x@AʖHR)D 6-dgKjkklmmmoaov[[[[[[ۈdOɷʁ2qѭ+_j8 1*Vԉm*-_oi endstream endobj 77 0 obj 168 endobj 78 0 obj << /Type /XObject /Name /R78 /Subtype /Image /Length 79 0 R /ColorSpace /DeviceGray/Width 90/Height 82/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 P|CD~N<3Z`?$$=aE*cψūkg wiLTQQ* AXqy::%wZK'kx5A"Wb7Ʌm@/Aմd N{_bF6m @U^!pcntq]ta?J}:!4|N\:պ/lhgOǤz?ܝ;~ k.#kC\C1"fb$3Se&gp[A~: !xXH]{JhG endstream endobj 79 0 obj 316 endobj 80 0 obj << /Type /XObject /Name /R80 /Subtype /Image /Length 81 0 R /ColorSpace /DeviceGray/Width 477/Height 476/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xٖ8 PMt%lHPSv.[&=pu9Bs]#t=Gz9Bs]#t=Gz9Bsx|l{^ؤV÷^upCwNu_|0BsԽpC_t3K7t}_1oz羼u?Q-ozg]y0/&zӽ(ݗף y{nFwK^_w{OD~] &MyCsxM ӆ򞼻+{"홼t3yK7Bw3^7]enġk5J91'2SCwt j"Ç.vo7 iރxw݋׃. nE~†=x:}] +t݈׼.J{k]^څ7t=]&G%݀wSM׶.^Tˉ8-xMBuiݴAʺVkX ]L>8vu9[?m]w^,L]DY缡B"+E ]lFð#88׼6u%$kTW$"y:;zC!kUW {PBk|ž8[NkaNW QBS^n|Zӕ+n6Pӭ0mBԭ(Qz㵥[#PyMV ՛sUʃskI7?4a6`> 羻^aoqt ]&]m߽݇lvq7SS/hlⵢ >umx=A'^x}?0Bה.o]7t jǣ oczuG7 ]7G׃+ t?a@:Q e];oхJPt60_<#taO8ldeq;&tQnF!g D2{xQ]^z]$ ]b](I>x#śJCwL@yJ.zC\@iӅ!+ӭ.8AfWn:<@STp]I[V0ǫQ7-dׄ+Nh^`bdFDެL(SIE<ҭW GAVE=5㺕#JÐEotW 0@ PHubW.yTޡ!9qNB9½q*nNt ؍W |TQ`I_WR_2bOba7i*xiPT`:[ր9mdXЅf jlȰPKC n üuӏ& P{uQEb u,AUGѨt5üJtKƳA@Ԡ.5Jt6=[%/r^X}*mXZ[M^T_"ue̐գ+ƕh\o$&xUyt *ߎV@.#J"GI#\Y*.?D͞'>/D֥T];i3/n7uuvu;0[o(5:bMO@.tuqR#+skuf6V&/u&,t%fYպ|@] UE{VO\ˆ|9fPP̻R;-x{aWJW%]di@ URv6t-moDԥnS+6?c!|Mqu:&^EwW uo7{+*Cta#=;SWK0$եM ]uk+S;_>y!CӚή-t%2Gtmd tNbz.A O*%Y Z=&5|W]6uw.z_W^XK.4S6m\sY YdiLR{bjn3WZƶf޹ȸ.V]l>w.&MeNJY~8=Q#c_+GW흀Bjw.ԽޚK N"'Rקa|d0gEn?.|֧j]{X̧\|7y'fAg:'XuEܦwn~=Wrj޹UmuuVDe]YNgSΤ+yG.˾KF3tTCYX`]>u8` }tg/Է tեy\g~]&PLCђX{~N61V=*x] uqm+mWmuZx2[ q?^xA呺L/`5#u#jDLM%.{{kż{d_=NM44fԅ'[#k@]*yNOʙ.0|:a=tm0a5N̓ڼ/uE} v~4*GqgcUɺ4T]8g>込w]zJ(&Kj4whPsl TQ@xx8qFw?_^t%~- eQBͻV-6)]*Db[^]K?uo3EOrWLWAh.`f>tQVdBNVl†wX]jh] :R)uͱ||&@+.XG1* ߩ xG"{d!sL-eR73`=VTƒ݉DF$5FguӅCg:7tN[ j ⍕t|V_ sYŚ[Xc'Y{ڟ.4Z1'`$A\r N^vޞ.5StvEvlGb2]zy#`_svgp箸gvMWO>X;>5M]pڏx22|-ܹҡ>=_%ӁCWf CtѠ2 ]]u-нu¤'/67 .vG]!{+QD1oa?t"H⽈up+Gf%$L="2s=.MF%'B%)&vEYW0L$V銓`%#?'4-GAcזn5]4$C]hE^MRaN74o9F$ [Pu1h2"yuo%ʩp%ogX/zsY e- mtL¸1+JVu+]ڪROt+wf4`Wӕ.Nݭ@W++-yu{2Kw|)2J{t杠ܖiLWbo.8 z5:uKni#f].H젫-yu3q~ۉ.wUm'nxu'ժF?ގt '.[:O[êI{k%O)de1WWԝ(} 2ѝ]: 1s$JJnVWM?4[Z֕,oVR]Lԕ_OѦJ %>ytk6n#yu snU<ҭOw(hXM WCn 럼u~&FhBцu&twýnUyD`3پ'wnF}GrӔ.ֺ =wn&NܿëQ7p,E{:^^wnbqݫLQ;WuU |L^$;'5[@wd}!IN\W=o7] )!uBH4ty/6ypn3]8~5-M!{uۙ~ѕх?r8[1J3Ao-س+1\_66҅&NeQuop^η41s,֝< #5L.Ym B7?y l'E/WCG5'є#օdM&oNtB] yŸp:SK/=s]wB?(=!.p:dK#p:tº9wW.L&ei ͜-zjrEמLwMF8ItÄײ,֕(yAݥ#U=y W]$/mս/Z0n 0Ci[Aļͺ.+Sȫu%Vkd8^LW]>Is0j#膭af[OTߎPoV#t]zIߠ ]Fx9Bs]#t=Gz9Bs]#t=Gz9BsqLl endstream endobj 81 0 obj 6524 endobj 85 0 obj << /Type /XObject /Name /R85 /Subtype /Image /Length 86 0 R /ColorSpace /DeviceGray/Width 69/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x MAbiSɤ!ttYG&}Rb(~!lQSJlQ EMշ1ESXJ-ݡ%bT(ŨH`JhR3S%[i3N#0z\AWNWV*쳆&%r8ҦGE}/~_SUQ>(b?Pf&E37)i endstream endobj 86 0 obj 270 endobj 87 0 obj << /Type /XObject /Name /R87 /Subtype /Image /Length 88 0 R /ColorSpace /DeviceGray/Width 56/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x! GP2oYƾe Y`W@A7X. endstream endobj 88 0 obj 55 endobj 89 0 obj << /Type /XObject /Name /R89 /Subtype /Image /Length 90 0 R /ColorSpace /DeviceGray/Width 57/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0 P=0im6!!Pw#٣O:C-µ<ظR.?WLᇼe_`M8&IL_TQR#5UPr'RGb]$T/&UI)[M$u/mMǑ, 5hW2 H3= ZbCW^u([@99a9Cs?~ة2d> :i'ni=qĵRYj iB endstream endobj 90 0 obj 309 endobj 91 0 obj << /Type /XObject /Name /R91 /Subtype /Image /Length 92 0 R /ColorSpace /DeviceGray/Width 57/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0 P=0im6!!Pw#٣O:C-µ<ظR.?WLᇼe_`M8&IL_TQR#5UPr'RGb]$T/&UI)[M$u/mMǑ, 5hW2 H3= ZbCW^u([@99a9Cs?~ة2d> :i'ni=qĵRYj iB endstream endobj 92 0 obj 309 endobj 93 0 obj << /Type /XObject /Name /R93 /Subtype /Image /Length 94 0 R /ColorSpace /DeviceGray/Width 56/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x!@"M' <   MH= endstream endobj 94 0 obj 50 endobj 95 0 obj << /Type /XObject /Name /R95 /Subtype /Image /Length 96 0 R /ColorSpace /DeviceGray/Width 70/Height 70/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xr D?&AYXtniޒYet!Qo0zF`Cc`ǰ"'p5 ą LDżl]Z}+ iߵHi oa^jg@ bp1:bp%sP>~j7ڶ]uN0w8=9KJSG7a`pW 1wm)|Ka s${h|I%Y4?0Pm)ePZC[X?'4>,tU锅%[eӪ3f:Ӗ-LRɣ&D? 45`v-OVx^NX\y'+5lT`ws8*iI$qJ?V37 s 9&ҢYH8N $MDcb8{0/!8odu0~׾gb9eb5ѩgsLTI5z8HVLk. F S6<[ T endstream endobj 96 0 obj 494 endobj 97 0 obj << /Type /XObject /Name /R97 /Subtype /Image /Length 98 0 R /ColorSpace /DeviceGray/Width 58/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x˱ @gapڋ#=LEQEQEQEhtHA endstream endobj 98 0 obj 51 endobj 99 0 obj << /Type /XObject /Name /R99 /Subtype /Image /Length 100 0 R /ColorSpace /DeviceGray/Width 56/Height 73/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xA DQVchi C\iHShB[/S wi? Ҧ/Ʒ =J!p.RC%0IllCTz=DpɎ( ]mCG`ys endstream endobj 100 0 obj 135 endobj 101 0 obj << /Type /XObject /Name /R101 /Subtype /Image /Length 102 0 R /ColorSpace /DeviceGray/Width 57/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0 P=0im6!!Pw#٣O:C-µ<ظR.?WLᇼe_`M8&IL_TQR#5UPr'RGb]$T/&UI)[M$u/mMǑ, 5hW2 H3= ZbCW^u([@99a9Cs?~ة2d> :i'ni=qĵRYj iB endstream endobj 102 0 obj 309 endobj 103 0 obj << /Type /XObject /Name /R103 /Subtype /Image /Length 104 0 R /ColorSpace /DeviceGray/Width 69/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0PybLu ܯ6l ]ʃ1OP(OAj2䂟{B`C9[k#e.]27)& VE-+3ac)^A Ӧ8)[oTB~Ö́Ĺ9ܠo/'v9[&*GQ`"g\VP%̵J-혉JRkb$?PI!:ROTB*(T҈,Sg˕w Wˆ(*Sv6$h^Ff¶ttI endstream endobj 104 0 obj 265 endobj 105 0 obj << /Type /XObject /Name /R105 /Subtype /Image /Length 106 0 R /ColorSpace /DeviceGray/Width 68/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0PG,pg8& +y=X\( 硐dB%~fg;'@9LU [!uhsK #nP1>AAdLJ@Yi 퐽20\AjBoĖhj21LUEBf:125r\gDQ:9 y?lػ/frJiUJ4Q7N#ii95o0eEjW3r=l(l `= endstream endobj 106 0 obj 257 endobj 107 0 obj << /Type /XObject /Name /R107 /Subtype /Image /Length 108 0 R /ColorSpace /DeviceGray/Width 70/Height 70/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xr D?&AYXtniޒYet!Qo0zF`Cc`ǰ"'p5 ą LDżl]Z}+ iߵHi oa^jg@ bp1:bp%sP>~j7ڶ]uN0w8=9KJSG7a`pW 1wm)|Ka s${h|I%Y4?0Pm)ePZC[X?'4>,tU锅%[eӪ3f:Ӗ-LRɣ&D? 45`v-OVx^NX\y'+5lT`ws8*iI$qJ?V37 s 9&ҢYH8N $MDcb8{0/!8odu0~׾gb9eb5ѩgsLTI5z8HVLk. F S6<[ T endstream endobj 108 0 obj 494 endobj 109 0 obj << /Type /XObject /Name /R109 /Subtype /Image /Length 110 0 R /ColorSpace /DeviceGray/Width 62/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x e]pfpd=!W\ {᝿;{>co( XnPY~EǸJ~۩[_2z/qW}z%U";.׍pckXvL8F,> >> stream x MAbiSɤ!ttYG&}Rb(~!lQSJlQ EMշ1ESXJ-ݡ%bT(ŨH`JhR3S%[i3N#0z\AWNWV*쳆&%r8ҦGE}/~_SUQ>(b?Pf&E37)i endstream endobj 112 0 obj 270 endobj 113 0 obj << /Type /XObject /Name /R113 /Subtype /Image /Length 114 0 R /ColorSpace /DeviceGray/Width 59/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK PY'Θbt<-Gз Pq:MYI0k%6MO!f0lfDŽSQ{WsV/> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 116 0 obj 267 endobj 117 0 obj << /Type /XObject /Name /R117 /Subtype /Image /Length 118 0 R /ColorSpace /DeviceGray/Width 70/Height 70/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xr D?&AYXtniޒYet!Qo0zF`Cc`ǰ"'p5 ą LDżl]Z}+ iߵHi oa^jg@ bp1:bp%sP>~j7ڶ]uN0w8=9KJSG7a`pW 1wm)|Ka s${h|I%Y4?0Pm)ePZC[X?'4>,tU锅%[eӪ3f:Ӗ-LRɣ&D? 45`v-OVx^NX\y'+5lT`ws8*iI$qJ?V37 s 9&ҢYH8N $MDcb8{0/!8odu0~׾gb9eb5ѩgsLTI5z8HVLk. F S6<[ T endstream endobj 118 0 obj 494 endobj 119 0 obj << /Type /XObject /Name /R119 /Subtype /Image /Length 120 0 R /ColorSpace /DeviceGray/Width 59/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK PY'Θbt<-Gз Pq:MYI0k%6MO!f0lfDŽSQ{WsV/> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 122 0 obj 267 endobj 123 0 obj << /Type /XObject /Name /R123 /Subtype /Image /Length 124 0 R /ColorSpace /DeviceGray/Width 68/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0PG,pg8& +y=X\( 硐dB%~fg;'@9LU [!uhsK #nP1>AAdLJ@Yi 퐽20\AjBoĖhj21LUEBf:125r\gDQ:9 y?lػ/frJiUJ4Q7N#ii95o0eEjW3r=l(l `= endstream endobj 124 0 obj 257 endobj 125 0 obj << /Type /XObject /Name /R125 /Subtype /Image /Length 126 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 126 0 obj 267 endobj 127 0 obj << /Type /XObject /Name /R127 /Subtype /Image /Length 128 0 R /ColorSpace /DeviceGray/Width 70/Height 70/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xr D?&AYXtniޒYet!Qo0zF`Cc`ǰ"'p5 ą LDżl]Z}+ iߵHi oa^jg@ bp1:bp%sP>~j7ڶ]uN0w8=9KJSG7a`pW 1wm)|Ka s${h|I%Y4?0Pm)ePZC[X?'4>,tU锅%[eӪ3f:Ӗ-LRɣ&D? 45`v-OVx^NX\y'+5lT`ws8*iI$qJ?V37 s 9&ҢYH8N $MDcb8{0/!8odu0~׾gb9eb5ѩgsLTI5z8HVLk. F S6<[ T endstream endobj 128 0 obj 494 endobj 129 0 obj << /Type /XObject /Name /R129 /Subtype /Image /Length 130 0 R /ColorSpace /DeviceGray/Width 69/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x MAbiSɤ!ttYG&}Rb(~!lQSJlQ EMշ1ESXJ-ݡ%bT(ŨH`JhR3S%[i3N#0z\AWNWV*쳆&%r8ҦGE}/~_SUQ>(b?Pf&E37)i endstream endobj 130 0 obj 270 endobj 131 0 obj << /Type /XObject /Name /R131 /Subtype /Image /Length 132 0 R /ColorSpace /DeviceGray/Width 69/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x MAbiSɤ!ttYG&}Rb(~!lQSJlQ EMշ1ESXJ-ݡ%bT(ŨH`JhR3S%[i3N#0z\AWNWV*쳆&%r8ҦGE}/~_SUQ>(b?Pf&E37)i endstream endobj 132 0 obj 270 endobj 133 0 obj << /Type /XObject /Name /R133 /Subtype /Image /Length 134 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 134 0 obj 267 endobj 135 0 obj << /Type /XObject /Name /R135 /Subtype /Image /Length 136 0 R /ColorSpace /DeviceGray/Width 58/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x FnEiL9L1LLJyA=*@Ncr ~/D!O=l9- %rl-'1SE_5+bI{:qV%N1 ,l+=Q3qYqcV7hO ZkKRiNQU1HRT!՚RUq1=v.Y+cmNY(l̀vHˤw:r?U%d.-%uWľݧC oکl6tvz;y۠i-z }aB endstream endobj 136 0 obj 321 endobj 137 0 obj << /Type /XObject /Name /R137 /Subtype /Image /Length 138 0 R /ColorSpace /DeviceGray/Width 70/Height 70/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xr D?&AYXtniޒYet!Qo0zF`Cc`ǰ"'p5 ą LDżl]Z}+ iߵHi oa^jg@ bp1:bp%sP>~j7ڶ]uN0w8=9KJSG7a`pW 1wm)|Ka s${h|I%Y4?0Pm)ePZC[X?'4>,tU锅%[eӪ3f:Ӗ-LRɣ&D? 45`v-OVx^NX\y'+5lT`ws8*iI$qJ?V37 s 9&ҢYH8N $MDcb8{0/!8odu0~׾gb9eb5ѩgsLTI5z8HVLk. F S6<[ T endstream endobj 138 0 obj 494 endobj 139 0 obj << /Type /XObject /Name /R139 /Subtype /Image /Length 140 0 R /ColorSpace /DeviceGray/Width 69/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0PybLu ܯ6l ]ʃ1OP(OAj2䂟{B`C9[k#e.]27)& VE-+3ac)^A Ӧ8)[oTB~Ö́Ĺ9ܠo/'v9[&*GQ`"g\VP%̵J-혉JRkb$?PI!:ROTB*(T҈,Sg˕w Wˆ(*Sv6$h^Ff¶ttI endstream endobj 140 0 obj 265 endobj 141 0 obj << /Type /XObject /Name /R141 /Subtype /Image /Length 142 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 142 0 obj 267 endobj 143 0 obj << /Type /XObject /Name /R143 /Subtype /Image /Length 144 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 144 0 obj 267 endobj 145 0 obj << /Type /XObject /Name /R145 /Subtype /Image /Length 146 0 R /ColorSpace /DeviceGray/Width 70/Height 70/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xr D?&AYXtniޒYet!Qo0zF`Cc`ǰ"'p5 ą LDżl]Z}+ iߵHi oa^jg@ bp1:bp%sP>~j7ڶ]uN0w8=9KJSG7a`pW 1wm)|Ka s${h|I%Y4?0Pm)ePZC[X?'4>,tU锅%[eӪ3f:Ӗ-LRɣ&D? 45`v-OVx^NX\y'+5lT`ws8*iI$qJ?V37 s 9&ҢYH8N $MDcb8{0/!8odu0~׾gb9eb5ѩgsLTI5z8HVLk. F S6<[ T endstream endobj 146 0 obj 494 endobj 147 0 obj << /Type /XObject /Name /R147 /Subtype /Image /Length 148 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 148 0 obj 267 endobj 149 0 obj << /Type /XObject /Name /R149 /Subtype /Image /Length 150 0 R /ColorSpace /DeviceGray/Width 57/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0 P=0im6!!Pw#٣O:C-µ<ظR.?WLᇼe_`M8&IL_TQR#5UPr'RGb]$T/&UI)[M$u/mMǑ, 5hW2 H3= ZbCW^u([@99a9Cs?~ة2d> :i'ni=qĵRYj iB endstream endobj 150 0 obj 309 endobj 151 0 obj << /Type /XObject /Name /R151 /Subtype /Image /Length 152 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 152 0 obj 267 endobj 153 0 obj << /Type /XObject /Name /R153 /Subtype /Image /Length 154 0 R /ColorSpace /DeviceGray/Width 59/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK PY'Θbt<-Gз Pq:MYI0k%6MO!f0lfDŽSQ{WsV/> >> stream xr D?&AYXtniޒYet!Qo0zF`Cc`ǰ"'p5 ą LDżl]Z}+ iߵHi oa^jg@ bp1:bp%sP>~j7ڶ]uN0w8=9KJSG7a`pW 1wm)|Ka s${h|I%Y4?0Pm)ePZC[X?'4>,tU锅%[eӪ3f:Ӗ-LRɣ&D? 45`v-OVx^NX\y'+5lT`ws8*iI$qJ?V37 s 9&ҢYH8N $MDcb8{0/!8odu0~׾gb9eb5ѩgsLTI5z8HVLk. F S6<[ T endstream endobj 156 0 obj 494 endobj 157 0 obj << /Type /XObject /Name /R157 /Subtype /Image /Length 158 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 158 0 obj 267 endobj 159 0 obj << /Type /XObject /Name /R159 /Subtype /Image /Length 160 0 R /ColorSpace /DeviceGray/Width 69/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0PybLu ܯ6l ]ʃ1OP(OAj2䂟{B`C9[k#e.]27)& VE-+3ac)^A Ӧ8)[oTB~Ö́Ĺ9ܠo/'v9[&*GQ`"g\VP%̵J-혉JRkb$?PI!:ROTB*(T҈,Sg˕w Wˆ(*Sv6$h^Ff¶ttI endstream endobj 160 0 obj 265 endobj 161 0 obj << /Type /XObject /Name /R161 /Subtype /Image /Length 162 0 R /ColorSpace /DeviceGray/Width 57/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0 P=0im6!!Pw#٣O:C-µ<ظR.?WLᇼe_`M8&IL_TQR#5UPr'RGb]$T/&UI)[M$u/mMǑ, 5hW2 H3= ZbCW^u([@99a9Cs?~ة2d> :i'ni=qĵRYj iB endstream endobj 162 0 obj 309 endobj 163 0 obj << /Type /XObject /Name /R163 /Subtype /Image /Length 164 0 R /ColorSpace /DeviceGray/Width 69/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0PybLu ܯ6l ]ʃ1OP(OAj2䂟{B`C9[k#e.]27)& VE-+3ac)^A Ӧ8)[oTB~Ö́Ĺ9ܠo/'v9[&*GQ`"g\VP%̵J-혉JRkb$?PI!:ROTB*(T҈,Sg˕w Wˆ(*Sv6$h^Ff¶ttI endstream endobj 164 0 obj 265 endobj 165 0 obj << /Type /XObject /Name /R165 /Subtype /Image /Length 166 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 166 0 obj 267 endobj 167 0 obj << /Type /XObject /Name /R167 /Subtype /Image /Length 168 0 R /ColorSpace /DeviceGray/Width 62/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x e]pfpd=!W\ {᝿;{>co( XnPY~EǸJ~۩[_2z/qW}z%U";.׍pckXvL8F,> >> stream x0 P=0im6!!Pw#٣O:C-µ<ظR.?WLᇼe_`M8&IL_TQR#5UPr'RGb]$T/&UI)[M$u/mMǑ, 5hW2 H3= ZbCW^u([@99a9Cs?~ة2d> :i'ni=qĵRYj iB endstream endobj 170 0 obj 309 endobj 171 0 obj << /Type /XObject /Name /R171 /Subtype /Image /Length 172 0 R /ColorSpace /DeviceGray/Width 56/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x! GP2oYƾe Y`W@A7X. endstream endobj 172 0 obj 55 endobj 173 0 obj << /Type /XObject /Name /R173 /Subtype /Image /Length 174 0 R /ColorSpace /DeviceGray/Width 56/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xA @[[$1=MXJ*iBȥRI!&HX )fشPPJ4@!K@&9$TJDRC 0J/d & gpZYQA.QMV`.0%I3Ld'YQA |M endstream endobj 174 0 obj 177 endobj 175 0 obj << /Type /XObject /Name /R175 /Subtype /Image /Length 176 0 R /ColorSpace /DeviceGray/Width 57/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0 P=0im6!!Pw#٣O:C-µ<ظR.?WLᇼe_`M8&IL_TQR#5UPr'RGb]$T/&UI)[M$u/mMǑ, 5hW2 H3= ZbCW^u([@99a9Cs?~ة2d> :i'ni=qĵRYj iB endstream endobj 176 0 obj 309 endobj 177 0 obj << /Type /XObject /Name /R177 /Subtype /Image /Length 178 0 R /ColorSpace /DeviceGray/Width 68/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0PG,pg8& +y=X\( 硐dB%~fg;'@9LU [!uhsK #nP1>AAdLJ@Yi 퐽20\AjBoĖhj21LUEBf:125r\gDQ:9 y?lػ/frJiUJ4Q7N#ii95o0eEjW3r=l(l `= endstream endobj 178 0 obj 257 endobj 179 0 obj << /Type /XObject /Name /R179 /Subtype /Image /Length 180 0 R /ColorSpace /DeviceGray/Width 70/Height 70/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xr D?&AYXtniޒYet!Qo0zF`Cc`ǰ"'p5 ą LDżl]Z}+ iߵHi oa^jg@ bp1:bp%sP>~j7ڶ]uN0w8=9KJSG7a`pW 1wm)|Ka s${h|I%Y4?0Pm)ePZC[X?'4>,tU锅%[eӪ3f:Ӗ-LRɣ&D? 45`v-OVx^NX\y'+5lT`ws8*iI$qJ?V37 s 9&ҢYH8N $MDcb8{0/!8odu0~׾gb9eb5ѩgsLTI5z8HVLk. F S6<[ T endstream endobj 180 0 obj 494 endobj 181 0 obj << /Type /XObject /Name /R181 /Subtype /Image /Length 182 0 R /ColorSpace /DeviceGray/Width 58/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x˱ @gapڋ#=LEQEQEQEhtHA endstream endobj 182 0 obj 51 endobj 183 0 obj << /Type /XObject /Name /R183 /Subtype /Image /Length 184 0 R /ColorSpace /DeviceGray/Width 69/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0PybLu ܯ6l ]ʃ1OP(OAj2䂟{B`C9[k#e.]27)& VE-+3ac)^A Ӧ8)[oTB~Ö́Ĺ9ܠo/'v9[&*GQ`"g\VP%̵J-혉JRkb$?PI!:ROTB*(T҈,Sg˕w Wˆ(*Sv6$h^Ff¶ttI endstream endobj 184 0 obj 265 endobj 185 0 obj << /Type /XObject /Name /R185 /Subtype /Image /Length 186 0 R /ColorSpace /DeviceGray/Width 62/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x e]pfpd=!W\ {᝿;{>co( XnPY~EǸJ~۩[_2z/qW}z%U";.׍pckXvL8F,> >> stream xK PY'Θbt<-Gз Pq:MYI0k%6MO!f0lfDŽSQ{WsV/> >> stream xK Pٌ&Nl2U5~YחH n3-ETjSTlI) eĶ=m-e֖ -D("EV4[&kh ]iT?ڰå}t,l,M?,geޝvwq|eef \9.lv/{xQ魼f쩰e?ӌH endstream endobj 190 0 obj 254 endobj 191 0 obj << /Type /XObject /Name /R191 /Subtype /Image /Length 192 0 R /ColorSpace /DeviceGray/Width 68/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0PG,pg8& +y=X\( 硐dB%~fg;'@9LU [!uhsK #nP1>AAdLJ@Yi 퐽20\AjBoĖhj21LUEBf:125r\gDQ:9 y?lػ/frJiUJ4Q7N#ii95o0eEjW3r=l(l `= endstream endobj 192 0 obj 257 endobj 193 0 obj << /Type /XObject /Name /R193 /Subtype /Image /Length 194 0 R /ColorSpace /DeviceGray/Width 105/Height 111/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xr Ng%hI'7d\5й #HFib@KJ8F.%5T +KEG:$KZW,ًă^o / MĆT=Rڥ[xH= 5A7qKmev)%>D#!? #&v7T@ ݮ O"@@?¤)FPLwwΒeg!g ԓkIߔ}I^ ;/v}HG:ґ%>Ē%LNR:( 8KZ'R\fԔҕ/DsHB(V*T H@{)xנ:l-(tj`@xJ(5R>a5?{}=j,(ED8$ P+E )z'!G߆-Ʒ>i3^G2k,(N#$At Ln endstream endobj 194 0 obj 483 endobj 195 0 obj << /Type /XObject /Name /R195 /Subtype /Image /Length 196 0 R /ColorSpace /DeviceGray/Width 82/Height 80/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xI Qr(@#8-j$uӗd7ɬ;Ldb#$X\M !1q6dT̷r4JvI+D1"X$܎~Oˤ8OAH"E)RH"Ey9 endstream endobj 196 0 obj 166 endobj 197 0 obj << /Type /XObject /Name /R197 /Subtype /Image /Length 198 0 R /ColorSpace /DeviceGray/Width 90/Height 82/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0 P ,t,ζh$ҡxQ’ f&VVJC&xG\hDKME7M#>Tcɬ],u";%}hw*90^ҷu>ʤ (Jd,IU ^H.v$ =!;f"l&&sZ1Olo/>BNvT; M&` r@hQ endstream endobj 198 0 obj 329 endobj 199 0 obj << /Type /XObject /Name /R199 /Subtype /Image /Length 200 0 R /ColorSpace /DeviceGray/Width 83/Height 82/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK (vd$j7;a'frQsW+& WF M!1wc0]0/ ḛ6JTݘ,4U<cFQjU曀r- (71)b2vw`<(b2B&kYԟ2gorh rAiLU2E5Wm1^S\wvxVWjjZ%U ]p7XtÚ@t2dI endstream endobj 200 0 obj 369 endobj 201 0 obj << /Type /XObject /Name /R201 /Subtype /Image /Length 202 0 R /ColorSpace /DeviceGray/Width 70/Height 70/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xr D?&AYXtniޒYet!Qo0zF`Cc`ǰ"'p5 ą LDżl]Z}+ iߵHi oa^jg@ bp1:bp%sP>~j7ڶ]uN0w8=9KJSG7a`pW 1wm)|Ka s${h|I%Y4?0Pm)ePZC[X?'4>,tU锅%[eӪ3f:Ӗ-LRɣ&D? 45`v-OVx^NX\y'+5lT`ws8*iI$qJ?V37 s 9&ҢYH8N $MDcb8{0/!8odu0~׾gb9eb5ѩgsLTI5z8HVLk. F S6<[ T endstream endobj 202 0 obj 494 endobj 203 0 obj << /Type /XObject /Name /R203 /Subtype /Image /Length 204 0 R /ColorSpace /DeviceGray/Width 59/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK PY'Θbt<-Gз Pq:MYI0k%6MO!f0lfDŽSQ{WsV/> >> stream x0PG,pg8& +y=X\( 硐dB%~fg;'@9LU [!uhsK #nP1>AAdLJ@Yi 퐽20\AjBoĖhj21LUEBf:125r\gDQ:9 y?lػ/frJiUJ4Q7N#ii95o0eEjW3r=l(l `= endstream endobj 206 0 obj 257 endobj 207 0 obj << /Type /XObject /Name /R207 /Subtype /Image /Length 208 0 R /ColorSpace /DeviceGray/Width 57/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0 P=0im6!!Pw#٣O:C-µ<ظR.?WLᇼe_`M8&IL_TQR#5UPr'RGb]$T/&UI)[M$u/mMǑ, 5hW2 H3= ZbCW^u([@99a9Cs?~ة2d> :i'ni=qĵRYj iB endstream endobj 208 0 obj 309 endobj 209 0 obj << /Type /XObject /Name /R209 /Subtype /Image /Length 210 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 210 0 obj 267 endobj 211 0 obj << /Type /XObject /Name /R211 /Subtype /Image /Length 212 0 R /ColorSpace /DeviceGray/Width 58/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x˱ @gapڋ#=LEQEQEQEhtHA endstream endobj 212 0 obj 51 endobj 213 0 obj << /Type /XObject /Name /R213 /Subtype /Image /Length 214 0 R /ColorSpace /DeviceGray/Width 69/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x MAbiSɤ!ttYG&}Rb(~!lQSJlQ EMշ1ESXJ-ݡ%bT(ŨH`JhR3S%[i3N#0z\AWNWV*쳆&%r8ҦGE}/~_SUQ>(b?Pf&E37)i endstream endobj 214 0 obj 270 endobj 215 0 obj << /Type /XObject /Name /R215 /Subtype /Image /Length 216 0 R /ColorSpace /DeviceGray/Width 69/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x MAbiSɤ!ttYG&}Rb(~!lQSJlQ EMշ1ESXJ-ݡ%bT(ŨH`JhR3S%[i3N#0z\AWNWV*쳆&%r8ҦGE}/~_SUQ>(b?Pf&E37)i endstream endobj 216 0 obj 270 endobj 217 0 obj << /Type /XObject /Name /R217 /Subtype /Image /Length 218 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 218 0 obj 267 endobj 219 0 obj << /Type /XObject /Name /R219 /Subtype /Image /Length 220 0 R /ColorSpace /DeviceGray/Width 68/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0PG,pg8& +y=X\( 硐dB%~fg;'@9LU [!uhsK #nP1>AAdLJ@Yi 퐽20\AjBoĖhj21LUEBf:125r\gDQ:9 y?lػ/frJiUJ4Q7N#ii95o0eEjW3r=l(l `= endstream endobj 220 0 obj 257 endobj 221 0 obj << /Type /XObject /Name /R221 /Subtype /Image /Length 222 0 R /ColorSpace /DeviceGray/Width 69/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0PybLu ܯ6l ]ʃ1OP(OAj2䂟{B`C9[k#e.]27)& VE-+3ac)^A Ӧ8)[oTB~Ö́Ĺ9ܠo/'v9[&*GQ`"g\VP%̵J-혉JRkb$?PI!:ROTB*(T҈,Sg˕w Wˆ(*Sv6$h^Ff¶ttI endstream endobj 222 0 obj 265 endobj 223 0 obj << /Type /XObject /Name /R223 /Subtype /Image /Length 224 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 224 0 obj 267 endobj 225 0 obj << /Type /XObject /Name /R225 /Subtype /Image /Length 226 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 226 0 obj 267 endobj 227 0 obj << /Type /XObject /Name /R227 /Subtype /Image /Length 228 0 R /ColorSpace /DeviceGray/Width 56/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x! GP2oYƾe Y`W@A7X. endstream endobj 228 0 obj 55 endobj 229 0 obj << /Type /XObject /Name /R229 /Subtype /Image /Length 230 0 R /ColorSpace /DeviceGray/Width 59/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK PY'Θbt<-Gз Pq:MYI0k%6MO!f0lfDŽSQ{WsV/> >> stream x1ƘhPlu_\ᄽc|CTVK b3M](J50ndU"Pڽ$7[Us.*5;fanW~7ržV@Β }.(S_0K+sLiEJ9o0ƝV45Eپ[RG1E'ѣ f _!zRzH+s܃FtD{GoD+M+.v&+(fA*٣<H endstream endobj 232 0 obj 287 endobj 233 0 obj << /Type /XObject /Name /R233 /Subtype /Image /Length 234 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 234 0 obj 267 endobj 235 0 obj << /Type /XObject /Name /R235 /Subtype /Image /Length 236 0 R /ColorSpace /DeviceGray/Width 69/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x MAbiSɤ!ttYG&}Rb(~!lQSJlQ EMշ1ESXJ-ݡ%bT(ŨH`JhR3S%[i3N#0z\AWNWV*쳆&%r8ҦGE}/~_SUQ>(b?Pf&E37)i endstream endobj 236 0 obj 270 endobj 237 0 obj << /Type /XObject /Name /R237 /Subtype /Image /Length 238 0 R /ColorSpace /DeviceGray/Width 67/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0`yD@gbLkf:7&lOTE1s3R0FI eB'tVlXD;x-PB#XD Dƚr:@a'2쬂`Fx^tgs͍1cOcb,cc|12Dh;l!{1Θ=L]ew6PѨ!,D|#-a?!1+#Y[{ >;]ո٬co:A\VtGUIT̴o$й2w0 endstream endobj 238 0 obj 282 endobj 239 0 obj << /Type /XObject /Name /R239 /Subtype /Image /Length 240 0 R /ColorSpace /DeviceGray/Width 69/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x1ƘhPlu_\ᄽc|CTVK b3M](J50ndU"Pڽ$7[Us.*5;fanW~7ržV@Β }.(S_0K+sLiEJ9o0ƝV45Eپ[RG1E'ѣ f _!zRzH+s܃FtD{GoD+M+.v&+(fA*٣<H endstream endobj 240 0 obj 287 endobj 241 0 obj << /Type /XObject /Name /R241 /Subtype /Image /Length 242 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 242 0 obj 267 endobj 243 0 obj << /Type /XObject /Name /R243 /Subtype /Image /Length 244 0 R /ColorSpace /DeviceGray/Width 69/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0PybLu ܯ6l ]ʃ1OP(OAj2䂟{B`C9[k#e.]27)& VE-+3ac)^A Ӧ8)[oTB~Ö́Ĺ9ܠo/'v9[&*GQ`"g\VP%̵J-혉JRkb$?PI!:ROTB*(T҈,Sg˕w Wˆ(*Sv6$h^Ff¶ttI endstream endobj 244 0 obj 265 endobj 245 0 obj << /Type /XObject /Name /R245 /Subtype /Image /Length 246 0 R /ColorSpace /DeviceGray/Width 70/Height 70/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xr D?&AYXtniޒYet!Qo0zF`Cc`ǰ"'p5 ą LDżl]Z}+ iߵHi oa^jg@ bp1:bp%sP>~j7ڶ]uN0w8=9KJSG7a`pW 1wm)|Ka s${h|I%Y4?0Pm)ePZC[X?'4>,tU锅%[eӪ3f:Ӗ-LRɣ&D? 45`v-OVx^NX\y'+5lT`ws8*iI$qJ?V37 s 9&ҢYH8N $MDcb8{0/!8odu0~׾gb9eb5ѩgsLTI5z8HVLk. F S6<[ T endstream endobj 246 0 obj 494 endobj 247 0 obj << /Type /XObject /Name /R247 /Subtype /Image /Length 248 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 248 0 obj 267 endobj 249 0 obj << /Type /XObject /Name /R249 /Subtype /Image /Length 250 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 250 0 obj 267 endobj 251 0 obj << /Type /XObject /Name /R251 /Subtype /Image /Length 252 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 252 0 obj 267 endobj 253 0 obj << /Type /XObject /Name /R253 /Subtype /Image /Length 254 0 R /ColorSpace /DeviceGray/Width 69/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0PybLu ܯ6l ]ʃ1OP(OAj2䂟{B`C9[k#e.]27)& VE-+3ac)^A Ӧ8)[oTB~Ö́Ĺ9ܠo/'v9[&*GQ`"g\VP%̵J-혉JRkb$?PI!:ROTB*(T҈,Sg˕w Wˆ(*Sv6$h^Ff¶ttI endstream endobj 254 0 obj 265 endobj 255 0 obj << /Type /XObject /Name /R255 /Subtype /Image /Length 256 0 R /ColorSpace /DeviceGray/Width 66/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0?z;LS`"U&zlY׺.,ګNVXG^w+|J6avoA0c> W\4m"J!]U#zD@أ BJeM`b0 ҅ϩ ]DD$c;EPQ! ET)$ ,}2䣄1x Q!b!7hhH endstream endobj 256 0 obj 221 endobj 257 0 obj << /Type /XObject /Name /R257 /Subtype /Image /Length 258 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 258 0 obj 267 endobj 259 0 obj << /Type /XObject /Name /R259 /Subtype /Image /Length 260 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 260 0 obj 267 endobj 261 0 obj << /Type /XObject /Name /R261 /Subtype /Image /Length 262 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 262 0 obj 267 endobj 263 0 obj << /Type /XObject /Name /R263 /Subtype /Image /Length 264 0 R /ColorSpace /DeviceGray/Width 70/Height 70/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xr D?&AYXtniޒYet!Qo0zF`Cc`ǰ"'p5 ą LDżl]Z}+ iߵHi oa^jg@ bp1:bp%sP>~j7ڶ]uN0w8=9KJSG7a`pW 1wm)|Ka s${h|I%Y4?0Pm)ePZC[X?'4>,tU锅%[eӪ3f:Ӗ-LRɣ&D? 45`v-OVx^NX\y'+5lT`ws8*iI$qJ?V37 s 9&ҢYH8N $MDcb8{0/!8odu0~׾gb9eb5ѩgsLTI5z8HVLk. F S6<[ T endstream endobj 264 0 obj 494 endobj 265 0 obj << /Type /XObject /Name /R265 /Subtype /Image /Length 266 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 266 0 obj 267 endobj 267 0 obj << /Type /XObject /Name /R267 /Subtype /Image /Length 268 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 268 0 obj 267 endobj 269 0 obj << /Type /XObject /Name /R269 /Subtype /Image /Length 270 0 R /ColorSpace /DeviceGray/Width 69/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x MAbiSɤ!ttYG&}Rb(~!lQSJlQ EMշ1ESXJ-ݡ%bT(ŨH`JhR3S%[i3N#0z\AWNWV*쳆&%r8ҦGE}/~_SUQ>(b?Pf&E37)i endstream endobj 270 0 obj 270 endobj 271 0 obj << /Type /XObject /Name /R271 /Subtype /Image /Length 272 0 R /ColorSpace /DeviceGray/Width 68/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0PG,pg8& +y=X\( 硐dB%~fg;'@9LU [!uhsK #nP1>AAdLJ@Yi 퐽20\AjBoĖhj21LUEBf:125r\gDQ:9 y?lػ/frJiUJ4Q7N#ii95o0eEjW3r=l(l `= endstream endobj 272 0 obj 257 endobj 273 0 obj << /Type /XObject /Name /R273 /Subtype /Image /Length 274 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 274 0 obj 267 endobj 275 0 obj << /Type /XObject /Name /R275 /Subtype /Image /Length 276 0 R /ColorSpace /DeviceGray/Width 59/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK PY'Θbt<-Gз Pq:MYI0k%6MO!f0lfDŽSQ{WsV/> >> stream x MAbiSɤ!ttYG&}Rb(~!lQSJlQ EMշ1ESXJ-ݡ%bT(ŨH`JhR3S%[i3N#0z\AWNWV*쳆&%r8ҦGE}/~_SUQ>(b?Pf&E37)i endstream endobj 278 0 obj 270 endobj 279 0 obj << /Type /XObject /Name /R279 /Subtype /Image /Length 280 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 280 0 obj 267 endobj 281 0 obj << /Type /XObject /Name /R281 /Subtype /Image /Length 282 0 R /ColorSpace /DeviceGray/Width 70/Height 70/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xr D?&AYXtniޒYet!Qo0zF`Cc`ǰ"'p5 ą LDżl]Z}+ iߵHi oa^jg@ bp1:bp%sP>~j7ڶ]uN0w8=9KJSG7a`pW 1wm)|Ka s${h|I%Y4?0Pm)ePZC[X?'4>,tU锅%[eӪ3f:Ӗ-LRɣ&D? 45`v-OVx^NX\y'+5lT`ws8*iI$qJ?V37 s 9&ҢYH8N $MDcb8{0/!8odu0~׾gb9eb5ѩgsLTI5z8HVLk. F S6<[ T endstream endobj 282 0 obj 494 endobj 283 0 obj << /Type /XObject /Name /R283 /Subtype /Image /Length 284 0 R /ColorSpace /DeviceGray/Width 58/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x˱ @gapڋ#=LEQEQEQEhtHA endstream endobj 284 0 obj 51 endobj 285 0 obj << /Type /XObject /Name /R285 /Subtype /Image /Length 286 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 286 0 obj 267 endobj 287 0 obj << /Type /XObject /Name /R287 /Subtype /Image /Length 288 0 R /ColorSpace /DeviceGray/Width 62/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x e]pfpd=!W\ {᝿;{>co( XnPY~EǸJ~۩[_2z/qW}z%U";.׍pckXvL8F,> >> stream xr D?&AYXtniޒYet!Qo0zF`Cc`ǰ"'p5 ą LDżl]Z}+ iߵHi oa^jg@ bp1:bp%sP>~j7ڶ]uN0w8=9KJSG7a`pW 1wm)|Ka s${h|I%Y4?0Pm)ePZC[X?'4>,tU锅%[eӪ3f:Ӗ-LRɣ&D? 45`v-OVx^NX\y'+5lT`ws8*iI$qJ?V37 s 9&ҢYH8N $MDcb8{0/!8odu0~׾gb9eb5ѩgsLTI5z8HVLk. F S6<[ T endstream endobj 290 0 obj 494 endobj 291 0 obj << /Type /XObject /Name /R291 /Subtype /Image /Length 292 0 R /ColorSpace /DeviceGray/Width 62/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x e]pfpd=!W\ {᝿;{>co( XnPY~EǸJ~۩[_2z/qW}z%U";.׍pckXvL8F,> >> stream xA PrCU+ If*Ny9sE+YzgeЃ r0!VB^U>e 2m *QT\#:5PN|>z\)4s9a: !aϖҥ  [TlW 49¦+M#BpL&lQ@O_ػZ#dRij˔P|hܴ+WV$$G(ɟG Mvֽ 9f,PD^ӕ  'S:T$š $5"]a!5!W()ʿ( PPU@ a˿/`T! PoKV endstream endobj 294 0 obj 395 endobj 295 0 obj << /Type /XObject /Name /R295 /Subtype /Image /Length 296 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 296 0 obj 267 endobj 297 0 obj << /Type /XObject /Name /R297 /Subtype /Image /Length 298 0 R /ColorSpace /DeviceGray/Width 59/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK PY'Θbt<-Gз Pq:MYI0k%6MO!f0lfDŽSQ{WsV/> >> stream x0 P=0im6!!Pw#٣O:C-µ<ظR.?WLᇼe_`M8&IL_TQR#5UPr'RGb]$T/&UI)[M$u/mMǑ, 5hW2 H3= ZbCW^u([@99a9Cs?~ة2d> :i'ni=qĵRYj iB endstream endobj 300 0 obj 309 endobj 301 0 obj << /Type /XObject /Name /R301 /Subtype /Image /Length 302 0 R /ColorSpace /DeviceGray/Width 68/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0PG,pg8& +y=X\( 硐dB%~fg;'@9LU [!uhsK #nP1>AAdLJ@Yi 퐽20\AjBoĖhj21LUEBf:125r\gDQ:9 y?lػ/frJiUJ4Q7N#ii95o0eEjW3r=l(l `= endstream endobj 302 0 obj 257 endobj 303 0 obj << /Type /XObject /Name /R303 /Subtype /Image /Length 304 0 R /ColorSpace /DeviceGray/Width 70/Height 70/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xr D?&AYXtniޒYet!Qo0zF`Cc`ǰ"'p5 ą LDżl]Z}+ iߵHi oa^jg@ bp1:bp%sP>~j7ڶ]uN0w8=9KJSG7a`pW 1wm)|Ka s${h|I%Y4?0Pm)ePZC[X?'4>,tU锅%[eӪ3f:Ӗ-LRɣ&D? 45`v-OVx^NX\y'+5lT`ws8*iI$qJ?V37 s 9&ҢYH8N $MDcb8{0/!8odu0~׾gb9eb5ѩgsLTI5z8HVLk. F S6<[ T endstream endobj 304 0 obj 494 endobj 305 0 obj << /Type /XObject /Name /R305 /Subtype /Image /Length 306 0 R /ColorSpace /DeviceGray/Width 59/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK Pٌ&Nl2U5~YחH n3-ETjSTlI) eĶ=m-e֖ -D("EV4[&kh ]iT?ڰå}t,l,M?,geޝvwq|eef \9.lv/{xQ魼f쩰e?ӌH endstream endobj 306 0 obj 254 endobj 307 0 obj << /Type /XObject /Name /R307 /Subtype /Image /Length 308 0 R /ColorSpace /DeviceGray/Width 57/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0 P=0im6!!Pw#٣O:C-µ<ظR.?WLᇼe_`M8&IL_TQR#5UPr'RGb]$T/&UI)[M$u/mMǑ, 5hW2 H3= ZbCW^u([@99a9Cs?~ة2d> :i'ni=qĵRYj iB endstream endobj 308 0 obj 309 endobj 309 0 obj << /Type /XObject /Name /R309 /Subtype /Image /Length 310 0 R /ColorSpace /DeviceGray/Width 56/Height 73/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xA DQVchi C\iHShB[/S wi? Ҧ/Ʒ =J!p.RC%0IllCTz=DpɎ( ]mCG`ys endstream endobj 310 0 obj 135 endobj 311 0 obj << /Type /XObject /Name /R311 /Subtype /Image /Length 312 0 R /ColorSpace /DeviceGray/Width 56/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x! GP2oYƾe Y`W@A7X. endstream endobj 312 0 obj 55 endobj 313 0 obj << /Type /XObject /Name /R313 /Subtype /Image /Length 314 0 R /ColorSpace /DeviceGray/Width 57/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0 P=0im6!!Pw#٣O:C-µ<ظR.?WLᇼe_`M8&IL_TQR#5UPr'RGb]$T/&UI)[M$u/mMǑ, 5hW2 H3= ZbCW^u([@99a9Cs?~ة2d> :i'ni=qĵRYj iB endstream endobj 314 0 obj 309 endobj 315 0 obj << /Type /XObject /Name /R315 /Subtype /Image /Length 316 0 R /ColorSpace /DeviceGray/Width 57/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0 P=0im6!!Pw#٣O:C-µ<ظR.?WLᇼe_`M8&IL_TQR#5UPr'RGb]$T/&UI)[M$u/mMǑ, 5hW2 H3= ZbCW^u([@99a9Cs?~ة2d> :i'ni=qĵRYj iB endstream endobj 316 0 obj 309 endobj 317 0 obj << /Type /XObject /Name /R317 /Subtype /Image /Length 318 0 R /ColorSpace /DeviceGray/Width 69/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x MAbiSɤ!ttYG&}Rb(~!lQSJlQ EMշ1ESXJ-ݡ%bT(ŨH`JhR3S%[i3N#0z\AWNWV*쳆&%r8ҦGE}/~_SUQ>(b?Pf&E37)i endstream endobj 318 0 obj 270 endobj 319 0 obj << /Type /XObject /Name /R319 /Subtype /Image /Length 320 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 320 0 obj 267 endobj 321 0 obj << /Type /XObject /Name /R321 /Subtype /Image /Length 322 0 R /ColorSpace /DeviceGray/Width 57/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0 P=0im6!!Pw#٣O:C-µ<ظR.?WLᇼe_`M8&IL_TQR#5UPr'RGb]$T/&UI)[M$u/mMǑ, 5hW2 H3= ZbCW^u([@99a9Cs?~ة2d> :i'ni=qĵRYj iB endstream endobj 322 0 obj 309 endobj 323 0 obj << /Type /XObject /Name /R323 /Subtype /Image /Length 324 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 324 0 obj 267 endobj 325 0 obj << /Type /XObject /Name /R325 /Subtype /Image /Length 326 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 326 0 obj 267 endobj 327 0 obj << /Type /XObject /Name /R327 /Subtype /Image /Length 328 0 R /ColorSpace /DeviceGray/Width 70/Height 70/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xr D?&AYXtniޒYet!Qo0zF`Cc`ǰ"'p5 ą LDżl]Z}+ iߵHi oa^jg@ bp1:bp%sP>~j7ڶ]uN0w8=9KJSG7a`pW 1wm)|Ka s${h|I%Y4?0Pm)ePZC[X?'4>,tU锅%[eӪ3f:Ӗ-LRɣ&D? 45`v-OVx^NX\y'+5lT`ws8*iI$qJ?V37 s 9&ҢYH8N $MDcb8{0/!8odu0~׾gb9eb5ѩgsLTI5z8HVLk. F S6<[ T endstream endobj 328 0 obj 494 endobj 329 0 obj << /Type /XObject /Name /R329 /Subtype /Image /Length 330 0 R /ColorSpace /DeviceGray/Width 62/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x e]pfpd=!W\ {᝿;{>co( XnPY~EǸJ~۩[_2z/qW}z%U";.׍pckXvL8F,> >> stream x˱ @gapڋ#=LEQEQEQEhtHA endstream endobj 332 0 obj 51 endobj 333 0 obj << /Type /XObject /Name /R333 /Subtype /Image /Length 334 0 R /ColorSpace /DeviceGray/Width 105/Height 111/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xr Ng%hI'7d\5й #HFib@KJ8F.%5T +KEG:$KZW,ًă^o / MĆT=Rڥ[xH= 5A7qKmev)%>D#!? #&v7T@ ݮ O"@@?¤)FPLwwΒeg!g ԓkIߔ}I^ ;/v}HG:ґ%>Ē%LNR:( 8KZ'R\fԔҕ/DsHB(V*T H@{)xנ:l-(tj`@xJ(5R>a5?{}=j,(ED8$ P+E )z'!G߆-Ʒ>i3^G2k,(N#$At Ln endstream endobj 334 0 obj 483 endobj 335 0 obj << /Type /XObject /Name /R335 /Subtype /Image /Length 336 0 R /ColorSpace /DeviceGray/Width 90/Height 82/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x e1*3D(=,ד%H{X׷ L\]G}ÍaGB0'MQy()6R0ՆNVkV=xjNBЕBMmf׹hY"fzۢ)@ύɆoM'O[P\sŎOzы^?7S0ŹiL; $#} ,ZT*D#Zb,|"˵Y[*2pJ}6k NtALQt]hLQ/|E endstream endobj 336 0 obj 303 endobj 337 0 obj << /Type /XObject /Name /R337 /Subtype /Image /Length 338 0 R /ColorSpace /DeviceGray/Width 82/Height 80/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xI Qr(@#8-j$uӗd7ɬ;Ldb#$X\M !1q6dT̷r4JvI+D1"X$܎~Oˤ8OAH"E)RH"Ey9 endstream endobj 338 0 obj 166 endobj 339 0 obj << /Type /XObject /Name /R339 /Subtype /Image /Length 340 0 R /ColorSpace /DeviceGray/Width 92/Height 78/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 nw<@"gF^4> ~q:{ţQVgh^ٻ}:gAcg 眿;]iՅp鴆Y]2 lEu1dTϺf˙⸪L\> >> stream xK0 P|CD~N<3Z`?$$=aE*cψūkg wiLTQQ* AXqy::%wZK'kx5A"Wb7Ʌm@/Aմd N{_bF6m @U^!pcntq]ta?J}:!4|N\:պ/lhgOǤz?ܝ;~ k.#kC\C1"fb$3Se&gp[A~: !xXH]{JhG endstream endobj 342 0 obj 316 endobj 343 0 obj << /Type /XObject /Name /R343 /Subtype /Image /Length 344 0 R /ColorSpace /DeviceGray/Width 82/Height 80/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xI Qr(@#8-j$uӗd7ɬ;Ldb#$X\M !1q6dT̷r4JvI+D1"X$܎~Oˤ8OAH"E)RH"Ey9 endstream endobj 344 0 obj 166 endobj 345 0 obj << /Type /XObject /Name /R345 /Subtype /Image /Length 346 0 R /ColorSpace /DeviceGray/Width 59/Height 109/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x 0 ?Z ղ-C76bc(]`(&\dEl-fcq\0x@AʖHR)D 6-dgKjkklmmmoaov[[[[[[ۈdOɷʁ2qѭ+_j8 1*Vԉm*-_oi endstream endobj 346 0 obj 168 endobj 347 0 obj << /Type /XObject /Name /R347 /Subtype /Image /Length 348 0 R /ColorSpace /DeviceGray/Width 90/Height 82/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x e1*3D(=,ד%H{X׷ L\]G}ÍaGB0'MQy()6R0ՆNVkV=xjNBЕBMmf׹hY"fzۢ)@ύɆoM'O[P\sŎOzы^?7S0ŹiL; $#} ,ZT*D#Zb,|"˵Y[*2pJ}6k NtALQt]hLQ/|E endstream endobj 348 0 obj 303 endobj 349 0 obj << /Type /XObject /Name /R349 /Subtype /Image /Length 350 0 R /ColorSpace /DeviceGray/Width 82/Height 80/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xI Qr(@#8-j$uӗd7ɬ;Ldb#$X\M !1q6dT̷r4JvI+D1"X$܎~Oˤ8OAH"E)RH"Ey9 endstream endobj 350 0 obj 166 endobj 351 0 obj << /Type /XObject /Name /R351 /Subtype /Image /Length 352 0 R /ColorSpace /DeviceGray/Width 100/Height 107/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xm 0 huraWGKrak86Ƚdt:cR2h"BΊ 9)2萃"Dv%HZ#:>#+oTH { &vj9~LQ#ՙS6@3 G% ҞA,D%ԷMˣR s? HOd7&A7@> >> stream x >t&!̨OKmp WLLԹ IPdx`[rGpoWrk}׮G+O_d/4핳:U$ NOL+I2 8=-1]hP/hG4zqn-g%>+ڐYGaړM=m}|=L ל'B26/i惪VC_è8KZI#q4rh0 _k4h1@TTtrh~{3}>OT/NGdu!FkĬ Iʪ+hA6kZ,N:7-W{)[{LzR endstream endobj 354 0 obj 373 endobj 355 0 obj << /Type /XObject /Name /R355 /Subtype /Image /Length 356 0 R /ColorSpace /DeviceGray/Width 82/Height 80/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xI Qr(@#8-j$uӗd7ɬ;Ldb#$X\M !1q6dT̷r4JvI+D1"X$܎~Oˤ8OAH"E)RH"Ey9 endstream endobj 356 0 obj 166 endobj 357 0 obj << /Type /XObject /Name /R357 /Subtype /Image /Length 358 0 R /ColorSpace /DeviceGray/Width 86/Height 109/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x@ P?K@TڙIfx= 펓xóìYf͚5k}[~Y@ H6R86WI ,E[5f5ucKnV}j/[j'[f1 Q\Fؗ^\&TѴz%_f|2eZ/=hcTuf͚ϮUGn;OP\0hhM&jdUdJdwkag KqYq> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 360 0 obj 267 endobj 361 0 obj << /Type /XObject /Name /R361 /Subtype /Image /Length 362 0 R /ColorSpace /DeviceGray/Width 57/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0 P=0im6!!Pw#٣O:C-µ<ظR.?WLᇼe_`M8&IL_TQR#5UPr'RGb]$T/&UI)[M$u/mMǑ, 5hW2 H3= ZbCW^u([@99a9Cs?~ة2d> :i'ni=qĵRYj iB endstream endobj 362 0 obj 309 endobj 363 0 obj << /Type /XObject /Name /R363 /Subtype /Image /Length 364 0 R /ColorSpace /DeviceGray/Width 58/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x˱ @gapڋ#=LEQEQEQEhtHA endstream endobj 364 0 obj 51 endobj 365 0 obj << /Type /XObject /Name /R365 /Subtype /Image /Length 366 0 R /ColorSpace /DeviceGray/Width 56/Height 73/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xA DQVchi C\iHShB[/S wi? Ҧ/Ʒ =J!p.RC%0IllCTz=DpɎ( ]mCG`ys endstream endobj 366 0 obj 135 endobj 367 0 obj << /Type /XObject /Name /R367 /Subtype /Image /Length 368 0 R /ColorSpace /DeviceGray/Width 57/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0 P=0im6!!Pw#٣O:C-µ<ظR.?WLᇼe_`M8&IL_TQR#5UPr'RGb]$T/&UI)[M$u/mMǑ, 5hW2 H3= ZbCW^u([@99a9Cs?~ة2d> :i'ni=qĵRYj iB endstream endobj 368 0 obj 309 endobj 369 0 obj << /Type /XObject /Name /R369 /Subtype /Image /Length 370 0 R /ColorSpace /DeviceGray/Width 69/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0PybLu ܯ6l ]ʃ1OP(OAj2䂟{B`C9[k#e.]27)& VE-+3ac)^A Ӧ8)[oTB~Ö́Ĺ9ܠo/'v9[&*GQ`"g\VP%̵J-혉JRkb$?PI!:ROTB*(T҈,Sg˕w Wˆ(*Sv6$h^Ff¶ttI endstream endobj 370 0 obj 265 endobj 371 0 obj << /Type /XObject /Name /R371 /Subtype /Image /Length 372 0 R /ColorSpace /DeviceGray/Width 62/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x e]pfpd=!W\ {᝿;{>co( XnPY~EǸJ~۩[_2z/qW}z%U";.׍pckXvL8F,> >> stream xQ E?Y3p9 a^O4[=B*Eap>ʊUd^UCIsPͪ 5&U4N(uS.:HmjPm}Drըjo6{'v:e(juS-h\F,k52~E;ZG|ǨH> cTS}o;cG՗.ϸBN/:u3`κF]Oԕݡ?MIO^S5Xz+}T=~dwR/A_\n^pxfvJWn*,4b*FӪFrŐ*XUvU#BVWI"[%Gk endstream endobj 374 0 obj 377 endobj 375 0 obj << /Type /XObject /Name /R375 /Subtype /Image /Length 376 0 R /ColorSpace /DeviceGray/Width 86/Height 109/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0|Si%2e8OZزެc1q[l[lɮ>Vڠi=NIP=F g*]Ȓ˫ǻCُ;}9nnan^n99;$+f±f ͞kժ ի!u۪ ƃX+[l``sI'(X * Ap($,\j6?US%Da{{Pr-*fi1K/u{Yf'(v ơ-+i#Q^ endstream endobj 376 0 obj 301 endobj 377 0 obj << /Type /XObject /Name /R377 /Subtype /Image /Length 378 0 R /ColorSpace /DeviceGray/Width 90/Height 82/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x e1*3D(=,ד%H{X׷ L\]G}ÍaGB0'MQy()6R0ՆNVkV=xjNBЕBMmf׹hY"fzۢ)@ύɆoM'O[P\sŎOzы^?7S0ŹiL; $#} ,ZT*D#Zb,|"˵Y[*2pJ}6k NtALQt]hLQ/|E endstream endobj 378 0 obj 303 endobj 379 0 obj << /Type /XObject /Name /R379 /Subtype /Image /Length 380 0 R /ColorSpace /DeviceGray/Width 82/Height 80/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x 0 DQ|P+id)Q&)Ey*jL4iҤI&M4iҤɉd\b2a 5y3و{2 ScS\ a endstream endobj 380 0 obj 171 endobj 381 0 obj << /Type /XObject /Name /R381 /Subtype /Image /Length 382 0 R /ColorSpace /DeviceGray/Width 59/Height 109/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x 0 ?Z ղ-C76bc(]`(&\dEl-fcq\0x@AʖHR)D 6-dgKjkklmmmoaov[[[[[[ۈdOɷʁ2qѭ+_j8 1*Vԉm*-_oi endstream endobj 382 0 obj 168 endobj 383 0 obj << /Type /XObject /Name /R383 /Subtype /Image /Length 384 0 R /ColorSpace /DeviceGray/Width 59/Height 109/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x 0 ?Z ղ-C76bc(]`(&\dEl-fcq\0x@AʖHR)D 6-dgKjkklmmmoaov[[[[[[ۈdOɷʁ2qѭ+_j8 1*Vԉm*-_oi endstream endobj 384 0 obj 168 endobj 385 0 obj << /Type /XObject /Name /R385 /Subtype /Image /Length 386 0 R /ColorSpace /DeviceGray/Width 82/Height 107/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x] ?2EDg[VE $$$$$$$Qj י%j~klGJpoZ#nCzb65ٔd@\MEDFz\>dw^ܛz]gUӎrl=du7{%:$$$$$$$$$$$$$3ᬯ3 endstream endobj 386 0 obj 175 endobj 387 0 obj << /Type /XObject /Name /R387 /Subtype /Image /Length 388 0 R /ColorSpace /DeviceGray/Width 90/Height 82/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 P|CD~N<3Z`?$$=aE*cψūkg wiLTQQ* AXqy::%wZK'kx5A"Wb7Ʌm@/Aմd N{_bF6m @U^!pcntq]ta?J}:!4|N\:պ/lhgOǤz?ܝ;~ k.#kC\C1"fb$3Se&gp[A~: !xXH]{JhG endstream endobj 388 0 obj 316 endobj 389 0 obj << /Type /XObject /Name /R389 /Subtype /Image /Length 390 0 R /ColorSpace /DeviceGray/Width 103/Height 107/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x A+8fG+TipW8p8> >> stream x e1*3D(=,ד%H{X׷ L\]G}ÍaGB0'MQy()6R0ՆNVkV=xjNBЕBMmf׹hY"fzۢ)@ύɆoM'O[P\sŎOzы^?7S0ŹiL; $#} ,ZT*D#Zb,|"˵Y[*2pJ}6k NtALQt]hLQ/|E endstream endobj 392 0 obj 303 endobj 393 0 obj << /Type /XObject /Name /R393 /Subtype /Image /Length 394 0 R /ColorSpace /DeviceGray/Width 83/Height 82/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK (vd$j7;a'frQsW+& WF M!1wc0]0/ ḛ6JTݘ,4U<cFQjU曀r- (71)b2vw`<(b2B&kYԟ2gorh rAiLU2E5Wm1^S\wvxVWjjZ%U ]p7XtÚ@t2dI endstream endobj 394 0 obj 369 endobj 395 0 obj << /Type /XObject /Name /R395 /Subtype /Image /Length 396 0 R /ColorSpace /DeviceGray/Width 59/Height 109/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x 0 ?Z ղ-C76bc(]`(&\dEl-fcq\0x@AʖHR)D 6-dgKjkklmmmoaov[[[[[[ۈdOɷʁ2qѭ+_j8 1*Vԉm*-_oi endstream endobj 396 0 obj 168 endobj 397 0 obj << /Type /XObject /Name /R397 /Subtype /Image /Length 398 0 R /ColorSpace /DeviceGray/Width 83/Height 82/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK (vd$j7;a'frQsW+& WF M!1wc0]0/ ḛ6JTݘ,4U<cFQjU曀r- (71)b2vw`<(b2B&kYԟ2gorh rAiLU2E5Wm1^S\wvxVWjjZ%U ]p7XtÚ@t2dI endstream endobj 398 0 obj 369 endobj 399 0 obj << /Type /XObject /Name /R399 /Subtype /Image /Length 400 0 R /ColorSpace /DeviceGray/Width 58/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x˱ @gapڋ#=LEQEQEQEhtHA endstream endobj 400 0 obj 51 endobj 401 0 obj << /Type /XObject /Name /R401 /Subtype /Image /Length 402 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 402 0 obj 267 endobj 403 0 obj << /Type /XObject /Name /R403 /Subtype /Image /Length 404 0 R /ColorSpace /DeviceGray/Width 69/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0PybLu ܯ6l ]ʃ1OP(OAj2䂟{B`C9[k#e.]27)& VE-+3ac)^A Ӧ8)[oTB~Ö́Ĺ9ܠo/'v9[&*GQ`"g\VP%̵J-혉JRkb$?PI!:ROTB*(T҈,Sg˕w Wˆ(*Sv6$h^Ff¶ttI endstream endobj 404 0 obj 265 endobj 405 0 obj << /Type /XObject /Name /R405 /Subtype /Image /Length 406 0 R /ColorSpace /DeviceGray/Width 97/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xA PrCU+ If*Ny9sE+YzgeЃ r0!VB^U>e 2m *QT\#:5PN|>z\)4s9a: !aϖҥ  [TlW 49¦+M#BpL&lQ@O_ػZ#dRij˔P|hܴ+WV$$G(ɟG Mvֽ 9f,PD^ӕ  'S:T$š $5"]a!5!W()ʿ( PPU@ a˿/`T! PoKV endstream endobj 406 0 obj 395 endobj 407 0 obj << /Type /XObject /Name /R407 /Subtype /Image /Length 408 0 R /ColorSpace /DeviceGray/Width 59/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK PY'Θbt<-Gз Pq:MYI0k%6MO!f0lfDŽSQ{WsV/> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 410 0 obj 267 endobj 411 0 obj << /Type /XObject /Name /R411 /Subtype /Image /Length 412 0 R /ColorSpace /DeviceGray/Width 107/Height 107/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x KbmUL‘2<~-HʋZ\URd,Y-:aXG,:`a3Ym!?½ Զ |EYfؘ5v[5E"^jE^ 8Q{MZ D{ͅ09/gȾ.elqZ$кtY@Oeu\_u4L=4ˋ! ,bU0v,XeN̘Nd,S}h)-K]Q6ˆ8}Zlˈ,{mJ+*%oE&WJިZFIoCe} ɬ< g k endstream endobj 412 0 obj 365 endobj 413 0 obj << /Type /XObject /Name /R413 /Subtype /Image /Length 414 0 R /ColorSpace /DeviceGray/Width 90/Height 82/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 P|CD~N<3Z`?$$=aE*cψūkg wiLTQQ* AXqy::%wZK'kx5A"Wb7Ʌm@/Aմd N{_bF6m @U^!pcntq]ta?J}:!4|N\:պ/lhgOǤz?ܝ;~ k.#kC\C1"fb$3Se&gp[A~: !xXH]{JhG endstream endobj 414 0 obj 316 endobj 415 0 obj << /Type /XObject /Name /R415 /Subtype /Image /Length 416 0 R /ColorSpace /DeviceGray/Width 86/Height 112/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xz0 `tM{ :^(h+*M6m펍y{R s]Y614˩A,˪(G*Wjg êG:VW{lZc TOgDԣK]r r* ,stɸs(_R؋d‰o eUle*5 @,-[ {'[JWl7Y"\\!c iNᶰXB./(Cʯ;I]tB<`7EqAXq2Z:Z;D_;PյC+.g԰v+Y԰sְ繶{r1n#ͣ 69t7w}P@ a0c endstream endobj 416 0 obj 410 endobj 417 0 obj << /Type /XObject /Name /R417 /Subtype /Image /Length 418 0 R /ColorSpace /DeviceGray/Width 83/Height 82/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK (vd$j7;a'frQsW+& WF M!1wc0]0/ ḛ6JTݘ,4U<cFQjU曀r- (71)b2vw`<(b2B&kYԟ2gorh rAiLU2E5Wm1^S\wvxVWjjZ%U ]p7XtÚ@t2dI endstream endobj 418 0 obj 369 endobj 419 0 obj << /Type /XObject /Name /R419 /Subtype /Image /Length 420 0 R /ColorSpace /DeviceGray/Width 59/Height 109/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x 0 ?Z ղ-C76bc(]`(&\dEl-fcq\0x@AʖHR)D 6-dgKjkklmmmoaov[[[[[[ۈdOɷʁ2qѭ+_j8 1*Vԉm*-_oi endstream endobj 420 0 obj 168 endobj 421 0 obj << /Type /XObject /Name /R421 /Subtype /Image /Length 422 0 R /ColorSpace /DeviceGray/Width 61/Height 80/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xA @Gcb$zYN`; XGm+㌤1¶ Bhc b T읩_ ד4G;KowwnE!UXW) FРYek'5le":<%T[]P endstream endobj 422 0 obj 152 endobj 423 0 obj << /Type /XObject /Name /R423 /Subtype /Image /Length 424 0 R /ColorSpace /DeviceGray/Width 90/Height 82/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x >t&!̨OKmp WLLԹ IPdx`[rGpoWrk}׮G+O_d/4핳:U$ NOL+I2 8=-1]hP/hG4zqn-g%>+ڐYGaړM=m}|=L ל'B26/i惪VC_è8KZI#q4rh0 _k4h1@TTtrh~{3}>OT/NGdu!FkĬ Iʪ+hA6kZ,N:7-W{)[{LzR endstream endobj 424 0 obj 373 endobj 425 0 obj << /Type /XObject /Name /R425 /Subtype /Image /Length 426 0 R /ColorSpace /DeviceGray/Width 59/Height 109/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x 0 ?Z ղ-C76bc(]`(&\dEl-fcq\0x@AʖHR)D 6-dgKjkklmmmoaov[[[[[[ۈdOɷʁ2qѭ+_j8 1*Vԉm*-_oi endstream endobj 426 0 obj 168 endobj 427 0 obj << /Type /XObject /Name /R427 /Subtype /Image /Length 428 0 R /ColorSpace /DeviceGray/Width 90/Height 82/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x e1*3D(=,ד%H{X׷ L\]G}ÍaGB0'MQy()6R0ՆNVkV=xjNBЕBMmf׹hY"fzۢ)@ύɆoM'O[P\sŎOzы^?7S0ŹiL; $#} ,ZT*D#Zb,|"˵Y[*2pJ}6k NtALQt]hLQ/|E endstream endobj 428 0 obj 303 endobj 429 0 obj << /Type /XObject /Name /R429 /Subtype /Image /Length 430 0 R /ColorSpace /DeviceGray/Width 82/Height 80/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xI Qr(@#8-j$uӗd7ɬ;Ldb#$X\M !1q6dT̷r4JvI+D1"X$܎~Oˤ8OAH"E)RH"Ey9 endstream endobj 430 0 obj 166 endobj 431 0 obj << /Type /XObject /Name /R431 /Subtype /Image /Length 432 0 R /ColorSpace /DeviceGray/Width 82/Height 107/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xձ 0~ pP:s.H$D" H$`!H$ǑH$D"H$y,kU endstream endobj 432 0 obj 71 endobj 433 0 obj << /Type /XObject /Name /R433 /Subtype /Image /Length 434 0 R /ColorSpace /DeviceGray/Width 90/Height 82/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x e1*3D(=,ד%H{X׷ L\]G}ÍaGB0'MQy()6R0ՆNVkV=xjNBЕBMmf׹hY"fzۢ)@ύɆoM'O[P\sŎOzы^?7S0ŹiL; $#} ,ZT*D#Zb,|"˵Y[*2pJ}6k NtALQt]hLQ/|E endstream endobj 434 0 obj 303 endobj 435 0 obj << /Type /XObject /Name /R435 /Subtype /Image /Length 436 0 R /ColorSpace /DeviceGray/Width 61/Height 80/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xA @Gcb$zYN`; XGm+㌤1¶ Bhc b T읩_ ד4G;KowwnE!UXW) FРYek'5le":<%T[]P endstream endobj 436 0 obj 152 endobj 437 0 obj << /Type /XObject /Name /R437 /Subtype /Image /Length 438 0 R /ColorSpace /DeviceGray/Width 132/Height 80/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x 0D?ZAЦ&;VQ}+deӶHZbR&@Ջ3> >> stream x1! CQw,`; C/9Y΍J!JMPf͔X76GSd(izzmݬYj:T6V韍ȖgCʳ16AY6CuSl(xqFa6ILJdi(bJPm5G5RaCʭR̚)nmBf)4V gY> endstream endobj 440 0 obj 190 endobj 441 0 obj << /Type /XObject /Name /R441 /Subtype /Image /Length 442 0 R /ColorSpace /DeviceGray/Width 76/Height 53/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xA 0 DVDkM2I[(0]DVodʦfBNז!f k +{ ZPh:>tS<:3R XbC(weηmS,21bĈ#FOa; endstream endobj 442 0 obj 154 endobj 443 0 obj << /Type /XObject /Name /R443 /Subtype /Image /Length 444 0 R /ColorSpace /DeviceGray/Width 69/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x `Z5N(䗃g!6\6Q*&[tH Atx"$E++˭Jdbn*S[Z1`~)L*WX(StvKVApDqm5 ]PL3 +^J)X3 ri$I9>SE$IyEZP:"4L>{L ,VX>MEH|t55J鶄VfnessH endstream endobj 444 0 obj 248 endobj 445 0 obj << /Type /XObject /Name /R445 /Subtype /Image /Length 446 0 R /ColorSpace /DeviceGray/Width 63/Height 73/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xر0Pn.pz,r!8{Azq@{|-1>͞ZMi׽_o*+@dHZFo%ZDxsȯ8* =kIiy:'޿7Wx |o?k x=Fro?mSk67UG{i_~+Ug{mTh' $uf7U `dH endstream endobj 446 0 obj 267 endobj 447 0 obj << /Type /XObject /Name /R447 /Subtype /Image /Length 448 0 R /ColorSpace /DeviceGray/Width 58/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x FnEiL9L1LLJyA=*@Ncr ~/D!O=l9- %rl-'1SE_5+bI{:qV%N1 ,l+=Q3qYqcV7hO ZkKRiNQU1HRT!՚RUq1=v.Y+cmNY(l̀vHˤw:r?U%d.-%uWľݧC oکl6tvz;y۠i-z }aB endstream endobj 448 0 obj 321 endobj 449 0 obj << /Type /XObject /Name /R449 /Subtype /Image /Length 450 0 R /ColorSpace /DeviceGray/Width 58/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0 ?vZ's=L[0MqhC**rhIB٤q_ZRx\fTRKs%Ÿ(ѐ9eˌ 2T"]mUUeYnu]rKb%2]"K~e MYR򏞱+g;s_ёU'kI6Օ#PU]=H= endstream endobj 450 0 obj 199 endobj 451 0 obj << /Type /XObject /Name /R451 /Subtype /Image /Length 452 0 R /ColorSpace /DeviceGray/Width 76/Height 53/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xA 0 DVDkM2I[(0]DVodʦfBNז!f k +{ ZPh:>tS<:3R XbC(weηmS,21bĈ#FOa; endstream endobj 452 0 obj 154 endobj 453 0 obj << /Type /XObject /Name /R453 /Subtype /Image /Length 454 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 454 0 obj 267 endobj 455 0 obj << /Type /XObject /Name /R455 /Subtype /Image /Length 456 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 456 0 obj 267 endobj 457 0 obj << /Type /XObject /Name /R457 /Subtype /Image /Length 458 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 458 0 obj 267 endobj 459 0 obj << /Type /XObject /Name /R459 /Subtype /Image /Length 460 0 R /ColorSpace /DeviceGray/Width 69/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0PybLu ܯ6l ]ʃ1OP(OAj2䂟{B`C9[k#e.]27)& VE-+3ac)^A Ӧ8)[oTB~Ö́Ĺ9ܠo/'v9[&*GQ`"g\VP%̵J-혉JRkb$?PI!:ROTB*(T҈,Sg˕w Wˆ(*Sv6$h^Ff¶ttI endstream endobj 460 0 obj 265 endobj 461 0 obj << /Type /XObject /Name /R461 /Subtype /Image /Length 462 0 R /ColorSpace /DeviceGray/Width 62/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 Pb8$HRͼ?|7x$9]?Ai%AY)Ĵ(mIEY=7#oBI&2kfd e]iIݛNg{ |ufÚ2kI endstream endobj 462 0 obj 267 endobj 463 0 obj << /Type /XObject /Name /R463 /Subtype /Image /Length 464 0 R /ColorSpace /DeviceGray/Width 68/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0PG,pg8& +y=X\( 硐dB%~fg;'@9LU [!uhsK #nP1>AAdLJ@Yi 퐽20\AjBoĖhj21LUEBf:125r\gDQ:9 y?lػ/frJiUJ4Q7N#ii95o0eEjW3r=l(l `= endstream endobj 464 0 obj 257 endobj 465 0 obj << /Type /XObject /Name /R465 /Subtype /Image /Length 466 0 R /ColorSpace /DeviceGray/Width 69/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x1ƘhPlu_\ᄽc|CTVK b3M](J50ndU"Pڽ$7[Us.*5;fanW~7ržV@Β }.(S_0K+sLiEJ9o0ƝV45Eپ[RG1E'ѣ f _!zRzH+s܃FtD{GoD+M+.v&+(fA*٣<H endstream endobj 466 0 obj 287 endobj 467 0 obj << /Type /XObject /Name /R467 /Subtype /Image /Length 468 0 R /ColorSpace /DeviceGray/Width 69/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0PybLu ܯ6l ]ʃ1OP(OAj2䂟{B`C9[k#e.]27)& VE-+3ac)^A Ӧ8)[oTB~Ö́Ĺ9ܠo/'v9[&*GQ`"g\VP%̵J-혉JRkb$?PI!:ROTB*(T҈,Sg˕w Wˆ(*Sv6$h^Ff¶ttI endstream endobj 468 0 obj 265 endobj 469 0 obj << /Type /XObject /Name /R469 /Subtype /Image /Length 470 0 R /ColorSpace /DeviceGray/Width 70/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x Pv6,!]gͩx*$!5FPj! 'Oʜ'EFqNaUp!T_1GS2v jѺv y̵(؁I*0+ZA]LDљVMf&O(09N '1o{maH0eKːIE[ D]׸؏fh)"e&ղhV;\`mu$ w%̱]Rk E7Bn.q{|= endstream endobj 470 0 obj 271 endobj 471 0 obj << /Type /XObject /Name /R471 /Subtype /Image /Length 472 0 R /ColorSpace /DeviceGray/Width 73/Height 80/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0 P /Vp"yٰMlc)Js!@X;r!>rr\A{j*U)ԡzwz톍#L0lPPiF2XDd(ޑPVX>"T(e X:/<)_Yz[[ .!}u‹`͇7g{G);ɕYG#)0%5!`o&z5)id":[7$((o;/;dVxoTłBPA)@)/9'L4VzI4YQǥypTSP endstream endobj 472 0 obj 343 endobj 473 0 obj << /Type /XObject /Name /R473 /Subtype /Image /Length 474 0 R /ColorSpace /DeviceGray/Width 63/Height 73/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xر0Pn.pz,r!8{Azq@{|-1>͞ZMi׽_o*+@dHZFo%ZDxsȯ8* =kIiy:'޿7Wx |o?k x=Fro?mSk67UG{i_~+Ug{mTh' $uf7U `dH endstream endobj 474 0 obj 267 endobj 475 0 obj << /Type /XObject /Name /R475 /Subtype /Image /Length 476 0 R /ColorSpace /DeviceGray/Width 69/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x `Z5N(䗃g!6\6Q*&[tH Atx"$E++˭Jdbn*S[Z1`~)L*WX(StvKVApDqm5 ]PL3 +^J)X3 ri$I9>SE$IyEZP:"4L>{L ,VX>MEH|t55J鶄VfnessH endstream endobj 476 0 obj 248 endobj 477 0 obj << /Type /XObject /Name /R477 /Subtype /Image /Length 478 0 R /ColorSpace /DeviceGray/Width 63/Height 73/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xر0Pn.pz,r!8{Azq@{|-1>͞ZMi׽_o*+@dHZFo%ZDxsȯ8* =kIiy:'޿7Wx |o?k x=Fro?mSk67UG{i_~+Ug{mTh' $uf7U `dH endstream endobj 478 0 obj 267 endobj 479 0 obj << /Type /XObject /Name /R479 /Subtype /Image /Length 480 0 R /ColorSpace /DeviceGray/Width 61/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0 D?UߐJ_5,JCc6;6%B=X|AoxExIyMxQ?yU?A6>{GT79ԩE^Xmpl2}(P> >> stream x; P솏C7vqT *.mC<Ρ 'Xj85tzho"o9ABc=4ܐv^hPCY-:Yl4?o+NY\v N9 bt q=A|XбƱ/ endstream endobj 482 0 obj 163 endobj 483 0 obj << /Type /XObject /Name /R483 /Subtype /Image /Length 484 0 R /ColorSpace /DeviceGray/Width 76/Height 53/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xA 0 DVDkM2I[(0]DVodʦfBNז!f k +{ ZPh:>tS<:3R XbC(weηmS,21bĈ#FOa; endstream endobj 484 0 obj 154 endobj 485 0 obj << /Type /XObject /Name /R485 /Subtype /Image /Length 486 0 R /ColorSpace /DeviceGray/Width 47/Height 86/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0 EtGy<°T47knB#QYpp`sj?Ǝr278?.,}[>HOs_Yݸxyqk||f-8Ĝ꺒ON~CSx*Q?f08ӄq!!x?Ζ]$eݡ*M%]( dןAz^y|_M$SwOpM endstream endobj 486 0 obj 323 endobj 487 0 obj << /Type /XObject /Name /R487 /Subtype /Image /Length 488 0 R /ColorSpace /DeviceGray/Width 69/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x `Z5N(䗃g!6\6Q*&[tH Atx"$E++˭Jdbn*S[Z1`~)L*WX(StvKVApDqm5 ]PL3 +^J)X3 ri$I9>SE$IyEZP:"4L>{L ,VX>MEH|t55J鶄VfnessH endstream endobj 488 0 obj 248 endobj 489 0 obj << /Type /XObject /Name /R489 /Subtype /Image /Length 490 0 R /ColorSpace /DeviceGray/Width 63/Height 73/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xر0Pn.pz,r!8{Azq@{|-1>͞ZMi׽_o*+@dHZFo%ZDxsȯ8* =kIiy:'޿7Wx |o?k x=Fro?mSk67UG{i_~+Ug{mTh' $uf7U `dH endstream endobj 490 0 obj 267 endobj 491 0 obj << /Type /XObject /Name /R491 /Subtype /Image /Length 492 0 R /ColorSpace /DeviceGray/Width 61/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0 D?UߐJ_5,JCc6;6%B=X|AoxExIyMxQ?yU?A6>{GT79ԩE^Xmpl2}(P> >> stream x FnEiL9L1LLJyA=*@Ncr ~/D!O=l9- %rl-'1SE_5+bI{:qV%N1 ,l+=Q3qYqcV7hO ZkKRiNQU1HRT!՚RUq1=v.Y+cmNY(l̀vHˤw:r?U%d.-%uWľݧC oکl6tvz;y۠i-z }aB endstream endobj 494 0 obj 321 endobj 495 0 obj << /Type /XObject /Name /R495 /Subtype /Image /Length 496 0 R /ColorSpace /DeviceGray/Width 47/Height 86/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0 EtGy<°T47knB#QYpp`sj?Ǝr278?.,}[>HOs_Yݸxyqk||f-8Ĝ꺒ON~CSx*Q?f08ӄq!!x?Ζ]$eݡ*M%]( dןAz^y|_M$SwOpM endstream endobj 496 0 obj 323 endobj 497 0 obj << /Type /XObject /Name /R497 /Subtype /Image /Length 498 0 R /ColorSpace /DeviceGray/Width 58/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x1! CQw,`; C/9Y΍J!JMPf͔X76GSd(izzmݬYj:T6V韍ȖgCʳ16AY6CuSl(xqFa6ILJdi(bJPm5G5RaCʭR̚)nmBf)4V gY> endstream endobj 498 0 obj 190 endobj 499 0 obj << /Type /XObject /Name /R499 /Subtype /Image /Length 500 0 R /ColorSpace /DeviceGray/Width 76/Height 53/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xA 0 DVDkM2I[(0]DVodʦfBNז!f k +{ ZPh:>tS<:3R XbC(weηmS,21bĈ#FOa; endstream endobj 500 0 obj 154 endobj 501 0 obj << /Type /XObject /Name /R501 /Subtype /Image /Length 502 0 R /ColorSpace /DeviceGray/Width 76/Height 53/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xA 0 DVDkM2I[(0]DVodʦfBNז!f k +{ ZPh:>tS<:3R XbC(weηmS,21bĈ#FOa; endstream endobj 502 0 obj 154 endobj 503 0 obj << /Type /XObject /Name /R503 /Subtype /Image /Length 504 0 R /ColorSpace /DeviceGray/Width 47/Height 86/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0 EtGy<°T47knB#QYpp`sj?Ǝr278?.,}[>HOs_Yݸxyqk||f-8Ĝ꺒ON~CSx*Q?f08ӄq!!x?Ζ]$eݡ*M%]( dןAz^y|_M$SwOpM endstream endobj 504 0 obj 323 endobj 505 0 obj << /Type /XObject /Name /R505 /Subtype /Image /Length 506 0 R /ColorSpace /DeviceGray/Width 61/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0 D?UߐJ_5,JCc6;6%B=X|AoxExIyMxQ?yU?A6>{GT79ԩE^Xmpl2}(P> >> stream x0 EtGy<°T47knB#QYpp`sj?Ǝr278?.,}[>HOs_Yݸxyqk||f-8Ĝ꺒ON~CSx*Q?f08ӄq!!x?Ζ]$eݡ*M%]( dןAz^y|_M$SwOpM endstream endobj 508 0 obj 323 endobj 509 0 obj << /Type /XObject /Name /R509 /Subtype /Image /Length 510 0 R /ColorSpace /DeviceGray/Width 79/Height 52/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x P{\H ސ# gGt{q^A@Fa^yXyk1{k^y4 Re1M@0=] PyMo>|Y`(> >> stream x0 D?UߐJ_5,JCc6;6%B=X|AoxExIyMxQ?yU?A6>{GT79ԩE^Xmpl2}(P> >> stream x0 EtGy<°T47knB#QYpp`sj?Ǝr278?.,}[>HOs_Yݸxyqk||f-8Ĝ꺒ON~CSx*Q?f08ӄq!!x?Ζ]$eݡ*M%]( dןAz^y|_M$SwOpM endstream endobj 514 0 obj 323 endobj 515 0 obj << /Type /XObject /Name /R515 /Subtype /Image /Length 516 0 R /ColorSpace /DeviceGray/Width 56/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x!@"M' <   MH= endstream endobj 516 0 obj 50 endobj 517 0 obj << /Type /XObject /Name /R517 /Subtype /Image /Length 518 0 R /ColorSpace /DeviceGray/Width 70/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x Pv6,!]gͩx*$!5FPj! 'Oʜ'EFqNaUp!T_1GS2v jѺv y̵(؁I*0+ZA]LDљVMf&O(09N '1o{maH0eKːIE[ D]׸؏fh)"e&ղhV;\`mu$ w%̱]Rk E7Bn.q{|= endstream endobj 518 0 obj 271 endobj 519 0 obj << /Type /XObject /Name /R519 /Subtype /Image /Length 520 0 R /ColorSpace /DeviceGray/Width 56/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x!@"M' <   MH= endstream endobj 520 0 obj 50 endobj 521 0 obj << /Type /XObject /Name /R521 /Subtype /Image /Length 522 0 R /ColorSpace /DeviceGray/Width 69/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x `Z5N(䗃g!6\6Q*&[tH Atx"$E++˭Jdbn*S[Z1`~)L*WX(StvKVApDqm5 ]PL3 +^J)X3 ri$I9>SE$IyEZP:"4L>{L ,VX>MEH|t55J鶄VfnessH endstream endobj 522 0 obj 248 endobj 523 0 obj << /Type /XObject /Name /R523 /Subtype /Image /Length 524 0 R /ColorSpace /DeviceGray/Width 58/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x1! CQw,`; C/9Y΍J!JMPf͔X76GSd(izzmݬYj:T6V韍ȖgCʳ16AY6CuSl(xqFa6ILJdi(bJPm5G5RaCʭR̚)nmBf)4V gY> endstream endobj 524 0 obj 190 endobj 525 0 obj << /Type /XObject /Name /R525 /Subtype /Image /Length 526 0 R /ColorSpace /DeviceGray/Width 63/Height 73/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xر0Pn.pz,r!8{Azq@{|-1>͞ZMi׽_o*+@dHZFo%ZDxsȯ8* =kIiy:'޿7Wx |o?k x=Fro?mSk67UG{i_~+Ug{mTh' $uf7U `dH endstream endobj 526 0 obj 267 endobj 527 0 obj << /Type /XObject /Name /R527 /Subtype /Image /Length 528 0 R /ColorSpace /DeviceGray/Width 70/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x Pv6,!]gͩx*$!5FPj! 'Oʜ'EFqNaUp!T_1GS2v jѺv y̵(؁I*0+ZA]LDљVMf&O(09N '1o{maH0eKːIE[ D]׸؏fh)"e&ղhV;\`mu$ w%̱]Rk E7Bn.q{|= endstream endobj 528 0 obj 271 endobj 529 0 obj << /Type /XObject /Name /R529 /Subtype /Image /Length 530 0 R /ColorSpace /DeviceGray/Width 58/Height 74/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x FnEiL9L1LLJyA=*@Ncr ~/D!O=l9- %rl-'1SE_5+bI{:qV%N1 ,l+=Q3qYqcV7hO ZkKRiNQU1HRT!՚RUq1=v.Y+cmNY(l̀vHˤw:r?U%d.-%uWľݧC oکl6tvz;y۠i-z }aB endstream endobj 530 0 obj 321 endobj 531 0 obj << /Type /XObject /Name /R531 /Subtype /Image /Length 532 0 R /ColorSpace /DeviceGray/Width 61/Height 72/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xA P+چ1!NBC-׫u7-kT@ɋ:pU|@!1[5hG\SxIcN5#uzWȧtSO=w{O+疌5Y\VN,Tc%*+YIINͤ܈?o:-x9 endstream endobj 532 0 obj 176 endobj 533 0 obj << /Type /XObject /Name /R533 /Subtype /Image /Length 534 0 R /ColorSpace /DeviceGray/Width 91/Height 107/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0Pei'KdH.d> >> stream xK0 P|CD~N<3Z`?$$=aE*cψūkg wiLTQQ* AXqy::%wZK'kx5A"Wb7Ʌm@/Aմd N{_bF6m @U^!pcntq]ta?J}:!4|N\:պ/lhgOǤz?ܝ;~ k.#kC\C1"fb$3Se&gp[A~: !xXH]{JhG endstream endobj 536 0 obj 316 endobj 537 0 obj << /Type /XObject /Name /R537 /Subtype /Image /Length 538 0 R /ColorSpace /DeviceGray/Width 61/Height 80/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xA @Gcb$zYN`; XGm+㌤1¶ Bhc b T읩_ ד4G;KowwnE!UXW) FРYek'5le":<%T[]P endstream endobj 538 0 obj 152 endobj 539 0 obj << /Type /XObject /Name /R539 /Subtype /Image /Length 540 0 R /ColorSpace /DeviceGray/Width 62/Height 109/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x a}6&qTD "Z֣J."ixhW'񄧵TpE%mǛ5..kx>y&;"p/nsp8op87Bhnk endstream endobj 540 0 obj 133 endobj 541 0 obj << /Type /XObject /Name /R541 /Subtype /Image /Length 542 0 R /ColorSpace /DeviceGray/Width 90/Height 82/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x e1*3D(=,ד%H{X׷ L\]G}ÍaGB0'MQy()6R0ՆNVkV=xjNBЕBMmf׹hY"fzۢ)@ύɆoM'O[P\sŎOzы^?7S0ŹiL; $#} ,ZT*D#Zb,|"˵Y[*2pJ}6k NtALQt]hLQ/|E endstream endobj 542 0 obj 303 endobj 543 0 obj << /Type /XObject /Name /R543 /Subtype /Image /Length 544 0 R /ColorSpace /DeviceGray/Width 61/Height 80/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xA @Gcb$zYN`; XGm+㌤1¶ Bhc b T읩_ ד4G;KowwnE!UXW) FРYek'5le":<%T[]P endstream endobj 544 0 obj 152 endobj 545 0 obj << /Type /XObject /Name /R545 /Subtype /Image /Length 546 0 R /ColorSpace /DeviceGray/Width 132/Height 80/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x 0D?ZAЦ&;VQ}+deӶHZbR&@Ջ3> >> stream x >t&!̨OKmp WLLԹ IPdx`[rGpoWrk}׮G+O_d/4핳:U$ NOL+I2 8=-1]hP/hG4zqn-g%>+ڐYGaړM=m}|=L ל'B26/i惪VC_è8KZI#q4rh0 _k4h1@TTtrh~{3}>OT/NGdu!FkĬ Iʪ+hA6kZ,N:7-W{)[{LzR endstream endobj 548 0 obj 373 endobj 549 0 obj << /Type /XObject /Name /R549 /Subtype /Image /Length 550 0 R /ColorSpace /DeviceGray/Width 82/Height 80/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xI Qr(@#8-j$uӗd7ɬ;Ldb#$X\M !1q6dT̷r4JvI+D1"X$܎~Oˤ8OAH"E)RH"Ey9 endstream endobj 550 0 obj 166 endobj 551 0 obj << /Type /XObject /Name /R551 /Subtype /Image /Length 552 0 R /ColorSpace /DeviceGray/Width 90/Height 82/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream x0 P ,t,ζh$ҡxQ’ f&VVJC&xG\hDKME7M#>Tcɬ],u";%}hw*90^ҷu>ʤ (Jd,IU ^H.v$ =!;f"l&&sZ1Olo/>BNvT; M&` r@hQ endstream endobj 552 0 obj 329 endobj 553 0 obj << /Type /XObject /Name /R553 /Subtype /Image /Length 554 0 R /ColorSpace /DeviceGray/Width 90/Height 82/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK0 P|CD~N<3Z`?$$=aE*cψūkg wiLTQQ* AXqy::%wZK'kx5A"Wb7Ʌm@/Aմd N{_bF6m @U^!pcntq]ta?J}:!4|N\:պ/lhgOǤz?ܝ;~ k.#kC\C1"fb$3Se&gp[A~: !xXH]{JhG endstream endobj 554 0 obj 316 endobj 555 0 obj << /Type /XObject /Name /R555 /Subtype /Image /Length 556 0 R /ColorSpace /DeviceGray/Width 83/Height 82/BitsPerComponent 8/Filter/FlateDecode/DecodeParms<> >> stream xK (vd$j7;a'frQsW+& WF M!1wc0]0/ ḛ6JTݘ,4U<cFQjU曀r- (71)b2vw`<(b2B&kYԟ2gorh rAiLU2E5Wm1^S\wvxVWjjZ%U ]p7XtÚ@t2dI endstream endobj 556 0 obj 369 endobj xref 0 558 0000000000 65535 f 0000130931 00000 n 0000130865 00000 n 0000062064 00000 n 0000000015 00000 n 0000062043 00000 n 0000131069 00000 n 0000131663 00000 n 0000131682 00000 n 0000132198 00000 n 0000132217 00000 n 0000132737 00000 n 0000132757 00000 n 0000133145 00000 n 0000133165 00000 n 0000133551 00000 n 0000133571 00000 n 0000133957 00000 n 0000133977 00000 n 0000134370 00000 n 0000134390 00000 n 0000134923 00000 n 0000134943 00000 n 0000135646 00000 n 0000135666 00000 n 0000136186 00000 n 0000136206 00000 n 0000136589 00000 n 0000136609 00000 n 0000137100 00000 n 0000137120 00000 n 0000137653 00000 n 0000137673 00000 n 0000138056 00000 n 0000138076 00000 n 0000138462 00000 n 0000138482 00000 n 0000139002 00000 n 0000139022 00000 n 0000139405 00000 n 0000139425 00000 n 0000154434 00000 n 0000154456 00000 n 0000154961 00000 n 0000154981 00000 n 0000155475 00000 n 0000155495 00000 n 0000156000 00000 n 0000156020 00000 n 0000156531 00000 n 0000156551 00000 n 0000157037 00000 n 0000157057 00000 n 0000157551 00000 n 0000157571 00000 n 0000158274 00000 n 0000158294 00000 n 0000158814 00000 n 0000158834 00000 n 0000159217 00000 n 0000159237 00000 n 0000159728 00000 n 0000159748 00000 n 0000160281 00000 n 0000160301 00000 n 0000160684 00000 n 0000160704 00000 n 0000161090 00000 n 0000161110 00000 n 0000161630 00000 n 0000161650 00000 n 0000162033 00000 n 0000162053 00000 n 0000162355 00000 n 0000162374 00000 n 0000162894 00000 n 0000162914 00000 n 0000163300 00000 n 0000163320 00000 n 0000163853 00000 n 0000163873 00000 n 0000170617 00000 n 0000127670 00000 n 0000062619 00000 n 0000127648 00000 n 0000170638 00000 n 0000171125 00000 n 0000171145 00000 n 0000171417 00000 n 0000171436 00000 n 0000171962 00000 n 0000171982 00000 n 0000172508 00000 n 0000172528 00000 n 0000172795 00000 n 0000172814 00000 n 0000173525 00000 n 0000173545 00000 n 0000173813 00000 n 0000173832 00000 n 0000174185 00000 n 0000174206 00000 n 0000174735 00000 n 0000174756 00000 n 0000175241 00000 n 0000175262 00000 n 0000175739 00000 n 0000175760 00000 n 0000176474 00000 n 0000176495 00000 n 0000176970 00000 n 0000176991 00000 n 0000177481 00000 n 0000177502 00000 n 0000177915 00000 n 0000177936 00000 n 0000178423 00000 n 0000178444 00000 n 0000179158 00000 n 0000179179 00000 n 0000179592 00000 n 0000179613 00000 n 0000180100 00000 n 0000180121 00000 n 0000180598 00000 n 0000180619 00000 n 0000181106 00000 n 0000181127 00000 n 0000181841 00000 n 0000181862 00000 n 0000182352 00000 n 0000182373 00000 n 0000182863 00000 n 0000182884 00000 n 0000183371 00000 n 0000183392 00000 n 0000183933 00000 n 0000183954 00000 n 0000184668 00000 n 0000184689 00000 n 0000185174 00000 n 0000185195 00000 n 0000185682 00000 n 0000185703 00000 n 0000186190 00000 n 0000186211 00000 n 0000186925 00000 n 0000186946 00000 n 0000187433 00000 n 0000187454 00000 n 0000187983 00000 n 0000188004 00000 n 0000188491 00000 n 0000188512 00000 n 0000188925 00000 n 0000188946 00000 n 0000189660 00000 n 0000189681 00000 n 0000190168 00000 n 0000190189 00000 n 0000190674 00000 n 0000190695 00000 n 0000191224 00000 n 0000191245 00000 n 0000191730 00000 n 0000191751 00000 n 0000192238 00000 n 0000192259 00000 n 0000192734 00000 n 0000192755 00000 n 0000193284 00000 n 0000193305 00000 n 0000193580 00000 n 0000193600 00000 n 0000193997 00000 n 0000194018 00000 n 0000194547 00000 n 0000194568 00000 n 0000195045 00000 n 0000195066 00000 n 0000195780 00000 n 0000195801 00000 n 0000196072 00000 n 0000196092 00000 n 0000196577 00000 n 0000196598 00000 n 0000197073 00000 n 0000197094 00000 n 0000197507 00000 n 0000197528 00000 n 0000198002 00000 n 0000198023 00000 n 0000198500 00000 n 0000198521 00000 n 0000199227 00000 n 0000199248 00000 n 0000199634 00000 n 0000199655 00000 n 0000200204 00000 n 0000200225 00000 n 0000200814 00000 n 0000200835 00000 n 0000201549 00000 n 0000201570 00000 n 0000201983 00000 n 0000202004 00000 n 0000202481 00000 n 0000202502 00000 n 0000203031 00000 n 0000203052 00000 n 0000203539 00000 n 0000203560 00000 n 0000203831 00000 n 0000203851 00000 n 0000204341 00000 n 0000204362 00000 n 0000204852 00000 n 0000204873 00000 n 0000205360 00000 n 0000205381 00000 n 0000205858 00000 n 0000205879 00000 n 0000206364 00000 n 0000206385 00000 n 0000206872 00000 n 0000206893 00000 n 0000207380 00000 n 0000207401 00000 n 0000207676 00000 n 0000207696 00000 n 0000208109 00000 n 0000208130 00000 n 0000208637 00000 n 0000208658 00000 n 0000209145 00000 n 0000209166 00000 n 0000209656 00000 n 0000209677 00000 n 0000210179 00000 n 0000210200 00000 n 0000210707 00000 n 0000210728 00000 n 0000211215 00000 n 0000211236 00000 n 0000211721 00000 n 0000211742 00000 n 0000212456 00000 n 0000212477 00000 n 0000212964 00000 n 0000212985 00000 n 0000213472 00000 n 0000213493 00000 n 0000213980 00000 n 0000214001 00000 n 0000214486 00000 n 0000214507 00000 n 0000214948 00000 n 0000214969 00000 n 0000215456 00000 n 0000215477 00000 n 0000215964 00000 n 0000215985 00000 n 0000216472 00000 n 0000216493 00000 n 0000217207 00000 n 0000217228 00000 n 0000217715 00000 n 0000217736 00000 n 0000218223 00000 n 0000218244 00000 n 0000218734 00000 n 0000218755 00000 n 0000219232 00000 n 0000219253 00000 n 0000219740 00000 n 0000219761 00000 n 0000220174 00000 n 0000220195 00000 n 0000220685 00000 n 0000220706 00000 n 0000221193 00000 n 0000221214 00000 n 0000221928 00000 n 0000221949 00000 n 0000222220 00000 n 0000222240 00000 n 0000222727 00000 n 0000222748 00000 n 0000223223 00000 n 0000223244 00000 n 0000223958 00000 n 0000223979 00000 n 0000224454 00000 n 0000224475 00000 n 0000225090 00000 n 0000225111 00000 n 0000225598 00000 n 0000225619 00000 n 0000226032 00000 n 0000226053 00000 n 0000226582 00000 n 0000226603 00000 n 0000227080 00000 n 0000227101 00000 n 0000227815 00000 n 0000227836 00000 n 0000228310 00000 n 0000228331 00000 n 0000228860 00000 n 0000228881 00000 n 0000229236 00000 n 0000229257 00000 n 0000229532 00000 n 0000229552 00000 n 0000230081 00000 n 0000230102 00000 n 0000230631 00000 n 0000230652 00000 n 0000231142 00000 n 0000231163 00000 n 0000231650 00000 n 0000231671 00000 n 0000232200 00000 n 0000232221 00000 n 0000232708 00000 n 0000232729 00000 n 0000233216 00000 n 0000233237 00000 n 0000233951 00000 n 0000233972 00000 n 0000234447 00000 n 0000234468 00000 n 0000234739 00000 n 0000234759 00000 n 0000235465 00000 n 0000235486 00000 n 0000236009 00000 n 0000236030 00000 n 0000236416 00000 n 0000236437 00000 n 0000236931 00000 n 0000236952 00000 n 0000237488 00000 n 0000237509 00000 n 0000237895 00000 n 0000237916 00000 n 0000238305 00000 n 0000238326 00000 n 0000238849 00000 n 0000238870 00000 n 0000239256 00000 n 0000239277 00000 n 0000239800 00000 n 0000239821 00000 n 0000240414 00000 n 0000240435 00000 n 0000240821 00000 n 0000240842 00000 n 0000241357 00000 n 0000241378 00000 n 0000241865 00000 n 0000241886 00000 n 0000242415 00000 n 0000242436 00000 n 0000242707 00000 n 0000242727 00000 n 0000243082 00000 n 0000243103 00000 n 0000243632 00000 n 0000243653 00000 n 0000244138 00000 n 0000244159 00000 n 0000244634 00000 n 0000244655 00000 n 0000245255 00000 n 0000245276 00000 n 0000245798 00000 n 0000245819 00000 n 0000246342 00000 n 0000246363 00000 n 0000246754 00000 n 0000246775 00000 n 0000247164 00000 n 0000247185 00000 n 0000247574 00000 n 0000247595 00000 n 0000247991 00000 n 0000248012 00000 n 0000248548 00000 n 0000248569 00000 n 0000248874 00000 n 0000248894 00000 n 0000249417 00000 n 0000249438 00000 n 0000250027 00000 n 0000250048 00000 n 0000250437 00000 n 0000250458 00000 n 0000251047 00000 n 0000251068 00000 n 0000251339 00000 n 0000251359 00000 n 0000251846 00000 n 0000251867 00000 n 0000252352 00000 n 0000252373 00000 n 0000252988 00000 n 0000253009 00000 n 0000253422 00000 n 0000253443 00000 n 0000253930 00000 n 0000253951 00000 n 0000254539 00000 n 0000254560 00000 n 0000255096 00000 n 0000255117 00000 n 0000255748 00000 n 0000255769 00000 n 0000256358 00000 n 0000256379 00000 n 0000256768 00000 n 0000256789 00000 n 0000257161 00000 n 0000257182 00000 n 0000257775 00000 n 0000257796 00000 n 0000258185 00000 n 0000258206 00000 n 0000258729 00000 n 0000258750 00000 n 0000259136 00000 n 0000259157 00000 n 0000259449 00000 n 0000259469 00000 n 0000259992 00000 n 0000260013 00000 n 0000260385 00000 n 0000260406 00000 n 0000260873 00000 n 0000260894 00000 n 0000261304 00000 n 0000261325 00000 n 0000261699 00000 n 0000261720 00000 n 0000262188 00000 n 0000262209 00000 n 0000262696 00000 n 0000262717 00000 n 0000263258 00000 n 0000263279 00000 n 0000263698 00000 n 0000263719 00000 n 0000264093 00000 n 0000264114 00000 n 0000264601 00000 n 0000264622 00000 n 0000265109 00000 n 0000265130 00000 n 0000265617 00000 n 0000265638 00000 n 0000266123 00000 n 0000266144 00000 n 0000266631 00000 n 0000266652 00000 n 0000267129 00000 n 0000267150 00000 n 0000267657 00000 n 0000267678 00000 n 0000268163 00000 n 0000268184 00000 n 0000268675 00000 n 0000268696 00000 n 0000269259 00000 n 0000269280 00000 n 0000269767 00000 n 0000269788 00000 n 0000270256 00000 n 0000270277 00000 n 0000270764 00000 n 0000270785 00000 n 0000271209 00000 n 0000271230 00000 n 0000271613 00000 n 0000271634 00000 n 0000272008 00000 n 0000272029 00000 n 0000272572 00000 n 0000272593 00000 n 0000273061 00000 n 0000273082 00000 n 0000273569 00000 n 0000273590 00000 n 0000274014 00000 n 0000274035 00000 n 0000274576 00000 n 0000274597 00000 n 0000275140 00000 n 0000275161 00000 n 0000275571 00000 n 0000275592 00000 n 0000275966 00000 n 0000275987 00000 n 0000276361 00000 n 0000276382 00000 n 0000276925 00000 n 0000276946 00000 n 0000277370 00000 n 0000277391 00000 n 0000277934 00000 n 0000277955 00000 n 0000278428 00000 n 0000278449 00000 n 0000278873 00000 n 0000278894 00000 n 0000279437 00000 n 0000279458 00000 n 0000279728 00000 n 0000279748 00000 n 0000280239 00000 n 0000280260 00000 n 0000280530 00000 n 0000280550 00000 n 0000281018 00000 n 0000281039 00000 n 0000281449 00000 n 0000281470 00000 n 0000281957 00000 n 0000281978 00000 n 0000282469 00000 n 0000282490 00000 n 0000283031 00000 n 0000283052 00000 n 0000283448 00000 n 0000283469 00000 n 0000283911 00000 n 0000283932 00000 n 0000284468 00000 n 0000284489 00000 n 0000284861 00000 n 0000284882 00000 n 0000285236 00000 n 0000285257 00000 n 0000285780 00000 n 0000285801 00000 n 0000286173 00000 n 0000286194 00000 n 0000286661 00000 n 0000286682 00000 n 0000287275 00000 n 0000287296 00000 n 0000287682 00000 n 0000287703 00000 n 0000288252 00000 n 0000288273 00000 n 0000288809 00000 n 0000288830 00000 n 0000289419 00000 n 0000130980 00000 n trailer << /Size 558 /Root 1 0 R /Info 557 0 R >> startxref 289440 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/attachments.out0000644000064100006410000000017613247541377016642 0ustar ejbejbattachment1.txt: This is the first attachment. --END-- attachment2.png: .PNG........IHDR...1 (2620 bytes)--END-- test 35 done qpdf-8.0.2/qpdf/qtest/qpdf/append-xref-loop.out0000644000064100006410000000042013247541377017477 0ustar ejbejbWARNING: append-xref-loop.pdf: file is damaged WARNING: append-xref-loop.pdf: loop detected following xref tables WARNING: append-xref-loop.pdf: Attempting to reconstruct cross-reference table qpdf: operation succeeded with warnings; resulting file may have some problems qpdf-8.0.2/qpdf/qtest/qpdf/issue-150.pdf0000644000064100006410000000021113247541377015712 0ustar ejbejb00008 0 obj<>/W[0 2 0]/Size 0>>stream xc0endobj startxref 4qpdf-8.0.2/qpdf/qtest/qpdf/good6.out0000644000064100006410000000017713247541377015346 0ustar ejbejb/QTest is direct and has type boolean (3) /QTest is Boolean with value false unparse: false unparseResolved: false test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.1-ogen.check0000644000064100006410000000026213247541377020056 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.7.c-check0000644000064100006410000000005013247541377017672 0ustar ejbejbversion: 1.2 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/tiff-predictor.out0000644000064100006410000000027713247541377017252 0ustar ejbejbchecking tiff-predictor.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/show-page-1-image.out0000644000064100006410000011430513247541377017437 0ustar ejbejbJFIFHHC  !"$"$CX+" X!1A"7QSTart245q#BR 3b$CV%6Wcs8UeuҴA !15Q34Aaqr"RSs2T#B$C ?c\UM 5X]C-;˄ ϣYsk^bMQG:EDEUih&RRaдs` 1Q.+nV/诈H} yОWV"[ Eʋ̼zӍ""R³DL~M1N >^m'PQ99zek)ؘNM(֫%45/e_uEQ[U)!2 hnUS6X?85xOF Օn3P0q~d†UU*Vʩ9NFH܉rqODTV݃m*3`ZڊÈ#- WS罣;ߌEqQ=IM=[Z]{Gkow=ͭ>z{ж3_NߌD{?[~0}D%7/omhg"w=ͭ>6`+Jn^!B|E:{?[~0}hmmWԔܽCޅu6`'s*'){| kC?hmmN罣\TORSrzֆ~+)s{Gko- WS罣;ߌEqQ=IM=[Z]{Gkow=ͭ>z{ж3_NߌD{?[~0}D%7/omhg"w=ͭ>6`+Jn^!B|E:{?[~0}hmmWԔܽCޅu6`'s*'){| kC?hmmN罣\TORSrzֆ~+)s{Gko- WS罣;ߌEqQ=IM=[Z]{Gkow=ͭ>z{ж3_NߌD{?[~0}D%7/omhg"w=ͭ>6`+Jn^!B|E:{?[~0}hmmWԔܽCޅu6`'s*'){| kC?hmmN罣\TORSrzֆ~+)s{Gko- WS罣;ߌEqQ=IM=[Z]{Gkow=ͭ>z{ж3_NߌD{?[~0}D%7/omhg"w=ͭ>6`+Jn^!B|E9GͣKsV7'iZCj$A6*(@>"|[%e_񯤥:ic)״A ,(U>TR]ږ$OIoע-꟣_V$F~SVr6I%IJ_{A  A ʫGTʚSGYVˬl["^k:d#^_4 17e]TM;|2%j/:-B(33(Htu%Ws9WZV;īr ͱ[;wZ` Z ϋ{#ʝtNO ⪫?ν=\l뀈" """ """ """ """ """ """ """ !Η1T*%;tgk[Qa`Nm=Hzk+KԊi|֓1,aޣV%v|7Z>R/bGC^-cf㵅!/P|x:_voνe+3[{w=WS)A\UUbpn0mn""" """ wá^Rnzw|3*m?ZZw31 ;ۮdMĞ ]cT\5~__1W u$4 gfnvD}͸)LJ-g[2r3cIW'|FGp'2} z]Iu<':L|@pw q2<9$ do3'4Z믺CN4Lq [| r`q$͡N'5e.HثhD={|%X;zګS?jh:ڭ%nGMYU7'Á'!m4؇HKo1cCZц tk۫q[V6?7yǎEmSTtTI8rCIlh e=$,c kG"-S)xDDD@}hMdzQ_`3}0~ë[1zԽOr5/SvX=g΍RZxHG0 JLcnz&m^3dsq8(_vwں\fUHڞ$#=$+H,r~RW511/. äuY44mU孯w?N9q3ދv}ܸf5G45ZMJS]hQw\FOP7Z}}z" ,[je&Hh6GQ+}FGt?Wz4")vNYEStD=i\dcW:0VvݵWN;3s[gW/qX%L^JȨo&j z%kqyz#DDD@DDD@D,<{l2Ҹ,<{l2ԭԝv̫vnaޣV%eo+,\E5|ٖKXAQ~>KYپ:Wn%)A\UN'x^اqUU׸zNu"":""" "".UP"a`#~y0wb`<0?Rp#Z[Ѭ4Ҳ^RvIQQ1KU&>|@pw 0FK5M,#9O2R#K;-3DDD@{Zm@IPZASVzP55SøT(ÏV@P:,Rs${?=/OTNbJyp 28O Vnm-?dhqt8Z\) ]A"9B"(`" ""mU:WmU:Zz.znMտ;jĬaޣV%v覣ϛ2q~>J#<;e '}'p!ܷ^tmu>[G̓=]_LeW6o>+d̓Ds![%?rߣiCƧ֛GחK5Glo35˚I^lgClgv3 Igd^$gօʍUTș tnl""gѣo:J7Lu*JI 9q@c0dxgɮnwX nFpO Tsj SDE[=R- 8o;%wSXNlKh/iH8=w8[;]M[=#"6FxFpr삧AGUnb4. ?tzOf"}?džUM'cG648z5.m8C=="ȥ}_kM "9Z6M}_udKPwr?#HHFZ5/r5WHZݩ(6Kw53S02B2c̴ ֶzʹ5D:Ydy˞$Kbj*5V*\c\ispցOI:s`ZQFVՒJx%s]H t[*6ZaNdSdžV!c]ς>sNG0EU5vdi}(ۄ(ãשCeqv p\"~Z17t%>?ǥNyw7t߶y殆zm c#ҧ:6CmPn]<S$$/mcݽWHrK^^6 ҧ1i?=տ=^h/ve`hqypWT.uԖmUʾvSBf88`TUkMuxKKk ɌXXQV>VSNQ.\jkiݮm4UR!e={45O殯vcs&u w]f.%S4;Ts9d# U1^Caxve,:9n/훔9k ֜*DDZvU.j\DDD@DDM G*+ G*-J=Izjʽ7ji5bV[V0QBSQ͙gϸaHtu%)z䵝pq{J|^zbTw=WUX{hg7["+B" ""Jm2 j$rż}1A .zʹ <YdyXƌ#hoa{l/1S܏q%3 ]K"ً*4<Ϛi,8{sNI$*A=[D]l=qwW`aok՞B3Kl;LXjڧӌDN+US*B-K!%3Sh uij{>Ln.-9TNFWbY]`fI%rnI{C|kp?Tu^;lMw{8TыDqCjvpo tI!-fOg]DtN&r"*hDDD@c5Fi{4םAsPCvO 2OP%Sݱ'Xk5R,-=Znxpo|z jiV6T&OkR@dwc9\nwZ=lOMlc+7gK{؛q8Lu<. E\bKI#𜦩]iMYͷL[E8yޞGo;8W!8 Cs{$"#RB" """ Xx!>eSqzXx!>eS[|';B_WM4[ýFJj5bWhXj<,Y)z!/P|}u;/i]K/AStNO ⪫uqm pDEpuDDD@tYko)TP>y?ƂI/Ā}9N`*GNwo>ʘi\kȒr'=1@VH|eU69,bTN ܅`v9qn)llh@@=%]ӰbBq!1pa]؍Xd1Sr~HAr*- xvZDRiMTd]MLs7hk2z @C0.m0>>}ziH*F܍KmTfPDDKekeCm4􂦢J agGcODE[DDES;GQj8=%]ǐdj֫N3FzSkk@cͺu-?|uϚW{8|kn1#b58}W9\\{ŇV29w"nxr.䳐lGѻOvv%--)@xo[d*& 8:TBA!"p" """ """ ""&a`Na`Nm= ~e^4uo+-wՉ]bz)̳gv:_KXAZy׸콥wfkq/tNO u;?+N ֽ 3t!D@U~uL[- @mEsZ{ӱ>Qj,PBEKdO c&mRרr6YhIVVdK`24E M [3e1%;[=K\ k^ӂ1#^"W*"`S]?a.TQ5X,wgxwY-.˒?53uIh)Y6:۠ɱzxIF$^H4[K{ 'wJ+ԵcF7r8iŴݵTKJ+*9=c<g1cCZц s3"Po4+G|j+~b1\dR_;8'$&:m•9 3kwimKRLw&-"?wf.{huF=ivG 9mCJ檺b[v)ߐHl/l?}k C^(Htu%{{WfD { *]/ASk`C='A\rDDKidQFh$/G#{7(Y3$E[Xas#S`Tuڿ]^,I32Z`֣R5[ #GcvG{U;^A8s`|n$ҹ?j_̼vTPe. :ՅMl;XY)޻.uԓVNexcI8OX `|2jOzgY`a«5noƕRxMљOvv_kmfjցږhD{7yŽD%a(fi64DU$" """ :ZM`ќKXب4?炸 {i1SY-tsgǺ|Jf RvZ &Kl/7 i<@$ $*:MntU>E$h-obo>C_{2y78GOFk1hZ%`""" """ """ Xx!>eSqzXx!>eS[|';B_WM4[ýFJj5bWhXj<,Y)z!/P|}u;/i]K/AStNO ⪫uqm pDEpuDD[} .,F<5 epFޱ#z5d3;jKi-UZ7ARӃ̟ Ö96fCyn%+*"-7qWmGC+ֶFe>ҵ>ԳVmICͫt'"{+_NBց>9Y*5uLqv-EzXwNJca` ҵ--Q['bQ;ۻA +#nG,j D@DDD@ʶ:9*_7I#NZ2N (wMCgm߂G  v[Á2>j*D*jI'p=䆌n0GhC_oWoj:$<41;x9ߏ9*.Ke^+Fey,<@PI0`J(|%tDZpDD:}Z7k^m̮횖E xAZl*vμɻHǀ[<>>\8ͱ/8ڙTQEv=nsV0k9kH qr\DDD@DDD@tCQ|ʧJCQ|ʧKRORwڿ2MښizXտ;jĮбs|=yfY;XR/bGC^-gfi u{Rt+W_S-1wFd#iuH#yRO>e?]Ttx.wЀE~U>ЧY4""" "":^ji}])㙌b753 Mj5ӣӔ.q!/ ]ǨMu4&2=T)"JCK 2<0>G8'21vI,VO86qnE3Ǘ!sJF݄\gu).(6GE[ַܞ=졜x~\GxԮ0t[߲tdd _ˏƘ".zU-ۦ-]:"K5z<5+JvvX;Z~;+ǏpFqOCK=T#2`s8Vh. WxgU)>wF=JW`/S%S37k6iԵйvxvg1~xO=ULUSI<<,8q9.$$$պ ]]%m­h88)ltN˸)MQ:")f= ^vU\$ $cq^O.h:PjM5O6̶J納F9b6-Vk}= ݊# kG:<ʭ[ 1/Rd"a;[C?]R#mL|f5mZOk$o9.[dB[椴T&Ww,PP)i`Dpܞg(`:܅lcB^k6@A"roF ު 2ڴ  8w@*|DY%; y4b9D@DDD@DDD@D,<{l2Ҹ,<{l2ԭԝv̫vnaޣV%eo+,\E5|ٖKXAQ~>KYپ:Wn%)A\UN'x^اqUU׸zNu"":""}Y0s9T25TnD #lzQlT ުUGM3 qX3t2Z6ca\)s!6^-c;A`S(( lNI=dy"ӕUV6KD_DDD@DD`ƯӚ&Χoiiyw򱣾{@W-|UDKΨ^mEi;v#Y5PM'bjglT`AҶ6yIlGZt7Ho8SF֗5L-33."$>PΤl ™q"wuGI/箩A=ʅr7zJf%\x4 3GDPDDD@tCQ|ʧJCQ|ʧKRORwڿ2MښizXտ;jĮбs|=yfY;XR/bGC^-gf.Vjwr+pr={K\Ӈ4|KnDDyXu~HIxXd~]UL0O5998*u TinR`pGA W`tӻJe K82? esבօ#ZZr`;).""'E𯬤Y_U%4C2M<` >1F%̪FoFFYSYk>^kR}#q7R.5ړ[ح{,' kG kIg9.$ VYLZlLSqJꛅtǑ+ c!tkGi^9ePB"=es.'I%i6UEis_kdԴQI=` 5aݝJX74rDEaxwM]ud&V:2F\]qbgPE-+α׹4d*GE%{ZEħcUp1򭩆zʗ8 H֌ ꢮ:waW Du&6'Sf$?GS=-Wh(j=Su7v{dOnwK]g"-.C^UV>lDC4ps%#*l{:H&>ZhvImgu]jIItM["-h""" S<>h/GIDQкDHjv^?n#nE5 OP2==#Şmoֱmg1RH{bV/9 lKrr䪎>;Ա;qtgX P?ǎd#xU={b,ZAp>qdC㵅!/P|x:_voνe+3[{w=WS)A\UUbpn0mn""rtoh)k7L7ub\C@ah^NmI}Un]3X̹d<8QϻBƘsP""` sױŮi\>5 BtvuF88n.#Qɩm3Yfgy]mg(WgkOJ,SCyHpxej1hZΈ6&-fdmC6Ĝ;nm5DJk7uDTDDRQ3b .U,?TyhҧQG=C(90D80?oׯÞJv.DE֊j('FrpOĮe=oR SRK w4 liGPk9=Fu{uFWF%k4c,"*b""/l[e^.(FdQV-gڵ#-V2p{]21+#KܥY_U%4C2M<`(Kh}(6y̔GOZ8 3N90z;N[Fyy΂6K"`p8 = iuun%vtdC=|vlQ%󻸂ǿhmǥVoY[mOl89e>-kyTjOgr SP絸7ZN?WoֺGD5fizJ;,S#.. k87$yjVT[xDE$Z^诶*mWQmQy>>WMn9fJU9 tÑȈ"""~֩W}=} ݖ kz<¤=%6UK;=v{fc( <7G<ĂobhvuƖ:SC+#iRjN'f˔ -m:9 i2}7|ђp2CH9mlr=ȥ[""|.@+:;& #7,$`s.VMTk5N4; d[A.w]ҭ4""HXx!>eSqzXx!>eS[|';B_WM4[ýFJj5bWhXj<,Y)z!/P|}u;/i]K/AStNO ⪫uqm pDEpuDDD@PP&Q`G#|Nk~j'vVKpY4G$fzlfOncAhj$obc&H9 #p裵:ipZܙ ph9<;4tOm]HemE#zI* a=*"Y#Ek=4vXjõ[\A/w ?.`ͧmQڬ6Km _f h@OY9ԽOlRӻ/]ɩ%Vs<~Fx8Hzj:UvC88Nx'b歾}OUu a8pdLf67Z3~dMkZmmRR\ZTҳ otn!X義-Ćџ`t 8FYcnZ\Y3"g'28pZb9D@P~7u۝]ytv()Ồqnj< u(El{OM]C~euib8n8+\[ kt!'}Zg&pY!?U^4}3`> Oۺ30ZκM*JKU7DZlDD&kikdVڃ$ho7G#s!O Ȯ 3[-q$s_-Jmc ת,1D{+{b0SǺJSb)󠽈ܶ-nPĒb q厰5t؅&ϯ-ql ̂8K 9u;BL wr$R T,"-T0ZUZN{̅1oquqげ=u{7L-)a-''$*U飴jp4>b~$1-{Qp{' f$LvUTUφȄѧghPBdЎܹs4G󸵼;r]cZ5hkZ0ցVW5MRonD>,ʬ¬W̭BehW" MۆS, Y?wչ*h6ckG l[sۼ2iq =,{o)g`FR4D[yBz-U+-S2{!uZGKA 詡d,/ g|='ij-b2S^ XO~*ג :pDENXD@Q-z]|T z <ִds'ĜsX= kF\pEmkJn/RKWR7ki3ANqd:)<oR&ZK-Ʃҵ918kZ= Xƹk8$Ǩ9k3%)*o(y,t)XȻd[6[JZ,w+a0GIw>!:uaӴdEݒi]%DGetKM=moa>Is[$Zekڞ"K"($" "nj=T\^j=TjV NлWUSM7V0QڷzX.o>l?}k C^(Htu%{{WfD { *]/ASk`C='A\rDDD@DDD@DDIzz]O6fv\=DUv2?\E=FB?}5ZY1LЄ*M5TҞ:m/ks7%4-I12H/һJG]=7mճQ<\Z1;y9)j,QT{ ""ND.]ɎAoi~lt_^gc.q8x.vQ kt\t=. PPdĖU;ΰSVWGQ M<XǴ /vmueE9٨y_{.3p1oƶ`uSᵴi/T/Ǖ40T\YA$D@DDM G*+ G*-J=Izjʽ7ji5bV[V0QBSQ͙gϸaHtu%)z䵝pq{J|^zbTw=WUX{hg7["+B" ""(k[j9\~86D`q#qmoh;_C=%-Ifd119^9wkZq!9%"i1,G`5s(DDD@DD%;iv?3epUs[ݯQU]'dd)b#z(c;7ҖK [P9BXWu1@"5j &G#kS -cG q\"^Gz4fI@[},tЏ򱡠ODZzަpDED@DDa 1Z@,a!$q$\KFu*3FI"5j6l4AIb@Az*`ax< "/[.0U3G@i봥A1np[j&2Bz{mC-1юԥY4.T8:6;*i]uké)q}7zKd gNp+e-MTSTD"c0A ᱝ3[*%d M{β :*v< dmdSݷ]dɳmS7/s9q{J2ۦ5nLdء Z㘹Gz8v>~./jTSjGn7n>`Gy89-:fnT;#]ؾfծ&=uˁvAsY$vqFFoރV-)tT$/H8 mletT :*-A* vĜ2@DDD@Z5{7 Y $;6#|o- fU~;^HPCd0 =4{n1+>o(F keEu1 dKՖ֪E-_m2 !K++[!S$ci$Rʆ,P""" ˨dl~;4Snz0 yy}BߩjmJN&6J>a>.BgǺNLdjļyDEO*/w}f*Xg]S :fv8 ܓ֌ n>dfsȁGsAk{nj""'D@tm6t$T+\O#[ˠKYپ:Wn%)A\UN'x^اqUU׸zNu"":"" V) S[b2LϞ@q$4@\vԯPp&NKm,a?u%=w}WUYwGe_5.~E_,DFn{d{W\]Be+-ڛM4xxcMsA>7Aʂ%6DDT%DDD@DDPޛZ߶<2RXJ 3dï~=Apv)mԲTƓ3q: ۝U_xpu]}L3Ƚ.q{"+޲/5񯽾_OACO%M]Lcn{ hd B+PR,-E#{0:|uo 2y8qSP#WW`6lg5Ip&3x8 8 djOzeRFq9EOhKs>s4qq侢+>*%gUM#q]=:@et.qxeSqzXx!>eS[|';B_WM4[ýFJj5bWhXj<,Y)z!/P|}u;/i]K/AStNO ⪫uqm pDEpuDDynZ.a{i`|h<\qԵ}6wX2:wXDM9,.LK܈|r܊2nu+UƭS>i]{\O%yB] uPlyyT;W9M SOD âv}B]2gg m4< ЇuQ22E,%eDEaD@DDxok}Yy2M<8 kFOYྡྷ_Bt֢L[4-$óە9l`#cf+$8bpc镵l d7jvJ+ #oq烤#h9=@01|KRJ_:+qDF}Kd$D7/1E,Q5c@kZr V36ZQKoE@%bUuC,Z\B$D@VQKa-7*<@ OaJzkTro` #!'FZz>< v)**j2M+#`?/~~[U* CߌxcRdz10ND: iKE'oC #]&[6KD_DDts[ÜuƜ4Z [?ӶW٪{Q9㵅!/P|x:_voνe+3[{w=WS)A\UUbpn0mn/– L5:)8;?_t@rl p9ŮSM 6[u]; jo:ֽKJ[ӌbЈ)]ݡoطu=!5pg5 MKQ^4XkR?~)Y#G Nu*gK Rj$ocyo#NhPNYږ.JɡD@Tۦ?jQhqűg37xڝ!nBMG)1Ur- ˲X[Ĝawͥײw3[sRa zDؑ2ڈ2r/oR;VG߯HGrz6]!)tvPDq\\I$rWJiK :+}#7"y$$YXhn==:D2@DDsVWSm:֞B8] \W6;\.TW׹Q"+Ұ˖hbBz&OXU\^:jvMBI;.{89k#ƵV, OAh5P0uzo$Y+Q\!Vn/jˠ~rG0=+G_s=.s\rIŹƣSלJ$PkJ [9eo5{-m}ްz+[&,)U;5Ϲ& UnǴiv-2⫪iq;Nz]]8cZ5hkZ0ցU?q%kM8AI9qEZUړD[G׌""&D@tCQ|ʧJCQ|ʧKRORwڿ2MښizXտ;jĮбs|=yfY;XR/bGC^-gf8>}#I8x;:qvuta7*nܧ磭ydNAlh}vk*HgB#pqx"l{|2+Vi hku8?1j-Umi7M(ql8prz;]?=,ΊFNi*K&Zv3h:Hbøa@Q\.7vC-އdV<9t/6㫽.qu\*tr[]TnZ2RӸ+FG# H%zdCz ps-ԍa'y8x<\Cę Ӭ5frת+]6ZgߴcZ *Γ=E N5E:' "60zKx(sEu}Nݫw&s$ϏzWKa8]*qy@gefNHyr,4x\'h1$bn$"-td|ZiI.=+9{Oɼ{ #/,Fz [S}P߃uPdN7?#@ Q+x*d3KtYKp&ѻy1AZxӛS>a6M򱱖L1bG qϨ˟=.5uࢨ2S`{O^?7gCT:t^$E5M$>}lPItTZdh?bx>7@3ț 1[H]]<m*Nc: Dr0# `#9%ܷFm(h{uJ:hPYh^TγȯR&`DEDDc-٧,S)m0iwSGPdq$8Un@qt׭8tm3:VIo8@z+jھ \Wk3r[#z'jk"FU-a9m3]SXᡏ\j@F<_zJ=.f0}h@=ؖ-/5M_Z&I'ub@˓/yΚeuV+%mAEE 1,hjR""" "nj=T\^j=TjV NлWUSM7V0QڷzX.o>l?}k C^(Htu%{{WfD { *]/ASk`C='A\rDDܶ/vA٪G1Rܢn\#s'DdFv-_Զdqm=l| Bܨ(ntP\hnTD#'5?5>H>ƄY[.%TDwRq MmPD{<յFI6ډ0#q# ڶx;ZWr`r3%t_^_hm`Np|! v;Ui(f0B0zOY$l xp]vQ]/[=IU]0i=[pрD@DDM G*+ G*-J=Izjʽ7ji5bV[V0QBSQ͙gϸaHtu%)z䵝pq{J|^zbTw=WUX{hg7["+B" """ """ """ *byI) bu?/ǵc5ixzj@&%n EeOt{Tk @ޖ r,\\\Gwf- 30Ruov&M* .6K0I't8Ӎ7W@E^ϥ%sۃ&9F<|qW0ҚygeE4A3Y$n-sO(V{'\$[ SK$\#v #/90Xf'?ȓs:ZlVk5<v9 2q'cxÚ#Ӵ~&7A 4z]֯#~)1/譖hT[ƩMEݣjX"툛|Eh'`Xz^ռq*D\m cmI "WIزFK <1uZ ]t➆z$G ep8ޞ{č P1̞Z~YXthY͈_Puh$j:y]>2+B펲vs  9 ;b-k>g~dz466߃T?~ }TCyh 53c}KЛGowBmm>!<~N؃Gϙ߱Ǿ}%Mͷ;66߃UZ?x'lAzMg{cB>ƒt&cЛGo{b- =&w{=cI{hsm1NMͷD= yhY;=Џ 9t&c؃G<~OIl{G^?~ }Shsm1QlAvZ?x'|g=#i/wBmm> 9 ;b-k>g~dz466߃T?~ }TCyh 53c}KЛGowBmm>!<~N؃Gϙ߱Ǿ}%Mͷ;66߃UZ?x'lAzMg{cB>ƒt&cЛGo{b- =&w{=cI{hsm1NMͷD= yhY;=Џ 9t&c؃G<~OIl{G^?~ }Shsm1QlAvZ?x'|g=#i/wBmm> 9 ;b-k>g~dz466߃T?~ }TCyh 53c}KЛGowBmm>!<~N؃Gϙ߱Ǿ}%Mͷ;66߃UZ?x'lAzMg{cB>ƒt&cЛGo{b- =&w{=cI{hsm1NMͷD= yhY;=Џ 9t&c؃G<~OIl{G^?~ }Shsm1QlAvZ?x'|g=#i/wBmm> 9 ;b-k>g~dz466߃T?~ }TCyh 53c}Kw4Wni#6zx+W[HU[H"#Dq7>-YTnah񗀾mзyՑ;o_nnsT>ǬnHTQSU\qN^:yEBO#XI9 dictionary key /Quack: operation for string attempted on object of type null: returning empty string Two errors WARNING: object-types.pdf, object 8 0 at offset 717: returning null for out of bounds array access WARNING: object-types.pdf, object 8 0 at offset 717 -> null returned from invalid array access: operation for string attempted on object of type null: returning empty string One error WARNING: object-types.pdf, object 8 0 at offset 745: operation for string attempted on object of type name: returning empty string WARNING: object-types.pdf, object 4 0 at offset 386 -> dictionary key /Potato: operation for name attempted on object of type null: returning dummy name test 42 done qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.11.c-check0000644000064100006410000000040613247541377017752 0ustar ejbejbversion: 1.4 linearized: 1 encrypted: 1 user password: extract for accessibility: 1 extract for any purpose: 1 print low resolution: 1 print high resolution: 1 modify document assembly: 1 modify forms: 1 modify annotations: 1 modify other: 1 modify anything: 1 qpdf-8.0.2/qpdf/qtest/qpdf/issue-51.pdf0000644000064100006410000000172113247541377015641 0ustar ejbejb%PDF-100000000000002 0 obj <> stream 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 0 obj <>/00000000 2 0 R>>000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007 0 obj <>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000xref 0 9 0000000000 00000 f 0000000200 00000 n 0000000009 00000 n 0000000000 00000 n 0000000000 00000 n 0000000000 00000 n 0000000000 00000 n 0000000400 00000 n 0000000000 00000 n trailer<>startxref 740 %%EOFqpdf-8.0.2/qpdf/qtest/qpdf/good19.pdf0000644000064100006410000000201013247541377015360 0ustar ejbejb%PDF-1.5 % 1 0 obj << /Type /ObjStm /N 5 /First 31 /Length 418 >> stream 2 0 3 42 4 102 5 262 6 285 % 2 << /Type /Catalog /Pages 3 0 R >> % 3 << /Type /Pages /Kids [ 4 0 R ] /Count 1 >> % 4 << /Type /Page /Parent 3 0 R /MediaBox [0 0 612 792] /Contents 7 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> % 5 [ /PDF /Text ] % 6 << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endstream endobj 7 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 8 0 obj << /Type /XRef /Size 9 /W [1 2 1] /Length 36 /Root 2 0 R >> stream  i endstream endobj startxref 617 %%EOF 7 0 obj << /Length 43 >> stream BT /F1 24 Tf 72 720 Td (Salad) Tj ET endstream endobj 9 0 obj << /Type /XRef /Size 10 /Index [7 1 9 1] /W [0 2 0] /Length 4 /Root 2 0 R /Prev 617 >> stream  i endstream endobj startxref 873 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad18-recover.out0000644000064100006410000000026013247541377016663 0ustar ejbejbWARNING: bad18.pdf (trailer, offset 753): unexpected ) /QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.5-ogen.check0000644000064100006410000000026213247541377020421 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.1.c-check0000644000064100006410000000005013247541377021354 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/deterministic-id-yn.pdf0000644000064100006410000052776513247541377020174 0ustar ejbejb%PDF-1.4 % 310 0 obj << /Linearized 1 /L 176117 /H [ 843 437 ] /O 313 /E 5494 /N 43 /T 169797 >> endobj xref 310 17 0000000015 00000 n 0000000741 00000 n 0000000843 00000 n 0000001280 00000 n 0000001470 00000 n 0000001768 00000 n 0000001992 00000 n 0000004524 00000 n 0000004563 00000 n 0000004665 00000 n 0000004765 00000 n 0000004862 00000 n 0000004967 00000 n 0000005076 00000 n 0000005178 00000 n 0000005282 00000 n 0000005393 00000 n trailer << /Info 307 0 R /Root 311 0 R /Size 327 /Prev 169787 /ID [<9b1c69409fc9a5f50e44b9588e3e60f8><3a844bdaddd50ffb3c97e606b86997cf>] >> startxref 0 %%EOF 311 0 obj << /Lang (en) /Metadata 308 0 R /PageLabels 309 0 R /Pages 306 0 R /Type /Catalog >> endobj 312 0 obj << /Filter /FlateDecode /S 597 /Length 356 >> stream xc```b``f`2fB X  @x@L L,@JƋyY@o씽NNB<6^\4PY[G+Y>y2I'!+} E>M4s5>:޺cP F %$K3\qlcOao`YΠyj5/mgh i:R4ZVd9aJ^-8aҍ$P PC[ /L8D>%.FNCa]qm&ΊPm!PJ?VE5; msԱ:Xdx8 ge`g`Ţ.m 0J endstream endobj 313 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 314 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 306 0 R /Resources 315 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 314 0 obj << /Filter /FlateDecode /Length 225 >> stream xuMKA +rT1̵ Pebk{ofWh&I3;c+ ~5 **Mck$?r_"s8`9@> /Font << /F10 321 0 R /F11 323 0 R /F12 322 0 R /F3 324 0 R /F4 325 0 R /F5 326 0 R /F6 318 0 R /F7 319 0 R /F9 320 0 R >> /ProcSet [ /PDF /ImageB /ImageC /Text ] >> endobj 316 0 obj << /Filter /FlateDecode /N 3 /Length 2453 >> stream xgPTY{si249IЀ$Hn2-49AD$)8:EEyqpQQYU[[Ϗ:;羺UzȐ ɰ> 3(8p H 0D[oo+k?Q '/s,^IW8=%1{8cq?_e> ʄS+ԮfG[^N/?_zVCte?(.Or}]/t7Y9;Ꙁ嶖z RWN0t8@g ةo9(0-pGo:(H2O:4w7&CɛRTRӬҪ>e dje͜r:fg(fn;=b{y;&w:<+n\www̛||~=ߣ~pڽ{p n~.bE,6)>R)ᕌT4t灎2fYAٻ[(7*=D8zHPQURYR*jڮFfoa#6GZkj k?9ι^Xڱ  YǛ =d,\̜ =uGZuZm/ i޳?\Nk/:2;:;]]Cv[tˉ/_(!,]̺8)[z_ rϧoל]x7dercxA;wZ73l=|ýk]Y?24?`,tL`a7->gM`"00>|W%y2ETӴ/7|jq6wk^k?&,YVwFz矽OxPAɏ?M-~'K KKB. t ]@B. t ]V,r96_6@-Jh 7#edoMDEa&s|.7>s7 endstream endobj 317 0 obj [ /ICCBased 316 0 R ] endobj 318 0 obj << /BaseFont /Times-Italic /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 319 0 obj << /BaseFont /Times-Bold /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 320 0 obj << /BaseFont /Courier /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 321 0 obj << /BaseFont /Courier-Oblique /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 322 0 obj << /BaseFont /Courier-BoldOblique /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 323 0 obj << /BaseFont /Courier-Bold /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 324 0 obj << /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 325 0 obj << /BaseFont /Helvetica-BoldOblique /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 326 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 1 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 2 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 306 0 R /Resources 315 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 2 0 obj << /Filter /FlateDecode /Length 336 >> stream xSMO@ﯘ&vjƶHUJ+Mf2ͼHB{L%x)IJ) CƂ$( pcHIV& r·v9 }hEGBg 0n#7Q/C#AAyچF 9p3c=q,s 0Dk')Zu)`t2ݴ_Ti-J0RIa| uP $.o@a8iFB=-|2|Wu+hq#-2Qx7kLF5]~..@3&> endobj 4 0 obj << /D [ 122 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 5 0 obj << /A 4 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 680.124 154.961 689.124 ] /Subtype /Link /Type /Annot >> endobj 6 0 obj [ 5 0 R 7 0 R 9 0 R 10 0 R 12 0 R 13 0 R 15 0 R 16 0 R 18 0 R 19 0 R 21 0 R 22 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R 33 0 R 35 0 R 36 0 R 37 0 R 38 0 R 40 0 R 41 0 R 43 0 R 44 0 R 46 0 R 47 0 R 49 0 R 50 0 R 52 0 R 53 0 R 55 0 R 56 0 R 58 0 R 59 0 R 60 0 R 61 0 R 63 0 R 64 0 R 65 0 R 66 0 R 68 0 R 69 0 R 71 0 R 72 0 R 73 0 R 74 0 R 76 0 R 77 0 R 79 0 R 80 0 R 81 0 R 82 0 R 84 0 R 85 0 R 87 0 R 88 0 R 90 0 R 91 0 R 93 0 R 94 0 R 96 0 R 97 0 R 99 0 R 100 0 R 102 0 R 103 0 R 105 0 R 106 0 R 107 0 R 108 0 R 110 0 R 111 0 R 112 0 R 113 0 R 114 0 R 115 0 R 116 0 R 117 0 R 119 0 R 120 0 R ] endobj 7 0 obj << /A 4 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 534.3 680.124 542.08 689.124 ] /Subtype /Link /Type /Annot >> endobj 8 0 obj << /D [ 136 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 9 0 obj << /A 8 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 668.124 148.536 677.124 ] /Subtype /Link /Type /Annot >> endobj 10 0 obj << /A 8 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 537.134 668.124 542.134 677.124 ] /Subtype /Link /Type /Annot >> endobj 11 0 obj << /D [ 138 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 12 0 obj << /A 11 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 656.124 205.901 665.124 ] /Subtype /Link /Type /Annot >> endobj 13 0 obj << /A 11 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 536.802 656.124 541.802 665.124 ] /Subtype /Link /Type /Annot >> endobj 14 0 obj << /D [ 138 0 R /XYZ 72.0 627.192 null ] /S /GoTo /Type /Action >> endobj 15 0 obj << /A 14 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 644.124 202.929 653.124 ] /Subtype /Link /Type /Annot >> endobj 16 0 obj << /A 14 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 536.926 644.124 541.926 653.124 ] /Subtype /Link /Type /Annot >> endobj 17 0 obj << /D [ 138 0 R /XYZ 72.0 127.049 null ] /S /GoTo /Type /Action >> endobj 18 0 obj << /A 17 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 632.124 187.474 641.124 ] /Subtype /Link /Type /Annot >> endobj 19 0 obj << /A 17 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 537.019 632.124 542.019 641.124 ] /Subtype /Link /Type /Annot >> endobj 20 0 obj << /D [ 163 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 21 0 obj << /A 20 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 620.124 146.658 629.124 ] /Subtype /Link /Type /Annot >> endobj 22 0 obj << /A 20 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 537.146 620.124 542.146 629.124 ] /Subtype /Link /Type /Annot >> endobj 23 0 obj << /D [ 163 0 R /XYZ 72.0 669.305 null ] /S /GoTo /Type /Action >> endobj 24 0 obj << /A 23 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 608.124 183.041 617.124 ] /Subtype /Link /Type /Annot >> endobj 25 0 obj << /A 23 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 537.047 608.124 542.047 617.124 ] /Subtype /Link /Type /Annot >> endobj 26 0 obj << /A 303 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 596.124 172.009 605.124 ] /Subtype /Link /Type /Annot >> endobj 27 0 obj << /A 303 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 537.115 596.124 542.115 605.124 ] /Subtype /Link /Type /Annot >> endobj 28 0 obj << /A 294 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 584.124 194.093 593.124 ] /Subtype /Link /Type /Annot >> endobj 29 0 obj << /A 294 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 536.98 584.124 541.98 593.124 ] /Subtype /Link /Type /Annot >> endobj 30 0 obj << /A 293 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 572.124 209.663 581.124 ] /Subtype /Link /Type /Annot >> endobj 31 0 obj << /A 293 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 536.884 572.124 541.884 581.124 ] /Subtype /Link /Type /Annot >> endobj 32 0 obj << /A 300 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 560.124 255.333 569.124 ] /Subtype /Link /Type /Annot >> endobj 33 0 obj << /A 300 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 536.604 560.124 541.604 569.124 ] /Subtype /Link /Type /Annot >> endobj 34 0 obj << /D [ 185 0 R /XYZ 72.0 636.0 null ] /S /GoTo /Type /Action >> endobj 35 0 obj << /A 34 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 548.124 294.063 557.124 ] /Subtype /Link /Type /Annot >> endobj 36 0 obj << /A 34 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.338 548.124 541.338 557.124 ] /Subtype /Link /Type /Annot >> endobj 37 0 obj << /A 295 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 536.124 130.045 545.124 ] /Subtype /Link /Type /Annot >> endobj 38 0 obj << /A 295 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.212 536.124 542.212 545.124 ] /Subtype /Link /Type /Annot >> endobj 39 0 obj << /D [ 196 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 40 0 obj << /A 39 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 524.124 184.956 533.124 ] /Subtype /Link /Type /Annot >> endobj 41 0 obj << /A 39 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.894 524.124 541.894 533.124 ] /Subtype /Link /Type /Annot >> endobj 42 0 obj << /D [ 198 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 43 0 obj << /A 42 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 512.124 189.335 521.124 ] /Subtype /Link /Type /Annot >> endobj 44 0 obj << /A 42 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.868 512.124 541.868 521.124 ] /Subtype /Link /Type /Annot >> endobj 45 0 obj << /D [ 198 0 R /XYZ 72.0 690.141 null ] /S /GoTo /Type /Action >> endobj 46 0 obj << /A 45 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 500.124 164.008 509.124 ] /Subtype /Link /Type /Annot >> endobj 47 0 obj << /A 45 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.134 500.124 542.134 509.124 ] /Subtype /Link /Type /Annot >> endobj 48 0 obj << /D [ 198 0 R /XYZ 72.0 464.807 null ] /S /GoTo /Type /Action >> endobj 49 0 obj << /A 48 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 488.124 169.762 497.124 ] /Subtype /Link /Type /Annot >> endobj 50 0 obj << /A 48 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.098 488.124 542.098 497.124 ] /Subtype /Link /Type /Annot >> endobj 51 0 obj << /D [ 202 0 R /XYZ 72.0 408.138 null ] /S /GoTo /Type /Action >> endobj 52 0 obj << /A 51 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 476.124 174.195 485.124 ] /Subtype /Link /Type /Annot >> endobj 53 0 obj << /A 51 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.072 476.124 542.072 485.124 ] /Subtype /Link /Type /Annot >> endobj 54 0 obj << /D [ 204 0 R /XYZ 72.0 187.938 null ] /S /GoTo /Type /Action >> endobj 55 0 obj << /A 54 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 464.124 159.023 473.124 ] /Subtype /Link /Type /Annot >> endobj 56 0 obj << /A 54 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.164 464.124 542.164 473.124 ] /Subtype /Link /Type /Annot >> endobj 57 0 obj << /D [ 206 0 R /XYZ 72.0 528.576 null ] /S /GoTo /Type /Action >> endobj 58 0 obj << /A 57 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 452.124 232.17 461.124 ] /Subtype /Link /Type /Annot >> endobj 59 0 obj << /A 57 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.716 452.124 541.716 461.124 ] /Subtype /Link /Type /Annot >> endobj 60 0 obj << /A 304 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 440.124 233.86 449.124 ] /Subtype /Link /Type /Annot >> endobj 61 0 obj << /A 304 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.706 440.124 541.706 449.124 ] /Subtype /Link /Type /Annot >> endobj 62 0 obj << /D [ 206 0 R /XYZ 72.0 264.662 null ] /S /GoTo /Type /Action >> endobj 63 0 obj << /A 62 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 428.124 225.016 437.124 ] /Subtype /Link /Type /Annot >> endobj 64 0 obj << /A 62 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.76 428.124 541.76 437.124 ] /Subtype /Link /Type /Annot >> endobj 65 0 obj << /A 296 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 416.124 277.557 425.124 ] /Subtype /Link /Type /Annot >> endobj 66 0 obj << /A 296 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.44 416.124 541.44 425.124 ] /Subtype /Link /Type /Annot >> endobj 67 0 obj << /D [ 211 0 R /XYZ 72.0 518.119 null ] /S /GoTo /Type /Action >> endobj 68 0 obj << /A 67 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 404.124 190.364 413.124 ] /Subtype /Link /Type /Annot >> endobj 69 0 obj << /A 67 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.972 404.124 541.972 413.124 ] /Subtype /Link /Type /Annot >> endobj 70 0 obj << /D [ 219 0 R /XYZ 72.0 410.0 null ] /S /GoTo /Type /Action >> endobj 71 0 obj << /A 70 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 392.124 186.331 401.124 ] /Subtype /Link /Type /Annot >> endobj 72 0 obj << /A 70 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.998 392.124 541.998 401.124 ] /Subtype /Link /Type /Annot >> endobj 73 0 obj << /A 298 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 380.124 136.409 389.124 ] /Subtype /Link /Type /Annot >> endobj 74 0 obj << /A 298 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.176 380.124 542.176 389.124 ] /Subtype /Link /Type /Annot >> endobj 75 0 obj << /D [ 221 0 R /XYZ 72.0 667.229 null ] /S /GoTo /Type /Action >> endobj 76 0 obj << /A 75 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 368.124 244.815 377.124 ] /Subtype /Link /Type /Annot >> endobj 77 0 obj << /A 75 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.64 368.124 541.64 377.124 ] /Subtype /Link /Type /Annot >> endobj 78 0 obj << /D [ 221 0 R /XYZ 72.0 560.872 null ] /S /GoTo /Type /Action >> endobj 79 0 obj << /A 78 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 356.124 227.215 365.124 ] /Subtype /Link /Type /Annot >> endobj 80 0 obj << /A 78 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.746 356.124 541.746 365.124 ] /Subtype /Link /Type /Annot >> endobj 81 0 obj << /A 297 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 344.124 167.338 353.124 ] /Subtype /Link /Type /Annot >> endobj 82 0 obj << /A 297 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.114 344.124 542.114 353.124 ] /Subtype /Link /Type /Annot >> endobj 83 0 obj << /D [ 226 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 84 0 obj << /A 83 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 332.124 214.562 341.124 ] /Subtype /Link /Type /Annot >> endobj 85 0 obj << /A 83 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.824 332.124 541.824 341.124 ] /Subtype /Link /Type /Annot >> endobj 86 0 obj << /D [ 226 0 R /XYZ 72.0 393.752 null ] /S /GoTo /Type /Action >> endobj 87 0 obj << /A 86 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 320.124 239.324 329.124 ] /Subtype /Link /Type /Annot >> endobj 88 0 obj << /A 86 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.672 320.124 541.672 329.124 ] /Subtype /Link /Type /Annot >> endobj 89 0 obj << /D [ 226 0 R /XYZ 72.0 277.193 null ] /S /GoTo /Type /Action >> endobj 90 0 obj << /A 89 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 308.124 249.211 317.124 ] /Subtype /Link /Type /Annot >> endobj 91 0 obj << /A 89 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.612 308.124 541.612 317.124 ] /Subtype /Link /Type /Annot >> endobj 92 0 obj << /D [ 228 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 93 0 obj << /A 92 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 296.124 181.908 305.124 ] /Subtype /Link /Type /Annot >> endobj 94 0 obj << /A 92 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.024 296.124 542.024 305.124 ] /Subtype /Link /Type /Annot >> endobj 95 0 obj << /D [ 230 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 96 0 obj << /A 95 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 284.124 232.703 293.124 ] /Subtype /Link /Type /Annot >> endobj 97 0 obj << /A 95 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.618 284.124 541.618 293.124 ] /Subtype /Link /Type /Annot >> endobj 98 0 obj << /D [ 230 0 R /XYZ 72.0 626.773 null ] /S /GoTo /Type /Action >> endobj 99 0 obj << /A 98 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 272.124 176.938 281.124 ] /Subtype /Link /Type /Annot >> endobj 100 0 obj << /A 98 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.054 272.124 542.054 281.124 ] /Subtype /Link /Type /Annot >> endobj 101 0 obj << /D [ 230 0 R /XYZ 72.0 127.887 null ] /S /GoTo /Type /Action >> endobj 102 0 obj << /A 101 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 260.124 216.675 269.124 ] /Subtype /Link /Type /Annot >> endobj 103 0 obj << /A 101 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.812 260.124 541.812 269.124 ] /Subtype /Link /Type /Annot >> endobj 104 0 obj << /D [ 235 0 R /XYZ 72.0 408.866 null ] /S /GoTo /Type /Action >> endobj 105 0 obj << /A 104 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 120.0 248.124 266.259 257.124 ] /Subtype /Link /Type /Annot >> endobj 106 0 obj << /A 104 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.602 248.124 541.602 257.124 ] /Subtype /Link /Type /Annot >> endobj 107 0 obj << /A 299 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 236.124 248.115 245.124 ] /Subtype /Link /Type /Annot >> endobj 108 0 obj << /A 299 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.62 236.124 541.62 245.124 ] /Subtype /Link /Type /Annot >> endobj 109 0 obj << /D [ 237 0 R /XYZ 72.0 650.0 null ] /S /GoTo /Type /Action >> endobj 110 0 obj << /A 109 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 224.124 204.549 233.124 ] /Subtype /Link /Type /Annot >> endobj 111 0 obj << /A 109 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.886 224.124 541.886 233.124 ] /Subtype /Link /Type /Annot >> endobj 112 0 obj << /A 305 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 212.124 143.288 221.124 ] /Subtype /Link /Type /Annot >> endobj 113 0 obj << /A 305 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.134 212.124 542.134 221.124 ] /Subtype /Link /Type /Annot >> endobj 114 0 obj << /A 301 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 200.124 193.284 209.124 ] /Subtype /Link /Type /Annot >> endobj 115 0 obj << /A 301 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.846 200.124 541.846 209.124 ] /Subtype /Link /Type /Annot >> endobj 116 0 obj << /A 302 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 188.124 154.828 197.124 ] /Subtype /Link /Type /Annot >> endobj 117 0 obj << /A 302 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.068 188.124 542.068 197.124 ] /Subtype /Link /Type /Annot >> endobj 118 0 obj << /D [ 287 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 119 0 obj << /A 118 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 176.124 155.373 185.124 ] /Subtype /Link /Type /Annot >> endobj 120 0 obj << /A 118 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.064 176.124 542.064 185.124 ] /Subtype /Link /Type /Annot >> endobj 121 0 obj << /Filter /FlateDecode /Length 15258 >> stream xOsdy>i=}ϿՄ-Yز/:zQ"!:Ȣ\,١sO&HIc;ʬ,A2_{<×_+>D=|ͮ>EW~_|ͯsxpſ?|wO'ť7/8?O3qyL?\a?ޓ_qo=κԇ?x7:Ox:O>xᛧ>|zGxSs~>\>~5[>gzYlG9UvUhm9)B8$RT+߀8D0D0D0E0E0E0E`&]v"8Dp)S.\"@ XkZ@kZE0D0D0D0D0E0E0E`Q7:T/GQ=ꤚ,Y.\d2C,(bE,eT*Q2*YYYY&Y&Y&Y6ldȲe'N,Yd9r$I,Y.C,<2Xf,bE,eVJAAAIIII,Y8:L's;x8?6q>|Og7ٍ~z=~c׳V?ӛe7K >)C$ﱺIK-{u=^z[b qo.uR=΃꠺SnF5Yvdr A,'YNdr=wZ,]jܳwrOߡbReeeeeeee#F,;Yvdr A,'YN\dr=Z,("{/XQbGReeeeeee#F,Yvdr A,'YNdr<2C,e"Y2XfˤO'i4I$}>IsO'i~Uy߬+|&2?_և/_y᫗w|`OoFr˼}w&kѵnݛ4JTwWԍ)YHT A,YNd9r"%{(XIb'R4B]rO& $$$F,۶_#P꠺SFzj\dr=iZ,"{(XIb'Reeeeeee#F,Yvdr A,'YNdr=iZ,"{(XI#U,Qj LLLLldȲ-bt.{>|w_V3Dy7 y=h"|̇/~?=}r?>}gqycۇ}yeW:?+-)*|{ ;KUuzJ}*|{M,Yd9r$I,Y.LjLuj LLLldȲe'N,;Yd9r$I,Y.\by>B-"#by>B-#dddddddȲe#F,;Yvd9r$I,'Y.\d2}Z,/ǷE,/G2}|{]2},,i4I$}>IsO'iWmwqc}ޡ.:~v{_=yo{dz1n5qܮtoN{ uPݩ^RonTe#F,;Yvdr A,'YN\drze=IJbYX"ebYX*eeeeeee#Fm[ [%uT7ԣPTAuPM,Y.\bX!qe"Q2XF˨b,,,,,,,,Y6ldɲe'A,Yd9r"EK,<2C,e"Y2Xf% $$$F,Y^3jerN~uyY^YzxAl{.~f8w^:f8%#k]q9*ՍjA,EKRıT,U$KReY+=JuzJzHN5Yvdr A,'YNdrze=IJbYX"e-bYX*eeeeeeee#F,;Yvd9r A,'YN\drebX!qe"Q2XF˨ddddddddȲe#N,;Yvd9r$I,Y.\d2C,,bE,eV*Y2i4I$}>IsO'i4Ykkn;r6l[}l_||3=ro~wmn\wJ+yX-_gY-Ii|_KW[nTvS:Lu4iT.S]Hul)'=RN{p+y%=TTTTTTTT6Sme7<-[(f.S]Hut)'=եT\rRݓ]+.Lj3nTvS:Lu4iT.S]HuO})'=jRBYI5+f%լLj3bSQǽFqd|5bso;|c~fD8ƽ7#N嗗7'嗗αV<,///;!oO//;!OTvS:Lu0iT.S]Luj=HZRTk!ZHVRTk%ZM5L5L5L5M5M5Mj3fTvS:Lu0iTNS]LujAQH5 F!(TjTS S S SMSMSMSMSmLj7nTS:Lu4iT.R̓T *za}~d|_.c~f}L:;;f:=N%A~$yX-_Kj3nTS:Lu4iT.S]G9QNJxT(70000444fT륙G}Iwgq7'gq妺Lu2E:yRT('}_Yw;L+n|@y|R>Lu0iTNS]LuހrRH^Huo@@9 $7 TTTTTTTT6Sm[9Z{Kދi|E7Mu2E{Iuo@@9 ('սTjjjjjjjj3fTvSMu0aTNS]Lu"ս夺7 ހrRPN{M5L5L5L5M5M5Mj3f{ܸuWi7Ιܬwƍm܌e8տW/߾axg3#Zu7Oئ>;m$_f|m(O<,'=PnaaaiiiiTz~co{<-[(f.S]Hum('=T؆rRc+ Lj3nTvS:Lu4iT.S]Hum('=PN{lC9 Lj3mC{lӏ?ﮏ~~x?wwdQFޛl/Wօ<-_. yX-__. 6SM0aTNS:Mu2E BNKBN׋BN=z.Lj3nTvS:Lu4iT.S]HzI^IzQ޷T兜T慜TTTTTTTTNUS̶#Q.*ǫlzT)_vWp)92ך"7W[=#κן!AuzIuzJr"}Is_rDu;$dAr~'oNzFzzHɲe'N,Yd9r"E,XsH-PZ,9}]222222ɲe#hMW˛Q,O<,7iT.RW㠜T8$/A9qH^Iu_rS S S SMSMSMSMSmLj7nTS:Lu4iT.R̓T |߿>z??^q㻏3]Of]Kzyr}fPDy^L0 {Yw; ˻q}koϗF7'#A[nTvS:Lu4iT.S]Hu|I9/%/wTΗWRݛrPnaaaiiiiTyyMjA8,˻Y-o2eTޔrRݛrPN{S+M9(70000444fTvSM0aTNSLu2E{SIuo!y!ս)多TjVRݛrHLuOXK*ˈϣܹ>}\8_ͽ姏}ˎ=Ɲ1^kmi?o˾:Iz_t꠺S\Z(mMq v\,Or뒇EܺrSM0aTNS:Mu2E_IuK9#)'}Tjjjjjjjj3f2i1ޒ[(f|rS]Lu"} 0夺>rR݇SN`M5L5L5L5M5M5Mj3fTvS:Lu0iTNS]LujAYH5 f!,TjVS S S SMSMSMSMSm9zlJ<_-vv}1uϣ?|߽—C"qޣ|ݶβ{Shw nAy|RLj3nTS:Lu4iT.S]єFSN{M9iT4rS S S S SMSMSMSmLmz2[~XwZ,byZnT.S]єFK^HuO)'=T4rS S S SMSMSMSmLj3nTS:Lu4iT.S]AyjRBYH5 f%լTTTTTTTTit`gkuo.|w>? ϳ~}˛ ϗ!֝l8ΗLG)|B!yZ>(ߧPHw/8߯f ɛ]H)rSM0aTNS:Mu2E9$'Rl!9^瀼e{M5L5L5L5M5M5M5Mj3fTvS:Lu0iT.S]H=zٞCrRl!9^瀼e{M5L5L5L5L5M5M5Mj3fTvS:Lu0iT.S]Lue{I=T/sHN9$'͖fKiRl)m6[8X2 덒c>c<|7?ٝvuL;#Zw~G?rgmKNz)oOoZJ{ N9aaaiiiT6SmMj7aTNS:Mu2eT@rRq 8夺WRqM5L5L5L5M5M5M5Mj3նUۚXayX-_jyT.S]┓SN{ N9T@rS S S S SMSMSMSmLj7nTS:Lu4iT.S]AyjRBYH5+f%լTTTTTTT<̚/z|ݷ/}ݝyyYZ;7u2T|Q$Y>)[J2E ս;Z B{k+J>D000444fTVu^vzI7$Q=޻BTVPd9r"%qebXF(bE,eT*Q2222222ɲe#F,;Yvd9r I,'Y.\d2C,<2Xf,bU,eV LLLld7xiHηqFY+ jބ?Q_} >|r_ۿ}gClʝ{Y|=ﻏ#.7ngLi|sAyX-_o0(7Ex)Iu/%y!}夺>^rS S S SMSMSMSMSmLmXsMEA8,˻Y-o2eTR>^rRKQNx)+(70000444fTvSM0aTNSLu2Ex)Iu/%y!}夺TRjjjjjjj3f~~&cPvݡ|eס|,{nWO/\݌γ,Yw~kG{n{f͒7'{fAޱYT.S]Hu('=WꞫQN{&y%=WTTTTTTTT6SmMj7aTS:Mu2eT\rRs5Iu('=WꞫQnaaaaiiiT6SMj7aTNS:Mu2eT\rRs5 夺jꞫQnaaaiiiTh̵ƔeNZ޳ܛ#_eNv~=/S)/w,ד7_VȰ)^yf|cuoыi|)yX-_7%ojjjj3f.c{OnEIi|_ET.S]HRHN/ ӿ('}T)`jjjjjjjj3fTvS:Lu0aTNS]Lu>7rRgQN0Iu!&y%}LåZy7w{`_|ktg]= ͍ /zypqoPKzoyůם_kU{9*W>+[(?)oOʛ6SmMj7nTS:Mu2eT('=UꞪRN{J9*Lj۪(QEy7'XayXnT.S]_SN{*y!]PN{*y%=UTTTTTTTT6SmMj7aTS:Mu2eTTrRSUIuOU)'=UjVRjaaaaiiiTw9sM{FY3gTnn8\榟>>}ݷ|<_<GcfnGayz-ߐwڒ7'i|Ӗ<,j7nTS:Mu4iT.RݧRNW _)'}T鯔jjjjjjjj3fTvS:Lu0aTNS]Lu>rRݧRNWIu*y%}+Lj3nTvS:Lu4iT.S]HuJ9_%/OTjVRJiRl)m6[J-͖fKkyo4sc?'$?\s=|xzw=l杇A^qG)wDo  -M fXϯSŰXQ,EK}7U$QReeeeeeee#F,;Yvdr A,'YN\dr},b䆺>[jGqK-n222222ɲe#?{|QޫI(yX4eT#)'}T1M>r[J{.@6SmLj7nTS:Mu4eTAyjf!,TjVRjaaaaiiiTwmh~:x,ls; kyCt'x,+\w߿>}|뿼>~p9:nAn|g֝ucE~Nɛ{:i)IZ BjZ+jaaaaiiiTo7~n|$y|R>i.S]LujAQH5 F!ըTjTS S S SMSMSMSmLj3nTS:Lu4iT.S]AyjRBYH5 f%լTTTTTTTT uTF)Ӟ{|JXk1^s#fw<-]$˻ zXo.p ay|QwYnTvS:Lu0iT.S]HuO)'=TԚrRSk+5Lj3nTvS:Lu4iT.S]HuO)'=ZSN{jM95Lj3fTvS:Lu4iT.S]H5R̓T ,TjRJYI5m6[J-͖fKiRl)mt9—S1zktzt^/ty>c~Y^߬kkβ!ߔz uR={ATw{?r$I,Y.\dbyu~Pe?dddddddȲe#F,;Yvd9r$I,'Y.\dibyٲuˆ}PeU,/AMAAAIIII,Y6dɲ A,YNd9r"%=ˎ|Pe?>*& $K$}>Krcܛj4:7ƝzMxlc_߼aw'gUwvc'y7cκMX-_P,_(C}夺T_>KJ/M5L5L5L5L5M5M5Mj3նUG?ayX-_jy|R>i.S]Lu>rRG|I^HuE9#('}Lj3fTvS:Lu4iT.S]HuE9#$/T_WRG|QnaaaiiiiTyʑk}5=FYkκ{#=}=rבӱݿ}x/~_a%{+ Ay!ZHRTk%ZIVS S S SMSMSMSMSmLj7nTS:Lu4iT.RT 8H5RBQH5 F%ըTTTTTTTT6SmMj7nTS:Mu2eTAyjTjRJYI5+f5000444f{sZOv\8Z^a<4w9,WO_?2|}4awmJy^x7?ى›ޜEޜf(?ߛSwZ,7nTS:Lu4iT.S]ͣTy>4rR݇I^IuG6Sm5<_%ay|Q>I,妺Lu2Ex*9 eK|b\ǡ?3ڛўLh7 c}լwތ8.%OGEѥrSMSMSMSmLj3nTS:Lu4iT.S]OYT)RݧSNu+S)70004444fTvSMu0aTNSLu"}:夺OYT)딓>e]JuM5L5L5L5L5M5M5Mj3fTvS:Lu0iT.S]Lu>erRM-͖fKiRl)m6[J-͖fKiRl)m6[YX [uwF^I{9!'x_#v_߬ǬG<κiZ<-Oay|Q鑼YnTNS]Lu"}YIu_oVB,夺:K6SmLj7nTS:Mu4iT.RݗTi%//IK9J^Iu_rS S S SMSMSMSMSmLj7nTS:Lu4iT.R׫Tk)'}ZIu_VJjjjjjj͖fK+(2\ԣQכּ{VW~H7Ӻ.`{~9߻GSY7[/Ǒ=כּE]f|o.yZnaaaaiiiT6SMj7aTNS:Mu2eTɪ>YUBdUIuJ9U)7000444fT6SM0aTNS:Mu2EdUIu*y!}*夺OV>YrS S S SMSMSMSMSmzsp[s \NW=ʚk;jyKm17`{,_?}˥N}|Pzy9$iRq},Y;Ӝκן7' !Oˇ !˻zprRnu}M5L5L5L5L5M5M5Mj3fTvS:Lu0iT.S]Luu}IB !'u}M5L5L5L5M5M5Mj3fTvS:Lu0iTNS]Luu}IB !'o+^7܇TTTTTTTT^'[؇}6rݠr%zg݉Ϻp?'׉ӷO>]>/﫩ތtϋc5n|V˛妺Lu"ս夺7TWJJ{+M5L5L5L5L5M5M5Mj3fTvS:Lu0iT.S]LurRݛ_I^Huo~E9ͯ('սLu)72!7@o?z˫zBߛe7O{QϗQr?[z]>u޺ן1AuzI*Ս)n,Y,&rS S S S SMSMSMSmLmh-y?,˻Q-oOg<-7eT.R$SNd c)'}L2夺ITTTTTTT6SmLj7nTS:Mu4eTAyjTjRBYI5+f50004444fMI7U_v |vﯯG$?_}U7\sT!myڗ7Lq޺|w>߈c>zŝGlu1z]k~gOs%uzJ`<-)It,y%}3[5rRG0SNf+#)70000444fTvSM0aTNSLu2EfIu,y!}3夺`T̔jjjjjjj3fTvSMu0aTNSLu"> endobj 123 0 obj << /S /URI /URI (http://qpdf.sourceforge.net/) >> endobj 124 0 obj << /A 123 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 81.72 657.641 191.15 666.641 ] /Subtype /Link /Type /Annot >> endobj 125 0 obj [ 124 0 R 127 0 R 129 0 R 130 0 R 131 0 R 133 0 R 134 0 R ] endobj 126 0 obj << /S /URI /URI (https://github.com/qpdf/qpdf) >> endobj 127 0 obj << /A 126 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 367.94 657.641 483.23 666.641 ] /Subtype /Link /Type /Annot >> endobj 128 0 obj << /S /URI /URI (http://www.opensource.org/licenses/artistic-license-2.0.php) >> endobj 129 0 obj << /A 128 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 248.721 635.641 387.438 644.641 ] /Subtype /Link /Type /Annot >> endobj 130 0 obj << /A 128 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 393.349 635.641 539.999 644.641 ] /Subtype /Link /Type /Annot >> endobj 131 0 obj << /A 128 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 623.641 163.65 632.641 ] /Subtype /Link /Type /Annot >> endobj 132 0 obj << /S /URI /URI (http://www.apexcovantage.com) >> endobj 133 0 obj << /A 132 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 589.641 141.053 598.641 ] /Subtype /Link /Type /Annot >> endobj 134 0 obj << /A 132 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 146.786 589.641 273.986 598.641 ] /Subtype /Link /Type /Annot >> endobj 135 0 obj << /Filter /FlateDecode /Length 1224 >> stream xVr&߯`Ozg7yԤ+7,Ľ"#}=$'>}i }Ҝ9}tɤD"LcԠIQVy%@П'y ӧ0Y S?=xL BBð+þPK9/&(x9mܢ_pԁf)w$2c<858SyΧw1":_:O#LH? pFsCѹAnӛ qv|/QF8.@`.d =\}fc PaeKᷟޡ7aVbUfU؊uT*vvUJZ.]Iȫ4 yIU~A"jn:vA|ˏU,/$yIMj\â` >)uUFӽaem׶`:]pʱ~F1 ) ⩔(*l=KEDŽ 0ppD ! cE(~$0$14}/6 :{ǪC`(z$bw;G6q7AอڍeNp2Wvq -E J}FվEXr 掖l;\ݡ{ i4lfiOǮ<-;עNHJАJW]kJBUFC޲F"|Ök%#tuTvz֓G7mh}Attm` >2i$9bt`{b1f !VމaPOw7@4 P1<$i[41BŞ,7\dȊpzqY1Ypw̬h%#dMQ Sp^/ړ=ϴWwfYljkNmW KԸ2kh> endobj 137 0 obj << /Filter /FlateDecode /Length 1572 >> stream xXK6W `S>nO]tr%bV9IKC/iS4p/ge~9)>'cmw$$[Ҙ"")ɇEHaIRT{7On?`[['87IT8\kpoK/'/-D^\2+w٬ƶfMMrM#fd PSM"' NbR9$0YmdC@i {)N9J"9gIe`Ӭӫ^2wHl梋4.7nVa* IǖM`M/,#c΂6 +1[Qv$GJLMC_Y@cwӄdg Lm_V+-Vf(t fi(K,rZ]:+V #o汌43=UTPgQ)Q(mB?+>47Gfad|V \kx%Бfw"%kLؗix@I-#q%fb58|0cמR# a# T!HgVh/TIG7xPɻvBsPwޟS'|=1ygen84*L6RAWAq\ X݉<߼wrnUUH4;LraRyC1d>,=(M1{:N4H]'n_5F.5]yn{ݮ5UF9c].rDp9:zM];M LOM|C o .W1ɺ"Fcc87z)ϳ'كDuh}o^hspL^{L51Ϳ[6n :u̳LSl;EEq[>Dm6f9B)gkCקŴA6U }mO(C=qF/~k3x7>3*.w`ǕkߘcA .[ > endobj 139 0 obj << /S /URI /URI (http://www.zlib.net/) >> endobj 140 0 obj << /A 139 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 102.28 552.539 182.84 561.539 ] /Subtype /Link /Type /Annot >> endobj 141 0 obj [ 140 0 R 143 0 R 145 0 R 147 0 R 149 0 R 151 0 R 153 0 R 155 0 R 156 0 R 158 0 R 159 0 R ] endobj 142 0 obj << /S /URI /URI (http://www.pcre.org/) >> endobj 143 0 obj << /A 142 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 104.49 531.449 188.37 540.449 ] /Subtype /Link /Type /Annot >> endobj 144 0 obj << /S /URI /URI (http://www.gnu.org/software/make) >> endobj 145 0 obj << /A 144 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 184.2 510.359 324.74 519.359 ] /Subtype /Link /Type /Annot >> endobj 146 0 obj << /S /URI /URI (http://www.perl.org/) >> endobj 147 0 obj << /A 146 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 187.53 489.269 269.75 498.269 ] /Subtype /Link /Type /Annot >> endobj 148 0 obj << /S /URI /URI (http://www.gnu.org/software/diffutils/) >> endobj 149 0 obj << /A 148 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 197.68 468.179 351.01 477.179 ] /Subtype /Link /Type /Annot >> endobj 150 0 obj << /S /URI /URI (http://www.remotesensing.org/libtiff/) >> endobj 151 0 obj << /A 150 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 110.06 284.909 260.06 293.909 ] /Subtype /Link /Type /Annot >> endobj 152 0 obj << /S /URI /URI (http://www.ghostscript.com) >> endobj 153 0 obj << /A 152 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 224.76 263.819 336.43 272.819 ] /Subtype /Link /Type /Annot >> endobj 154 0 obj << /S /URI /URI (http://downloads.sourceforge.net/docbook/) >> endobj 155 0 obj << /A 154 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 516.1 152.549 540.0 161.549 ] /Subtype /Link /Type /Annot >> endobj 156 0 obj << /A 154 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 140.549 219.75 149.549 ] /Subtype /Link /Type /Annot >> endobj 157 0 obj << /S /URI /URI (http://xml.apache.org/fop/) >> endobj 158 0 obj << /A 157 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 516.1 140.549 540.0 149.549 ] /Subtype /Link /Type /Annot >> endobj 159 0 obj << /A 157 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 128.549 152.54 137.549 ] /Subtype /Link /Type /Annot >> endobj 160 0 obj << /Filter /FlateDecode /Length 2926 >> stream xZY6~_ĕ $N)cL8$(a"doK"ɛj5F/4} I?yzsEBG$4)H(%)(AX_WϿ!| N٩?_}=7ߗ ReeT#Mpji@eW5 ߳2e=~k)4ZD/"wыoWf:QmW(hQByY+i]m'6wkx"Uߐ78U]HC&J<>~H𽜆qs&%[ 7I :XBz{&Rfp\#|6-uCǪ9<2TM3.tQ< 2?~gqE,(q 2-y۷e)#Zd&I\^o%ޟ(vCfT'>N`EOth&;0,ia!%6۰~/f@>A7YH3 UX\m{`]5',e{f}YBöoX_s6RK}ۦc DoE׉ (u5/g6 F%h(s}'¥qK# 2<'&diھT2=n ՑEF2,m=E4)A0+{I>T e I_Kś[;i1pI0i9+[v6P*~p-hhAF|Z;B0)g6td toD y"e![ <[Z%zby*h`&nA-AYK/ >kz2ɿN@ĐXPYS|<9@kBaa~\歭nFE["|8} Q?aXo]iH̓JҐ(Xb[Y4aIREXbJS) jծ9Ⱦi/&r8Ԏlgy{ԇX=ltE;P\h᱊F]#04":bgYc9Fخ!$-y_aڋ0ĈӰ맊+E{ނ&n/fu9 _:@AZ:3a8#GC DA<}PpV*iGDئ wfJ8TNq ׈;7a`\AY| E AL0# 3&b5I;̆j[MV pf{b Ɉ :޽0s-\[i6-6׬Z08U-n`Hxޗl{ Ĕm*7nl$z:-i ^W=ٲ|@;TSvܠont޿|y4xQۮZQT6l:Sr8++E˄Xu3&5x~D;>NODoCX~A1 /u{<$hHݵ?AvA&|wↅÒ J5[BF,/ =+Tzzr _w8霷 4uy!C}*^"+5un*1y=CêN*J\i.3/ FbU#X7デn㻄4ǸXV Tp-9z2D0]ډ0f`dx+mPGSu|G٪+vy;/7Ҡ8Y8#:S!(=8S#вHP*<)koџbp(_|q2 @A딣2E$x D݈዇ø6li(: qo,58d_8ev$@m W՝ NPx!]uGG:_=eww-A&yJӘFx~Z˃vMyNa|t#&(E (ll-X,vR0̛kr fw:T!_TW40G'E&՝zZDs"ƃm[ Du%$?DV)g8ǻ>5cG_O\GM5'#;Q5#wK&Q7sn/T2B|'\ۚ V}{˪HcgG6vtm!@^mgъ_٪j(OF>o:Z)!T/hhU|f߽gaI"26%$NKo!N E% !/]6hE6$B8w:"[yendstream endobj 161 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 162 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 306 0 R /Resources 315 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 162 0 obj << /Filter /FlateDecode /Length 1447 >> stream xXKo8W)ݤE[,ʢ#QPHZMx!9΃/("Yaqoyebe%)1t@NPwD4Pa6G?_8 cqO@^!\?AśQV[E4yE(,*OVMWV!^oM*^U~z+Z[\Nc4m0G>' ILNWp|2ѭ*Di 1|A$4I~y8? 6_|g0j1[,Y/ bj%aqF{Ҕ5p`%1EVHXaQ^sJȋP07_ }wĠA j!ymQa0e\18%-MMWkYo]x<%R]gҙv3١@k^W `ӅLDINT6/Էo(|vFT F͛>%Z+U;x1 w],1dƴ(V*X*[bYEԀ a^TY$iy7-,_ ైbZdP$1͡( 3{N2hȦnzE#R=lٖ#W$d$iS):xrlt̍۽6[=7`(>UT%tW<Ʊ!U Yj:A{+˪1H ?)G VHIqFwC.7ڡ3tFC1+7~Qwe 8涿tCzV{ч̠>cВ}5q]KG? MKvE{1 C4x B 4'gN;܁E#zr,w;ޫ;zC`@@|06ܑ-A/s*1PUEq~R6G(L$?#LJ]reR9V$!7Z[ Sedt^v`-Vy.=4ps-ՉS1ø;ט=|nfm{zgqndaֲ^6bA>}V1 h}W6]9Z;:b[#!0/=9X r\:33]9v=ZJC[jf@(Iq288T qv82endstream endobj 163 0 obj << /Annots 165 0 R /BleedBox [ 0 0 612 792 ] /Contents 171 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 306 0 R /Resources 315 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 164 0 obj << /A 293 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 333.717 519.578 484.943 528.578 ] /Subtype /Link /Type /Annot >> endobj 165 0 obj [ 164 0 R 166 0 R 167 0 R 168 0 R 169 0 R 170 0 R ] endobj 166 0 obj << /A 293 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 484.943 519.578 515.831 528.578 ] /Subtype /Link /Type /Annot >> endobj 167 0 obj << /A 294 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 319.381 163.171 460.719 172.171 ] /Subtype /Link /Type /Annot >> endobj 168 0 obj << /A 294 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 460.719 163.171 494.664 172.171 ] /Subtype /Link /Type /Annot >> endobj 169 0 obj << /A 293 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 329.293 85.499 488.903 94.499 ] /Subtype /Link /Type /Annot >> endobj 170 0 obj << /A 293 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 488.903 85.499 523.981 94.499 ] /Subtype /Link /Type /Annot >> endobj 171 0 obj << /Filter /FlateDecode /Length 2796 >> stream xے۶]_3+ [g;IΤDB+6)j6_߃;xvnsuCPl埬Qy|58ԠY'ElWGoi7X\6ќ:q!/Dߜ(%E)u/1?r&MR-?5D/>U="FnGc͛$D~Q*B1qEQZ~E(F۶nЇ?\KX8"PMP4t*1}:t4v?h<Tѩz~D;*lPS[ ~3)Sj *)ӌ)&C]wcW$InD Z)[Jx)@A>}4es air1Dr kRI5_LQD4<Sp& es悵KL{ n# +LDi}­ yB<esW5lψ2A bG<$ڑjtb}B6@dҚfʉ$#`p|C5Fu΋k'o*E5{uyn1KWUbIQE_DWe>~ȴn-qeYG RX%ili…8%.#WLdLdc )cl,v^x:BߟR2o'XYS} U8HzT#Leyu®w*Yc.soT^toD-f,oED\Li_5oކd4hjGE T1(' !]LB͓ Jծ7h y I > 頹ⓔepNW¼(ɍR8i_*zt-QIs5x)YO{+cRZ` ]?at}]\rD2#tU #l(xYA5-XuK,$!rJ̭.,goufd g v[i?^qU)Yp5Rik4f?Hf$YV2ŬlFАvL!/ǹ}Ⱥ-s5! =dK~73)E>ۇOi8߃&$nt0Pr{J^t[R 1]to02N).b9:ծZ* F5 OSV}M8s5(މUz P3.49Ul者 H=}+$ 7ɋ5K;u1J6>Ai4CG)*7ۦE!B7XiيR~[aR7O@S-&s|H"J^֑:# M e F^VY Fx!@E E77ΗSJyʨ0^(jaY67a W0(7"LVf V!IV u8ufF0f[(aF,IV>$Hhn NHD>̪)gM=9NEϯq'}xendstream endobj 172 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 173 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 306 0 R /Resources 315 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 173 0 obj << /Filter /FlateDecode /Length 2639 >> stream xَ6򽿂oiY ,x=FlaZKcf؏""{›.|xąO$6#OXxG" H)VY?Bp"nK> w.N2ؼ/添ͫw\rw0! c' ,KNgUӋ u]G7^~!w߼8xiL%C/V hJҀŧR%MECDE?\k{1-r=$#hN:bpi/{.juo,ٞ$N8%4VѳwLaų3,6HjZGS~3{vCh·fCQFN:{hm:oM_ڈ=Y1YP8ThO1r4v{ *y. K\ҥvϤ#"^8ifYGK~4y(FTFWSz1+-&w"xtYDt$$Z^ΓY+<eєMjP0ӲϚj-)rݳzn%`ۘ5g'!%,t9omq԰*Z,Mg = mvAc0E0@{> Fbr!bԂi[3tAYC jШCت/$B\_5fQãYWTXr/uL\dE<\ LWm L 8i{6Zյ~0l⺕6+2U3 "{ֈW72X|؛Ł>:.X@6n"a0(g҈󞭔Ev񃄧^WExV 3Xq"@.)|9p0(v= ŞႸH/2%! >]n7~w|$R4\3)`,JѤi"o _6T^V4I؋i h {fO',I|-5Ȅ͘ab+C</[b.p/8&<, ^K^Kb{?_QBi/uu1> endobj 175 0 obj << /Filter /FlateDecode /Length 2200 >> stream xYɒ+pLUjUCx$g!&&µ މQL| QGQ%쾘 "r8P Z RC/صu3LQ/h{3wݟvf(ɻ(qUUV$}åmy?~F01 BB8O&49RHhr6A3?5Mj{M;"oFZ1M|; 1\N2! w"R5qH%IyOO뗧'i"_A$7@[gI#`_p%r"x:kgP(;q.ڮe@K$)oБԑ+̧8[OןE TR^K^l—~Z1t~D{"p`68.p\Za!7JY H9yZS'z=E_ś8pL(J_JՂ9ԋcw4HEv1mTBVE|'mNP}4 '$+k`znuGtu=y#UUwZJ K#Y˴XuN8O ȟժ}{ȚG[k㲔I"nTm$@pg_J]—nMrzQȓ5+l%?Ԍ} zުIvxO0@3VE "FC8'͸5;.-kõ3 4ӆV΃eKp|h&9Gɣ 0vBtlAT3|+w;' ed{Ɵ>]7\3YF]wBVoO*N08|t4Ͽ~tqI3tG~IWnL2&5)hYK$LU͜HV$EUe6 VBfr%tPQf9ÃHZhq&rM߷-IY>YCf7ӁB xޮxɖ?eLkAt :K=F&ӁgZ_ض?ݩ-ۙ+H?cbp]sI:#zU\1rჩf- M+bped:_N QjZ 3 BR'䇀;Hi\>DQ"4%UP3TH;跗;]5ky3%YPdX oysi'V.Ύvv\a躲[la=$+ R3o¹MdE+EJQ4<*=Ԡs7/} "Pxuχ{īG(l ϔFB>bj4"3IxӰܸ2$yYI|ֹܺ1SR < \ ټ#ٷ^G=YDQ ܲ!/)Qi\i2x** -hZMA9Tq[tdɡCB).MiUDŤX&$kҟd+:ښ6}f\s]jAf9At?P\~v"X+l9]4}5)ǘb!P׾V nAt=[ MkpxƔPp%mU0OVXySByWӾwqpɚ4.FgjdA[#Y" _fى^j!Y U <3WeXqQzb}b#EŊPo`QAP*Ӝm5Gps: =z(s~M@PW 4lx Là R OCx|6`E,!'̧ɷ9LVZsW~;fi0e~+F` [lg cFe[>형F;Mug)ppV?qendstream endobj 176 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 177 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 306 0 R /Resources 315 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 177 0 obj << /Filter /FlateDecode /Length 3843 >> stream x]}żu)r)@ۻd>d rl~}!Cywi. fP/7Rg?y Ӥ#gLJ3! JI0G9@!A<t7ϿÃaMd&tɑO?\~(nzw;Z%Y'IYe, J/w'폗k?E̘XFc>)j#?:I8CT%0&PH6>jy!߫v֌еb)PCH Nȯ.3oQv p$O,P# @ YK=hlg'T NCژj=[ε+ 8 P ֍!|L5{wϸ;Gq^.6m;%X GG(3YRHߵ[Apf&d'0JUC2~K#ƕ9U2_ea-sv ̚˨V^-B9K1ic0XAk +湛(@J(l(ϗ2,keAf}F^OFvR&&L #i\]1-|U1m?}bVrP'wo$eɘa, ,]Z;U#Yʡ*6]=:rv>gq>ĬGa:aks`„uͼq_ ~1&X?Y3A\@aaOj̓ +9l ZlLӠ 1Mi ;}jG 95F qlv(\mM';&+}80ֵVik^ [V{tvO`d?A7 ٖ.ChoF2w3bdgtr4=>4#n2s5=v. XTߎu"הl5my7Ȳ(|su!ly2Zҟj&Πo2]`pʑhJ emWju: `kq>[aR[D&)q8rbVǡP8m{2jC:VŪ*֦65~O8^ 0 #މ"kZCФã8 .dxSW DL&7ِQ2ʂ!U;os| *S{j|]|_v؋D.+҅˦~TGPb?>Qh lg !MRBpA;Y:Wg8"Vh?#5薮B-w,vOy}a'҅wJz.j շ _1S|!%3TxV1|1"PCLd"m6ZulGqLWգ8_t:r-X1KQ\#WX,` H*ap;XMx i]ZD#4 +)I^ërɫMj mj9#O8^< { 6f~߲:Zj[#.M:Us8 8_xr궃[S0ɖ)~!Q'ky'VUE֌ㅢ%:+ GH,`qHV? ;^жjwv>Eo``;/_&I &B6߱G;!~+Nz ڔPvjoWSB;8PEůR2(`Ftd_7";?8XkmTϦZ"/[8zAǍ EY=^`0 ;5stt]@W[qiwV)+^KqYBC)hQ.cְWpd2㢜R/q졠ŖKݨ.~7X.KDk̥P'T.3Dl-+"Oi m^U _yBF07q FǑgr;NV8X;n1nLsqt+L {G30sM_m("1pK׌Nbt1١cc"<9ćrzƞ&-"Њ6smJ{KL\ Rf:C>.u0LYJֺK\nogt1(@ 1ћJLk@d]0,b@rPSj7njGQ iWCYpN0J=$_hPmx3UP42X"5 s$[Q6EF{R5ڵxEe5`JzCpP|zpt,$i m\U -48̆7<}\y♜ݳuqj2K^G30iQAe.exx9͹6R0 &\ P%}}endstream endobj 178 0 obj << /Annots 180 0 R /BleedBox [ 0 0 612 792 ] /Contents 182 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 306 0 R /Resources 315 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 179 0 obj << /A 295 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 366.92 188.609 456.9 197.609 ] /Subtype /Link /Type /Annot >> endobj 180 0 obj [ 179 0 R 181 0 R ] endobj 181 0 obj << /A 295 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 456.9 188.609 493.28 197.609 ] /Subtype /Link /Type /Annot >> endobj 182 0 obj << /Filter /FlateDecode /Length 2661 >> stream x˒6-vAʇlJ6LU1C&_Iq7NYhD?Ax-D1'|Hĉv[AH~G^@W@]BVuY8^ʓΪhtbtC98>ƂG<,v ŮGi TOYyN! >dߓԗ2?c >ispsY-ґ)&)}sU2F8 dExGHEsNw,9Ww=t-sjA-}OQz#EtĦGJc I i>`s Oepm/^G|`bLvR |" ]#pj!z< j_l2v.{N_\v+췣-FJomZq c`$ x&S#2P蛗ngܤ7aBb,"!4xM[m렳ҮޥKAs3ف[i}ڂz ؍KKkC7I4@0 \w5#{rB&)u]Ԧ]螡B0>@33IYז1 NWN,= Xcvh2T ,n ~s/ C?X _D'@8,$ JJAVIb?M i߻#\Cj[nȁQI'DcAchv<_s? pwCYcʠFHJZ|~<%I|lUxQS5 `> 4O-8gU+OEČϩt~2FSuW3f"耎0C ^-WaP xAL¡zS+{Wq-FkvIs 1Ey<X1Co0An/5ߊV~v㜚+@=:ؐj+\ : @9Sw+,XP ~nT[x(Îc[@f=X>ãYV@eg<8PPNr$:5%f~xY0\,gÛ7 VuwY8a`irUsJ=P NN0olC'X!4(Ya- CF:`7.~^UbA\UVR<n3bYdk$Rx訳`M8"iM(;_*0%\3D":F61V*F1E ؚ%yR^IFw[+ʏ$c{_ /d5* }(,Sls#XNR~<2i(NKѨodwл/ I;m<;~"M"a?endstream endobj 183 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 184 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 306 0 R /Resources 315 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 184 0 obj << /Filter /FlateDecode /Length 4054 >> stream x[Y~_ovG?ȱ(ZH,?pv:iקȪ" Xj"Y*r?߅^'/#oL#/Έf^Q=SQ"b ~'.|˯P.7+{_{Ѫ(MXQv{}]_[7oPuWt -:^{[ P|NIwLRdj'V*/~Q}}Ł8Qxͧ1ucsueT=^h[PWq L1,B+&r݀SeJ5s&==*X4w3BVAtNܐ4WgC?Y4cP \c=%U$i%+dنW.g,IfyIg!+#.r{1sJ,zo,VLfA*G 2:Gڊ 京|•=D'-UfMВY[T7Ej읏/E(<҇vn;{ .SFTءBt:9ur?asϾjƲ4jg0Băǥz Kg ܥH7w3B?!隦`M[XX#ߋ`9?Ҹåǯ kf"iN\M+lA};i;5&h\B?oDpbPFZ9_boC'cP-V΍&<,%v *h Y+`H;!C $i v*!ZێbqKŅBdТ!clM>r!z wNuyԶA}[ԟZL5"JGVй>WNɽb*MΒ4ciY lezgP[&<ԈO j]N<,WpK5 8,tLW<$VXe)L I1ƃ0T? MߏgWK˽3um`}4BA*™ J 8Q8f38`MkPeHq?g'ܬ[rR˥0(zϺ=ތ,WTmjYY*S39WZױlci "FP#*MY[8$U)Vha{:Q HJkLɋm*E҉LEShz˱ )9o,oBjp(ŠM 6j6uһrLUyс§tݟ ,FX# i; .1:b_؍ϵ?h?i1Q;Q|uH(Y. gSҡo,\$ـq-  jJ".'rJgw< 9Tz1۪\ Ңd|sQPL]7=g>[Ô# i;p9p\f3v(T. /J=*c9#M 1Քf^l茸8= PۻZ/ =%A1E?i[~%H*-)yfQ FFT퇑#YÀ =]+,m>QL')io]==f[ E*Ț ;R>|eK3-i9earV&G(敇fx. Qs 1aPHFukbjT .HLA`ap:@O|jސ6GdXh0\ 'SX'T4bk*' %p/IVUK5dL {ف8=Ii7`zw`oT.Ɖa/ @`7Ar)s-4նq̼U@s{ !>}w>a7F|r}Iع@)VKr~Gcc'"!ʷSK%`%.4n8RhMg NDt檎# _"My2J9TY8Ctz'ծ;!^Ԩ8YL38A5.RsSpV浀v=jTf`~֩+![W?-Q yQҘ~3t 9t"5V:C AЍen%Uكqd{o֯l1yi!J?M 0qa"Nj2+յLV-g̀jo4d2y8|Ɯ<:it4r6 ,؍蕸/]V!ӣ-S,HCI=^ꞍBqL{#M t|~4utŮ7=%1D9 =3zx:yY0]qb*$A_\9)$v>fvV>"s~J!4D(!hhE5-~u$UY9@QҘ;e錉[~N&ɹd> endobj 186 0 obj << /A 295 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 208.09 637.5 298.07 646.5 ] /Subtype /Link /Type /Annot >> endobj 187 0 obj [ 186 0 R 188 0 R ] endobj 188 0 obj << /A 295 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 298.07 637.5 334.45 646.5 ] /Subtype /Link /Type /Annot >> endobj 189 0 obj << /Filter /FlateDecode /Length 2669 >> stream x]۸ݿoMK.E .p<m%q}R$P M0grԷUDBV?Eq"R$ *IqFČ3ҨU #E08?V*$[}5 4ѓfŸ.?$կϫ72y\AUUV )$Կ<Wm=y/ߞ'$Q0Q렵!t'YNg& VS EEpM;BgF[1M*v> `rQx3?e(*ٷ )|`5)B|(TQTE-^wr!/L`ubw q?VZk;tA}VTdP/Mpc]|׳=apRu" @hzlpnKlBݟD콞 ɡʞ.;(>(u'U1fPNBHH%9OVsGŁ!mbkgaI8ZVDUP>+RMcbZMy@v@>bv{{ZD.J`eqꦃ&ߖФZ e$KXpqq8 q͵# [LSCdW nܩB;BmGL93ݮ?oIoƭv'"9A9hy!8`m/ͧL>WroFbxnZ7ĵ'hOC` M7/|uMӝMs51i2P@_QFY!8dO{]JíeBYބP 6#*||Ty_ fzܻkU'ąI|pϨ Q{2/w-1 Pv3!Q;@1-6 ːvn_~6YYWNg ~-QX7.2}^1;.uTy%Q9A.P0j{qcb%^i ݮpLDchѵ' b۫jJo5劧t3N!u4+䭲 +0JSm@5`w.P ; )ᄗXeTaWmCg34Bǡ׹[;D1DF' ~C2B NcrLuhc2JHC;đL-$09wDUfG\{As'iyVY֡;]܍8`S' Xۈ<8 lGeu9aiqeYK zDU>ݹKc" `/Ve$֡~]77'wZf3^[ SpHaȲIX4*gvJSC/4 [-zM'+TA#ʢ(]ۗQcmZml7uNz `9֘W lLu֣p{A4`\u\!ӝzwQ5qc{ԐzXFi̼3>+[jGhqQw*pc8Q܍eU̘X*aGc敥z'{JCx 䏧A && GI_9l2wMgdm6cN=BĽ6`?_ߋnAB3cF9k5Ŕ޷\=!t=+B&AQ74"}wO,&q_a!t鹦؅3 ѭC[8)l?;qdߖUtf)j nRdAa m6TPYR36_eK{{ア{=, 7&G󒸺*1Cfݷ"^^hfŌuB㗨xL+IPU3C Z%HoACdT8 ;(Zf$Љ^=&gs.{I=OժûVyJ@;7xD۹@[sF>uCD9?nd.p'{ԧmZ/'ǯ]=D봺AM5UET}; eH=/g=g}\bendstream endobj 190 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 191 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 306 0 R /Resources 315 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 191 0 obj << /Filter /FlateDecode /Length 1633 >> stream xXK6 W;c1zK>I39ds%zFZw iY61 ~PSlbTuZ"FIEYꐦ3Ԋ<"68~V>bBP8¹9a_?|ݯ~ޮ^Pޥ(qMIPx#ѶCn?}{mXٞD{^q XB+I冉D-Z}hW9HG(AC7" .pEWO6bLx =UP 9J36[77@ vӊ!iOI?u;:n,IIu0uS }2<>k9J:>jʄ$ 0*$b;y5=ީP;򅂄 owQx~`"`pM5dPͱ,fμ Wtϝg4?8FZ[ "30W]9Or.Z^D&֞{#̨Q8KE[hxL%Rt.DpZAKT,,[X9y-sY[3##;69O  4T l5>Xgn{,T .-^dr&fQb HX58 {jn((WqTZ}yRx^dW7~2U|@L'ڶVli_ GMO!șԳ:ndMJU?\M8y䯂r6)9LH6 yI6y%Y4iw' ˒tV:h72;zMK((V2fPnr4t-téݖ;!!@M }2}d:7{3 N*+@sđ#'|<1vG= >3ZhλQՍ(o+~ W9γl!Ae5 \&ˣuMCeycvqmZohD$0OpJU;;oќM_{feAYqe= L|M!LGH0BNyOНH42!NnLͼmuO'穨<^09\ t^^iEPI Ttr0Ik{F M}K9(09QXQM[WN&ۈ&z8sd5-D_3o.Q#tTd,h{;)VN;fɝ8 rl P[Ұ9562 #5΂[5yh|h@Ŋkh7j$[<bSNL~ɾp:W%*^eΘ<= CQ邁,(pNR,XH*Rr1Q4I0+}km@B?=^ pe .wmY}(FwGnylX*񗧝/ xinXE7{}㩚T(K(lglZ`G<=*$|X{6}(N /zG&0HyX=nQz ZnU_ eendstream endobj 192 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 193 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 306 0 R /Resources 315 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 193 0 obj << /Filter /FlateDecode /Length 3350 >> stream x˒>_K* ߾m8㭬˩Ј ԒΎ>h$R?j@h4|㟪pxR$+-(Hd"@8 vOw%& &<߱Kvf>F d\_4@̪u_9PKpF`F4lI{`~qYxOw+ΒOU #O7\%ϻ*loL`΂yTKc #DѤ*M=c&olLȉcPSwf6-_UE=$,ǽ%о}ZGɮa;pm.˫:e`ʋyʮ(ώ,41ָ"yx#_WV%xu9tl*qnTޡn0I &D{ln͘:'i8GlL" zgMs?zUFrs7{`:?wϠi6Sko3e+a:yvdA6q;j{{x=r:Xv).`46Y9)˅{6AkVP~OI%>y+~JYަ38Ӽ(ufJ?_Φ&xatK9D (\@!R)Fv ;G33ӳc~Jj]v\Uƹ2v4jMP|``;TrS -մx#EA;)AV4 !HH+- k|oA/AstiZ:x..gO(g6GX̉j?jJ&:6;0}A\xR##![yL*S<HgKnWլ2Caa<q\a2^ȫh|)VT@5&AL>ϩ<2hf60qJ5=. |Tv`kEa^t4>BƘ<<qȑ]HCeyLX_GGC-nNOp6@"y:% G 0 ΎN JS9}瘜lIw~Sk͌K^%Xd|ƗƽٯUxQL4xj ӝ+ l})( X8DZÕe lܿ,"r…UI8{{\2ʬ^L(:\&O²YP\G*a˚)kƣt[t0 g0tm*L>(́p(o:ΧX XnG[rKFBe^aD4ٖ:nvޮbN:jGǔێb@|+Kpve7pE ((=8@A1[q*O97ĭ{ouZ{Z#  =htpQlXEu4`ͥ2"iT/3܏\dz YuF-*‡mFU$ /$Q)Bܦ!,b3*#_ .vQjrxfC`,Qn%UC=in$74n} !RQa0GUb׋w7 9j1PB0nw*Pk~ f3^-آgyqk-Ӯ+Si 4bue&e^Yík)BY]F,^,/E 5hu7vV_U0J[^xUU3vU1*v&J8&.2c2p:{[LEpfwW[pku>ka-9wFdg:;r`v`8C7$%26} iK\g4WHXX1ւ 8XlA7 CΊ4 HYv+QqSUa;miF$1`0D"r8ʪZIV\l<{y,IߥNҚhjW4Y~U(v^N@0tKv=ܚ}Zڃ88,`3#z:zE0Ucc.h%c4OsF/ÅL{P4493,} 40jۚШfc+(e Gk* }6O?b`ᩆm!-;Ft~"ᕘ;8WrMd gCׂ%` '7J,jb`aZmb>+QLTPiq/`&x܏EvG;`mVɣj0]Y<؍xA@oU͋3QdM B r~vwA on/Ptipvb Auc:]y:bd:RZUr?}S~4z"fA*HE6!\"\;$ xAwe8ϫ_}dpI-h/J0EM] `P ?b%{>R> endobj 195 0 obj << /Filter /FlateDecode /Length 439 >> stream xSn0 +xu)ɪkѥ@ءI$-'YNbGpQD||"J({ -y|2fpi0`#D{@N\,G>Gؒے\/P>] iQCpVAӗ VNpeCy?^,g< '<ۇa` fYxcӅ(.dy|NWMsϋh2&#(R֮3|Hej \cR}JثX-֜Q#pTj&4Rm..-X9"ҜT:ykse-Tk Z5:Bw~;yp`;N{#فzQog1m[i>G]|kTfIf}endstream endobj 196 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 197 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 306 0 R /Resources 315 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 197 0 obj << /Filter /FlateDecode /Length 1402 >> stream xXݏ4߿\;N/ !PxoC󱍳=qijd)/3c{7va w'כNI0v(&\ "5qtD* HĞ4F~ؼyapi. #f}vAȃ0deK:$l!|%n{`02Xfrv%?w`qt~>$ۈQCj mM^If7(krL>i,a;O۵[-#A mQ8mӗ=#ɥ „x' ɔ`ypȨvӉ=(FD]K7zv4|D _١ 䴼omy)* yŢ¢#]"ܸ##h 8ySU!>8Ԩ{JDVYjm']Fon6?{Y].ͥ<̀TG 1A1{]ۈ_7y;&yY֨B`1葌26ӧl kG:C\3k_FZߎTѦ `-zѰ+0٤PebQN W6;u^,ڒ3 C#ڕxHGDkPV98FS s PG^;T >Z*t,lNdЭ܋'*T3GHNLHc0Ăbv8_xbkp=[GjBzfReQgtCo>f,J*zA[fƼࣜ5?Wa&ؿ}jt\L# ҖJn)׺hYBnk{GMq.IRYDЛZģ7}Ks {K[?Ξ q\W!Q\OSAdVb?vP-q]._OF(t,*aV4uAuZ>/% w4tԮ;h]zöZpM n5ZȈzN귆JEځB o<$eYYU{HSJt3iQ3<4Ӿ3Yמu77D!ρ-N1`.-Ns]QmmBǟ2B(>!zSO̓<ӝxtFO'=i\LmDžW%hg_'sqN}$L(7 +-OJd+l7c ;g)eѕ} 5$-f;+r$}~fEc`ˇAchsxo|꽍Nb2髺=/m'WGRpvq%_MBvC b`cJo"ZBL-Ƣc5\qM!*bS_nMXR_WL_~tM՞y!Z믫EPfG?qH_aYEU'Ev֣qMfPy>rq&ti$ԥ?75@֖Y6"Y", mĪdY<ұteKL~ՕGl 3G<(/1}^81L-TՕR0OŵԜ޴tIFyQiv7m U.ib?wo*yrƴn16)?AELkd%p;j|w,M7!}kfp*k(78&cC|\>@TFId;m0k+\BbNm?NR4WSowaVsn:@H@c󬿁EWƟ+KrF>KK܎4ifIEY3_FWe^f x/Uf4QXA݈(v+>K.DŭK-tt{#9z+4\fATX$6^G A(gm2J/V Q ,mT&adUYAx^iikaD7{# - D'ɩ-oC} !>?!uozK^Kaۑ!CoɊ^`8.8Ί>Vf4} gel'LJA$t~CFۊ4ϗmX[DZWyЫg#l:rA9xjclBGy2367t|YCOU~!fR 6Q| S>+#<}cP$brCSz(0$ N/{'J,$% ơG" ]8ycTz_w,?ªȪx-?C8m"Cg$ݗB5  GPGq7kun'AM7IwYUI88š s PZᝎ/WG)hu T3M@v jz6llvK-Б{aAOKpF42ZK6`R9˻Ϣx~k~KH]B t?`'6C55k$XĠ-m~g51endstream endobj 200 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 201 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 306 0 R /Resources 315 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 201 0 obj << /Filter /FlateDecode /Length 4504 >> stream x;]6+ (;0l6L\U._՝_HItٮE$@DER BQ;}& (3BY )v4kD4Ow]_>a]xM G6}. dLDaR¿((Dؼ??N CT>k%[7/}?,` F iN0{px5ƈ έ?5&ʃW!bj 붑ǀ&df^&ΊEycDY,Uw`JͻVBa(dF߽_(KdƐL @%+TeV1`_0O{՞aЩׇz2A+ccCrRs՜VuaSee$l1/9=lծA0Qbgt=T;2p|9szhD09g4k*.Q>V`36Xzyo=WpHaL95cŅD3HRʡN+cOI^{5Vi׮lp6!7qJѼaI*bmeKQ ` ;lPOzR;@jE ekv"$X@&٫A I \DI~:*\<,Z𚚖bXgl8 1pZzvm45/muwU4MrWsߝ:ֳZGqZ -) z}Rdu]ַT!Zj0ͽ5Pz?aAsWη`nTA`{U7,D)SVf~ލJ)d*NtNFxF'i?d⊨ԏ k]v?[ .SuCf;A+z gYTv#T dz9("jZox ) \^"a!Bt(a"VL2LtJ: DNeRF@oj-&/\j$PpjOɞ'RXeBծXG=k̈&̮Xvӥ!>N{Ҏu ^yя Tֶj3`\G̮@=]zy<֞8`Æ}U)bʙ 3!g-Uo'[aq^~9uEm?cÍFFe R! N:mqo(T20(#MfyN\! D~ c^A4:Q/a`aƽHeH F7/AfТ1=,;/ ڪxcÊe T 7Č p Ɏl]PvG{Xp$S2<(&Q7b4:\8xwG@b\800| d`uQJ-.Vhx G!C |q:կå*DU墈PF\-,Bf) M:L{ΪN'^ȦkSp#2m TxLJmkU Y*2l2LH)]W~{<zY/#n!5&.numqM?ù 3On 'CX `k/^$.DH tu\lP^sQbjK4U;wݙu!jﱩ/[Ee8)]ط]SCGPMtr=C}% .6|lgu8sUC+[E` N%v~ p v7}8l]ehtǶ~SdF4'B=jFQzȁ+!d~S8wV0UB ؍[@Q҅VHvN2N&,dϽp?jX=rzTAQc@]&'J@{z_4? BH?8r E xD 79B yH |@Ck wEqq܋8\5jczәDsc}ow2x}k[OJ e!26c[,ki`viib,8xao8FXPW1Dn_|]"h˒8XfP`| }CвX8sHCyXJLMzKS7ii~d!MiÅI&=Aa(DD  -yPG֕-"X=դ}D/wm\.H%*zÆM(bך`2I`zj~9'9[BՃ܎S%KJXiL l.F*j{S%穑 | 3 3QdȉSP?v4]'%?thJY _0Gr A7(/gqM&|fݰ/,pbU]V tER ΃?_ꧪ1.<{w0_ Um+vNp@ Z%r'/E/ITD>ZZHc^k>B e.Ԓ 7]^HkXA]< [ :XaU@I˸,ZQ B#/Uin6N8 mM6yNzcEk@̧W.#ivz&cs^?`%4_В^ʟhϴbW$ u=Q$EbxشmFx>2cni[}zڈh sƥ~2U?@Ixؚ% Ӆnn@ bvgh/^}#TYy&"f1tqF!uhg>a{w1Q_hdF{+bd<irACi$Y#=*utqw~ l,3o ~P~t{8y9iDfrfB7x2MWOo1⛃ C󔙅; ) H@,YwPo^!c))ke+:}ZمG:IT m3@4 ʼ 8&Ow}TRQ)>IM!ҷ*6/G? (JC)`s<ER͏>Kzm_Vضqh פArt]7N"2v=s(1l,L XbnwW<҇53f^VXWSԟEU}a-B<SoYb;y`q}wnO#8mJөk{;z.>$cf ܎R˟؀%`fU0Ԇ5s fe'PzKb$,%,=`MopuA7œa.Ǯۅ94ac>:` 7f"^]LX/4,1SOH.,(d乹\17+[\xs)evB1ڪ%dTeKoeL3eK QC:y{hq> *WgeQ@?HsO7H9a7ֶٕ^]Xe:о`@dv!>V ]`R-Hҗ:R8\ܯ9DttV^Nɉ?݌"x2[W_}09X0ګ98^~(ڎʨꆇ0D/K7A[Amp'2_b9_1Gˮ<|da:+2S%Cԟ3H9ہC3=G3 o-lǂfcK8)qh;= ]r&k1~]/'b2UA5!HP-V ԹרCX7FYlO^1fp1Q @s F!7c_F t1Vt> endobj 203 0 obj << /Filter /FlateDecode /Length 3952 >> stream xkܶ `Yi.nȇ8tZb#QݦMm7pf8p!}.~% 9 L7Y%)pb1 ?#t&\o9997o'?޼xQhFhiSӗlh_ ~ n|D8J$r)ˉIGdݵc-jm ?# T򨟫rNK15tuch!&|ucy(^&QG~`}0060+V^*=$-0#Wf[O]0jg>Mzlx'iݳJqH$KD[g"#Yf첶Es֩3vZti`wZϬѰK76CAGf]͡hYI|a I׫Dı]UaUk[:Zߋ)Q<_#s=E* cU'}}ম$&&X}()7 U-"DYLj]I,E8_һ@4Wln\ĵD ?D|֛'q~88 ''ޡU{aʊmE5(358Mp3j-u=6 hÄcDZ,!>v ʪG!ξ^@a6$ 3. o wE*w,74Ǻq7gݷ `}F"47xY:p {vNfkvn:v24Ɍ}sGej$]Mq#|@*(ܜh.~ A98lؚ-WHB9ΣRgA"LaxӔZq! x_L'El5,polb02~@?*a}9Wq SIQBbֽ(vs"_e=bO kٓD=?!,iLu+:|=.l^Hlree]:0_ RUC&@$zϧaBv@7Q brF1@, '1ya6OnF)~ kxSݛj"$"Vq0,DJ$ژ0T/S&f@ :0r 9((+xJbqK>#75CZY5 ys,TsT,^^ ѼUe1dRiP'0Ӆn6|QO N哆)mO2[OtD8"]}qhyf<,aW:E,h8 \_:xmܳIukya›qj[:{> j4bZ|kĠfc" T3j m L'W,d" }m;`fC|X\(!gtA-׶[!̈́[!,~MJE:fDӆeUR`N\/v11maMDlzPPJ3*y$1%i(bqа%c`ZƘiF)p@CglS:ߡS@`ΥD=EEdzw\z2Q䄆QYE J( ȗ(8Е53aeJ&;Ud3 cӽ[ yK gf7NC5Ʀ7N&}**0\x+YL\zXOf]uBto"#s2rOVXV[ay6O1\2Kڥ?Et((-3. Z!vԕL]ȌR}/?(uS}=Q]=(M#j`FΫ$\9 N~&{h1k1q-KTZ\E* `kuv w-jtIcJ ] m 3u`A8Ԍ9h1vʒQeK~ v@WI\^qKY5m( (HB؂G:7oe͢,1]'אx^UmE/y8WS+J wM\W Lα^eڭqY+HO(G*H2 #>!Y|'7. TC*@lJIG']:a:WO`( 0 >e 1 E;伶«)V?P(L eݠK /8aGلqq缹eHKXT֚ GQBOOԉ]nuRK@ r8)❉! U(&mք[|a0a^? ˥^ C=|g۴cSpJJx*DdV<-2yA?|IOxc]Z4~4y7 ɭvm ]!P2kLI!>D(iNblĽy3GϹeQOK 1.09=8 _D:$aLҴܟ} 7fe0J{rG9EO}79[s%D(*勑Go3E*Onʟƺw߂Aʣ/ru WE?1BM%;ܘ:Uf`KҴgVr:XUzW<L!MͿendstream endobj 204 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 205 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 306 0 R /Resources 315 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 205 0 obj << /Filter /FlateDecode /Length 5049 >> stream x\Y6~_ovodu>Dmz퇩 SԴNx~Q(AA*}v>{ҜW* v)ۅ .<o9>>4/'<<|p{T~rڗO?}w~]OVE,e^r$?^kyxD៻|]€?t'%nq?q)ˠۖ*@ m7|m|}n!xݜU6Ezg~a,Θ[?c6od^+}C>m# DilbG&AS_573/y˂9[ 'lUW7ȫT%8Ys5 ޷Nå5mT?^mg:}Gdc鰛[yaS=BH^ `ue))bHڷH,Ƕʢ)( ^>&Mp~ q&h##(;-3eo`܆შ^ݮ;tk%A z'ZP: mA7j`98to#D=?TΫjr}៝'+) 8e\bP7=e!آ8r"3=[̑=͵ƤZZ4Jy'N&"z=ʦBӱMJnIBRG>p"GhP{O@T-3ѽy+APSV9@_0x,kMGla>ɦKCUԴ`z 4uCZK_;bM grbIo, ]2b L9Gn:RJ]= Nԭ6DH+!ayHMR$2ٙ"x^`X2aQ]%  (h"J_MAb&~Rb*wM ~ 'xRs/i P~|M0K/JUԛ4;$&= fd9Z/S4Yc]g VN ʌaaOMvtŰ!H$pY\Π,5T ܖG.P}5Òzv<Ϥ@ZxQ&S F/ibzM5Lb/0E^O>1T-FLX/K Sb6c\ꢭE}C}94 #0`,6jʚ 7nt)8C |g[mc6JxiX-0zߊd~L`x,e'mt(ˌ#$;A<*tBg$QU=$Oeeha|"EqeSK-N \vu'it Z.цDt2vdm& g6!̘ &V #,Mg;VӨ 2^u׽>=emwJ[WЩ!~cщJ+q qˇb<!lA#o `՜HȯwnZa\4)?`p!Vko xc ER%G ]4,׍uyI*uG[m{C5VJ <'yB(η8XX4P@n0͸# z2 ٴu~9@Me4"^ִ8S@av}p 7y7wVm+h HLkAwvg߿ylF4nl MQ׮X_|[#< ЎP+Oz̥n#diJjcmߗ*[jC;MTfa)c P5&hMj=SҤ' @n̊uq,cnZ]!CsT;Bn%D]z1b{"IHJ? [l>gJ)CGu ÅP9˳̏j1$}&s+,X`ΐ/)^AcoD5uCZ΅aς oW}yom,m\ak@oY@7ƘU68OmG$:WqL,AwD:Gi %Dk7.1Ȍ{4?"y q Kl^N ҆2l}$LjwY`@CmOcU.\&+,7,&YdJD8ڂs8K.0דB(DWSm d!&j0^7sݍ1֑%r"y/lӂ:lFG*Z˝v9e^x:K 2n}mW]ZydI0vneEyZ4E5jS5pS*Fǜh:dU49BOv)ceSGnSIe3:nDSom.<ێfȋPfv!^k. mkh{> T! w1ÐyBmB9R$tXAuNyCBݜ%cn0XmiUv΄*ڗu rw,O>Lc<}o({I3/ }vLVXmż ,Mp elc/(V/"@?H,[jɘDAuIU~lN_bR CrCP{`ʹ2 HΝ+FwYyuq E1ڎm,0N0:AP]q8- TOԎ%tuImkMYѐ/D ~1V\d:Ŀ:mYw^gޡDG$ M]ݯWeAK% beBL1k[)/DA01`Z+HAO-gfpjϓ!{[ՏVE]6GZ[B8;^im,ZeXk '$% ܻhkA;~gDԨ1 7] -*ڙR`; q}$iq:xڎ03b!D mb&s:/]ׅN])A~_l-nCLE(4`ӳߞyV) 0(/īfڬsN*kT{`YLe#u 3VRƠ;~-A]%n;MH$/wcjFd.*OkU)>;R~а&G@Aԉ^ߦ33N҄B@7l+fe+z~,GPvmx660;Cv2i3ڵz*mzSUU$R> Ad( CU. t^;^bP{Ԇh0*M MX2U'ߩ-`hΔ! 7$}W H4#09QE^;fـ-0e\ETZ*PjpP}{['ê~b?hYszHD*+U{[!!}tqji'8F9cr"{1%(@JT(+H@YgYF7'E03eSdNr)Z\;&B4>띲Ρ)Ԭ"%VĢ^iEmJ{[l52W&#ϮPljRj⇾F1wkVq0|ǹ $}xsSta"Tg}[ $|Ԧ!)ی/d!+7bra{}ĝ* PCKœ떓K}, ;+:S-/ h=8> endobj 207 0 obj << /A 296 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 160.538 85.505 386.813 94.505 ] /Subtype /Link /Type /Annot >> endobj 208 0 obj [ 207 0 R 209 0 R ] endobj 209 0 obj << /A 296 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 386.813 85.505 425.379 94.505 ] /Subtype /Link /Type /Annot >> endobj 210 0 obj << /Filter /FlateDecode /Length 4039 >> stream x[Y6~_$UcE&zks؞-ĞF-u~A$>dm( 1B//ԏtxG^+ͼ0;yD^bDd(quwϿ@aPrްUIxOwyUꅁpp&2? D^Q(:q}?_}XF:_1_I,a`l[4A?o#px/6~78~96ھݙ`_uP~}.I 72Pcy?F4u.d8yZATE;ݪ'QtMȞ3W_ 0 8_JO"?q|ׯC`jm!,(|[߻gr'FY [1(@( Eh,>F@C˼7hQ 9 h jlpnȶ5y>ڊUw]i@8R<زA dW#QFP(M04']ttHHep>/\*pu:h#zXF]痣f5ѨF_U1` Vwи!"X{,A: -Xz `+kA2-cMn{A@JG38N3zt7V,VT,"5A'RulHMcԤ- Lpm%5,njP4;JT4W;+e2,'zhrXְSvT9LM_z/ cQ" S?O TT fJs?tcH69Xtup:VC,6閜JvV'P9m-IrUR4PK\axhdR D0b3:Y bVp%H`dJϢѼɽ g}iYj\.,s艤`_ J=0BS%YъA# BMKv6*toxbcb[IJå(V`=[dG"%JޕBB))4F6÷Le $M6B3Gɺ!h$q_w~ګv!A<Z/jv疩Fnk|@zhE%3 })2bN\(wui7$$~$TAi~D;jէG园rPkM>\A oI qa-ڰf%e[F~>=BVݭoa4q5hqI;rlN` 9s?LkY8v1rXk jw^Nh÷+YQy<agKfw ػt#80+:=Ai~?ò uюLu\$"/v*'̱0 8M$}H@vDi!THqѺ_njBtk ѴGUHx%!&ƅZW]h 8GvigڑC\͂{h2OUW(AM4-ƒ5mG0>pev= NsB0-*xOZ;*2kIcT519P,(^U7iP'8j3RsQO-q4B& xKPpN}UM;tbi6UۘvWyt0Ddi*F j,N6bx~#?.UUv۪ikK6 "Zd{Z/__k9F;%A#Ϸ =01 ]9/D/ V$uB-3% Q9*XU" HwWfer#˨)8pNp6"A#Sr+icQvrwQ\5WcaZ@?<œ>ҏ3;`PÑ% =-Y#1n>;#ЎrlyGA ~h8+fny(sH%Vd[/A.n5wt V 6y#ԍ-8π>|![;2ǩoEܩ}S =2A/dmQVC3ifu4A;YS}:]xf]访Ke(2뜄+}L4 ark2 ];.@]\DciDB]t&' #~DQMOÌi6YoyG`(d'#=LuKÊ޾@Eg/H;-J=s[ⓓ6ay $AC£6(ȰOjWFCsԌ0wJݎE^o͓ y&<6s/8L0Xvuǵz%ks2fh{_%̜ܶKO/?d0#cYaڼ[/^o= :kj0оDWLn`e"ʢ.j['$8/􃟭(0aVNrfUs0E˰dz)?MfGQ uоw0)V&"$M8wH%_Iԝ8$o`uztOǰ>%7wendstream endobj 211 0 obj << /Annots 213 0 R /BleedBox [ 0 0 612 792 ] /Contents 218 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 306 0 R /Resources 315 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 212 0 obj << /A 298 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 497.962 450.438 539.999 459.438 ] /Subtype /Link /Type /Annot >> endobj 213 0 obj [ 212 0 R 214 0 R 215 0 R 216 0 R 217 0 R ] endobj 214 0 obj << /A 298 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 438.558 125.9 447.438 ] /Subtype /Link /Type /Annot >> endobj 215 0 obj << /A 298 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 125.9 438.438 163.703 447.438 ] /Subtype /Link /Type /Annot >> endobj 216 0 obj << /A 295 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 295.01 426.438 384.99 435.438 ] /Subtype /Link /Type /Annot >> endobj 217 0 obj << /A 295 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 384.99 426.438 421.37 435.438 ] /Subtype /Link /Type /Annot >> endobj 218 0 obj << /Filter /FlateDecode /Length 2872 >> stream xْܶ}oV4^ت*Rr!v6_nf'k=@F(1Rp"rr҄gdO:#- ܭ妻7?ք $y_Ο>:#Go"'I.aO~}T]M6?IFq3i&_$g?d)=%ﱚ08SkhAcA4<@PQ$YLp?d /"YA8M B O yN#y={S5yݴ.#V$(c06}G'/A @ןu54qj)ǀv/xX~UXPL ymUMa`¥f%JW(Hay5%lˢz5xjBg%ORljTvw{_\f  %F֛^[=u쟗Aj[=3%h C'``d%'9hD"YS%ԕ6ܿ"5y1ʙ(V>gp FսN|8{([HD~.Ĥ=WX mk;{Lrhm668%3\-orTjeh*Bc<>><Ќ^ tEjPM@;hcfIV& +JyaS+h"9c2л | neu3Nc3TpzR1Jf0A-,jimY^]~zvKܕojq3$e$"s/_2! *M\fbr<[e𒅀fγ㌰u'+{Oh '0)dDS-ܬrb%ش.׵H(2b6)5\yؖ^fBzMfaV_#\~ $ܙuA9{-wULA`ľ}a `'it}g`yZ7 kVI%~HT?odx <3C,3UI+=o]bU"LDhhL?غk̅C7AΝ#*o0u4 ìP6#uSFvx=S`&X\|8W>1RID(hҏ{MmCf4c.[>j@2,"(Op/כ'=$عw>i:!-aYv9IɸhSMqrO>U7tdCc"VCҳ 9 cOLTfXh;}d ]A57r,ٟW~{?@|Ojazrԕf_!D}ꇏGӈ[ j%/yQ|l/)`D1 UӎHH! +>.ؾ7^pm>VwCL~u,}:<",AB+, YatTG0=/p {_.=UVݑFS˳xR}A!S'D+r4DN7WX2G'C^R㨦~@:YE27pǣbySXONL D 1Wy-Av߽F`! o+ LFsaL!NBq(Rpk^"mUUU{Ttr%.6^|5ڄd^ ~5=^|n55L:z,%_ІB\U0}>!?UY!5фǝ "a#5.gwd &]3dӬ HA/ qU*D;ТbV>]κߍqןSH,Bsqgiv \Gե0,}'{ITi60iEvbIq(., 9=[S. v,.$&Έendstream endobj 219 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 220 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 306 0 R /Resources 315 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 220 0 obj << /Filter /FlateDecode /Length 2662 >> stream xZY6~_3@xž$gt-vk$-x7 0HbUo;'t}{'JԹkACkjKIv5 5c5CaCPF<ؕd`Eƺ}S=cELv>ޝyz?0ԂJAECGu */<5@c[h5WEY5衩~i^ph^R n{\nzg!_=u),]PPve(W$f+b^7Cbuu@4Ŀw<;+ei&$w#+4!(Rkw2*"T B3{: OAKr3rg#M(q_L2ڃ K-% 33U {I%[\Kq櫵&H+5л )imֿ=K퍠.)k>ԟ;xC14myа4u5>=B '"Y5|e%@<Wyaw̱5\# 2G٢nJbyf\Q>5qn&g*YGYeI/:Gp*Cbk]VoLx8@ bK< ckA#= YT"Y˩F:DkI'F*y\5'>)wT5ImENFO)+9ȏYƽ iIGTLHf2i_d~L8XhBTgݐbOҗd2Z\D yof][-̷ۆW͓,Bȳ@;y-ؖ ȐyAE/*M >]y^L\jWOVמTS&^ڊyTIN*ef%Z5M#?$2,b"B &z{^+ ɾPW,~ XO3T#/:of{^_GI|k]RqMR:`~%pϊ=7 4r%qc~W%O]^lPgY 7[!QȜhRQSL[65SHe*w GA]lS@s?L-}z3b7 k!f!F!&!迲nf4#?l@,*>S-a5Wplp3`d zdwpdE]C,ga#M4kB,H-J9H"OZkZ^yצ5R |OpA5_ya=C[*rJ,6p yX3gl`t*9lAr%+;}&CYP:4=h--XP#ɳj6b[rJ,13DOktwrp{n?AeI< smc/rMݲ.3P =4Vp7+'ngO a5_ʏ/^ؗ# EbwQ3@\Վ%|}endstream endobj 221 0 obj << /Annots 223 0 R /BleedBox [ 0 0 612 792 ] /Contents 225 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 306 0 R /Resources 315 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 222 0 obj << /A 297 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 334.947 468.365 448.053 477.365 ] /Subtype /Link /Type /Annot >> endobj 223 0 obj [ 222 0 R 224 0 R ] endobj 224 0 obj << /A 297 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 448.053 468.365 485.879 477.365 ] /Subtype /Link /Type /Annot >> endobj 225 0 obj << /Filter /FlateDecode /Length 3013 >> stream xْܶ}ova&&QʩT,J^0cקnn 1g7W_kE>}.!q}8I,_tG#eO y"=™!H8=޼]w.γ(< OWav/NlqJ5&bas&€y&HS4}ye2Ycݵh_ @ XErz#̰l i|KAT8y-^4ҝM/Uc7LviҁF<[~Kˈ*Ds89Mp+Tb34+h rƅ"|_sOfA^Kf˂u?4j\XnV,r$I/"7eCWqFcRY]6_n%V T*iNhM _=fo"ۈ>5–9ܙd; `+'ܙ>1̑G&nkuau4[jjbΒt?`6r`{$;(f&{!lՈF:$zͰShI-([VՕ0W?dk6Cw+9;5.`xY{\M| '^wiǾ>R` L} 墕V㇀&1~5=[$u#}[K$ÌodF7r90'Qb4 an?gj~ QَI`yn0Jdu-ሄiZyfN<2AzSz^Z3=d䉗2OVSoЅ԰ZR#8auG!|0TDirQO=X0l.Y9ȁR ?.r nvc9&E6DV':6bYi0+z{rxK1<(nmFL81F%ԭܓtGxh݂ǐ1U~ (e LGAaPn5O΄فPJ30:umuch5v&Tq4<κz 8\BHVi+J/{4g&rzDTRr]$U*eGp_endstream endobj 226 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 227 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 306 0 R /Resources 315 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 227 0 obj << /Filter /FlateDecode /Length 3384 >> stream xZKܸ ϯ-㪱VϖgSNj׵a֎mQ=ɯHR|.7>$r}* HtG|YA+q > wQϻ~&]tݝiGo|]Gow?q<XEyY<(4$xj)bnM'|42'B/ ,ZxkL[uj ߛx?S!8aIzsdVQ&Ip ASY|ڹ ~l;p, "d9vIo`qpv$eݯWs>90ݫjN{:ƭ,'.irC|rGGGC q==ARsi =4,jF0$9=8,PtET ~~㘏'NsG@swY$Wo82\#!Yy"{s=0JEݕLwo (C2$ 5 ^hĀN'mI*9!sObK1(P1zgFdk՗PHjBNJ{ fw t-G9ȉD@@ێNAR-Z*N9m~ļ-%Bm{PJ*_NOr*t[X/1Mk6B*5)w麓`ZeM;Geu̲0\~l$p'0g0ZGJ2uB7ܞ1\ !A7##eC;臍Jkј=c(az 7']qMj15Ȣ}s$gIvǼp`>Mxb*m*Jt!8 sh.#ږ\gDg3~viBDiWg۵3I(̋2*E]GQT#z_Dp~r|}`&XGԸ\kdZ09[%&⎗l.,yoVTSlnI3z:ֺą.MUo-.$01aҍ4O*CCt؀{~!-ʰ(wUYl?Ӎ/ŋ%6ɇÆs|`ދW2Rq#.Q4 2ݶz3j2'mޏ=tF=zEh4hLElޒ#ӍƫDGxFoIP~SUOO 0I8MLJWs? 鮵ѝ:tmm󛕦( t5QURts^ƸJn#İnD:^"&A 15]HЭN~Ax^ T i]AepH4(өW)ίZ:CZsY6io"mR+ZhO4[LZYfB>nNɚ,%ꓬx$:fylTH|)]+YIQC9c$)z] {\r{.yDH~e;&(cås\ QD-Jd!-"N"W+/t葼fH3$ј\h=4^oɛ>*z[-u$_ 8=)l]1}ϖ5ΣR-E3B%ݭo ҖylyD3!> endobj 229 0 obj << /Filter /FlateDecode /Length 972 >> stream xVYD~()bO>bE- ZixXwbajݾ-OCf$w}]WUEAPXO0྆<0 kr5Z~N )bp3k?Xjz|'۝8ȣw [P 9+E\g2'd}l3ѓ %ӝ|@ۀb\wM?Deǧ{Adb:@g;+lEېBgk>(;N/SV}%EGJ=a UQe2qi* s!@)E)TC֓t fZE`W Ub9Χ>jhֱ"`SPX%7R]Y.E-^#-kbhXWy4jxs8gO0 8]Bvg&m9 ڋxR٪7_׾7ҁjTSQnzAV KH_cɌZ/rhE<^\nMF$ވLQ)EpV$㴯.ei&Zo@ sv%jT)mUWj,U"4W1qBoes÷8S8]isPCl22a\ftOG5#5u" c࿦e61NgQ@KeuXd3>[s`>yd˸E3L"tȢ*%.߀N*eߠFݼY|1͔YY‡ݻ_1`۹2G뒙n1Z__1C69dzxؠh}֟/3 clw$Z5_q:(*ތZxendstream endobj 230 0 obj << /Annots 232 0 R /BleedBox [ 0 0 612 792 ] /Contents 234 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 306 0 R /Resources 315 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 231 0 obj << /A 299 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 299.614 431.318 491.36 440.318 ] /Subtype /Link /Type /Annot >> endobj 232 0 obj [ 231 0 R 233 0 R ] endobj 233 0 obj << /A 299 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 491.36 431.318 528.338 440.318 ] /Subtype /Link /Type /Annot >> endobj 234 0 obj << /Filter /FlateDecode /Length 2156 >> stream x˒ܶ>_WU+.&uHxSN(*,0$f1_"8}h_+YnBw| ʟ4H>kOҀ& #/IC4Zr@_큒~>ˁ.)揇 ~@ꠢS}#:n[0DPpoֿ֞hAtۏ9%_1)y:#:#amI~:!ۂՎ(QqpÛljfyT!oK]=W%wT6V]k]G04}ގ h e#aTn[ĵatu_0ܗ'xBH܋>P4,J+)t_D͋6c׬h kIс˪2F~l OKH7^ne$^mq.sve:HMg##xNK$/x!g/v hY,O.u/íW˪l}/#J-ˌ:F~_x{ Ye]o ( EFCceYI-}EAhOwlX͙pP&,g>}$yԣ8}ఏBʱcͷY.po,}g^eW\eݰko&1x -MuDsjtVW'<8(O' /]2թ*X] xSB2ZZ,b0--e$-xj訳Zc K ljO^: 8Y#wA5j{VƐe]7 SQR ^cO_6}pa^$xC!gW&Z1QaF ݐ$#+50h<[*9Z"An ͧ' 8K/CTO OLMh?L2u( kzH9qXlc,&V,*zpUv,vE,\aF Bh̅;R{mBQer7aB++{*췣O>tބl"&٦S0 ,yGSN|_׵fU,Ufc#Y0ԏ(ۆn6?M'‘2J#?^|9X[Ă`c;32doB81 IvZq<;6FM Uc򦂥LT:[tQ0pJ6W+WJgoBahgc=~CAW EkWE-5)vōC7-KchjAP|دa%aSsvZC܎kϧE5]qxD'mktBh Sb֒4^#f!&^p} 63/r]|Ȁ")fQ #3&>ɺsP`zc~9(&0=*0 {K⬸l/~TʑY^$׍lS kjjAg3hM^C> _2(zP}0([5{-D^A[ThAGaGnU,T8TDR~B?j1{01/ =7#/0_ OZ);nEj3!F*޼ *(k/P~5c](Mia۫nrs.>endstream endobj 235 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 236 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 306 0 R /Resources 315 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 236 0 obj << /Filter /FlateDecode /Length 3127 >> stream xrͻ ƒIݜ؛r*UfUThϐ2ɑV4^ )nՠAݍ~"nO^2=](M h@'h~"ЯWA%ݯ~>Hwq)*e'9;\ĊfHGzwxtnQ#eofnƩM;Fk#0TW9^x|oׁٗA. d ۡn{q F&\o(xE~W/do?SEs I)C44gsB-/?|")7xfHRo+a?.rrZi)~?K=q|qyIe2o0; b׍څ:szד05 Q3޷c )d9dɌ2/zZ<m &ּ:.'D1?aXb9!'҄f+pGi ilXmsy=›muol^9 㬤^br5ouJX@pN%IwanUƣ(G ;[o;nJK"q}蹨1Z8qcSpC=DϢu]=ʪzsn\_"uCLo[3=1WA&2yPaO lARd3ԵZOzSnϽEeH"0|vI^@TgvǶ:LČȅHjM|IkJՒM>{ }P_+3RX:X[!@٩]D5$y6*DnmD%,!/hLT)d5ښ iHݍ 4v)Nx6@Y6 #iy$o`qX9/3 drFV_TۨnTNλZFA-$XwBI>CUڍZ7 9Xj-p%Qy&,5 NBsD8Г2 P_ pEOJ2r8`ܩ3D suu}k/&h:u3iXkdB^ݥrK"Ki}aL,øyT?r\H8²lE@CdqW JPJЛiy6l1֌ |r"P?o ȵ2˻:)ŮLr,)R~XoBg}zCAfDY]R۟ }]9'w,uJ6CG=5+[aJTnͰ,[$$#3Rb`I0 d*tMmDЃ"T7^Q> 9n ||cۍku l&5/NqGc98+tn- _k̠`"+ z͡L#bqHLuXþCviB1Vp["4 fpm* d.hWy@b֢keݨ37v7Bf?,Rֆ#Cl9fK/7T@Ԭ}^ƻ=um+?/qO]yBk*I]ĹĄAܠ.Ma^mZ$8gP$ĦC;&Ѧvb!^R7̺ 3;a ]Ff֎fTS>a_r AD{nQ5!ʁ fGNgfr+GMWhO|F9~trl [m'=W\+.7~͵͸9scFgmPQyR!j3+/5]MvzDkk %bP?/PDTigBF&UZBdHϩQD' w03sPB } =Z)/5AB7 Υ?/Lxendstream endobj 237 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 238 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 306 0 R /Resources 315 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 238 0 obj << /Filter /FlateDecode /Length 1415 >> stream xXr6+pWihKIı|%B"S\d4Drخ&zE#.~$ɮYHGdE1BǏHC$HWYW@IW%|qArѲ߸n%ՏCDۂw/=mwKjVJK> endobj 240 0 obj << /Filter /FlateDecode /Length 2600 >> stream xYI۸W6}雗xxܶ;qf4I\Z} lMNxk| P(T_UA_7>VIQ0]q1jnǨF`ZG }ٴX"&7ޥ89棳] B?h t^~ K}#㸹C=jm֖">n[[Cͫ͋1=t_sЃ A= w/MX{LgR=y(q%ˮmɾ}5%Ej+Pb/=NմD5F+TH ؁R4(`2K~XhbRI8kno2Iq'`L{?>o{rUnP$?CYB5  {5s#gv{_v`AG wO V֬=^Sgx 8wh Q8lmrj mk^G'.xӃm KqY2pWw g b$0Xt>T*8LWp99AK֐@s8ji 8ϰ0bӾ?~|tڍ8tFlyEu.l]b4If7 U@كq6{`-(X_L u[,M-LW RxOQFn3H? > \;y$Rb\~P. IɃy@UB} E1iS%-x U QO+Cm!ť2V'9dá\z9WbgII*&A[ M6. a&*0_VI%8| URQV+eƸ<Qg!,q+zmvB|+#N0|qY{Y:WgjNe>ǑđDp_#oo:~ ɝ.8^ o%k{nRhyE2N|mR iJ4 RGIvդS: ʶOJGҎ$n+UP+YVߙ`Kwn'yfL\UPÝ'gpGW(.,uw\赑Lz* 6_?)-*,M>'RqP+HuY# aCtl m v'*o;XX .:f TaUU4UFi."ُzC ZO=MR 5e96xE VfG _'Kݗ"v P+vgv *Q"HNkg2q^fW_\֎=/'u g TMJܯCCB\iȝi*w^rچe$TEV=&$dμ\h2m4 + lri̋ҫX{EI\t$N]HaboߠC~D2!Hc ݢ%G4L<`<2?b2ȞalfW{ۃ9N4&[)L (ok3® EoeVW4w>X> endobj 242 0 obj << /Filter /FlateDecode /Length 3288 >> stream x˒6>_=yR5IxM*Nxj}HrHHbL2Iy[|ȩ=dT 4FwCB FG IHjT0,!G ip7`f$. |H )9[od s* DqQyBrcH~U4ԍb?BA/mJC_}HrHOQC%*G|)o|!04rVZoV̊0a>sK4vz-l<xm#ElTP9aXElvؒxDŜf#Z{S$lj˲`q<'G:0cO4@'ϳAkwXY!JR'x7F:!ؤ)-bTAZ܊6isSFsr*P4ˁxNڭFJq`MS;c5j'à>Շ\#tD,Mh)Xӆz[7x]\ ȄђU| XJT-xY>Q#[{@p<эv6*"TzQQ pL^Bx/Sns%=[vk;:Sݝf!D!U-#f !ڷcsW)$}bp),v㗨4dzرYÀM4s[=X~!BUA$9 }#V4 Ar+d}sV/0 2z?u2@ N )]T3N( L؉蚺ҋ0U.J_ן4O/>k<6:J!󶁛of9ޖ]18v!eANSr㡫U.A͉COd! Gɀtꆫ_[򦹚I}=:41gbx^Sc^wd (y'VZnO0Wb~fx 3!nXi>'e]1A(4<[ ywb QK̖ o2 ԰p|njk(WϯNžxә<7\1 Juaa/^ŨT_#4Ɋ $:aLW\ݨ0p{  p ~X+mhҰ9vod IM7$5M$T06gDPMφ,(0-B;`yU5%EZv h=H}?L,U#hZoo&ҝ{ 吝xTҌ7;sˈ`0,@@$r<#e@pM!DJOxN}G Dw_/,R7S\AɭÜyYQ^Y!K'"Ub{c!U8%EA;Ξ] K+tudH7 d%.5>X,kah*i2'TêSW9Ϧ4< }}} N{~%8\%FZ v%[Ϝ_; 9@JγGY +nvrԭtnL]&IB]:iWN ;^R >mq)wvp,lg ̗ D%'^y/h'+endstream endobj 243 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 244 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 306 0 R /Resources 315 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 244 0 obj << /Filter /FlateDecode /Length 2980 >> stream xZY6~_8Û&>Nʼn홬S"2!oٗ* *"!]ɟbpE"R$5+IqFD, ?8 =|\*./G|_}wwیD!9 Kf:H'V31Y7w#m(?hQɠW>_(G4xA`6L[kAߋzNbHGlEee, ϴmxsOv5Ȟ>2e!*›^J:v-y-ۚ}d) 0L|zQfK$ѳM3"C˔RVbM.D2#D|Պ5RՉh/  /BN} ;ђlE'v=w8DP; Kr:+gnꚼ+xZޟ }뻵e|x޳irjf /^ a%A7v7x@TSJ`XӍ/,6v6Sڜ/iS]7e=TZ8i(cQ1B^t<֞Y1zJ,17"ЙɌ4o-,,e9=Sc$q>1.&'*@_lܑ` ={=XRg<g0d :2H)OrX9aX-s\l|QHdܼ~fuM%N]? i"9VQy{uGVzpk.t\ 4݅2fkX N1DzF7~p=#o{(P#)țiPѴ='Q4YDIŎXu/n ew\l Afǟ )і jyVUŘRS˫ jO@M*83uc#w 267 ' ޞP[TX,(*#EMp T>@5Ҷ0A#znPu ҆XS(6 Q@- BdӇ{~in0#@f/l1 wuQypxQ ԢWdF[uW2/AߓV⁋H&m4ZP@}8}189T"]X[IG5 vBޗKCG Q/z7 ޝ͓!OW[ȡ! XDɑA%:ɄASB0v8* zI~X9*0F<5'﵉OPz82X!i.YCHtE }";ZC S#;,5T;BI}y7:FWޝ K Ad2J ^gZmT&HSxHǝ>~/Eeߡ#:8/e7#ˌ> xb.%^O4سoA$Tk Inv ^G *q:``Tog).'؋ycV.ȤgǨy o^yfih#ݬAf&;տΜ$!n> 9z>Ǜi-^ endstream endobj 245 0 obj << /Annots 247 0 R /BleedBox [ 0 0 612 792 ] /Contents 250 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 306 0 R /Resources 315 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 246 0 obj << /A 300 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 378.272 673.5 539.999 682.5 ] /Subtype /Link /Type /Annot >> endobj 247 0 obj [ 246 0 R 248 0 R 249 0 R ] endobj 248 0 obj << /A 300 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 100.0 661.5 136.11 670.5 ] /Subtype /Link /Type /Annot >> endobj 249 0 obj << /A 300 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 136.11 661.5 167.49 670.5 ] /Subtype /Link /Type /Annot >> endobj 250 0 obj << /Filter /FlateDecode /Length 4187 >> stream x;ْ6r|M>Mqi[ T7,. dHF#H$ׇ8ߓSI?=JmqP&AZPS^q&yp ΃Vb@b!8??tQ;t6A=93Ïl}G?=?|1(x>xeuY]UTa$x>'J1I=xRͦ0QdR, 2Yj?-ȼ ڦ&q "s!ҀZ]ްqkС(Z6gm,VzWl(x/mѓxS8]zq+KbrڡayKAK#ѐ&t,:4 t49tbe48 Qt6]x'y}N1-;eBѷXSqO<܃Vf[ѽ\%FE#b$+[ӷ/7"* ENg/"}Y,ig]5[7T;%Bf~3vjEB-GP}A/ )^-pzk 9pg1 b8([x̀X*.!]=H4uc{ B~>y8Pq2Y<U÷{ETiy'*b CeR,:"deYiA߀ՒSBp#Kg1Ll&%3V-'6WW61Z%2.@3;,1cFհn Ҫ oP(C>uS@dڋGBW`9+_]:sɇuEm<@+VgJ*WrVĴrZEF̨sA{Ⰲ]v;(sa;?d'd(eDM[BtSR x,EXbԾJ0/vX=7scnhoC4 ~DDn@=gw)'FJh4S9 9y`@ #f"n "k 2gfmyڣ1p"+;Y^m|=MC{KKiB9hhGk i5[cGܤd zFV4rm1g W٭۸" 37<3u$&.aÊ^Z tQ]@Oh/%)"VV{|%EƱdenoŨd &gXRI)x#(0*JYɦMA qR /4elm=ߌ!f lv Ɗ^Ro`r.<\1z_H",uU#kx"J,GlTH3x=:KI{F*.iWÙ moEPad&({:8<#o<9kWIDnG&# } ~z*Rqx UUҸ% KLWaY-P,#f51bt1o~ G9f"+t1ԋ3:mU ȿ8+حYXGo 8 H8?S[N(0v~w$MD#uZy ?mBcL={I#t\'[=1tAL(5̙<=r娵O5{z_rYUaZQ|\F"Xs,cyOs3}lڎĉ{oB|0467 ;ߊfn{ W!-06R-)S, V"n?Fj6*8J:wSOI^da߳\W<bVhþ4 `~0>:2b$zfū"%~e`ƐN _P|c'L=Fߨm8Fl0gVM-,א)LSBVż Wy{m`bÀxmppk .Wu#M0Ugym޿!* })t1ѷЗ%ӗZ7pߖYX{ .Mvp%I5:#elߴ~bZ(M|[~%Qfz}hEqz GVpٷR{foM )cY;T.[?>7_#aendstream endobj 251 0 obj << /Annots 253 0 R /BleedBox [ 0 0 612 792 ] /Contents 266 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 306 0 R /Resources 315 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 252 0 obj << /A 302 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 429.325 422.206 539.998 431.206 ] /Subtype /Link /Type /Annot >> endobj 253 0 obj [ 252 0 R 254 0 R 255 0 R 256 0 R 257 0 R 258 0 R 259 0 R 260 0 R 261 0 R 262 0 R 263 0 R 264 0 R 265 0 R ] endobj 254 0 obj << /A 302 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 100.0 410.326 112.5 419.206 ] /Subtype /Link /Type /Annot >> endobj 255 0 obj << /A 302 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 112.5 410.206 151.668 419.206 ] /Subtype /Link /Type /Annot >> endobj 256 0 obj << /A 293 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 116.94 305.47 269.15 314.47 ] /Subtype /Link /Type /Annot >> endobj 257 0 obj << /A 293 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 269.15 305.47 300.53 314.47 ] /Subtype /Link /Type /Annot >> endobj 258 0 obj << /A 303 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 116.94 271.102 232.21 280.102 ] /Subtype /Link /Type /Annot >> endobj 259 0 obj << /A 303 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 232.21 271.102 263.59 280.102 ] /Subtype /Link /Type /Annot >> endobj 260 0 obj << /A 304 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 455.55 248.384 539.998 257.384 ] /Subtype /Link /Type /Annot >> endobj 261 0 obj << /A 304 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 100.0 236.384 188.88 245.384 ] /Subtype /Link /Type /Annot >> endobj 262 0 obj << /A 304 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 188.88 236.384 225.26 245.384 ] /Subtype /Link /Type /Annot >> endobj 263 0 obj << /A 296 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 492.575 213.666 540.002 222.666 ] /Subtype /Link /Type /Annot >> endobj 264 0 obj << /A 296 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 100.0 201.666 268.61 210.666 ] /Subtype /Link /Type /Annot >> endobj 265 0 obj << /A 296 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 268.61 201.666 304.99 210.666 ] /Subtype /Link /Type /Annot >> endobj 266 0 obj << /Filter /FlateDecode /Length 3516 >> stream x˒6>_5ܜijVۙ! ;IgHlVvYhdp(gTE4Y"3NWy6G/>t\W7+rNN!_}'/ߟDK#JSQR)Oʲ,Ҩ9+~~mG9|G7'p|T<(ceiBNxN`ݬڐ9{XjFPˣ N KqsGlfVĽ!31лe7JQv1B'qV戚jόgX`]]t8^m[is>$&9/<᧻O}5v__&z3i ф$esMq@ӎxjGfaqj y9O3B"M8X5{NZ&L^d 62ƨ8Dz8zWCC0sҘd,/ylٯ MF^x瀵k-,C?So%?qQݓsd?nBl6Xa'5R޳t^1vre+=DQ6":TU;p- ^xm6r˄mڧf{)aZno͕RgJA08D`J[JoqRht`/~A!KEjKYGcI=31.IcRBH{݀5nD9%Xu% ׎qtWCdzS;8xhqh<$H (!IO*丳uFX4Q=6;097]a,:MI$6.:7)Y}P϶9fube_l@NJXmF{|@NY/7;y/%enR8)4oeƓRZZK(!ꖔЋia#<tٷ:B`A&s]n)2vk{:U\դCu[д\p 4s]Rt8k_r=6qa74 l`rI,kdtCːPէmJFeBSV5UWhoW_T^rBRxpp*H{ꭳšȩ]5Sٯ xɠui罊VZ0;ECшqW#w pB0⒌(/ ^s@b$8Z:ڂ%a]Q0BKbfB|Mi'`ГؼXРjEέTih:φt5賷|_02x1rH'e~6 s؟<櫺]뷯sM+2}YL=9*d:&GТRq8|vgoR5pAh];LfGA-a=F?wcQ >ey^Nwy_#i}5)U^|l} rǺ~0\23g*Ӌ5|/Mҋ_AL"8@-(g|tb(Ӗ>Tks#G2WUjv3'_R %P_?e7&`6O2^Ju"4Ǐ>B= +=NJ?^> endobj 268 0 obj << /Filter /FlateDecode /Length 3192 >> stream xَ6}o Ӳ[۳q`o| ,`KiՒc[Ţ$vcc͢b/Wo?apEq: 0YL}*c#E0س߮+?alp/ѩ/?fW?_=n[q,\'?>\Fl|;n+J-g?1`gՁ. r5KАE> *× "taƊ ulE<{MaȆ?ӪQ"g˴amZY2Λ `{WfE+<v;YG5!q]S_b(XQț$U;P_rydEMonΊEZ[FDd6օDANlH&x׶"Rʼn}6Ng y4,e"lqf/[) i*SܙgZԧki 031/N9kw/~G&OHsTwh,rL ,b{ϣ/xoeS=+@}Fhp/D 0"9HG OgYdV]2Q^ݾ|jwB+ߛۭ2e*[seАAպHuowV .Dp @.DcÅ0 O̳7v?B, QV)E`xA^=}#VZhxw|;-Wo%؁duWxb{'CfP?e63 rd]_ǁG8 ֌b~Fp\à{c6ht&JJc& !+TCib&P 3!IKfEzvab@wB~*g<:=:ܛ ! gwdT" nƩ-`2\~ƸkK^IE $gt~X'JQ`97J)3 ڎL7Sux|EmU j59(lf9}yx8ܤEFQe㬬/}fg[[\XЌݰ2AJ>Lm^ uwW4b'[hfu@vuy2 YC;׻^1ݪ]EDX;qtH% 4``,u!ZwW9$]ˏu`Dz,것A]m*)E5A9dhmnZ Rzy0t~Ŷ@Y-wu%*eB4@OC/1F%CTh r194M_2XϞQ{__=.Pq}rkʫl49km˻(ud͜j Öz-9oOtX0K)Z0 E'wF*=]Oځ>>IW{=Y4ʯQP0"Wćjt#(0DNՙ:@l8@cޠa?wtxzKkL=lWJ8Ta+JֻȳԿ_ iendstream endobj 269 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 270 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 306 0 R /Resources 315 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 270 0 obj << /Filter /FlateDecode /Length 3175 >> stream xْ6}okWysJ|dI qM I2@AyƩR74}74+KU?r%Jrh8ZlGO`rѷ7(Z{o͗7_I#G['"^4eYiTѯ/>VQF?_piyxP+3?'JgRQa`DZ5Ѡ>]=G8tu!ř!$|UZĽ/lFah(o#SOgWzc,VFcQ-Q8 RL~d5EN 0F۾mS=FNG|ꇚ,YKI4-0O2![~Q;E]?E3d7g0s'%³k,}^Z'Rngoh=sCim±<;1yq'b@'#|5ih'gxDT'$9Z}:0$yFNi Gf~wʬ|VGC@^PmЀqs^l:ۢU$Ki/-"ݪ\8!-ڝM}O60`@h릜AڭoaюvLlx!vH*(Z\SH{ IzU{yyj<fTWl؜G F}̘nO'#mBe833c*|JU*g卐 yQ:rv[(uoW`+ٜZqQ\H@ ~|V75O;c4-2x|MBðo1g%JLS"+ٶqNdy4*% r`HyHtA+,,O*q81 b֕R"KC rq\^$<Ƀ|s=q载:UgI|L>lZFLm#xjjoՀW5<lVIKc6(0@E(s^^j>Mj9\ 9\py_|…f^`ԊNJ4jq0uRaI`Xwr4ccILR^ew|_Qۉf )-Uk^heWk#G˯N@4ٮ5tc?҈kWiL9!|j^t؊}fM'G_s\ߜЅm^f$TD5ίeɀc Lr[I xƇBrxY=|>ӘqNϊ^ emϘ+{̀ihJtQ d{Ft̠T /Hv\BWҭLjjx\7K/j1㶫J3'et UͰļDY[kW Jz.2tz>")徽=`ຝ1O,gD*RbE/YK:w NVy\AB&y£>g>H$P<@r28?7r&^;]Z=l֖3MfHfZAU<B~.ܘ}*x%l7NY$9$ JD,o-nZaNKg9ZNu_\}LyvCs@:|؈U M\C,!l9?\CuSasИS;olMP0, |zu%p@ZO[\,@cg~sPr0tOr^?cQbLƙ}hӶPb:N ߼u('ɠd٭#9['9OY/BEZ<7P퓬-zAzZyA]'P$_~'9CK|4si_8ՋR"ѽb$&endstream endobj 271 0 obj << /Annots 274 0 R /BleedBox [ 0 0 612 792 ] /Contents 276 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 306 0 R /Resources 315 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 272 0 obj << /S /URI /URI (http://delphi.about.com/) >> endobj 273 0 obj << /A 272 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 359.15 295.375 455.27 304.375 ] /Subtype /Link /Type /Annot >> endobj 274 0 obj [ 273 0 R 275 0 R ] endobj 275 0 obj << /A 272 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 321.485 190.125 417.605 199.125 ] /Subtype /Link /Type /Annot >> endobj 276 0 obj << /Filter /FlateDecode /Length 2854 >> stream xr6REjOZ;N98~h+U!1CD| 5~6 3䬽t7~"`>wiȲ3Y"RbA  +(-?8~Q_짋?9a?eg&x_.g?\ܾNXೇ8(NtqA+6PW/~|8& 5F}!]{f>$#}ҀV~Q=k?V*XG@6G!Jήwvl=zܱ% k֍ |/Mbgާ0LN >y슭e'TɬMf;Y;):z V}0~($ZdB)={4ēWV!X~к]1BFQ :۞# .Y[>Ⱦ 0(ep\7(/ 3.ӀeS= B" O| Qn9NCY{wflm]b|}ۂz0OJ^PN~azٓ&hBU\,΀W ^1HQvjD(+v %N}> $ 9ȆMVr_{ZXY6Mm6[횮R/e%{[S#ZN}1Z };B~#x7qñǫ^h ΏkE5+L$1V2^p> D*'ܚt@2p 4cj&M[:'C>(L!»W'p~tj\N\hF3ƍnjB֏?sAJ(踋د<&47lk+}_n=Ah %:K%WkNs$n6S($ս+5ۿDf?ajs@P'?榇~|bD&\vZ;p孿!ǽj(BƄHS%mI| O~?]9?:!KajmGWCK":"樴XbX›Zۯ)Ge S.QmNEElymUB%c?zЅN plzff0X@XpAج48Gt';ՏX݈ji?Z  2KY9 -\9%XM8i> Jn I6%d`U3[}!{|fle`%ӕ +(b-,.1K;֜ P("`|"jSADshMx%=쀬r̕.(vX)R z5mϲ U"_pUǮڜpAU `來fۮyeϛ`PKLK,{^hoYŎnŞH^jOyB#ƫm=Ҁi5p#kM 5𽰔wo,XԀ[[5PȬlj #ٱ=CBCp J^(bȂfJoB/뛗?@d4&jv lgn( 5jj_{O|/3?Q !JT.E3Eǭ0 W,p2uVfgw7TLJ/]:9@[%4pHbG^dn!n:Y{@ >Bz^ [x hdn[U~vP%>ѡa׆(Q;gH) &x&":P|mJ;H.qY 8ʼvG\ qt !n!l:MA,Qywy&=b } L&5h_x~qxBk&[m ceg)xBSf[C3g $S e)5^;+_MBL }펷ٝA(`r&9$%K4$OGnaXD'SHf4XDpW"l,RLTFPL $J!0|ΩhKAg n55עDdNK(--~tш}]CQͮ?NxIOظ' f M'蔏D!Sf 10Uxex8珁V0ٿG8-7ĽbVx&Ʌ=VZAp(|( JXwXBw;WwB5kyr>Wڤ7`cJ?]'>=;ض-7>,/2l:1}o^vi9gm3?ң6 ̗D@Nxq|₾iJ j^)AJ_ v;ݘf{i U}_endstream endobj 277 0 obj << /Annots 279 0 R /BleedBox [ 0 0 612 792 ] /Contents 282 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 306 0 R /Resources 315 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 278 0 obj << /A 301 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 405.397 573.15 539.999 582.15 ] /Subtype /Link /Type /Annot >> endobj 279 0 obj [ 278 0 R 280 0 R 281 0 R ] endobj 280 0 obj << /A 301 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 100.0 561.27 122.78 570.15 ] /Subtype /Link /Type /Annot >> endobj 281 0 obj << /A 301 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 122.78 561.15 159.16 570.15 ] /Subtype /Link /Type /Annot >> endobj 282 0 obj << /Filter /FlateDecode /Length 2081 >> stream xYKs6ϯ-vD_㛜XN%){%W6Dbf& )~hV'ok4~Ać?'݇$vFZ@Ґd$ "/IEqLJe i?}W|dA|Xj{I1Qb,&Gý/$?xYo?ϻ ?hYˠ>ӎ#r n@4j6 8D}wSߨZ\Fw=|; R /lz;:{[ s_a63Wr=%axyK ') jZu>ZԊ`=H]rVuE,HE{8 ܺ]k[gџ,(o-;{vM )E;oBRdiS+DL̑756,[.EmFKap^鯬-=7Sj@~-jQj6ւh9/\C'vZ3y r蛡'Q5{ɫ lIl> .pYPd1N C𴛻ɻ8|áIJ4,Q.5g7xޞG]| i~lx[N3l1OMqwnƋj-Į%MD u6Em}]XY=1Q2,mB2#Y*lOa=]cإNb,O<i꩐&Xʣ fʶ)C%'֑Gk/m'+N?vѣKRe${ I9' ifl8 !ȃײV.;~h@[92R+B (Ҕ[[fS2RSetEۦSVﯖ%K,h<+~i-+ HouheeP+΀"|?8}/UY48eE'>zw M'KZ&^\>lz;+;zwC6Tu!bDUºc6{6S8L7rcD0f0a-l1O K􁵥⹡:phʅAm4ȳʂh[n](%+!B}]t{^ ӁNhl804o[Tm)1 y]}^p|>QWA}+%ՓC7FxlڕV,VPhKҫʥ$$q𲬏Y @~W/3VP'C8^so ݫ&YFy1}䛳1<&dXYp Rxh&ʘ#0EF7</fW#.?8ebpx-^ҟ(E`8> ʤƴIT|:REf2Z[ GpNkb]hyN"/Z}Ct.-P:2ԝ/wA-ϮmhBey9xd+:qC\KS^=)*zA\LJ3~W& "f|7Al:GWG~/6Aٶ4Z8Z;Q7/^gS(=eN^{f|XD+6p%.dy?@֏N};^a^(c'U(&[2\8q4Aq|_?2>&vhX,H["նb>ʆ%h]#,.fe}bZכعd0apu > ԍܴ> r`^^=񩋴{n1o?:ģqi:&~aoaw +Gs̮D\u <_hY"TVOJWwiE mfF_we|w_7c)E9/w-0endstream endobj 283 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 284 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 306 0 R /Resources 315 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 284 0 obj << /Filter /FlateDecode /Length 2673 >> stream xkܶ ~hzqE .v= DYz}ܕt>q73"<|Co՟`h|42Ԓu jժ`3"jᦿ!o7+D`\ӛy~~(ADE% 2s!qЀbVZkib@ju;Z twQ>γ(8g,ʞqnlNZ b<#Q0j0m˪abIj^1AqiA4 ۩zbct=X-[N܁m# c aM?:3M-mp/]6SeŁCeN5y nZRre?r=E;rGe3xWVՀSE|#D/ LRvOӧ{2R!m2bG BUF٢2\`irxٟlvBO JyR[1qP5 ;גz-F3+[(TV !\?XPB-|T7kD0\HIzuGƒeԬK"XGcW޿}n=&NOTqeFvԋGlYlJuVb),YMNիWo(GP^ech:ͺSA'hgiA(76A4rPddtY>EeRoWg OuúΞ;# #$YW`ZN+{6 ZWvC#Zd%PmNbUY,1=I飪{rI#geΒgZ&"K=urI$DɊH6:u$A" /Mn?2+6d\r L6S%8@g4S=65%sXwF$o%͘Lq.CDXD+~۫IYJ]n$8;bM;['he9f.. `H;y)"̤Z݅Yl_BeW19K15Es DWfͫ*q1dK(q呪C[y@jM5o]t" EI4'ي\'goe(x6 i$ua;qNK6,fY[١ofӍӋk0;5~g`i>ɮ7ʼnksi1qs ڶ_9ٞ)N8WuHw};$"8聬Sٴ+ja/ׯ]<{svjʛƆڧ+Jb ((dY_-)=Z̔W W6 (l$3TNMQðGXU~?u R6aM|W rfN)xO6T~*SgĶf有=~n~qRF<#Rp}Lc.w܁v̲{ȇ`6]Zal& ֏a7AhOTfVyMNvzm݁`[:o>C:^[oʛN}9V+G7ئ.!Z09̠W/Ҁ5]ˇA]E^SaOVRb馳7/V |b"^^bW (D g؏m <PvW,2a*S/xT7v>#^-_Ou6}D:e3z *Vxyϧ*scHLpV%3/MYȎcs!N@5ӄ^>)`Cp9ًkQ>m=s͊3X~ңHW2x: On+GshUs;«'HiXt2~+(IJ仃2=Q2hK@+<Q?Lk~J%tNbAI<'/ 6 4@Npf,ҕF &XLw{ j˵At*7`%^8x~IKb=DZ_4> endobj 286 0 obj << /Filter /FlateDecode /Length 1604 >> stream xXK6W Q-m6n99m1+Z>$z4 p^i ?I<^Eablpjd. ~& Jil|X,.*N+ZbAEE%s+NF*GKՆhRG÷hne>m'p4k.J_|A?7g.EQ/p;( 0M|ߏc}mK>_=w{⸠ "ח])R--z`(5E-~ew]OmqLxGYc` YbABE9H 8*,,ޗ; ąi:nsNZ!տmN4PFUn' w]ڶ`[5!kg ĂO$A}xxW?y9(8,jdLL`(#@ۙ8M\53-_54e BY7 TdÔm'B dŚ#QyD#{b5Y .Kl"In;GPRKf}**1 bD%>]B]-hX*w i-$sF(Fi ~<2hEU-\(u(w]uYNjv&etɚ&w݊2Gv fm˸sj붢w?'U%y.2r Y.HP6I,<z鵰 hm3_[Ɓ( }? ӅkG%E{50>v(A߽UC KP[])+in\`v˸[7h|7@k/w-&H먃νȿ#I2*RtI9м0yÝ$ %@0߰0 FP9zu#v"wv*!h3(!~$j]&@1ނv8R%;zjd:aM».#+1wcj4,[;.-5py:GZ&`*X@y%\ðl(/1ī\e4}Y 9Hf.a0m/}q7L0.t!a7 -etTBv\bߥ$k M2tZ+ekk Plw$5YⳀg;jq5ϝ(qa.,)jy#bPP˧;捞x]s䥁z.Ffmtv&jxu$. ~?ucDendstream endobj 287 0 obj << /Annots 289 0 R /BleedBox [ 0 0 612 792 ] /Contents 292 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 306 0 R /Resources 315 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 288 0 obj << /A 305 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 455.792 645.641 540.001 654.641 ] /Subtype /Link /Type /Annot >> endobj 289 0 obj [ 288 0 R 290 0 R 291 0 R ] endobj 290 0 obj << /A 305 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 633.761 94.78 642.641 ] /Subtype /Link /Type /Annot >> endobj 291 0 obj << /A 305 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 94.78 633.641 131.16 642.641 ] /Subtype /Link /Type /Annot >> endobj 292 0 obj << /Filter /FlateDecode /Length 712 >> stream xUKs0+dU##t:q'L-cMe p_0,&1=}?OA}7G1XnNB wdaLX[tcvNzu nPFCw ǟA68v]r ya\\%RX{FNB8˚Ϣ_ϋ}3QOXHO)orf'vy)VP} 1'!.~}ΝF^VI\@)JZ$^gę¼_۝(k-7p 3v\XTmPX+\sQ7b/=9=Aum)]m +v'ʾf:@YԮY/i)Jb]kȇnvѠP0HnW]Nb^\OyIFC-2> SME%1rll:qF¤Y<0~ܕ͂Ѳ=fF'yMݖp7UgJ q@endstream endobj 293 0 obj << /D [ 174 0 R /XYZ 72.0 152.784 null ] /S /GoTo /Type /Action >> endobj 294 0 obj << /D [ 172 0 R /XYZ 72.0 519.752 null ] /S /GoTo /Type /Action >> endobj 295 0 obj << /D [ 192 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 296 0 obj << /D [ 211 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 297 0 obj << /D [ 221 0 R /XYZ 72.0 340.617 null ] /S /GoTo /Type /Action >> endobj 298 0 obj << /D [ 221 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 299 0 obj << /D [ 235 0 R /XYZ 72.0 197.346 null ] /S /GoTo /Type /Action >> endobj 300 0 obj << /D [ 178 0 R /XYZ 72.0 585.874 null ] /S /GoTo /Type /Action >> endobj 301 0 obj << /D [ 283 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 302 0 obj << /D [ 285 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 303 0 obj << /D [ 163 0 R /XYZ 72.0 452.406 null ] /S /GoTo /Type /Action >> endobj 304 0 obj << /D [ 206 0 R /XYZ 72.0 360.619 null ] /S /GoTo /Type /Action >> endobj 305 0 obj << /D [ 239 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 306 0 obj << /Count 43 /Kids [ 313 0 R 1 0 R 3 0 R 122 0 R 136 0 R 138 0 R 161 0 R 163 0 R 172 0 R 174 0 R 176 0 R 178 0 R 183 0 R 185 0 R 190 0 R 192 0 R 194 0 R 196 0 R 198 0 R 200 0 R 202 0 R 204 0 R 206 0 R 211 0 R 219 0 R 221 0 R 226 0 R 228 0 R 230 0 R 235 0 R 237 0 R 239 0 R 241 0 R 243 0 R 245 0 R 251 0 R 267 0 R 269 0 R 271 0 R 277 0 R 283 0 R 285 0 R 287 0 R ] /Type /Pages >> endobj 307 0 obj << /CreationDate (D:20150524172830-04'00') /Creator (Apache FOP Version 1.1) /Producer (Apache FOP Version 1.1) >> endobj 308 0 obj << /Subtype /XML /Type /Metadata /Length 858 >> stream application/pdf en 2015-05-24T17:28:30-04:00 Apache FOP Version 1.1 1.4 Apache FOP Version 1.1 2015-05-24T17:28:30-04:00 2015-05-24T17:28:30-04:00 endstream endobj 309 0 obj << /Nums [ 0 << /P (i) >> 1 << /P (ii) >> 2 << /P (iii) >> 3 << /P (iv) >> 4 << /P (1) >> 5 << /P (2) >> 6 << /P (3) >> 7 << /P (4) >> 8 << /P (5) >> 9 << /P (6) >> 10 << /P (7) >> 11 << /P (8) >> 12 << /P (9) >> 13 << /P (10) >> 14 << /P (11) >> 15 << /P (12) >> 16 << /P (13) >> 17 << /P (14) >> 18 << /P (15) >> 19 << /P (16) >> 20 << /P (17) >> 21 << /P (18) >> 22 << /P (19) >> 23 << /P (20) >> 24 << /P (21) >> 25 << /P (22) >> 26 << /P (23) >> 27 << /P (24) >> 28 << /P (25) >> 29 << /P (26) >> 30 << /P (27) >> 31 << /P (28) >> 32 << /P (29) >> 33 << /P (30) >> 34 << /P (31) >> 35 << /P (32) >> 36 << /P (33) >> 37 << /P (34) >> 38 << /P (35) >> 39 << /P (36) >> 40 << /P (37) >> 41 << /P (38) >> 42 << /P (39) >> ] >> endobj xref 0 310 0000000000 65535 f 0000005494 00000 n 0000005680 00000 n 0000006087 00000 n 0000006289 00000 n 0000006369 00000 n 0000006503 00000 n 0000007138 00000 n 0000007272 00000 n 0000007352 00000 n 0000007486 00000 n 0000007624 00000 n 0000007705 00000 n 0000007841 00000 n 0000007980 00000 n 0000008063 00000 n 0000008199 00000 n 0000008338 00000 n 0000008421 00000 n 0000008557 00000 n 0000008696 00000 n 0000008777 00000 n 0000008913 00000 n 0000009052 00000 n 0000009135 00000 n 0000009271 00000 n 0000009410 00000 n 0000009547 00000 n 0000009687 00000 n 0000009824 00000 n 0000009962 00000 n 0000010099 00000 n 0000010239 00000 n 0000010376 00000 n 0000010516 00000 n 0000010597 00000 n 0000010733 00000 n 0000010872 00000 n 0000011009 00000 n 0000011149 00000 n 0000011230 00000 n 0000011366 00000 n 0000011505 00000 n 0000011586 00000 n 0000011722 00000 n 0000011861 00000 n 0000011944 00000 n 0000012080 00000 n 0000012219 00000 n 0000012302 00000 n 0000012438 00000 n 0000012577 00000 n 0000012660 00000 n 0000012796 00000 n 0000012935 00000 n 0000013018 00000 n 0000013154 00000 n 0000013293 00000 n 0000013376 00000 n 0000013511 00000 n 0000013650 00000 n 0000013786 00000 n 0000013926 00000 n 0000014009 00000 n 0000014145 00000 n 0000014282 00000 n 0000014419 00000 n 0000014557 00000 n 0000014640 00000 n 0000014776 00000 n 0000014915 00000 n 0000014996 00000 n 0000015132 00000 n 0000015271 00000 n 0000015408 00000 n 0000015548 00000 n 0000015631 00000 n 0000015767 00000 n 0000015904 00000 n 0000015987 00000 n 0000016123 00000 n 0000016262 00000 n 0000016399 00000 n 0000016539 00000 n 0000016620 00000 n 0000016756 00000 n 0000016895 00000 n 0000016978 00000 n 0000017114 00000 n 0000017253 00000 n 0000017336 00000 n 0000017472 00000 n 0000017611 00000 n 0000017692 00000 n 0000017828 00000 n 0000017967 00000 n 0000018048 00000 n 0000018184 00000 n 0000018323 00000 n 0000018406 00000 n 0000018542 00000 n 0000018682 00000 n 0000018766 00000 n 0000018904 00000 n 0000019045 00000 n 0000019129 00000 n 0000019268 00000 n 0000019409 00000 n 0000019547 00000 n 0000019686 00000 n 0000019768 00000 n 0000019906 00000 n 0000020047 00000 n 0000020185 00000 n 0000020326 00000 n 0000020464 00000 n 0000020605 00000 n 0000020743 00000 n 0000020884 00000 n 0000020966 00000 n 0000021104 00000 n 0000021245 00000 n 0000036578 00000 n 0000036784 00000 n 0000036851 00000 n 0000036989 00000 n 0000037066 00000 n 0000037133 00000 n 0000037272 00000 n 0000037370 00000 n 0000037511 00000 n 0000037652 00000 n 0000037789 00000 n 0000037856 00000 n 0000037994 00000 n 0000038135 00000 n 0000039433 00000 n 0000039623 00000 n 0000041269 00000 n 0000041475 00000 n 0000041534 00000 n 0000041673 00000 n 0000041782 00000 n 0000041841 00000 n 0000041980 00000 n 0000042051 00000 n 0000042189 00000 n 0000042248 00000 n 0000042387 00000 n 0000042464 00000 n 0000042603 00000 n 0000042679 00000 n 0000042818 00000 n 0000042883 00000 n 0000043022 00000 n 0000043102 00000 n 0000043239 00000 n 0000043376 00000 n 0000043441 00000 n 0000043578 00000 n 0000043715 00000 n 0000046715 00000 n 0000046905 00000 n 0000048426 00000 n 0000048632 00000 n 0000048773 00000 n 0000048842 00000 n 0000048983 00000 n 0000049124 00000 n 0000049265 00000 n 0000049404 00000 n 0000049543 00000 n 0000052413 00000 n 0000052603 00000 n 0000055316 00000 n 0000055506 00000 n 0000057780 00000 n 0000057970 00000 n 0000061887 00000 n 0000062093 00000 n 0000062231 00000 n 0000062268 00000 n 0000062406 00000 n 0000065141 00000 n 0000065331 00000 n 0000069459 00000 n 0000069665 00000 n 0000069800 00000 n 0000069837 00000 n 0000069972 00000 n 0000072715 00000 n 0000072905 00000 n 0000074612 00000 n 0000074802 00000 n 0000078226 00000 n 0000078416 00000 n 0000078928 00000 n 0000079118 00000 n 0000080594 00000 n 0000080784 00000 n 0000084626 00000 n 0000084816 00000 n 0000089394 00000 n 0000089584 00000 n 0000093610 00000 n 0000093800 00000 n 0000098923 00000 n 0000099129 00000 n 0000099268 00000 n 0000099305 00000 n 0000099444 00000 n 0000103557 00000 n 0000103763 00000 n 0000103904 00000 n 0000103965 00000 n 0000104101 00000 n 0000104240 00000 n 0000104379 00000 n 0000104518 00000 n 0000107464 00000 n 0000107654 00000 n 0000110390 00000 n 0000110596 00000 n 0000110737 00000 n 0000110774 00000 n 0000110915 00000 n 0000114002 00000 n 0000114192 00000 n 0000117650 00000 n 0000117840 00000 n 0000118885 00000 n 0000119091 00000 n 0000119231 00000 n 0000119268 00000 n 0000119408 00000 n 0000121638 00000 n 0000121828 00000 n 0000125029 00000 n 0000125219 00000 n 0000126708 00000 n 0000126898 00000 n 0000129572 00000 n 0000129762 00000 n 0000133124 00000 n 0000133314 00000 n 0000136368 00000 n 0000136574 00000 n 0000136711 00000 n 0000136756 00000 n 0000136890 00000 n 0000137025 00000 n 0000141286 00000 n 0000141492 00000 n 0000141633 00000 n 0000141758 00000 n 0000141895 00000 n 0000142034 00000 n 0000142171 00000 n 0000142308 00000 n 0000142447 00000 n 0000142586 00000 n 0000142726 00000 n 0000142864 00000 n 0000143003 00000 n 0000143144 00000 n 0000143282 00000 n 0000143421 00000 n 0000147011 00000 n 0000147201 00000 n 0000150467 00000 n 0000150657 00000 n 0000153906 00000 n 0000154112 00000 n 0000154175 00000 n 0000154314 00000 n 0000154351 00000 n 0000154492 00000 n 0000157420 00000 n 0000157626 00000 n 0000157765 00000 n 0000157810 00000 n 0000157946 00000 n 0000158083 00000 n 0000160238 00000 n 0000160428 00000 n 0000163175 00000 n 0000163365 00000 n 0000165043 00000 n 0000165249 00000 n 0000165390 00000 n 0000165435 00000 n 0000165571 00000 n 0000165709 00000 n 0000166494 00000 n 0000166578 00000 n 0000166662 00000 n 0000166744 00000 n 0000166826 00000 n 0000166910 00000 n 0000166992 00000 n 0000167076 00000 n 0000167160 00000 n 0000167242 00000 n 0000167324 00000 n 0000167408 00000 n 0000167492 00000 n 0000167574 00000 n 0000167970 00000 n 0000168102 00000 n 0000169042 00000 n trailer << /Size 310 /ID [<9b1c69409fc9a5f50e44b9588e3e60f8><3a844bdaddd50ffb3c97e606b86997cf>] >> startxref 216 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/append-xref-loop.pdf0000644000064100006410000004173213247541377017454 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /PageLabels 107 0 R /Pages 2 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 95 0 R >> endobj 2 0 obj << /Count 30 /Kids [ 3 0 R 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R ] /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents 33 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 2 4 0 obj << /Contents 37 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 3 5 0 obj << /Contents 39 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 4 6 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 5 7 0 obj << /Contents 43 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 6 8 0 obj << /Contents 45 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 7 9 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 8 10 0 obj << /Contents 49 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 9 11 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 10 12 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 11 13 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 12 14 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 13 15 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 14 16 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 15 17 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 16 18 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 17 19 0 obj << /Contents 67 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 18 20 0 obj << /Contents 69 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 19 21 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 20 22 0 obj << /Contents 73 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 21 23 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 22 24 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 23 25 0 obj << /Contents 79 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 24 26 0 obj << /Contents 81 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 25 27 0 obj << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 26 28 0 obj << /Contents 85 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 27 29 0 obj << /Contents 87 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 28 30 0 obj << /Contents 89 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 29 31 0 obj << /Contents 91 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 30 32 0 obj << /Contents 93 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Contents for page 1 33 0 obj << /Length 34 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 0) Tj ET endstream endobj 34 0 obj 46 endobj 35 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 36 0 obj [ /PDF /Text ] endobj %% Contents for page 2 37 0 obj << /Length 38 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 38 0 obj 46 endobj %% Contents for page 3 39 0 obj << /Length 40 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 40 0 obj 46 endobj %% Contents for page 4 41 0 obj << /Length 42 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 42 0 obj 46 endobj %% Contents for page 5 43 0 obj << /Length 44 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 44 0 obj 46 endobj %% Contents for page 6 45 0 obj << /Length 46 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 46 0 obj 46 endobj %% Contents for page 7 47 0 obj << /Length 48 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 48 0 obj 46 endobj %% Contents for page 8 49 0 obj << /Length 50 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 50 0 obj 46 endobj %% Contents for page 9 51 0 obj << /Length 52 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 52 0 obj 46 endobj %% Contents for page 10 53 0 obj << /Length 54 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 54 0 obj 46 endobj %% Contents for page 11 55 0 obj << /Length 56 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 56 0 obj 47 endobj %% Contents for page 12 57 0 obj << /Length 58 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 58 0 obj 47 endobj %% Contents for page 13 59 0 obj << /Length 60 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 60 0 obj 47 endobj %% Contents for page 14 61 0 obj << /Length 62 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 62 0 obj 47 endobj %% Contents for page 15 63 0 obj << /Length 64 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 64 0 obj 47 endobj %% Contents for page 16 65 0 obj << /Length 66 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 66 0 obj 47 endobj %% Contents for page 17 67 0 obj << /Length 68 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 68 0 obj 47 endobj %% Contents for page 18 69 0 obj << /Length 70 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 70 0 obj 47 endobj %% Contents for page 19 71 0 obj << /Length 72 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 72 0 obj 47 endobj %% Contents for page 20 73 0 obj << /Length 74 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 74 0 obj 47 endobj %% Contents for page 21 75 0 obj << /Length 76 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 76 0 obj 47 endobj %% Contents for page 22 77 0 obj << /Length 78 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 78 0 obj 47 endobj %% Contents for page 23 79 0 obj << /Length 80 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 80 0 obj 47 endobj %% Contents for page 24 81 0 obj << /Length 82 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 82 0 obj 47 endobj %% Contents for page 25 83 0 obj << /Length 84 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 84 0 obj 47 endobj %% Contents for page 26 85 0 obj << /Length 86 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 86 0 obj 47 endobj %% Contents for page 27 87 0 obj << /Length 88 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 88 0 obj 47 endobj %% Contents for page 28 89 0 obj << /Length 90 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 90 0 obj 47 endobj %% Contents for page 29 91 0 obj << /Length 92 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 92 0 obj 47 endobj %% Contents for page 30 93 0 obj << /Length 94 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 94 0 obj 47 endobj 95 0 obj << /Type /Outlines /First 96 0 R /Last 97 0 R /Count 6 >> endobj 96 0 obj << /Type /Outline /Title (Iss 1 -> 5: /XYZ null null null) /Parent 95 0 R /Count 4 /Next 97 0 R /First 98 0 R /Last 99 0 R /Dest [ 8 0 R /XYZ null null null ] >> endobj 97 0 obj << /Type /Outline /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Parent 95 0 R /Prev 96 0 R /Dest [ 18 0 R /XYZ 66 756 3 ] >> endobj 98 0 obj << /Type /Outline /Title (Amanda 1.1 -> 11: /Fit) /Parent 96 0 R /Next 99 0 R /First 100 0 R /Last 101 0 R /Count -3 /Dest [ 14 0 R /Fit ] >> endobj 99 0 obj << /Type /Outline % /Title (Sandy (Sandy [Greek]) 1.2 -> 13: /FitH 792) /Title /Parent 96 0 R /Prev 98 0 R /First 105 0 R /Last 106 0 R /Count 2 /Dest [ 16 0 R /FitH 792 ] >> endobj 100 0 obj << /Type /Outline /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Parent 98 0 R /Next 101 0 R /First 102 0 R /Last 103 0 R /Count -2 /Dest [ 15 0 R /FitV 100 ] >> endobj 101 0 obj << /Type /Outline /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Parent 98 0 R /Prev 100 0 R /First 104 0 R /Last 104 0 R /Count 1 /Dest [ 15 0 R /XYZ null null null ] >> endobj 102 0 obj << /Type /Outline /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Parent 100 0 R /Next 103 0 R /Dest [ 21 0 R /XYZ null null null ] >> endobj 103 0 obj << /Type /Outline /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Parent 100 0 R /Prev 102 0 R /Dest [ 22 0 R /XYZ null null null ] >> endobj 104 0 obj << /Type /Outline /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Parent 101 0 R /Dest [ 25 0 R /XYZ null null null ] >> endobj 105 0 obj << /Type /Outline /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Parent 99 0 R /Next 106 0 R /Dest [ 4 0 R /FitR 66 714 180 770 ] >> endobj 106 0 obj << /Type /Outline /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Parent 99 0 R /Prev 105 0 R /Dest [ 3 0 R /XYZ null null null ] >> endobj 107 0 obj << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> endobj xref 0 108 0000000000 65535 f 0000000025 00000 n 0000000145 00000 n 0000000541 00000 n 0000000746 00000 n 0000000951 00000 n 0000001156 00000 n 0000001361 00000 n 0000001566 00000 n 0000001771 00000 n 0000001976 00000 n 0000002182 00000 n 0000002389 00000 n 0000002596 00000 n 0000002803 00000 n 0000003010 00000 n 0000003217 00000 n 0000003424 00000 n 0000003631 00000 n 0000003838 00000 n 0000004045 00000 n 0000004252 00000 n 0000004459 00000 n 0000004666 00000 n 0000004873 00000 n 0000005080 00000 n 0000005287 00000 n 0000005494 00000 n 0000005701 00000 n 0000005908 00000 n 0000006115 00000 n 0000006322 00000 n 0000006529 00000 n 0000006748 00000 n 0000006851 00000 n 0000006871 00000 n 0000006990 00000 n 0000007049 00000 n 0000007152 00000 n 0000007195 00000 n 0000007298 00000 n 0000007341 00000 n 0000007444 00000 n 0000007487 00000 n 0000007590 00000 n 0000007633 00000 n 0000007736 00000 n 0000007779 00000 n 0000007882 00000 n 0000007925 00000 n 0000008028 00000 n 0000008071 00000 n 0000008174 00000 n 0000008218 00000 n 0000008321 00000 n 0000008365 00000 n 0000008469 00000 n 0000008513 00000 n 0000008617 00000 n 0000008661 00000 n 0000008765 00000 n 0000008809 00000 n 0000008913 00000 n 0000008957 00000 n 0000009061 00000 n 0000009105 00000 n 0000009209 00000 n 0000009253 00000 n 0000009357 00000 n 0000009401 00000 n 0000009505 00000 n 0000009549 00000 n 0000009653 00000 n 0000009697 00000 n 0000009801 00000 n 0000009845 00000 n 0000009949 00000 n 0000009993 00000 n 0000010097 00000 n 0000010141 00000 n 0000010245 00000 n 0000010289 00000 n 0000010393 00000 n 0000010437 00000 n 0000010541 00000 n 0000010585 00000 n 0000010689 00000 n 0000010733 00000 n 0000010837 00000 n 0000010881 00000 n 0000010985 00000 n 0000011029 00000 n 0000011133 00000 n 0000011177 00000 n 0000011281 00000 n 0000011301 00000 n 0000011388 00000 n 0000011584 00000 n 0000011730 00000 n 0000011905 00000 n 0000012258 00000 n 0000012449 00000 n 0000012659 00000 n 0000012828 00000 n 0000012997 00000 n 0000013150 00000 n 0000013319 00000 n 0000013484 00000 n trailer << /Root 1 0 R /Size 108 >> startxref 13801 %%EOF % 1. Delete page labels xref 0 1 0000000107 65535 f 107 1 0000000000 00001 f trailer << /Root 1 0 R /Size 108 /Prev 13801 >> startxref 16059 %%EOF % 2. Delete outlines, reuse page labels. 107 1 obj << /Nums [ 0 << /P () >> 2 << /S /D /St 1 >> 7 << /P () >> 9 << /S /R /St 6 >> 11 << /P () >> 12 << /S /r /St 2 >> 15 << /S /r /St 6 >> 19 << /P () >> 20 << /S /R /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> endobj % Reuse object 1 with the same generation number. Leave outlines % there pointing to a deleted object. 1 0 obj << /PageLabels 107 1 R /Pages 2 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 95 0 R >> endobj % Reuse object 33 to replace contents for page 1 33 0 obj << /Length 50 >> stream BT /F1 24 Tf 72 720 Td (Potato 0 new) Tj ET endstream endobj % Delete object 34 xref 0 2 0000000034 65535 f 0000016648 00000 n 33 2 0000016817 00000 n 0000000095 00001 f 95 13 0000000096 00001 f 0000000097 00001 f 0000000098 00001 f 0000000099 00001 f 0000000100 00001 f 0000000101 00001 f 0000000102 00001 f 0000000103 00001 f 0000000104 00001 f 0000000105 00001 f 0000000106 00001 f 0000000000 00001 f 0000016227 00001 n trailer << /Size 108 /Prev 16940 /Root 1 0 R >> startxref 16940 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/no-contents.pdf0000644000064100006410000000065713247541377016544 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /MediaBox [ 0 0 720 720 ] /Parent 2 0 R /Resources << >> /Type /Page >> endobj xref 0 4 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n trailer << /Root 1 0 R /Size 4 /ID [<52bba3c78160d0c6e851b59110e5d076><52bba3c78160d0c6e851b59110e5d076>] >> startxref 213 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.4-ogen.check0000644000064100006410000000026213247541377020420 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/issue-141b.pdf0000644000064100006410000000013413247541377016060 0ustar ejbejb%PDF-100 0 obj<>stream 0endstream endobj startxref 7 %%EOFqpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.9-ogen.check0000644000064100006410000000025613247541377020114 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/V4-aes-clearmeta-encryption.out0000644000064100006410000000060013247541377021501 0ustar ejbejbR = 4 P = -4 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed stream encryption method: AESv2 string encryption method: AESv2 file encryption method: AESv2 qpdf-8.0.2/qpdf/qtest/qpdf/c-no-recovery.out0000644000064100006410000000015713247541377017016 0ustar ejbejberror: bad33.pdf (offset 1771): xref not found code: 5 file: bad33.pdf pos : 1771 text: xref not found qpdf-8.0.2/qpdf/qtest/qpdf/bad23.out0000644000064100006410000000033413247541377015216 0ustar ejbejbWARNING: bad23.pdf (object 4 0, offset 314): /Length key in stream dictionary is not an integer /QTest is implicit /QTest is indirect and has type null (2) /QTest is null unparse: 4 0 R unparseResolved: null test 0 done qpdf-8.0.2/qpdf/qtest/qpdf/issue-119.out0000644000064100006410000000051113247541377015760 0ustar ejbejbWARNING: issue-119.pdf (object 4 0, offset 298): expected dictionary key but found non-name object; inserting key /QPDFFake1 WARNING: issue-119.pdf (object 4 0, offset 298): expected dictionary key but found non-name object; inserting key /QPDFFake2 qpdf: operation succeeded with warnings; resulting file may have some problems qpdf-8.0.2/qpdf/qtest/qpdf/show-pages-pages.out0000644000064100006410000000004313247541377017472 0ustar ejbejbpage 1: 3 0 R content: 4 0 R qpdf-8.0.2/qpdf/qtest/qpdf/issue-101.out0000644000064100006410000003034513247541377015757 0ustar ejbejbWARNING: issue-101.pdf: file is damaged WARNING: issue-101.pdf (offset 3526): xref not found WARNING: issue-101.pdf: Attempting to reconstruct cross-reference table WARNING: issue-101.pdf (object 5 0, offset 1242): expected dictionary key but found non-name object; inserting key /QPDFFake1 WARNING: issue-101.pdf (object 5 0, offset 1242): dictionary ended prematurely; using null as value for last key WARNING: issue-101.pdf (object 5 0, offset 1438): /Length key in stream dictionary is not an integer WARNING: issue-101.pdf (object 5 0, offset 1509): attempting to recover stream length WARNING: issue-101.pdf (object 5 0, offset 1509): recovered stream length: 8 WARNING: issue-101.pdf (trailer, offset 1631): /Length key in stream dictionary is not an integer WARNING: issue-101.pdf (trailer, offset 1702): attempting to recover stream length WARNING: issue-101.pdf (trailer, offset 1702): recovered stream length: 12 WARNING: issue-101.pdf (trailer, offset 2026): /Length key in stream dictionary is not an integer WARNING: issue-101.pdf (trailer, offset 2097): attempting to recover stream length WARNING: issue-101.pdf (trailer, offset 2097): recovered stream length: 257 WARNING: issue-101.pdf (trailer, offset 2613): /Length key in stream dictionary is not an integer WARNING: issue-101.pdf (trailer, offset 2684): attempting to recover stream length WARNING: issue-101.pdf (trailer, offset 2684): recovered stream length: 74 WARNING: issue-101.pdf (trailer, offset 2928): unknown token while reading object; treating as string WARNING: issue-101.pdf (trailer, offset 2930): unknown token while reading object; treating as string WARNING: issue-101.pdf (trailer, offset 2928): expected dictionary key but found non-name object; inserting key /QPDFFake1 WARNING: issue-101.pdf (trailer, offset 2928): expected dictionary key but found non-name object; inserting key /QPDFFake2 WARNING: issue-101.pdf (trailer, offset 2928): expected dictionary key but found non-name object; inserting key /QPDFFake3 WARNING: issue-101.pdf (trailer, offset 2925): /Length key in stream dictionary is not an integer WARNING: issue-101.pdf (trailer, offset 2996): attempting to recover stream length WARNING: issue-101.pdf (trailer, offset 2996): recovered stream length: 12 WARNING: issue-101.pdf (trailer, offset 3339): /Length key in stream dictionary is not an integer WARNING: issue-101.pdf (trailer, offset 3410): attempting to recover stream length WARNING: issue-101.pdf (trailer, offset 3410): recovered stream length: 12 WARNING: issue-101.pdf (trailer, offset 3560): /Length key in stream dictionary is not an integer WARNING: issue-101.pdf (trailer, offset 3631): attempting to recover stream length WARNING: issue-101.pdf (trailer, offset 3631): recovered stream length: 8 WARNING: issue-101.pdf (trailer, offset 4113): /Length key in stream dictionary is not an integer WARNING: issue-101.pdf (trailer, offset 4184): attempting to recover stream length WARNING: issue-101.pdf (trailer, offset 4184): recovered stream length: 8 WARNING: issue-101.pdf (object 11 0, offset 591): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 625): treating unexpected brace token as null WARNING: issue-101.pdf (object 11 0, offset 626): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 637): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 639): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 644): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 647): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 687): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 691): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 696): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 698): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 701): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 711): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 743): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 745): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 747): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 777): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 790): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 800): treating unexpected brace token as null WARNING: issue-101.pdf (object 11 0, offset 801): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 811): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 819): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 832): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 856): unexpected > WARNING: issue-101.pdf (object 11 0, offset 857): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 868): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 887): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 897): unexpected ) WARNING: issue-101.pdf (object 11 0, offset 898): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 909): invalid character () in hexstring WARNING: issue-101.pdf (object 11 0, offset 911): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 929): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 930): invalid character () in hexstring WARNING: issue-101.pdf (object 11 0, offset 932): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 944): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 947): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 970): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1046): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1067): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1075): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1080): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1084): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1102): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1112): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1124): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1133): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1145): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1148): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1150): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1151): unexpected ) WARNING: issue-101.pdf (object 11 0, offset 1153): unexpected dictionary close token WARNING: issue-101.pdf (object 11 0, offset 1156): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1163): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1168): unexpected > WARNING: issue-101.pdf (object 11 0, offset 1170): invalid character (I) in hexstring WARNING: issue-101.pdf (object 11 0, offset 1167): expected dictionary key but found non-name object; inserting key /QPDFFake1 WARNING: issue-101.pdf (object 11 0, offset 1167): expected dictionary key but found non-name object; inserting key /QPDFFake2 WARNING: issue-101.pdf (object 11 0, offset 1167): expected dictionary key but found non-name object; inserting key /QPDFFake3 WARNING: issue-101.pdf (object 11 0, offset 1176): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1180): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1184): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1190): unexpected > WARNING: issue-101.pdf (object 11 0, offset 1192): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1195): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1205): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1217): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1224): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1236): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1242): expected dictionary key but found non-name object; inserting key /QPDFFake1 WARNING: issue-101.pdf (object 11 0, offset 1242): dictionary ended prematurely; using null as value for last key WARNING: issue-101.pdf (object 11 0, offset 1275): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1287): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1291): unexpected dictionary close token WARNING: issue-101.pdf (object 11 0, offset 1294): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1306): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1322): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1325): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1329): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1341): treating unexpected array close token as null WARNING: issue-101.pdf (object 11 0, offset 1312): expected dictionary key but found non-name object; inserting key /QPDFFake1 WARNING: issue-101.pdf (object 11 0, offset 1312): expected dictionary key but found non-name object; inserting key /QPDFFake2 WARNING: issue-101.pdf (object 11 0, offset 1312): expected dictionary key but found non-name object; inserting key /QPDFFake3 WARNING: issue-101.pdf (object 11 0, offset 1312): expected dictionary key but found non-name object; inserting key /QPDFFake4 WARNING: issue-101.pdf (object 11 0, offset 1312): dictionary ended prematurely; using null as value for last key WARNING: issue-101.pdf (object 11 0, offset 1349): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1353): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1357): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1359): unknown token while reading object; treating as string WARNING: issue-101.pdf (object 11 0, offset 1368): unexpected ) WARNING: issue-101.pdf (object 11 0, offset 1373): expected endobj WARNING: issue-101.pdf (object 8 0, offset 4067): invalid character ()) in hexstring WARNING: issue-101.pdf (object 8 0, offset 4069): expected endobj qpdf: operation succeeded with warnings; resulting file may have some problems qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.5-ogen.c-check0000644000064100006410000000005013247541377020320 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/bad27.pdf0000644000064100006410000000141213247541377015162 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 xbj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /QTest 4 0 R >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/deterministic-id-nn.pdf0000644000064100006410000052604513247541377020147 0ustar ejbejb%PDF-1.4 % 1 0 obj << /Lang (en) /Metadata 3 0 R /PageLabels 4 0 R /Pages 5 0 R /Type /Catalog >> endobj 2 0 obj << /CreationDate (D:20150524172830-04'00') /Creator (Apache FOP Version 1.1) /Producer (Apache FOP Version 1.1) >> endobj 3 0 obj << /Subtype /XML /Type /Metadata /Length 858 >> stream application/pdf en 2015-05-24T17:28:30-04:00 Apache FOP Version 1.1 1.4 Apache FOP Version 1.1 2015-05-24T17:28:30-04:00 2015-05-24T17:28:30-04:00 endstream endobj 4 0 obj << /Nums [ 0 << /P (i) >> 1 << /P (ii) >> 2 << /P (iii) >> 3 << /P (iv) >> 4 << /P (1) >> 5 << /P (2) >> 6 << /P (3) >> 7 << /P (4) >> 8 << /P (5) >> 9 << /P (6) >> 10 << /P (7) >> 11 << /P (8) >> 12 << /P (9) >> 13 << /P (10) >> 14 << /P (11) >> 15 << /P (12) >> 16 << /P (13) >> 17 << /P (14) >> 18 << /P (15) >> 19 << /P (16) >> 20 << /P (17) >> 21 << /P (18) >> 22 << /P (19) >> 23 << /P (20) >> 24 << /P (21) >> 25 << /P (22) >> 26 << /P (23) >> 27 << /P (24) >> 28 << /P (25) >> 29 << /P (26) >> 30 << /P (27) >> 31 << /P (28) >> 32 << /P (29) >> 33 << /P (30) >> 34 << /P (31) >> 35 << /P (32) >> 36 << /P (33) >> 37 << /P (34) >> 38 << /P (35) >> 39 << /P (36) >> 40 << /P (37) >> 41 << /P (38) >> 42 << /P (39) >> ] >> endobj 5 0 obj << /Count 43 /Kids [ 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 35 0 R 36 0 R 37 0 R 38 0 R 39 0 R 40 0 R 41 0 R 42 0 R 43 0 R 44 0 R 45 0 R 46 0 R 47 0 R 48 0 R ] /Type /Pages >> endobj 6 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 49 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 7 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 51 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 8 0 obj << /Annots 52 0 R /BleedBox [ 0 0 612 792 ] /Contents 53 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 9 0 obj << /Annots 54 0 R /BleedBox [ 0 0 612 792 ] /Contents 55 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 10 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 56 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 11 0 obj << /Annots 57 0 R /BleedBox [ 0 0 612 792 ] /Contents 58 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 12 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 59 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 13 0 obj << /Annots 60 0 R /BleedBox [ 0 0 612 792 ] /Contents 61 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 14 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 62 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 15 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 63 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 16 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 64 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 17 0 obj << /Annots 65 0 R /BleedBox [ 0 0 612 792 ] /Contents 66 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 18 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 67 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 19 0 obj << /Annots 68 0 R /BleedBox [ 0 0 612 792 ] /Contents 69 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 20 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 70 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 21 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 71 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 22 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 72 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 23 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 73 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 24 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 74 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 25 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 75 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 26 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 76 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 27 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 77 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 28 0 obj << /Annots 78 0 R /BleedBox [ 0 0 612 792 ] /Contents 79 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 29 0 obj << /Annots 80 0 R /BleedBox [ 0 0 612 792 ] /Contents 81 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 30 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 82 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 31 0 obj << /Annots 83 0 R /BleedBox [ 0 0 612 792 ] /Contents 84 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 32 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 85 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 33 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 86 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 34 0 obj << /Annots 87 0 R /BleedBox [ 0 0 612 792 ] /Contents 88 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 35 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 89 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 36 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 90 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 37 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 91 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 38 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 92 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 39 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 93 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 40 0 obj << /Annots 94 0 R /BleedBox [ 0 0 612 792 ] /Contents 95 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 41 0 obj << /Annots 96 0 R /BleedBox [ 0 0 612 792 ] /Contents 97 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 42 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 98 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 43 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 99 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 44 0 obj << /Annots 100 0 R /BleedBox [ 0 0 612 792 ] /Contents 101 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 45 0 obj << /Annots 102 0 R /BleedBox [ 0 0 612 792 ] /Contents 103 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 46 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 104 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 47 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 105 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 48 0 obj << /Annots 106 0 R /BleedBox [ 0 0 612 792 ] /Contents 107 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 49 0 obj << /Filter /FlateDecode /Length 225 >> stream xuMKA +rT1̵ Pebk{ofWh&I3;c+ ~5 **Mck$?r_"s8`9@> /Font << /F10 109 0 R /F11 110 0 R /F12 111 0 R /F3 112 0 R /F4 113 0 R /F5 114 0 R /F6 115 0 R /F7 116 0 R /F9 117 0 R >> /ProcSet [ /PDF /ImageB /ImageC /Text ] >> endobj 51 0 obj << /Filter /FlateDecode /Length 336 >> stream xSMO@ﯘ&vjƶHUJ+Mf2ͼHB{L%x)IJ) CƂ$( pcHIV& r·v9 }hEGBg 0n#7Q/C#AAyچF 9p3c=q,s 0Dk')Zu)`t2ݴ_Ti-J0RIa| uP $.o@a8iFB=-|2|Wu+hq#-2Qx7kLF5]~..@3&> stream xOsdy>i=}ϿՄ-Yز/:zQ"!:Ȣ\,١sO&HIc;ʬ,A2_{<×_+>D=|ͮ>EW~_|ͯsxpſ?|wO'ť7/8?O3qyL?\a?ޓ_qo=κԇ?x7:Ox:O>xᛧ>|zGxSs~>\>~5[>gzYlG9UvUhm9)B8$RT+߀8D0D0D0E0E0E0E`&]v"8Dp)S.\"@ XkZ@kZE0D0D0D0D0E0E0E`Q7:T/GQ=ꤚ,Y.\d2C,(bE,eT*Q2*YYYY&Y&Y&Y6ldȲe'N,Yd9r$I,Y.C,<2Xf,bE,eVJAAAIIII,Y8:L's;x8?6q>|Og7ٍ~z=~c׳V?ӛe7K >)C$ﱺIK-{u=^z[b qo.uR=΃꠺SnF5Yvdr A,'YNdr=wZ,]jܳwrOߡbReeeeeeee#F,;Yvdr A,'YN\dr=Z,("{/XQbGReeeeeee#F,Yvdr A,'YNdr<2C,e"Y2XfˤO'i4I$}>IsO'i~Uy߬+|&2?_և/_y᫗w|`OoFr˼}w&kѵnݛ4JTwWԍ)YHT A,YNd9r"%{(XIb'R4B]rO& $$$F,۶_#P꠺SFzj\dr=iZ,"{(XIb'Reeeeeee#F,Yvdr A,'YNdr=iZ,"{(XI#U,Qj LLLLldȲ-bt.{>|w_V3Dy7 y=h"|̇/~?=}r?>}gqycۇ}yeW:?+-)*|{ ;KUuzJ}*|{M,Yd9r$I,Y.LjLuj LLLldȲe'N,;Yd9r$I,Y.\by>B-"#by>B-#dddddddȲe#F,;Yvd9r$I,'Y.\d2}Z,/ǷE,/G2}|{]2},,i4I$}>IsO'iWmwqc}ޡ.:~v{_=yo{dz1n5qܮtoN{ uPݩ^RonTe#F,;Yvdr A,'YN\drze=IJbYX"ebYX*eeeeeee#Fm[ [%uT7ԣPTAuPM,Y.\bX!qe"Q2XF˨b,,,,,,,,Y6ldɲe'A,Yd9r"EK,<2C,e"Y2Xf% $$$F,Y^3jerN~uyY^YzxAl{.~f8w^:f8%#k]q9*ՍjA,EKRıT,U$KReY+=JuzJzHN5Yvdr A,'YNdrze=IJbYX"e-bYX*eeeeeeee#F,;Yvd9r A,'YN\drebX!qe"Q2XF˨ddddddddȲe#N,;Yvd9r$I,Y.\d2C,,bE,eV*Y2i4I$}>IsO'i4Ykkn;r6l[}l_||3=ro~wmn\wJ+yX-_gY-Ii|_KW[nTvS:Lu4iT.S]Hul)'=RN{p+y%=TTTTTTTT6Sme7<-[(f.S]Hut)'=եT\rRݓ]+.Lj3nTvS:Lu4iT.S]HuO})'=jRBYI5+f%լLj3bSQǽFqd|5bso;|c~fD8ƽ7#N嗗7'嗗αV<,///;!oO//;!OTvS:Lu0iT.S]Luj=HZRTk!ZHVRTk%ZM5L5L5L5M5M5Mj3fTvS:Lu0iTNS]LujAQH5 F!(TjTS S S SMSMSMSMSmLj7nTS:Lu4iT.R̓T *za}~d|_.c~f}L:;;f:=N%A~$yX-_Kj3nTS:Lu4iT.S]G9QNJxT(70000444fT륙G}Iwgq7'gq妺Lu2E:yRT('}_Yw;L+n|@y|R>Lu0iTNS]LuހrRH^Huo@@9 $7 TTTTTTTT6Sm[9Z{Kދi|E7Mu2E{Iuo@@9 ('սTjjjjjjjj3fTvSMu0aTNS]Lu"ս夺7 ހrRPN{M5L5L5L5M5M5Mj3f{ܸuWi7Ιܬwƍm܌e8տW/߾axg3#Zu7Oئ>;m$_f|m(O<,'=PnaaaiiiiTz~co{<-[(f.S]Hum('=T؆rRc+ Lj3nTvS:Lu4iT.S]Hum('=PN{lC9 Lj3mC{lӏ?ﮏ~~x?wwdQFޛl/Wօ<-_. yX-__. 6SM0aTNS:Mu2E BNKBN׋BN=z.Lj3nTvS:Lu4iT.S]HzI^IzQ޷T兜T慜TTTTTTTTNUS̶#Q.*ǫlzT)_vWp)92ך"7W[=#κן!AuzIuzJr"}Is_rDu;$dAr~'oNzFzzHɲe'N,Yd9r"E,XsH-PZ,9}]222222ɲe#hMW˛Q,O<,7iT.RW㠜T8$/A9qH^Iu_rS S S SMSMSMSMSmLj7nTS:Lu4iT.R̓T |߿>z??^q㻏3]Of]Kzyr}fPDy^L0 {Yw; ˻q}koϗF7'#A[nTvS:Lu4iT.S]Hu|I9/%/wTΗWRݛrPnaaaiiiiTyyMjA8,˻Y-o2eTޔrRݛrPN{S+M9(70000444fTvSM0aTNSLu2E{SIuo!y!ս)多TjVRݛrHLuOXK*ˈϣܹ>}\8_ͽ姏}ˎ=Ɲ1^kmi?o˾:Iz_t꠺S\Z(mMq v\,Or뒇EܺrSM0aTNS:Mu2E_IuK9#)'}Tjjjjjjjj3f2i1ޒ[(f|rS]Lu"} 0夺>rR݇SN`M5L5L5L5M5M5Mj3fTvS:Lu0iTNS]LujAYH5 f!,TjVS S S SMSMSMSMSm9zlJ<_-vv}1uϣ?|߽—C"qޣ|ݶβ{Shw nAy|RLj3nTS:Lu4iT.S]єFSN{M9iT4rS S S S SMSMSMSmLmz2[~XwZ,byZnT.S]єFK^HuO)'=T4rS S S SMSMSMSmLj3nTS:Lu4iT.S]AyjRBYH5 f%լTTTTTTTTit`gkuo.|w>? ϳ~}˛ ϗ!֝l8ΗLG)|B!yZ>(ߧPHw/8߯f ɛ]H)rSM0aTNS:Mu2E9$'Rl!9^瀼e{M5L5L5L5M5M5M5Mj3fTvS:Lu0iT.S]H=zٞCrRl!9^瀼e{M5L5L5L5L5M5M5Mj3fTvS:Lu0iT.S]Lue{I=T/sHN9$'͖fKiRl)m6[8X2 덒c>c<|7?ٝvuL;#Zw~G?rgmKNz)oOoZJ{ N9aaaiiiT6SmMj7aTNS:Mu2eT@rRq 8夺WRqM5L5L5L5M5M5M5Mj3նUۚXayX-_jyT.S]┓SN{ N9T@rS S S S SMSMSMSmLj7nTS:Lu4iT.S]AyjRBYH5+f%լTTTTTTT<̚/z|ݷ/}ݝyyYZ;7u2T|Q$Y>)[J2E ս;Z B{k+J>D000444fTVu^vzI7$Q=޻BTVPd9r"%qebXF(bE,eT*Q2222222ɲe#F,;Yvd9r I,'Y.\d2C,<2Xf,bU,eV LLLld7xiHηqFY+ jބ?Q_} >|r_ۿ}gClʝ{Y|=ﻏ#.7ngLi|sAyX-_o0(7Ex)Iu/%y!}夺>^rS S S SMSMSMSMSmLmXsMEA8,˻Y-o2eTR>^rRKQNx)+(70000444fTvSM0aTNSLu2Ex)Iu/%y!}夺TRjjjjjjj3f~~&cPvݡ|eס|,{nWO/\݌γ,Yw~kG{n{f͒7'{fAޱYT.S]Hu('=WꞫQN{&y%=WTTTTTTTT6SmMj7aTS:Mu2eT\rRs5Iu('=WꞫQnaaaaiiiT6SMj7aTNS:Mu2eT\rRs5 夺jꞫQnaaaiiiTh̵ƔeNZ޳ܛ#_eNv~=/S)/w,ד7_VȰ)^yf|cuoыi|)yX-_7%ojjjj3f.c{OnEIi|_ET.S]HRHN/ ӿ('}T)`jjjjjjjj3fTvS:Lu0aTNS]Lu>7rRgQN0Iu!&y%}LåZy7w{`_|ktg]= ͍ /zypqoPKzoyůם_kU{9*W>+[(?)oOʛ6SmMj7nTS:Mu2eT('=UꞪRN{J9*Lj۪(QEy7'XayXnT.S]_SN{*y!]PN{*y%=UTTTTTTTT6SmMj7aTS:Mu2eTTrRSUIuOU)'=UjVRjaaaaiiiTw9sM{FY3gTnn8\榟>>}ݷ|<_<GcfnGayz-ߐwڒ7'i|Ӗ<,j7nTS:Mu4iT.RݧRNW _)'}T鯔jjjjjjjj3fTvS:Lu0aTNS]Lu>rRݧRNWIu*y%}+Lj3nTvS:Lu4iT.S]HuJ9_%/OTjVRJiRl)m6[J-͖fKkyo4sc?'$?\s=|xzw=l杇A^qG)wDo  -M fXϯSŰXQ,EK}7U$QReeeeeeee#F,;Yvdr A,'YN\dr},b䆺>[jGqK-n222222ɲe#?{|QޫI(yX4eT#)'}T1M>r[J{.@6SmLj7nTS:Mu4eTAyjf!,TjVRjaaaaiiiTwmh~:x,ls; kyCt'x,+\w߿>}|뿼>~p9:nAn|g֝ucE~Nɛ{:i)IZ BjZ+jaaaaiiiTo7~n|$y|R>i.S]LujAQH5 F!ըTjTS S S SMSMSMSmLj3nTS:Lu4iT.S]AyjRBYH5 f%լTTTTTTTT uTF)Ӟ{|JXk1^s#fw<-]$˻ zXo.p ay|QwYnTvS:Lu0iT.S]HuO)'=TԚrRSk+5Lj3nTvS:Lu4iT.S]HuO)'=ZSN{jM95Lj3fTvS:Lu4iT.S]H5R̓T ,TjRJYI5m6[J-͖fKiRl)mt9—S1zktzt^/ty>c~Y^߬kkβ!ߔz uR={ATw{?r$I,Y.\dbyu~Pe?dddddddȲe#F,;Yvd9r$I,'Y.\dibyٲuˆ}PeU,/AMAAAIIII,Y6dɲ A,YNd9r"%=ˎ|Pe?>*& $K$}>Krcܛj4:7ƝzMxlc_߼aw'gUwvc'y7cκMX-_P,_(C}夺T_>KJ/M5L5L5L5L5M5M5Mj3նUG?ayX-_jy|R>i.S]Lu>rRG|I^HuE9#('}Lj3fTvS:Lu4iT.S]HuE9#$/T_WRG|QnaaaiiiiTyʑk}5=FYkκ{#=}=rבӱݿ}x/~_a%{+ Ay!ZHRTk%ZIVS S S SMSMSMSMSmLj7nTS:Lu4iT.RT 8H5RBQH5 F%ըTTTTTTTT6SmMj7nTS:Mu2eTAyjTjRJYI5+f5000444f{sZOv\8Z^a<4w9,WO_?2|}4awmJy^x7?ى›ޜEޜf(?ߛSwZ,7nTS:Lu4iT.S]ͣTy>4rR݇I^IuG6Sm5<_%ay|Q>I,妺Lu2Ex*9 eK|b\ǡ?3ڛўLh7 c}լwތ8.%OGEѥrSMSMSMSmLj3nTS:Lu4iT.S]OYT)RݧSNu+S)70004444fTvSMu0aTNSLu"}:夺OYT)딓>e]JuM5L5L5L5L5M5M5Mj3fTvS:Lu0iT.S]Lu>erRM-͖fKiRl)m6[J-͖fKiRl)m6[YX [uwF^I{9!'x_#v_߬ǬG<κiZ<-Oay|Q鑼YnTNS]Lu"}YIu_oVB,夺:K6SmLj7nTS:Mu4iT.RݗTi%//IK9J^Iu_rS S S SMSMSMSMSmLj7nTS:Lu4iT.R׫Tk)'}ZIu_VJjjjjjj͖fK+(2\ԣQכּ{VW~H7Ӻ.`{~9߻GSY7[/Ǒ=כּE]f|o.yZnaaaaiiiT6SMj7aTNS:Mu2eTɪ>YUBdUIuJ9U)7000444fT6SM0aTNS:Mu2EdUIu*y!}*夺OV>YrS S S SMSMSMSMSmzsp[s \NW=ʚk;jyKm17`{,_?}˥N}|Pzy9$iRq},Y;Ӝκן7' !Oˇ !˻zprRnu}M5L5L5L5L5M5M5Mj3fTvS:Lu0iT.S]Luu}IB !'u}M5L5L5L5M5M5Mj3fTvS:Lu0iTNS]Luu}IB !'o+^7܇TTTTTTTT^'[؇}6rݠr%zg݉Ϻp?'׉ӷO>]>/﫩ތtϋc5n|V˛妺Lu"ս夺7TWJJ{+M5L5L5L5L5M5M5Mj3fTvS:Lu0iT.S]LurRݛ_I^Huo~E9ͯ('սLu)72!7@o?z˫zBߛe7O{QϗQr?[z]>u޺ן1AuzI*Ս)n,Y,&rS S S S SMSMSMSmLmh-y?,˻Q-oOg<-7eT.R$SNd c)'}L2夺ITTTTTTT6SmLj7nTS:Mu4eTAyjTjRBYI5+f50004444fMI7U_v |vﯯG$?_}U7\sT!myڗ7Lq޺|w>߈c>zŝGlu1z]k~gOs%uzJ`<-)It,y%}3[5rRG0SNf+#)70000444fTvSM0aTNSLu2EfIu,y!}3夺`T̔jjjjjjj3fTvSMu0aTNSLu"> stream xVr&߯`Ozg7yԤ+7,Ľ"#}=$'>}i }Ҝ9}tɤD"LcԠIQVy%@П'y ӧ0Y S?=xL BBð+þPK9/&(x9mܢ_pԁf)w$2c<858SyΧw1":_:O#LH? pFsCѹAnӛ qv|/QF8.@`.d =\}fc PaeKᷟޡ7aVbUfU؊uT*vvUJZ.]Iȫ4 yIU~A"jn:vA|ˏU,/$yIMj\â` >)uUFӽaem׶`:]pʱ~F1 ) ⩔(*l=KEDŽ 0ppD ! cE(~$0$14}/6 :{ǪC`(z$bw;G6q7AอڍeNp2Wvq -E J}FվEXr 掖l;\ݡ{ i4lfiOǮ<-;עNHJАJW]kJBUFC޲F"|Ök%#tuTvz֓G7mh}Attm` >2i$9bt`{b1f !VމaPOw7@4 P1<$i[41BŞ,7\dȊpzqY1Ypw̬h%#dMQ Sp^/ړ=ϴWwfYljkNmW KԸ2kh> stream xXK6W `S>nO]tr%bV9IKC/iS4p/ge~9)>'cmw$$[Ҙ"")ɇEHaIRT{7On?`[['87IT8\kpoK/'/-D^\2+w٬ƶfMMrM#fd PSM"' NbR9$0YmdC@i {)N9J"9gIe`Ӭӫ^2wHl梋4.7nVa* IǖM`M/,#c΂6 +1[Qv$GJLMC_Y@cwӄdg Lm_V+-Vf(t fi(K,rZ]:+V #o汌43=UTPgQ)Q(mB?+>47Gfad|V \kx%Бfw"%kLؗix@I-#q%fb58|0cמR# a# T!HgVh/TIG7xPɻvBsPwޟS'|=1ygen84*L6RAWAq\ X݉<߼wrnUUH4;LraRyC1d>,=(M1{:N4H]'n_5F.5]yn{ݮ5UF9c].rDp9:zM];M LOM|C o .W1ɺ"Fcc87z)ϳ'كDuh}o^hspL^{L51Ϳ[6n :u̳LSl;EEq[>Dm6f9B)gkCקŴA6U }mO(C=qF/~k3x7>3*.w`ǕkߘcA .[ > stream xZY6~_ĕ $N)cL8$(a"doK"ɛj5F/4} I?yzsEBG$4)H(%)(AX_WϿ!| N٩?_}=7ߗ ReeT#Mpji@eW5 ߳2e=~k)4ZD/"wыoWf:QmW(hQByY+i]m'6wkx"Uߐ78U]HC&J<>~H𽜆qs&%[ 7I :XBz{&Rfp\#|6-uCǪ9<2TM3.tQ< 2?~gqE,(q 2-y۷e)#Zd&I\^o%ޟ(vCfT'>N`EOth&;0,ia!%6۰~/f@>A7YH3 UX\m{`]5',e{f}YBöoX_s6RK}ۦc DoE׉ (u5/g6 F%h(s}'¥qK# 2<'&diھT2=n ՑEF2,m=E4)A0+{I>T e I_Kś[;i1pI0i9+[v6P*~p-hhAF|Z;B0)g6td toD y"e![ <[Z%zby*h`&nA-AYK/ >kz2ɿN@ĐXPYS|<9@kBaa~\歭nFE["|8} Q?aXo]iH̓JҐ(Xb[Y4aIREXbJS) jծ9Ⱦi/&r8Ԏlgy{ԇX=ltE;P\h᱊F]#04":bgYc9Fخ!$-y_aڋ0ĈӰ맊+E{ނ&n/fu9 _:@AZ:3a8#GC DA<}PpV*iGDئ wfJ8TNq ׈;7a`\AY| E AL0# 3&b5I;̆j[MV pf{b Ɉ :޽0s-\[i6-6׬Z08U-n`Hxޗl{ Ĕm*7nl$z:-i ^W=ٲ|@;TSvܠont޿|y4xQۮZQT6l:Sr8++E˄Xu3&5x~D;>NODoCX~A1 /u{<$hHݵ?AvA&|wↅÒ J5[BF,/ =+Tzzr _w8霷 4uy!C}*^"+5un*1y=CêN*J\i.3/ FbU#X7デn㻄4ǸXV Tp-9z2D0]ډ0f`dx+mPGSu|G٪+vy;/7Ҡ8Y8#:S!(=8S#вHP*<)koџbp(_|q2 @A딣2E$x D݈዇ø6li(: qo,58d_8ev$@m W՝ NPx!]uGG:_=eww-A&yJӘFx~Z˃vMyNa|t#&(E (ll-X,vR0̛kr fw:T!_TW40G'E&՝zZDs"ƃm[ Du%$?DV)g8ǻ>5cG_O\GM5'#;Q5#wK&Q7sn/T2B|'\ۚ V}{˪HcgG6vtm!@^mgъ_٪j(OF>o:Z)!T/hhU|f߽gaI"26%$NKo!N E% !/]6hE6$B8w:"[yendstream endobj 59 0 obj << /Filter /FlateDecode /Length 1447 >> stream xXKo8W)ݤE[,ʢ#QPHZMx!9΃/("Yaqoyebe%)1t@NPwD4Pa6G?_8 cqO@^!\?AśQV[E4yE(,*OVMWV!^oM*^U~z+Z[\Nc4m0G>' ILNWp|2ѭ*Di 1|A$4I~y8? 6_|g0j1[,Y/ bj%aqF{Ҕ5p`%1EVHXaQ^sJȋP07_ }wĠA j!ymQa0e\18%-MMWkYo]x<%R]gҙv3١@k^W `ӅLDINT6/Էo(|vFT F͛>%Z+U;x1 w],1dƴ(V*X*[bYEԀ a^TY$iy7-,_ ైbZdP$1͡( 3{N2hȦnzE#R=lٖ#W$d$iS):xrlt̍۽6[=7`(>UT%tW<Ʊ!U Yj:A{+˪1H ?)G VHIqFwC.7ڡ3tFC1+7~Qwe 8涿tCzV{ч̠>cВ}5q]KG? MKvE{1 C4x B 4'gN;܁E#zr,w;ޫ;zC`@@|06ܑ-A/s*1PUEq~R6G(L$?#LJ]reR9V$!7Z[ Sedt^v`-Vy.=4ps-ՉS1ø;ט=|nfm{zgqndaֲ^6bA>}V1 h}W6]9Z;:b[#!0/=9X r\:33]9v=ZJC[jf@(Iq288T qv82endstream endobj 60 0 obj [ 222 0 R 223 0 R 224 0 R 225 0 R 226 0 R 227 0 R ] endobj 61 0 obj << /Filter /FlateDecode /Length 2796 >> stream xے۶]_3+ [g;IΤDB+6)j6_߃;xvnsuCPl埬Qy|58ԠY'ElWGoi7X\6ќ:q!/Dߜ(%E)u/1?r&MR-?5D/>U="FnGc͛$D~Q*B1qEQZ~E(F۶nЇ?\KX8"PMP4t*1}:t4v?h<Tѩz~D;*lPS[ ~3)Sj *)ӌ)&C]wcW$InD Z)[Jx)@A>}4es air1Dr kRI5_LQD4<Sp& es悵KL{ n# +LDi}­ yB<esW5lψ2A bG<$ڑjtb}B6@dҚfʉ$#`p|C5Fu΋k'o*E5{uyn1KWUbIQE_DWe>~ȴn-qeYG RX%ili…8%.#WLdLdc )cl,v^x:BߟR2o'XYS} U8HzT#Leyu®w*Yc.soT^toD-f,oED\Li_5oކd4hjGE T1(' !]LB͓ Jծ7h y I > 頹ⓔepNW¼(ɍR8i_*zt-QIs5x)YO{+cRZ` ]?at}]\rD2#tU #l(xYA5-XuK,$!rJ̭.,goufd g v[i?^qU)Yp5Rik4f?Hf$YV2ŬlFАvL!/ǹ}Ⱥ-s5! =dK~73)E>ۇOi8߃&$nt0Pr{J^t[R 1]to02N).b9:ծZ* F5 OSV}M8s5(މUz P3.49Ul者 H=}+$ 7ɋ5K;u1J6>Ai4CG)*7ۦE!B7XiيR~[aR7O@S-&s|H"J^֑:# M e F^VY Fx!@E E77ΗSJyʨ0^(jaY67a W0(7"LVf V!IV u8ufF0f[(aF,IV>$Hhn NHD>̪)gM=9NEϯq'}xendstream endobj 62 0 obj << /Filter /FlateDecode /Length 2639 >> stream xَ6򽿂oiY ,x=FlaZKcf؏""{›.|xąO$6#OXxG" H)VY?Bp"nK> w.N2ؼ/添ͫw\rw0! c' ,KNgUӋ u]G7^~!w߼8xiL%C/V hJҀŧR%MECDE?\k{1-r=$#hN:bpi/{.juo,ٞ$N8%4VѳwLaų3,6HjZGS~3{vCh·fCQFN:{hm:oM_ڈ=Y1YP8ThO1r4v{ *y. K\ҥvϤ#"^8ifYGK~4y(FTFWSz1+-&w"xtYDt$$Z^ΓY+<eєMjP0ӲϚj-)rݳzn%`ۘ5g'!%,t9omq԰*Z,Mg = mvAc0E0@{> Fbr!bԂi[3tAYC jШCت/$B\_5fQãYWTXr/uL\dE<\ LWm L 8i{6Zյ~0l⺕6+2U3 "{ֈW72X|؛Ł>:.X@6n"a0(g҈󞭔Ev񃄧^WExV 3Xq"@.)|9p0(v= ŞႸH/2%! >]n7~w|$R4\3)`,JѤi"o _6T^V4I؋i h {fO',I|-5Ȅ͘ab+C</[b.p/8&<, ^K^Kb{?_QBi/uu1> stream xYɒ+pLUjUCx$g!&&µ މQL| QGQ%쾘 "r8P Z RC/صu3LQ/h{3wݟvf(ɻ(qUUV$}åmy?~F01 BB8O&49RHhr6A3?5Mj{M;"oFZ1M|; 1\N2! w"R5qH%IyOO뗧'i"_A$7@[gI#`_p%r"x:kgP(;q.ڮe@K$)oБԑ+̧8[OןE TR^K^l—~Z1t~D{"p`68.p\Za!7JY H9yZS'z=E_ś8pL(J_JՂ9ԋcw4HEv1mTBVE|'mNP}4 '$+k`znuGtu=y#UUwZJ K#Y˴XuN8O ȟժ}{ȚG[k㲔I"nTm$@pg_J]—nMrzQȓ5+l%?Ԍ} zުIvxO0@3VE "FC8'͸5;.-kõ3 4ӆV΃eKp|h&9Gɣ 0vBtlAT3|+w;' ed{Ɵ>]7\3YF]wBVoO*N08|t4Ͽ~tqI3tG~IWnL2&5)hYK$LU͜HV$EUe6 VBfr%tPQf9ÃHZhq&rM߷-IY>YCf7ӁB xޮxɖ?eLkAt :K=F&ӁgZ_ض?ݩ-ۙ+H?cbp]sI:#zU\1rჩf- M+bped:_N QjZ 3 BR'䇀;Hi\>DQ"4%UP3TH;跗;]5ky3%YPdX oysi'V.Ύvv\a躲[la=$+ R3o¹MdE+EJQ4<*=Ԡs7/} "Pxuχ{īG(l ϔFB>bj4"3IxӰܸ2$yYI|ֹܺ1SR < \ ټ#ٷ^G=YDQ ܲ!/)Qi\i2x** -hZMA9Tq[tdɡCB).MiUDŤX&$kҟd+:ښ6}f\s]jAf9At?P\~v"X+l9]4}5)ǘb!P׾V nAt=[ MkpxƔPp%mU0OVXySByWӾwqpɚ4.FgjdA[#Y" _fى^j!Y U <3WeXqQzb}b#EŊPo`QAP*Ӝm5Gps: =z(s~M@PW 4lx Là R OCx|6`E,!'̧ɷ9LVZsW~;fi0e~+F` [lg cFe[>형F;Mug)ppV?qendstream endobj 64 0 obj << /Filter /FlateDecode /Length 3843 >> stream x]}żu)r)@ۻd>d rl~}!Cywi. fP/7Rg?y Ӥ#gLJ3! JI0G9@!A<t7ϿÃaMd&tɑO?\~(nzw;Z%Y'IYe, J/w'폗k?E̘XFc>)j#?:I8CT%0&PH6>jy!߫v֌еb)PCH Nȯ.3oQv p$O,P# @ YK=hlg'T NCژj=[ε+ 8 P ֍!|L5{wϸ;Gq^.6m;%X GG(3YRHߵ[Apf&d'0JUC2~K#ƕ9U2_ea-sv ̚˨V^-B9K1ic0XAk +湛(@J(l(ϗ2,keAf}F^OFvR&&L #i\]1-|U1m?}bVrP'wo$eɘa, ,]Z;U#Yʡ*6]=:rv>gq>ĬGa:aks`„uͼq_ ~1&X?Y3A\@aaOj̓ +9l ZlLӠ 1Mi ;}jG 95F qlv(\mM';&+}80ֵVik^ [V{tvO`d?A7 ٖ.ChoF2w3bdgtr4=>4#n2s5=v. XTߎu"הl5my7Ȳ(|su!ly2Zҟj&Πo2]`pʑhJ emWju: `kq>[aR[D&)q8rbVǡP8m{2jC:VŪ*֦65~O8^ 0 #މ"kZCФã8 .dxSW DL&7ِQ2ʂ!U;os| *S{j|]|_v؋D.+҅˦~TGPb?>Qh lg !MRBpA;Y:Wg8"Vh?#5薮B-w,vOy}a'҅wJz.j շ _1S|!%3TxV1|1"PCLd"m6ZulGqLWգ8_t:r-X1KQ\#WX,` H*ap;XMx i]ZD#4 +)I^ërɫMj mj9#O8^< { 6f~߲:Zj[#.M:Us8 8_xr궃[S0ɖ)~!Q'ky'VUE֌ㅢ%:+ GH,`qHV? ;^жjwv>Eo``;/_&I &B6߱G;!~+Nz ڔPvjoWSB;8PEůR2(`Ftd_7";?8XkmTϦZ"/[8zAǍ EY=^`0 ;5stt]@W[qiwV)+^KqYBC)hQ.cְWpd2㢜R/q졠ŖKݨ.~7X.KDk̥P'T.3Dl-+"Oi m^U _yBF07q FǑgr;NV8X;n1nLsqt+L {G30sM_m("1pK׌Nbt1١cc"<9ćrzƞ&-"Њ6smJ{KL\ Rf:C>.u0LYJֺK\nogt1(@ 1ћJLk@d]0,b@rPSj7njGQ iWCYpN0J=$_hPmx3UP42X"5 s$[Q6EF{R5ڵxEe5`JzCpP|zpt,$i m\U -48̆7<}\y♜ݳuqj2K^G30iQAe.exx9͹6R0 &\ P%}}endstream endobj 65 0 obj [ 228 0 R 229 0 R ] endobj 66 0 obj << /Filter /FlateDecode /Length 2661 >> stream x˒6-vAʇlJ6LU1C&_Iq7NYhD?Ax-D1'|Hĉv[AH~G^@W@]BVuY8^ʓΪhtbtC98>ƂG<,v ŮGi TOYyN! >dߓԗ2?c >ispsY-ґ)&)}sU2F8 dExGHEsNw,9Ww=t-sjA-}OQz#EtĦGJc I i>`s Oepm/^G|`bLvR |" ]#pj!z< j_l2v.{N_\v+췣-FJomZq c`$ x&S#2P蛗ngܤ7aBb,"!4xM[m렳ҮޥKAs3ف[i}ڂz ؍KKkC7I4@0 \w5#{rB&)u]Ԧ]螡B0>@33IYז1 NWN,= Xcvh2T ,n ~s/ C?X _D'@8,$ JJAVIb?M i߻#\Cj[nȁQI'DcAchv<_s? pwCYcʠFHJZ|~<%I|lUxQS5 `> 4O-8gU+OEČϩt~2FSuW3f"耎0C ^-WaP xAL¡zS+{Wq-FkvIs 1Ey<X1Co0An/5ߊV~v㜚+@=:ؐj+\ : @9Sw+,XP ~nT[x(Îc[@f=X>ãYV@eg<8PPNr$:5%f~xY0\,gÛ7 VuwY8a`irUsJ=P NN0olC'X!4(Ya- CF:`7.~^UbA\UVR<n3bYdk$Rx訳`M8"iM(;_*0%\3D":F61V*F1E ؚ%yR^IFw[+ʏ$c{_ /d5* }(,Sls#XNR~<2i(NKѨodwл/ I;m<;~"M"a?endstream endobj 67 0 obj << /Filter /FlateDecode /Length 4054 >> stream x[Y~_ovG?ȱ(ZH,?pv:iקȪ" Xj"Y*r?߅^'/#oL#/Έf^Q=SQ"b ~'.|˯P.7+{_{Ѫ(MXQv{}]_[7oPuWt -:^{[ P|NIwLRdj'V*/~Q}}Ł8Qxͧ1ucsueT=^h[PWq L1,B+&r݀SeJ5s&==*X4w3BVAtNܐ4WgC?Y4cP \c=%U$i%+dنW.g,IfyIg!+#.r{1sJ,zo,VLfA*G 2:Gڊ 京|•=D'-UfMВY[T7Ej읏/E(<҇vn;{ .SFTءBt:9ur?asϾjƲ4jg0Băǥz Kg ܥH7w3B?!隦`M[XX#ߋ`9?Ҹåǯ kf"iN\M+lA};i;5&h\B?oDpbPFZ9_boC'cP-V΍&<,%v *h Y+`H;!C $i v*!ZێbqKŅBdТ!clM>r!z wNuyԶA}[ԟZL5"JGVй>WNɽb*MΒ4ciY lezgP[&<ԈO j]N<,WpK5 8,tLW<$VXe)L I1ƃ0T? MߏgWK˽3um`}4BA*™ J 8Q8f38`MkPeHq?g'ܬ[rR˥0(zϺ=ތ,WTmjYY*S39WZױlci "FP#*MY[8$U)Vha{:Q HJkLɋm*E҉LEShz˱ )9o,oBjp(ŠM 6j6uһrLUyс§tݟ ,FX# i; .1:b_؍ϵ?h?i1Q;Q|uH(Y. gSҡo,\$ـq-  jJ".'rJgw< 9Tz1۪\ Ңd|sQPL]7=g>[Ô# i;p9p\f3v(T. /J=*c9#M 1Քf^l茸8= PۻZ/ =%A1E?i[~%H*-)yfQ FFT퇑#YÀ =]+,m>QL')io]==f[ E*Ț ;R>|eK3-i9earV&G(敇fx. Qs 1aPHFukbjT .HLA`ap:@O|jސ6GdXh0\ 'SX'T4bk*' %p/IVUK5dL {ف8=Ii7`zw`oT.Ɖa/ @`7Ar)s-4նq̼U@s{ !>}w>a7F|r}Iع@)VKr~Gcc'"!ʷSK%`%.4n8RhMg NDt檎# _"My2J9TY8Ctz'ծ;!^Ԩ8YL38A5.RsSpV浀v=jTf`~֩+![W?-Q yQҘ~3t 9t"5V:C AЍen%Uكqd{o֯l1yi!J?M 0qa"Nj2+յLV-g̀jo4d2y8|Ɯ<:it4r6 ,؍蕸/]V!ӣ-S,HCI=^ꞍBqL{#M t|~4utŮ7=%1D9 =3zx:yY0]qb*$A_\9)$v>fvV>"s~J!4D(!hhE5-~u$UY9@QҘ;e錉[~N&ɹd> stream x]۸ݿoMK.E .p<m%q}R$P M0grԷUDBV?Eq"R$ *IqFČ3ҨU #E08?V*$[}5 4ѓfŸ.?$կϫ72y\AUUV )$Կ<Wm=y/ߞ'$Q0Q렵!t'YNg& VS EEpM;BgF[1M*v> `rQx3?e(*ٷ )|`5)B|(TQTE-^wr!/L`ubw q?VZk;tA}VTdP/Mpc]|׳=apRu" @hzlpnKlBݟD콞 ɡʞ.;(>(u'U1fPNBHH%9OVsGŁ!mbkgaI8ZVDUP>+RMcbZMy@v@>bv{{ZD.J`eqꦃ&ߖФZ e$KXpqq8 q͵# [LSCdW nܩB;BmGL93ݮ?oIoƭv'"9A9hy!8`m/ͧL>WroFbxnZ7ĵ'hOC` M7/|uMӝMs51i2P@_QFY!8dO{]JíeBYބP 6#*||Ty_ fzܻkU'ąI|pϨ Q{2/w-1 Pv3!Q;@1-6 ːvn_~6YYWNg ~-QX7.2}^1;.uTy%Q9A.P0j{qcb%^i ݮpLDchѵ' b۫jJo5劧t3N!u4+䭲 +0JSm@5`w.P ; )ᄗXeTaWmCg34Bǡ׹[;D1DF' ~C2B NcrLuhc2JHC;đL-$09wDUfG\{As'iyVY֡;]܍8`S' Xۈ<8 lGeu9aiqeYK zDU>ݹKc" `/Ve$֡~]77'wZf3^[ SpHaȲIX4*gvJSC/4 [-zM'+TA#ʢ(]ۗQcmZml7uNz `9֘W lLu֣p{A4`\u\!ӝzwQ5qc{ԐzXFi̼3>+[jGhqQw*pc8Q܍eU̘X*aGc敥z'{JCx 䏧A && GI_9l2wMgdm6cN=BĽ6`?_ߋnAB3cF9k5Ŕ޷\=!t=+B&AQ74"}wO,&q_a!t鹦؅3 ѭC[8)l?;qdߖUtf)j nRdAa m6TPYR36_eK{{ア{=, 7&G󒸺*1Cfݷ"^^hfŌuB㗨xL+IPU3C Z%HoACdT8 ;(Zf$Љ^=&gs.{I=OժûVyJ@;7xD۹@[sF>uCD9?nd.p'{ԧmZ/'ǯ]=D봺AM5UET}; eH=/g=g}\bendstream endobj 70 0 obj << /Filter /FlateDecode /Length 1633 >> stream xXK6 W;c1zK>I39ds%zFZw iY61 ~PSlbTuZ"FIEYꐦ3Ԋ<"68~V>bBP8¹9a_?|ݯ~ޮ^Pޥ(qMIPx#ѶCn?}{mXٞD{^q XB+I冉D-Z}hW9HG(AC7" .pEWO6bLx =UP 9J36[77@ vӊ!iOI?u;:n,IIu0uS }2<>k9J:>jʄ$ 0*$b;y5=ީP;򅂄 owQx~`"`pM5dPͱ,fμ Wtϝg4?8FZ[ "30W]9Or.Z^D&֞{#̨Q8KE[hxL%Rt.DpZAKT,,[X9y-sY[3##;69O  4T l5>Xgn{,T .-^dr&fQb HX58 {jn((WqTZ}yRx^dW7~2U|@L'ڶVli_ GMO!șԳ:ndMJU?\M8y䯂r6)9LH6 yI6y%Y4iw' ˒tV:h72;zMK((V2fPnr4t-téݖ;!!@M }2}d:7{3 N*+@sđ#'|<1vG= >3ZhλQՍ(o+~ W9γl!Ae5 \&ˣuMCeycvqmZohD$0OpJU;;oќM_{feAYqe= L|M!LGH0BNyOНH42!NnLͼmuO'穨<^09\ t^^iEPI Ttr0Ik{F M}K9(09QXQM[WN&ۈ&z8sd5-D_3o.Q#tTd,h{;)VN;fɝ8 rl P[Ұ9562 #5΂[5yh|h@Ŋkh7j$[<bSNL~ɾp:W%*^eΘ<= CQ邁,(pNR,XH*Rr1Q4I0+}km@B?=^ pe .wmY}(FwGnylX*񗧝/ xinXE7{}㩚T(K(lglZ`G<=*$|X{6}(N /zG&0HyX=nQz ZnU_ eendstream endobj 71 0 obj << /Filter /FlateDecode /Length 3350 >> stream x˒>_K* ߾m8㭬˩Ј ԒΎ>h$R?j@h4|㟪pxR$+-(Hd"@8 vOw%& &<߱Kvf>F d\_4@̪u_9PKpF`F4lI{`~qYxOw+ΒOU #O7\%ϻ*loL`΂yTKc #DѤ*M=c&olLȉcPSwf6-_UE=$,ǽ%о}ZGɮa;pm.˫:e`ʋyʮ(ώ,41ָ"yx#_WV%xu9tl*qnTޡn0I &D{ln͘:'i8GlL" zgMs?zUFrs7{`:?wϠi6Sko3e+a:yvdA6q;j{{x=r:Xv).`46Y9)˅{6AkVP~OI%>y+~JYަ38Ӽ(ufJ?_Φ&xatK9D (\@!R)Fv ;G33ӳc~Jj]v\Uƹ2v4jMP|``;TrS -մx#EA;)AV4 !HH+- k|oA/AstiZ:x..gO(g6GX̉j?jJ&:6;0}A\xR##![yL*S<HgKnWլ2Caa<q\a2^ȫh|)VT@5&AL>ϩ<2hf60qJ5=. |Tv`kEa^t4>BƘ<<qȑ]HCeyLX_GGC-nNOp6@"y:% G 0 ΎN JS9}瘜lIw~Sk͌K^%Xd|ƗƽٯUxQL4xj ӝ+ l})( X8DZÕe lܿ,"r…UI8{{\2ʬ^L(:\&O²YP\G*a˚)kƣt[t0 g0tm*L>(́p(o:ΧX XnG[rKFBe^aD4ٖ:nvޮbN:jGǔێb@|+Kpve7pE ((=8@A1[q*O97ĭ{ouZ{Z#  =htpQlXEu4`ͥ2"iT/3܏\dz YuF-*‡mFU$ /$Q)Bܦ!,b3*#_ .vQjrxfC`,Qn%UC=in$74n} !RQa0GUb׋w7 9j1PB0nw*Pk~ f3^-آgyqk-Ӯ+Si 4bue&e^Yík)BY]F,^,/E 5hu7vV_U0J[^xUU3vU1*v&J8&.2c2p:{[LEpfwW[pku>ka-9wFdg:;r`v`8C7$%26} iK\g4WHXX1ւ 8XlA7 CΊ4 HYv+QqSUa;miF$1`0D"r8ʪZIV\l<{y,IߥNҚhjW4Y~U(v^N@0tKv=ܚ}Zڃ88,`3#z:zE0Ucc.h%c4OsF/ÅL{P4493,} 40jۚШfc+(e Gk* }6O?b`ᩆm!-;Ft~"ᕘ;8WrMd gCׂ%` '7J,jb`aZmb>+QLTPiq/`&x܏EvG;`mVɣj0]Y<؍xA@oU͋3QdM B r~vwA on/Ptipvb Auc:]y:bd:RZUr?}S~4z"fA*HE6!\"\;$ xAwe8ϫ_}dpI-h/J0EM] `P ?b%{>R> stream xSn0 +xu)ɪkѥ@ءI$-'YNbGpQD||"J({ -y|2fpi0`#D{@N\,G>Gؒے\/P>] iQCpVAӗ VNpeCy?^,g< '<ۇa` fYxcӅ(.dy|NWMsϋh2&#(R֮3|Hej \cR}JثX-֜Q#pTj&4Rm..-X9"ҜT:ykse-Tk Z5:Bw~;yp`;N{#فzQog1m[i>G]|kTfIf}endstream endobj 73 0 obj << /Filter /FlateDecode /Length 1402 >> stream xXݏ4߿\;N/ !PxoC󱍳=qijd)/3c{7va w'כNI0v(&\ "5qtD* HĞ4F~ؼyapi. #f}vAȃ0deK:$l!|%n{`02Xfrv%?w`qt~>$ۈQCj mM^If7(krL>i,a;O۵[-#A mQ8mӗ=#ɥ „x' ɔ`ypȨvӉ=(FD]K7zv4|D _١ 䴼omy)* yŢ¢#]"ܸ##h 8ySU!>8Ԩ{JDVYjm']Fon6?{Y].ͥ<̀TG 1A1{]ۈ_7y;&yY֨B`1葌26ӧl kG:C\3k_FZߎTѦ `-zѰ+0٤PebQN W6;u^,ڒ3 C#ڕxHGDkPV98FS s PG^;T >Z*t,lNdЭ܋'*T3GHNLHc0Ăbv8_xbkp=[GjBzfReQgtCo>f,J*zA[fƼࣜ5?Wa&ؿ}jt\L# ҖJn)׺hYBnk{GMq.IRYDЛZģ7}Ks {K[?Ξ q\W!Q\OSAdVb?vP-q]._OF(t,*aV4uAuZ>/% w4tԮ;h]zöZpM n5ZȈzN귆JEځB o<$eYYU{HSJt3iQ3<4Ӿ3Yמu77D!ρ-N1`.-Ns]QmmBǟ2B(>!zSO̓<ӝxtFO'=i\LmDžW%hg_'sqN}$L(7 +-OJd+l7c ;g)eѕ} 5$-f;+r$}~fEc`ˇAchsxo|꽍Nb2髺=/m'WGRpvq%_MBvC b`cJo"ZBL-Ƣc5\qM!*bS_nMXR_WL_~tM՞y!Z믫EPfG?qH_aYEU'Ev֣qMfPy>rq&ti$ԥ?75@֖Y6"Y", mĪdY<ұteKL~ՕGl 3G<(/1}^81L-TՕR0OŵԜ޴tIFyQiv7m U.ib?wo*yrƴn16)?AELkd%p;j|w,M7!}kfp*k(78&cC|\>@TFId;m0k+\BbNm?NR4WSowaVsn:@H@c󬿁EWƟ+KrF>KK܎4ifIEY3_FWe^f x/Uf4QXA݈(v+>K.DŭK-tt{#9z+4\fATX$6^G A(gm2J/V Q ,mT&adUYAx^iikaD7{# - D'ɩ-oC} !>?!uozK^Kaۑ!CoɊ^`8.8Ί>Vf4} gel'LJA$t~CFۊ4ϗmX[DZWyЫg#l:rA9xjclBGy2367t|YCOU~!fR 6Q| S>+#<}cP$brCSz(0$ N/{'J,$% ơG" ]8ycTz_w,?ªȪx-?C8m"Cg$ݗB5  GPGq7kun'AM7IwYUI88š s PZᝎ/WG)hu T3M@v jz6llvK-Б{aAOKpF42ZK6`R9˻Ϣx~k~KH]B t?`'6C55k$XĠ-m~g51endstream endobj 75 0 obj << /Filter /FlateDecode /Length 4504 >> stream x;]6+ (;0l6L\U._՝_HItٮE$@DER BQ;}& (3BY )v4kD4Ow]_>a]xM G6}. dLDaR¿((Dؼ??N CT>k%[7/}?,` F iN0{px5ƈ έ?5&ʃW!bj 붑ǀ&df^&ΊEycDY,Uw`JͻVBa(dF߽_(KdƐL @%+TeV1`_0O{՞aЩׇz2A+ccCrRs՜VuaSee$l1/9=lծA0Qbgt=T;2p|9szhD09g4k*.Q>V`36Xzyo=WpHaL95cŅD3HRʡN+cOI^{5Vi׮lp6!7qJѼaI*bmeKQ ` ;lPOzR;@jE ekv"$X@&٫A I \DI~:*\<,Z𚚖bXgl8 1pZzvm45/muwU4MrWsߝ:ֳZGqZ -) z}Rdu]ַT!Zj0ͽ5Pz?aAsWη`nTA`{U7,D)SVf~ލJ)d*NtNFxF'i?d⊨ԏ k]v?[ .SuCf;A+z gYTv#T dz9("jZox ) \^"a!Bt(a"VL2LtJ: DNeRF@oj-&/\j$PpjOɞ'RXeBծXG=k̈&̮Xvӥ!>N{Ҏu ^yя Tֶj3`\G̮@=]zy<֞8`Æ}U)bʙ 3!g-Uo'[aq^~9uEm?cÍFFe R! N:mqo(T20(#MfyN\! D~ c^A4:Q/a`aƽHeH F7/AfТ1=,;/ ڪxcÊe T 7Č p Ɏl]PvG{Xp$S2<(&Q7b4:\8xwG@b\800| d`uQJ-.Vhx G!C |q:կå*DU墈PF\-,Bf) M:L{ΪN'^ȦkSp#2m TxLJmkU Y*2l2LH)]W~{<zY/#n!5&.numqM?ù 3On 'CX `k/^$.DH tu\lP^sQbjK4U;wݙu!jﱩ/[Ee8)]ط]SCGPMtr=C}% .6|lgu8sUC+[E` N%v~ p v7}8l]ehtǶ~SdF4'B=jFQzȁ+!d~S8wV0UB ؍[@Q҅VHvN2N&,dϽp?jX=rzTAQc@]&'J@{z_4? BH?8r E xD 79B yH |@Ck wEqq܋8\5jczәDsc}ow2x}k[OJ e!26c[,ki`viib,8xao8FXPW1Dn_|]"h˒8XfP`| }CвX8sHCyXJLMzKS7ii~d!MiÅI&=Aa(DD  -yPG֕-"X=դ}D/wm\.H%*zÆM(bך`2I`zj~9'9[BՃ܎S%KJXiL l.F*j{S%穑 | 3 3QdȉSP?v4]'%?thJY _0Gr A7(/gqM&|fݰ/,pbU]V tER ΃?_ꧪ1.<{w0_ Um+vNp@ Z%r'/E/ITD>ZZHc^k>B e.Ԓ 7]^HkXA]< [ :XaU@I˸,ZQ B#/Uin6N8 mM6yNzcEk@̧W.#ivz&cs^?`%4_В^ʟhϴbW$ u=Q$EbxشmFx>2cni[}zڈh sƥ~2U?@Ixؚ% Ӆnn@ bvgh/^}#TYy&"f1tqF!uhg>a{w1Q_hdF{+bd<irACi$Y#=*utqw~ l,3o ~P~t{8y9iDfrfB7x2MWOo1⛃ C󔙅; ) H@,YwPo^!c))ke+:}ZمG:IT m3@4 ʼ 8&Ow}TRQ)>IM!ҷ*6/G? (JC)`s<ER͏>Kzm_Vضqh פArt]7N"2v=s(1l,L XbnwW<҇53f^VXWSԟEU}a-B<SoYb;y`q}wnO#8mJөk{;z.>$cf ܎R˟؀%`fU0Ԇ5s fe'PzKb$,%,=`MopuA7œa.Ǯۅ94ac>:` 7f"^]LX/4,1SOH.,(d乹\17+[\xs)evB1ڪ%dTeKoeL3eK QC:y{hq> *WgeQ@?HsO7H9a7ֶٕ^]Xe:о`@dv!>V ]`R-Hҗ:R8\ܯ9DttV^Nɉ?݌"x2[W_}09X0ګ98^~(ڎʨꆇ0D/K7A[Amp'2_b9_1Gˮ<|da:+2S%Cԟ3H9ہC3=G3 o-lǂfcK8)qh;= ]r&k1~]/'b2UA5!HP-V ԹרCX7FYlO^1fp1Q @s F!7c_F t1Vt> stream xkܶ `Yi.nȇ8tZb#QݦMm7pf8p!}.~% 9 L7Y%)pb1 ?#t&\o9997o'?޼xQhFhiSӗlh_ ~ n|D8J$r)ˉIGdݵc-jm ?# T򨟫rNK15tuch!&|ucy(^&QG~`}0060+V^*=$-0#Wf[O]0jg>Mzlx'iݳJqH$KD[g"#Yf첶Es֩3vZti`wZϬѰK76CAGf]͡hYI|a I׫Dı]UaUk[:Zߋ)Q<_#s=E* cU'}}ম$&&X}()7 U-"DYLj]I,E8_һ@4Wln\ĵD ?D|֛'q~88 ''ޡU{aʊmE5(358Mp3j-u=6 hÄcDZ,!>v ʪG!ξ^@a6$ 3. o wE*w,74Ǻq7gݷ `}F"47xY:p {vNfkvn:v24Ɍ}sGej$]Mq#|@*(ܜh.~ A98lؚ-WHB9ΣRgA"LaxӔZq! x_L'El5,polb02~@?*a}9Wq SIQBbֽ(vs"_e=bO kٓD=?!,iLu+:|=.l^Hlree]:0_ RUC&@$zϧaBv@7Q brF1@, '1ya6OnF)~ kxSݛj"$"Vq0,DJ$ژ0T/S&f@ :0r 9((+xJbqK>#75CZY5 ys,TsT,^^ ѼUe1dRiP'0Ӆn6|QO N哆)mO2[OtD8"]}qhyf<,aW:E,h8 \_:xmܳIukya›qj[:{> j4bZ|kĠfc" T3j m L'W,d" }m;`fC|X\(!gtA-׶[!̈́[!,~MJE:fDӆeUR`N\/v11maMDlzPPJ3*y$1%i(bqа%c`ZƘiF)p@CglS:ߡS@`ΥD=EEdzw\z2Q䄆QYE J( ȗ(8Е53aeJ&;Ud3 cӽ[ yK gf7NC5Ʀ7N&}**0\x+YL\zXOf]uBto"#s2rOVXV[ay6O1\2Kڥ?Et((-3. Z!vԕL]ȌR}/?(uS}=Q]=(M#j`FΫ$\9 N~&{h1k1q-KTZ\E* `kuv w-jtIcJ ] m 3u`A8Ԍ9h1vʒQeK~ v@WI\^qKY5m( (HB؂G:7oe͢,1]'אx^UmE/y8WS+J wM\W Lα^eڭqY+HO(G*H2 #>!Y|'7. TC*@lJIG']:a:WO`( 0 >e 1 E;伶«)V?P(L eݠK /8aGلqq缹eHKXT֚ GQBOOԉ]nuRK@ r8)❉! U(&mք[|a0a^? ˥^ C=|g۴cSpJJx*DdV<-2yA?|IOxc]Z4~4y7 ɭvm ]!P2kLI!>D(iNblĽy3GϹeQOK 1.09=8 _D:$aLҴܟ} 7fe0J{rG9EO}79[s%D(*勑Go3E*Onʟƺw߂Aʣ/ru WE?1BM%;ܘ:Uf`KҴgVr:XUzW<L!MͿendstream endobj 77 0 obj << /Filter /FlateDecode /Length 5049 >> stream x\Y6~_ovodu>Dmz퇩 SԴNx~Q(AA*}v>{ҜW* v)ۅ .<o9>>4/'<<|p{T~rڗO?}w~]OVE,e^r$?^kyxD៻|]€?t'%nq?q)ˠۖ*@ m7|m|}n!xݜU6Ezg~a,Θ[?c6od^+}C>m# DilbG&AS_573/y˂9[ 'lUW7ȫT%8Ys5 ޷Nå5mT?^mg:}Gdc鰛[yaS=BH^ `ue))bHڷH,Ƕʢ)( ^>&Mp~ q&h##(;-3eo`܆შ^ݮ;tk%A z'ZP: mA7j`98to#D=?TΫjr}៝'+) 8e\bP7=e!آ8r"3=[̑=͵ƤZZ4Jy'N&"z=ʦBӱMJnIBRG>p"GhP{O@T-3ѽy+APSV9@_0x,kMGla>ɦKCUԴ`z 4uCZK_;bM grbIo, ]2b L9Gn:RJ]= Nԭ6DH+!ayHMR$2ٙ"x^`X2aQ]%  (h"J_MAb&~Rb*wM ~ 'xRs/i P~|M0K/JUԛ4;$&= fd9Z/S4Yc]g VN ʌaaOMvtŰ!H$pY\Π,5T ܖG.P}5Òzv<Ϥ@ZxQ&S F/ibzM5Lb/0E^O>1T-FLX/K Sb6c\ꢭE}C}94 #0`,6jʚ 7nt)8C |g[mc6JxiX-0zߊd~L`x,e'mt(ˌ#$;A<*tBg$QU=$Oeeha|"EqeSK-N \vu'it Z.цDt2vdm& g6!̘ &V #,Mg;VӨ 2^u׽>=emwJ[WЩ!~cщJ+q qˇb<!lA#o `՜HȯwnZa\4)?`p!Vko xc ER%G ]4,׍uyI*uG[m{C5VJ <'yB(η8XX4P@n0͸# z2 ٴu~9@Me4"^ִ8S@av}p 7y7wVm+h HLkAwvg߿ylF4nl MQ׮X_|[#< ЎP+Oz̥n#diJjcmߗ*[jC;MTfa)c P5&hMj=SҤ' @n̊uq,cnZ]!CsT;Bn%D]z1b{"IHJ? [l>gJ)CGu ÅP9˳̏j1$}&s+,X`ΐ/)^AcoD5uCZ΅aς oW}yom,m\ak@oY@7ƘU68OmG$:WqL,AwD:Gi %Dk7.1Ȍ{4?"y q Kl^N ҆2l}$LjwY`@CmOcU.\&+,7,&YdJD8ڂs8K.0דB(DWSm d!&j0^7sݍ1֑%r"y/lӂ:lFG*Z˝v9e^x:K 2n}mW]ZydI0vneEyZ4E5jS5pS*Fǜh:dU49BOv)ceSGnSIe3:nDSom.<ێfȋPfv!^k. mkh{> T! w1ÐyBmB9R$tXAuNyCBݜ%cn0XmiUv΄*ڗu rw,O>Lc<}o({I3/ }vLVXmż ,Mp elc/(V/"@?H,[jɘDAuIU~lN_bR CrCP{`ʹ2 HΝ+FwYyuq E1ڎm,0N0:AP]q8- TOԎ%tuImkMYѐ/D ~1V\d:Ŀ:mYw^gޡDG$ M]ݯWeAK% beBL1k[)/DA01`Z+HAO-gfpjϓ!{[ՏVE]6GZ[B8;^im,ZeXk '$% ܻhkA;~gDԨ1 7] -*ڙR`; q}$iq:xڎ03b!D mb&s:/]ׅN])A~_l-nCLE(4`ӳߞyV) 0(/īfڬsN*kT{`YLe#u 3VRƠ;~-A]%n;MH$/wcjFd.*OkU)>;R~а&G@Aԉ^ߦ33N҄B@7l+fe+z~,GPvmx660;Cv2i3ڵz*mzSUU$R> Ad( CU. t^;^bP{Ԇh0*M MX2U'ߩ-`hΔ! 7$}W H4#09QE^;fـ-0e\ETZ*PjpP}{['ê~b?hYszHD*+U{[!!}tqji'8F9cr"{1%(@JT(+H@YgYF7'E03eSdNr)Z\;&B4>띲Ρ)Ԭ"%VĢ^iEmJ{[l52W&#ϮPljRj⇾F1wkVq0|ǹ $}xsSta"Tg}[ $|Ԧ!)ی/d!+7bra{}ĝ* PCKœ떓K}, ;+:S-/ h=8> stream x[Y6~_$UcE&zks؞-ĞF-u~A$>dm( 1B//ԏtxG^+ͼ0;yD^bDd(quwϿ@aPrްUIxOwyUꅁpp&2? D^Q(:q}?_}XF:_1_I,a`l[4A?o#px/6~78~96ھݙ`_uP~}.I 72Pcy?F4u.d8yZATE;ݪ'QtMȞ3W_ 0 8_JO"?q|ׯC`jm!,(|[߻gr'FY [1(@( Eh,>F@C˼7hQ 9 h jlpnȶ5y>ڊUw]i@8R<زA dW#QFP(M04']ttHHep>/\*pu:h#zXF]痣f5ѨF_U1` Vwи!"X{,A: -Xz `+kA2-cMn{A@JG38N3zt7V,VT,"5A'RulHMcԤ- Lpm%5,njP4;JT4W;+e2,'zhrXְSvT9LM_z/ cQ" S?O TT fJs?tcH69Xtup:VC,6閜JvV'P9m-IrUR4PK\axhdR D0b3:Y bVp%H`dJϢѼɽ g}iYj\.,s艤`_ J=0BS%YъA# BMKv6*toxbcb[IJå(V`=[dG"%JޕBB))4F6÷Le $M6B3Gɺ!h$q_w~ګv!A<Z/jv疩Fnk|@zhE%3 })2bN\(wui7$$~$TAi~D;jէG园rPkM>\A oI qa-ڰf%e[F~>=BVݭoa4q5hqI;rlN` 9s?LkY8v1rXk jw^Nh÷+YQy<agKfw ػt#80+:=Ai~?ò uюLu\$"/v*'̱0 8M$}H@vDi!THqѺ_njBtk ѴGUHx%!&ƅZW]h 8GvigڑC\͂{h2OUW(AM4-ƒ5mG0>pev= NsB0-*xOZ;*2kIcT519P,(^U7iP'8j3RsQO-q4B& xKPpN}UM;tbi6UۘvWyt0Ddi*F j,N6bx~#?.UUv۪ikK6 "Zd{Z/__k9F;%A#Ϸ =01 ]9/D/ V$uB-3% Q9*XU" HwWfer#˨)8pNp6"A#Sr+icQvrwQ\5WcaZ@?<œ>ҏ3;`PÑ% =-Y#1n>;#ЎrlyGA ~h8+fny(sH%Vd[/A.n5wt V 6y#ԍ-8π>|![;2ǩoEܩ}S =2A/dmQVC3ifu4A;YS}:]xf]访Ke(2뜄+}L4 ark2 ];.@]\DciDB]t&' #~DQMOÌi6YoyG`(d'#=LuKÊ޾@Eg/H;-J=s[ⓓ6ay $AC£6(ȰOjWFCsԌ0wJݎE^o͓ y&<6s/8L0Xvuǵz%ks2fh{_%̜ܶKO/?d0#cYaڼ[/^o= :kj0оDWLn`e"ʢ.j['$8/􃟭(0aVNrfUs0E˰dz)?MfGQ uоw0)V&"$M8wH%_Iԝ8$o`uztOǰ>%7wendstream endobj 80 0 obj [ 234 0 R 235 0 R 236 0 R 237 0 R 238 0 R ] endobj 81 0 obj << /Filter /FlateDecode /Length 2872 >> stream xْܶ}oV4^ت*Rr!v6_nf'k=@F(1Rp"rr҄gdO:#- ܭ妻7?ք $y_Ο>:#Go"'I.aO~}T]M6?IFq3i&_$g?d)=%ﱚ08SkhAcA4<@PQ$YLp?d /"YA8M B O yN#y={S5yݴ.#V$(c06}G'/A @ןu54qj)ǀv/xX~UXPL ymUMa`¥f%JW(Hay5%lˢz5xjBg%ORljTvw{_\f  %F֛^[=u쟗Aj[=3%h C'``d%'9hD"YS%ԕ6ܿ"5y1ʙ(V>gp FսN|8{([HD~.Ĥ=WX mk;{Lrhm668%3\-orTjeh*Bc<>><Ќ^ tEjPM@;hcfIV& +JyaS+h"9c2л | neu3Nc3TpzR1Jf0A-,jimY^]~zvKܕojq3$e$"s/_2! *M\fbr<[e𒅀fγ㌰u'+{Oh '0)dDS-ܬrb%ش.׵H(2b6)5\yؖ^fBzMfaV_#\~ $ܙuA9{-wULA`ľ}a `'it}g`yZ7 kVI%~HT?odx <3C,3UI+=o]bU"LDhhL?غk̅C7AΝ#*o0u4 ìP6#uSFvx=S`&X\|8W>1RID(hҏ{MmCf4c.[>j@2,"(Op/כ'=$عw>i:!-aYv9IɸhSMqrO>U7tdCc"VCҳ 9 cOLTfXh;}d ]A57r,ٟW~{?@|Ojazrԕf_!D}ꇏGӈ[ j%/yQ|l/)`D1 UӎHH! +>.ؾ7^pm>VwCL~u,}:<",AB+, YatTG0=/p {_.=UVݑFS˳xR}A!S'D+r4DN7WX2G'C^R㨦~@:YE27pǣbySXONL D 1Wy-Av߽F`! o+ LFsaL!NBq(Rpk^"mUUU{Ttr%.6^|5ڄd^ ~5=^|n55L:z,%_ІB\U0}>!?UY!5фǝ "a#5.gwd &]3dӬ HA/ qU*D;ТbV>]κߍqןSH,Bsqgiv \Gե0,}'{ITi60iEvbIq(., 9=[S. v,.$&Έendstream endobj 82 0 obj << /Filter /FlateDecode /Length 2662 >> stream xZY6~_3@xž$gt-vk$-x7 0HbUo;'t}{'JԹkACkjKIv5 5c5CaCPF<ؕd`Eƺ}S=cELv>ޝyz?0ԂJAECGu */<5@c[h5WEY5衩~i^ph^R n{\nzg!_=u),]PPve(W$f+b^7Cbuu@4Ŀw<;+ei&$w#+4!(Rkw2*"T B3{: OAKr3rg#M(q_L2ڃ K-% 33U {I%[\Kq櫵&H+5л )imֿ=K퍠.)k>ԟ;xC14myа4u5>=B '"Y5|e%@<Wyaw̱5\# 2G٢nJbyf\Q>5qn&g*YGYeI/:Gp*Cbk]VoLx8@ bK< ckA#= YT"Y˩F:DkI'F*y\5'>)wT5ImENFO)+9ȏYƽ iIGTLHf2i_d~L8XhBTgݐbOҗd2Z\D yof][-̷ۆW͓,Bȳ@;y-ؖ ȐyAE/*M >]y^L\jWOVמTS&^ڊyTIN*ef%Z5M#?$2,b"B &z{^+ ɾPW,~ XO3T#/:of{^_GI|k]RqMR:`~%pϊ=7 4r%qc~W%O]^lPgY 7[!QȜhRQSL[65SHe*w GA]lS@s?L-}z3b7 k!f!F!&!迲nf4#?l@,*>S-a5Wplp3`d zdwpdE]C,ga#M4kB,H-J9H"OZkZ^yצ5R |OpA5_ya=C[*rJ,6p yX3gl`t*9lAr%+;}&CYP:4=h--XP#ɳj6b[rJ,13DOktwrp{n?AeI< smc/rMݲ.3P =4Vp7+'ngO a5_ʏ/^ؗ# EbwQ3@\Վ%|}endstream endobj 83 0 obj [ 239 0 R 240 0 R ] endobj 84 0 obj << /Filter /FlateDecode /Length 3013 >> stream xْܶ}ova&&QʩT,J^0cקnn 1g7W_kE>}.!q}8I,_tG#eO y"=™!H8=޼]w.γ(< OWav/NlqJ5&bas&€y&HS4}ye2Ycݵh_ @ XErz#̰l i|KAT8y-^4ҝM/Uc7LviҁF<[~Kˈ*Ds89Mp+Tb34+h rƅ"|_sOfA^Kf˂u?4j\XnV,r$I/"7eCWqFcRY]6_n%V T*iNhM _=fo"ۈ>5–9ܙd; `+'ܙ>1̑G&nkuau4[jjbΒt?`6r`{$;(f&{!lՈF:$zͰShI-([VՕ0W?dk6Cw+9;5.`xY{\M| '^wiǾ>R` L} 墕V㇀&1~5=[$u#}[K$ÌodF7r90'Qb4 an?gj~ QَI`yn0Jdu-ሄiZyfN<2AzSz^Z3=d䉗2OVSoЅ԰ZR#8auG!|0TDirQO=X0l.Y9ȁR ?.r nvc9&E6DV':6bYi0+z{rxK1<(nmFL81F%ԭܓtGxh݂ǐ1U~ (e LGAaPn5O΄فPJ30:umuch5v&Tq4<κz 8\BHVi+J/{4g&rzDTRr]$U*eGp_endstream endobj 85 0 obj << /Filter /FlateDecode /Length 3384 >> stream xZKܸ ϯ-㪱VϖgSNj׵a֎mQ=ɯHR|.7>$r}* HtG|YA+q > wQϻ~&]tݝiGo|]Gow?q<XEyY<(4$xj)bnM'|42'B/ ,ZxkL[uj ߛx?S!8aIzsdVQ&Ip ASY|ڹ ~l;p, "d9vIo`qpv$eݯWs>90ݫjN{:ƭ,'.irC|rGGGC q==ARsi =4,jF0$9=8,PtET ~~㘏'NsG@swY$Wo82\#!Yy"{s=0JEݕLwo (C2$ 5 ^hĀN'mI*9!sObK1(P1zgFdk՗PHjBNJ{ fw t-G9ȉD@@ێNAR-Z*N9m~ļ-%Bm{PJ*_NOr*t[X/1Mk6B*5)w麓`ZeM;Geu̲0\~l$p'0g0ZGJ2uB7ܞ1\ !A7##eC;臍Jkј=c(az 7']qMj15Ȣ}s$gIvǼp`>Mxb*m*Jt!8 sh.#ږ\gDg3~viBDiWg۵3I(̋2*E]GQT#z_Dp~r|}`&XGԸ\kdZ09[%&⎗l.,yoVTSlnI3z:ֺą.MUo-.$01aҍ4O*CCt؀{~!-ʰ(wUYl?Ӎ/ŋ%6ɇÆs|`ދW2Rq#.Q4 2ݶz3j2'mޏ=tF=zEh4hLElޒ#ӍƫDGxFoIP~SUOO 0I8MLJWs? 鮵ѝ:tmm󛕦( t5QURts^ƸJn#İnD:^"&A 15]HЭN~Ax^ T i]AepH4(өW)ίZ:CZsY6io"mR+ZhO4[LZYfB>nNɚ,%ꓬx$:fylTH|)]+YIQC9c$)z] {\r{.yDH~e;&(cås\ QD-Jd!-"N"W+/t葼fH3$ј\h=4^oɛ>*z[-u$_ 8=)l]1}ϖ5ΣR-E3B%ݭo ҖylyD3!> stream xVYD~()bO>bE- ZixXwbajݾ-OCf$w}]WUEAPXO0྆<0 kr5Z~N )bp3k?Xjz|'۝8ȣw [P 9+E\g2'd}l3ѓ %ӝ|@ۀb\wM?Deǧ{Adb:@g;+lEېBgk>(;N/SV}%EGJ=a UQe2qi* s!@)E)TC֓t fZE`W Ub9Χ>jhֱ"`SPX%7R]Y.E-^#-kbhXWy4jxs8gO0 8]Bvg&m9 ڋxR٪7_׾7ҁjTSQnzAV KH_cɌZ/rhE<^\nMF$ވLQ)EpV$㴯.ei&Zo@ sv%jT)mUWj,U"4W1qBoes÷8S8]isPCl22a\ftOG5#5u" c࿦e61NgQ@KeuXd3>[s`>yd˸E3L"tȢ*%.߀N*eߠFݼY|1͔YY‡ݻ_1`۹2G뒙n1Z__1C69dzxؠh}֟/3 clw$Z5_q:(*ތZxendstream endobj 87 0 obj [ 241 0 R 242 0 R ] endobj 88 0 obj << /Filter /FlateDecode /Length 2156 >> stream x˒ܶ>_WU+.&uHxSN(*,0$f1_"8}h_+YnBw| ʟ4H>kOҀ& #/IC4Zr@_큒~>ˁ.)揇 ~@ꠢS}#:n[0DPpoֿ֞hAtۏ9%_1)y:#:#amI~:!ۂՎ(QqpÛljfyT!oK]=W%wT6V]k]G04}ގ h e#aTn[ĵatu_0ܗ'xBH܋>P4,J+)t_D͋6c׬h kIс˪2F~l OKH7^ne$^mq.sve:HMg##xNK$/x!g/v hY,O.u/íW˪l}/#J-ˌ:F~_x{ Ye]o ( EFCceYI-}EAhOwlX͙pP&,g>}$yԣ8}ఏBʱcͷY.po,}g^eW\eݰko&1x -MuDsjtVW'<8(O' /]2թ*X] xSB2ZZ,b0--e$-xj訳Zc K ljO^: 8Y#wA5j{VƐe]7 SQR ^cO_6}pa^$xC!gW&Z1QaF ݐ$#+50h<[*9Z"An ͧ' 8K/CTO OLMh?L2u( kzH9qXlc,&V,*zpUv,vE,\aF Bh̅;R{mBQer7aB++{*췣O>tބl"&٦S0 ,yGSN|_׵fU,Ufc#Y0ԏ(ۆn6?M'‘2J#?^|9X[Ă`c;32doB81 IvZq<;6FM Uc򦂥LT:[tQ0pJ6W+WJgoBahgc=~CAW EkWE-5)vōC7-KchjAP|دa%aSsvZC܎kϧE5]qxD'mktBh Sb֒4^#f!&^p} 63/r]|Ȁ")fQ #3&>ɺsP`zc~9(&0=*0 {K⬸l/~TʑY^$׍lS kjjAg3hM^C> _2(zP}0([5{-D^A[ThAGaGnU,T8TDR~B?j1{01/ =7#/0_ OZ);nEj3!F*޼ *(k/P~5c](Mia۫nrs.>endstream endobj 89 0 obj << /Filter /FlateDecode /Length 3127 >> stream xrͻ ƒIݜ؛r*UfUThϐ2ɑV4^ )nՠAݍ~"nO^2=](M h@'h~"ЯWA%ݯ~>Hwq)*e'9;\ĊfHGzwxtnQ#eofnƩM;Fk#0TW9^x|oׁٗA. d ۡn{q F&\o(xE~W/do?SEs I)C44gsB-/?|")7xfHRo+a?.rrZi)~?K=q|qyIe2o0; b׍څ:szד05 Q3޷c )d9dɌ2/zZ<m &ּ:.'D1?aXb9!'҄f+pGi ilXmsy=›muol^9 㬤^br5ouJX@pN%IwanUƣ(G ;[o;nJK"q}蹨1Z8qcSpC=DϢu]=ʪzsn\_"uCLo[3=1WA&2yPaO lARd3ԵZOzSnϽEeH"0|vI^@TgvǶ:LČȅHjM|IkJՒM>{ }P_+3RX:X[!@٩]D5$y6*DnmD%,!/hLT)d5ښ iHݍ 4v)Nx6@Y6 #iy$o`qX9/3 drFV_TۨnTNλZFA-$XwBI>CUڍZ7 9Xj-p%Qy&,5 NBsD8Г2 P_ pEOJ2r8`ܩ3D suu}k/&h:u3iXkdB^ݥrK"Ki}aL,øyT?r\H8²lE@CdqW JPJЛiy6l1֌ |r"P?o ȵ2˻:)ŮLr,)R~XoBg}zCAfDY]R۟ }]9'w,uJ6CG=5+[aJTnͰ,[$$#3Rb`I0 d*tMmDЃ"T7^Q> 9n ||cۍku l&5/NqGc98+tn- _k̠`"+ z͡L#bqHLuXþCviB1Vp["4 fpm* d.hWy@b֢keݨ37v7Bf?,Rֆ#Cl9fK/7T@Ԭ}^ƻ=um+?/qO]yBk*I]ĹĄAܠ.Ma^mZ$8gP$ĦC;&Ѧvb!^R7̺ 3;a ]Ff֎fTS>a_r AD{nQ5!ʁ fGNgfr+GMWhO|F9~trl [m'=W\+.7~͵͸9scFgmPQyR!j3+/5]MvzDkk %bP?/PDTigBF&UZBdHϩQD' w03sPB } =Z)/5AB7 Υ?/Lxendstream endobj 90 0 obj << /Filter /FlateDecode /Length 1415 >> stream xXr6+pWihKIı|%B"S\d4Drخ&zE#.~$ɮYHGdE1BǏHC$HWYW@IW%|qArѲ߸n%ՏCDۂw/=mwKjVJK> stream xYI۸W6}雗xxܶ;qf4I\Z} lMNxk| P(T_UA_7>VIQ0]q1jnǨF`ZG }ٴX"&7ޥ89棳] B?h t^~ K}#㸹C=jm֖">n[[Cͫ͋1=t_sЃ A= w/MX{LgR=y(q%ˮmɾ}5%Ej+Pb/=NմD5F+TH ؁R4(`2K~XhbRI8kno2Iq'`L{?>o{rUnP$?CYB5  {5s#gv{_v`AG wO V֬=^Sgx 8wh Q8lmrj mk^G'.xӃm KqY2pWw g b$0Xt>T*8LWp99AK֐@s8ji 8ϰ0bӾ?~|tڍ8tFlyEu.l]b4If7 U@كq6{`-(X_L u[,M-LW RxOQFn3H? > \;y$Rb\~P. IɃy@UB} E1iS%-x U QO+Cm!ť2V'9dá\z9WbgII*&A[ M6. a&*0_VI%8| URQV+eƸ<Qg!,q+zmvB|+#N0|qY{Y:WgjNe>ǑđDp_#oo:~ ɝ.8^ o%k{nRhyE2N|mR iJ4 RGIvդS: ʶOJGҎ$n+UP+YVߙ`Kwn'yfL\UPÝ'gpGW(.,uw\赑Lz* 6_?)-*,M>'RqP+HuY# aCtl m v'*o;XX .:f TaUU4UFi."ُzC ZO=MR 5e96xE VfG _'Kݗ"v P+vgv *Q"HNkg2q^fW_\֎=/'u g TMJܯCCB\iȝi*w^rچe$TEV=&$dμ\h2m4 + lri̋ҫX{EI\t$N]HaboߠC~D2!Hc ݢ%G4L<`<2?b2ȞalfW{ۃ9N4&[)L (ok3® EoeVW4w>X> stream x˒6>_=yR5IxM*Nxj}HrHHbL2Iy[|ȩ=dT 4FwCB FG IHjT0,!G ip7`f$. |H )9[od s* DqQyBrcH~U4ԍb?BA/mJC_}HrHOQC%*G|)o|!04rVZoV̊0a>sK4vz-l<xm#ElTP9aXElvؒxDŜf#Z{S$lj˲`q<'G:0cO4@'ϳAkwXY!JR'x7F:!ؤ)-bTAZ܊6isSFsr*P4ˁxNڭFJq`MS;c5j'à>Շ\#tD,Mh)Xӆz[7x]\ ȄђU| XJT-xY>Q#[{@p<эv6*"TzQQ pL^Bx/Sns%=[vk;:Sݝf!D!U-#f !ڷcsW)$}bp),v㗨4dzرYÀM4s[=X~!BUA$9 }#V4 Ar+d}sV/0 2z?u2@ N )]T3N( L؉蚺ҋ0U.J_ן4O/>k<6:J!󶁛of9ޖ]18v!eANSr㡫U.A͉COd! Gɀtꆫ_[򦹚I}=:41gbx^Sc^wd (y'VZnO0Wb~fx 3!nXi>'e]1A(4<[ ywb QK̖ o2 ԰p|njk(WϯNžxә<7\1 Juaa/^ŨT_#4Ɋ $:aLW\ݨ0p{  p ~X+mhҰ9vod IM7$5M$T06gDPMφ,(0-B;`yU5%EZv h=H}?L,U#hZoo&ҝ{ 吝xTҌ7;sˈ`0,@@$r<#e@pM!DJOxN}G Dw_/,R7S\AɭÜyYQ^Y!K'"Ub{c!U8%EA;Ξ] K+tudH7 d%.5>X,kah*i2'TêSW9Ϧ4< }}} N{~%8\%FZ v%[Ϝ_; 9@JγGY +nvrԭtnL]&IB]:iWN ;^R >mq)wvp,lg ̗ D%'^y/h'+endstream endobj 93 0 obj << /Filter /FlateDecode /Length 2980 >> stream xZY6~_8Û&>Nʼn홬S"2!oٗ* *"!]ɟbpE"R$5+IqFD, ?8 =|\*./G|_}wwیD!9 Kf:H'V31Y7w#m(?hQɠW>_(G4xA`6L[kAߋzNbHGlEee, ϴmxsOv5Ȟ>2e!*›^J:v-y-ۚ}d) 0L|zQfK$ѳM3"C˔RVbM.D2#D|Պ5RՉh/  /BN} ;ђlE'v=w8DP; Kr:+gnꚼ+xZޟ }뻵e|x޳irjf /^ a%A7v7x@TSJ`XӍ/,6v6Sڜ/iS]7e=TZ8i(cQ1B^t<֞Y1zJ,17"ЙɌ4o-,,e9=Sc$q>1.&'*@_lܑ` ={=XRg<g0d :2H)OrX9aX-s\l|QHdܼ~fuM%N]? i"9VQy{uGVzpk.t\ 4݅2fkX N1DzF7~p=#o{(P#)țiPѴ='Q4YDIŎXu/n ew\l Afǟ )і jyVUŘRS˫ jO@M*83uc#w 267 ' ޞP[TX,(*#EMp T>@5Ҷ0A#znPu ҆XS(6 Q@- BdӇ{~in0#@f/l1 wuQypxQ ԢWdF[uW2/AߓV⁋H&m4ZP@}8}189T"]X[IG5 vBޗKCG Q/z7 ޝ͓!OW[ȡ! XDɑA%:ɄASB0v8* zI~X9*0F<5'﵉OPz82X!i.YCHtE }";ZC S#;,5T;BI}y7:FWޝ K Ad2J ^gZmT&HSxHǝ>~/Eeߡ#:8/e7#ˌ> xb.%^O4سoA$Tk Inv ^G *q:``Tog).'؋ycV.ȤgǨy o^yfih#ݬAf&;տΜ$!n> 9z>Ǜi-^ endstream endobj 94 0 obj [ 243 0 R 244 0 R 245 0 R ] endobj 95 0 obj << /Filter /FlateDecode /Length 4187 >> stream x;ْ6r|M>Mqi[ T7,. dHF#H$ׇ8ߓSI?=JmqP&AZPS^q&yp ΃Vb@b!8??tQ;t6A=93Ïl}G?=?|1(x>xeuY]UTa$x>'J1I=xRͦ0QdR, 2Yj?-ȼ ڦ&q "s!ҀZ]ްqkС(Z6gm,VzWl(x/mѓxS8]zq+KbrڡayKAK#ѐ&t,:4 t49tbe48 Qt6]x'y}N1-;eBѷXSqO<܃Vf[ѽ\%FE#b$+[ӷ/7"* ENg/"}Y,ig]5[7T;%Bf~3vjEB-GP}A/ )^-pzk 9pg1 b8([x̀X*.!]=H4uc{ B~>y8Pq2Y<U÷{ETiy'*b CeR,:"deYiA߀ՒSBp#Kg1Ll&%3V-'6WW61Z%2.@3;,1cFհn Ҫ oP(C>uS@dڋGBW`9+_]:sɇuEm<@+VgJ*WrVĴrZEF̨sA{Ⰲ]v;(sa;?d'd(eDM[BtSR x,EXbԾJ0/vX=7scnhoC4 ~DDn@=gw)'FJh4S9 9y`@ #f"n "k 2gfmyڣ1p"+;Y^m|=MC{KKiB9hhGk i5[cGܤd zFV4rm1g W٭۸" 37<3u$&.aÊ^Z tQ]@Oh/%)"VV{|%EƱdenoŨd &gXRI)x#(0*JYɦMA qR /4elm=ߌ!f lv Ɗ^Ro`r.<\1z_H",uU#kx"J,GlTH3x=:KI{F*.iWÙ moEPad&({:8<#o<9kWIDnG&# } ~z*Rqx UUҸ% KLWaY-P,#f51bt1o~ G9f"+t1ԋ3:mU ȿ8+حYXGo 8 H8?S[N(0v~w$MD#uZy ?mBcL={I#t\'[=1tAL(5̙<=r娵O5{z_rYUaZQ|\F"Xs,cyOs3}lڎĉ{oB|0467 ;ߊfn{ W!-06R-)S, V"n?Fj6*8J:wSOI^da߳\W<bVhþ4 `~0>:2b$zfū"%~e`ƐN _P|c'L=Fߨm8Fl0gVM-,א)LSBVż Wy{m`bÀxmppk .Wu#M0Ugym޿!* })t1ѷЗ%ӗZ7pߖYX{ .Mvp%I5:#elߴ~bZ(M|[~%Qfz}hEqz GVpٷR{foM )cY;T.[?>7_#aendstream endobj 96 0 obj [ 246 0 R 247 0 R 248 0 R 249 0 R 250 0 R 251 0 R 252 0 R 253 0 R 254 0 R 255 0 R 256 0 R 257 0 R 258 0 R ] endobj 97 0 obj << /Filter /FlateDecode /Length 3516 >> stream x˒6>_5ܜijVۙ! ;IgHlVvYhdp(gTE4Y"3NWy6G/>t\W7+rNN!_}'/ߟDK#JSQR)Oʲ,Ҩ9+~~mG9|G7'p|T<(ceiBNxN`ݬڐ9{XjFPˣ N KqsGlfVĽ!31лe7JQv1B'qV戚jόgX`]]t8^m[is>$&9/<᧻O}5v__&z3i ф$esMq@ӎxjGfaqj y9O3B"M8X5{NZ&L^d 62ƨ8Dz8zWCC0sҘd,/ylٯ MF^x瀵k-,C?So%?qQݓsd?nBl6Xa'5R޳t^1vre+=DQ6":TU;p- ^xm6r˄mڧf{)aZno͕RgJA08D`J[JoqRht`/~A!KEjKYGcI=31.IcRBH{݀5nD9%Xu% ׎qtWCdzS;8xhqh<$H (!IO*丳uFX4Q=6;097]a,:MI$6.:7)Y}P϶9fube_l@NJXmF{|@NY/7;y/%enR8)4oeƓRZZK(!ꖔЋia#<tٷ:B`A&s]n)2vk{:U\դCu[д\p 4s]Rt8k_r=6qa74 l`rI,kdtCːPէmJFeBSV5UWhoW_T^rBRxpp*H{ꭳšȩ]5Sٯ xɠui罊VZ0;ECшqW#w pB0⒌(/ ^s@b$8Z:ڂ%a]Q0BKbfB|Mi'`ГؼXРjEέTih:φt5賷|_02x1rH'e~6 s؟<櫺]뷯sM+2}YL=9*d:&GТRq8|vgoR5pAh];LfGA-a=F?wcQ >ey^Nwy_#i}5)U^|l} rǺ~0\23g*Ӌ5|/Mҋ_AL"8@-(g|tb(Ӗ>Tks#G2WUjv3'_R %P_?e7&`6O2^Ju"4Ǐ>B= +=NJ?^> stream xَ6}o Ӳ[۳q`o| ,`KiՒc[Ţ$vcc͢b/Wo?apEq: 0YL}*c#E0س߮+?alp/ѩ/?fW?_=n[q,\'?>\Fl|;n+J-g?1`gՁ. r5KАE> *× "taƊ ulE<{MaȆ?ӪQ"g˴amZY2Λ `{WfE+<v;YG5!q]S_b(XQț$U;P_rydEMonΊEZ[FDd6օDANlH&x׶"Rʼn}6Ng y4,e"lqf/[) i*SܙgZԧki 031/N9kw/~G&OHsTwh,rL ,b{ϣ/xoeS=+@}Fhp/D 0"9HG OgYdV]2Q^ݾ|jwB+ߛۭ2e*[seАAպHuowV .Dp @.DcÅ0 O̳7v?B, QV)E`xA^=}#VZhxw|;-Wo%؁duWxb{'CfP?e63 rd]_ǁG8 ֌b~Fp\à{c6ht&JJc& !+TCib&P 3!IKfEzvab@wB~*g<:=:ܛ ! gwdT" nƩ-`2\~ƸkK^IE $gt~X'JQ`97J)3 ڎL7Sux|EmU j59(lf9}yx8ܤEFQe㬬/}fg[[\XЌݰ2AJ>Lm^ uwW4b'[hfu@vuy2 YC;׻^1ݪ]EDX;qtH% 4``,u!ZwW9$]ˏu`Dz,것A]m*)E5A9dhmnZ Rzy0t~Ŷ@Y-wu%*eB4@OC/1F%CTh r194M_2XϞQ{__=.Pq}rkʫl49km˻(ud͜j Öz-9oOtX0K)Z0 E'wF*=]Oځ>>IW{=Y4ʯQP0"Wćjt#(0DNՙ:@l8@cޠa?wtxzKkL=lWJ8Ta+JֻȳԿ_ iendstream endobj 99 0 obj << /Filter /FlateDecode /Length 3175 >> stream xْ6}okWysJ|dI qM I2@AyƩR74}74+KU?r%Jrh8ZlGO`rѷ7(Z{o͗7_I#G['"^4eYiTѯ/>VQF?_piyxP+3?'JgRQa`DZ5Ѡ>]=G8tu!ř!$|UZĽ/lFah(o#SOgWzc,VFcQ-Q8 RL~d5EN 0F۾mS=FNG|ꇚ,YKI4-0O2![~Q;E]?E3d7g0s'%³k,}^Z'Rngoh=sCim±<;1yq'b@'#|5ih'gxDT'$9Z}:0$yFNi Gf~wʬ|VGC@^PmЀqs^l:ۢU$Ki/-"ݪ\8!-ڝM}O60`@h릜AڭoaюvLlx!vH*(Z\SH{ IzU{yyj<fTWl؜G F}̘nO'#mBe833c*|JU*g卐 yQ:rv[(uoW`+ٜZqQ\H@ ~|V75O;c4-2x|MBðo1g%JLS"+ٶqNdy4*% r`HyHtA+,,O*q81 b֕R"KC rq\^$<Ƀ|s=q载:UgI|L>lZFLm#xjjoՀW5<lVIKc6(0@E(s^^j>Mj9\ 9\py_|…f^`ԊNJ4jq0uRaI`Xwr4ccILR^ew|_Qۉf )-Uk^heWk#G˯N@4ٮ5tc?҈kWiL9!|j^t؊}fM'G_s\ߜЅm^f$TD5ίeɀc Lr[I xƇBrxY=|>ӘqNϊ^ emϘ+{̀ihJtQ d{Ft̠T /Hv\BWҭLjjx\7K/j1㶫J3'et UͰļDY[kW Jz.2tz>")徽=`ຝ1O,gD*RbE/YK:w NVy\AB&y£>g>H$P<@r28?7r&^;]Z=l֖3MfHfZAU<B~.ܘ}*x%l7NY$9$ JD,o-nZaNKg9ZNu_\}LyvCs@:|؈U M\C,!l9?\CuSasИS;olMP0, |zu%p@ZO[\,@cg~sPr0tOr^?cQbLƙ}hӶPb:N ߼u('ɠd٭#9['9OY/BEZ<7P퓬-zAzZyA]'P$_~'9CK|4si_8ՋR"ѽb$&endstream endobj 100 0 obj [ 259 0 R 260 0 R ] endobj 101 0 obj << /Filter /FlateDecode /Length 2854 >> stream xr6REjOZ;N98~h+U!1CD| 5~6 3䬽t7~"`>wiȲ3Y"RbA  +(-?8~Q_짋?9a?eg&x_.g?\ܾNXೇ8(NtqA+6PW/~|8& 5F}!]{f>$#}ҀV~Q=k?V*XG@6G!Jήwvl=zܱ% k֍ |/Mbgާ0LN >y슭e'TɬMf;Y;):z V}0~($ZdB)={4ēWV!X~к]1BFQ :۞# .Y[>Ⱦ 0(ep\7(/ 3.ӀeS= B" O| Qn9NCY{wflm]b|}ۂz0OJ^PN~azٓ&hBU\,΀W ^1HQvjD(+v %N}> $ 9ȆMVr_{ZXY6Mm6[횮R/e%{[S#ZN}1Z };B~#x7qñǫ^h ΏkE5+L$1V2^p> D*'ܚt@2p 4cj&M[:'C>(L!»W'p~tj\N\hF3ƍnjB֏?sAJ(踋د<&47lk+}_n=Ah %:K%WkNs$n6S($ս+5ۿDf?ajs@P'?榇~|bD&\vZ;p孿!ǽj(BƄHS%mI| O~?]9?:!KajmGWCK":"樴XbX›Zۯ)Ge S.QmNEElymUB%c?zЅN plzff0X@XpAج48Gt';ՏX݈ji?Z  2KY9 -\9%XM8i> Jn I6%d`U3[}!{|fle`%ӕ +(b-,.1K;֜ P("`|"jSADshMx%=쀬r̕.(vX)R z5mϲ U"_pUǮڜpAU `來fۮyeϛ`PKLK,{^hoYŎnŞH^jOyB#ƫm=Ҁi5p#kM 5𽰔wo,XԀ[[5PȬlj #ٱ=CBCp J^(bȂfJoB/뛗?@d4&jv lgn( 5jj_{O|/3?Q !JT.E3Eǭ0 W,p2uVfgw7TLJ/]:9@[%4pHbG^dn!n:Y{@ >Bz^ [x hdn[U~vP%>ѡa׆(Q;gH) &x&":P|mJ;H.qY 8ʼvG\ qt !n!l:MA,Qywy&=b } L&5h_x~qxBk&[m ceg)xBSf[C3g $S e)5^;+_MBL }펷ٝA(`r&9$%K4$OGnaXD'SHf4XDpW"l,RLTFPL $J!0|ΩhKAg n55עDdNK(--~tш}]CQͮ?NxIOظ' f M'蔏D!Sf 10Uxex8珁V0ٿG8-7ĽbVx&Ʌ=VZAp(|( JXwXBw;WwB5kyr>Wڤ7`cJ?]'>=;ض-7>,/2l:1}o^vi9gm3?ң6 ̗D@Nxq|₾iJ j^)AJ_ v;ݘf{i U}_endstream endobj 102 0 obj [ 261 0 R 262 0 R 263 0 R ] endobj 103 0 obj << /Filter /FlateDecode /Length 2081 >> stream xYKs6ϯ-vD_㛜XN%){%W6Dbf& )~hV'ok4~Ać?'݇$vFZ@Ґd$ "/IEqLJe i?}W|dA|Xj{I1Qb,&Gý/$?xYo?ϻ ?hYˠ>ӎ#r n@4j6 8D}wSߨZ\Fw=|; R /lz;:{[ s_a63Wr=%axyK ') jZu>ZԊ`=H]rVuE,HE{8 ܺ]k[gџ,(o-;{vM )E;oBRdiS+DL̑756,[.EmFKap^鯬-=7Sj@~-jQj6ւh9/\C'vZ3y r蛡'Q5{ɫ lIl> .pYPd1N C𴛻ɻ8|áIJ4,Q.5g7xޞG]| i~lx[N3l1OMqwnƋj-Į%MD u6Em}]XY=1Q2,mB2#Y*lOa=]cإNb,O<i꩐&Xʣ fʶ)C%'֑Gk/m'+N?vѣKRe${ I9' ifl8 !ȃײV.;~h@[92R+B (Ҕ[[fS2RSetEۦSVﯖ%K,h<+~i-+ HouheeP+΀"|?8}/UY48eE'>zw M'KZ&^\>lz;+;zwC6Tu!bDUºc6{6S8L7rcD0f0a-l1O K􁵥⹡:phʅAm4ȳʂh[n](%+!B}]t{^ ӁNhl804o[Tm)1 y]}^p|>QWA}+%ՓC7FxlڕV,VPhKҫʥ$$q𲬏Y @~W/3VP'C8^so ݫ&YFy1}䛳1<&dXYp Rxh&ʘ#0EF7</fW#.?8ebpx-^ҟ(E`8> ʤƴIT|:REf2Z[ GpNkb]hyN"/Z}Ct.-P:2ԝ/wA-ϮmhBey9xd+:qC\KS^=)*zA\LJ3~W& "f|7Al:GWG~/6Aٶ4Z8Z;Q7/^gS(=eN^{f|XD+6p%.dy?@֏N};^a^(c'U(&[2\8q4Aq|_?2>&vhX,H["նb>ʆ%h]#,.fe}bZכعd0apu > ԍܴ> r`^^=񩋴{n1o?:ģqi:&~aoaw +Gs̮D\u <_hY"TVOJWwiE mfF_we|w_7c)E9/w-0endstream endobj 104 0 obj << /Filter /FlateDecode /Length 2673 >> stream xkܶ ~hzqE .v= DYz}ܕt>q73"<|Co՟`h|42Ԓu jժ`3"jᦿ!o7+D`\ӛy~~(ADE% 2s!qЀbVZkib@ju;Z twQ>γ(8g,ʞqnlNZ b<#Q0j0m˪abIj^1AqiA4 ۩zbct=X-[N܁m# c aM?:3M-mp/]6SeŁCeN5y nZRre?r=E;rGe3xWVՀSE|#D/ LRvOӧ{2R!m2bG BUF٢2\`irxٟlvBO JyR[1qP5 ;גz-F3+[(TV !\?XPB-|T7kD0\HIzuGƒeԬK"XGcW޿}n=&NOTqeFvԋGlYlJuVb),YMNիWo(GP^ech:ͺSA'hgiA(76A4rPddtY>EeRoWg OuúΞ;# #$YW`ZN+{6 ZWvC#Zd%PmNbUY,1=I飪{rI#geΒgZ&"K=urI$DɊH6:u$A" /Mn?2+6d\r L6S%8@g4S=65%sXwF$o%͘Lq.CDXD+~۫IYJ]n$8;bM;['he9f.. `H;y)"̤Z݅Yl_BeW19K15Es DWfͫ*q1dK(q呪C[y@jM5o]t" EI4'ي\'goe(x6 i$ua;qNK6,fY[١ofӍӋk0;5~g`i>ɮ7ʼnksi1qs ڶ_9ٞ)N8WuHw};$"8聬Sٴ+ja/ׯ]<{svjʛƆڧ+Jb ((dY_-)=Z̔W W6 (l$3TNMQðGXU~?u R6aM|W rfN)xO6T~*SgĶf有=~n~qRF<#Rp}Lc.w܁v̲{ȇ`6]Zal& ֏a7AhOTfVyMNvzm݁`[:o>C:^[oʛN}9V+G7ئ.!Z09̠W/Ҁ5]ˇA]E^SaOVRb馳7/V |b"^^bW (D g؏m <PvW,2a*S/xT7v>#^-_Ou6}D:e3z *Vxyϧ*scHLpV%3/MYȎcs!N@5ӄ^>)`Cp9ًkQ>m=s͊3X~ңHW2x: On+GshUs;«'HiXt2~+(IJ仃2=Q2hK@+<Q?Lk~J%tNbAI<'/ 6 4@Npf,ҕF &XLw{ j˵At*7`%^8x~IKb=DZ_4> stream xXK6W Q-m6n99m1+Z>$z4 p^i ?I<^Eablpjd. ~& Jil|X,.*N+ZbAEE%s+NF*GKՆhRG÷hne>m'p4k.J_|A?7g.EQ/p;( 0M|ߏc}mK>_=w{⸠ "ח])R--z`(5E-~ew]OmqLxGYc` YbABE9H 8*,,ޗ; ąi:nsNZ!տmN4PFUn' w]ڶ`[5!kg ĂO$A}xxW?y9(8,jdLL`(#@ۙ8M\53-_54e BY7 TdÔm'B dŚ#QyD#{b5Y .Kl"In;GPRKf}**1 bD%>]B]-hX*w i-$sF(Fi ~<2hEU-\(u(w]uYNjv&etɚ&w݊2Gv fm˸sj붢w?'U%y.2r Y.HP6I,<z鵰 hm3_[Ɓ( }? ӅkG%E{50>v(A߽UC KP[])+in\`v˸[7h|7@k/w-&H먃νȿ#I2*RtI9м0yÝ$ %@0߰0 FP9zu#v"wv*!h3(!~$j]&@1ނv8R%;zjd:aM».#+1wcj4,[;.-5py:GZ&`*X@y%\ðl(/1ī\e4}Y 9Hf.a0m/}q7L0.t!a7 -etTBv\bߥ$k M2tZ+ekk Plw$5YⳀg;jq5ϝ(qa.,)jy#bPP˧;捞x]s䥁z.Ffmtv&jxu$. ~?ucDendstream endobj 106 0 obj [ 264 0 R 265 0 R 266 0 R ] endobj 107 0 obj << /Filter /FlateDecode /Length 712 >> stream xUKs0+dU##t:q'L-cMe p_0,&1=}?OA}7G1XnNB wdaLX[tcvNzu nPFCw ǟA68v]r ya\\%RX{FNB8˚Ϣ_ϋ}3QOXHO)orf'vy)VP} 1'!.~}ΝF^VI\@)JZ$^gę¼_۝(k-7p 3v\XTmPX+\sQ7b/=9=Aum)]m +v'ʾf:@YԮY/i)Jb]kȇnvѠP0HnW]Nb^\OyIFC-2> SME%1rll:qF¤Y<0~ܕ͂Ѳ=fF'yMݖp7UgJ q@endstream endobj 108 0 obj [ /ICCBased 267 0 R ] endobj 109 0 obj << /BaseFont /Courier-Oblique /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 110 0 obj << /BaseFont /Courier-Bold /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 111 0 obj << /BaseFont /Courier-BoldOblique /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 112 0 obj << /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 113 0 obj << /BaseFont /Helvetica-BoldOblique /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 114 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 115 0 obj << /BaseFont /Times-Italic /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 116 0 obj << /BaseFont /Times-Bold /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 117 0 obj << /BaseFont /Courier /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 118 0 obj << /A 268 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 680.124 154.961 689.124 ] /Subtype /Link /Type /Annot >> endobj 119 0 obj << /A 268 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 534.3 680.124 542.08 689.124 ] /Subtype /Link /Type /Annot >> endobj 120 0 obj << /A 269 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 668.124 148.536 677.124 ] /Subtype /Link /Type /Annot >> endobj 121 0 obj << /A 269 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 537.134 668.124 542.134 677.124 ] /Subtype /Link /Type /Annot >> endobj 122 0 obj << /A 270 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 656.124 205.901 665.124 ] /Subtype /Link /Type /Annot >> endobj 123 0 obj << /A 270 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 536.802 656.124 541.802 665.124 ] /Subtype /Link /Type /Annot >> endobj 124 0 obj << /A 271 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 644.124 202.929 653.124 ] /Subtype /Link /Type /Annot >> endobj 125 0 obj << /A 271 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 536.926 644.124 541.926 653.124 ] /Subtype /Link /Type /Annot >> endobj 126 0 obj << /A 272 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 632.124 187.474 641.124 ] /Subtype /Link /Type /Annot >> endobj 127 0 obj << /A 272 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 537.019 632.124 542.019 641.124 ] /Subtype /Link /Type /Annot >> endobj 128 0 obj << /A 273 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 620.124 146.658 629.124 ] /Subtype /Link /Type /Annot >> endobj 129 0 obj << /A 273 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 537.146 620.124 542.146 629.124 ] /Subtype /Link /Type /Annot >> endobj 130 0 obj << /A 274 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 608.124 183.041 617.124 ] /Subtype /Link /Type /Annot >> endobj 131 0 obj << /A 274 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 537.047 608.124 542.047 617.124 ] /Subtype /Link /Type /Annot >> endobj 132 0 obj << /A 275 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 596.124 172.009 605.124 ] /Subtype /Link /Type /Annot >> endobj 133 0 obj << /A 275 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 537.115 596.124 542.115 605.124 ] /Subtype /Link /Type /Annot >> endobj 134 0 obj << /A 276 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 584.124 194.093 593.124 ] /Subtype /Link /Type /Annot >> endobj 135 0 obj << /A 276 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 536.98 584.124 541.98 593.124 ] /Subtype /Link /Type /Annot >> endobj 136 0 obj << /A 277 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 572.124 209.663 581.124 ] /Subtype /Link /Type /Annot >> endobj 137 0 obj << /A 277 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 536.884 572.124 541.884 581.124 ] /Subtype /Link /Type /Annot >> endobj 138 0 obj << /A 278 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 560.124 255.333 569.124 ] /Subtype /Link /Type /Annot >> endobj 139 0 obj << /A 278 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 536.604 560.124 541.604 569.124 ] /Subtype /Link /Type /Annot >> endobj 140 0 obj << /A 279 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 548.124 294.063 557.124 ] /Subtype /Link /Type /Annot >> endobj 141 0 obj << /A 279 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.338 548.124 541.338 557.124 ] /Subtype /Link /Type /Annot >> endobj 142 0 obj << /A 280 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 536.124 130.045 545.124 ] /Subtype /Link /Type /Annot >> endobj 143 0 obj << /A 280 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.212 536.124 542.212 545.124 ] /Subtype /Link /Type /Annot >> endobj 144 0 obj << /A 281 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 524.124 184.956 533.124 ] /Subtype /Link /Type /Annot >> endobj 145 0 obj << /A 281 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.894 524.124 541.894 533.124 ] /Subtype /Link /Type /Annot >> endobj 146 0 obj << /A 282 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 512.124 189.335 521.124 ] /Subtype /Link /Type /Annot >> endobj 147 0 obj << /A 282 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.868 512.124 541.868 521.124 ] /Subtype /Link /Type /Annot >> endobj 148 0 obj << /A 283 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 500.124 164.008 509.124 ] /Subtype /Link /Type /Annot >> endobj 149 0 obj << /A 283 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.134 500.124 542.134 509.124 ] /Subtype /Link /Type /Annot >> endobj 150 0 obj << /A 284 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 488.124 169.762 497.124 ] /Subtype /Link /Type /Annot >> endobj 151 0 obj << /A 284 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.098 488.124 542.098 497.124 ] /Subtype /Link /Type /Annot >> endobj 152 0 obj << /A 285 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 476.124 174.195 485.124 ] /Subtype /Link /Type /Annot >> endobj 153 0 obj << /A 285 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.072 476.124 542.072 485.124 ] /Subtype /Link /Type /Annot >> endobj 154 0 obj << /A 286 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 464.124 159.023 473.124 ] /Subtype /Link /Type /Annot >> endobj 155 0 obj << /A 286 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.164 464.124 542.164 473.124 ] /Subtype /Link /Type /Annot >> endobj 156 0 obj << /A 287 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 452.124 232.17 461.124 ] /Subtype /Link /Type /Annot >> endobj 157 0 obj << /A 287 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.716 452.124 541.716 461.124 ] /Subtype /Link /Type /Annot >> endobj 158 0 obj << /A 288 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 440.124 233.86 449.124 ] /Subtype /Link /Type /Annot >> endobj 159 0 obj << /A 288 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.706 440.124 541.706 449.124 ] /Subtype /Link /Type /Annot >> endobj 160 0 obj << /A 289 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 428.124 225.016 437.124 ] /Subtype /Link /Type /Annot >> endobj 161 0 obj << /A 289 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.76 428.124 541.76 437.124 ] /Subtype /Link /Type /Annot >> endobj 162 0 obj << /A 290 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 416.124 277.557 425.124 ] /Subtype /Link /Type /Annot >> endobj 163 0 obj << /A 290 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.44 416.124 541.44 425.124 ] /Subtype /Link /Type /Annot >> endobj 164 0 obj << /A 291 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 404.124 190.364 413.124 ] /Subtype /Link /Type /Annot >> endobj 165 0 obj << /A 291 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.972 404.124 541.972 413.124 ] /Subtype /Link /Type /Annot >> endobj 166 0 obj << /A 292 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 392.124 186.331 401.124 ] /Subtype /Link /Type /Annot >> endobj 167 0 obj << /A 292 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.998 392.124 541.998 401.124 ] /Subtype /Link /Type /Annot >> endobj 168 0 obj << /A 293 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 380.124 136.409 389.124 ] /Subtype /Link /Type /Annot >> endobj 169 0 obj << /A 293 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.176 380.124 542.176 389.124 ] /Subtype /Link /Type /Annot >> endobj 170 0 obj << /A 294 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 368.124 244.815 377.124 ] /Subtype /Link /Type /Annot >> endobj 171 0 obj << /A 294 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.64 368.124 541.64 377.124 ] /Subtype /Link /Type /Annot >> endobj 172 0 obj << /A 295 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 356.124 227.215 365.124 ] /Subtype /Link /Type /Annot >> endobj 173 0 obj << /A 295 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.746 356.124 541.746 365.124 ] /Subtype /Link /Type /Annot >> endobj 174 0 obj << /A 296 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 344.124 167.338 353.124 ] /Subtype /Link /Type /Annot >> endobj 175 0 obj << /A 296 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.114 344.124 542.114 353.124 ] /Subtype /Link /Type /Annot >> endobj 176 0 obj << /A 297 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 332.124 214.562 341.124 ] /Subtype /Link /Type /Annot >> endobj 177 0 obj << /A 297 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.824 332.124 541.824 341.124 ] /Subtype /Link /Type /Annot >> endobj 178 0 obj << /A 298 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 320.124 239.324 329.124 ] /Subtype /Link /Type /Annot >> endobj 179 0 obj << /A 298 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.672 320.124 541.672 329.124 ] /Subtype /Link /Type /Annot >> endobj 180 0 obj << /A 299 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 308.124 249.211 317.124 ] /Subtype /Link /Type /Annot >> endobj 181 0 obj << /A 299 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.612 308.124 541.612 317.124 ] /Subtype /Link /Type /Annot >> endobj 182 0 obj << /A 300 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 296.124 181.908 305.124 ] /Subtype /Link /Type /Annot >> endobj 183 0 obj << /A 300 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.024 296.124 542.024 305.124 ] /Subtype /Link /Type /Annot >> endobj 184 0 obj << /A 301 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 284.124 232.703 293.124 ] /Subtype /Link /Type /Annot >> endobj 185 0 obj << /A 301 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.618 284.124 541.618 293.124 ] /Subtype /Link /Type /Annot >> endobj 186 0 obj << /A 302 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 272.124 176.938 281.124 ] /Subtype /Link /Type /Annot >> endobj 187 0 obj << /A 302 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.054 272.124 542.054 281.124 ] /Subtype /Link /Type /Annot >> endobj 188 0 obj << /A 303 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 260.124 216.675 269.124 ] /Subtype /Link /Type /Annot >> endobj 189 0 obj << /A 303 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.812 260.124 541.812 269.124 ] /Subtype /Link /Type /Annot >> endobj 190 0 obj << /A 304 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 120.0 248.124 266.259 257.124 ] /Subtype /Link /Type /Annot >> endobj 191 0 obj << /A 304 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.602 248.124 541.602 257.124 ] /Subtype /Link /Type /Annot >> endobj 192 0 obj << /A 305 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 236.124 248.115 245.124 ] /Subtype /Link /Type /Annot >> endobj 193 0 obj << /A 305 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.62 236.124 541.62 245.124 ] /Subtype /Link /Type /Annot >> endobj 194 0 obj << /A 306 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 224.124 204.549 233.124 ] /Subtype /Link /Type /Annot >> endobj 195 0 obj << /A 306 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.886 224.124 541.886 233.124 ] /Subtype /Link /Type /Annot >> endobj 196 0 obj << /A 307 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 212.124 143.288 221.124 ] /Subtype /Link /Type /Annot >> endobj 197 0 obj << /A 307 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.134 212.124 542.134 221.124 ] /Subtype /Link /Type /Annot >> endobj 198 0 obj << /A 308 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 200.124 193.284 209.124 ] /Subtype /Link /Type /Annot >> endobj 199 0 obj << /A 308 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.846 200.124 541.846 209.124 ] /Subtype /Link /Type /Annot >> endobj 200 0 obj << /A 309 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 188.124 154.828 197.124 ] /Subtype /Link /Type /Annot >> endobj 201 0 obj << /A 309 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.068 188.124 542.068 197.124 ] /Subtype /Link /Type /Annot >> endobj 202 0 obj << /A 310 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 176.124 155.373 185.124 ] /Subtype /Link /Type /Annot >> endobj 203 0 obj << /A 310 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.064 176.124 542.064 185.124 ] /Subtype /Link /Type /Annot >> endobj 204 0 obj << /A 311 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 81.72 657.641 191.15 666.641 ] /Subtype /Link /Type /Annot >> endobj 205 0 obj << /A 312 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 367.94 657.641 483.23 666.641 ] /Subtype /Link /Type /Annot >> endobj 206 0 obj << /A 313 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 248.721 635.641 387.438 644.641 ] /Subtype /Link /Type /Annot >> endobj 207 0 obj << /A 313 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 393.349 635.641 539.999 644.641 ] /Subtype /Link /Type /Annot >> endobj 208 0 obj << /A 313 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 623.641 163.65 632.641 ] /Subtype /Link /Type /Annot >> endobj 209 0 obj << /A 314 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 589.641 141.053 598.641 ] /Subtype /Link /Type /Annot >> endobj 210 0 obj << /A 314 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 146.786 589.641 273.986 598.641 ] /Subtype /Link /Type /Annot >> endobj 211 0 obj << /A 315 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 102.28 552.539 182.84 561.539 ] /Subtype /Link /Type /Annot >> endobj 212 0 obj << /A 316 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 104.49 531.449 188.37 540.449 ] /Subtype /Link /Type /Annot >> endobj 213 0 obj << /A 317 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 184.2 510.359 324.74 519.359 ] /Subtype /Link /Type /Annot >> endobj 214 0 obj << /A 318 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 187.53 489.269 269.75 498.269 ] /Subtype /Link /Type /Annot >> endobj 215 0 obj << /A 319 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 197.68 468.179 351.01 477.179 ] /Subtype /Link /Type /Annot >> endobj 216 0 obj << /A 320 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 110.06 284.909 260.06 293.909 ] /Subtype /Link /Type /Annot >> endobj 217 0 obj << /A 321 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 224.76 263.819 336.43 272.819 ] /Subtype /Link /Type /Annot >> endobj 218 0 obj << /A 322 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 516.1 152.549 540.0 161.549 ] /Subtype /Link /Type /Annot >> endobj 219 0 obj << /A 322 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 140.549 219.75 149.549 ] /Subtype /Link /Type /Annot >> endobj 220 0 obj << /A 323 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 516.1 140.549 540.0 149.549 ] /Subtype /Link /Type /Annot >> endobj 221 0 obj << /A 323 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 128.549 152.54 137.549 ] /Subtype /Link /Type /Annot >> endobj 222 0 obj << /A 277 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 333.717 519.578 484.943 528.578 ] /Subtype /Link /Type /Annot >> endobj 223 0 obj << /A 277 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 484.943 519.578 515.831 528.578 ] /Subtype /Link /Type /Annot >> endobj 224 0 obj << /A 276 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 319.381 163.171 460.719 172.171 ] /Subtype /Link /Type /Annot >> endobj 225 0 obj << /A 276 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 460.719 163.171 494.664 172.171 ] /Subtype /Link /Type /Annot >> endobj 226 0 obj << /A 277 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 329.293 85.499 488.903 94.499 ] /Subtype /Link /Type /Annot >> endobj 227 0 obj << /A 277 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 488.903 85.499 523.981 94.499 ] /Subtype /Link /Type /Annot >> endobj 228 0 obj << /A 280 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 366.92 188.609 456.9 197.609 ] /Subtype /Link /Type /Annot >> endobj 229 0 obj << /A 280 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 456.9 188.609 493.28 197.609 ] /Subtype /Link /Type /Annot >> endobj 230 0 obj << /A 280 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 208.09 637.5 298.07 646.5 ] /Subtype /Link /Type /Annot >> endobj 231 0 obj << /A 280 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 298.07 637.5 334.45 646.5 ] /Subtype /Link /Type /Annot >> endobj 232 0 obj << /A 290 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 160.538 85.505 386.813 94.505 ] /Subtype /Link /Type /Annot >> endobj 233 0 obj << /A 290 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 386.813 85.505 425.379 94.505 ] /Subtype /Link /Type /Annot >> endobj 234 0 obj << /A 293 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 497.962 450.438 539.999 459.438 ] /Subtype /Link /Type /Annot >> endobj 235 0 obj << /A 293 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 438.558 125.9 447.438 ] /Subtype /Link /Type /Annot >> endobj 236 0 obj << /A 293 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 125.9 438.438 163.703 447.438 ] /Subtype /Link /Type /Annot >> endobj 237 0 obj << /A 280 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 295.01 426.438 384.99 435.438 ] /Subtype /Link /Type /Annot >> endobj 238 0 obj << /A 280 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 384.99 426.438 421.37 435.438 ] /Subtype /Link /Type /Annot >> endobj 239 0 obj << /A 296 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 334.947 468.365 448.053 477.365 ] /Subtype /Link /Type /Annot >> endobj 240 0 obj << /A 296 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 448.053 468.365 485.879 477.365 ] /Subtype /Link /Type /Annot >> endobj 241 0 obj << /A 305 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 299.614 431.318 491.36 440.318 ] /Subtype /Link /Type /Annot >> endobj 242 0 obj << /A 305 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 491.36 431.318 528.338 440.318 ] /Subtype /Link /Type /Annot >> endobj 243 0 obj << /A 278 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 378.272 673.5 539.999 682.5 ] /Subtype /Link /Type /Annot >> endobj 244 0 obj << /A 278 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 100.0 661.5 136.11 670.5 ] /Subtype /Link /Type /Annot >> endobj 245 0 obj << /A 278 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 136.11 661.5 167.49 670.5 ] /Subtype /Link /Type /Annot >> endobj 246 0 obj << /A 309 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 429.325 422.206 539.998 431.206 ] /Subtype /Link /Type /Annot >> endobj 247 0 obj << /A 309 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 100.0 410.326 112.5 419.206 ] /Subtype /Link /Type /Annot >> endobj 248 0 obj << /A 309 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 112.5 410.206 151.668 419.206 ] /Subtype /Link /Type /Annot >> endobj 249 0 obj << /A 277 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 116.94 305.47 269.15 314.47 ] /Subtype /Link /Type /Annot >> endobj 250 0 obj << /A 277 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 269.15 305.47 300.53 314.47 ] /Subtype /Link /Type /Annot >> endobj 251 0 obj << /A 275 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 116.94 271.102 232.21 280.102 ] /Subtype /Link /Type /Annot >> endobj 252 0 obj << /A 275 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 232.21 271.102 263.59 280.102 ] /Subtype /Link /Type /Annot >> endobj 253 0 obj << /A 288 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 455.55 248.384 539.998 257.384 ] /Subtype /Link /Type /Annot >> endobj 254 0 obj << /A 288 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 100.0 236.384 188.88 245.384 ] /Subtype /Link /Type /Annot >> endobj 255 0 obj << /A 288 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 188.88 236.384 225.26 245.384 ] /Subtype /Link /Type /Annot >> endobj 256 0 obj << /A 290 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 492.575 213.666 540.002 222.666 ] /Subtype /Link /Type /Annot >> endobj 257 0 obj << /A 290 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 100.0 201.666 268.61 210.666 ] /Subtype /Link /Type /Annot >> endobj 258 0 obj << /A 290 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 268.61 201.666 304.99 210.666 ] /Subtype /Link /Type /Annot >> endobj 259 0 obj << /A 324 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 359.15 295.375 455.27 304.375 ] /Subtype /Link /Type /Annot >> endobj 260 0 obj << /A 324 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 321.485 190.125 417.605 199.125 ] /Subtype /Link /Type /Annot >> endobj 261 0 obj << /A 308 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 405.397 573.15 539.999 582.15 ] /Subtype /Link /Type /Annot >> endobj 262 0 obj << /A 308 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 100.0 561.27 122.78 570.15 ] /Subtype /Link /Type /Annot >> endobj 263 0 obj << /A 308 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 122.78 561.15 159.16 570.15 ] /Subtype /Link /Type /Annot >> endobj 264 0 obj << /A 307 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 455.792 645.641 540.001 654.641 ] /Subtype /Link /Type /Annot >> endobj 265 0 obj << /A 307 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 633.761 94.78 642.641 ] /Subtype /Link /Type /Annot >> endobj 266 0 obj << /A 307 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 94.78 633.641 131.16 642.641 ] /Subtype /Link /Type /Annot >> endobj 267 0 obj << /Filter /FlateDecode /N 3 /Length 2453 >> stream xgPTY{si249IЀ$Hn2-49AD$)8:EEyqpQQYU[[Ϗ:;羺UzȐ ɰ> 3(8p H 0D[oo+k?Q '/s,^IW8=%1{8cq?_e> ʄS+ԮfG[^N/?_zVCte?(.Or}]/t7Y9;Ꙁ嶖z RWN0t8@g ةo9(0-pGo:(H2O:4w7&CɛRTRӬҪ>e dje͜r:fg(fn;=b{y;&w:<+n\www̛||~=ߣ~pڽ{p n~.bE,6)>R)ᕌT4t灎2fYAٻ[(7*=D8zHPQURYR*jڮFfoa#6GZkj k?9ι^Xڱ  YǛ =d,\̜ =uGZuZm/ i޳?\Nk/:2;:;]]Cv[tˉ/_(!,]̺8)[z_ rϧoל]x7dercxA;wZ73l=|ýk]Y?24?`,tL`a7->gM`"00>|W%y2ETӴ/7|jq6wk^k?&,YVwFz矽OxPAɏ?M-~'K KKB. t ]@B. t ]V,r96_6@-Jh 7#edoMDEa&s|.7>s7 endstream endobj 268 0 obj << /D [ 9 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 269 0 obj << /D [ 10 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 270 0 obj << /D [ 11 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 271 0 obj << /D [ 11 0 R /XYZ 72.0 627.192 null ] /S /GoTo /Type /Action >> endobj 272 0 obj << /D [ 11 0 R /XYZ 72.0 127.049 null ] /S /GoTo /Type /Action >> endobj 273 0 obj << /D [ 13 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 274 0 obj << /D [ 13 0 R /XYZ 72.0 669.305 null ] /S /GoTo /Type /Action >> endobj 275 0 obj << /D [ 13 0 R /XYZ 72.0 452.406 null ] /S /GoTo /Type /Action >> endobj 276 0 obj << /D [ 14 0 R /XYZ 72.0 519.752 null ] /S /GoTo /Type /Action >> endobj 277 0 obj << /D [ 15 0 R /XYZ 72.0 152.784 null ] /S /GoTo /Type /Action >> endobj 278 0 obj << /D [ 17 0 R /XYZ 72.0 585.874 null ] /S /GoTo /Type /Action >> endobj 279 0 obj << /D [ 19 0 R /XYZ 72.0 636.0 null ] /S /GoTo /Type /Action >> endobj 280 0 obj << /D [ 21 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 281 0 obj << /D [ 23 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 282 0 obj << /D [ 24 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 283 0 obj << /D [ 24 0 R /XYZ 72.0 690.141 null ] /S /GoTo /Type /Action >> endobj 284 0 obj << /D [ 24 0 R /XYZ 72.0 464.807 null ] /S /GoTo /Type /Action >> endobj 285 0 obj << /D [ 26 0 R /XYZ 72.0 408.138 null ] /S /GoTo /Type /Action >> endobj 286 0 obj << /D [ 27 0 R /XYZ 72.0 187.938 null ] /S /GoTo /Type /Action >> endobj 287 0 obj << /D [ 28 0 R /XYZ 72.0 528.576 null ] /S /GoTo /Type /Action >> endobj 288 0 obj << /D [ 28 0 R /XYZ 72.0 360.619 null ] /S /GoTo /Type /Action >> endobj 289 0 obj << /D [ 28 0 R /XYZ 72.0 264.662 null ] /S /GoTo /Type /Action >> endobj 290 0 obj << /D [ 29 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 291 0 obj << /D [ 29 0 R /XYZ 72.0 518.119 null ] /S /GoTo /Type /Action >> endobj 292 0 obj << /D [ 30 0 R /XYZ 72.0 410.0 null ] /S /GoTo /Type /Action >> endobj 293 0 obj << /D [ 31 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 294 0 obj << /D [ 31 0 R /XYZ 72.0 667.229 null ] /S /GoTo /Type /Action >> endobj 295 0 obj << /D [ 31 0 R /XYZ 72.0 560.872 null ] /S /GoTo /Type /Action >> endobj 296 0 obj << /D [ 31 0 R /XYZ 72.0 340.617 null ] /S /GoTo /Type /Action >> endobj 297 0 obj << /D [ 32 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 298 0 obj << /D [ 32 0 R /XYZ 72.0 393.752 null ] /S /GoTo /Type /Action >> endobj 299 0 obj << /D [ 32 0 R /XYZ 72.0 277.193 null ] /S /GoTo /Type /Action >> endobj 300 0 obj << /D [ 33 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 301 0 obj << /D [ 34 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 302 0 obj << /D [ 34 0 R /XYZ 72.0 626.773 null ] /S /GoTo /Type /Action >> endobj 303 0 obj << /D [ 34 0 R /XYZ 72.0 127.887 null ] /S /GoTo /Type /Action >> endobj 304 0 obj << /D [ 35 0 R /XYZ 72.0 408.866 null ] /S /GoTo /Type /Action >> endobj 305 0 obj << /D [ 35 0 R /XYZ 72.0 197.346 null ] /S /GoTo /Type /Action >> endobj 306 0 obj << /D [ 36 0 R /XYZ 72.0 650.0 null ] /S /GoTo /Type /Action >> endobj 307 0 obj << /D [ 37 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 308 0 obj << /D [ 46 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 309 0 obj << /D [ 47 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 310 0 obj << /D [ 48 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 311 0 obj << /S /URI /URI (http://qpdf.sourceforge.net/) >> endobj 312 0 obj << /S /URI /URI (https://github.com/qpdf/qpdf) >> endobj 313 0 obj << /S /URI /URI (http://www.opensource.org/licenses/artistic-license-2.0.php) >> endobj 314 0 obj << /S /URI /URI (http://www.apexcovantage.com) >> endobj 315 0 obj << /S /URI /URI (http://www.zlib.net/) >> endobj 316 0 obj << /S /URI /URI (http://www.pcre.org/) >> endobj 317 0 obj << /S /URI /URI (http://www.gnu.org/software/make) >> endobj 318 0 obj << /S /URI /URI (http://www.perl.org/) >> endobj 319 0 obj << /S /URI /URI (http://www.gnu.org/software/diffutils/) >> endobj 320 0 obj << /S /URI /URI (http://www.remotesensing.org/libtiff/) >> endobj 321 0 obj << /S /URI /URI (http://www.ghostscript.com) >> endobj 322 0 obj << /S /URI /URI (http://downloads.sourceforge.net/docbook/) >> endobj 323 0 obj << /S /URI /URI (http://xml.apache.org/fop/) >> endobj 324 0 obj << /S /URI /URI (http://delphi.about.com/) >> endobj xref 0 325 0000000000 65535 f 0000000015 00000 n 0000000109 00000 n 0000000239 00000 n 0000001177 00000 n 0000001920 00000 n 0000002271 00000 n 0000002455 00000 n 0000002639 00000 n 0000002838 00000 n 0000003037 00000 n 0000003222 00000 n 0000003422 00000 n 0000003607 00000 n 0000003807 00000 n 0000003992 00000 n 0000004177 00000 n 0000004362 00000 n 0000004562 00000 n 0000004747 00000 n 0000004947 00000 n 0000005132 00000 n 0000005317 00000 n 0000005502 00000 n 0000005687 00000 n 0000005872 00000 n 0000006057 00000 n 0000006242 00000 n 0000006427 00000 n 0000006627 00000 n 0000006827 00000 n 0000007012 00000 n 0000007212 00000 n 0000007397 00000 n 0000007582 00000 n 0000007782 00000 n 0000007967 00000 n 0000008152 00000 n 0000008337 00000 n 0000008522 00000 n 0000008707 00000 n 0000008907 00000 n 0000009107 00000 n 0000009292 00000 n 0000009477 00000 n 0000009679 00000 n 0000009881 00000 n 0000010067 00000 n 0000010253 00000 n 0000010455 00000 n 0000010752 00000 n 0000010975 00000 n 0000011383 00000 n 0000012091 00000 n 0000027423 00000 n 0000027499 00000 n 0000028796 00000 n 0000030441 00000 n 0000030549 00000 n 0000033548 00000 n 0000035068 00000 n 0000035136 00000 n 0000038005 00000 n 0000040717 00000 n 0000042990 00000 n 0000046906 00000 n 0000046942 00000 n 0000049676 00000 n 0000053803 00000 n 0000053839 00000 n 0000056581 00000 n 0000058287 00000 n 0000061710 00000 n 0000062221 00000 n 0000063696 00000 n 0000067537 00000 n 0000072114 00000 n 0000076139 00000 n 0000081261 00000 n 0000081297 00000 n 0000085409 00000 n 0000085469 00000 n 0000088414 00000 n 0000091149 00000 n 0000091185 00000 n 0000094271 00000 n 0000097728 00000 n 0000098772 00000 n 0000098808 00000 n 0000101037 00000 n 0000104237 00000 n 0000105725 00000 n 0000108398 00000 n 0000111759 00000 n 0000114812 00000 n 0000114856 00000 n 0000119116 00000 n 0000119240 00000 n 0000122829 00000 n 0000126094 00000 n 0000129342 00000 n 0000129379 00000 n 0000132307 00000 n 0000132352 00000 n 0000134507 00000 n 0000137254 00000 n 0000138932 00000 n 0000138977 00000 n 0000139762 00000 n 0000139801 00000 n 0000139906 00000 n 0000140008 00000 n 0000140117 00000 n 0000140221 00000 n 0000140332 00000 n 0000140433 00000 n 0000140535 00000 n 0000140635 00000 n 0000140732 00000 n 0000140870 00000 n 0000141008 00000 n 0000141146 00000 n 0000141287 00000 n 0000141425 00000 n 0000141566 00000 n 0000141704 00000 n 0000141845 00000 n 0000141983 00000 n 0000142124 00000 n 0000142262 00000 n 0000142403 00000 n 0000142541 00000 n 0000142682 00000 n 0000142820 00000 n 0000142961 00000 n 0000143099 00000 n 0000143238 00000 n 0000143376 00000 n 0000143517 00000 n 0000143655 00000 n 0000143796 00000 n 0000143934 00000 n 0000144075 00000 n 0000144213 00000 n 0000144354 00000 n 0000144492 00000 n 0000144633 00000 n 0000144771 00000 n 0000144912 00000 n 0000145050 00000 n 0000145191 00000 n 0000145329 00000 n 0000145470 00000 n 0000145608 00000 n 0000145749 00000 n 0000145887 00000 n 0000146028 00000 n 0000146165 00000 n 0000146306 00000 n 0000146443 00000 n 0000146584 00000 n 0000146722 00000 n 0000146861 00000 n 0000146999 00000 n 0000147138 00000 n 0000147276 00000 n 0000147417 00000 n 0000147555 00000 n 0000147696 00000 n 0000147834 00000 n 0000147975 00000 n 0000148113 00000 n 0000148252 00000 n 0000148390 00000 n 0000148531 00000 n 0000148669 00000 n 0000148810 00000 n 0000148948 00000 n 0000149089 00000 n 0000149227 00000 n 0000149368 00000 n 0000149506 00000 n 0000149647 00000 n 0000149785 00000 n 0000149926 00000 n 0000150064 00000 n 0000150205 00000 n 0000150343 00000 n 0000150484 00000 n 0000150622 00000 n 0000150763 00000 n 0000150902 00000 n 0000151043 00000 n 0000151181 00000 n 0000151320 00000 n 0000151458 00000 n 0000151599 00000 n 0000151737 00000 n 0000151878 00000 n 0000152016 00000 n 0000152157 00000 n 0000152295 00000 n 0000152436 00000 n 0000152574 00000 n 0000152715 00000 n 0000152853 00000 n 0000152992 00000 n 0000153133 00000 n 0000153274 00000 n 0000153411 00000 n 0000153549 00000 n 0000153690 00000 n 0000153829 00000 n 0000153968 00000 n 0000154106 00000 n 0000154245 00000 n 0000154384 00000 n 0000154523 00000 n 0000154662 00000 n 0000154799 00000 n 0000154936 00000 n 0000155073 00000 n 0000155210 00000 n 0000155351 00000 n 0000155492 00000 n 0000155633 00000 n 0000155774 00000 n 0000155913 00000 n 0000156052 00000 n 0000156190 00000 n 0000156328 00000 n 0000156463 00000 n 0000156598 00000 n 0000156737 00000 n 0000156876 00000 n 0000157017 00000 n 0000157153 00000 n 0000157292 00000 n 0000157431 00000 n 0000157570 00000 n 0000157711 00000 n 0000157852 00000 n 0000157992 00000 n 0000158132 00000 n 0000158269 00000 n 0000158403 00000 n 0000158538 00000 n 0000158679 00000 n 0000158816 00000 n 0000158955 00000 n 0000159092 00000 n 0000159229 00000 n 0000159368 00000 n 0000159507 00000 n 0000159647 00000 n 0000159785 00000 n 0000159924 00000 n 0000160065 00000 n 0000160203 00000 n 0000160342 00000 n 0000160481 00000 n 0000160622 00000 n 0000160761 00000 n 0000160897 00000 n 0000161034 00000 n 0000161175 00000 n 0000161311 00000 n 0000161449 00000 n 0000163981 00000 n 0000164061 00000 n 0000164142 00000 n 0000164223 00000 n 0000164306 00000 n 0000164389 00000 n 0000164470 00000 n 0000164553 00000 n 0000164636 00000 n 0000164719 00000 n 0000164802 00000 n 0000164885 00000 n 0000164966 00000 n 0000165047 00000 n 0000165128 00000 n 0000165209 00000 n 0000165292 00000 n 0000165375 00000 n 0000165458 00000 n 0000165541 00000 n 0000165624 00000 n 0000165707 00000 n 0000165790 00000 n 0000165871 00000 n 0000165954 00000 n 0000166035 00000 n 0000166116 00000 n 0000166199 00000 n 0000166282 00000 n 0000166365 00000 n 0000166446 00000 n 0000166529 00000 n 0000166612 00000 n 0000166693 00000 n 0000166774 00000 n 0000166857 00000 n 0000166940 00000 n 0000167023 00000 n 0000167106 00000 n 0000167187 00000 n 0000167268 00000 n 0000167349 00000 n 0000167430 00000 n 0000167511 00000 n 0000167578 00000 n 0000167645 00000 n 0000167743 00000 n 0000167810 00000 n 0000167869 00000 n 0000167928 00000 n 0000167999 00000 n 0000168058 00000 n 0000168135 00000 n 0000168211 00000 n 0000168276 00000 n 0000168356 00000 n 0000168421 00000 n trailer << /Info 2 0 R /Root 1 0 R /Size 325 /ID [<9b1c69409fc9a5f50e44b9588e3e60f8><47e08688d23013c99057cfe5d79bca32>] >> startxref 168484 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/page_api_1.pdf0000644000064100006410000001171413247541377016256 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /Pages 3 0 R /Type /Catalog >> endobj 2 0 obj << /CreationDate (D:20120621111522) /Producer (Apex PDFWriter) >> endobj 3 0 obj << /Count 10 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R ] /Type /Pages >> endobj %% Page 1 4 0 obj << /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Page 2 5 0 obj << /Contents 17 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Page 3 6 0 obj << /Contents 19 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Page 4 7 0 obj << /Contents 21 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Page 5 8 0 obj << /Contents 23 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Page 6 9 0 obj << /Contents 25 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Page 7 10 0 obj << /Contents 27 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Page 8 11 0 obj << /Contents 29 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Page 9 12 0 obj << /Contents 31 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Page 10 13 0 obj << /Contents 33 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Contents for page 1 14 0 obj << /Length 15 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 0) Tj ET endstream endobj 15 0 obj 47 endobj 16 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj %% Contents for page 2 17 0 obj << /Length 18 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 1) Tj ET endstream endobj 18 0 obj 47 endobj %% Contents for page 3 19 0 obj << /Length 20 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 2) Tj ET endstream endobj 20 0 obj 47 endobj %% Contents for page 4 21 0 obj << /Length 22 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 3) Tj ET endstream endobj 22 0 obj 47 endobj %% Contents for page 5 23 0 obj << /Length 24 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 4) Tj ET endstream endobj 24 0 obj 47 endobj %% Contents for page 6 25 0 obj << /Length 26 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 5) Tj ET endstream endobj 26 0 obj 47 endobj %% Contents for page 7 27 0 obj << /Length 28 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 6) Tj ET endstream endobj 28 0 obj 47 endobj %% Contents for page 8 29 0 obj << /Length 30 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 7) Tj ET endstream endobj 30 0 obj 47 endobj %% Contents for page 9 31 0 obj << /Length 32 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 8) Tj ET endstream endobj 32 0 obj 47 endobj %% Contents for page 10 33 0 obj << /Length 34 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 9) Tj ET endstream endobj 34 0 obj 47 endobj xref 0 35 0000000000 65535 f 0000000025 00000 n 0000000079 00000 n 0000000165 00000 n 0000000342 00000 n 0000000571 00000 n 0000000800 00000 n 0000001029 00000 n 0000001258 00000 n 0000001487 00000 n 0000001716 00000 n 0000001946 00000 n 0000002176 00000 n 0000002407 00000 n 0000002650 00000 n 0000002754 00000 n 0000002774 00000 n 0000002906 00000 n 0000003010 00000 n 0000003053 00000 n 0000003157 00000 n 0000003200 00000 n 0000003304 00000 n 0000003347 00000 n 0000003451 00000 n 0000003494 00000 n 0000003598 00000 n 0000003641 00000 n 0000003745 00000 n 0000003788 00000 n 0000003892 00000 n 0000003935 00000 n 0000004039 00000 n 0000004083 00000 n 0000004187 00000 n trailer << /Info 2 0 R /Root 1 0 R /Size 35 /ID [<21f7a6fb083dab8e29743918a08bfa31><21f7a6fb083dab8e29743918a08bfa31>] >> startxref 4207 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/diff-ignore-ID-version0000755000064100006410000000027713247541377017674 0ustar ejbejb#!/bin/sh lines=$(expr 0 + $(diff "$1" "$2" | egrep '^[<>]' | \ egrep -v '/ID' | egrep -v '%PDF-' | wc -l)) if [ "$lines" = "0" ]; then echo okay else diff -a -U 0 "$1" "$2" fi qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.10.c-check0000644000064100006410000000040613247541377017767 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 1 user password: extract for accessibility: 1 extract for any purpose: 1 print low resolution: 1 print high resolution: 1 modify document assembly: 1 modify forms: 1 modify annotations: 1 modify other: 1 modify anything: 1 qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.8-ogen.c-check0000644000064100006410000000005013247541377020323 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/test4-3.pdf0000644000064100006410000000210313247541377015464 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 7 0 obj [ /PDF /Text ] endobj 8 0 obj << % loop /A [ 1 2 9 0 R ] >> endobj 9 0 obj [ 4 5 8 0 R ] endobj xref 0 10 0000000000 65535 f 0000000025 00000 n 0000000079 00000 n 0000000161 00000 n 0000000376 00000 n 0000000475 00000 n 0000000494 00000 n 0000000612 00000 n 0000000647 00000 n 0000000699 00000 n trailer << /Root 1 0 R /Size 10 /QTest 8 0 R /ID [] >> startxref 730 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.5-ogen.check0000644000064100006410000000026213247541377020105 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/extensions-none-min-1.7.1.out0000644000064100006410000000014313247541377020700 0ustar ejbejbversion: 1.7 extension level: 1 << /ADBE << /BaseVersion /1.7 /ExtensionLevel 1 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/enc-XI-R6,V5,U=attachment,encrypted-attachments.pdf0000644000064100006410000004271413247541377025006 0ustar ejbejb%PDF-1.7 % 83 0 obj <> endobj 89 0 obj <>/Encrypt 84 0 R/Filter/FlateDecode/ID[<7F25422CE0BDE941BB4347FD74E2B041><577C9CA541D94C45925D9251F4828076>]/Index[83 13]/Info 82 0 R/Length 50/Prev 17523/Root 85 0 R/Size 96/Type/XRef/W[1 2 1]>>stream hbbd``b`Z"d@D`qYlķd&F 1Ft?c endstream endobj startxref 0 %%EOF 95 0 obj <
>stream hb```b````d``ŀ\@1F DLခ #6ꁘI330$0p B[30O@2i x>_8 \m|a1@Eu endstream endobj 84 0 obj <>>>/EFF/StdCF/EncryptMetadata false/Filter/Standard/Length 256/O(rj/}æEN.P0ĤmJ_\nC)/OE(9S\rFH#fնq-Rd9)/P -1028/Perms(OО@π)/R 6/StmF/Identity/StrF/Identity/U(SG/mA ,gBb0b巋7SX2`~:paL%$u)/UE(R eZri #m)/V 5>> endobj 85 0 obj <>>>/Metadata 62 0 R/Names 90 0 R/Outlines 66 0 R/PageLabels<>2<>7<>9<>11<>12<>15<>19<>20<>22<>23<
>29<>]>>/PageMode/UseAttachments/Pages 78 0 R/Type/Catalog>> endobj 86 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 87 0 obj <>stream h޴Ur0 E q$R´YBEl P#$%2MW#&MNg-={w!x}C|8q?@,JY;J|M?5UW؏&jMV:!3}F8nVFR`$I4NSŤ8 [@`߁p@j+1KFZ qc.bWU cs#I</2Cb4ф;xրqh"CŰ14MA#'0T- VDK 䡦]K0ݎgэHF!hed%FdBY50RFQ4LJj)xP LP6f: ڦV9d߈2&ő'Ũ8`[Rm.hv;Q!zR. ³ҭǾb]Mh97@r|YܜP>stream BT /F1 24 Tf 72 720 Td (Potato 0) Tj ET endstream endobj 1 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 2 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 3 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 4 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 5 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 6 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 7 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 8 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 9 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 10 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 11 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 12 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 13 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 14 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 15 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 16 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 17 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 18 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 19 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 20 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 21 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 22 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 23 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 24 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 25 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 26 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 27 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 28 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 29 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 30 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 31 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 32 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 33 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 34 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 35 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 36 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 37 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 38 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 39 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 40 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 41 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 42 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 43 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 44 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 45 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 46 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 47 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 48 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 49 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 50 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 51 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 52 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 53 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 54 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 55 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 56 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 57 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 58 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 59 0 obj <>stream hޔj0~LJd0PZJPچY'؞t $Ȇ wяg'&wf0\qrb1Y̬ф2$tac05ffiMS|7&y§28sͥOo/s B~L| CWj2+ɬozv6ޒA'83>JL,=6\L>null]/Filter[/Crypt/FlateDecode]/Length 64/Params<>/Subtype/text#2Fplain>>stream NEpEAq=J#?}+-Wh5!0n "|Y1Be}P endstream endobj 61 0 obj <>null]/Filter[/Crypt/FlateDecode]/Length 2624/Params<>/Subtype/image#2Fx-png>>stream #,G>#_0@pI'b\e, SGTzxfH  ~]/޹_w%9?!٠*\Q5JzЖ3PfՇ47rJ)1#WܙKIPsk`EnbͫEcۯ_zȕg Y"O\ƛ#<8j{KgL[o}tPjCɻ)+m@Zˌi>ubK Q$[b(۪] f]w).Wd $mMfR3:5F At\G0y mB I/0SrB똞&BiA[#}k? A|a繭!V7=X=ȋ٬"[JD;F \ṋ+k1)0e'QiG4~8*cÉJF 9P3=G]?ofKh(w޲08ItDq>?|Wҗbbθzpsۓ*[]bҭךpc]&gnv 2E؁78kw ;X5z Gh# B jJ\$N*g}h mR^$ĎR:4j\ŵgs==dpT(d⟩&F͑M񧚑v"nc[Tàhz\rBëNQpݥZim,3_gtJ /W:O pboa?IUL]ŀj4=v/ XJ \,10ÏD<O@XA'qF Ț]GQk{O1Ʉ,dzTn ۀ،*cL[rt#7u?  lsEThE-(H 2n'dnbI>KI1pkGFm:@.h떀؊W{8)4*%seF}n T8O;p<ya v Sҩr Y N$8m'?p23K/Uџ#ͅu p4Ϭ~JQ\nPqd00G'e܃ vi/NNl; с aY PT+/> NZ8 pR}4_~2<^]2;cҹv%*틠E}~j5{`XBعH.ԯ|yQRwKn¸;5,53i7V'2:l^Î։|5 H@*Yzfv&hmf r#ZiPH; !MI-zE>nݥWKh/aJ_yV9*+oݸ((nxdq/P)W\DӣzrqˆH.'Gq\HՔ۱1zY;D><ރcAI#fJnYdm)CsM𾹝FJ+{}Hׇ'Lj(-19ϧ%Eҭxa dJ "l0!԰EMϋgJċ7z@H"6El.xWK53 [2 !/>A=Stz:O|$ -Z)G[nLcsyi:7D~{/|\N%|&(#Xyy\viP1j4?7Vnc"K37l@Yp!jn>-P=;6JƵN}*;R endstream endobj 62 0 obj <>stream 2012-12-29T17:33:38-05:00 2012-12-29T16:49:10-05:00 2012-12-29T17:33:38-05:00 application/pdf uuid:e2f4c09b-cfcf-4d3e-b4f4-2d5eba7e6962 uuid:4396bc5d-e335-48f9-99ff-f8f69f69b0c9 endstream endobj 63 0 obj <>stream h|OK0|^ߒEE=B B"/<9$uԓݒT\OJZrtoi7K&kڻMO$jcDH "A$@ Dh b@ \# SLޗO}sLȎlf-e'XWr[Qy/'[jj]=Poc e=Ц6xχ&,|-.5bZ_~k}Je} endstream endobj 64 0 obj <>stream h޲0R0Pw.JM,sI,Ip22042424434450U70POAW`nlllS`g`80 endstream endobj 65 0 obj <>/Encrypt 84 0 R/Filter/FlateDecode/ID[<7F25422CE0BDE941BB4347FD74E2B041><577C9CA541D94C45925D9251F4828076>]/Info 82 0 R/Length 75/Root 85 0 R/Size 83/Type/XRef/W[1 2 1]>>stream hbb&FB&@!0kb-$8YL) Hp NlX ='@"Xb10W# endstream endobj startxref 116 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.3.c-check0000644000064100006410000000005013247541377017345 0ustar ejbejbversion: 1.3 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.9.check0000644000064100006410000000025613247541377017502 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/11-pages.pdf0000644000064100006410000001004013247541377015576 0ustar ejbejb%PDF-1.4 % 1 0 obj << /Pages 3 0 R /Type /Catalog >> endobj 2 0 obj << /CreationDate (D:20120721200217) /Producer (Apex PDFWriter) >> endobj 3 0 obj << /Count 11 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R ] /Type /Pages >> endobj 4 0 obj << /Contents 15 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 5 0 obj << /Contents 17 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 6 0 obj << /Contents 18 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 7 0 obj << /Contents 19 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 8 0 obj << /Contents 20 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 9 0 obj << /Contents 21 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 10 0 obj << /Contents 22 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 11 0 obj << /Contents 23 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 12 0 obj << /Contents 24 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 13 0 obj << /Contents 25 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 14 0 obj << /Contents 26 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 15 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TCM,. ,endstream endobj 16 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 17 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼T#M,. -endstream endobj 18 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TcM,. .endstream endobj 19 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TM,.) /endstream endobj 20 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TSM,.2 0endstream endobj 21 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼T3M,.; 1endstream endobj 22 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TsM,.D 2endstream endobj 23 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼T M,.M 3endstream endobj 24 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TKM,.V 4endstream endobj 25 0 obj << /Filter /FlateDecode /Length 54 >> stream xs Qw3T04UIS07" ̼TCM,." \endstream endobj 26 0 obj << /Filter /FlateDecode /Length 54 >> stream xs Qw3T04UIS07" ̼TCCM,.") ]endstream endobj xref 0 27 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000145 00000 n 0000000270 00000 n 0000000424 00000 n 0000000578 00000 n 0000000732 00000 n 0000000886 00000 n 0000001040 00000 n 0000001194 00000 n 0000001349 00000 n 0000001504 00000 n 0000001659 00000 n 0000001814 00000 n 0000001969 00000 n 0000002093 00000 n 0000002193 00000 n 0000002317 00000 n 0000002441 00000 n 0000002565 00000 n 0000002689 00000 n 0000002813 00000 n 0000002937 00000 n 0000003061 00000 n 0000003185 00000 n 0000003310 00000 n trailer << /Info 2 0 R /Root 1 0 R /Size 27 /ID [] >> startxref 3435 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad7.out0000644000064100006410000000006313247541377015137 0ustar ejbejbbad7.pdf (offset 698): expected trailer dictionary qpdf-8.0.2/qpdf/qtest/qpdf/p1-a-p2-a.pdf0000644000064100006410000000251613247541377015564 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 2 /Kids [ 3 0 R 4 0 R ] /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 7 0 R >> /ProcSet 8 0 R >> /Type /Page >> endobj %% Page 2 4 0 obj << /Contents 9 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 7 0 R >> /ProcSet 8 0 R >> /Type /Page >> endobj %% Contents for page 1 5 0 obj << /Length 6 0 R >> stream BT /F1 24 Tf 72 720 Td (A) Tj ET endstream endobj 6 0 obj 39 endobj 7 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 8 0 obj [ /PDF /Text ] endobj %% Contents for page 2 9 0 obj << /Length 10 0 R >> stream BT /F1 24 Tf 72 720 Td (A) Tj ET endstream endobj 10 0 obj 39 endobj xref 0 11 0000000000 65535 f 0000000025 00000 n 0000000079 00000 n 0000000171 00000 n 0000000373 00000 n 0000000588 00000 n 0000000682 00000 n 0000000701 00000 n 0000000819 00000 n 0000000877 00000 n 0000000972 00000 n trailer << /Root 1 0 R /Size 11 /ID [<36b07232d7657658c548006151d4c57c><6de1f48ca16def200b3b655a24fa1b48>] >> startxref 992 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.2.check0000644000064100006410000000026213247541377017470 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.4.c-check0000644000064100006410000000005013247541377017667 0ustar ejbejbversion: 1.2 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.8.c-check0000644000064100006410000000005013247541377017352 0ustar ejbejbversion: 1.3 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/issue-51.out0000644000064100006410000000150413247541377015676 0ustar ejbejbWARNING: issue-51.pdf: can't find PDF header WARNING: issue-51.pdf: reported number of objects (0) inconsistent with actual number of objects (9) WARNING: issue-51.pdf (object 7 0, offset 553): expected endobj WARNING: issue-51.pdf (object 1 0, offset 359): expected endobj WARNING: issue-51.pdf (offset 70): loop detected resolving object 2 0 WARNING: issue-51.pdf (object 2 0, offset 26): /Length key in stream dictionary is not an integer WARNING: issue-51.pdf (object 2 0, offset 71): attempting to recover stream length WARNING: issue-51.pdf (object 2 0, offset 71): unable to recover stream data; treating stream as empty WARNING: issue-51.pdf (object 2 0, offset 977): expected endobj WARNING: issue-51.pdf (object 2 0, offset 977): EOF after endobj qpdf: operation succeeded with warnings; resulting file may have some problems qpdf-8.0.2/qpdf/qtest/qpdf/tokens-no-ignorable.out0000644000064100006410000005336513247541377020214 0ustar ejbejb--- BEGIN FILE --- 60: integer: 1 62: integer: 0 64: word: obj 68: dict_open: << 73: name: /Type 79: name: /ObjStm 89: name: /Length 97: integer: 6020 104: name: /N 107: integer: 35 112: name: /First 119: integer: 323 123: dict_close: >> 126: word: stream skipping to endstream 6153: word: endstream 6163: word: endobj 6222: integer: 37 6225: integer: 0 6227: word: obj 6231: dict_open: << 6236: name: /Length 6244: integer: 38 6247: integer: 0 6249: word: R 6251: dict_close: >> 6254: word: stream skipping to endstream 6305: word: endstream 6315: word: endobj 6323: integer: 38 6326: integer: 0 6328: word: obj 6332: integer: 44 6335: word: endobj 6394: integer: 39 6397: integer: 0 6399: word: obj 6403: dict_open: << 6408: name: /Length 6416: integer: 40 6419: integer: 0 6421: word: R 6423: dict_close: >> 6426: word: stream skipping to endstream 6832: word: endstream 6842: word: endobj 6850: integer: 40 6853: integer: 0 6855: word: obj 6859: integer: 399 6863: word: endobj 6922: integer: 41 6925: integer: 0 6927: word: obj 6931: dict_open: << 6936: name: /Length 6944: integer: 42 6947: integer: 0 6949: word: R 6951: dict_close: >> 6954: word: stream skipping to endstream 7001: word: endstream 7011: word: endobj 7019: integer: 42 7022: integer: 0 7024: word: obj 7028: integer: 40 7031: word: endobj 7090: integer: 43 7093: integer: 0 7095: word: obj 7099: dict_open: << 7104: name: /Length 7112: integer: 44 7115: integer: 0 7117: word: R 7119: dict_close: >> 7122: word: stream skipping to endstream 7404: word: endstream 7414: word: endobj 7422: integer: 44 7425: integer: 0 7427: word: obj 7431: integer: 275 7435: word: endobj 7494: integer: 45 7497: integer: 0 7499: word: obj 7503: dict_open: << 7508: name: /Length 7516: integer: 46 7519: integer: 0 7521: word: R 7523: dict_close: >> 7526: word: stream skipping to endstream 7601: word: endstream 7611: word: endobj 7640: integer: 46 7643: integer: 0 7645: word: obj 7649: integer: 67 7652: word: endobj 7711: integer: 47 7714: integer: 0 7716: word: obj 7720: dict_open: << 7725: name: /Length 7733: integer: 48 7736: integer: 0 7738: word: R 7740: dict_close: >> 7743: word: stream skipping to endstream 7794: word: endstream 7804: word: endobj 7812: integer: 48 7815: integer: 0 7817: word: obj 7821: integer: 44 7824: word: endobj 7883: integer: 49 7886: integer: 0 7888: word: obj 7892: dict_open: << 7897: name: /Length 7905: integer: 50 7908: integer: 0 7910: word: R 7912: dict_close: >> 7915: word: stream skipping to endstream 8241: word: endstream 8251: word: endobj 8280: integer: 50 8283: integer: 0 8285: word: obj 8289: integer: 318 8293: word: endobj 8352: integer: 51 8355: integer: 0 8357: word: obj 8361: dict_open: << 8366: name: /Length 8374: integer: 52 8377: integer: 0 8379: word: R 8381: dict_close: >> 8384: word: stream skipping to endstream 8435: word: endstream 8445: word: endobj 8453: integer: 52 8456: integer: 0 8458: word: obj 8462: integer: 44 8465: word: endobj 8524: integer: 53 8527: integer: 0 8529: word: obj 8533: dict_open: << 8538: name: /Length 8546: integer: 54 8549: integer: 0 8551: word: R 8553: dict_close: >> 8556: word: stream skipping to endstream 8607: word: endstream 8617: word: endobj 8625: integer: 54 8628: integer: 0 8630: word: obj 8634: integer: 44 8637: word: endobj 8697: integer: 55 8700: integer: 0 8702: word: obj 8706: dict_open: << 8711: name: /Length 8719: integer: 56 8722: integer: 0 8724: word: R 8726: dict_close: >> 8729: word: stream skipping to endstream 8780: word: endstream 8790: word: endobj 8798: integer: 56 8801: integer: 0 8803: word: obj 8807: integer: 44 8810: word: endobj 8870: integer: 57 8873: integer: 0 8875: word: obj 8879: dict_open: << 8884: name: /Length 8892: integer: 58 8895: integer: 0 8897: word: R 8899: dict_close: >> 8902: word: stream skipping to endstream 8953: word: endstream 8963: word: endobj 8971: integer: 58 8974: integer: 0 8976: word: obj 8980: integer: 44 8983: word: endobj 8991: integer: 59 8994: integer: 0 8996: word: obj 9000: dict_open: << 9005: name: /Type 9011: name: /XRef 9019: name: /Length 9027: integer: 240 9033: name: /W 9036: array_open: [ 9038: integer: 1 9040: integer: 2 9042: integer: 1 9044: array_close: ] 9048: name: /Root 9054: integer: 2 9056: integer: 0 9058: word: R 9062: name: /Size 9068: integer: 60 9073: name: /ID 9077: array_open: [ 9078: string: \x88\x04\x8e\x17\xc9a\xe0\x94\xff\xec\xe9\x8c\xb8\x8cF\xd0 (raw: <88048e17c961e094ffece98cb88c46d0>) 9112: string: \xed\xd6\x0f\xe8\xee\x87\xf8\x871\xa8o\x81\x9f\xe6Q\x99 (raw: ) 9146: array_close: ] 9148: dict_close: >> 9151: word: stream skipping to endstream 9399: word: endstream 9409: word: endobj 9417: word: startxref 9427: integer: 8991 9438: eof --- END FILE --- --- BEGIN PAGE 1 --- 0: word: BT 5: name: /F1 9: integer: 24 12: word: Tf 17: integer: 72 20: integer: 720 24: word: Td 29: string: Potato (raw: (Potato)) 38: word: Tj 41: word: ET 44: eof --- END PAGE 1 --- --- BEGIN PAGE 2 --- 0: word: BT 5: name: /F1 9: integer: 24 12: word: Tf 17: integer: 72 20: integer: 720 24: word: Td 29: string: Potato (raw: (Potato)) 38: word: Tj 41: word: ET 44: word: BI 47: name: /CS 51: name: /G 53: name: /W 56: integer: 66 58: name: /H 61: integer: 47 63: name: /BPC 68: integer: 8 69: name: /F 71: name: /Fl 74: name: /DP 77: dict_open: << 79: name: /Predictor 90: integer: 15 92: name: /Columns 101: integer: 66 103: dict_close: >> 106: word: ID 108: inline-image: x\x9c\xc5\xd6I\x0e\xc3 \x0c\x05P|\xffC;U\xc8`\xc0\xd37\x91Z\xa9\x0b\xa6\x17\x02\xc4\x98\xda\xe6\x8f\x1b}D\xf0\xef_\xb4\xf8\x1c\xc9W\xa9\x84\x9c\xc4-\x94\x88>\xff\x87\xc0\x8d>\x94^\x01&\xae\xa1u\xe2]\x80"!\x87\x95\x08\x96\x05*\xac&\x8fE|Sy\xae \xf0d-\x80<\x9d\x19B\x010B\x05\xfa@N\x11\xea+<\x1fhl\xe8K\xd0\xee/56L\xa0\x89\x90\xe3\x19\x1e \xa3\x96\xb9\xa6>0\x06>\x15Y\x81\xf9!c\xec\\x0eY\x0c\xd8\x0f%Y\xf0\x01\xa5\xd68?&\xa0\xd6\xeb\x88}j\x92\xfb\xe8\x1d;\xab\x8d3\x9d\xc2\xd6l\x14p\xdbsH\xf6\xfbt\xfa\x01Q\x02\xd8Tt*h\xccU\xfa\xe3w\x07\xcd\xd5\xd0%\xa8)p\x96\xb3"\x95DiRj\xb9\x96D\x18YNU\x11\xd3\xd9Av\x92F\xe0&\x0d\x90\xcd\xd4u#c\x95\xc6W\x09\xf4\xdf\x89\x03W\x93O\x0d\x0aEI\x0a 355: word: BT 360: name: /F1 364: integer: 24 367: word: Tf 372: integer: 72 375: integer: 720 379: word: Td 384: string: Potato (raw: (Potato)) 393: word: Tj 396: word: ET 399: eof --- END PAGE 2 --- --- BEGIN PAGE 3 --- 0: word: BT 5: name: /F1 9: integer: 24 12: word: Tf 17: integer: 72 20: integer: 720 24: word: Td 29: bad: (Potato\x0aET\x0a (EOF while reading token) 40: eof --- END PAGE 3 --- --- BEGIN PAGE 4 --- 0: word: BT 5: name: /F1 9: integer: 24 12: word: Tf 17: string: \xfe\xeb (raw: ) 26: string: \xab\xcd (raw: ) 36: string: quack (raw: (qu\\x0d\x0aack)) 49: string: quack (raw: (qu\\x0aack)) 61: string: quack (raw: (qu\\x0dack)) 73: integer: 72 76: integer: 720 80: word: Td 85: real: 3.14 92: real: 3. 97: real: .14 103: real: +3.14 111: real: +3. 117: real: +.14 124: real: -3.14 132: real: -3. 138: real: -.14 145: integer: +16059 154: integer: -16059 163: word: +. 168: bad: (unexpected >) 179: word: quack 185: bad: /name#oops (invalid name token) 196: name: /name (raw: /n#61me) 204: word: one 208: bool: true 213: word: two 217: bool: false 223: word: three 229: null: null 234: word: four 239: word: !@#$^& 245: brace_open: { 246: brace_close: } 247: word: *-_+= 253: word: abc123def3.14true 271: bad: > 70: word: ID 72: inline-image: x\x9c\xc5\xd6I\x0e\xc3 \x0c\x05P|\xffC;U\xc8`\xc0\xd37\x91Z\xa9\x0b\xa6\x17\x02\xc4\x98\xda\xe6\x8f\x1b}D\xf0\xef_\xb4\xf8\x1c\xc9W\xa9\x84\x9c\xc4-\x94\x88>\xff\x87\xc0\x8d>\x94^\x01&\xae\xa1u\xe2]\x80"!\x87\x95\x08\x96\x05*\xac&\x8fE|Sy\xae \xf0d-\x80<\x9d\x19B\x010B\x05\xfa@N\x11\xea+<\x1fhl\xe8K\xd0\xee/56L\xa0\x89\x90\xe3\x19\x1e \xa3\x96\xb9\xa6>0\x06>\x15Y\x81\xf9!c\xec\\x0eY\x0c\xd8\x0f%Y\xf0\x01\xa5\xd68?&\xa0\xd6\xeb\x88}j\x92\xfb\xe8\x1d;\xab\x8d3\x9d\xc2\xd6l\x14p\xdbsH\xf6\xfbt\xfa\x01Q\x02\xd8Tt*h\xccU\xfa\xe3w\x07\xcd\xd5\xd0%\xa8)p\x96\xb3"\x95DiRj\xb9\x96D\x18YNU\x11\xd3\xd9Av\x92F\xe0&\x0d\x90\xcd\xd4u#c\x95\xc6W\x09\xf4\xdf\x89\x03W\x93O\x0d\x0aEI 318: eof --- END PAGE 7 --- --- BEGIN PAGE 8 --- 0: word: BT 5: name: /F1 9: integer: 24 12: word: Tf 17: integer: 72 20: integer: 720 24: word: Td 29: string: Potato (raw: (Potato)) 38: word: Tj 41: word: ET 44: eof --- END PAGE 8 --- --- BEGIN PAGE 9 --- 0: word: BT 5: name: /F1 9: integer: 24 12: word: Tf 17: integer: 72 20: integer: 720 24: word: Td 29: string: Potato (raw: (Potato)) 38: word: Tj 41: word: ET 44: eof --- END PAGE 9 --- --- BEGIN PAGE 10 --- 0: word: BT 5: name: /F1 9: integer: 24 12: word: Tf 17: integer: 72 20: integer: 720 24: word: Td 29: string: Potato (raw: (Potato)) 38: word: Tj 41: word: ET 44: eof --- END PAGE 10 --- --- BEGIN PAGE 11 --- 0: word: BT 5: name: /F1 9: integer: 24 12: word: Tf 17: integer: 72 20: integer: 720 24: word: Td 29: string: Potato (raw: (Potato)) 38: word: Tj 41: word: ET 44: eof --- END PAGE 11 --- --- BEGIN OBJECT STREAM 1 --- 0: integer: 2 2: integer: 0 4: integer: 3 6: integer: 97 9: integer: 4 11: integer: 318 15: integer: 5 17: integer: 566 21: integer: 6 23: integer: 814 27: integer: 7 29: integer: 1062 34: integer: 8 36: integer: 1310 41: integer: 9 43: integer: 1558 48: integer: 10 51: integer: 1808 56: integer: 11 59: integer: 2058 64: integer: 12 67: integer: 2309 72: integer: 13 75: integer: 2560 80: integer: 14 83: integer: 2812 88: integer: 15 91: integer: 3064 96: integer: 16 99: integer: 3228 104: integer: 17 107: integer: 3309 112: integer: 18 115: integer: 3473 120: integer: 19 123: integer: 3554 128: integer: 20 131: integer: 3718 136: integer: 21 139: integer: 3799 144: integer: 22 147: integer: 3963 152: integer: 23 155: integer: 4044 160: integer: 24 163: integer: 4208 168: integer: 25 171: integer: 4289 176: integer: 26 179: integer: 4453 184: integer: 27 187: integer: 4534 192: integer: 28 195: integer: 4698 200: integer: 29 203: integer: 4779 208: integer: 30 211: integer: 4943 216: integer: 31 219: integer: 5024 224: integer: 32 227: integer: 5188 232: integer: 33 235: integer: 5269 240: integer: 34 243: integer: 5433 248: integer: 35 251: integer: 5514 256: integer: 36 259: integer: 5678 323: dict_open: << 328: name: /Pages 335: integer: 3 337: integer: 0 339: word: R 343: name: /Type 349: name: /Catalog 358: dict_close: >> 420: dict_open: << 425: name: /Count 432: integer: 11 437: name: /Kids 443: array_open: [ 449: integer: 4 451: integer: 0 453: word: R 459: integer: 5 461: integer: 0 463: word: R 469: integer: 6 471: integer: 0 473: word: R 479: integer: 7 481: integer: 0 483: word: R 489: integer: 8 491: integer: 0 493: word: R 499: integer: 9 501: integer: 0 503: word: R 509: integer: 10 512: integer: 0 514: word: R 520: integer: 11 523: integer: 0 525: word: R 531: integer: 12 534: integer: 0 536: word: R 542: integer: 13 545: integer: 0 547: word: R 553: integer: 14 556: integer: 0 558: word: R 562: array_close: ] 566: name: /Type 572: name: /Pages 579: dict_close: >> 651: dict_open: << 656: name: /Contents 666: integer: 37 669: integer: 0 671: word: R 675: name: /MediaBox 685: array_open: [ 691: integer: 0 697: integer: 0 703: integer: 612 711: integer: 792 717: array_close: ] 721: name: /Parent 729: integer: 3 731: integer: 0 733: word: R 737: name: /Resources 748: dict_open: << 755: name: /Font 761: dict_open: << 770: name: /F1 774: integer: 15 777: integer: 0 779: word: R 785: dict_close: >> 792: name: /ProcSet 801: integer: 16 804: integer: 0 806: word: R 810: dict_close: >> 815: name: /Type 821: name: /Page 827: dict_close: >> 899: dict_open: << 904: name: /Contents 914: integer: 39 917: integer: 0 919: word: R 923: name: /MediaBox 933: array_open: [ 939: integer: 0 945: integer: 0 951: integer: 612 959: integer: 792 965: array_close: ] 969: name: /Parent 977: integer: 3 979: integer: 0 981: word: R 985: name: /Resources 996: dict_open: << 1003: name: /Font 1009: dict_open: << 1018: name: /F1 1022: integer: 17 1025: integer: 0 1027: word: R 1033: dict_close: >> 1040: name: /ProcSet 1049: integer: 18 1052: integer: 0 1054: word: R 1058: dict_close: >> 1063: name: /Type 1069: name: /Page 1075: dict_close: >> 1147: dict_open: << 1152: name: /Contents 1162: integer: 41 1165: integer: 0 1167: word: R 1171: name: /MediaBox 1181: array_open: [ 1187: integer: 0 1193: integer: 0 1199: integer: 612 1207: integer: 792 1213: array_close: ] 1217: name: /Parent 1225: integer: 3 1227: integer: 0 1229: word: R 1233: name: /Resources 1244: dict_open: << 1251: name: /Font 1257: dict_open: << 1266: name: /F1 1270: integer: 19 1273: integer: 0 1275: word: R 1281: dict_close: >> 1288: name: /ProcSet 1297: integer: 20 1300: integer: 0 1302: word: R 1306: dict_close: >> 1311: name: /Type 1317: name: /Page 1323: dict_close: >> 1395: dict_open: << 1400: name: /Contents 1410: integer: 43 1413: integer: 0 1415: word: R 1419: name: /MediaBox 1429: array_open: [ 1435: integer: 0 1441: integer: 0 1447: integer: 612 1455: integer: 792 1461: array_close: ] 1465: name: /Parent 1473: integer: 3 1475: integer: 0 1477: word: R 1481: name: /Resources 1492: dict_open: << 1499: name: /Font 1505: dict_open: << 1514: name: /F1 1518: integer: 21 1521: integer: 0 1523: word: R 1529: dict_close: >> 1536: name: /ProcSet 1545: integer: 22 1548: integer: 0 1550: word: R 1554: dict_close: >> 1559: name: /Type 1565: name: /Page 1571: dict_close: >> 1643: dict_open: << 1648: name: /Contents 1658: integer: 45 1661: integer: 0 1663: word: R 1667: name: /MediaBox 1677: array_open: [ 1683: integer: 0 1689: integer: 0 1695: integer: 612 1703: integer: 792 1709: array_close: ] 1713: name: /Parent 1721: integer: 3 1723: integer: 0 1725: word: R 1729: name: /Resources 1740: dict_open: << 1747: name: /Font 1753: dict_open: << 1762: name: /F1 1766: integer: 23 1769: integer: 0 1771: word: R 1777: dict_close: >> 1784: name: /ProcSet 1793: integer: 24 1796: integer: 0 1798: word: R 1802: dict_close: >> 1807: name: /Type 1813: name: /Page 1819: dict_close: >> 1891: dict_open: << 1896: name: /Contents 1906: integer: 47 1909: integer: 0 1911: word: R 1915: name: /MediaBox 1925: array_open: [ 1931: integer: 0 1937: integer: 0 1943: integer: 612 1951: integer: 792 1957: array_close: ] 1961: name: /Parent 1969: integer: 3 1971: integer: 0 1973: word: R 1977: name: /Resources 1988: dict_open: << 1995: name: /Font 2001: dict_open: << 2010: name: /F1 2014: integer: 25 2017: integer: 0 2019: word: R 2025: dict_close: >> 2032: name: /ProcSet 2041: integer: 26 2044: integer: 0 2046: word: R 2050: dict_close: >> 2055: name: /Type 2061: name: /Page 2067: dict_close: >> 2141: dict_open: << 2146: name: /Contents 2156: integer: 49 2159: integer: 0 2161: word: R 2165: name: /MediaBox 2175: array_open: [ 2181: integer: 0 2187: integer: 0 2193: integer: 612 2201: integer: 792 2207: array_close: ] 2211: name: /Parent 2219: integer: 3 2221: integer: 0 2223: word: R 2227: name: /Resources 2238: dict_open: << 2245: name: /Font 2251: dict_open: << 2260: name: /F1 2264: integer: 27 2267: integer: 0 2269: word: R 2275: dict_close: >> 2282: name: /ProcSet 2291: integer: 28 2294: integer: 0 2296: word: R 2300: dict_close: >> 2305: name: /Type 2311: name: /Page 2317: dict_close: >> 2391: dict_open: << 2396: name: /Contents 2406: integer: 51 2409: integer: 0 2411: word: R 2415: name: /MediaBox 2425: array_open: [ 2431: integer: 0 2437: integer: 0 2443: integer: 612 2451: integer: 792 2457: array_close: ] 2461: name: /Parent 2469: integer: 3 2471: integer: 0 2473: word: R 2477: name: /Resources 2488: dict_open: << 2495: name: /Font 2501: dict_open: << 2510: name: /F1 2514: integer: 29 2517: integer: 0 2519: word: R 2525: dict_close: >> 2532: name: /ProcSet 2541: integer: 30 2544: integer: 0 2546: word: R 2550: dict_close: >> 2555: name: /Type 2561: name: /Page 2567: dict_close: >> 2642: dict_open: << 2647: name: /Contents 2657: integer: 53 2660: integer: 0 2662: word: R 2666: name: /MediaBox 2676: array_open: [ 2682: integer: 0 2688: integer: 0 2694: integer: 612 2702: integer: 792 2708: array_close: ] 2712: name: /Parent 2720: integer: 3 2722: integer: 0 2724: word: R 2728: name: /Resources 2739: dict_open: << 2746: name: /Font 2752: dict_open: << 2761: name: /F1 2765: integer: 31 2768: integer: 0 2770: word: R 2776: dict_close: >> 2783: name: /ProcSet 2792: integer: 32 2795: integer: 0 2797: word: R 2801: dict_close: >> 2806: name: /Type 2812: name: /Page 2818: dict_close: >> 2894: dict_open: << 2899: name: /Contents 2909: integer: 55 2912: integer: 0 2914: word: R 2918: name: /MediaBox 2928: array_open: [ 2934: integer: 0 2940: integer: 0 2946: integer: 612 2954: integer: 792 2960: array_close: ] 2964: name: /Parent 2972: integer: 3 2974: integer: 0 2976: word: R 2980: name: /Resources 2991: dict_open: << 2998: name: /Font 3004: dict_open: << 3013: name: /F1 3017: integer: 33 3020: integer: 0 3022: word: R 3028: dict_close: >> 3035: name: /ProcSet 3044: integer: 34 3047: integer: 0 3049: word: R 3053: dict_close: >> 3058: name: /Type 3064: name: /Page 3070: dict_close: >> 3146: dict_open: << 3151: name: /Contents 3161: integer: 57 3164: integer: 0 3166: word: R 3170: name: /MediaBox 3180: array_open: [ 3186: integer: 0 3192: integer: 0 3198: integer: 612 3206: integer: 792 3212: array_close: ] 3216: name: /Parent 3224: integer: 3 3226: integer: 0 3228: word: R 3232: name: /Resources 3243: dict_open: << 3250: name: /Font 3256: dict_open: << 3265: name: /F1 3269: integer: 35 3272: integer: 0 3274: word: R 3280: dict_close: >> 3287: name: /ProcSet 3296: integer: 36 3299: integer: 0 3301: word: R 3305: dict_close: >> 3310: name: /Type 3316: name: /Page 3322: dict_close: >> 3387: dict_open: << 3392: name: /BaseFont 3402: name: /Helvetica 3415: name: /Encoding 3425: name: /WinAnsiEncoding 3444: name: /Name 3450: name: /F1 3456: name: /Subtype 3465: name: /Type1 3474: name: /Type 3480: name: /Font 3486: dict_close: >> 3551: array_open: [ 3555: name: /PDF 3562: name: /Text 3568: array_close: ] 3632: dict_open: << 3637: name: /BaseFont 3647: name: /Helvetica 3660: name: /Encoding 3670: name: /WinAnsiEncoding 3689: name: /Name 3695: name: /F1 3701: name: /Subtype 3710: name: /Type1 3719: name: /Type 3725: name: /Font 3731: dict_close: >> 3796: array_open: [ 3800: name: /PDF 3807: name: /Text 3813: array_close: ] 3877: dict_open: << 3882: name: /BaseFont 3892: name: /Helvetica 3905: name: /Encoding 3915: name: /WinAnsiEncoding 3934: name: /Name 3940: name: /F1 3946: name: /Subtype 3955: name: /Type1 3964: name: /Type 3970: name: /Font 3976: dict_close: >> 4041: array_open: [ 4045: name: /PDF 4052: name: /Text 4058: array_close: ] 4122: dict_open: << 4127: name: /BaseFont 4137: name: /Helvetica 4150: name: /Encoding 4160: name: /WinAnsiEncoding 4179: name: /Name 4185: name: /F1 4191: name: /Subtype 4200: name: /Type1 4209: name: /Type 4215: name: /Font 4221: dict_close: >> 4286: array_open: [ 4290: name: /PDF 4297: name: /Text 4303: array_close: ] 4367: dict_open: << 4372: name: /BaseFont 4382: name: /Helvetica 4395: name: /Encoding 4405: name: /WinAnsiEncoding 4424: name: /Name 4430: name: /F1 4436: name: /Subtype 4445: name: /Type1 4454: name: /Type 4460: name: /Font 4466: dict_close: >> 4531: array_open: [ 4535: name: /PDF 4542: name: /Text 4548: array_close: ] 4612: dict_open: << 4617: name: /BaseFont 4627: name: /Helvetica 4640: name: /Encoding 4650: name: /WinAnsiEncoding 4669: name: /Name 4675: name: /F1 4681: name: /Subtype 4690: name: /Type1 4699: name: /Type 4705: name: /Font 4711: dict_close: >> 4776: array_open: [ 4780: name: /PDF 4787: name: /Text 4793: array_close: ] 4857: dict_open: << 4862: name: /BaseFont 4872: name: /Helvetica 4885: name: /Encoding 4895: name: /WinAnsiEncoding 4914: name: /Name 4920: name: /F1 4926: name: /Subtype 4935: name: /Type1 4944: name: /Type 4950: name: /Font 4956: dict_close: >> 5021: array_open: [ 5025: name: /PDF 5032: name: /Text 5038: array_close: ] 5102: dict_open: << 5107: name: /BaseFont 5117: name: /Helvetica 5130: name: /Encoding 5140: name: /WinAnsiEncoding 5159: name: /Name 5165: name: /F1 5171: name: /Subtype 5180: name: /Type1 5189: name: /Type 5195: name: /Font 5201: dict_close: >> 5266: array_open: [ 5270: name: /PDF 5277: name: /Text 5283: array_close: ] 5347: dict_open: << 5352: name: /BaseFont 5362: name: /Helvetica 5375: name: /Encoding 5385: name: /WinAnsiEncoding 5404: name: /Name 5410: name: /F1 5416: name: /Subtype 5425: name: /Type1 5434: name: /Type 5440: name: /Font 5446: dict_close: >> 5511: array_open: [ 5515: name: /PDF 5522: name: /Text 5528: array_close: ] 5592: dict_open: << 5597: name: /BaseFont 5607: name: /Helvetica 5620: name: /Encoding 5630: name: /WinAnsiEncoding 5649: name: /Name 5655: name: /F1 5661: name: /Subtype 5670: name: /Type1 5679: name: /Type 5685: name: /Font 5691: dict_close: >> 5756: array_open: [ 5760: name: /PDF 5767: name: /Text 5773: array_close: ] 5837: dict_open: << 5842: name: /BaseFont 5852: name: /Helvetica 5865: name: /Encoding 5875: name: /WinAnsiEncoding 5894: name: /Name 5900: name: /F1 5906: name: /Subtype 5915: name: /Type1 5924: name: /Type 5930: name: /Font 5936: dict_close: >> 6001: array_open: [ 6005: name: /PDF 6012: name: /Text 6018: array_close: ] 6020: eof --- END OBJECT STREAM 1 --- qpdf-8.0.2/qpdf/qtest/qpdf/enc-XI-R6,V5,O=master.pdf0000644000064100006410000002526513247541377017642 0ustar ejbejb%PDF-1.7 % 94 0 obj <>stream V(h%w$YgE+^`kQtZ>stream %:aDﱳ:'DN~ϧEӬXGot *ea󦍋қ7?/W(ZGЫ9yxRbIx=vf>}~GGӱTMAg%u(BEi(h endstream endobj 96 0 obj <>stream 96C`x/;F݌mf=qV~!؏njBpALϚCퟛJ9kۑ/JְȖٺ<驸ʑsCy_L E"o wYo坏Z6&Z[ _J{dYdۥڶ+k]٦9dr8L\tŸ\m>4Ɗ"XF%vH^_a3yf.Ś+o=\CG ϟRLK{]$wn9x4B_@Jk˘ģ֠vߌu'NzdЙO:G7LJTa_@yګ9AOɋjLnI N'2 W>jԘ돞]Jm "}^gb'pV "'#nHp^G$ͨN.t"?u endstream endobj 97 0 obj <>stream G88=ZTj2v(ėy]8gݵq~^^әUn41,2uݸ,8%GJDd ˆKL endstream endobj 98 0 obj <>stream cL1BrVOݚv NkK0%nD!R`}Lwev<>LnPEcwLݺ!V,8CIYx)ە%5]MJMݥ*O3[ x<-{ep" L.r+O|#Bۿv0uP5=!)Td)3M _ Wcظa#JB U1瞧SUO[a$y@BdUƏ͏}]- D?d />KY̔hV1s7{MO{ħDZ-oȕ! ?Ơ3bJc9-%)x}Cy endstream endobj 2 0 obj <>stream Ek&,+Un ,ٓ)ނ`HFɵ/t2Ǭ#gdt[6z3$-؍ endstream endobj 4 0 obj <>stream ,PT' ME>vn#;hgLG\s+ۺҪ*2d4WwK{9˹܁ endstream endobj 6 0 obj <>stream .G_1Lpwv95}- rcY "5KNy|ӝ58aG 0 endstream endobj 8 0 obj <>stream ; К½ AgM3:M*t>stream lԩ*+{9kV Izk. -. P`\ gSU,l:-׵'V#.C endstream endobj 12 0 obj <>stream t3a_b?oϷ P*j } )@)j]ϥ0}Es>stream 1}E%ycq ec]5@>,16Z@LW,IJ\QMsph04-j&I endstream endobj 16 0 obj <>stream :1yA Ұ+IYƜ-*-kHn$C "'HS}NGt. <3AFbAc, endstream endobj 18 0 obj <>stream B¬o^U }fBdZI|Fe" <1j.N&K4Qm(V-yf}M)+}*8G0 endstream endobj 20 0 obj <>stream )I~uP$Ea/H7 /G0mMlU!s6|"W ٭j@9^Q& endstream endobj 22 0 obj <>stream ?Qv\+spջcj-SX_}Uxoz]dž]{>stream *+BG-X\gxp0_/P#a # TN'uƍ AR/7#|f[*"#N+ %^ۺ endstream endobj 26 0 obj <>stream hH_͙{9Kwۃb4qsثp T{m[7T2al2FNٓʆUC< endstream endobj 28 0 obj <>stream (ݼnϿ@aDf,ՈjjE ogk0Hފn=T$ɱ鴛|= 9BrWkF1 endstream endobj 30 0 obj <>stream ?Ky[$*M9G>fJtnĀ>(pf| @)g=<1"]F0zJdzez@iTq endstream endobj 32 0 obj <>stream |K0䫰3DdjDMŸ+Hg*Q9v00Sޑ ,L~x_% O5 endstream endobj 34 0 obj <>stream fTd~5<({~~ٚ~P58Bi<$DVRkڠ;#Da'Xe0 endstream endobj 36 0 obj <>stream +a@ʣ>fIxKm#v1v=`U VoyĦ&_#|`]?ZT#j_C] endstream endobj 38 0 obj <>stream \HdxիU~bp FC<3<_6 *Nf1pU/p$ pe/l endstream endobj 40 0 obj <>stream  'sĖGS(\i*sgyh'^GLو>Ŀeh~_vs. 0kCG endstream endobj 42 0 obj <>stream A-\APh}w{3: ~(lʌ\ ˗A%D_(D& Y^{bb{V5 endstream endobj 44 0 obj <>stream Y4\Y+^Mx bsL1l;jy1e]l}S4X\Wo"\O endstream endobj 46 0 obj <>stream +U][1ݦF"WΛ0v=:8/5Pz/&M1tZ%JJ(>2ie`3H%h@ endstream endobj 48 0 obj <>stream Ǐӂy/G`Z5MyXr2ÿ|Q71#X*l&j+&6_/Z IrpZ;OPG endstream endobj 50 0 obj <>stream 0֎ߙO3|'_wRס(XAKJ-]x5$@glw}=RF[>@E;,jS: endstream endobj 52 0 obj <>stream fW mʤ0|>XXS쟭>stream paɃ3aXش ߯[$k}~DX>JaN~^iu~gaf_8THQUF0L|; endstream endobj 56 0 obj <>stream Zo,#2/ QX<\E#Զ}a]w\(DM2td l;pj9fC,颵 endstream endobj 58 0 obj <>stream l/.hy%!#3lSťFanMv(BM?6Ld8/RS9^N#e@ endstream endobj 59 0 obj <>stream '~ָ<<͙֡z6b I9hP)DMMǏeKXMud}\PԻ\ا<"ӗ 5eQTPWք^Ǫ5\WNCtCaC\o"]t"m-~,Eu8|aԡARIt<`E\*0ʻ!:||hVs  tqi*lIa_e; cӫ~8]~ -ۡ0ZkYU$ԝVg\F?!@,>sx"s"[| `RU#Mueh66="3R]}Њ!taNdpl[Ëoomjp)V4HT'OQ}eF=hg*{^ڄcf4-jl3ӈspVbYۍR1P?3Ȯ-<^L\rĐ([dˡXZb# ]# \f`wduͲe^ԡNtd|둱0B"DzWFie5#8Os#t|VVGZ`Cڤ#̦y4剣ǃy=!d{F^OHZߪNwj(]8!oD`E;;g!/·ikġ8$A;QHMōkOOw!9q "/H{cw-5" "/{^yV<6 VYBl|ƔL1Dȥ6TΚZ}|9wuq3 n @PP߬PnU=7XݒĵAӘ;6'>lɹ KbjXB!f 8oʪ"n7s:ogY: #젓!U|=AI혧Ľ^ɣʬvUe )c d;PNtAlX?AƜ8  mE56]&e~Е(bPlxdJ@Ak둠׹I,6)y&^fLe轻RY5#543sLnJwH(_ Qhr4ĄPw?1/Pݱ][wPsE( vB`Ay RkEL *} qz([Wmk+W'BKzW酸yFGH9N3NDV .sROʬ-," ώs" B{Iu3C輭'|9^؛z 0%{TIk1dD/Iu%(7PjEpk;8ҥ \ce?nYbTc*c\-I4w eek}ߕ-%8 * <~fgL=i̿#x2n"QAY{^jyIiJ>нmkͰvۭO|xsJ~J$kGDt=^Ms8*#Y']4<%s ▒ ,o^T .(vU^1=A`!,_d{gfdVeo5}}!jG׋qMhf&L؃K¶F}zzۊ@&M2]8p# 's_94GX+DZ$tkvraͮ4U@>6b!=#5ŶO4ݻ rɭ;+xrwS?3Gc0qB K|`ޒX~90&^]*b:uE7xw6B#V Y2jۋܐ(V"!T8}$t$R!mN}&s:e( )g֬8 ,sP">a_м vi(b@Y( g endstream endobj 66 0 obj <>>>/Filter/Standard/Length 256/O(2Gԑw)/P -2368/Perms(7yXmh7dW)/R 6/StmF/StdCF/StrF/StdCF/U(\)cۥk+:\( Q֝uZ,_`OkzM_;t)/UE(o;Q%4͗z~Kݮ\(eXA)/V 5>> endobj 67 0 obj <>>>/Metadata 59 0 R/Outlines 75 0 R/PageLabels<>2<>7<>9<>11<>12<>15<>19< E;)>>20<>22<>23<>29<>]>>/PageMode/UseOutlines/Pages 63 0 R/Type/Catalog>> endobj 70 0 obj <>stream #3TP#ZY,lcC\S˹.#u mlK5T)fF'I@N endstream endobj 99 0 obj <>/Encrypt 66 0 R/Filter/FlateDecode/ID[<7F25422CE0BDE941BB4347FD74E2B041><3AF0760858641B4CA6B55B9DD6DEB608>]/Info 64 0 R/Length 357/Root 67 0 R/Size 100/Type/XRef/W[1 2 1]>>stream hl+qelf?Z$  IU%9)$Icm؆?~ gӧF Cl.Mbo+q R. UU;5bSMTKv*_>jTjqu ϥ}V!'p_ϫf u8@<A_܃|jR/=UѴj2uށAH^ F?T3fHw˶@kXJu ALdzMZe p8f\PGڥ*2VBFf_REI{,S0yY5g wЧ 0 endstream endobj startxref 10302 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/extensions-other.pdf0000644000064100006410000000201313247541377017577 0ustar ejbejb%PDF-1.5 % %QDF-1.0 1 0 obj << /Pages 2 0 R /Type /Catalog /Extensions << /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 7 0 obj [ /PDF /Text ] endobj xref 0 8 0000000000 65535 f 0000000025 00000 n 0000000163 00000 n 0000000245 00000 n 0000000460 00000 n 0000000559 00000 n 0000000578 00000 n 0000000696 00000 n trailer << /Root 1 0 R /Size 8 /ID [<369e89600ee1a6c4c7e73533610180c2><369e89600ee1a6c4c7e73533610180c2>] >> startxref 731 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.10-ogen.check0000644000064100006410000000067613247541377022160 0ustar ejbejbchecking a.pdf PDF Version: 1.5 R = 3 P = -4 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/bad13-recover.out0000644000064100006410000000031313247541377016655 0ustar ejbejbWARNING: bad13.pdf (trailer, offset 753): treating unexpected brace token as null /QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/bad29-recover.out0000644000064100006410000000067013247541377016672 0ustar ejbejbWARNING: bad29.pdf (trailer, offset 742): null character not allowed in name token WARNING: bad29.pdf (trailer, offset 715): expected dictionary key but found non-name object; inserting key /QPDFFake1 WARNING: bad29.pdf (trailer, offset 715): expected dictionary key but found non-name object; inserting key /QPDFFake2 /QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.1-ogen.check0000644000064100006410000000026213247541377020377 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/bad20-recover.out0000644000064100006410000000111213247541377016651 0ustar ejbejbWARNING: bad20.pdf (trailer, offset 753): invalid character (q) in hexstring WARNING: bad20.pdf (trailer, offset 757): unknown token while reading object; treating as string WARNING: bad20.pdf (trailer, offset 758): unexpected > WARNING: bad20.pdf (trailer, offset 715): expected dictionary key but found non-name object; inserting key /QPDFFake1 WARNING: bad20.pdf (trailer, offset 715): expected dictionary key but found non-name object; inserting key /QPDFFake2 /QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/enc-XI-base.pdf0000644000064100006410000003333113247541377016263 0ustar ejbejb%PDF-1.7 % 65 0 obj <> endobj 71 0 obj <>/Filter/FlateDecode/ID[<7F25422CE0BDE941BB4347FD74E2B041><661EDAEC38B577439D8F6E738D0DC046>]/Index[65 22]/Info 64 0 R/Length 56/Prev 13712/Root 66 0 R/Size 87/Type/XRef/W[1 2 1]>>stream hbbd``b`a b!8$*m L @\F "  endstream endobj startxref 0 %%EOF 86 0 obj <>stream hb```b``Vd`d``gb@.# GsXLခ #2pz f@iF 2`> t(S e`0y3,0H endstream endobj 66 0 obj <>>>/Metadata 59 0 R/Outlines 74 0 R/PageLabels<>2<>7<>9<>11<>12<>15<>19<>20<>22<>23<>29<>]>>/PageMode/UseOutlines/Pages 63 0 R/Type/Catalog>> endobj 67 0 obj <>/ProcSet 73 0 R>>/Rotate 0/Type/Page>> endobj 68 0 obj <>stream h27R0P07V0PwJ,Nu+H)K-LNwKOKs+΄sS KJ* RC!agZQ `W! endstream endobj 69 0 obj <>stream Hr RPw3T02QI͍@!$/I,W0Tr 0  endstream endobj 70 0 obj <>stream hޔˊ@ "g2 4# ^E y@pbT.m@Hr/ ( hP 4pviw4ch @pv>dʫpkW76}krgn>PcE5U*)XySG5X,AD#M^B{-RV$ࢲ_cvU3=D^}_I|U~5uQC Od&r{&ĉpgٴE>wf`EQJA7]=&?_ :A}hw oV(G :wk sS}F^cDOjܡ?jsxf:F_zO>6mLX4 D67QݍmB!22]5Hb2Mm'$NF2 &Ї%adK ^yzpE'K endstream endobj 1 0 obj <>/ProcSet 73 0 R>>/Rotate 0/Type/Page>> endobj 2 0 obj <>stream Hr RPw3T02QI͍@!$/I,W0Tr 0"  endstream endobj 3 0 obj <>/ProcSet 73 0 R>>/Rotate 0/Type/Page>> endobj 4 0 obj <>stream Hr RPw3T02QI͍@!$/I,W0Tr 0+  endstream endobj 5 0 obj <>/ProcSet 73 0 R>>/Rotate 0/Type/Page>> endobj 6 0 obj <>stream Hr RPw3T02QI͍@!$/I,W0Tr 04  endstream endobj 7 0 obj <>/ProcSet 73 0 R>>/Rotate 0/Type/Page>> endobj 8 0 obj <>stream Hr RPw3T02QI͍@!$/I,W0Tr 0=  endstream endobj 9 0 obj <>/ProcSet 73 0 R>>/Rotate 0/Type/Page>> endobj 10 0 obj <>stream Hr RPw3T02QI͍@!$/I,W0Tr 0F  endstream endobj 11 0 obj <>/ProcSet 73 0 R>>/Rotate 0/Type/Page>> endobj 12 0 obj <>stream Hr RPw3T02QI͍@!$/I,W0Tr 0O  endstream endobj 13 0 obj <>/ProcSet 73 0 R>>/Rotate 0/Type/Page>> endobj 14 0 obj <>stream Hr RPw3T02QI͍@!$/I,W0Tr 0X  endstream endobj 15 0 obj <>/ProcSet 73 0 R>>/Rotate 0/Type/Page>> endobj 16 0 obj <>stream Hr RPw3T02QI͍@!$/I,WTr 0a endstream endobj 17 0 obj <>/ProcSet 73 0 R>>/Rotate 0/Type/Page>> endobj 18 0 obj <>stream Hr RPw3T02QI͍@!$/I,WTr 0j ! endstream endobj 19 0 obj <>/ProcSet 73 0 R>>/Rotate 0/Type/Page>> endobj 20 0 obj <>stream Hr RPw3T02QI͍@!$/I,W04Tr 07 I endstream endobj 21 0 obj <>/ProcSet 73 0 R>>/Rotate 0/Type/Page>> endobj 22 0 obj <>stream Hr RPw3T02QI͍@!$/I,W04Tr 0@ J endstream endobj 23 0 obj <>/ProcSet 73 0 R>>/Rotate 0/Type/Page>> endobj 24 0 obj <>stream Hr RPw3T02QI͍@!$/I,W04Tr 0I K endstream endobj 25 0 obj <>/ProcSet 73 0 R>>/Rotate 0/Type/Page>> endobj 26 0 obj <>stream Hr RPw3T02QI͍@!$/I,W04Tr 0R L endstream endobj 27 0 obj <>/ProcSet 73 0 R>>/Rotate 0/Type/Page>> endobj 28 0 obj <>stream Hr RPw3T02QI͍@!$/I,W04Tr 0[ M endstream endobj 29 0 obj <>/ProcSet 73 0 R>>/Rotate 0/Type/Page>> endobj 30 0 obj <>stream Hr RPw3T02QI͍@!$/I,W04Tr 0d N endstream endobj 31 0 obj <>/ProcSet 73 0 R>>/Rotate 0/Type/Page>> endobj 32 0 obj <>stream Hr RPw3T02QI͍@!$/I,W04Tr 0m O endstream endobj 33 0 obj <>/ProcSet 73 0 R>>/Rotate 0/Type/Page>> endobj 34 0 obj <>stream Hr RPw3T02QI͍@!$/I,W04Tr 0v P endstream endobj 35 0 obj <>/ProcSet 73 0 R>>/Rotate 0/Type/Page>> endobj 36 0 obj <>stream Hr RPw3T02QI͍@!$/I,W0Tr 0 Q endstream endobj 37 0 obj <>/ProcSet 73 0 R>>/Rotate 0/Type/Page>> endobj 38 0 obj <>stream Hr RPw3T02QI͍@!$/I,W0Tr 0 R endstream endobj 39 0 obj <>/ProcSet 73 0 R>>/Rotate 0/Type/Page>> endobj 40 0 obj <>stream Hr RPw3T02QI͍@!$/I,W02Tr 0A J endstream endobj 41 0 obj <>/ProcSet 73 0 R>>/Rotate 0/Type/Page>> endobj 42 0 obj <>stream Hr RPw3T02QI͍@!$/I,W02Tr 0J K endstream endobj 43 0 obj <>/ProcSet 73 0 R>>/Rotate 0/Type/Page>> endobj 44 0 obj <>stream Hr RPw3T02QI͍@!$/I,W02Tr 0S L endstream endobj 45 0 obj <>/ProcSet 73 0 R>>/Rotate 0/Type/Page>> endobj 46 0 obj <>stream Hr RPw3T02QI͍@!$/I,W02Tr 0\ M endstream endobj 47 0 obj <>/ProcSet 73 0 R>>/Rotate 0/Type/Page>> endobj 48 0 obj <>stream Hr RPw3T02QI͍@!$/I,i*dqpe N endstream endobj 49 0 obj <>/ProcSet 73 0 R>>/Rotate 0/Type/Page>> endobj 50 0 obj <>stream Hr RPw3T02QI͍@!$/I,W02Tr 0n O endstream endobj 51 0 obj <>/ProcSet 73 0 R>>/Rotate 0/Type/Page>> endobj 52 0 obj <>stream Hr RPw3T02QI͍@!$/I,W02Tr 0w P endstream endobj 53 0 obj <>/ProcSet 73 0 R>>/Rotate 0/Type/Page>> endobj 54 0 obj <>stream Hr RPw3T02QI͍@!$/I,W02Tr 0 Q endstream endobj 55 0 obj <>/ProcSet 73 0 R>>/Rotate 0/Type/Page>> endobj 56 0 obj <>stream Hr RPw3T02QI͍@!$/I,W0Tr 0 R endstream endobj 57 0 obj <>/ProcSet 73 0 R>>/Rotate 0/Type/Page>> endobj 58 0 obj <>stream Hr RPw3T02QI͍@!$/I,W0Tr 0 S endstream endobj 59 0 obj <>stream 2012-12-29T19:19:28-05:00 2012-12-29T16:49:10-05:00 2012-12-29T19:19:28-05:00 application/pdf uuid:e2f4c09b-cfcf-4d3e-b4f4-2d5eba7e6962 uuid:5ba2d7ae-f82e-482d-a5ee-a0a4d446f776 endstream endobj 60 0 obj <>stream h,1 @ I2ʂXڈ؉,۬ZWy_HJukrZSY=2d&D @D! QA b$Bb;6/l0w endstream endobj 61 0 obj <>stream h23Q0Pw.JM,sI,Ip22042424434450U70POAWF0vv85 endstream endobj 62 0 obj <>/Filter/FlateDecode/ID[<7F25422CE0BDE941BB4347FD74E2B041><661EDAEC38B577439D8F6E738D0DC046>]/Info 64 0 R/Length 74/Root 66 0 R/Size 65/Type/XRef/W[1 2 0]>>stream hbb```bPbb`XI3iHW酄i*  VG$*7 ^xz `$ endstream endobj startxref 116 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/lin-delete-and-reuse-check.out0000644000064100006410000000030513247541377021277 0ustar ejbejbchecking lin-delete-and-reuse.pdf PDF Version: 1.3 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/lin7.pdf0000644000064100006410000006542013247541377015145 0ustar ejbejb%PDF-1.4 % 166 0 obj << /Linearized 1 /O 168 /H [ 905 235 ] /L 27408 /E 1865 /N 30 /T 23969 >> endobj xref 166 9 0000000016 00000 n 0000000530 00000 n 0000001140 00000 n 0000001353 00000 n 0000001485 00000 n 0000001601 00000 n 0000001622 00000 n 0000000905 00000 n 0000001118 00000 n trailer << /Size 175 /Info 164 0 R /Root 167 0 R /Prev 23958 /ID[<73525f8f7371ef62e39f69eb78fbd18e>] >> startxref 0 %%EOF 167 0 obj << /PageLabels << /Nums [ 0 << /P ()>> 2 << /S /r /St 1 >> 7 << /P ()>> 9 << /S /r /St 6 >> 11 << /P ()>> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P ()>> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /Pages 163 0 R /Type /Catalog /PageMode /UseThumbs /Outlines 88 0 R /Metadata 165 0 R >> endobj 173 0 obj << /S 108 /T 138 /O 195 /Filter /FlateDecode /Length 174 0 R >> stream Hb```Nɘ 63v@\Ĭ` \P#@A@~</` r #3 bYqSZCBcHZjj* G00iw G endstream endobj 174 0 obj 112 endobj 168 0 obj << /Contents 169 0 R /MediaBox [ 0 0 612 792 ] /Parent 163 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 100 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 169 0 obj << /Filter /FlateDecode /Length 171 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0  endstream endobj 170 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 171 0 obj 52 endobj 172 0 obj [ /PDF /Text ] endobj 1 0 obj << /Contents 2 0 R /MediaBox [ 0 0 612 792 ] /Parent 163 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 102 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 2 0 obj << /Filter /FlateDecode /Length 3 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0"  endstream endobj 3 0 obj 52 endobj 4 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 163 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 104 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 5 0 obj << /Filter /FlateDecode /Length 6 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0+  endstream endobj 6 0 obj 52 endobj 7 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 163 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 106 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 8 0 obj << /Filter /FlateDecode /Length 9 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 04  endstream endobj 9 0 obj 52 endobj 10 0 obj << /Contents 11 0 R /MediaBox [ 0 0 612 792 ] /Parent 163 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 108 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 11 0 obj << /Filter /FlateDecode /Length 12 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0=  endstream endobj 12 0 obj 52 endobj 13 0 obj << /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 163 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 110 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 14 0 obj << /Filter /FlateDecode /Length 15 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0F  endstream endobj 15 0 obj 52 endobj 16 0 obj << /Contents 17 0 R /MediaBox [ 0 0 612 792 ] /Parent 163 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 112 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 17 0 obj << /Filter /FlateDecode /Length 18 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0O  endstream endobj 18 0 obj 52 endobj 19 0 obj << /Contents 20 0 R /MediaBox [ 0 0 612 792 ] /Parent 163 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 114 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 20 0 obj << /Filter /FlateDecode /Length 21 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0X  endstream endobj 21 0 obj 52 endobj 22 0 obj << /Contents 23 0 R /MediaBox [ 0 0 612 792 ] /Parent 163 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 116 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 23 0 obj << /Filter /FlateDecode /Length 24 0 R >> stream Hr RPw3T02QI͍@!$/I,WTr 0a endstream endobj 24 0 obj 52 endobj 25 0 obj << /Contents 26 0 R /MediaBox [ 0 0 612 792 ] /Parent 163 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 118 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 26 0 obj << /Filter /FlateDecode /Length 27 0 R >> stream Hr RPw3T02QI͍@!$/I,WTr 0j ! endstream endobj 27 0 obj 52 endobj 28 0 obj << /Contents 29 0 R /MediaBox [ 0 0 612 792 ] /Parent 163 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 120 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 29 0 obj << /Filter /FlateDecode /Length 30 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 07 I endstream endobj 30 0 obj 53 endobj 31 0 obj << /Contents 32 0 R /MediaBox [ 0 0 612 792 ] /Parent 163 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 122 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 32 0 obj << /Filter /FlateDecode /Length 33 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0@ J endstream endobj 33 0 obj 53 endobj 34 0 obj << /Contents 35 0 R /MediaBox [ 0 0 612 792 ] /Parent 163 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 124 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 35 0 obj << /Filter /FlateDecode /Length 36 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0I K endstream endobj 36 0 obj 53 endobj 37 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 163 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 126 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 38 0 obj << /Filter /FlateDecode /Length 39 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0R L endstream endobj 39 0 obj 53 endobj 40 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 163 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 128 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 41 0 obj << /Filter /FlateDecode /Length 42 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0[ M endstream endobj 42 0 obj 53 endobj 43 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 163 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 130 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 44 0 obj << /Filter /FlateDecode /Length 45 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0d N endstream endobj 45 0 obj 53 endobj 46 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 163 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 132 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 47 0 obj << /Filter /FlateDecode /Length 48 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0m O endstream endobj 48 0 obj 53 endobj 49 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 163 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 134 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 50 0 obj << /Filter /FlateDecode /Length 51 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0v P endstream endobj 51 0 obj 53 endobj 52 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 163 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 136 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 53 0 obj << /Filter /FlateDecode /Length 54 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0 Q endstream endobj 54 0 obj 53 endobj 55 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 163 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 138 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 56 0 obj << /Filter /FlateDecode /Length 57 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0 R endstream endobj 57 0 obj 53 endobj 58 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 163 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 140 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 59 0 obj << /Filter /FlateDecode /Length 60 0 R >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0A J endstream endobj 60 0 obj 53 endobj 61 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 163 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 142 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 62 0 obj << /Filter /FlateDecode /Length 63 0 R >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0J K endstream endobj 63 0 obj 53 endobj 64 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 163 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 144 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 65 0 obj << /Filter /FlateDecode /Length 66 0 R >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0S L endstream endobj 66 0 obj 53 endobj 67 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 163 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 146 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 68 0 obj << /Filter /FlateDecode /Length 69 0 R >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0\ M endstream endobj 69 0 obj 53 endobj 70 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 163 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 148 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 71 0 obj << /Filter /FlateDecode /Length 72 0 R >> stream Hr RPw3T02QI͍@!$/I,i*dqpe N endstream endobj 72 0 obj 52 endobj 73 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 163 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 150 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 74 0 obj << /Filter /FlateDecode /Length 75 0 R >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0n O endstream endobj 75 0 obj 53 endobj 76 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 163 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 152 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 77 0 obj << /Filter /FlateDecode /Length 78 0 R >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0w P endstream endobj 78 0 obj 53 endobj 79 0 obj << /Contents 80 0 R /MediaBox [ 0 0 612 792 ] /Parent 163 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 154 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 80 0 obj << /Filter /FlateDecode /Length 81 0 R >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0 Q endstream endobj 81 0 obj 53 endobj 82 0 obj << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 163 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 156 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 83 0 obj << /Filter /FlateDecode /Length 84 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0 R endstream endobj 84 0 obj 53 endobj 85 0 obj << /Contents 86 0 R /MediaBox [ 0 0 612 792 ] /Parent 163 0 R /Resources << /Font << /F1 170 0 R >> /ProcSet 172 0 R >> /Type /Page /Thumb 158 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 86 0 obj << /Filter /FlateDecode /Length 87 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0 S endstream endobj 87 0 obj 53 endobj 88 0 obj << /Type /Outlines /First 89 0 R /Last 90 0 R /Count 6 >> endobj 89 0 obj << /Type /Outline /Title (Iss 1 -> 5: /XYZ null null null) /Parent 88 0 R /Count 4 /Next 90 0 R /First 91 0 R /Last 92 0 R /Dest [ 13 0 R /XYZ null null null ] >> endobj 90 0 obj << /Type /Outline /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Parent 88 0 R /Prev 89 0 R /Dest [ 43 0 R /XYZ 66 756 3 ] >> endobj 91 0 obj << /Type /Outline /Title (Amanda 1.1 -> 11: /Fit) /Parent 89 0 R /Next 92 0 R /First 95 0 R /Last 96 0 R /Count -3 /Dest [ 31 0 R /Fit ] >> endobj 92 0 obj << /Type /Outline /Title /Parent 89 0 R /Prev 91 0 R /First 93 0 R /Last 94 0 R /Count 2 /Dest [ 37 0 R /FitH 792 ] >> endobj 93 0 obj << /Type /Outline /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Parent 92 0 R /Next 94 0 R /Dest [ 1 0 R /FitR 66 714 180 770 ] >> endobj 94 0 obj << /Type /Outline /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Parent 92 0 R /Prev 93 0 R /Dest [ 168 0 R /XYZ null null null ] >> endobj 95 0 obj << /Type /Outline /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Parent 91 0 R /Next 96 0 R /First 98 0 R /Last 99 0 R /Count -2 /Dest [ 34 0 R /FitV 100 ] >> endobj 96 0 obj << /Type /Outline /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Parent 91 0 R /Prev 95 0 R /First 97 0 R /Last 97 0 R /Count 1 /Dest [ 34 0 R /XYZ null null null ] >> endobj 97 0 obj << /Type /Outline /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Parent 96 0 R /Dest [ 64 0 R /XYZ null null null ] >> endobj 98 0 obj << /Type /Outline /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Parent 95 0 R /Next 99 0 R /Dest [ 52 0 R /XYZ null null null ] >> endobj 99 0 obj << /Type /Outline /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Parent 95 0 R /Prev 98 0 R /Dest [ 55 0 R /XYZ null null null ] >> endobj 100 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 162 0 R /BitsPerComponent 8 /Length 101 0 R >> stream 8;Z]Y0b(o`&-G4acc:FWkNLuZiJL1R9X1GU)1Em"BmZ': endstream endobj 101 0 obj 83 endobj 102 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 162 0 R /BitsPerComponent 8 /Length 103 0 R >> stream 8;Z]Y5n1Up&->+`k@abO#212#CXjH)pgLz!!)M^ 7t:U?@"bK0~> endstream endobj 103 0 obj 79 endobj 104 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 162 0 R /BitsPerComponent 8 /Length 105 0 R >> stream 8;Z]Y5n1Up&->+`k@abO#212#CXjH)pgLz!!)M^ 7t:U?@"bK0~> endstream endobj 105 0 obj 79 endobj 106 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 162 0 R /BitsPerComponent 8 /Length 107 0 R >> stream 8;Z]Y_$RmW#Qqjoh8arLO6b<@i1j-:!g6W(L0s2:8[>JD>No-nRG@hbjuqu#('"=7 !!!"HkRh2&ftODc~> endstream endobj 107 0 obj 83 endobj 108 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 162 0 R /BitsPerComponent 8 /Length 109 0 R >> stream 8;Z]Y;$fKB$j/b]oi"*F;`i_jm(nQ]=/PD0A`qPJ])Vg2 !!!#W7n\@5!86V8Wr~> endstream endobj 109 0 obj 85 endobj 110 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 162 0 R /BitsPerComponent 8 /Length 111 0 R >> stream 8;Z]W;$k#l'LP`aob0R[oB`R/d(s+['?K@-iE)21[]d',D.WB.0;X$YHJ\c(zJ.FdE $ip=7W2f~> endstream endobj 111 0 obj 77 endobj 112 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 162 0 R /BitsPerComponent 8 /Length 113 0 R >> stream 8;Z]Y5n*fK&->+`on+@aXIX,ao[2_To,t[O1]0j#e+U07X_(d?:%*T!OdtY60)ttP !!!"DkS%>(;R*0N~> endstream endobj 113 0 obj 83 endobj 114 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 162 0 R /BitsPerComponent 8 /Length 115 0 R >> stream 8;Z]W;$k#l'LP`aob0R[oB`R-d)'1\'?K@-iE)21[T?YW[^+U,\'htak.Citz!$?Li (]YIXW;u~> endstream endobj 115 0 obj 77 endobj 116 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 162 0 R /BitsPerComponent 8 /Length 117 0 R >> stream 8;Z]Y5n*f[#R!G[pqb;O_9VF_i3CD#MI`;!B)%YZR3ZE[h+Ad>PoJQYQ#h.]hZ endstream endobj 117 0 obj 85 endobj 118 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 162 0 R /BitsPerComponent 8 /Length 119 0 R >> stream 8;Z]W0b(o`&-G4acc:FWkNLuZiJL1RN$XfP_lk=AD=;&lC9EcLls&`1Ha@Vkz!5O@2 ! endstream endobj 119 0 obj 78 endobj 120 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 162 0 R /BitsPerComponent 8 /Length 121 0 R >> stream 8;Z]Y5n1Up&->+`k6F6H=ZbGS\4;`pk!=5(B)%X%VX6i"QWq]q3Si9@?TXB/k5H.s z!. endstream endobj 121 0 obj 82 endobj 122 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 162 0 R /BitsPerComponent 8 /Length 123 0 R >> stream 8;Z]Y5m[NW$j/b]l_f3s-[)YnToXn;-BMk2_QQobh*"c;j]9tmFZMJ)?Tkrbr@\-N zGj#fK!.^Z=rr~> endstream endobj 123 0 obj 81 endobj 124 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 162 0 R /BitsPerComponent 8 /Length 125 0 R >> stream 8;Z]Y5n*fK$j/e]j^UL5@li4NkbHR?-Bb"K[erbGcHMkR/q6U(Pr1^Kfl_Vd1qi8X z!.]hg! endstream endobj 125 0 obj 83 endobj 126 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 162 0 R /BitsPerComponent 8 /Length 127 0 R >> stream 8;Z]Y_$L*-#Qqjp\"E;&5IPWN%6bPfR6^6Vm,hB4m])^JB=V"[-`?fQq,^:.h.sP) z!!!OX!Xo)*"/jW~> endstream endobj 127 0 obj 83 endobj 128 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 162 0 R /BitsPerComponent 8 /Length 129 0 R >> stream 8;Z]Y0b"+;$j/b\j^UL5'0;apaAD,D2cuY&GOm=VG?%A5ZeVR>P>fqFqeIO!j0n%b z!!#.R#quA.<2Y0~> endstream endobj 129 0 obj 83 endobj 130 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 162 0 R /BitsPerComponent 8 /Length 131 0 R >> stream 8;Z]Y_$L*-#Qqjp[ibK=5IPWN%6bPf)'S&el/l'I\s#h;qH%F%3k9+>.s!Xe>;$'Y zJ7h%H"os/bVl9~> endstream endobj 131 0 obj 82 endobj 132 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 162 0 R /BitsPerComponent 8 /Length 133 0 R >> stream 8;Z]Y0b"+;$j/b\j^UL5'0;apaAD,D2cuY&GOm=VG?%A5ZeVR>P>fqFqeIO!j0n%b z!!#.R#quA.<2Y0~> endstream endobj 133 0 obj 83 endobj 134 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 162 0 R /BitsPerComponent 8 /Length 135 0 R >> stream 8;Z]Y5n1Up$j/e]a2`SO-Zked\4 endstream endobj 135 0 obj 82 endobj 136 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 162 0 R /BitsPerComponent 8 /Length 137 0 R >> stream 8;Z]Y_$L*-#QqjpmDj\B-gf],%6bPf)'S&U9_an@A7eSYC:Q3M<7fp6rG0^788#O< z!!!OX!Xo&Ud\g"~> endstream endobj 137 0 obj 83 endobj 138 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 162 0 R /BitsPerComponent 8 /Length 139 0 R >> stream 8;Z]Y_$L*-#Qqjp[ibLPT(]_RfVg\~> endstream endobj 139 0 obj 82 endobj 140 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 162 0 R /BitsPerComponent 8 /Length 141 0 R >> stream 8;Z]Y5n1Up&->+`k6F6H=ZbGS\4;`pk!=5(B)%X%VX6i"QWq]q3Si9@?TXB/k5H.s z!. endstream endobj 141 0 obj 82 endobj 142 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 162 0 R /BitsPerComponent 8 /Length 143 0 R >> stream 8;Z]Y5m[NW$j/b]l_f3s-[)YnToXn;-BMk2_QQobh*"c;j]9tmFZMJ)?Tkrbr@\-N zGj#fK!.^Z=rr~> endstream endobj 143 0 obj 81 endobj 144 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 162 0 R /BitsPerComponent 8 /Length 145 0 R >> stream 8;Z]Y5n*fK$j/e]j^UL5@li4NkbHR?-Bb"K[erbGcHMkR/q6U(Pr1^Kfl_Vd1qi8X z!.]hg! endstream endobj 145 0 obj 83 endobj 146 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 162 0 R /BitsPerComponent 8 /Length 147 0 R >> stream 8;Z]Y_$L*-#Qqjp\"E;&5IPWN%6bPfR6^6Vm,hB4m])^JB=V"[-`?fQq,^:.h.sP) z!!!OX!Xo)*"/jW~> endstream endobj 147 0 obj 83 endobj 148 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 162 0 R /BitsPerComponent 8 /Length 149 0 R >> stream 8;Z]Y0b"+;$j/b\j^UL5'0;apaAD,D2cuY&GOm=VG?%A5ZeVR>P>fqFqeIO!j0n%b z!!#.R#quA.<2Y0~> endstream endobj 149 0 obj 83 endobj 150 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 162 0 R /BitsPerComponent 8 /Length 151 0 R >> stream 8;Z]Y_$L*-#Qqjp[ibK=5IPWN%6bPf)'S&el/l'I\s#h;qH%F%3k9+>.s!Xe>;$'Y zJ7h%H"os/bVl9~> endstream endobj 151 0 obj 82 endobj 152 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 162 0 R /BitsPerComponent 8 /Length 153 0 R >> stream 8;Z]Y0b"+;$j/b\j^UL5'0;apaAD,D2cuY&GOm=VG?%A5ZeVR>P>fqFqeIO!j0n%b z!!#.R#quA.<2Y0~> endstream endobj 153 0 obj 83 endobj 154 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 162 0 R /BitsPerComponent 8 /Length 155 0 R >> stream 8;Z]Y5n1Up$j/e]a2`SO-Zked\4 endstream endobj 155 0 obj 82 endobj 156 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 162 0 R /BitsPerComponent 8 /Length 157 0 R >> stream 8;Z]Y_$L*-#QqjpmDj\B-gf],%6bPf)'S&U9_an@A7eSYC:Q3M<7fp6rG0^788#O< z!!!OX!Xo&Ud\g"~> endstream endobj 157 0 obj 83 endobj 158 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 162 0 R /BitsPerComponent 8 /Length 159 0 R >> stream 8;Z]Y_$L*-#Qqjp[ibLPT(]_RfVg\~> endstream endobj 159 0 obj 82 endobj 160 0 obj 481 endobj 161 0 obj << /Filter [ /ASCII85Decode /LZWDecode ] /Length 160 0 R >> stream J,g]g+e/h_!_gCtO=0f)$P%cIi8Zdfc5&3j_8$7g.@L`YKUJNGBP\poR=_;Dl'P(T (7Boo^^S:71(MN]ZQX/+Cbu.lK"p74pe1T%s.DY%&\1TdJhr54.M9au6>79n6`Q:4 PbLSZTLEE(8E@'*1mg_*eTnN*;*'V3+gm-EEetX%;Bo$ur2ss*N`.-!.kG_q6GDD' dKoL!8Ka#EV,@V!\j8ZFbp6EE<9cn=N6j0nf;(&;QU6bUD')c@\ 9-d\DA=cZ0Q>gIM$$;cd2O@&a;X,Nn_aP(]I1aRc(K1^ue> gF/(+GaKo$qneLWDrQ#;5\S(\$q'4Q,85`-8;S(=Z"WSBOV*FM)4,?B],R endstream endobj 162 0 obj [ /Indexed /DeviceRGB 255 161 0 R ] endobj 163 0 obj << /Count 30 /Kids [ 168 0 R 1 0 R 4 0 R 7 0 R 10 0 R 13 0 R 16 0 R 19 0 R 22 0 R 25 0 R 28 0 R 31 0 R 34 0 R 37 0 R 40 0 R 43 0 R 46 0 R 49 0 R 52 0 R 55 0 R 58 0 R 61 0 R 64 0 R 67 0 R 70 0 R 73 0 R 76 0 R 79 0 R 82 0 R 85 0 R ] /Type /Pages >> endobj 164 0 obj << /ModDate (D:20031101162528-05'00') /CreationDate (D:20031101161932-05'00') >> endobj 165 0 obj << /Type /Metadata /Subtype /XML /Length 770 >> stream 2003-11-01T16:25:28-05:00 2003-11-01T16:19:32-05:00 2003-11-01T16:25:28-05:00 2003-11-01T16:19:32-05:00 2003-11-01T16:25:28-05:00 endstream endobj xref 0 166 0000000000 65535 f 0000001656 00000 n 0000001865 00000 n 0000001993 00000 n 0000002012 00000 n 0000002221 00000 n 0000002349 00000 n 0000002368 00000 n 0000002577 00000 n 0000002705 00000 n 0000002724 00000 n 0000002935 00000 n 0000003065 00000 n 0000003085 00000 n 0000003296 00000 n 0000003426 00000 n 0000003446 00000 n 0000003657 00000 n 0000003787 00000 n 0000003807 00000 n 0000004018 00000 n 0000004148 00000 n 0000004168 00000 n 0000004379 00000 n 0000004509 00000 n 0000004529 00000 n 0000004740 00000 n 0000004870 00000 n 0000004890 00000 n 0000005101 00000 n 0000005232 00000 n 0000005252 00000 n 0000005463 00000 n 0000005594 00000 n 0000005614 00000 n 0000005825 00000 n 0000005956 00000 n 0000005976 00000 n 0000006187 00000 n 0000006318 00000 n 0000006338 00000 n 0000006549 00000 n 0000006680 00000 n 0000006700 00000 n 0000006911 00000 n 0000007042 00000 n 0000007062 00000 n 0000007273 00000 n 0000007404 00000 n 0000007424 00000 n 0000007635 00000 n 0000007766 00000 n 0000007786 00000 n 0000007997 00000 n 0000008128 00000 n 0000008148 00000 n 0000008359 00000 n 0000008490 00000 n 0000008510 00000 n 0000008721 00000 n 0000008852 00000 n 0000008872 00000 n 0000009083 00000 n 0000009214 00000 n 0000009234 00000 n 0000009445 00000 n 0000009576 00000 n 0000009596 00000 n 0000009807 00000 n 0000009938 00000 n 0000009958 00000 n 0000010169 00000 n 0000010299 00000 n 0000010319 00000 n 0000010530 00000 n 0000010661 00000 n 0000010681 00000 n 0000010892 00000 n 0000011023 00000 n 0000011043 00000 n 0000011254 00000 n 0000011385 00000 n 0000011405 00000 n 0000011616 00000 n 0000011747 00000 n 0000011767 00000 n 0000011978 00000 n 0000012109 00000 n 0000012129 00000 n 0000012209 00000 n 0000012398 00000 n 0000012539 00000 n 0000012704 00000 n 0000012991 00000 n 0000013153 00000 n 0000013313 00000 n 0000013492 00000 n 0000013690 00000 n 0000013837 00000 n 0000013998 00000 n 0000014159 00000 n 0000014403 00000 n 0000014424 00000 n 0000014664 00000 n 0000014685 00000 n 0000014925 00000 n 0000014946 00000 n 0000015190 00000 n 0000015211 00000 n 0000015457 00000 n 0000015478 00000 n 0000015716 00000 n 0000015737 00000 n 0000015981 00000 n 0000016002 00000 n 0000016240 00000 n 0000016261 00000 n 0000016507 00000 n 0000016528 00000 n 0000016767 00000 n 0000016788 00000 n 0000017031 00000 n 0000017052 00000 n 0000017294 00000 n 0000017315 00000 n 0000017559 00000 n 0000017580 00000 n 0000017824 00000 n 0000017845 00000 n 0000018089 00000 n 0000018110 00000 n 0000018353 00000 n 0000018374 00000 n 0000018618 00000 n 0000018639 00000 n 0000018882 00000 n 0000018903 00000 n 0000019147 00000 n 0000019168 00000 n 0000019411 00000 n 0000019432 00000 n 0000019675 00000 n 0000019696 00000 n 0000019938 00000 n 0000019959 00000 n 0000020203 00000 n 0000020224 00000 n 0000020468 00000 n 0000020489 00000 n 0000020733 00000 n 0000020754 00000 n 0000020997 00000 n 0000021018 00000 n 0000021262 00000 n 0000021283 00000 n 0000021526 00000 n 0000021547 00000 n 0000021791 00000 n 0000021812 00000 n 0000022055 00000 n 0000022076 00000 n 0000022098 00000 n 0000022676 00000 n 0000022731 00000 n 0000023003 00000 n 0000023103 00000 n trailer << /Size 166 /ID[<73525f8f7371ef62e39f69eb78fbd18e>] >> startxref 173 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad25.out0000644000064100006410000000027213247541377015221 0ustar ejbejbWARNING: bad25.pdf (object 4 0, offset 307): expected n n obj /QTest is implicit /QTest is indirect and has type null (2) /QTest is null unparse: 4 0 R unparseResolved: null test 0 done qpdf-8.0.2/qpdf/qtest/qpdf/image-streams-none.out0000644000064100006410000000076613247541377020027 0ustar ejbejbpage 1 filter: /FlateDecode, color space: /DeviceCMYK page 2 filter: /DCTDecode, color space: /DeviceCMYK page 3 filter: /RunLengthDecode, color space: /DeviceCMYK page 4 filter: /FlateDecode, color space: /DeviceRGB page 5 filter: /DCTDecode, color space: /DeviceRGB page 6 filter: /RunLengthDecode, color space: /DeviceRGB page 7 filter: /FlateDecode, color space: /DeviceGray page 8 filter: /DCTDecode, color space: /DeviceGray page 9 filter: /RunLengthDecode, color space: /DeviceGray test 39 done qpdf-8.0.2/qpdf/qtest/qpdf/append-page-content-damaged.pdf0000644000064100006410000004173113247541377021504 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /PageLabels 107 0 R /Pages 2 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 95 0 R >> endobj 2 0 obj << /Count 30 /Kids [ 3 0 R 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R ] /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents 33 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 2 4 0 obj << /Contents 37 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 3 5 0 obj << /Contents 39 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 4 6 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 5 7 0 obj << /Contents 43 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 6 8 0 obj << /Contents 45 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 7 9 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 8 10 0 obj << /Contents 49 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 9 11 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 10 12 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 11 13 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 12 14 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 13 15 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 14 16 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 15 17 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 16 18 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 17 19 0 obj << /Contents 67 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 18 20 0 obj << /Contents 69 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 19 21 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 20 22 0 obj << /Contents 73 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 21 23 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 22 24 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 23 25 0 obj << /Contents 79 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 24 26 0 obj << /Contents 81 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 25 27 0 obj << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 26 28 0 obj << /Contents 85 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 27 29 0 obj << /Contents 87 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 28 30 0 obj << /Contents 89 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 29 31 0 obj << /Contents 91 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 30 32 0 obj << /Contents 93 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Contents for page 1 33 0 obj << /Length 34 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 0) Tj ET endstream endobj 34 0 obj 46 endobj 35 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 36 0 obj [ /PDF /Text ] endobj %% Contents for page 2 37 0 obj << /Length 38 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 38 0 obj 46 endobj %% Contents for page 3 39 0 obj << /Length 40 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 40 0 obj 46 endobj %% Contents for page 4 41 0 obj << /Length 42 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 42 0 obj 46 endobj %% Contents for page 5 43 0 obj << /Length 44 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 44 0 obj 46 endobj %% Contents for page 6 45 0 obj << /Length 46 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 46 0 obj 46 endobj %% Contents for page 7 47 0 obj << /Length 48 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 48 0 obj 46 endobj %% Contents for page 8 49 0 obj << /Length 50 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 50 0 obj 46 endobj %% Contents for page 9 51 0 obj << /Length 52 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 52 0 obj 46 endobj %% Contents for page 10 53 0 obj << /Length 54 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 54 0 obj 46 endobj %% Contents for page 11 55 0 obj << /Length 56 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 56 0 obj 47 endobj %% Contents for page 12 57 0 obj << /Length 58 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 58 0 obj 47 endobj %% Contents for page 13 59 0 obj << /Length 60 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 60 0 obj 47 endobj %% Contents for page 14 61 0 obj << /Length 62 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 62 0 obj 47 endobj %% Contents for page 15 63 0 obj << /Length 64 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 64 0 obj 47 endobj %% Contents for page 16 65 0 obj << /Length 66 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 66 0 obj 47 endobj %% Contents for page 17 67 0 obj << /Length 68 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 68 0 obj 47 endobj %% Contents for page 18 69 0 obj << /Length 70 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 70 0 obj 47 endobj %% Contents for page 19 71 0 obj << /Length 72 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 72 0 obj 47 endobj %% Contents for page 20 73 0 obj << /Length 74 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 74 0 obj 47 endobj %% Contents for page 21 75 0 obj << /Length 76 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 76 0 obj 47 endobj %% Contents for page 22 77 0 obj << /Length 78 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 78 0 obj 47 endobj %% Contents for page 23 79 0 obj << /Length 80 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 80 0 obj 47 endobj %% Contents for page 24 81 0 obj << /Length 82 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 82 0 obj 47 endobj %% Contents for page 25 83 0 obj << /Length 84 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 84 0 obj 47 endobj %% Contents for page 26 85 0 obj << /Length 86 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 86 0 obj 47 endobj %% Contents for page 27 87 0 obj << /Length 88 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 88 0 obj 47 endobj %% Contents for page 28 89 0 obj << /Length 90 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 90 0 obj 47 endobj %% Contents for page 29 91 0 obj << /Length 92 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 92 0 obj 47 endobj %% Contents for page 30 93 0 obj << /Length 94 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 94 0 obj 47 endobj 95 0 obj << /Type /Outlines /First 96 0 R /Last 97 0 R /Count 6 >> endobj 96 0 obj << /Type /Outline /Title (Iss 1 -> 5: /XYZ null null null) /Parent 95 0 R /Count 4 /Next 97 0 R /First 98 0 R /Last 99 0 R /Dest [ 8 0 R /XYZ null null null ] >> endobj 97 0 obj << /Type /Outline /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Parent 95 0 R /Prev 96 0 R /Dest [ 18 0 R /XYZ 66 756 3 ] >> endobj 98 0 obj << /Type /Outline /Title (Amanda 1.1 -> 11: /Fit) /Parent 96 0 R /Next 99 0 R /First 100 0 R /Last 101 0 R /Count -3 /Dest [ 14 0 R /Fit ] >> endobj 99 0 obj << /Type /Outline % /Title (Sandy (Sandy [Greek]) 1.2 -> 13: /FitH 792) /Title /Parent 96 0 R /Prev 98 0 R /First 105 0 R /Last 106 0 R /Count 2 /Dest [ 16 0 R /FitH 792 ] >> endobj 100 0 obj << /Type /Outline /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Parent 98 0 R /Next 101 0 R /First 102 0 R /Last 103 0 R /Count -2 /Dest [ 15 0 R /FitV 100 ] >> endobj 101 0 obj << /Type /Outline /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Parent 98 0 R /Prev 100 0 R /First 104 0 R /Last 104 0 R /Count 1 /Dest [ 15 0 R /XYZ null null null ] >> endobj 102 0 obj << /Type /Outline /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Parent 100 0 R /Next 103 0 R /Dest [ 21 0 R /XYZ null null null ] >> endobj 103 0 obj << /Type /Outline /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Parent 100 0 R /Prev 102 0 R /Dest [ 22 0 R /XYZ null null null ] >> endobj 104 0 obj << /Type /Outline /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Parent 101 0 R /Dest [ 25 0 R /XYZ null null null ] >> endobj 105 0 obj << /Type /Outline /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Parent 99 0 R /Next 106 0 R /Dest [ 4 0 R /FitR 66 714 180 770 ] >> endobj 106 0 obj << /Type /Outline /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Parent 99 0 R /Prev 105 0 R /Dest [ 3 0 R /XYZ null null null ] >> endobj 107 0 obj << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> endobj xref 0 108 0000000000 65535 f 0000000025 00000 n 0000000145 00000 n 0000000541 00000 n 0000000746 00000 n 0000000951 00000 n 0000001156 00000 n 0000001361 00000 n 0000001566 00000 n 0000001771 00000 n 0000001976 00000 n 0000002182 00000 n 0000002389 00000 n 0000002596 00000 n 0000002803 00000 n 0000003010 00000 n 0000003217 00000 n 0000003424 00000 n 0000003631 00000 n 0000003838 00000 n 0000004045 00000 n 0000004252 00000 n 0000004459 00000 n 0000004666 00000 n 0000004873 00000 n 0000005080 00000 n 0000005287 00000 n 0000005494 00000 n 0000005701 00000 n 0000005908 00000 n 0000006115 00000 n 0000006322 00000 n 0000006529 00000 n 0000006748 00000 n 0000006851 00000 n 0000006871 00000 n 0000006990 00000 n 0000007049 00000 n 0000007152 00000 n 0000007195 00000 n 0000007298 00000 n 0000007341 00000 n 0000007444 00000 n 0000007487 00000 n 0000007590 00000 n 0000007633 00000 n 0000007736 00000 n 0000007779 00000 n 0000007882 00000 n 0000007925 00000 n 0000008028 00000 n 0000008071 00000 n 0000008174 00000 n 0000008218 00000 n 0000008321 00000 n 0000008365 00000 n 0000008469 00000 n 0000008513 00000 n 0000008617 00000 n 0000008661 00000 n 0000008765 00000 n 0000008809 00000 n 0000008913 00000 n 0000008957 00000 n 0000009061 00000 n 0000009105 00000 n 0000009209 00000 n 0000009253 00000 n 0000009357 00000 n 0000009401 00000 n 0000009505 00000 n 0000009549 00000 n 0000009653 00000 n 0000009697 00000 n 0000009801 00000 n 0000009845 00000 n 0000009949 00000 n 0000009993 00000 n 0000010097 00000 n 0000010141 00000 n 0000010245 00000 n 0000010289 00000 n 0000010393 00000 n 0000010437 00000 n 0000010541 00000 n 0000010585 00000 n 0000010689 00000 n 0000010733 00000 n 0000010837 00000 n 0000010881 00000 n 0000010985 00000 n 0000011029 00000 n 0000011133 00000 n 0000011177 00000 n 0000011281 00000 n 0000011301 00000 n 0000011388 00000 n 0000011584 00000 n 0000011730 00000 n 0000011905 00000 n 0000012258 00000 n 0000012449 00000 n 0000012659 00000 n 0000012828 00000 n 0000012997 00000 n 0000013150 00000 n 0000013319 00000 n 0000013484 00000 n trailer << /Root 1 0 R /Size 108 >> startxref 13801 %%EOF % 1. Delete page labels xref 0 1 0000000107 65535 f 107 1 0000000000 00001 f trailer << /Root 1 0 R /Size 108 /Prev 13801 >> startxref 16059 %%EOF % 2. Delete outlines, reuse page labels. 107 1 obj << /Nums [ 0 << /P () >> 2 << /S /D /St 1 >> 7 << /P () >> 9 << /S /R /St 6 >> 11 << /P () >> 12 << /S /r /St 2 >> 15 << /S /r /St 6 >> 19 << /P () >> 20 << /S /R /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> endobj % Reuse object 1 with the same generation number. Leave outlines % there pointing to a deleted object. 1 0 obj << /PageLabels 107 1 R /Pages 2 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 95 0 R >> endobj % Reuse object 33 to replace contents for page 1 33 0 obj << /Length 50 >> stream BT /F1 24 Tf 72 720 Td (Potato 0 new) Tj ET endstream endobj % Delete object 34 xref 0 2 0000000034 65535 f 0000016648 00000 n 33 2 0000016817 00000 n 0000000095 00001 f 95 13 0000000096 00001 f 0000000097 00001 f 0000000098 00001 f 0000000099 00001 f 0000000100 00001 f 0000000101 00001 f 0000000102 00001 f 0000000103 00001 f 0000000104 00001 f 0000000105 00001 f 0000000106 00001 f 0000000000 00001 f 0000016227 00001 n trailer << /Size 108 /Prev 16059 /Root 1 0 R >> startxref oops %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/show-pages.out0000644000064100006410000000010713247541377016376 0ustar ejbejbpage 1: 5 0 R content: 7 0 R page 2: 6 0 R content: 10 0 R qpdf-8.0.2/qpdf/qtest/qpdf/split-exp-03.Pdf0000644000064100006410000000136313247541377016375 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TcM,. .endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 6 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000398 00000 n trailer << /Root 1 0 R /Size 6 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 497 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/test14-out.pdf0000644000064100006410000000360513247541377016222 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 4 0 R /Type /Catalog >> endobj 2 0 obj << /NewDict 2 >> endobj 3 0 obj [ /Array ] endobj 4 0 obj << /Count 4 /Kids [ 5 0 R 6 0 R 7 0 R 8 0 R ] /Type /Pages >> endobj 5 0 obj << /Contents 9 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 10 0 R >> /ProcSet 11 0 R >> /Type /Page >> endobj 6 0 obj << /Contents 12 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 10 0 R >> /ProcSet 13 0 R >> /Type /Page >> endobj 7 0 obj << /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 10 0 R >> /ProcSet 15 0 R >> /Type /Page >> endobj 8 0 obj << /Contents 16 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 10 0 R >> /ProcSet 17 0 R >> /Type /Page >> endobj 9 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 10 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 11 0 obj [ /PDF /Text ] endobj 12 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 13 0 obj [ /PDF /Text ] endobj 14 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 15 0 obj [ /PDF /Text ] endobj 16 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 17 0 obj [ /PDF /Text ] endobj xref 0 18 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000096 00000 n 0000000122 00000 n 0000000199 00000 n 0000000344 00000 n 0000000490 00000 n 0000000636 00000 n 0000000782 00000 n 0000000877 00000 n 0000000985 00000 n 0000001016 00000 n 0000001112 00000 n 0000001143 00000 n 0000001239 00000 n 0000001270 00000 n 0000001366 00000 n trailer << /QArray 2 0 R /QDict 3 0 R /Root 1 0 R /Size 18 /ID [<20eb74876a3e8212c1b4fd43153860b0><31415926535897932384626433832795>] >> startxref 1397 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad18.pdf0000644000064100006410000000141213247541377015162 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /Something ) >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/extensions-other-min-1.7.1.out0000644000064100006410000000023513247541377021064 0ustar ejbejbversion: 1.7 extension level: 1 << /ADBE << /BaseVersion /1.7 /ExtensionLevel 1 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/good4.out0000644000064100006410000000017413247541377015341 0ustar ejbejb/QTest is implicit /QTest is indirect and has type null (2) /QTest is null unparse: 7 0 R unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.4-ogen.check0000644000064100006410000000026213247541377020104 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/bad20.pdf0000644000064100006410000000141713247541377015160 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /Something >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/gen1.pdf0000644000064100006410000000137313247541377015123 0ustar ejbejb%PDF-1.3 1 1 obj << /Type /Catalog /Pages 2 1 R >> endobj 2 1 obj << /Type /Pages /Kids [ 3 1 R ] /Count 1 >> endobj 3 1 obj << /Type /Page /Parent 2 1 R /MediaBox [0 0 612 792] /Contents 4 1 R /Resources << /ProcSet 5 1 R /Font << /F1 6 1 R >> >> >> endobj 4 1 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 1 obj [ /PDF /Text ] endobj 6 1 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00001 n 0000000063 00001 n 0000000135 00001 n 0000000307 00001 n 0000000403 00001 n 0000000438 00001 n trailer << /Size 7 /Root 1 1 R >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/c-r4.pdf0000644000064100006410000002521413247541377015036 0ustar ejbejb%PDF-1.6 % 1 0 obj << /Outlines 3 0 R /PageLabels 15 0 R /PageMode /UseOutlines /Pages 16 0 R /Type /Catalog >> endobj 2 0 obj << /Type /ObjStm /Length 640 /Filter /FlateDecode /N 13 /First 87 >> stream *8FTbp~*'A+H]'> xvOH]Oh6ICN$[oaVk3){VLӪZpծ_'\b9{ĨPK71 i 4ar=.^ճ)E*]OFV kս= 0ď:.6Ěچd>V =*2x?"͵iG5n w4ɑH˟?jy *εUhr*픅u+׍2`L36TW#3À[F ~%d=b:᠒e(zqCnF"@*>N+NICM>neVߗ] d&o pBa&q, x;*C$]xNupB8{ȟ#6a 6_'U̪KF.!LvqX! j醓ZirCY*-RX%9N+ZDgp.n=yU-sVUڴjR.i> endobj 17 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 18 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 19 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 20 0 obj << /Contents 52 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 21 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 22 0 obj << /Contents 54 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 23 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 24 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 25 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 26 0 obj << /Contents 58 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 27 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 28 0 obj << /Contents 60 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 29 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 30 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 31 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 32 0 obj << /Contents 64 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 33 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 34 0 obj << /Contents 66 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 35 0 obj << /Contents 67 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 36 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 37 0 obj << /Contents 69 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 38 0 obj << /Contents 70 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 39 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 40 0 obj << /Contents 72 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 41 0 obj << /Contents 73 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 42 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 43 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 44 0 obj << /Contents 76 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 45 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 46 0 obj << /Contents 78 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 47 0 obj << /Length 80 /Filter /FlateDecode >> stream *8FTbp~VH0ex_HW%XJT30^Ehs9a{_O1!mp#l~oC>}->endstream endobj 48 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 49 0 obj [ /PDF /Text ] endobj 50 0 obj << /Length 80 /Filter /FlateDecode >> stream *8FTbp~ЯS&4x~W#RhF/fHGlmgWYfPOq9՟uendstream endobj 51 0 obj << /Length 80 /Filter /FlateDecode >> stream *8FTbp~?9PZ S t٫P~X@>Y"sCI'R\/sH ;y9endstream endobj 52 0 obj << /Length 80 /Filter /FlateDecode >> stream *8FTbp~R: 7UXQ $m1<17:$nCR> stream *8FTbp~Ժ>륾:-ף^Hָqj N Eŝ\oR ?C2/X_#CIendstream endobj 54 0 obj << /Length 80 /Filter /FlateDecode >> stream *8FTbp~ :}KCVhj@%.[1Lӡt{Ʈ~8Xv[aendstream endobj 55 0 obj << /Length 80 /Filter /FlateDecode >> stream *8FTbp~܀t ^ptTې|?]h\1TVdd0/|׵uMendstream endobj 56 0 obj << /Length 80 /Filter /FlateDecode >> stream *8FTbp~h ۧ(MѤ{R0s-"o.KvNP<>$y6):oWh^endstream endobj 57 0 obj << /Length 80 /Filter /FlateDecode >> stream *8FTbp~ p* cS`^Y=VFY'd*3Co| hA^nO)eDKk3Fendstream endobj 58 0 obj << /Length 80 /Filter /FlateDecode >> stream *8FTbp~Wa0$ҷh)iɣiCdIqF{\KjIy1endstream endobj 59 0 obj << /Length 80 /Filter /FlateDecode >> stream *8FTbp~\Ran!SܬFI\2 |R9K iΎ ݔ6*:Hendstream endobj 60 0 obj << /Length 80 /Filter /FlateDecode >> stream *8FTbp~8MkoÅTez *7/OCv.RƮC|MO L#endstream endobj 61 0 obj << /Length 80 /Filter /FlateDecode >> stream *8FTbp~o_#1slWӍ#*}HPpGc]pV#&l%O!ڷDwtWendstream endobj 62 0 obj << /Length 80 /Filter /FlateDecode >> stream *8FTbp~^4ٛ$I8K'H t%:MgEI.nCphendstream endobj 63 0 obj << /Length 80 /Filter /FlateDecode >> stream *8FTbp~kGQ? "Üe?rLNbxkIpvPdg ^!Ꮴc%yxt}пendstream endobj 64 0 obj << /Length 80 /Filter /FlateDecode >> stream *8FTbp~emܙڹrlG{Im1ar#,a[{Y%&-󚋁}endstream endobj 65 0 obj << /Length 80 /Filter /FlateDecode >> stream *8FTbp~> cm"*JTH!iGCP7s GPN^ͼ{İ ź9Wx¬aendstream endobj 66 0 obj << /Length 80 /Filter /FlateDecode >> stream *8FTbp~#d-+yﮩ+Kmtzdž"X iDendstream endobj 67 0 obj << /Length 80 /Filter /FlateDecode >> stream *8FTbp~ՒՉmES2>쮛Gs-.qm)l,Wq#(MݳRendstream endobj 68 0 obj << /Length 80 /Filter /FlateDecode >> stream *8FTbp~ Xc¸l'J%^T.uSYQҭٽ0NU.B+6.endstream endobj 69 0 obj << /Length 80 /Filter /FlateDecode >> stream *8FTbp~>re&% K:*nW/{E5 c<̯Ou : 뺇=?}8Wendstream endobj 70 0 obj << /Length 80 /Filter /FlateDecode >> stream *8FTbp~mkG*hTn?e8 [D^r3V~o5):Sendstream endobj 71 0 obj << /Length 80 /Filter /FlateDecode >> stream *8FTbp~RL C:~K0 m3tP|bVk,|^<%6O 1->K Vendstream endobj 72 0 obj << /Length 80 /Filter /FlateDecode >> stream *8FTbp~ZT<. f1";6Wb3Zpm}atw΃v66I9;W') endstream endobj 73 0 obj << /Length 80 /Filter /FlateDecode >> stream *8FTbp~ँ~)5yZ!/Um#"{UָӀIf f> stream *8FTbp~u=5-v`ץWGl;=U{.>!v)84G#2uGendstream endobj 75 0 obj << /Length 80 /Filter /FlateDecode >> stream *8FTbp~t7usKF(9?x7~p|%ŻZ6GFv)*GkyQܶpŏendstream endobj 76 0 obj << /Length 80 /Filter /FlateDecode >> stream *8FTbp~)Mf.))G=CFayvJ⾩F@ ˢU&JN3t4xHRLendstream endobj 77 0 obj << /Length 80 /Filter /FlateDecode >> stream *8FTbp~'pשNP]R`/ m\a~LGkRZB 8HY;Rnj7endstream endobj 78 0 obj << /Length 80 /Filter /FlateDecode >> stream *8FTbp~i)^-Po({Ԓ"#Yjzж8tېOQۊҹ\"n0sڔ uvendstream endobj 79 0 obj << /CF << /StdCF << /AuthEvent /DocOpen /CFM /AESV2 /Length 16 >> >> /Filter /Standard /Length 128 /O <592497ab8b5ff92458336fbe82fc3b249b2be129617c59a403ffa9727c7743e6> /P -2052 /R 4 /StmF /StdCF /StrF /StdCF /U <67d9be6955fe883503c895150c5785d70122456a91bae5134273a6db134c87c4> /V 4 >> endobj 80 0 obj << /Type /XRef /Length 76 /Filter /FlateDecode /DecodeParms << /Columns 4 /Predictor 12 >> /W [ 1 2 1 ] /Root 1 0 R /Size 81 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] /Encrypt 79 0 R >> stream xcb&F~&b`$d 'pJPG VP20ø1,,D(!P&}E' endstream endobj startxref 10541 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.2-ogen.check0000644000064100006410000000026213247541377020102 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/merge-three-files-1.pdf0000644000064100006410000002045713247541377017737 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Outlines 2 0 R /PageLabels << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /PageMode /UseOutlines /Pages 3 0 R /Type /Catalog >> endobj 2 0 obj << /Count 6 /First 4 0 R /Last 5 0 R /Type /Outlines >> endobj 3 0 obj << /Count 16 /Kids [ 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R ] /Type /Pages >> endobj 4 0 obj << /Count 4 /Dest [ 9 0 R /XYZ null null null ] /First 22 0 R /Last 23 0 R /Next 5 0 R /Parent 2 0 R /Title (Iss 1 -> 5: /XYZ null null null) /Type /Outline >> endobj 5 0 obj << /Dest [ null /XYZ 66 756 3 ] /Parent 2 0 R /Prev 4 0 R /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Type /Outline >> endobj 6 0 obj << /Contents 24 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 25 0 R >> /ProcSet 26 0 R >> /Type /Page >> endobj 7 0 obj << /Contents 27 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 25 0 R >> /ProcSet 26 0 R >> /Type /Page >> endobj 8 0 obj << /Contents 28 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 25 0 R >> /ProcSet 26 0 R >> /Type /Page >> endobj 9 0 obj << /Contents 29 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 25 0 R >> /ProcSet 26 0 R >> /Type /Page >> endobj 10 0 obj << /Contents 30 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 25 0 R >> /ProcSet 26 0 R >> /Type /Page >> endobj 11 0 obj << /Contents 31 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 25 0 R >> /ProcSet 26 0 R >> /Type /Page >> endobj 12 0 obj << /Contents 32 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 33 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 13 0 obj << /Contents 34 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 33 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 14 0 obj << /Contents 35 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 33 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 15 0 obj << /Contents 36 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 33 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 16 0 obj << /Contents 37 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 33 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 17 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 33 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 18 0 obj << /Contents 39 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 25 0 R >> /ProcSet 26 0 R >> /Type /Page >> endobj 19 0 obj << /Contents 40 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 33 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 20 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 42 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 21 0 obj << /Contents 43 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 44 0 R >> /ProcSet 45 0 R >> /Type /Page >> endobj 22 0 obj << /Count -3 /Dest [ 18 0 R /Fit ] /First 46 0 R /Last 47 0 R /Next 23 0 R /Parent 4 0 R /Title (Amanda 1.1 -> 11: /Fit) /Type /Outline >> endobj 23 0 obj << /Count 2 /Dest [ null /FitH 792 ] /First 48 0 R /Last 49 0 R /Parent 4 0 R /Prev 22 0 R /Title /Type /Outline >> endobj 24 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  endstream endobj 25 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 26 0 obj [ /PDF /Text ] endobj 27 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr + endstream endobj 28 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr = endstream endobj 29 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr F endstream endobj 30 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr O endstream endobj 31 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  Sendstream endobj 32 0 obj << /Filter /FlateDecode /Length 54 >> stream xs Qw3T04UIS07" ̼TCKM,."q eendstream endobj 33 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 34 0 obj << /Filter /FlateDecode /Length 54 >> stream xs Qw3T04UIS07" ̼TC M,."h dendstream endobj 35 0 obj << /Filter /FlateDecode /Length 54 >> stream xs Qw3T04UIS07" ̼TCsM,."_ cendstream endobj 36 0 obj << /Filter /FlateDecode /Length 54 >> stream xs Qw3T04UIS07" ̼TC3M,."V bendstream endobj 37 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TBHk"M aendstream endobj 38 0 obj << /Filter /FlateDecode /Length 54 >> stream xs Qw3T04UIS07" ̼TCM,."D `endstream endobj 39 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr @ Jendstream endobj 40 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TKM,.V 4endstream endobj 41 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TKM,.V 4endstream endobj 42 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 43 0 obj << /Length 48 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 44 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 45 0 obj [ /PDF /Text ] endobj 46 0 obj << /Count -2 /Dest [ null /FitV 100 ] /First 50 0 R /Last 51 0 R /Next 47 0 R /Parent 22 0 R /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Type /Outline >> endobj 47 0 obj << /Count 1 /Dest [ null /XYZ null null null ] /First 52 0 R /Last 52 0 R /Parent 22 0 R /Prev 46 0 R /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Type /Outline >> endobj 48 0 obj << /Dest [ null /FitR 66 714 180 770 ] /Next 49 0 R /Parent 23 0 R /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Type /Outline >> endobj 49 0 obj << /Dest [ 6 0 R /XYZ null null null ] /Parent 23 0 R /Prev 48 0 R /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Type /Outline >> endobj 50 0 obj << /Dest [ null /XYZ null null null ] /Next 51 0 R /Parent 46 0 R /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Type /Outline >> endobj 51 0 obj << /Dest [ null /XYZ null null null ] /Parent 46 0 R /Prev 50 0 R /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Type /Outline >> endobj 52 0 obj << /Dest [ null /XYZ null null null ] /Parent 47 0 R /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Type /Outline >> endobj xref 0 53 0000000000 65535 f 0000000015 00000 n 0000000362 00000 n 0000000433 00000 n 0000000595 00000 n 0000000771 00000 n 0000000901 00000 n 0000001047 00000 n 0000001193 00000 n 0000001339 00000 n 0000001485 00000 n 0000001632 00000 n 0000001779 00000 n 0000001934 00000 n 0000002089 00000 n 0000002244 00000 n 0000002399 00000 n 0000002554 00000 n 0000002709 00000 n 0000002856 00000 n 0000003011 00000 n 0000003166 00000 n 0000003313 00000 n 0000003468 00000 n 0000003743 00000 n 0000003864 00000 n 0000003972 00000 n 0000004003 00000 n 0000004124 00000 n 0000004245 00000 n 0000004366 00000 n 0000004487 00000 n 0000004609 00000 n 0000004734 00000 n 0000004834 00000 n 0000004959 00000 n 0000005084 00000 n 0000005209 00000 n 0000005333 00000 n 0000005458 00000 n 0000005580 00000 n 0000005704 00000 n 0000005828 00000 n 0000005928 00000 n 0000006047 00000 n 0000006155 00000 n 0000006186 00000 n 0000006354 00000 n 0000006541 00000 n 0000006696 00000 n 0000006848 00000 n 0000007001 00000 n 0000007154 00000 n trailer << /Root 1 0 R /Size 53 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 7294 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.11-ogen.check0000644000064100006410000000067213247541377022155 0ustar ejbejbchecking a.pdf PDF Version: 1.5 R = 3 P = -4 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed File is linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/lin1.out0000644000064100006410000001531413247541377015172 0ustar ejbejbWARNING: end of first page section (/E) mismatch: /E = 1827; computed = 3889..3891 WARNING: page 0 has shared identifier entries WARNING: page 0: shared object 62: in hint table but not computed list lin1.pdf: linearization data: file_size: 13103 first_page_object: 62 first_page_end: 1827 npages: 30 xref_zero_offset: 11776 first_page: 0 H_offset: 1211 H_length: 203 Page Offsets Hint Table min_nobjects: 2 first_page_offset: 1414 nbits_delta_nobjects: 4 min_page_length: 259 nbits_delta_page_length: 12 min_content_offset: 0 nbits_delta_content_offset: 0 min_content_length: 0 nbits_delta_content_length: 12 nbits_nshared_objects: 2 nbits_shared_identifier: 2 nbits_shared_numerator: 4 shared_denominator: 8 Page 0: nobjects: 16 length: 2477 content_offset: 0 content_length: 2218 nshared_objects: 2 identifier 0: 0 numerator 0: 0 identifier 1: 0 numerator 1: 0 Page 1: nobjects: 2 length: 259 content_offset: 0 content_length: 0 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 2: nobjects: 2 length: 259 content_offset: 0 content_length: 0 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 3: nobjects: 2 length: 259 content_offset: 0 content_length: 0 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 4: nobjects: 2 length: 259 content_offset: 0 content_length: 0 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 5: nobjects: 2 length: 261 content_offset: 0 content_length: 2 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 6: nobjects: 2 length: 262 content_offset: 0 content_length: 3 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 7: nobjects: 2 length: 262 content_offset: 0 content_length: 3 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 8: nobjects: 2 length: 262 content_offset: 0 content_length: 3 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 9: nobjects: 2 length: 262 content_offset: 0 content_length: 3 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 10: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 11: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 12: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 13: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 14: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 15: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 16: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 17: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 18: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 19: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 20: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 21: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 22: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 23: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 24: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 25: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 26: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 27: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 28: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Page 29: nobjects: 2 length: 263 content_offset: 0 content_length: 4 nshared_objects: 2 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 Shared Objects Hint Table first_shared_obj: 0 first_shared_offset: 0 nshared_first_page: 16 nshared_total: 16 nbits_nobjects: 0 min_group_length: 34 nbits_delta_group_length: 9 Shared Object 0: group length: 157 Shared Object 1: group length: 105 Shared Object 2: group length: 117 Shared Object 3: group length: 34 Shared Object 4: group length: 82 Shared Object 5: group length: 191 Shared Object 6: group length: 144 Shared Object 7: group length: 168 Shared Object 8: group length: 291 Shared Object 9: group length: 165 Shared Object 10: group length: 162 Shared Object 11: group length: 182 Shared Object 12: group length: 201 Shared Object 13: group length: 150 Shared Object 14: group length: 164 Shared Object 15: group length: 164 Outlines Hint Table first_object: 66 first_object_offset: 1827 nobjects: 12 group_length: 2064 qpdf-8.0.2/qpdf/qtest/qpdf/coalesce-out.qdf0000644000064100006410000000422013247541377016647 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 2 /Kids [ 3 0 R 4 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 7 0 R >> /ProcSet 8 0 R >> /Type /Page >> endobj %% Page 2 %% Original object ID: 4 0 4 0 obj << /Contents 9 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 11 0 R >> /ProcSet 12 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 19 0 5 0 obj << /Length 6 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET [ /array/split ] BI /CS /G/W 66/H 47/BPC 8/F/Fl/DP<> ID xI P|C;U`7Z Ę}D_W->>^&u]"!*&E|Sy d-<B0B@N+<hlK/56L >0>Y!c\Y %Y8?&}j;3lpsHtQTt*hUw%)p"DiRjDYNUAvF& u#cW ߉WO EI endstream endobj %QDF: ignore_newline 6 0 obj 371 endobj %% Original object ID: 13 0 7 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 14 0 8 0 obj [ /PDF /Text ] endobj %% Contents for page 2 %% Original object ID: 15 0 9 0 obj << /Length 10 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 10 0 obj 44 endobj %% Original object ID: 17 0 11 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 18 0 12 0 obj [ /PDF /Text ] endobj xref 0 13 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000252 00000 n 0000000481 00000 n 0000000726 00000 n 0000001174 00000 n 0000001222 00000 n 0000001368 00000 n 0000001454 00000 n 0000001554 00000 n 0000001602 00000 n 0000001749 00000 n trailer << /Root 1 0 R /Size 13 /ID [<31415926535897932384626433832795>] >> startxref 1785 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad2.pdf0000644000064100006410000000135313247541377015077 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000128 00000 n 0000000300 00000 n 0000000389 00000 n 0000000424 00000 n trailer << /Size 7 /Root 1 0 R >> farbage 542 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad26-recover.out0000644000064100006410000000057413247541377016672 0ustar ejbejbWARNING: bad26.pdf: file is damaged WARNING: bad26.pdf (object 4 0, offset 307): expected n n obj WARNING: bad26.pdf: Attempting to reconstruct cross-reference table WARNING: bad26.pdf: object 4 0 not found in file after regenerating cross reference table /QTest is implicit /QTest is indirect and has type null (2) /QTest is null unparse: 4 0 R unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/bad36.out0000644000064100006410000000067113247541377015226 0ustar ejbejbWARNING: bad36.pdf (trailer, offset 764): unknown token while reading object; treating as string WARNING: bad36.pdf (trailer, offset 715): expected dictionary key but found non-name object; inserting key /QPDFFake2 WARNING: bad36.pdf (trailer, offset 715): dictionary ended prematurely; using null as value for last key /QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 0 done qpdf-8.0.2/qpdf/qtest/qpdf/xref-with-short-size.out0000644000064100006410000000123413247541377020345 0ustar ejbejbWARNING: xref-with-short-size.pdf (xref stream, offset 16227): Cross-reference stream data has the wrong size; expected = 52; actual = 56 1/0: compressed; stream = 5, index = 1 2/0: compressed; stream = 5, index = 0 3/0: uncompressed; offset = 15 4/0: compressed; stream = 5, index = 5 5/0: uncompressed; offset = 15548 6/0: compressed; stream = 5, index = 6 7/0: compressed; stream = 5, index = 4 8/0: compressed; stream = 5, index = 2 9/0: uncompressed; offset = 150 10/0: compressed; stream = 5, index = 3 11/0: compressed; stream = 5, index = 7 12/0: compressed; stream = 5, index = 8 qpdf: operation succeeded with warnings; resulting file may have some problems qpdf-8.0.2/qpdf/qtest/qpdf/numeric-and-string-3.pdf0000644000064100006410000000265413247541377020142 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /Pages 2 0 R /QNumbers [ 1 3.14159 ] /QStrings [ (No Special Characters) (These: and no more) ] /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents [ 4 0 R 6 0 R ] /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 8 0 R >> /ProcSet 9 0 R >> /Type /Page >> endobj %% Contents for page 1 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj %% Contents for page 1 6 0 obj << /Length 7 0 R >> stream BT /F1 24 Tf 72 696 Td (Salad) Tj ET endstream endobj 7 0 obj 43 endobj 8 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 9 0 obj [ /PDF /Text ] endobj xref 0 10 0000000000 65535 f 0000000025 00000 n 0000000377 00000 n 0000000459 00000 n 0000000694 00000 n 0000000793 00000 n 0000000835 00000 n 0000000933 00000 n 0000000952 00000 n 0000001070 00000 n trailer << /Root 1 0 R /Size 10 /ID [<76269ee0b6579446b731e060af8ef436>] >> startxref 1105 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/delete-and-reuse.qdf0000644000064100006410000003307113247541377017415 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /PageLabels 2 0 R /PageMode /UseOutlines /Pages 3 0 R /Type /Catalog >> endobj 2 0 obj << /Nums [ 0 << /P () >> 2 << /S /D /St 1 >> 7 << /P () >> 9 << /S /R /St 6 >> 11 << /P () >> 12 << /S /r /St 2 >> 15 << /S /r /St 6 >> 19 << /P () >> 20 << /S /R /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> endobj 3 0 obj << /Count 30 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R 33 0 R ] /Type /Pages >> endobj %% Page 1 4 0 obj << /Contents 34 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 2 5 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 3 6 0 obj << /Contents 40 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 4 7 0 obj << /Contents 42 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 5 8 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 6 9 0 obj << /Contents 46 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 7 10 0 obj << /Contents 48 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 8 11 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 9 12 0 obj << /Contents 52 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 10 13 0 obj << /Contents 54 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 11 14 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 12 15 0 obj << /Contents 58 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 13 16 0 obj << /Contents 60 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 14 17 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 15 18 0 obj << /Contents 64 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 16 19 0 obj << /Contents 66 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 17 20 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 18 21 0 obj << /Contents 70 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 19 22 0 obj << /Contents 72 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 20 23 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 21 24 0 obj << /Contents 76 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 22 25 0 obj << /Contents 78 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 23 26 0 obj << /Contents 80 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 24 27 0 obj << /Contents 82 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 25 28 0 obj << /Contents 84 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 26 29 0 obj << /Contents 86 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 27 30 0 obj << /Contents 88 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 28 31 0 obj << /Contents 90 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 29 32 0 obj << /Contents 92 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 30 33 0 obj << /Contents 94 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Contents for page 1 34 0 obj << /Length 35 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 0) Tj ET endstream endobj 35 0 obj 46 endobj 36 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 37 0 obj [ /PDF /Text ] endobj %% Contents for page 2 38 0 obj << /Length 39 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 39 0 obj 46 endobj %% Contents for page 3 40 0 obj << /Length 41 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 41 0 obj 46 endobj %% Contents for page 4 42 0 obj << /Length 43 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 43 0 obj 46 endobj %% Contents for page 5 44 0 obj << /Length 45 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 45 0 obj 46 endobj %% Contents for page 6 46 0 obj << /Length 47 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 47 0 obj 46 endobj %% Contents for page 7 48 0 obj << /Length 49 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 49 0 obj 46 endobj %% Contents for page 8 50 0 obj << /Length 51 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 51 0 obj 46 endobj %% Contents for page 9 52 0 obj << /Length 53 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 53 0 obj 46 endobj %% Contents for page 10 54 0 obj << /Length 55 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 55 0 obj 46 endobj %% Contents for page 11 56 0 obj << /Length 57 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 57 0 obj 47 endobj %% Contents for page 12 58 0 obj << /Length 59 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 59 0 obj 47 endobj %% Contents for page 13 60 0 obj << /Length 61 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 61 0 obj 47 endobj %% Contents for page 14 62 0 obj << /Length 63 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 63 0 obj 47 endobj %% Contents for page 15 64 0 obj << /Length 65 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 65 0 obj 47 endobj %% Contents for page 16 66 0 obj << /Length 67 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 67 0 obj 47 endobj %% Contents for page 17 68 0 obj << /Length 69 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 69 0 obj 47 endobj %% Contents for page 18 70 0 obj << /Length 71 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 71 0 obj 47 endobj %% Contents for page 19 72 0 obj << /Length 73 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 73 0 obj 47 endobj %% Contents for page 20 74 0 obj << /Length 75 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 75 0 obj 47 endobj %% Contents for page 21 76 0 obj << /Length 77 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 77 0 obj 47 endobj %% Contents for page 22 78 0 obj << /Length 79 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 79 0 obj 47 endobj %% Contents for page 23 80 0 obj << /Length 81 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 81 0 obj 47 endobj %% Contents for page 24 82 0 obj << /Length 83 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 83 0 obj 47 endobj %% Contents for page 25 84 0 obj << /Length 85 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 85 0 obj 47 endobj %% Contents for page 26 86 0 obj << /Length 87 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 87 0 obj 47 endobj %% Contents for page 27 88 0 obj << /Length 89 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 89 0 obj 47 endobj %% Contents for page 28 90 0 obj << /Length 91 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 91 0 obj 47 endobj %% Contents for page 29 92 0 obj << /Length 93 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 93 0 obj 47 endobj %% Contents for page 30 94 0 obj << /Length 95 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 95 0 obj 47 endobj xref 0 96 0000000000 65535 f 0000000025 00000 n 0000000124 00000 n 0000000655 00000 n 0000001052 00000 n 0000001257 00000 n 0000001462 00000 n 0000001667 00000 n 0000001872 00000 n 0000002077 00000 n 0000002282 00000 n 0000002488 00000 n 0000002694 00000 n 0000002901 00000 n 0000003108 00000 n 0000003315 00000 n 0000003522 00000 n 0000003729 00000 n 0000003936 00000 n 0000004143 00000 n 0000004350 00000 n 0000004557 00000 n 0000004764 00000 n 0000004971 00000 n 0000005178 00000 n 0000005385 00000 n 0000005592 00000 n 0000005799 00000 n 0000006006 00000 n 0000006213 00000 n 0000006420 00000 n 0000006627 00000 n 0000006834 00000 n 0000007041 00000 n 0000007260 00000 n 0000007363 00000 n 0000007383 00000 n 0000007502 00000 n 0000007561 00000 n 0000007664 00000 n 0000007707 00000 n 0000007810 00000 n 0000007853 00000 n 0000007956 00000 n 0000007999 00000 n 0000008102 00000 n 0000008145 00000 n 0000008248 00000 n 0000008291 00000 n 0000008394 00000 n 0000008437 00000 n 0000008540 00000 n 0000008583 00000 n 0000008686 00000 n 0000008730 00000 n 0000008833 00000 n 0000008877 00000 n 0000008981 00000 n 0000009025 00000 n 0000009129 00000 n 0000009173 00000 n 0000009277 00000 n 0000009321 00000 n 0000009425 00000 n 0000009469 00000 n 0000009573 00000 n 0000009617 00000 n 0000009721 00000 n 0000009765 00000 n 0000009869 00000 n 0000009913 00000 n 0000010017 00000 n 0000010061 00000 n 0000010165 00000 n 0000010209 00000 n 0000010313 00000 n 0000010357 00000 n 0000010461 00000 n 0000010505 00000 n 0000010609 00000 n 0000010653 00000 n 0000010757 00000 n 0000010801 00000 n 0000010905 00000 n 0000010949 00000 n 0000011053 00000 n 0000011097 00000 n 0000011201 00000 n 0000011245 00000 n 0000011349 00000 n 0000011393 00000 n 0000011497 00000 n 0000011541 00000 n 0000011645 00000 n 0000011689 00000 n 0000011793 00000 n trailer << /Root 1 0 R /Size 96 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 11813 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad32.out0000644000064100006410000000027213247541377015217 0ustar ejbejbWARNING: bad32.pdf (object 4 0, offset 307): expected 4 0 obj /QTest is implicit /QTest is indirect and has type null (2) /QTest is null unparse: 4 0 R unparseResolved: null test 0 done qpdf-8.0.2/qpdf/qtest/qpdf/aes-forced-check.out0000644000064100006410000000026213247541377017406 0ustar ejbejbchecking b.pdf PDF Version: 1.4 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/unfilterable-with-crypt.pdf0000644000064100006410000004271413247541377021061 0ustar ejbejb%PDF-1.7 % 83 0 obj <> endobj 89 0 obj <>/Encrypt 84 0 R/Filter/FlateDecode/ID[<7F25422CE0BDE941BB4347FD74E2B041><577C9CA541D94C45925D9251F4828076>]/Index[83 13]/Info 82 0 R/Length 50/Prev 17523/Root 85 0 R/Size 96/Type/XRef/W[1 2 1]>>stream hbbd``b`Z"d@D`qYlķd&F 1Ft?c endstream endobj startxref 0 %%EOF 95 0 obj <>stream hb```b````d``ŀ\@1F DLခ #6ꁘI330$0p B[30O@2i x>_8 \m|a1@Eu endstream endobj 84 0 obj <>>>/EFF/StdCF/EncryptMetadata false/Filter/Standard/Length 256/O(rj/}æEN.P0ĤmJ_\nC)/OE(9S\rFH#fնq-Rd9)/P -1028/Perms(OО@π)/R 6/StmF/Identity/StrF/Identity/U(SG/mA ,gBb0b巋7SX2`~:paL%$u)/UE(R eZri #m)/V 5>> endobj 85 0 obj <>>>/Metadata 62 0 R/Names 90 0 R/Outlines 66 0 R/PageLabels<>2<>7<>9<>11<>12<>15<>19<>20<>22<>23<>29<>]>>/PageMode/UseAttachments/Pages 78 0 R/Type/Catalog>> endobj 86 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 87 0 obj <>stream h޴Ur0 E q$R´YBEl P#$%2MW#&MNg-={w!x}C|8q?@,JY;J|M?5UW؏&jMV:!3}F8nVFR`$I4NSŤ8 [@`߁p@j+1KFZ qc.bWU cs#I</2Cb4ф;xրqh"CŰ14MA#'0T- VDK 䡦]K0ݎgэHF!hed%FdBY50RFQ4LJj)xP LP6f: ڦV9d߈2&ő'Ũ8`[Rm.hv;Q!zR. ³ҭǾb]Mh97@r|YܜP>stream BT /F1 24 Tf 72 720 Td (Potato 0) Tj ET endstream endobj 1 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 2 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 3 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 4 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 5 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 6 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 7 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 8 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 9 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 10 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 11 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 12 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 13 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 14 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 15 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 16 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 17 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 18 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 19 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 20 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 21 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 22 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 23 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 24 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 25 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 26 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 27 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 28 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 29 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 30 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 31 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 32 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 33 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 34 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 35 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 36 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 37 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 38 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 39 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 40 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 41 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 42 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 43 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 44 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 45 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 46 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 47 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 48 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 49 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 50 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 51 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 52 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 53 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 54 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 55 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 56 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 57 0 obj <>/ProcSet 94 0 R>>/Rotate 0/Type/Page>> endobj 58 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 59 0 obj <>stream hޔj0~LJd0PZJPچY'؞t $Ȇ wяg'&wf0\qrb1Y̬ф2$tac05ffiMS|7&y§28sͥOo/s B~L| CWj2+ɬozv6ޒA'83>JL,=6\L>null]/Filter[/Crypt/ZlateDecode]/Length 64/Params<>/Subtype/text#2Fplain>>stream NEpEAq=J#?}+-Wh5!0n "|Y1Be}P endstream endobj 61 0 obj <>null]/Filter[/Crypt/FlateDecode]/Length 2624/Params<>/Subtype/image#2Fx-png>>stream #,G>#_0@pI'b\e, SGTzxfH  ~]/޹_w%9?!٠*\Q5JzЖ3PfՇ47rJ)1#WܙKIPsk`EnbͫEcۯ_zȕg Y"O\ƛ#<8j{KgL[o}tPjCɻ)+m@Zˌi>ubK Q$[b(۪] f]w).Wd $mMfR3:5F At\G0y mB I/0SrB똞&BiA[#}k? A|a繭!V7=X=ȋ٬"[JD;F \ṋ+k1)0e'QiG4~8*cÉJF 9P3=G]?ofKh(w޲08ItDq>?|Wҗbbθzpsۓ*[]bҭךpc]&gnv 2E؁78kw ;X5z Gh# B jJ\$N*g}h mR^$ĎR:4j\ŵgs==dpT(d⟩&F͑M񧚑v"nc[Tàhz\rBëNQpݥZim,3_gtJ /W:O pboa?IUL]ŀj4=v/ XJ \,10ÏD<O@XA'qF Ț]GQk{O1Ʉ,dzTn ۀ،*cL[rt#7u?  lsEThE-(H 2n'dnbI>KI1pkGFm:@.h떀؊W{8)4*%seF}n T8O;p<ya v Sҩr Y N$8m'?p23K/Uџ#ͅu p4Ϭ~JQ\nPqd00G'e܃ vi/NNl; с aY PT+/> NZ8 pR}4_~2<^]2;cҹv%*틠E}~j5{`XBعH.ԯ|yQRwKn¸;5,53i7V'2:l^Î։|5 H@*Yzfv&hmf r#ZiPH; !MI-zE>nݥWKh/aJ_yV9*+oݸ((nxdq/P)W\DӣzrqˆH.'Gq\HՔ۱1zY;D><ރcAI#fJnYdm)CsM𾹝FJ+{}Hׇ'Lj(-19ϧ%Eҭxa dJ "l0!԰EMϋgJċ7z@H"6El.xWK53 [2 !/>A=Stz:O|$ -Z)G[nLcsyi:7D~{/|\N%|&(#Xyy\viP1j4?7Vnc"K37l@Yp!jn>-P=;6JƵN}*;R endstream endobj 62 0 obj <>stream 2012-12-29T17:33:38-05:00 2012-12-29T16:49:10-05:00 2012-12-29T17:33:38-05:00 application/pdf uuid:e2f4c09b-cfcf-4d3e-b4f4-2d5eba7e6962 uuid:4396bc5d-e335-48f9-99ff-f8f69f69b0c9 endstream endobj 63 0 obj <>stream h|OK0|^ߒEE=B B"/<9$uԓݒT\OJZrtoi7K&kڻMO$jcDH "A$@ Dh b@ \# SLޗO}sLȎlf-e'XWr[Qy/'[jj]=Poc e=Ц6xχ&,|-.5bZ_~k}Je} endstream endobj 64 0 obj <>stream h޲0R0Pw.JM,sI,Ip22042424434450U70POAW`nlllS`g`80 endstream endobj 65 0 obj <>/Encrypt 84 0 R/Filter/FlateDecode/ID[<7F25422CE0BDE941BB4347FD74E2B041><577C9CA541D94C45925D9251F4828076>]/Info 82 0 R/Length 75/Root 85 0 R/Size 83/Type/XRef/W[1 2 1]>>stream hbb&FB&@!0kb-$8YL) Hp NlX ='@"Xb10W# endstream endobj startxref 116 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/png-filters-decoded.pdf0000644000064100006410000010177513247541377020117 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 3 0 R /Type /Catalog >> endobj 2 0 obj << /CreationDate (D:20170819001859+02'00') >> endobj 3 0 obj << /Count 12 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R ] /Type /Pages >> endobj 4 0 obj << /Contents [ 16 0 R ] /MediaBox [ 0 0 32 32 ] /Parent 3 0 R /Resources 17 0 R /Type /Page >> endobj 5 0 obj << /Contents [ 18 0 R ] /MediaBox [ 0 0 32 32 ] /Parent 3 0 R /Resources 19 0 R /Type /Page >> endobj 6 0 obj << /Contents [ 20 0 R ] /MediaBox [ 0 0 32 32 ] /Parent 3 0 R /Resources 21 0 R /Type /Page >> endobj 7 0 obj << /Contents [ 22 0 R ] /MediaBox [ 0 0 32 32 ] /Parent 3 0 R /Resources 23 0 R /Type /Page >> endobj 8 0 obj << /Contents [ 24 0 R ] /MediaBox [ 0 0 32 32 ] /Parent 3 0 R /Resources 25 0 R /Type /Page >> endobj 9 0 obj << /Contents [ 26 0 R ] /MediaBox [ 0 0 32 32 ] /Parent 3 0 R /Resources 27 0 R /Type /Page >> endobj 10 0 obj << /Contents [ 28 0 R ] /MediaBox [ 0 0 32 32 ] /Parent 3 0 R /Resources 29 0 R /Type /Page >> endobj 11 0 obj << /Contents [ 30 0 R ] /MediaBox [ 0 0 32 32 ] /Parent 3 0 R /Resources 31 0 R /Type /Page >> endobj 12 0 obj << /Contents [ 32 0 R ] /MediaBox [ 0 0 32 32 ] /Parent 3 0 R /Resources 33 0 R /Type /Page >> endobj 13 0 obj << /Contents [ 34 0 R ] /MediaBox [ 0 0 32 32 ] /Parent 3 0 R /Resources 35 0 R /Type /Page >> endobj 14 0 obj << /Contents [ 36 0 R ] /MediaBox [ 0 0 32 32 ] /Parent 3 0 R /Resources 37 0 R /Type /Page >> endobj 15 0 obj << /Contents [ 38 0 R ] /MediaBox [ 0 0 32 32 ] /Parent 3 0 R /Resources 39 0 R /Type /Page >> endobj 16 0 obj << /Length 51 >> stream 1.000 0 0 1.000 0 0 cm q 32 0 0 32 0 0 cm /I1 Do Q endstream endobj 17 0 obj << /ProcSet [ /PDF /ImageB ] /XObject << /I1 40 0 R >> >> endobj 18 0 obj << /Length 51 >> stream 1.000 0 0 1.000 0 0 cm q 32 0 0 32 0 0 cm /I2 Do Q endstream endobj 19 0 obj << /ProcSet [ /PDF /ImageB ] /XObject << /I2 41 0 R >> >> endobj 20 0 obj << /Length 51 >> stream 1.000 0 0 1.000 0 0 cm q 32 0 0 32 0 0 cm /I3 Do Q endstream endobj 21 0 obj << /ProcSet [ /PDF /ImageB ] /XObject << /I3 42 0 R >> >> endobj 22 0 obj << /Length 51 >> stream 1.000 0 0 1.000 0 0 cm q 32 0 0 32 0 0 cm /I4 Do Q endstream endobj 23 0 obj << /ProcSet [ /PDF /ImageB ] /XObject << /I4 43 0 R >> >> endobj 24 0 obj << /Length 51 >> stream 1.000 0 0 1.000 0 0 cm q 32 0 0 32 0 0 cm /I5 Do Q endstream endobj 25 0 obj << /ProcSet [ /PDF /ImageB ] /XObject << /I5 44 0 R >> >> endobj 26 0 obj << /Length 51 >> stream 1.000 0 0 1.000 0 0 cm q 32 0 0 32 0 0 cm /I6 Do Q endstream endobj 27 0 obj << /ProcSet [ /PDF /ImageB ] /XObject << /I6 45 0 R >> >> endobj 28 0 obj << /Length 51 >> stream 1.000 0 0 1.000 0 0 cm q 32 0 0 32 0 0 cm /I7 Do Q endstream endobj 29 0 obj << /ProcSet [ /PDF /ImageB ] /XObject << /I7 46 0 R >> >> endobj 30 0 obj << /Length 51 >> stream 1.000 0 0 1.000 0 0 cm q 32 0 0 32 0 0 cm /I8 Do Q endstream endobj 31 0 obj << /ProcSet [ /PDF /ImageB ] /XObject << /I8 47 0 R >> >> endobj 32 0 obj << /Length 51 >> stream 1.000 0 0 1.000 0 0 cm q 32 0 0 32 0 0 cm /I9 Do Q endstream endobj 33 0 obj << /ProcSet [ /PDF /ImageB ] /XObject << /I9 48 0 R >> >> endobj 34 0 obj << /Length 52 >> stream 1.000 0 0 1.000 0 0 cm q 32 0 0 32 0 0 cm /I10 Do Q endstream endobj 35 0 obj << /ProcSet [ /PDF /ImageB ] /XObject << /I10 49 0 R >> >> endobj 36 0 obj << /Length 52 >> stream 1.000 0 0 1.000 0 0 cm q 32 0 0 32 0 0 cm /I11 Do Q endstream endobj 37 0 obj << /ProcSet [ /PDF /ImageB ] /XObject << /I11 50 0 R >> >> endobj 38 0 obj << /Length 52 >> stream 1.000 0 0 1.000 0 0 cm q 32 0 0 32 0 0 cm /I12 Do Q endstream endobj 39 0 obj << /ProcSet [ /PDF /ImageB ] /XObject << /I12 51 0 R >> >> endobj 40 0 obj << /BitsPerComponent 16 /ColorSpace /DeviceRGB /Height 32 /Subtype /Image /Type /XObject /Width 32 /Length 6144 >> stream {9ֵs1k)c!{skZcZRJRB91)J!B{9ֵs1k)c!{skZcZRJRB91)J!BB{{{{9{{ֵ{s{1{{{k{){{{c{!{{{s{kZ{c{Z{R{JR{B{9{1{)J{!{{{B{B{99{9999ֵ9s91999k9)999c9!9{9s9kZ9c9Z9R9JR9B99919)J9!999BB99{9ֵs1k)c!{skZcZRJRB91)J!BB!ֵֵ{ֵ9ֵֵֵֵsֵ1ֵֵֵkֵ)ֵֵֵcֵ!ֵ{ֵsֵkZֵcֵZֵRֵJRֵBֵ9ֵ1ֵ)Jֵ!ֵBֵֵBֵ!ֵ)Jss{s9ssֵsss1sssks)ssscs!s{ssskZscsZsRsJRsBs9s1s)JsB!sss!Bs)Js111{1911ֵ1s11111k1)111c1!1{1s1kZ1c1Z1R1JR1B19111B)J1!11!1)JB1119{9ֵs1k)c!{޽skZcZֽRJRB9νB1)J!!ƽ)J1B9B{9ֵs1ﵭk)絭c!{޵skZcZֵRJRBB9ε1)J!!)JƵ19BBJRkk{k9kkֵksk1kkkkk)kkkck!k{ޭkskkZkckZ֭kRkJRkBBk9έk1k!)Jk)J!k1ƭk9kBBkJRkR)){)9))ֵ)s)1)))k)))))c)!){ޥ)s)kZ)c)Z֥)R)BJR)B)9Υ)!1))J)J)1!)9ƥ)B)JRB)R)Z{9ֵs1k)c!{ޜskZcZ֜BRJRB!9Μ)J11)J9!BƜJRRBZc{9ֵs1k)甥c!{ޔskZcBZ֔RJR!B)J9Δ119)JB!JRƔRZBckZcc{c9ccֵcsc1ccckc)ccccc!c{ތcsckZcBccZ֌cRc!JRc)JBc19Όc91cB)JcJR!cRƌcZccBckZcs!!{!9!!ֵ!s!1!!!k!)!!!c!!!{ބ!s!BkZ!c!Zք!!R!)JJR!1B!99΄!B1!JR)J!R!!ZƄ!c!kZB!s!{{{{{9{{ֵ{s{1{{{k{){{{c{!{{{Bs{kZ{c{!Z{)JR{1JR{9B{B9{JR1{R)J{Z!{c{kZ{sB{{{ބ!ss{s9ssֵsss1sssks)ssscs!sB{ssskZs!cs)JZs1Rs9JRsBBsJR9sR1sZ)Jsc!skZsss{Bs!sckZkZ{kZ9kZkZֵkZskZ1kZkZkZkkZ)kZkZkZckZB!kZ{kZskZ!kZkZ)JckZ1ZkZ9RkZBJRkZJRBkZR9kZZ1kZc)JkZkZ!kZskZ{kZ!BkZckZcc{c9ccֵcsc1ccckc)cccBcc!c{c!sc)JkZc1cc9ZcBRcJRJRcRBcZ9cc1ckZ)Jcs!c{c!ccBccZZ{Z9ZZֵZsZ1ZZZkZ)ZZBZcZƄ!Z!{Z)JsZ1kZZ9cZBZZJRRZRJRZZBZc9ZkZ1Zs)JZ{!Zք!Z֌cZ֔BZ֜Z֥)RR{R9RRֵRsR1RRRkR)RBRRƌcR!!R)J{R1sR9kZRBcRJRZRRRRZJRRcBRkZ9Rs1R{)JR!!RcRRBR)RkJRJR{JR9JRJRֵJRsJR1JRJRJRkJRB)JRJRƔJR!cJR)J!JR1{JR9sJRBkZJRJRcJRRZJRZRJRcJRJRkZBJRs9JR{1JR!)JJRc!JRJRJR)BJRkJRBB{B9BBֵBsB1BBBBkB)BƜB!B)JcB1!B9{BBsBJRkZBRcBZZBcRBkZJRBsBB{9B!1Bc)JB!BB)BkBBB99{9999ֵ9s9199B9k9ƥ)9!9)J91c99΄!9B{9JRs9RkZ9Zc9cZ9kZR9sJR9{B9΄!99Όc19Δ)J9Μ!9Υ)9έk9εB9ν9111{1911ֵ1s111B11ƭk1!)1)J1119Όc1B!1JR{1Rs1ZkZ1cc1kZZ1sR1{JR1!B1c9111)J1)!1k11B111s)J)J{)J9)J)Jֵ)Js)JB1)J)JƵ)J!k)J)J))J1)J9Δ)JBc)JJR!)JR{)JZs)JckZ)JkZc)JsZ)J{R)J!JR)JcB)J9)J1)J))J)Jk!)J)J)J1B)Js)Jֵ!!{!9!!ֵ!Bs!1!ƽ!!!)Jk!1)!9Μ!B!JRc!R!!Z{!cs!kZkZ!sc!{Z!!R!cJR!B!9!)1!k)J!!!!1!sB!ֵ!{9Bֵs1!)J1k9Υ)BJRRcZք!c{kZsskZ{cƄ!ZƌcRƔJRƜBƥ)9ƭk1Ƶ)Jƽ!1sֵB9{9Bֵs!1)J19έkB)JRRZ֌cc!kZ{ss{kZ!ccZRJR)Bk91)J1!sֵB9{BB{BB9BBֵB!sB)J1B1B9εBBkBJR)BRBZ֔BccBkZ!Bs{B{sB!kZBccBZBRB)JRBkBB9B1B1)JBs!BֵBB9BB{BB{9!ֵ)Js119νBJRkR)Z֜ckZcs!{{!sckZcZ)RkJRB911s)Jֵ!9{Bendstream endobj 41 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /Height 32 /Subtype /Image /Type /XObject /Width 32 /Length 1024 >> stream vovgov`govY`govRY`govLRY`govELRY`gov?ELRY`gov:?ELRY`gov4:?ELRY`gov/4:?ELRY`go*/4:?ELRY`g&*/4:?ELRY`v!&*/4:?ELRYov!&*/4:?ELRg!&*/4:?ELv!&*/4:?Egov!&*/4:?Y`gov!&*/4:LRY`go !&*/4LRY` !&*/4ov !&*/4`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`govendstream endobj 42 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Height 32 /Subtype /Image /Type /XObject /Width 32 /Length 3072 >> stream  ')/179?AGJORWZ_bgjosw{&-4;'C/J7Q?XG`OgWn_ug|owſ7;?EKQW']/d7j?pGvO|W_gowǷͿMSX_dins'x/}7?GOW_gowƧ˯зտ`gov'.7?GNW_gnwŎɗ͟Ѧծٷݿ߳oxЁߋ'.7?GNW_gnwЇӎٟ֗ܦץ|Лߧ'.7?GNW_gnwΘе'.7?GNW_gnwƌ&^fnv~p{^fnv~Xu`is|&.6>^fnv~BjIuPX_hpy%-5=U]emu}0_5j:u@FLSZahp %-MU]emu} U$_'j,u049>CHN`e joEMU]emu}LU_ju #&)-0;@F k=qEwM}U]emu}C L U _ ju5K4RCHNTY`ej   & , 4;CLU_ju #&)-048;@F   &,4;C L U _ ju endstream endobj 43 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /Height 32 /Subtype /Image /Type /XObject /Width 32 /Length 1024 >> stream vovgov`govY`govRY`govLRY`govELRY`gov?ELRY`gov:?ELRY`gov4:?ELRY`gov/4:?ELRY`go*/4:?ELRY`g&*/4:?ELRY`gov!&*/4:?ELRY`gov!&*/4:?ELRY`go!&*/4:?ELRY`g!&*/4:?ELRY`v!&*/4:?ELRYov!&*/4:?ELRgov !&*/4:?EL`gov !&*/4ov !&*/gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`govendstream endobj 44 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Height 32 /Subtype /Image /Type /XObject /Width 32 /Length 3072 >> stream  ')/179?AGJORWZ_bgjosw{&-4;'C/J7Q?XG`OgWn_ug|owſ7;?EKQW']/d7j?pGvO|W_gowǷͿMSX_dins'x/}7?GOW_gowƧ˯зտ`gov'.7?GNW_gnwŎɗ͟Ѧծٷݿ߳oxЁߋ'.7?GNW_gnwЇӎٟ֗ܦץ|Лߧ'.7?GNW_gnwΘе'.7?GNW_gnwƌ&.6NV^fnv~p{&FNV^fnv~Xu`is|>FNV^fnv~BjIuPX_hpy5=EMU]emu}0_5j:u@FLSZahp-5=EMU]emu} U$_'j,u049>CHN`e t%y-~5=EMU]emu}LU_ju #&)-048;@RX%^-d5k=qEwM}U]emu}C L U _ ju.5<$C,K4RCHNTY`ej   & , 4;CLU_ju #&)-048;@F   &,4;C L U _ ju endstream endobj 45 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /Height 32 /Subtype /Image /Type /XObject /Width 32 /Length 1024 >> stream vovgov`govY`govRY`govLRY`govELRY`gov?ELRY`gov:?ELRY`gov4:?ELRY`gov/4:?ELRY`go*/4:?ELRY`gov&*/4:?ELRY`gov!&*/4:?ELRY`gov!&*/4:?ELRY`gov!&*/4:?ELRY`go!&*/4:?ELRY`!&*/4:?ELRov!&*/4:?E`gov !&*/4:RY`gov !&*/v !&*ov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`govendstream endobj 46 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Height 32 /Subtype /Image /Type /XObject /Width 32 /Length 3072 >> stream  ')/179?AGJORWZ_bgjosw{&-4;'C/J7Q?XG`OgWn_ug|owſ7;?EKQW']/d7j?pGvO|W_gowǷͿMSX_dins'x/}7?GOW_gowƧ˯зտ`gov'.7?GNW_gnwŎɗ͟Ѧծٷݿ߳oxЁߋ'.7?GNW_gnwЇӎٟ֗ܦץ|Лߧ'.7?GNW_gnwΘе'.7?GNW_gnwƌ&^fnv~p{^fnv~Xu`is|&.6>^fnv~BjIuPX_hpy%-5=U]emu}0_5j:u@FLSZahp %-5MU]emu} U$_'j,u049>CHNTY`e jot%y-EMU]emu}LU_ju #&)-048;@F LRX%k=qEwM}U]emu}C L U _ ju ' .K4RCHNTY`ej   & , 4;CLU_ju #&)-048;@F   &,4;C L U _ ju endstream endobj 47 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /Height 32 /Subtype /Image /Type /XObject /Width 32 /Length 1024 >> stream vovgov`govY`govRY`govLRY`govELRY`gov?ELRY`gov:?ELRY`gov4:?ELRY`gov/4:?ELRY`gov*/4:?ELRY`gov&*/4:?ELRY`go!&*/4:?ELRY`g!&*/4:?ELRY`gov!&*/4:?ELRY`gov!&*/4:?ELRY`gov!&*/4:?ELRY`gov!&*/4:LRY`go !&*/4LRY` !&*/4ov !&*/4`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`govendstream endobj 48 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Height 32 /Subtype /Image /Type /XObject /Width 32 /Length 3072 >> stream  ')/179?AGJORWZ_bgjosw{&-4;'C/J7Q?XG`OgWn_ug|owſ7;?EKQW']/d7j?pGvO|W_gowǷͿMSX_dins'x/}7?GOW_gowƧ˯зտ`gov'.7?GNW_gnwŎɗ͟Ѧծٷݿ߳oxЁߋ'.7?GNW_gnwЇӎٟ֗ܦץ|Лߧ'.7?GNW_gnwΘе'.7?GNW_gnwƌnv~p{fnv~Xu`is|&.6V^fnv~BjIuPX_hpy %EMU]emu}0_5j:u@FLSZahpw 5=EMU]emu} U$_'j,u049>CHNTY`t%y-~5=EMU]emu}LU_ju #&)-048^-d5k=qEwM}U]emu}C L U _ ju ' C,K4RCHNTY`ej   & , 4;CLU_ju #&)-048;@F   &,4;C L U _ ju endstream endobj 49 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /Height 32 /Subtype /Image /Type /XObject /Width 32 /Length 1024 >> stream vovgov`govY`govRY`govLRY`govELRY`gov?ELRY`gov:?ELRY`gov4:?ELRY`gov/4:?ELRY`gov*/4:?ELRY`gov&*/4:?ELRY`g!&*/4:?ELRY`v!&*/4:?ELRov!&*/4:?EL`gov!&*/4:?EY`go!&*/4:?!&*/4: !&*/4:?ELRYov !&*/4:?ELRgov !&*/4:?EL`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`govendstream endobj 50 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Height 32 /Subtype /Image /Type /XObject /Width 32 /Length 3072 >> stream  ')/179?AGJORWZ_bgjosw{&-4;'C/J7Q?XG`OgWn_ug|owſ7;?EKQW']/d7j?pGvO|W_gowǷͿMSX_dins'x/}7?GOW_gowƧ˯зտ`gov'.7?GNW_gnwŎɗ͟Ѧծٷݿ߳oxЁߋ'.7?GNW_gnwЇӎٟ֗ܦץ|Лߧ'.7?GNW_gnwΘе'.7?GNW_gnwƌ&.6NV^fnv~p{&.FNV^fnv~Xu`is|>FNV^fnv~BjIuPX_hpy -5=EMU]emu}0_5j:u@FLSZahpw%-5=EMU]emu} U$_'j,u049>CHNTYjot%y-~5=EMU]emu}LU_ju #&)-04F LRX%^-d5k=qEwM}U]emu}C L U _ ju ' .5<$C,K4RCHNTY`ej   & , 4;CLU_ju #&)-048;@F   &,4;C L U _ ju endstream endobj 51 0 obj << /BitsPerComponent 4 /ColorSpace /DeviceGray /Height 32 /Subtype /Image /Type /XObject /Width 32 /Length 512 >> stream EUUT0VwwwweAVxe0Fxdgv@Fy˻dg˺v0x˩QF̺dWܻuh˩0x˹@y̺Py̺PyܺPyܺPy̺Py̺Px˹@h˩0WܻuF̺dx˩Qg˺v0Fy˻dgv@FxdVxe0VwwwweAEUUT0endstream endobj xref 0 52 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000125 00000 n 0000000257 00000 n 0000000367 00000 n 0000000477 00000 n 0000000587 00000 n 0000000697 00000 n 0000000807 00000 n 0000000917 00000 n 0000001028 00000 n 0000001139 00000 n 0000001250 00000 n 0000001361 00000 n 0000001472 00000 n 0000001583 00000 n 0000001684 00000 n 0000001758 00000 n 0000001859 00000 n 0000001933 00000 n 0000002034 00000 n 0000002108 00000 n 0000002209 00000 n 0000002283 00000 n 0000002384 00000 n 0000002458 00000 n 0000002559 00000 n 0000002633 00000 n 0000002734 00000 n 0000002808 00000 n 0000002909 00000 n 0000002983 00000 n 0000003084 00000 n 0000003158 00000 n 0000003260 00000 n 0000003335 00000 n 0000003437 00000 n 0000003512 00000 n 0000003614 00000 n 0000003689 00000 n 0000009981 00000 n 0000011153 00000 n 0000014372 00000 n 0000015544 00000 n 0000018763 00000 n 0000019935 00000 n 0000023154 00000 n 0000024326 00000 n 0000027545 00000 n 0000028717 00000 n 0000031936 00000 n trailer << /Info 2 0 R /Root 1 0 R /Size 52 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 32595 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/tokenize-content-streams.out0000644000064100006410000000257113247541377021304 0ustar ejbejboperator: BT name: /F1 integer: 24 operator: Tf integer: 72 integer: 720 operator: Td string: (Potato) operator: Tj operator: ET -EOF- real: 0.1 integer: 0 integer: 0 real: 0.1 integer: 0 integer: 0 operator: cm operator: q integer: 0 real: 1.1999 real: -1.1999 integer: 0 real: 121.19 real: 150.009 operator: cm operator: BI name: /CS name: /G name: /W integer: 1 name: /H integer: 1 name: /BPC integer: 8 name: /F name: /Fl name: /DP dictionary: << /Columns 1 /Predictor 15 >> operator: ID inline-image: 789c63fc0f0001030101 operator: EI operator: Q operator: q integer: 0 real: 35.997 real: -128.389 integer: 0 real: 431.964 real: 7269.02 operator: cm operator: BI name: /CS name: /G name: /W integer: 30 name: /H integer: 107 name: /BPC integer: 8 name: /F name: /Fl name: /DP dictionary: << /Columns 30 /Predictor 15 >> operator: ID inline-image: 789cedd1a11100300800b1b2ffd06503148283bc8dfcf8af2a306ee352eff2e06318638c31c63b3801627b620a operator: EI operator: Q operator: q integer: 0 real: 38.3968 real: -93.5922 integer: 0 real: 431.964 real: 7567.79 operator: cm operator: BI name: /CS name: /G name: /W integer: 32 name: /H integer: 78 name: /BPC integer: 8 name: /F name: /Fl name: /DP dictionary: << /Columns 32 /Predictor 15 >> operator: ID inline-image: 789c63fccf801f308e2a185530aa60882a20203faa605401890a0643aa1e5530aa6054010d140000bdd03c13 operator: EI operator: Q -EOF- test 37 done qpdf-8.0.2/qpdf/qtest/qpdf/c-invalid-password.out0000644000064100006410000000017013247541377020027 0ustar ejbejberror: enc-R2,V1,U=view.pdf: invalid password code: 4 file: enc-R2,V1,U=view.pdf pos : 0 text: invalid password qpdf-8.0.2/qpdf/qtest/qpdf/good1.pdf0000644000064100006410000000145513247541377015303 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R >> % Null characters to screw things up a bit s startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.9-ogen.c-check0000644000064100006410000000005013247541377020622 0ustar ejbejbversion: 1.5 linearized: 1 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/c-check-clear.out0000644000064100006410000000001213247541377016675 0ustar ejbejbstatus: 0 qpdf-8.0.2/qpdf/qtest/qpdf/test4-4.qdf0000644000064100006410000000322613247541377015475 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 4 0 R /Type /Catalog >> endobj %% Original object ID: 11 0 2 0 obj << /A [ 14 15 9 ] /Author (Mr. Potato Head) /B << /A [ 100 2 3 ] /B (B) >> /Title (Some Title Is Here) >> endobj %% Original object ID: 2 0 3 0 obj << /A 5 0 R /B 6 0 R /Subject (Subject) /Title (Some Title Is Here) >> endobj %% Original object ID: 3 0 4 0 obj << /Count 1 /Kids [ 7 0 R ] /Type /Pages >> endobj %% Original object ID: 4 0 5 0 obj [ 100 2 3 ] endobj %% Original object ID: 5 0 6 0 obj << /A 5 0 R /B (B) >> endobj %% Page 1 %% Original object ID: 6 0 7 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 10 0 R >> /ProcSet 11 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 7 0 8 0 obj << /Length 9 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 9 0 obj 44 endobj %% Original object ID: 9 0 10 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 10 0 11 0 obj [ /PDF /Text ] endobj xref 0 12 0000000000 65535 f 0000000052 00000 n 0000000134 00000 n 0000000337 00000 n 0000000459 00000 n 0000000558 00000 n 0000000619 00000 n 0000000698 00000 n 0000000942 00000 n 0000001041 00000 n 0000001087 00000 n 0000001234 00000 n trailer << /Info 2 0 R /QTest 3 0 R /Root 1 0 R /Size 12 /ID [<31415926535897932384626433832795>] >> startxref 1270 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.pdf0000644000064100006410000014205313247541377020503 0ustar ejbejb%PDF-1.5 % 1 0 obj << /Pages 4 0 R /Type /Catalog >> endobj 2 0 obj << /Type /ObjStm /Length 226 /Filter /FlateDecode /N 4 /First 21 >> stream 56M42DŽ n0'9O["v=n x$_!ȴb|+U,GO_3C4rr V|"sǬd2z"k@]Q S+=,s-[?~_6?K#]GM:!I>0ؐ_iWShYf~J$BY0@;}endstream endobj 7 0 obj << /Length 61 /Filter /FlateDecode >> stream 'z"٤ Z3S1Xx=:|:+L$U_S-&/endstream endobj 8 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter [ /DCTDecode ] /Height 600 /Subtype /Image /Type /XObject /Width 555 /Length 39109 >> stream }F$5az1=4%_HATf.Cs> mܿg9=@X1.,~/YzKR|y˥~!xJjEއ zzᨥj61vS%ϦH2o!'z:.בW?:1F2#6Lg\%e0Le@:(<]J*SnÉMDBGK+Yv#&) Du-L/xx4bj3?ǵ̦=1݁nd&6t-^,upn395 B頭B*hv~Hz qxF+ϭo?xgiW 5vEpfFj鸹6DMڐ*MH|^Wsbj)ymZQ+G~ eM( ! f%g^X;cpOzUSSHlB'Шcow<-} @Q7 68sD)\AɫMЉvW\uG@IZK ; '~t ¡D7# TUG},* M2l寂 nڴ?wfq夗֭H"sNK,o '%ymI8҇F#3"XhU0ɫ1u'p 39ō"˭6Ww+,ŵ.*L¨z#lqĨYO/NeW3ٍZNZi©H=?@(T[]S ^uxTV"pl8'$C^:F}tN)H>K.[w"[4][ۅ^$ ǽNW;ZIMuX )6^tڨLd yS4xܨuFk a bNm$#hpv쪓ͮ a%h ;1ĉwW CFAӀ؃iB=cuk[դ |Fǡ$Q;!6dE 4h@ k]?"&jcuStP|MB6\̥(rn(n18lS-bCy'l=J)/CME1k# LA NH s_T+l5:HǙ(Vˮd2 z]`KQA/~3Rt :b}3F?ʊ )GDFi(/j5聰LhaZ0{H;0~@!&8,[bvГ32f7Ĥhjk \VJ)_`G)<,R" cMn)9ӣK֒KJdk3P`*U dX0e""Joz 2؅1r' JiجKN1fhvFp/YcFQjhO|ZTR2o$QQ.ɛm&|·eUIDxi.3D}%O)xAӧM䒁E憶VF K߃N҃eY/FhL^Ede&Qgm4۵>M܎)1qA什..K=o!?,b8~^+s($wɠ|=SGuTbRXՃ6ړv8mDw03 8}ooP= Ei-p>K&lkټgB=ta["Vg ]⮿|F8ʋ+Yۧ:5+3w*P'qAtyG>귆s mz}Cyn7Ӎ@)JўEN$1$fz ϾwehJM,5uA_$RRX~Ʉ*R޺a!z]@#Y#d4/4y,r'tڂw.I XP0W M`(R5`LA' ̈e{֭ (;zk?f s@S@;S!]3QMZ_|PFnx#ʂBz_ZBbuC2*o_l)Sؖ~:)@W¬J@/|cYb)Ynm'1vԝ|9ʂwhLCpS8 ܿDěh<)"X#bҼf*ZLW*RR?64B>g@ fz=Vİy.bC8д݋S/9"o2kQ}j(|ZnvM Aj%8%Cc .fA<2A])`h _Uo hiWKӁ*6fcb@ Ay>?Y&rTkg ڄF=$8e/G>q{rUUt3axNIW(>~d1R u4g#@ Sy@yeBʞGSU?T.CVĢS$괁g@bLUN&(pIs@k: 86ҩEuhe]N4/a7n$ekg./|h6Zl| ǥK/x|H`~͘:0tD)guoŖ'FU}ڝG w-Lsvb͔[DT YnAeVװ/VB:yܞg}U=`fksyTLA$X!?V,V YD|Ν3L]^m4eJH٫f %|/F+w|Σm.UWL JحYRK縙x&Ǩiܖq:n%r ъC F,eE6>C[E֏<lrfSYPCԺVry?yMXuXMdV6]̤`P!D"L?P1|.J-;CU(I`Tb ^ySC m?PƕUƬ˜#[QF74Y10c~x=/dϰ_$IM_kHxئ5)nPzrQ&7Gݳ)}и&G c1k[VyPڻ ?vPü9U/T%ܤ'EU9Ami5٩8Rѝvg! S""Q #|;``w: ΍;"oƋ4 nRfŭ"[LjKYIІ^efIR$O9Z{dڋN[wbAJw&$R֞) ݈,Tw.LOZ}1*$kz;S n[]TRC^f>@t%cݐY:8ͅ7u25 LD4  SC>3́'b45ĉS\_SZS4ALgeSf«ItځʏꩦMlԩ#Al:@.3Oܨj;#F#ݐ5x)>Jv :&R|I]SW5A/z"'bDK#Z/e,ʹ<_@l˵ K!\EEҐjUc4ǍӔq憑I.o4 p&50VE86aRuD%LulBJXEjVI vGoE8D_) ۾.-F܈@vnR7zEZA{!"$wmo@f/l>뎊˥ <ܥ~QA#3$W|:ע%3J8w=GA7,SF^%#)*+iNfǧ|]5`f80Ǯ; G71Qm^2g,vo fZy0.PRʶtFXVE}xeᤙۏɺm s̤V8}#HUTc(D\VACxf`n}$<Џ! )7cH(,ida bH+C 0gG Ʀ C'ȸRg;_6 d+]M}8~f@tkl(2+>HwF1{2ܚBb68p勿O@I/8K9cd[Ws\MeHNRtjmQY3߿,::3.Jnw5^'v[HaƟ)WdgaIgL%mlWat5!bW.x/F{ϬAhⅻ%즗qY=7FΎq0eʠ/(r^eۄɀ.kX8|ݦ$ z\!ØA}NP]KtlɄORYH C*:n>p$L WwY8bU"IM%Ȁ\F?n,!!C2nNB 5wOd8r+c1b:Q;x%K8mp'Jُ0FЀƔ\Z[0xTN/F4f7\X:![:L5Ǽf&ʛ 1y|< ^_"zih_+diٙS#Lf;IpD|^9 {"3K3D^N`a.Q SۉN+} г=CMa$bkc>1[x_FT Kە>嘨\{)FnbƘ[N{nLǿ=@;DxUN&b.-4FYC:@j=P5[ LO:vUYL2^CBI3+@G{/[:Df0bw7|Àk2;F~$QE+8n}p%-9x|pB dh$h Ь[ {mOP?E6i@,G-T~5칚܇twтMNA5݋Rg\ĕwTjUqk(hx@@%v^?J>d@Z䕏IHbq,$3,?WocZ) ܟޅs-sX{HI kXؙ:1'-Ufp"ל9D<5;朵oH#q\lϤ3Z820 (|wg) RA T1j vK zEʙIz_$4:;d\&YnpVs(=pM=P?* .%$㤄4O O VvA'!i8If9ۺ5ͻ-϶g[̽Qda+1ϛ2Jvr >+(z7Oa x\%XA]FG]oJ0yh47n0JWpws D[1z&}|:,Q@sn-WCk0J: 4|3=8v4A}@1i#9=QfңUa:W+Ҽ-:Tчa@~qi9S &DFM;CCu'qMKvqy-<^P91t18ui,2KE$&vEs ɓ8NqOGU7^Dl|[#u}6y[R"gJԴճǔMb-x@/ <}'kEu _tf桔Z<.>]v ddlohgƷE])OD(G<X6Vj`9"Ztp_ =@ "cFFsorL){vvTOiCA55jK2߆ )VNHHZ3Je%Vg>kq^1rkgȹ@qe&->9}ǁ!I8|vv Tߐ^Q?79 Ff99 C~UݎI#HY#0bDAŏ.9&ni)ir^AIY9@EjEjvv(Q'^_: `v >K +=$3h/G>]jx7S)[ody?t~jGб^WydJeCwîT2|i*„#ip" d @+yc t]v8[$! {^}Hm6eCzm%]A~X\~ g -a9E#ҁ羹 pk &hYS?/zFǒ%7jY%$C@qOQ  G^Ff[l;m֯.H{+"w*e.e BJUW!ޠh$QoV=ObF檸/M!? e<ma~~~ӕA f!AW &fL6]+}.ߟ֕?]q1hڞʘNmD^@RrU'Y.Wx".#GЌХI=4xwsمs5kyRKfjje+O#R1&( ~ܔ6|*7o Y@uT˓U>JZy|Qy6[9㦑U2VpUq}.9@ DQ{\PZS)@*Ǟ 9߭MME,BY|nqf7Cb&e@ B7Rcn "/NZU̿J@nyIM9qAxcLXuv|E_ n2'{`-43سkP[ 46ltnKބYqne~[r&kZΝ=ؐ{i*n RkT>߆~ TVJ(96o}-񤤧9!ؙϖe,= zK_Y7C$s!aUONOJabҷ+Lˠ3Lwpoȡl%:YQ1x$hfFfH K'ѓY[#=gwtvf؉6)\( }"\%[gOEb2-Ā+`37:M +{|Bou`0xxyViّxyF6>ͺhq&aLo|14x@ڑjaLDa&$ &U|s+11sd|;_ t 's(W4oV 82'|/4v6㔰(k&Cnѻ]&o-z:=._& BU\2 q,ȿKKdv$>foJW.۸6"L@2|Å|Vt{ (nMw>FJaAx(iq_Kj:i-D;ŜI.n@v{(s.WSͤ1 Mc@ЏC6]t?ȉ@jB_E\n؍ i.ݘyLVpn'})3rSH'VnhY)- eYhD)MqfPMzI]2n՝{̋]C":kGd'a̮"bWegN旹}v2?[-ȄB$Hm*b.9kߥI ajȤqqǦ",QDۉs=dSfTc~݀''抿  :o{+x:OPHbY} TEB$)S 363k sYÑ9X',<:,]p2l2XQ ;\~B&`*}zƎ*,Lx1nAy&~%>7r/0#${l_nOEmAMe0~" W*xRҿQ)#{v6,~^ˮ UP2i1D$HeΐQ NhDw!g'[+hB ?_AۺȄ~"6Is *kh9*`2Oy{ݪO@(XC (qXe$K/:#^} fiLԗTk#s~3uD%e'ǁ|<LsyLb ը]\LNZ 2P7r*  Y-¹V zUcvQ)-Fjn`AURLwtn/zjo>b(3sBBZb''@{1PMME=-kBcC“m}q2%"IbQtO(w:*+.T)~ZXBȆƏ :8:c$\3 heC"5ɠ +Ñuh3#ӓܪ$} xJ雥oa4'7lBI悽fA3xaJ?v`/j.t]Ȁ ž( zndv֋.$*Y)Vގ^n˦!&df0>8nECm9d-{v*7" S  8K.ߌgd]Ԧ[Uc8ё?V_G9ki"Ѓ[ Y;$>Qco ȑ^)T-J&ruO0 a]%7&SMQs"JdXƕCj!1j[CJ w3J-!?|y> zlZljX 9){hJl٧Yۉ)h%=.&~ʦq/17mbO4E39; *d<&vzʴ@d,4`GĤ!oeқ]DYBPc[fmI 3=ɴRdslBF뾞lUSٴbKɃ:.iM4[ uU*QyX*cA쿌mkA?É~LHu!i ¤1S0.h7*o8ǚWpIxvU*20fS1ՀhQp eC89q>^CIb 0C\sVA%AE>UmlcΨt?]va=Zo& emcST!$}pNա$2Xգoe*Q ECnDcit+Kg(dަnk.VӒC/LDk*ڦU1BS&;-I 8lCcƣ\1JiAgK$ZL3BaAԂ 6 +E.C1 l{HO'H6hJTaP-ebIb>[C!ڶH窚~:#(z꠨RgLzޒ)+w-=mIUS qJ ϔ wvhĂKN8%7逞uK.qUذч KM.4‡߄SbOPI1v]-1 h<%mOMsm 3BEs{n-7D1j0md7EݘDy޵tjs2 <P0Gr&y*rd&f8ō3jެ%&`,K|'5WvXCʷ*t$C!#w]2< V6u`pl!Z,| B !.;П;s@ r8=\V%vr{N czp˶5iMIuS>凢ڵ/ݙ_V{ӏȅ{>Kҍp+.uqmۻ=~B˃@9q;jex>80h|J(HHlo?օm uy@rz m..X =*$%C%9ތ{FUGtëOMljq&_p-SOTJsldw8B6ݟcÎ %8_C38zz*?\F!_)v}6lHlvp&ݮj•@w~RA<. *@[ZIH&++ymp%jر;gL#%M% 3Fzߧl>"S6+(Mi#܇̍ JFjȱY. TAt5AI(WҌct=fR{;iGwLҚk+7aϊaKPyjHf3H/i$= T9#7_j(n{zf<H?bA|UzևHRF.(g =\^>y#C͙X깘݊fxvf>jR0 ZK Bİ_L6xZՒg(8o'6ڈ7dƆ<;nj;oN"AydguvUOO͖-ـ촦/u@4$Dbm7cWLDZ |H!A|M&bppbӛxY[rg[ےܾi nU%øBEř+_9U,J @cdڲ%c5&^OTԀCP_R=˾g A Er{URJWꪺS۵ cT؈"YjҎ9E{lVW| y3phaݲ R?46B/,5lwP1S t2^^ІDCT])QyB}lPW.8s+}u(`|t2>7xPaoJB #-j7@Ͻ.;-;nیOY{!!$JIf *(T7Ѥ&K ]N&Y:NIZfU7)KGDZG^|6d J.ۡ7eaTUƒ"P >i&qX7Y #-?gTԴu,.VBiFa!>8T;#wj|pBRi> ѐbI`ߛ(%?%J,x"(K#G@qI-Y,gj:rNjz0K?,{c3!J/W*&ef mw3~#RA>ݜg)i/ݹ]$^.>!-ݖPfQBtOFh;Fhā kcB]g8&0m.qQ _1m`d!KDa{HIj*fk|NC"+uWshA -!CvChXƭ;7hȳDՋhGXbBlQ*a9-|q/f;pyszf(*9v K8s /DRxzǭ7EJNYeYx:< ;O A˺cufOCn}ԛtfSٵ ױ};`0hjk.˳Z`33y%ڑL6G|f[/ira5af*rvZdb#ll:Q!h8JZq,w 1|W7~kYoe 9((!>Ii?e&~EpD5@tTw5":Qb5 +܈sܝ oɐ[]|(YLM$TW6[UI:xBR} |DTϮ<>>Lފ@*g?|M%A9Hi}dჾ,i $zS9#|/}lc G`% drjVfTXNE -i$keT/+odC 6}s\`D4wT.XM\5d5٭+Jʞw3E4^q#L<+>ؒ v ПzLD~IsgQss_>^=64#?iʐ E2;U)2g}PG2*L1t7,2 ؏xp׹(|z~ɾkÃ^P`࣑^ȞU񄎙y3v';b?emhm%vdۓg-Q$)p/p#Mua6#bCmq?Kj:|/ڢ}՞)Go;b1y(deДx vb~; r9 Vjq@w[>r %""I9C /65z`G ^6hX.GMz$5 8\T3N#_먂[+̶7crBj椬QhNpؐⴇ4K4йc}殴@χkcrr6g}ng:_8ĨO{(鵌S 2f!\NjӉxP`$Gŵ5&MiSY \Q>>ͺyP;>|ip/X1+CEV C;tx!Gq‹K"GRzᕔW *(kTH?G웠l\\Un|"ӊXw~r2G`Z!$ G %}Ҹ31@G:yC=}"0y[Hd1twaPJ{qgB8G&| =Үd)nrճ+Gj<Q%I=]rW6x$\ >w\lDXMPU1Lsy'KJV^hGϑʺ :zФ:zqܓ)ma`[Nxɻ*'0r0=8SP7rl?E#ɍum+@!ch?nΦ,e\ۥQW-q[ *'68HS2EޏԼX,>/\"o|,k9y L nykxq|hd L15t; 0 VE;-%ͨݚAelR Aaqv[{YtHfYyTְ=*NqAwEyl0M* Po`~@ņc1s /8c`-rϗס*[R =a;/zPIS5z1rOځ$6R;}<.'{xkɯ1K7*۪<'DIB$kg^c'Ev*hϻqƾ]n\}ލ{trmx^J53]IS7Pc{4H̚ 6%D'Ii "\TyCWdi!Nk9 1_m+/ص W*~gkRL"OIzh89 PwI%Lu YLyuN@A;;Ÿ;M kk,gާM$dL`O:P&x0<.$[[itAYfj$b=ڲmΣE%1wu-4q@=U0ܘ$ORHM O`;.OXZ=7@2Jq(J8ӡC-XйkY! BE\{qavTn\YVa4dq=}`zw'r:p|jf׮g/(!^fĻGP8MR#vu6V{h߀V~+ WBK&աYM̭dע7`D!`9Vɢ`~뛑/ǁ1Cų 7!wP;c-.cL5,s,hoTi8 QPܢFSh$ӋBa8 iBeO 2G/\ؽsc_cI 5Ҁ7w{Z2Ud$+lǫb^ GPAߚ!ms*e{~̬1_y/0hB%e@&\ n:P U[cBק;T Lѭu=!vʚ9="{c'7AsDJ 8Yƪ7F f@Xb`=n(C\ʊqHv)35`svӔ:*K }ZFZY}cr ~0"XqWJS1:%)j!ݕy[@: Uhb $;T@w|g٭!p4jsY~ZZGwf8 XZz qSÖ3~8Wk8iP! 2!$}έ܏XQu$9ɶx[gfe!eY~>B*6Ch(3 ('s b'm*HC6.g|b N-l߫CC`4.ʉ4ay(&`I=^b_/Q~`,?N"o+_B CSb aK|u,nO" :[h1m`$upl~/_6=ψfo[;n]BS}TfW^@Mren/l"/HO.huķ} U@&GJ0d_q $66 u",TMQ9>|ɋa@7[@w(5li=SZ:dጅCP,0GwID)Ѧ !CA.Hb7}ʿ$7QHNBΗKW]2 0e$vD˺r)amdK?Zh}ZA1O3b04<8ln/UfI#H"g7⥆ϭZ|'kG# 5PnAL^ؑ5e>UDL-@sy}@̗>2/ϟKTBx1 J Tkd4Ө^oDnݙ3}!yI6s,HK:E`_К3=b?w-ޮnB"G}t\&Dz8z%V)4H%- :|/ f/r@O3Qrjђ$d>atsOlLZ j -^&4R*)"tq~~ѝn4! AU<ÚF*Su NBO?SO]5$!zo8ڑ gwo;PJVJ=ra fY=ui|OgT IN&򆖋Q]iA15Ooyy8K~E~TBEHQ!`.1:6@ۯGW̧Ǡ@&u'[>T*`$i6U7c,w]¢$ˢ> ROpӏ߆ q`{#L=ZtQNXq#),Kդ-K_))#V,\fDyPw;8egr%)e%uMۯxw,y%G"31VNW7fYQ^ H<"PY#k2o06en4JRQ."@]h(yuȗ^!j*sCe`\Re!d&+Dp:F95~䭦z47*&g :9g~8gQwpӤ͘mNϥspUq[r%NRcG>]* ]v. \*P:9CpPB^-BQæiéjCy7Q\uw5c]8M 50fKCQ"+X$/BQAǧNpW3g}n R)mT$lr|>VAm]! -+Qy`]0 *BҶaC+b C ga`rDm0)Y8F< (v( @#IL¦ClޒXՍ`[π]*u5S۔8Le-_Qy/'tgipNF U+8ir|&C0cH;hgYVS*)Y>mivi1Цq/F_9}~ Fk@J38JS(<2{,džRDY5 ݬiU@9kAi3nd,1ć Xij9kq*ìJ}$d$ƓۊN%m&7AeGCLTV n |fl&([m[SsGO&ӹZ@1g9hH>f"J䙍ހ:^;KK< )]ŒiA iHJazߖ ї^PƒS74ؿudIj;Phy1) j7Ӄ@'uBm:dN^h?p,R&o@nUpUZ_O 3`\@Y<ʳ)763̽n{2_r NF񾫐QCѿ%pIE g Bl_mdJ l[7L'!Dӣbm&px:Wݵ/aYՆ:4岞Fi7|/̪x{FHW4/$uuvI&Rǁ^:-Ű$m$OꐸU95]| #yJB\ƦDg­&Gp Gǝ]F Q#9Mq˼S  i&^r2!Kt-F*Y/iJdڭC!ʍ*k!:JHR ? F)BRhB *-iŏL E$[a-^d>2)f %1]F< Ɛx]uʳqeP$XzN՞.bԳB2-~vs~ZpY\\jjIriB=(6?HK[{ q57Ǚ77F+a*mqʧk7{GS}!wtnTNcL5ވ%&xg z16³C+xmp׷!Qnutc||buk33ք5jE]>4)k  Y@YLmos <~~O7 [7TݜUxW90,wX"]"l*iҜ gR&' v#`qu(WR n*Brr bV;xuPuƧq/gU~ZigrdVt/Pu*Z$(v`?@ԑ8OF^mqU KY"7+ e Z$c,[Б\@ucYlm 9_`Hl.JRvJ->xxj3Bg"σ a]N3ZiVץϷ23$}h2) fya*!G]s!fCKb_Wm@gU y=;XeAB IʅQlFsG5 &kǼU*A(Jܯ*· Ӌb[לEѺ5$F.OqBtQf?Vbh=l;m6YD0S M -Q![9,~I̚j8GQ;0>b}祡br1GR"3T Nsb,;xڠ\.覌):[f18gk%w.ő +{urҍk%L׍euSzۻ$+ove[(OLL}oO=E%)dF)Vni^ .X/4E=ȘYJPUGu'Mn ~5Uc1}<=kQO#S㾯u1ն*,i'$Eމa/'svʖE1Xi,Qol 5o8 qȪe1?[R⟆}?꟢ Y|ʎKqf%x*Ċ_0(zR0*9q>^>@Pmp%%>K^Sh'& SOZMYk(-"k`Oj.(wXv=v=.LIszN56#sy Qլk~3}) i\d~T@Y>S,t??n{Sv)aX&+/zUQNw2%NBрjq w:ϩZpX`.DE ;܉#={BZŏ] ʱhێWg8سk1PѠe ޿ݧFMN`y S$H~`kN: ų"۲>2OzZdaFs8'pX@`k`| :- ?6X-P${^ZajB`2r\. ̧*ю$azb ~R @wQ?.6R;&&ثM@!$HYu>sYՉݣ}f_EZ|ךv#/F¤-R #~o*ɔeh:zB`d5clJ]2A9nxD^"DBBw+WE>#JD@2Udm]_糄`&UM}huz8D?d.?^qdCmq~cXS2&vHjGXbRAeWuo<^_ƀ$.,łCŹzYspHi @[JxҥBQ?Q2&2fyuK&DJ2>%&^tV8P!A/4 ToE/J"'͏d#k8ϓcI=vk qEbi(ZyǐRhXr9fm!1#r'(AɅ_j8sbq"kNԤ=Ij`G_i;*ND iz86SU7*;ȩ(J<է9Cwe:A&T_dU~s'#=:ZiGFׂO['41=7$tnI+=] . =J~sc;`VMӸNC.hڶf>kUcV_{=+  K%-BJ 2POXȖ?ikՁ܅|sj4Ea YCr"q<FH ipXB@1GSwO?,ǭifHՉ1"q4.@$ԅqLS ]G6PQ,R%@(1ף]W <tu$Wھ׭# ΄):g*Vxc_ImE+Jw>M(6Sʅy)իA`vrt9-qJywѓm\w[W:_X ֛~Ru8+uʌU^#LG H fTK򠏇*GXqm$/{Z$$ֻ{=XYk:OIkKR3A̍I }pM3 +!LqTSVR4|Pt=bi&mXsDA]lV0 W{ $dZ f~BWQxt_U5H[ΦNfR8֔1Wi'& n ~AX gTf^[4g;-\KuVtpٰ{?7@͙B%ScíP8}LҵVmd~{m\mokY|Uu"J9*lx1ėmlV& !?: =N2-0_&򖲰( ۱;δg+?4C,!dS7b&]%#_'F _ԦÔ-N=-H됏[8OsC>t}*(LHѳ9p:p?=k S{л_'դ,7-$pwu*JjwHO6C%Y'a\-eD-Oa&ߒc.PSia7LXe1Ɲ:*n9"=8a|1)m 岷U΁MJP|b qI'C擃d y3L`f˚L_ϭh7$㋴Aq jʂ^ <ڮ_}\XsdT1N7|*ޜ[Uh7M9.XSsb!1MCUljbVAtiMHy6gKOP/?%M4Ms9H P(0TLG\|1c1;bŸ!7y%~'ѱyMrDt.q#ȐF%x0q<֜}Ö"%Lxj?@W2)tD GnЭ>j(#NҽQ:e'?Ej_lQ3Y NpUC,P#FYDmdP>:j ["ae!Vg XkI=~Pcpv:v#oD 9!D~z>$o35Ge]47ؚh ?2.1EvcbPK`@Uh]D t,R?D˦CVҁ 8y_Z71G3S`"c+\bkW @5E%z& 9Oľ`0LS`s?+w "pvmCB{v& :ٚ20,)Y̏~PZ0ZP@dǤV$نS/T 3JH*5nV[x'x/z~)mCjy&F-5%[PhحYrGo^x;nЭ fXz}Ǒ]̝zFz šH+iOeMUbi1Jeqc^ bOk-;j`8k=hРD!)LjWÌ- @92}0O@{]M=q">c#{ZI: C_V)Ma^sT705@b*^V{60M|lxWY(g lʅԲc\vx?ֽUB_3T.փ~Җ! VHկs:/@NY )34{H&:vyЬ^#-2#]H\ 'n8#v/n(nY`W?T0휈H5z~Jo*G:lTs^wVϣDEzُ;Ah}#DI ^;e_Fc*?=g2+XG6ŀ^"Գu{.6d/ X.$]hoDQ;Z=fS GnZD_}Jj p:RDNS"icUfa91[fovPbs,O$9SQfR/rJs)t{1֎Scvo!ˣMg4gTXP9rֈ{5咱;~۽j R!T{>>&:Dq.ūhUi08bq`Z.c &Ao&:{ptɍrcNfhst IW+ƣxAj!>Cؒ"U?҂h/PE:<o4dI+80݋ԒEhw(և}>?'Qȼy5-@o`| N,GȄNt,!.z3nm*x\7>rl 2a b*hi ǰϊ*AI1īL^lCm5Q5b[MTZbQ=df|M]D" T*ozN$odC&Jv|AldXR-)~ R@ܖ?9?Mѷ[V/%Ч֦Sę//vxTQVA _@!UYXb- f}GU5I Q mDH R7FnRIxxb'6̡JyMO2Vr."s}S֑q4f -Fri_+Ǒ&l ʣmnS;iY<;4l*dISa'KQ=cr4PSŹId#+YTZП5%QԢtU4p~*36w mI03sòz0b^k%2:E64#ߊSL;h돦L/zU*7H(Y6y$\] LiWYnjՄ f׊oy(k0\>I>L/Dl|ٔKO+m~'K@kܿ#ZΤޫ΍XU<4x dV7-> iSmqcF|(o՗ 8ƌGm wd`{UUlfM{DdhVw3_#ZwmIIPr%ڑ.Q'9mGbL!/={.<ɳ+,yCﭯX\ b~J[EoT vnMQރfN͐SLX w0v%+v/1=L /xe\B*Zjo7}?(i ʪb5'!4HCZ)|_tۡ|f¨|qD/r#|EURgp]އ.Jy߈l/cYN;( ߍ:% ,t?+~j.'hS+!ΔV&qRYo}t8GTw ϑLjL(^!2Q*VʳGQ~SX@;3^"ӟ]_&pmyC- >˂'Tv:~o:$fET.C%FƲB4-<_;k 3e1`jW)nv0+GgНI=TTJ+4Wj\[h{Niuv"Ho"6z/yxr-hG$)i؅}9z4Q67& C*Nқp4ýAjړR KǶ^r|Wsʓ(y++gKzMjNLPIR0!x$0˂x~./EoRFS+>a(>dA_/^C rr}2⃫iHOx$nigT2ӛGIoP3ESj@xxPAOߺԋRUc@y93rU@^ g,!n;Dp.(Y'EuoM4޺ PwX^YFmw];=TdF5[ Cbn,kmg$0ˇԩKAAu*# [J/5gdmw`}we һN=nE_oT|˽]qC hvbX+4YŔVϬ 1 ?n:eš{OAbqO#2@INXĨ(SS/NxtP\ܺRyi|vY Fq:-}p;sG̎|n06cu}br ɠ.ͿmXs\{0JW F{l= -vգ,6o&h^aHY3Y''=ec>:+j=F'==[%ͅALDq+oW- Y;-&K^TNN&w&Wn5]yC,jy!n ʶ>F/@ @/I :/+A!; Tjx =&-!˯ N:+rcRS+d&VO86gͣ*&'3M6Y%e EaD[`cg^Wܩp;K`yv5֖woPkeѲ:ЫKaaGt8 Z߱74*%8[D:5TQ\vl4N=VcmJprrG Lr Df< &RP{ ec: wd,2؇Dz8vGFh ((7#v]I#^%]9K=ZU)]A?󢉓;32ʭ5F&1$ j*OkOM\>h閑o<9T+ZItyr+]o#xRnlWuRЫqk&IYqZ(24{v[c뮀9y\AN#mF|MQm \c*I,y!z4yȍ Ah>1򛯣O1[q!E#):ae.vÜU)`L<ȍ?$X}N@:',S#)_=8E53w",Tt}PVdpj>GS-W_M_`e>qnr^!2&0kT#g51Ο=1j" Yvjb\8 63 JJ1_-_H ͢(K>q@]Dt)0 HڨzaX|( aUIe0!NW}lJ 1ނRJYh0jW2vq@\ gyEq'i9ܖ$-.ANY@JXV^9(9O LS2g|kV~dJ–4.b?`\}(?з:`";_#CBtg>%wF:PUwii+7Y< #OX̘{Di)-#eELCT[)_Tt~^`K,?䫅f,|3naKOTe8N souy/whr\mNe vR XEkɁOvU@8!c'"DeY%:AՔZ(]Û{z&B|¿ OYj qe'!ۇ%m۲=:fY`Z9el7%~0> VX\"͉}QZ{4>ЏX/x`wx*KTϥ7U_mk|ć0~Yۉ򹆀wګ4l>t2 9$x4;M`^ܰ;ܦ\AF ;u=q.-dMQ~Y ?J Vtf6E*|y%מ$ta (-E+"Pr9^ˊA' oph 8PE&-c~:$Ӝj} &˝a~Vlh)[5_aR /̉Fcy]v;tPy`?G}}k7xomH1)VIMB^:EnD1(|+9a|`ckl)W>ؾ[KMN7?Ђ{4h xZr*XDIC>X`|UwٲixğC%ᐹm{5tV a'_$>Vcj}P|cRlp47G=nۀxn4^q,j ٺmKj 7(nBA p=^6&jTf܁>@zc .ITEٌ.* h#RjgʳVƘKB(+NOu2byl ^ps4p(> stream zV[XvIF@o@k Vt{E ZE}2~fOI6*)W<&[@a6-90he_=Akſqrn]bWJq3p| d`MD懬fr"˥>lo6uԂnA!#Zs @c%hmn*W^)ⳑ_-|-&m q3&kensE x{Ak+9K-|On[[^>s$P_ !׎)@,N+kZęYL8tU H[ @0L(xr4M%UF>%T:{!WTR*s-./-~Ln=)>r3. =:,u@. 5 q7ގW9'q=,U;>`jlcS0>%OVDìҊrn+D+6VosN } [&ҐgXFnsl ٲ2L4hL)6M O'6=+>T&O@e4sscGsڡxBR_8F$R0 ;d r/`/mGb%)PnZh$1dRB,Xj>61h u=LF~ `5푮ȕj fIhZykTRW 1.7S&P x/hm x/+9\Mg Z3K,7(`XlA{s!"px)S[@s_kMtDum)@k b:7[Wfx t۟\'w:a򹵑 ^ĮyxwaV``r*-P@٥%l>"r ES3)$nacT&O`jsW^*LS#'}%7'| EP* -]ARBa9?*q2֫oD[ZJU7d^`CϻrxFmcI)ol8fةc4O[e|(G`+xl$\$P yⵏjHXzt?deӟhR`}!vş%Rߒ66`4rcO۵R{)/"(8C$'=vwmOKh @J  b/V4v9+[{5Aե( cu)6}l:pMV4'Ǥ[%tbjUu;ڠ-#tdkX_||^*%+u;bd9|u3`+Zq3Au=*rldW%30ˌN=DEbj|QOvGa2y~2G57<®/?h츘ı'\N%Q1 $iƹ%|&aQnzjbpZߢ~*n`!$!?/ϻӟWt!,2;݇kt[v!FΔ߭=!R&Rq}wۍ'4"Yd_{вscבGNnk%r5x+G%&RbFCDJtmZ"vۢ5~X{uurU؛ySo]Uf*/\|?ϭ56eƁñBu<(/B*|0PyP{4InmJBs.#i0WxK߁)Xe/{ou,꥜Τub}A:ϧGmVW GeIÊEƔ:EKeWxa7_e5V+ C>;JZh"~>C_8qnK l9u{]d фv5vDI+m GN_h}2y:"pIkf{'(5jbMt c)KLl|8 TJ*(PS}El^gwb|ThqYewKϕslQ6yxz[iµ,J wi 19ht`ĥn1e9OS hE"w0QǠogвm t)!mcz+IWzWĕ #30$2ƿOx+Nd)G3@%C4=¦grɚ'Wl2I9^a3pkԬ?S F݌¼ n)F^Ąd[>(OD,#brd@$*rz(Gl8v|+%w[yC8􀃫r2vJ8h=OqKFA\lY} PW[]Ǜ7 G/85^Chc48kvn6 KX?aWr'N|cr焺YS(i4,Cѭ7t'e|.7xfiZY`]\ߞHק`~ڀ,|Z8aNdc|1Pm"ĸT U_uQA\%yQFPDÍ[zJ/ȡuouY0j^jyjͯD3V5鈰n~MxR._!pP>%EѣJRMNhm,n&A"*԰c\>e\!bia_49ݰyL.%Rg.i.w[$ߟkebu!6*D*QSNx@o-nӱy~6A4&CĂqa~qe-1u)B R;}ANgiO 'A G"vպ.1amϤK 8ѕ;7`>QK_9F'6V;:,!kɗlw$e黏7Ɔdwꤥ_?:W+ VivWۦۈD\2Uy~)s(Xw^{C"fEm8o˗YaUmѹ1{TreI\OKTf / \tf4j跃_ItU]y/:xZ4ZˎY6zA.Q۹QFtt)6D1-(5?Yn@(BvKZ& 8 Xr:6_ /D*N!xCKWGcç` *ס].zM#Z2{?״j@f Ha``m?)u!MŅ5*y.l7:с׫p0'B)|M7,sDSgjM+ZT0:8_[ٳ5 3Ⱥ69;n)7Maoa)ݣ~D~6SPF6S| ;#J?E=R4p~}-a=ϣxTDH_EFXϡ$$9{Q״=i.3/"6#*F EENfZTH ɣD7EQ^?}|0"kD6sKQm^R6CG?BI!0Inbe@{bCj! e.ta^85zV92.d# ]%Y@'a,;*fGW{@ް 犒O1,Pk[IvP|y7GDF*/N:/ZL.fAq':zc-ģUe-Ӱ]ځ[z~'g4[>W95ωKם\#l7ك@68A^#=PFѧP$[WHrnX,xJ&(q# Y^LtԨ䊺.N9ݪE5$Wm:zh4(,$ף Q\TOk .Pj~!z*m )PnJ,tM' A?7yM Hw/}50 aTLW19ۥ'|mguj*&[]nx<T#Kcf1w?B(YEJjdA.@bwwNHK<@d'Fl+aqp7NF)" u%2Ke"o鉵cS l)ʘʊr\1v 9CzT2#ĝ_eN㑀e5i-ĜY@@" CvZQ(AմmuNCd +Hk 7!w}<;j/Œ%tOGh2,a{zM*5.Z *d)R58\t#Dajc3ɑz'ӡT)1)~blRliӻ5V}3Efy2j%l$#er[w6nUO 4ξlIeO9?c ?*TEn䷦#2k0؍\Ӵ8WԥxDY`4Y}?MQ45F3Z7SZjaƬJ z+\aWbi'#AI}Rϟ3Jv\rl渿$ѓ!y^_>"7H]!W$:e|~f̈L,y}az |LMTH/Ԛk og7j;1L"ws"o 8Ɍ]\,.e9?~Bn3=vh;ؿ0N!Dq! {1N1($}JNBC-igWzo۫A .ry޵1W|+ ypBf|ROT4Z $ÄC\\-@*ޢ R8F'MsQGKg֬b WL?0Z&S-|Lq^=c%࠾MJeTNhWO¹i…=YIޏ }G0Sմ7e:8,~L*H35z'y+O1%u#O=O*nNKY}{ro"T$엤UqN>~bzDO-0s*;V 9m7lxqOؠ}DPT;؋ذ(. )f;=•&gid\e{i=( #G-hyylAɍ]Q8.C(t"p,R: BD !@a];Bd &yğorKX ,qjT{xHBPA6Ae8+5_K^m`oM1 ?>BS@HQa\"Փ kwQ-'S\)$3u )S%h誤՟Уz};`ZcA!iaHQR(.|%;\ r5KD/@aU؇˻߱哖`ɟGlC^&Đ=&bON DDR 螷W3lcc"FJ wsE(-\>6,~Yw!G5CM|) Figb*IT@L%xQeTŤk Uۏ25A9ܕ`i´L'8,sO*o>*.i  E>#7=}>Q¶5D'?ڒ6 endstream endobj 10 0 obj << /Length 42 /Filter /FlateDecode >> stream G#+x@I9Ź./,Fendstream endobj 11 0 obj << /Filter /Standard /Length 128 /O <36451bd39d753b7c1d10922c28e6665aa4f3353fb0348b536893e3b1db5c579b> /P -4 /R 3 /U /V 2 >> endobj 12 0 obj << /Type /XRef /Length 52 /Filter /FlateDecode /DecodeParms << /Columns 4 /Predictor 12 >> /W [ 1 2 1 ] /Info 3 0 R /Root 1 0 R /Size 13 /ID [] /Encrypt 11 0 R >> stream xcb&F~&CDgl Y$d#p endstream endobj startxref 49880 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/reserved-objects.pdf0000644000064100006410000000157613247541377017544 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 4 0 R /Type /Catalog >> endobj 2 0 obj [ 3 0 R 1 ] endobj 3 0 obj [ 2 0 R 2 ] endobj 4 0 obj << /Count 1 /Kids [ 5 0 R ] /Type /Pages >> endobj 5 0 obj << /Contents 6 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 7 0 R >> /ProcSet 8 0 R >> /Type /Page >> endobj 6 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 7 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 8 0 obj [ /PDF /Text ] endobj xref 0 9 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000091 00000 n 0000000118 00000 n 0000000177 00000 n 0000000320 00000 n 0000000413 00000 n 0000000520 00000 n trailer << /Root 1 0 R /Size 9 Array1 2 0 R Array2 3 0 R /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 550 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/c-r5.out0000644000064100006410000000106513247541377015073 0ustar ejbejbchecking a.pdf PDF Version: 1.7 extension level 3 R = 5 P = -2052 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: not allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed stream encryption method: AESv3 string encryption method: AESv3 file encryption method: AESv3 File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/bad-jpeg.out0000644000064100006410000000045213247541377015775 0ustar ejbejbWARNING: bad-jpeg.pdf (offset 735): error decoding stream data for object 6 0: Not a JPEG file: starts with 0x77 0x77 WARNING: bad-jpeg.pdf (offset 735): stream will be re-processed without filtering to avoid data loss qpdf: operation succeeded with warnings; resulting file may have some problems qpdf-8.0.2/qpdf/qtest/qpdf/bad14.pdf0000644000064100006410000000141213247541377015156 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /Something } >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.3.check0000644000064100006410000000026213247541377017132 0ustar ejbejbchecking a.pdf PDF Version: 1.3 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.disable.exp0000644000064100006410000000602413247541377020114 0ustar ejbejb%PDF-1.3 % 17 0 obj << /Linearized 1 /L 3092 /H [ 626 155 ] /O 20 /E 1216 /N 5 /T 2633 >> endobj xref 17 9 0000000015 00000 n 0000000563 00000 n 0000000626 00000 n 0000000781 00000 n 0000000882 00000 n 0000000978 00000 n 0000001039 00000 n 0000001153 00000 n 0000001184 00000 n trailer << /Root 18 0 R /Size 26 /Prev 2624 /ID [<31415926535897932384626433832795>] >> startxref 0 %%EOF 18 0 obj << /Moo 15 0 R /Pages 13 0 R /Type /Catalog >> endobj 19 0 obj << /Filter /FlateDecode /S 57 /Length 77 >> stream xc```"fC  0b33Y, f {x;y@ .@ 9{Y0 Y & endstream endobj 20 0 obj << /Contents 21 0 R /MediaBox 25 0 R /Parent 13 0 R /Resources 22 0 R /Type /Page >> endobj 21 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 22 0 obj << /Font << /F1 23 0 R >> /ProcSet 24 0 R >> endobj 23 0 obj << /BaseFont /Courier-Oblique /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 24 0 obj [ /PDF /Text ] endobj 25 0 obj [ 0 0 576 792 ] endobj 1 0 obj << /Contents 2 0 R /MediaBox 25 0 R /Parent 13 0 R /Resources 10 0 R /Type /Page >> endobj 2 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 322 Td (Potato 2) Tj ET endstream endobj 3 0 obj << /Contents 4 0 R /MediaBox 12 0 R /Moo 15 0 R /Parent 14 0 R /Resources 10 0 R /Rotate 0 /Type /Page >> endobj 4 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 322 Td (Potato 3) Tj ET endstream endobj 5 0 obj << /Contents 6 0 R /MediaBox 12 0 R /Parent 14 0 R /Resources << /Font << /F1 7 0 R >> /ProcSet 24 0 R >> /Rotate 0 /Type /Page >> endobj 6 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 322 Td (Potato 4) Tj ET endstream endobj 7 0 obj << /BaseFont /Times-Bold /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 8 0 obj << /Contents 9 0 R /MediaBox [ 0 0 306 396 ] /Parent 14 0 R /Resources 10 0 R /Rotate 180 /Type /Page >> endobj 9 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 322 Td (Potato 5) Tj ET endstream endobj 10 0 obj << /Font << /F1 11 0 R >> /ProcSet 24 0 R >> endobj 11 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 12 0 obj [ 0 0 576 396 ] endobj 13 0 obj << /Count 5 /Kids [ 20 0 R 1 0 R 14 0 R ] /Type /Pages >> endobj 14 0 obj << /Count 3 /Kids [ 3 0 R 5 0 R 8 0 R ] /Parent 13 0 R /Quack 16059 /Type /Pages >> endobj 15 0 obj << /One 1 /Two 16 0 R >> endobj 16 0 obj 2 endobj xref 0 17 0000000000 65535 f 0000001216 00000 n 0000001315 00000 n 0000001410 00000 n 0000001531 00000 n 0000001626 00000 n 0000001772 00000 n 0000001867 00000 n 0000001975 00000 n 0000002095 00000 n 0000002190 00000 n 0000002251 00000 n 0000002359 00000 n 0000002391 00000 n 0000002465 00000 n 0000002565 00000 n 0000002606 00000 n trailer << /Size 17 /ID [<31415926535897932384626433832795>] >> startxref 216 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/direct-outlines.pdf0000644000064100006410000003717213247541377017411 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /PageLabels << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /Pages 2 0 R /Type /Catalog /PageMode /UseOutlines /Outlines << /Type /Outlines /First 96 0 R /Last 97 0 R /Count 6 >> >> endobj 2 0 obj << /Count 30 /Kids [ 3 0 R 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R ] /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents 33 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 2 4 0 obj << /Contents 37 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 3 5 0 obj << /Contents 39 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 4 6 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 5 7 0 obj << /Contents 43 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 6 8 0 obj << /Contents 45 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 7 9 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 8 10 0 obj << /Contents 49 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 9 11 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 10 12 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 11 13 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 12 14 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 13 15 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 14 16 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 15 17 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 16 18 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 17 19 0 obj << /Contents 67 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 18 20 0 obj << /Contents 69 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 19 21 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 20 22 0 obj << /Contents 73 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 21 23 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 22 24 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 23 25 0 obj << /Contents 79 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 24 26 0 obj << /Contents 81 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 25 27 0 obj << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 26 28 0 obj << /Contents 85 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 27 29 0 obj << /Contents 87 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 28 30 0 obj << /Contents 89 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 29 31 0 obj << /Contents 91 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 30 32 0 obj << /Contents 93 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Contents for page 1 33 0 obj << /Length 34 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 0) Tj ET endstream endobj 34 0 obj 46 endobj 35 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 36 0 obj [ /PDF /Text ] endobj %% Contents for page 2 37 0 obj << /Length 38 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 38 0 obj 46 endobj %% Contents for page 3 39 0 obj << /Length 40 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 40 0 obj 46 endobj %% Contents for page 4 41 0 obj << /Length 42 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 42 0 obj 46 endobj %% Contents for page 5 43 0 obj << /Length 44 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 44 0 obj 46 endobj %% Contents for page 6 45 0 obj << /Length 46 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 46 0 obj 46 endobj %% Contents for page 7 47 0 obj << /Length 48 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 48 0 obj 46 endobj %% Contents for page 8 49 0 obj << /Length 50 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 50 0 obj 46 endobj %% Contents for page 9 51 0 obj << /Length 52 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 52 0 obj 46 endobj %% Contents for page 10 53 0 obj << /Length 54 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 54 0 obj 46 endobj %% Contents for page 11 55 0 obj << /Length 56 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 56 0 obj 47 endobj %% Contents for page 12 57 0 obj << /Length 58 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 58 0 obj 47 endobj %% Contents for page 13 59 0 obj << /Length 60 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 60 0 obj 47 endobj %% Contents for page 14 61 0 obj << /Length 62 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 62 0 obj 47 endobj %% Contents for page 15 63 0 obj << /Length 64 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 64 0 obj 47 endobj %% Contents for page 16 65 0 obj << /Length 66 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 66 0 obj 47 endobj %% Contents for page 17 67 0 obj << /Length 68 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 68 0 obj 47 endobj %% Contents for page 18 69 0 obj << /Length 70 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 70 0 obj 47 endobj %% Contents for page 19 71 0 obj << /Length 72 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 72 0 obj 47 endobj %% Contents for page 20 73 0 obj << /Length 74 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 74 0 obj 47 endobj %% Contents for page 21 75 0 obj << /Length 76 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 76 0 obj 47 endobj %% Contents for page 22 77 0 obj << /Length 78 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 78 0 obj 47 endobj %% Contents for page 23 79 0 obj << /Length 80 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 80 0 obj 47 endobj %% Contents for page 24 81 0 obj << /Length 82 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 82 0 obj 47 endobj %% Contents for page 25 83 0 obj << /Length 84 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 84 0 obj 47 endobj %% Contents for page 26 85 0 obj << /Length 86 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 86 0 obj 47 endobj %% Contents for page 27 87 0 obj << /Length 88 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 88 0 obj 47 endobj %% Contents for page 28 89 0 obj << /Length 90 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 90 0 obj 47 endobj %% Contents for page 29 91 0 obj << /Length 92 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 92 0 obj 47 endobj %% Contents for page 30 93 0 obj << /Length 94 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 94 0 obj 47 endobj 95 0 obj null endobj 96 0 obj << /Type /Outline /Title (Iss 1 -> 5: /XYZ null null null) /Parent 95 0 R /Count 4 /Next 97 0 R /First 98 0 R /Last 99 0 R /Dest [ 8 0 R /XYZ null null null ] >> endobj 97 0 obj << /Type /Outline /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Parent 95 0 R /Prev 96 0 R /Dest [ 18 0 R /XYZ 66 756 3 ] >> endobj 98 0 obj << /Type /Outline /Title (Amanda 1.1 -> 11: /Fit) /Parent 96 0 R /Next 99 0 R /First 100 0 R /Last 101 0 R /Count -3 /Dest [ 14 0 R /Fit ] >> endobj 99 0 obj << /Type /Outline % /Title (Sandy (Sandy [Greek]) 1.2 -> 13: /FitH 792) /Title /Parent 96 0 R /Prev 98 0 R /First 105 0 R /Last 106 0 R /Count 2 /Dest [ 16 0 R /FitH 792 ] >> endobj 100 0 obj << /Type /Outline /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Parent 98 0 R /Next 101 0 R /First 102 0 R /Last 103 0 R /Count -2 /Dest [ 15 0 R /FitV 100 ] >> endobj 101 0 obj << /Type /Outline /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Parent 98 0 R /Prev 100 0 R /First 104 0 R /Last 104 0 R /Count 1 /Dest [ 15 0 R /XYZ null null null ] >> endobj 102 0 obj << /Type /Outline /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Parent 100 0 R /Next 103 0 R /Dest [ 21 0 R /XYZ null null null ] >> endobj 103 0 obj << /Type /Outline /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Parent 100 0 R /Prev 102 0 R /Dest [ 22 0 R /XYZ null null null ] >> endobj 104 0 obj << /Type /Outline /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Parent 101 0 R /Dest [ 25 0 R /XYZ null null null ] >> endobj 105 0 obj << /Type /Outline /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Parent 99 0 R /Next 106 0 R /Dest [ 4 0 R /FitR 66 714 180 770 ] >> endobj 106 0 obj << /Type /Outline /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Parent 99 0 R /Prev 105 0 R /Dest [ 3 0 R /XYZ null null null ] >> endobj xref 0 107 0000000000 65535 f 0000000025 00000 n 0000000507 00000 n 0000000903 00000 n 0000001108 00000 n 0000001313 00000 n 0000001518 00000 n 0000001723 00000 n 0000001928 00000 n 0000002133 00000 n 0000002338 00000 n 0000002544 00000 n 0000002751 00000 n 0000002958 00000 n 0000003165 00000 n 0000003372 00000 n 0000003579 00000 n 0000003786 00000 n 0000003993 00000 n 0000004200 00000 n 0000004407 00000 n 0000004614 00000 n 0000004821 00000 n 0000005028 00000 n 0000005235 00000 n 0000005442 00000 n 0000005649 00000 n 0000005856 00000 n 0000006063 00000 n 0000006270 00000 n 0000006477 00000 n 0000006684 00000 n 0000006891 00000 n 0000007110 00000 n 0000007213 00000 n 0000007233 00000 n 0000007352 00000 n 0000007411 00000 n 0000007514 00000 n 0000007557 00000 n 0000007660 00000 n 0000007703 00000 n 0000007806 00000 n 0000007849 00000 n 0000007952 00000 n 0000007995 00000 n 0000008098 00000 n 0000008141 00000 n 0000008244 00000 n 0000008287 00000 n 0000008390 00000 n 0000008433 00000 n 0000008536 00000 n 0000008580 00000 n 0000008683 00000 n 0000008727 00000 n 0000008831 00000 n 0000008875 00000 n 0000008979 00000 n 0000009023 00000 n 0000009127 00000 n 0000009171 00000 n 0000009275 00000 n 0000009319 00000 n 0000009423 00000 n 0000009467 00000 n 0000009571 00000 n 0000009615 00000 n 0000009719 00000 n 0000009763 00000 n 0000009867 00000 n 0000009911 00000 n 0000010015 00000 n 0000010059 00000 n 0000010163 00000 n 0000010207 00000 n 0000010311 00000 n 0000010355 00000 n 0000010459 00000 n 0000010503 00000 n 0000010607 00000 n 0000010651 00000 n 0000010755 00000 n 0000010799 00000 n 0000010903 00000 n 0000010947 00000 n 0000011051 00000 n 0000011095 00000 n 0000011199 00000 n 0000011243 00000 n 0000011347 00000 n 0000011391 00000 n 0000011495 00000 n 0000011539 00000 n 0000011643 00000 n 0000011663 00000 n 0000011685 00000 n 0000011881 00000 n 0000012027 00000 n 0000012202 00000 n 0000012555 00000 n 0000012746 00000 n 0000012956 00000 n 0000013125 00000 n 0000013294 00000 n 0000013447 00000 n 0000013616 00000 n trailer << /Root 1 0 R /Size 107 >> startxref 13781 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/qstream.pdf0000644000064100006410000000156113247541377015744 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R /QStream 7 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 7 0 obj << /Length 29 >> stream This is the old stream data. endstream endobj xref 0 8 0000000000 65535 f 0000000009 00000 n 0000000080 00000 n 0000000152 00000 n 0000000324 00000 n 0000000420 00000 n 0000000455 00000 n 0000000573 00000 n trailer << /Size 8 /Root 1 0 R >> startxref 654 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/good11.pdf0000644000064100006410000000144613247541377015364 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /QTest << /a(a) /b 8 0 R >> >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/enc-R3,V2,U=view.pdf0000644000064100006410000004136613247541377017003 0ustar ejbejb%PDF-1.4 % 91 0 obj << /Linearized 1 /O 94 /H [ 1336 210 ] /L 17142 /E 4183 /N 30 /T 15204 >> endobj xref 91 22 0000000016 00000 n 0000000805 00000 n 0000001179 00000 n 0000001546 00000 n 0000001741 00000 n 0000001821 00000 n 0000002011 00000 n 0000002153 00000 n 0000002321 00000 n 0000002498 00000 n 0000002662 00000 n 0000002824 00000 n 0000003008 00000 n 0000003210 00000 n 0000003360 00000 n 0000003524 00000 n 0000003688 00000 n 0000003820 00000 n 0000003841 00000 n 0000003957 00000 n 0000001336 00000 n 0000001525 00000 n trailer << /Size 113 /Info 89 0 R /Encrypt 93 0 R /Root 92 0 R /Prev 15194 /ID[<66d36a30a97e0f16f39955c6221e0c2a>] >> startxref 0 %%EOF 92 0 obj << /PageLabels << /Nums [ 0 << /P ()>> 2 << /S /r /St 1 >> 7 << /P ()>> 9 << /S /r /St 6 >> 11 << /P ()>> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P ()>> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /Pages 88 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 95 0 R /Metadata 90 0 R >> endobj 93 0 obj << /Filter /Standard /R 3 /O ( Qm"Q\(tQtSލkX) /U ("멚~\n:o Y؎[n^\nyT!zx) /P -3104 /V 2 /Length 128 >> endobj 111 0 obj << /S 145 /O 189 /Filter /FlateDecode /Length 112 0 R >> stream lkokPyجU2_6{OMhW׵(P~k@*]`$^L `jIXq.4_ ,[.pLF ] endstream endobj 112 0 obj 95 endobj 94 0 obj << /Contents 107 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 95 0 obj << /Type /Outlines /First 96 0 R /Last 97 0 R /Count 6 >> endobj 96 0 obj << /Type /Outline /Title (j@o~TRW.j\( >) /Parent 95 0 R /Count 4 /Next 97 0 R /First 98 0 R /Last 99 0 R /Dest [ 13 0 R /XYZ null null null ] >> endobj 97 0 obj << /Type /Outline /Title (F= k[R+:S\(VH) /Parent 95 0 R /Prev 96 0 R /Dest [ 43 0 R /XYZ 66 756 3 ] >> endobj 98 0 obj << /Type /Outline /Title (;\(u6UM*) /Parent 96 0 R /Next 99 0 R /First 102 0 R /Last 103 0 R /Count -3 /Dest [ 31 0 R /Fit ] >> endobj 99 0 obj << /Type /Outline /Title (d\\f}3.}\\) /Parent 96 0 R /Prev 98 0 R /First 100 0 R /Last 101 0 R /Count 2 /Dest [ 37 0 R /FitH 792 ] >> endobj 100 0 obj << /Type /Outline /Title (:=2DbO^x6m&jQ@$0; 6 ҈) /Parent 99 0 R /Next 101 0 R /Dest [ 1 0 R /FitR 66 714 180 770 ] >> endobj 101 0 obj << /Type /Outline /Title (/]WՑ&.0:_qm#VϤN6>\(|&.) /Parent 99 0 R /Prev 100 0 R /Dest [ 94 0 R /XYZ null null null ] >> endobj 102 0 obj << /Type /Outline /Title (ZIIg{tG5 !RZ}\\Qq) /Parent 98 0 R /Next 103 0 R /First 105 0 R /Last 106 0 R /Count -2 /Dest [ 34 0 R /FitV 100 ] >> endobj 103 0 obj << /Type /Outline /Title (|H 7 sX"U>$dr,̥]) /Parent 98 0 R /Prev 102 0 R /First 104 0 R /Last 104 0 R /Count 1 /Dest [ 34 0 R /XYZ null null null ] >> endobj 104 0 obj << /Type /Outline /Title ('9n#;pYn\nDtp?hht-F۳!jy) /Parent 103 0 R /Dest [ 64 0 R /XYZ null null null ] >> endobj 105 0 obj << /Type /Outline /Title (V}.AjKc2b6n dUYX_h84&O95) /Parent 102 0 R /Next 106 0 R /Dest [ 52 0 R /XYZ null null null ] >> endobj 106 0 obj << /Type /Outline /Title ( B᧩F=.'ʥb:u"Q=;I0P6Va) /Parent 102 0 R /Prev 105 0 R /Dest [ 55 0 R /XYZ null null null ] >> endobj 107 0 obj << /Filter /FlateDecode /Length 108 0 R >> stream 5?)9I%(yQ"`GQIk8͔ F]L*F endstream endobj 108 0 obj 52 endobj 109 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 110 0 obj [ /PDF /Text ] endobj 1 0 obj << /Contents 2 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 2 0 obj << /Filter /FlateDecode /Length 3 0 R >> stream [Z;U}ʀP3BYZpz}q5)0!n0 < endstream endobj 3 0 obj 52 endobj 4 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 5 0 obj << /Filter /FlateDecode /Length 6 0 R >> stream `)0O+ &%[=Gi>m)zpͧUR󺏘 endstream endobj 6 0 obj 52 endobj 7 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 8 0 obj << /Filter /FlateDecode /Length 9 0 R >> stream OĒѥ<}6Q0-sS(b 0nxal> endstream endobj 9 0 obj 52 endobj 10 0 obj << /Contents 11 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 11 0 obj << /Filter /FlateDecode /Length 12 0 R >> stream DП9 M{QYsvG^]{TfP'6ڨ4~U endstream endobj 12 0 obj 52 endobj 13 0 obj << /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 14 0 obj << /Filter /FlateDecode /Length 15 0 R >> stream 7p-q_0&b6%=a&1>)M܆ԅq endstream endobj 15 0 obj 52 endobj 16 0 obj << /Contents 17 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 17 0 obj << /Filter /FlateDecode /Length 18 0 R >> stream ݡ-,z!2IsP=(}DV> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 20 0 obj << /Filter /FlateDecode /Length 21 0 R >> stream k=ȧI$  73zb|v(+yp;I9f,k endstream endobj 21 0 obj 52 endobj 22 0 obj << /Contents 23 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 23 0 obj << /Filter /FlateDecode /Length 24 0 R >> stream YRʜ+у?4zP W0/:梁Ҽm͝:K endstream endobj 24 0 obj 52 endobj 25 0 obj << /Contents 26 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 26 0 obj << /Filter /FlateDecode /Length 27 0 R >> stream iC%m=*p&š c[ 󑟠W!8GL@׊]sSL endstream endobj 27 0 obj 52 endobj 28 0 obj << /Contents 29 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 29 0 obj << /Filter /FlateDecode /Length 30 0 R >> stream ?Y31St0Tr+!mZ0R෧[T#,HGlx& endstream endobj 30 0 obj 53 endobj 31 0 obj << /Contents 32 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 32 0 obj << /Filter /FlateDecode /Length 33 0 R >> stream {~UZ{6d* }Gh -6p$Ap Afwc_|T endstream endobj 33 0 obj 53 endobj 34 0 obj << /Contents 35 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 35 0 obj << /Filter /FlateDecode /Length 36 0 R >> stream `;WbVGޗQ58IyW~JT endstream endobj 36 0 obj 53 endobj 37 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 38 0 obj << /Filter /FlateDecode /Length 39 0 R >> stream >VL![|GnB%d5&[xn2Դy= endstream endobj 39 0 obj 53 endobj 40 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 41 0 obj << /Filter /FlateDecode /Length 42 0 R >> stream !SQ:`rh7`NJj?pJOi}oV endstream endobj 42 0 obj 53 endobj 43 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 44 0 obj << /Filter /FlateDecode /Length 45 0 R >> stream > /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 47 0 obj << /Filter /FlateDecode /Length 48 0 R >> stream jRب5f>{D8pk;ޟu'lD\8Г endstream endobj 48 0 obj 53 endobj 49 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 50 0 obj << /Filter /FlateDecode /Length 51 0 R >> stream /X$hPP)7\Ï_1(0SX`͹߅p Ce,&?GQ endstream endobj 51 0 obj 53 endobj 52 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 53 0 obj << /Filter /FlateDecode /Length 54 0 R >> stream >@ʸ@1 ,裂a'O *HVt"a gL[ endstream endobj 54 0 obj 53 endobj 55 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 56 0 obj << /Filter /FlateDecode /Length 57 0 R >> stream Ju6]2mZ6 qdyfa[ /\7ҡwaVm[@ endstream endobj 57 0 obj 53 endobj 58 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 59 0 obj << /Filter /FlateDecode /Length 60 0 R >> stream }!83ٴ ~JILp kZV!mZ0'a endstream endobj 60 0 obj 53 endobj 61 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 62 0 obj << /Filter /FlateDecode /Length 63 0 R >> stream L r > /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 65 0 obj << /Filter /FlateDecode /Length 66 0 R >> stream ܮI3ƀ6h G7 gaA<53C̴IZq] endstream endobj 66 0 obj 53 endobj 67 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 68 0 obj << /Filter /FlateDecode /Length 69 0 R >> stream CQC١4~25W;ȑZ 19regE endstream endobj 69 0 obj 53 endobj 70 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 71 0 obj << /Filter /FlateDecode /Length 72 0 R >> stream p@𔫯]Zŋ4@ΛXhtF7"7Т endstream endobj 72 0 obj 52 endobj 73 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 74 0 obj << /Filter /FlateDecode /Length 75 0 R >> stream ~ћG#9lw 㽁Tv& Y!=yO'V> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 77 0 obj << /Filter /FlateDecode /Length 78 0 R >> stream 5e$ER}s۞jW4-]TSe caݳ7˝ӕY1 endstream endobj 78 0 obj 53 endobj 79 0 obj << /Contents 80 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 80 0 obj << /Filter /FlateDecode /Length 81 0 R >> stream > /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 83 0 obj << /Filter /FlateDecode /Length 84 0 R >> stream 6gnR)k˗CwVn> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 86 0 obj << /Filter /FlateDecode /Length 87 0 R >> stream JIɤPGHr%$Yeԝ;`Y'e1Pu!]4_Io9 endstream endobj 87 0 obj 53 endobj 88 0 obj << /Count 30 /Kids [ 94 0 R 1 0 R 4 0 R 7 0 R 10 0 R 13 0 R 16 0 R 19 0 R 22 0 R 25 0 R 28 0 R 31 0 R 34 0 R 37 0 R 40 0 R 43 0 R 46 0 R 49 0 R 52 0 R 55 0 R 58 0 R 61 0 R 64 0 R 67 0 R 70 0 R 73 0 R 76 0 R 79 0 R 82 0 R 85 0 R ] /Type /Pages >> endobj 89 0 obj << /ModDate (w=K#$eH) /CreationDate (w=K$$eH) >> endobj 90 0 obj << /Type /Metadata /Subtype /XML /Length 770 >> stream Nm 4`c=bL?*ӈh|3l _9pY8@1 9|'㒗߁N#Tdڧ>$K)|߼֎Ny,vRE"ΠL*G!TB'0KPXe$IuH 変JD0Dmη"Ƽ}Mr + YFO NKxݚV|åNk:"|5Zz I|.u) A^ DQԔY~#*/GO&CK: \DlcT"@ `_ϡnuMV1썣8aͤ{*JدeOƑV{-\nX nQ|Kiǃ1[YQTYɟU*ib#nLq<5; ,-!G"cc̉UQEKi4Uisx3hxW!־(T3yPpgDgЦ/[jf5}/|6\禋$vG.{^3O<ӣ;=<Gʼ߆ ,jِG"\>>iltDq"Ư.%t3qGVmITaK6f-&ή 7P'Y>b0jVわqgu?U6>(:|$-ws]2P\t(o]gi5=g endstream endobj xref 0 91 0000000000 65535 f 0000003991 00000 n 0000004183 00000 n 0000004311 00000 n 0000004330 00000 n 0000004522 00000 n 0000004650 00000 n 0000004669 00000 n 0000004861 00000 n 0000004989 00000 n 0000005008 00000 n 0000005202 00000 n 0000005332 00000 n 0000005352 00000 n 0000005546 00000 n 0000005676 00000 n 0000005696 00000 n 0000005890 00000 n 0000006020 00000 n 0000006040 00000 n 0000006234 00000 n 0000006364 00000 n 0000006384 00000 n 0000006578 00000 n 0000006708 00000 n 0000006728 00000 n 0000006922 00000 n 0000007052 00000 n 0000007072 00000 n 0000007266 00000 n 0000007397 00000 n 0000007417 00000 n 0000007611 00000 n 0000007742 00000 n 0000007762 00000 n 0000007956 00000 n 0000008087 00000 n 0000008107 00000 n 0000008301 00000 n 0000008432 00000 n 0000008452 00000 n 0000008646 00000 n 0000008777 00000 n 0000008797 00000 n 0000008991 00000 n 0000009122 00000 n 0000009142 00000 n 0000009336 00000 n 0000009467 00000 n 0000009487 00000 n 0000009681 00000 n 0000009812 00000 n 0000009832 00000 n 0000010026 00000 n 0000010157 00000 n 0000010177 00000 n 0000010371 00000 n 0000010502 00000 n 0000010522 00000 n 0000010716 00000 n 0000010847 00000 n 0000010867 00000 n 0000011061 00000 n 0000011192 00000 n 0000011212 00000 n 0000011406 00000 n 0000011537 00000 n 0000011557 00000 n 0000011751 00000 n 0000011882 00000 n 0000011902 00000 n 0000012096 00000 n 0000012226 00000 n 0000012246 00000 n 0000012440 00000 n 0000012571 00000 n 0000012591 00000 n 0000012785 00000 n 0000012916 00000 n 0000012936 00000 n 0000013130 00000 n 0000013261 00000 n 0000013281 00000 n 0000013475 00000 n 0000013606 00000 n 0000013626 00000 n 0000013820 00000 n 0000013951 00000 n 0000013971 00000 n 0000014241 00000 n 0000014340 00000 n trailer << /Size 91 /ID[<66d36a30a97e0f16f39955c6221e0c2a>] >> startxref 173 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad9-recover.out0000644000064100006410000000045313247541377016607 0ustar ejbejbWARNING: bad9.pdf: file is damaged WARNING: bad9.pdf (trailer, offset 712): trailer dictionary lacks /Size key WARNING: bad9.pdf: Attempting to reconstruct cross-reference table /QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/c-info2.out0000644000064100006410000000027713247541377015566 0ustar ejbejbInfo key /Author: Someone Else Info key /Producer: Something Else Info key /Creator: A. Nony Mous Info key /Author: Mr. Potato Head Info key /Producer: QPDF library Info key /Creator: (null) qpdf-8.0.2/qpdf/qtest/qpdf/bad30.pdf0000644000064100006410000000176513247541377015167 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 7 0 obj << % Comment /Length 123 /Filter (FlateDecode) >> stream x%11 b;t4| wXID8G>rQu O E:IWPlII)rp4~;As/҅jcszT.?u<*6 endstream endobj xref 0 8 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n 0000000556 00000 n trailer << /Size 8 /Root 1 0 R /QTest 7 0 R >> startxref 771 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/good17.qdf0000644000064100006410000004212013247541377015365 0ustar ejbejb%PDF-1.5 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Outlines 3 0 R /PageLabels 16 0 R /PageMode /UseOutlines /Pages 17 0 R /Type /Catalog >> endobj 2 0 obj << /Type /ObjStm /Length 2424 /N 10 /First 126 >> stream 3 0 4 124 5 383 6 592 7 814 8 1165 9 1408 10 1679 11 1911 12 2143 %% Object stream: object 3, index 0; original object ID: 95 << /Count 6 /First 4 0 R /Last 5 0 R /Type /Outlines >> %% Object stream: object 4, index 1; original object ID: 96 << /Count 4 /Dest [ 18 0 R /XYZ null null null ] /First 6 0 R /Last 7 0 R /Next 5 0 R /Parent 3 0 R /Title (Iss 1 -> 5: /XYZ null null null) /Type /Outline >> %% Object stream: object 5, index 2; original object ID: 97 << /Dest [ 19 0 R /XYZ 66 756 3 ] /Parent 3 0 R /Prev 4 0 R /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Type /Outline >> %% Object stream: object 6, index 3; original object ID: 98 << /Count -3 /Dest [ 20 0 R /Fit ] /First 8 0 R /Last 9 0 R /Next 7 0 R /Parent 4 0 R /Title (Amanda 1.1 -> 11: /Fit) /Type /Outline >> %% Object stream: object 7, index 4; original object ID: 99 << /Count 2 /Dest [ 21 0 R /FitH 792 ] /First 14 0 R /Last 15 0 R /Parent 4 0 R /Prev 6 0 R /Title /Type /Outline >> %% Object stream: object 8, index 5; original object ID: 100 << /Count -2 /Dest [ 22 0 R /FitV 100 ] /First 10 0 R /Last 11 0 R /Next 9 0 R /Parent 6 0 R /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Type /Outline >> %% Object stream: object 9, index 6; original object ID: 101 << /Count 1 /Dest [ 22 0 R /XYZ null null null ] /First 12 0 R /Last 12 0 R /Parent 6 0 R /Prev 8 0 R /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Type /Outline >> %% Object stream: object 10, index 7; original object ID: 102 << /Dest [ 23 0 R /XYZ null null null ] /Next 11 0 R /Parent 8 0 R /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Type /Outline >> %% Object stream: object 11, index 8; original object ID: 103 << /Dest [ 24 0 R /XYZ null null null ] /Parent 8 0 R /Prev 10 0 R /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Type /Outline >> %% Object stream: object 12, index 9; original object ID: 104 << /Dest [ 25 0 R /XYZ null null null ] /Parent 9 0 R /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Type /Outline >> endstream endobj 13 0 obj << /Type /ObjStm /Length 1064 /N 3 /First 81 /Extends 2 0 R >> stream 14 0 15 238 16 468 %% Object stream: object 14, index 0; original object ID: 105 << /Dest [ 26 0 R /FitR 66 714 180 770 ] /Next 15 0 R /Parent 7 0 R /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Type /Outline >> %% Object stream: object 15, index 1; original object ID: 106 << /Dest [ 27 0 R /XYZ null null null ] /Parent 7 0 R /Prev 14 0 R /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Type /Outline >> %% Object stream: object 16, index 2; original object ID: 107 << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> endstream endobj %% Original object ID: 2 0 17 0 obj << /Count 30 /Kids [ 27 0 R 26 0 R 28 0 R 29 0 R 30 0 R 18 0 R 31 0 R 32 0 R 33 0 R 34 0 R 35 0 R 20 0 R 22 0 R 21 0 R 36 0 R 19 0 R 37 0 R 38 0 R 23 0 R 24 0 R 39 0 R 40 0 R 25 0 R 41 0 R 42 0 R 43 0 R 44 0 R 45 0 R 46 0 R 47 0 R ] /Type /Pages >> endobj %% Page 6 %% Original object ID: 8 0 18 0 obj << /Contents 48 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 50 0 R >> /ProcSet 51 0 R >> /Type /Page >> endobj %% Page 16 %% Original object ID: 18 0 19 0 obj << /Contents 52 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 50 0 R >> /ProcSet 51 0 R >> /Type /Page >> endobj %% Page 12 %% Original object ID: 14 0 20 0 obj << /Contents 54 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 50 0 R >> /ProcSet 51 0 R >> /Type /Page >> endobj %% Page 14 %% Original object ID: 16 0 21 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 50 0 R >> /ProcSet 51 0 R >> /Type /Page >> endobj %% Page 13 %% Original object ID: 15 0 22 0 obj << /Contents 58 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 50 0 R >> /ProcSet 51 0 R >> /Type /Page >> endobj %% Page 19 %% Original object ID: 21 0 23 0 obj << /Contents 60 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 50 0 R >> /ProcSet 51 0 R >> /Type /Page >> endobj %% Page 20 %% Original object ID: 22 0 24 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 50 0 R >> /ProcSet 51 0 R >> /Type /Page >> endobj %% Page 23 %% Original object ID: 25 0 25 0 obj << /Contents 64 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 50 0 R >> /ProcSet 51 0 R >> /Type /Page >> endobj %% Page 2 %% Original object ID: 4 0 26 0 obj << /Contents 66 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 50 0 R >> /ProcSet 51 0 R >> /Type /Page >> endobj %% Page 1 %% Original object ID: 3 0 27 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 50 0 R >> /ProcSet 51 0 R >> /Type /Page >> endobj %% Page 3 %% Original object ID: 5 0 28 0 obj << /Contents 70 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 50 0 R >> /ProcSet 51 0 R >> /Type /Page >> endobj %% Page 4 %% Original object ID: 6 0 29 0 obj << /Contents 72 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 50 0 R >> /ProcSet 51 0 R >> /Type /Page >> endobj %% Page 5 %% Original object ID: 7 0 30 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 50 0 R >> /ProcSet 51 0 R >> /Type /Page >> endobj %% Page 7 %% Original object ID: 9 0 31 0 obj << /Contents 76 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 50 0 R >> /ProcSet 51 0 R >> /Type /Page >> endobj %% Page 8 %% Original object ID: 10 0 32 0 obj << /Contents 78 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 50 0 R >> /ProcSet 51 0 R >> /Type /Page >> endobj %% Page 9 %% Original object ID: 11 0 33 0 obj << /Contents 80 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 50 0 R >> /ProcSet 51 0 R >> /Type /Page >> endobj %% Page 10 %% Original object ID: 12 0 34 0 obj << /Contents 82 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 50 0 R >> /ProcSet 51 0 R >> /Type /Page >> endobj %% Page 11 %% Original object ID: 13 0 35 0 obj << /Contents 84 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 50 0 R >> /ProcSet 51 0 R >> /Type /Page >> endobj %% Page 15 %% Original object ID: 17 0 36 0 obj << /Contents 86 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 50 0 R >> /ProcSet 51 0 R >> /Type /Page >> endobj %% Page 17 %% Original object ID: 19 0 37 0 obj << /Contents 88 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 50 0 R >> /ProcSet 51 0 R >> /Type /Page >> endobj %% Page 18 %% Original object ID: 20 0 38 0 obj << /Contents 90 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 50 0 R >> /ProcSet 51 0 R >> /Type /Page >> endobj %% Page 21 %% Original object ID: 23 0 39 0 obj << /Contents 92 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 50 0 R >> /ProcSet 51 0 R >> /Type /Page >> endobj %% Page 22 %% Original object ID: 24 0 40 0 obj << /Contents 94 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 50 0 R >> /ProcSet 51 0 R >> /Type /Page >> endobj %% Page 24 %% Original object ID: 26 0 41 0 obj << /Contents 96 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 50 0 R >> /ProcSet 51 0 R >> /Type /Page >> endobj %% Page 25 %% Original object ID: 27 0 42 0 obj << /Contents 98 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 50 0 R >> /ProcSet 51 0 R >> /Type /Page >> endobj %% Page 26 %% Original object ID: 28 0 43 0 obj << /Contents 100 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 50 0 R >> /ProcSet 51 0 R >> /Type /Page >> endobj %% Page 27 %% Original object ID: 29 0 44 0 obj << /Contents 102 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 50 0 R >> /ProcSet 51 0 R >> /Type /Page >> endobj %% Page 28 %% Original object ID: 30 0 45 0 obj << /Contents 104 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 50 0 R >> /ProcSet 51 0 R >> /Type /Page >> endobj %% Page 29 %% Original object ID: 31 0 46 0 obj << /Contents 106 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 50 0 R >> /ProcSet 51 0 R >> /Type /Page >> endobj %% Page 30 %% Original object ID: 32 0 47 0 obj << /Contents 108 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 50 0 R >> /ProcSet 51 0 R >> /Type /Page >> endobj %% Contents for page 6 %% Original object ID: 45 0 48 0 obj << /Length 49 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 49 0 obj 46 endobj %% Original object ID: 35 0 50 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 36 0 51 0 obj [ /PDF /Text ] endobj %% Contents for page 16 %% Original object ID: 65 0 52 0 obj << /Length 53 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 53 0 obj 47 endobj %% Contents for page 12 %% Original object ID: 57 0 54 0 obj << /Length 55 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 55 0 obj 47 endobj %% Contents for page 14 %% Original object ID: 61 0 56 0 obj << /Length 57 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 57 0 obj 47 endobj %% Contents for page 13 %% Original object ID: 59 0 58 0 obj << /Length 59 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 59 0 obj 47 endobj %% Contents for page 19 %% Original object ID: 71 0 60 0 obj << /Length 61 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 61 0 obj 47 endobj %% Contents for page 20 %% Original object ID: 73 0 62 0 obj << /Length 63 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 63 0 obj 47 endobj %% Contents for page 23 %% Original object ID: 79 0 64 0 obj << /Length 65 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 65 0 obj 47 endobj %% Contents for page 2 %% Original object ID: 37 0 66 0 obj << /Length 67 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 67 0 obj 46 endobj %% Contents for page 1 %% Original object ID: 33 0 68 0 obj << /Length 69 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 0) Tj ET endstream endobj 69 0 obj 46 endobj %% Contents for page 3 %% Original object ID: 39 0 70 0 obj << /Length 71 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 71 0 obj 46 endobj %% Contents for page 4 %% Original object ID: 41 0 72 0 obj << /Length 73 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 73 0 obj 46 endobj %% Contents for page 5 %% Original object ID: 43 0 74 0 obj << /Length 75 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 75 0 obj 46 endobj %% Contents for page 7 %% Original object ID: 47 0 76 0 obj << /Length 77 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 77 0 obj 46 endobj %% Contents for page 8 %% Original object ID: 49 0 78 0 obj << /Length 79 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 79 0 obj 46 endobj %% Contents for page 9 %% Original object ID: 51 0 80 0 obj << /Length 81 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 81 0 obj 46 endobj %% Contents for page 10 %% Original object ID: 53 0 82 0 obj << /Length 83 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 83 0 obj 46 endobj %% Contents for page 11 %% Original object ID: 55 0 84 0 obj << /Length 85 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 85 0 obj 47 endobj %% Contents for page 15 %% Original object ID: 63 0 86 0 obj << /Length 87 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 87 0 obj 47 endobj %% Contents for page 17 %% Original object ID: 67 0 88 0 obj << /Length 89 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 89 0 obj 47 endobj %% Contents for page 18 %% Original object ID: 69 0 90 0 obj << /Length 91 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 91 0 obj 47 endobj %% Contents for page 21 %% Original object ID: 75 0 92 0 obj << /Length 93 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 93 0 obj 47 endobj %% Contents for page 22 %% Original object ID: 77 0 94 0 obj << /Length 95 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 95 0 obj 47 endobj %% Contents for page 24 %% Original object ID: 81 0 96 0 obj << /Length 97 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 97 0 obj 47 endobj %% Contents for page 25 %% Original object ID: 83 0 98 0 obj << /Length 99 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 99 0 obj 47 endobj %% Contents for page 26 %% Original object ID: 85 0 100 0 obj << /Length 101 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 101 0 obj 47 endobj %% Contents for page 27 %% Original object ID: 87 0 102 0 obj << /Length 103 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 103 0 obj 47 endobj %% Contents for page 28 %% Original object ID: 89 0 104 0 obj << /Length 105 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 105 0 obj 47 endobj %% Contents for page 29 %% Original object ID: 91 0 106 0 obj << /Length 107 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 107 0 obj 47 endobj %% Contents for page 30 %% Original object ID: 93 0 108 0 obj << /Length 109 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 109 0 obj 47 endobj 110 0 obj << /Type /XRef /Length 444 /W [ 1 2 1 ] /Root 1 0 R /Size 111 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> stream 4  ~   ,wcO9#  y!e"Q#=$)%&&'()*+,,--..p./ /h/000101x12(223>3343445H556=667R788H889_9::W:;;o;</>w>?*??@G@@ACAA endstream endobj startxref 16834 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/extensions-none-min-1.7.2.out0000644000064100006410000000014313247541377020701 0ustar ejbejbversion: 1.7 extension level: 2 << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.2.c-check0000644000064100006410000000005013247541377017665 0ustar ejbejbversion: 1.2 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.3.c-check0000644000064100006410000000005013247541377017666 0ustar ejbejbversion: 1.2 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.7-ogen.c-check0000644000064100006410000000005013247541377020322 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.3-ogen.check0000644000064100006410000000026213247541377020401 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.11-ogen.check0000644000064100006410000000067213247541377020144 0ustar ejbejbchecking a.pdf PDF Version: 1.5 R = 3 P = -4 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed File is linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.8-ogen.check0000644000064100006410000000026213247541377020424 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/issue-100.pdf0000644000064100006410000000217113247541377015714 0ustar ejbejb%PDF-1.4 stream r e endj 42 end 5 0 obj << >> endobj 6 0 obj endobj 1 0 obj>> /IT) >> ej 8 0 obj <)>> endobj xref 0 9 0005 f 0 n% 000n 0 n 00r << R /R >> stream l ( end 3 0 obj 682 endobj 5 0 obj <> ej > ej obj <)>> endobj xref 0 9 0f 0 n% 0 0 n 00 trailer <> stream x W Zf endstream endobj 9 0 obj f /F 0 / 4 / /Fo R /0 R >> endobj 10 0 obj 0 R >> endobj 11 0 obj R /t] >> en00720069007400650072> /Producer> endobj xref 0 9 0000000000 65535 f 0500000226 00000 n 0000000019 00000 n 0000000132 00000 n 0000000368 00000 n 0000000151 00000 n 0000000173 00000 n 0000000466 00000 n 0000000562 00000 n trailer < <7858D09B4E32E4D1EBE42BC924127ECB> ] /DocChecksum /FDC26rces 6 0 R/M0BFB72FC376529F8A64DD4B65A6 >> startxref 736 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/good20.out0000644000064100006410000000017113247541377015414 0ustar ejbejb/QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.6.c-check0000644000064100006410000000005013247541377017350 0ustar ejbejbversion: 1.3 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/split-exp.zdf_090000644000064100006410000000203113247541377016530 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 9) Tj ET endstream endobj 5 0 obj 47 endobj %% Original object ID: 5 0 6 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 7 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000242 00000 n 0000000509 00000 n 0000000611 00000 n 0000000657 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 765 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/decrypted-crypt-filter.pdf0000644000064100006410000003405713247541377020703 0ustar ejbejb%PDF-1.5 % 1 0 obj << /Metadata 3 0 R /Outlines 4 0 R /PageLabels << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /PageMode /UseOutlines /Pages 5 0 R /Type /Catalog >> endobj 2 0 obj << /CreationDate (D:20031010180432-03'00') /ModDate (D:20031010180432-03'00') >> endobj 3 0 obj << /Subtype /XML /Type /Metadata /Length 770 >> stream 2003-10-10T18:04:32-03:00 2003-10-10T18:04:32-03:00 2003-10-10T18:04:32-03:00 2003-10-10T18:04:32-03:00 2003-10-10T18:04:32-03:00 endstream endobj 4 0 obj << /Count 6 /First 6 0 R /Last 7 0 R /Type /Outlines >> endobj 5 0 obj << /Count 30 /Kids [ 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 35 0 R 36 0 R 37 0 R ] /Type /Pages >> endobj 6 0 obj << /Count 4 /Dest [ 13 0 R /XYZ null null null ] /First 38 0 R /Last 39 0 R /Next 7 0 R /Parent 4 0 R /Title (Isis 1 -> 5: /XYZ null null null) /Type /Outline >> endobj 7 0 obj << /Dest [ 23 0 R /XYZ 66 756 3 ] /Parent 4 0 R /Prev 6 0 R /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Type /Outline >> endobj 8 0 obj << /Contents 40 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 9 0 obj << /Contents 43 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 10 0 obj << /Contents 44 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 11 0 obj << /Contents 45 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 12 0 obj << /Contents 46 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 13 0 obj << /Contents 47 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 14 0 obj << /Contents 48 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 15 0 obj << /Contents 49 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 16 0 obj << /Contents 50 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 17 0 obj << /Contents 51 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 18 0 obj << /Contents 52 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 19 0 obj << /Contents 53 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 20 0 obj << /Contents 54 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 21 0 obj << /Contents 55 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 22 0 obj << /Contents 56 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 23 0 obj << /Contents 57 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 24 0 obj << /Contents 58 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 25 0 obj << /Contents 59 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 26 0 obj << /Contents 60 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 27 0 obj << /Contents 61 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 28 0 obj << /Contents 62 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 29 0 obj << /Contents 63 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 30 0 obj << /Contents 64 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 31 0 obj << /Contents 65 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 32 0 obj << /Contents 66 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 33 0 obj << /Contents 67 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 34 0 obj << /Contents 68 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 35 0 obj << /Contents 69 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 36 0 obj << /Contents 70 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 37 0 obj << /Contents 71 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 38 0 obj << /Count -3 /Dest [ 19 0 R /Fit ] /First 72 0 R /Last 73 0 R /Next 39 0 R /Parent 6 0 R /Title (Amanda 1.1 -> 11: /Fit) /Type /Outline >> endobj 39 0 obj << /Count 2 /Dest [ 21 0 R /FitH 792 ] /First 74 0 R /Last 75 0 R /Parent 6 0 R /Prev 38 0 R /Title (Sandy 1.2 -> 13: /FitH 792) /Type /Outline >> endobj 40 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr  endstream endobj 41 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 42 0 obj [ /PDF /Text ] endobj 43 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr " endstream endobj 44 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr + endstream endobj 45 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr 4 endstream endobj 46 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr = endstream endobj 47 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr F endstream endobj 48 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr O endstream endobj 49 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,W0Tr X endstream endobj 50 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,WTr a endstream endobj 51 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,WTr j !endstream endobj 52 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr 7 Iendstream endobj 53 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr @ Jendstream endobj 54 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr I Kendstream endobj 55 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr R Lendstream endobj 56 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr [ Mendstream endobj 57 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr d Nendstream endobj 58 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr m Oendstream endobj 59 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W04Tr v Pendstream endobj 60 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W0Tr  Qendstream endobj 61 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W0Tr  Rendstream endobj 62 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr A Jendstream endobj 63 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr J Kendstream endobj 64 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr S Lendstream endobj 65 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr \ Mendstream endobj 66 0 obj << /Filter /FlateDecode /Length 50 >> stream xs RPw3T02QI͍@!$/I,i*dqpe Nendstream endobj 67 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr n Oendstream endobj 68 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr w Pendstream endobj 69 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W02Tr  Qendstream endobj 70 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W0Tr  Rendstream endobj 71 0 obj << /Filter /FlateDecode /Length 51 >> stream xs RPw3T02QI͍@!$/I,W0Tr  Sendstream endobj 72 0 obj << /Count -2 /Dest [ 20 0 R /FitV 100 ] /First 76 0 R /Last 77 0 R /Next 73 0 R /Parent 38 0 R /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Type /Outline >> endobj 73 0 obj << /Count 1 /Dest [ 20 0 R /XYZ null null null ] /First 78 0 R /Last 78 0 R /Parent 38 0 R /Prev 72 0 R /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Type /Outline >> endobj 74 0 obj << /Dest [ 9 0 R /FitR 66 714 180 770 ] /Next 75 0 R /Parent 39 0 R /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Type /Outline >> endobj 75 0 obj << /Dest [ 8 0 R /XYZ null null null ] /Parent 39 0 R /Prev 74 0 R /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Type /Outline >> endobj 76 0 obj << /Dest [ 26 0 R /XYZ null null null ] /Next 77 0 R /Parent 72 0 R /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Type /Outline >> endobj 77 0 obj << /Dest [ 27 0 R /XYZ null null null ] /Parent 72 0 R /Prev 76 0 R /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Type /Outline >> endobj 78 0 obj << /Dest [ 30 0 R /XYZ null null null ] /Parent 73 0 R /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Type /Outline >> endobj xref 0 79 0000000000 65535 f 0000000015 00000 n 0000000378 00000 n 0000000474 00000 n 0000001324 00000 n 0000001395 00000 n 0000001657 00000 n 0000001834 00000 n 0000001966 00000 n 0000002147 00000 n 0000002328 00000 n 0000002510 00000 n 0000002692 00000 n 0000002874 00000 n 0000003056 00000 n 0000003238 00000 n 0000003420 00000 n 0000003602 00000 n 0000003784 00000 n 0000003966 00000 n 0000004148 00000 n 0000004330 00000 n 0000004512 00000 n 0000004694 00000 n 0000004876 00000 n 0000005058 00000 n 0000005240 00000 n 0000005422 00000 n 0000005604 00000 n 0000005786 00000 n 0000005968 00000 n 0000006150 00000 n 0000006332 00000 n 0000006514 00000 n 0000006696 00000 n 0000006878 00000 n 0000007060 00000 n 0000007242 00000 n 0000007424 00000 n 0000007579 00000 n 0000007742 00000 n 0000007863 00000 n 0000007971 00000 n 0000008002 00000 n 0000008123 00000 n 0000008244 00000 n 0000008365 00000 n 0000008486 00000 n 0000008607 00000 n 0000008728 00000 n 0000008849 00000 n 0000008970 00000 n 0000009091 00000 n 0000009213 00000 n 0000009335 00000 n 0000009457 00000 n 0000009579 00000 n 0000009701 00000 n 0000009823 00000 n 0000009945 00000 n 0000010067 00000 n 0000010189 00000 n 0000010311 00000 n 0000010433 00000 n 0000010555 00000 n 0000010677 00000 n 0000010799 00000 n 0000010920 00000 n 0000011042 00000 n 0000011164 00000 n 0000011286 00000 n 0000011408 00000 n 0000011530 00000 n 0000011700 00000 n 0000011889 00000 n 0000012045 00000 n 0000012197 00000 n 0000012352 00000 n 0000012507 00000 n trailer << /Info 2 0 R /Root 1 0 R /Size 79 /ID [<66d36a30a97e0f16f39955c6221e0c2a><31415926535897932384626433832795>] >> startxref 12649 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.10.check0000644000064100006410000000067613247541377021232 0ustar ejbejbchecking a.pdf PDF Version: 1.5 R = 3 P = -4 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/V4-clearmeta-encryption.out0000644000064100006410000000057213247541377020743 0ustar ejbejbR = 4 P = -4 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed stream encryption method: RC4 string encryption method: RC4 file encryption method: RC4 qpdf-8.0.2/qpdf/qtest/qpdf/good11.out0000644000064100006410000000024513247541377015416 0ustar ejbejb/QTest is direct and has type dictionary (9) /QTest is a dictionary /a is direct unparse: << /a (a) /b 8 0 R >> unparseResolved: << /a (a) /b 8 0 R >> test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/enc-R3,V2.pdf0000644000064100006410000004136413247541377015610 0ustar ejbejb%PDF-1.4 % 91 0 obj << /Linearized 1 /O 94 /H [ 1336 210 ] /L 17140 /E 4179 /N 30 /T 15202 >> endobj xref 91 22 0000000016 00000 n 0000000805 00000 n 0000001179 00000 n 0000001546 00000 n 0000001741 00000 n 0000001821 00000 n 0000002010 00000 n 0000002151 00000 n 0000002318 00000 n 0000002493 00000 n 0000002657 00000 n 0000002820 00000 n 0000003003 00000 n 0000003205 00000 n 0000003355 00000 n 0000003519 00000 n 0000003684 00000 n 0000003816 00000 n 0000003837 00000 n 0000003953 00000 n 0000001336 00000 n 0000001525 00000 n trailer << /Size 113 /Info 89 0 R /Encrypt 93 0 R /Root 92 0 R /Prev 15192 /ID[<66d36a30a97e0f16f39955c6221e0c2a><1bf0f7dad2f95914868ac5e9e8c295cd>] >> startxref 0 %%EOF 92 0 obj << /PageLabels << /Nums [ 0 << /P ()>> 2 << /S /r /St 1 >> 7 << /P ()>> 9 << /S /r /St 6 >> 11 << /P ()>> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P ()>> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /Pages 88 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 95 0 R /Metadata 90 0 R >> endobj 93 0 obj << /Filter /Standard /R 3 /O (6Eӝu;|,\(fZ5?4Sh\\W) /U (NeB鱬xY؎[n^\nyT!zx) /P -3104 /V 2 /Length 128 >> endobj 111 0 obj << /S 145 /O 189 /Filter /FlateDecode /Length 112 0 R >> stream BEԂS;]lϦ%3.`FkcR5fz6LgY!Ԙud󉐅pfNvI՟hvS{h0tDm endstream endobj 112 0 obj 95 endobj 94 0 obj << /Contents 107 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 95 0 obj << /Type /Outlines /First 96 0 R /Last 97 0 R /Count 6 >> endobj 96 0 obj << /Type /Outline /Title (y.-`F6r}-$=r) /Parent 95 0 R /Count 4 /Next 97 0 R /First 98 0 R /Last 99 0 R /Dest [ 13 0 R /XYZ null null null ] >> endobj 97 0 obj << /Type /Outline /Title (N5~+Nz ulo) /Parent 95 0 R /Prev 96 0 R /Dest [ 43 0 R /XYZ 66 756 3 ] >> endobj 98 0 obj << /Type /Outline /Title (!ވYGWI13yٺc) /Parent 96 0 R /Next 99 0 R /First 102 0 R /Last 103 0 R /Count -3 /Dest [ 31 0 R /Fit ] >> endobj 99 0 obj << /Type /Outline /Title (`g߃Jv IuA"ΰf) /Parent 96 0 R /Prev 98 0 R /First 100 0 R /Last 101 0 R /Count 2 /Dest [ 37 0 R /FitH 792 ] >> endobj 100 0 obj << /Type /Outline /Title ( 1MmoJ?~GWfSme_3}FT) /Parent 99 0 R /Next 101 0 R /Dest [ 1 0 R /FitR 66 714 180 770 ] >> endobj 101 0 obj << /Type /Outline /Title (sHL\\6p\n26'--T) /Parent 99 0 R /Prev 100 0 R /Dest [ 94 0 R /XYZ null null null ] >> endobj 102 0 obj << /Type /Outline /Title (.]1fsccd^;tK@) /Parent 98 0 R /Next 103 0 R /First 105 0 R /Last 106 0 R /Count -2 /Dest [ 34 0 R /FitV 100 ] >> endobj 103 0 obj << /Type /Outline /Title (?Og瞟Sr/& aV=ʦ3s5) /Parent 98 0 R /Prev 102 0 R /First 104 0 R /Last 104 0 R /Count 1 /Dest [ 34 0 R /XYZ null null null ] >> endobj 104 0 obj << /Type /Outline /Title (0A3Wz@Җ~;v0gU|9 \n) /Parent 103 0 R /Dest [ 64 0 R /XYZ null null null ] >> endobj 105 0 obj << /Type /Outline /Title (ҽd3C3';}mZ玦Q5GiRE;T) /Parent 102 0 R /Next 106 0 R /Dest [ 52 0 R /XYZ null null null ] >> endobj 106 0 obj << /Type /Outline /Title (\nT7`[wF=۷2P ъ앬$) /Parent 102 0 R /Prev 105 0 R /Dest [ 55 0 R /XYZ null null null ] >> endobj 107 0 obj << /Filter /FlateDecode /Length 108 0 R >> stream S&_߳Nl<>ç tKEKӦ-z-W;UɛȍO endstream endobj 108 0 obj 52 endobj 109 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 110 0 obj [ /PDF /Text ] endobj 1 0 obj << /Contents 2 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 2 0 obj << /Filter /FlateDecode /Length 3 0 R >> stream rz*T"<|#>k鷁mQܞ5!zc endstream endobj 3 0 obj 52 endobj 4 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 5 0 obj << /Filter /FlateDecode /Length 6 0 R >> stream j$W9dC8F-8M]u5W&y/~r*X&~9W" endstream endobj 6 0 obj 52 endobj 7 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 8 0 obj << /Filter /FlateDecode /Length 9 0 R >> stream >~q[2 6e/ѠN#^= w ‘nV endstream endobj 9 0 obj 52 endobj 10 0 obj << /Contents 11 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 11 0 obj << /Filter /FlateDecode /Length 12 0 R >> stream LDq1[?BT*j*KPw+Gep]f,qV淥L endstream endobj 12 0 obj 52 endobj 13 0 obj << /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 14 0 obj << /Filter /FlateDecode /Length 15 0 R >> stream 󸑁*>cZkd KKKQnY[2r:w$m O>*l+ü" endstream endobj 15 0 obj 52 endobj 16 0 obj << /Contents 17 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 17 0 obj << /Filter /FlateDecode /Length 18 0 R >> stream `ng)m0G˹yL[o ՀzV#yuBDdLA0 endstream endobj 18 0 obj 52 endobj 19 0 obj << /Contents 20 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 20 0 obj << /Filter /FlateDecode /Length 21 0 R >> stream YP `Z*|vPo!l6 fc,[xwB K<@L endstream endobj 21 0 obj 52 endobj 22 0 obj << /Contents 23 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 23 0 obj << /Filter /FlateDecode /Length 24 0 R >> stream yq!TB-1nbﬦ]j1< 8 G endstream endobj 24 0 obj 52 endobj 25 0 obj << /Contents 26 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 26 0 obj << /Filter /FlateDecode /Length 27 0 R >> stream לߵ/嗇0X=Ku2߰-w3"7C endstream endobj 27 0 obj 52 endobj 28 0 obj << /Contents 29 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 29 0 obj << /Filter /FlateDecode /Length 30 0 R >> stream @ԉ"h|G`gk%:LZbjhFV^EJ)hw endstream endobj 30 0 obj 53 endobj 31 0 obj << /Contents 32 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 32 0 obj << /Filter /FlateDecode /Length 33 0 R >> stream LDNM;/:ҭ ?{r{7Ul#<ѕX'+! endstream endobj 33 0 obj 53 endobj 34 0 obj << /Contents 35 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 35 0 obj << /Filter /FlateDecode /Length 36 0 R >> stream G3Gq&r[}o;M)xLw{8H4R endstream endobj 36 0 obj 53 endobj 37 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 38 0 obj << /Filter /FlateDecode /Length 39 0 R >> stream {%)`H /n1H>8<_mKT+MSt"#jˌtg endstream endobj 39 0 obj 53 endobj 40 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 41 0 obj << /Filter /FlateDecode /Length 42 0 R >> stream i y$+JxǨ`RmrVF QBY+4Oط;G endstream endobj 42 0 obj 53 endobj 43 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 44 0 obj << /Filter /FlateDecode /Length 45 0 R >> stream g9}'k"cEAO1 ݾ q ,3K4ɖ endstream endobj 45 0 obj 53 endobj 46 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 47 0 obj << /Filter /FlateDecode /Length 48 0 R >> stream ?̣{Hu`.̜t_*vN9WDe- endstream endobj 48 0 obj 53 endobj 49 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 50 0 obj << /Filter /FlateDecode /Length 51 0 R >> stream h#R3ۮ|TfBkі2sa1,g`[ endstream endobj 51 0 obj 53 endobj 52 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 53 0 obj << /Filter /FlateDecode /Length 54 0 R >> stream A*H20a-˴ Z?#\EcWR#q@ms endstream endobj 54 0 obj 53 endobj 55 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 56 0 obj << /Filter /FlateDecode /Length 57 0 R >> stream T}6ZYQ ӈ1_ɤHA2*UI.aS endstream endobj 57 0 obj 53 endobj 58 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 59 0 obj << /Filter /FlateDecode /Length 60 0 R >> stream Ş2' ;#%aPDrxo|q 'Cl(H!׶C? endstream endobj 60 0 obj 53 endobj 61 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 62 0 obj << /Filter /FlateDecode /Length 63 0 R >> stream 8Ds5)4}V~gy޺t`Cd9.lӫ; endstream endobj 63 0 obj 53 endobj 64 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 65 0 obj << /Filter /FlateDecode /Length 66 0 R >> stream Hc8";B裡׷rDq4ڤHiurS1Y( endstream endobj 66 0 obj 53 endobj 67 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 68 0 obj << /Filter /FlateDecode /Length 69 0 R >> stream ,TZ_504 A􁚙"Df䙆H ,A2ӌ endstream endobj 69 0 obj 53 endobj 70 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 71 0 obj << /Filter /FlateDecode /Length 72 0 R >> stream ?V1`+8( l?8Z/]$r 0@!^1PjD5] endstream endobj 72 0 obj 52 endobj 73 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 74 0 obj << /Filter /FlateDecode /Length 75 0 R >> stream H_",vM =LYSIBvW^:| |/ӄhZ'c$( endstream endobj 75 0 obj 53 endobj 76 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 77 0 obj << /Filter /FlateDecode /Length 78 0 R >> stream I_ Q)873an=biؚV/(nrj7|ij3& endstream endobj 78 0 obj 53 endobj 79 0 obj << /Contents 80 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 80 0 obj << /Filter /FlateDecode /Length 81 0 R >> stream :odGuQυ'Bm.^0nN/X&_֘@]":cI endstream endobj 81 0 obj 53 endobj 82 0 obj << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 83 0 obj << /Filter /FlateDecode /Length 84 0 R >> stream Ɋ+ U܉^8ʱaQ.|8{#[=Hq7zuJ endstream endobj 84 0 obj 53 endobj 85 0 obj << /Contents 86 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 86 0 obj << /Filter /FlateDecode /Length 87 0 R >> stream 6*:棢<6ɝsJ Cu+:CP"cMJ endstream endobj 87 0 obj 53 endobj 88 0 obj << /Count 30 /Kids [ 94 0 R 1 0 R 4 0 R 7 0 R 10 0 R 13 0 R 16 0 R 19 0 R 22 0 R 25 0 R 28 0 R 31 0 R 34 0 R 37 0 R 40 0 R 43 0 R 46 0 R 49 0 R 52 0 R 55 0 R 58 0 R 61 0 R 64 0 R 67 0 R 70 0 R 73 0 R 76 0 R 79 0 R 82 0 R 85 0 R ] /Type /Pages >> endobj 89 0 obj << /ModDate (> endobj 90 0 obj << /Type /Metadata /Subtype /XML /Length 770 >> stream #9/ElAXQUf4_l@ܗ:֖ؖ sv[+и6gE Nn-g#unGXt@mU,Tgb,6sYE{vjMpӳ' 8|_*NŠ!+? g?e۹GrYM|P)%vkxE+!Xb5.grsN\WY:Sf:8=vi`/ }l;WC %8?&tgMv挺$e o B~ gL#ljJQӾ)c7ڇu6\ǶLP(U4CF?/lW_Mw`33jPS|-FzO#YŪUv0Os~BX~ם"qνj3L.;iǬΘPbTG6/%sl`^":)"}j J  0U ws=ww;voQ+KR{K8?M vaɕ("AUyf+4 CO;~0S0z1"=й)Gf#8Fsti1Vn DrA endstream endobj xref 0 91 0000000000 65535 f 0000003987 00000 n 0000004179 00000 n 0000004307 00000 n 0000004326 00000 n 0000004518 00000 n 0000004646 00000 n 0000004665 00000 n 0000004857 00000 n 0000004985 00000 n 0000005004 00000 n 0000005198 00000 n 0000005328 00000 n 0000005348 00000 n 0000005542 00000 n 0000005672 00000 n 0000005692 00000 n 0000005886 00000 n 0000006016 00000 n 0000006036 00000 n 0000006230 00000 n 0000006360 00000 n 0000006380 00000 n 0000006574 00000 n 0000006704 00000 n 0000006724 00000 n 0000006918 00000 n 0000007048 00000 n 0000007068 00000 n 0000007262 00000 n 0000007393 00000 n 0000007413 00000 n 0000007607 00000 n 0000007738 00000 n 0000007758 00000 n 0000007952 00000 n 0000008083 00000 n 0000008103 00000 n 0000008297 00000 n 0000008428 00000 n 0000008448 00000 n 0000008642 00000 n 0000008773 00000 n 0000008793 00000 n 0000008987 00000 n 0000009118 00000 n 0000009138 00000 n 0000009332 00000 n 0000009463 00000 n 0000009483 00000 n 0000009677 00000 n 0000009808 00000 n 0000009828 00000 n 0000010022 00000 n 0000010153 00000 n 0000010173 00000 n 0000010367 00000 n 0000010498 00000 n 0000010518 00000 n 0000010712 00000 n 0000010843 00000 n 0000010863 00000 n 0000011057 00000 n 0000011188 00000 n 0000011208 00000 n 0000011402 00000 n 0000011533 00000 n 0000011553 00000 n 0000011747 00000 n 0000011878 00000 n 0000011898 00000 n 0000012092 00000 n 0000012222 00000 n 0000012242 00000 n 0000012436 00000 n 0000012567 00000 n 0000012587 00000 n 0000012781 00000 n 0000012912 00000 n 0000012932 00000 n 0000013126 00000 n 0000013257 00000 n 0000013277 00000 n 0000013471 00000 n 0000013602 00000 n 0000013622 00000 n 0000013816 00000 n 0000013947 00000 n 0000013967 00000 n 0000014237 00000 n 0000014338 00000 n trailer << /Size 91 /ID[<66d36a30a97e0f16f39955c6221e0c2a><1bf0f7dad2f95914868ac5e9e8c295cd>] >> startxref 173 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.3-ogen.c-check0000644000064100006410000000005013247541377022304 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.9-ogen.check0000644000064100006410000000025613247541377020071 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.8.c-check0000644000064100006410000000005013247541377021363 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/lin8.pdf0000644000064100006410000006045313247541377015147 0ustar ejbejb%PDF-1.4 % 103 0 obj << /Linearized 1 /L 24875 /H [ 1052 217 ] /O 105 /E 2656 /N 30 /T 22687 >> endobj xref 103 10 0000000017 00000 n 0000000672 00000 n 0000001269 00000 n 0000001483 00000 n 0000001617 00000 n 0000001735 00000 n 0000001770 00000 n 0000002019 00000 n 0000002075 00000 n 0000001052 00000 n trailer << /Size 113 /Prev 22675 /Info 101 0 R /Root 104 0 R /ID [] >> startxref 0 %%EOF 104 0 obj << /PageLabels << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /Pages 88 0 R /Type /Catalog /PageMode /UseThumbs /Outlines 89 0 R /Metadata 102 0 R >> endobj 112 0 obj << /S 241 /O 284 /Filter /FlateDecode /Length 118 >> stream xc```f``L \ cf`ah@< ,L T8p05,dj$4& (fF20viQÒ9 endstream endobj 105 0 obj << /Contents 106 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 108 0 R >> /Type /Page /Thumb 109 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 106 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0  endstream endobj 107 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 108 0 obj [ /PDF /Text ] endobj 109 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 110 0 R /BitsPerComponent 8 /Length 83 >> stream 8;Z]Y0b(o`&-G4acc:FWkNLuZiJL1R9X1GU)1Em"BmZ': endstream endobj 110 0 obj [ /Indexed /DeviceRGB 255 111 0 R ] endobj 111 0 obj << /Filter [ /ASCII85Decode /LZWDecode ] /Length 481 >> stream J,g]g+e/h_!_gCtO=0f)$P%cIi8Zdfc5&3j_8$7g.@L`YKUJNGBP\poR=_;Dl'P(T (7Boo^^S:71(MN]ZQX/+Cbu.lK"p74pe1T%s.DY%&\1TdJhr54.M9au6>79n6`Q:4 PbLSZTLEE(8E@'*1mg_*eTnN*;*'V3+gm-EEetX%;Bo$ur2ss*N`.-!.kG_q6GDD' dKoL!8Ka#EV,@V!\j8ZFbp6EE<9cn=N6j0nf;(&;QU6bUD')c@\ 9-d\DA=cZ0Q>gIM$$;cd2O@&a;X,Nn_aP(]I1aRc(K1^ue> gF/(+GaKo$qneLWDrQ#;5\S(\$q'4Q,85`-8;S(=Z"WSBOV*FM)4,?B],R endstream endobj 1 0 obj << /Contents 2 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 108 0 R >> /Type /Page /Thumb 3 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 2 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0"  endstream endobj 3 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 110 0 R /BitsPerComponent 8 /Length 79 >> stream 8;Z]Y5n1Up&->+`k@abO#212#CXjH)pgLz!!)M^ 7t:U?@"bK0~> endstream endobj 4 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 108 0 R >> /Type /Page /Thumb 6 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 5 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0+  endstream endobj 6 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 110 0 R /BitsPerComponent 8 /Length 79 >> stream 8;Z]Y5n1Up&->+`k@abO#212#CXjH)pgLz!!)M^ 7t:U?@"bK0~> endstream endobj 7 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 108 0 R >> /Type /Page /Thumb 9 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 8 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 04  endstream endobj 9 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 110 0 R /BitsPerComponent 8 /Length 83 >> stream 8;Z]Y_$RmW#Qqjoh8arLO6b<@i1j-:!g6W(L0s2:8[>JD>No-nRG@hbjuqu#('"=7 !!!"HkRh2&ftODc~> endstream endobj 10 0 obj << /Contents 11 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 108 0 R >> /Type /Page /Thumb 12 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 11 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0=  endstream endobj 12 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 110 0 R /BitsPerComponent 8 /Length 85 >> stream 8;Z]Y;$fKB$j/b]oi"*F;`i_jm(nQ]=/PD0A`qPJ])Vg2 !!!#W7n\@5!86V8Wr~> endstream endobj 13 0 obj << /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 108 0 R >> /Type /Page /Thumb 15 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 14 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0F  endstream endobj 15 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 110 0 R /BitsPerComponent 8 /Length 77 >> stream 8;Z]W;$k#l'LP`aob0R[oB`R/d(s+['?K@-iE)21[]d',D.WB.0;X$YHJ\c(zJ.FdE $ip=7W2f~> endstream endobj 16 0 obj << /Contents 17 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 108 0 R >> /Type /Page /Thumb 18 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 17 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0O  endstream endobj 18 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 110 0 R /BitsPerComponent 8 /Length 83 >> stream 8;Z]Y5n*fK&->+`on+@aXIX,ao[2_To,t[O1]0j#e+U07X_(d?:%*T!OdtY60)ttP !!!"DkS%>(;R*0N~> endstream endobj 19 0 obj << /Contents 20 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 108 0 R >> /Type /Page /Thumb 21 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 20 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0X  endstream endobj 21 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 110 0 R /BitsPerComponent 8 /Length 77 >> stream 8;Z]W;$k#l'LP`aob0R[oB`R-d)'1\'?K@-iE)21[T?YW[^+U,\'htak.Citz!$?Li (]YIXW;u~> endstream endobj 22 0 obj << /Contents 23 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 108 0 R >> /Type /Page /Thumb 24 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 23 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,WTr 0a endstream endobj 24 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 110 0 R /BitsPerComponent 8 /Length 85 >> stream 8;Z]Y5n*f[#R!G[pqb;O_9VF_i3CD#MI`;!B)%YZR3ZE[h+Ad>PoJQYQ#h.]hZ endstream endobj 25 0 obj << /Contents 26 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 108 0 R >> /Type /Page /Thumb 27 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 26 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,WTr 0j ! endstream endobj 27 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 110 0 R /BitsPerComponent 8 /Length 78 >> stream 8;Z]W0b(o`&-G4acc:FWkNLuZiJL1RN$XfP_lk=AD=;&lC9EcLls&`1Ha@Vkz!5O@2 ! endstream endobj 28 0 obj << /Contents 29 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 108 0 R >> /Type /Page /Thumb 30 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 29 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W04Tr 07 I endstream endobj 30 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 110 0 R /BitsPerComponent 8 /Length 82 >> stream 8;Z]Y5n1Up&->+`k6F6H=ZbGS\4;`pk!=5(B)%X%VX6i"QWq]q3Si9@?TXB/k5H.s z!. endstream endobj 31 0 obj << /Contents 32 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 108 0 R >> /Type /Page /Thumb 33 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 32 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0@ J endstream endobj 33 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 110 0 R /BitsPerComponent 8 /Length 81 >> stream 8;Z]Y5m[NW$j/b]l_f3s-[)YnToXn;-BMk2_QQobh*"c;j]9tmFZMJ)?Tkrbr@\-N zGj#fK!.^Z=rr~> endstream endobj 34 0 obj << /Contents 35 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 108 0 R >> /Type /Page /Thumb 36 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 35 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0I K endstream endobj 36 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 110 0 R /BitsPerComponent 8 /Length 83 >> stream 8;Z]Y5n*fK$j/e]j^UL5@li4NkbHR?-Bb"K[erbGcHMkR/q6U(Pr1^Kfl_Vd1qi8X z!.]hg! endstream endobj 37 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 108 0 R >> /Type /Page /Thumb 39 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 38 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0R L endstream endobj 39 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 110 0 R /BitsPerComponent 8 /Length 83 >> stream 8;Z]Y_$L*-#Qqjp\"E;&5IPWN%6bPfR6^6Vm,hB4m])^JB=V"[-`?fQq,^:.h.sP) z!!!OX!Xo)*"/jW~> endstream endobj 40 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 108 0 R >> /Type /Page /Thumb 42 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 41 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0[ M endstream endobj 42 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 110 0 R /BitsPerComponent 8 /Length 83 >> stream 8;Z]Y0b"+;$j/b\j^UL5'0;apaAD,D2cuY&GOm=VG?%A5ZeVR>P>fqFqeIO!j0n%b z!!#.R#quA.<2Y0~> endstream endobj 43 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 108 0 R >> /Type /Page /Thumb 45 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 44 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0d N endstream endobj 45 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 110 0 R /BitsPerComponent 8 /Length 82 >> stream 8;Z]Y_$L*-#Qqjp[ibK=5IPWN%6bPf)'S&el/l'I\s#h;qH%F%3k9+>.s!Xe>;$'Y zJ7h%H"os/bVl9~> endstream endobj 46 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 108 0 R >> /Type /Page /Thumb 48 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 47 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0m O endstream endobj 48 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 110 0 R /BitsPerComponent 8 /Length 83 >> stream 8;Z]Y0b"+;$j/b\j^UL5'0;apaAD,D2cuY&GOm=VG?%A5ZeVR>P>fqFqeIO!j0n%b z!!#.R#quA.<2Y0~> endstream endobj 49 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 108 0 R >> /Type /Page /Thumb 51 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 50 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0v P endstream endobj 51 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 110 0 R /BitsPerComponent 8 /Length 82 >> stream 8;Z]Y5n1Up$j/e]a2`SO-Zked\4 endstream endobj 52 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 108 0 R >> /Type /Page /Thumb 54 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 53 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0 Q endstream endobj 54 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 110 0 R /BitsPerComponent 8 /Length 83 >> stream 8;Z]Y_$L*-#QqjpmDj\B-gf],%6bPf)'S&U9_an@A7eSYC:Q3M<7fp6rG0^788#O< z!!!OX!Xo&Ud\g"~> endstream endobj 55 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 108 0 R >> /Type /Page /Thumb 57 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 56 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0 R endstream endobj 57 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 110 0 R /BitsPerComponent 8 /Length 82 >> stream 8;Z]Y_$L*-#Qqjp[ibLPT(]_RfVg\~> endstream endobj 58 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 108 0 R >> /Type /Page /Thumb 60 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 59 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0A J endstream endobj 60 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 110 0 R /BitsPerComponent 8 /Length 82 >> stream 8;Z]Y5n1Up&->+`k6F6H=ZbGS\4;`pk!=5(B)%X%VX6i"QWq]q3Si9@?TXB/k5H.s z!. endstream endobj 61 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 108 0 R >> /Type /Page /Thumb 63 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 62 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0J K endstream endobj 63 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 110 0 R /BitsPerComponent 8 /Length 81 >> stream 8;Z]Y5m[NW$j/b]l_f3s-[)YnToXn;-BMk2_QQobh*"c;j]9tmFZMJ)?Tkrbr@\-N zGj#fK!.^Z=rr~> endstream endobj 64 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 108 0 R >> /Type /Page /Thumb 66 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 65 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0S L endstream endobj 66 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 110 0 R /BitsPerComponent 8 /Length 83 >> stream 8;Z]Y5n*fK$j/e]j^UL5@li4NkbHR?-Bb"K[erbGcHMkR/q6U(Pr1^Kfl_Vd1qi8X z!.]hg! endstream endobj 67 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 108 0 R >> /Type /Page /Thumb 69 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 68 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0\ M endstream endobj 69 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 110 0 R /BitsPerComponent 8 /Length 83 >> stream 8;Z]Y_$L*-#Qqjp\"E;&5IPWN%6bPfR6^6Vm,hB4m])^JB=V"[-`?fQq,^:.h.sP) z!!!OX!Xo)*"/jW~> endstream endobj 70 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 108 0 R >> /Type /Page /Thumb 72 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 71 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,i*dqpe N endstream endobj 72 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 110 0 R /BitsPerComponent 8 /Length 83 >> stream 8;Z]Y0b"+;$j/b\j^UL5'0;apaAD,D2cuY&GOm=VG?%A5ZeVR>P>fqFqeIO!j0n%b z!!#.R#quA.<2Y0~> endstream endobj 73 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 108 0 R >> /Type /Page /Thumb 75 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 74 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0n O endstream endobj 75 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 110 0 R /BitsPerComponent 8 /Length 82 >> stream 8;Z]Y_$L*-#Qqjp[ibK=5IPWN%6bPf)'S&el/l'I\s#h;qH%F%3k9+>.s!Xe>;$'Y zJ7h%H"os/bVl9~> endstream endobj 76 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 108 0 R >> /Type /Page /Thumb 78 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 77 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0w P endstream endobj 78 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 110 0 R /BitsPerComponent 8 /Length 83 >> stream 8;Z]Y0b"+;$j/b\j^UL5'0;apaAD,D2cuY&GOm=VG?%A5ZeVR>P>fqFqeIO!j0n%b z!!#.R#quA.<2Y0~> endstream endobj 79 0 obj << /Contents 80 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 108 0 R >> /Type /Page /Thumb 81 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 80 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0 Q endstream endobj 81 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 110 0 R /BitsPerComponent 8 /Length 82 >> stream 8;Z]Y5n1Up$j/e]a2`SO-Zked\4 endstream endobj 82 0 obj << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 108 0 R >> /Type /Page /Thumb 84 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 83 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0 R endstream endobj 84 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 110 0 R /BitsPerComponent 8 /Length 83 >> stream 8;Z]Y_$L*-#QqjpmDj\B-gf],%6bPf)'S&U9_an@A7eSYC:Q3M<7fp6rG0^788#O< z!!!OX!Xo&Ud\g"~> endstream endobj 85 0 obj << /Contents 86 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 108 0 R >> /Type /Page /Thumb 87 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 86 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0 S endstream endobj 87 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 110 0 R /BitsPerComponent 8 /Length 82 >> stream 8;Z]Y_$L*-#Qqjp[ibLPT(]_RfVg\~> endstream endobj 88 0 obj << /Count 30 /Kids [ 105 0 R 1 0 R 4 0 R 7 0 R 10 0 R 13 0 R 16 0 R 19 0 R 22 0 R 25 0 R 28 0 R 31 0 R 34 0 R 37 0 R 40 0 R 43 0 R 46 0 R 49 0 R 52 0 R 55 0 R 58 0 R 61 0 R 64 0 R 67 0 R 70 0 R 73 0 R 76 0 R 79 0 R 82 0 R 85 0 R ] /Type /Pages >> endobj 89 0 obj << /Type /Outlines /First 90 0 R /Last 91 0 R /Count 6 >> endobj 90 0 obj << /Type /Outline /Title (Iss 1 -> 5: /XYZ null null null) /Parent 89 0 R /Count 4 /Next 91 0 R /First 92 0 R /Last 93 0 R /Dest [ 13 0 R /XYZ null null null ] >> endobj 91 0 obj << /Type /Outline /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Parent 89 0 R /Prev 90 0 R /Dest [ 43 0 R /XYZ 66 756 3 ] >> endobj 92 0 obj << /Type /Outline /Title (Amanda 1.1 -> 11: /Fit) /Parent 90 0 R /Next 93 0 R /First 96 0 R /Last 97 0 R /Count -3 /Dest [ 31 0 R /Fit ] >> endobj 93 0 obj << /Type /Outline /Title /Parent 90 0 R /Prev 92 0 R /First 94 0 R /Last 95 0 R /Count 2 /Dest [ 37 0 R /FitH 792 ] >> endobj 94 0 obj << /Type /Outline /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Parent 93 0 R /Next 95 0 R /Dest [ 1 0 R /FitR 66 714 180 770 ] >> endobj 95 0 obj << /Type /Outline /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Parent 93 0 R /Prev 94 0 R /Dest [ 105 0 R /XYZ null null null ] >> endobj 96 0 obj << /Type /Outline /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Parent 92 0 R /Next 97 0 R /First 99 0 R /Last 100 0 R /Count -2 /Dest [ 34 0 R /FitV 100 ] >> endobj 97 0 obj << /Type /Outline /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Parent 92 0 R /Prev 96 0 R /First 98 0 R /Last 98 0 R /Count 1 /Dest [ 34 0 R /XYZ null null null ] >> endobj 98 0 obj << /Type /Outline /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Parent 97 0 R /Dest [ 64 0 R /XYZ null null null ] >> endobj 99 0 obj << /Type /Outline /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Parent 96 0 R /Next 100 0 R /Dest [ 52 0 R /XYZ null null null ] >> endobj 100 0 obj << /Type /Outline /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Parent 96 0 R /Prev 99 0 R /Dest [ 55 0 R /XYZ null null null ] >> endobj 101 0 obj << /ModDate (D:20031101162528-05'00') /CreationDate (D:20031101161932-05'00') >> endobj 102 0 obj << /Type /Metadata /Subtype /XML /Length 320 /Filter /FlateDecode >> stream x=o0w~X@K:`' \A$ ):wX;˽[S)xir^N|?Ӿ&Zl[ çnR0ڶ 0-"q#L#-|<@'}N7U!: F$Q2+MY+cU//Vt #6GzhUlY[QCyd4b8AC[ԒWȒt:K4zzur86{#H{#,-?ӿw}sGyIR3 v endstream endobj xref 0 103 0000000103 65535 f 0000002656 00000 n 0000002864 00000 n 0000002996 00000 n 0000003239 00000 n 0000003447 00000 n 0000003579 00000 n 0000003822 00000 n 0000004030 00000 n 0000004162 00000 n 0000004409 00000 n 0000004620 00000 n 0000004753 00000 n 0000005003 00000 n 0000005214 00000 n 0000005347 00000 n 0000005589 00000 n 0000005800 00000 n 0000005933 00000 n 0000006181 00000 n 0000006392 00000 n 0000006525 00000 n 0000006767 00000 n 0000006978 00000 n 0000007111 00000 n 0000007361 00000 n 0000007572 00000 n 0000007705 00000 n 0000007948 00000 n 0000008159 00000 n 0000008293 00000 n 0000008540 00000 n 0000008751 00000 n 0000008885 00000 n 0000009131 00000 n 0000009342 00000 n 0000009476 00000 n 0000009724 00000 n 0000009935 00000 n 0000010069 00000 n 0000010317 00000 n 0000010528 00000 n 0000010662 00000 n 0000010910 00000 n 0000011121 00000 n 0000011255 00000 n 0000011502 00000 n 0000011713 00000 n 0000011847 00000 n 0000012095 00000 n 0000012306 00000 n 0000012440 00000 n 0000012687 00000 n 0000012898 00000 n 0000013032 00000 n 0000013280 00000 n 0000013491 00000 n 0000013625 00000 n 0000013872 00000 n 0000014083 00000 n 0000014217 00000 n 0000014464 00000 n 0000014675 00000 n 0000014809 00000 n 0000015055 00000 n 0000015266 00000 n 0000015400 00000 n 0000015648 00000 n 0000015859 00000 n 0000015993 00000 n 0000016241 00000 n 0000016452 00000 n 0000016585 00000 n 0000016833 00000 n 0000017044 00000 n 0000017178 00000 n 0000017425 00000 n 0000017636 00000 n 0000017770 00000 n 0000018018 00000 n 0000018229 00000 n 0000018363 00000 n 0000018610 00000 n 0000018821 00000 n 0000018955 00000 n 0000019203 00000 n 0000019414 00000 n 0000019548 00000 n 0000019795 00000 n 0000020067 00000 n 0000020149 00000 n 0000020341 00000 n 0000020485 00000 n 0000020653 00000 n 0000020944 00000 n 0000021109 00000 n 0000021272 00000 n 0000021455 00000 n 0000021656 00000 n 0000021806 00000 n 0000021971 00000 n 0000022136 00000 n 0000022240 00000 n trailer << /Size 103 /ID [] >> startxref 178 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/extensions-other-force-1.8.5.pdf0000644000064100006410000000163313247541377021351 0ustar ejbejb%PDF-1.8 % 1 0 obj << /Extensions << /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet 6 0 R >> /Type /Page >> endobj 4 0 obj << /Length 48 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 5 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 6 0 obj [ /PDF /Text ] endobj xref 0 7 0000000000 65535 f 0000000015 00000 n 0000000188 00000 n 0000000247 00000 n 0000000390 00000 n 0000000508 00000 n 0000000615 00000 n trailer << /Root 1 0 R /Size 7 /ID [<369e89600ee1a6c4c7e73533610180c2><31415926535897932384626433832795>] >> startxref 645 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.6.check0000644000064100006410000000026213247541377017474 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/bad25-recover.out0000644000064100006410000000057413247541377016671 0ustar ejbejbWARNING: bad25.pdf: file is damaged WARNING: bad25.pdf (object 4 0, offset 307): expected n n obj WARNING: bad25.pdf: Attempting to reconstruct cross-reference table WARNING: bad25.pdf: object 4 0 not found in file after regenerating cross reference table /QTest is implicit /QTest is indirect and has type null (2) /QTest is null unparse: 4 0 R unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.6-ogen.check0000644000064100006410000000026213247541377022074 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/append-page-content-damaged.out0000644000064100006410000000044213247541377021534 0ustar ejbejbWARNING: append-page-content-damaged.pdf: file is damaged WARNING: append-page-content-damaged.pdf: can't find startxref WARNING: append-page-content-damaged.pdf: Attempting to reconstruct cross-reference table qpdf: operation succeeded with warnings; resulting file may have some problems qpdf-8.0.2/qpdf/qtest/qpdf/good2.qdf0000644000064100006410000000213113247541377015275 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj %% Original object ID: 6 0 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 5 0 7 0 obj [ /PDF /Text ] endobj xref 0 8 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000242 00000 n 0000000484 00000 n 0000000583 00000 n 0000000629 00000 n 0000000774 00000 n trailer << /Root 1 0 R /Size 8 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 809 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/good8.qdf0000644000064100006410000000225713247541377015314 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 3 0 R /Type /Catalog >> endobj %% Original object ID: 7 0 2 0 obj 3.14159 endobj %% Original object ID: 2 0 3 0 obj << /Count 1 /Kids [ 4 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 4 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 7 0 R >> /ProcSet 8 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 5 0 obj << /Length 6 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 6 0 obj 44 endobj %% Original object ID: 6 0 7 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 5 0 8 0 obj [ /PDF /Text ] endobj xref 0 9 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000184 00000 n 0000000293 00000 n 0000000535 00000 n 0000000634 00000 n 0000000680 00000 n 0000000825 00000 n trailer << /QTest 2 0 R /Root 1 0 R /Size 9 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 860 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.12.check0000644000064100006410000000026213247541377017533 0ustar ejbejbchecking a.pdf PDF Version: 1.2 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/png-filters.pdf0000644000064100006410000004067313247541377016531 0ustar ejbejb%PDF-1.3 4 0 obj <>] /ColorSpace/DeviceRGB /Length 229 >> stream xՖ 0DA~&fzE=֠B>/drs~='3_Zwt(p3p]`_yt?t(C\l52L̩g I@g.`(`g Dg&((`60Y`zl(P49܀:{z*zȟmt3ΞAO3B^endstream endobj 5 0 obj <> stream 1.000 0 0 1.000 0 0 cm q 32 0 0 32 0 0 cm /I1 Do Q endstream endobj 6 0 obj <> >> endobj 7 0 obj <> endobj 8 0 obj <>] /ColorSpace/DeviceGray /Length 262 >> stream x/LBQsc77bXHfiT#Hl&bX 7s vsd:-ǧ׷fޗcC02CCpe. \B JPd"ܖ " sTRz"'!]8Rݖ9pg>7[m0EuʩPs"'}H '8JEXiVE?h$"ˋ?CCP75Cp`,%/}Xendstream endobj 9 0 obj <> stream 1.000 0 0 1.000 0 0 cm q 32 0 0 32 0 0 cm /I2 Do Q endstream endobj 10 0 obj <> >> endobj 11 0 obj <> endobj 12 0 obj <>] /ColorSpace/DeviceRGB /Length 2418 >> stream xuopTƟM6Ɇ ,I hE@v Fؖb k"d; MHCaVe(RzCH/||L(8ڞOwD2h\:9j<-B>YY󸠄X@WWs]-7sK#lfi<<p_hNKzNsL,sɧwKsi\U5󸾄n`cߪZg[#ۛxRϮvw|/eEiywn!>Ǥ-L%QI4be.WsxpC!7y|M wVpw[yi̓x?]9//[סFʤ16X-lql*BS=sV} XCS5߯Z ɛgx" :1è&v&QM,eW>O."%b/U=m&5hꝼ}w !iP㇍17QKbOd7Wym,`_!7~Sg5Zުwm k;}'D8,G"r4*bU5M3꺑4d&3҉<$א/udE r]Dߎ#qqxN7t)?7&+uŗo6p-[ca!I#’3"ccUyt4g9OWsN Xsvwf7؀d0D_ T% RRFD2cR?([stw2^qz},bpFf_MA!DRRRR>Q?z vqN|Y\P|q%A:m'Ix,)B E0U It)2Gw"9{nΚӹDzbV\D O*V M(Y"`l?KIV a?%cX:K= L*snXͿb#L w</[B!"8F?ǞԙR|-E \=k' ӹ׊6-Ng\p'<<4>Ẉ {C̆+n'<.x'7iPBkA)T'k4OMv{yv6TG6yp=7φ%B;&D-=x:&KX,Zan.nx pOhF)VXl1؁,']p1҃^LaS aQJˣXK*^#-]C¡{/! { 3L$[bNd`w#ǃ^8}O&XB/Q,XZ!72}yo]@ adE f;:Յ 72=E/a xDA~ &cJODaqkxNOHr9_ FLv$;`vb 7R=H& 6?(#a8#&p -a |4/ '.H$ fR@jȈ`p1 Qa' 9:o&Zendstream endobj 13 0 obj <> stream 1.000 0 0 1.000 0 0 cm q 32 0 0 32 0 0 cm /I3 Do Q endstream endobj 14 0 obj <> >> endobj 15 0 obj <> endobj 16 0 obj <>] /ColorSpace/DeviceGray /Length 264 >> stream x!KAvvv1`1X,&f 6`.`8"\ A0' ٰǾq-TUJ !$QGX[:wĥuąuęuij ǩWGZ14)9x+1fcI+$½8l)U'0Ntb{1nG'-qU)Nj7'qMW0A.A Qt)C[P l mAtDGQ,endstream endobj 17 0 obj <> stream 1.000 0 0 1.000 0 0 cm q 32 0 0 32 0 0 cm /I4 Do Q endstream endobj 18 0 obj <> >> endobj 19 0 obj <> endobj 20 0 obj <>] /ColorSpace/DeviceRGB /Length 1123 >> stream x?%UΜ34"XBc+АPF M(,hH((,10V5RB %,bܝ토x7}ost°ٙbW>y~Lk鯝U(3kAy=uesp+ȍ2:SAE7woyU~wz:`{('^TU*qVNzS)S[I[DY\O*_ ?+t|' E3ǧpդ$LTPMR54: @|6ۿ|a3Ƞ@ *TTA:0`pIvz (Ȓ"Dթhbvt;}@8}*(fDv8䨞ꨞi٫ُ3Zg { IdyW LδH Q=~w'%hr')<Gh9^zp70FR(;{ ^xڹ ,#)Q%1%j&2N? p(QT; d 5'ER E,%Δ̔G̨Zf; v:1#i%aL11oꂛctƬeQ !y{b$FR:cF^B)LRj56 1,ڠxOHLĵΗ%+XLJL@<4 CGb"5FȕRN l]B.Ot'R(60 P]~rpg߅8+G 䡲\ V.: pi!„& A뾝;:QDZc(? @&K炭> stream 1.000 0 0 1.000 0 0 cm q 32 0 0 32 0 0 cm /I5 Do Q endstream endobj 22 0 obj <> >> endobj 23 0 obj <> endobj 24 0 obj <>] /ColorSpace/DeviceGray /Length 298 >> stream x/KQ8 A M,XI0 V `M`b,AA}_æ½pp:<&1"iDD1Zw{B1FDJA)JAP R4A`w{s=4Jtm}L\$ EDj@M'TR$z.BĢ ..k>PZdOb 31z]贘G1(q tڷOr|1:S! ?C+k[;{CAE  䗿endstream endobj 25 0 obj <> stream 1.000 0 0 1.000 0 0 cm q 32 0 0 32 0 0 cm /I6 Do Q endstream endobj 26 0 obj <> >> endobj 27 0 obj <> endobj 28 0 obj <>] /ColorSpace/DeviceRGB /Length 1672 >> stream xmI$yoD-YKWee xƓ s@#xƃ0" (*"҈=ݵuUU&eAjҞPRd91aTI)5aXL+Fxx\7enhƸ}Lʢ62+/PDa\KAe@(8sIs qU%2Wm:!UQeD))C&5k,xs[T/&\K\{pN`Wσ1+l)LxƄQaDÝ뱭w,;{q7Mt FO|Azz:ԡ-4AԣvZlĶeǛmWfy>ohy2DR:AO+16=MlemĶ쁳EEyOlnB79D#9FW-4z6Gj6cϑpײ*3%%sp&aKpmϱ(pвݘ-gV~jv݊)&Rz!6So'ގ%4[^l;ζm:[ ,X)HlW#PTL|o-o.)8iGqь{uHGg6[m~.~?7i7iæ5d=_0?IR'iК&x[]{ r>@Btttؤf2gLX2iɔX!.y,'͑ Jqie<z<}B ,;{3:rwBnNN,' -KQXq©pzv[llĬ98;bEAQyNfV|JK'DmN~ TªcrԿC(*ۡӥWfvJ'~ TºcHV5d +Kѡۥ2Q$+^B T+*abts:9yF^VӒ1{1;-Ǧc-C>endstream endobj 29 0 obj <> stream 1.000 0 0 1.000 0 0 cm q 32 0 0 32 0 0 cm /I7 Do Q endstream endobj 30 0 obj <> >> endobj 31 0 obj <> endobj 32 0 obj <>] /ColorSpace/DeviceGray /Length 332 >> stream x}ұKBQDQ !EP4.A!"!H_BA 84854 Ay{wpwu2ݽã\x~qyu}S*o+׭UM ۆJnJ -4IBFv&u0 C V1ň;୑BguNJ=:'N{1qO0">1qv7/M1 i"ޡE*plCǰby% &'0B{C* T L @cg\Bendstream endobj 33 0 obj <> stream 1.000 0 0 1.000 0 0 cm q 32 0 0 32 0 0 cm /I8 Do Q endstream endobj 34 0 obj <> >> endobj 35 0 obj <> endobj 36 0 obj <>] /ColorSpace/DeviceRGB /Length 1234 >> stream x}]TeϼggZ,(BB2B*M  zxc~PwUwMW{m "^XvabE|}893a?Qr6WŊG7٧7m/ڗ^wډ7I-]!{S{=qž~S̱u/EP2E(B ƚ%Eȃ/)¨2a&$&c-ˈZFGawK$qIJ 3<{=<{xjxJ=Z5fLP9 0U~4 ߄-|fm@+u> stream 1.000 0 0 1.000 0 0 cm q 32 0 0 32 0 0 cm /I9 Do Q endstream endobj 38 0 obj <> >> endobj 39 0 obj <> endobj 40 0 obj <>] /ColorSpace/DeviceGray /Length 212 >> stream xm0Lb )nK'-X B!9Dzѧي|o&C{/މsYk1#gZL B.mz#\@* // _,LPߪZQ[6@]8_fX`ⷹ=L[+/C qfS(RR| D_H/$@&Lendstream endobj 41 0 obj <> stream 1.000 0 0 1.000 0 0 cm q 32 0 0 32 0 0 cm /I10 Do Q endstream endobj 42 0 obj <> >> endobj 43 0 obj <> endobj 44 0 obj <>] /ColorSpace/DeviceRGB /Length 928 >> stream x͎E[Uv۔("  ${Y[g*BQ,<3c/n=c ZG֭v[N+:ۭv=WoTQa8`HB[ n zeH4;؂->VJP_Ӻrό9q'JB i9 "Ok-E4Ҹ2mr n:(UB 칻ZLwW)40)t\+ T_?G٪{wGN)t йj^0~_j 4hL| sIE@ ͐mʢv;̣8R^j" RC6>|+WAp )O'-a_[>w(e5H5:϶yz8㖫$CykU樏G.% )xr|Ok5 }MR9?Hұ5`_€Q .i P7|Hrel$Л\$XT)3T%?qoٿ*V%J(Kq Oq/nB]g_`GR|%mʹbZ2w̛@{?X&^~ MTPIF$->Ү|#0M&ؑd'Q($4 0Scs:yꆼU]Mj 0WGɱ٦o l` k;4 Xͽ {vG!@,'$iKqOaHOv}8Xg DBs96)j2"4~, *ڧ30ClZ(cՂU@ \Ҍivݙ!)̓r+LV71 jendstream endobj 45 0 obj <> stream 1.000 0 0 1.000 0 0 cm q 32 0 0 32 0 0 cm /I11 Do Q endstream endobj 46 0 obj <> >> endobj 47 0 obj <> endobj 48 0 obj <>] /ColorSpace/DeviceGray /Length 369 >> stream xuQNAdj8R4TV? 0_@=3 2F‚] ւ`0A̼yoCsOWg {'`]|7fDr2pG ,\`KaB&@y0 {s4iv[q@2(+M2 ^X@Ka@F`F96**Yի6Z)yY٣hV+%y33O|@&2Yq~({H`G: j!ᕐaLAvde+'ܡixlryں%_*v|[I [7ND)S?%]M.VoQ㎐B d/?o[endstream endobj 49 0 obj <> stream 1.000 0 0 1.000 0 0 cm q 32 0 0 32 0 0 cm /I12 Do Q endstream endobj 50 0 obj <> >> endobj 51 0 obj <> endobj 1 0 obj <> endobj 2 0 obj <> endobj 3 0 obj << /CreationDate (D:20170819001859+02'00') >> endobj xref 0 52 0000000000 65535 f 0000015465 00000 n 0000015600 00000 n 0000015648 00000 n 0000000009 00000 n 0000000477 00000 n 0000000576 00000 n 0000000641 00000 n 0000000742 00000 n 0000001242 00000 n 0000001341 00000 n 0000001407 00000 n 0000001510 00000 n 0000004167 00000 n 0000004267 00000 n 0000004334 00000 n 0000004438 00000 n 0000004941 00000 n 0000005041 00000 n 0000005108 00000 n 0000005212 00000 n 0000006574 00000 n 0000006674 00000 n 0000006741 00000 n 0000006845 00000 n 0000007382 00000 n 0000007482 00000 n 0000007549 00000 n 0000007653 00000 n 0000009564 00000 n 0000009664 00000 n 0000009731 00000 n 0000009835 00000 n 0000010406 00000 n 0000010506 00000 n 0000010573 00000 n 0000010677 00000 n 0000012150 00000 n 0000012250 00000 n 0000012317 00000 n 0000012421 00000 n 0000012872 00000 n 0000012973 00000 n 0000013041 00000 n 0000013145 00000 n 0000014311 00000 n 0000014412 00000 n 0000014480 00000 n 0000014584 00000 n 0000015192 00000 n 0000015293 00000 n 0000015361 00000 n trailer <> startxref 15709 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.4.check0000644000064100006410000000026213247541377017133 0ustar ejbejbchecking a.pdf PDF Version: 1.3 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/linearized-and-warnings-2.out0000644000064100006410000000207013247541377021175 0ustar ejbejb---output--- linearized-and-warnings.pdf: linearization data: file_size: 1310 first_page_object: 6 first_page_end: 1044 npages: 1 xref_zero_offset: 1132 first_page: 0 H_offset: 528 H_length: 118 Page Offsets Hint Table min_nobjects: 4 first_page_offset: 646 nbits_delta_nobjects: 0 min_page_length: 398 nbits_delta_page_length: 0 min_content_offset: 0 nbits_delta_content_offset: 0 min_content_length: 398 nbits_delta_content_length: 0 nbits_nshared_objects: 0 nbits_shared_identifier: 3 nbits_shared_numerator: 0 shared_denominator: 4 Page 0: nobjects: 4 length: 398 content_offset: 0 content_length: 398 nshared_objects: 0 Shared Objects Hint Table first_shared_obj: 0 first_shared_offset: 0 nshared_first_page: 4 nshared_total: 4 nbits_nobjects: 0 min_group_length: 30 nbits_delta_group_length: 7 Shared Object 0: group length: 143 Shared Object 1: group length: 118 Shared Object 2: group length: 30 Shared Object 3: group length: 107 ---error--- WARNING: linearized-and-warnings.pdf (object 2 0, offset 1117): empty object treated as null test 13 done qpdf-8.0.2/qpdf/qtest/qpdf/09_split-exp.zdf0000644000064100006410000000136313247541377016537 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TKM,.V 4endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 6 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000398 00000 n trailer << /Root 1 0 R /Size 6 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 497 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/stream-line-enders.pdf0000644000064100006410000000176113247541377017770 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents [ 4 0 R 5 0 R 6 0 R 7 0 R ] /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 8 0 R >> /ProcSet 9 0 R >> /Type /Page >> endobj 4 0 obj << /Length 14 >> stream BT /F1 24 Tf endstream endobj 5 0 obj << /Length 10 >> stream 72 720 Td endstream endobj 6 0 obj << /Length 12 >> stream (Potato) Tj endstream endobj 7 0 obj << /Length 11 >> stream%comment ET endstream endobj 8 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 9 0 obj [ /PDF /Text ] endobj xref 0 10 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000288 00000 n 0000000352 00000 n 0000000411 00000 n 0000000472 00000 n 0000000532 00000 n 0000000639 00000 n trailer << /Root 1 0 R /Size 10 /ID [<08aa98c73f8a7262d77c8328772c3989><5a35fde138b2e8251b9e079b560c0253>] >> startxref 669 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/streams-with-newlines.pdf0000644000064100006410000000361013247541377020536 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 3 /Kids [ 3 0 R 4 0 R 5 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 6 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 7 0 R >> /ProcSet 8 0 R >> /Type /Page >> endobj 4 0 obj << /Contents 9 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 10 0 R >> /ProcSet 11 0 R >> /Type /Page >> endobj 5 0 obj << /Contents 12 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 13 0 R >> /ProcSet 14 0 R >> /Type /Page >> endobj 6 0 obj << /Length 94 >> stream % Stream contains a newline as part of its length BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 7 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 8 0 obj [ /PDF /Text ] endobj 9 0 obj << /Length 127 >> stream % Stream data does not end with a newline but endstream is preceded by % a newline. BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 10 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 11 0 obj [ /PDF /Text ] endobj 12 0 obj << /Length 131 >> stream % Stream data does not end with a newline and endstream is not % preceded by a newline. BT /F1 24 Tf 72 720 Td (Potato) Tj ETendstream endobj 13 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 14 0 obj [ /PDF /Text ] endobj xref 0 15 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000135 00000 n 0000000278 00000 n 0000000423 00000 n 0000000569 00000 n 0000000712 00000 n 0000000819 00000 n 0000000849 00000 n 0000001027 00000 n 0000001135 00000 n 0000001166 00000 n 0000001348 00000 n 0000001456 00000 n trailer << /Root 1 0 R /Size 15 /ID [<7eb8172a38e90a48184c5bf01c8020b0>] >> startxref 1487 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe.pdf0000644000064100006410000000216313247541377017357 0ustar ejbejb%PDF-1.7 % %QDF-1.0 1 0 obj << /Pages 2 0 R /Type /Catalog /Extensions 8 0 R >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 7 0 obj [ /PDF /Text ] endobj 8 0 obj << /ADBE 9 0 R >> endobj 9 0 obj << /BaseVersion /1.7 /ExtensionLevel 2 /URL (http://something.adobe.com) >> endobj xref 0 10 0000000000 65535 f 0000000025 00000 n 0000000099 00000 n 0000000181 00000 n 0000000396 00000 n 0000000495 00000 n 0000000514 00000 n 0000000632 00000 n 0000000667 00000 n 0000000701 00000 n trailer << /Root 1 0 R /Size 10 /ID [] >> startxref 793 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.3.c-check0000644000064100006410000000005013247541377017370 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/numeric-and-string-3.out0000644000064100006410000000031713247541377020172 0ustar ejbejbpage 1: images: content: 4 0 R 6 0 R end page 1 QStrings: No Special Characters These: ¿÷¢þ and no more πωτατω treble clef: 𝄠; sixteenth note: 𝅘𝅥𝅮 QNumbers: 1.000 3.142 test 5 done qpdf-8.0.2/qpdf/qtest/qpdf/c-r3.pdf0000644000064100006410000002325113247541377015034 0ustar ejbejb%PDF-1.5 % 1 0 obj << /Outlines 3 0 R /PageLabels 15 0 R /PageMode /UseOutlines /Pages 16 0 R /Type /Catalog >> endobj 2 0 obj << /Type /ObjStm /Length 610 /Filter /FlateDecode /N 13 /First 87 >> stream 6f+uʁoX Ēk2uq{w|a" 8h!`Y B;T/'7C L=&Z=tE@>hT(X i?gKMcG9%HAG%i#=lzE곸~ӂrHIN<9VV=H+f9F>t}2I&llb@:jL-M2lHLac~L8`F-@YIHu8k#j:)cpMRAëa9۾u Wu$F@tLǓD{B 8!> endobj 17 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 18 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 19 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 20 0 obj << /Contents 52 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 21 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 22 0 obj << /Contents 54 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 23 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 24 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 25 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 26 0 obj << /Contents 58 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 27 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 28 0 obj << /Contents 60 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 29 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 30 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 31 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 32 0 obj << /Contents 64 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 33 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 34 0 obj << /Contents 66 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 35 0 obj << /Contents 67 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 36 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 37 0 obj << /Contents 69 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 38 0 obj << /Contents 70 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 39 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 40 0 obj << /Contents 72 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 41 0 obj << /Contents 73 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 42 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 43 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 44 0 obj << /Contents 76 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 45 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 46 0 obj << /Contents 78 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 47 0 obj << /Length 50 /Filter /FlateDecode >> stream  Z)gU9,E3=2H9a~ I5n99fendstream endobj 48 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 49 0 obj [ /PDF /Text ] endobj 50 0 obj << /Length 51 /Filter /FlateDecode >> stream (+d oX>ع B \Q?ZА;W ^z{HCendstream endobj 51 0 obj << /Length 51 /Filter /FlateDecode >> stream :_,ci%\#4Ϯ=/g%3YMeڇ@IHendstream endobj 52 0 obj << /Length 51 /Filter /FlateDecode >> stream | )7f|](퍊\hp`{ |ԡendstream endobj 53 0 obj << /Length 51 /Filter /FlateDecode >> stream DS Z K-}p̙ J<|aBޠ9+E݅1v~endstream endobj 54 0 obj << /Length 51 /Filter /FlateDecode >> stream ll8: 1A2ձ^)~|#Iendstream endobj 55 0 obj << /Length 51 /Filter /FlateDecode >> stream ]$*\rX9)RGdmB ^"4C +endstream endobj 56 0 obj << /Length 51 /Filter /FlateDecode >> stream $9SN}14Aeլ)2-F(-^endstream endobj 57 0 obj << /Length 50 /Filter /FlateDecode >> stream wFӕL ,m ?nfb{_SgDn—Փ+zaendstream endobj 58 0 obj << /Length 50 /Filter /FlateDecode >> stream au%BeN`kB#!0ju=Aendstream endobj 59 0 obj << /Length 50 /Filter /FlateDecode >> stream b^Ҏ@!̺8ht QIFB`\}V˂ڽX3endstream endobj 60 0 obj << /Length 50 /Filter /FlateDecode >> stream z[R܅LC(y\L'ܥ)rHendstream endobj 61 0 obj << /Length 50 /Filter /FlateDecode >> stream [-<:0u҅?r*̴smIAaW9Jd2ó$ ?endstream endobj 62 0 obj << /Length 50 /Filter /FlateDecode >> stream ZAsd%b$s }Ƥ8i#[aNAv1Iϰd%endstream endobj 63 0 obj << /Length 50 /Filter /FlateDecode >> stream x~=5jbZ~nA뢚?/*sO4vX%݊endstream endobj 64 0 obj << /Length 50 /Filter /FlateDecode >> stream Z'XUon2Mqg&y)*]cgSendstream endobj 65 0 obj << /Length 50 /Filter /FlateDecode >> stream l隷U]΄pF0foDYfj+_A㠸9endstream endobj 66 0 obj << /Length 51 /Filter /FlateDecode >> stream O4Ȅ:4kr??XlLZeXH[P*g2endstream endobj 67 0 obj << /Length 51 /Filter /FlateDecode >> stream j'c{Q?(q >F/vym=6wgX14endstream endobj 68 0 obj << /Length 51 /Filter /FlateDecode >> stream F2R9mapC=n CJr>)O|J5u^wendstream endobj 69 0 obj << /Length 51 /Filter /FlateDecode >> stream S»ݔ<-cYj̵CX,8>THB?Wendstream endobj 70 0 obj << /Length 51 /Filter /FlateDecode >> stream pc6$2$ j2}_:j5yܷo֥ݐ&4> stream C;'4+١K^EJ⩙)pX"׋̇q5Uendstream endobj 72 0 obj << /Length 51 /Filter /FlateDecode >> stream H\Xix r) оhCTc”{AbxC\i-߽לendstream endobj 73 0 obj << /Length 50 /Filter /FlateDecode >> stream 2xZ\'Aipgv,DӲy!- fa⑹| ҭrendstream endobj 74 0 obj << /Length 51 /Filter /FlateDecode >> stream 0ˋ2}0(3XOjinŕv5e9R0*endstream endobj 75 0 obj << /Length 51 /Filter /FlateDecode >> stream a)v 2ٴCƋd.Ь~J8*/endstream endobj 76 0 obj << /Length 51 /Filter /FlateDecode >> stream }l:~{veXBhmLMh~8^,Ҹd"Urߜdendstream endobj 77 0 obj << /Length 51 /Filter /FlateDecode >> stream C5x?*؃|CG:Nk0 kV,t?2endstream endobj 78 0 obj << /Length 51 /Filter /FlateDecode >> stream /kٰ~ Xm[!pt طuuu>$-^&dendstream endobj 79 0 obj << /Filter /Standard /Length 128 /O <592497ab8b5ff92458336fbe82fc3b249b2be129617c59a403ffa9727c7743e6> /P -2052 /R 3 /U <67d9be6955fe883503c895150c5785d70122456a91bae5134273a6db134c87c4> /V 2 >> endobj 80 0 obj << /Type /XRef /Length 85 /Filter /FlateDecode /DecodeParms << /Columns 4 /Predictor 12 >> /W [ 1 2 1 ] /Root 1 0 R /Size 81 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] /Encrypt 79 0 R >> stream xcb&F~&b`$d '(QBJWA*  $(F4Y&.3 % endstream endobj startxref 9538 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.10-ogen.check0000644000064100006410000000067613247541377020470 0ustar ejbejbchecking a.pdf PDF Version: 1.5 R = 3 P = -4 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.5.check0000644000064100006410000000026213247541377017157 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.6.check0000644000064100006410000000026213247541377021146 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-other-force-1.7.2.out0000644000064100006410000000023513247541377022271 0ustar ejbejbversion: 1.7 extension level: 2 << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/enc-R2,V1.pdf0000644000064100006410000004136713247541377015611 0ustar ejbejb%PDF-1.4 % 91 0 obj << /Linearized 1 /O 94 /H [ 1331 211 ] /L 17143 /E 4182 /N 30 /T 15205 >> endobj xref 91 22 0000000016 00000 n 0000000805 00000 n 0000001179 00000 n 0000001542 00000 n 0000001737 00000 n 0000001817 00000 n 0000002006 00000 n 0000002148 00000 n 0000002315 00000 n 0000002492 00000 n 0000002656 00000 n 0000002819 00000 n 0000003004 00000 n 0000003207 00000 n 0000003357 00000 n 0000003522 00000 n 0000003687 00000 n 0000003819 00000 n 0000003840 00000 n 0000003956 00000 n 0000001331 00000 n 0000001521 00000 n trailer << /Size 113 /Info 89 0 R /Encrypt 93 0 R /Root 92 0 R /Prev 15195 /ID[<66d36a30a97e0f16f39955c6221e0c2a>] >> startxref 0 %%EOF 92 0 obj << /PageLabels << /Nums [ 0 << /P ()>> 2 << /S /r /St 1 >> 7 << /P ()>> 9 << /S /r /St 6 >> 11 << /P ()>> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P ()>> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /Pages 88 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 95 0 R /Metadata 90 0 R >> endobj 93 0 obj << /Filter /Standard /R 2 /O ( UV.`Dz-#_m_}g) /U (\)>PB j*HW$ǚ3R) /P -64 /V 1 /Length 40 >> endobj 111 0 obj << /S 145 /O 189 /Filter /FlateDecode /Length 112 0 R >> stream Ir3? NЛՔFf<ңw$vbKx򶪶`)mVȰr<%WFpF.] endstream endobj 112 0 obj 96 endobj 94 0 obj << /Contents 107 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 95 0 obj << /Type /Outlines /First 96 0 R /Last 97 0 R /Count 6 >> endobj 96 0 obj << /Type /Outline /Title (ẆI܁D"LFXrݦ*m29Yt ) /Parent 95 0 R /Count 4 /Next 97 0 R /First 98 0 R /Last 99 0 R /Dest [ 13 0 R /XYZ null null null ] >> endobj 97 0 obj << /Type /Outline /Title (B$=p,9V4dJ\r1 _) /Parent 95 0 R /Prev 96 0 R /Dest [ 43 0 R /XYZ 66 756 3 ] >> endobj 98 0 obj << /Type /Outline /Title (=rtį[as`Jp˺'') /Parent 96 0 R /Next 99 0 R /First 102 0 R /Last 103 0 R /Count -3 /Dest [ 31 0 R /Fit ] >> endobj 99 0 obj << /Type /Outline /Title (xS\nXJzi9_/\\A) /Parent 96 0 R /Prev 98 0 R /First 100 0 R /Last 101 0 R /Count 2 /Dest [ 37 0 R /FitH 792 ] >> endobj 100 0 obj << /Type /Outline /Title ($`6c9hٖ!̸WH #@Qo) /Parent 99 0 R /Next 101 0 R /Dest [ 1 0 R /FitR 66 714 180 770 ] >> endobj 101 0 obj << /Type /Outline /Title (ܿ#\(Ju0c^ V萉M|\\B) /Parent 99 0 R /Prev 100 0 R /Dest [ 94 0 R /XYZ null null null ] >> endobj 102 0 obj << /Type /Outline /Title (\(l2oYgQ2%]\(g) /Parent 98 0 R /Next 103 0 R /First 105 0 R /Last 106 0 R /Count -2 /Dest [ 34 0 R /FitV 100 ] >> endobj 103 0 obj << /Type /Outline /Title (gѱSk7DU\\u祩ƣKÄ!aI^%) /Parent 98 0 R /Prev 102 0 R /First 104 0 R /Last 104 0 R /Count 1 /Dest [ 34 0 R /XYZ null null null ] >> endobj 104 0 obj << /Type /Outline /Title (@\(HdgzVBb]вX@[) /Parent 103 0 R /Dest [ 64 0 R /XYZ null null null ] >> endobj 105 0 obj << /Type /Outline /Title (\n.eh 3{Mq :=+Ld[pGxy]6r) /Parent 102 0 R /Next 106 0 R /Dest [ 52 0 R /XYZ null null null ] >> endobj 106 0 obj << /Type /Outline /Title (ZB3?]S8˼6FDrg\)T=Q*) /Parent 102 0 R /Prev 105 0 R /Dest [ 55 0 R /XYZ null null null ] >> endobj 107 0 obj << /Filter /FlateDecode /Length 108 0 R >> stream ӫ46@7Jh]x(;*Tn1=?+-jFPE endstream endobj 108 0 obj 52 endobj 109 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 110 0 obj [ /PDF /Text ] endobj 1 0 obj << /Contents 2 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 2 0 obj << /Filter /FlateDecode /Length 3 0 R >> stream 38_V0(p]4CQVhaD ):}6+-' b'9P endstream endobj 3 0 obj 52 endobj 4 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 5 0 obj << /Filter /FlateDecode /Length 6 0 R >> stream ؘgp@QW!{XUcW۹XBکOpC|Q{fl endstream endobj 6 0 obj 52 endobj 7 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 8 0 obj << /Filter /FlateDecode /Length 9 0 R >> stream {ɡ,L3+P"ljB i6ߖ)-q՘%M endstream endobj 9 0 obj 52 endobj 10 0 obj << /Contents 11 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 11 0 obj << /Filter /FlateDecode /Length 12 0 R >> stream x]O6Vf[`T-ΗsUC}DؓdCOSYY}GT endstream endobj 12 0 obj 52 endobj 13 0 obj << /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 14 0 obj << /Filter /FlateDecode /Length 15 0 R >> stream ~H0θg5}wnbNM#g!H=- endstream endobj 15 0 obj 52 endobj 16 0 obj << /Contents 17 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 17 0 obj << /Filter /FlateDecode /Length 18 0 R >> stream ZMw u'gT÷G!e NcgwYs;/Z#8o endstream endobj 18 0 obj 52 endobj 19 0 obj << /Contents 20 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 20 0 obj << /Filter /FlateDecode /Length 21 0 R >> stream 1}H񺩈K[$q=9BH,QH endstream endobj 21 0 obj 52 endobj 22 0 obj << /Contents 23 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 23 0 obj << /Filter /FlateDecode /Length 24 0 R >> stream N<KTeSi"w2]J`h 83yro endstream endobj 24 0 obj 52 endobj 25 0 obj << /Contents 26 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 26 0 obj << /Filter /FlateDecode /Length 27 0 R >> stream LϠ-AHn?cJCt/`2|_*쮉 endstream endobj 27 0 obj 52 endobj 28 0 obj << /Contents 29 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 29 0 obj << /Filter /FlateDecode /Length 30 0 R >> stream պyYF> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 32 0 obj << /Filter /FlateDecode /Length 33 0 R >> stream Ę%Lċ%k+ΖaReHq+8#5uw=D endstream endobj 33 0 obj 53 endobj 34 0 obj << /Contents 35 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 35 0 obj << /Filter /FlateDecode /Length 36 0 R >> stream 38+!NTaplQݵ&[i#iu endstream endobj 36 0 obj 53 endobj 37 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 38 0 obj << /Filter /FlateDecode /Length 39 0 R >> stream xC"ѫlEWߗ6' Hְ`n T6ĜiB r- endstream endobj 39 0 obj 53 endobj 40 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 41 0 obj << /Filter /FlateDecode /Length 42 0 R >> stream v.+j* aqqH7)ndRc D&rշ+KZ! endstream endobj 42 0 obj 53 endobj 43 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 44 0 obj << /Filter /FlateDecode /Length 45 0 R >> stream 3Dg+["H7+@[ӗHo:Et&5=E (F endstream endobj 45 0 obj 53 endobj 46 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 47 0 obj << /Filter /FlateDecode /Length 48 0 R >> stream 0 +[Ԥ5K{!GI> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 50 0 obj << /Filter /FlateDecode /Length 51 0 R >> stream } 8 Iǒ .#ę9Z%f-ÕeHQO@Se3; a endstream endobj 51 0 obj 53 endobj 52 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 53 0 obj << /Filter /FlateDecode /Length 54 0 R >> stream bh ,'vmS3Sա]_.+.IG endstream endobj 54 0 obj 53 endobj 55 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 56 0 obj << /Filter /FlateDecode /Length 57 0 R >> stream Aڏ6;yWlO vmbRq:-*\6_:W endstream endobj 57 0 obj 53 endobj 58 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 59 0 obj << /Filter /FlateDecode /Length 60 0 R >> stream -G)jO0.zDA%Za]xk&|t endstream endobj 60 0 obj 53 endobj 61 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 62 0 obj << /Filter /FlateDecode /Length 63 0 R >> stream =šu'lmo b6 V߯v<^jc(in endstream endobj 63 0 obj 53 endobj 64 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 65 0 obj << /Filter /FlateDecode /Length 66 0 R >> stream |- NdӒ.hE"sqZ诧`P7(iy endstream endobj 66 0 obj 53 endobj 67 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 68 0 obj << /Filter /FlateDecode /Length 69 0 R >> stream *VݹՠNoӅD"LMʝt .!?J -3 endstream endobj 69 0 obj 53 endobj 70 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 71 0 obj << /Filter /FlateDecode /Length 72 0 R >> stream M(=E| ŞhUF^{#mV8%JΘi_tQ endstream endobj 72 0 obj 52 endobj 73 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 74 0 obj << /Filter /FlateDecode /Length 75 0 R >> stream uaSYüZSΉz~+dr3-5Um@n endstream endobj 75 0 obj 53 endobj 76 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 77 0 obj << /Filter /FlateDecode /Length 78 0 R >> stream >{>Vg-y]`B zQD#Bb[.-6$ endstream endobj 78 0 obj 53 endobj 79 0 obj << /Contents 80 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 80 0 obj << /Filter /FlateDecode /Length 81 0 R >> stream <޽X}~HK Fb({OgkBME8rj\ endstream endobj 81 0 obj 53 endobj 82 0 obj << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 83 0 obj << /Filter /FlateDecode /Length 84 0 R >> stream g._,D|#LUNK* r(.~iLUO},>U endstream endobj 84 0 obj 53 endobj 85 0 obj << /Contents 86 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 86 0 obj << /Filter /FlateDecode /Length 87 0 R >> stream ΀ut{80,XA$~*4> endobj 89 0 obj << /ModDate (ە2C/ v ;GG\\) /CreationDate (ە2C/ w ;GG\\) >> endobj 90 0 obj << /Type /Metadata /Subtype /XML /Length 770 >> stream =zLypm^ϪRrqeNǴOCc/+7khOw\FA%mi114jK]M&)LZb>A7ۥV'Yuڟu (Q?w,''l]y9.1kч܏'UtU Wư46JV~ϪpۑљǙ,+ %l AD`*ce}v<#@<!B5m*KVH''具X4 $6yQ7u6)qh!NCyv> sjP"%lQ]N-@T$4\gTSuw$9L@@/7CA`swNS6Zz8t. [n^e~D [h@]?;!У_27g{pǏFYMՔu]/0nHbd=(r=\ HS bwĎTrLDҤ-p\8 {pm |CJ[CBs]<Ѳ2%=\Zu~0jq9v uMF&XYYKbХVM>d>~_?}F 8O7oJ:fl=zNh,VjVV8>04& d%$jtDAq6ݪJφ3,Ƥ9^㢝 endstream endobj xref 0 91 0000000000 65535 f 0000003990 00000 n 0000004182 00000 n 0000004310 00000 n 0000004329 00000 n 0000004521 00000 n 0000004649 00000 n 0000004668 00000 n 0000004860 00000 n 0000004988 00000 n 0000005007 00000 n 0000005201 00000 n 0000005331 00000 n 0000005351 00000 n 0000005545 00000 n 0000005675 00000 n 0000005695 00000 n 0000005889 00000 n 0000006019 00000 n 0000006039 00000 n 0000006233 00000 n 0000006363 00000 n 0000006383 00000 n 0000006577 00000 n 0000006707 00000 n 0000006727 00000 n 0000006921 00000 n 0000007051 00000 n 0000007071 00000 n 0000007265 00000 n 0000007396 00000 n 0000007416 00000 n 0000007610 00000 n 0000007741 00000 n 0000007761 00000 n 0000007955 00000 n 0000008086 00000 n 0000008106 00000 n 0000008300 00000 n 0000008431 00000 n 0000008451 00000 n 0000008645 00000 n 0000008776 00000 n 0000008796 00000 n 0000008990 00000 n 0000009121 00000 n 0000009141 00000 n 0000009335 00000 n 0000009466 00000 n 0000009486 00000 n 0000009680 00000 n 0000009811 00000 n 0000009831 00000 n 0000010025 00000 n 0000010156 00000 n 0000010176 00000 n 0000010370 00000 n 0000010501 00000 n 0000010521 00000 n 0000010715 00000 n 0000010846 00000 n 0000010866 00000 n 0000011060 00000 n 0000011191 00000 n 0000011211 00000 n 0000011405 00000 n 0000011536 00000 n 0000011556 00000 n 0000011750 00000 n 0000011881 00000 n 0000011901 00000 n 0000012095 00000 n 0000012225 00000 n 0000012245 00000 n 0000012439 00000 n 0000012570 00000 n 0000012590 00000 n 0000012784 00000 n 0000012915 00000 n 0000012935 00000 n 0000013129 00000 n 0000013260 00000 n 0000013280 00000 n 0000013474 00000 n 0000013605 00000 n 0000013625 00000 n 0000013819 00000 n 0000013950 00000 n 0000013970 00000 n 0000014240 00000 n 0000014341 00000 n trailer << /Size 91 /ID[<66d36a30a97e0f16f39955c6221e0c2a>] >> startxref 173 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/V4-aes-clearmeta.pdf0000644000064100006410000004101613247541377017261 0ustar ejbejb%PDF-1.6 % 1 0 obj << /Metadata 3 0 R /Outlines 4 0 R /PageLabels << /Nums [ 0 << /P <0e1c2a38465462707e8c9aa8b6c4d2e00f262aedded08d15ff2f51f65bab002f> >> 2 << /S /r /St 1 >> 7 << /P <0e1c2a38465462707e8c9aa8b6c4d2e00f262aedded08d15ff2f51f65bab002f> >> 9 << /S /r /St 6 >> 11 << /P <0e1c2a38465462707e8c9aa8b6c4d2e00f262aedded08d15ff2f51f65bab002f> >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P <0e1c2a38465462707e8c9aa8b6c4d2e00f262aedded08d15ff2f51f65bab002f> >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /PageMode /UseOutlines /Pages 5 0 R /Type /Catalog >> endobj 2 0 obj << /CreationDate <0e1c2a38465462707e8c9aa8b6c4d2e00921a6a7b0c133fb2f989c3da27b2ac814b1c32543f37411fd736a4671a646b7> /ModDate <0e1c2a38465462707e8c9aa8b6c4d2e00921a6a7b0c133fb2f989c3da27b2ac814b1c32543f37411fd736a4671a646b7> >> endobj 3 0 obj << /Subtype /XML /Type /Metadata /Length 770 >> stream 2003-10-10T18:04:32-03:00 2003-10-10T18:04:32-03:00 2003-10-10T18:04:32-03:00 2003-10-10T18:04:32-03:00 2003-10-10T18:04:32-03:00 endstream endobj 4 0 obj << /Count 6 /First 6 0 R /Last 7 0 R /Type /Outlines >> endobj 5 0 obj << /Count 30 /Kids [ 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 35 0 R 36 0 R 37 0 R ] /Type /Pages >> endobj 6 0 obj << /Count 4 /Dest [ 13 0 R /XYZ null null null ] /First 38 0 R /Last 39 0 R /Next 7 0 R /Parent 4 0 R /Title <0e1c2a38465462707e8c9aa8b6c4d2e0b238a868ad6ebb3fd7d78dc22672a04960be7d3e8245bea76dbe68c23e5f03de54c759f400d5dcbfdac739c9d936cf84> /Type /Outline >> endobj 7 0 obj << /Dest [ 23 0 R /XYZ 66 756 3 ] /Parent 4 0 R /Prev 6 0 R /Title <0e1c2a38465462707e8c9aa8b6c4d2e0ca5f0294db4ad20336e77370836f9058f3c825cbf836d07b61ebbfaa698ec301> /Type /Outline >> endobj 8 0 obj << /Contents 40 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 9 0 obj << /Contents 43 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 10 0 obj << /Contents 44 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 11 0 obj << /Contents 45 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 12 0 obj << /Contents 46 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 13 0 obj << /Contents 47 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 14 0 obj << /Contents 48 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 15 0 obj << /Contents 49 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 16 0 obj << /Contents 50 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 17 0 obj << /Contents 51 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 18 0 obj << /Contents 52 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 19 0 obj << /Contents 53 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 20 0 obj << /Contents 54 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 21 0 obj << /Contents 55 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 22 0 obj << /Contents 56 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 23 0 obj << /Contents 57 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 24 0 obj << /Contents 58 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 25 0 obj << /Contents 59 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 26 0 obj << /Contents 60 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 27 0 obj << /Contents 61 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 28 0 obj << /Contents 62 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 29 0 obj << /Contents 63 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 30 0 obj << /Contents 64 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 31 0 obj << /Contents 65 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 32 0 obj << /Contents 66 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 33 0 obj << /Contents 67 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 34 0 obj << /Contents 68 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 35 0 obj << /Contents 69 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 36 0 obj << /Contents 70 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 37 0 obj << /Contents 71 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 38 0 obj << /Count -3 /Dest [ 19 0 R /Fit ] /First 72 0 R /Last 73 0 R /Next 39 0 R /Parent 6 0 R /Title <0e1c2a38465462707e8c9aa8b6c4d2e09ca6cded56239338246ee0f67eaedc7a5934c16efed6ab448a94b6aea5813c37> /Type /Outline >> endobj 39 0 obj << /Count 2 /Dest [ 21 0 R /FitH 792 ] /First 74 0 R /Last 75 0 R /Parent 6 0 R /Prev 38 0 R /Title <0e1c2a38465462707e8c9aa8b6c4d2e0a67a0507bb5990eb05f0e2d4963d3fe76e56d39f83b79788f140d31295a240f0> /Type /Outline >> endobj 40 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~s^||m]I&}վ[Z^OrEv;c^+$*0מ{U=Qendstream endobj 41 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 42 0 obj [ /PDF /Text ] endobj 43 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~ӝDo%@TռA5dϑt}dI>u_ͮendstream endobj 44 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~࿐a~ ̼QO?®=(! Tmj2)~kJy^oendstream endobj 45 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~s@X!>%+jNiXt-;ǖKcZאwabe164Jendstream endobj 46 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~nygs An KR䧛QNu20N$}[ yyuOendstream endobj 47 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~5 r/2r *Zܩ_iU6~38*x8i\t;Z@-`?endstream endobj 48 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~lԉ,cZ)c|~RlA S=i*~2Q[<Bn7|eB9endstream endobj 49 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~L3`g{nA pkBy8eZi= bZT> stream *8FTbp~l2Wp@sk.})3~+EQ"ib;LmxlG΍hlne:endstream endobj 51 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~8::[lސ}bwTu״F9"Sw:o >] .iqtrendstream endobj 52 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~྄5sIѵCf_N2geRdiwEO/q;wendstream endobj 53 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~ ;P]:/3E-%Ʒ뫒3V9h,2;'Q;u=AIq endstream endobj 54 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~}!Y6aDw4N"ާS,+3ULP)yf!Tg\4ܙ5†+endstream endobj 55 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~+Xt4[맾M `trq->GYN $/zx1X7fN endstream endobj 56 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~7'|+tFX5Po[FA 'ޝ}4=  >Mx_q·8endstream endobj 57 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~I! @IxI':[ZK3-Er(hH>*r~ M?XRendstream endobj 58 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~fyWl4.oIwއη?|#,o?0%w1e}ȻOendstream endobj 59 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~0y\nR =9r_ ᜄ2c|-n[zʉ2Z北&>s%1endstream endobj 60 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~ `[~pl<^/L-t KEsSAfAWcԜ1qI1Snlendstream endobj 61 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~kO :FE zht"sET=Sȣ$w[Fuk4Yendstream endobj 62 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~B-kWxC)+> stream *8FTbp~dl ͛֠~2ƴC'#09><@wD [V48 N_@>4endstream endobj 64 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~Hmy5ev$D OԠM d: jdw:o-V*vd7CL\eb[.gdƓaEqendstream endobj 65 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~l`(-U|w)T .[]wU7@]endstream endobj 66 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~ZrgcoXs9ڧ}kx]Gfi;ΠT> stream *8FTbp~lEX?-B_y!:ZF,{x\rΟO kcGrD&m?!€iZ|Iendstream endobj 68 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~FJGPAu0k߫ymcRupHG4q޵`:/f>endstream endobj 69 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~I#"@u6V啒ڍeU%%’CO Qgf֐tއzendstream endobj 70 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~ɀG>.^Ap$0?Dei$ۦQZԂO(>܃Ib Hxendstream endobj 71 0 obj << /Filter /FlateDecode /Length 80 >> stream *8FTbp~9'^j$=p7oAR-"HIU@P[fI/Jendstream endobj 72 0 obj << /Count -2 /Dest [ 20 0 R /FitV 100 ] /First 76 0 R /Last 77 0 R /Next 73 0 R /Parent 38 0 R /Title <0e1c2a38465462707e8c9aa8b6c4d2e009f4dac5b02074cf4849a0d15459676b96276012437a65dfe861c2b7d3d43dd6> /Type /Outline >> endobj 73 0 obj << /Count 1 /Dest [ 20 0 R /XYZ null null null ] /First 78 0 R /Last 78 0 R /Parent 38 0 R /Prev 72 0 R /Title <0e1c2a38465462707e8c9aa8b6c4d2e0c8222a80899552e8f55dff601a31f50ffc49f7b882208cd32b38b84cfe08d06192fc7fe104a29384ae6afba06ffad9f6> /Type /Outline >> endobj 74 0 obj << /Dest [ 9 0 R /FitR 66 714 180 770 ] /Next 75 0 R /Parent 39 0 R /Title <0e1c2a38465462707e8c9aa8b6c4d2e0db2e1806fe2bc539dca1f3bd07df1c861300b43e8d6d1687249b4d7eb69b0cdfa03e717dfdaaff3f9da9e992e7ce7799> /Type /Outline >> endobj 75 0 obj << /Dest [ 8 0 R /XYZ null null null ] /Parent 39 0 R /Prev 74 0 R /Title <0e1c2a38465462707e8c9aa8b6c4d2e00ac2f6a290fab9e2e24e3fd1f20574bac271aecc390740758b0021043b15220d46b1ad3fad6590683df8d41be3cc2dac> /Type /Outline >> endobj 76 0 obj << /Dest [ 26 0 R /XYZ null null null ] /Next 77 0 R /Parent 72 0 R /Title <0e1c2a38465462707e8c9aa8b6c4d2e046551c4c9d5ec737ae978879e7bfa7738e87f54a8f1db0e78c3b34ae0a955661fac26995b1dd5f61f84227daff5e8a0a> /Type /Outline >> endobj 77 0 obj << /Dest [ 27 0 R /XYZ null null null ] /Parent 72 0 R /Prev 76 0 R /Title <0e1c2a38465462707e8c9aa8b6c4d2e0ed02472a72f56c1be52ac90f82aa7ccd10e56983f5f1d989945c2682605e030fdd5ab6e2c0e46505fe6148f3574fe4af> /Type /Outline >> endobj 78 0 obj << /Dest [ 30 0 R /XYZ null null null ] /Parent 73 0 R /Title <0e1c2a38465462707e8c9aa8b6c4d2e04e0071f73ffb55e63fee8c296c57a5116ad91676f573b1c2fe59aca102ad3421cc50bd84f88f518cd8bbd9962c7a59d0> /Type /Outline >> endobj 79 0 obj << /CF << /StdCF << /AuthEvent /DocOpen /CFM /AESV2 /Length 16 >> >> /EncryptMetadata false /Filter /Standard /Length 128 /O <36451bd39d753b7c1d10922c28e6665aa4f3353fb0348b536893e3b1db5c579b> /P -4 /R 4 /StmF /StdCF /StrF /StdCF /U /V 4 >> endobj xref 0 80 0000000000 65535 f 0000000015 00000 n 0000000634 00000 n 0000000876 00000 n 0000001726 00000 n 0000001797 00000 n 0000002059 00000 n 0000002332 00000 n 0000002531 00000 n 0000002712 00000 n 0000002893 00000 n 0000003075 00000 n 0000003257 00000 n 0000003439 00000 n 0000003621 00000 n 0000003803 00000 n 0000003985 00000 n 0000004167 00000 n 0000004349 00000 n 0000004531 00000 n 0000004713 00000 n 0000004895 00000 n 0000005077 00000 n 0000005259 00000 n 0000005441 00000 n 0000005623 00000 n 0000005805 00000 n 0000005987 00000 n 0000006169 00000 n 0000006351 00000 n 0000006533 00000 n 0000006715 00000 n 0000006897 00000 n 0000007079 00000 n 0000007261 00000 n 0000007443 00000 n 0000007625 00000 n 0000007807 00000 n 0000007989 00000 n 0000008218 00000 n 0000008451 00000 n 0000008602 00000 n 0000008710 00000 n 0000008741 00000 n 0000008892 00000 n 0000009043 00000 n 0000009194 00000 n 0000009345 00000 n 0000009496 00000 n 0000009647 00000 n 0000009798 00000 n 0000009949 00000 n 0000010100 00000 n 0000010251 00000 n 0000010402 00000 n 0000010553 00000 n 0000010704 00000 n 0000010855 00000 n 0000011006 00000 n 0000011157 00000 n 0000011308 00000 n 0000011459 00000 n 0000011610 00000 n 0000011761 00000 n 0000011912 00000 n 0000012063 00000 n 0000012214 00000 n 0000012365 00000 n 0000012516 00000 n 0000012667 00000 n 0000012818 00000 n 0000012969 00000 n 0000013120 00000 n 0000013355 00000 n 0000013631 00000 n 0000013871 00000 n 0000014110 00000 n 0000014350 00000 n 0000014590 00000 n 0000014817 00000 n trailer << /Info 2 0 R /Root 1 0 R /Size 80 /ID [<66d36a30a97e0f16f39955c6221e0c2a><31415926535897932384626433832795>] /Encrypt 79 0 R >> startxref 15140 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.10-ogen.check0000644000064100006410000000067613247541377020172 0ustar ejbejbchecking a.pdf PDF Version: 1.5 R = 3 P = -4 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/test9.out0000644000064100006410000000010513247541377015367 0ustar ejbejbexception: pipeStreamData called for stream with no data test 9 done qpdf-8.0.2/qpdf/qtest/qpdf/good4.pdf0000644000064100006410000000146313247541377015305 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 7 0 obj null endobj xref 0 8 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n 0000000556 00000 n trailer << /Size 8 /Root 1 0 R /QTest 7 0 R >> startxref 577 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-min-1.3.out0000644000064100006410000000020513247541377020470 0ustar ejbejbversion: 1.7 extension level: 2 << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 /URL (http://something.adobe.com) >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.12-ogen.check0000644000064100006410000000026213247541377020461 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/c-r5-key-hex.out0000644000064100006410000000121513247541377016440 0ustar ejbejbchecking c-r5-in.pdf PDF Version: 1.7 extension level 3 R = 5 P = -2052 User password = Encryption key = 35ea16a48b6a3045133b69ac0906c2e8fb0a2cc97903ae17b51a5786ebdba020 extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: not allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed stream encryption method: AESv3 string encryption method: AESv3 file encryption method: AESv3 File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.12-ogen.check0000644000064100006410000000067613247541377022162 0ustar ejbejbchecking a.pdf PDF Version: 1.5 R = 3 P = -4 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.pdf0000644000064100006410000004061613247541377016517 0ustar ejbejb%PDF-1.5 % %QDF-1.0 1 0 obj << /PageLabels 107 0 R /Pages 2 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 95 0 R >> endobj 2 0 obj << /Count 30 /Kids [ 3 0 R 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R ] /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents 33 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 2 4 0 obj << /Contents 37 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 3 5 0 obj << /Contents 39 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 4 6 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 5 7 0 obj << /Contents 43 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 6 8 0 obj << /Contents 45 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 7 9 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 8 10 0 obj << /Contents 49 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 9 11 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 10 12 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 11 13 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 12 14 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 13 15 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 14 16 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 15 17 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 16 18 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 17 19 0 obj << /Contents 67 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 18 20 0 obj << /Contents 69 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 19 21 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 20 22 0 obj << /Contents 73 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 21 23 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 22 24 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 23 25 0 obj << /Contents 79 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 24 26 0 obj << /Contents 81 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 25 27 0 obj << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 26 28 0 obj << /Contents 85 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 27 29 0 obj << /Contents 87 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 28 30 0 obj << /Contents 89 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 29 31 0 obj << /Contents 91 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 30 32 0 obj << /Contents 93 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Contents for page 1 33 0 obj << /Length 34 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 0) Tj ET endstream endobj 34 0 obj 46 endobj 35 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 36 0 obj [ /PDF /Text ] endobj %% Contents for page 2 37 0 obj << /Length 38 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 38 0 obj 46 endobj %% Contents for page 3 39 0 obj << /Length 40 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 40 0 obj 46 endobj %% Contents for page 4 41 0 obj << /Length 42 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 42 0 obj 46 endobj %% Contents for page 5 43 0 obj << /Length 44 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 44 0 obj 46 endobj %% Contents for page 6 45 0 obj << /Length 46 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 46 0 obj 46 endobj %% Contents for page 7 47 0 obj << /Length 48 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 48 0 obj 46 endobj %% Contents for page 8 49 0 obj << /Length 50 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 50 0 obj 46 endobj %% Contents for page 9 51 0 obj << /Length 52 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 52 0 obj 46 endobj %% Contents for page 10 53 0 obj << /Length 54 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 54 0 obj 46 endobj %% Contents for page 11 55 0 obj << /Length 56 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 56 0 obj 47 endobj %% Contents for page 12 57 0 obj << /Length 58 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 58 0 obj 47 endobj %% Contents for page 13 59 0 obj << /Length 60 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 60 0 obj 47 endobj %% Contents for page 14 61 0 obj << /Length 62 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 62 0 obj 47 endobj %% Contents for page 15 63 0 obj << /Length 64 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 64 0 obj 47 endobj %% Contents for page 16 65 0 obj << /Length 66 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 66 0 obj 47 endobj %% Contents for page 17 67 0 obj << /Length 68 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 68 0 obj 47 endobj %% Contents for page 18 69 0 obj << /Length 70 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 70 0 obj 47 endobj %% Contents for page 19 71 0 obj << /Length 72 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 72 0 obj 47 endobj %% Contents for page 20 73 0 obj << /Length 74 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 74 0 obj 47 endobj %% Contents for page 21 75 0 obj << /Length 76 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 76 0 obj 47 endobj %% Contents for page 22 77 0 obj << /Length 78 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 78 0 obj 47 endobj %% Contents for page 23 79 0 obj << /Length 80 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 80 0 obj 47 endobj %% Contents for page 24 81 0 obj << /Length 82 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 82 0 obj 47 endobj %% Contents for page 25 83 0 obj << /Length 84 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 84 0 obj 47 endobj %% Contents for page 26 85 0 obj << /Length 86 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 86 0 obj 47 endobj %% Contents for page 27 87 0 obj << /Length 88 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 88 0 obj 47 endobj %% Contents for page 28 89 0 obj << /Length 90 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 90 0 obj 47 endobj %% Contents for page 29 91 0 obj << /Length 92 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 92 0 obj 47 endobj %% Contents for page 30 93 0 obj << /Length 94 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 94 0 obj 47 endobj xref 0 110 0000000095 65535 f 0000000025 00000 n 0000000145 00000 n 0000000541 00000 n 0000000746 00000 n 0000000951 00000 n 0000001156 00000 n 0000001361 00000 n 0000001566 00000 n 0000001771 00000 n 0000001976 00000 n 0000002182 00000 n 0000002389 00000 n 0000002596 00000 n 0000002803 00000 n 0000003010 00000 n 0000003217 00000 n 0000003424 00000 n 0000003631 00000 n 0000003838 00000 n 0000004045 00000 n 0000004252 00000 n 0000004459 00000 n 0000004666 00000 n 0000004873 00000 n 0000005080 00000 n 0000005287 00000 n 0000005494 00000 n 0000005701 00000 n 0000005908 00000 n 0000006115 00000 n 0000006322 00000 n 0000006529 00000 n 0000006748 00000 n 0000006851 00000 n 0000006871 00000 n 0000006990 00000 n 0000007049 00000 n 0000007152 00000 n 0000007195 00000 n 0000007298 00000 n 0000007341 00000 n 0000007444 00000 n 0000007487 00000 n 0000007590 00000 n 0000007633 00000 n 0000007736 00000 n 0000007779 00000 n 0000007882 00000 n 0000007925 00000 n 0000008028 00000 n 0000008071 00000 n 0000008174 00000 n 0000008218 00000 n 0000008321 00000 n 0000008365 00000 n 0000008469 00000 n 0000008513 00000 n 0000008617 00000 n 0000008661 00000 n 0000008765 00000 n 0000008809 00000 n 0000008913 00000 n 0000008957 00000 n 0000009061 00000 n 0000009105 00000 n 0000009209 00000 n 0000009253 00000 n 0000009357 00000 n 0000009401 00000 n 0000009505 00000 n 0000009549 00000 n 0000009653 00000 n 0000009697 00000 n 0000009801 00000 n 0000009845 00000 n 0000009949 00000 n 0000009993 00000 n 0000010097 00000 n 0000010141 00000 n 0000010245 00000 n 0000010289 00000 n 0000010393 00000 n 0000010437 00000 n 0000010541 00000 n 0000010585 00000 n 0000010689 00000 n 0000010733 00000 n 0000010837 00000 n 0000010881 00000 n 0000010985 00000 n 0000011029 00000 n 0000011133 00000 n 0000011177 00000 n 0000011281 00000 n 0000000096 65535 f 0000000097 65535 f 0000000098 65535 f 0000000099 65535 f 0000000100 65535 f 0000000101 65535 f 0000000102 65535 f 0000000103 65535 f 0000000104 65535 f 0000000105 65535 f 0000000106 65535 f 0000000107 65535 f 0000000108 65535 f 0000000109 65535 f 0000000000 65535 f trailer << /Root 1 0 R /Size 110 >> startxref 11301 %%EOF 108 0 obj << /Type /ObjStm /N 13 /First 107 /Length 2445 >> stream 95 0 96 74 97 259 98 393 99 556 100 898 101 1077 102 1275 103 1432 104 1589 105 1730 106 1887 107 2040 %95 << /Type /Outlines /First 96 0 R /Last 97 0 R /Count 6 >> %96 << /Type /Outline /Title (Iss 1 -> 5: /XYZ null null null) /Parent 95 0 R /Count 4 /Next 97 0 R /First 98 0 R /Last 99 0 R /Dest [ 8 0 R /XYZ null null null ] >> % 97 << /Type /Outline /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Parent 95 0 R /Prev 96 0 R /Dest [ 18 0 R /XYZ 66 756 3 ] >> % 98 << /Type /Outline /Title (Amanda 1.1 -> 11: /Fit) /Parent 96 0 R /Next 99 0 R /First 100 0 R /Last 101 0 R /Count -3 /Dest [ 14 0 R /Fit ] >> % 99 << /Type /Outline % /Title (Sandy (Sandy [Greek]) 1.2 -> 13: /FitH 792) /Title /Parent 96 0 R /Prev 98 0 R /First 105 0 R /Last 106 0 R /Count 2 /Dest [ 16 0 R /FitH 792 ] >> % 100 << /Type /Outline /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Parent 98 0 R /Next 101 0 R /First 102 0 R /Last 103 0 R /Count -2 /Dest [ 15 0 R /FitV 100 ] >> % 101 << /Type /Outline /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Parent 98 0 R /Prev 100 0 R /First 104 0 R /Last 104 0 R /Count 1 /Dest [ 15 0 R /XYZ null null null ] >> % 102 << /Type /Outline /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Parent 100 0 R /Next 103 0 R /Dest [ 21 0 R /XYZ null null null ] >> % 103 << /Type /Outline /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Parent 100 0 R /Prev 102 0 R /Dest [ 22 0 R /XYZ null null null ] >> % 104 << /Type /Outline /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Parent 101 0 R /Dest [ 25 0 R /XYZ null null null ] >> % 105 << /Type /Outline /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Parent 99 0 R /Next 106 0 R /Dest [ 4 0 R /FitR 66 714 180 770 ] >> % 106 << /Type /Outline /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Parent 99 0 R /Prev 105 0 R /Dest [ 3 0 R /XYZ null null null ] >> % 107 << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> endstream endobj 109 0 obj << /Type /XRef /Size 110 /Index [0 110] /W [1 2 1] /Length 440 /Root 1 0 R >> stream Q U $    `/k: vE\N?8c\   !!A!!"="i""#e##$%$$%!%M%%&I&u&' 'q'((1(()-)Y))*U**++}+,llllllllll l l l 5> endstream endobj xref 0 0 trailer << /Size 110 /Root 1 0 R /Prev 11301 /XRefStm 16113 >> startxref 16679 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/issue-147.pdf0000644000064100006410000000013313247541377015723 0ustar ejbejbtrailer<<<>/Encrypt 62 0 R>> 62 0 obj</P 0/R 3/U<>/V 2>>0 0qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.7-ogen.check0000644000064100006410000000026213247541377020064 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/extensions-other-force-1.8.0.out0000644000064100006410000000015513247541377021400 0ustar ejbejbversion: 1.8 extension level: 0 << /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.4-ogen.check0000644000064100006410000000026213247541377020402 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/extra-header-no-newline.pdf0000644000064100006410000000146713247541377020717 0ustar ejbejb%PDF-1.3 % %% Comment % No newline 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet 6 0 R >> /Type /Page >> endobj 4 0 obj << /Length 48 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 5 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 6 0 obj [ /PDF /Text ] endobj xref 0 7 0000000000 65535 f 0000000039 00000 n 0000000088 00000 n 0000000147 00000 n 0000000290 00000 n 0000000408 00000 n 0000000515 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 545 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad14.out0000644000064100006410000000031313247541377015213 0ustar ejbejbWARNING: bad14.pdf (trailer, offset 753): treating unexpected brace token as null /QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 0 done qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-force-1.8.5.qdf0000644000064100006410000000226313247541377021124 0ustar ejbejb%PDF-1.8 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Extensions << /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> >> /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj %% Original object ID: 6 0 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 7 0 7 0 obj [ /PDF /Text ] endobj xref 0 8 0000000000 65535 f 0000000052 00000 n 0000000223 00000 n 0000000332 00000 n 0000000574 00000 n 0000000673 00000 n 0000000719 00000 n 0000000864 00000 n trailer << /Root 1 0 R /Size 8 /ID [<31415926535897932384626433832795>] >> startxref 899 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.10.check0000644000064100006410000000067613247541377017542 0ustar ejbejbchecking a.pdf PDF Version: 1.4 R = 3 P = -4 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/c-check-warn.out0000644000064100006410000000116213247541377016565 0ustar ejbejbWARNING: c-check-warn-in.pdf: file is damaged WARNING: c-check-warn-in.pdf (offset 1556): xref not found WARNING: c-check-warn-in.pdf: Attempting to reconstruct cross-reference table status: 1 warning: c-check-warn-in.pdf: file is damaged code: 5 file: c-check-warn-in.pdf pos : 0 text: file is damaged warning: c-check-warn-in.pdf (offset 1556): xref not found code: 5 file: c-check-warn-in.pdf pos : 1556 text: xref not found warning: c-check-warn-in.pdf: Attempting to reconstruct cross-reference table code: 5 file: c-check-warn-in.pdf pos : 0 text: Attempting to reconstruct cross-reference table qpdf-8.0.2/qpdf/qtest/qpdf/copy-foreign-objects-in.pdf0000644000064100006410000001013413247541377020720 0ustar ejbejb%PDF-1.3 % %QDF-1.0 % This test file is specifically crafted for testing copyForeignObject % and also for testing addPage when called with a page from another % file. % The /QTest key in trailer has pointers to several indirect objects: % O1, O2, O3 where O1 is an array that contains a dictionary that has % a key that points to O2, O2 is a dictionary that contains an array % that points to O1, and O3 is a page object that inherits some % resource from its parent /Pages and also points to some other page. % O1 also points to a stream whose dictionary has a key that points to % another stream whose dictionary points back to the first stream. 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 5 /Kids [ 3 0 R 4 0 R 5 0 R 6 0 R 7 0 R ] /Rotate 180 /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 10 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Page 2 4 0 obj << /Contents 11 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 10 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Page 3, object O3 5 0 obj << /This-is-O3 true /Contents 13 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 10 0 R >> /ProcSet [ /PDF /Text ] >> /OtherPage 6 0 R /Type /Page >> endobj %% Page 4 6 0 obj << /This-is-O3-other-page true /Contents 15 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 10 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Page 5 7 0 obj << /Contents 17 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 10 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Contents for page 1 8 0 obj << /Length 9 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 0) Tj ET endstream endobj 9 0 obj 47 endobj 10 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj %% Contents for page 2 11 0 obj << /Length 12 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 1) Tj ET endstream endobj 12 0 obj 47 endobj %% Contents for page 3 13 0 obj << /Length 14 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 2) Tj ET endstream endobj 14 0 obj 47 endobj %% Contents for page 4 15 0 obj << /Length 16 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 3) Tj ET endstream endobj 16 0 obj 47 endobj %% Contents for page 5 17 0 obj << /Length 18 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 4) Tj ET endstream endobj 18 0 obj 47 endobj % O1 19 0 obj [ /This-is-O1 /potato << /O2 [3.14159 << /O2 20 0 R >> 2.17828 ] >> /salad /O2 20 0 R /Stream1 21 0 R ] endobj % O2 20 0 obj << /This-is-O2 true /K1 [2.236 /O1 19 0 R 1.732] /O1 19 0 R >> endobj % stream1 21 0 obj << /This-is-Stream1 true /Length 22 0 R /Stream2 23 0 R >> stream This is stream 1. endstream endobj 22 0 obj 18 endobj % stream2 23 0 obj << /This-is-Stream2 true /Length 24 0 R /Stream1 21 0 R >> stream This is stream 2. endstream endobj 24 0 obj 18 endobj % QTest 25 0 obj << /This-is-QTest true /O1 19 0 R /O2 20 0 R /O3 5 0 R >> endobj xref 0 26 0000000000 65535 f 0000000655 00000 n 0000000709 00000 n 0000000845 00000 n 0000001073 00000 n 0000001313 00000 n 0000001580 00000 n 0000001839 00000 n 0000002081 00000 n 0000002183 00000 n 0000002202 00000 n 0000002334 00000 n 0000002438 00000 n 0000002481 00000 n 0000002585 00000 n 0000002628 00000 n 0000002732 00000 n 0000002775 00000 n 0000002879 00000 n 0000002904 00000 n 0000003042 00000 n 0000003138 00000 n 0000003255 00000 n 0000003285 00000 n 0000003402 00000 n 0000003430 00000 n trailer << /Root 1 0 R /Size 26 /QTest 25 0 R /ID [<9adb6b2fdb22e857340f7103917b16e4>] >> startxref 3505 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/split-exp.zdf_020000644000064100006410000000203113247541377016521 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 2) Tj ET endstream endobj 5 0 obj 47 endobj %% Original object ID: 5 0 6 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 7 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000242 00000 n 0000000509 00000 n 0000000611 00000 n 0000000657 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 765 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-force-1.8.5.pdf0000644000064100006410000000154113247541377021121 0ustar ejbejb%PDF-1.8 % 1 0 obj << /Extensions << /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> >> /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet 6 0 R >> /Type /Page >> endobj 4 0 obj << /Length 48 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 5 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 6 0 obj [ /PDF /Text ] endobj xref 0 7 0000000000 65535 f 0000000015 00000 n 0000000130 00000 n 0000000189 00000 n 0000000332 00000 n 0000000450 00000 n 0000000557 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795>] >> startxref 587 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.11.check0000644000064100006410000000067213247541377017555 0ustar ejbejbchecking a.pdf PDF Version: 1.5 R = 3 P = -4 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed File is linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/bad31.pdf0000644000064100006410000000200113247541377015150 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 7 0 obj << % Comment /Length 123 /Filter [/Oink /Moo /FlateDecode] >> stream x%11 b;t4| wXID8G>rQu O E:IWPlII)rp4~;As/҅jcszT.?u<*6 endstream endobj xref 0 8 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n 0000000556 00000 n trailer << /Size 8 /Root 1 0 R /QTest 7 0 R >> startxref 783 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.pdf0000644000064100006410000001061213247541377016465 0ustar ejbejb%PDF-1.3 % %QDF-1.0 % % This file exercises several special conditions in the linearization % and optimization code including various cases of shared resources, % inherited page attributes, indirect null objects (resolution of % which is a qpdf feature), null dictionary keys, and indirect scalar % objects. % % The page tree is % % (A)--- page 1 % | % +---- page 2 % | % +---(B)--- page 3 % | % +---- page 4 % | % +---- page 5 % % Node (A) defines /MediaBox (direct) and /Resources (indirect) % Node (B) overrides /MediaBox and defines /Rotate % Node (B) defines /Quack, a non-standard key, which is not inherited % Page 1 overrides /Resources % Page 4 overrides /Resources % Page 5 overrides /MediaBox and /Rotate % % Page 5 provides the case of two levels of shadowing on a resource. % % Node (B)'s overriding of /Rotate exercises inheriting a scalar. % % The /MediaBox defined in node (B) is shared between pages 3 and 4 % but not page 1. The /MediaBox defined in node (A) is shared between % pages 1 and 2 only. % % The document catalog has two non-standard keys /Moo and /Quack each % of which contains (directly or indirectly) an indirect null object. % % The /Moo object, which is a dictionary, is shared between the % document level and page 3 where it appears as a resource. % 1 0 obj << /Moo 2 0 R /Pages 3 0 R /Quack 26 0 R /Type /Catalog >> endobj 2 0 obj << /Null1 27 0 R /Null2 null /One 1 /Two 28 0 R >> endobj % Node (A) 3 0 obj << /Count 5 /Kids [ 4 0 R 5 0 R 6 0 R ] /MediaBox [ 0 0 576 792 ] /Resources 7 0 R /Type /Pages >> endobj %% Page 1 4 0 obj << /Contents 8 0 R /Parent 3 0 R /Resources 10 0 R /Type /Page >> endobj %% Page 2 5 0 obj << /Contents 11 0 R /Parent 3 0 R /Type /Page >> endobj % Node (B) 6 0 obj << /Count 3 /Kids [ 13 0 R 14 0 R 15 0 R ] /MediaBox [ 0 0 576 396 ] /Parent 3 0 R /Rotate 0 /Quack 16059 /Type /Pages >> endobj 7 0 obj << /Font << /F1 16 0 R >> /ProcSet 17 0 R >> endobj %% Contents for page 1 8 0 obj << /Length 9 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 9 0 obj 46 endobj 10 0 obj << /Font << /F1 18 0 R >> /ProcSet 17 0 R >> endobj %% Contents for page 2 11 0 obj << /Length 12 0 R >> stream BT /F1 24 Tf 72 322 Td (Potato 2) Tj ET endstream endobj 12 0 obj 46 endobj %% Page 3 13 0 obj << /Contents 19 0 R /Moo 2 0 R /Parent 6 0 R /Type /Page >> endobj %% Page 4 14 0 obj << /Contents 21 0 R /Parent 6 0 R /Resources << /Font << /F1 23 0 R >> /ProcSet 17 0 R >> /Type /Page >> endobj %% Page 5 15 0 obj << /Contents 24 0 R /MediaBox [ 0 0 306 396 ] /Rotate 180 /Parent 6 0 R /Type /Page >> endobj 16 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 17 0 obj [ /PDF /Text ] endobj 18 0 obj << /BaseFont /Courier-Oblique /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Contents for page 3 19 0 obj << /Length 20 0 R >> stream BT /F1 24 Tf 72 322 Td (Potato 3) Tj ET endstream endobj 20 0 obj 46 endobj %% Contents for page 4 21 0 obj << /Length 22 0 R >> stream BT /F1 24 Tf 72 322 Td (Potato 4) Tj ET endstream endobj 22 0 obj 46 endobj 23 0 obj << /BaseFont /Times-Bold /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Contents for page 5 24 0 obj << /Length 25 0 R >> stream BT /F1 24 Tf 72 322 Td (Potato 5) Tj ET endstream endobj 25 0 obj 46 endobj 26 0 obj null endobj 27 0 obj null endobj 28 0 obj 2 endobj xref 0 29 0000000000 65535 f 0000001331 00000 n 0000001414 00000 n 0000001500 00000 n 0000001667 00000 n 0000001767 00000 n 0000001849 00000 n 0000002033 00000 n 0000002127 00000 n 0000002228 00000 n 0000002247 00000 n 0000002342 00000 n 0000002445 00000 n 0000002475 00000 n 0000002570 00000 n 0000002730 00000 n 0000002862 00000 n 0000002981 00000 n 0000003017 00000 n 0000003165 00000 n 0000003268 00000 n 0000003311 00000 n 0000003414 00000 n 0000003434 00000 n 0000003577 00000 n 0000003680 00000 n 0000003700 00000 n 0000003722 00000 n 0000003744 00000 n trailer << /Root 1 0 R /Size 29 /ID [] >> startxref 3763 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/show-pages-images.out0000644000064100006410000000025413247541377017644 0ustar ejbejbpage 1: 5 0 R images: /Im1: 8 0 R, 555 x 600 /Im2: 9 0 R, 185 x 200 content: 7 0 R page 2: 6 0 R images: /Im2: 9 0 R, 185 x 200 content: 10 0 R qpdf-8.0.2/qpdf/qtest/qpdf/image-streams-all.out0000644000064100006410000000065013247541377017630 0ustar ejbejbpage 1 filter: null, color space: /DeviceCMYK page 2 filter: null, color space: /DeviceCMYK page 3 filter: null, color space: /DeviceCMYK page 4 filter: null, color space: /DeviceRGB page 5 filter: null, color space: /DeviceRGB page 6 filter: null, color space: /DeviceRGB page 7 filter: null, color space: /DeviceGray page 8 filter: null, color space: /DeviceGray page 9 filter: null, color space: /DeviceGray test 39 done qpdf-8.0.2/qpdf/qtest/qpdf/extensions-none-force-1.8.2.out0000644000064100006410000000014313247541377021215 0ustar ejbejbversion: 1.8 extension level: 2 << /ADBE << /BaseVersion /1.8 /ExtensionLevel 2 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/token-filters-out.pdf0000644000064100006410000000420213247541377017656 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 2 /Kids [ 3 0 R 4 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 7 0 R >> /ProcSet 8 0 R >> /Type /Page >> endobj %% Page 2 %% Original object ID: 4 0 4 0 obj << /Contents 9 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 11 0 R >> /ProcSet 12 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 19 0 5 0 obj << /Length 6 0 R >> stream BT /F1 24 Tf 72 720 Td (Salad) Tj ET [ /array/split ] BI /CS /G/W 66/H 47/BPC 8/F/Fl/DP<> ID xI P|C;U`7Z Ę}D_W->>^&u]"!*&E|Sy d-<B0B@N+<hlK/56L >0>Y!c\Y %Y8?&}j;3lpsHtQTt*hUw%)p"DiRjDYNUAvF& u#cW ߉WO EI/bye endstream endobj 6 0 obj 375 endobj %% Original object ID: 13 0 7 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 14 0 8 0 obj [ /PDF /Text ] endobj %% Contents for page 2 %% Original object ID: 15 0 9 0 obj << /Length 10 0 R >> stream BT /F1 24 Tf 72 720 Td (Salad) Tj ET /bye endstream endobj 10 0 obj 48 endobj %% Original object ID: 17 0 11 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 18 0 12 0 obj [ /PDF /Text ] endobj xref 0 13 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000252 00000 n 0000000481 00000 n 0000000726 00000 n 0000001156 00000 n 0000001204 00000 n 0000001350 00000 n 0000001436 00000 n 0000001540 00000 n 0000001588 00000 n 0000001735 00000 n trailer << /Root 1 0 R /Size 13 /ID [<31415926535897932384626433832795>] >> startxref 1771 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-other-force-1.7.1.out0000644000064100006410000000023513247541377022270 0ustar ejbejbversion: 1.7 extension level: 1 << /ADBE << /BaseVersion /1.7 /ExtensionLevel 1 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/newline-before-endstream-nl-qdf.pdf0000644000064100006410000000544513247541377022335 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 3 /Kids [ 3 0 R 4 0 R 5 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 6 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 8 0 R >> /ProcSet 9 0 R >> /Type /Page >> endobj %% Page 2 %% Original object ID: 4 0 4 0 obj << /Contents 10 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 12 0 R >> /ProcSet 13 0 R >> /Type /Page >> endobj %% Page 3 %% Original object ID: 5 0 5 0 obj << /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 16 0 R >> /ProcSet 17 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 6 0 6 0 obj << /Length 7 0 R >> stream % Stream contains a newline as part of its length BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj %QDF: ignore_newline 7 0 obj 94 endobj %% Original object ID: 7 0 8 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 8 0 9 0 obj [ /PDF /Text ] endobj %% Contents for page 2 %% Original object ID: 9 0 10 0 obj << /Length 11 0 R >> stream % Stream data does not end with a newline but endstream is preceded by % a newline. BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj %QDF: ignore_newline 11 0 obj 127 endobj %% Original object ID: 10 0 12 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 11 0 13 0 obj [ /PDF /Text ] endobj %% Contents for page 3 %% Original object ID: 12 0 14 0 obj << /Length 15 0 R >> stream % Stream data does not end with a newline and endstream is not % preceded by a newline. BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj %QDF: ignore_newline 15 0 obj 131 endobj %% Original object ID: 13 0 16 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 14 0 17 0 obj [ /PDF /Text ] endobj xref 0 18 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000262 00000 n 0000000491 00000 n 0000000723 00000 n 0000000968 00000 n 0000001139 00000 n 0000001185 00000 n 0000001330 00000 n 0000001415 00000 n 0000001621 00000 n 0000001670 00000 n 0000001817 00000 n 0000001904 00000 n 0000002114 00000 n 0000002163 00000 n 0000002310 00000 n trailer << /Root 1 0 R /Size 18 /ID [<31415926535897932384626433832795>] >> startxref 2346 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/fix1.qdf.out0000644000064100006410000000203413247541377015742 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents [ 4 0 R 8 0 R ] /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato Soup) Tj ET endstream endobj 5 0 obj 49 endobj 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 7 0 obj [ /PDF /Text ] endobj 8 0 obj << /Length 9 0 R >> stream BT /F1 24 Tf 72 648 Td (and Salad) Tj ET endstream endobj 9 0 obj 47 endobj xref 0 10 0000000000 65535 f 0000000025 00000 n 0000000079 00000 n 0000000161 00000 n 0000000386 00000 n 0000000490 00000 n 0000000509 00000 n 0000000627 00000 n 0000000662 00000 n 0000000764 00000 n trailer << /Root 1 0 R /Size 10 >> startxref 783 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/good12.qdf0000644000064100006410000000262213247541377015363 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 4 0 R /Type /Catalog >> endobj %% Original object ID: 7 0 2 0 obj << /Length 3 0 R >> stream This stream is not very interesting, but it is long enough that compressing shrinks it somewhat. Or maybe not. But it doesn't really matter that much. endstream endobj 3 0 obj 153 endobj %% Original object ID: 2 0 4 0 obj << /Count 1 /Kids [ 5 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 5 0 obj << /Contents 6 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 8 0 R >> /ProcSet 9 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 6 0 obj << /Length 7 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 7 0 obj 44 endobj %% Original object ID: 6 0 8 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 5 0 9 0 obj [ /PDF /Text ] endobj xref 0 10 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000341 00000 n 0000000388 00000 n 0000000497 00000 n 0000000739 00000 n 0000000838 00000 n 0000000884 00000 n 0000001029 00000 n trailer << /QTest 2 0 R /Root 1 0 R /Size 10 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 1064 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.2.c-check0000644000064100006410000000005013247541377017703 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/deterministic-id-ny.pdf0000644000064100006410000041576713247541377020172 0ustar ejbejb%PDF-1.5 % 1 0 obj << /Type /ObjStm /Length 2695 /Filter /FlateDecode /N 93 /First 739 >> stream xZr6}߯[s=rU$:F3BP !YW0!AV*IL bAER25H^egbPc*[[Fe}20 FAW9%%qpa`9!X4hѶDhM{H%`9#gb .0634wW_iwˬ-YԿZFTvi0q#TF$͍*&SYvQ?FIZa)E8#}o3H?+FƑ 2qwjWZZ^irwj]/~ʖjϗ˳v{PAbQw!bPxmUE|֞/oN{T-ws 5)s[b/]%n2PX/s }zūg%9{04o=[zKמF? x,z5}ߪ߿Rm U1.0 P/NOOv ٫wɶm'G.lRܻBow="tLwugfy/{u{+̯vsM Pz))3,Ӎ7x*A`V1bD_<"#-|tW'd,X߬͡ȝ'mOtOȥݦ8,rT2ϴͶ&: gr-ڏǢ+!wkzpԧ@i/49v MDL,"O1}TVL +J68!ע?٧Y\)Ӣ@S{j8A샩i\HdYr 2閻8ǔ8[)^|Z9c95婄5MycRj;]{%uEx\;g&אF7֗:K^w"ˆp !C")%t9?7@M^yƔe|U}{{fw!{Y?]d}ܢX)HjwW?cfGp ;S`3Pvxnp,Ǜ=f_wT)?M3tG؋ZgwրRoJV!lmːmX^ 7)%!QhyP,xsy/V5Lz㛄h#}Mkt,~F(J|3Lj@QsL'চ[+[<ڌLK*KbS9@IkO"a=:5E g0d"@2I$s(&9IIj6C)EؕdF$d#I$Y$-eLdH$^ 2^ Zn)xaVE+D0MB5 הgᵰ3>#3.#o7qx+0N >#̀OH8Ƭ=V %2-oX^[V. {,yv= pu5.UyJeq.e>T}S>O Ol]L43,O1}'e@z>3GŎsB5I7x;9v iy0]Hwf@F&?U!fgyLԱ8ɣΊ<٤翷 Ņ&hBg3Ϫ> stream xZ]o\5}W^{lmTUjAJ R$ChDT9m yi!{33w>qf㵚ZLjfћqO08LBi\N~i.g j|:#.`u/FB=>IkFr$#%qd>{ .o G 7A)R0PLɄ\C gBLL2Ŷrs X$`@5)8>MMI85Rt&eGoR)Ũb0JdQI P6H#{ PIfN{/ӴBVK&S29רdA.@brn V oVg: pTL񕗂)҈-(u׌AL\|Q]o*T;L x&S#5D-` 1pqpB1R轔x2uULk|((|9r[~ 7#sjx˼D4!lйyeξ^no?g#<Ǚ{oqsq+?F7o7̲⋛w>><~^t*OEr*DG -!{h\@oqyQ{~Gy(85ۀR}lξ۾xr~{hTW{{sYp]S=YUeG0ڔ6.c҄~HaIx|u8;EpKNZ୯D~p'R;T~#k?=W됋pq ՂV1cW * ,z/n@.@Ueu X.%D lϗooo}vvzҾ~xkϷξT-PjrL a̪Ԧk"W~ WI#FYnDr$-1Yy4lVʶgYnrYrBLB+NR2( ^FC`$z!BtwIЁ89Z$Aq&8Hj'\D.RZH iwӓ/ǥ İBuB^L#/z`$u: 䓷e9`5huva l*JFsoFk!=MJcX~v ݃Iо>xZE4"mF!AsDu|ț?$bnh CJyhԂL5$ZA5w9P V~m捦k rZ mZ lolGH>Q։t\"EO)WʉIVUew/9[_z'+MV`,hղO7!6wn`(jqXZMKI}ЈfZS!nx¸ݩKM $YmZcw_+c[MEmcTu׼-6ܼ-=v6G﷛ mMvӞ̓@^~ }>X8"]]8˸epV0;~V8Ğ[.p<঴졛2}Mi$Y dtt)QXFnVt"Ai,~I1Xa*cxS;l6Ğ]J@J4X.no:6Þ땪\iE3jc«-)ĻIa Эr! ;Hg[-F^vendstream endobj 189 0 obj << /Type /ObjStm /Length 1802 /Filter /FlateDecode /N 93 /First 829 >> stream xZ]|/& H@`Ѓ#-!ʭq:οwgfmaȃn &R!RH.A]%z+m%Tw*ǽ1Z>.c%JH FJ|[~S›a L0 ؒr - 99hكʛKPՒ R$"hNWNjmK,X, fx`*PY,`i +|J(w@qDpzȚx}r.& Z}hcuBg&*;+Ԕ7;I^-Ao署t U8uGv4YSH,Eјa3`tHn>J.?ۊ|=Gy0=4`L6vl.56ƭۇlY+U[ي٫CK4A࢕c.>vC.RD/T;VVz?9!$ԍ1C~j.=vlZ ގ]kԜ-$]z͊:[Z1hm9ᑛO̠c3^ͯRD^,k54k3Y*6Y+() )v'* ;;f`~@'6 +kb+k:*L_&6*GW֮|:Z$wּ^;kGo Jg0o6WIMa719M&]A9#o0jLbl7-Xy+&(M[7CMwފ\;oGWT-6LQxP0Vf:u`uJ{vyY֢3\ͲAl(k̶6ءO6%o  {8U&*Jl=puLg;o~#P!Uۂ~L2͐i !'x|d-nZ&MiLgZc͊u^XiCΚCwt pg ҎYc4=}huk50uLg{نؽlw{Tp$^/d)M <) 0yL6|5[rMMD|Lg{3`F{{W5h-cj<ܗX v_bG{b켤]n}q%RS~^NyQs+wvEendstream endobj 283 0 obj << /Subtype /XML /Type /Metadata /Length 858 >> stream application/pdf en 2015-05-24T17:28:30-04:00 Apache FOP Version 1.1 1.4 Apache FOP Version 1.1 2015-05-24T17:28:30-04:00 2015-05-24T17:28:30-04:00 endstream endobj 284 0 obj << /Filter /FlateDecode /N 3 /Length 2453 >> stream xgPTY{si249IЀ$Hn2-49AD$)8:EEyqpQQYU[[Ϗ:;羺UzȐ ɰ> 3(8p H 0D[oo+k?Q '/s,^IW8=%1{8cq?_e> ʄS+ԮfG[^N/?_zVCte?(.Or}]/t7Y9;Ꙁ嶖z RWN0t8@g ةo9(0-pGo:(H2O:4w7&CɛRTRӬҪ>e dje͜r:fg(fn;=b{y;&w:<+n\www̛||~=ߣ~pڽ{p n~.bE,6)>R)ᕌT4t灎2fYAٻ[(7*=D8zHPQURYR*jڮFfoa#6GZkj k?9ι^Xڱ  YǛ =d,\̜ =uGZuZm/ i޳?\Nk/:2;:;]]Cv[tˉ/_(!,]̺8)[z_ rϧoל]x7dercxA;wZ73l=|ýk]Y?24?`,tL`a7->gM`"00>|W%y2ETӴ/7|jq6wk^k?&,YVwFz矽OxPAɏ?M-~'K KKB. t ]@B. t ]V,r96_6@-Jh 7#edoMDEa&s|.7>s7 endstream endobj 285 0 obj << /Filter /FlateDecode /Length 225 >> stream xuMKA +rT1̵ Pebk{ofWh&I3;c+ ~5 **Mck$?r_"s8`9@> stream xSMO@ﯘ&vjƶHUJ+Mf2ͼHB{L%x)IJ) CƂ$( pcHIV& r·v9 }hEGBg 0n#7Q/C#AAyچF 9p3c=q,s 0Dk')Zu)`t2ݴ_Ti-J0RIa| uP $.o@a8iFB=-|2|Wu+hq#-2Qx7kLF5]~..@3&> stream xVr&߯`Ozg7yԤ+7,Ľ"#}=$'>}i }Ҝ9}tɤD"LcԠIQVy%@П'y ӧ0Y S?=xL BBð+þPK9/&(x9mܢ_pԁf)w$2c<858SyΧw1":_:O#LH? pFsCѹAnӛ qv|/QF8.@`.d =\}fc PaeKᷟޡ7aVbUfU؊uT*vvUJZ.]Iȫ4 yIU~A"jn:vA|ˏU,/$yIMj\â` >)uUFӽaem׶`:]pʱ~F1 ) ⩔(*l=KEDŽ 0ppD ! cE(~$0$14}/6 :{ǪC`(z$bw;G6q7AอڍeNp2Wvq -E J}FվEXr 掖l;\ݡ{ i4lfiOǮ<-;עNHJАJW]kJBUFC޲F"|Ök%#tuTvz֓G7mh}Attm` >2i$9bt`{b1f !VމaPOw7@4 P1<$i[41BŞ,7\dȊpzqY1Ypw̬h%#dMQ Sp^/ړ=ϴWwfYljkNmW KԸ2kh> stream xXK6W `S>nO]tr%bV9IKC/iS4p/ge~9)>'cmw$$[Ҙ"")ɇEHaIRT{7On?`[['87IT8\kpoK/'/-D^\2+w٬ƶfMMrM#fd PSM"' NbR9$0YmdC@i {)N9J"9gIe`Ӭӫ^2wHl梋4.7nVa* IǖM`M/,#c΂6 +1[Qv$GJLMC_Y@cwӄdg Lm_V+-Vf(t fi(K,rZ]:+V #o汌43=UTPgQ)Q(mB?+>47Gfad|V \kx%Бfw"%kLؗix@I-#q%fb58|0cמR# a# T!HgVh/TIG7xPɻvBsPwޟS'|=1ygen84*L6RAWAq\ X݉<߼wrnUUH4;LraRyC1d>,=(M1{:N4H]'n_5F.5]yn{ݮ5UF9c].rDp9:zM];M LOM|C o .W1ɺ"Fcc87z)ϳ'كDuh}o^hspL^{L51Ϳ[6n :u̳LSl;EEq[>Dm6f9B)gkCקŴA6U }mO(C=qF/~k3x7>3*.w`ǕkߘcA .[ > stream xZY6~_ĕ $N)cL8$(a"doK"ɛj5F/4} I?yzsEBG$4)H(%)(AX_WϿ!| N٩?_}=7ߗ ReeT#Mpji@eW5 ߳2e=~k)4ZD/"wыoWf:QmW(hQByY+i]m'6wkx"Uߐ78U]HC&J<>~H𽜆qs&%[ 7I :XBz{&Rfp\#|6-uCǪ9<2TM3.tQ< 2?~gqE,(q 2-y۷e)#Zd&I\^o%ޟ(vCfT'>N`EOth&;0,ia!%6۰~/f@>A7YH3 UX\m{`]5',e{f}YBöoX_s6RK}ۦc DoE׉ (u5/g6 F%h(s}'¥qK# 2<'&diھT2=n ՑEF2,m=E4)A0+{I>T e I_Kś[;i1pI0i9+[v6P*~p-hhAF|Z;B0)g6td toD y"e![ <[Z%zby*h`&nA-AYK/ >kz2ɿN@ĐXPYS|<9@kBaa~\歭nFE["|8} Q?aXo]iH̓JҐ(Xb[Y4aIREXbJS) jծ9Ⱦi/&r8Ԏlgy{ԇX=ltE;P\h᱊F]#04":bgYc9Fخ!$-y_aڋ0ĈӰ맊+E{ނ&n/fu9 _:@AZ:3a8#GC DA<}PpV*iGDئ wfJ8TNq ׈;7a`\AY| E AL0# 3&b5I;̆j[MV pf{b Ɉ :޽0s-\[i6-6׬Z08U-n`Hxޗl{ Ĕm*7nl$z:-i ^W=ٲ|@;TSvܠont޿|y4xQۮZQT6l:Sr8++E˄Xu3&5x~D;>NODoCX~A1 /u{<$hHݵ?AvA&|wↅÒ J5[BF,/ =+Tzzr _w8霷 4uy!C}*^"+5un*1y=CêN*J\i.3/ FbU#X7デn㻄4ǸXV Tp-9z2D0]ډ0f`dx+mPGSu|G٪+vy;/7Ҡ8Y8#:S!(=8S#вHP*<)koџbp(_|q2 @A딣2E$x D݈዇ø6li(: qo,58d_8ev$@m W՝ NPx!]uGG:_=eww-A&yJӘFx~Z˃vMyNa|t#&(E (ll-X,vR0̛kr fw:T!_TW40G'E&՝zZDs"ƃm[ Du%$?DV)g8ǻ>5cG_O\GM5'#;Q5#wK&Q7sn/T2B|'\ۚ V}{˪HcgG6vtm!@^mgъ_٪j(OF>o:Z)!T/hhU|f߽gaI"26%$NKo!N E% !/]6hE6$B8w:"[yendstream endobj 290 0 obj << /Filter /FlateDecode /Length 2639 >> stream xَ6򽿂oiY ,x=FlaZKcf؏""{›.|xąO$6#OXxG" H)VY?Bp"nK> w.N2ؼ/添ͫw\rw0! c' ,KNgUӋ u]G7^~!w߼8xiL%C/V hJҀŧR%MECDE?\k{1-r=$#hN:bpi/{.juo,ٞ$N8%4VѳwLaų3,6HjZGS~3{vCh·fCQFN:{hm:oM_ڈ=Y1YP8ThO1r4v{ *y. K\ҥvϤ#"^8ifYGK~4y(FTFWSz1+-&w"xtYDt$$Z^ΓY+<eєMjP0ӲϚj-)rݳzn%`ۘ5g'!%,t9omq԰*Z,Mg = mvAc0E0@{> Fbr!bԂi[3tAYC jШCت/$B\_5fQãYWTXr/uL\dE<\ LWm L 8i{6Zյ~0l⺕6+2U3 "{ֈW72X|؛Ł>:.X@6n"a0(g҈󞭔Ev񃄧^WExV 3Xq"@.)|9p0(v= ŞႸH/2%! >]n7~w|$R4\3)`,JѤi"o _6T^V4I؋i h {fO',I|-5Ȅ͘ab+C</[b.p/8&<, ^K^Kb{?_QBi/uu1> stream xYɒ+pLUjUCx$g!&&µ މQL| QGQ%쾘 "r8P Z RC/صu3LQ/h{3wݟvf(ɻ(qUUV$}åmy?~F01 BB8O&49RHhr6A3?5Mj{M;"oFZ1M|; 1\N2! w"R5qH%IyOO뗧'i"_A$7@[gI#`_p%r"x:kgP(;q.ڮe@K$)oБԑ+̧8[OןE TR^K^l—~Z1t~D{"p`68.p\Za!7JY H9yZS'z=E_ś8pL(J_JՂ9ԋcw4HEv1mTBVE|'mNP}4 '$+k`znuGtu=y#UUwZJ K#Y˴XuN8O ȟժ}{ȚG[k㲔I"nTm$@pg_J]—nMrzQȓ5+l%?Ԍ} zުIvxO0@3VE "FC8'͸5;.-kõ3 4ӆV΃eKp|h&9Gɣ 0vBtlAT3|+w;' ed{Ɵ>]7\3YF]wBVoO*N08|t4Ͽ~tqI3tG~IWnL2&5)hYK$LU͜HV$EUe6 VBfr%tPQf9ÃHZhq&rM߷-IY>YCf7ӁB xޮxɖ?eLkAt :K=F&ӁgZ_ض?ݩ-ۙ+H?cbp]sI:#zU\1rჩf- M+bped:_N QjZ 3 BR'䇀;Hi\>DQ"4%UP3TH;跗;]5ky3%YPdX oysi'V.Ύvv\a躲[la=$+ R3o¹MdE+EJQ4<*=Ԡs7/} "Pxuχ{īG(l ϔFB>bj4"3IxӰܸ2$yYI|ֹܺ1SR < \ ټ#ٷ^G=YDQ ܲ!/)Qi\i2x** -hZMA9Tq[tdɡCB).MiUDŤX&$kҟd+:ښ6}f\s]jAf9At?P\~v"X+l9]4}5)ǘb!P׾V nAt=[ MkpxƔPp%mU0OVXySByWӾwqpɚ4.FgjdA[#Y" _fى^j!Y U <3WeXqQzb}b#EŊPo`QAP*Ӝm5Gps: =z(s~M@PW 4lx Là R OCx|6`E,!'̧ɷ9LVZsW~;fi0e~+F` [lg cFe[>형F;Mug)ppV?qendstream endobj 292 0 obj << /Filter /FlateDecode /Length 2796 >> stream xے۶]_3+ [g;IΤDB+6)j6_߃;xvnsuCPl埬Qy|58ԠY'ElWGoi7X\6ќ:q!/Dߜ(%E)u/1?r&MR-?5D/>U="FnGc͛$D~Q*B1qEQZ~E(F۶nЇ?\KX8"PMP4t*1}:t4v?h<Tѩz~D;*lPS[ ~3)Sj *)ӌ)&C]wcW$InD Z)[Jx)@A>}4es air1Dr kRI5_LQD4<Sp& es悵KL{ n# +LDi}­ yB<esW5lψ2A bG<$ڑjtb}B6@dҚfʉ$#`p|C5Fu΋k'o*E5{uyn1KWUbIQE_DWe>~ȴn-qeYG RX%ili…8%.#WLdLdc )cl,v^x:BߟR2o'XYS} U8HzT#Leyu®w*Yc.soT^toD-f,oED\Li_5oކd4hjGE T1(' !]LB͓ Jծ7h y I > 頹ⓔepNW¼(ɍR8i_*zt-QIs5x)YO{+cRZ` ]?at}]\rD2#tU #l(xYA5-XuK,$!rJ̭.,goufd g v[i?^qU)Yp5Rik4f?Hf$YV2ŬlFАvL!/ǹ}Ⱥ-s5! =dK~73)E>ۇOi8߃&$nt0Pr{J^t[R 1]to02N).b9:ծZ* F5 OSV}M8s5(މUz P3.49Ul者 H=}+$ 7ɋ5K;u1J6>Ai4CG)*7ۦE!B7XiيR~[aR7O@S-&s|H"J^֑:# M e F^VY Fx!@E E77ΗSJyʨ0^(jaY67a W0(7"LVf V!IV u8ufF0f[(aF,IV>$Hhn NHD>̪)gM=9NEϯq'}xendstream endobj 293 0 obj << /Filter /FlateDecode /Length 15258 >> stream xOsdy>i=}ϿՄ-Yز/:zQ"!:Ȣ\,١sO&HIc;ʬ,A2_{<×_+>D=|ͮ>EW~_|ͯsxpſ?|wO'ť7/8?O3qyL?\a?ޓ_qo=κԇ?x7:Ox:O>xᛧ>|zGxSs~>\>~5[>gzYlG9UvUhm9)B8$RT+߀8D0D0D0E0E0E0E`&]v"8Dp)S.\"@ XkZ@kZE0D0D0D0D0E0E0E`Q7:T/GQ=ꤚ,Y.\d2C,(bE,eT*Q2*YYYY&Y&Y&Y6ldȲe'N,Yd9r$I,Y.C,<2Xf,bE,eVJAAAIIII,Y8:L's;x8?6q>|Og7ٍ~z=~c׳V?ӛe7K >)C$ﱺIK-{u=^z[b qo.uR=΃꠺SnF5Yvdr A,'YNdr=wZ,]jܳwrOߡbReeeeeeee#F,;Yvdr A,'YN\dr=Z,("{/XQbGReeeeeee#F,Yvdr A,'YNdr<2C,e"Y2XfˤO'i4I$}>IsO'i~Uy߬+|&2?_և/_y᫗w|`OoFr˼}w&kѵnݛ4JTwWԍ)YHT A,YNd9r"%{(XIb'R4B]rO& $$$F,۶_#P꠺SFzj\dr=iZ,"{(XIb'Reeeeeee#F,Yvdr A,'YNdr=iZ,"{(XI#U,Qj LLLLldȲ-bt.{>|w_V3Dy7 y=h"|̇/~?=}r?>}gqycۇ}yeW:?+-)*|{ ;KUuzJ}*|{M,Yd9r$I,Y.LjLuj LLLldȲe'N,;Yd9r$I,Y.\by>B-"#by>B-#dddddddȲe#F,;Yvd9r$I,'Y.\d2}Z,/ǷE,/G2}|{]2},,i4I$}>IsO'iWmwqc}ޡ.:~v{_=yo{dz1n5qܮtoN{ uPݩ^RonTe#F,;Yvdr A,'YN\drze=IJbYX"ebYX*eeeeeee#Fm[ [%uT7ԣPTAuPM,Y.\bX!qe"Q2XF˨b,,,,,,,,Y6ldɲe'A,Yd9r"EK,<2C,e"Y2Xf% $$$F,Y^3jerN~uyY^YzxAl{.~f8w^:f8%#k]q9*ՍjA,EKRıT,U$KReY+=JuzJzHN5Yvdr A,'YNdrze=IJbYX"e-bYX*eeeeeeee#F,;Yvd9r A,'YN\drebX!qe"Q2XF˨ddddddddȲe#N,;Yvd9r$I,Y.\d2C,,bE,eV*Y2i4I$}>IsO'i4Ykkn;r6l[}l_||3=ro~wmn\wJ+yX-_gY-Ii|_KW[nTvS:Lu4iT.S]Hul)'=RN{p+y%=TTTTTTTT6Sme7<-[(f.S]Hut)'=եT\rRݓ]+.Lj3nTvS:Lu4iT.S]HuO})'=jRBYI5+f%լLj3bSQǽFqd|5bso;|c~fD8ƽ7#N嗗7'嗗αV<,///;!oO//;!OTvS:Lu0iT.S]Luj=HZRTk!ZHVRTk%ZM5L5L5L5M5M5Mj3fTvS:Lu0iTNS]LujAQH5 F!(TjTS S S SMSMSMSMSmLj7nTS:Lu4iT.R̓T *za}~d|_.c~f}L:;;f:=N%A~$yX-_Kj3nTS:Lu4iT.S]G9QNJxT(70000444fT륙G}Iwgq7'gq妺Lu2E:yRT('}_Yw;L+n|@y|R>Lu0iTNS]LuހrRH^Huo@@9 $7 TTTTTTTT6Sm[9Z{Kދi|E7Mu2E{Iuo@@9 ('սTjjjjjjjj3fTvSMu0aTNS]Lu"ս夺7 ހrRPN{M5L5L5L5M5M5Mj3f{ܸuWi7Ιܬwƍm܌e8տW/߾axg3#Zu7Oئ>;m$_f|m(O<,'=PnaaaiiiiTz~co{<-[(f.S]Hum('=T؆rRc+ Lj3nTvS:Lu4iT.S]Hum('=PN{lC9 Lj3mC{lӏ?ﮏ~~x?wwdQFޛl/Wօ<-_. yX-__. 6SM0aTNS:Mu2E BNKBN׋BN=z.Lj3nTvS:Lu4iT.S]HzI^IzQ޷T兜T慜TTTTTTTTNUS̶#Q.*ǫlzT)_vWp)92ך"7W[=#κן!AuzIuzJr"}Is_rDu;$dAr~'oNzFzzHɲe'N,Yd9r"E,XsH-PZ,9}]222222ɲe#hMW˛Q,O<,7iT.RW㠜T8$/A9qH^Iu_rS S S SMSMSMSMSmLj7nTS:Lu4iT.R̓T |߿>z??^q㻏3]Of]Kzyr}fPDy^L0 {Yw; ˻q}koϗF7'#A[nTvS:Lu4iT.S]Hu|I9/%/wTΗWRݛrPnaaaiiiiTyyMjA8,˻Y-o2eTޔrRݛrPN{S+M9(70000444fTvSM0aTNSLu2E{SIuo!y!ս)多TjVRݛrHLuOXK*ˈϣܹ>}\8_ͽ姏}ˎ=Ɲ1^kmi?o˾:Iz_t꠺S\Z(mMq v\,Or뒇EܺrSM0aTNS:Mu2E_IuK9#)'}Tjjjjjjjj3f2i1ޒ[(f|rS]Lu"} 0夺>rR݇SN`M5L5L5L5M5M5Mj3fTvS:Lu0iTNS]LujAYH5 f!,TjVS S S SMSMSMSMSm9zlJ<_-vv}1uϣ?|߽—C"qޣ|ݶβ{Shw nAy|RLj3nTS:Lu4iT.S]єFSN{M9iT4rS S S S SMSMSMSmLmz2[~XwZ,byZnT.S]єFK^HuO)'=T4rS S S SMSMSMSmLj3nTS:Lu4iT.S]AyjRBYH5 f%լTTTTTTTTit`gkuo.|w>? ϳ~}˛ ϗ!֝l8ΗLG)|B!yZ>(ߧPHw/8߯f ɛ]H)rSM0aTNS:Mu2E9$'Rl!9^瀼e{M5L5L5L5M5M5M5Mj3fTvS:Lu0iT.S]H=zٞCrRl!9^瀼e{M5L5L5L5L5M5M5Mj3fTvS:Lu0iT.S]Lue{I=T/sHN9$'͖fKiRl)m6[8X2 덒c>c<|7?ٝvuL;#Zw~G?rgmKNz)oOoZJ{ N9aaaiiiT6SmMj7aTNS:Mu2eT@rRq 8夺WRqM5L5L5L5M5M5M5Mj3նUۚXayX-_jyT.S]┓SN{ N9T@rS S S S SMSMSMSmLj7nTS:Lu4iT.S]AyjRBYH5+f%լTTTTTTT<̚/z|ݷ/}ݝyyYZ;7u2T|Q$Y>)[J2E ս;Z B{k+J>D000444fTVu^vzI7$Q=޻BTVPd9r"%qebXF(bE,eT*Q2222222ɲe#F,;Yvd9r I,'Y.\d2C,<2Xf,bU,eV LLLld7xiHηqFY+ jބ?Q_} >|r_ۿ}gClʝ{Y|=ﻏ#.7ngLi|sAyX-_o0(7Ex)Iu/%y!}夺>^rS S S SMSMSMSMSmLmXsMEA8,˻Y-o2eTR>^rRKQNx)+(70000444fTvSM0aTNSLu2Ex)Iu/%y!}夺TRjjjjjjj3f~~&cPvݡ|eס|,{nWO/\݌γ,Yw~kG{n{f͒7'{fAޱYT.S]Hu('=WꞫQN{&y%=WTTTTTTTT6SmMj7aTS:Mu2eT\rRs5Iu('=WꞫQnaaaaiiiT6SMj7aTNS:Mu2eT\rRs5 夺jꞫQnaaaiiiTh̵ƔeNZ޳ܛ#_eNv~=/S)/w,ד7_VȰ)^yf|cuoыi|)yX-_7%ojjjj3f.c{OnEIi|_ET.S]HRHN/ ӿ('}T)`jjjjjjjj3fTvS:Lu0aTNS]Lu>7rRgQN0Iu!&y%}LåZy7w{`_|ktg]= ͍ /zypqoPKzoyůם_kU{9*W>+[(?)oOʛ6SmMj7nTS:Mu2eT('=UꞪRN{J9*Lj۪(QEy7'XayXnT.S]_SN{*y!]PN{*y%=UTTTTTTTT6SmMj7aTS:Mu2eTTrRSUIuOU)'=UjVRjaaaaiiiTw9sM{FY3gTnn8\榟>>}ݷ|<_<GcfnGayz-ߐwڒ7'i|Ӗ<,j7nTS:Mu4iT.RݧRNW _)'}T鯔jjjjjjjj3fTvS:Lu0aTNS]Lu>rRݧRNWIu*y%}+Lj3nTvS:Lu4iT.S]HuJ9_%/OTjVRJiRl)m6[J-͖fKkyo4sc?'$?\s=|xzw=l杇A^qG)wDo  -M fXϯSŰXQ,EK}7U$QReeeeeeee#F,;Yvdr A,'YN\dr},b䆺>[jGqK-n222222ɲe#?{|QޫI(yX4eT#)'}T1M>r[J{.@6SmLj7nTS:Mu4eTAyjf!,TjVRjaaaaiiiTwmh~:x,ls; kyCt'x,+\w߿>}|뿼>~p9:nAn|g֝ucE~Nɛ{:i)IZ BjZ+jaaaaiiiTo7~n|$y|R>i.S]LujAQH5 F!ըTjTS S S SMSMSMSmLj3nTS:Lu4iT.S]AyjRBYH5 f%լTTTTTTTT uTF)Ӟ{|JXk1^s#fw<-]$˻ zXo.p ay|QwYnTvS:Lu0iT.S]HuO)'=TԚrRSk+5Lj3nTvS:Lu4iT.S]HuO)'=ZSN{jM95Lj3fTvS:Lu4iT.S]H5R̓T ,TjRJYI5m6[J-͖fKiRl)mt9—S1zktzt^/ty>c~Y^߬kkβ!ߔz uR={ATw{?r$I,Y.\dbyu~Pe?dddddddȲe#F,;Yvd9r$I,'Y.\dibyٲuˆ}PeU,/AMAAAIIII,Y6dɲ A,YNd9r"%=ˎ|Pe?>*& $K$}>Krcܛj4:7ƝzMxlc_߼aw'gUwvc'y7cκMX-_P,_(C}夺T_>KJ/M5L5L5L5L5M5M5Mj3նUG?ayX-_jy|R>i.S]Lu>rRG|I^HuE9#('}Lj3fTvS:Lu4iT.S]HuE9#$/T_WRG|QnaaaiiiiTyʑk}5=FYkκ{#=}=rבӱݿ}x/~_a%{+ Ay!ZHRTk%ZIVS S S SMSMSMSMSmLj7nTS:Lu4iT.RT 8H5RBQH5 F%ըTTTTTTTT6SmMj7nTS:Mu2eTAyjTjRJYI5+f5000444f{sZOv\8Z^a<4w9,WO_?2|}4awmJy^x7?ى›ޜEޜf(?ߛSwZ,7nTS:Lu4iT.S]ͣTy>4rR݇I^IuG6Sm5<_%ay|Q>I,妺Lu2Ex*9 eK|b\ǡ?3ڛўLh7 c}լwތ8.%OGEѥrSMSMSMSmLj3nTS:Lu4iT.S]OYT)RݧSNu+S)70004444fTvSMu0aTNSLu"}:夺OYT)딓>e]JuM5L5L5L5L5M5M5Mj3fTvS:Lu0iT.S]Lu>erRM-͖fKiRl)m6[J-͖fKiRl)m6[YX [uwF^I{9!'x_#v_߬ǬG<κiZ<-Oay|Q鑼YnTNS]Lu"}YIu_oVB,夺:K6SmLj7nTS:Mu4iT.RݗTi%//IK9J^Iu_rS S S SMSMSMSMSmLj7nTS:Lu4iT.R׫Tk)'}ZIu_VJjjjjjj͖fK+(2\ԣQכּ{VW~H7Ӻ.`{~9߻GSY7[/Ǒ=כּE]f|o.yZnaaaaiiiT6SMj7aTNS:Mu2eTɪ>YUBdUIuJ9U)7000444fT6SM0aTNS:Mu2EdUIu*y!}*夺OV>YrS S S SMSMSMSMSmzsp[s \NW=ʚk;jyKm17`{,_?}˥N}|Pzy9$iRq},Y;Ӝκן7' !Oˇ !˻zprRnu}M5L5L5L5L5M5M5Mj3fTvS:Lu0iT.S]Luu}IB !'u}M5L5L5L5M5M5Mj3fTvS:Lu0iTNS]Luu}IB !'o+^7܇TTTTTTTT^'[؇}6rݠr%zg݉Ϻp?'׉ӷO>]>/﫩ތtϋc5n|V˛妺Lu"ս夺7TWJJ{+M5L5L5L5L5M5M5Mj3fTvS:Lu0iT.S]LurRݛ_I^Huo~E9ͯ('սLu)72!7@o?z˫zBߛe7O{QϗQr?[z]>u޺ן1AuzI*Ս)n,Y,&rS S S S SMSMSMSmLmh-y?,˻Q-oOg<-7eT.R$SNd c)'}L2夺ITTTTTTT6SmLj7nTS:Mu4eTAyjTjRBYI5+f50004444fMI7U_v |vﯯG$?_}U7\sT!myڗ7Lq޺|w>߈c>zŝGlu1z]k~gOs%uzJ`<-)It,y%}3[5rRG0SNf+#)70000444fTvSM0aTNSLu2EfIu,y!}3夺`T̔jjjjjjj3fTvSMu0aTNSLu"> stream xXKo8W)ݤE[,ʢ#QPHZMx!9΃/("Yaqoyebe%)1t@NPwD4Pa6G?_8 cqO@^!\?AśQV[E4yE(,*OVMWV!^oM*^U~z+Z[\Nc4m0G>' ILNWp|2ѭ*Di 1|A$4I~y8? 6_|g0j1[,Y/ bj%aqF{Ҕ5p`%1EVHXaQ^sJȋP07_ }wĠA j!ymQa0e\18%-MMWkYo]x<%R]gҙv3١@k^W `ӅLDINT6/Էo(|vFT F͛>%Z+U;x1 w],1dƴ(V*X*[bYEԀ a^TY$iy7-,_ ైbZdP$1͡( 3{N2hȦnzE#R=lٖ#W$d$iS):xrlt̍۽6[=7`(>UT%tW<Ʊ!U Yj:A{+˪1H ?)G VHIqFwC.7ڡ3tFC1+7~Qwe 8涿tCzV{ч̠>cВ}5q]KG? MKvE{1 C4x B 4'gN;܁E#zr,w;ޫ;zC`@@|06ܑ-A/s*1PUEq~R6G(L$?#LJ]reR9V$!7Z[ Sedt^v`-Vy.=4ps-ՉS1ø;ט=|nfm{zgqndaֲ^6bA>}V1 h}W6]9Z;:b[#!0/=9X r\:33]9v=ZJC[jf@(Iq288T qv82endstream endobj 295 0 obj << /Filter /FlateDecode /Length 3843 >> stream x]}żu)r)@ۻd>d rl~}!Cywi. fP/7Rg?y Ӥ#gLJ3! JI0G9@!A<t7ϿÃaMd&tɑO?\~(nzw;Z%Y'IYe, J/w'폗k?E̘XFc>)j#?:I8CT%0&PH6>jy!߫v֌еb)PCH Nȯ.3oQv p$O,P# @ YK=hlg'T NCژj=[ε+ 8 P ֍!|L5{wϸ;Gq^.6m;%X GG(3YRHߵ[Apf&d'0JUC2~K#ƕ9U2_ea-sv ̚˨V^-B9K1ic0XAk +湛(@J(l(ϗ2,keAf}F^OFvR&&L #i\]1-|U1m?}bVrP'wo$eɘa, ,]Z;U#Yʡ*6]=:rv>gq>ĬGa:aks`„uͼq_ ~1&X?Y3A\@aaOj̓ +9l ZlLӠ 1Mi ;}jG 95F qlv(\mM';&+}80ֵVik^ [V{tvO`d?A7 ٖ.ChoF2w3bdgtr4=>4#n2s5=v. XTߎu"הl5my7Ȳ(|su!ly2Zҟj&Πo2]`pʑhJ emWju: `kq>[aR[D&)q8rbVǡP8m{2jC:VŪ*֦65~O8^ 0 #މ"kZCФã8 .dxSW DL&7ِQ2ʂ!U;os| *S{j|]|_v؋D.+҅˦~TGPb?>Qh lg !MRBpA;Y:Wg8"Vh?#5薮B-w,vOy}a'҅wJz.j շ _1S|!%3TxV1|1"PCLd"m6ZulGqLWգ8_t:r-X1KQ\#WX,` H*ap;XMx i]ZD#4 +)I^ërɫMj mj9#O8^< { 6f~߲:Zj[#.M:Us8 8_xr궃[S0ɖ)~!Q'ky'VUE֌ㅢ%:+ GH,`qHV? ;^жjwv>Eo``;/_&I &B6߱G;!~+Nz ڔPvjoWSB;8PEůR2(`Ftd_7";?8XkmTϦZ"/[8zAǍ EY=^`0 ;5stt]@W[qiwV)+^KqYBC)hQ.cְWpd2㢜R/q졠ŖKݨ.~7X.KDk̥P'T.3Dl-+"Oi m^U _yBF07q FǑgr;NV8X;n1nLsqt+L {G30sM_m("1pK׌Nbt1١cc"<9ćrzƞ&-"Њ6smJ{KL\ Rf:C>.u0LYJֺK\nogt1(@ 1ћJLk@d]0,b@rPSj7njGQ iWCYpN0J=$_hPmx3UP42X"5 s$[Q6EF{R5ڵxEe5`JzCpP|zpt,$i m\U -48̆7<}\y♜ݳuqj2K^G30iQAe.exx9͹6R0 &\ P%}}endstream endobj 296 0 obj << /Filter /FlateDecode /Length 4054 >> stream x[Y~_ovG?ȱ(ZH,?pv:iקȪ" Xj"Y*r?߅^'/#oL#/Έf^Q=SQ"b ~'.|˯P.7+{_{Ѫ(MXQv{}]_[7oPuWt -:^{[ P|NIwLRdj'V*/~Q}}Ł8Qxͧ1ucsueT=^h[PWq L1,B+&r݀SeJ5s&==*X4w3BVAtNܐ4WgC?Y4cP \c=%U$i%+dنW.g,IfyIg!+#.r{1sJ,zo,VLfA*G 2:Gڊ 京|•=D'-UfMВY[T7Ej읏/E(<҇vn;{ .SFTءBt:9ur?asϾjƲ4jg0Băǥz Kg ܥH7w3B?!隦`M[XX#ߋ`9?Ҹåǯ kf"iN\M+lA};i;5&h\B?oDpbPFZ9_boC'cP-V΍&<,%v *h Y+`H;!C $i v*!ZێbqKŅBdТ!clM>r!z wNuyԶA}[ԟZL5"JGVй>WNɽb*MΒ4ciY lezgP[&<ԈO j]N<,WpK5 8,tLW<$VXe)L I1ƃ0T? MߏgWK˽3um`}4BA*™ J 8Q8f38`MkPeHq?g'ܬ[rR˥0(zϺ=ތ,WTmjYY*S39WZױlci "FP#*MY[8$U)Vha{:Q HJkLɋm*E҉LEShz˱ )9o,oBjp(ŠM 6j6uһrLUyс§tݟ ,FX# i; .1:b_؍ϵ?h?i1Q;Q|uH(Y. gSҡo,\$ـq-  jJ".'rJgw< 9Tz1۪\ Ңd|sQPL]7=g>[Ô# i;p9p\f3v(T. /J=*c9#M 1Քf^l茸8= PۻZ/ =%A1E?i[~%H*-)yfQ FFT퇑#YÀ =]+,m>QL')io]==f[ E*Ț ;R>|eK3-i9earV&G(敇fx. Qs 1aPHFukbjT .HLA`ap:@O|jސ6GdXh0\ 'SX'T4bk*' %p/IVUK5dL {ف8=Ii7`zw`oT.Ɖa/ @`7Ar)s-4նq̼U@s{ !>}w>a7F|r}Iع@)VKr~Gcc'"!ʷSK%`%.4n8RhMg NDt檎# _"My2J9TY8Ctz'ծ;!^Ԩ8YL38A5.RsSpV浀v=jTf`~֩+![W?-Q yQҘ~3t 9t"5V:C AЍen%Uكqd{o֯l1yi!J?M 0qa"Nj2+յLV-g̀jo4d2y8|Ɯ<:it4r6 ,؍蕸/]V!ӣ-S,HCI=^ꞍBqL{#M t|~4utŮ7=%1D9 =3zx:yY0]qb*$A_\9)$v>fvV>"s~J!4D(!hhE5-~u$UY9@QҘ;e錉[~N&ɹd> stream xXK6 W;c1zK>I39ds%zFZw iY61 ~PSlbTuZ"FIEYꐦ3Ԋ<"68~V>bBP8¹9a_?|ݯ~ޮ^Pޥ(qMIPx#ѶCn?}{mXٞD{^q XB+I冉D-Z}hW9HG(AC7" .pEWO6bLx =UP 9J36[77@ vӊ!iOI?u;:n,IIu0uS }2<>k9J:>jʄ$ 0*$b;y5=ީP;򅂄 owQx~`"`pM5dPͱ,fμ Wtϝg4?8FZ[ "30W]9Or.Z^D&֞{#̨Q8KE[hxL%Rt.DpZAKT,,[X9y-sY[3##;69O  4T l5>Xgn{,T .-^dr&fQb HX58 {jn((WqTZ}yRx^dW7~2U|@L'ڶVli_ GMO!șԳ:ndMJU?\M8y䯂r6)9LH6 yI6y%Y4iw' ˒tV:h72;zMK((V2fPnr4t-téݖ;!!@M }2}d:7{3 N*+@sđ#'|<1vG= >3ZhλQՍ(o+~ W9γl!Ae5 \&ˣuMCeycvqmZohD$0OpJU;;oќM_{feAYqe= L|M!LGH0BNyOНH42!NnLͼmuO'穨<^09\ t^^iEPI Ttr0Ik{F M}K9(09QXQM[WN&ۈ&z8sd5-D_3o.Q#tTd,h{;)VN;fɝ8 rl P[Ұ9562 #5΂[5yh|h@Ŋkh7j$[<bSNL~ɾp:W%*^eΘ<= CQ邁,(pNR,XH*Rr1Q4I0+}km@B?=^ pe .wmY}(FwGnylX*񗧝/ xinXE7{}㩚T(K(lglZ`G<=*$|X{6}(N /zG&0HyX=nQz ZnU_ eendstream endobj 298 0 obj << /Filter /FlateDecode /Length 439 >> stream xSn0 +xu)ɪkѥ@ءI$-'YNbGpQD||"J({ -y|2fpi0`#D{@N\,G>Gؒے\/P>] iQCpVAӗ VNpeCy?^,g< '<ۇa` fYxcӅ(.dy|NWMsϋh2&#(R֮3|Hej \cR}JثX-֜Q#pTj&4Rm..-X9"ҜT:ykse-Tk Z5:Bw~;yp`;N{#فzQog1m[i>G]|kTfIf}endstream endobj 299 0 obj << /Filter /FlateDecode /Length 4504 >> stream x;]6+ (;0l6L\U._՝_HItٮE$@DER BQ;}& (3BY )v4kD4Ow]_>a]xM G6}. dLDaR¿((Dؼ??N CT>k%[7/}?,` F iN0{px5ƈ έ?5&ʃW!bj 붑ǀ&df^&ΊEycDY,Uw`JͻVBa(dF߽_(KdƐL @%+TeV1`_0O{՞aЩׇz2A+ccCrRs՜VuaSee$l1/9=lծA0Qbgt=T;2p|9szhD09g4k*.Q>V`36Xzyo=WpHaL95cŅD3HRʡN+cOI^{5Vi׮lp6!7qJѼaI*bmeKQ ` ;lPOzR;@jE ekv"$X@&٫A I \DI~:*\<,Z𚚖bXgl8 1pZzvm45/muwU4MrWsߝ:ֳZGqZ -) z}Rdu]ַT!Zj0ͽ5Pz?aAsWη`nTA`{U7,D)SVf~ލJ)d*NtNFxF'i?d⊨ԏ k]v?[ .SuCf;A+z gYTv#T dz9("jZox ) \^"a!Bt(a"VL2LtJ: DNeRF@oj-&/\j$PpjOɞ'RXeBծXG=k̈&̮Xvӥ!>N{Ҏu ^yя Tֶj3`\G̮@=]zy<֞8`Æ}U)bʙ 3!g-Uo'[aq^~9uEm?cÍFFe R! N:mqo(T20(#MfyN\! D~ c^A4:Q/a`aƽHeH F7/AfТ1=,;/ ڪxcÊe T 7Č p Ɏl]PvG{Xp$S2<(&Q7b4:\8xwG@b\800| d`uQJ-.Vhx G!C |q:կå*DU墈PF\-,Bf) M:L{ΪN'^ȦkSp#2m TxLJmkU Y*2l2LH)]W~{<zY/#n!5&.numqM?ù 3On 'CX `k/^$.DH tu\lP^sQbjK4U;wݙu!jﱩ/[Ee8)]ط]SCGPMtr=C}% .6|lgu8sUC+[E` N%v~ p v7}8l]ehtǶ~SdF4'B=jFQzȁ+!d~S8wV0UB ؍[@Q҅VHvN2N&,dϽp?jX=rzTAQc@]&'J@{z_4? BH?8r E xD 79B yH |@Ck wEqq܋8\5jczәDsc}ow2x}k[OJ e!26c[,ki`viib,8xao8FXPW1Dn_|]"h˒8XfP`| }CвX8sHCyXJLMzKS7ii~d!MiÅI&=Aa(DD  -yPG֕-"X=դ}D/wm\.H%*zÆM(bך`2I`zj~9'9[BՃ܎S%KJXiL l.F*j{S%穑 | 3 3QdȉSP?v4]'%?thJY _0Gr A7(/gqM&|fݰ/,pbU]V tER ΃?_ꧪ1.<{w0_ Um+vNp@ Z%r'/E/ITD>ZZHc^k>B e.Ԓ 7]^HkXA]< [ :XaU@I˸,ZQ B#/Uin6N8 mM6yNzcEk@̧W.#ivz&cs^?`%4_В^ʟhϴbW$ u=Q$EbxشmFx>2cni[}zڈh sƥ~2U?@Ixؚ% Ӆnn@ bvgh/^}#TYy&"f1tqF!uhg>a{w1Q_hdF{+bd<irACi$Y#=*utqw~ l,3o ~P~t{8y9iDfrfB7x2MWOo1⛃ C󔙅; ) H@,YwPo^!c))ke+:}ZمG:IT m3@4 ʼ 8&Ow}TRQ)>IM!ҷ*6/G? (JC)`s<ER͏>Kzm_Vضqh פArt]7N"2v=s(1l,L XbnwW<҇53f^VXWSԟEU}a-B<SoYb;y`q}wnO#8mJөk{;z.>$cf ܎R˟؀%`fU0Ԇ5s fe'PzKb$,%,=`MopuA7œa.Ǯۅ94ac>:` 7f"^]LX/4,1SOH.,(d乹\17+[\xs)evB1ڪ%dTeKoeL3eK QC:y{hq> *WgeQ@?HsO7H9a7ֶٕ^]Xe:о`@dv!>V ]`R-Hҗ:R8\ܯ9DttV^Nɉ?݌"x2[W_}09X0ګ98^~(ڎʨꆇ0D/K7A[Amp'2_b9_1Gˮ<|da:+2S%Cԟ3H9ہC3=G3 o-lǂfcK8)qh;= ]r&k1~]/'b2UA5!HP-V ԹרCX7FYlO^1fp1Q @s F!7c_F t1Vt> stream xVYD~()bO>bE- ZixXwbajݾ-OCf$w}]WUEAPXO0྆<0 kr5Z~N )bp3k?Xjz|'۝8ȣw [P 9+E\g2'd}l3ѓ %ӝ|@ۀb\wM?Deǧ{Adb:@g;+lEېBgk>(;N/SV}%EGJ=a UQe2qi* s!@)E)TC֓t fZE`W Ub9Χ>jhֱ"`SPX%7R]Y.E-^#-kbhXWy4jxs8gO0 8]Bvg&m9 ڋxR٪7_׾7ҁjTSQnzAV KH_cɌZ/rhE<^\nMF$ވLQ)EpV$㴯.ei&Zo@ sv%jT)mUWj,U"4W1qBoes÷8S8]isPCl22a\ftOG5#5u" c࿦e61NgQ@KeuXd3>[s`>yd˸E3L"tȢ*%.߀N*eߠFݼY|1͔YY‡ݻ_1`۹2G뒙n1Z__1C69dzxؠh}֟/3 clw$Z5_q:(*ތZxendstream endobj 301 0 obj << /Filter /FlateDecode /Length 3127 >> stream xrͻ ƒIݜ؛r*UfUThϐ2ɑV4^ )nՠAݍ~"nO^2=](M h@'h~"ЯWA%ݯ~>Hwq)*e'9;\ĊfHGzwxtnQ#eofnƩM;Fk#0TW9^x|oׁٗA. d ۡn{q F&\o(xE~W/do?SEs I)C44gsB-/?|")7xfHRo+a?.rrZi)~?K=q|qyIe2o0; b׍څ:szד05 Q3޷c )d9dɌ2/zZ<m &ּ:.'D1?aXb9!'҄f+pGi ilXmsy=›muol^9 㬤^br5ouJX@pN%IwanUƣ(G ;[o;nJK"q}蹨1Z8qcSpC=DϢu]=ʪzsn\_"uCLo[3=1WA&2yPaO lARd3ԵZOzSnϽEeH"0|vI^@TgvǶ:LČȅHjM|IkJՒM>{ }P_+3RX:X[!@٩]D5$y6*DnmD%,!/hLT)d5ښ iHݍ 4v)Nx6@Y6 #iy$o`qX9/3 drFV_TۨnTNλZFA-$XwBI>CUڍZ7 9Xj-p%Qy&,5 NBsD8Г2 P_ pEOJ2r8`ܩ3D suu}k/&h:u3iXkdB^ݥrK"Ki}aL,øyT?r\H8²lE@CdqW JPJЛiy6l1֌ |r"P?o ȵ2˻:)ŮLr,)R~XoBg}zCAfDY]R۟ }]9'w,uJ6CG=5+[aJTnͰ,[$$#3Rb`I0 d*tMmDЃ"T7^Q> 9n ||cۍku l&5/NqGc98+tn- _k̠`"+ z͡L#bqHLuXþCviB1Vp["4 fpm* d.hWy@b֢keݨ37v7Bf?,Rֆ#Cl9fK/7T@Ԭ}^ƻ=um+?/qO]yBk*I]ĹĄAܠ.Ma^mZ$8gP$ĦC;&Ѧvb!^R7̺ 3;a ]Ff֎fTS>a_r AD{nQ5!ʁ fGNgfr+GMWhO|F9~trl [m'=W\+.7~͵͸9scFgmPQyR!j3+/5]MvzDkk %bP?/PDTigBF&UZBdHϩQD' w03sPB } =Z)/5AB7 Υ?/Lxendstream endobj 302 0 obj << /Filter /FlateDecode /Length 2156 >> stream x˒ܶ>_WU+.&uHxSN(*,0$f1_"8}h_+YnBw| ʟ4H>kOҀ& #/IC4Zr@_큒~>ˁ.)揇 ~@ꠢS}#:n[0DPpoֿ֞hAtۏ9%_1)y:#:#amI~:!ۂՎ(QqpÛljfyT!oK]=W%wT6V]k]G04}ގ h e#aTn[ĵatu_0ܗ'xBH܋>P4,J+)t_D͋6c׬h kIс˪2F~l OKH7^ne$^mq.sve:HMg##xNK$/x!g/v hY,O.u/íW˪l}/#J-ˌ:F~_x{ Ye]o ( EFCceYI-}EAhOwlX͙pP&,g>}$yԣ8}ఏBʱcͷY.po,}g^eW\eݰko&1x -MuDsjtVW'<8(O' /]2թ*X] xSB2ZZ,b0--e$-xj訳Zc K ljO^: 8Y#wA5j{VƐe]7 SQR ^cO_6}pa^$xC!gW&Z1QaF ݐ$#+50h<[*9Z"An ͧ' 8K/CTO OLMh?L2u( kzH9qXlc,&V,*zpUv,vE,\aF Bh̅;R{mBQer7aB++{*췣O>tބl"&٦S0 ,yGSN|_׵fU,Ufc#Y0ԏ(ۆn6?M'‘2J#?^|9X[Ă`c;32doB81 IvZq<;6FM Uc򦂥LT:[tQ0pJ6W+WJgoBahgc=~CAW EkWE-5)vōC7-KchjAP|دa%aSsvZC܎kϧE5]qxD'mktBh Sb֒4^#f!&^p} 63/r]|Ȁ")fQ #3&>ɺsP`zc~9(&0=*0 {K⬸l/~TʑY^$׍lS kjjAg3hM^C> _2(zP}0([5{-D^A[ThAGaGnU,T8TDR~B?j1{01/ =7#/0_ OZ);nEj3!F*޼ *(k/P~5c](Mia۫nrs.>endstream endobj 303 0 obj << /Filter /FlateDecode /Length 1415 >> stream xXr6+pWihKIı|%B"S\d4Drخ&zE#.~$ɮYHGdE1BǏHC$HWYW@IW%|qArѲ߸n%ՏCDۂw/=mwKjVJK> stream xYI۸W6}雗xxܶ;qf4I\Z} lMNxk| P(T_UA_7>VIQ0]q1jnǨF`ZG }ٴX"&7ޥ89棳] B?h t^~ K}#㸹C=jm֖">n[[Cͫ͋1=t_sЃ A= w/MX{LgR=y(q%ˮmɾ}5%Ej+Pb/=NմD5F+TH ؁R4(`2K~XhbRI8kno2Iq'`L{?>o{rUnP$?CYB5  {5s#gv{_v`AG wO V֬=^Sgx 8wh Q8lmrj mk^G'.xӃm KqY2pWw g b$0Xt>T*8LWp99AK֐@s8ji 8ϰ0bӾ?~|tڍ8tFlyEu.l]b4If7 U@كq6{`-(X_L u[,M-LW RxOQFn3H? > \;y$Rb\~P. IɃy@UB} E1iS%-x U QO+Cm!ť2V'9dá\z9WbgII*&A[ M6. a&*0_VI%8| URQV+eƸ<Qg!,q+zmvB|+#N0|qY{Y:WgjNe>ǑđDp_#oo:~ ɝ.8^ o%k{nRhyE2N|mR iJ4 RGIvդS: ʶOJGҎ$n+UP+YVߙ`Kwn'yfL\UPÝ'gpGW(.,uw\赑Lz* 6_?)-*,M>'RqP+HuY# aCtl m v'*o;XX .:f TaUU4UFi."ُzC ZO=MR 5e96xE VfG _'Kݗ"v P+vgv *Q"HNkg2q^fW_\֎=/'u g TMJܯCCB\iȝi*w^rچe$TEV=&$dμ\h2m4 + lri̋ҫX{EI\t$N]HaboߠC~D2!Hc ݢ%G4L<`<2?b2ȞalfW{ۃ9N4&[)L (ok3® EoeVW4w>X> stream x˒6>_=yR5IxM*Nxj}HrHHbL2Iy[|ȩ=dT 4FwCB FG IHjT0,!G ip7`f$. |H )9[od s* DqQyBrcH~U4ԍb?BA/mJC_}HrHOQC%*G|)o|!04rVZoV̊0a>sK4vz-l<xm#ElTP9aXElvؒxDŜf#Z{S$lj˲`q<'G:0cO4@'ϳAkwXY!JR'x7F:!ؤ)-bTAZ܊6isSFsr*P4ˁxNڭFJq`MS;c5j'à>Շ\#tD,Mh)Xӆz[7x]\ ȄђU| XJT-xY>Q#[{@p<эv6*"TzQQ pL^Bx/Sns%=[vk;:Sݝf!D!U-#f !ڷcsW)$}bp),v㗨4dzرYÀM4s[=X~!BUA$9 }#V4 Ar+d}sV/0 2z?u2@ N )]T3N( L؉蚺ҋ0U.J_ן4O/>k<6:J!󶁛of9ޖ]18v!eANSr㡫U.A͉COd! Gɀtꆫ_[򦹚I}=:41gbx^Sc^wd (y'VZnO0Wb~fx 3!nXi>'e]1A(4<[ ywb QK̖ o2 ԰p|njk(WϯNžxә<7\1 Juaa/^ŨT_#4Ɋ $:aLW\ݨ0p{  p ~X+mhҰ9vod IM7$5M$T06gDPMφ,(0-B;`yU5%EZv h=H}?L,U#hZoo&ҝ{ 吝xTҌ7;sˈ`0,@@$r<#e@pM!DJOxN}G Dw_/,R7S\AɭÜyYQ^Y!K'"Ub{c!U8%EA;Ξ] K+tudH7 d%.5>X,kah*i2'TêSW9Ϧ4< }}} N{~%8\%FZ v%[Ϝ_; 9@JγGY +nvrԭtnL]&IB]:iWN ;^R >mq)wvp,lg ̗ D%'^y/h'+endstream endobj 306 0 obj << /Filter /FlateDecode /Length 2980 >> stream xZY6~_8Û&>Nʼn홬S"2!oٗ* *"!]ɟbpE"R$5+IqFD, ?8 =|\*./G|_}wwیD!9 Kf:H'V31Y7w#m(?hQɠW>_(G4xA`6L[kAߋzNbHGlEee, ϴmxsOv5Ȟ>2e!*›^J:v-y-ۚ}d) 0L|zQfK$ѳM3"C˔RVbM.D2#D|Պ5RՉh/  /BN} ;ђlE'v=w8DP; Kr:+gnꚼ+xZޟ }뻵e|x޳irjf /^ a%A7v7x@TSJ`XӍ/,6v6Sڜ/iS]7e=TZ8i(cQ1B^t<֞Y1zJ,17"ЙɌ4o-,,e9=Sc$q>1.&'*@_lܑ` ={=XRg<g0d :2H)OrX9aX-s\l|QHdܼ~fuM%N]? i"9VQy{uGVzpk.t\ 4݅2fkX N1DzF7~p=#o{(P#)țiPѴ='Q4YDIŎXu/n ew\l Afǟ )і jyVUŘRS˫ jO@M*83uc#w 267 ' ޞP[TX,(*#EMp T>@5Ҷ0A#znPu ҆XS(6 Q@- BdӇ{~in0#@f/l1 wuQypxQ ԢWdF[uW2/AߓV⁋H&m4ZP@}8}189T"]X[IG5 vBޗKCG Q/z7 ޝ͓!OW[ȡ! XDɑA%:ɄASB0v8* zI~X9*0F<5'﵉OPz82X!i.YCHtE }";ZC S#;,5T;BI}y7:FWޝ K Ad2J ^gZmT&HSxHǝ>~/Eeߡ#:8/e7#ˌ> xb.%^O4سoA$Tk Inv ^G *q:``Tog).'؋ycV.ȤgǨy o^yfih#ݬAf&;տΜ$!n> 9z>Ǜi-^ endstream endobj 307 0 obj << /Filter /FlateDecode /Length 4187 >> stream x;ْ6r|M>Mqi[ T7,. dHF#H$ׇ8ߓSI?=JmqP&AZPS^q&yp ΃Vb@b!8??tQ;t6A=93Ïl}G?=?|1(x>xeuY]UTa$x>'J1I=xRͦ0QdR, 2Yj?-ȼ ڦ&q "s!ҀZ]ްqkС(Z6gm,VzWl(x/mѓxS8]zq+KbrڡayKAK#ѐ&t,:4 t49tbe48 Qt6]x'y}N1-;eBѷXSqO<܃Vf[ѽ\%FE#b$+[ӷ/7"* ENg/"}Y,ig]5[7T;%Bf~3vjEB-GP}A/ )^-pzk 9pg1 b8([x̀X*.!]=H4uc{ B~>y8Pq2Y<U÷{ETiy'*b CeR,:"deYiA߀ՒSBp#Kg1Ll&%3V-'6WW61Z%2.@3;,1cFհn Ҫ oP(C>uS@dڋGBW`9+_]:sɇuEm<@+VgJ*WrVĴrZEF̨sA{Ⰲ]v;(sa;?d'd(eDM[BtSR x,EXbԾJ0/vX=7scnhoC4 ~DDn@=gw)'FJh4S9 9y`@ #f"n "k 2gfmyڣ1p"+;Y^m|=MC{KKiB9hhGk i5[cGܤd zFV4rm1g W٭۸" 37<3u$&.aÊ^Z tQ]@Oh/%)"VV{|%EƱdenoŨd &gXRI)x#(0*JYɦMA qR /4elm=ߌ!f lv Ɗ^Ro`r.<\1z_H",uU#kx"J,GlTH3x=:KI{F*.iWÙ moEPad&({:8<#o<9kWIDnG&# } ~z*Rqx UUҸ% KLWaY-P,#f51bt1o~ G9f"+t1ԋ3:mU ȿ8+حYXGo 8 H8?S[N(0v~w$MD#uZy ?mBcL={I#t\'[=1tAL(5̙<=r娵O5{z_rYUaZQ|\F"Xs,cyOs3}lڎĉ{oB|0467 ;ߊfn{ W!-06R-)S, V"n?Fj6*8J:wSOI^da߳\W<bVhþ4 `~0>:2b$zfū"%~e`ƐN _P|c'L=Fߨm8Fl0gVM-,א)LSBVż Wy{m`bÀxmppk .Wu#M0Ugym޿!* })t1ѷЗ%ӗZ7pߖYX{ .Mvp%I5:#elߴ~bZ(M|[~%Qfz}hEqz GVpٷR{foM )cY;T.[?>7_#aendstream endobj 308 0 obj << /Filter /FlateDecode /Length 3192 >> stream xَ6}o Ӳ[۳q`o| ,`KiՒc[Ţ$vcc͢b/Wo?apEq: 0YL}*c#E0س߮+?alp/ѩ/?fW?_=n[q,\'?>\Fl|;n+J-g?1`gՁ. r5KАE> *× "taƊ ulE<{MaȆ?ӪQ"g˴amZY2Λ `{WfE+<v;YG5!q]S_b(XQț$U;P_rydEMonΊEZ[FDd6օDANlH&x׶"Rʼn}6Ng y4,e"lqf/[) i*SܙgZԧki 031/N9kw/~G&OHsTwh,rL ,b{ϣ/xoeS=+@}Fhp/D 0"9HG OgYdV]2Q^ݾ|jwB+ߛۭ2e*[seАAպHuowV .Dp @.DcÅ0 O̳7v?B, QV)E`xA^=}#VZhxw|;-Wo%؁duWxb{'CfP?e63 rd]_ǁG8 ֌b~Fp\à{c6ht&JJc& !+TCib&P 3!IKfEzvab@wB~*g<:=:ܛ ! gwdT" nƩ-`2\~ƸkK^IE $gt~X'JQ`97J)3 ڎL7Sux|EmU j59(lf9}yx8ܤEFQe㬬/}fg[[\XЌݰ2AJ>Lm^ uwW4b'[hfu@vuy2 YC;׻^1ݪ]EDX;qtH% 4``,u!ZwW9$]ˏu`Dz,것A]m*)E5A9dhmnZ Rzy0t~Ŷ@Y-wu%*eB4@OC/1F%CTh r194M_2XϞQ{__=.Pq}rkʫl49km˻(ud͜j Öz-9oOtX0K)Z0 E'wF*=]Oځ>>IW{=Y4ʯQP0"Wćjt#(0DNՙ:@l8@cޠa?wtxzKkL=lWJ8Ta+JֻȳԿ_ iendstream endobj 309 0 obj << /Filter /FlateDecode /Length 3175 >> stream xْ6}okWysJ|dI qM I2@AyƩR74}74+KU?r%Jrh8ZlGO`rѷ7(Z{o͗7_I#G['"^4eYiTѯ/>VQF?_piyxP+3?'JgRQa`DZ5Ѡ>]=G8tu!ř!$|UZĽ/lFah(o#SOgWzc,VFcQ-Q8 RL~d5EN 0F۾mS=FNG|ꇚ,YKI4-0O2![~Q;E]?E3d7g0s'%³k,}^Z'Rngoh=sCim±<;1yq'b@'#|5ih'gxDT'$9Z}:0$yFNi Gf~wʬ|VGC@^PmЀqs^l:ۢU$Ki/-"ݪ\8!-ڝM}O60`@h릜AڭoaюvLlx!vH*(Z\SH{ IzU{yyj<fTWl؜G F}̘nO'#mBe833c*|JU*g卐 yQ:rv[(uoW`+ٜZqQ\H@ ~|V75O;c4-2x|MBðo1g%JLS"+ٶqNdy4*% r`HyHtA+,,O*q81 b֕R"KC rq\^$<Ƀ|s=q载:UgI|L>lZFLm#xjjoՀW5<lVIKc6(0@E(s^^j>Mj9\ 9\py_|…f^`ԊNJ4jq0uRaI`Xwr4ccILR^ew|_Qۉf )-Uk^heWk#G˯N@4ٮ5tc?҈kWiL9!|j^t؊}fM'G_s\ߜЅm^f$TD5ίeɀc Lr[I xƇBrxY=|>ӘqNϊ^ emϘ+{̀ihJtQ d{Ft̠T /Hv\BWҭLjjx\7K/j1㶫J3'et UͰļDY[kW Jz.2tz>")徽=`ຝ1O,gD*RbE/YK:w NVy\AB&y£>g>H$P<@r28?7r&^;]Z=l֖3MfHfZAU<B~.ܘ}*x%l7NY$9$ JD,o-nZaNKg9ZNu_\}LyvCs@:|؈U M\C,!l9?\CuSasИS;olMP0, |zu%p@ZO[\,@cg~sPr0tOr^?cQbLƙ}hӶPb:N ߼u('ɠd٭#9['9OY/BEZ<7P퓬-zAzZyA]'P$_~'9CK|4si_8ՋR"ѽb$&endstream endobj 310 0 obj << /Filter /FlateDecode /Length 2854 >> stream xr6REjOZ;N98~h+U!1CD| 5~6 3䬽t7~"`>wiȲ3Y"RbA  +(-?8~Q_짋?9a?eg&x_.g?\ܾNXೇ8(NtqA+6PW/~|8& 5F}!]{f>$#}ҀV~Q=k?V*XG@6G!Jήwvl=zܱ% k֍ |/Mbgާ0LN >y슭e'TɬMf;Y;):z V}0~($ZdB)={4ēWV!X~к]1BFQ :۞# .Y[>Ⱦ 0(ep\7(/ 3.ӀeS= B" O| Qn9NCY{wflm]b|}ۂz0OJ^PN~azٓ&hBU\,΀W ^1HQvjD(+v %N}> $ 9ȆMVr_{ZXY6Mm6[횮R/e%{[S#ZN}1Z };B~#x7qñǫ^h ΏkE5+L$1V2^p> D*'ܚt@2p 4cj&M[:'C>(L!»W'p~tj\N\hF3ƍnjB֏?sAJ(踋د<&47lk+}_n=Ah %:K%WkNs$n6S($ս+5ۿDf?ajs@P'?榇~|bD&\vZ;p孿!ǽj(BƄHS%mI| O~?]9?:!KajmGWCK":"樴XbX›Zۯ)Ge S.QmNEElymUB%c?zЅN plzff0X@XpAج48Gt';ՏX݈ji?Z  2KY9 -\9%XM8i> Jn I6%d`U3[}!{|fle`%ӕ +(b-,.1K;֜ P("`|"jSADshMx%=쀬r̕.(vX)R z5mϲ U"_pUǮڜpAU `來fۮyeϛ`PKLK,{^hoYŎnŞH^jOyB#ƫm=Ҁi5p#kM 5𽰔wo,XԀ[[5PȬlj #ٱ=CBCp J^(bȂfJoB/뛗?@d4&jv lgn( 5jj_{O|/3?Q !JT.E3Eǭ0 W,p2uVfgw7TLJ/]:9@[%4pHbG^dn!n:Y{@ >Bz^ [x hdn[U~vP%>ѡa׆(Q;gH) &x&":P|mJ;H.qY 8ʼvG\ qt !n!l:MA,Qywy&=b } L&5h_x~qxBk&[m ceg)xBSf[C3g $S e)5^;+_MBL }펷ٝA(`r&9$%K4$OGnaXD'SHf4XDpW"l,RLTFPL $J!0|ΩhKAg n55עDdNK(--~tш}]CQͮ?NxIOظ' f M'蔏D!Sf 10Uxex8珁V0ٿG8-7ĽbVx&Ʌ=VZAp(|( JXwXBw;WwB5kyr>Wڤ7`cJ?]'>=;ض-7>,/2l:1}o^vi9gm3?ң6 ̗D@Nxq|₾iJ j^)AJ_ v;ݘf{i U}_endstream endobj 311 0 obj << /Filter /FlateDecode /Length 2673 >> stream xkܶ ~hzqE .v= DYz}ܕt>q73"<|Co՟`h|42Ԓu jժ`3"jᦿ!o7+D`\ӛy~~(ADE% 2s!qЀbVZkib@ju;Z twQ>γ(8g,ʞqnlNZ b<#Q0j0m˪abIj^1AqiA4 ۩zbct=X-[N܁m# c aM?:3M-mp/]6SeŁCeN5y nZRre?r=E;rGe3xWVՀSE|#D/ LRvOӧ{2R!m2bG BUF٢2\`irxٟlvBO JyR[1qP5 ;גz-F3+[(TV !\?XPB-|T7kD0\HIzuGƒeԬK"XGcW޿}n=&NOTqeFvԋGlYlJuVb),YMNիWo(GP^ech:ͺSA'hgiA(76A4rPddtY>EeRoWg OuúΞ;# #$YW`ZN+{6 ZWvC#Zd%PmNbUY,1=I飪{rI#geΒgZ&"K=urI$DɊH6:u$A" /Mn?2+6d\r L6S%8@g4S=65%sXwF$o%͘Lq.CDXD+~۫IYJ]n$8;bM;['he9f.. `H;y)"̤Z݅Yl_BeW19K15Es DWfͫ*q1dK(q呪C[y@jM5o]t" EI4'ي\'goe(x6 i$ua;qNK6,fY[١ofӍӋk0;5~g`i>ɮ7ʼnksi1qs ڶ_9ٞ)N8WuHw};$"8聬Sٴ+ja/ׯ]<{svjʛƆڧ+Jb ((dY_-)=Z̔W W6 (l$3TNMQðGXU~?u R6aM|W rfN)xO6T~*SgĶf有=~n~qRF<#Rp}Lc.w܁v̲{ȇ`6]Zal& ֏a7AhOTfVyMNvzm݁`[:o>C:^[oʛN}9V+G7ئ.!Z09̠W/Ҁ5]ˇA]E^SaOVRb馳7/V |b"^^bW (D g؏m <PvW,2a*S/xT7v>#^-_Ou6}D:e3z *Vxyϧ*scHLpV%3/MYȎcs!N@5ӄ^>)`Cp9ًkQ>m=s͊3X~ңHW2x: On+GshUs;«'HiXt2~+(IJ仃2=Q2hK@+<Q?Lk~J%tNbAI<'/ 6 4@Npf,ҕF &XLw{ j˵At*7`%^8x~IKb=DZ_4> stream xYKs6ϯ-vD_㛜XN%){%W6Dbf& )~hV'ok4~Ać?'݇$vFZ@Ґd$ "/IEqLJe i?}W|dA|Xj{I1Qb,&Gý/$?xYo?ϻ ?hYˠ>ӎ#r n@4j6 8D}wSߨZ\Fw=|; R /lz;:{[ s_a63Wr=%axyK ') jZu>ZԊ`=H]rVuE,HE{8 ܺ]k[gџ,(o-;{vM )E;oBRdiS+DL̑756,[.EmFKap^鯬-=7Sj@~-jQj6ւh9/\C'vZ3y r蛡'Q5{ɫ lIl> .pYPd1N C𴛻ɻ8|áIJ4,Q.5g7xޞG]| i~lx[N3l1OMqwnƋj-Į%MD u6Em}]XY=1Q2,mB2#Y*lOa=]cإNb,O<i꩐&Xʣ fʶ)C%'֑Gk/m'+N?vѣKRe${ I9' ifl8 !ȃײV.;~h@[92R+B (Ҕ[[fS2RSetEۦSVﯖ%K,h<+~i-+ HouheeP+΀"|?8}/UY48eE'>zw M'KZ&^\>lz;+;zwC6Tu!bDUºc6{6S8L7rcD0f0a-l1O K􁵥⹡:phʅAm4ȳʂh[n](%+!B}]t{^ ӁNhl804o[Tm)1 y]}^p|>QWA}+%ՓC7FxlڕV,VPhKҫʥ$$q𲬏Y @~W/3VP'C8^so ݫ&YFy1}䛳1<&dXYp Rxh&ʘ#0EF7</fW#.?8ebpx-^ҟ(E`8> ʤƴIT|:REf2Z[ GpNkb]hyN"/Z}Ct.-P:2ԝ/wA-ϮmhBey9xd+:qC\KS^=)*zA\LJ3~W& "f|7Al:GWG~/6Aٶ4Z8Z;Q7/^gS(=eN^{f|XD+6p%.dy?@֏N};^a^(c'U(&[2\8q4Aq|_?2>&vhX,H["նb>ʆ%h]#,.fe}bZכعd0apu > ԍܴ> r`^^=񩋴{n1o?:ģqi:&~aoaw +Gs̮D\u <_hY"TVOJWwiE mfF_we|w_7c)E9/w-0endstream endobj 313 0 obj << /Filter /FlateDecode /Length 1604 >> stream xXK6W Q-m6n99m1+Z>$z4 p^i ?I<^Eablpjd. ~& Jil|X,.*N+ZbAEE%s+NF*GKՆhRG÷hne>m'p4k.J_|A?7g.EQ/p;( 0M|ߏc}mK>_=w{⸠ "ח])R--z`(5E-~ew]OmqLxGYc` YbABE9H 8*,,ޗ; ąi:nsNZ!տmN4PFUn' w]ڶ`[5!kg ĂO$A}xxW?y9(8,jdLL`(#@ۙ8M\53-_54e BY7 TdÔm'B dŚ#QyD#{b5Y .Kl"In;GPRKf}**1 bD%>]B]-hX*w i-$sF(Fi ~<2hEU-\(u(w]uYNjv&etɚ&w݊2Gv fm˸sj붢w?'U%y.2r Y.HP6I,<z鵰 hm3_[Ɓ( }? ӅkG%E{50>v(A߽UC KP[])+in\`v˸[7h|7@k/w-&H먃νȿ#I2*RtI9м0yÝ$ %@0߰0 FP9zu#v"wv*!h3(!~$j]&@1ނv8R%;zjd:aM».#+1wcj4,[;.-5py:GZ&`*X@y%\ðl(/1ī\e4}Y 9Hf.a0m/}q7L0.t!a7 -etTBv\bߥ$k M2tZ+ekk Plw$5YⳀg;jq5ϝ(qa.,)jy#bPP˧;捞x]s䥁z.Ffmtv&jxu$. ~?ucDendstream endobj 314 0 obj << /Filter /FlateDecode /Length 3516 >> stream x˒6>_5ܜijVۙ! ;IgHlVvYhdp(gTE4Y"3NWy6G/>t\W7+rNN!_}'/ߟDK#JSQR)Oʲ,Ҩ9+~~mG9|G7'p|T<(ceiBNxN`ݬڐ9{XjFPˣ N KqsGlfVĽ!31лe7JQv1B'qV戚jόgX`]]t8^m[is>$&9/<᧻O}5v__&z3i ф$esMq@ӎxjGfaqj y9O3B"M8X5{NZ&L^d 62ƨ8Dz8zWCC0sҘd,/ylٯ MF^x瀵k-,C?So%?qQݓsd?nBl6Xa'5R޳t^1vre+=DQ6":TU;p- ^xm6r˄mڧf{)aZno͕RgJA08D`J[JoqRht`/~A!KEjKYGcI=31.IcRBH{݀5nD9%Xu% ׎qtWCdzS;8xhqh<$H (!IO*丳uFX4Q=6;097]a,:MI$6.:7)Y}P϶9fube_l@NJXmF{|@NY/7;y/%enR8)4oeƓRZZK(!ꖔЋia#<tٷ:B`A&s]n)2vk{:U\դCu[д\p 4s]Rt8k_r=6qa74 l`rI,kdtCːPէmJFeBSV5UWhoW_T^rBRxpp*H{ꭳšȩ]5Sٯ xɠui罊VZ0;ECшqW#w pB0⒌(/ ^s@b$8Z:ڂ%a]Q0BKbfB|Mi'`ГؼXРjEέTih:φt5賷|_02x1rH'e~6 s؟<櫺]뷯sM+2}YL=9*d:&GТRq8|vgoR5pAh];LfGA-a=F?wcQ >ey^Nwy_#i}5)U^|l} rǺ~0\23g*Ӌ5|/Mҋ_AL"8@-(g|tb(Ӗ>Tks#G2WUjv3'_R %P_?e7&`6O2^Ju"4Ǐ>B= +=NJ?^> stream xUKs0+dU##t:q'L-cMe p_0,&1=}?OA}7G1XnNB wdaLX[tcvNzu nPFCw ǟA68v]r ya\\%RX{FNB8˚Ϣ_ϋ}3QOXHO)orf'vy)VP} 1'!.~}ΝF^VI\@)JZ$^gę¼_۝(k-7p 3v\XTmPX+\sQ7b/=9=Aum)]m +v'ʾf:@YԮY/i)Jb]kȇnvѠP0HnW]Nb^\OyIFC-2> SME%1rll:qF¤Y<0~ܕ͂Ѳ=fF'yMݖp7UgJ q@endstream endobj 316 0 obj << /Filter /FlateDecode /Length 3350 >> stream x˒>_K* ߾m8㭬˩Ј ԒΎ>h$R?j@h4|㟪pxR$+-(Hd"@8 vOw%& &<߱Kvf>F d\_4@̪u_9PKpF`F4lI{`~qYxOw+ΒOU #O7\%ϻ*loL`΂yTKc #DѤ*M=c&olLȉcPSwf6-_UE=$,ǽ%о}ZGɮa;pm.˫:e`ʋyʮ(ώ,41ָ"yx#_WV%xu9tl*qnTޡn0I &D{ln͘:'i8GlL" zgMs?zUFrs7{`:?wϠi6Sko3e+a:yvdA6q;j{{x=r:Xv).`46Y9)˅{6AkVP~OI%>y+~JYަ38Ӽ(ufJ?_Φ&xatK9D (\@!R)Fv ;G33ӳc~Jj]v\Uƹ2v4jMP|``;TrS -մx#EA;)AV4 !HH+- k|oA/AstiZ:x..gO(g6GX̉j?jJ&:6;0}A\xR##![yL*S<HgKnWլ2Caa<q\a2^ȫh|)VT@5&AL>ϩ<2hf60qJ5=. |Tv`kEa^t4>BƘ<<qȑ]HCeyLX_GGC-nNOp6@"y:% G 0 ΎN JS9}瘜lIw~Sk͌K^%Xd|ƗƽٯUxQL4xj ӝ+ l})( X8DZÕe lܿ,"r…UI8{{\2ʬ^L(:\&O²YP\G*a˚)kƣt[t0 g0tm*L>(́p(o:ΧX XnG[rKFBe^aD4ٖ:nvޮbN:jGǔێb@|+Kpve7pE ((=8@A1[q*O97ĭ{ouZ{Z#  =htpQlXEu4`ͥ2"iT/3܏\dz YuF-*‡mFU$ /$Q)Bܦ!,b3*#_ .vQjrxfC`,Qn%UC=in$74n} !RQa0GUb׋w7 9j1PB0nw*Pk~ f3^-آgyqk-Ӯ+Si 4bue&e^Yík)BY]F,^,/E 5hu7vV_U0J[^xUU3vU1*v&J8&.2c2p:{[LEpfwW[pku>ka-9wFdg:;r`v`8C7$%26} iK\g4WHXX1ւ 8XlA7 CΊ4 HYv+QqSUa;miF$1`0D"r8ʪZIV\l<{y,IߥNҚhjW4Y~U(v^N@0tKv=ܚ}Zڃ88,`3#z:zE0Ucc.h%c4OsF/ÅL{P4493,} 40jۚШfc+(e Gk* }6O?b`ᩆm!-;Ft~"ᕘ;8WrMd gCׂ%` '7J,jb`aZmb>+QLTPiq/`&x܏EvG;`mVɣj0]Y<؍xA@oU͋3QdM B r~vwA on/Ptipvb Auc:]y:bd:RZUr?}S~4z"fA*HE6!\"\;$ xAwe8ϫ_}dpI-h/J0EM] `P ?b%{>R> stream x˒6-vAʇlJ6LU1C&_Iq7NYhD?Ax-D1'|Hĉv[AH~G^@W@]BVuY8^ʓΪhtbtC98>ƂG<,v ŮGi TOYyN! >dߓԗ2?c >ispsY-ґ)&)}sU2F8 dExGHEsNw,9Ww=t-sjA-}OQz#EtĦGJc I i>`s Oepm/^G|`bLvR |" ]#pj!z< j_l2v.{N_\v+췣-FJomZq c`$ x&S#2P蛗ngܤ7aBb,"!4xM[m렳ҮޥKAs3ف[i}ڂz ؍KKkC7I4@0 \w5#{rB&)u]Ԧ]螡B0>@33IYז1 NWN,= Xcvh2T ,n ~s/ C?X _D'@8,$ JJAVIb?M i߻#\Cj[nȁQI'DcAchv<_s? pwCYcʠFHJZ|~<%I|lUxQS5 `> 4O-8gU+OEČϩt~2FSuW3f"耎0C ^-WaP xAL¡zS+{Wq-FkvIs 1Ey<X1Co0An/5ߊV~v㜚+@=:ؐj+\ : @9Sw+,XP ~nT[x(Îc[@f=X>ãYV@eg<8PPNr$:5%f~xY0\,gÛ7 VuwY8a`irUsJ=P NN0olC'X!4(Ya- CF:`7.~^UbA\UVR<n3bYdk$Rx訳`M8"iM(;_*0%\3D":F61V*F1E ؚ%yR^IFw[+ʏ$c{_ /d5* }(,Sls#XNR~<2i(NKѨodwл/ I;m<;~"M"a?endstream endobj 318 0 obj << /Filter /FlateDecode /Length 2669 >> stream x]۸ݿoMK.E .p<m%q}R$P M0grԷUDBV?Eq"R$ *IqFČ3ҨU #E08?V*$[}5 4ѓfŸ.?$կϫ72y\AUUV )$Կ<Wm=y/ߞ'$Q0Q렵!t'YNg& VS EEpM;BgF[1M*v> `rQx3?e(*ٷ )|`5)B|(TQTE-^wr!/L`ubw q?VZk;tA}VTdP/Mpc]|׳=apRu" @hzlpnKlBݟD콞 ɡʞ.;(>(u'U1fPNBHH%9OVsGŁ!mbkgaI8ZVDUP>+RMcbZMy@v@>bv{{ZD.J`eqꦃ&ߖФZ e$KXpqq8 q͵# [LSCdW nܩB;BmGL93ݮ?oIoƭv'"9A9hy!8`m/ͧL>WroFbxnZ7ĵ'hOC` M7/|uMӝMs51i2P@_QFY!8dO{]JíeBYބP 6#*||Ty_ fzܻkU'ąI|pϨ Q{2/w-1 Pv3!Q;@1-6 ːvn_~6YYWNg ~-QX7.2}^1;.uTy%Q9A.P0j{qcb%^i ݮpLDchѵ' b۫jJo5劧t3N!u4+䭲 +0JSm@5`w.P ; )ᄗXeTaWmCg34Bǡ׹[;D1DF' ~C2B NcrLuhc2JHC;đL-$09wDUfG\{As'iyVY֡;]܍8`S' Xۈ<8 lGeu9aiqeYK zDU>ݹKc" `/Ve$֡~]77'wZf3^[ SpHaȲIX4*gvJSC/4 [-zM'+TA#ʢ(]ۗQcmZml7uNz `9֘W lLu֣p{A4`\u\!ӝzwQ5qc{ԐzXFi̼3>+[jGhqQw*pc8Q܍eU̘X*aGc敥z'{JCx 䏧A && GI_9l2wMgdm6cN=BĽ6`?_ߋnAB3cF9k5Ŕ޷\=!t=+B&AQ74"}wO,&q_a!t鹦؅3 ѭC[8)l?;qdߖUtf)j nRdAa m6TPYR36_eK{{ア{=, 7&G󒸺*1Cfݷ"^^hfŌuB㗨xL+IPU3C Z%HoACdT8 ;(Zf$Љ^=&gs.{I=OժûVyJ@;7xD۹@[sF>uCD9?nd.p'{ԧmZ/'ǯ]=D봺AM5UET}; eH=/g=g}\bendstream endobj 319 0 obj << /Filter /FlateDecode /Length 1402 >> stream xXݏ4߿\;N/ !PxoC󱍳=qijd)/3c{7va w'כNI0v(&\ "5qtD* HĞ4F~ؼyapi. #f}vAȃ0deK:$l!|%n{`02Xfrv%?w`qt~>$ۈQCj mM^If7(krL>i,a;O۵[-#A mQ8mӗ=#ɥ „x' ɔ`ypȨvӉ=(FD]K7zv4|D _١ 䴼omy)* yŢ¢#]"ܸ##h 8ySU!>8Ԩ{JDVYjm']Fon6?{Y].ͥ<̀TG 1A1{]ۈ_7y;&yY֨B`1葌26ӧl kG:C\3k_FZߎTѦ `-zѰ+0٤PebQN W6;u^,ڒ3 C#ڕxHGDkPV98FS s PG^;T >Z*t,lNdЭ܋'*T3GHNLHc0Ăbv8_xbkp=[GjBzfReQgtCo>f,J*zA[fƼࣜ5?Wa&ؿ}jt\L# ҖJn)׺hYBnk{GMq.IRYDЛZģ7}Ks {K[?Ξ q\W!Q\OSAdVb?vP-q]._OF(t,*aV4uAuZ>/% w4tԮ;h]zöZpM n5ZȈzN귆JEځB o<$eYYU{HSJt3iQ3<4Ӿ3Yמu77D!ρ-N1`.-Ns]QmmBǟ2B(>!zSO̓<ӝxtFO'=i\LmDžW%hg_'sqN}$L(7 +-OJd+l7c ;g)eѕ} 5$-f;+r$}~fEc`ˇAchsxo|꽍Nb2髺=/m'WGRpvq%_MBvC b`cJo"ZBL-Ƣc5\qM!*bS_nMXR_WL_~tM՞y!Z믫EPfG?qH_aYEU'Ev֣qMfPy>rq&ti$ԥ?75@֖Y6"Y", mĪdY<ұteKL~ՕGl 3G<(/1}^81L-TՕR0OŵԜ޴tIFyQiv7m U.ib?wo*yrƴn16)?AELkd%p;j|w,M7!}kfp*k(78&cC|\>@TFId;m0k+\BbNm?NR4WSowaVsn:@H@c󬿁EWƟ+KrF>KK܎4ifIEY3_FWe^f x/Uf4QXA݈(v+>K.DŭK-tt{#9z+4\fATX$6^G A(gm2J/V Q ,mT&adUYAx^iikaD7{# - D'ɩ-oC} !>?!uozK^Kaۑ!CoɊ^`8.8Ί>Vf4} gel'LJA$t~CFۊ4ϗmX[DZWyЫg#l:rA9xjclBGy2367t|YCOU~!fR 6Q| S>+#<}cP$brCSz(0$ N/{'J,$% ơG" ]8ycTz_w,?ªȪx-?C8m"Cg$ݗB5  GPGq7kun'AM7IwYUI88š s PZᝎ/WG)hu T3M@v jz6llvK-Б{aAOKpF42ZK6`R9˻Ϣx~k~KH]B t?`'6C55k$XĠ-m~g51endstream endobj 321 0 obj << /Filter /FlateDecode /Length 3952 >> stream xkܶ `Yi.nȇ8tZb#QݦMm7pf8p!}.~% 9 L7Y%)pb1 ?#t&\o9997o'?޼xQhFhiSӗlh_ ~ n|D8J$r)ˉIGdݵc-jm ?# T򨟫rNK15tuch!&|ucy(^&QG~`}0060+V^*=$-0#Wf[O]0jg>Mzlx'iݳJqH$KD[g"#Yf첶Es֩3vZti`wZϬѰK76CAGf]͡hYI|a I׫Dı]UaUk[:Zߋ)Q<_#s=E* cU'}}ম$&&X}()7 U-"DYLj]I,E8_һ@4Wln\ĵD ?D|֛'q~88 ''ޡU{aʊmE5(358Mp3j-u=6 hÄcDZ,!>v ʪG!ξ^@a6$ 3. o wE*w,74Ǻq7gݷ `}F"47xY:p {vNfkvn:v24Ɍ}sGej$]Mq#|@*(ܜh.~ A98lؚ-WHB9ΣRgA"LaxӔZq! x_L'El5,polb02~@?*a}9Wq SIQBbֽ(vs"_e=bO kٓD=?!,iLu+:|=.l^Hlree]:0_ RUC&@$zϧaBv@7Q brF1@, '1ya6OnF)~ kxSݛj"$"Vq0,DJ$ژ0T/S&f@ :0r 9((+xJbqK>#75CZY5 ys,TsT,^^ ѼUe1dRiP'0Ӆn6|QO N哆)mO2[OtD8"]}qhyf<,aW:E,h8 \_:xmܳIukya›qj[:{> j4bZ|kĠfc" T3j m L'W,d" }m;`fC|X\(!gtA-׶[!̈́[!,~MJE:fDӆeUR`N\/v11maMDlzPPJ3*y$1%i(bqа%c`ZƘiF)p@CglS:ߡS@`ΥD=EEdzw\z2Q䄆QYE J( ȗ(8Е53aeJ&;Ud3 cӽ[ yK gf7NC5Ʀ7N&}**0\x+YL\zXOf]uBto"#s2rOVXV[ay6O1\2Kڥ?Et((-3. Z!vԕL]ȌR}/?(uS}=Q]=(M#j`FΫ$\9 N~&{h1k1q-KTZ\E* `kuv w-jtIcJ ] m 3u`A8Ԍ9h1vʒQeK~ v@WI\^qKY5m( (HB؂G:7oe͢,1]'אx^UmE/y8WS+J wM\W Lα^eڭqY+HO(G*H2 #>!Y|'7. TC*@lJIG']:a:WO`( 0 >e 1 E;伶«)V?P(L eݠK /8aGلqq缹eHKXT֚ GQBOOԉ]nuRK@ r8)❉! U(&mք[|a0a^? ˥^ C=|g۴cSpJJx*DdV<-2yA?|IOxc]Z4~4y7 ɭvm ]!P2kLI!>D(iNblĽy3GϹeQOK 1.09=8 _D:$aLҴܟ} 7fe0J{rG9EO}79[s%D(*勑Go3E*Onʟƺw߂Aʣ/ru WE?1BM%;ܘ:Uf`KҴgVr:XUzW<L!MͿendstream endobj 322 0 obj << /Filter /FlateDecode /Length 5049 >> stream x\Y6~_ovodu>Dmz퇩 SԴNx~Q(AA*}v>{ҜW* v)ۅ .<o9>>4/'<<|p{T~rڗO?}w~]OVE,e^r$?^kyxD៻|]€?t'%nq?q)ˠۖ*@ m7|m|}n!xݜU6Ezg~a,Θ[?c6od^+}C>m# DilbG&AS_573/y˂9[ 'lUW7ȫT%8Ys5 ޷Nå5mT?^mg:}Gdc鰛[yaS=BH^ `ue))bHڷH,Ƕʢ)( ^>&Mp~ q&h##(;-3eo`܆შ^ݮ;tk%A z'ZP: mA7j`98to#D=?TΫjr}៝'+) 8e\bP7=e!آ8r"3=[̑=͵ƤZZ4Jy'N&"z=ʦBӱMJnIBRG>p"GhP{O@T-3ѽy+APSV9@_0x,kMGla>ɦKCUԴ`z 4uCZK_;bM grbIo, ]2b L9Gn:RJ]= Nԭ6DH+!ayHMR$2ٙ"x^`X2aQ]%  (h"J_MAb&~Rb*wM ~ 'xRs/i P~|M0K/JUԛ4;$&= fd9Z/S4Yc]g VN ʌaaOMvtŰ!H$pY\Π,5T ܖG.P}5Òzv<Ϥ@ZxQ&S F/ibzM5Lb/0E^O>1T-FLX/K Sb6c\ꢭE}C}94 #0`,6jʚ 7nt)8C |g[mc6JxiX-0zߊd~L`x,e'mt(ˌ#$;A<*tBg$QU=$Oeeha|"EqeSK-N \vu'it Z.цDt2vdm& g6!̘ &V #,Mg;VӨ 2^u׽>=emwJ[WЩ!~cщJ+q qˇb<!lA#o `՜HȯwnZa\4)?`p!Vko xc ER%G ]4,׍uyI*uG[m{C5VJ <'yB(η8XX4P@n0͸# z2 ٴu~9@Me4"^ִ8S@av}p 7y7wVm+h HLkAwvg߿ylF4nl MQ׮X_|[#< ЎP+Oz̥n#diJjcmߗ*[jC;MTfa)c P5&hMj=SҤ' @n̊uq,cnZ]!CsT;Bn%D]z1b{"IHJ? [l>gJ)CGu ÅP9˳̏j1$}&s+,X`ΐ/)^AcoD5uCZ΅aς oW}yom,m\ak@oY@7ƘU68OmG$:WqL,AwD:Gi %Dk7.1Ȍ{4?"y q Kl^N ҆2l}$LjwY`@CmOcU.\&+,7,&YdJD8ڂs8K.0דB(DWSm d!&j0^7sݍ1֑%r"y/lӂ:lFG*Z˝v9e^x:K 2n}mW]ZydI0vneEyZ4E5jS5pS*Fǜh:dU49BOv)ceSGnSIe3:nDSom.<ێfȋPfv!^k. mkh{> T! w1ÐyBmB9R$tXAuNyCBݜ%cn0XmiUv΄*ڗu rw,O>Lc<}o({I3/ }vLVXmż ,Mp elc/(V/"@?H,[jɘDAuIU~lN_bR CrCP{`ʹ2 HΝ+FwYyuq E1ڎm,0N0:AP]q8- TOԎ%tuImkMYѐ/D ~1V\d:Ŀ:mYw^gޡDG$ M]ݯWeAK% beBL1k[)/DA01`Z+HAO-gfpjϓ!{[ՏVE]6GZ[B8;^im,ZeXk '$% ܻhkA;~gDԨ1 7] -*ڙR`; q}$iq:xڎ03b!D mb&s:/]ׅN])A~_l-nCLE(4`ӳߞyV) 0(/īfڬsN*kT{`YLe#u 3VRƠ;~-A]%n;MH$/wcjFd.*OkU)>;R~а&G@Aԉ^ߦ33N҄B@7l+fe+z~,GPvmx660;Cv2i3ڵz*mzSUU$R> Ad( CU. t^;^bP{Ԇh0*M MX2U'ߩ-`hΔ! 7$}W H4#09QE^;fـ-0e\ETZ*PjpP}{['ê~b?hYszHD*+U{[!!}tqji'8F9cr"{1%(@JT(+H@YgYF7'E03eSdNr)Z\;&B4>띲Ρ)Ԭ"%VĢ^iEmJ{[l52W&#ϮPljRj⇾F1wkVq0|ǹ $}xsSta"Tg}[ $|Ԧ!)ی/d!+7bra{}ĝ* PCKœ떓K}, ;+:S-/ h=8> stream x[Y6~_$UcE&zks؞-ĞF-u~A$>dm( 1B//ԏtxG^+ͼ0;yD^bDd(quwϿ@aPrްUIxOwyUꅁpp&2? D^Q(:q}?_}XF:_1_I,a`l[4A?o#px/6~78~96ھݙ`_uP~}.I 72Pcy?F4u.d8yZATE;ݪ'QtMȞ3W_ 0 8_JO"?q|ׯC`jm!,(|[߻gr'FY [1(@( Eh,>F@C˼7hQ 9 h jlpnȶ5y>ڊUw]i@8R<زA dW#QFP(M04']ttHHep>/\*pu:h#zXF]痣f5ѨF_U1` Vwи!"X{,A: -Xz `+kA2-cMn{A@JG38N3zt7V,VT,"5A'RulHMcԤ- Lpm%5,njP4;JT4W;+e2,'zhrXְSvT9LM_z/ cQ" S?O TT fJs?tcH69Xtup:VC,6閜JvV'P9m-IrUR4PK\axhdR D0b3:Y bVp%H`dJϢѼɽ g}iYj\.,s艤`_ J=0BS%YъA# BMKv6*toxbcb[IJå(V`=[dG"%JޕBB))4F6÷Le $M6B3Gɺ!h$q_w~ګv!A<Z/jv疩Fnk|@zhE%3 })2bN\(wui7$$~$TAi~D;jէG园rPkM>\A oI qa-ڰf%e[F~>=BVݭoa4q5hqI;rlN` 9s?LkY8v1rXk jw^Nh÷+YQy<agKfw ػt#80+:=Ai~?ò uюLu\$"/v*'̱0 8M$}H@vDi!THqѺ_njBtk ѴGUHx%!&ƅZW]h 8GvigڑC\͂{h2OUW(AM4-ƒ5mG0>pev= NsB0-*xOZ;*2kIcT519P,(^U7iP'8j3RsQO-q4B& xKPpN}UM;tbi6UۘvWyt0Ddi*F j,N6bx~#?.UUv۪ikK6 "Zd{Z/__k9F;%A#Ϸ =01 ]9/D/ V$uB-3% Q9*XU" HwWfer#˨)8pNp6"A#Sr+icQvrwQ\5WcaZ@?<œ>ҏ3;`PÑ% =-Y#1n>;#ЎrlyGA ~h8+fny(sH%Vd[/A.n5wt V 6y#ԍ-8π>|![;2ǩoEܩ}S =2A/dmQVC3ifu4A;YS}:]xf]访Ke(2뜄+}L4 ark2 ];.@]\DciDB]t&' #~DQMOÌi6YoyG`(d'#=LuKÊ޾@Eg/H;-J=s[ⓓ6ay $AC£6(ȰOjWFCsԌ0wJݎE^o͓ y&<6s/8L0Xvuǵz%ks2fh{_%̜ܶKO/?d0#cYaڼ[/^o= :kj0оDWLn`e"ʢ.j['$8/􃟭(0aVNrfUs0E˰dz)?MfGQ uоw0)V&"$M8wH%_Iԝ8$o`uztOǰ>%7wendstream endobj 324 0 obj << /Filter /FlateDecode /Length 2662 >> stream xZY6~_3@xž$gt-vk$-x7 0HbUo;'t}{'JԹkACkjKIv5 5c5CaCPF<ؕd`Eƺ}S=cELv>ޝyz?0ԂJAECGu */<5@c[h5WEY5衩~i^ph^R n{\nzg!_=u),]PPve(W$f+b^7Cbuu@4Ŀw<;+ei&$w#+4!(Rkw2*"T B3{: OAKr3rg#M(q_L2ڃ K-% 33U {I%[\Kq櫵&H+5л )imֿ=K퍠.)k>ԟ;xC14myа4u5>=B '"Y5|e%@<Wyaw̱5\# 2G٢nJbyf\Q>5qn&g*YGYeI/:Gp*Cbk]VoLx8@ bK< ckA#= YT"Y˩F:DkI'F*y\5'>)wT5ImENFO)+9ȏYƽ iIGTLHf2i_d~L8XhBTgݐbOҗd2Z\D yof][-̷ۆW͓,Bȳ@;y-ؖ ȐyAE/*M >]y^L\jWOVמTS&^ڊyTIN*ef%Z5M#?$2,b"B &z{^+ ɾPW,~ XO3T#/:of{^_GI|k]RqMR:`~%pϊ=7 4r%qc~W%O]^lPgY 7[!QȜhRQSL[65SHe*w GA]lS@s?L-}z3b7 k!f!F!&!迲nf4#?l@,*>S-a5Wplp3`d zdwpdE]C,ga#M4kB,H-J9H"OZkZ^yצ5R |OpA5_ya=C[*rJ,6p yX3gl`t*9lAr%+;}&CYP:4=h--XP#ɳj6b[rJ,13DOktwrp{n?AeI< smc/rMݲ.3P =4Vp7+'ngO a5_ʏ/^ؗ# EbwQ3@\Վ%|}endstream endobj 325 0 obj << /Filter /FlateDecode /Length 3013 >> stream xْܶ}ova&&QʩT,J^0cקnn 1g7W_kE>}.!q}8I,_tG#eO y"=™!H8=޼]w.γ(< OWav/NlqJ5&bas&€y&HS4}ye2Ycݵh_ @ XErz#̰l i|KAT8y-^4ҝM/Uc7LviҁF<[~Kˈ*Ds89Mp+Tb34+h rƅ"|_sOfA^Kf˂u?4j\XnV,r$I/"7eCWqFcRY]6_n%V T*iNhM _=fo"ۈ>5–9ܙd; `+'ܙ>1̑G&nkuau4[jjbΒt?`6r`{$;(f&{!lՈF:$zͰShI-([VՕ0W?dk6Cw+9;5.`xY{\M| '^wiǾ>R` L} 墕V㇀&1~5=[$u#}[K$ÌodF7r90'Qb4 an?gj~ QَI`yn0Jdu-ሄiZyfN<2AzSz^Z3=d䉗2OVSoЅ԰ZR#8auG!|0TDirQO=X0l.Y9ȁR ?.r nvc9&E6DV':6bYi0+z{rxK1<(nmFL81F%ԭܓtGxh݂ǐ1U~ (e LGAaPn5O΄فPJ30:umuch5v&Tq4<κz 8\BHVi+J/{4g&rzDTRr]$U*eGp_endstream endobj 326 0 obj << /Filter /FlateDecode /Length 2872 >> stream xْܶ}oV4^ت*Rr!v6_nf'k=@F(1Rp"rr҄gdO:#- ܭ妻7?ք $y_Ο>:#Go"'I.aO~}T]M6?IFq3i&_$g?d)=%ﱚ08SkhAcA4<@PQ$YLp?d /"YA8M B O yN#y={S5yݴ.#V$(c06}G'/A @ןu54qj)ǀv/xX~UXPL ymUMa`¥f%JW(Hay5%lˢz5xjBg%ORljTvw{_\f  %F֛^[=u쟗Aj[=3%h C'``d%'9hD"YS%ԕ6ܿ"5y1ʙ(V>gp FսN|8{([HD~.Ĥ=WX mk;{Lrhm668%3\-orTjeh*Bc<>><Ќ^ tEjPM@;hcfIV& +JyaS+h"9c2л | neu3Nc3TpzR1Jf0A-,jimY^]~zvKܕojq3$e$"s/_2! *M\fbr<[e𒅀fγ㌰u'+{Oh '0)dDS-ܬrb%ش.׵H(2b6)5\yؖ^fBzMfaV_#\~ $ܙuA9{-wULA`ľ}a `'it}g`yZ7 kVI%~HT?odx <3C,3UI+=o]bU"LDhhL?غk̅C7AΝ#*o0u4 ìP6#uSFvx=S`&X\|8W>1RID(hҏ{MmCf4c.[>j@2,"(Op/כ'=$عw>i:!-aYv9IɸhSMqrO>U7tdCc"VCҳ 9 cOLTfXh;}d ]A57r,ٟW~{?@|Ojazrԕf_!D}ꇏGӈ[ j%/yQ|l/)`D1 UӎHH! +>.ؾ7^pm>VwCL~u,}:<",AB+, YatTG0=/p {_.=UVݑFS˳xR}A!S'D+r4DN7WX2G'C^R㨦~@:YE27pǣbySXONL D 1Wy-Av߽F`! o+ LFsaL!NBq(Rpk^"mUUU{Ttr%.6^|5ڄd^ ~5=^|n55L:z,%_ІB\U0}>!?UY!5фǝ "a#5.gwd &]3dӬ HA/ qU*D;ТbV>]κߍqןSH,Bsqgiv \Gե0,}'{ITi60iEvbIq(., 9=[S. v,.$&Έendstream endobj 327 0 obj << /Filter /FlateDecode /Length 3384 >> stream xZKܸ ϯ-㪱VϖgSNj׵a֎mQ=ɯHR|.7>$r}* HtG|YA+q > wQϻ~&]tݝiGo|]Gow?q<XEyY<(4$xj)bnM'|42'B/ ,ZxkL[uj ߛx?S!8aIzsdVQ&Ip ASY|ڹ ~l;p, "d9vIo`qpv$eݯWs>90ݫjN{:ƭ,'.irC|rGGGC q==ARsi =4,jF0$9=8,PtET ~~㘏'NsG@swY$Wo82\#!Yy"{s=0JEݕLwo (C2$ 5 ^hĀN'mI*9!sObK1(P1zgFdk՗PHjBNJ{ fw t-G9ȉD@@ێNAR-Z*N9m~ļ-%Bm{PJ*_NOr*t[X/1Mk6B*5)w麓`ZeM;Geu̲0\~l$p'0g0ZGJ2uB7ܞ1\ !A7##eC;臍Jkј=c(az 7']qMj15Ȣ}s$gIvǼp`>Mxb*m*Jt!8 sh.#ږ\gDg3~viBDiWg۵3I(̋2*E]GQT#z_Dp~r|}`&XGԸ\kdZ09[%&⎗l.,yoVTSlnI3z:ֺą.MUo-.$01aҍ4O*CCt؀{~!-ʰ(wUYl?Ӎ/ŋ%6ɇÆs|`ދW2Rq#.Q4 2ݶz3j2'mޏ=tF=zEh4hLElޒ#ӍƫDGxFoIP~SUOO 0I8MLJWs? 鮵ѝ:tmm󛕦( t5QURts^ƸJn#İnD:^"&A 15]HЭN~Ax^ T i]AepH4(өW)ίZ:CZsY6io"mR+ZhO4[LZYfB>nNɚ,%ꓬx$:fylTH|)]+YIQC9c$)z] {\r{.yDH~e;&(cås\ QD-Jd!-"N"W+/t葼fH3$ј\h=4^oɛ>*z[-u$_ 8=)l]1}ϖ5ΣR-E3B%ݭo ҖylyD3!> /W [ 1 3 1 ] /Info 5 0 R /Root 3 0 R /Size 329 /ID [<9b1c69409fc9a5f50e44b9588e3e60f8><656cd449c09730ce3da53fca5f7d9f66>] >> stream x?Agf?Zmz*qwD UA\Ah7PI.`0/_޼xJ()K +'J2͌ 3qd0mf(3+dFA}0;KH=;z+[rG]c,uM(kLʙʖs{읁,hy瞞 RV- ~w\CN% endstream endobj startxref 137741 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/split-exp-05.Pdf0000644000064100006410000000136313247541377016377 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TSM,.2 0endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 6 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000398 00000 n trailer << /Root 1 0 R /Size 6 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 497 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/good9.out0000644000064100006410000000020613247541377015342 0ustar ejbejb/QTest is direct and has type string (6) /QTest is a string with value Hola! unparse: (Hola!) unparseResolved: (Hola!) test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.7-ogen.c-check0000644000064100006410000000005013247541377022310 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/obj0-check.out0000644000064100006410000000036213247541377016231 0ustar ejbejbWARNING: obj0.pdf: file is damaged WARNING: obj0.pdf (object 1 0, offset 77): expected n n obj WARNING: obj0.pdf: Attempting to reconstruct cross-reference table checking obj0.pdf PDF Version: 1.3 File is not encrypted File is not linearized qpdf-8.0.2/qpdf/qtest/qpdf/good2.out0000644000064100006410000000017113247541377015334 0ustar ejbejb/QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/lin3.out0000644000064100006410000002116113247541377015171 0ustar ejbejbWARNING: end of first page section (/E) mismatch: /E = 3978; computed = 3785..3786 WARNING: page 1: shared object 107: in computed list but not hint table WARNING: page 1: shared object 109: in computed list but not hint table WARNING: page 2: shared object 107: in computed list but not hint table WARNING: page 2: shared object 109: in computed list but not hint table WARNING: page 3: shared object 107: in computed list but not hint table WARNING: page 3: shared object 109: in computed list but not hint table WARNING: page 4: shared object 107: in computed list but not hint table WARNING: page 4: shared object 109: in computed list but not hint table WARNING: page 5: shared object 107: in computed list but not hint table WARNING: page 5: shared object 109: in computed list but not hint table WARNING: page 6: shared object 107: in computed list but not hint table WARNING: page 6: shared object 109: in computed list but not hint table WARNING: page 7: shared object 107: in computed list but not hint table WARNING: page 7: shared object 109: in computed list but not hint table WARNING: page 8: shared object 107: in computed list but not hint table WARNING: page 8: shared object 109: in computed list but not hint table WARNING: page 9: shared object 107: in computed list but not hint table WARNING: page 9: shared object 109: in computed list but not hint table WARNING: page 10: shared object 107: in computed list but not hint table WARNING: page 10: shared object 109: in computed list but not hint table WARNING: page 11: shared object 107: in computed list but not hint table WARNING: page 11: shared object 109: in computed list but not hint table WARNING: page 12: shared object 107: in computed list but not hint table WARNING: page 12: shared object 109: in computed list but not hint table WARNING: page 13: shared object 107: in computed list but not hint table WARNING: page 13: shared object 109: in computed list but not hint table WARNING: page 14: shared object 107: in computed list but not hint table WARNING: page 14: shared object 109: in computed list but not hint table WARNING: page 15: shared object 107: in computed list but not hint table WARNING: page 15: shared object 109: in computed list but not hint table WARNING: page 16: shared object 107: in computed list but not hint table WARNING: page 16: shared object 109: in computed list but not hint table WARNING: page 17: shared object 107: in computed list but not hint table WARNING: page 17: shared object 109: in computed list but not hint table WARNING: page 18: shared object 107: in computed list but not hint table WARNING: page 18: shared object 109: in computed list but not hint table WARNING: page 19: shared object 107: in computed list but not hint table WARNING: page 19: shared object 109: in computed list but not hint table WARNING: page 20: shared object 107: in computed list but not hint table WARNING: page 20: shared object 109: in computed list but not hint table WARNING: page 21: shared object 107: in computed list but not hint table WARNING: page 21: shared object 109: in computed list but not hint table WARNING: page 22: shared object 107: in computed list but not hint table WARNING: page 22: shared object 109: in computed list but not hint table WARNING: page 23: shared object 107: in computed list but not hint table WARNING: page 23: shared object 109: in computed list but not hint table WARNING: page 24: shared object 107: in computed list but not hint table WARNING: page 24: shared object 109: in computed list but not hint table WARNING: page 25: shared object 107: in computed list but not hint table WARNING: page 25: shared object 109: in computed list but not hint table WARNING: page 26: shared object 107: in computed list but not hint table WARNING: page 26: shared object 109: in computed list but not hint table WARNING: page 27: shared object 107: in computed list but not hint table WARNING: page 27: shared object 109: in computed list but not hint table WARNING: page 28: shared object 107: in computed list but not hint table WARNING: page 28: shared object 109: in computed list but not hint table WARNING: page 29: shared object 107: in computed list but not hint table WARNING: page 29: shared object 109: in computed list but not hint table WARNING: incorrect offset in outlines table: hint table = 1627; computed = 1547 WARNING: incorrect length in outlines table: hint table = 1988; computed = 1936 lin3.pdf: linearization data: file_size: 16937 first_page_object: 93 first_page_end: 3978 npages: 30 xref_zero_offset: 14999 first_page: 0 H_offset: 1142 H_length: 210 Page Offsets Hint Table min_nobjects: 3 first_page_offset: 1352 nbits_delta_nobjects: 5 min_page_length: 339 nbits_delta_page_length: 12 min_content_offset: 0 nbits_delta_content_offset: 0 min_content_length: 0 nbits_delta_content_length: 12 nbits_nshared_objects: 0 nbits_shared_identifier: 5 nbits_shared_numerator: 0 shared_denominator: 8 Page 0: nobjects: 17 length: 2434 content_offset: 0 content_length: 2095 nshared_objects: 0 Page 1: nobjects: 3 length: 339 content_offset: 0 content_length: 0 nshared_objects: 0 Page 2: nobjects: 3 length: 339 content_offset: 0 content_length: 0 nshared_objects: 0 Page 3: nobjects: 3 length: 339 content_offset: 0 content_length: 0 nshared_objects: 0 Page 4: nobjects: 3 length: 344 content_offset: 0 content_length: 5 nshared_objects: 0 Page 5: nobjects: 3 length: 344 content_offset: 0 content_length: 5 nshared_objects: 0 Page 6: nobjects: 3 length: 344 content_offset: 0 content_length: 5 nshared_objects: 0 Page 7: nobjects: 3 length: 344 content_offset: 0 content_length: 5 nshared_objects: 0 Page 8: nobjects: 3 length: 344 content_offset: 0 content_length: 5 nshared_objects: 0 Page 9: nobjects: 3 length: 344 content_offset: 0 content_length: 5 nshared_objects: 0 Page 10: nobjects: 3 length: 345 content_offset: 0 content_length: 6 nshared_objects: 0 Page 11: nobjects: 3 length: 345 content_offset: 0 content_length: 6 nshared_objects: 0 Page 12: nobjects: 3 length: 345 content_offset: 0 content_length: 6 nshared_objects: 0 Page 13: nobjects: 3 length: 345 content_offset: 0 content_length: 6 nshared_objects: 0 Page 14: nobjects: 3 length: 345 content_offset: 0 content_length: 6 nshared_objects: 0 Page 15: nobjects: 3 length: 345 content_offset: 0 content_length: 6 nshared_objects: 0 Page 16: nobjects: 3 length: 345 content_offset: 0 content_length: 6 nshared_objects: 0 Page 17: nobjects: 3 length: 345 content_offset: 0 content_length: 6 nshared_objects: 0 Page 18: nobjects: 3 length: 345 content_offset: 0 content_length: 6 nshared_objects: 0 Page 19: nobjects: 3 length: 345 content_offset: 0 content_length: 6 nshared_objects: 0 Page 20: nobjects: 3 length: 345 content_offset: 0 content_length: 6 nshared_objects: 0 Page 21: nobjects: 3 length: 345 content_offset: 0 content_length: 6 nshared_objects: 0 Page 22: nobjects: 3 length: 345 content_offset: 0 content_length: 6 nshared_objects: 0 Page 23: nobjects: 3 length: 345 content_offset: 0 content_length: 6 nshared_objects: 0 Page 24: nobjects: 3 length: 344 content_offset: 0 content_length: 5 nshared_objects: 0 Page 25: nobjects: 3 length: 345 content_offset: 0 content_length: 6 nshared_objects: 0 Page 26: nobjects: 3 length: 345 content_offset: 0 content_length: 6 nshared_objects: 0 Page 27: nobjects: 3 length: 345 content_offset: 0 content_length: 6 nshared_objects: 0 Page 28: nobjects: 3 length: 345 content_offset: 0 content_length: 6 nshared_objects: 0 Page 29: nobjects: 3 length: 345 content_offset: 0 content_length: 6 nshared_objects: 0 Shared Objects Hint Table first_shared_obj: 0 first_shared_offset: 16 nshared_first_page: 17 nshared_total: 17 nbits_nobjects: 0 min_group_length: 21 nbits_delta_group_length: 8 Shared Object 0: group length: 195 Shared Object 1: group length: 80 Shared Object 2: group length: 189 Shared Object 3: group length: 141 Shared Object 4: group length: 167 Shared Object 5: group length: 174 Shared Object 6: group length: 163 Shared Object 7: group length: 160 Shared Object 8: group length: 183 Shared Object 9: group length: 202 Shared Object 10: group length: 149 Shared Object 11: group length: 164 Shared Object 12: group length: 164 Shared Object 13: group length: 132 Shared Object 14: group length: 116 Shared Object 15: group length: 21 Shared Object 16: group length: 34 Outlines Hint Table first_object: 94 first_object_offset: 1627 nobjects: 12 group_length: 1988 qpdf-8.0.2/qpdf/qtest/qpdf/add-contents.pdf0000644000064100006410000000175313247541377016656 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents [ 4 0 R 5 0 R 6 0 R ] /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 7 0 R >> /ProcSet 8 0 R >> /Type /Page >> endobj 4 0 obj << /Length 37 >> stream BT /F1 12 Tf 72 620 Td (Baked) Tj ET endstream endobj 5 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 6 0 obj << /Length 38 >> stream BT /F1 18 Tf 72 520 Td (Mashed) Tj ET endstream endobj 7 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 8 0 obj [ /PDF /Text ] endobj xref 0 9 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000282 00000 n 0000000368 00000 n 0000000461 00000 n 0000000548 00000 n 0000000655 00000 n trailer << /Root 1 0 R /Size 9 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 685 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad3.out0000644000064100006410000000004613247541377015134 0ustar ejbejbbad3.pdf (offset 542): xref not found qpdf-8.0.2/qpdf/qtest/qpdf/c-r6.out0000644000064100006410000000107213247541377015072 0ustar ejbejbchecking a.pdf PDF Version: 1.7 extension level 8 R = 6 P = -2052 User password = user4 extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: not allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed stream encryption method: AESv3 string encryption method: AESv3 file encryption method: AESv3 File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/bad5.pdf0000644000064100006410000000135513247541377015104 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 000x000063 00000 n 0000000128 00000 n 0000000300 00000 n 0000000389 00000 n 0000000424 00000 n trailer << /Size 7 /Root 1 0 R >> startxref 542 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/good12.out0000644000064100006410000000077213247541377015424 0ustar ejbejb/QTest is indirect and has type stream (10) /QTest is a stream. Dictionary: << /Filter /FlateDecode /Length 123 >> Raw stream data: x%11 b;t4| wXID8G>rQu O E:IWPlII)rp4~;As/҅jcszT.?u<*6 Uncompressed stream data: This stream is not very interesting, but it is long enough that compressing shrinks it somewhat. Or maybe not. But it doesn't really matter that much. End of stream data unparse: 7 0 R unparseResolved: 7 0 R test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/copied-encryption.out0000644000064100006410000000061113247541377017754 0ustar ejbejbR = 4 P = -20 User password = user extract for accessibility: allowed extract for any purpose: not allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed stream encryption method: AESv2 string encryption method: AESv2 file encryption method: AESv2 qpdf-8.0.2/qpdf/qtest/qpdf/show-page-1.out0000644000064100006410000000023213247541377016350 0ustar ejbejb<< /Contents 7 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /ProcSet [ /PDF /ImageC ] /XObject << /Im1 8 0 R /Im2 9 0 R >> >> /Type /Page >> qpdf-8.0.2/qpdf/qtest/qpdf/08_split-exp.zdf0000644000064100006410000000136313247541377016536 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼T M,.M 3endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 6 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000398 00000 n trailer << /Root 1 0 R /Size 6 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 497 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/good17-not-qdf.pdf0000644000064100006410000002324513247541377016741 0ustar ejbejb%PDF-1.5 % 1 0 obj << /Outlines 3 0 R /PageLabels 16 0 R /PageMode /UseOutlines /Pages 17 0 R /Type /Catalog >> endobj 2 0 obj << /Type /ObjStm /Length 467 /Filter /FlateDecode /N 10 /First 63 >> stream xj0r|t,Y!J`lek0K;c{N,˖+Ȗŀ!7) 5X@\9Rr9+&j>nHev^mF@y> stream xuPAN09jmRU9UKTzX"R =k!흝5 *2P\l6[7 w7mX*@J4;8q'{mNC_@+"\VU_'q;*|~?G3^{+Eg b/n|8D,j,܀J?#b6c9D(Я6qTue>]JJ5##uWy-:I6qo5endstream endobj 17 0 obj << /Count 30 /Kids [ 27 0 R 26 0 R 28 0 R 29 0 R 30 0 R 18 0 R 31 0 R 32 0 R 33 0 R 34 0 R 35 0 R 20 0 R 22 0 R 21 0 R 36 0 R 19 0 R 37 0 R 38 0 R 23 0 R 24 0 R 39 0 R 40 0 R 25 0 R 41 0 R 42 0 R 43 0 R 44 0 R 45 0 R 46 0 R 47 0 R ] /Type /Pages >> endobj 18 0 obj << /Contents 48 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 19 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 20 0 obj << /Contents 52 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 21 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 22 0 obj << /Contents 54 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 23 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 24 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 25 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 26 0 obj << /Contents 58 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 27 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 28 0 obj << /Contents 60 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 29 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 30 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 31 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 32 0 obj << /Contents 64 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 33 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 34 0 obj << /Contents 66 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 35 0 obj << /Contents 67 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 36 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 37 0 obj << /Contents 69 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 38 0 obj << /Contents 70 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 39 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 40 0 obj << /Contents 72 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 41 0 obj << /Contents 73 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 42 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 43 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 44 0 obj << /Contents 76 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 45 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 46 0 obj << /Contents 78 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 47 0 obj << /Contents 79 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 48 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr F endstream endobj 49 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 50 0 obj [ /PDF /Text ] endobj 51 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr d Nendstream endobj 52 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr @ Jendstream endobj 53 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr R Lendstream endobj 54 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr I Kendstream endobj 55 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  Qendstream endobj 56 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  Rendstream endobj 57 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr S Lendstream endobj 58 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr " endstream endobj 59 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  endstream endobj 60 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr + endstream endobj 61 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr 4 endstream endobj 62 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr = endstream endobj 63 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr O endstream endobj 64 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr X endstream endobj 65 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,WTr a endstream endobj 66 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,WTr j !endstream endobj 67 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr 7 Iendstream endobj 68 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr [ Mendstream endobj 69 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr m Oendstream endobj 70 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr v Pendstream endobj 71 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr A Jendstream endobj 72 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr J Kendstream endobj 73 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr \ Mendstream endobj 74 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,i*dqpe Nendstream endobj 75 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr n Oendstream endobj 76 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr w Pendstream endobj 77 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr  Qendstream endobj 78 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  Rendstream endobj 79 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  Sendstream endobj 80 0 obj << /Type /XRef /Length 91 /Filter /FlateDecode /DecodeParms << /Columns 4 /Predictor 12 >> /W [ 1 2 1 ] /Root 1 0 R /Size 81 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> stream xcb&F~&b`$ϴ;(dmY110rĦ )(,4.AD[U F U/VC+q[ n( endstream endobj startxref 9544 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.10.c-check0000644000064100006410000000040613247541377017453 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 1 user password: extract for accessibility: 1 extract for any purpose: 1 print low resolution: 1 print high resolution: 1 modify document assembly: 1 modify forms: 1 modify annotations: 1 modify other: 1 modify anything: 1 qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.12-ogen.c-check0000644000064100006410000000040613247541377022371 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 1 user password: extract for accessibility: 1 extract for any purpose: 1 print low resolution: 1 print high resolution: 1 modify document assembly: 1 modify forms: 1 modify annotations: 1 modify other: 1 modify anything: 1 qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.1-ogen.check0000644000064100006410000000026213247541377022067 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.1.check0000644000064100006410000000026213247541377017130 0ustar ejbejbchecking a.pdf PDF Version: 1.3 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.7-ogen.check0000644000064100006410000000026213247541377020423 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-other-force-1.8.5.pdf0000644000064100006410000000163313247541377022242 0ustar ejbejb%PDF-1.8 % 1 0 obj << /Extensions << /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet 6 0 R >> /Type /Page >> endobj 4 0 obj << /Length 48 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 5 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 6 0 obj [ /PDF /Text ] endobj xref 0 7 0000000000 65535 f 0000000015 00000 n 0000000188 00000 n 0000000247 00000 n 0000000390 00000 n 0000000508 00000 n 0000000615 00000 n trailer << /Root 1 0 R /Size 7 /ID [<484577389048fa45fc00a1f5b434efa5><31415926535897932384626433832795>] >> startxref 645 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad30-recover.out0000644000064100006410000000066613247541377016667 0ustar ejbejb/QTest is indirect and has type stream (10) /QTest is a stream. Dictionary: << /Filter (FlateDecode) /Length 123 >> Raw stream data: x%11 b;t4| wXID8G>rQu O E:IWPlII)rp4~;As/҅jcszT.?u<*6 Uncompressed stream data: WARNING: bad30.pdf (offset 629): stream filter type is not name or array Stream data is not filterable. unparse: 7 0 R unparseResolved: 7 0 R test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/large_file.out0000644000064100006410000000602413247541377016416 0ustar ejbejbpage 1 of 200 page 2 of 200 page 3 of 200 page 4 of 200 page 5 of 200 page 6 of 200 page 7 of 200 page 8 of 200 page 9 of 200 page 10 of 200 page 11 of 200 page 12 of 200 page 13 of 200 page 14 of 200 page 15 of 200 page 16 of 200 page 17 of 200 page 18 of 200 page 19 of 200 page 20 of 200 page 21 of 200 page 22 of 200 page 23 of 200 page 24 of 200 page 25 of 200 page 26 of 200 page 27 of 200 page 28 of 200 page 29 of 200 page 30 of 200 page 31 of 200 page 32 of 200 page 33 of 200 page 34 of 200 page 35 of 200 page 36 of 200 page 37 of 200 page 38 of 200 page 39 of 200 page 40 of 200 page 41 of 200 page 42 of 200 page 43 of 200 page 44 of 200 page 45 of 200 page 46 of 200 page 47 of 200 page 48 of 200 page 49 of 200 page 50 of 200 page 51 of 200 page 52 of 200 page 53 of 200 page 54 of 200 page 55 of 200 page 56 of 200 page 57 of 200 page 58 of 200 page 59 of 200 page 60 of 200 page 61 of 200 page 62 of 200 page 63 of 200 page 64 of 200 page 65 of 200 page 66 of 200 page 67 of 200 page 68 of 200 page 69 of 200 page 70 of 200 page 71 of 200 page 72 of 200 page 73 of 200 page 74 of 200 page 75 of 200 page 76 of 200 page 77 of 200 page 78 of 200 page 79 of 200 page 80 of 200 page 81 of 200 page 82 of 200 page 83 of 200 page 84 of 200 page 85 of 200 page 86 of 200 page 87 of 200 page 88 of 200 page 89 of 200 page 90 of 200 page 91 of 200 page 92 of 200 page 93 of 200 page 94 of 200 page 95 of 200 page 96 of 200 page 97 of 200 page 98 of 200 page 99 of 200 page 100 of 200 page 101 of 200 page 102 of 200 page 103 of 200 page 104 of 200 page 105 of 200 page 106 of 200 page 107 of 200 page 108 of 200 page 109 of 200 page 110 of 200 page 111 of 200 page 112 of 200 page 113 of 200 page 114 of 200 page 115 of 200 page 116 of 200 page 117 of 200 page 118 of 200 page 119 of 200 page 120 of 200 page 121 of 200 page 122 of 200 page 123 of 200 page 124 of 200 page 125 of 200 page 126 of 200 page 127 of 200 page 128 of 200 page 129 of 200 page 130 of 200 page 131 of 200 page 132 of 200 page 133 of 200 page 134 of 200 page 135 of 200 page 136 of 200 page 137 of 200 page 138 of 200 page 139 of 200 page 140 of 200 page 141 of 200 page 142 of 200 page 143 of 200 page 144 of 200 page 145 of 200 page 146 of 200 page 147 of 200 page 148 of 200 page 149 of 200 page 150 of 200 page 151 of 200 page 152 of 200 page 153 of 200 page 154 of 200 page 155 of 200 page 156 of 200 page 157 of 200 page 158 of 200 page 159 of 200 page 160 of 200 page 161 of 200 page 162 of 200 page 163 of 200 page 164 of 200 page 165 of 200 page 166 of 200 page 167 of 200 page 168 of 200 page 169 of 200 page 170 of 200 page 171 of 200 page 172 of 200 page 173 of 200 page 174 of 200 page 175 of 200 page 176 of 200 page 177 of 200 page 178 of 200 page 179 of 200 page 180 of 200 page 181 of 200 page 182 of 200 page 183 of 200 page 184 of 200 page 185 of 200 page 186 of 200 page 187 of 200 page 188 of 200 page 189 of 200 page 190 of 200 page 191 of 200 page 192 of 200 page 193 of 200 page 194 of 200 page 195 of 200 page 196 of 200 page 197 of 200 page 198 of 200 page 199 of 200 page 200 of 200 qpdf-8.0.2/qpdf/qtest/qpdf/copy-foreign-objects-errors.out0000644000064100006410000000021613247541377021664 0ustar ejbejblogic error: QPDF::copyForeign called with object from this QPDF logic error: QPDF::copyForeign called with direct object handle test 28 done qpdf-8.0.2/qpdf/qtest/qpdf/bad8.out0000644000064100006410000000004613247541377015141 0ustar ejbejbbad8.pdf (offset 543): xref not found qpdf-8.0.2/qpdf/qtest/qpdf/06_split-exp.zdf0000644000064100006410000000136313247541377016534 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼T3M,.; 1endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 6 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000398 00000 n trailer << /Root 1 0 R /Size 6 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 497 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/indirect-decode-parms.pdf0000644000064100006410000000241413247541377020430 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 7 0 obj [ /PDF /Text ] endobj 8 0 obj << /Length 9 0 R /Filter /Something /DecodeParms 10 0 R >> stream here is some stream data endstream endobj 9 0 obj 25 endobj 10 0 obj << /Length 11 0 R >> stream here is some stream data endstream endobj 11 0 obj 25 endobj xref 0 12 0000000000 65535 f 0000000025 00000 n 0000000079 00000 n 0000000161 00000 n 0000000376 00000 n 0000000475 00000 n 0000000494 00000 n 0000000612 00000 n 0000000647 00000 n 0000000770 00000 n 0000000789 00000 n 0000000871 00000 n trailer << /Root 1 0 R /Size 12 /QTest 8 0 R /ID [<3e1b045415cfe83fea12b9817e205ef6><3e1b045415cfe83fea12b9817e205ef6>] >> startxref 891 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.3-ogen.check0000644000064100006410000000026213247541377020060 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.9-ogen.check0000644000064100006410000000067213247541377022104 0ustar ejbejbchecking a.pdf PDF Version: 1.5 R = 3 P = -4 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed File is linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/bad19-recover.out0000644000064100006410000000026013247541377016664 0ustar ejbejbWARNING: bad19.pdf (trailer, offset 753): unexpected > /QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/split-exp.zdf_050000644000064100006410000000203113247541377016524 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 5) Tj ET endstream endobj 5 0 obj 47 endobj %% Original object ID: 5 0 6 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 7 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000242 00000 n 0000000509 00000 n 0000000611 00000 n 0000000657 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 765 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad6-recover.out0000644000064100006410000000017113247541377016601 0ustar ejbejb/QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.8.check0000644000064100006410000000026213247541377017137 0ustar ejbejbchecking a.pdf PDF Version: 1.3 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.preserve.exp0000644000064100006410000000602413247541377020344 0ustar ejbejb%PDF-1.3 % 17 0 obj << /Linearized 1 /L 3092 /H [ 626 155 ] /O 20 /E 1216 /N 5 /T 2633 >> endobj xref 17 9 0000000015 00000 n 0000000563 00000 n 0000000626 00000 n 0000000781 00000 n 0000000882 00000 n 0000000978 00000 n 0000001039 00000 n 0000001153 00000 n 0000001184 00000 n trailer << /Root 18 0 R /Size 26 /Prev 2624 /ID [<31415926535897932384626433832795>] >> startxref 0 %%EOF 18 0 obj << /Moo 15 0 R /Pages 13 0 R /Type /Catalog >> endobj 19 0 obj << /Filter /FlateDecode /S 57 /Length 77 >> stream xc```"fC  0b33Y, f {x;y@ .@ 9{Y0 Y & endstream endobj 20 0 obj << /Contents 21 0 R /MediaBox 25 0 R /Parent 13 0 R /Resources 22 0 R /Type /Page >> endobj 21 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 22 0 obj << /Font << /F1 23 0 R >> /ProcSet 24 0 R >> endobj 23 0 obj << /BaseFont /Courier-Oblique /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 24 0 obj [ /PDF /Text ] endobj 25 0 obj [ 0 0 576 792 ] endobj 1 0 obj << /Contents 2 0 R /MediaBox 25 0 R /Parent 13 0 R /Resources 10 0 R /Type /Page >> endobj 2 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 322 Td (Potato 2) Tj ET endstream endobj 3 0 obj << /Contents 4 0 R /MediaBox 12 0 R /Moo 15 0 R /Parent 14 0 R /Resources 10 0 R /Rotate 0 /Type /Page >> endobj 4 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 322 Td (Potato 3) Tj ET endstream endobj 5 0 obj << /Contents 6 0 R /MediaBox 12 0 R /Parent 14 0 R /Resources << /Font << /F1 7 0 R >> /ProcSet 24 0 R >> /Rotate 0 /Type /Page >> endobj 6 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 322 Td (Potato 4) Tj ET endstream endobj 7 0 obj << /BaseFont /Times-Bold /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 8 0 obj << /Contents 9 0 R /MediaBox [ 0 0 306 396 ] /Parent 14 0 R /Resources 10 0 R /Rotate 180 /Type /Page >> endobj 9 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 322 Td (Potato 5) Tj ET endstream endobj 10 0 obj << /Font << /F1 11 0 R >> /ProcSet 24 0 R >> endobj 11 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 12 0 obj [ 0 0 576 396 ] endobj 13 0 obj << /Count 5 /Kids [ 20 0 R 1 0 R 14 0 R ] /Type /Pages >> endobj 14 0 obj << /Count 3 /Kids [ 3 0 R 5 0 R 8 0 R ] /Parent 13 0 R /Quack 16059 /Type /Pages >> endobj 15 0 obj << /One 1 /Two 16 0 R >> endobj 16 0 obj 2 endobj xref 0 17 0000000000 65535 f 0000001216 00000 n 0000001315 00000 n 0000001410 00000 n 0000001531 00000 n 0000001626 00000 n 0000001772 00000 n 0000001867 00000 n 0000001975 00000 n 0000002095 00000 n 0000002190 00000 n 0000002251 00000 n 0000002359 00000 n 0000002391 00000 n 0000002465 00000 n 0000002565 00000 n 0000002606 00000 n trailer << /Size 17 /ID [<31415926535897932384626433832795>] >> startxref 216 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/numeric-and-string-2.out0000644000064100006410000000050313247541377020166 0ustar ejbejbpage 1: images: /Im1: 5100 x 6600 content: 5 0 R end page 1 page 2: images: /Im2: 5100 x 6600 /Im3: 305 x 305 content: 10 0 R end page 2 page 3: images: /Im4: 5100 x 6600 content: 14 0 R end page 3 page 4: images: /Im5: 5100 x 6600 content: 18 0 R end page 4 test 5 done qpdf-8.0.2/qpdf/qtest/qpdf/extensions-none-min-1.8.0.out0000644000064100006410000000006213247541377020700 0ustar ejbejbversion: 1.8 extension level: 0 null test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/bad35-recover.out0000644000064100006410000000021513247541377016662 0ustar ejbejbWARNING: bad35.pdf (object 1 0, offset 521): supposed object stream 1 has wrong type bad35.pdf (offset 521): unable to find /Root dictionary qpdf-8.0.2/qpdf/qtest/qpdf/tokenize-content-streams.pdf0000644000064100006410000000300313247541377021235 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 2 /Kids [ 3 0 R 4 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj 4 0 obj << /Contents [ 8 0 R 9 0 R ] /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /ProcSet [ /PDF /ImageB ] >> /Type /Page >> endobj 5 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 7 0 obj [ /PDF /Text ] endobj 8 0 obj << /Length 137 >> stream 0.1 0 0 0.1 0 0 cm q 0 1.1999 -1.1999 -0 121.19 150.009 cm BI /CS /G/W 1/H 1/BPC 8/F/Fl/DP<> ID xc EI Q endstream endobj 9 0 obj << /Length 317 >> stream q 0 35.997 -128.389 -0 431.964 7269.02 cm BI /CS /G/W 30/H 107/BPC 8/F/Fl/DP<> ID xѡ0e*0nRcc1;8b{b EI Q q 0 38.3968 -93.5922 -0 431.964 7567.79 cm BI /CS /G/W 32/H 78/BPC 8/F/Fl/DP<> ID xcπ0*U0`* ?`T CU0`T < EI Q endstream endobj xref 0 10 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000129 00000 n 0000000272 00000 n 0000000414 00000 n 0000000507 00000 n 0000000614 00000 n 0000000644 00000 n 0000000831 00000 n trailer << /Root 1 0 R /Size 10 /ID [] >> startxref 1198 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/eof-reading-token.pdf0000644000064100006410000000314013247541377017561 0ustar ejbejb%PDF-1.3 % %....... %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj %% Original object ID: 6 0 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 5 0 7 0 obj [ /PDF /Text ] endobj 8 0 obj << /Type /ObjStm /Length 17 /N 1 /First 4 /Filter/FlateDecode >> stream xT02430endstream endobj 10 0 obj << /Type /ObjStm /Length 20 /N 1 /First 5 /Filter/FlateDecode >> stream x34T023414 '"endstream endobj 12 0 obj << /Type /ObjStm /Length 21 /N 1 /First 5 /Filter/FlateDecode >> stream x34V0(/I,endstream endobj 14 0 obj << /Type /ObjStm /Length 19 /N 1 /First 5 /Filter/FlateDecode >> stream x34U0,ML endstream endobj 16 0 obj << /Type /XRef /Length 68 /W [ 1 2 1 ] /Root 1 0 R /Size 17 /ID [<005fff067d76e95914d94529656029c7><005fff067d76e95914d94529656029c7>] /QTest [9 0 R 11 0 R 13 0 R 15 0 R] >> stream 4Gu) & ( endstream endobj startxref 1320 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/c-r5-key-user.out0000644000064100006410000000122213247541377016630 0ustar ejbejbchecking c-r5-in.pdf PDF Version: 1.7 extension level 3 R = 5 P = -2052 User password = user3 Encryption key = 35ea16a48b6a3045133b69ac0906c2e8fb0a2cc97903ae17b51a5786ebdba020 extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: not allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed stream encryption method: AESv3 string encryption method: AESv3 file encryption method: AESv3 File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/bad11-recover.out0000644000064100006410000000047513247541377016664 0ustar ejbejbWARNING: bad11.pdf: file is damaged WARNING: bad11.pdf (trailer, offset 905): /Prev key in trailer dictionary is not an integer WARNING: bad11.pdf: Attempting to reconstruct cross-reference table /QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-other-min-1.3.out0000644000064100006410000000023513247541377021612 0ustar ejbejbversion: 1.7 extension level: 2 << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/test4-1.qdf0000644000064100006410000000346413247541377015476 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 4 0 R /Type /Catalog >> endobj %% Original object ID: 13 0 2 0 obj << /A [ 9 1 5 10 12 6 ] /Author (Mr. Potato Head) /B << /A [ 1 2 3 ] /B (B) >> /Title (Some Title Is Here) >> endobj %% Original object ID: 8 0 3 0 obj << /A 5 0 R /B 6 0 R /Subject 7 0 R /Title 8 0 R >> endobj %% Original object ID: 2 0 4 0 obj << /Count 1 /Kids [ 9 0 R ] /Type /Pages >> endobj %% Original object ID: 11 0 5 0 obj [ 1 2 3 ] endobj %% Original object ID: 12 0 6 0 obj << /A 5 0 R /B (B) >> endobj %% Original object ID: 10 0 7 0 obj (Subject) endobj %% Original object ID: 9 0 8 0 obj (Some Title Is Here) endobj %% Page 1 %% Original object ID: 3 0 9 0 obj << /Contents 10 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 12 0 R >> /ProcSet 13 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 10 0 obj << /Length 11 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 11 0 obj 44 endobj %% Original object ID: 6 0 12 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 7 0 13 0 obj [ /PDF /Text ] endobj xref 0 14 0000000000 65535 f 0000000052 00000 n 0000000134 00000 n 0000000353 00000 n 0000000456 00000 n 0000000556 00000 n 0000000616 00000 n 0000000686 00000 n 0000000739 00000 n 0000000813 00000 n 0000001058 00000 n 0000001159 00000 n 0000001206 00000 n 0000001352 00000 n trailer << /Info 2 0 R /QTest 3 0 R /Root 1 0 R /Size 14 /ID [<31415926535897932384626433832795>] >> startxref 1388 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/lin7.out0000644000064100006410000002001113247541377015166 0ustar ejbejbWARNING: end of first page section (/E) mismatch: /E = 1865; computed = 1655..1656 WARNING: page 1: shared object 170: in computed list but not hint table WARNING: page 1: shared object 172: in computed list but not hint table WARNING: page 2: shared object 170: in computed list but not hint table WARNING: page 2: shared object 172: in computed list but not hint table WARNING: page 3: shared object 170: in computed list but not hint table WARNING: page 3: shared object 172: in computed list but not hint table WARNING: page 4: shared object 170: in computed list but not hint table WARNING: page 4: shared object 172: in computed list but not hint table WARNING: page 5: shared object 170: in computed list but not hint table WARNING: page 5: shared object 172: in computed list but not hint table WARNING: page 6: shared object 170: in computed list but not hint table WARNING: page 6: shared object 172: in computed list but not hint table WARNING: page 7: shared object 170: in computed list but not hint table WARNING: page 7: shared object 172: in computed list but not hint table WARNING: page 8: shared object 170: in computed list but not hint table WARNING: page 8: shared object 172: in computed list but not hint table WARNING: page 9: shared object 170: in computed list but not hint table WARNING: page 9: shared object 172: in computed list but not hint table WARNING: page 10: shared object 170: in computed list but not hint table WARNING: page 10: shared object 172: in computed list but not hint table WARNING: page 11: shared object 170: in computed list but not hint table WARNING: page 11: shared object 172: in computed list but not hint table WARNING: page 12: shared object 170: in computed list but not hint table WARNING: page 12: shared object 172: in computed list but not hint table WARNING: page 13: shared object 170: in computed list but not hint table WARNING: page 13: shared object 172: in computed list but not hint table WARNING: page 14: shared object 170: in computed list but not hint table WARNING: page 14: shared object 172: in computed list but not hint table WARNING: page 15: shared object 170: in computed list but not hint table WARNING: page 15: shared object 172: in computed list but not hint table WARNING: page 16: shared object 170: in computed list but not hint table WARNING: page 16: shared object 172: in computed list but not hint table WARNING: page 17: shared object 170: in computed list but not hint table WARNING: page 17: shared object 172: in computed list but not hint table WARNING: page 18: shared object 170: in computed list but not hint table WARNING: page 18: shared object 172: in computed list but not hint table WARNING: page 19: shared object 170: in computed list but not hint table WARNING: page 19: shared object 172: in computed list but not hint table WARNING: page 20: shared object 170: in computed list but not hint table WARNING: page 20: shared object 172: in computed list but not hint table WARNING: page 21: shared object 170: in computed list but not hint table WARNING: page 21: shared object 172: in computed list but not hint table WARNING: page 22: shared object 170: in computed list but not hint table WARNING: page 22: shared object 172: in computed list but not hint table WARNING: page 23: shared object 170: in computed list but not hint table WARNING: page 23: shared object 172: in computed list but not hint table WARNING: page 24: shared object 170: in computed list but not hint table WARNING: page 24: shared object 172: in computed list but not hint table WARNING: page 25: shared object 170: in computed list but not hint table WARNING: page 25: shared object 172: in computed list but not hint table WARNING: page 26: shared object 170: in computed list but not hint table WARNING: page 26: shared object 172: in computed list but not hint table WARNING: page 27: shared object 170: in computed list but not hint table WARNING: page 27: shared object 172: in computed list but not hint table WARNING: page 28: shared object 170: in computed list but not hint table WARNING: page 28: shared object 172: in computed list but not hint table WARNING: page 29: shared object 170: in computed list but not hint table WARNING: page 29: shared object 172: in computed list but not hint table lin7.pdf: linearization data: file_size: 27408 first_page_object: 168 first_page_end: 1865 npages: 30 xref_zero_offset: 23969 first_page: 0 H_offset: 905 H_length: 235 Page Offsets Hint Table min_nobjects: 3 first_page_offset: 1140 nbits_delta_nobjects: 3 min_page_length: 356 nbits_delta_page_length: 8 min_content_offset: 0 nbits_delta_content_offset: 0 min_content_length: 0 nbits_delta_content_length: 8 nbits_nshared_objects: 0 nbits_shared_identifier: 3 nbits_shared_numerator: 0 shared_denominator: 8 Page 0: nobjects: 5 length: 516 content_offset: 0 content_length: 160 nshared_objects: 0 Page 1: nobjects: 3 length: 356 content_offset: 0 content_length: 0 nshared_objects: 0 Page 2: nobjects: 3 length: 356 content_offset: 0 content_length: 0 nshared_objects: 0 Page 3: nobjects: 3 length: 356 content_offset: 0 content_length: 0 nshared_objects: 0 Page 4: nobjects: 3 length: 361 content_offset: 0 content_length: 5 nshared_objects: 0 Page 5: nobjects: 3 length: 361 content_offset: 0 content_length: 5 nshared_objects: 0 Page 6: nobjects: 3 length: 361 content_offset: 0 content_length: 5 nshared_objects: 0 Page 7: nobjects: 3 length: 361 content_offset: 0 content_length: 5 nshared_objects: 0 Page 8: nobjects: 3 length: 361 content_offset: 0 content_length: 5 nshared_objects: 0 Page 9: nobjects: 3 length: 361 content_offset: 0 content_length: 5 nshared_objects: 0 Page 10: nobjects: 3 length: 362 content_offset: 0 content_length: 6 nshared_objects: 0 Page 11: nobjects: 3 length: 362 content_offset: 0 content_length: 6 nshared_objects: 0 Page 12: nobjects: 3 length: 362 content_offset: 0 content_length: 6 nshared_objects: 0 Page 13: nobjects: 3 length: 362 content_offset: 0 content_length: 6 nshared_objects: 0 Page 14: nobjects: 3 length: 362 content_offset: 0 content_length: 6 nshared_objects: 0 Page 15: nobjects: 3 length: 362 content_offset: 0 content_length: 6 nshared_objects: 0 Page 16: nobjects: 3 length: 362 content_offset: 0 content_length: 6 nshared_objects: 0 Page 17: nobjects: 3 length: 362 content_offset: 0 content_length: 6 nshared_objects: 0 Page 18: nobjects: 3 length: 362 content_offset: 0 content_length: 6 nshared_objects: 0 Page 19: nobjects: 3 length: 362 content_offset: 0 content_length: 6 nshared_objects: 0 Page 20: nobjects: 3 length: 362 content_offset: 0 content_length: 6 nshared_objects: 0 Page 21: nobjects: 3 length: 362 content_offset: 0 content_length: 6 nshared_objects: 0 Page 22: nobjects: 3 length: 362 content_offset: 0 content_length: 6 nshared_objects: 0 Page 23: nobjects: 3 length: 362 content_offset: 0 content_length: 6 nshared_objects: 0 Page 24: nobjects: 3 length: 361 content_offset: 0 content_length: 5 nshared_objects: 0 Page 25: nobjects: 3 length: 362 content_offset: 0 content_length: 6 nshared_objects: 0 Page 26: nobjects: 3 length: 362 content_offset: 0 content_length: 6 nshared_objects: 0 Page 27: nobjects: 3 length: 362 content_offset: 0 content_length: 6 nshared_objects: 0 Page 28: nobjects: 3 length: 362 content_offset: 0 content_length: 6 nshared_objects: 0 Page 29: nobjects: 3 length: 362 content_offset: 0 content_length: 6 nshared_objects: 0 Shared Objects Hint Table first_shared_obj: 0 first_shared_offset: 16 nshared_first_page: 5 nshared_total: 5 nbits_nobjects: 0 min_group_length: 21 nbits_delta_group_length: 8 Shared Object 0: group length: 213 Shared Object 1: group length: 132 Shared Object 2: group length: 116 Shared Object 3: group length: 21 Shared Object 4: group length: 34 Outlines Hint Table first_object: 88 first_object_offset: 12129 nobjects: 12 group_length: 2030 qpdf-8.0.2/qpdf/qtest/qpdf/c-uncompressed-streams.pdf0000644000064100006410000002443713247541377020702 0ustar ejbejb%PDF-1.5 % 1 0 obj << /Outlines 3 0 R /PageLabels 15 0 R /PageMode /UseOutlines /Pages 16 0 R /Type /Catalog >> endobj 2 0 obj << /Type /ObjStm /Length 2064 /N 13 /First 87 >> stream 3 0 4 56 5 217 6 334 7 470 8 730 9 882 10 1053 11 1191 12 1329 13 1454 14 1594 15 1730 << /Count 6 /First 4 0 R /Last 5 0 R /Type /Outlines >> << /Count 4 /Dest [ 17 0 R /XYZ null null null ] /First 6 0 R /Last 7 0 R /Next 5 0 R /Parent 3 0 R /Title (Iss 1 -> 5: /XYZ null null null) /Type /Outline >> << /Dest [ 18 0 R /XYZ 66 756 3 ] /Parent 3 0 R /Prev 4 0 R /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Type /Outline >> << /Count -3 /Dest [ 19 0 R /Fit ] /First 8 0 R /Last 9 0 R /Next 7 0 R /Parent 4 0 R /Title (Amanda 1.1 -> 11: /Fit) /Type /Outline >> << /Count 2 /Dest [ 20 0 R /FitH 792 ] /First 13 0 R /Last 14 0 R /Parent 4 0 R /Prev 6 0 R /Title /Type /Outline >> << /Count -2 /Dest [ 21 0 R /FitV 100 ] /First 10 0 R /Last 11 0 R /Next 9 0 R /Parent 6 0 R /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Type /Outline >> << /Count 1 /Dest [ 21 0 R /XYZ null null null ] /First 12 0 R /Last 12 0 R /Parent 6 0 R /Prev 8 0 R /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Type /Outline >> << /Dest [ 22 0 R /XYZ null null null ] /Next 11 0 R /Parent 8 0 R /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Type /Outline >> << /Dest [ 23 0 R /XYZ null null null ] /Parent 8 0 R /Prev 10 0 R /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Type /Outline >> << /Dest [ 24 0 R /XYZ null null null ] /Parent 9 0 R /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Type /Outline >> << /Dest [ 25 0 R /FitR 66 714 180 770 ] /Next 14 0 R /Parent 7 0 R /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Type /Outline >> << /Dest [ 26 0 R /XYZ null null null ] /Parent 7 0 R /Prev 13 0 R /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Type /Outline >> << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> endstream endobj 16 0 obj << /Count 30 /Kids [ 26 0 R 25 0 R 27 0 R 28 0 R 29 0 R 17 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 19 0 R 21 0 R 20 0 R 35 0 R 18 0 R 36 0 R 37 0 R 22 0 R 23 0 R 38 0 R 39 0 R 24 0 R 40 0 R 41 0 R 42 0 R 43 0 R 44 0 R 45 0 R 46 0 R ] /Type /Pages >> endobj 17 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 18 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 19 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 20 0 obj << /Contents 52 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 21 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 22 0 obj << /Contents 54 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 23 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 24 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 25 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 26 0 obj << /Contents 58 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 27 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 28 0 obj << /Contents 60 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 29 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 30 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 31 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 32 0 obj << /Contents 64 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 33 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 34 0 obj << /Contents 66 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 35 0 obj << /Contents 67 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 36 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 37 0 obj << /Contents 69 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 38 0 obj << /Contents 70 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 39 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 40 0 obj << /Contents 72 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 41 0 obj << /Contents 73 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 42 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 43 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 44 0 obj << /Contents 76 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 45 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 46 0 obj << /Contents 78 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 47 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 48 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 49 0 obj [ /PDF /Text ] endobj 50 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 51 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 52 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 53 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 54 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 55 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 56 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 57 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 58 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 0) Tj ET endstream endobj 59 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 60 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 61 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 62 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 63 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 64 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 65 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 66 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 67 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 68 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 69 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 70 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 71 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 72 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 73 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 74 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 75 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 76 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 77 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 78 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 79 0 obj << /Type /XRef /Length 320 /W [ 1 2 1 ] /Root 1 0 R /Size 80 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> stream {      y   5  ] Ai%Mu 1Y= (K n/ O !!o!"/""#R#$$u$%7%%&Z&' endstream endobj startxref 10012 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-force-1.8.0.out0000644000064100006410000000006213247541377021147 0ustar ejbejbversion: 1.8 extension level: 0 null test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/issue-100.out0000644000064100006410000000323113247541377015750 0ustar ejbejbWARNING: issue-100.pdf: file is damaged WARNING: issue-100.pdf (offset 736): xref not found WARNING: issue-100.pdf: Attempting to reconstruct cross-reference table WARNING: issue-100.pdf (object 5 0, offset 268): unknown token while reading object; treating as string WARNING: issue-100.pdf (object 5 0, offset 286): unknown token while reading object; treating as string WARNING: issue-100.pdf (object 5 0, offset 289): unknown token while reading object; treating as string WARNING: issue-100.pdf (object 5 0, offset 294): unknown token while reading object; treating as string WARNING: issue-100.pdf (object 5 0, offset 297): unknown token while reading object; treating as string WARNING: issue-100.pdf (object 5 0, offset 304): unknown token while reading object; treating as string WARNING: issue-100.pdf (object 5 0, offset 308): unexpected ) WARNING: issue-100.pdf (object 5 0, offset 316): treating unexpected array close token as null WARNING: issue-100.pdf (object 5 0, offset 227): expected dictionary key but found non-name object; inserting key /QPDFFake1 WARNING: issue-100.pdf (object 5 0, offset 321): expected endobj WARNING: issue-100.pdf (object 5 0, offset 418): /Length key in stream dictionary is not an integer WARNING: issue-100.pdf (object 5 0, offset 489): attempting to recover stream length WARNING: issue-100.pdf (object 5 0, offset 489): recovered stream length: 12 WARNING: issue-100.pdf (trailer, offset 953): expected dictionary key but found non-name object; inserting key /QPDFFake1 WARNING: issue-100.pdf (trailer, offset 953): dictionary ended prematurely; using null as value for last key issue-100.pdf (offset 1144): unable to find /Root dictionary qpdf-8.0.2/qpdf/qtest/qpdf/c-ignore-xref-streams.pdf0000644000064100006410000002337013247541377020413 0ustar ejbejb%PDF-1.5 % 1 0 obj << /PageMode /UseOutlines /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 30 /Kids [ 3 0 R 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 33 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 34 0 R >> /ProcSet 35 0 R >> /Type /Page >> endobj 4 0 obj << /Contents 36 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 34 0 R >> /ProcSet 35 0 R >> /Type /Page >> endobj 5 0 obj << /Contents 37 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 34 0 R >> /ProcSet 35 0 R >> /Type /Page >> endobj 6 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 34 0 R >> /ProcSet 35 0 R >> /Type /Page >> endobj 7 0 obj << /Contents 39 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 34 0 R >> /ProcSet 35 0 R >> /Type /Page >> endobj 8 0 obj << /Contents 40 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 34 0 R >> /ProcSet 35 0 R >> /Type /Page >> endobj 9 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 34 0 R >> /ProcSet 35 0 R >> /Type /Page >> endobj 10 0 obj << /Contents 42 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 34 0 R >> /ProcSet 35 0 R >> /Type /Page >> endobj 11 0 obj << /Contents 43 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 34 0 R >> /ProcSet 35 0 R >> /Type /Page >> endobj 12 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 34 0 R >> /ProcSet 35 0 R >> /Type /Page >> endobj 13 0 obj << /Contents 45 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 34 0 R >> /ProcSet 35 0 R >> /Type /Page >> endobj 14 0 obj << /Contents 46 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 34 0 R >> /ProcSet 35 0 R >> /Type /Page >> endobj 15 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 34 0 R >> /ProcSet 35 0 R >> /Type /Page >> endobj 16 0 obj << /Contents 48 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 34 0 R >> /ProcSet 35 0 R >> /Type /Page >> endobj 17 0 obj << /Contents 49 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 34 0 R >> /ProcSet 35 0 R >> /Type /Page >> endobj 18 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 34 0 R >> /ProcSet 35 0 R >> /Type /Page >> endobj 19 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 34 0 R >> /ProcSet 35 0 R >> /Type /Page >> endobj 20 0 obj << /Contents 52 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 34 0 R >> /ProcSet 35 0 R >> /Type /Page >> endobj 21 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 34 0 R >> /ProcSet 35 0 R >> /Type /Page >> endobj 22 0 obj << /Contents 54 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 34 0 R >> /ProcSet 35 0 R >> /Type /Page >> endobj 23 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 34 0 R >> /ProcSet 35 0 R >> /Type /Page >> endobj 24 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 34 0 R >> /ProcSet 35 0 R >> /Type /Page >> endobj 25 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 34 0 R >> /ProcSet 35 0 R >> /Type /Page >> endobj 26 0 obj << /Contents 58 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 34 0 R >> /ProcSet 35 0 R >> /Type /Page >> endobj 27 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 34 0 R >> /ProcSet 35 0 R >> /Type /Page >> endobj 28 0 obj << /Contents 60 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 34 0 R >> /ProcSet 35 0 R >> /Type /Page >> endobj 29 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 34 0 R >> /ProcSet 35 0 R >> /Type /Page >> endobj 30 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 34 0 R >> /ProcSet 35 0 R >> /Type /Page >> endobj 31 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 34 0 R >> /ProcSet 35 0 R >> /Type /Page >> endobj 32 0 obj << /Contents 64 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 34 0 R >> /ProcSet 35 0 R >> /Type /Page >> endobj 33 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  endstream endobj 34 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 35 0 obj [ /PDF /Text ] endobj 36 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr " endstream endobj 37 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr + endstream endobj 38 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr 4 endstream endobj 39 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr = endstream endobj 40 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr F endstream endobj 41 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr O endstream endobj 42 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr X endstream endobj 43 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,WTr a endstream endobj 44 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,WTr j !endstream endobj 45 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr 7 Iendstream endobj 46 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr @ Jendstream endobj 47 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr I Kendstream endobj 48 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr R Lendstream endobj 49 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr [ Mendstream endobj 50 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr d Nendstream endobj 51 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr m Oendstream endobj 52 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr v Pendstream endobj 53 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  Qendstream endobj 54 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  Rendstream endobj 55 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr A Jendstream endobj 56 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr J Kendstream endobj 57 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr S Lendstream endobj 58 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr \ Mendstream endobj 59 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,i*dqpe Nendstream endobj 60 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr n Oendstream endobj 61 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr w Pendstream endobj 62 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr  Qendstream endobj 63 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  Rendstream endobj 64 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  Sendstream endobj xref 0 65 0000000000 65535 f 0000000015 00000 n 0000000087 00000 n 0000000344 00000 n 0000000490 00000 n 0000000636 00000 n 0000000782 00000 n 0000000928 00000 n 0000001074 00000 n 0000001220 00000 n 0000001366 00000 n 0000001513 00000 n 0000001660 00000 n 0000001807 00000 n 0000001954 00000 n 0000002101 00000 n 0000002248 00000 n 0000002395 00000 n 0000002542 00000 n 0000002689 00000 n 0000002836 00000 n 0000002983 00000 n 0000003130 00000 n 0000003277 00000 n 0000003424 00000 n 0000003571 00000 n 0000003718 00000 n 0000003865 00000 n 0000004012 00000 n 0000004159 00000 n 0000004306 00000 n 0000004453 00000 n 0000004600 00000 n 0000004747 00000 n 0000004868 00000 n 0000004976 00000 n 0000005007 00000 n 0000005128 00000 n 0000005249 00000 n 0000005370 00000 n 0000005491 00000 n 0000005612 00000 n 0000005733 00000 n 0000005854 00000 n 0000005975 00000 n 0000006096 00000 n 0000006218 00000 n 0000006340 00000 n 0000006462 00000 n 0000006584 00000 n 0000006706 00000 n 0000006828 00000 n 0000006950 00000 n 0000007072 00000 n 0000007194 00000 n 0000007316 00000 n 0000007438 00000 n 0000007560 00000 n 0000007682 00000 n 0000007804 00000 n 0000007925 00000 n 0000008047 00000 n 0000008169 00000 n 0000008291 00000 n 0000008413 00000 n trailer << /Root 1 0 R /Size 65 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 8535 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.4.c-check0000644000064100006410000000005013247541377017371 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-force-1.3.out0000644000064100006410000000006213247541377021004 0ustar ejbejbversion: 1.3 extension level: 0 null test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.11.c-check0000644000064100006410000000040613247541377017454 0ustar ejbejbversion: 1.5 linearized: 1 encrypted: 1 user password: extract for accessibility: 1 extract for any purpose: 1 print low resolution: 1 print high resolution: 1 modify document assembly: 1 modify forms: 1 modify annotations: 1 modify other: 1 modify anything: 1 qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.8.check0000644000064100006410000000026213247541377021150 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.11-ogen.check0000644000064100006410000000067213247541377020503 0ustar ejbejbchecking a.pdf PDF Version: 1.5 R = 3 P = -4 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed File is linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/bad17.pdf0000644000064100006410000000141013247541377015157 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /Something >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad36-recover.out0000644000064100006410000000067113247541377016671 0ustar ejbejbWARNING: bad36.pdf (trailer, offset 764): unknown token while reading object; treating as string WARNING: bad36.pdf (trailer, offset 715): expected dictionary key but found non-name object; inserting key /QPDFFake2 WARNING: bad36.pdf (trailer, offset 715): dictionary ended prematurely; using null as value for last key /QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.4-ogen.check0000644000064100006410000000026213247541377022072 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/enc-base.pdf0000644000064100006410000004105113247541377015743 0ustar ejbejb%PDF-1.4 % 91 0 obj << /Linearized 1 /O 93 /H [ 1142 210 ] /L 16937 /E 3978 /N 30 /T 14999 >> endobj xref 91 21 0000000016 00000 n 0000000768 00000 n 0000001352 00000 n 0000001547 00000 n 0000001627 00000 n 0000001816 00000 n 0000001957 00000 n 0000002124 00000 n 0000002298 00000 n 0000002461 00000 n 0000002621 00000 n 0000002804 00000 n 0000003006 00000 n 0000003155 00000 n 0000003319 00000 n 0000003483 00000 n 0000003615 00000 n 0000003731 00000 n 0000003752 00000 n 0000001142 00000 n 0000001331 00000 n trailer << /Size 112 /Info 89 0 R /Root 92 0 R /Prev 14989 /ID[<66d36a30a97e0f16f39955c6221e0c2a><66d36a30a97e0f16f39955c6221e0c2a>] >> startxref 0 %%EOF 92 0 obj << /PageLabels << /Nums [ 0 << /P ()>> 2 << /S /r /St 1 >> 7 << /P ()>> 9 << /S /r /St 6 >> 11 << /P ()>> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P ()>> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /Pages 88 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 94 0 R /Metadata 90 0 R >> endobj 110 0 obj << /S 145 /O 189 /Filter /FlateDecode /Length 111 0 R >> stream Hb```f``)c`e`` fa@(Q>V(J` C-bA(f`eXgb̾E[x!n8@g U endstream endobj 111 0 obj 95 endobj 93 0 obj << /Contents 106 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 94 0 obj << /Type /Outlines /First 95 0 R /Last 96 0 R /Count 6 >> endobj 95 0 obj << /Type /Outline /Title (Isis 1 -> 5: /XYZ null null null) /Parent 94 0 R /Count 4 /Next 96 0 R /First 97 0 R /Last 98 0 R /Dest [ 13 0 R /XYZ null null null ] >> endobj 96 0 obj << /Type /Outline /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Parent 94 0 R /Prev 95 0 R /Dest [ 43 0 R /XYZ 66 756 3 ] >> endobj 97 0 obj << /Type /Outline /Title (Amanda 1.1 -> 11: /Fit) /Parent 95 0 R /Next 98 0 R /First 101 0 R /Last 102 0 R /Count -3 /Dest [ 31 0 R /Fit ] >> endobj 98 0 obj << /Type /Outline /Title (Sandy 1.2 -> 13: /FitH 792) /Parent 95 0 R /Prev 97 0 R /First 99 0 R /Last 100 0 R /Count 2 /Dest [ 37 0 R /FitH 792 ] >> endobj 99 0 obj << /Type /Outline /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Parent 98 0 R /Next 100 0 R /Dest [ 1 0 R /FitR 66 714 180 770 ] >> endobj 100 0 obj << /Type /Outline /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Parent 98 0 R /Prev 99 0 R /Dest [ 93 0 R /XYZ null null null ] >> endobj 101 0 obj << /Type /Outline /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Parent 97 0 R /Next 102 0 R /First 104 0 R /Last 105 0 R /Count -2 /Dest [ 34 0 R /FitV 100 ] >> endobj 102 0 obj << /Type /Outline /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Parent 97 0 R /Prev 101 0 R /First 103 0 R /Last 103 0 R /Count 1 /Dest [ 34 0 R /XYZ null null null ] >> endobj 103 0 obj << /Type /Outline /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Parent 102 0 R /Dest [ 64 0 R /XYZ null null null ] >> endobj 104 0 obj << /Type /Outline /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Parent 101 0 R /Next 105 0 R /Dest [ 52 0 R /XYZ null null null ] >> endobj 105 0 obj << /Type /Outline /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Parent 101 0 R /Prev 104 0 R /Dest [ 55 0 R /XYZ null null null ] >> endobj 106 0 obj << /Filter /FlateDecode /Length 108 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0  endstream endobj 107 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 108 0 obj 52 endobj 109 0 obj [ /PDF /Text ] endobj 1 0 obj << /Contents 2 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 2 0 obj << /Filter /FlateDecode /Length 3 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0"  endstream endobj 3 0 obj 52 endobj 4 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 5 0 obj << /Filter /FlateDecode /Length 6 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0+  endstream endobj 6 0 obj 52 endobj 7 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 8 0 obj << /Filter /FlateDecode /Length 9 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 04  endstream endobj 9 0 obj 52 endobj 10 0 obj << /Contents 11 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 11 0 obj << /Filter /FlateDecode /Length 12 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0=  endstream endobj 12 0 obj 52 endobj 13 0 obj << /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 14 0 obj << /Filter /FlateDecode /Length 15 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0F  endstream endobj 15 0 obj 52 endobj 16 0 obj << /Contents 17 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 17 0 obj << /Filter /FlateDecode /Length 18 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0O  endstream endobj 18 0 obj 52 endobj 19 0 obj << /Contents 20 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 20 0 obj << /Filter /FlateDecode /Length 21 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0X  endstream endobj 21 0 obj 52 endobj 22 0 obj << /Contents 23 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 23 0 obj << /Filter /FlateDecode /Length 24 0 R >> stream Hr RPw3T02QI͍@!$/I,WTr 0a endstream endobj 24 0 obj 52 endobj 25 0 obj << /Contents 26 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 26 0 obj << /Filter /FlateDecode /Length 27 0 R >> stream Hr RPw3T02QI͍@!$/I,WTr 0j ! endstream endobj 27 0 obj 52 endobj 28 0 obj << /Contents 29 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 29 0 obj << /Filter /FlateDecode /Length 30 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 07 I endstream endobj 30 0 obj 53 endobj 31 0 obj << /Contents 32 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 32 0 obj << /Filter /FlateDecode /Length 33 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0@ J endstream endobj 33 0 obj 53 endobj 34 0 obj << /Contents 35 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 35 0 obj << /Filter /FlateDecode /Length 36 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0I K endstream endobj 36 0 obj 53 endobj 37 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 38 0 obj << /Filter /FlateDecode /Length 39 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0R L endstream endobj 39 0 obj 53 endobj 40 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 41 0 obj << /Filter /FlateDecode /Length 42 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0[ M endstream endobj 42 0 obj 53 endobj 43 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 44 0 obj << /Filter /FlateDecode /Length 45 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0d N endstream endobj 45 0 obj 53 endobj 46 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 47 0 obj << /Filter /FlateDecode /Length 48 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0m O endstream endobj 48 0 obj 53 endobj 49 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 50 0 obj << /Filter /FlateDecode /Length 51 0 R >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0v P endstream endobj 51 0 obj 53 endobj 52 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 53 0 obj << /Filter /FlateDecode /Length 54 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0 Q endstream endobj 54 0 obj 53 endobj 55 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 56 0 obj << /Filter /FlateDecode /Length 57 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0 R endstream endobj 57 0 obj 53 endobj 58 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 59 0 obj << /Filter /FlateDecode /Length 60 0 R >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0A J endstream endobj 60 0 obj 53 endobj 61 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 62 0 obj << /Filter /FlateDecode /Length 63 0 R >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0J K endstream endobj 63 0 obj 53 endobj 64 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 65 0 obj << /Filter /FlateDecode /Length 66 0 R >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0S L endstream endobj 66 0 obj 53 endobj 67 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 68 0 obj << /Filter /FlateDecode /Length 69 0 R >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0\ M endstream endobj 69 0 obj 53 endobj 70 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 71 0 obj << /Filter /FlateDecode /Length 72 0 R >> stream Hr RPw3T02QI͍@!$/I,i*dqpe N endstream endobj 72 0 obj 52 endobj 73 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 74 0 obj << /Filter /FlateDecode /Length 75 0 R >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0n O endstream endobj 75 0 obj 53 endobj 76 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 77 0 obj << /Filter /FlateDecode /Length 78 0 R >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0w P endstream endobj 78 0 obj 53 endobj 79 0 obj << /Contents 80 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 80 0 obj << /Filter /FlateDecode /Length 81 0 R >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0 Q endstream endobj 81 0 obj 53 endobj 82 0 obj << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 83 0 obj << /Filter /FlateDecode /Length 84 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0 R endstream endobj 84 0 obj 53 endobj 85 0 obj << /Contents 86 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 107 0 R >> /ProcSet 109 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 86 0 obj << /Filter /FlateDecode /Length 87 0 R >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0 S endstream endobj 87 0 obj 53 endobj 88 0 obj << /Count 30 /Kids [ 93 0 R 1 0 R 4 0 R 7 0 R 10 0 R 13 0 R 16 0 R 19 0 R 22 0 R 25 0 R 28 0 R 31 0 R 34 0 R 37 0 R 40 0 R 43 0 R 46 0 R 49 0 R 52 0 R 55 0 R 58 0 R 61 0 R 64 0 R 67 0 R 70 0 R 73 0 R 76 0 R 79 0 R 82 0 R 85 0 R ] /Type /Pages >> endobj 89 0 obj << /ModDate (D:20031010180432-03'00') /CreationDate (D:20031010180432-03'00') >> endobj 90 0 obj << /Type /Metadata /Subtype /XML /Length 770 >> stream 2003-10-10T18:04:32-03:00 2003-10-10T18:04:32-03:00 2003-10-10T18:04:32-03:00 2003-10-10T18:04:32-03:00 2003-10-10T18:04:32-03:00 endstream endobj xref 0 91 0000000000 65535 f 0000003786 00000 n 0000003978 00000 n 0000004106 00000 n 0000004125 00000 n 0000004317 00000 n 0000004445 00000 n 0000004464 00000 n 0000004656 00000 n 0000004784 00000 n 0000004803 00000 n 0000004997 00000 n 0000005127 00000 n 0000005147 00000 n 0000005341 00000 n 0000005471 00000 n 0000005491 00000 n 0000005685 00000 n 0000005815 00000 n 0000005835 00000 n 0000006029 00000 n 0000006159 00000 n 0000006179 00000 n 0000006373 00000 n 0000006503 00000 n 0000006523 00000 n 0000006717 00000 n 0000006847 00000 n 0000006867 00000 n 0000007061 00000 n 0000007192 00000 n 0000007212 00000 n 0000007406 00000 n 0000007537 00000 n 0000007557 00000 n 0000007751 00000 n 0000007882 00000 n 0000007902 00000 n 0000008096 00000 n 0000008227 00000 n 0000008247 00000 n 0000008441 00000 n 0000008572 00000 n 0000008592 00000 n 0000008786 00000 n 0000008917 00000 n 0000008937 00000 n 0000009131 00000 n 0000009262 00000 n 0000009282 00000 n 0000009476 00000 n 0000009607 00000 n 0000009627 00000 n 0000009821 00000 n 0000009952 00000 n 0000009972 00000 n 0000010166 00000 n 0000010297 00000 n 0000010317 00000 n 0000010511 00000 n 0000010642 00000 n 0000010662 00000 n 0000010856 00000 n 0000010987 00000 n 0000011007 00000 n 0000011201 00000 n 0000011332 00000 n 0000011352 00000 n 0000011546 00000 n 0000011677 00000 n 0000011697 00000 n 0000011891 00000 n 0000012021 00000 n 0000012041 00000 n 0000012235 00000 n 0000012366 00000 n 0000012386 00000 n 0000012580 00000 n 0000012711 00000 n 0000012731 00000 n 0000012925 00000 n 0000013056 00000 n 0000013076 00000 n 0000013270 00000 n 0000013401 00000 n 0000013421 00000 n 0000013615 00000 n 0000013746 00000 n 0000013766 00000 n 0000014036 00000 n 0000014135 00000 n trailer << /Size 91 /ID[<66d36a30a97e0f16f39955c6221e0c2a><66d36a30a97e0f16f39955c6221e0c2a>] >> startxref 173 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad-data.out0000644000064100006410000000044113247541377015757 0ustar ejbejbWARNING: bad-data.pdf (offset 319): error decoding stream data for object 4 0: LZWDecoder: bad code received WARNING: bad-data.pdf (offset 319): stream will be re-processed without filtering to avoid data loss qpdf: operation succeeded with warnings; resulting file may have some problems qpdf-8.0.2/qpdf/qtest/qpdf/page_api_1-out.pdf0000644000064100006410000001045713247541377017066 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 3 0 R /Type /Catalog >> endobj 2 0 obj << /CreationDate (D:20120621111522) /Producer (Apex PDFWriter) >> endobj 3 0 obj << /Count 13 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R ] /Type /Pages >> endobj 4 0 obj << /Contents 17 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 18 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 5 0 obj << /Contents 19 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 18 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 6 0 obj << /Contents 20 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 18 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 7 0 obj << /Contents 21 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 18 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 8 0 obj << /Contents 22 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 18 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 9 0 obj << /Contents 23 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 18 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 10 0 obj << /Contents 24 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 18 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 11 0 obj << /Contents 25 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 18 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 12 0 obj << /Contents 26 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 18 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 13 0 obj << /Contents 27 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 18 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 14 0 obj << /Contents 28 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 18 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 15 0 obj << /Contents 29 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 18 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 16 0 obj << /Contents 30 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 18 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 17 0 obj << /Length 42 >> stream BT /F1 15 Tf 72 720 Td (New page 0) Tj ET endstream endobj 18 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 19 0 obj << /Length 42 >> stream BT /F1 15 Tf 72 720 Td (New page 1) Tj ET endstream endobj 20 0 obj << /Length 47 >> stream BT /F1 15 Tf 72 720 Td (Original page 1) Tj ET endstream endobj 21 0 obj << /Length 47 >> stream BT /F1 15 Tf 72 720 Td (Original page 2) Tj ET endstream endobj 22 0 obj << /Length 47 >> stream BT /F1 15 Tf 72 720 Td (Original page 3) Tj ET endstream endobj 23 0 obj << /Length 42 >> stream BT /F1 15 Tf 72 720 Td (New page 5) Tj ET endstream endobj 24 0 obj << /Length 42 >> stream BT /F1 15 Tf 72 720 Td (New page 6) Tj ET endstream endobj 25 0 obj << /Length 47 >> stream BT /F1 15 Tf 72 720 Td (Original page 4) Tj ET endstream endobj 26 0 obj << /Length 47 >> stream BT /F1 15 Tf 72 720 Td (Original page 6) Tj ET endstream endobj 27 0 obj << /Length 47 >> stream BT /F1 15 Tf 72 720 Td (Original page 7) Tj ET endstream endobj 28 0 obj << /Length 47 >> stream BT /F1 15 Tf 72 720 Td (Original page 8) Tj ET endstream endobj 29 0 obj << /Length 43 >> stream BT /F1 15 Tf 72 720 Td (New page 11) Tj ET endstream endobj 30 0 obj << /Length 43 >> stream BT /F1 15 Tf 72 720 Td (New page 12) Tj ET endstream endobj xref 0 31 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000145 00000 n 0000000284 00000 n 0000000438 00000 n 0000000592 00000 n 0000000746 00000 n 0000000900 00000 n 0000001054 00000 n 0000001208 00000 n 0000001363 00000 n 0000001518 00000 n 0000001673 00000 n 0000001828 00000 n 0000001983 00000 n 0000002138 00000 n 0000002293 00000 n 0000002385 00000 n 0000002485 00000 n 0000002577 00000 n 0000002674 00000 n 0000002771 00000 n 0000002868 00000 n 0000002960 00000 n 0000003052 00000 n 0000003149 00000 n 0000003246 00000 n 0000003343 00000 n 0000003440 00000 n 0000003533 00000 n trailer << /Info 2 0 R /Root 1 0 R /Size 31 /ID [<21f7a6fb083dab8e29743918a08bfa31><31415926535897932384626433832795>] >> startxref 3626 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/no-contents-qdf.pdf0000644000064100006410000000111113247541377017276 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /MediaBox [ 0 0 720 720 ] /Parent 2 0 R /Resources << >> /Type /Page >> endobj xref 0 4 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000242 00000 n trailer << /Root 1 0 R /Size 4 /ID [<52bba3c78160d0c6e851b59110e5d076><31415926535897932384626433832795>] >> startxref 361 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.6.check0000644000064100006410000000026213247541377017135 0ustar ejbejbchecking a.pdf PDF Version: 1.3 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/unreferenced-indirect-scalar.pdf0000644000064100006410000000230013247541377021767 0ustar ejbejb%PDF-1.5 % %QDF-1.0 1 0 obj << /Type /ObjStm /Length 707 /N 7 /First 75 >> stream 2 0 3 74 4 166 5 388 6 526 7 581 8 629 %% Object stream: object 2, index 0 << /Pages 3 0 R /Type /Catalog >> %% Object stream: object 3, index 1 << /Count 1 /Kids [ 4 0 R ] /Type /Pages >> %% Object stream: object 4, index 2 %% Page 1 << /Contents 9 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet 6 0 R >> /Type /Page >> %% Object stream: object 5, index 3 << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> %% Object stream: object 6, index 4 [ /PDF /Text ] %% Object stream: object 7, index 5 [ 8 0 R ] %% Object stream: object 8, index 6 /Z endstream endobj %% Contents for page 1 9 0 obj << /Length 10 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 10 0 obj 44 endobj 11 0 obj << /Type /XRef /Length 48 /W [ 1 2 1 ] /Root 2 0 R /Size 12 /ID [<982e03ebde5d62a6c3134bf8abe8b99c>] >> stream K endstream endobj startxref 963 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.5.c-check0000644000064100006410000000005013247541377017372 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.1-ogen.c-check0000644000064100006410000000005013247541377020630 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.3.check0000644000064100006410000000026213247541377021143 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.3.check0000644000064100006410000000026213247541377017453 0ustar ejbejbchecking a.pdf PDF Version: 1.2 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/bad24-recover.out0000644000064100006410000000102613247541377016661 0ustar ejbejbWARNING: bad24.pdf (object 4 0, offset 385): expected endstream WARNING: bad24.pdf (object 4 0, offset 341): attempting to recover stream length WARNING: bad24.pdf (object 4 0, offset 341): recovered stream length: 54 /QTest is indirect and has type stream (10) /QTest is a stream. Dictionary: << /Length 44 >> Raw stream data: BT /F1 24 Tf 72 720 Td (Potato) Tj ET enxstream Uncompressed stream data: BT /F1 24 Tf 72 720 Td (Potato) Tj ET enxstream End of stream data unparse: 4 0 R unparseResolved: 4 0 R test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/leading-junk.out0000644000064100006410000000070513247541377016675 0ustar ejbejbchecking leading-junk.pdf PDF Version: 1.4 R = 3 P = -4 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed File is linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.11.c-check0000644000064100006410000000040613247541377017770 0ustar ejbejbversion: 1.5 linearized: 1 encrypted: 1 user password: extract for accessibility: 1 extract for any purpose: 1 print low resolution: 1 print high resolution: 1 modify document assembly: 1 modify forms: 1 modify annotations: 1 modify other: 1 modify anything: 1 qpdf-8.0.2/qpdf/qtest/qpdf/bad23.pdf0000644000064100006410000000141213247541377015156 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length () >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /QTest 4 0 R >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.11-ogen.c-check0000644000064100006410000000040613247541377020700 0ustar ejbejbversion: 1.5 linearized: 1 encrypted: 1 user password: extract for accessibility: 1 extract for any purpose: 1 print low resolution: 1 print high resolution: 1 modify document assembly: 1 modify forms: 1 modify annotations: 1 modify other: 1 modify anything: 1 qpdf-8.0.2/qpdf/qtest/qpdf/test-32.out0000644000064100006410000000025513247541377015526 0ustar ejbejbfile: a.pdf linearized: no newline: no file: b.pdf linearized: yes newline: no file: c.pdf linearized: no newline: yes file: d.pdf linearized: yes newline: yes test 32 done qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.generate.exp0000644000064100006410000000544113247541377020305 0ustar ejbejb%PDF-1.5 % 11 0 obj << /Linearized 1 /L 2849 /H [ 628 146 ] /O 15 /E 1707 /N 5 /T 2602 >> endobj 12 0 obj << /Type /XRef /Length 72 /W [ 1 2 1 ] /Index [ 11 18 ] /Root 13 0 R /Size 29 /Prev 2603 /ID [<31415926535897932384626433832795>] >> stream 5tk endstream endobj 13 0 obj << /Moo 19 0 R /Pages 20 0 R /Type /Catalog >> endobj 14 0 obj << /Filter /FlateDecode /S 57 /Length 68 >> stream xc```p@l&f a}V-_W(( DU @ $%"dv  endstream endobj 15 0 obj << /Contents 16 0 R /MediaBox 18 0 R /Parent 20 0 R /Resources 23 0 R /Type /Page >> endobj 16 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 17 0 obj << /Type /ObjStm /Length 623 /N 10 /First 66 >> stream 19 0 20 25 21 83 22 167 23 212 24 257 25 349 26 364 27 462 28 555 << /One 1 /Two 28 0 R >> << /Count 5 /Kids [ 15 0 R 1 0 R 21 0 R ] /Type /Pages >> << /Count 3 /Kids [ 3 0 R 5 0 R 7 0 R ] /Parent 20 0 R /Quack 16059 /Type /Pages >> << /Font << /F1 24 0 R >> /ProcSet 25 0 R >> << /Font << /F1 26 0 R >> /ProcSet 25 0 R >> << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> [ /PDF /Text ] << /BaseFont /Courier-Oblique /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> << /BaseFont /Times-Bold /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> 2 endstream endobj 18 0 obj [ 0 0 576 792 ] endobj 1 0 obj << /Contents 2 0 R /MediaBox 18 0 R /Parent 20 0 R /Resources 22 0 R /Type /Page >> endobj 2 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 322 Td (Potato 2) Tj ET endstream endobj 3 0 obj << /Contents 4 0 R /MediaBox 9 0 R /Moo 19 0 R /Parent 21 0 R /Resources 22 0 R /Rotate 0 /Type /Page >> endobj 4 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 322 Td (Potato 3) Tj ET endstream endobj 5 0 obj << /Contents 6 0 R /MediaBox 9 0 R /Parent 21 0 R /Resources << /Font << /F1 27 0 R >> /ProcSet 25 0 R >> /Rotate 0 /Type /Page >> endobj 6 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 322 Td (Potato 4) Tj ET endstream endobj 7 0 obj << /Contents 8 0 R /MediaBox [ 0 0 306 396 ] /Parent 21 0 R /Resources 22 0 R /Rotate 180 /Type /Page >> endobj 8 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 322 Td (Potato 5) Tj ET endstream endobj 9 0 obj [ 0 0 576 396 ] endobj 10 0 obj << /Type /XRef /Length 44 /W [ 1 2 1 ] /Size 11 /ID [<31415926535897932384626433832795>] >> stream mD 5   + endstream endobj startxref 216 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.12.check0000644000064100006410000000026213247541377017551 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.10-ogen.check0000644000064100006410000000067613247541377020147 0ustar ejbejbchecking a.pdf PDF Version: 1.5 R = 3 P = -4 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/split-exp-07.Pdf0000644000064100006410000000136313247541377016401 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TsM,.D 2endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 6 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000398 00000 n trailer << /Root 1 0 R /Size 6 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 497 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad8-recover.out0000644000064100006410000000041613247541377016605 0ustar ejbejbWARNING: bad8.pdf: file is damaged WARNING: bad8.pdf (offset 543): xref not found WARNING: bad8.pdf: Attempting to reconstruct cross-reference table /QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-force-1.8.out0000644000064100006410000000006213247541377021011 0ustar ejbejbversion: 1.8 extension level: 0 null test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.disable.exp0000644000064100006410000000240513247541377020452 0ustar ejbejb%PDF-1.5 % 2 0 obj << /Linearized 1 /L 1285 /H [ 569 118 ] /O 5 /E 1060 /N 1 /T 1127 >> endobj xref 2 7 0000000015 00000 n 0000000520 00000 n 0000000569 00000 n 0000000687 00000 n 0000000830 00000 n 0000000860 00000 n 0000000967 00000 n trailer << /Root 3 0 R /Size 9 /Prev 1119 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 0 %%EOF 3 0 obj << /Pages 1 0 R /Type /Catalog >> endobj 4 0 obj << /Filter /FlateDecode /S 36 /Length 41 >> stream xc```a``dR8p1?bC endstream endobj 5 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 1 0 R /Resources << /Font << /F1 7 0 R >> /ProcSet 6 0 R >> /Type /Page >> endobj 6 0 obj [ /PDF /Text ] endobj 7 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 8 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 1 0 obj << /Count 1 /Kids [ 5 0 R ] /Type /Pages >> endobj xref 0 2 0000000000 65535 f 0000001060 00000 n trailer << /Size 2 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 216 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/metadata-crypt-filter.pdf0000644000064100006410000003557513247541377020506 0ustar ejbejb%PDF-1.5 % 1 0 obj << /Metadata 3 0 R /Outlines 4 0 R /PageLabels << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /PageMode /UseOutlines /Pages 5 0 R /Type /Catalog >> endobj 2 0 obj << /CreationDate /ModDate >> endobj 3 0 obj << /Subtype /XML /Type /Metadata /DecodeParms << /Name /Identity /Type /CryptFilterDecodeParms >> /Filter /Crypt /Length 770 >> stream 2003-10-10T18:04:32-03:00 2003-10-10T18:04:32-03:00 2003-10-10T18:04:32-03:00 2003-10-10T18:04:32-03:00 2003-10-10T18:04:32-03:00 endstream endobj 4 0 obj << /Count 6 /First 6 0 R /Last 7 0 R /Type /Outlines >> endobj 5 0 obj << /Count 30 /Kids [ 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 35 0 R 36 0 R 37 0 R ] /Type /Pages >> endobj 6 0 obj << /Count 4 /Dest [ 13 0 R /XYZ null null null ] /First 38 0 R /Last 39 0 R /Next 7 0 R /Parent 4 0 R /Title <0bace566042e35f13ccb00496b6552b92c0c4c87ca4a8cbe11761a3c9718c8c0> /Type /Outline >> endobj 7 0 obj << /Dest [ 23 0 R /XYZ 66 756 3 ] /Parent 4 0 R /Prev 6 0 R /Title /Type /Outline >> endobj 8 0 obj << /Contents 40 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 9 0 obj << /Contents 43 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 10 0 obj << /Contents 44 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 11 0 obj << /Contents 45 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 12 0 obj << /Contents 46 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 13 0 obj << /Contents 47 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 14 0 obj << /Contents 48 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 15 0 obj << /Contents 49 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 16 0 obj << /Contents 50 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 17 0 obj << /Contents 51 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 18 0 obj << /Contents 52 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 19 0 obj << /Contents 53 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 20 0 obj << /Contents 54 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 21 0 obj << /Contents 55 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 22 0 obj << /Contents 56 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 23 0 obj << /Contents 57 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 24 0 obj << /Contents 58 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 25 0 obj << /Contents 59 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 26 0 obj << /Contents 60 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 27 0 obj << /Contents 61 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 28 0 obj << /Contents 62 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 29 0 obj << /Contents 63 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 30 0 obj << /Contents 64 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 31 0 obj << /Contents 65 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 32 0 obj << /Contents 66 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 33 0 obj << /Contents 67 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 34 0 obj << /Contents 68 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 35 0 obj << /Contents 69 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 36 0 obj << /Contents 70 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 37 0 obj << /Contents 71 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 38 0 obj << /Count -3 /Dest [ 19 0 R /Fit ] /First 72 0 R /Last 73 0 R /Next 39 0 R /Parent 6 0 R /Title <3fb30ac89234ff057e20814f60a034d2e5025f8cc58e> /Type /Outline >> endobj 39 0 obj << /Count 2 /Dest [ 21 0 R /FitH 792 ] /First 74 0 R /Last 75 0 R /Parent 6 0 R /Prev 38 0 R /Title /Type /Outline >> endobj 40 0 obj << /Length 50 /Filter /FlateDecode >> stream tv4Rnjaa-XjEB)s7DZJlendstream endobj 41 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 42 0 obj [ /PDF /Text ] endobj 43 0 obj << /Length 50 /Filter /FlateDecode >> stream KCZX.WZhwwA'v jWY}endstream endobj 44 0 obj << /Length 50 /Filter /FlateDecode >> stream ę|qsg:/IƸҐQ,V;Ukb{Ԝ,endstream endobj 45 0 obj << /Length 50 /Filter /FlateDecode >> stream Cv=J@VޥI>Ht5y{7ݢK٪Py˨h_endstream endobj 46 0 obj << /Length 50 /Filter /FlateDecode >> stream FKEnADov8 ,J;4J؇am"endstream endobj 47 0 obj << /Length 50 /Filter /FlateDecode >> stream 1'[1fi:l:S$GʮD1:]Ѩiendstream endobj 48 0 obj << /Length 50 /Filter /FlateDecode >> stream 2d#[ߑ)Oŵ j)^iNmOʢf}endstream endobj 49 0 obj << /Length 50 /Filter /FlateDecode >> stream &;PG2fs@[Ԡy> stream 7ۥsIT!ݔ%ÞXjIdMVQ+{65fendstream endobj 51 0 obj << /Length 50 /Filter /FlateDecode >> stream l∿q kO vѪ[F3D{CAp,endstream endobj 52 0 obj << /Length 51 /Filter /FlateDecode >> stream bǕM+|f.Ѥ8|{o#-&t%ca|Tendstream endobj 53 0 obj << /Length 51 /Filter /FlateDecode >> stream Nc&fFuy4e.X\X"Kp;E[hzKcbendstream endobj 54 0 obj << /Length 51 /Filter /FlateDecode >> stream }s+8QH}zM >i|v&&|!endstream endobj 55 0 obj << /Length 51 /Filter /FlateDecode >> stream &hyu8iҐ̈́qSQ #.P5)I}+ˮendstream endobj 56 0 obj << /Length 51 /Filter /FlateDecode >> stream X$Q$ B2.`e\tVw'q#E(~Yހd}endstream endobj 57 0 obj << /Length 51 /Filter /FlateDecode >> stream _|Y9-n*k IAs}瑁L_9AsRendstream endobj 58 0 obj << /Length 51 /Filter /FlateDecode >> stream _ZţH#!ެk39$/m?ڦl/Z/}@6@Vve7endstream endobj 59 0 obj << /Length 51 /Filter /FlateDecode >> stream Fl+y'k`2orfY%1endstream endobj 60 0 obj << /Length 51 /Filter /FlateDecode >> stream D%MXe=F( Iv_enҩVb! r!Iendstream endobj 61 0 obj << /Length 51 /Filter /FlateDecode >> stream }Q[ULWh]"*ԶGt3~njoo{CD endstream endobj 62 0 obj << /Length 51 /Filter /FlateDecode >> stream !Ӂ7aJ8c1[LܼPQl.bS)al L#+&sendstream endobj 63 0 obj << /Length 51 /Filter /FlateDecode >> stream nqbv0X:V|b毕hmG0۔> stream @UYX#`[sS?*f( HuhByendstream endobj 65 0 obj << /Length 51 /Filter /FlateDecode >> stream dq[!r09 F)hBQcGS`E)6k?mIendstream endobj 66 0 obj << /Length 50 /Filter /FlateDecode >> stream p*-$ >v_a.F!f2%endstream endobj 67 0 obj << /Length 51 /Filter /FlateDecode >> stream WSX\,^Mʵ2A" p]>|/X,P3endstream endobj 68 0 obj << /Length 51 /Filter /FlateDecode >> stream օU=MŢNSgϮݏX #߀}`*?h6Pss{Vendstream endobj 69 0 obj << /Length 51 /Filter /FlateDecode >> stream !h,s!/Ci"#mCAO$9Ⱦh${OM'endstream endobj 70 0 obj << /Length 51 /Filter /FlateDecode >> stream 7ZSL0=ƻ./ |:&_! s*u#endstream endobj 71 0 obj << /Length 51 /Filter /FlateDecode >> stream P+@Y( {?g]lvR9UŒ?-wOendstream endobj 72 0 obj << /Count -2 /Dest [ 20 0 R /FitV 100 ] /First 76 0 R /Last 77 0 R /Next 73 0 R /Parent 38 0 R /Title /Type /Outline >> endobj 73 0 obj << /Count 1 /Dest [ 20 0 R /XYZ null null null ] /First 78 0 R /Last 78 0 R /Parent 38 0 R /Prev 72 0 R /Title (輧:8\226v\)N\(\210\035NT\036mvj\tnl\212;o.\2113) /Type /Outline >> endobj 74 0 obj << /Dest [ 9 0 R /FitR 66 714 180 770 ] /Next 75 0 R /Parent 39 0 R /Title <498fe6ebfb28be416edddb53c1a63ffee3887fce2a7a2e34043792493f5a7c1f8818fa24a81dbbd055212dae> /Type /Outline >> endobj 75 0 obj << /Dest [ 8 0 R /XYZ null null null ] /Parent 39 0 R /Prev 74 0 R /Title <69fb82b1b1b8833e343e5f401879d3083e0cd738a3f54342e881ead5b6bc1816e7e3b431d48b1c0a14> /Type /Outline >> endobj 76 0 obj << /Dest [ 26 0 R /XYZ null null null ] /Next 77 0 R /Parent 72 0 R /Title <1433a18038fcd41d81200f85f0f942caedcce35a9fddde851dd1b70def5f196aeac27ccf5f5b725ecc89be> /Type /Outline >> endobj 77 0 obj << /Dest [ 27 0 R /XYZ null null null ] /Parent 72 0 R /Prev 76 0 R /Title <9028484736aaf8f0b5eedc521a7169cc9e2295cfd80eed0c2e41c44c26ba7c6ff586a290be701394f7e5ad> /Type /Outline >> endobj 78 0 obj << /Dest [ 30 0 R /XYZ null null null ] /Parent 73 0 R /Title <6c21f1d776e7e20cadb7be7247c9856e4da1fbaded20b1596cc68c35e8c7f5c2ebd4a242796ea858837daa> /Type /Outline >> endobj 79 0 obj << /CF << /StdCF << /AuthEvent /DocOpen /CFM /V2 >> >> /EncryptMetadata false /Filter /Standard /Length 128 /O <566fa873ee33c797cd3b904fdadf814afa34df9a38f6ed41b984e2c6da2aa6f5> /P -4 /R 4 /StmF /StdCF /StrF /StdCF /U <3a40816f776fccd39a9c505a9d4110e60122456a91bae5134273a6db134c87c4> /V 4 >> endobj xref 0 80 0000000000 65535 f 0000000015 00000 n 0000000378 00000 n 0000000520 00000 n 0000001450 00000 n 0000001521 00000 n 0000001783 00000 n 0000001992 00000 n 0000002153 00000 n 0000002334 00000 n 0000002515 00000 n 0000002697 00000 n 0000002879 00000 n 0000003061 00000 n 0000003243 00000 n 0000003425 00000 n 0000003607 00000 n 0000003789 00000 n 0000003971 00000 n 0000004153 00000 n 0000004335 00000 n 0000004517 00000 n 0000004699 00000 n 0000004881 00000 n 0000005063 00000 n 0000005245 00000 n 0000005427 00000 n 0000005609 00000 n 0000005791 00000 n 0000005973 00000 n 0000006155 00000 n 0000006337 00000 n 0000006519 00000 n 0000006701 00000 n 0000006883 00000 n 0000007065 00000 n 0000007247 00000 n 0000007429 00000 n 0000007611 00000 n 0000007788 00000 n 0000007977 00000 n 0000008098 00000 n 0000008206 00000 n 0000008237 00000 n 0000008358 00000 n 0000008479 00000 n 0000008600 00000 n 0000008721 00000 n 0000008842 00000 n 0000008963 00000 n 0000009084 00000 n 0000009205 00000 n 0000009326 00000 n 0000009448 00000 n 0000009570 00000 n 0000009692 00000 n 0000009814 00000 n 0000009936 00000 n 0000010058 00000 n 0000010180 00000 n 0000010302 00000 n 0000010424 00000 n 0000010546 00000 n 0000010668 00000 n 0000010790 00000 n 0000010912 00000 n 0000011034 00000 n 0000011155 00000 n 0000011277 00000 n 0000011399 00000 n 0000011521 00000 n 0000011643 00000 n 0000011765 00000 n 0000011966 00000 n 0000012176 00000 n 0000012376 00000 n 0000012569 00000 n 0000012767 00000 n 0000012965 00000 n 0000013150 00000 n trailer << /Info 2 0 R /Root 1 0 R /Size 80 /ID [<66d36a30a97e0f16f39955c6221e0c2a><31415926535897932384626433832795>] /Encrypt 79 0 R >> startxref 13459 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/object-types-os.pdf0000644000064100006410000000154113247541377017315 0ustar ejbejb%PDF-1.5 % 1 0 obj << /Type /ObjStm /Length 434 /N 6 /First 32 >> stream 2 0 3 34 4 78 5 206 6 298 7 313 << /Pages 3 0 R /Type /Catalog >> << /Count 1 /Kids [ 4 0 R ] /Type /Pages >> << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet 6 0 R >> /Type /Page >> << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> [ /PDF /Text ] << /Dictionary << /Key1 /Value1 /Key2 [ /Item0 << /K [ /V ] >> /Item2 ] >> /Integer 5 >> endstream endobj 8 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 9 0 obj << /Type /XRef /Length 40 /W [ 1 2 1 ] /QTest 7 0 R /Root 2 0 R /Size 10 /ID [<5ecb4bcc69402d31e10c2e63ec8500ee>] >> stream m endstream endobj startxref 621 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad3-recover.out0000644000064100006410000000041613247541377016600 0ustar ejbejbWARNING: bad3.pdf: file is damaged WARNING: bad3.pdf (offset 542): xref not found WARNING: bad3.pdf: Attempting to reconstruct cross-reference table /QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/issue-148.out0000644000064100006410000000145113247541377015766 0ustar ejbejbWARNING: issue-148.pdf: can't find PDF header WARNING: issue-148.pdf (xref stream: object 8 0, offset 26): stream dictionary lacks /Length key WARNING: issue-148.pdf (xref stream: object 8 0, offset 73): attempting to recover stream length WARNING: issue-148.pdf (xref stream: object 8 0, offset 73): recovered stream length: 2 WARNING: issue-148.pdf (xref stream: object 8 0, offset 85): expected endobj WARNING: issue-148.pdf (offset 73): error decoding stream data for object 8 0: stream inflate: inflate: data: incorrect header check WARNING: issue-148.pdf: file is damaged WARNING: issue-148.pdf (offset 73): getStreamData called on unfilterable stream WARNING: issue-148.pdf: Attempting to reconstruct cross-reference table issue-148.pdf: unable to find trailer dictionary while recovering damaged file qpdf-8.0.2/qpdf/qtest/qpdf/extensions-none-min-1.6.out0000644000064100006410000000006213247541377020540 0ustar ejbejbversion: 1.6 extension level: 0 null test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/eof-reading-token.out0000644000064100006410000000027613247541377017626 0ustar ejbejbchecking eof-reading-token.pdf PDF Version: 1.3 File is not encrypted File is not linearized WARNING: eof-reading-token.pdf object stream 12 (object 13 0, offset 5): EOF while reading token qpdf-8.0.2/qpdf/qtest/qpdf/enc-XI-long-password.pdf0000644000064100006410000002524313247541377020153 0ustar ejbejb%PDF-1.7 % 88 0 obj <>stream c2XC6|6$d5E\f=j&KNjd5>x3 zyIg{gl-</ tй%LK#NTF endstream endobj 89 0 obj <>stream &2~ "vT-4@ h@lO>CE B`h^㧎Z:HoeFz'?LlQN, L+ȣȎ~"MhroD4-fds߇ endstream endobj 90 0 obj <>stream m N$@ /`4Z R:Y k%oi+VG6 WKrUd~Z`}zV 5gF +T zA~8åt2v8 bH1ȭ!|S"_E%_ڈX|/f)2gD|U8_vJ ?-_^GՖPH7bPEᔐNKN5D(B2g o-8m⛯qX,K9LsфRwRt ] 3@ߓG^Up*jض5ع~lQ^mfqA]d "ןɨ.>aaY -vc$, v}mDy.Vg+ٗvѲj|$n:bLACJD6@Nk|ڋ='Fyk6!SpGZZodiKrȳN`~LSc!+p;ߋSc7G/۝" endstream endobj 91 0 obj <>stream ~`ܫ2McE!AwX0_xLd$A`lju>o؛I[6T.?*O< ٸ ( "VTv0TyqMWsE1-FjCZ6ɱ ǵ endstream endobj 92 0 obj <>stream A*ft*1[C۵dAwtw+st/^/]p[ݼ>D`7z=r1YOY :[+a :pT9-Rz%`:-iB}E?1C6ns}B|^& &ScKu%9V0Kt4 gAw=hxxwrߢXy$&kEuQI 1>JpPoeCEmLg.} XRta:DbsSZ6vYƆ zFu)[^+r˰7smk#aqus>stream |a)m;cX惛ʩD5&t]^ 0C 5XJ=2`]7Y5WeᏃ^  endstream endobj 4 0 obj <>stream 擗!x\jEdMσERm*XZ9LSVHM*ȽY37|Ey5k endstream endobj 6 0 obj <>stream $q_|˂OG['穨5~2Y]R:F!ͮRXݓrSJ?qJy#L4"V#˿ endstream endobj 8 0 obj <>stream GӮ0}[cmۘDv?5M z89vOHGo7a endstream endobj 10 0 obj <>stream Q,lZbxQbV{4@p޳ e ڸBEi\:*rP^Y?j endstream endobj 12 0 obj <>stream φ@}W]4TaH.g, #ת<'-!T4, >stream t5;LD_ʺgbUT! aj$`!)z |1*1ȬAz2 o U endstream endobj 16 0 obj <>stream (|0F A{@Fu!mC+h R5Ajpw WŒy h endstream endobj 18 0 obj <>stream TK*B4UJTC[(&>eMGlW|6BF)ce6>{J<߂DNEOij endstream endobj 20 0 obj <>stream ;?u#%>ҹSׇ_^5Y[)SwP|&>? ++@ B endstream endobj 22 0 obj <>stream >ȁ#61g"%ka3Q'kve:)YRx-f/IǾVщd^B}bKN endstream endobj 24 0 obj <>stream s/h?Pi=B$rS5{pT6z>stream yru;MJn {D> r:2A]xF^I~% ?m;zְ%򴱤ǦO endstream endobj 28 0 obj <>stream <ٹ>4 =~8Myyj&[,6, 9+;uO=~ɾ/& UtG,*P endstream endobj 30 0 obj <>stream OtK^漘:ykp3g\t\ֵ;Ml&GKl $ͻfpLݧx嶘8hd0 endstream endobj 32 0 obj <>stream lcCR"HVXg&}>Lڿgヽ7Jpm"IƤSc O endstream endobj 34 0 obj <>stream gZy:2lVPmR5NF?Ԓh # rq:o|XC%tF\SU*SHSc endstream endobj 36 0 obj <>stream TÙިA0O*y͑Um<]b=<6$@T6)N&'ɲr3,q|p2hFHS endstream endobj 38 0 obj <>stream 9@MM0gh.+1L,{ed_M6чQYYfᲡ>Q2|ؘ]eCI endstream endobj 40 0 obj <>stream T33v %d)Qys@nyyZ\Ռn C7m}ua(LjBg1>e0v$ endstream endobj 42 0 obj <>stream o>stream jRI0fs[2Vm}sO\I/,ͫwDF?T4{P|*l^﩮Z" ˠ=HZ'dAR endstream endobj 46 0 obj <>stream 7&uvkLDRTSA;H(L}KI+qm$ӜC Lz.BՂ$˩=K endstream endobj 48 0 obj <>stream nN"?y%T Kd1$hN_[=j7VTpf룻JMzl endstream endobj 50 0 obj <>stream !$[#f!s*5I [2:XH5op,V@Ѓq ۥhrngN8mc endstream endobj 52 0 obj <>stream Bףdcu>dC: wYcUD4AX*28AJ.>stream _K NxKڋ rQϤ p? oz{`Ef-Eb*ɏ' endstream endobj 56 0 obj <>stream "am¥pWK~=(L y"0O+QrN^4"g7 \@Z~|3_L)5U6 endstream endobj 58 0 obj <>stream b=ๅqGHSNF!ysU_RF ;L%¢(#$.F %-L endstream endobj 59 0 obj <>stream ڏR$*˔%TRM1`[4}anH՟DI5o¬h5M"([p g5yc0҉! A6/ĭD[ sB]n؞NȞ.E+8}v('N~`Yn'Ӫ$9̟hΌNY'Խ{Yd=|E\z\DnۤXZ&"vqﲓ*ifiIF6C 8[sҘ$+i4#96J5-ue./&4B\$Yht.}hϩ\9u pj$/y23m{U2@H/)!$Y*0#"~&r*~_rƎN0EU6X-~Dg`0:~Gu LfVgEIY7Aԫ^$DF*Èx`r +X4P<5.46nدKtInh_'؇JPt z0T/+ѸCyx^ԭ4M';[ҋ.6;9:Uo0X?Sf$S҄K#S;܆}Q etD^8ۀָ0V5cdXMϮ}/oIX$tZCytmzeI/䩒 ©(ls[׋4 $=ӤkoWnp468-w$V-ZV ݰ &gR'id_ ʥ(CbsTMV>%Wn} /R߂4ARoGvxxEIX+M`fqz)u_c6\AzxMrIGzl;;|xeKWBbN-dRVd` ]򯦫*-QLҩry3c qRT}u>;DZ q!kRQz? n{A)Kn#~'o';0_CA <8<~j 5)AAֳ-G!Ү<1cKb5ώޗmԱO7XmgMd O7^P1ѥQ9"c ~+䡟(MSDΨVEIgfUKަ{+'/AVYW ݶ*_aNz`:^Ww p^Nn1>:}.36d+60p`}BFO-۫?'-OGoy6_w!kɭOBgF2)99k~i(wv`8X>nnx<< u'3p5ÿ@Q \<xgs Pc" y< kǔdzot3jWv Sgěy Az22Q.kzj셱GĵVTx^0B}XR4&-ģ@ qIdi*уN^+틥aݢ^; 4vٺIsޜb:+c ^ykK5rپ,fn^\*+tWF}w:(ST.*ب8ZB[kBEIn1|1 T2a \0[7z-g}6 cM !!l?r{'r Q'GghȂږP]&f0yھo#)/ZP?zB)]f"J#oYTV&sfm⯃~o7L6d(J ODą#;L~Vw]t'h/ }Jbv5QZվVl=78G5ctz b?')`kg6Q8jj!t'XrIƣXv>8|6!9'[k()iO ^͌=Y,!^x bVis80nIVst^8^! W GTJw \|u^YXF.H^H]<˸UZ[ޤ|[SԊ< )`ax²1LM/$Ϲ& )%5&rI[wkrOOGu zF֟ CAVtg~_4-nBYc4{_tyu-BAqeQd`o3l "jwKÉ1:omOK7P ֱ1_}͋々a`)׵A!<ɔ2@FwuֱR>(YY;5AR&(琭GF&G|En2`:+XNr2$} ~2Mbmql$ <9>3+tQvSEX sJ'aֲz8{dąf ص=(m4m!@?ɟ,??M8oa0`b]]iFP'> 9`ng&s1'74./7C;co1[EDdhR:`"| 7DB)F .*  endstream endobj 66 0 obj <>>>/Filter/Standard/Length 256/O(Gq J~xt c~HCXd~kyhͥA)/OE('l[r5OЄ# r)/P -1028/Perms(ȅ < V)/R 6/StmF/StdCF/StrF/StdCF/U(b2\ry7"T z=urrK-jP8X)/UE(^F׷*aoN;o)/V 5>> endobj 67 0 obj <>>>/Metadata 59 0 R/Outlines 75 0 R/PageLabels<>2<>7<>9<>11<>12<>15<>19<>20<>22<>23<>29<>]>>/PageMode/UseOutlines/Pages 63 0 R/Type/Catalog>> endobj 70 0 obj <>stream 殡" Fqf>/Encrypt 66 0 R/Filter/FlateDecode/ID[<7F25422CE0BDE941BB4347FD74E2B041>]/Info 64 0 R/Length 343/Root 67 0 R/Size 94/Type/XRef/W[1 2 1]>>stream hޔ;,QKd`b0X "b "0, F:(пo@ M Xn `mM4):62>DfpT[D;o9+6TUf];Thv@<*.hAt v%^A~hA{0Ү`E~ҠwhY @tNFR>pJm)p&g.Vh 5Q"RkLDzh\WgIVu%%!-w! endstream endobj startxref 10299 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/copy-foreign-objects-out3.pdf0000644000064100006410000000417413247541377021213 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 3 0 R /Type /Catalog >> endobj 2 0 obj << /O1 4 0 R /O2 5 0 R /O3 6 0 R /This-is-QTest true >> endobj 3 0 obj << /Count 3 /Kids [ 7 0 R 8 0 R 6 0 R ] /Type /Pages >> endobj 4 0 obj [ /This-is-O1 /potato << /O2 [ 3.14159 << /O2 5 0 R >> 2.17828 ] >> /salad /O2 5 0 R /Stream1 9 0 R ] endobj 5 0 obj << /K1 [ 2.236 /O1 4 0 R 1.732 ] /O1 4 0 R /This-is-O2 true >> endobj 6 0 obj << /Contents 10 0 R /MediaBox [ 0 0 612 792 ] /OtherPage 8 0 R /Parent 3 0 R /Resources << /Font << /F1 11 0 R >> /ProcSet [ /PDF /Text ] >> /Rotate 180 /This-is-O3 true /Type /Page >> endobj 7 0 obj << /Contents 12 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 13 0 R >> /ProcSet 14 0 R >> /Type /Page >> endobj 8 0 obj << /Contents 15 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 11 0 R >> /ProcSet [ /PDF /Text ] >> /Rotate 180 /This-is-O3-other-page true /Type /Page >> endobj 9 0 obj << /Stream2 16 0 R /This-is-Stream1 true /Length 18 >> stream This is stream 1. endstream endobj 10 0 obj << /Length 47 >> stream BT /F1 15 Tf 72 720 Td (Original page 2) Tj ET endstream endobj 11 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 12 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 13 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 14 0 obj [ /PDF /Text ] endobj 15 0 obj << /Length 47 >> stream BT /F1 15 Tf 72 720 Td (Original page 3) Tj ET endstream endobj 16 0 obj << /Stream1 9 0 R /This-is-Stream2 true /Length 18 >> stream This is stream 2. endstream endobj xref 0 17 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000135 00000 n 0000000206 00000 n 0000000323 00000 n 0000000401 00000 n 0000000601 00000 n 0000000747 00000 n 0000000941 00000 n 0000001046 00000 n 0000001143 00000 n 0000001243 00000 n 0000001337 00000 n 0000001445 00000 n 0000001476 00000 n 0000001573 00000 n trailer << /QTest 2 0 R /Root 1 0 R /Size 17 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 1678 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.9.c-check0000644000064100006410000000005013247541377017376 0ustar ejbejbversion: 1.5 linearized: 1 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/bad31.out0000644000064100006410000000057313247541377015222 0ustar ejbejb/QTest is indirect and has type stream (10) /QTest is a stream. Dictionary: << /Filter [ /Oink /Moo /FlateDecode ] /Length 123 >> Raw stream data: x%11 b;t4| wXID8G>rQu O E:IWPlII)rp4~;As/҅jcszT.?u<*6 Uncompressed stream data: Stream data is not filterable. unparse: 7 0 R unparseResolved: 7 0 R test 0 done qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.7.c-check0000644000064100006410000000005013247541377017374 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/bad23-recover.out0000644000064100006410000000104213247541377016656 0ustar ejbejbWARNING: bad23.pdf (object 4 0, offset 314): /Length key in stream dictionary is not an integer WARNING: bad23.pdf (object 4 0, offset 341): attempting to recover stream length WARNING: bad23.pdf (object 4 0, offset 341): recovered stream length: 44 /QTest is indirect and has type stream (10) /QTest is a stream. Dictionary: << /Length () >> Raw stream data: BT /F1 24 Tf 72 720 Td (Potato) Tj ET Uncompressed stream data: BT /F1 24 Tf 72 720 Td (Potato) Tj ET End of stream data unparse: 4 0 R unparseResolved: 4 0 R test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/invalid-id-xref.pdf0000644000064100006410000000171113247541377017247 0ustar ejbejb%PDF-1.4 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet 6 0 R >> /Type /Page >> endobj 4 0 obj << /Length 48 /Filter /FlateDecode >> stream H(D8%"65%Pn1%d1:endstream endobj 5 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 6 0 obj [ /PDF /Text ] endobj 7 0 obj << /Filter /Standard /Length 128 /O <24512f443a39277424512f443a39277424512f443a39277424512f443a392774> /P -1804 /R 3 /U /V 2 >> endobj xref 0 8 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000266 00000 n 0000000384 00000 n 0000000491 00000 n 0000000521 00000 n trailer << /Root 1 0 R /Size 8 /Encrypt 7 0 R >> startxref 731 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.11-ogen.c-check0000644000064100006410000000040613247541377020402 0ustar ejbejbversion: 1.5 linearized: 1 encrypted: 1 user password: extract for accessibility: 1 extract for any purpose: 1 print low resolution: 1 print high resolution: 1 modify document assembly: 1 modify forms: 1 modify annotations: 1 modify other: 1 modify anything: 1 qpdf-8.0.2/qpdf/qtest/qpdf/extensions-other-force-1.7.3.out0000644000064100006410000000023513247541377021401 0ustar ejbejbversion: 1.7 extension level: 3 << /ADBE << /BaseVersion /1.7 /ExtensionLevel 3 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/bad29.out0000644000064100006410000000067013247541377015227 0ustar ejbejbWARNING: bad29.pdf (trailer, offset 742): null character not allowed in name token WARNING: bad29.pdf (trailer, offset 715): expected dictionary key but found non-name object; inserting key /QPDFFake1 WARNING: bad29.pdf (trailer, offset 715): expected dictionary key but found non-name object; inserting key /QPDFFake2 /QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 0 done qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.1.c-check0000644000064100006410000000005013247541377017702 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-other-force-1.8.0.out0000644000064100006410000000015513247541377022271 0ustar ejbejbversion: 1.8 extension level: 0 << /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/show-xref-by-id-filtered.out0000644000064100006410000000006413247541377021043 0ustar ejbejb@ zqpdf-8.0.2/qpdf/qtest/qpdf/object-stream.8.c-check0000644000064100006410000000005013247541377017711 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/extensions-none-min-1.3.out0000644000064100006410000000006213247541377020535 0ustar ejbejbversion: 1.3 extension level: 0 null test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-other-min-1.8.0.out0000644000064100006410000000015513247541377021756 0ustar ejbejbversion: 1.8 extension level: 0 << /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-other-min-1.8.2.out0000644000064100006410000000023513247541377021757 0ustar ejbejbversion: 1.8 extension level: 2 << /ADBE << /BaseVersion /1.8 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/bad21.pdf0000644000064100006410000000141313247541377015155 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /Som#ething 1 >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/content-stream-errors.out0000644000064100006410000000057213247541377020604 0ustar ejbejbchecking content-stream-errors.pdf PDF Version: 1.3 File is not encrypted File is not linearized page 1: page object 3 0 stream 7 0 (content, offset 52): parse error while reading object page 3: page object 5 0 stream 15 0 (stream data, offset 117): EOF found while reading inline image page 4: page object 6 0 stream 19 0 (content, offset 53): parse error while reading object qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.9.check0000644000064100006410000000067213247541377021156 0ustar ejbejbchecking a.pdf PDF Version: 1.5 R = 3 P = -4 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed File is linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/shallow_array.pdf0000644000064100006410000000142413247541377017135 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /QTest [ /A 1 0 R /B ] >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/override-compressed-object.out0000644000064100006410000000007113247541377021546 0ustar ejbejb(orig-1) (override-2) (override-3) (orig-4) test 38 done qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.7.c-check0000644000064100006410000000005013247541377021362 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.preserve.exp0000644000064100006410000000253513247541377020706 0ustar ejbejb%PDF-1.5 % 2 0 obj << /Linearized 1 /L 1373 /H [ 562 120 ] /O 6 /E 1166 /N 1 /T 1165 >> endobj 3 0 obj << /Type /XRef /Length 40 /W [ 1 2 1 ] /Index [ 2 10 ] /Root 4 0 R /Size 12 /Prev 1166 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> stream 2; endstream endobj 4 0 obj << /Pages 9 0 R /Type /Catalog >> endobj 5 0 obj << /Filter /FlateDecode /S 36 /Length 43 >> stream xc```f``2b' pe31 Bb8Lf2b@ endstream endobj 6 0 obj << /Contents 7 0 R /MediaBox [ 0 0 612 792 ] /Parent 9 0 R /Resources << /Font << /F1 11 0 R >> /ProcSet 10 0 R >> /Type /Page >> endobj 7 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 8 0 obj << /Type /ObjStm /Length 167 /N 3 /First 16 >> stream 9 0 10 44 11 59 << /Count 1 /Kids [ 6 0 R ] /Type /Pages >> [ /PDF /Text ] << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endstream endobj 1 0 obj << /Type /XRef /Length 8 /W [ 1 2 1 ] /Size 2 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> stream  endstream endobj startxref 216 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/issue-141b.out0000644000064100006410000000044413247541377016122 0ustar ejbejbWARNING: issue-141b.pdf: can't find PDF header WARNING: issue-141b.pdf: file is damaged WARNING: issue-141b.pdf (offset 7): xref not found WARNING: issue-141b.pdf: Attempting to reconstruct cross-reference table issue-141b.pdf: unable to find trailer dictionary while recovering damaged file qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-force-1.7.1.out0000644000064100006410000000014313247541377021147 0ustar ejbejbversion: 1.7 extension level: 1 << /ADBE << /BaseVersion /1.7 /ExtensionLevel 1 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.8-ogen.check0000644000064100006410000000026213247541377020110 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.4.check0000644000064100006410000000026213247541377017156 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/test4-1.pdf0000644000064100006410000000237613247541377015476 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 7 0 obj [ /PDF /Text ] endobj 8 0 obj << /Title 9 0 R /Subject 10 0 R /A 11 0 R /B 12 0 R >> endobj 9 0 obj (Some Title Is Here) endobj 10 0 obj (Subject) endobj 11 0 obj [ 1 2 3 ] endobj 12 0 obj << /A 11 0 R /B (B) >> endobj xref 0 13 0000000000 65535 f 0000000025 00000 n 0000000079 00000 n 0000000161 00000 n 0000000376 00000 n 0000000475 00000 n 0000000494 00000 n 0000000612 00000 n 0000000647 00000 n 0000000726 00000 n 0000000763 00000 n 0000000790 00000 n 0000000817 00000 n trailer << /Root 1 0 R /Size 13 /QTest 8 0 R /ID [] >> startxref 857 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/good10.pdf0000644000064100006410000000144213247541377015357 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /QTest [1 (2) 8 0 R 0.0 -0.0 0. -0.] >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/extensions-other-min-1.8.out0000644000064100006410000000015513247541377020727 0ustar ejbejbversion: 1.8 extension level: 0 << /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/zero-offset.out0000644000064100006410000000022213247541377016562 0ustar ejbejbchecking zero-offset.pdf PDF Version: 1.3 File is not encrypted File is not linearized WARNING: zero-offset.pdf (object 6 0): object has offset 0 qpdf-8.0.2/qpdf/qtest/qpdf/issue-146.pdf0000644000064100006410000005037413247541377015736 0ustar ejbejb%PDF-1.4 0 obj 1 0 obj <>0 R>1>> endobj 7 0 obj <> endo> endobj 9 0n trailer [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[< ] /Dum / >> EOF qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-min-1.7.1.out0000644000064100006410000000020513247541377020633 0ustar ejbejbversion: 1.7 extension level: 2 << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 /URL (http://something.adobe.com) >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/page-no-content.out0000644000064100006410000000013713247541377017322 0ustar ejbejbpage 1: 3 0 R content: 6 0 R page 2: 4 0 R content: page 3: 5 0 R content: 9 0 R qpdf-8.0.2/qpdf/qtest/qpdf/extensions-other-force-1.8.2.out0000644000064100006410000000023513247541377021401 0ustar ejbejbversion: 1.8 extension level: 2 << /ADBE << /BaseVersion /1.8 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.8.c-check0000644000064100006410000000005013247541377017673 0ustar ejbejbversion: 1.2 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/override-compressed-object.pdf0000644000064100006410000000343113247541377021513 0ustar ejbejb%PDF-1.5 % %------- 1 0 obj << /Type /ObjStm /Length 872 /N 9 /First 89 >> stream 2 0 3 130 4 222 5 445 6 583 7 638 8 683 9 728 10 774 %% Object stream: object 2, index 0 << /Pages 3 0 R /QTest [ 7 0 R 8 0 R 9 0 R 10 0 R ] /Type /Catalog >> %% Object stream: object 3, index 1 << /Count 1 /Kids [ 4 0 R ] /Type /Pages >> %% Object stream: object 4, index 2 %% Page 1 << /Contents 11 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet 6 0 R >> /Type /Page >> %% Object stream: object 5, index 3 << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> %% Object stream: object 6, index 4 [ /PDF /Text ] %% Object stream: object 7, index 5 (orig-1) %% Object stream: object 8, index 6 (orig-2) %% Object stream: object 9, index 7 (orig-3) %% Object stream: object 10, index 8 (orig-4) endstream endobj %% Contents for page 1 11 0 obj << /Length 12 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 12 0 obj 44 endobj 13 0 obj << /Type /XRef /Length 56 /W [ 1 2 1 ] /Root 2 0 R /Size 14 /ID [<6cc653d69571978496e43ed3814b0671>] >> stream Ui endstream endobj startxref 1129 %%EOF 14 0 obj << /Type /ObjStm /Length 53 /N 1 /First 40 >> stream 8 0 %% Object stream: object 8, index 1 (override-2) endstream endobj 9 0 obj (override-3) endobj 15 0 obj << /Type /XRef /Length 16 /W [ 1 2 1 ] /Root 2 0 R /Size 16 /Prev 1129 /Index [ 8 2 14 2 ] /ID [<58bf227b11a9ba064a8368754c94b79a>] >> stream o endstream endobj startxref 1560 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.2.check0000644000064100006410000000026213247541377021142 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/bad7.pdf0000644000064100006410000000135713247541377015110 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000128 00000 n 0000000300 00000 n 0000000389 00000 n 0000000424 00000 n trailer 3 << /Size 7 /Root 1 0 R >> startxref 542 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/issue-117.out0000644000064100006410000000103513247541377015760 0ustar ejbejbWARNING: issue-117.pdf: file is damaged WARNING: issue-117.pdf (offset 3526): xref not found WARNING: issue-117.pdf: Attempting to reconstruct cross-reference table WARNING: issue-117.pdf (offset 66): loop detected resolving object 2 0 WARNING: issue-117.pdf (object 2 0, offset 22): /Length key in stream dictionary is not an integer WARNING: issue-117.pdf (object 2 0, offset 67): attempting to recover stream length WARNING: issue-117.pdf (object 2 0, offset 67): recovered stream length: 91 attempt to make a stream into a direct object qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-other-force-1.6.out0000644000064100006410000000015513247541377022131 0ustar ejbejbversion: 1.6 extension level: 0 << /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/replaced-stream-data-flate.pdf0000644000064100006410000000261313247541377021337 0ustar ejbejb%PDF-1.3 % 3 0 obj << /Linearized 1 /L 1419 /H [ 585 118 ] /O 6 /E 1076 /N 1 /T 1241 >> endobj xref 3 7 0000000015 00000 n 0000000521 00000 n 0000000585 00000 n 0000000703 00000 n 0000000846 00000 n 0000000939 00000 n 0000000969 00000 n trailer << /Root 4 0 R /Size 10 /Prev 1233 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 0 %%EOF 4 0 obj << /Pages 1 0 R /QStream 2 0 R /Type /Catalog >> endobj 5 0 obj << /Filter /FlateDecode /S 36 /Length 41 >> stream xc```a``dR8p1?rI!" endstream endobj 6 0 obj << /Contents 7 0 R /MediaBox [ 0 0 612 792 ] /Parent 1 0 R /Resources << /Font << /F1 9 0 R >> /ProcSet 8 0 R >> /Type /Page >> endobj 7 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 8 0 obj [ /PDF /Text ] endobj 9 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 1 0 obj << /Count 1 /Kids [ 6 0 R ] /Type /Pages >> endobj 2 0 obj << /Filter /FlateDecode /Length 28 >> stream xK-WHI,ITH/R(.)JML"endstream endobj xref 0 3 0000000000 65535 f 0000001076 00000 n 0000001135 00000 n trailer << /Size 3 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 216 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/04_split-exp.zdf0000644000064100006410000000136313247541377016532 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TM,.) /endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 6 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000398 00000 n trailer << /Root 1 0 R /Size 6 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 497 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad26.pdf0000644000064100006410000000141213247541377015161 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 x obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /QTest 4 0 R >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/extensions-none-force-1.7.2.out0000644000064100006410000000014313247541377021214 0ustar ejbejbversion: 1.7 extension level: 2 << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.5.check0000644000064100006410000000026213247541377017134 0ustar ejbejbchecking a.pdf PDF Version: 1.3 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/a-11-split-exp.zdf0000644000064100006410000000174613247541377016671 0ustar ejbejb%PDF-1.4 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 54 >> stream x 휏nyA?(=2?&ꍕ>(ٙ|HM- endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 6 0 obj << /Filter /Standard /Length 128 /O <2a2f0a1990192c60114730bdcd39f37828a53c89a340dd473c85299dc5258e1c> /P -4 /R 3 /U /V 2 >> endobj xref 0 7 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000399 00000 n 0000000498 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] /Encrypt 6 0 R >> startxref 705 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/issue-99b.out0000644000064100006410000000051213247541377016052 0ustar ejbejbWARNING: issue-99b.pdf: file is damaged WARNING: issue-99b.pdf (object 1 0, offset 9): object with ID 0 WARNING: issue-99b.pdf: Attempting to reconstruct cross-reference table WARNING: issue-99b.pdf: object 1 0 not found in file after regenerating cross reference table issue-99b.pdf (offset 763): unable to find /Root dictionary qpdf-8.0.2/qpdf/qtest/qpdf/bad-jpeg-check.out0000644000064100006410000000045713247541377017055 0ustar ejbejbchecking bad-jpeg.pdf PDF Version: 1.3 File is not encrypted File is not linearized WARNING: bad-jpeg.pdf (offset 735): error decoding stream data for object 6 0: Not a JPEG file: starts with 0x77 0x77 WARNING: bad-jpeg.pdf (offset 735): stream will be re-processed without filtering to avoid data loss qpdf-8.0.2/qpdf/qtest/qpdf/good4.qdf0000644000064100006410000000213113247541377015277 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj %% Original object ID: 6 0 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 5 0 7 0 obj [ /PDF /Text ] endobj xref 0 8 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000242 00000 n 0000000484 00000 n 0000000583 00000 n 0000000629 00000 n 0000000774 00000 n trailer << /Root 1 0 R /Size 8 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 809 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/extensions-none-force-1.8.out0000644000064100006410000000006213247541377021055 0ustar ejbejbversion: 1.8 extension level: 0 null test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/linearization-bounds-1.pdf0000644000064100006410000003001613247541377020563 0ustar ejbejb%PDF-1.3 % 60 0 obj << /Linearized 1 /L 12302 /H [ 1114 192 ] /O 63 /E 3631 /N 30 /T 10983 >> endobj xref 60 19 0000000015 00000 n 0000000764 00000 n 0000001114 00000 n 0000001306 00000 n 0000001454 00000 n 0000001550 00000 n 0000001658 00000 n 0000001689 00000 n 0000001763 00000 n 0000001942 00000 n 0000002077 00000 n 0000002233 00000 n 0000002511 00000 n 0000002667 00000 n 0000002820 00000 n 0000002990 00000 n 0000003179 00000 n 0000003321 00000 n 0000003476 00000 n trailer << /Root 61 0 R /Size 79 /Prev 10974 /ID [<14d7d243d6d6ad3bc3f75c7c5994346d>] >> startxref 0 %%EOF 61 0 obj << /Outlines 67 0 R /PageLabels << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /PageMode /UseOutlines /Pages 59 0 R /Type /Catalog >> endobj 62 0 obj << /Filter /FlateDecode /S 999999 /Length 999999 >> stream xc```b``b`a`` 6+49@h&fr`V#<$"(f`g(ueОQ{^~M Xܙ&}m# endstream endobj 63 0 obj << /Contents 64 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 64 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 0) Tj ET endstream endobj 65 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 66 0 obj [ /PDF /Text ] endobj 67 0 obj << /Count 6 /First 68 0 R /Last 69 0 R /Type /Outlines >> endobj 68 0 obj << /Count 4 /Dest [ 9 0 R /XYZ null null null ] /First 70 0 R /Last 71 0 R /Next 69 0 R /Parent 67 0 R /Title (Iss 1 -> 5: /XYZ null null null) /Type /Outline >> endobj 69 0 obj << /Dest [ 29 0 R /XYZ 66 756 3 ] /Parent 67 0 R /Prev 68 0 R /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Type /Outline >> endobj 70 0 obj << /Count -3 /Dest [ 21 0 R /Fit ] /First 74 0 R /Last 75 0 R /Next 71 0 R /Parent 68 0 R /Title (Amanda 1.1 -> 11: /Fit) /Type /Outline >> endobj 71 0 obj << /Count 2 /Dest [ 25 0 R /FitH 792 ] /First 72 0 R /Last 73 0 R /Parent 68 0 R /Prev 70 0 R /Title /Type /Outline >> endobj 72 0 obj << /Dest [ 1 0 R /FitR 66 714 180 770 ] /Next 73 0 R /Parent 71 0 R /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Type /Outline >> endobj 73 0 obj << /Dest [ 63 0 R /XYZ null null null ] /Parent 71 0 R /Prev 72 0 R /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Type /Outline >> endobj 74 0 obj << /Count -2 /Dest [ 23 0 R /FitV 100 ] /First 77 0 R /Last 78 0 R /Next 75 0 R /Parent 70 0 R /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Type /Outline >> endobj 75 0 obj << /Count 1 /Dest [ 23 0 R /XYZ null null null ] /First 76 0 R /Last 76 0 R /Parent 70 0 R /Prev 74 0 R /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Type /Outline >> endobj 76 0 obj << /Dest [ 43 0 R /XYZ null null null ] /Parent 75 0 R /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Type /Outline >> endobj 77 0 obj << /Dest [ 35 0 R /XYZ null null null ] /Next 78 0 R /Parent 74 0 R /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Type /Outline >> endobj 78 0 obj << /Dest [ 37 0 R /XYZ null null null ] /Parent 74 0 R /Prev 77 0 R /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Type /Outline >> endobj 1 0 obj << /Contents 2 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 2 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 4 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 5 0 obj << /Contents 6 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 6 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 7 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 8 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 9 0 obj << /Contents 10 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 10 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 11 0 obj << /Contents 12 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 12 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 13 0 obj << /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 14 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 15 0 obj << /Contents 16 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 16 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 17 0 obj << /Contents 18 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 18 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 19 0 obj << /Contents 20 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 20 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 21 0 obj << /Contents 22 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 22 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 23 0 obj << /Contents 24 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 24 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 25 0 obj << /Contents 26 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 26 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 27 0 obj << /Contents 28 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 28 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 29 0 obj << /Contents 30 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 30 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 31 0 obj << /Contents 32 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 32 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 33 0 obj << /Contents 34 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 34 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 35 0 obj << /Contents 36 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 36 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 37 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 38 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 39 0 obj << /Contents 40 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 40 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 41 0 obj << /Contents 42 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 42 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 43 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 44 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 45 0 obj << /Contents 46 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 46 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 47 0 obj << /Contents 48 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 48 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 49 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 50 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 51 0 obj << /Contents 52 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 52 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 53 0 obj << /Contents 54 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 54 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 55 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 56 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 57 0 obj << /Contents 58 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 58 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 59 0 obj << /Count 30 /Kids [ 63 0 R 1 0 R 3 0 R 5 0 R 7 0 R 9 0 R 11 0 R 13 0 R 15 0 R 17 0 R 19 0 R 21 0 R 23 0 R 25 0 R 27 0 R 29 0 R 31 0 R 33 0 R 35 0 R 37 0 R 39 0 R 41 0 R 43 0 R 45 0 R 47 0 R 49 0 R 51 0 R 53 0 R 55 0 R 57 0 R ] /Type /Pages >> endobj xref 0 60 0000000000 65535 f 0000003631 00000 n 0000003777 00000 n 0000003872 00000 n 0000004018 00000 n 0000004113 00000 n 0000004259 00000 n 0000004354 00000 n 0000004500 00000 n 0000004595 00000 n 0000004742 00000 n 0000004838 00000 n 0000004986 00000 n 0000005082 00000 n 0000005230 00000 n 0000005326 00000 n 0000005474 00000 n 0000005570 00000 n 0000005718 00000 n 0000005814 00000 n 0000005962 00000 n 0000006059 00000 n 0000006207 00000 n 0000006304 00000 n 0000006452 00000 n 0000006549 00000 n 0000006697 00000 n 0000006794 00000 n 0000006942 00000 n 0000007039 00000 n 0000007187 00000 n 0000007284 00000 n 0000007432 00000 n 0000007529 00000 n 0000007677 00000 n 0000007774 00000 n 0000007922 00000 n 0000008019 00000 n 0000008167 00000 n 0000008264 00000 n 0000008412 00000 n 0000008509 00000 n 0000008657 00000 n 0000008754 00000 n 0000008902 00000 n 0000008999 00000 n 0000009147 00000 n 0000009244 00000 n 0000009392 00000 n 0000009489 00000 n 0000009637 00000 n 0000009734 00000 n 0000009882 00000 n 0000009979 00000 n 0000010127 00000 n 0000010224 00000 n 0000010372 00000 n 0000010469 00000 n 0000010617 00000 n 0000010714 00000 n trailer << /Size 60 /ID [<14d7d243d6d6ad3bc3f75c7c5994346d>] >> startxref 216 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/delete-and-reuse-check.out0000644000064100006410000000030113247541377020513 0ustar ejbejbchecking delete-and-reuse.pdf PDF Version: 1.3 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-min-1.6.out0000644000064100006410000000020513247541377020473 0ustar ejbejbversion: 1.7 extension level: 2 << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 /URL (http://something.adobe.com) >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/extensions-none-force-1.8.0.out0000644000064100006410000000006213247541377021213 0ustar ejbejbversion: 1.8 extension level: 0 null test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/no-pages-types.pdf0000644000064100006410000000137313247541377017144 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Zype /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Zype /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/show-page-1-content-raw.out0000644000064100006410000000007513247541377020614 0ustar ejbejbx+522R0B# 3U4SH5Tp -50(10P0641+2(Wqpdf-8.0.2/qpdf/qtest/qpdf/lin-special.5-ogen.c-check0000644000064100006410000000005013247541377020275 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.6.c-check0000644000064100006410000000005013247541377017671 0ustar ejbejbversion: 1.2 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.11-ogen.check0000644000064100006410000000067213247541377020167 0ustar ejbejbchecking a.pdf PDF Version: 1.5 R = 3 P = -4 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed File is linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/large_file-check-ostream-linearized.out0000644000064100006410000000023713247541377023265 0ustar ejbejbPDF Version: 1.5 File is not encrypted File is linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/extensions-none-force-1.7.3.out0000644000064100006410000000014313247541377021215 0ustar ejbejbversion: 1.7 extension level: 3 << /ADBE << /BaseVersion /1.7 /ExtensionLevel 3 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/extensions-other-force-1.7.2.out0000644000064100006410000000023513247541377021400 0ustar ejbejbversion: 1.7 extension level: 2 << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/extensions-other-min-1.7.2.out0000644000064100006410000000023513247541377021065 0ustar ejbejbversion: 1.7 extension level: 2 << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/issue-143.out0000644000064100006410000000306113247541377015760 0ustar ejbejbWARNING: issue-143.pdf: can't find PDF header WARNING: issue-143.pdf (xref stream: object 3 0, offset 654): stream keyword not followed by proper line terminator WARNING: issue-143.pdf (xref stream: object 3 0, offset 607): stream dictionary lacks /Length key WARNING: issue-143.pdf (xref stream: object 3 0, offset 654): attempting to recover stream length WARNING: issue-143.pdf (xref stream: object 3 0, offset 654): recovered stream length: 36 WARNING: issue-143.pdf: file is damaged WARNING: issue-143.pdf (object 1 0, offset 48): expected n n obj WARNING: issue-143.pdf: Attempting to reconstruct cross-reference table WARNING: issue-143.pdf (object 1 0, offset 24): expected dictionary key but found non-name object; inserting key /QPDFFake1 WARNING: issue-143.pdf (object 1 0, offset 24): expected dictionary key but found non-name object; inserting key /QPDFFake2 WARNING: issue-143.pdf (object 1 0, offset 24): expected dictionary key but found non-name object; inserting key /QPDFFake3 WARNING: issue-143.pdf (object 1 0, offset 24): expected dictionary key but found non-name object; inserting key /QPDFFake4 WARNING: issue-143.pdf (object 1 0, offset 21): stream dictionary lacks /Length key WARNING: issue-143.pdf (object 1 0, offset 84): attempting to recover stream length WARNING: issue-143.pdf (object 1 0, offset 84): recovered stream length: 606 WARNING: issue-143.pdf object stream 1 (object 2 0, offset 33): expected dictionary key but found non-name object; inserting key /QPDFFake1 qpdf: operation succeeded with warnings; resulting file may have some problems qpdf-8.0.2/qpdf/qtest/qpdf/bad8.pdf0000644000064100006410000000171013247541377015102 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000128 00000 n 0000000300 00000 n 0000000389 00000 n 0000000424 00000 n trailer << /Size 7 /Root 1 0 R >> startxref 542 %%EOF 4 0 obj << /Length 43 >> stream BT /F1 24 Tf 72 720 Td (Salad) Tj ET endstream endobj xref 0 1 0000000000 65535 f 4 1 0000000750 00000 n trailer << /Size 7 /Root 1 0 R /Prev 543 >> startxref 845 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/enc-XI-attachments-base.pdf0000644000064100006410000005041713247541377020600 0ustar ejbejb%PDF-1.7 % 85 0 obj <> endobj 90 0 obj <>/Filter/FlateDecode/ID[<7F25422CE0BDE941BB4347FD74E2B041>]/Index[85 12]/Info 84 0 R/Length 48/Prev 20408/Root 86 0 R/Size 97/Type/XRef/W[1 2 1]>>stream hbbd``b`i@a!`?'2012<10s endstream endobj startxref 0 %%EOF 96 0 obj <>stream hb```b``b`d``ŀ\@1F DLခ #6ꁘI330$0p B[30iK qـb< /qb`dX `5 endstream endobj 86 0 obj <>>>/Metadata 64 0 R/Names 91 0 R/Outlines 68 0 R/PageLabels<>2<>7<>9<>11<>12<>15<>19<>20<>22<>23<>29<>]>>/PageMode/UseAttachments/Pages 80 0 R/Type/Catalog>> endobj 87 0 obj <>/ProcSet 95 0 R>>/Rotate 0/Type/Page>> endobj 88 0 obj <>stream h޴Ur0 E q$ϐ͢.,d[!y,ir1it:c[1;{?ȃX4iМ FEOD þƘ4cNS3ԀXFk?XsL)ǜva&bt[DExJ2 Zkd%(J j ȊQʐ֊Z,f\RJ. Ç]`6;ׁ^6Iw(W9h&oFĤṬm|p8,I1m{y iޢIwb" lڈh$ӈe 25Phe`^ړݤhL` w"Bok6*G5t3DMaAxVUvu즫7 -{hVv2=K&q”RPl5_{;όW+pšS-wL̴hD8(.C[FR]=z-kxʹ bk7^mwZ%؏Qt"v?RQ{!"3p01UN>stream BT /F1 24 Tf 72 720 Td (Potato 0) Tj ET endstream endobj 1 0 obj <>/ProcSet 95 0 R>>/Rotate 0/Type/Page>> endobj 2 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 3 0 obj <>/ProcSet 95 0 R>>/Rotate 0/Type/Page>> endobj 4 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 5 0 obj <>/ProcSet 95 0 R>>/Rotate 0/Type/Page>> endobj 6 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 7 0 obj <>/ProcSet 95 0 R>>/Rotate 0/Type/Page>> endobj 8 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 9 0 obj <>/ProcSet 95 0 R>>/Rotate 0/Type/Page>> endobj 10 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 11 0 obj <>/ProcSet 95 0 R>>/Rotate 0/Type/Page>> endobj 12 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 13 0 obj <>/ProcSet 95 0 R>>/Rotate 0/Type/Page>> endobj 14 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 15 0 obj <>/ProcSet 95 0 R>>/Rotate 0/Type/Page>> endobj 16 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 17 0 obj <>/ProcSet 95 0 R>>/Rotate 0/Type/Page>> endobj 18 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 19 0 obj <>/ProcSet 95 0 R>>/Rotate 0/Type/Page>> endobj 20 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 21 0 obj <>/ProcSet 95 0 R>>/Rotate 0/Type/Page>> endobj 22 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 23 0 obj <>/ProcSet 95 0 R>>/Rotate 0/Type/Page>> endobj 24 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 25 0 obj <>/ProcSet 95 0 R>>/Rotate 0/Type/Page>> endobj 26 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 27 0 obj <>/ProcSet 95 0 R>>/Rotate 0/Type/Page>> endobj 28 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 29 0 obj <>/ProcSet 95 0 R>>/Rotate 0/Type/Page>> endobj 30 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 31 0 obj <>/ProcSet 95 0 R>>/Rotate 0/Type/Page>> endobj 32 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 33 0 obj <>/ProcSet 95 0 R>>/Rotate 0/Type/Page>> endobj 34 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 35 0 obj <>/ProcSet 95 0 R>>/Rotate 0/Type/Page>> endobj 36 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 37 0 obj <>/ProcSet 95 0 R>>/Rotate 0/Type/Page>> endobj 38 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 39 0 obj <>/ProcSet 95 0 R>>/Rotate 0/Type/Page>> endobj 40 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 41 0 obj <>/ProcSet 95 0 R>>/Rotate 0/Type/Page>> endobj 42 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 43 0 obj <>/ProcSet 95 0 R>>/Rotate 0/Type/Page>> endobj 44 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 45 0 obj <>/ProcSet 95 0 R>>/Rotate 0/Type/Page>> endobj 46 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 47 0 obj <>/ProcSet 95 0 R>>/Rotate 0/Type/Page>> endobj 48 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 49 0 obj <>/ProcSet 95 0 R>>/Rotate 0/Type/Page>> endobj 50 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 51 0 obj <>/ProcSet 95 0 R>>/Rotate 0/Type/Page>> endobj 52 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 53 0 obj <>/ProcSet 95 0 R>>/Rotate 0/Type/Page>> endobj 54 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 55 0 obj <>/ProcSet 95 0 R>>/Rotate 0/Type/Page>> endobj 56 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 57 0 obj <>/ProcSet 95 0 R>>/Rotate 0/Type/Page>> endobj 58 0 obj <>stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 59 0 obj <>stream hޔj0~l a )6$!-0AM\O=y>A.H]gV, [~{%`8hH ;ه_8(A К@ *MՂHEݴ]} gܮ-[_ޘ-4p$K_\{զ,e_ъVn|ʳ4^5 0?O49IN j& -Nk%@; p|ɛ-vG~/K8WȁLa FٴG>A(GZ[.|O~%? :@~ghv o@-:k4 XIDIx3ǴMS|W6yX-W2:Sυ/ d?&W,p Wj+=1L:H B} rT u#Ir Imm|iDƣD=quZF|$(k^ D endstream endobj 60 0 obj <>/Subtype/text#2Fplain>>stream H ,VT̢ĒԼ=. endstream endobj 61 0 obj <>/Subtype/image#2Fx-png>>stream HR 4T>D&yέkzaJjtcT&܄)L%Mt+[(9P;$ K*Sa?6ܨR+*xx|"7ȎE@yv742)6=N6x{{0%3yA,z?W0gf里NmQ~zI?,1,#FsR Yd@>ݍE! em/4nbaDX|&M%]vHvp-y |Y:r.qa~a^&FO78qJL{Ε隯\3=7eA^xFF.ռ"+cK<:1׉WV: ćE")Bgѡ3z#~KQ̪p-yVxgۃt_`y_k:ykb;36ҽ-M74l6$_Voq1wͻ=N9+cZva}AuI,aʰp2{$uHy;szWWX[*m?ד5mZ2~ 3bAbCZ=aPY=^OvȌs9>v6\- ,n[KٯVɓl6l(f\hs[|;8"`\7yŘib_+YzϪa3÷iF;x3(s4 hfC,sI;^-,N4ZoJMosyMV9vپ<~< gkֲ*Cnv 3'~*6vg3ކ; cM9O֮$CfNYv~"XcF.GfMYUt˾r#R)/^#=RsV~99G7쓝ĵMۥ8zVMɦ&lXR[ėf>`vk彭%&Zc~9u+!l8U-G8&^=/d4ncB7ҁNԋ:!2kj [d3|Sbv@-ʍ2<&,uI*]&vui](RY.<\oOF0I.$f@JlIx5HyT mj~xbt:Ղ-ժJnk3֒)i !Cq?5Usjw$ wV%L6amJ>Q_\2?6ڔ3@Y2Vbcf+Tf^$ӡF۬}8fi5]ăGZqk>stream H/.8aÆM chh0Fd\$MH#)e/{;Zof<~z??>{8~xyOZna$o硙V>z/0 _woӗY0b5ǹsBs"⸹+Zrd;LkДey~ǟp; uWPFW"0&eS#/˃g _NMNҍMѻ|M * !y<gEzьXgX38Jͺr TSWVRayaO+adC OWPtmBJKL}wJV74aC}=¡fh~X+'3o2_vǷp |,N 8)Fzh.wq{Aڿ;Jc3qQAXQw^$#q(Nr3"U *QKF]~t~$ЮHSiDže8B.%<4S :f0:>9e*T{sF쀔"*1:CZc3MM%ki`<.Ky2"ME0vH D gQmñs/`Gf/EB/QtHRkcd)}`](.{P)䏋hb.7O$QI]⥅5YwF<u xJIbʅmJ.Z-l-ZM8G$x3l"\JM0,])i %;! Ni쒲F0Q!px .j.4DJʣ{{2YZU$^*"L"y~]7#զPۜF^&=7*Qonc6d~gfX8+z.y俼DuG'~],G,Ykl q g|Ƿ )ϝxIisG*1WkG'jw.:Z;U gZ\+Oߪ+Yhv( Tk'׾ WuqĊoxcKBI 9)@׾7].G7>Dkʡf%R*\T?k%ye7E#U^a #q8dd r_6\2 tU{ީ :WAM_$Ft3W^jŷ_? 0' endstream endobj 63 0 obj <>stream Hm0 42ƵX\Nw?4IlrKzY)br:NJ~Ol6O8ǨzN:#eLyy>u=8$$> endstream endobj 64 0 obj <>stream 2012-12-29T19:35:26-05:00 2012-12-29T16:49:10-05:00 2012-12-29T19:35:26-05:00 application/pdf uuid:e2f4c09b-cfcf-4d3e-b4f4-2d5eba7e6962 uuid:427e4ef9-1b50-4e0f-9fcb-6ecad45e6bdd endstream endobj 65 0 obj <>stream hބAK0|wl/MnF.j/ȘCWC; Wcŋ)<Ҿ'-$uEI&%m6<ҥ|8{tK*Uj*ߠB_eAAA  Āb@ HR-g9Sٹ})ӈVb^M"֋y8覸r6=;?Y.븮i}[d5!4m?1"\B.wy8*ϓoo~-\] bp/ܹ/ endstream endobj 66 0 obj <>stream h޲0Q0Pw.JM,sI,Ip22042424434450U70POAW`iljdS`g`9:3 endstream endobj 67 0 obj <>/Filter/FlateDecode/ID[<7F25422CE0BDE941BB4347FD74E2B041>]/Info 84 0 R/Length 88/Root 86 0 R/Size 85/Type/XRef/W[1 2 1]>>stream hbb&Fg&@10kb-$8hY aHp\ρ0M[ ΍ #YWL1ƿ& endstream endobj startxref 116 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.4.check0000644000064100006410000000026213247541377017454 0ustar ejbejbchecking a.pdf PDF Version: 1.2 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/extensions-other-force-1.8.out0000644000064100006410000000015513247541377021242 0ustar ejbejbversion: 1.8 extension level: 0 << /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/pclm-in.pdf0000644000064100006410000311442413247541377015635 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents [ 4 0 R ] /MediaBox [ 0 0 577 797 ] /Parent 2 0 R /Resources << /XObject << /Image000 5 0 R /Image001 6 0 R /Image002 7 0 R /Image003 8 0 R /Image004 9 0 R /Image005 10 0 R /Image006 11 0 R /Image007 12 0 R /Image008 13 0 R /Image009 14 0 R /Image010 15 0 R /Image011 16 0 R /Image012 17 0 R /Image013 18 0 R /Image014 19 0 R /Image015 20 0 R /Image016 21 0 R /Image017 22 0 R /Image018 23 0 R /Image019 24 0 R /Image020 25 0 R /Image021 26 0 R /Image022 27 0 R /Image023 28 0 R /Image024 29 0 R /Image025 30 0 R /Image026 31 0 R /Image027 32 0 R /Image028 33 0 R /Image029 34 0 R /Image030 35 0 R /Image031 36 0 R /Image032 37 0 R /Image033 38 0 R /Image034 39 0 R /Image035 40 0 R /Image036 41 0 R /Image037 42 0 R /Image038 43 0 R /Image039 44 0 R /Image040 45 0 R /Image041 46 0 R /Image042 47 0 R /Image043 48 0 R /Image044 49 0 R /Image045 50 0 R /Image046 51 0 R /Image047 52 0 R /Image048 53 0 R /Image049 54 0 R /Image050 55 0 R /Image051 56 0 R /Image052 57 0 R /Image053 58 0 R /Image054 59 0 R /Image055 60 0 R /Image056 61 0 R /Image057 62 0 R /Image058 63 0 R /Image059 64 0 R /Image060 65 0 R /Image061 66 0 R /Image062 67 0 R /Image063 68 0 R /Image064 69 0 R /Image065 70 0 R /Image066 71 0 R /Image067 72 0 R /Image068 73 0 R /Image069 74 0 R /Image070 75 0 R /Image071 76 0 R /Image072 77 0 R /Image073 78 0 R /Image074 79 0 R /Image075 80 0 R /Image076 81 0 R /Image077 82 0 R /Image078 83 0 R /Image079 84 0 R /Image080 85 0 R /Image081 86 0 R /Image082 87 0 R /Image083 88 0 R /Image084 89 0 R /Image085 90 0 R /Image086 91 0 R /Image087 92 0 R /Image088 93 0 R /Image089 94 0 R /Image090 95 0 R /Image091 96 0 R /Image092 97 0 R /Image093 98 0 R /Image094 99 0 R /Image095 100 0 R /Image096 101 0 R /Image097 102 0 R /Image098 103 0 R /Image099 104 0 R /Image100 105 0 R /Image101 106 0 R /Image102 107 0 R /Image103 108 0 R /Image104 109 0 R /Image105 110 0 R /Image106 111 0 R /Image107 112 0 R /Image108 113 0 R /Image109 114 0 R /Image110 115 0 R /Image111 116 0 R /Image112 117 0 R /Image113 118 0 R /Image114 119 0 R /Image115 120 0 R /Image116 121 0 R /Image117 122 0 R /Image118 123 0 R /Image119 124 0 R /Image120 125 0 R /Image121 126 0 R /Image122 127 0 R /Image123 128 0 R /Image124 129 0 R /Image125 130 0 R /Image126 131 0 R /Image127 132 0 R /Image128 133 0 R /Image129 134 0 R /Image130 135 0 R /Image131 136 0 R /Image132 137 0 R /Image133 138 0 R /Image134 139 0 R /Image135 140 0 R /Image136 141 0 R /Image137 142 0 R /Image138 143 0 R /Image139 144 0 R /Image140 145 0 R /Image141 146 0 R /Image142 147 0 R /Image143 148 0 R /Image144 149 0 R /Image145 150 0 R /Image146 151 0 R /Image147 152 0 R /Image148 153 0 R /Image149 154 0 R /Image150 155 0 R /Image151 156 0 R /Image152 157 0 R /Image153 158 0 R /Image154 159 0 R /Image155 160 0 R /Image156 161 0 R /Image157 162 0 R /Image158 163 0 R /Image159 164 0 R /Image160 165 0 R /Image161 166 0 R /Image162 167 0 R /Image163 168 0 R /Image164 169 0 R /Image165 170 0 R /Image166 171 0 R /Image167 172 0 R /Image168 173 0 R /Image169 174 0 R /Image170 175 0 R /Image171 176 0 R /Image172 177 0 R /Image173 178 0 R /Image174 179 0 R /Image175 180 0 R /Image176 181 0 R /Image177 182 0 R /Image178 183 0 R /Image179 184 0 R /Image180 185 0 R /Image181 186 0 R /Image182 187 0 R /Image183 188 0 R /Image184 189 0 R /Image185 190 0 R /Image186 191 0 R /Image187 192 0 R /Image188 193 0 R /Image189 194 0 R /Image190 195 0 R /Image191 196 0 R /Image192 197 0 R /Image193 198 0 R /Image194 199 0 R /Image195 200 0 R /Image196 201 0 R /Image197 202 0 R /Image198 203 0 R /Image199 204 0 R /Image200 205 0 R /Image201 206 0 R /Image202 207 0 R /Image203 208 0 R /Image204 209 0 R /Image205 210 0 R /Image206 211 0 R /Image207 212 0 R /Image208 213 0 R /Image209 214 0 R /Image210 215 0 R /Image211 216 0 R /Image212 217 0 R /Image213 218 0 R /Image214 219 0 R /Image215 220 0 R /Image216 221 0 R /Image217 222 0 R /Image218 223 0 R /Image219 224 0 R /Image220 225 0 R /Image221 226 0 R /Image222 227 0 R /Image223 228 0 R /Image224 229 0 R /Image225 230 0 R /Image226 231 0 R /Image227 232 0 R /Image228 233 0 R /Image229 234 0 R /Image230 235 0 R /Image231 236 0 R /Image232 237 0 R /Image233 238 0 R /Image234 239 0 R /Image235 240 0 R /Image236 241 0 R /Image237 242 0 R /Image238 243 0 R /Image239 244 0 R /Image240 245 0 R /Image241 246 0 R /Image242 247 0 R /Image243 248 0 R /Image244 249 0 R /Image245 250 0 R /Image246 251 0 R /Image247 252 0 R /Image248 253 0 R /Image249 254 0 R /Image250 255 0 R /Image251 256 0 R /Image252 257 0 R /Image253 258 0 R /Image254 259 0 R /Image255 260 0 R /Image256 261 0 R /Image257 262 0 R /Image258 263 0 R /Image259 264 0 R /Image260 265 0 R /Image261 266 0 R /Image262 267 0 R /Image263 268 0 R /Image264 269 0 R /Image265 270 0 R /Image266 271 0 R /Image267 272 0 R /Image268 273 0 R /Image269 274 0 R /Image270 275 0 R /Image271 276 0 R /Image272 277 0 R /Image273 278 0 R /Image274 279 0 R /Image275 280 0 R /Image276 281 0 R /Image277 282 0 R /Image278 283 0 R /Image279 284 0 R /Image280 285 0 R /Image281 286 0 R /Image282 287 0 R /Image283 288 0 R /Image284 289 0 R /Image285 290 0 R /Image286 291 0 R /Image287 292 0 R /Image288 293 0 R /Image289 294 0 R /Image290 295 0 R /Image291 296 0 R /Image292 297 0 R /Image293 298 0 R /Image294 299 0 R /Image295 300 0 R /Image296 301 0 R /Image297 302 0 R /Image298 303 0 R /Image299 304 0 R /Image300 305 0 R /Image301 306 0 R /Image302 307 0 R /Image303 308 0 R /Image304 309 0 R /Image305 310 0 R /Image306 311 0 R /Image307 312 0 R /Image308 313 0 R /Image309 314 0 R /Image310 315 0 R /Image311 316 0 R /Image312 317 0 R /Image313 318 0 R /Image314 319 0 R /Image315 320 0 R /Image316 321 0 R /Image317 322 0 R /Image318 323 0 R /Image319 324 0 R /Image320 325 0 R /Image321 326 0 R /Image322 327 0 R /Image323 328 0 R /Image324 329 0 R /Image325 330 0 R /Image326 331 0 R /Image327 332 0 R /Image328 333 0 R /Image329 334 0 R /Image330 335 0 R /Image331 336 0 R /Image332 337 0 R /Image333 338 0 R /Image334 339 0 R /Image335 340 0 R /Image336 341 0 R /Image337 342 0 R /Image338 343 0 R /Image339 344 0 R /Image340 345 0 R /Image341 346 0 R /Image342 347 0 R /Image343 348 0 R /Image344 349 0 R /Image345 350 0 R /Image346 351 0 R /Image347 352 0 R /Image348 353 0 R /Image349 354 0 R /Image350 355 0 R /Image351 356 0 R /Image352 357 0 R /Image353 358 0 R /Image354 359 0 R /Image355 360 0 R /Image356 361 0 R /Image357 362 0 R /Image358 363 0 R /Image359 364 0 R /Image360 365 0 R /Image361 366 0 R /Image362 367 0 R /Image363 368 0 R /Image364 369 0 R /Image365 370 0 R /Image366 371 0 R /Image367 372 0 R /Image368 373 0 R /Image369 374 0 R /Image370 375 0 R /Image371 376 0 R /Image372 377 0 R /Image373 378 0 R /Image374 379 0 R /Image375 380 0 R /Image376 381 0 R /Image377 382 0 R /Image378 383 0 R /Image379 384 0 R /Image380 385 0 R /Image381 386 0 R /Image382 387 0 R /Image383 388 0 R /Image384 389 0 R /Image385 390 0 R /Image386 391 0 R /Image387 392 0 R /Image388 393 0 R /Image389 394 0 R /Image390 395 0 R /Image391 396 0 R /Image392 397 0 R /Image393 398 0 R /Image394 399 0 R /Image395 400 0 R /Image396 401 0 R /Image397 402 0 R /Image398 403 0 R /Image399 404 0 R /Image400 405 0 R /Image401 406 0 R /Image402 407 0 R /Image403 408 0 R /Image404 409 0 R /Image405 410 0 R /Image406 411 0 R /Image407 412 0 R /Image408 413 0 R /Image409 414 0 R /Image410 415 0 R /Image411 416 0 R /Image412 417 0 R /Image413 418 0 R /Image414 419 0 R >> >> /Type /Page >> endobj 4 0 obj << /Length 24028 >> stream 0.120000 0 0 0.120000 0 0 cm /P <> BDC q 4810 0 0 16 0 6624 cm /Image000 Do Q /P <> BDC q 4810 0 0 16 0 6608 cm /Image001 Do Q /P <> BDC q 4810 0 0 16 0 6592 cm /Image002 Do Q /P <> BDC q 4810 0 0 16 0 6576 cm /Image003 Do Q /P <> BDC q 4810 0 0 16 0 6560 cm /Image004 Do Q /P <> BDC q 4810 0 0 16 0 6544 cm /Image005 Do Q /P <> BDC q 4810 0 0 16 0 6528 cm /Image006 Do Q /P <> BDC q 4810 0 0 16 0 6512 cm /Image007 Do Q /P <> BDC q 4810 0 0 16 0 6496 cm /Image008 Do Q /P <> BDC q 4810 0 0 16 0 6480 cm /Image009 Do Q /P <> BDC q 4810 0 0 16 0 6464 cm /Image010 Do Q /P <> BDC q 4810 0 0 16 0 6448 cm /Image011 Do Q /P <> BDC q 4810 0 0 16 0 6432 cm /Image012 Do Q /P <> BDC q 4810 0 0 16 0 6416 cm /Image013 Do Q /P <> BDC q 4810 0 0 16 0 6400 cm /Image014 Do Q /P <> BDC q 4810 0 0 16 0 6384 cm /Image015 Do Q /P <> BDC q 4810 0 0 16 0 6368 cm /Image016 Do Q /P <> BDC q 4810 0 0 16 0 6352 cm /Image017 Do Q /P <> BDC q 4810 0 0 16 0 6336 cm /Image018 Do Q /P <> BDC q 4810 0 0 16 0 6320 cm /Image019 Do Q /P <> BDC q 4810 0 0 16 0 6304 cm /Image020 Do Q /P <> BDC q 4810 0 0 16 0 6288 cm /Image021 Do Q /P <> BDC q 4810 0 0 16 0 6272 cm /Image022 Do Q /P <> BDC q 4810 0 0 16 0 6256 cm /Image023 Do Q /P <> BDC q 4810 0 0 16 0 6240 cm /Image024 Do Q /P <> BDC q 4810 0 0 16 0 6224 cm /Image025 Do Q /P <> BDC q 4810 0 0 16 0 6208 cm /Image026 Do Q /P <> BDC q 4810 0 0 16 0 6192 cm /Image027 Do Q /P <> BDC q 4810 0 0 16 0 6176 cm /Image028 Do Q /P <> BDC q 4810 0 0 16 0 6160 cm /Image029 Do Q /P <> BDC q 4810 0 0 16 0 6144 cm /Image030 Do Q /P <> BDC q 4810 0 0 16 0 6128 cm /Image031 Do Q /P <> BDC q 4810 0 0 16 0 6112 cm /Image032 Do Q /P <> BDC q 4810 0 0 16 0 6096 cm /Image033 Do Q /P <> BDC q 4810 0 0 16 0 6080 cm /Image034 Do Q /P <> BDC q 4810 0 0 16 0 6064 cm /Image035 Do Q /P <> BDC q 4810 0 0 16 0 6048 cm /Image036 Do Q /P <> BDC q 4810 0 0 16 0 6032 cm /Image037 Do Q /P <> BDC q 4810 0 0 16 0 6016 cm /Image038 Do Q /P <> BDC q 4810 0 0 16 0 6000 cm /Image039 Do Q /P <> BDC q 4810 0 0 16 0 5984 cm /Image040 Do Q /P <> BDC q 4810 0 0 16 0 5968 cm /Image041 Do Q /P <> BDC q 4810 0 0 16 0 5952 cm /Image042 Do Q /P <> BDC q 4810 0 0 16 0 5936 cm /Image043 Do Q /P <> BDC q 4810 0 0 16 0 5920 cm /Image044 Do Q /P <> BDC q 4810 0 0 16 0 5904 cm /Image045 Do Q /P <> BDC q 4810 0 0 16 0 5888 cm /Image046 Do Q /P <> BDC q 4810 0 0 16 0 5872 cm /Image047 Do Q /P <> BDC q 4810 0 0 16 0 5856 cm /Image048 Do Q /P <> BDC q 4810 0 0 16 0 5840 cm /Image049 Do Q /P <> BDC q 4810 0 0 16 0 5824 cm /Image050 Do Q /P <> BDC q 4810 0 0 16 0 5808 cm /Image051 Do Q /P <> BDC q 4810 0 0 16 0 5792 cm /Image052 Do Q /P <> BDC q 4810 0 0 16 0 5776 cm /Image053 Do Q /P <> BDC q 4810 0 0 16 0 5760 cm /Image054 Do Q /P <> BDC q 4810 0 0 16 0 5744 cm /Image055 Do Q /P <> BDC q 4810 0 0 16 0 5728 cm /Image056 Do Q /P <> BDC q 4810 0 0 16 0 5712 cm /Image057 Do Q /P <> BDC q 4810 0 0 16 0 5696 cm /Image058 Do Q /P <> BDC q 4810 0 0 16 0 5680 cm /Image059 Do Q /P <> BDC q 4810 0 0 16 0 5664 cm /Image060 Do Q /P <> BDC q 4810 0 0 16 0 5648 cm /Image061 Do Q /P <> BDC q 4810 0 0 16 0 5632 cm /Image062 Do Q /P <> BDC q 4810 0 0 16 0 5616 cm /Image063 Do Q /P <> BDC q 4810 0 0 16 0 5600 cm /Image064 Do Q /P <> BDC q 4810 0 0 16 0 5584 cm /Image065 Do Q /P <> BDC q 4810 0 0 16 0 5568 cm /Image066 Do Q /P <> BDC q 4810 0 0 16 0 5552 cm /Image067 Do Q /P <> BDC q 4810 0 0 16 0 5536 cm /Image068 Do Q /P <> BDC q 4810 0 0 16 0 5520 cm /Image069 Do Q /P <> BDC q 4810 0 0 16 0 5504 cm /Image070 Do Q /P <> BDC q 4810 0 0 16 0 5488 cm /Image071 Do Q /P <> BDC q 4810 0 0 16 0 5472 cm /Image072 Do Q /P <> BDC q 4810 0 0 16 0 5456 cm /Image073 Do Q /P <> BDC q 4810 0 0 16 0 5440 cm /Image074 Do Q /P <> BDC q 4810 0 0 16 0 5424 cm /Image075 Do Q /P <> BDC q 4810 0 0 16 0 5408 cm /Image076 Do Q /P <> BDC q 4810 0 0 16 0 5392 cm /Image077 Do Q /P <> BDC q 4810 0 0 16 0 5376 cm /Image078 Do Q /P <> BDC q 4810 0 0 16 0 5360 cm /Image079 Do Q /P <> BDC q 4810 0 0 16 0 5344 cm /Image080 Do Q /P <> BDC q 4810 0 0 16 0 5328 cm /Image081 Do Q /P <> BDC q 4810 0 0 16 0 5312 cm /Image082 Do Q /P <> BDC q 4810 0 0 16 0 5296 cm /Image083 Do Q /P <> BDC q 4810 0 0 16 0 5280 cm /Image084 Do Q /P <> BDC q 4810 0 0 16 0 5264 cm /Image085 Do Q /P <> BDC q 4810 0 0 16 0 5248 cm /Image086 Do Q /P <> BDC q 4810 0 0 16 0 5232 cm /Image087 Do Q /P <> BDC q 4810 0 0 16 0 5216 cm /Image088 Do Q /P <> BDC q 4810 0 0 16 0 5200 cm /Image089 Do Q /P <> BDC q 4810 0 0 16 0 5184 cm /Image090 Do Q /P <> BDC q 4810 0 0 16 0 5168 cm /Image091 Do Q /P <> BDC q 4810 0 0 16 0 5152 cm /Image092 Do Q /P <> BDC q 4810 0 0 16 0 5136 cm /Image093 Do Q /P <> BDC q 4810 0 0 16 0 5120 cm /Image094 Do Q /P <> BDC q 4810 0 0 16 0 5104 cm /Image095 Do Q /P <> BDC q 4810 0 0 16 0 5088 cm /Image096 Do Q /P <> BDC q 4810 0 0 16 0 5072 cm /Image097 Do Q /P <> BDC q 4810 0 0 16 0 5056 cm /Image098 Do Q /P <> BDC q 4810 0 0 16 0 5040 cm /Image099 Do Q /P <> BDC q 4810 0 0 16 0 5024 cm /Image100 Do Q /P <> BDC q 4810 0 0 16 0 5008 cm /Image101 Do Q /P <> BDC q 4810 0 0 16 0 4992 cm /Image102 Do Q /P <> BDC q 4810 0 0 16 0 4976 cm /Image103 Do Q /P <> BDC q 4810 0 0 16 0 4960 cm /Image104 Do Q /P <> BDC q 4810 0 0 16 0 4944 cm /Image105 Do Q /P <> BDC q 4810 0 0 16 0 4928 cm /Image106 Do Q /P <> BDC q 4810 0 0 16 0 4912 cm /Image107 Do Q /P <> BDC q 4810 0 0 16 0 4896 cm /Image108 Do Q /P <> BDC q 4810 0 0 16 0 4880 cm /Image109 Do Q /P <> BDC q 4810 0 0 16 0 4864 cm /Image110 Do Q /P <> BDC q 4810 0 0 16 0 4848 cm /Image111 Do Q /P <> BDC q 4810 0 0 16 0 4832 cm /Image112 Do Q /P <> BDC q 4810 0 0 16 0 4816 cm /Image113 Do Q /P <> BDC q 4810 0 0 16 0 4800 cm /Image114 Do Q /P <> BDC q 4810 0 0 16 0 4784 cm /Image115 Do Q /P <> BDC q 4810 0 0 16 0 4768 cm /Image116 Do Q /P <> BDC q 4810 0 0 16 0 4752 cm /Image117 Do Q /P <> BDC q 4810 0 0 16 0 4736 cm /Image118 Do Q /P <> BDC q 4810 0 0 16 0 4720 cm /Image119 Do Q /P <> BDC q 4810 0 0 16 0 4704 cm /Image120 Do Q /P <> BDC q 4810 0 0 16 0 4688 cm /Image121 Do Q /P <> BDC q 4810 0 0 16 0 4672 cm /Image122 Do Q /P <> BDC q 4810 0 0 16 0 4656 cm /Image123 Do Q /P <> BDC q 4810 0 0 16 0 4640 cm /Image124 Do Q /P <> BDC q 4810 0 0 16 0 4624 cm /Image125 Do Q /P <> BDC q 4810 0 0 16 0 4608 cm /Image126 Do Q /P <> BDC q 4810 0 0 16 0 4592 cm /Image127 Do Q /P <> BDC q 4810 0 0 16 0 4576 cm /Image128 Do Q /P <> BDC q 4810 0 0 16 0 4560 cm /Image129 Do Q /P <> BDC q 4810 0 0 16 0 4544 cm /Image130 Do Q /P <> BDC q 4810 0 0 16 0 4528 cm /Image131 Do Q /P <> BDC q 4810 0 0 16 0 4512 cm /Image132 Do Q /P <> BDC q 4810 0 0 16 0 4496 cm /Image133 Do Q /P <> BDC q 4810 0 0 16 0 4480 cm /Image134 Do Q /P <> BDC q 4810 0 0 16 0 4464 cm /Image135 Do Q /P <> BDC q 4810 0 0 16 0 4448 cm /Image136 Do Q /P <> BDC q 4810 0 0 16 0 4432 cm /Image137 Do Q /P <> BDC q 4810 0 0 16 0 4416 cm /Image138 Do Q /P <> BDC q 4810 0 0 16 0 4400 cm /Image139 Do Q /P <> BDC q 4810 0 0 16 0 4384 cm /Image140 Do Q /P <> BDC q 4810 0 0 16 0 4368 cm /Image141 Do Q /P <> BDC q 4810 0 0 16 0 4352 cm /Image142 Do Q /P <> BDC q 4810 0 0 16 0 4336 cm /Image143 Do Q /P <> BDC q 4810 0 0 16 0 4320 cm /Image144 Do Q /P <> BDC q 4810 0 0 16 0 4304 cm /Image145 Do Q /P <> BDC q 4810 0 0 16 0 4288 cm /Image146 Do Q /P <> BDC q 4810 0 0 16 0 4272 cm /Image147 Do Q /P <> BDC q 4810 0 0 16 0 4256 cm /Image148 Do Q /P <> BDC q 4810 0 0 16 0 4240 cm /Image149 Do Q /P <> BDC q 4810 0 0 16 0 4224 cm /Image150 Do Q /P <> BDC q 4810 0 0 16 0 4208 cm /Image151 Do Q /P <> BDC q 4810 0 0 16 0 4192 cm /Image152 Do Q /P <> BDC q 4810 0 0 16 0 4176 cm /Image153 Do Q /P <> BDC q 4810 0 0 16 0 4160 cm /Image154 Do Q /P <> BDC q 4810 0 0 16 0 4144 cm /Image155 Do Q /P <> BDC q 4810 0 0 16 0 4128 cm /Image156 Do Q /P <> BDC q 4810 0 0 16 0 4112 cm /Image157 Do Q /P <> BDC q 4810 0 0 16 0 4096 cm /Image158 Do Q /P <> BDC q 4810 0 0 16 0 4080 cm /Image159 Do Q /P <> BDC q 4810 0 0 16 0 4064 cm /Image160 Do Q /P <> BDC q 4810 0 0 16 0 4048 cm /Image161 Do Q /P <> BDC q 4810 0 0 16 0 4032 cm /Image162 Do Q /P <> BDC q 4810 0 0 16 0 4016 cm /Image163 Do Q /P <> BDC q 4810 0 0 16 0 4000 cm /Image164 Do Q /P <> BDC q 4810 0 0 16 0 3984 cm /Image165 Do Q /P <> BDC q 4810 0 0 16 0 3968 cm /Image166 Do Q /P <> BDC q 4810 0 0 16 0 3952 cm /Image167 Do Q /P <> BDC q 4810 0 0 16 0 3936 cm /Image168 Do Q /P <> BDC q 4810 0 0 16 0 3920 cm /Image169 Do Q /P <> BDC q 4810 0 0 16 0 3904 cm /Image170 Do Q /P <> BDC q 4810 0 0 16 0 3888 cm /Image171 Do Q /P <> BDC q 4810 0 0 16 0 3872 cm /Image172 Do Q /P <> BDC q 4810 0 0 16 0 3856 cm /Image173 Do Q /P <> BDC q 4810 0 0 16 0 3840 cm /Image174 Do Q /P <> BDC q 4810 0 0 16 0 3824 cm /Image175 Do Q /P <> BDC q 4810 0 0 16 0 3808 cm /Image176 Do Q /P <> BDC q 4810 0 0 16 0 3792 cm /Image177 Do Q /P <> BDC q 4810 0 0 16 0 3776 cm /Image178 Do Q /P <> BDC q 4810 0 0 16 0 3760 cm /Image179 Do Q /P <> BDC q 4810 0 0 16 0 3744 cm /Image180 Do Q /P <> BDC q 4810 0 0 16 0 3728 cm /Image181 Do Q /P <> BDC q 4810 0 0 16 0 3712 cm /Image182 Do Q /P <> BDC q 4810 0 0 16 0 3696 cm /Image183 Do Q /P <> BDC q 4810 0 0 16 0 3680 cm /Image184 Do Q /P <> BDC q 4810 0 0 16 0 3664 cm /Image185 Do Q /P <> BDC q 4810 0 0 16 0 3648 cm /Image186 Do Q /P <> BDC q 4810 0 0 16 0 3632 cm /Image187 Do Q /P <> BDC q 4810 0 0 16 0 3616 cm /Image188 Do Q /P <> BDC q 4810 0 0 16 0 3600 cm /Image189 Do Q /P <> BDC q 4810 0 0 16 0 3584 cm /Image190 Do Q /P <> BDC q 4810 0 0 16 0 3568 cm /Image191 Do Q /P <> BDC q 4810 0 0 16 0 3552 cm /Image192 Do Q /P <> BDC q 4810 0 0 16 0 3536 cm /Image193 Do Q /P <> BDC q 4810 0 0 16 0 3520 cm /Image194 Do Q /P <> BDC q 4810 0 0 16 0 3504 cm /Image195 Do Q /P <> BDC q 4810 0 0 16 0 3488 cm /Image196 Do Q /P <> BDC q 4810 0 0 16 0 3472 cm /Image197 Do Q /P <> BDC q 4810 0 0 16 0 3456 cm /Image198 Do Q /P <> BDC q 4810 0 0 16 0 3440 cm /Image199 Do Q /P <> BDC q 4810 0 0 16 0 3424 cm /Image200 Do Q /P <> BDC q 4810 0 0 16 0 3408 cm /Image201 Do Q /P <> BDC q 4810 0 0 16 0 3392 cm /Image202 Do Q /P <> BDC q 4810 0 0 16 0 3376 cm /Image203 Do Q /P <> BDC q 4810 0 0 16 0 3360 cm /Image204 Do Q /P <> BDC q 4810 0 0 16 0 3344 cm /Image205 Do Q /P <> BDC q 4810 0 0 16 0 3328 cm /Image206 Do Q /P <> BDC q 4810 0 0 16 0 3312 cm /Image207 Do Q /P <> BDC q 4810 0 0 16 0 3296 cm /Image208 Do Q /P <> BDC q 4810 0 0 16 0 3280 cm /Image209 Do Q /P <> BDC q 4810 0 0 16 0 3264 cm /Image210 Do Q /P <> BDC q 4810 0 0 16 0 3248 cm /Image211 Do Q /P <> BDC q 4810 0 0 16 0 3232 cm /Image212 Do Q /P <> BDC q 4810 0 0 16 0 3216 cm /Image213 Do Q /P <> BDC q 4810 0 0 16 0 3200 cm /Image214 Do Q /P <> BDC q 4810 0 0 16 0 3184 cm /Image215 Do Q /P <> BDC q 4810 0 0 16 0 3168 cm /Image216 Do Q /P <> BDC q 4810 0 0 16 0 3152 cm /Image217 Do Q /P <> BDC q 4810 0 0 16 0 3136 cm /Image218 Do Q /P <> BDC q 4810 0 0 16 0 3120 cm /Image219 Do Q /P <> BDC q 4810 0 0 16 0 3104 cm /Image220 Do Q /P <> BDC q 4810 0 0 16 0 3088 cm /Image221 Do Q /P <> BDC q 4810 0 0 16 0 3072 cm /Image222 Do Q /P <> BDC q 4810 0 0 16 0 3056 cm /Image223 Do Q /P <> BDC q 4810 0 0 16 0 3040 cm /Image224 Do Q /P <> BDC q 4810 0 0 16 0 3024 cm /Image225 Do Q /P <> BDC q 4810 0 0 16 0 3008 cm /Image226 Do Q /P <> BDC q 4810 0 0 16 0 2992 cm /Image227 Do Q /P <> BDC q 4810 0 0 16 0 2976 cm /Image228 Do Q /P <> BDC q 4810 0 0 16 0 2960 cm /Image229 Do Q /P <> BDC q 4810 0 0 16 0 2944 cm /Image230 Do Q /P <> BDC q 4810 0 0 16 0 2928 cm /Image231 Do Q /P <> BDC q 4810 0 0 16 0 2912 cm /Image232 Do Q /P <> BDC q 4810 0 0 16 0 2896 cm /Image233 Do Q /P <> BDC q 4810 0 0 16 0 2880 cm /Image234 Do Q /P <> BDC q 4810 0 0 16 0 2864 cm /Image235 Do Q /P <> BDC q 4810 0 0 16 0 2848 cm /Image236 Do Q /P <> BDC q 4810 0 0 16 0 2832 cm /Image237 Do Q /P <> BDC q 4810 0 0 16 0 2816 cm /Image238 Do Q /P <> BDC q 4810 0 0 16 0 2800 cm /Image239 Do Q /P <> BDC q 4810 0 0 16 0 2784 cm /Image240 Do Q /P <> BDC q 4810 0 0 16 0 2768 cm /Image241 Do Q /P <> BDC q 4810 0 0 16 0 2752 cm /Image242 Do Q /P <> BDC q 4810 0 0 16 0 2736 cm /Image243 Do Q /P <> BDC q 4810 0 0 16 0 2720 cm /Image244 Do Q /P <> BDC q 4810 0 0 16 0 2704 cm /Image245 Do Q /P <> BDC q 4810 0 0 16 0 2688 cm /Image246 Do Q /P <> BDC q 4810 0 0 16 0 2672 cm /Image247 Do Q /P <> BDC q 4810 0 0 16 0 2656 cm /Image248 Do Q /P <> BDC q 4810 0 0 16 0 2640 cm /Image249 Do Q /P <> BDC q 4810 0 0 16 0 2624 cm /Image250 Do Q /P <> BDC q 4810 0 0 16 0 2608 cm /Image251 Do Q /P <> BDC q 4810 0 0 16 0 2592 cm /Image252 Do Q /P <> BDC q 4810 0 0 16 0 2576 cm /Image253 Do Q /P <> BDC q 4810 0 0 16 0 2560 cm /Image254 Do Q /P <> BDC q 4810 0 0 16 0 2544 cm /Image255 Do Q /P <> BDC q 4810 0 0 16 0 2528 cm /Image256 Do Q /P <> BDC q 4810 0 0 16 0 2512 cm /Image257 Do Q /P <> BDC q 4810 0 0 16 0 2496 cm /Image258 Do Q /P <> BDC q 4810 0 0 16 0 2480 cm /Image259 Do Q /P <> BDC q 4810 0 0 16 0 2464 cm /Image260 Do Q /P <> BDC q 4810 0 0 16 0 2448 cm /Image261 Do Q /P <> BDC q 4810 0 0 16 0 2432 cm /Image262 Do Q /P <> BDC q 4810 0 0 16 0 2416 cm /Image263 Do Q /P <> BDC q 4810 0 0 16 0 2400 cm /Image264 Do Q /P <> BDC q 4810 0 0 16 0 2384 cm /Image265 Do Q /P <> BDC q 4810 0 0 16 0 2368 cm /Image266 Do Q /P <> BDC q 4810 0 0 16 0 2352 cm /Image267 Do Q /P <> BDC q 4810 0 0 16 0 2336 cm /Image268 Do Q /P <> BDC q 4810 0 0 16 0 2320 cm /Image269 Do Q /P <> BDC q 4810 0 0 16 0 2304 cm /Image270 Do Q /P <> BDC q 4810 0 0 16 0 2288 cm /Image271 Do Q /P <> BDC q 4810 0 0 16 0 2272 cm /Image272 Do Q /P <> BDC q 4810 0 0 16 0 2256 cm /Image273 Do Q /P <> BDC q 4810 0 0 16 0 2240 cm /Image274 Do Q /P <> BDC q 4810 0 0 16 0 2224 cm /Image275 Do Q /P <> BDC q 4810 0 0 16 0 2208 cm /Image276 Do Q /P <> BDC q 4810 0 0 16 0 2192 cm /Image277 Do Q /P <> BDC q 4810 0 0 16 0 2176 cm /Image278 Do Q /P <> BDC q 4810 0 0 16 0 2160 cm /Image279 Do Q /P <> BDC q 4810 0 0 16 0 2144 cm /Image280 Do Q /P <> BDC q 4810 0 0 16 0 2128 cm /Image281 Do Q /P <> BDC q 4810 0 0 16 0 2112 cm /Image282 Do Q /P <> BDC q 4810 0 0 16 0 2096 cm /Image283 Do Q /P <> BDC q 4810 0 0 16 0 2080 cm /Image284 Do Q /P <> BDC q 4810 0 0 16 0 2064 cm /Image285 Do Q /P <> BDC q 4810 0 0 16 0 2048 cm /Image286 Do Q /P <> BDC q 4810 0 0 16 0 2032 cm /Image287 Do Q /P <> BDC q 4810 0 0 16 0 2016 cm /Image288 Do Q /P <> BDC q 4810 0 0 16 0 2000 cm /Image289 Do Q /P <> BDC q 4810 0 0 16 0 1984 cm /Image290 Do Q /P <> BDC q 4810 0 0 16 0 1968 cm /Image291 Do Q /P <> BDC q 4810 0 0 16 0 1952 cm /Image292 Do Q /P <> BDC q 4810 0 0 16 0 1936 cm /Image293 Do Q /P <> BDC q 4810 0 0 16 0 1920 cm /Image294 Do Q /P <> BDC q 4810 0 0 16 0 1904 cm /Image295 Do Q /P <> BDC q 4810 0 0 16 0 1888 cm /Image296 Do Q /P <> BDC q 4810 0 0 16 0 1872 cm /Image297 Do Q /P <> BDC q 4810 0 0 16 0 1856 cm /Image298 Do Q /P <> BDC q 4810 0 0 16 0 1840 cm /Image299 Do Q /P <> BDC q 4810 0 0 16 0 1824 cm /Image300 Do Q /P <> BDC q 4810 0 0 16 0 1808 cm /Image301 Do Q /P <> BDC q 4810 0 0 16 0 1792 cm /Image302 Do Q /P <> BDC q 4810 0 0 16 0 1776 cm /Image303 Do Q /P <> BDC q 4810 0 0 16 0 1760 cm /Image304 Do Q /P <> BDC q 4810 0 0 16 0 1744 cm /Image305 Do Q /P <> BDC q 4810 0 0 16 0 1728 cm /Image306 Do Q /P <> BDC q 4810 0 0 16 0 1712 cm /Image307 Do Q /P <> BDC q 4810 0 0 16 0 1696 cm /Image308 Do Q /P <> BDC q 4810 0 0 16 0 1680 cm /Image309 Do Q /P <> BDC q 4810 0 0 16 0 1664 cm /Image310 Do Q /P <> BDC q 4810 0 0 16 0 1648 cm /Image311 Do Q /P <> BDC q 4810 0 0 16 0 1632 cm /Image312 Do Q /P <> BDC q 4810 0 0 16 0 1616 cm /Image313 Do Q /P <> BDC q 4810 0 0 16 0 1600 cm /Image314 Do Q /P <> BDC q 4810 0 0 16 0 1584 cm /Image315 Do Q /P <> BDC q 4810 0 0 16 0 1568 cm /Image316 Do Q /P <> BDC q 4810 0 0 16 0 1552 cm /Image317 Do Q /P <> BDC q 4810 0 0 16 0 1536 cm /Image318 Do Q /P <> BDC q 4810 0 0 16 0 1520 cm /Image319 Do Q /P <> BDC q 4810 0 0 16 0 1504 cm /Image320 Do Q /P <> BDC q 4810 0 0 16 0 1488 cm /Image321 Do Q /P <> BDC q 4810 0 0 16 0 1472 cm /Image322 Do Q /P <> BDC q 4810 0 0 16 0 1456 cm /Image323 Do Q /P <> BDC q 4810 0 0 16 0 1440 cm /Image324 Do Q /P <> BDC q 4810 0 0 16 0 1424 cm /Image325 Do Q /P <> BDC q 4810 0 0 16 0 1408 cm /Image326 Do Q /P <> BDC q 4810 0 0 16 0 1392 cm /Image327 Do Q /P <> BDC q 4810 0 0 16 0 1376 cm /Image328 Do Q /P <> BDC q 4810 0 0 16 0 1360 cm /Image329 Do Q /P <> BDC q 4810 0 0 16 0 1344 cm /Image330 Do Q /P <> BDC q 4810 0 0 16 0 1328 cm /Image331 Do Q /P <> BDC q 4810 0 0 16 0 1312 cm /Image332 Do Q /P <> BDC q 4810 0 0 16 0 1296 cm /Image333 Do Q /P <> BDC q 4810 0 0 16 0 1280 cm /Image334 Do Q /P <> BDC q 4810 0 0 16 0 1264 cm /Image335 Do Q /P <> BDC q 4810 0 0 16 0 1248 cm /Image336 Do Q /P <> BDC q 4810 0 0 16 0 1232 cm /Image337 Do Q /P <> BDC q 4810 0 0 16 0 1216 cm /Image338 Do Q /P <> BDC q 4810 0 0 16 0 1200 cm /Image339 Do Q /P <> BDC q 4810 0 0 16 0 1184 cm /Image340 Do Q /P <> BDC q 4810 0 0 16 0 1168 cm /Image341 Do Q /P <> BDC q 4810 0 0 16 0 1152 cm /Image342 Do Q /P <> BDC q 4810 0 0 16 0 1136 cm /Image343 Do Q /P <> BDC q 4810 0 0 16 0 1120 cm /Image344 Do Q /P <> BDC q 4810 0 0 16 0 1104 cm /Image345 Do Q /P <> BDC q 4810 0 0 16 0 1088 cm /Image346 Do Q /P <> BDC q 4810 0 0 16 0 1072 cm /Image347 Do Q /P <> BDC q 4810 0 0 16 0 1056 cm /Image348 Do Q /P <> BDC q 4810 0 0 16 0 1040 cm /Image349 Do Q /P <> BDC q 4810 0 0 16 0 1024 cm /Image350 Do Q /P <> BDC q 4810 0 0 16 0 1008 cm /Image351 Do Q /P <> BDC q 4810 0 0 16 0 992 cm /Image352 Do Q /P <> BDC q 4810 0 0 16 0 976 cm /Image353 Do Q /P <> BDC q 4810 0 0 16 0 960 cm /Image354 Do Q /P <> BDC q 4810 0 0 16 0 944 cm /Image355 Do Q /P <> BDC q 4810 0 0 16 0 928 cm /Image356 Do Q /P <> BDC q 4810 0 0 16 0 912 cm /Image357 Do Q /P <> BDC q 4810 0 0 16 0 896 cm /Image358 Do Q /P <> BDC q 4810 0 0 16 0 880 cm /Image359 Do Q /P <> BDC q 4810 0 0 16 0 864 cm /Image360 Do Q /P <> BDC q 4810 0 0 16 0 848 cm /Image361 Do Q /P <> BDC q 4810 0 0 16 0 832 cm /Image362 Do Q /P <> BDC q 4810 0 0 16 0 816 cm /Image363 Do Q /P <> BDC q 4810 0 0 16 0 800 cm /Image364 Do Q /P <> BDC q 4810 0 0 16 0 784 cm /Image365 Do Q /P <> BDC q 4810 0 0 16 0 768 cm /Image366 Do Q /P <> BDC q 4810 0 0 16 0 752 cm /Image367 Do Q /P <> BDC q 4810 0 0 16 0 736 cm /Image368 Do Q /P <> BDC q 4810 0 0 16 0 720 cm /Image369 Do Q /P <> BDC q 4810 0 0 16 0 704 cm /Image370 Do Q /P <> BDC q 4810 0 0 16 0 688 cm /Image371 Do Q /P <> BDC q 4810 0 0 16 0 672 cm /Image372 Do Q /P <> BDC q 4810 0 0 16 0 656 cm /Image373 Do Q /P <> BDC q 4810 0 0 16 0 640 cm /Image374 Do Q /P <> BDC q 4810 0 0 16 0 624 cm /Image375 Do Q /P <> BDC q 4810 0 0 16 0 608 cm /Image376 Do Q /P <> BDC q 4810 0 0 16 0 592 cm /Image377 Do Q /P <> BDC q 4810 0 0 16 0 576 cm /Image378 Do Q /P <> BDC q 4810 0 0 16 0 560 cm /Image379 Do Q /P <> BDC q 4810 0 0 16 0 544 cm /Image380 Do Q /P <> BDC q 4810 0 0 16 0 528 cm /Image381 Do Q /P <> BDC q 4810 0 0 16 0 512 cm /Image382 Do Q /P <> BDC q 4810 0 0 16 0 496 cm /Image383 Do Q /P <> BDC q 4810 0 0 16 0 480 cm /Image384 Do Q /P <> BDC q 4810 0 0 16 0 464 cm /Image385 Do Q /P <> BDC q 4810 0 0 16 0 448 cm /Image386 Do Q /P <> BDC q 4810 0 0 16 0 432 cm /Image387 Do Q /P <> BDC q 4810 0 0 16 0 416 cm /Image388 Do Q /P <> BDC q 4810 0 0 16 0 400 cm /Image389 Do Q /P <> BDC q 4810 0 0 16 0 384 cm /Image390 Do Q /P <> BDC q 4810 0 0 16 0 368 cm /Image391 Do Q /P <> BDC q 4810 0 0 16 0 352 cm /Image392 Do Q /P <> BDC q 4810 0 0 16 0 336 cm /Image393 Do Q /P <> BDC q 4810 0 0 16 0 320 cm /Image394 Do Q /P <> BDC q 4810 0 0 16 0 304 cm /Image395 Do Q /P <> BDC q 4810 0 0 16 0 288 cm /Image396 Do Q /P <> BDC q 4810 0 0 16 0 272 cm /Image397 Do Q /P <> BDC q 4810 0 0 16 0 256 cm /Image398 Do Q /P <> BDC q 4810 0 0 16 0 240 cm /Image399 Do Q /P <> BDC q 4810 0 0 16 0 224 cm /Image400 Do Q /P <> BDC q 4810 0 0 16 0 208 cm /Image401 Do Q /P <> BDC q 4810 0 0 16 0 192 cm /Image402 Do Q /P <> BDC q 4810 0 0 16 0 176 cm /Image403 Do Q /P <> BDC q 4810 0 0 16 0 160 cm /Image404 Do Q /P <> BDC q 4810 0 0 16 0 144 cm /Image405 Do Q /P <> BDC q 4810 0 0 16 0 128 cm /Image406 Do Q /P <> BDC q 4810 0 0 16 0 112 cm /Image407 Do Q /P <> BDC q 4810 0 0 16 0 96 cm /Image408 Do Q /P <> BDC q 4810 0 0 16 0 80 cm /Image409 Do Q /P <> BDC q 4810 0 0 16 0 64 cm /Image410 Do Q /P <> BDC q 4810 0 0 16 0 48 cm /Image411 Do Q /P <> BDC q 4810 0 0 16 0 32 cm /Image412 Do Q /P <> BDC q 4810 0 0 16 0 16 cm /Image413 Do Q /P <> BDC q 4810 0 0 16 0 0 cm /Image414 Do Q endstream endobj 5 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 6 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 7 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 8 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 9 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 10 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 11 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 12 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 13 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 14 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 15 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 16 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 17 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 18 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 19 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 20 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 21 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 22 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 23 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 24 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 25 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 26 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 27 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 28 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 29 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 30 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 31 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 539 >> stream xqB1 r 8P0ݵi?<H&Xx@/s'Eز{rM,߀ӋY(GbT/zO)ސaz9k7H"^.٩:-kx@;];x_>ߚ?bTP`S|M ӲF~n7NӅNؼG/F ELaڦ,⍷t0>~:,OU7T0y_jL~n7޺NyNXȋG谐?bTP`M|=sSursƇ]> stream xAj0 C7m‡I >@E @3_MO;@}vI%s0.~/@]'ތ:2m)VvW>gm<:6g P7~RYݝUϙa4ρYn/>'T4~ͨs o7}Lm@G,\_*Ou=ęW݊Uةϙ1.ɁYnoIUx3z3a bwN}٦y"mroK|OHR?x3}2[`ؚ=S3ciHm~.ތzVXm-v| \ϙ4ρ.Ymj~.ތ"LUZlR3i]ș.>'$]%DWUxE}vI"gNqoW? I( T%hw7+sxKr9s{IIgoF *,uvUxE}twr<[#gNqcWq? I( <ΖZ ϙNΚ'}s)n*>'$]DPy'ߑj;IKqT2w5 3I6}9-=2Sw#*Lsw7nLejv3^g@}c.Ɂ#=rT2w]UY&)~[P,Zendstream endobj 33 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1563 >> stream xA6 C$olᙖTE=zL)__K~wꟻnYeɖf6Ӕ')o}5O84enr๵7;oY5-lYM Sޞ^p:iskow6j [ONV?7X{WUf~xZ=C`YonV`VzW{ۻd}zܝ}ggn;̝龎! ٍwy|bVJf=U\oHnn f}'+_[oHݧIwvViޱ๞ݸ{W'f4ZajSOUv~Yq[d}i۽3fe<33 {LzfmoљIe]4ehMtl㧛-Uվ'6l-m|qmJg6qxb;jSOܻ8ݭ{ʾj=qn&=so6շNO}.q]Ϧw:w^Mit֖jb6twY۸63l8<1x[TJ;o'Rݴ'߷41f7ά66k|tlo;}^e;ݑ@gz_>CؔF[=٪>g+z*dw';Q۔|R3=?eYo§R7|;=Yew契L6MufYۦc{ܑ{*G;;5B)¦4V=[S';ڦ䓚)OyKSd>/(cOVNLY2f|si-@}a"u-'ez:@M >6iUZiTPժ'lEO%k:z&&7%?kͻ{Jv"gz̚I4KCwm)Ň~x ky>)ӳ/ձ nJ ^ ~NboMV=g+z*Y+~W31@NssXw!TxS9%v,Vuk>YswoU;~owtE|foX 5T+QXZ{.xf x\gӏSO\7kV W.>x#[8eu,Vut_2 &nNO ^sGmS/^Ns⣼׶7L&^i @>endstream endobj 34 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1977 >> stream x% @#~y4IT/3,0@_/=S;eqJKy!w7\WobD5ƫrIGݾsޘmkë`|6:wJ_c_U5u|`3۷ {Rt:>BU362?o[zh];PL<ؤfZzo{gyw]ݮ3߯mxԍ:I{?=Ƈv5ߐ*'{0uw{?_ {jRjw-=4.~rG(l&~l~3-LnWڙ6{<}Ƥ=[\C]woH__=q=9֯=5EڝGj&xi@vk3(>BU3]{'n߯!75If\HMT%>5܃{f_#a_SS˯i|f- d?#T5=9^u 47гo5['%S7i-{'n_üMMzi,cx`R䗽}w;A8-ŧ2ǫ.`<|a362?uz?cdf3ͼo-ck7]I/M%~lU!|[`W63?.^롡Իߒ4tޠms2gJ_m#KtMtۮM;tfolKf^Q4m-Չd[Tt8OigwIoI:o6owp/߶?C%t&ur:mW¿qo:376ISdzSyz6ߖF-OI:_IF 쵿ѧu%É y=zswiQ a6itڻڸEeο޳iAFvIͲ>_M0y;S5 d{k $ao 4IۜG<n|;R4(zOz4E|s:]mܢҲ _EmѠa#fz&fۼnDN=5z|˰7JhvL~=O*ɫ=4]Ͱ+ɼӳ=ѐKϜSdL0J3n~]/m26&_\'U=M-Hz$ o0uvzD?$p'w7î$N\`7OϦ_FC.a>sM͗֓m2Iü+y\fJ_ĺYvlWۘ|q}T=7IC'{"Iݶ֓4d~{Fzwۼ 4{{_w%IHSi{^57֖;;{/=Wn~lmmRî$ynɽy5u0Ѱ6iao읤6oC ^m]Ino~o6zd7TڞW~MeΞ jhGU/![[76kT=+zore~m7y{04|OГ]|<3v]]nz|gkk'IJv#^?FpkK5gF+yn`~n줡OC*Np!0T/Otendstream endobj 35 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1987 >> stream xK9 CcS Tz%)I$IZ-=s8C끓m,^%όto7@n~> NDnŮo;FK5j"w|iooc'oއT NBؐH5=щ$I$I$I$I[T>yζB*Zٲ{¿qo>U[G>J@n~fTR_9I_B]߃cT=uoo2!]ߔ$UywSv C}"I$I$I$I_/l P-'SuT;aL-E%d=;FKk.~S7M|-&M8[IRy9mR=޷!$I$I$I$mT[|ɾ1훷R1{$9 f>U[R8ms2 THP{{߆H$I$I$It_{o&S{ɿjsJ+W-Id+L$6;/C;N8i>1]ͤIfT6h9|W,$I$I$I$IRǿキ=[5 9?%^וǫxϖ$Ws&@{՗ynv t'ej|ˮfT*NIRjav+Uj$I$I$I$w_Tsv{w;zɿjsJ ڎPՖ$oEثTsk;P@G򤞚|ˮfniT*N3_dW3]R$I$I$I$I*gۻCmNU`Su]vLg&a|p 7~+^b[{݁:R'[v6vKݘ=Rqژ &LyJ$I$I$I$IUy=ޝjsﭚki*Z2A"+^|"M dOvS17ل$d_[v56̮N0{H1L|50;ߕ*5 I$I$I$I9ο/d{8;=[5 9?%^nUe^3 ッlEV(D@p^uboh UIhɾjl]aJic+3jav+Uj$I$I$I$)¿/d8;=[5 9?^|&[Id+E g/fcnWg.W|]4>R8m|y&_M>Οʦ$I$I$I$I:Emlgwgڜ{fΟʦ$I$Iҗc;endstream endobj 36 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1933 >> stream xAH GbSuF"Rte%YsQ@gKS~:3z͙ުYd>1Zmrz.d+Wb.+ݮ{i&zI2{JF-y'oͦ$|Uo=js濷jϵ$R礶܅SyNVLg97*xfll|nOv )v֓vW'50;6'Iթο5 _̧N1[:S%p,2kOyy3ʿ O~ͨxE+352_5~S'/{{]9i %IRu'oͦ$B)߻=ٞCBBx'S]ߕ:0}]of2S5~.^LmԮz&w|*TcLCBBx'S]ߕ:0}]of2S5~.^LmԮz&w|*Tc86fdIjKZxCmHv>3d6I);{1Ko9;|{Zsi#m?;zVfb>|*Tc86fdIjKZxCmHv>3d6I);{1Ko9;|{Zsi#m?;zVftn|6TWɓ8mnfU7;So Jmޠv{]]2Liw^oIKK5-{p'[J3'uO56s-qT=w~COHfԟ*aٵ9S*C43uS[FmoSp?OUsڞ='g9q; &Hn,- iͶ뽙7\ڪ9IrI6r8&J TݼzBڽ=7T p.Ϯ̙9ˉۑL0ArciNgH;om]͔!V%I- N絑ٷ79Un@ɿxo0Rmi6piIه$ 6Ý<ⴄ}x#`rlWyOdLRD<'Rz{B6P~mT uendstream endobj 37 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1935 >> stream xAn$9GكNA R%d禇3Jj:sks].kmА'gS%m\>d4|:fxVLkطgt4=/ؠl{gމlg۩yC&Hޖg"Y7$i= {XFOsH%i-UV@ʪo~0N~gކNRdwN [qӧy}}/Y9MwDst)ӐpOr6O[Yk7ܡ$O2 $;IOT=ϦnNh =s{~pz'3woC'{{2|v{;,Üo{iH'Cg9riP'|Dl'OgS7X*FOf˖x5Ω"tFξ}ӽվ=]Jߦo'!\]SΉ76T;OOTeegO=}.[-R@;nd?IzNC;MWrt)vv=$sv6N9'vNv0{g{R}v\?=yR |6v{skC?ٮodl;[yߓ=6Ng0tNֹwfoԿO Or=-G4}Y;.=y=|j-tޜjt={]esٲwolm7xۿ'{>=m46aΝ˭seߨo.;9R|Hؗٽsғ'rJͩ_jOoO>l;8o'UUcGf:3'htL՚>o#m{KȾċ:'vޟiF}*COٲwoqJ raK7X"=y2o`[睩zG#coSt3)ݓ/2W;~"l{ې_'MmkF|W56ZgU-nj'LϋmMI:wobUIR0-oSt3)ݓ/2W;~"l{ې_'MmkF|W56ZgU-nj'LϋmMI:wobUIRSUѧ57sk'ݓgOj5l]g?w==o#5Z{,=Nߓ!>Zܗh+OϻIOUy&Nیk:M?nendstream endobj 38 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 931 >> stream x1r#1 G/D$`w97f1~lFLש=YS9}i㾄K]Nۨ89I/ϷSɌ7?{t${iw:9Yߜep[p_{_x/|۸-x*2@m Sޤx9p޷yW3(o˱{;ܖt nKI{53 e=\%endstream endobj 39 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 431 >> stream x۱ @"lNQ> stream x۱ "̸N吔*PpW,gK'Q-I| c#!J`X^8B> stream x  oWendstream endobj 42 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 43 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 44 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 45 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 46 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 47 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 48 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 49 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 50 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 51 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1290 >> stream xA9 CL0i=?kHo};FK}tRKwsh9i&9;ҦAN$)ǵ.qRn.O.q}Z2 kA2 sNJ-ߵ5 dK9@2I-=O<_k$ʮt(gNG9)U dt1y^M>;w9_4lcmw='3$V&PẂ.qRn𓴷 ߗ%+$ӡp9=?8Xځ.&ϫg'N>֜&mr잓UN'dbd9*S9%Nj~1»}rdxeׂd:3眔ZC]LWN/;/ZsN@ɱ{NVE{2 N\ U.sKJ#{%ov<ߚ{%+$ӡp9=Ԫb|vzY|њsMs*~'ߓip2ЧLu]Vn9+~+[y{-^ٵ 9'VU@P@3z:Z9? dH:z2 Na-s }ʭU]@8ex/MjkLZL}tR7}yb^OG;4lc<IGO<̼x.O'%?cImͽגI] PϜsRj&/~8O]̜WhbT&mr잓'#48y'%wxV_sdxeׂd:3眔ZgIS@3z:Z9? dH:z2 Nfc-s죮2I-={ ݟEu2f{~-^ٵ 9'֙oT;y彞+vN9i&9y2L9y '8.́.qRnDS2-f{~-^ٵ 9'֙oT;y彞+vN9i&9y2L9y '8.́.qRnDS2-f{~-^ٵ99'% dt1s^FG*ཛྷ9IO9y w"QW]t]V΍D_9O~)-it'?1+endstream endobj 52 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3430 >> stream xA7Y̦(S*3ˆhg_ϟic;=N 7мw77c'9J:|_uf-4p6Qb1¹%gNhilIc1kc1}S 4m7l+lč5Ƙg8IN"Wɼs DF{--:M-sc̟L}Dm2َ4c'2c:yϝhރn;Wϛوk1pޓ%D:y㿉j [[tZ8(1Ƙ?NZ۠eNӳ'i1ƘOe1t;=N 7мw77c'9J:|_u~s DF{--:M-sc7w%A۠eNӳ'i1ƘOe1t;=N 7мw77c'9J:|_u~s DF{--:M-sc7w%A۠eNӳ'i1ƘO~[GͪnɁ-]}ނ \ΉO{oɎ:BS~a-I?+UϮ}bo2;W7{!k鑩;U7;Y|myLݏ؟?9RX=ԩ8]wb[GI-|/K}n-=z3ԝ@{Wanv fɨqc8оj{W_b4he'ΉO{oɎ:BS~a-I?+UϮ}bo2;W7{!k鑩;U7;Y|myLݏ؟?9RX=ԩ8]wb[GI-|/K}n-=z3ԝ@{Wanv fɨqc8оP{WkAƩB[^O^yOPg鏂*w^lN?oy"yN<'2:w{F8`CPu:[a)LEd˻v:/Uz tjU)TCg9y{yB-?CˡjNE{ ۹s ڲ̽3Nm y WuoZ-j\*̸[^Bgq.^f9 LVM`#S%w9:۹y6Ӝ|Nug:i1D(s=ti W۳ Eny=ym%?A!? zճ;:Jl:܅.;h$CA|N[oU3{;I,TQwХ]擛VPqbfcF!E y[ -:%lŖ'h.N3ϰ';i(5_]irMOpZ<3㢪oy% 9!{mg402Yg6Le;܁o՞NlOs h:՝1a}a~#3҈'sUhF-@hsfz:Ё<-vVH^fG|V4U {Vi)|9F'??2yR8R@]N)T9;Ms-4>I`-}s7̮֪"/(zqxUg8+sJ 'LP{.'u)-[&ptC1aMT{=ҸAFD''䳢efأJN4f7>? =}ȣh‘Zgmjv2MzMikyT'LmC휻evViڲ ]0uN)!$>7=MXckd4Nu4yxGѓƫ:ɤg_SJ8 ld*sզ>1SON m2SB'1Ƙo{uhi<+$x%hz?ejO^mqکO-wדFdr!aGd_yS:3{!I@}bTOuLߩeVs^[T3pQvdh l?-'УI)S]Ol@Щ cLwPNP5-g"M[O7L헰#y߫=N;pgٕZ. gOЩ. &X^S8a]̸ϡݬ~/9cٴNWW ;zҨWU=$술+tJgf/d8 Otדi:޹I;jkqtjN=_-'uzu>#w9)evI-:utcgaJ!-*ڶ ΍?Uf❬giONٛK]Y*>@xd8᫚ҶEg\FvzB}V^a՝;9O#)r.-:u]M-qN WUU(\*̰e[tΪUI{_BuL=u]5pڻ f`nAm6̮:;O'簑"wM}J>t;O;e΍?Uc1캃orS i T׶%7Vun6d=sN{p<^2:%ldVzs _Ք-:ڬ0;m #O_EܑuvΙE~Ma~Gwoѩ:?nmSwL8̯jGzVa-آsVBN;$ci||MM5s jm dvy:9t&PumSgi|)[&tncdTu{n۟66 ]q䵑x7gNdZdB)[LM*Uix>wT)ۜѺ];y{di[j&SU|w95-^B~:k=NvwJN]:;nP8ܷ;7v\봓(3v.OD9wګKmyjw;NkuS9+rL!g[4*j3Y֯"=Sj7\NgdBr:sz:a" ES[SW䰑NSMViȜiwd4)[&tgD+h1kneendstream endobj 53 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4448 >> stream xKHCэNɛ"ERGyf*rnw"޹ْxU:qg ni(f۵55b+i,7.!S[Ňv̝vWeCg+ҸZVU]}t+o5s4 W8bb~BvJ{:W tM 9-qk;tٮs9u .gM휜v|TYi>g)p:SVaqV<}urՕ|۩Ӯ|OUkty>tǮt}YM@wS2嬳r>{V*Y9%O))?*.Qr&W׻SFNݾy5 [ٗY9Q IxJdSuTLqHxvqZV(:+89Z4 W8bb~BvJ{:W tM 9-qk;tٮs9u .gM휜v|TYi>g)p:SVaqV<}urՕ|۩Ӯ|OUkty>tǮt}YM@wS2嬳r>{V*Y9%O))?*.Qr&W׻SFNݾy5 [ٗY9Q IxJdSuTLqHxvqZV Y=ͧ+SU~2q^6JQ.X܍qriӄTSWΝlɻH6玶;ӮuiWH̺?W3Ww%9Qw]dѲ0[N֜>uIxVwFq<;8p}f ٣ |YEY:ºD;6&dqzh4 UoVs(v^B'SԙWaqο顝5ʟm~zawz7=:u*S82s|ZVճ Yu_UӨ{K,?/pG{{q,g8iB+N]$dsG[wi:+Kfݟ+יӫ;Qy՜i͍TaqhYJ-~G'wkNu:} s$Qqi>w",gaYAQ8=o79UT KpOI{/!Eu)Kԫ8ssKΚD6?w;YJ) s>\VY}X_sS/1[3d;݋Ltwڕguɖl8h7>! wtp׬gQ眿.mB,N-K TQs%?_ġ;]_87_U ÆWQKg|6=ⴞM2R3?3*wVrg5*!j;n'5Om7R\KmO VI﬒[P^;[A=7'BX2!eғjZT,נ V/DgD9w[/^+ʹ-y# fqѪo|EBR?Y WPݣ9 = *\ڄY,Zf[LK~~Cowpoo !,7mzi=%ddJ/g~fU7jNUBzHw*iOH k,^9Ro^幖:۞*ĭ/Y%Sɷ&dUuw zn,NReC'Bˤ'EjZ>~69 VX3]B3Se]lܓ7]4N;\Q23*?՛mOhVsQߙbO5͐_p*6a9 MOTaREGXm׽dN~Jԩ@؜UZz̒zoݦ_ֳ_R$?⬨ť*cRNg8!k,.9ʹZ 8 ,NZiRqJqp7Ϭ9!U3jZ>|LaC*~!8*&~eB.Nk!ϩ2.r6I.Ny(Eݟ6\4V~ڹ ^1mz]fH/Ba8^KN'*0#^2'?%WT l*Tx-uY}fIn/N/BX \_`qVfw~1 sXqPݳ 5Om\soqڄ|zz_so4)8%cZaolgVЪwjZVya!{_bZy ]$$]$ wH-WHr6vڕ*̙+|ld:;/UwҞB*zh77C¬brq,]Ήr9HWvlzdUa\}g`R%ϝ? NVS7/{ ү\wC2Wog!k,.Q"<;+ӥ6%ve˃9ީpC'B޵g«jZ}gKtN5qEBr*EpHr$g@*n]yœy~'F"X~'i.*V}Oy3$Y,)rйUᜨ)7~{88o'Aͦ7Q,NVOWpV/uY yӫd8E~w "/ȥ};$}_q&aq&.8 sAH;]YnS2PmWꝪ 8$p"]{&ZVGo|AhsHsF/'܎r̽˹Nvڕ*]}*ȝԻSg әu+*V̙;;NL"l_97\*9R$9՜ $ i5%WDl]pV%|nUo5dNn67/9{Un!=ixʒ:i~ڄZ9SiuUa͓s%*]_qBܟEsA\r݃t,nte 9ciuAS5NVkτWjϖ5Xw>ziΈԻ$QNwsq9ÉWN\Q/VYzw d:yeԙBTЪS9ssɝɝX+8"&vW%3YD9~{AҒ6 J(Z_>osmF%gJ "9 OVYR'OP+gzz:͹*yxnD忋+NHr.K{ݓ $g,m9w&ЪwjZV9ْ+U!zܾZ]YE:BU&^KqtwewN{UQS}tVO޿)diRgRA\3Cu7vO㩒sWoS@BZSrKU ?-/knuY7x\6YsKf#_~L#w&ix3x+3a \WT&Tt?zzTdr~k% VBC3".}!t8sL859$gu飦tI 7鬞S$ӤΤ_gToŸS%gC+AvW%ӯD9~{gI7 J(Z_>osmF%!۩GLdg$WB-g~:e9\Mz;\yR@rUp7OxLqΩ޵g«jZ}+v} V|7^[Hޅ֓:6-fwsqNtU>NI>UkR}> stream xKhѭNoHL +ӂcRd;9Y3z+wB.y0]Eũ'VA{w''*S_#.:o M!NII#s5!wR}yHX4>Nn9^AWKZiry={Mb"J(Z|^o:oU)d̩FEQf`=]v͋{u#nǮ'Mܯg#9[Ppr+ppHo/mB9隴k^O6u'0Q9q*v˔ 9ջvf~ZV+7-JewCWwQgB2.r..Rr8+$#8<,#p7r.ԛBL: nÀz6 'l7_]{6sꔙ(9H׿&biJtٺz<eV3Kʟl[2.rN%iMuC^ Isuߑ^~=9I؂[[+F*}{ipiusҴuusIX$jZog]TΩ޵3jZyali}uNV*] m:-fwsq9Yxw''Qa먥vq٧vdԙTPxȭpkֳY\8a/˷zY7T?e,ߒ9uȔsx.Q8'Ml":oJHs^g\It :\7RKЅK{ͮF;K"Qr};2tN_V `wT?n!y Z$s̽s3Yxw''gޝ5ũ7L}Vw2n#6L: *GJyžޝ֥;U͹YPa:zWj[+-k0sGWC-TιzpV9$9;8Sşb1c~R{XU999W|&u&P!=UL8a{^\)WMsE\Ws20o^'kJtٺzMWNgƒMU˔m|KTg#Myԯ_zRS\ޔ%+'?'l8'WT&t )X>Jyžޝ֥;U͹YPa:zWj[+-k0sGWC-Tι<0uY8/%︓W7Ylzb**g&^ϤU*6'y+9˟C?pq\[7#d aޜSTغƚ̈́rvߕ:OՕrr81LOW;3Pp*\B'P޵'jZϖ5+M!p*\ VrSrEsIÉwIIw,6lsqBzh{ 3sgRgWCʼœϡqSɑNWs20o^)*l]Ic͈fB9mJ99WTpI&|$Z׼{A+.zRS\ޔ{N*-t3=_\ƃdWWxӤjB?jZVr~k!|#y4K)a9g|B?9$RxǝԟdD,Z|w,?3Rdz m/k-"vA:Ny\QNy3W:q2劧\o%x\P+hBu%'i*-QgX]X<]TWǸ҅K0tN+p 7z4T]o-8Y~xND_ ] #\MMπ o4W/'›&UWj[+o$O_Jk.lBV|B?y&ϔ]s 6<ٮtIʞq{e]e澣v.U-+~@ax*V=;sG9Qg]a$R5|ZVOצkp:6][$˽D $)=> stream xK 7C1›UOP$z#9UV'd{TiCGs<˜Vg%Yr漸+4ԒWBɈ(-Դ9K3Wf l~"Sp%֢޴C9{vu˙| F8 +Ѻ]ox}9k"_3gIr<%tYq;<$8\Ю2Eu%nc+j',aE^ܨd6OyGRS8WUUUSk,qO\q4A|oJ߂g/pmB笣^'ӟIgY:\=:n7m̙*: Yq\VM8+ݸTjw&)aK)8Yl <=W[ςddpL:Ngzu7'WSiӿ^p#D#Tȳ=ړץ6ON8suו=;I'˶PE g]~.kHf[Rr&e=EG)54A|oJ߂g/pmB笣^'ӟIgY:\=:n7m̙*: Yq\VM8+ݸTjw&)aK)8Yl <=W[ςddpL:Ngzu7'WSiӿ^p#D#Tȳ=ړץ6ON8suו=;I'˶PE g]~.kHf[Rr&e=EGݟº? NϙɅ؆.Ι{A'ٕ6Ɔ"\q@gNNϮsΊۃMs6YxqM]'j"&tx憧K2+{N{+BAtSPw[n+BR՛k{gWhj{W\ }yMajH,gqqo=rpBվWv_WpJ=d]K!.ʞ6Z.)^:Bϙ+8΍{վWv_W-~]lT~YIYmRVv?\UUUUO?Y:3 ]v3N+mf3 Ed#:*ݝ\]&.^+um$8ZU㚺N&E+κzj3:7n}a쾮ٕz6ɺBR#>\=;aOm]Rt:3gOWpBj}a쾮aݙч[L1~ǩbke͟%Uwy.'˩P]7,{*}[vlg$:}*V.V3juم(:gXE9*-6pœV;L'uONs9r9{;{哰ʼ:+8aNaۉG$ -\ǩmمܘ,qfsOQ^in:gTSknf0Cβg\d5i2[ejϒwμ T(.ɛ\YHZjw;Tkճf >WBF+5BOCEw,dudj" pݜquNu8aN&ۧz'ٹI뽝IOBWpe^aӀ0vm'N#uojo}TS]6v BnLz]8WUUUS?ӓQ4Ѓ ]j*N Tb=qf)S\&MP=> Wt$UwuRxjŋs Wt$UwuRxjŋs8'\Z~^E:'BYԍvT_ܓqu8vYsgjWW2ЧڟҭWtg" NX: )ef7#dC^iwnBc8Y:IYIusUUUU=MiE2ƍ rf7 $8ԮwNj4y? 3P3O]u8vYsgjWW2ЧڟҭWtg" NX: )ef7#dC^iwnBc8Y:IYIusUUUU}Sׄh&[O]ww:Vj7MW{KɟIu;,a;I{/VsN)9]2[$_Uw `j?,ɧ%?2Ջ$]ɒ̖2NҪCToli> stream xA @G(z1{#:U, fh`I3;P bEO۽_ "H\6Zt??@B9#0=. a "G\0nQ#PLBO H@B@NzIL.SHI@2 =. a "F-zJ6ɻ09,@B(F\0nQ#P c "$F-:s]1HX+ $tF\p̄EVdw@Bl`=sHX(`c>؋endstream endobj 57 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 275 >> stream xر #@iaVxhfu;?H0endstream endobj 58 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 268 >> stream x 0!,}ܑN;y[w.1?endstream endobj 59 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1459 >> stream xK8 C`ӞEm(MJ"uZ,;??@iϣgy{W)_]̟w|'VqMf_<@sfFFt̺iXd=gNwL!P#ΈndfY=eGv1Y bkWEVkYuZ3#~ # sfݴ~N2fpy}Z;g_БjgD|ڎl2جޱ?s(ηVkf@0b\]v9nZ?Vݍd*}cm}Ϯcpvw&0;*μ/8,#g>A뚧,P:1Wgį!`D!~ά֏Uw#}vz[߳kz<6!uPDw5Q]na".;3JFb( *f_<=ԡdEWFL3`D!~ά֏UG#Ymw Y#j'"َ2 p Uv1ޙTb7C7oPo5au%+2b# sfݴ~z˼#Ezm͓u<4U:{v";ɚ(YeI`_^N%Vq#1I~Vk PY"+#0?gMǪ˸*YGpND|'jT2@lg|aeǠu{~sFr1//.n:PNbn0wbހ5LԡdERF 螛7yywTgtPDw[ @5v3ټc=aeǠu%+2_@ܴ\H33n/ډ$XObendstream endobj 60 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3840 >> stream xK\ICэN5LP?bd'QSʈ?RJ)WoC{Ȃd/RJ)w w3" J}R*C^o~ՔRJ)oRJ)57}+x6`%ًRJ)LER^;w(%;&WM)RJ6+RJQ+~ڷRmK1J! VH)R/q [()u}R*C^o~ՔRJ)W_#w=:dY:!-2ً8)D[yz.0? \tyŸ!>tBZCfnwk7"wU%S||n|' ~6*HDsOmq$򵝢~_i K|nλO^tzޣ_݄sz:uךO[uӐn'7D--~pΓkR$} ~ʯ\*_{qil{[ңІb#RJ;nG'w˃+7-2ً8)D[yz.0? \tyŸ!>tBZCfnwk7"wU%S||n|' ~6*HDsOmq$򵝢~_i K|nλO^tzޣ_݄sz:uךO[uӐn'7D--~pΓkR$} ~ʯ\*_{qil{[ңІb#RJ T(ʊ__Ʉ7EO~VdN& w;y%?Of})usGOp=o|B'C'9~u!ET ՝BKdb }1nϷNbSFuO2 ptMNN6_u N j_Lɮ4SdΝ?s.jszlaMPngj} ?ZIڛOSk{Wp߉QW\D0wIhW3ח.7g&Nm|BGnŠRJ)O(~'siS?K2F\ 4׼֍XN~;rwwWfsӦyy{2Wew>{\wu:ON3Y=JNgjKVn:\;sN-k~_&s-~ luO*0Ѡ@Z+}VSLɽqud۬(!79w)`5韙u2/r:Sno~:2ÝLq+ay9mb&dm_!]. ̹ә\NߎJfr'Oo ,=8ݻNS̟7K|Z{w4әRJ;߿u[_w9:$d6?mWsnNi|>˵G|L[`iT'wڝkuNݩe7k2ٟdů]w&Q+|jwiw[:7U:nvu#;W;qU6":3;n]ENg*AGwubSV9Nq%,/ Q䒬 :K֥9>|:K ۱Tw|Li< d]ԝ{wi4cuBv00v:RJ)B5_]w:5MM}8$T ;ͺڈ^Nug0ݲ3FMmR5V}έ{q&Ol)xWJp=י;93,Uj_rU<ηl)xWq'ݞoɼH~u ߑۖ6s7oN>N_g~iDMtdMN0ICQA6/uo_ix]? ܙTOUq;y>E=߹q!9{RrIhbߵb~„Ϫ}RJ)D=Bendstream endobj 61 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4356 >> stream xM ѢŻ)ĕюنz$Q}h~6ΜqTIީ:3f]rtiĕ/3V۩:-]TyP_ x8.ӗ*$WtzzWP%t]L:eE˙=?!JcJwUNiToU27F!ܺoDϙ3s̟dZ&3g\]_:,gJfCK[bM7(zKW^KɻL; : Rw;#*!E  Fh4TTrv+պ3~w3"ԫsz:E=UGgKw \{҂?J.BOT䨷ӵ̰H]!MiJL*V}&WF?0uTy!D8ulĿRs{IϤʼn! RNYmX7fޠN:E\O?JF9gãrBn85mEwu?zRPy4Fџ^j޲#_xwWCX\7^%)|َ:†8+x^XgMߓWtzzϤ$GeEFlN+U=gRMS6In4W#s!©c8 *pK&Uulu$8T|< UT~vDhA6uO(zyUz7A=zuũi{/kEwד|]Σh4||{x|v+REG$M3{tz3l•yVr}h8UZwH*e/7!ߪxv+*s\Öܩ0精(XS"p9/PI,k6ω$-iW(!_XLgCGۺ~BNۄTq2U-uSi'_] pŢb%3! o 풧;unnSřW3T ,BM!7:&Yᣐ'*7ҎpN\ɻ9h]+h4F^| U|_GZ,*uo?rQpz:u#\%Lul R[ԄĻ@w|uKܷ T}NvV'L \oWۆ7yz{ɤTD8s{Fr!dR+9riN7/K]nnoB{C{*E\]7oJvl>_8]$]]T܊8-_5CEFh4+Sz-<7n/7ngP+a8'cڻu?J-' ]&Ԅ]ycKWH!nYϹ7۬x&U*fWI|Vl2N]%ԓWoqz6X]{H*^S.T<}s VnDTх&ܕ7 Jڴq/RWבyzSiܵ\MŭN`_5Fh4~Hq>s=W.Ե27E|űj+ޒ;{vi0mױyYJFʟJԓ]S~.M}ej®%wGϬܛmVY> stream xKF C 4+G,[DԑDϟꟿj =s}ܩ2޲(=$gjJ {/թW*j͆<˓:5goD3O;:UtG9rm~+ ^N'T7o_4td)s:2ԭw[mFh4TM" >:B*TZI˯v9q.!7QOqލdZ㠦l!gU'oGl8U{[~*v =zYeů@ԛz'&U*ƣYbI9 <ՙlo V3BsT̀Z]dRlԹpf˦FSE'oxw9'֓zE96/⣛yȼbIk*կgb Fh9Sũ]__9HfBGP쿵 ֺsxo8wǢpN_ǶKMSuw*V'8i=[ș~:ItEQ&N@򖟊]BOyVzcu'3'f^7yzs{9(p51uEr:rNC7Ou&gյP_a:U3ූyT8/un=zQT޵z]ɹd^EM&s^+2دg,eZGJe뙘BGh4TaqWP.jU*Ïu]7~˽x8']swL;gblk=].-ݬ?~]rmF7yzIٻkNZ]JABvkioWH 6S5>dM&NߛC?8OM-2oEuꖋwZi3w#7~\Ͽh47S9_A9HU;?#9w-d*vz2휉ۻveJz|vt( } yO.yVzLxI]o'eK&BgҮ98Ivku*">uGaEe\g XڜN "78Go3c<7r@uη: e!=[.}kͧܵܟ̳Jr?Fh4Q_ۜoO| 뺿vq9]JN&7 O2ulk͹Bd3Hw,BܟE'%G͆#Ңigg庝U<]9$um~缗zJ]sI )av*T´k\%j%_Cө?':{I)SZ ]V=Jޫ9ߒ۵YB2at|[.#9# Lϯi3w#7~Ӓ\+Fh4Q_ۜoO| 뺿vq9]JN&7 O2ulk͹Bd3Hw,BܟE'%G͆#Ңigg庝U<]9$um~缗zJ]sI )av*T´k\%j%_Cө?':{I)SZ ]V=Jޫ9ߒ۵YB2at|[.#9# Lϯi3w#7~Ӓ\+Fh4QٜoO[(KdRU՜]]w/U9 }ظJ6ΉXך|yE8ٸ!Q_nJBZT:8l "j6IҞ)u~缗z+ܬBl/UšI9VAHIu`CΜ!d{t4_Z* Jh\.rRpS]ܪI~Yl9ӮSl#9# T'yG,eZG"5-_Ch4Fr|x8Bi_\]$$'@r{8*LU´qN_ƺִs&3Hw,BATruUҢʜ6AeKqP9oOLW<=k\qVf/g{*M͙ BL*Nruu6!D݋'sbUIPERtq斓҄rVMb˙v*g uI"?;b)s:iY**u=ݍFh4wRdMU ¥zVyyq9{mzHfq:k|?]~N AX,9If/H(2uqrԝwYu06InKLZ9lx4sbgf{qf&lyJ*sA* uuGV9o OnNUWTřg* 7mϞe1=əVo^\Υ8']oIQνtFh4;~I+.zVyyq9{mzHfq:k|?]~N AX,9If/H(2uqrԝwYu06InKLZ9lx4sbgf{qf&lyJ*sA* uuGV9o OnNUWTřg* 7mϞe1=əVo^\Υ8']oIQνtFh4;~EPK;! u;w]\s3Ib;k]]Y-Z,Zř|'2C<]*2;e9gIyVPřsӉ{ 5!^%!xw Bn[8qV/\.w\P s*>xZN-n9ʶ'u\"KTřnJǩsv6ggϲϔ3zo^\ΦpWu䷤(⣮`FhV[v#;9ajk֖w 3/!e*L&;zulkU.Nӗz ,.B]6< E{9c;;礅Kv=osg< uX7rFUotv_YGױy<̳v@fg5Im?;zh=>uuğU%'n݊] 'ϝFꞻ\Vσd׿^VϭGeYwX׫|r6W]oIQCG=uwh4~-¥M;9ajk֖w 3/!e*L&;zulkU.Nӗz ,.B]6< E{9c;;礅Kv=osg< uX7rFUotv_YGױy<̳v@fg5Im?;zh=>uuğU%'n݊] 'ϝFꞻ\Vσd׿^VϭGeYwX׫|r6W]oIQCG=uwh4~{v}xuRs:쑛-;妗;rqUWꞌIp|3p]´qN_ƺVut܋QNoW q3L,3KiiaQN;j6.vPoOMTIenb">~7Nn3Tl9,-_r9WǙv{*>L* HҲ}6^fn׊ y*Yw)t)?swbr<#>j.rw>A3w'߮Wu )妨+jk2h4F$Kendstream endobj 63 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3092 >> stream xA9 C1M3PYDLhSF#|z֧?kdrFmw0? (}ZTT$9;9\.!Ͼϛ궺[sq8暜Ρ;$٥\Sw{s±Yvo=KUgVmG;?vrљW;9x:o~[-y;k˷m|+SgFYYV3xx9MZrtjGg44u5gQϟّ6l)~|{"O3TVλCrBK-[Jħ y=oS9hn.frK (};9Ʈf(6PEB}}}Ngz8Gn9-ߒd=C-N斖ÍQ-oZ]${sO_zZ3yn=o[}MK.mrޛvqCf in%fd=[q}=TSV?'wdq53]/W\gRVYЧufܛ0|ϼ f^Vg[/.Ugb&doȰ>ir_*3iLnnU$y;tfw?ݒ-I3Ԓ?dni9- UE79Fܮ:nݳ6շzn޴"-&wP;9Izk8n֭P{VnvJ&߳[LSO5l%H^q2*yG}?W3ruyu6/-eU}9-MnQ_gɽ g[oSvsxӋkw%;P姻HP\s&]Tm<*ry{puwݑs\ݛoqGsU¤oڅ]:sIU֧{ڞt^BdIn:ߧ[]4ܤ;LWg> ݬ"$LLY҅k;~$S\MjfD1Fr'4ɳθe>-ꫩvs1}̜Û^\-V-?Er_j3iLnj Tv甾Sf~LW>O/'\M3&}.|$БL>$mM&LNrk>j&m]}f:V=df=I&ߝ@gdoug*֗._g%3}r_jrW3ӝ&w7<٥Nu-9OnQ_Mǭ3|fϼ ^8ֺ%+Un}N[>wWsƙ4v}&7SHK씾[f=WgVy؝Bg dλaBѺ%<;k~#9[tÇ{Է<poǖS]՛&LNWls'm^̤ۙVfq 7t2u fIQ[G;-hw=wS%S뻽33SΘɼ?ֽ)Ovi{ݧ5UTse vw3/)wnJ[CU\q&]=*>;ٷ|ÙUvЦY96C-neCf| ϷqvΚH:ិ?-9w>*+mtınWobfFǼ>9mǕ9[9Iv!3*:Yܭ-Lpm]~YvNor Z]?uϝTɟnoL3f2ϻu/|ʓ]޽m)4E}M+\9@y!8Nqs껭(ifߕo^vk*Wuھ3Z{~S>o%ߑYl;?s/I-9&Cf ou2vtNt̕.fH'f{L:L֡0y$w<'ɭ?yiSݠUU3ވm>k{ng6-} ?l%|VOb.TxOTߧW{*f:;e䍫(f)o-oݵ* O k-3<=3sP@濊Vj->r:eLp 91ϾLp"s'I{Jŷtyٜ'u2sș:Su7:_C]>OҜ'>~抆x_@r@~ n-3<=3̷tP@濊Vj->r:eLp 91ϾLp"s'I{Jŷtyٜ'u2sș:Su7:_C]>OҜ'>~抆x_@r@~ ^u/P( o@ 738Pu" 6@~0m3 u/P( endstream endobj 64 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 379 >> stream x 0D"N| 3,^0`y:"LsomN^Nst i`{:y:"LpiE F&qN^Nsl(7694f il(6@'/@Q6mN^NlfFx/zendstream endobj 65 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 66 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 472 >> stream xAn0 G4z/H t6HY ZP{9:ɩd %lCT1%JNS$)uN1%eA& əNg_$_mdV`3),dB>9)Uz'ԪnǞt`1znOtJ}a*;%JNx ,'Ls)) 2PODtJݷH9}8endstream endobj 67 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1521 >> stream xA6 Ew;$@)=瑔(!7j9>U٭؀5tЕv ro][%mR5/te|#,Nl>Sbʖt('s2mVd|˙sySъЇnrҎUɛZd݆EfWw?*9C3%)lYI~r::'Szn 9v[+-gOUF+j[l@J;T'oiֳwV]3);@dڟS9ϔ8eA& Lb깁pnHϷ9>UY:MfWff +6|W_UgNW8#l>Sbʖt('s2J3=pvu\Te&W@_C7]5poO]%GST9]?*9vO9ϔ8eA& LR5LOr翭]q"Y+} dvefְ=mOw!LQ~te?CdڙS>l>Sbʖt('s2J3=pvljf®5tٕY ?-W0Eӕ'N#igNLs)[dҡɔ*US$y]q{d歀nt%p8RZ* 9WXdڙSjMyU9=3ss2-9vγ7j# `5ot+;qRIJŪ0'ΜPkʫ2%)𤜙)opqW{Yy+] 7TJBU*V%9vZS^)qNa'ܜL~K썻dX[Jq\bTrx?R*95ɴ3ԚLs { <)gdJ7[rgo'Gj FWw*yUɩaN9֔WeJSI937'Sߒm<{8=VV@7oWX-ϫTJN s2)*SOʙ9ҍn;:7N''{[9UV{z>.{RfegLlou|^9t0+|CzS])֓3Mw_[:0'> stream xMr( TSg6Ub7~]dԛon'Mm.84z}&^Sl&?:*8GWdvSiB_L8l/N_;~'<fS*4%5Wœq ;pJޫQKM;56k讽ss^|_;%įgdgML_r5ZVj7U Oi#"i>=QHXNާ4/†3VFulH~=Gx..qIlWa_GʎS%c7>q 9u)<& xxNŬЕGysAMJ{/>'uJؕw;tD= So-u=i=PTi;LX%g.DY̽TN0m]sٍjZV7)ˊ2o݉mߍzO,i͋>3xLnѣu._KK\<=ە@XQT mw=M4OnsNv] Ignuyr{`1+&tQ}y^\f9^luvŝ32)zGȔcKA)mopZ,<8Uڽ&6G'V{ {&?.>;gso?&Li\rvcZVj_V,!B>[k߽POY9Xi[]!gܱdf x*ӯw0s;e9u}vQ4x׻\%쉂D[뤷s!SE]= 6w]"R(zHʣRݜ O+w])Z:/7u>!7.3-iYS4enfWw=x9= +mZcmSe9:Lt piqMœmbt75ad{һjZVo.'5?dMl@=en\b*mEv}sǦ~׳m*⩠ROIn;H]stV ՃGѰg]r' uof[ۇ4NuۄމwHA!+K ws*< uuhKD δgqNw]ms 'i9oO0mR5ũ6iOi;SUԄiK>VjZC/:Y='\M̮/w+<[:-!Bo3?ɩ?!Dqe8_v*{#r_LWf^?sN޺osuMֿ3Y'ɜnO/r5q[Lۢz3]SNȎ(O])rs)^%I޺)RagM'=TOu#)p3/:098sfeO$~r4NEx2*^oŒtz}.w:Ir\gI؛߃䮍jZV~&'H&VOֹE]}wwH:=Tj>MxvmNBjŬ{9'.Uu:[\ݖ>qYtM9!bom2N[c7KuS't5wgtB:L_Hd6\Sf#iJoqۻK;$lWy *mt5&YnºsM!Lۛ!W |%'Ϋ\綼::e{8IYnY5TPpеΖn>֔ 9w::9"Y:Mل;H6T*YnºsM!Lۛ!W |%'Ϋ\綼::e{8IYnY5TPpеΖn>֔ 9w::9"Y:Mل;H6T*'K1.7zyJ] '||XmpI]n Sn+S9t:SRUa997rNIYN);e,mif'׹ΦhYJJ]+n\^JBN${:_q}xΉedIu.?gM᜿jZV ;=Tu):mM)SyڃU\%߳pSwܠ™K\_=:gZ]Rx*Oyά>'K1.7zyJ] '||XmpI]n Sn+S9t:SRUa997rNIYN);e,mif'׹ΦhYJJ]+n\^JBN${:_q}xΉedIu.?gM᜿jZVR{_Q; τY;MDHttR7m{ōvxe\XFE8i[ZE,SnP$!K$Ӕ&+n'KKL |߳wIjN\ֱ%tU}%p7GNvˢRC|.Izf4s&+ 6w=dBfه̋Kp>ĕ|)N.&Ms[,vsGιZVj5]/W3aNvpS(:Q;x&;{oM^q㲝)^2Q},NymQ375D=R74Ɋɒgg:8l]Rgul rp_ QӹP%_ǟK'ᜢ m*7J]>{!O=q%_KIzÖ?f:;}sVjZM{ ;ߟS&2Kn E'N+mͺ牫.g.g=sOKE_"(OS&Ӭ&+n8-a]Y͚Eĝo0CzÙ\j´MؽNO,id g)?г +zi':#L3y{qyũu~'i>zÖ?;f'졚OZV? Zendstream endobj 69 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4170 >> stream xWK$ ; ϋ0FۖHLT /a'k~RTW']u̿Ϯ:n-\M1=/oI)o'p τ\LH :LFwkC'/\A~=䢷_-rKVf܄%baM4 g!_' |W/ۉ'|m.?omz"~Qڕ'-"n'8;C5O?bX,uÐ? 'N>-{Љ~"WVMЎmo_FئA5CK| ~~LJl0I'[əQ1Y;gB_p[{.UR.'; gn zᙟ.d yz8x:0;_|-nL -Wl؋7;Jy 3U:Ü-:'7o~bX,uaڂɿ\TW']=lD?++vq&hG/\LIgilӠ!%Oiz>?C \w⤓-̨Ә3/8O=b*A)kR7O[RքYv<=<I~mr|md7&NF| ֖L+rLEagvA} .]wn[}Br/\asq;oRG?I^;99bX,_Jw<{Gr(? '3me|dr&KμzKF9 BôR7N5OF㓝 xrN`)Upˁ|'qsj].'y/es@:%{Eo<{&ԡK`YHnQͶ2:tWA$S|Nr[[^ʿo)BEuV9PNddV;<-NbX,Nt߂ror*μC҉3Y.LF{^{[<=rGrۓ)npN)2٠]HkK&8iyXߢSWPQd-Ooq5ݥ0\tL.֖t3\j/й5=z %0,$7 ٨f[|[]]P߂K u|v>q9M-kd/[7vً:+|ov2s2}'bX,t߂Mś~-C#W-KP:qr&ɿ3H>IO-]n{#gr\r΁^uSLv6nY>MwôK@u&:4ӘinNbÜs!3էX[/'krXspu~(|`cOU3]Br7tNV&·]]HmWVEdi\NSrxV6"FU}Ni/*OsN/Is2msťޑbX, ~)ntķ ln_U~e Nɪk +uғC|KGșW8esjo" ۥnsSݥ0,a΁:p:4&koyڥn;[Sإ0\tL.֖t3\j&V>\ X?sr&ɿS''-#7quSLvא{Mwô#:7'u uiL^ ^[StQ7z9.N]ꗓg5 zߙ4zP#C u zxnY钉pL?| ?[unO29iJ{& s[96abX,F'C|j-k*Xׯ=oRo:ɡ \G{d\7uJδۻSgtmqzHSO8CFu׷<ȩ'sStQ7z9Ef{w_N2TU|g*3ơvpI >?aBɹ' n]ɬ? .$B>G -方i\NSrxV6ޫ7)MC88稡<ɴɽA}bX,t߅v7Z~F +sts~fn'Eԛ;7Nzr;r^ԙ):ݨc~\^'=SPQd-Oz;rnMh?^uN]ꗓg5 zߙLq5\x҂OP⪇wrIcW2+sC7 ɷPQgsen/rӔ*MJPqy,9j=w2mrE|PhX,b.~)nt2w!MߡXDH9Gqғ+E{QR%'p:)E&;r烺}w:E]:.rL ?,N:[vrNStQ7z9Ef{w_N2TUg*=S9a0UMx^?dVXYnrWo`Ldi\NSrxV6޻JIf3|B9ɴɺD8#N.bXE/ӍN.մ[;4rUxBKI:H;;6YwgbX,t߂Mś~-C#W-u<gv^$$;V͹~ gS]\t3\jLecq[p 'R{Sք:t L`8 ɍBбMMgTk{i\Nzu`{*'Y?lays-,:yX,E, LOendstream endobj 70 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4151 >> stream xK#I C1M{P[JmQO(?ī i=r_qPߔǡ?3EJSoV7JݜTŔq3Sg/^kV禈[ qpvR>sgM y/Yq?57Eu6R>3B.y\uݗ3\BuLb˦&ǫIoNYu@8KBM;uMC5gّsZSW{9^*h?NI֩2RE˛͍t3WaqwOoMd^VjR0e#]ʚ*6fn'N;¦[uNB!HMy»Mο /9aS,Y)IG'p"zwoHQa_gFsǪbV8y%K)lZ8'a躑)u@8K963yG5 sלq*g_ 30$uI sIÉWuRQtUƚd}K5+P᜙wJNjZVU/NS62Qۅ: aSgvb#l 9jZ+$lԴ+{ZO"6r񗒙+l}t ~+{WyW+knfm|f0'{* /asw\T!¦s"lj<P. L`C*8wN]9wr0 C]iqB?9y)9xE]+uNWenI鿔Xkh{ Ιy䴯VjZR0e#]Lɪ*ӨsΒ[E3tEM''^I7G,Z]f5ktNo͢]VjrR=ld#)YU_eayUsNYr~+Դs&IYy­2ew\]MUq⚛"n-a_JfqdNp¹ߊUJkܿRœ))?r{_?~ og&$l'a#  cus$(rؐ㔎˹kofӳgܻȹ)+>SELП|mgt"?Tsf:gRu9'[K|3@{Oȏ_xsS8'CX_-Jì~uN 'xrUeWA{kSz̟!W'6.t`])7s: $8\d#u.z!dɹ$ itrzh.%眵wg~Na2Lgg~Zi_VjJP{~#b)zR͙I圐vnE.m{@I^&=!?~]M✟paq* iJfn8-.PףzɽW?W߲_qpOo0\ ؔeKuwg\6rR鬂0xsqߓ=<{gON׹Իg2O'$Nsޝ9m$3k%}ZV*A9/ϵz9rHGn^LL.7g^{"IKӄwݕޔV&&p&}l:ynPǖ0CS9?_}_9)+n_' (ֺYOH7LwĿ^;6ܿwnu+xlܳJ+ɟ0U5GD ϙdM%}ZV*A_ǙaK{)wk۬5<7Q™{TA$?"𮟚" !d?M8P OdNԙѱYw,gMOxG' fUr5'A?+~:e%p­r"!{Z!+ iwQvKxdžέ9^rϔ{^v%fS(a9Lv䴯VjZN>BnwԙYw);Nfn'ɒ ®lgDpsݸ. SOp)OsȚMq/y֩X\7n,ظ0ΌM"y:ErHlYT Jm~y)y[Vp>~S~= ;Ft9qw;wY%-O%dL˹p MMwsV(yꌻy;u*y9펥L29aS,SBjZV_] \|*Nu7 +ٝngvb,.Q qFY=ލ2= g"4yšguߩYAȒ3K,B'Sd,gύΖN BVW纛Bѻe':u QlDǜ'zzNUTM&^q4nʿT{:gb;9θ'S꼑XJ$6r;%T;VjZuZ~a8Y6Rw ٻOŝDĿ2.5yUsݟOEqU{B9E<u:Y폳՝3HXrvzV!TOϞgpgV3sBಥ% ӛ:n:ue.;gGd7z{噹:Jénlxhy#)8u>7M0.g=Tw[f]G]+H:YGUToʼniSz?'8NVjZ9z/XuNϔtBSwq"QoL_MF\gSssPfOnw](dNqsVlul;9=7;V޹UՓY!89Y:9=;4li'dۯN]CGAQo$ٍfyfnΦp۩'Z= Nϩnx`$LYGݖYQj!k,ŠһqQU8gq"8vګT=O,g# άy8qjZV~g݋NunDe2OWj2.5yUZ¹9]N J默;LN=sFM폳9ٳ9{qN5T(S>OÝڟEؕZ.pڋg {G8O܉K|fmϦH&W[=%v٬'!ڮTd v9LYGUWZ6SNVwg\d%թSSuw_]ȩs^X)jZVp,9Oendstream endobj 71 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2484 >> stream xK\7 DEThI+HH=^S_?\Ouf~un]Ƈ֒seSRMUޭv sޝ@f*wqt3٭sznllٳ9jޝWHT8ߕp:w<^y}uTS\xo&G-{E[UMM]mw=5]%wٳ<٦f.ul] W+U9Ur{&<{bo6Eͩ$̼ZF9=yv{ZOwxu#l 9ISo{=a%YI[-giӘۣ:NJN> stream x @ "W/ .p `ݿYLLIny If@SF O3$ii8eo$q@1-=>H8>С][ ITZz`$@[ ITZz`$@[ ITZz`$@X akendstream endobj 73 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 74 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 694 >> stream x[N0 EN͹]Gi s'YOwOi&AOZ=aBW~x-|M/ Ne7y9qggf6L0gm_9{}rzT2nr$wUs2M$!I̟<ս Kk$o}Hp*sLT̉;;;4sa9kcScme֣I&λwUs2M$!Wywv:wMk$}鎟+ AکF&T5/s& ߜ݆i+gOU^L;h}ΜL6 wȪ{oHwv:wMk$}鎟+ AکF&T5/s& ߜ݆i+gOU^ϛe79wKќ9&Pmt =5ߦT>t`Ӳ꟯j^Ξb9՜}ʨ2 `()Oendstream endobj 75 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2011 >> stream xۑ6 r0E 95n4H`sUv۬~;+J'm&ȾC~;7؎ݓ<٧j=NB6̾i9r;:؋ȩ'=z*̷Pov7Ύ3T:n3Aҝ/NMunfc$T@wu^NqyTgk_T-v5Q;{&J'm&ȾC٩N~,^>ʾ`~.˩;~8~l%3߮@\;;zGtSwHwڟ2~ŨIUl^_I3ɩ @o'"꼜'0ȩ'޿Zb;jԻ͵wDL=NL}t)WTy~,^>ʾ`~.˩;~8~l%3߮@\;;zGtSwHwq^v{}5K'$/=rꎻ4#gOzVqFOnv7kgG~=NL}tʹP9[lWtzLr*kۃ o:/ L-tzAx&0!p?j9zFD{͵PdsƜ'Ԝ$iyvk :3^ مPgI3 o Ü;$&<&dʹO˳;^g)ɾ'L.-tzAx&0!p?j9zFD{͵PdsRsi=gw: ϠS<}O]8џ5y֜l= u'Tﮢ +U|S]|wI'jKS+y2z]fkVJ;WsrMz(*Ueo~Bճk\_zogw`ZoߝRU&D6lUsenvv=IM-^wΜ̜l+Fu=53ٵ٧/o9{r3*ᜓ{ۉ=5 Ug>r3c3gz>MN*z2[ew;ѥz${ֻN>)?sFw!cȻIVӓu>*՜Z{"uޝ;y7+eOz.W̜Ӿ'Qޥ\o^\f3{5,twRUf6+D]=_w6vI(Ue]Ng]VYQe?Wkgדһ~u̶̙RoTj=Qٓ\3]}V#+W^?{>9QpZEyf+w93<6z漞.s> stream xK- Cai{IQY"CQQȿuϿE}@Q)l N{G>+<ݛxX.οt:_\W'aeI@2*&7ed"Yws-=93{, ԥpzn[G+'~rQq <+RV^# :{V]o!*KV~j.v=1pNou^)"nRNt[u@g%m$~N]U<Մ wѱq +n )MK}pq*ESOt:ޤCp6RȻ;t"l m$4 'q@vK}Q\N.! gf:۷j,efܡzosϨ=lYiNk¦ާ|S%O;̎~',*$ueskIΞթ }ɆsꔟQENp,Ow/sVth$3zۮSX]y"#w2q03{ԑ'ho^uܝ$ ~:N]ǥґw9w$D8Hh$aN< OWX]fCN,toՖsYC6޲ȟQ1q{Գu*.D1%!S}3UMO!Jޕvj3NYTHl\=gSa )?3+$Y>_ԭvZHf^7]էtt=+EFY$TgK>|N6S{;e$JNt:uUŵ0Oet!,=pӱ6nNvEZRn:?ۮm?NUrRK'er޶=l)=uʽ ݔ΍?nژ:ws$jֿﴛ;6۵BS#|c;*SSOuƜÖНb{jޛT̒ʕUw oԳɺO'n ޼NY;ɿ)„t:N]e~$wrVMۡgi$L^[ ܁*NvsA|"m{vGhϋ|_IY޶M=ߛWN>)  v%Wgo]r:l\,Š23۵NSyTT-tF8ڛpO݉?/k\S`p6zo{SQ~jXCr Sl{I|M޼NY;ɿ)„t:N]e~$wrVMۡgi$L^[ ܁*NvsA|"m{vGhϋ|_IY޶M=ߛWN>)  v%Wgo]r:l\,Š23۵NSyTT-tF8ڛpO݉?/k\S`p6zo{SQ~jXCr Sl{I|M޼NY;ɿ)„t:Nu)IpL*03Ŧk$lI:ǻ~XuVq=+nxR'7qW]Z_2C]K{S 6VN+)  ]77ŝȐ"oYAȎ{zn:ϊ\qyݦ6哰O?ӾɄ2:{:Oᗲ=n ᄞjBE۫SucgS;mq(ަ8o\ʼkӹ1]wq{*٥/p*M~v~sSNOt:Iܯ.*03Ŧk$lI:ǻ~XuVq=+nxR'7qW]Z_2C]K{S 6VN+)  ]77ŝȐ"oYAȎ{zn:ϊ\qyݦ6哰O?ӾɄ2:{:Oᗲ=n ᄞjBE۫SucgS;mq(ަ8o\ʼkӹ1]wq{*٥/p*M~v~sSNOt:I/7gwCإr9;T$4RquݺbfIMܭvU'Uܛ'oB_Dj6E ӗ[}oc9wJCgߋBxY[vYqe:W3 Yo} sq:^B9JWFXwn2%9=wJsƕxUsk2Y9wzS[^ӹUNYnnUGt:NOM}&&|ߙi-'pyئ"qνC|-o5Sp<$yu88_ėM1WjTsK:NV} xYNDߪIxqU\" wVmJRMqͤr*-`NNmܒQM8ʙ1mRo|qx{Vsso'-^&>qk9^&z83oRKYft9u7~M[::NWȃendstream endobj 77 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4342 >> stream xKF C i2Q?|Exj鈢 ^~P-ByW5)ҋK{Ŭ[9J筇Й|Oԙǻy Ow&;SW{Ryo"E7u\y7]\*%gaNNVI,?rV:UwUS'*+69[/sL*'trzhnpʌj]39kϕg6qN]ro2Y2Ӣ-upffR%,t9uW_ӔVj_R@ږs8ObKˀWssPgշ]\T,qSّ?W+oiuz۩pJNVI,tV:UwU?c],^9ǢUH4'+T|Ȥ)y/P}q,NmM_Jw"! z.1彸xӷ_9Zo2YuH}„:\[+IהjZVoR_/Cwc{2S2g~㜳ǜz%Tǻ(~sm>+r Wmh96 "~2tJ. $T_CpqSf׿Hȶs^cLy/.m%W֛LV>qtR0!N!~VnR5%hZV;Bt]9SN\,v/ȹQyt5'SU +E7]+nAwMyXxv4+^«M=pJLzf$`-s7#i_};^,^9HvWܬo<3]T9"\j2#^߹wt:;X*$,.g^6qΉ<5.RyZVG]Tw=.,fO.";ԯta֥D]MHyߓSJ?Ζƺ ISocLF/H:éޯtN8yt~"m1{[}3Ӓ-R=x V#QOg殗Ay+}n݅3~oO5eFElpJZB }ݽqYλ`͛}+sI ^GǦs^7Wo꼱h~Oĺq`UÿZtv]}jZVՏ2:zh]zY 'l]Dw_K򻚐)*8'iϕ-Iףuk9Ln޶ǘ^ u5S_Oqy[yD*bJ'N"(>g%-3Z~{HGԓ]/U7DVv׫ݺ gޞjʌNו{w7&Vt=Mnyc:9tu5 NHjZVe-wQuta+z)h9< rvԻƧf'!w]MHy= T8\!:O۵"вTz{JX}S $jZz 97$W8W-s7#RɭӾ*,^,Oz9ۃ'`E:i{;%*aoRLtL]v.{{)3z<'5]WgxzͿ$]siUg8IX_q_*]趯N;rZV*Y]Tw=9]?|]/?bAݎz,$ ɟ23! O+CiV$\q#ZּxoT~OIr5/w BDMTSa:'F ?f]~Wj?u!C噥ҋI/g{HG4m~S%T)|n݅3~oO5eFJZB ]OpY\Bϼ72A=up:*?ur=k x5K zGnWjZ%+oOtnǛbKWb}1.w: x<,;S6g+CiNy:9yol#Lu2G+pJ~:,xnI7敳ziAT4;0ePH7[qtͨfQy'M.'|f3c.,Ñ9IuW!gq =󪷉sNg&S#lڿ;Z'/" A)txR/jZVՏ2THGm2[,?˜i-xY㩀w3#?es&NB3NwEM! V{IlVMsbeO'&OT*lwiɿ}S! WϚC'_Vjuendstream endobj 78 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4273 >> stream xK+C(8~DE:P?ϔYg~CP--799 dMϹȧ}7b#9o>+wYJ,us<]{VsVd4dV/'?O5qozkrNIJ?ԯE; 鲫w{猼>.]N6*禸?'Clc&?όVE%Nxʐ V}[x.&9YEMd\ LLީC[Ε鸄HYs.Rgfbݍpy5%߫ge(^.9} m5N9xr[# .'D] ~:6d{3z=|ȝ$\GAliT+2MNsNr Ys[$ɜx< )\ <ηq@=& $u =mMy)t!i]^%_VjTگ;oxdbNrH%DȚs:3'nprgevKМ.6Ք[W|&UztVpYda@2"lg3.2ӹ)/7EwH}J}VR/jZVէ2'C<+s[[wa8kVi©ДF$3i5پMIh"gmC時gҴ fwz?+ݩyroJ&+x!dJ Lqf6+?D,7WNQ﹵ĕq $9Yg[fRϝ'-8{sP_a?ۺ)1EoMR?EZVj_5=)ݡ_2%;+pu67]Rd! ԥc9m({ym]N`S;y +n,w$E8u'gjB'Iy )6%?H.U¥9Sz9JaY[;iN\K:}Ve&Ug:+x޲;6ν}S!YK]jZV?O_]j)WT)x.RqSzxJVBXJ@œK˫KKWW;(KwpnT ,ڳWwWMzwwJIx BEMzדSZ? =wO TzvL5Hǣ{K5sdBYwyJUfg+_Duruy<nQtQ%4sIN3p63s.N;'BREƻ)ޮVj"/1߭YMQfﺋ"s- |_D\ߞG]wOj")7oO=3iB3,g;6txt(-vNXܶ;ytn<+܌ӓ":Y㹻뉻yNsݕsigT*2+."5k*z">:Og^o^g{՜6Vn=ȽE?YG^N=l\NOFwֽS.S7E'n mSn ťp:q^Vj+/1߭YMQfﺋ"s- |_D\ߞG]wOj")7oO=3iB3,g;6txt(-vNXܶ;ytn<+܌ӓ":Y㹻뉻yNsݕsigT*2+."5k*z">:Og^o^g{՜6Vn=ȽE?YG^N=l\NOFwֽS.S7E'n mSn ťp:q^Vj鿄3ٰpLa/a*'-ٻR7ءZڕ܁ ;2IXA6uK W\Sn ys=-sW͢ewu'ֳh~gW)m̽N/&'W:*ujmL=).i&<ڝX$y+ļjueg]<9*'"oθ/KgfFuLgV޻$p*sջIι?ZVjM_k_tlM8SﰗSM]PP-d]J@\ %jϩr7异ݞv疹fѲNһ:YpY +6^m +:5y6Qv4Sw^N,μmb^.TGQzsLg\%33:W3+{]8Oiٹ$w\aH[كq^Vjz7{ãc;jJl]uQ^tnn?ɄjMJp@r}N($wOa^:3+$ˮGٸmc/羬 d1Jͣ$WS*xɛL*A})wgKH}#ERE"> stream x[FE1ߩ+h9ɌAvƃlT_kLu/[wW^|''3}W쫱;սNvٟ }39؝* ;mZڶTɬ{k矲ng~•бWMUUsrG8%ymynיLf;%3߽g'ݫs2w_J5SuUj{񎚜#|*H;jIWۢLSuBmԞ_{U5% ;O^u7g_}ѽw'ƺ K5?3us^kr;渟t޾wNv櫘ə+իtwv:|6[U•svJ7}N9!y|kP6ٽv˙KGΫ''g4S\9O%Wꝑ}]͙o;swW_=y'Jk=`ݳfJm;QuOTzG;*}[ןɜyNkwƾW9aɫ|˹/X?X7!}gfۿ~kMncwt=wy>S|39w{z5.NgfJrNBUif)'$omjf#33n9sy3Lz6穄bZ3Ҷ9bG]y'lgz)x_td\VN炙'<'dZim{˝ImO{(amgї$ߐEߝO&ט~c^ųttɻ-!úJw Lvt*y:WM&3?c+2g;{*R$Ip↯%oKi3;C]=:L~|L$96;{2IϟE_JC}wV?78_cf*y%ҍ%vZ r{*}{s߁gl2ݫ\6p'LȜ5oK$nN-IZwNΐV wxJ,3US2lLJۄS [S]O›| O 8y)ɧ1Dw|p. } ?< Oy䩺 @ } ?< Oy#|<`_;wL@2hN]Ow2Dw_@>3<ۅd"$6ۅyy>.|' ϵy^!K|<JoO< ϵy'.[ 'Cv{|͛]ۛoj>yP$?zendstream endobj 80 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 398 >> stream xA @ C7 7Q73? xV:?YL5~(2~\ڼ3fJ?`,d'@.{mׅg6~X2NT\ȄP%Due .yL8~X2NT\Pؙs*ydT\vPؙs*ydTw;dYT _ϓIfQ)Mf)endstream endobj 81 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 82 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 819 >> stream xAn@GjSGȌr:# ŵ}wkO|r3Lz|궜sS6^g+Xrdb@3.,:E9Hz&|Ҧ3Lz/y$r#fȩϙk{;4 o~pOڶ1$]w5ߗ.r!B>z&3Lz/y$v6Ήo]ۻ`|tF|Ҷ'JO{հ_!$Oh =^zg1Iy"99hs[n&:D9=mcI<8w5ߗ.r!:CϤWYL~&?9whs~Wj~ tSx>iƀxv%p o4b9endstream endobj 83 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2478 >> stream xKd7 DEw$F%$A{C[/|B?N ^K{g'00O?fQO8Lmd&}$ӦtZ.L=!;ÜJ?+{E%g7?0i_9Mk[N2m Ju Krc /] L3̩YTbqsN@qF='&}$ӦtZ.L=72c0_O8Lmd<@gwɴ)+1/S:n8 aN@qk+eЙݽz2m Ju Kr#x#:6zoXdF=&ywo LBi0M|?0iz'tvo3ӦtZ.L=72c0_O8Lmdd`5ͻ~PwfN)`GFul ߰ 'ɸL0 &yLBi0=rkuΖwL箪LY'xF7㫽̾ r\]i<+LÛFoXjzB֙9Vkx񽚫=X95mOy|o[v9[Wv\ie[?Ӧcw͈~R?z{Uә93tfٲ]UIktx3ۈ{߭!w5ܕǍ}γ"T:oOث'iSi7~߫z߃S+'FeEnqΕVf]u3m J{;v׌x_?'u[޿W5=Cg>n+U"⹹'x8m=+m5޾N=H]OYupܾEN13W^53Y]SYY[>{08uγn8jM's_yJV=qLN]'Kɹu=9W[xnJHx65**w&mWgUoMp.n¬'޵F5SS猟P3MIjSV'IYד>9ˡcgDu'uobC9+'LMSp~Yn;Zv/=L'2x?tjYYtDrMa7g,ΒxYW~vOAÕ}VvDt'+&~J^>~ 5b^ѥR$uf]]vMg[VD2VEVuEn9u)MjSp˶r:tt|&NЭVF;pYT֮6ʜnyaoQVO=cl [C9+'LMSp~Yn;Zv/=L'2x?tjYYtDrMa7g,ΒxYW~vOAÕ}VvDt'+&~J^>~ 5b^ѥR$uf]]vMg[VD2VEVuEn9u)MjSp˶r:tt|&NЭVF;pYT֮6ʜnyaoQVO=cl [nbw3_ZW5֫s؍s"Oq8a>֮9Ӂ,NGW:)}˚NzRZendstream endobj 84 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4233 >> stream x[\C k8mU!ZnkQX>NBCn]I=LݵL~k<<^QgpXS»Rl6ONDs=^W g2[3:O&ߥߩ:Jv7춚SnVWZ'369. {;U3bҶEMuJWZ Ϧ鹩}vSC2f9'gtl0a9K JiR]Lg7B- ̙KsѥV_QO ԫjZV9b}8ǐo4B<]乄o$U+9vpޤʓȓueMmZ?|򳫧7~OluަJ˕07lw8aē{)7?!)^n# |'9?9iՓtv4wg< ]L޷Bge){:Q~dB?[NvS簽;z:dXԜG/+Nyٺ&^&N쎟ӻ-jZVb}t]TS}zN+O"OW=Ζ5a_i"ϮNDs=^>'93[x*-WtRM`qOL| yx&IXSUOܝ0t)3zYɗ?]|BD l9uJN^ԓayzZSs\ݿ|®:%Mf"LK{H:;~OﶬVjZe%tCミyu<꞊N7X=a99%¹+VYNOF]x|Sx*Έg#5Um5'˧̽<+4zzm쏸}WdW(36*9Gt I]7ͣ,MN 9Y8eԧΟ3{InkjŸ:Ѹ'ggt%IkS͉;(n3B;|Ur\BֶNO$s:3y>jZV ¿y_W٩Oμ\tuOERZ,Z֞Y{✒T\+,ԬWeMgULqg{I✞9$pމHW\] 'W#.<>өX<g?摚*gs춚Sw^ wz}ST][w]==g6y~G>++xALO.ԛQf&'✬m\N]S$55OgEvhܓԳ3Q[㒤|>Wd*es!k[^ ''ag9ON VjZV 6}Nq.R'w<qsgR'ߗM5'JdbN՞]̕߈m g(8.ϩ۩?jZV)JSz q]:sWPl,+&u>UϫO.)WTOX+aX&p~+> IYjZuΤr:eu>dIMʞg?aԍwQq}&.|WgWr߼uƺì~wn]ƺ啮mAWjZr[/ܓMT8?>I{O=q6ǓvU"8VJ(Vw zߊOBR0p3w{O=YRS'ϐEɘ\$# T\+7JnƿZęK$Ս$+3BL_^өYw>Oؽ.6u]T\K4*Y9;u>ĕ7ocs0kgtv_yk[jZVĦ|1_rN;g'"u+,]Syũݬڟ;YM. _y%jZV)}{/Fϗ-r柿i\9yrZF^Ip@2 wS>yo6I8J7jӦw<]]ۂ'|Jsr8OeS'UofGjZV9jR1zRb9qqy[N]R sv“3W˚uWXg]IZyCۻɕȤLd*V_9;#d'De$U7ѝ`^p$tsӂ"۽蔙J`qVڜQմyԍwM2)VjYV 6՜C't?S*oy*.:~3;ZVjQWw~Ŏs֥ش4N?V=$z9]+\48rn5)-:'i-m&W:Nv@3X}wT]y%͓sɭUNzu ï[\^t̎S%8+ J1osxZ42<Wo¦x7AԞ asݽ[ENtVp[SyM89;9:a۩ss,jZ0oendstream endobj 85 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4118 >> stream xQZ C1N>T%r}i9`Hᐜq*HgswϐchGuτt!g+~3Aws;~є'f:=Ya`{WY9vQh}`:;xf% Q3ER !vw:ӛZ*mgS) su»nOZVj5QzW 8}P RpWN+3JOWT]ysJ^L]U*(OWOgkݽbǶ(w{51L׎f4%^r~.>1{שgGyN䒻ߧs8C]wg'-{Ih'| 9>K*]g}ի|t5%YNNܖzK9o&aZVj_47bw@4nx6*3g颚ڻ$887ɺ^1s8zS}8V*fɕ~1<&:r箋ە*BElNTQ~*Ϧ׺{ŎmQ':jbhJ \|bS %wO0q3,2i9u=r:}tݔommѻvȗgsh3T/_&ڍjZV}ש:x.ݝ>NN 37 8;xll9 ν,fW8(κޔoNmrkK߫d*Jo3%dzz(Y1?$yNtu+3p6))s{ۀq֧<ϧթLO{ͭ[ww+h2ѹxy>3,2i9u=r:}tݔommѻvȗgsh3T/_&ڍjZVҿy_\ʷ=7aJW Msׯ>Lq8sv+.)頽;[Ns/s3?dwɕ\\33T]ysJ^L<{t.dŌũF|ƣsfmFSR%)*Ft_so{7s/ -[tU?닯[YeVnNݡG>NgLgܛ蠭0s8Cz 79jZV󸿸o3w{nJț搯_}VOi33pW<]TS6A{w^f3Y+fg]ɔ5g+372g"Ag:r箋ە*BElN 7xl]ɊſSߍ /GیK'ZS6Y!TQ_aK[ Zg)=C~$9uEdC^=Mf:ǭ{y./wgy)<4ݜo䙝fwukmaYav$g/SNm'WjZ_Wv^n m2Nq=veqn6uo))iVmrWT]ynMOYW:?^UEdkݙ[i3>BxG!93VW<%8g$@ ՔwțK]GߺLwu/O=3,/'Sw< a7s-9+<̎>w93TjeRpl\h^!y{Ǚ.IJfV\Qu<9orNtvr3ycwIͩ;9 a޹Km 4q[Vx}*鸾 Cd[VjIb$|M6W4"\3gr׽g˚u*]κ2]tZen]ezO{5љLՕ;w]ݮT!*z3lɻ#\G 3^ 2<+>w93TjeRpl\h^!y{Ǚ.IJfV\Qu<9orNtvr3ycwIͩ;9 a޹Km 4q[Vx}*鸾 Cd[Vj͙*qVEb0kz%!pW<]TwԿsgKd:;xh{gz~p6R@s tYIKq3+n+]Y(z^6r"ݬ~ɜLZwoKBKCLJ&$ii"^axJ¼.LjSvS/Bnʶ9':;x}Cɮ+sy[8$GL^gغjMܖ䄻::"RmnjZVendstream endobj 86 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4308 >> stream xKKn!ABw#=mY׿>w߿V걽{EʬExkӼ&c L2㲚)빽M$>i{wF~sr6V-GHdZy _$'[ճJ^m,C[Dz."ު7ٳs[7IMI+=SHۜN۴$^q85ɼ/g^ٍ\{e[hɄO܈Ϊ+}}f~t@!膮Wwd {=_;f/l_K”{8 &xV^ L+g9+ŭBvl]3 zRE],\72뙳9fIMBK|[$xffM6Ng_Ipp4V+֘"ZݽD]Hg'mp45x.+0՝ kUZ!+ll6fͻ_b9_W>~t@!膮Wwd {=_;f/l_K”{8 &xV^ L+g9+ŭBvl]3 zRE],\72뙳9fIMBK|[$xffM6Ng_Ipp4V+֘"ZݽD]Hg'mp45x.+0՝ kUZ!+ll6fMX[NV"Wu:M#܈Wwd Uԙ^S+f/+f+V975.SC=8Iyjx MkgZf$sV[z Jߚ_G,Ov`I|z;൚ADLκܝܗOp!=7b0YLFM]8rOo]n9"k[>e'gȑbzzvuCջ~6flyKNV"Wu:M#܈Wwd Uԙ^S+f/+f+V975.SC=8Iyjx MkgZf$sV[z Jߚ_G,Ov`I|z;൚ADLκܝܗOp!=7b0YLFM]8rOo]n9"k[>e'gȑbzzvuCջ~6flĸϻWgVwע^4o8C/o UJo휒]:Gwv:Irnjv3] l\J6ETB"gZ i]u~&^M:^i4!FowA0O<5MbO=L23S<])J{ȮІw}Vao=qvNpS:?Y}{v3V߫;~)&=?%_E2XLIv@F%6M+Eݍ sfl6zRfez-JM3{p/\=)Estg}qLd*f7EvnC\J+4.rU;Ug9+5dj{襝pIj{wSODSٝ!6Գ$>9?%Ŝ鯔 mxwA=OgngwI_0Uϔin m J^nY2gl6f'*;f*N4"SۛWwd U}% d3wn3]o̗Ty%Pg?ӊ&(L2gU#NLf'⭷BO͂g\tOn" e9eγίL䎟I&|z6 ;=8ә; 2꼝 fv4.ߘHy';eX3z&^=6[uō˔m2t훫F?^3Ʉ=NCb+ !.N(Us=T|z;iufl6fCš*O Ar6+d§ss~{w5wUx_쭷.Cd=~̝Lg@%*%z*U^I ԙϴ ?YUlw|%.ىx뭐DSݓwvN+g .N;Nt*΢$L篳:ogtCous9*au7&ҿuNV8wLWjOV]q2Ft[ ]檑돫W.~cwL2CϽӐ BH#gnSs;sǧ9J\NZYl6fJ (|מ脜rIo+ ;2WȄOrGtN9qr*%zȮυ`fuafLn2;ǻ3\+L_$I!3DfҦٹu4 )?Ywkx>y6z}wfʓIjΪVm6fx|~%rfV 3S.M%pG ܜWΉ'޴z&~Z{Nۗ[+ gZI3-|%.WfoK$_5g%"n^DNd'g9ΙUNDuZٕ̬N7̬QMfxW{+Őd=2tfݐȬ[4;&3c8g9κy ϧ1OFOLy> 5WYfl6o^ӿr JO\'g{V=B#|LV=T}wqg]}j3]y3w2ݓJ+D*M˴߫z:djݼYt>L+.y"~BuODNdΪoֶ-buS&Mvg"kj'˹sN1ӐdW2'm7yM[Lݣ TJd= u3|q[ "VgrTzW{ϩ)sl6ƕ:z JO\'g{V=B#|LV=T}wqg]}j3]y3w2ݓJ+D*M˴߫z:djݼYt>L+.y"~BuODNdΪoֶ-buS&Mvg"kj'˹sN1ӐdW2'm7yM[Lݣ TJd= u3|q[ "VgrTzW{ϩ)sl6ƕSiߊ=_y7b^=F._!ܑiB&|8+^U.MvYqUg!3]yZ)o']iBֳcV{"n+[zԆwN{+"ݠU6:yo('ymJzȮp6Ui[M՘:;J_$I;m5[= nd=i߅bFIvg_2|q[: [yvtXg>;;fl6W E|S%|14;S7b^=F._!ܑiB&|8+^U.MvYqUg!3]yZ)o']iBֳcV{"n+[zԆwN{+"ݠU6:yo('ymJzȮp6Ui[M՘:;J_$I;m5[= nd=i߅bFIvg_2|q[: [yvtXg>;;fl6/1a[+{wӈLmoA^I ܑiB&|h+UdZqM$CoN{[TwF_ӬN;"w7vó9; mCui;M^#ݍdzՙdW2'9 ]=Mtvt%z6S3Uiμ[|u"KpݱL2VK$-?O]ݓ&u;z> _ܖٝZәC]ouD7=q"g'7f\u@endstream endobj 87 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 917 >> stream xA C$o:Y&(浩l_C;BZ~[;uP1ddT^N{3̏) #z+TZTT.uw6J{gG$S3 rvfեNooT#WXǑ+] ̽k*mBK뙺6_cl$wN]UgJet{ W]'Mto1?:z?m>ϮJsꪞȷKȶ2G*z7}DNyF;z{3V&&GG^k~ݟ(!anIXOS=󔜙IHXܵU|ZثΧo3Y =S'gkpLEZt孩cnϔ ß.9ȡCt\uKU.zx:fJIpNҾM>.lI^laN I3'vBs< ۅ9v.y .nv!8)Tz4?㜧v!Z?㜧RpۅkpW##MxkNR]5') ^j9CHv!ZvAלw7powU9=v!*Bלq`zendstream endobj 88 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 288 >> stream x "4v HP̐Eۅ{%Y 2tYd"(إκ`F&n!endstream endobj 89 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 90 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1207 >> stream xM8 C=\V2`MO]I?7W 2[-/vB٢+>2<9^+ya]yɹ*d`z;> 'z=OO9soO,羉kUN>ԅm̢oL+ɖtG5 t"O69/9W_ogЇD߻43bΓ47qJUɇP YVi%=u{TI҆u9%窠y&[9:1}s~/<)KO)۾uUԅm̮UDgZIO47=i^+ya]yɹ*dvb{~NLfߜߋ9O=Sirʶob]s2uo o4QoiVr*״Nc/ЕꞱSi2bΓ o*5@9M|JU9Џ2Vq LVf%7iyM4]ȓ rKUA'''SJt;(s~/<)K\sķ_eӨ j o4QoiVr*g! e/ЕQw3ĚQsR$ &uq]u.] d=+IIJJE$mXs^r :?18wM=d={Ϩnb9Oiz)~jA}Tɿ:縮P2t[+ɍks:'_!R'I圗N ޺NI2͉gL7tԜ'4e?I 羉{_es\WD]KWE}zp:Ƶ9RX]ȓ rKUA'o]o'T$D3nXs:jΓr^Zds=U9+.ԥ̢}=87K^+ya]yɹ*]ʿh$Ӝ{FtkNGyRNKQT rJU9uEԅt5(gendstream endobj 91 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3042 >> stream xQ%7C1N3$%RԭsпO&)_]tT$uӟz qBdޗLU''r I^Ө85tz 7[ߢ;F V@2|@#p_ : N28~oΓs(ϢLU4;NA ]ꢞ$H1ui.s/'oLU7ɹwgύgQ*w.uQO]$к4EP9HN7N*_bt;F(S;SPC'.i ~h] p{ A'I'S/1yr:s#Y F})K]ԓd 4?. ~w8T=pҠ$󍓩 HLQ<72E`/iwE=IvOcC]?|@#p_ : N28~o s#Y F})K]ԓd 4?. ~or%B:%_O3a#'$;)'TP9u)׹pɽTKhLOc N:ꆿqZ⼳R;l/(tjRȩꭁ|Ԯg}L6unOM[v9^$+3+ixTumSעoujeSju;qf[wvl S&OvZOiUr5[uꚐO6=өnsn4v;*IfvVZ$SeUXrJSB~A uS7Λr g먞Nʄʹ4PI+[өnK.u/;;+ӜފB.iǯMzVZۧHȤoZW9t݄߸e]jUH?GU6u-:9VgY9Vwmuo'P?%aBoYUxN'GYu[׫ tjۓ^:n069IN#aktk-ogu@M;5SWdRbiݭS)ɳ>_kSl+(ҫLvl9u%]IK&ZrH"g]sNI6߁jiOK*]g<ӫKgkjumu/rPP׋'::mg2(Q(O=)tUr$YߥSMpox:sSP>?%3YݾͶw;{jSl$Wҝ~i w%П^UKPkNN3I^{f3O&ESLS-z-[=iߒg vS~=ޘG:[τiMpjY2Ui ݎ[KSՕBBuM/W[]sLFf)tje4M-c״.NϗI~MK'.&OuoEfM~;7{:)mtVb#i2Um3LS+ɄڕX]svI3Vy2!o/*\gjћ/uVo7I4=S/8멐 =z&OmS_zw搩MnvZ:o*\t@ozir޺пd62MS.CLij$%=s:2ٞd:dXߥ3'.3ToW37۝zPdj ΔڵNgn$FUi*!^T+tI-G ;M&u]sξ_wT.:g[tH[3ҭYIT½Ns*y#Ea) NLu/Aawr&pU輝WKgN]'gHfgo:;9ϡB])Ok/۝jH|YUBzL%pW隓[6u+<:vL箝}Ϳ>ͩ]uζ֑:Tg>ۥ[ 8.{hUFZ~/ÜS&̙^2UhM6٭%hdy;߯Гy^w[P{ל(I^fӒp2~<KzMۓU售9[ժ{ҫ8:~I7Tz”GuJfwI~]4Aa}#2UӞu7d[vAsT-Mj ;gֵ]6)NtxOl<:-OfLm'aGNq>NZh0dlNM MmzӻrHڬ۔:o3OS. {|Kk?I2H[]&|: qendstream endobj 92 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4347 >> stream xVK ;DA&eIQR ҽOw(pjp~Ӎsg4IFjRU3Ly'W2 gVNv dT=n67n5jWni խP+Li>f]{ڵoOy<>uK{f[W=^&?եYLm'aGNq#-ۍIz4S*< LP8z64=OLgrHڬ§)u>+Tg. =`+9IT'klWTp8NpL_O=IҒ1OH\MwlG˻;|귧ţKҙR8l z!$s =T쥢‰a)ٮmT.ۓ(8!mO94P Sfx6{ eePB¦lS%ٛTܹ `9RE<& M Bvܦ\a5zqU%֛;۟=嬰t*oYg۞r.U-pj nt*r9+l=m<\ΓKϤ նeGjjlc;XޝN=8S=,]<2YgSW8Փ &+Nb/N\KvU6nvޞvFi}ʹ9=j^B5SًP`/+݅86gN/\E,6Mˑ:-T6l,]Lx6 syֻ*!L)g5W:ߗxtnTSU0vSYamp8jŜٙ2Zy]P} ˵cft}檝m2zj̞<:rgt OMN=jq6ݻXR)SN:=&(%?:+ru2?đ )%sB\guwNS=f,\ǯ'O*Snr,6ONjp5i{Q{ GBWrg@&3{v?AUe҉S< Yjj🦼iN\i%AU}VZ|]F~+q8/x?Age!A']P} DŽ,מf6yű w49C8Uw;a#\wȻ XtȜG^VVȔ|j Ku\$ ]>=f,\ǯ'O*Snr,6ONjp5i{Q{ GBWrg@&3{v?AUe҉S< Yjj🦼iN\i%AU}VZ|]F~+q8C9S w)Urof̋Fr>*ܕdƞύ HHso^72uk*pFf6,Μ<6OMmwPH/-g|. O'ޭ0f^kSrzULr<..qff*|/-:P>bKg)w Q;&O_#'+d ς33W]w3/?w"76=z <8Yli< ΛHqv50paС4Sį{/C~UDZg&X**:_W9Ζ=wlCs:T\) ;gJȔwsp8o7SO:B:m ~՛])9NB77Q.g>~B Y*SgE2UUyzB=UNYhTTgG6uzP(\AqQKM=tbKLVvEӴٕmG"~7c*B&z:3QVU:q'(!ìf5֡Mip9SBLx[6p8$g7SO:B'+3W]T3S+re>SRo2Qљ\:߹8e)hxxh0~g\U{cZgTy6[XZs_o"C:~[pEY:jS,-Ua"!s.}Ω7< ) =8vRUVՃ_2ѣ6'[''O.q'z/uO 3 T\ןyнtN+ȿp8pa{ )8o.u:/= ?Ur4L5{,t6窭LTt>Wuxnw;NY =:+>d*< =fߙ0W*|9֙)Ug)<֡ֆ'[П$1\}mQtg/NZ.'musg~+tr;i-BH\sGũA4{r B|JCξrUWLIɓ r-ɻK¯Lk^|1t p8 va{ ):fgztN{~.h Wĸ96Ѧz Uζi< i̬i4DX 7vF駢\;]i^~\#Ο]Tdmno_)}ǩ7< ) =fgT0*9CgOgnyr䂫gRDk:C{٢3۬Ywi9pÔendstream endobj 93 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4277 >> stream xKdI C}z;$0  矇yqB笐*:gg9K?ySRDMgBu~™mV:ڋz#Vj_/읃=aV:;fvG${Adr&ܚZ,NM2¦Hz,U'+-~ ==&;WN,B?g(W3+!!"=ffKSl~l nsѵ?ݫϧ:uriU,)ͭV uqV**RVSaTfպnJjZVN|_;{¬t]vz׻q)p&ܝB,6|SM2¦HzCoZN9+>:ᄞg+~Sa/g ̥JpHsf]ބ=ffj_NOfMk~u^uuV>i;UKdMnn̷BWRQ*?gn!ī$8T|zw՝xgiGE>9K?ywl\5΄l{T!6w{.VrVjr9f#9K?ySRDMgBT'b~YBorn~>jZV,)~m直*>8sVHܕY8sIToXg}]7ɿz*>8>O i ==&?']WN,NϦJW:i )r2eJNi^Vg~lP-Nu^uuV>i;UKdMn.y[ӔIK"!u]{E]~uHiՄ:T`M/aVwj.;ڜi}W~knO9Qƙ4U&v:Oqv}ׯ)jZVy=YTwY!UpBsWfpg?% R$S+J`Qwq$2e <&'8C]6jZ?괖ڡ⣮:gT 8YwjęKHf斻NzʬTO؈G'0a#^bu%t%SU򳱨ܕ4 [S!Lȹ-ҲWL+&߸"73o )y&x|ZNM''^q;ͼlqӪ Y[utO,gVjB.erR=i;"dinw'Uڗ2C~8U*tM)jZVjO3+ NrsV#\ E23V'txԛUf zF>: ߭+/qҗE.箤qUO2%a4t/@%oY͖zfr^ \4ƝqNOyPMK9t3תTt&h89ig+VMZC |b9Rrɝ/C MQ!KhwϿ=9վkU"LRn]LymVjR_kBz2!'pANe&9y9Ncuqy:337Fp%LR}ůu:3LΠNJJ ܚNwTr̙IUqH`otG=+ޖ"\ZE'N3 Nu/l+=j Y[ud/gVjBd掍]skxg⒫'Ifg~_*:Gi{ ˽ FԄ_}%Vj5Q97_+gVH|BOf<~d.Hݩ:'"iul.N=OgfTINpfvIUqtYaQWOI[鎪Q93* lSNupUےCKdy|۩rf>A9ۙ©N;mA-5!kkJM Z}ܱq!Tqn LW\r$=L Ue9T(m/_ZwwވjZ&* ^BnIv+x3rN>g =~WNŸW'(a+tbNLH*wYiάU|I|e̜}^+y:*˪ҫެz^WPyzG='agV'N3Miv\Ôi{vW%w*BV-B\r-!վ.'_9OfK..z;VjQ)7)*ɓ"Wqgq|$z.gROP$WygVǙ)TҜY{!R0ʜ9e#VuT &UW/@]Yt' {NJOǹJ-g;RK)z.턹=*>j)ySJZ9U7:M*8aB 'TwJ[o'EiJNO/lU> stream xK6CaU$>% m g38qV=SsKFT{vq 7a/ݩ,fDo)-)VǙfR̺K⟰aTgK.=#i0!) e+/uú)):pzV~>CHGZM퐰7gW?퓿NY<[iB[8sqgp:}nэ﯇}UPUUUU,|Y7p*VϪ]~UBfZ?⬣!DjMoYltW:߾C:喼InEΕ*7ONz-+qs*␰Z7nϙ{YOtA~{gfٝ9W >NgDj=WPlF&ng=I=UUUUeK@N?*s3qQ ީr+8=s"$\ Iqf\C"L38WeRp\gYoD⟰a|{sOf{)giT)p"5&,6so+so!{rKޤY"Jld''}8YR9tnqH[{s̽_}U':ߠS[Zcy}?Y=Z33N{N3"5՞+(6~qIΪRK^55J/.50g{pY8LȢp{SHA==wsr& x^ᅳ@'^d),g!:m+~rq&{PsrcyfRM|pyg)7H̜[nýr)O8߿ 'jTh"Z}8,y^w8zE,ωBb5z2Yg&U3쟛z͹UO ɪ+Y"y#3sׯ>zY>erqߎUqNpro7Vwuv:<"߀"igƟRUUUUr~S~Ƹ~œs=f?⬣Js2!jM!Ugyρˉ0yj{|#(HyǙAmI5IrYoGS"a3sZouz˿2mΦP>D~6,SՋLhzyT<'-⏋]\rLy^zg薩};V9qY>XM𤊼sgJUUUUV[<7OWsH:W>DqN![ND#I^:q{PG9un\Od%Eອs J[&Lhou3'%ERUUUU,!_^ל7+YB9vr ?+yO"8I-'r"UZR$,,濋Uۀ3L*mC3I]\!TH\9BMn N}o19:u߽ɜ=xDN̥z!soy9=+{x:[{J抸FYr^Gwd&͑[)8=;4j[Rrɓ9҉Cneޛkᜓ{n\BLm&*'l^nҽSSUV/yV9 OҲn׀qf):}+#\Yiq\E<NNR'^vgRyҜq5s!ؐ+97;dF^&՜mP>DN̥z!soy9=+{x:[{J抸FYr^Gwd&͑[)8=;4j[Rrɓ9҉Cneޛkᜓ{n\BLm&*'l^nҽS+ϗJot/|B5N 9WL&&MH3gN‰s-Ωv\C;G3xR:_zU'$eqݶ3gcT9qlE jFa5OИ\NO[ڄk˩iHO{OI[фjsJ}Ͻ24S #lfԜx]K&g1#Aԗuf2{T:{Hؿӳs:̋f纭>Eqq޳'̞=37t55F/콿ytpZfXlȹJg2!7iB"Ԝ9pNshqN"ډ?"kW:!)9KʹW3f.B'gfpV3Ӯyw\*p"?&T\{l\N7%MtfGx{Jڊ&T{?WxIդlac5朤&8Zw5=dW¦3;Cbe׉Ceޘ 1d^d5;m)sUϷ=aTUUUBo4d}auhVcܛr jR8+ĺU2qBER]ϘhZݢԋ=Kv*OB{iWcV o !g:&O-|5Sѹz{IWS+ j?\i8JSBAT5?)9ř\ݫ.^^*o^"ofj7, +{Rf9$̍Uߕygoi5K~Ͼ_퐥.39S;]H%dƒuJQUUUUUԯ6<='ߴ~7(A}YJn2t Y<6|~Zp&U> stream xQN0 EN @*n4sf5ױ%~Y}I@?pWy$q&D@bȐ 坴 t$C#p&37wM?lCA-;y_w8ɫP|k`6IM]ӏ.8Ő!AP̪ $^'0i.sp ^1dH$^'0i.sp ^1dHD8;PJ0F<6ze3@A-^@3 8!cQcs7_8dH@>-S @2tS ^1dH2M: ڢ^1 $ C7> stream x !0)l *hK}m >W2o} ,߭=9+  9{_ 9@ ZB^\O!endstream endobj 97 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 98 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 960 >> stream xAnd! Ch"KȊx*eMܠտ;]c+uke+*>}ҲJro҃ Y1%7@&Yf+ \&X2_kr_IZMSz0B A?+"s*d;V`%nMueVpVN{z_C*eSz0B A?+"S9, 9'TȊwJ2sݚ`ʬ ଜ$xM~U˦`~@~VLIEsYA sĀ Y&XI`[,s]U엙~א x̯ٔHϊ)H2;29|O o2[d52וY~I?J~ M $sA sJP!+d52וYNIQ `~@~VLIE29t 9xJ2sݚ`ʬ `$t?]YSz0B A?+"`:sRdT }`%nMueVGJ~O?]YSz0B A?+"i RdT }`%nMueVGJ~O?]YSz0B A?+"i RdT }`%nMueVGJ~@_@ Κ҃ Y1%Icwf@&:';BV+uke+*=oT+*?ϕ`p̯֔Hϊ)H;4* enT,ڟTCS|+ {*BV20/QBer[1 S@y̍ pV=w!p+9T Nb!8}endstream endobj 99 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3645 >> stream xK$GC1Ң7 Yp~ɇ^fI'.k_K)^QJ)'}.RJE)/*]w!wRgJ)z([RJ)RJ)$ߩJ)z(>J)LR.]_YJL)eBeRJ)RJ);U)eBR~B) }^RRJ٥Rz)L轢lѷRJ)RJ)߆o7~Sw6%p}+q6Y5}&{C~,ß ɭ&{I&{ˤ/{g=/Ҹe 5{QrWN:~gսw[|];@O[k~r|W1Nrҳ{ōo½o2dDVd[MRJyw'{ $ws~C,do$\_89|ͼuo͵E~!Br~2icޙn}K4nwM$^ܕN:/&;ߙ~up}7Ӗڱn⤵{.}/RrL"oM:en'NM>39WF”q66CF!nvSᬌܲEsJZO5Q\_[MM;9q>om̡'┭fL3e+o5ɛ?_<,o&Y{^˓NO2g8!~] IY>+5;d`;)\#jj,6<$L\prS7yֹj2$z!w^Sfr~O񖰽\uiSJ)Ov'NM>39WF”q66CF!nvSᬌܲEsJZO5Q\_[MM;9q>om̡'┭fL3e+o5ɛ?_<,o&Y{^˓NO2g8!~] IY>+5;d`;)\#jj,6<$L\prS7yֹj2$z!w^Sfr~O񖰽\uiSJ)O =)lOp@BvOsncOQ' x'auL.y'8:LHtNG9On{,"Yu:#W-a S+\69A3K'o yY &st=:Tn2ˡg. &yEг9 !?]ÉgڌM\pr7u蚜 fnff[]6>թY`EߞbgMO)r;w!3o5BrO4j#m8[:h}n5ۘ"S=qމzXݲ43%K u>=:ayN۞:#K'g}u27?rdUK W:MfNi&[B^ɜ]ϻnr虋B?çIuvs9lNBOp6#.iW;h\%@&签ijV Ouj,Xn-򷧘陷,u9SJ)܎]<ٷU*٧n:\Y:nY>Aܓ7yS '؟6owѓ7}Iomធ?S>K֙f']^SX:9咟9sqct[t#|:L؜@puΤgpնsmϙ}$;<͞^vovݐdO+4f3Ҽy&̨RJyoz,OW>u9ߟ>wTVj瞼m8O䰵!xuDa[M"}xm Y4s7<də,ι s̎Kۢ9SaҀ=,=w&=;䮷\nn{s'9 Ȝgnt3]f~+$U}]5k.)紗ͳ'7aFR?=oYO[uLs96\s\a=sO^\3M.ܧbreCv='O==Ɯ;ow|ڪS<-eTOǟyIf = [᨝{iw>-9CO VI!7tk\ <8y)w5$?4oS;ۢmϻ&7~ۘ0nsy\t}ímIȮ#?u33H>&]myC6$-7Y\݉sL9Lo w)R {:\MO;?Y?O\tE535ó}C?՜8huϸW |=Sf'9SKLܪunobnLn^ϼ<>wu湐*tٟ35OVFnW\:Թ?S]ߣ0Owv 0Y. 9ˋ?U8sg6rrgKͳ![؜yf:}6u"|rIљ8V5N~{[9D3O|Jzpi3WMRz|?#j\eRJ)NX_3WVdW4kΓONӹO\tE535ó}C?՜8huϸW |=Sf'9SKLܪunobnLn^ϼ<>wu湐*tٟ35OVFnW\:Թ?S]ߣ0Owv 0Y. 9ˋ?U8sg6rrgKͳ![؜yf:}6u"|rIљ8V5N~{[9D3O|Jzpi3WMRz|?#j\eRJ)Nvߵ\-gf'I՚,>UjT426wU+x4Yd3r DϰNAq5ԜN7n6?ţT3I] m:TL23ԛZJTl\uQPb"sgT(OԸSpʫmSh*6se+fnm?Z9]޴{%"t >Y>,3 Mj<==WߜRJ)_?2endstream endobj 100 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4238 >> stream xK,GCaOze"AD.q<Qxr.;6E֮? ©ص.?=uzrx*&3VBhO2TaqVuF|=7Uo]l\bԗ'dqsx<=$GwE&98Oi>]TWIfWauzG|ZVR{vgW=_/߇,L*.YKcr&OO!.{TIʮ!9z#!KTo*GW \nz:*rXwqPH7mV_x'LOїM|OҨ lٳ;Zs3YI&u_YO0ϊg~)7Uo׽l*h7YW&劃zqBֽ$pΚ'W-r~+:;jZ?{@5E{_~sK޲wO ])9U^BV$iϢErrfUIũ&)aozYrJLM09?_u"an m\;KzCgTgK7Uk乛w3Q%yXӦIȺNg>I$|M]S=VjqgWk 'V:疼e7(pN*S8st)!! xI:FE'Vų(PѫT7SLSH{'ar~*Ez9H۸Nw;# חp*{# n Ƀ+fs7Y g N7$ǣK*M/u/ |oÓI?:J/zi_V*A]yXRwMLGjd/1P=&%N*O卫a)!9W "- y˙'73y9$T?1GO>3ODjV~˥UR"HC/99M%; w}rj搜jqVt\UzsZ{Ÿ6[Y vFV?Śa.2f݋ϙ5Ox<ڿzz [^V*M]yXRwMLGjd/1P=&%N*O卫a)!9W "- y˙'73y9$T?1GO>3ODjV~˥UR"HC/99M%; w}rj搜jqVt\UzsZ{Ÿ6[Y vFV?Śa.2f݋ϙ5Ox<ڿzz [^V*M]y$.Oop"I`ףοٙ[π:i♌^r8*{*!}&vx>-|A*'|73y)ʡR+~=l{)X=rSNLfF,BOgΎXU8':w;HSN8`:<:Y *?%p\G$ 9WiWŹ̪+9jeͺ-3I3L@OE~qΉΫjZU^辻<]lj'];^ggnZjN<ꔦۋg2{ī~/dۅyK ,f(JXb}N935O7==";;bUI蜣 UpO;ᴣZCλzTgK7sNÝsq(x*\G]2䨕6^<$=?k3Omv<9':Vj5W&|5y$=_/˩ޣ_v={)Ej9w3~8=^UUd۲wn2q6'gߪ5%-=YJ~3p93T趓|SRߚ_">::-o7bzzDh2U%sstV8xR w`;sT)ObY> A_2Wjy<ߍT/OuwΔ"ԜǻSKg Z{/]J**mY;783Oo՚ʖV,%LKB*tI)o/OJj7=="]uĪ99GloDͪI`ףοٙIsV~qq9=]OoosNYI(LI뙧jJ{eQĀ8{BGͪI`ףοٙIsV~qq9=]OoosNYI(LI뙧jJ{eQĀ8{BGlnT99A _98,:mouToʙ[T+:< ,fNI"ӺNNVfE,.upN3LF[wSѓ|ΉΫjz^ endstream endobj 101 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4211 >> stream xKrEI CVjo"M- DG!κg:q#$;;ӈRs*2Еg~߼ʷ{&+'3dlܺHj6o՚kXsS׫)/Ogzu4ںzg{*a~~ Q ]nu?9xR w`z8t9'8T|SyR]Ū•g.索j!Tj[Yl8'3LF{ئ'Wjy=]&r*r'wxMvv'JL+nwU<9UZLνʔ-r 6+%P] !W׫Ӵe C'y&> stream xA#KC1M_fÆ")F&mE1촻Q]uOm{㝲3 W6bٻpVguR(7ּX5ls8קk23s40ZPf8+w5'hfֽ媢juGYちև+(c{uy5㼱-w'0ZPUc#S٧]oex;;(֕b}ȓ?Qfasngʼ[?Q-M2V᭻l] <몢)s}l5(^ʻtˍf'ݩ'{x>{ҟrV[4r:;(ÙIoc|!!j<5+ <2j#sO֙h~SmSvgFQQܲf5y&LOWTt&t/CCn역< 밢sN BPUV>MO_4Vا@wPXU>7}^'Vܢ07f )x]`]wx7e&c\W9qf*럂ٺA)sc)[}U$@J׫n>5rcIw/O^'feܰ+:gnpj)))0zpO 9OlSu&ߔyݙgQ3}CT3:lEYM o5?)(;D␁[z>e`5r:;(!v+% 5Êx0g1gL[awwPf'0?m>6]!j>+n9ˁ?Qfr yFojDyw}*{ޖldk$>=sC-gw(Pssv 밾2;BA'oWxrvXQМ{{8߈^|:y됭KNI3Naw(خ4A9qkZEĕ>yzqu-og,7i˖7.槳=0'f¾k:Dgm}#g9' ?]WΝa?Mӟ(qϺ[e6򜭞lm$֧gz{蝂U%7nʛnawwPf'B!(*WwxO [5El[${/ʍ睻+I(ΕbHt'OIa7m+խ>7-.%In~6~ [cu,wœwp8qy9mD7P!vmT 8s8s[-v#xe3Wnma?7NٝqnoF4 ?>9 W]) lzoN BPUo=k@j>6˃3I^a;wuW$Q0+3N nbnV[}!o[NyO35]J>0mrg:XJ['p-*sىXooۡ>C~ۨ;(p>p>#a疷[F ' ?gROo;?<7Yݍhv=Av|rS꽱; ʡN>1FUA@!}?Sas`d'ٝ} oyQpːg劂[yA:%97#yRl}:Nt)iQ<}$~5n맠|hWW s]}VTCy5q96O=Mw.4N4Mi(>sA[V4wOvwǧn}?7޼<>+j(?u_PsN\M9LSN|Z4哝67g 'vP43BU>L90|>w(xSeގrEΠcÛk|bb'4S(O ?eSP>yd9>vvM+x~*q˼θ\k 'vP4tOxɠ-+u'zrp>o^vmml5I/(عasq['y&)wJI>y- C~yS;(kB!h*飞v~)O;#DOqV+x6,kÛgOҳ|Rf8p;C]It8e_9EyNx9&QeWw>姫w3wy:xtOT0O[9awKy~ϥIf~=sMZ?QfA7-o {.oJ6YW@yؚWơXW;>e_?kr_خjt'纂[nvʻ- !vyOnnjs?锧{" ٧8+<mcy5IM_͎vV>)]}jVf:2ׯAX'< r}aoݨ+^»aU;iw˻qJ< n<5J9$Gv|Nvބ}8p9Oϟ}͛IM^-;[ ';IJ;zLճ7 7boJB!N*vΓkOp'w}9W8{ {F<tlͨX7?!B!8Vɭt#!B!ͷ߂^BF!C!l½FzB!B!hwȭt#!B!5Q7B!g%7ғB!BACFnB!Bh'MTBF!C!l½FzB!/4endstream endobj 103 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 622 >> stream x9n@ C$ojPeCYC\|OL*:$0w>4z!L ߾qG4TtH`*X]>P<fpH*@5ѧ,@E΁%u a42(lqDCx$- iTeQظ&<^80} 9d 0CU9~?7sLaY mC@38Q |D#&$lfpH*6简\.T^50} 9 0CU7qM9 P!j`@ra44x(TtH } d0CU @DJ*:$>2z! ;"k >ka4L8N*:$ @%ҨJ bTtH`EK iT%\O*:$"@%`iJ"endstream endobj 104 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 105 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 354 >> stream xA C87u.EƱ֦R@ f.MTH1:Qt3_ j XܡcK?S g[YΨs]3`<#wu|BdKғ ҹXބ{c#C|/endstream endobj 106 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1492 >> stream xK%' E=Q${N@HYW!;1]O0$~%%`vw9C+]'+ۋ~_ן &X53".sN'$o9+KI9Λ'_v}+Лw 1.$~%%Hʱe? ^dg~_ן &X52"T`։kOX UJ2`;o_;voY޼Vo}v'+A-ANVm.%NV";;d099sN'X{JgȬRp`'8Sy#~-}xөe$ۯi:Z9g8YiHvyNɜ`}9sN'd=gU)T80 _ZkzF> <2OWZ4i^  ]Kv$;~dNʾ͈RZ'2מIҪL* TwބwN̯~-ߵr y/uZIJPK#럤5~viގd+;Y?:2"ԔPs5m9+GMSoLuM݉yלr y/uZIJPK#럤5~viގd+;Y?:2"ԔPs5m9+GMSoLuM݉yלr y/uUTt_'* rdvo;{R3yg8YiHvs*#rJM > stream xQm B(Z:rـڠ|J?]L0}][wiqWT_~ק/zsB$w~jv׋7}3gWMr((hK\,ާ_rűfCkb'NgOgc8(/2)[lWgzON&t NLeO' d۬b2o!SI"&Մooag0'3<|iQEQEі_XOϿ>>rxׇϦ f^'g̝y; num9'μ)ثnʖϾ$0䛷Wn o͠LfF7E[o?';w蚝OskD>88É7WswO8Qv7gyGNΗkZ* 6l99ysv2'[oeh7[*lέ*na +n$в80T> N7uYy7մ9a((OO;ᳩ&Cs'iή?/ù[AuΉ3o */5 L2[d3(QMѧ{G[nιfܚ;-=+;p$#\NTM`Yqpч9%&Z󹖊? <%vzNu[sM3s+۫xxlXŠ'/ɹ*|6% !%My]xr=}MC%b7!owT]BmBȐ43Q:EQEQ"0Gק[sSMz3g7Pj𮫘dξ Wɣ齞CoI`&T< ,NQ.zl+ޡe^&Q&S2vnwDI֛+T;w݉?!J^& nч9goһ}"f<eLMOߋR>7Fλιo>kn`¦!Ē{R1Oo!|J6!dy[Qr֙{ B֨~Z((n]ӎ!JΛjrshG$Wt:P{!κ{gzl9oaP&POc7yշ0'a$u-}N&blǘ)ͳvf'zrf-}nч%%Uou'X-^#X ӻwf gM7e+vr}ҳ%VM9sjTC-2-lqVh{ B֨f}((uVDycozg@Ql4IN)38^HÞ[[k MG49I l]AS18wrlItKswDII՛y/w݉?!V3wtVsB%`SMpܶ=a$ln .)nSΜ$!DuK 9ozK#[ڞ5Y(("~Qyy:俩&1^49o5^O{?)(}v/u'S9Nc+s7շcPwF1x^&*u{8w808yb=@j`)6j[M#܉?!CoƦ`5gsM3sw6O4Py&Oߛ[T :<vx3TtZ'y-[nNs`d.((W[E%g@zx=I|I۽ԝdOL';TߎCylsp}śܩƧddKEgolKxJlo5r' 6՜97,ل>9@ɞV;={AJMEf3.؄ugm7źܽsEQEQ WOw ߟ% 9r.k8525omWw8ǐ9K1:=u|ԔN^gb/aSOm PI;76uxgUMȜש۩K/[vB wxWzXB۾yxzP+ϗ@UwyweΧ9S&nlOzTNn锡F&dtkSsQEQE?endstream endobj 108 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4152 >> stream xK-I CmVjnYL/HȿzVA~iM^z{,yH ]fظ36Vd]Ht#NO'եRsHV tl$ rԫ7^Ƥ 7TQ<IsV;t_rvrK8=7ٗ.ГU?ͽ?y T._kݎgW's[_YOcK>RGu !v#UNۜ9+y~mӓjZVՔRYC^^{4By\n ދř[nz5܁::%o^'aRK ꤠk椗ˣf|)ϊ z {ypw׻$ /i<.i٦.C廾qv-p&l9xZ5{T.9Too$@1N YVjZ%zogUӫ?­OȒDe퍍{8=*{^acuy3ٽT#]UNfvzenwż[d^\Jv~nuՐ^.K6ۧ$rP9ϣ7wseNGy+9|'TI?w4婐Ъ弋YUgOKOB:~ئ\%B܍|'J^)'lx2ȤR+yEoF?Ӛj,^jZV.kERLz;w#/)ӣxr#s{W!kFL;ڥLrZc3"hs< =f{:X]sUXX}3F=.{y}~6ea8}Դ yrqדsXJp/Lϝb98B+}S#lS~ć/u2[ԮNNS~*:Nd^ox/7gn9Kڽ+pkrʿjZVS7C ^v|5pXO ˍl];J ^ Y3%j2Ij!r3ψLʢq#T*4`q:wUcaiT <=qR*Iyd^OBna*:3u>wTZ UOMy|lS:9NN8œyA'Tߜ?,iSɭ*VjZVNߓWfu=)j~IVL]yS'?Éw&)<3ǁ7fx[dފcrEgJP|S zu8OisnױRNgT荴{*른.:BM^dY͓̜l+~! Jp/LMij4EUڅVԞBvNfU5VSB\:}ʬ''ӥܛt9]z==Z'. lWfjϡp*WY$$''9Yrj*ESڲ%ӓwWWo_-{rWM;{SɹYrkREHB]^v"ΕIfc9H͓L^ܘ U{:y=geE/m2')rU…V8.ŦN:Wyj,Z)Sq'N_q %L:ߜ=~:7[ TVjZVJx ս7ts~[@{zOX]xoRCTt/Գ(HHNNrTr;eK,f'7޾X[崯v:s֤vOzٛ2Eȝ+'=6ݓr''N{< 1u*{ʊ^dNNSSIN=!X{sZV1-0ӱendstream endobj 109 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4172 >> stream xKnV CѢi;@W#񦦎$*߯_?HtΩF)uh=3aUel #Fϡp&TaݦB ruy:bu")Л[ڜipn_-],ӟn9;q%tSWNzON\f!;<9Lד9P%LSL鬨MijEakigS!]'9wE)!^ZvAuӟs^޴SINș{C];X{sZVj5EӷJI{t| 493yJz=='ӔYU$0޿-,Yc ˩>g'-.6g9N9Y}h{řZX̞ޱq{*ϵ<7tDr[amOZS8\Kw#*~HGL5^e9JJ8'3mzu+>]'9wKTLk]</KۻNl *OsS8buS_"VjZVR靾OHﮞ^|493yJz=='ӔYU$0޿-,Yc ˩>g'-.6g9N9Y}h{řZX̞ޱq{*ϵ<7tDr[amOZS8\Kw#*~HGL5^e9JJ8'3mzu+>]'9wKTLk]</KۻNl *OsS8buS_"VjZVo$ Mt~ 骟*93.m wSם9.0̰f;X;;8k 8낐*Xrl^3yw*Oyvi8Uk%d;'Ω('uONpN0YS8\+^2S%L/ͧkI^EM'sIT{ǕyNS6s]'9?%/LR .ft31y&W!Vѵe[x_jZV)KtNW@Ǭxy&p&qN]wNNT~z3Ú Xbଥ. Bcqw7{,]ժ<ّGwWyd:y<99qdMs{Z~B*N#]YZUtlpCj:2VVQNz<*%9G,Nϖϼ*azi>9f99ϚC4 \g2+gTZ_d;g)po'g:MLfD*֯sJH)\ZEN7dV$ jZVUҾX$<) $|k$tZAG;C̟N Yr毒X3ljJ>pz̺PEuuw/7.fDrߠ_V|<*Όe9G,r5 czi>mwfKqO/gK|yX|lwSTN~ug2#g N146;R%8ק3O%apaSUX$QO$/ s6P''RYʼJ=iʶ_鬢`'SKxW%򔇊UKIU:9r=7u<^VjZ;^]q;SZCIF~ frz柰!>UX$QO$/ s6P''RYʼJ=iʶ_鬢`'SKxW%򔇊UKIU:9r=7u<^VjZw|f1㞧w̬lo 5˿^̿A]~gG}.3u玍K+2:O-!{NjZVK]ohoğzC|ܸoYVe[z27u۵_[{z&TOSg} %ˬu=ȹ`qb3Psx]۝7g[ez*X"$7{U)RK)܇ŦSw$ERL'*az,UOEdϩwNr.:96}[.XVqHsv&έM RlD^ΥRTf|Pw)'ҩ"H[mZVj Ms9Yo~~OW-*l딶S^fӺΜX{b~O | O@quNg_9w,Nl*y.SqprLO5|W;VY$fB;E*r>t]z*dH]$TS%LJWY> 9uNI%Q'Gܦw˳=i΄߹uywvA(˹T*ݬtN>D:UdqVjZpc?|7`t͐Twȳ󔍧Md6 DៜO.gf&O7qN| g>+۽pu=e/uZŎR3x"OKݭB dZ*dHzIKf&q|LOx2e }q'$W> stream xK\IDEtӪAN4*iF#'?3J?} ofWNVm%󖍧%we[&gs7z8'ߧ/bOrf6$g}8g'gZ[rֱ#w_y٧8z~NU;'tT%oϵdd=UTuޞTe 9}N3#93[gz=m}!f{I96m~B_ʿׯos7*a;JE%IfϬ7Z oh7SwN'ZfnَN<'2ٴ3S%wM⨟[=KynMcS9?nəy {M97 =T% Slq$w^m)C慟ש?+ 9}N3#O+}3̜^}t_HrrʟtS9+9LmW5TRUj8]dvq_97ٷeSMO&ܲUy'YOKei3grK=ٛQ?J z^ߗϳ0Ǧsq"~S7ܓ3Nrs2oz&J2u'Y%<šs.}S>2UIoSS%LOU= ?SV4rdgrGW2f͙96辐zlo?2rV2'gsڸIkϩ7Jq|ϻ̩4gNsv* ohIooYmw~og=k/2OHUگ{ڷ]R%w߆jZ]̰TS]]{=s=ܓf{۾T9Uvoi+Qes?ggi}S?˝P5wLeS%LO[-g38ྡྷNoկT{%gr6zyޯ~Oo3/?*yf*;U>o~FR$qLR63 {驩4aklo& --}m&pwZ7}6޳z.T:}[*Urm&u {zJ5ŌUwx3=mKS5a6I{^ߝ2U6w+nV O̯}w;u UspWHld^f=U}vz9s迁 +k_Je_Wz&JkcTHV?2sgrs_l$-UO$U؈j#=k˧~{'JYJ{.RާszN}+[lU:f*ӑ<9[SUj9ݓrrZe%g~~mBGKH*EU'z~̶RlvIo%lf&To Ҫ|[?vun[n ~-_Lc%gÏ-׵g&-~{'؏ 'D1&f\fr?m'oFZ$SȬ[H] x&*3.cldv-aBZoǮm˭vbaO[}ei캺l喰v Ŗ}o?> stream x D"4) >2Λ,YFv[znp0Ve`,u!@}X{g` A]P]!@evXԅad G]P59uXfC]'Siԅ tendstream endobj 112 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 113 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 114 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 115 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 116 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 117 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 118 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 119 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 120 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 121 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 879 >> stream xA@ C$o`)f_f=n݀6~{zhwurb]{u!{ 8yK{v汦HFK202Jmz"m,y9_3{SE&:yEgyn'|Ίqʅ-cM=+adVa3~_jilef]kzԝٛX-t'.2y;5.8/>s; T$;sJ4_r߭{05tGihd S]}8H;5ve=9Qeoj\f|;rϓLS"^b?Pu)`[~ɑ<ִ'U*LuJ6z"\glGݖqA4=O&?3uNd{͋l;C@3D9yKuO\ӞHw\%UhpJY=VI GݐqArow'ԸH?/6Qu)`wηp)nSy:״'%Wc~d\}8tFOv9eҽ9Q7doj\l۝fw亩595.ϋg.{T$;sJ4ؗ-g$_i[ӞHw_W*4썆JV=r9V[sM .> stream xK$ DEHw* j$< pFs=a__SQ|q/ 6=n68?vcO}TxM|owպgKj'_ ΜgFOC_@3{{tO7F0 +2mΞJ;38mm귻j]SNNVyg3ya [!op܎/[ řt==fo 6gOSu66_{._Rtz)G'W3E홼0S8n7-:m3S?LamRa"O(~{?[No?dW;j]p=7ux|_O_޳m{*6'܀)lmT?L|V S5v|owպgKj'_ ΜgF7/Ci8dK{tO7F0 2ǝ(®8Ly2$yol5- M q _޳m{*6'܀)l8@Iv՝U`ϓ'$~cCp toQ܎oZ m3S?La qJS!r;?'O7IƆ^ A+ߢߴ@ 2%=fo ~C"js?wVG)>Of$o :!)n, ~Cx϶Fp_jmΪ0 t!Ww:Ŀ0"_o6=n6`@ 4WPYu<}N76x_@__l}9Ϯ59Sܿ&Mf'җSyu}ZMܪλeRvoIZ_,*92s*N/>Uwyv﷯W-Sή۝/U٪οeWzg34=Lgv nO]g-?WJĹʜ{>O5C=\%rLNsԚݙ5|cA? Md("?gQmKg+ㄾ|= :}uqNu><۾ﭫ|cγWdqf8=|M9_5~eU0W&gwMZ}Lkʄ}[Tѧ֝߳f_^=ݖnOܙvJGj3)}ں48;ϑ0Μ_1;-=Q쾖{[kt0ӿLvٙsf;}uMv>+kPo$I4;=L{}j}(:;Uf+ u9Oʧ>ds?3}g+L3AI9|M۶ZgoF7@d_;|M&̧}U|&ٝDV߇i>Z2aU"*jugmyOjD:w楝сLJ{.,s;L3giWNrKO9d=Z|z8{~*=4g|v||t_jݵګ8I}-͎u4?3u}+vʺN@يng維J8>xw3 Fgzss|f[||je"I{ms"s~\nT[{,fgLrѷ'dɖfN*Ӻu{}'9랝ݽs|e{8gWלWLy;ɦ]ӡ7zНyUwtohvL3Ӿ^ifGZ)k;; g:֗:Wl7g>;#awUuYhjW<j+endstream endobj 123 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4288 >> stream xKkGCLQBQ?zȑL*]GأdRFTJ⓳#ҨrfҁVI&_kBLnFqgWbvGN-ס' ֳSgNڴdXnݞ:=ON[f'zpW<ʹ}R'pevəF@~Ԅ{̜Z\W<Tg:9o9왮簽)rzKLǬ.sG9s)m#g TOoL݅gv'gNt:m=8k"7RɄSmM?5#?s[/KlIǹ-vv:ɕdu(ڢv96$Uf8 6<57f)!X_Iޅg:u&yYJ<"3m'g.2mYٝGy$jNt L>>BsYʟ4p- Fvgaeÿ}xs^2t]8.B'E[8'†,gmB& n )&r;+Nr<Kyfp%K%'a7;ݬ=%$Ca+ۺ/Kiܘ3Cdƴ̥PfV~ڞP=5k99/w^t:N\߀PW)^yST:]pON'l5S''g}V jSq;}sʟVٙKiz ًKky6\:Lf5bF$k{S:ggB,Y7s|uӽ׋SXQyn-mv}%LiŭGȕ.O:UN=BY>dQ)&nJ^ܪW_t:N qߡ[9=vdMzrRL߳ynK\,e{~+SA<8Z3P#Ord ӓUg¤~+ZDoKgN6_yT} ,΄$=`g^q-37N✯zYZ+j:*ol\dF+uKG|qW>:miUTw$u[P_.SfV[^ɺVUz&Ng.BmŭGxEww:NB9*_y5)BɁKsNh3=vv乻-yrRNyԯLmqVx6Dh\B<ȑ>+pOOV }*nxvxhq/ 9N؈ًR%8pzyT:sjs=dyhկp꨸SrIb'.Uű^IpeWeRzmA}[OYmz5'Z=Wٛ:u<݅t:N\)f)oi oCXq`z`p=J3)Z9ΧFsl;(9'mG[mv *'Cw,΄I>-im[ NCvek~Yoyw+IG>op6ֽ)UfiLqsQ异$l\dF+qΡʿN֤miĥ3!I݌OZC2rƩ뉸$J…V{>t:%+7Y6=' o93q8BEjy;ky|zo4ˆʿb;|vEfw|2t'LSqKr>і{I=iWvlw⹚}in#iݛR%a֟Й:gU+O–{%Af侢dMI іV|pN\<͈5$3-WkyznH2{[9Y$\hŹs:NSߤ-5aSЪyfL˰2>+svO'KN^>9PLojT$FlD͙ KzgweC)zlK}0i's =Ib0:ڵ_[=+/%s/qn}0$4 T6angw@hϹ:W6͙QϦΓKۓ:UO3qIk/W+svO'KN^>9PLojT$FlD͙ KzgweC)zlK}0i's =Ib0:ڵ_[=+/%s/qn}0$4 T6angw@hϹ:W6͙QϦΓKۓ:UO3qIk/WX/n̹>+,Sk> stream xAH Og}i PbEZR\WIfmK*u6f{=$ʶ{jzϺҼM]?ٛ :[o͜VǑߐ]$gTlToWU_˙s}.*swo]K0y_gbK2wKH&d]8.7sRMg 8wB~~E36]j.7%:r)mLW{\kGi I!Ռ?^*ZښW_DNz ݕh4rK:ڧB[vݍ[TyQ=WOB{&s=6gc"͔d.?IZ~fힿ %RqϕVMٌ?g]te^U}-gΖ^gv]o3222Q{3u oINv*-}f{%ߠS҄CFҒKKxn4w {8wTy}j_|/obɬW}] wYr2KEZ[ꖋ2n|wFh4r㻿vLfTutU歉|nvOY؄ȡv3% =OVٴvqTFs}Gu6#O.ly*oWU_˙e٣ꫝtW[파̼uT&rL]q[Jz_Ǥl^7Ԧ4!cGd36]j.>Nߝ{+w^y' ۳Bw2{_WfB2y̬R:d">)'L[8ߝh4r|yQv$9fRzw62<=6[ΐ~n$'ڂ FC]I-:'3( U}-'k+5UO׌Zo322󒴪$N{Yg9|Bd9'-TgYGB>əѳ%3g˝Fݬ'Ҳ%乗ӽ{B\+t9mCY ; $r(ӫ.Φ$'u-%is8ߚh4r9gQ_v$9fRzw62<=6[ΐ~n$'ڂ FC]I-:'3( U}-'k+5UO׌Zo322󒴪$N{Yg9|Bd9'-TgYGB>əѳ%3g˝Fݬ'Ҳ%乗ӽ{B\+t9mCY ; $r(ӫ.Φ$'u-%is8ߚh4rgQ_v=mu]}l.cvo23l9CYW OB¼4v!UݢywQqCd?]S3 Trܝ*ѧ aނYm5G*x nBޛ.|f|N2gEO ubC&3:i;Eg3$.f̹;U>}9O.wi߽w.jTvT7]eL+3;2*yδ$Ux=!d2L{Ҩ\Z„)ͫz a}]3MIŝOn-IFhTߐoM[ ^qƸ%m׽T&BgHºn-ۻ*'}]vkj$019댾Ur˩wұN̛ٯk򷳫[cϩ%d=лkf>30 VTrN{% YONcEiӝMI$g'9iӜ%to<9KߵΩu,⾫N7ٷdOʧeTqu]{.^9?-ɩMCŶb*{BFh4R~*rV;Bd\ekr1rGu/+ɷY/[8t9).lInݚ9ɼe#oL::sܴ'rj]t2fr|+Ƈsj y{<{ٯL9y{1l^7HrVXQtgN&EtosRÙUNjjss]T$N ÙV+ɷOrw}S;Rcywi9UU1I^ZBf޴2 :zsrOfH-ahoy5ʙcES.0aR-{^U|B\uWW^ߒ>)!t'SŹ4/ŭWzhSkk{Ql9e*Tp*3{h4V~r-Nco|Է$K>N&EtosRÙUNjjss]T$N ÙV+ɷOrw}S;Rcywi9UU1I^ZBf޴2 :zsrOfH-ahoy5ʙcES.0aR-{^U|B\uWW^ߒ>)!t'SŹ4/ŭWzhSkk{Ql9e*Tp*3{h4UVgpn~oޅ.3Wߔ[~rH玕:8UJ6!w]s $\aȟ7M%[Vg8қIF2iYNs+yoY_/ +v3o_nٯ9y9N֯I:1~钕3c‘U-۩OesϫOȓk] e.7]wTU-It+|4k + *Ϧy;M%$3u Lq4FWendstream endobj 125 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4431 >> stream xAc CTӟAv(Dx@Pu??_ ~ >ON)pls~GN;Kpۄx5}䨜 l*9I^y*q-7w´FD92OKݔ_r>K}V>ai+WW2'wy%߇g)g~dd8S$+ij*|B?V=uiZϋ:U9nKW.$mW k ;}BUޥzr:E$ɼ:Ÿ{tڌjZ*VaNK7~C@W̶uY69~YqzҜ4{luC]W]38oix|r^[z3tmWIppk9[vV,'ߋjVm{褯0^W;k\os&tUe'2gNT9S> -O''TnA5y !T]f&9\6]yThڊȫ%\jJsT:jZh%|* _լ_)|^m_E2Nmf8mgšOHwJsz^&< u%_ueJ߿༽y5o;ҵ^i$LnZUw/Y aԻ{_;swzk͙EVzvɜ9mRL$|N>PeD"լ>E$\Puɛ^s-\2wR͢i+NN"ֳpu)}=SSVjE$sv뜞ܔ~%U$v݇&rvHʹSfQ?VՔOrɡTܜM$(Uů:ctN-'}K 0wy/W3{?9l\RU]pr>KHsz^v MW=t}WT۟O'䔐㓜TK%^rf[H:ACg/&%B2wCUIT=nyn;'*N:jZh|$ :')7{ }l;] s:8rnwTOdA5eS}Frh>7gS) JC{Nߘ']_IR9<yދOTur&ҜBp9?]{zS 9%d$'RqI,9zkNppzC8kɹ]PUf|8U=]R/0KXceO>ԵGN Un&RIKѲiw,U'r3gJ n#mW9]uEh=;n wp/ TqyVjQڷ*z_bfOקTw=T+WDkv/l^­5+ U#})*?y~KΩsݍP2,IOvʍ!ۛt|wqݴy9ifwBTyUOї_z+"8U+$SVOovN+fο̉Q;p**vJp~FnE>ux"+-)V+w#~ӳ $ߝlw7m^NZ{C.sPU^_SޤNU eiy~'US[v|w~ӊC8sz{&8Ju[ѯO5~feJsJՊꈤ O7CsnZV+B_>/?UFnS8;iMT/ޏBxI5T/wi+(yoqN9C.Fm|r:JhߋGS)p$\vJ~[;JHbxH2!*S/وtf.**%[\uº;Qmf9 ZS;} ;8tsgND;h%UiM&0oגpu]uܜmoF'%F$lV~):'jZV~%l_zN}vF V!}yy۷8뜿!nZR#6T>wS^IOS%ţ]8}N;%?u%$uv1dV:93'AnzV|䒪4զg}z7kI:Ԯ:n67Yg{#f6H+?avHhaZV+emן޼6y9wSrr7w7]Gɻ弣M&Uw3/ݳ=foTG 85"[~ iԹLBH=u&'-Swm*3]#J,̌h^j'˙|oɩ{1ݩT.osgZ ]UJOHl0g 0u- 7pJߕGH&6iN\Ҝ!)w}g#}yY;d_eKHz=J"=Sa&=MuϛЋSS)[O;˙БV9I$$SgRq79uo2s5lM̨ݍ쵨vZӝOJ]6;qm:U_NN sSגpT]yTdrj4%#g^99ߺVj5/ןϱO2l)gOMɵT欸enrپS!{кM~w]7:ԕ)I=)4~z#:Re[P]K_4a&󯑠yZ0Eﶟ4ٛIG}r{x=)35\}Ɗs?NSsgZ ċT9f?W&= ) MtpwliRhB{$ՒxDocsruZVէ^9}zShN ".H6;.4W4%n3/0EdZډt.6Һ ܈g?}i7v;y\ -kIqbjK}*?a'9l\m:b\˝;$xh~T8M2K[w*ϩMʨWO"+*͓]E2T 1HGS$/qa 6TJhSŦ~G3%ᶉ]%wk %$JE]GIߺjZI_=endstream endobj 126 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1246 >> stream xA0 Co.f4HX%Yde1w{~8?_>ݕ_zvDumغ+0.'U+?+uηYE6>_aUs*׵WΫi{!yGԳcH5|/rnΟ~.FrfJQuP[]Gvkfƙ\Îx_>v;dmܧvxVXW+Y]j~{U$k3+vdՕ}o#+wU̹Wmf$fUlWUUzV =^N:⹶k#ȱjUU_GQcG:vaI?ޗVs&ǹ*n'Qw}WOȮ*„h%03%wȵhFlݙI?ޗVs&ǹ*n'Qw}WOȮ*„h%03%wȵhFlݙtev^*vB9*Ìd:2;t/1a> stream xA @DC$7Յ,$kz(b8}~Gxf_ ?80LV #ĒGaD% B[3h8H!sXHcKC;={ q)TqJvҁUЏøtK8%BLnƪ׹1H[\BiGm3 Gendstream endobj 128 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 129 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1050 >> stream x٭9 3OG:6E|~b϶OaH8ֆ{+FE.qTfv5QyԴKD>tncl{4O։npomȿjT.'LeJoWs_5KMIJ3l:/ctKHD' 3npomȿ 7SdKTfzvآWWM9ѥ]$Jyu9zvؓsڳwR>:0Ngڐon"ou|8Q SʱEHrKMIsd'[ȰgTX!f? ;s{kC{7S.q.Aەcu_.5\v(U >cOa϶WITX!f? ;s{kC{7S.q.Aەcu_.5\v(U N6m8al{?ݓOu@3@ֆ{+=yKĹFroW-_l]j%NdW=M!bl{Nا:U N izkC܋͞%]nLU+ǖwm.5'Q+P&cKWLmWIT綸 ?9;D1Momȿ޽[]2%=L6jT{rlyzgfR.q%rl2xyŝOun=3@ֆ݋͞%]nLU+ǖwm.5'Q+PAl;)cN;\6]^lT.&wfʽ]9<3oui8}^9?ڜy_endstream endobj 130 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2905 >> stream xAd7 C i["E^$Ex /矿ߟi5=fŻ'uÛ n,7Ff9%St765n'kQw}gn攝P^H F׷'ݓ[: )uiϱdm:ݜStB9Q  n(@7~ŊwO&7oX7@&|֥f?ǒ騻3wsNO ]lqOEm[=wғdmur3+x3yJsJ٢4|HxTi0?-S.NI/Y[߱N/${IֶǞN'9}/or"g5J33LU_r9O-Ө}{gu>Sgo>skPPQ9iiwٟON]NPoguڞdũZ!fuvTNBzjs<>uWwus=kSۛ[Nx[W: B./u N:=mgW]$xdy>Y0N%9j]'>?a)ѱMlD.=u{ 4n -z%v0i0@]?4蝠lW뤵='ɊSBT*T":C 'ty|3x!甄viVgRIBgW. '軒.m{ԳNiV+:=qܯO$''?|z=\A7-+흐ͯ(uԓs:j]^:*tzϮH*%4j}ZaڝJ:s.u)O{}~„Sfc]ݛو]zi[Tqn2GwJtO:=L%>QSV&]li$DU^]9MoﴷY]MNPÊ;O=77=SL.?+z=ܴg^|?WwJB :([ Oiڬ զRשf^i(?QG/OVfvqnaeZlJ<:ʝέW0J{YQ?3iN]9Uy|Rr=S{rt`*I]w2A:f읯N#A'r"i~{]Ϻ|orVyҘ퉿 )^gjw9Yj*{軪̪.fsVۂ"NOts:ã)=\?SNYGLjfNfͯ(TȬ6GN6ROC:z}y4Ks + gPѩV5un=̄ SˊNt\ϡo+ȣ99فZY-+NuTyJ ߡʩLĺfWߛГݩ3QL> m ǩf3AC&S:u)')<[YYwnKY(TOH?mijuSl$G[-({})HH*wδ-x֖}*|u 've<%sx<&woj$ )<Uز┩L]?Iu䐩:tNKmfz~K{/i =aݝ:۫Жཎ_yZ>M`:4THn:SPib~Bz< rnγmﺕu6~.[BӦv_w=պFrKނbOwgߗ$xwLۂGom ާrWXWbWj_ S2؋cB{:љvoNBpΗRMm6o@]-﹨O8+ۧ{2USNՉ$Ga;MIԙ޳~|$Ǘ>@ z6u2Tsm{׭;EStҥM%߫NP+=ki ow{ t'W/9I>I a\%AgEmGYI$LH9^N;7_Sy͙7Zendstream endobj 131 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4235 >> stream xKqN~ Mse,0QZw$Nt;skq|wcTwlTSfPfRup=!d':[Nno$Od;O@Kxڥ;Mﭧ\zC}bKyD鶔Kr4}sQ;W+Ե*٢O짞BdUGQ%nK3:yz?CQ+6bVuzO{*:۟,^g.I|t]UQ7UŹS?uegUܼ)ئO| q79s" 6qzVjZ~pҾ?s8uf8}n*;KԺ~*:dLD^SN2'[dgf3--Wo>R.ɩzVNUN\]Fu<-wUX>zp/gF,ZDۮ̻ n~z[!=CJ˓HtSoh{}XT'E:u՟W-FMLVn{|N*YV!:sz`>)*_iswỎ(}[Vj5uaU䈳ԙKS7]$̝%E;gn?>Hv?Stlug܉gsvm rJZO7Kw4N=fߕr'EWάҲ|tTqM^ɕO-mg]eųoMnSt/s<>;9esNS:Sgr)f)sM靼ͯ8(5ŝz*6Yg:wuU\pPWmVT˝IեٽjZVSq@z߸n#~Sg.aBvgOtUz0wyt Oұ՝Ds'rٵ-,SNӟ˙+i=,ݥ 2:욑B N"WSg[7O$˝];z{GxJ]SY7zO'W*O?Yzu7MEvӽ=tRH9MNʥ{u6w67 w@.g=$;WsQ;?A]kYQ.w"Sp&UOğW:gVjZNVs8:w:;|ꦫ R(]TODM6*Pl|gTu?!'3]Wһ]iߦL3zO=Yoc.%lŸKxV%dq:izFoBg58UyyxXUҺmg]%NpSjNo^ջinJ KCGs؞}S ;oOͥHӲ|,%ta2p:w9ulxpm*sJ} ')rn'qjZV%r=KTGᦫ RHΞYUteRTU{wqeϢL71iO3ǜw:;O\ܼw^E7-ʟQ!kpZrz$p9kKϙBV}*X[Ӈ;6lNYuu'N\*DԻO= ή=s⚲^nt8iߵԜ>nι#8A]mw흒CEIZVjM/)_L'w(tUyA =3 P׽L*5^ νlYT&&M)x易Y牋NfE3!dNRNoqNu?gmz9sWêֽOo{xp毢`C^ž=Op$ՉK噈z ٵ'~N\S B5g:򻖚!9wg8.ްS2zhճH t IWjZƙg}{JMWPoIoz:wʤw"ljU*>{,tn$͔{74+*SspS; WO V-J%z>NWلi=r8*ĿwouNvSt94T93E~\ܤ98N\6 jJvFG{˽lx-aN Y> ; uj;A{x !Fpfʶ8}jZV- g-^+a> 7]w^By{')¦߉W<왞ố4SU<Ӭ8xNϙM|'$\?XUr(aJmz8O^f"īx޽uC8e۹O9?tROSsqpS8qy>$p*]U-<;Y'd$L3xU򷗫)*)VjZrXO#λ*~;/H޼ɓb !dΤ(3i,$x޴%0<ZOi9J:u'3g4mT;)MgcqigIjwV'hJإ4ZDoaXl]TJ:+N?ɥ2|;bUy'N;MwG Ce"]#.*VE'g{6A]2Ӵ}F0uRy NLdZVS9B,L]5?;PQ骼͛<)JFL*2&BMM^͓$흦ZnSw2sFsHŹ2)tp6vԻ&}pk%\}!V]JE`9x8*?.EIc˿Sɜ\)3'S~.VgpS8tw@;T&ҵ?:[bUtr&졚-mgsU*3MgD lZ=Q'E8dDVjZ>ZuW*j~]Wwp9թYUt3ROaOr^ϝHg]2+y"ϻwғwjR76{FWɜթsԩ{{xZK='RfïxUxOJإ4ZD>*=UpIg93BktL ˕eM[$tYa']lcԩUM1'ֹWiF9uNf^s.:sOkd=۬3x2*UxO򐰪z}UzxR̺z:{ɝzJz7M-.3f{V)Z Wݮw$8(zˢJswQhntwSNpH/'m"'$b֚2jZVendstream endobj 132 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4190 >> stream xKHCэN5)u([iH.rÃ;t=mTuS UrfUJqV$sː9NM> \Mk[7Sd8]:;sxZK'dufӣ]BϤ. J~7SSŬ{wWO/yB_BoRcw՚^+ٛ $A1[UsſEOϦGuCnG~9i{Ӌ;i֔VjZ=?mTuS UrfUJqV$ xrY%S9 ry<|9lJr*xex1ON滷ޱM]#Wz:YGKףοٙZ꽰8Y(6T*huf% J~7*z\7'_!8 *-%M-8]M8{]a?wx*>9TEŢurgSݣ:YkSN9 Z\NfoᜒCFVjZ| |SMu3pW˩U+jYܯԏ륚SrzTJ%gmʸ[`=8{#:*^5wRzWY'L@ViafJY򐰪zWν׻ftM/yB_BfR]M8{]a?wxn:QEŢug\:_wkj9Z,N6oᜒCFVjZ| |SMu3pW˩U+jYܯԏ륚SrzTJ%gmʸ[`=8{#:*^5wRzWY'L@ViafJY򐰪zWν׻ftM/yB_BfR]M8{]a?wxn:QEŢug\:_wkj9Z,N6oᜒCFVjZ| |SMu3pW˩U+jY/N^q@ TބgKrݟ;=uGtڻMܺwkn#: u}i-^Xw乻"ygURɓzO*a8])58{3?OW_9w]iE'~ir+BSK.k;7p:3dFVjZCWJ@u]w WKtퟛN tW9L/9c,6OwmLg[ :Z])B*N?UsBԳE:gUR<U%Sɿ,ǫT0ewNgW='ISKSSZSRߔkNf{Ùӊ/u㴢? ?[rO 9U돂 !ϩ{~A8VO2g#jZVO| yq%dov +xE+OƥJfȉzV9aMѩ'i-O|p%"t}yzW蛿sw|Ax-S2*~'YU3d%O+WRN 9'牳^1+')ͳS3Y}1aM8+)m~2LNKYEmUtrd[;"3! NOR{/_ә^$s6ZVjTηG].7V<"w'bbR%lYRD=ԓSg>J}Z<w +_N ?Ex)[~UdάSgaŕ?TMyza)Ι@uܾ0k&k ԕ6?uU&V'ެ_6*:9scΙS''TҽLz9YVjz*[#m ̀ 7?]]+ ~Y7Svw]TswPN7i-/FNwN)grpGuTo5)B8SOcJV> 9=L LV~ڝ* sU%W-mߔ4T;eq&qŪNNnO69\%\ruUtr&V{Gs 9=L LV~ڝ* sU%W-mߔ4T;eq&qŪNNnO69\%\ruUtr&V{Gs*or|q Zjdzƪ@Ȫ6eӅ߳Mgfrx;BN=Sz]Vjw@|'|glZ Wr槫k\o8'WZuIl?njN^ Yb!,_eBqJri*a :YIӉKS*Nwsfq:}tuuWɟjZ?}endstream endobj 133 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4310 >> stream xQ$ɍ53FN"i@J5qϩo%prδ,[ _rgjIB+K󖗊~+_۝*/MVՕJ5EQlzv\ӫZWzOn4gJ%RWv_y%!Bz4S%94N^oJϥ?]ϝӇS7W'sz˖ӻ3\ңWɍ}鴴CjZVU]_+9:[B n)r'^|+ Tu*j֟ wrz]+mJ']ퟜ;gw˹_Qn4'8sTlޮ9w U|BB zU:+n޺:-*aOSw$$׮0+:O†96۩RzW9Oi;}8y{ +nS7TΖٓ./!}_gSכu$W_W2vP]IVjZE8iߴo^*uu펖W {rjډQO]S{UsSNH^rzT]V|:]g;UgG8봜Qݱy'Z,#nپSS< BY+k;g+=ts̺'}WFťm'+Ku-|Φ0w"z:2g[hols;ҕΩ?mR/vC{Vj~N9:iߴo^*uu펖W {rjډQO]S{UsSNH^rzT]V|:]g;UgG8봜Qݱy'Z,#nپSS< BY+k;g+=ts̺'}WFťm'+Ku-|Φ0w"z:2g[hols;ҕΩ?mR/vC{Vj&rS^inΓKUq]]qPng'ީn3}7+΄foS^b'{;oLK]ZwrbJs󮮚-985&ǚ];Opr>wuysn"YO~t.:'vz:LXgɪ ::m2OK(T]կ4B^N]>uλ"8:R%q.!nޅ^չt'8ݨS]E=CIrteU^H'b[VjUy'妼9.'㺺+OS hgoPW uEN\vޘ|"466]]5[r_qkuM5Yv͟hG|8>=ݒEسXן<$]nuNBStԙFٓUOtue2+oGQ*_!gi W|=>wywEp*uNץJ^7)]Cr V !]ps9"{OpQϧ9z.y˪~/Nb-!qiŶZV"~'(j^妼9^_ހnog'^|vɜKɤ"I.2Muin۠Sg]MM9KjZS'p9S~aE\z^N:ϞzsHӯFv;tJ˜Щ~׭s'u9EX6r׍T]/3:or^%pȓ}zHˤ"B3ƻxy7IϩjZV;~)pδ7=juu9řIW'y2+oG(F2u̽nS]pe#1[6T9YWSSqy:'@%'\N/)!_Xγ'.kQ%8(92't_uɻwqN9%u#8Uf׳̼齜o zG8$u2%P̼jz'vMsmaZVNHVR9on`>lj}zW^{]8~L*/2t):圦I3ܢdL,۠Sg]S}u.甊sֹ׶9 o@'Ndw".7/g Ҟz_y>+P%8(WzrEȵÜNWn}osz/rg ջ. ڞF8̺?!}'!L*sf^zGK(-CR/'jZV/N\]ys |\;t+4+< }{E\n^ʥ=Ytҹ}Vn2sˡJpP+dSk9*xݼ+]^zw׍Ti]N-w]=$pzuM*C./OBnT^%_̼ QZĥ^NjZV_RoB)}5Ls̿Wd.hznwr3|oO~M{4*SENH#>u7N_ٛ@Z咧Wugbu^)$'79$AE4aE(NeK{Ӿ2Lfz+܈zk9*pή߽$29g| R2NyN rw =r蕞gϽ.gG=z3\S^΄(:gO NK(o埓gOV=]x_Q:ғ^G/_-M~ifWsu΄F8gQO_;[vK+uC;\QQӻ?ݝ$}A=:ϞTuBR}-=-VjzW~y~&&;{KۅNn<&|AtZbuiTCgwJvOس~*sa* +n6{咧Wj]{SWt'3a' ӸB$=_[ٓUOWo3+ы{{A7kKӥ_+a67s3Ιj)W2wqs9=WTEO}wfr?I_}kPτγ5=UT_KO jZVjfjY}[/'O&mUɬrH[ɴlJsVv+B+ZPh 1ASIȬImJѻKھV^w/'\qJn?ͫ߹-O6տJ>pzwQ6jZV?ݥendstream endobj 134 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 550 >> stream x[jP Et;M 5n,G >gz/!&dFUN$J;x%G_=R:xWP#?9۷߉'91=>Nr 7ӛ=/dGHO}v:KG8S]7|Yzގr8[c[PP<:k ULL*T9&,,ȤBAӅ, UֳiNu@}dRBI*[ˬL*T1]>p2PPk$zUtIZ xL*T`wnp2PPt!tI x@& :.IO8T(co9g8endstream endobj 135 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 292 >> stream xۻ !4np 1z uw%x|\' w(ɕ8PpB(e. endstream endobj 136 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 137 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 983 >> stream xفmH  qgz `&%r `ο W 2.wWN?PE8$Co1{9R%mɩ;fjgv`g&i;twb |S"EA!rJT r3;3d|RƓL&pWputU3H2"W΍S)UҶJcAvہu$~ۗg$}>/&9\:@) 9scTJ&Rt]v`g&;l3I&;l3I&ə;lsWTJ}&Rt]v]-$:L~/y*ޢfdթNB) &:R39p,\Rl!a{S}>/0'NvHgdH0O9R%mɩ;fj8mf 3ߋg TU0`S`߼ȹs*M4*]$/endstream endobj 138 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3239 >> stream xA$7 ac$ qG & ,׬1Uj8Yo1Omc1ƘdG~;ߙT7c1_O=&~6LLc1Fi>6^57cv᧶1cv"ot1ηw&5UMcS(pߥ 7cQy?i>6^57cv᧶1cv"ot1ηw&5UMcS(pߥ 7cQy?i>6^57cv᧶1c^Nc |?gRSa1| ?]0q31'lc1oUzc1f~jc101Ɛw&5UcS(pߥ 7cQyv>9>¤'drӥA[-Ne/|tnjg]Jw-9fL~<;oe6a.Zz&nѝko9*'Sh-R@hζ-Bi6m[i>df1ݢ4͝nRZv:B"f(Z1;:ZۼϟSOIoKqyCNkoc sC0!LZ{B&7]R[7M햬xQߥtnΔwγ~[f!o MPlSٮrr;5="fl;"7lf߻eNȜCs{,{ km'gv#:;<9A]:oXOfO-jNy&%a>)t-b&9yϺ*?EJoѺ7ti1p=m#ly[q2ϟϭ6 Ζ󜝚vgNawE<h*1Bmn.[|-ɜMNikQEN3U?ݕ7l=#gr3ϟlZ3;=k k':gy [g p2$|6>yS 3ɩlǰ֭0rJ)Œj+]kt tYպInefRZ*|=-MJ홡 oHS뜷ZuINeAUT?QlouIh1Ƽi;Sd?![m-+9;5/G꽝–~yA7TbS(\j[r9:Pעf̫fI) +o٦{F$vg?"fvzNTu-+VN3dHl}jmgSHa[a4gzSVV鈧A Eujg̤$=T{ZTd3CUؑڧ9o7?ʛ뒜$:)J)Zcy[G[G ' UYڹ_ݘoڹgrGyƴ#f[J΍1[OnJ rgGY2+ +o]BNԚ>L]tsO%FsSvv"lX)r&ZϧZm#nU8 L7{nCgUs)fޙzU)ҝف%4t)OI5;M7WZb47u+lgKh.29f+"g[n:|U6Vό3PtnyZO@MlUU(2$h#o-3ߓafU'ݲ ~s7Bv3e{m@"gt YeKvY ?d]INK@vz4 ó|ToISۓПZ-YmBmxƜ;C'!S+BȆS}M̎9nwY̫I) +o8ձ;c| {|F9QdHF2 L.[>g'?)ޫ Oel7$ovgXTⳫ♁)OEΜڳʖѳ~fn<|i&y8s83c&$}_٧ޅj'UғOƓeSMmCBLdų]Orb8;{-h0~{*O݌=Y=gg̜ww,Sլl>R>;0Oޤjٓ~sve?C~vuՆy[6IɆq7SϮNozHȐoHtS욚%OgzҸJ#㳞4٭c1!$U?s'o{=x`j޻mHOɖx֢vK`cS!TVSn[ ggoP婛'+쌙nj'svZJgɛT6{O]uή|Lg0o7T׆>)0`j#m񼃿YO]  sʳ]S=켗COwSio|Ԗf85c1;>IuN[D=o8yfxZן*2;Sҙl3:f8xړGCі&άU+޲#3k@OVj3t'FMtUgVdpÖf*dnӓD|gпwn| uUYRԙ YOFsf8Ֆ٩'6rzZk獟VTzS˘> stream xM 1M#ͦUIjYy__#2TuuM[52k]~Xbͼ|gf~} i=xu{N'EZIyr$zˎ+: ]T{n"=8Y)qNy*g9M;3ƩvpNS7ݸTΞR= ĥ'י{uC{y_73K3E=N<~uߝzuguͪOHfgt:N x?|z{|2rw`zI:S<,gN;iwv|˺gyW);v_vP8VO.iNN]p{l~zGW=βՓK'u\%Fd7"v2BΜTyI;R\GG矐-WW{Gv'3g:98}tInI)t:NoX7x܎X!{řIS~Մ[8=sIpV~٩su6Z鶬Ώz;=*DvOM})Sl~Nɢ2P4a`9f3W7Ϥr&3ז+F3l,BOϹse횡n |NO9Whj/o/ۊls&tWK sfM|K̹>]x+8[[%![&+YiQ>g>a'V,y*s/t:}YO߰7S BȭRW=Uu~gUBՄ[8=sIpV~٩su6Z鶬Ώz;=*DvOM})Sl~Nɢ2P4a`9f3W7Ϥr&3ז+F3l,BOϹse횡n |NO9Whj/o/ۊls&tWK sfM|K̹>]x+8[[%![&+YiQ>g>a'V,y*s/t:}Y7,8N.-c"UoOU &^k N[9=aYq9*EsS9S~߱=DƝiTONrfOTftx[nd S_a?zT*[8=y"l*\8w@{&ɪUűfH*:GŭC'¥ߎsG g*ɓ2 T{ʿ|B'Ft:FV|kuΙ;h_iA4 ~[LH<;y$?>: RمmFG윳|´yr?alq!Su_9ױ62+'WaHbJS[HΙRvZwyMᄞMRw:*g?UtN,g/?K}oA86ۓGVL2=%lDFg0i LB]WӾ4[k4S}*?[gr/t:NQ z#+:SLNX/ɴ r-s&$P}_̝a<ʟg?۩r} RΕg+]0$_1R۩-$ML)ݎs;x;-N3t:N|yrQe2pqK23Q=_{ߚ?I}_ m'ɠIM윶.}xSyC]s7իOyr,BCŇٲA*o֯+'϶'V2onWܫRφ[:NsNνwyeUlC%Nδٸ70:FiKx] ޛ8sĺ7TE~7:2si|Utr&оCȪ=W l;M Ligy:N^ް/O: RŻoq*okz2O3Eqx>[6Sese=J-{Uo|s@ǩwnYݩ߹?N9ϼ Uzhdə:qF(-rq +:<{gXw񦛪HFgUf,ϖ *>KW~zLVQ~~L#–-?=|D#^ ǟ*ug92IuퟭSN콉ӣ[sߍνsRNݦgjy*m*9UԴAzM> i${N!oX i׫5>d=N Bް7G);8=;H͉Ls_%ˀz,IXO윹3K5v<6&'WrlY?0gbۖ "NݓUreb,'^犳QuYNl RZq ruQfƦ޸ ʙ E𺳜*?DN~9,Zp}o!^KMIP'BL ^Kw5zY> i׫5>d=N Bް"̊ |l8 g~ee@=U$~'Lv޾/ɬȔ3=> stream xQ+A1Mgh<*)RetQ!*{VavLٞvr g'_l2EޯCJ,&6ysr΄q2T6垧BL^w5zY>iwVk|hvZVo7)٧O]Χ-;Rzܗ)f}R_ߟgpO5%7IW R]”s2gy4<{!ͶSwҨ i}dy{d6L|'^i٤UNYޝ& rgؑqvglg۝kj#]W~gj]vNDWg6{?LWwu<BTt޲w}gPN۔{ a2z-ՌGer84?YL&?jZAާg>ϧSw[8zf쐛J=s_Iw|}2e=|$]'$;SJSw^ { S$юdU7.NAHH>[6X}=UT2zgVa8ӳg9{w$'ȝaGڙ3{yβUmwtm_I3wu:;u]y3^iᖻ_xQ9tMx9)CK;mSy*|W3F~zgƇv0lWj:TSҕ ͣ$٫ o]iY'ljY{dA5L'^KgK#݇@'#Ȝ;晩˽d{MvfwN=:Tˀ{,I-OHv&w-g=)dhch2y*Cm |ڻcV;6xs>ZV3YuP&61I+fYRH!g*!72gyfjro> 作ͧ5)s=sV+I"g@0cV'N3Sɪj6̹OTz]_20O>+%Na];e,8pdxoLe;np*9y^abAp>U&'.2rt:jiuN+UR{n0[N΁p콉.λsEtΤrx]g8u2*t{uJ-w^sqS)?uWjKgkbSݟÙCfsœo%9 PޱwTJ?QnB3y/]s T9M4'3?EqН 8=^B2s#lǝMBRg=t燓.#Tk/;JS%sK~J{>|N`>9շ:2{g]w*ɋ \Ipd*Uvv넕ZN "nS$Vju2!7SMܾ.Tr}w7R9$!ٙf9oÙ;w$\Qy+Bf?K蛒 Is{& 4[nReso@'R .+GȜ]UnIf{d_7TLnsEG, !{o+4-003׫ܕC!!in{$Onǝى*βe8;"\Yo .Z;S;P9UtvfZnNݟ VaӫpH{g]VjhuA'9g6Ukv;Ol-BgM> g?W>>e+UUCvx+jZVߣ_?(_dg]U2!3S%N;vZy6fiYR4Yg^299ytU%r@ } tRʜg {7垤O3Y$UHt#?3g snO>9/%I2tUqOMHe73_E'Fw&o2CpLU^9$ag3;Mn)ϙ%E)u%*@WY)gΎNЧ@?!xwSI=UO2ZſDw;R3sV0팰WrZ$KW݄[v]qS8UtL~l|a!9ԛ ;8sߗCן0Udz]l]spdfMv89U)CHL& B2WjQ}ѵcy:/uӎѻ&edwꞀٮ{N δv; ;c%t8׷sƙNf<2@oVg{wgN[=AReб)$}*'LJw]g|srἅ)g*G뜾Iv8OVI2;r;(γ7$|ସyd6TuzOHI띞:hw7{+:Wtrdz]l]spr' i;:gfsUDԝ={7NjZV-vPendstream endobj 141 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3515 >> stream xAC&({ER̓#J߯?iSvff:{Oa=v{>2v9}@٩t>=s^x'NмqwnXCFr};whya:;;اk61V[u3*qSP>r0 gg3QL3oϙw(JKfoy>ldk$%`=MvzY3X3wF87ӿ^UgT4ufagb5jYCfOg9_~Ű_TTd.*h򙺜]Ξd[]=od~;7Yl]wx.Ó}S{GA=αv@݋g(CM6ٞ>{fO !563Y]Da%sSgoW<7dv;f8';j5ԽuS{ߖwEl[utvwOd'=4kn룹LԎ? OiпCfx:?|^P9S}}l+y grv:{}lwQtvc࿑-nLfQ}%B gw톕S٩NC{f8';j5{S'7}Wf%8jn@ }OԤ4oVV9kn~OWΆS|y>OU nvش>nw+ln;vj݋t[xx^am˳o|g:^l^4ɾm{͎Mj6Pnٱim<5}B!/0yp:|nXI<ų=l+[o득:7۹gsCVo8uo~~#>wElv]4=>DMpoKcinapSμ'tl8!j˧8[n͎͝MSv޸)XϖSnؽMō9=ݶ<ۘyw&EΞ{)>;شVqk妙&SY;w>+B gݷlSʍh;c;nߐ1#ӧ1CIQm8wvpNvvU+2w*Y Tzsjv.Ao[wVg4|o[|n7gF n]9L[>5/dz\y9I^}9{ʧ0fGc;g۩-c;smtvuJrtR oy.xwy>Og')rnViʝls1|}BgݷlSʍh;c;nߐ1#ӧ1CIQm8wvpNvvU+2w*Y Tzsjv.Ao[wVg4|o[|n7gF n]9L[>5/dz\y9I^}9{ʧ0fGc;g۩-c;smtvuJrtR oy.xwy>Og')rnViʝls1|}BOmF2ó}ów}؞6ly66 cFl'ͳo.3qJ ns:+bV}ebN'K),ej{a`_2{˼٧ &-x='μ|e ;ʧt! Y[=?9{SΗucbN聱˻yw1g$jS{?EcvS>oJ}K}|6<͙dBa/Щd'ک3ów}؞6ly66 cFl'ͳo.3qJ ns:+bV}ebN'K),ej{a`_2{˼٧ &-x='μ|e ;ʧt! Y[=?9{SΗucbN聱˻yw1g$jS{?EcvS>oJ}K}|6<͙dB!.v:o O|wv{+w=(t;n*<{{QNn>!|7֧O ;C۩[A8,37:{w|agwH&waoc޻r&}LB!o;utiU^ onwgr׳rK<;*Ԟ]Qiws/n}p3TzZl?oxswxf|ktorW6+gl$B!B!L~!;X!B!-M!>B!B!Bu;@!$B!B!oiB!B!B!Bߩ?B!%B!B!7'L!DGaB!endstream endobj 142 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 497 >> stream xAjA G$?uOd3U x~|NG$2ɉ|2G蓩R$v'.Lb ]hFJ1Xۗt>Y>;HV)f`kڅ0v!m$3In0gg`b?$3In05BJU$7@dz}w=7LfCJ1>yw{W)f`z0-p* @ Cn _HriT;YV$7@v!Le%kHrFNR$^}t `>/_QOendstream endobj 143 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 264 >> stream x1 @AO޿S@ 2x=Yp+6endstream endobj 144 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 316 >> stream x Џ(?c硢b}b(8~}ݯctjVxRia.gZX{̞MV U6@^^ ./O s!endstream endobj 145 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1026 >> stream xQ Ew[)5soD,@S~z% ڝ3v6)D T6@Y^ =rjL޳}9HWnZ7 '#IdnNlTU%u2T9~'$tEN" ȳ-wۆS9fw +}Lw8U.jIDr^Af?U\~jpp*gҬ.agaΖ3˩1x?ao?<" \ia/ |;U~jpp*gҬ.agaΖ3˩1uW9HWnZ7ȸoݑ#@ r*ͪVO:gA.֙_mo?<" \ia/ MW<#QGnNlTU%t2]N 30~yDr^AF<'~vG564KX>etk:HԘ:s% 2HWnZ733ĜyeTrp*gҬ .agѧٜn]ȩ1uiy;x]sÜ%v~?Tʩzf, fsuv" v9SK~S%S29YVg:HD&dRN햰N3dyVs:HD6u~S%S29Y@:iy;x;sw&_r=pY&'0>>~]2endstream endobj 146 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3859 >> stream xKcG C i2@U(_,S!??oN&B!gc:7B!l!BAϷ6B;!^ }B!B!6s)|6o>:-ozu?OO]8wʧb]zZmSue lO xZF~^sgv]g:Y|u$ߪxNgמVp7ol4dx:Wt)N&7[ӟ{lEn[B!Bx~wf٬?O@%ϲ ?aWWii NQTY=l;Py7ø3jzcݶ(K{ނrb>gyɳfֵQznnb42|n J&ʼg7|_}éޕ8_eʊs'JsOyxfŻ0uéi]Ws9J{(+MԬ^ Y3v4vzuO^UX1y9=B!7{Q}㸹+=yZ$x.&`vv3Cx>l;Py7ø3jzcݶ(K{ނrb>gyɳfֵQznnb42|n J&ʼg7|_}éޕ8_eʊs'JsOyxfŻ0uéi]Ws9J{(+MԬ^ Y3v4vzuO^UX1y9=B!Ov}t{6dWOO9NywR%w3>7E?IOSCoLN}lhUwv*-;k%+=5o37aݖo #sv<|.Mӻs JOٮouF;{zyppw6izWb'܉aw}1VlObX7TAө.r. cqSTNJ`ITrnfPΰ䮍Ӕ3u4=B!O4{QUܾݞ USNSޝԫlIp݌MbOPƛ!#ӳS>~]43< *gjle8{JO[MiX[Ȝ59u܂m9bQ8ΞvG3r4흍+nU >wwr]g_ <~.S st7˯F~oX.bӟf/خorRv:spԅ37k#4 g> g{!B~4n*i=ʖύP=ŹS=vBcկvu U'nٙ-n*i=ʖύP=ŹS=vBcկvu U'nٙ-7l(J*n;ʖN6;sPnN)OF`7@k˩T^J?~ꔽ_þ-0siJ*nw5q{{UnG-3D+o94J*N.9=B!gx{ɼOo:VJSC6NʖOM5baX3!S3۩F8Y7$U-;G=;=^24svzUP9>Xx+xNmd$2ؽc;{zk2g>(l7l>{zWTζ?MC{^S_WW`2 ݰwzF]W`eOO <57ӱM> !B endstream endobj 147 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4096 >> stream x[,GC1.ʎ>DUNH _|.!SqMNI- ysĥ9'陧z#,9#3IN<3]=@szTߩZgOΫ8GbϦÙ]g,n;l\St^֍%ʙ.X&~'^QS@%jl\r~s#O8Y\^ۻrn}ޘ3f;2E=G~5ΠN+Ndu4e/E6-Nvs"'U8$p"LzRӋL3τ$pz`{nɌ6?'U]=@sfv?{r^կU˓{>!9{jבOJV|y׿pA Ꝫ 8$p"]{&I 91ԻNwY7}˯s63ߑ%h׬yN 9.Y]ONYN]YJ 9O2c8'VÙs*OZ?s;I߼ߟwK2N3䐜mCӶy+S6\%3nw_Wy; nb$ܵ'cx Wswnt4%Դw{:gXǜZN?!U3a'?/dZwsy6>˖֣"-~.횉: 8g-M/g-W8]EuGo9U!a%AM;Fp;?gx)ʧZѽ.iSNӨ2y^գs,u_iX+"fV%dٍgrzYk%\Կ\UUUUUUUiJ6=jڻ=[׳YcN-'Ъw0Hݗs2H-G<eKQsduevDB3v&3lΫz͏7g*rk𰒠ex#A8՝ntV3 U^S^D '\TiT<9yS,\su{U2Y{pMWr=ROF?{,y__{t4%|I!&O?.nZ ⰝSkτToF.s@j?oUlSK9STǽ5uY9̘:! >gSt^E0))run+~$w5g&'UgӍ zWJp|5ݫ6ᄫ=*3UX=rovۋ3obwйU*vv㬽{8WS{gq/sfy98TQPF窪JS—x.nlxha;zמ sޞ̷]8Rhx(6ZsOjթn{k<'8sn1uB<9 >|ni]Ϧ輊a*WSSVTIfjZLNl<L2EWTk|ni]Ϧ 3-c+hqrun+~$w5usLg.ƽ{fWJp|5ݫ6᩺i 9TihuW'9▙5C֮=9J8k89oy]si˗gb|sUTLz*Mo7*GE-'ఝSkτT'ٹMVn^<q6괴x>]s|<;ݥ]]@Lt '?Lu=*,δ毠y?7մ=N3$ ^e*xtfKT1P%g{]'V[f Yl *vv㬽껾QwͥuN/_%'VQ%3yntL~h_+Hn,5-wnoU8lTڙ7LyxZ6Z9{lĹ7ǟs·o'v9nkK_s˧U|&ҺMy.g}羅붮sj&$i39q=No3$ ^e*\ƣ{5]Ҧ2p; Tiu=3޲gJpÚ!kמM\%nw\w Nn3+T= WW?RCT\UUUUUUUa翋"QrVevN'unUF{ @xi9'|vjotK)8go|Z5g-Wr&L^m:[n:9frKٻ;7?әKqUu[kgSt^E9پtܷt:93y#]MtaqљK2 ̞U*jGj&Me8jzϤJK&h<.p|七J'WɴgĻȿ*jgus!<"ޛsUUUUUUN. @Wendstream endobj 148 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4133 >> stream xIV C ieP;(oC5׏??ֿ|?]'u<\ZN|=9ճtJ7~ qN4Z;Zt*z_ĝ',fLqNtN})Iũ9.VM=wUt֛K󩮓ߓ;jZϥ#?z$]?JU^VDi];p5]36gcw]<.七J'WɴgS]{Uz]H-s^ޝjZVjw֛[K5ɣsgN*,Ygr3N)'7~ 3ITO+dpޑߥoRCOYit7x2U!BH2i7깇ڵsLg. RswS=IGՇg M/'ѝ9qS{6k^i=*,iEogOquZZJx ΫjZVUYoΞo._pܯE.GWÉ'8LTa*tUXY*iuf塝ғSNn.gVd'9#K.60SR!rodCȭdfWӪosgk\?OE<xZ{ ?RC_N;sℙρwq\&m6ּzXU!UYpӊx6>u!!s9]ߟS/É3ٜfjV}zxrodL.'s0<ʿ XT xZ{ wf{'T&lK{ϟ}9YW;|)靳qUo܋K^Z]+a*SLyW|Bsv?w_g9/'ԬRpWə]mKA*zhy'L'99Ȫ3NY3 8k8SE|Q%zpמJWyk9':VjZVɪ+ޙ羇'|-yZ,× ,H:YW/!ׁEtfĕ? NyW|8x2N Sp&\ϽfjV} Rr/wi O'NzRf*t.o4 vZ-U0 Tl zD~K;g跒/w⬹OqSSG|Mj]{z+]筩wZVjZ>xg| Y(9OfV$=U_zJʪ2\ILzsٜUJH3$ LR'qډΫjZVU*ÊwfR+[4,× i$wT[C霈CȪRhW|8]]NTw+xl܋HfTQs&TL QO*̿+FNk=UfeOLv5BXT *.쳚sJVq'y3+Uٞ{=Dru%eRNwP\ ʤrr&w@9l*N%$z&s~8DjZV*_7y;sSB<ţMvRR5K9ObU*,շ(g[h:USgC4#O' ''ۇ;)3U BR׫$syUNtV8ْg8It9^+*IȞI5傒ٖːpyIWc^Sf*lVg{$ wpjNNz:gjZVj 9{V!EQW;|)O%a'Pk|* IqBg[J-Z j* ]詳Nrywgc?P˓]ÝCtl[Ǫ^N U9s<*':+xGl3}$:M~IV$dϤrAlKKeHr8ʤLұq)3j6?s3Ž^NOR5g'=T3yZVjW%틉UE_5ÃOXqc|#)©G$]Ln櫧̂{"ufVj&#?EeXn9*aζӱt4%N/36YG圾 )tVQ; }PH9*a3+Uz 2NȥJؖzμtt꽠L=?Pܽ4ds׺r=9Yn:LjZV*_/#Hl B7>aōqtu2^:Mo W3 ֙Yl,S6{{vwc=9OOfӑswCOӔ :ỿz,Lgs~Nf*ĢR;xExZE'A!u;ͬT%Dw8!*a[U;ѩ2˟CsrҔ~]ʽ+Ldh3WjZV):a-jyȺ>\*VSB,n\IZ?%Azn+8g* WkPÙ|};}\*VSB,n\IZ?%Azn+8g* WkPÙ|};}ME5k3Y][?ޥMDMũ{~'N5jgtWApGlΠ2FtF9yuuD3WjZV/+%endstream endobj 149 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2881 >> stream xKn%[эN_<1`z{Ե_&u͞W>熮]{%}ddWNbRyc O\b¼rf&zs:ak mϛONe3?LWw#O;]| \Mz.dk Sk4SWi{߾wI:/j*oVOw$0tMdsר8([%<743.\OOw9=-)p'7Nt\SzzSd+mҧiOIk^vw3| a' 9^v=:S?={txz743Ez͗d:BV=9VO3>k{nk|׼f{yktNr CDN&/0w^|#O;"\s뉺64ݤ+:]͘(\3̭$H?>QD> g|fnxfG'z6une;Ig ͳ_ѹw-vDr^f>뙻էLN]i)oBۅn^φ6zآswo0?in#9Oϵ'(nqavJ~y+݌~u yDҞY}dy9w)OmlCcϻt&uMW(OL3{O>%ǖBjHo__oE[3uZ%I;={2ѿiUr 3Vok}k[svo#5o &鼄NO#3|rwZt |μ3.m=FϿ wcN!@[44kwG:p |:| }' -mM#;OA[<F/xՃ/xw y7|2r⨞endstream endobj 150 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 391 >> stream xرmCAC"dNҍ쀀3.=0}u2;-< 4\#Ah9r@ 5)evZy@Ni\G,BrJ#:`jS. PpXfFu2;-< 4\#Ah9r@ 5)evZy@Ni\G,B~Vendstream endobj 151 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 152 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 414 >> stream xQ Ci+5t80^@8}?k;ؓ;836Т/7[7lr%IT֙.{836"Ɲ35^c=P# :S3sO'P2JoI6OU}\/%Fx'%$:S0 endstream endobj 153 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1218 >> stream xKHC7B6]Bk ,}vSOYtL6_NgL[aGF|'%O&ጮy@e$OYt~L6NgO[:aU'3NK3Sٓ"?ygѕ1";=ynUqޒ/4";A/1FfNTfOҕ<1!JoRr~O |zFq󝠗gLUd׼2{T IWzė&@\d;}d72͈=`$ٓt"OLH@'4""[}n|F&q9ʜ\0 Wz]IR'&$]m_-ʾ `oNT>N~#weN.Et=ɮy@e$]6Љ/M?ORHM}>N}~#U#n[c IJדTfOҕ<1!Jod.%tK7R5E1Ft=ɮy@e$]?Љ/M'ɾ-ʩR{o^d2%gLBj$5?Љ/M'ɾ-ʩR{o^d2%gLBj$5?Љ/M'I8=7R/23&!@5[{Tė&dB L -=IM*otK$gsR':FE&S1z$f~aORx)3ٜԉ|喝zɔ`0 UwE|/oc[E{b[|NƎǮ0שZv6[h_cs>;sj2V'NړX], ǪvK5oɥflpwF +Ll{&$ss=Sݝ?ygSf_~QwU^aV~Wfתּy>^9+Za:'vwq> stream xKdGCS E#*VR"ϳw+]YԄ4ڮ,f̷ՆɈOڵZ\<ഺ6\o-' BյZmRyvIûM,liwNsup3P}3&OavkdK7Mu IyYn=3Ω{ٓ$9/u՜ jӹ[WY)"O\7-Uo/mPq\T ZlfMJ8߅Xݲxo4%{&a/UB:?BXLk gҲ5K 5M3<Եג ypr5+u&aUB,]{ϛIxYIk%Fٗ'Qr^dz¥8W~HN6us%ER{Ssv5t5κ Yw!W@ֻSS머9MmϬK\jXi[P&L@gv҄#>) OERBolsxL*uy8ulE&Gaçxw')\JI@| :םiF<n:5Ͼmsݜzz/+fsz!T_ÜƜO$DӨvw7vԙkZVJƢyꢝ8d6g'LI޵NܽxPs&o7uB8bnisK=S&ӤiT%NfBXTC# LThJL4*w/]Z{wM*4+rf^W3zrTcVMtjl]iM^{wٞB,MkQ~.SL!u33:jZ&oWE#<]uNQ2BJՓz$Z'j^< 9֛:!{\{僴乥ԩwsiL4*nwSpS'M!s*ܑgp*4%{&[ֻ~&}93׫=pM]opsӱR{Ss:`56&z/;lO!UuqzG5ʎ(?u)m&[™QkZV_H)a}tiRSgn{)>u 29otܸM*+{*6Sv4%Y<9WHsxI2w;iC+U׎N*.n:Nt\g'RUpBnR.N>TwuVlVKW׳Tԫ<.WC`yxN8wWz7壻UāOMOq{bv!:X/˓"rHʮ 8}tR(ɹoNZV/HW;ߵS۫8.S}<%K_eVs&N;߹qTdW4TlDaisKxXsAEZ眹4*9*vѵevn/0!;WU\Bt\aN0ܤ]2;}*جzZ#gMHWyr]deg%eMaq*%.2{n Gw[+BtΙ-^'E休ѕ]AXqQZsHjZV_#{|+l;HP1%u=pιq==^G/\WT9;.wUokdIM8ϥ:9r>{QSy˹k %ަw'{%S.۩)s3m/vpg?yj<=Sd9Av~r=InwSX\fB`wW\Ξq]\*}w=%3߂uYgrwMY$:jZ_ma]9o`D*FX)wӔWsy:z9 ʿyN9קt&#z;^'Kj y.)uF?؋C]]])"ν%7ƔkǕ^pL*VW4 At>wwgry˹sƕ]M%L7s)SrZ҄-8Y ʔNORt\SYęK|ֳcz{:6Y3e#KNNI+a️tZV%OLp 4Vj|37n%NC!ΩdqdJ>ZS'tWtW&qoRUұu8s3ޝZw휢U?œ=J3*LqV ⦾֔w+sNeVgfpNB4N^~_SOx/܉C WrW8dRqw>,s%㗃siq-"e}/dZfendstream endobj 155 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4273 >> stream xQmI 1N{~[jkN +[Zן 0IP:]S||Mr BӷNS9s#J>[[֙_2Eȹo* ;"8Wz7~'Uoʾ:[UDt7uwnexwΪ–ÙR&U實|uTvgFLWT|N"]s.N*@Zڤ8>ݴ/=-W_gק 9{TEjY&Uoz:]癓d=9:gVEȽ}:<====q/(]]&Q]:[.Η(eL-;RHve@sV9*WOQuup23dӻ wqfo=[v$^v[_}jBmhw?'iK栢?ʕ r:=maWY1Cז%ye>uMAؚ6'%i;\%g뎜0L[f_Y[xw%;3z.ZEnW N_Y5yoM|R&tْm}:aco/dW:g!:rUW '3I6 po lJ߳-nJ}nyeЧ&d{j;׆v. S|B6$*l*C\p@L/C3VzMvU:tmy[WSoc~RoNvsNU2Qy ϴeFu՜wWr3?[PzmUv$<====E/(U:괳ݿOU?S'#3_"dp}9$,]2_wtgiS$l TvջlMQ!dA{u/3G]yfzȤJ}ny%JQl3NŽg|$JQt[Ϟ̍[,[=Wӡ yIr7g_3^%?WDm_uGN):y.[Eg9TzTpV__ yzzzz?wig~N~G gE6f;rH|Yrջe*3*Ӯ㧎I|fw離Bȼ8ص^fId8LK f9./Ɵ%*&U]!:wI2.1=ۙ^YRzȿ$C^7n޽g'J~ȉ뎜0St&,]6{ 3r1ɩ905kUaܖWulA[wD+Ctuo)df=Y夷JGao/&ٕ-)*>v=TI6;ϽS~B<];re yM4%ggƤʰu8_w)2nlt{#ՎDesnp?s_&ss=YUsEN^9ngVSIۙݽ;.1åǭ;'܄:g~uS/ֿ7yUQWLvuH2JY7ƙ^Nf|]SUNztbR)ܜ]鞢YmQonoId8{A>g!d{ ޅ#w}_DSrvoL [W}y둟"Fg8RHT&?wV-L3or:7g_3%_%?WDm_Ivf5Et[ݻ"3:\JqܺޞM{s^?!OOOOO%_{9wwɫgp^MHU/-+7:]$t1+}S$guG[83STh~4wSÍTI6{vMuM''d.*N-J} Iaʳ}q75i93{[&YdNDesnp2~IK{FrUsEN^|u\SR>N{ס̨k]f7V2'I[wO3 u8g(:_vw~g;^Zx2BqCEOB׎?Mr=Q)ܜ]w33EH+{7t흐"O眐+rD!ݗO]TnN6_nH:hܺޞM{͆o[j|~︻M^UU?S)~YIu܄4|NN7]uMrNy¡Rz9˙Bgꖽ0 [^GvQy2 :{.T.[8[nJAyvoL [I+0dw듩κ&N"{~}E;!ENzgQ9!WDm_ωB/(L3lt;tLѸu$=P9 \OOOOO*8ƹb;~Wulgv.,'n?w^`wNNQNۛ:\]:r{{1T_ﲅsvJ_[^7~7>TI6@fLBv8]p*)݇3gUM87gaUzѝLd.8-"{my[KLPE;!ENzW9Q[{s5^u֧[x#]Ó~Ny{&7aNkxW_]m {UQWLvf':R{&s6x%9봽|/#yA.[8gt9up'#OIddd/}/lne R+}8MQessvɿN\Oݙ$\O:O>" ۖɹd^R\?']]~]l]S|]ljk}w>r8<男grf8봿-!OOOOOq]5%~WzuL]qMoEvMMNQSqnf_)IlT_ﲅsv ;tmϜɏeIdLz)]2fT td}Sӟ+3uo}bReغr%MUu3^N2Tt*I&tU_U3@"\%?WDm_ω;-u<-Pn!ɟTzmny+n}m yzzzZߦWendstream endobj 156 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4348 >> stream x[[I CAo CԽ"SG"3ӬOu Ev+|\|UMz,'}Wp5k99-oYͬbMtrv;*USpnL|G&n놙TN6_G@WuC< %qHMn/֕YIacDǩkl=Pcr*Eh g2/TwdYio=r*{ܨ)gD==ֱvq@ނ3rr"i|W<&!jQY;V44ɩvPsn"'oPEŚL붓*gqnI di^Y8ۢfް>%ɆH{[NLeNz[SԯÉsyrvwLOqyW|gsX&p*Bd<+m;{lws)o9-mGO yB:5(TٺP:|'sy_Dr}֔{T>KmZVU m§eUewNNs{8e99OT|Ԅ:.*D'gZT/E8w .O!KJ7)TN6_G@ڋrBg*Sp*w휢~MNܟ˓קdR.O}SN[⻶87S!2%n?_icS[Ԝ%[Lyio=zR^xzl)gD]=u˓"rx<$ߕﳦi|W]mjZk;MW[ >ΌBx*:S̙C,$ VhulNNݎ퐗fwQ&z8HcçO@۩ޛŔKfrfRyX r][i2rK9FΛbMa$ʧ\:E ][zEF&۳8=]Uγ#dw3k,ڴRi=OU=ܿ2S}IEUr)ɜT6,N ʹYLd&g&O ׵n&#KZSk)OB:Nʬ|OqQPݵ]kdR)=C%\<;H|9ɢM=!Nf]@^%s+z9՗DX\%ɚ̙IUqH`s7%0DO9ojZr-J= |Ie"۩2%<9}u;ԻZKZS.O8S?Krn~Yjc^*] \IUCOI)5rZjBsI2ZV)Z/!kV¦N擐NB.N}Ԅ)96əQǦ]׺\՚r|Y )]Js;bV3R2M 'LZ|JUvNARWҟMIacr^mr&-LLJhQoXޔŠނ~Nϸ ͺ@N{ YW=ǩ* )$&t5ţ,0uȔL*,BܟEj5g'LhxK&EjZM z s8*zߧyq$Ss&d͚IXStl3[ǝ{Ctl!˹yGxJsyk¥~)YjcBK}}iwcwQݱ%PgSrXTSkU5ڥrfzGXgRuu;%OBT|KzsBIpStXiRTq^B?GYtVf/)oٓ\l) O'= m}vZVo{~=ágp}*niJr.^8թ>gB֬)T9ߎ5EǦ=u)7dAdž{ Yw:'&\ȝŬ6&$Tחv7[U}V->%N?FNK]U8]*gwuN&UWShqd*dJ%O'ĉgؚ;wJ+t7MߍI\*՜N?N͑q%sytNge&"<]=ʥVП~ҳ/gWj6~Mu~g T2eS;ysP)編ߑ]:oK<%Dum'dIr飐ẅR^))Btm9ݺ2KM뜢:eS=Ƭ7ŕUYݟgP3*ιVԴ)2]#\紗aSƹN'noOţQv~Մ"8"M.!~%M;鷚=gMq6uwΈz{Rq} i=-5a%ڢkZV9//3i>zw=i-xwd9z~D)8O .g] Yҥ\w(fg3TqvʩG6][xNR:(NٸTy~t<7T9mw^kuLkS!"mo:ߝzRNjo,:Bf.r3r=+͊¬N Oϩ3z]Stln[ro./WsvbfQq˔Պ;f?vJx(W缛'SSOU|:zY[+.p穸.;X>ݾ/ȷӥYz{de^,SVܐ%ϭX<7?'K';YW<-emzJgP'kZVo_ 7^]nMa|4xn.aWs3S^=֦:B<#D t;[Ynu6T]\=Tgt{6UWY珳" SgN9ظ=n JI'z|+!z{K2l\!<9--zTjM:9Sqf$3t$jh \6{nOOΨ0S8O)rsI3B4k.:3w袪fW Y[qْTi.ΟEL-\jStl]T=wPW+_Ti< vsȡU'['Sq4g 9嗢L2/F[ӓ*p*!wj܌l2g[7|'ϬSh־͙rϮXjCW[:ZVSPendstream endobj 157 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2204 >> stream xK#7Coj/UL>J^~TU H#nI[UjMoQ ֵSo9璐sF;T̓SRg{:z=JX۫l)U4:NN\e;53}>jWsVxj*-OG?9I=ٕ쟟*9sW™=0Ͼ$'ttT3s0\;l3'tllz^;5u͹fWtpj[v[d>2w>{zϮ9l 7g%C~Yɯ=yNiߑvr.gsfJR'rrwni=V՟Uo|R%OU_srgfdUvLg?LϯF:Y3=թg{w;6R9ݓOg&UU|>gGtϽ'g0S~-3z7\;Uwo^mݮy^~UTu;gvtrG~ϯ}~бɝy<7;CUU9Ӷ%aSlM`>Rثtd~vgL89+sκO~[TUuNs96Tڗj?䔓ЗpgvKaU%\b~K;*y_ڜ;3d'sd'ҝc:f:}~U7rljNt?ۻ[u9oߖ~>3:9;TUݧ{=?ӇJkɜѻ9g2Ow{jvm3To3ݙWN>;{~~m3=սw-N̳*ʙ- ;-VgyvO?ԫ%߹JtSfJ~لg> \uGٽvosɹrN_:QcGoi_UIn9=Vun|R&WuwWkOړ$]Uh꙾ݵɟnޗyGN$jUәNݵ\eTU,OgPpMjcU19y*3گzow@g۽eޑ#~澪Z{rt&d'w+W??9-{7j1>&ܯe'}گe&X}ULN*{Ց|F5}{՝KU'WWՁTvOY<}}XUߺUuT%dSu~ڜ{ӫ>5:vz2Վ%OgͶ/aȖKu3Sʿ|'|Wsͽn݇s:j&NœL*' ?L&3ʗtoՙR$᧜;OB>-ەF9wgsk^?ݛyTw}*o3ˬ.3ճ iO?9sL3]|-Iwm˻O'':ݱ>3SEf~Z2pO%$|w](. 'gGu!ί yx%Cowendstream endobj 158 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 389 >> stream xA @G$?5BTY{h~\ο%ƙy' 0i 1H&i7V=@:@cLB1=h$3M;&$+d(6MI(]LPl$PN 7H&؝v!@@oLBЃF!@S@{LBЃv!Qh?Wqendstream endobj 159 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 160 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 820 >> stream x;0 C$o)fe\HѲϯ75gɴJ?Ί& @fN}y |9zNI=dsfL[s;ନ9`d6ԗ'> stream xA8 DC`ӞEn(t6%2jYB$-6?S_ȫ:%M59D:;]Y=O1.uƛ|;kG-&W*_pNl`wwv:Imꖞvγ"?~_oBLf=w P6<EzS\ggӾVybr*|wy~gv{=]_oBL^kȫ:%\&硏H/:Nzp:M>ʣTg/ '60;;;k|}LSz6'|_`_{f@^)59DH*<Ի;oo Vybr*|wy~gv{=]_oBL^kȫ:%\&硃HYzp:M>cmVW*ZLPU<.z(NNy{YY {sF V][8WQ1y{g5D _ǼyBLw@i 6OO#+2Kq;|ΈkK**p;obt97O}OI^8m89Mf x3HzjK**p;obt97O}OI^8m89Mf x3HzjK**p;obt97O}Og/^StU "ͽ'؍{ }鮚gWwz8W'SOgTءw͏.]ups/}pqϳ㖊Eq&8T睝:{m^7b yj>+Fse7fs;O|j=OUλpζ5:\g~q^StU "ͽ'؍{ }鮚gWwz8W'SOgTءw͏.]ups/}pqϳ㖊Eq&8T睝:{m^7b yj>+Fse7fs;O|j=OUλpζ5:\="߹wrwf UP+t}Qw݌dsιz|k^2s.QwpnSO3UmB]ک>[S TW3T]ͬNg8L{<;ͬI9{:Or4fwѓPW Yn!v$r&NeSTc=UUTwzr4߅S0=u_߹TRSE}ԙ=-ə] XԎjtso~>kܳ|rRy7y?̯}EZ)닺f'sի]Zyw럝5&wgU3jeN JX52쭸*jfuw:+aIomf]M2ӑ|{10JvV'jmu_̵{$鯕s7Iu*:B詪:"սד. LY[}*ԮovOW]mźvTW~Y[|U_[nJnֿ#*=GPzVXLf>.omڽ 7:[*=k39M>Qdd&yrKU"90?3ws+ꦶ˺$LU]*Y]]ݑ;-nN!S$u3"b~rjjB+įv$왽|2sjtygVCN*]mMvk jo|ν:5ٗbBz˩֮p gv?~-sendstream endobj 162 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4204 >> stream xAnK1Mi),ҦBӨ?}M=Yէ䩒61sY$lѿZ;5@_Պ[kIC0'!Wힰ+TN[_dvH&93*6m\黫't^t:}tg[8MɇkŧvTaI菊sJH.{nwC^ ߙjZnMNI]hM]cx%)}N.jiz9{ Qݔ2vb_f [Vj}/uﱩO:w/⹵S 3VBzk}sn^COk8/2b̴2wlZ9o=91m)OLV}SiuY$ݝPK8erI'Jڽ}dR 9dNMZ x9U$螇ӽ~r~S%-[rno09ϩ$rH$$v7I>PckV8_/-C-8;jZV r~տ/O:w/⹵S 3VBzk}sn^COk8/2b̴2wlZ9o=91m)OLV}SiuY$ݝPK8erI'Jڽ}dR 9dNMZ x9U$螇ӽ~r~S%-[rno09ϩ$rH$$v7I>PckV8_/-C-8;jZVr~ם~GifsfuaW+yW.ܟ;ړv/<}̮wI|+|Za*L*?V}ߺN3+mBnwI&iBߴnNmi/ҹH>,m[BzOٶL]*!dw^)=Ҝ}/uCypjzzwM&MQ?-ʹJnwSti'x:Eřj}n:jZVլ_M/(7vtnڬ2̼~%Es@[{rEU?U.ɜoOK;LIg#ʿ[שpzfm@4d7M©9E:'M`K4TI5ۖK%$L.+7唼'Cy2/BtN^O/ɄIv6琰S9#x^n?P]rO83{B\/C-^\VjkR}2#8&!}e?Yպ;gզOgOT>wLQοFĭnww'Nst8STi/3KO36Ӝ}qͩ;ؾGzk)9Tڗp#awyx<3sS^y-rC=Ij~{&7P~nNhN:YB-F WNa} )r!mc;Sf u?9EF l}iM\+wܭ>?M䤻tL;i;9>v Ga{*禄h*hn3%{ /{uN9sZu$U$ /ԭOjmd¯LQqvht}%w-NjZV<_w ߇MڗZ68N--֓9~B:>TW>jMO驖*- =/̢i=IQ<6ٗq sR^%l夽ӻ͜adRfv$g߈Vѽ+"Dkgmg+yV֓-g%0#9}7}3^F9 LևSzsZVjV|/%87%oӾ=ײwqjiMg_7TYC9 ^ Uh|BMOTi OygMN߷wξ܎,_M=R*aS,'ml'7?G5%v8F_!]{8sh;S^ɳl+jZVSz{vPmz'-<Ӝ/:<9::SR[k==Y}-w)=U',VYmLy݋TY}xfOT_@![ɧ ;Rqɿw93tfߺ?ӫ'ܽwTmOҜ:{Z΄-$_NZzkjߓ*+mѹN{ KZNœ,'jZV#7hHdendstream endobj 163 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4319 >> stream xKn CѢi;$CR]#i#pߏəv`mj΍ NM)X>-̪-望7˟2+ɷҾ8ϻHw7˟>EC!G/gn{J> B,"ܴk|W9O;LNKwϤ(mS'>Cwqr&l+PmoJZOtrV_J/ nܶ|!|'G'0?rNM |q7EL~eyKWsntUI$2Ld]GqesS]N&﹝ή:;#$JؓqCGׇ|*53Ϟ$Y7T_vX> |)65P|R[tJ,"rPއ.=DS?nc_u^&'[fb=*c,OzjNƾ3e 'ߛiiBc*FHNYS Q$ɥNa#/yOK+ֽT\\-FR7ӓOIt:NiJ_M,aa]\BϾs3J'Gd":+s=uz7y휝wv'1Vž<l{*>>Sy$ lRQKi^zߊ,Tb ܴ>u!q*5.82QyfySsH6uǜ)[8OKP7BtҾΚj"I.-w y{ZZy%&o7!|'G']gNt:NSrjg!Sz՜Ydx^9wD&.½sPѱӫX{O誳=fuJl=y*8tHROw&ٓ?+uX iT_vX> |)65P|[tJ,"rPǟEumΫԄN릈$,OzjN.շ˙jt!s2;K{鯟쨾.Թ![on'ImǙt:NӔYú}q5Fg*4WNp/"Tt*V枫)l{Y7[O 6=u7]+ӝI$J+CZ3՗b-_M{ T$t3gK禽ԯ'nDq*5asrhS)"' >˓˳urlD/Z+F\'<{ťN^uG<;o˧.ŭq7un_Gﯸ{'qr}tuqz:N4%&|0..g__͹YJνOtR^׫.NUΎx]fu]uvGKF'OTSr3wi?+F8x G3q(;"&γToAq4 ?Iu^'ƏW #MoR{s|N5pD+St>=8#NYx=~Z5yſAvk)ŕq7un֙N+^xzI\tz9Nt:M 8L>KWsntVs0Doꩾ{#gY]WQS濸ǡF&nT̝~ <^‘L> |6}ȫI,[{)?߬ORݢ׉:6_UjdHT^\'SM~#\}Fr8]OOk)Nua;EM^}]o:-JqeMu滨!|'G']gNt:NSrjg!Sz՜~wxԄ|ٳXλ'_?+OWMiiE IJ'>kB%M7b ]TӲ_Ir㙈OaqV|t~Y.i/uz\mDî)9[H\OfҨ> <'|j:)Թ![;_uS{)'qr}tBoOEMWzKk)H+BNG!iVZj*緄;%!ߥ|fm w8>:!Ά't:NEÑnendstream endobj 164 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4176 >> stream xK\ C i2$Ꭺn6u(ҿg!{ eq5,yyJCYX\ONzܩ-cV7tف~B\͛!zNiz})~9YP{FVv%;gRkw{hS:!ΆOؿjZVKڜ˦Nrv:sIRPf5'"/qk{ /!c{I"l866\Oڐ*'V2h"­_Τݽ=tR6pWy, ;>S ۜ_Oe*,>E=g*sJO\ZaC~lQm7pbކ}b[z.dONg¹ZVjU×+9)Mt撤Zbjx/NNE^'^TCƞ"DpBO um l8!+TN6dʋaѾE [I'5{{霥Jm"ͯ=Y6yw|R9ҟTY,*|z{T:Mj'†٢6~'oż {,Vq+7\e\zsZV*xBOeki?g3?PMf5'"/qkj'KUOc8'NOi|H;N*'.8܇ӓp3~woO;T5\$KM)Yw6^8tJEg_;8SSzx7Ҫ۶ʞM6,KqpY {,}qVEoBs弛ImE$jZV՟j+4t2p~Ng.N顚jx/NNE^'=?+Vc O|qNp]wlTN6,]d qι'{?!G/gyޞw:gRkH^w?!ySf9ims4p.ԋξwp9doʥUo?6m;=lx5Y\7$5eᲧYnV߄\y7۞ IsjZV?a{Iuz<$Vg/{:KC?'J=ĿA꦳R]U_߹~;6W6$եC;ʋh| n{sJNI6e5v:g8٤Mo|G&=9ՄK5gRfusr2z{xznbVL?焸Cշ'tr"Y\Ϟwa!锆M쳟2EpruO?78VjZjb{Iuz)IsOpN5RYԄYg449!гC- |g]XjHz:ao99LQE<\g&S>:_ Χ jZVOl72{SisVSlΤ'=uFfR89IqΩS쓛I5w#9:-:M< gu]S)Jͻ:ixY\Sιs*p}J8{^G& g!WjNg]j{rB6j5"..ߍ3ϨvFj,r)(E=[wpozKG+gs<,N]g>{z})8wSX>,ZDQ ljZVDow|*/:+x;g+;u6\L:y"n SgHa,yJ=%I>XΝTs;B3޲ګs;d3KpVw%?Mۼsť=w:gRkۧjωuaJpVr&t֥澗,+Tm#άV#RݸYt$zr6sug[WޗKx7âEz †[VjZMt;Wr]s?tVѵQ'T'xzv5?+Geu (>WVsd7'IuLԩ=37gPM۬l'Y.j⥼y=8ekk&8?̽ʝnSqyNui=SsN[6uӆ)=]\++i˦Ul G{\\B '\VjjPi妻s9%7ˣkNNJkVFYP}d%UOnҳO.˭͙T'n;S[}%;k{9goMY7NO;T5\pKy:{pnLn+pBʙ{ ݕ;^zRjvm SzW,VTOuMr79ϫ.G!.)x.fXg\Mr79{7N|OZVj#;u&US5dKީl.ِT7E r3z$w'ʹl{e."nJRT)SBRyRٹ;m栗)eShx9KXE:H{8j)wRt:sԟ:j+p 7mo#{lWY<'rRs EwJeDnOpO^[O:sEȺi޻),u LpZVժA'NՐ.5w{:* H3gCRI;/Qjܝ4v핹)W;tJQN JK fn\jPM^UwE,Ujc |#=[44g wG8OIMjnS/ܴa 쥲]eo0KeK݃) =uy8!-j?'BZVj ;J%֐œxZqӹ3:ydzN)>PSm|Nr.Z1jT[:"dəS79\?M6no UwE,Ujc i{m,*x^gܤY;Ml@MbwRkfsN> stream xA7 C$o,id`C]{֪Oӿ~]䟿Z'gI*yV8J:,S];IrY ;j;Y]sln@_YsrsM?^=J3:3Y k:9gsjOgǚ~=ƹ6U2wƉ+Mc ;tOHZ]oGGsPizn=U +wOgNxZO߾dȚT{k̜O7鮧̚5Ә6}Isn{>Kɜt'ۗ>]]ŽtnEz]ݝLʐSWrYw)sW뫢o|bB4Q6>s'{yysyT'YSE2ƎySY?۬~znZs|ܜksS#gwo}9Y!^_Yœ$oӮ[:s彩vu,aGW,ܜ5Hz [?giIK1]im]}ݣzJ{tS:fo&9ad|] U$tJe=WܞygXS㚧tdȬ묄r&LZǚUSyJB7$ߔ7=wV]<_89q |S 3n;Dx:{99q | 3ó]͜8w}./Ƹendstream endobj 166 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 340 >> stream x1 @CC([d65(t/.` rMX0` rM\X0` r}\ˬ9> e Xff@7,@N3zB`e@ ={ 'eendstream endobj 167 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 168 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1004 >> stream xK0C$o: pDW ( kuz]@gSnS]r]vKx+3K֑j2$vS75.H{)_!%eevM#W' 1WГ=W{Bܥ>+3K֑j2$vS75.H=[uY^#@ۯNNb#'33zXW{/BܥW>+3KV:;foj\3f{)_!2MNG<<_*'GN_AOfg "yH^K}Vg뇗ɭ Wut#SuwLԸg {Gr9|&S9NG7o:9UN `E^ KIg뇗}IwLԸg {Gr9|&S9NG7o:9UN `E^ KIg뇗}IwLԸg`[ree>sĭ䶿T9!>r z2> stream xAre91sv/j㈉P"ABQۢ3.m*W{ܝdt!Uٳ }+Op{~V 8Cm{INdlyJm= _M﫾@6;bW>W{ܝ|S6dTogϖ7xaO<t"Y{.%;ݓ8!+@3|5t(>+)^_N6%rw9OِR'=[ч=;wg黰;xo:/ڶ4tOV̶tF= toge}d^"? Wv ~  ·- Nd%:#zge}d^K?l ;x*|ۢ tOV_c;;|V7Oveg߆Źiw ge&8xW"^r>w|]8kR(]|99ENN]ԖIw:J~_JZg܌0{7 ;OWۙwy4VO٣ݘ"1ýO|u4dUOu9ɶ6S?uޫ|EN=KTM~Wn6<οSwzg+Ng)]FmOn"uN(~)ΝzCk͟8o-wYwo6Q;WwOC+.ԧ87Nq\dKU=sO gmU ŹO/S#i)޺kڲ:=?NBT3W̜qfBaj;sp"2&?){tСS=fqw y.J r;G>&|zJu{gUߚMfw.^;y6Ž˨uWZ;x߯ =9ߝ;(2mi mQƬ;&;J[]݋c|;{v^9S;ՓWۙi?E—Zi wsgn-ԝTӹ gәd-TA)S{Q:xϰE9iB\O~ΗtN݋ٞPx̤ѓw:ԽY>F&+NU:_9a%jUIz͗BBIՉ=z|zJ^gl{+N}E氣;:u- Oϛt/f:ouC6丣(uc֝Cv]꭮EVU^y>E=MSV?MÁ֝ɫ4ΟGY[4;tsڳ}|pv_Nrg[LdsȠyzVFnU=(LjgТl!'?K:lOt(=%3Og=>"jsOsѝNUߧM̿Y:^m [Po3rJ kO_s;9tjNU2tN3T5qvkTU3s[zOg~aS> stream x[- CW==Qi`v{DsWωwCdHHӻ*,p:XaܧӍxf՝'|/-K:r搙oE1$23ksy>9G ɖ0әL3g{N-s lwr괋>wlW#]W&:\KL$l;['6J+l39ev U멮8xWN lN5#?sݬVj5y>75Gi]g$[Kg&-w_S}]`ʿ. :5SNTOCfrrv.ήL3=yOU%y:5=rt&"`z)]ftOkSli/ T; N8zzR;͞?IvΝm} S !6{u9rRݗJ~V=է.yxfέNz OZV/ ¿\]/n/͟ǻ*,ήI7zLZgᆭtωp9v]luu4k w6'n ]]ҵgz,󼝟J$uRokzta˙LXSE&೽Srh:gצzNӥ^`9évP?Bpf<3w=";[.^%yBl~ꚛsz夂/EzOI]<ս%[ENiZV?"N{;7gL߹TĦg,RΓLfc9I6Wi]+;λisHKNfݺ#C 6[Wf#C 6[Wfq%OϙS)s&Ъ2|tU8XJNb \BiҨ!B{u|NO+>]:;s3z^3I5'&O%'V7Is斿0);RΩ8%+[PܝP|B.)ajZV,,G ?9':{M9sқgVu\E00?aG~ՙtaP8g&mskJI'w%zve攰3=OYt꩒;g\spJf jrE,]bu7ӮPyî4vr~/Em~^G'ӓOꎭ\L7E3WaLRɥ0>SɉM뜹/L/3:6D$κrsh=*fIJ`w (yJXwZVK{?վ*,N묞շz<̽ ]IN@/'w;4_޾s!_[NQ%g-߱TUП:[BNOO3O3=.gxB}V:39 \3*JViiLABX,4!]+湎:O>.T!5:vcf*l\YyvxfUOIi殿0<\u]zJ;x4!ɬ<#9Sv乸)\Vժ.?.*&}9+UX-Y=)ox{^Nve꽳8O!?sy9ܔA]E7Ü+'Su3q8B7EjZ!R|pJ}3?*> B48uƕ]' 3vF YU韖XlU/uB<9yU<,g׽i􊕥gVKI)l]{ziyeͳBzOsUv[fe>ͧ.6ƿUYq8_U!U~+vZXW|fgrnYSz~p?bBvOq?m]o8е^ M45A]ل\Օ٣zt΄gxg]eIG5O/2s'^N+ҽtҪ7|X3+ˬ9}rK3Ϟ}˙.~e]<w$n9z 6s8ufN-:Nsu*CET{w>mul<+36{{{M9*S:MZ IjZ?endstream endobj 171 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4418 >> stream xKF CѢi@W3rDxQkןí驀KS|ɛ8uVg/ I^IϬX)ROC)RdI1-wN%좪?i<:_=eNvTUofRWYssI.u<{v ]yRWţv47-xeOw,]ϭ6szyh9d9MթX rw:w_D߹wVϖʳk2SQacMwkWiNsFWe57wcjZ_LĵѩR'ē7qr묾=w9s{!K0sGgWtRQ%.K]Tjumv䐰\OGZ['V|*eܜurK?ϛU"\6IsӂW$n9zRxG6Qo3S46r<rLIڳX~Ȝ?%S g;IMJz:_:3{T4oBzN8U(u[EyVjUu;驀KS|ɛ8uVTj;B眹NtW#+W:G sȒ?^G.*6b{rHX.{̧zrǣvIxN>2kn:9ѥΟ*UY.$ i+{|7Dd)#a񨷙ésp 9y^Zuu$Y,N_dS[˟Fb]]A}/ԙ=wS!SMrI-wUu͢mM5{wp}SK~r؋n]{]hcs4Bɼ% 'vǙ{LR(YRA['K{ (ˬ9$G:78gWeEu\i+{|7(_ţi'˩σЪsp){u_:}=w%G1޴u³aCj*ul<|qu5Ӛ;U>եwNu9UUEӮʽY9sjZU[8驀G) M:SW}·N1On/3g9 ,=|:I+GBHt<,z/1YًKcZfwpztt'uX' !貤dgUOg/.igS:BC޸aͤ-欓]yެ]y`)2u=.zh&If7]X!ɪv)~o:hsج]S37-7X׬[©Po?x;D*ԷL/m{yh9To.] 0:>rw:̜ fҪ<7s"[f*>źqť;+ 9]ONgGGU9mVjHǫk翣SMN''o֙uwKL*T8'R-gGx/%7w}&̼P;텐x27LSѩ)SͷMʼnd)dUPwI|Zt9lVqήiwQQѩY󙛖wk֭MT7]X߽)\ Lx'~6fBӱ*.JpZV"gXendstream endobj 172 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4322 >> stream xK- Cai{IJ+Q"޴#y^_W(r;2q/r֧}r?3~9)lU>!kJ2K $_%$P!'>KM_N~*SSszrH8Sgm &$Yg*xZTtw֬*V8>S^+W,Yoy #gwLoo 7'⟐%oGtl:g|넗RΊNZVթPm7W[ZNdg*7%0ixJ{PyTf%3of&W^)CB{[4 rCpuT)Y W9/g/-Wue5)ӻa3E )uТ|ynt:1u89u9o땩X'p}*!C)mnJf[Wϝyp&7A~eq^}lSެ%oz8t:g|Y'\VTo(6{-'23K4<%uνwDSvK!gM7%Nɼx{A8[2߸s|Z־ )o7e w:B3,NÉVju*7ws}N=rxr*O}Ɡ/bVR)orc}< =:t pG[dp'w_iQ Wp=3;K}OТ/s:Sr̥J茧u4]<%Lpf5-(ENuE?.r^S"+l]}q =l *!Ê mNqnpw Wutlų/]|K/me wkUN%xp 5׹\"<;:!ZV}8 _ տUB<{9S>uOVg1+fY Blju7bxt>f^nt:w{r{oo/y[c+8랙ܥ>EA'Lhї9 WR%t:EuϮtq&8Z^sۢ~:"Wav9ϩv]_B >8Մd6Kas6p7M;sdž+::ndYΗsۥ25*'Iύxi:͊i׍T] Qs*lųN_KMˡ>x_ O\%oʽig!Yq"ZVw˒Ŭ+~'Ti:͊i׍T] Qs*lųN_KMˡ>x_ O\%oʽig!Yq"ZVŬu{^S}聆|x%V2˩ŅpwϿcUT xn,蔿'2ܖ.[Ld eN<8W8z++<=q6+Orv{NgnӸTW'TE"KZP/tq@gL!ܱB xGdJܹ΋WY9JMy58CW72[,aM9yӄ4X>ɄWlۛt:Wr{>mWjeq}_\7ϯ{M!srIWoX,=:ONVVwtR%8๱|S֞lNr[No1%s[IO8\l4<ȹ}:MRe^9P}?. _h^Bu=˟N{20sv )3t֓^*MNr:/^!dp*5 ]lųto5\M`%^^ɛ&Uoo\ɷ^V՗&1r<77SO,uuډ=Iޮ*yG'[-'\L/'ˆ\ՙM pNx)!W8z6*<=7ПNNݽMcQu0pn[pg]9WaeN[':}o:gu΋(rf{^9u;=4Xيo{ӄ4X>IvUɄv9WljzA{9_sB̩t n'd lgmL$oWde-OuCrsrReCLצS8\+M]BO'^]ΊzO8-.ɜs[+ wHKL >7:CE{9=Dq:ɝvwE T ]lEE7iB,$oo*dBM+xZpjZ[ =R̈́H{)\)JUggNԳEO^,=,ΩK[K ;&PA'.u>vN/t>9![SG˽5K8zGn{ev41{u9b70pn[pgEX:T}\ E:s;x4"u֙M6" wm.Y?\+rHb%LFf+*ҽ|"r5d#O\${ wi&[׾:犿-}\*jZ-hWĽ&^t t'{ßYę6i)!)'˧wG!As* Oe~vNHŦroNޑ^' u2w 8^]κ 's־Nf.z_Wa}!9w[EWjHE~uUI dq/> stream x[N@ EN R$dk9`lK+ٲV5#=~V,?̨VߋgjEXuU)g:_X^ {q,|]uV}tr=?BεV^vww)JNkoVuGϸ0N޳k+;ɱuulYit` ZY4d$S=r:xi?WHnz`kNYY+UHnz`&ӅXAL @2u+Ѓ.3.o djU[t9t!xV$SL LOֽ,[ JL @2u+Ѓ.3.Ӆ+UHnz`s)57 V/,Y@2+ԭ@Lf*L Hb A{wPϻ,/Л, dV]&3@ V$SL f4›p.@2u+ԭ@`R*Y $SL w3\!YdDT$SoHendstream endobj 174 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 333 >> stream xA GhOM0 ]@yy<"gXי%}2^Loz3Bfę2dLoz65Bfę2dLo T!wyendstream endobj 175 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 176 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 921 >> stream xAHCcS{;+\%ZA|7lD?_G8J ?@:`&{E|`3ȱD?_Gq$tfa2W$8'1@;vȱD?_Gq$SFgەK0 ɽ"~> gyŽ망r:w=,Q9|mGF*6TveRdrHpOxlcC^yj jpדR|ydḥyەK0 ɽ"~> g6yȎk穁L;N]O:KuT`_瑑J 0z~BgmnW.u,L&76f;Kj2w=,Q9|mGF*6 -"{ܮ.d,L&76f;Kj2w=,Q9|mGF*6 -"{ܮ.d,L&76f;Kj2w=,Q9|mGF*6 -"l z)0+wބ76f;Kj2w=,Q9|mGF*6 -"l z)0+wބ76f;Kj2w,0H%A=E$yD/]2e&{EΛƌ3sǵ@uIM.fq$3緈$oKdrHpyۘqvvȧ.9l~#E$yD/{2TrHyo꼙endstream endobj 177 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3189 >> stream xA$;C1M,zBe!2C/2I1Fϗ5NKux|7| IP%vM)8W@͛`{7w띮 ~nxuAK=zSpB 7A.&7o&`/;]@>.u"$A{6^A 7o]MnL ^7w|]kEI.l=N n ߛܼo\t P>w ]b{z $ܼ vQ7y3a/{dמsOW'y!Y ~$+ !Y^H7r^$?]ڦiyϛyΟUT@ 9uOUvwi8}ՓKCf8󉳿S2]޿idۍG9!̛55߂B)ɐ@7g!ߵSai Δߙ]ڦ} ]kϹ'$c6YOCg&.IV OAn $kCoI~M+7?٫72J2=stWnq'nYqg%s[ɻHPSלТ ]u)kτ=<Г]tZlG᷂ni{ԥ1+drV.=j׺ɳxF=++ vu͙tڞ)IP ?S>nNM!]f[WUq}rbfٕ3Sa*5rظ_YmtQUJHoMuȓ@לNN)L&gs7-:&hM=-N3U晬VןSKR&u {WkkNPѥl i(\?ѿeNus̬3܎G {w){C_ ' uu͙tڞ)IP ?S>nNM!]f[WUq}rbfٕ3Sa*5rظ_YmtQUJHoMuȓ@לNN)L&gs7-:&hM=-N3U晬VןSKR&u {WkkNPѥl i(\?ѿeNus̬3܎G {w){C_ ':u&k)Ր9? qWX߅gV\Vi .[Lm)M`~{&(F_|<=:%9Y uޘKM$a5Solq:6Yۮ$o՝2vP뙐dN 9(u@FzJ9ܥ^N뮓u&7)4r\6\)6Pnz|鼩s\(|6YNᭆnWl|.<;u NKvy~fjMm{4AaF6T+--H)I*L#Ƅ]:%oB' r}>g)v%yׯ$_τm&tjHA߯4tS.wZw>7YMtz):~oO靖q wS C7rY׊xnɳgt)IS=> us:ٻN]?ۊߧ~5'g[zKWߦNۙR5.tu=NjOL؛FU'3W(mz9׻"g;2ww]jծ3C9ijSZTf;pB+3饷Sz $[WxT}JWt' ~=n'wMە[KofvTѥSUu'tm_ѥ^z7lNmBτ^9|JלgjT4<[“9Slֺ7endstream endobj 178 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4370 >> stream xVKvH ;̛ߴgMo K  hϟէ \{񨝒'kXJT̟ tNq~z;{xg1?O!uwSX<9{Yty:mRp;VgTj 'PGx*ʹ͂3zp+c42׽+Rv lj$TV'Շ}qZQτ nKz Hyr NSX9a틓lpSf뗕g}}qSK*SXWt f8ujzs} NmѬxLȍƒLapX, Mo8 $t*qS$+zzYE:j\_arue#O3[㜂.)Zu&] qtbuj)Nsڈ0(.TUa)Qs*+lP=9LHt̙ ENu&ti{VOOV{f=Nm*޻kg=Sz7dN= 9d%tcơjɃLaTw 5ǔ R&yryt ]<8ݮ+ҙbX,N:+ f;y>o thεWgq9u8KVIB9y/]XC:aӜ6" 93UUxXJԜ [>~{uϟkN)8Rš sfCџS|~ :s~]^)S'af^g{Su {mϔލ'l?SC69YI~ݥqZw SX:]B1l l/go븜uB.s6;Nn 聆t5|X,;t?bS@y*\ѻ.m\)Z!œJ>Kaf'$DݵUgҥgVwǯ;5?)խԣ}m< ^SL޻)x\|UU9wdAן:NSm]:sԪ:&TZ[Bw3NZ۞)2rfs8CBOԭ`ק :U NSu ½ b3L*uu^m ̍;) :=9,bQWЫMۋ??Ok5zߥ?P+D3Uէt)sr<:$q\]=\LwG0ŵuSz<ϾMq|ʙ{wP=OwOJ*,STxKgZ5?Wg=ۄWkK6Nqf):=Q+tv3E^SLxgH艺,~]_ʓr\wW|A,|)Y%֫M޶p}>%A'bX,**M Щ2 gšS;eTmTBt0[Ùs.-O?AgUPoUgҫpO ;eMýq$}m< lj9xLzZ䳳̼̫|q8y_߳kOS7z٪I @3vSWj&5EQ&$s8ygSN.! ={A<vLَNڗ?aSt,bߣw9+tjqN{U{@6g(LpfܻKOu:[{jՙ*NYSrp/u) {yt}*q"s<<3o'*w\'uړ^mjxH6P;Ż]xT{dMѥk 5΀g:sr_v>ԣSKB^9ϸℝr=+!ɜYrRX,o_ﯼdʛG!3OZN*~.Sz{V'Q̭8\!>+_!יvNW:Ng4$I ɬ>>[G):+ב g@SJ_O5A~s=_OYH,δHY\SZTA O WlN3:w,3 jr^V ~ +=ڸUNN CWȿ N`.>guʹ^r_KbX,8}w7Cs~ Ȭjy2IƯG+' ,65?~n|SX:YGFX|nh(u:;50kw ztf^J6aN@Nsl\=0j|p*(Ti{o'qWi9-@4fWߧ|VE'=}mGSmNu}aoSǟsS]sdv>EѩSv wȿ .<;œL'13uo NMgY{j]c}n/^c~O)KGgdh014y:751GOfS:.* ip b³S<ɄzV癵zk7DrպNg2~985|'9e)t̼< wj~9Nw-rNQxZs] =}SarQTN 7 OXJMʙLvn>ţө6YQ>t0A)ӹ\;% ]u~qA-n/B"tVڴvucX, Dw_4fv3U.s*AÝjV)\߈g Ⱦ[V癯0a1i~WOzznAݟO=)K_g5)aN]rtSԷ{WI~NzTim9{ᦡoi,\gSߐNzNdF9<ʧϝGz8$tթOHRJ~8ݥkk ?)+u\E\(OPWRg߬ b/0wendstream endobj 179 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4280 >> stream xQY C1N{~[zJrC/jd1zvLZK(UVmjVs)]ji9Hf ʾ[v'$}fMSL[n? &"s2FJeӑSesC>ǽWJtFߤ]ԺVOZ~RN/oJ&3yMK3IKt'*.*=Ww7c=]w$&9'ܨ*JݹBܩ&~i_9䤎ދC߬# jZݩM$|$ij7™=$]v/8T{ijI"o$㼾~^䍟>Q&gU!n!Ϡ;Vvq2oCEyew}2A)rtq/Ϲm+% N֦FǤ}rۻ^Is(I˕S=՛dܛ gNT2]=$Tp{nƼ{ $ T3~pEy2tݩ>W׫nkTh%:티:&EWo-OrWjz7Q[>M{,^:vlJSnK+uQ3--dhnpZV}$ _wMp&jFy'WVIj{q>糝뤋=]f~ {YZ5Em&[n? z)뚴ɼ^*B_}2A)JrʹkZUv9{% NVݝ /ۧ]Is(I˕S=N;ڼUMr&iɜD%%CB'f̻+񎄐$^ऻ~~쵳${s۱)OB-a~i_Dϴ2UϺjZM/^f5p妢Ix=ӎo>7BshJfyϪ]}\yS*5i!󎜶**ܞ瓖'Zd{IϜ$]YAx8Q-sƁ)Is(I^.p&93Uq5*M{qw}HYMr N;RzW˦xuK֙Rxs YVjES۹-&9$O:r8u͢^=rAnh>gqOO+ڵhYwW1>u*z vMZE#m/%*}){$9ky$3' }fzV$=1NT˜q`JJR)f׬K'\I mվ|DM,E y^]_G;BVz}t<ղ佽8^iz/Bufm穔'e&C{VljZTv}I_b%6V'?d/l'"vB2ߌ;{M8g5[~Vku2 aIz/ӻb^"9!i>%KNI}Rhx5N9DwYDw>aRnz {P޺b]^rgVZ_ZTP8rYt & uͽ8BG+é'8鮟L ^^4ޫͫdfi۩R3󤪚7ӸZV_V-&$}rE[xۋCIBUs|;!BoFɝ꽦o-?:뉤OWEESrj]1_eg SgbsP4%褾~)Odb'OKx"Kx,";0Z7z=ftowZ1.zW /-ɍg*( }M,E y^#GtOd/}/c{U{TyRUMi\V/Lr |}ߗiO˔O &N`#$GJ5#4^)Ce5}T [>5+{"$Rw&IFEWt]eN'2p8O}WI9Dw0LUKޒ7H^;sW +uΪ J}{_S.K!BռB]s/БãrsV'8ׅ6ͱ_*%SyRfLrjZVw}$S`%6tړ2eS.ȧQjRͱWnYg}M{{^I>TIrҦQU;]9AIL~)Γ:>B_UxNħ%<{%L&,{~ 줗N+U/rBp5BRהR{HP5/P܋#t(ܜU Nu!MEszo׼Jvԡ}rTssZV՝j}o7IˁŨwI馭E>jeyl:^C[&Nwqgi֤nZ> S5- IUE|Ӥ|LvaRftWf;]rWۅ̙qīI!JW.d)fhwS6A&;W1i2'|N_ZNf8 yrt ܓf3l^MU']wۈñ(~+V'9^n6_f239=L {<2}㜽ҬIݴz}nj[2.I?¤%辯vv 3dmWC{2]ȄS<&ԝmrL6wcdNvp*'fh{Ƚ87W b79-焄}ޅ|u.i֤KdܵޅSeEd&qR7U*+9*E I W<*}}Ω'o$g^*S2Wfrr}/gդ>_$9=T M$Vu_f~f>B&~ ':CfLTuI!?UQqnp gjZVU>LNM gUבJ󹄽"NN^Yi9'$l.w_O&%\B&.4./"3i)TUpW]_QU)R8O*O)WuutN]n?8p~S&9V̖4.{8&'0OΑa!-n 'K73}5H8$E2SddKNrWsS8]Vjzєgrj݁s6ΗXO!j }rS#:Sɣ'7?U><ݣ[%gO&3 y}wIgLN38WpWIu^Ag蝮#'Ray5rU]_ܱUq/%IUOrvׯJ0se1i&-NKfRqs+9"y#Lrޱ98.,*~'5O}9u,+RKyW]ll?DVժD}endstream endobj 180 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4009 >> stream xMn  "㨊?Ex;OkmrhS u ̈BPBgz:bɃ'쥷?,ByQ&w5l{бjI3:'řu[pIUwz"ϑ.Ê3E8n:Ns׭Eퟖ޷}XdB,)\΄dzn3&ÉVNL8ΩGsp}K#trޱ)8SYTH 1+<+oGOA8sNSuJb.5뜐'ިjZ*>5糞K]lj%h9P'5? *s[vFIM7{[vz8%Th 秒Ϯ[R;NݜjN]@3*8\:ND8ǡk2_iZ~ =IUu,7upq3Tϛϙ𞬜)]>ٟSw;B5gWjZ!r>=shSz/IJU9wRS?$Ǖڸ9w,B]ÿՄ,N^纛NS8?~fv۩N]S:I@͍IUq,dR'.3$9#MQ y*#l]Izr@>[E6IP":ۜ!S 2w5=+8=}ws"']Ég8ԝuM8=MAgw5Nn.ny9ޓ>˧2~y*rN}GsZV+DΧg]qv39]'<߉CSeͰWj*|w&+^87dSOp~+l~LS6RO{&91L*?%IvqH3+s,BEb\œ$=9 :gn|ҤpEFNgp"<N`f;1fu5ֹitQqf=Y9OQdߎsM!t$sv&bRgWx&tOXm\(qjo9 +&v5ٹq4r( \*éܬlG^6?a~Sc[V  ~9i \yZ)˓@2"N?=%INpJt{Q($T?KS8)~wOC'wɓurrJ,*g_jN}˿)\N.xtmrRt5c׹:6D ;b!lvs"uޞMMFIOtS_w#:ND8Am8Bs{m5˔FI=z4NS'mGj*֮Մ8ajZqS 6\7́ˣ#Oӹ#tyHfSVin3yNNnXQYéo7e>o]θ?Wf:W(aG,<={BNpNNۓɨ91)֓@WNsSp*snDÉg8(RgWrPhnWT8fҨ;SϛƉ{{^VSHMڵU0L8BZV"s*F猜2mLgξpyNf >)S#$wE#ONNZO{Sps{UΊSQX8UٜIY]Upⷬj}Ufps'ʿ5H' N>E1]J R9%͂2eRd '^V[Ysr4N8߁mtUF)z;06MA8s|FV]xJؑJdž=g׫jZ}f%-蜑Sf9 Eofަ7grNȪOV ;RPºCzZV,= Iy&( 6-p4_n'+y/t]%9_ȼ5kɴlTjs_/xd&ꗞtC]N&&| <ﴹwޓFO3'|p'hn(4'~a>߅Ӕd>Gss`93L*f}3O}>O*_;d)4yZVSycZVjj~Z>λNժXVjzojhojZ}jWjB\4oendstream endobj 181 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 679 >> stream xANCQEhNOCtlc{=0Ǐ|}le'5Md x03TH@&znk^\@Okrr6+1t.P!A>G`s=ٯN@tӹG?ٯ3+ CWt C{:3o082t@7.P!A>G3Sدh- CWt" C}x1{082t@7P!A>@xendstream endobj 182 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 283 >> stream x !Ԯ> stream x  oWendstream endobj 184 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 682 >> stream xm1 "N?Q63p'p|{7sRNfLmjhtl䜔$#ۅjj݌T%ۅIsaE;:,9)'ITGS3٦6H,.L +QfAI9I:]ȫ6H,.L +QfAI9I:551unFJ˒BȤl䜔$#ۅj݌앖%ۅIsaE;:,9)'ITG ?YK2df6~ͅ(5xI9I:1yZ%3KշIh.h@G9sNIQ>3u֒.YMGsaE;:y sRNALdvRmR= +QkrDuTbL$Kfo\Xr^眔$}ӟg%]2T}T?pŠv2߽SM2?Icp-_v!> stream x;7 Eߩ*!UG ^规<&'_co*n^`o{&'_co*ׅ707߽SF}ߓ1k7B}:򒪮)sݴz7vv~FWdO7U$[EϟgW-zΊׯؙ&޴9_ʹ]۷xrݥY7~י|ӻJxx³ug:}fڈu'ܙ/zd]連̷JϫZ9Jw5<;Ӎ{VgmUq+v&~ 97mW3mW-ޫww)~Vuͬ߿u&!9,gYN6?g݉3wğ˰^!2w|׻l#<`}!W77r-zW.OKљ*g̭v<ӕS:3duuNN[aYݛvBޙju:Ɋ{ݮcg:x§lo圓3DS}Μ.7z[5=vfaEi7|63UYڙ[L5y+tfꜜɭW+w_|uM|=Yiζ{Juݞr=?й>epK9{իx Y;Г4Li%\ə[mML?k,M3U vO. zrUw^zO@uSSL#wXY})v7݄]ߓ^ūUWځweM/Jjo:'g\gYg1mLsviNNەbf,&}9;O܇TZFDnκt:;Fdz7-'WK~ׄ Y;ГsMi:Y9M?gTg1mҜݷ+|]YLH;?rv>u wONލܜu7XuλwԏgoZOnޗp[9;9 v'9|l #urH,թbL;SOݭ-ݥ99x&կY|]MݛJoJXT䬸uEȹrJVΕ:ur7rVX'~?B#޴igFgx v RbW]{j⦹5W̝z,թuoQ'UDΦ?z*&ol*^Ϻjgn労V|59+n]Q3rnsN9U-։OP}Hx7m,n嬻љ6^sBԯi_zZf嬸in͕jg9s'3KuiݛuTI?nI;w;+kBmԟ?,oZݫojB'Wt&9> stream xA( ChIv6fǯ_߿,~o+WW8E~/|g쪜m5u߿=W8ʞTw|v&Y'!g׽՛Y}~%T蚖J>vIީ 3uz*$ɳ7Y}2SOBŤ:mou 7^sg'{[{]S|˟Z^ON~IwPw{YqJ߿qg:I> 3uz*$ɳ7Y}2SOBŤ:mou 7^sg'{[{]S|˟Z^Ҫ=<*_{Ys n]IXsJuVNYsO@7W*$;r鞝Ի;NN= u*5W]8glO-x^˓S$'9u~;Է_'w$vߋ4*k{;| HQsյs܂<9w=1`%7S5 L}{iu:zMMcfyv]HTzEdvӓJ뜜U&7н-Rw5{j$WqNu}uAU3ǙrTw7w6o3+>N<'ֻw:̊~eTJ7{Uwkrt* ="mr2IuNJM8n{[2Uy=j<;U"=I>*5W]8gl3[4<'xo物lNfV|:yN w :yuηܩ:nXkߩt]TzEdvӓJ뜜oWIp@dJ{xvE{ٓ|^9Ui)jVqgixNR<s&PUG9w9%t9+旳Su> stream xA7 CC$4Yd fkسߍ' Ȝ}?II~j;Eګ.{'MFfͣL,ds/yҼƷ&.zNN7o?yҹqsVL*-9[8%*OλIw$?wInŝ"UV䎽|L*Ǭ-7/Բ6qSϛ;eʟ4ӱዘݯN4'xs\ǗQ̤һܒS?]@ےS( {dNjII~j;Eګ.{++}TY[n_>糩emmw=I79ywNݝ?ic1_MiBO4/ɣIw%R% %*oQȜwz]g'Kr.앣Kr V;RcVz$i)[SlԖڙgL,i*_/]QN{L=-SWg[693iL*;w |oKNUz$9.lߤ%ZN^9$w읞ku߸#+;fI̝f*5Fmioq2uis2ue3ƤsWTw;J]4IKNRN^9O+hZ7ȠϿ' ذin ͡Awݶ3O'L)@Iooi<uJߔ2m&^-9UyR?nA 7izI/Iֶ| _3$6-394x70v))e( wӞm-m3=ѷNR}@w]&^%*Og4 I~ŝrtO[[lBߔʙM=aæe&o'oIKf>[]nIƺoĝ0NL:NRμs&AKf{[rKixԐpQmË$.앣K~OܲgWl 6-3|>OLN]2rKZow7}#wbqw[6 J]2۞pےS']M;[_|U^ 9 iߙ$lخ:| zIMs݄jq|Iޣޥ!û.lMy gl8i&a$Dʎ^VLBSo|']M;[_|U^ 9 iߙ$lخ:| zIMs݄jq|Iޣޥ!û.lMy gl8i&a$Dʎ^VLBSo|']M;( 926;V<[_]AuK;78m|v7a2宠jkݷٖ 4j/"sR=pSk>uwMvo?3-j*z⫬w5_:;Ɇު߰=] d. J]߹yolm泻 {.weV[̶4dxץ!U>wiz]vnKm{5oQwtvW _eӄͯt2N[NrkߥݭܰW[]2߈+y=_nw~[Lxٽ[n7̔voHECoI5NVoe~m:#wfz<;j2Ng'Vn٫.[So<{/t^?-t&q|v 7UfJn7$Q!7'MwtU6s~fzߑ;3N`Uw5lz{暓 z:ߋ#Vޫ.OO{ =[??z_w=зmnϕp;UW3y]Tzͳ|7 8NYsRAϬwqpLT߻vݹ=6MK?/@endstream endobj 188 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1618 >> stream x1$7 GHTre](=Xkpk_yc jf_B=sW%NY߽Wf󻚙l{_FMN?뽷ڭylite@W;6׭7lf)rvuaf6-g~&wtmYuuz{n3)iܽ[;f^ܪng2OLD=ҝ>:Qs~=8O5{W;v\zۜܟYvYc^ezʉ$f*ԛs=<&I=2_:}uw~#o37z3{w=39k`Z5ȭ'{_l~W3-QϻtONԜ꭯fSUgN(|6'~ֆ4iyVW^r"y )y :IR<3Nv]?%nM]lLD{ rIޗ0d[?Vjs'nj~gO+U%Ty٦[LOL^Vݾ-ȶNsIO=yT*[?%gOٙ.Y{޻nӦ)^ܪ<f󻚙lwVt 7|5WSԕ?Koz Lμ~Ll|-I&'Z|+[nJod[$'vÞvy*'LĬL]uziw5i]0W{f{]9;S_63Ug';{ltO<99O~ m^UgIvT|ץL=:ݓ$O%:yζ;-lSf7-w{ 7"][wB]_E(]x+\cendstream endobj 189 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 354 >> stream x۱ P"dr6 [< Ptluu|~_vt @% n2Т[,Yp-(օ@n`BEy u!Т[h-0g].Zt Y- sօ@n9BE0endstream endobj 190 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 191 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 192 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 193 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 194 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 195 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 196 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 197 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 198 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 199 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 662 >> stream x[N0 EN/ r8nό]Ůz09yNH~voR(ֿWW{O}9r֫Hs]sXm`E^LNtϳh啭jA> stream xAr: Cޤod jޫ^& [??>g޽RTTi6|cjo ޤj>Yd m3~cjNĪ9xɹ7:2mVn>ko?issn+QuS1𖩁>nR5,wu\1}y^ɔX ]9G+³ZŹn79:ϩmx@qo7OTyՃ:v.>7[^N`:󼚓)zFi+&+'~'fQpe_~t#7[^N`:󼚓)zFi+&+'~'fQpe_~t#geRPnovRglٝ\~wXWÌ[o[+3?]voڷ&ފ?Wkx:쒷B^%OS=?>S+cIeT^"*>RىȎrqE᤾YcE]sq}Y옻=7ΞQTTc{BT ٙש8[C:_%5f;)3~ͷ^2͎[oD2Q-]bϴKEXQ12،~u~ ԊQu;st6NYa?;tZL+aF޷߭{Ss_.7N[meloE۫5EW>kU9b#^l7W?Tendstream endobj 201 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4146 >> stream xA\ C i2$IGJFZIpߧLvnNZߺS*$>%wT$f7'!75NWSr'G&;:< MJ&iֺ?ʴ ])'gTsgo1֗@!{l_CGl Ng~Wr3g4B_ʖpnwv_]%igùMKɴȝ?jZVYޖʙt;8j_o7;-oޓIF)NDUSܝL{RM|Ύ;#a|RMoɤ"= *NӴʤ>@fN3ʷnRB)IV;n[n'Křlg{46BUr>qh;vm.BmU?]\,-m0 i'=T]MNmotǖ$'L$8|8M*tr89(ߺ K I;$}ZܻYwldz/gMVqvONfx:Wơ%0Ca#pAa~CgWt}r[4$mfJtvS1w5E;_[֝29{jZV+N_>s[yk}7S9uҍd:{w)/T툜}fnRjI5=-ߡT34glIۼ[S;l͠+=\O2 yD˿+Y;6grdfu+ACLd{vB!ִ:[;v5E !oztm֫jZV4y/% 2%b&o#r9?luN,R^v9+&+"3 >'jj{Z6C?gi[ϞyZw~'AK;;W{عP%+e}9񉖗W:lwl8VDۃ6]\C0ɰ#$ B:-iuwj6Be4WjZh:}_J*leJŮ/NN'}W>2[=E{}vDNu>I ;䋐Jd)B-ߡ0{G:̙8{d¤? uev8|:yS%j1oƋ'f^-aRr_gfԧmKwD%f9KF}{#B:iuŒwj3 ZY6wsTTwST>VjZtq2/;ejn~Kovr?鋿z )+ߥ;S#rWMJ!_}W$Mj};:adlcf'&}IM+33W׹+*TmyL7^F>1o r83 $>m]v'*O5YB6{ kv'ҩMfcWSmвϲʥ"罛!\|ZVՊ׎凜yRWvpw%IOߴOgųpMέ츻Vf^|s*/wۡټz&<_gHun~ҾlӴMu&4S2S%j]M33$uWQi9n7mg=V&hjTK-9^Tj/M}v߿ݯ;ϻ=8}ޒvnhTtZ7gYq8ndMQZVjE;Fʼ ON+S2VUٗOѢd#[ x}n)ݹՙw*ًOqN%n;4wZd^lɴOwmVޞ.؄fJf{DS6tff:**m:fgw7$m^mvsujizE"T޼+*7U:BREONs|w'y7q5^[1 3pN8;8+ug͑6)*>WjZhs/%ϝeJgou!ߔOt6MEvBRJ-uIgn|Mnk8>ϝ|*Uo+nw)۽YzT!|#5Վ$+^Jnןγu;9UIgnZ1;9Kh06KtCHMvv^T*eAm[D&Ί!_o3Jpz֝?Jg|;OQq^|ZVՊ){DLɼ 1ҿ!$tq=}IT>wɻhN|S_6vZ*W圽9sݍ~MgaǖsV]P0Cm1e7KUo"odrZfqPseߋCyn>*sM+f'gmtpff ݜ:xiNNߋY7#rMwYq#w^i]u8ySϺgrs^o)*ًVjZ1~oh>w){0IEK]up\ἣuv;p8;ZO|Sf39_"5з;O_MR̦n&r3s?YN_FZWu3n{tHEEޞ-ӽ;U;Z$68ί\yT䤧nZSSUUZi:)Ύj+>'Soiw8pJmCu)*73>?VjZrO_J4; )L*Z s ہ١:'|2{/ȡ*Uy2jb6vps6KE$8T$dPUr2ҺQu/77%"{tC-C**|lݱէѺ|' =Զ9w~ʳ쯥"'=uӲzժON!pvUS^9"t}LӾÁUj MQ9 ݝ W&pfZVjWSqPT>wSToMQ$;I;dg΍}Z÷~AeSw}wL7iS4KԲ%se|CEdBG^ >j {{WV}7O'CgejGս~-K5epdT_t?ϖɕ:aTYZZKN46{NyW_?C_ZOFSB7-0?kZV* zr}Xa)*d~?'i̹QOrSq/ȡ U nΓ&?m f 3Zd̔pLȫ"aTMavӺav/ٟJʔ~RB${HRMQOϳerrV}w. jV22S^'0J5KKKrA{)ܩF)o}*U7'wq3_VIh]B%gVjZe|7_w\u;;:W4-[{"|_Z<1% *D}6AMN)[t\${{|2|Yw"ܢ>%sY_hҽ:SVYiUnOFiuA[ߙB|xSEV6֟ӟybo̎,YZ75kZVJendstream endobj 202 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4199 >> stream xK9 CэNӃLJEQr~=V_g '㝲;FuEoNZur9W˟pp <{^VvVLnpNtp9I;ȳc=7L XB [[s mۻ:͊Krx3pnSЮ|u{H<#T8zZp[It)ϾBR"ͷ-̷L?Mx[W+J3+gPKNok}Y VmKFh4aYo |^]R'uЪs8snN-˟^%* سj]TΩ_"ܿmr38{y|O;EN"gYi%u[BmD<9ot~ /8ڦù+-:vYTy%U|:~m۟S6NÍZw&V]X=^q[Ox/Z=E;Fh&kf/X;u{E7wJ )B̹m: ,.gFxԆnBs+w484o`n2#Qt WPr:ꮧ'ÊpMSًz"DI?{:mgG֙o/ 힎vwg<TW < *bhrXlLsgbSfTSmO8=7j:ߙ[ubzwO{ŕo=]pk>h4FQ)!YA:U;x:=#= NnZ1;]o)ꙑ:C$IMW%jęK:: myŸ]mUOjmV='qy^+]\Y i%㬥M4vNJ\?O +'َGZ,xܹwݿbdj.:f5ZCcwLWyYDZE<=V-_gZIu8khSi> jy3ϓB*ʳI#Q$-9w.)]o'=;YM?rz֬PU^V<>qlO_CO4h4F#/"ɾ`Yl|E?kgwxHz񦈴'APH!Gᦫp?%IVICZ=BEsR x +exlx-m盷gRIiip~nm>Hi`ib g9otyT[fp;]~uzD+vWrKܰTs/gjjB?vt՟:OO|Yۻ3x Fh4x o[^xnu쮝9 ś"ҞLz'?B3#uH:Jj3$uZu& سj ]U:o`H78"r< o޺K%}O UUӳ3sv}PљKRn{kv9qp_/sNcVSϽ5m U^V<>qn3g-n I'8Fh⅃nyu㹱OIt,$xSNt-3D(tURG$Ъ3iphV˳jyYU8X̞~+gwL''^Cé޺jӾ%:N.aDp'3g 7]Ԇg.I L7glZ~V._ÊIp.{~ZGyqI>κƣKX1Ɍ;8'ObYB3ϓB*f#E]ݲ-J%yR_Iw25avquSk[VJ YJ''>rru$/th4Fj^8g/(Izz:?uVHzl9[g$Q骤6\8sIRUgм=g{n(zQ9VON!' ^CٽTn~tڣ.YWw: z|q$~,ِ֨*gˢXȹQ_R"6;H, 7]Ԇg.I L7glZ~ύPE:x\tZ]+r[Sd;93D(tURG$Ъ3iphV˳jy*?s^teiT+qǸl8[ټ{~ZM](zg9ή۝Z,OGl舕I%dtF欲{=09w:Y]rK=k֎q*&ugjs*TUoK̳*ɶMg[v!y=Fh4rJ}GH/X;ө=v}3VB{Wɤwr#T=3Rg$Q骤6\8sIRUgм=g#U<4սr⩪VtqpZ 3y$gRiivPrsR]';X<<9+,ߙKRnYe8k)h{+a<rtԳƻfz֬;LUL?NԚU|;ޖg'YUԓm+϶LC8]{8Fhbd_wSϋл/'EIKGEm7HU7]u$?Re%g<;ͳݵ8m)T' ^%3=xٺphiv{Qtz DJaj^gܳ7:sIR;gSOsT?'O2m$u׬ÏTY'Nlw'Nw#{vIWL'{n-:tڦ^]<=>gd&lz8\ߦNԓ:|gܽ?bk?I5+3\tzΟ'Sw㴝%<*vL+LY_1FhԦ>Hw3} ;IQ}RnTp+ٮ׫)4rJC޲K;G44W>uvI8m)I:I*ٝՍ?{:mz/Y֔qglXdXTUN~Z;W|gk蓜gUXlL䧸kόt>-eI]8UԓmW+-~Ͽb4Fѥaoendstream endobj 203 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4147 >> stream xKI C1Ml 4~DemQ~=V_m/H}S/p-v>ÏLIx]mV>e&$6Osy$ޛ˿.$MS=.5jމՎg91ʓHݯg:Tf>/--'99聆ئ4򧸴xbGKӑOrS8,Z&6f㜺KەsٴvdtjZVi:~:czgJI]QPo'%EphY\g.ɾʮ˜{9(Ί0>?C5KCEqȓ8dBL懲=I3UɢKŧ80Y}Voӯ3Yu-H^ݡsut9FX,W눥ԳQq'so)f]Ω]9x|r60eoZ߹SVjZ<:咨|9ΚƓ£vOJ8udѲ!\}]9sn[-Q7Źa|V$d8knNpK* 'qN8U{fEaOqaڵ'l Tߞ_5g&[7CrYӝY.S\ͺ4SyrNdױm`9ȺCu;]7I޲{93<8۝_d=;tL^qNCS;ۙB9Lt֔KK Lamɽ>SVjZԿXϗz:u):6SSqCs R(+S8/0u\Z) } .!+c<x<7p/O"ItJ/ Sf~ܼ,g'YwnY< [6/ggsV˝̙ SUy8ާsjZVS]_8;E..KrsW'9)au<))B%2pyvGG<*9YΞVΊsg!+bW9[W6{8qz:3ޫy3Z5!wcI3uz,StM9o@ڞzja a|)k# O5˧k{ͫw:*-8Vu6.OB#7.k2Ss9nljZΊΙ|Š\Z•gW8ߧp?~6rzWjZS#a9qVh=_Sޯ{ʎ0s=qM{=;La|4ſIE1g#OIpH@kDy)=W<Wev8OW %7rɢi]/2WWynw>&U4O}\ߞS gy&\߳I|ΟB< ֕i 94wv*\6gzr9WjZrem'0z~K'[Wv뉻mRΟEae )M*oY8)ܰ}JC=]#'ÏLQT.[п=i.~zV(;LNUD3:U{IVIz }XlEUrR?!7)3uT]u9\ϊ{Qua 7Ӽ\_83Lr=sY'T(KKp85wW)Sq=֛ιZVj'g3*m%)WoήHH{es93wXg\sgm/2^ 5|Š<oj)'o)¦P~#S8 -pi/'mKwwu䟦 kTu'[ޒ ظ.N3qBxpmyrvޕ=RiŜ@Xy6x '+޳+˶VjZkGݕʫfܕBoήHH{es93wXg\sgm/2^ 5|Š<oj)'o)¦P~#S8 -pi/'mKwwu䟦 kTu'[ޒ ظ.N3qBxpmyrvޕ=RiŜ@Xy6x '+޳+˶VjZ)kGݕʫfHؕBŶIYu\vVpiO9ͮkGݾtl]]HpHY]#'ÏLAp]T`S;*N6szSr]\M/Ɛ n@G0S?g2ӼuLgrZv -;u&fP߈b?5z3rL*V#{@9td)Tɗ|S;InOvE8ejZV9JyҗaW͐+#7fmR;LҞNs]׎}]غ7|FOXoIvU2aJmT;_Nl4_!) ݀J!a~~d6Ey,AZPw|5;L ܡ?,jn#;gnÙTF2s*fR>ᩒ/ ɹ]9(v܎0펳p>O WjZr}"jϮ<ݟ{K{u9;LQ0Nug׵n_}W{.\=!YΞV>%o' 좺L2!Rl⌳py2;UsT]H#&O\]}bqw^&~RW3JF5¦KC'nJr#jMbV_b:fq"NlQ>2/ wS4]97βhu fpZVP/endstream endobj 204 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1432 >> stream xKFCo:^h#@M%v^~Z͡y&dXIrIVV՛>W=6pDSzs2ϙzܒ|,kM'=^K̽gӵO8aV3ѓ7b-ҮOgZ3Ju3VXBޙ9rziS83M\OuיϨt\߮ݘ߷l]^U9ӽl=ﵪ?ZӶ1j%[zg'[D:n<܍өu2*sze^xP|~{b~kfniI=W;3m:UeHtuf̓Nx\I[UoUs6Z+ݍ$*q=3J-goI"Jԛ;䄪v 'L{fb~#zwnkߕ6Qs|oM+azj3\.7mITCnr}" sj۴ <lހ|-*g oQO<7`| |x*ټ[TS 7ߢ x6oTyͷ0qendstream endobj 205 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 313 >> stream xٱ @ !>EW ;e}Pb_xT@7 @C* YQ!M HVT`HtӀ$+*0iR4`/tM!endstream endobj 206 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 207 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 925 >> stream xq1  rU(q_w1ï/x̿~_ri>ɮHzIŕ)%' d]}tG,s ^oqF{?'L9o^L_X^/2%tD:lC]he_W\V:-(Jr{?'L9o^L_zteG̔M u2_;JKΪ+xݝj__|ߝH+'SNv_'G_zteG̔M u2_;JKΪ+xݝj__|ߝH|݊Nm>=uDi׫u}$NStYNT\v| .9N P|9:1Ӝn:uUNH3s;2|z^9ω4ӮHk^/]r"@?*stbt @9 VurfNw3%w+ɱLNv_'^F_zt#I&vɉtن:7dٹ33mî U'Wl@n%9^9ω4ӮěH]k]?ZԖv4 .9N P杬2;wFw&mvu ^^;CȔܭ$3+'9fR0xIk~^ҝҎ&%' dܼ3U7T\~}|{* endstream endobj 208 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2562 >> stream xIF EEx\ hyO԰D>4bᅭw:]kIuON2O*Y|IxY祙gK47MTR-yee~HUPqJc҇$It͵κTz{!7{"?:+4l7憷*TJ`84g4sI^[JPQw+igwo^Ok~BI$IwmwqRg{*Sկ=wT=t^yAsD{*%Rw^D39$i-%;앴37'^5?$I;rs8)I+(=ty^$Q$J)>{꼒${$=utג$IS7׾";IxY%NE8)ID:+I"HSH7{-I$I>us8)I+(=ty^$Q$J){${$=um~%I$靛ߧn}'%EwŹ'N8K$pR$U<aϞ]D#xO^9}#$I$s͵$qH8D)^tyDNJ̽DtV^D"\9}#o$I$s͵$qH8D)^tyDNJ̽DtV^D"\9}#o$I^7f?= Ƅ9 S̿u} BgNMjˆ}-mKy;Ờ(p!d'Cz\i;I2n`G2$NV?ݕ:Io,33&MٙT?u?d?1v 3fk@aRUW$}r0߽g r񜄩:cOPgx\;9[UBvWJ$aLSϘ6ogg:Su,O?Ipp:IT35og'Py?3sg=IuW]?NrG]Փ|1 i=ܘ/ɕWݽ9*_]>y1t>gU#O6a33os+}ww 'k9<3=E%B&;0Yމc;oxZugjO},Ƭm^_qrr:W܁L6m}^r:Ru!rZ@]l3?6Su&I.͜2MiZj?3|U!as$*t(endstream endobj 209 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4339 >> stream xKlGCS/H5bJTfOeYWiON蜃'oŠMsrævHJڛ43YΤw()KfS+?Eu)an 8݈_y=}SO45.g~:!g,tils{?-W=̙,O$+Zs&AAvvYRJ~KO&̟a&sn [w8珧f(fМjZoT]lS8lKX'Lsi[Rܙz=9wMt oӻ]˓yEW]O^>NٻZ4v3?o}#Tj%M=}`o.cgV퐐qnRV:?iM~"-Wɩ=K̜׹}{ɤRk H|B?!ڴ0wcY*>Wzۻ)Jț4[-$&ꜽ[ΐ^N,Y?lWj5Q8T]lS8lKX'Lsi[Rܙz=9wMt oӻ]˓yEW]O^>NٻZ4v3?o}#Tj%M=}`o.cgV퐐qnRV:?iM~"-Wɩ=K̜׹}{ɤRk H|B?!ڴ0wcY*>Wzۻ)Jț4[-$&ꜽ[ΐ^N,Y?lWj5K 7NUPQU-19:bu|w?x.<;$+oH5yERy߲ӧܕ4a#R'5ŠHTgWM;:SM]җZr^Gk#jZ]q:슌.XbSLQ$ϙ}>%TdN:nS7dbS# =_jQ˭pgNX'T_YgݓEuNMs2$JMx=\SR{˩Ș=Ⱥ͐îKtuNgB|ꉨ3{a9aP{lOiS_E'ӊfvٵ^ΊgG_nHݝzr+>jzIRU{Yٱ^"q" g'۩?'7WET)8=x:s*Ի4>*S'KTeé2)Mοav/vFR3g{:uV'U퍦9p{&)=TdLWogdfa׍ܥFt:3!SAXw>Dۙ޽P0=Yr6SOܧNéޯu|uiwtwCxJdo/gų/lKT7$N=jZ!)~*!|;o.ՔTܸln{ar|\'Օs_j5!ӓ>NQ YTV7WՔK-Jfz..s# &8p}tߦjORu^ueNz@7PǦs莳3FvƄ(O ġJY ě@RogBBYu ROOU&;ں-Y.Ӵ3pOuV_ .0#s>jZf)5?jF*n\SSֽhJAqJJ/펐IB (y,*+Njʎz%q =OvUB>:oSm'::ir2' J c9s[tYE͙|#z;cg'EP}w,τfI d3]ml!:t\S*mY,ON_iZΙz8g:N}FXuuurZVF8OWaѪ _e_I/Ba8-.mrMN&Ω5< zeOO$Us"iRLRe3) g'Ecϣ~k#gF<\z' 'oNWO>#l,BΫjU2wJz= bťM2ˡKiV+{Mq@{X͆J!#<==d}n-WN<5MkNrnDJߍ_&NڸDJNO<7zOެ j{2EomJ)|?Y9ԑJ0Ei&Lg]JҮn ؾ'Q[ڞ 'L+WaS'lyjZf).*wBéXoqirRڮxsztS+V,„>@;OOY8_в'LIS-VժWio(QjB<i[<͙Ys*4os# 2)7Ki=G@\p^}IEwRu7jN +S:u$0ܱ^JyE,v&Yotx߹O< '+]^$jXy /]YYx3\坿yO-"bz\/.VgZU ^s;spvjZu)O?> stream xK6 D i&@I[/gb~}~ ŻTp:> b? Ee|4~S.=3*T_!9?|Dtw޸ºR{AZ\f<˻vq9W*sۯw{2k:]n:x]X>)'{W.#N˚W˺ē9֜]ԜʳYg/e־mH{jOut 32k"V-*ՕN߂Y:+Wܺt%,poDB=twN:º{I%J7NSruES.B=7Ε gO@td*lux.<{w\yՙjeͫжmӓK]{<"۞+؝ a9=E]ut 3"YUOorr ^]]]]-HQu]v?.\s5>57ubo 9 %(D:MYN 9g;8W*=?z 钩aFxqqUgRC5jpC۶MOZ.Yt;Ll{`w V/AXvg$*n}g>w 'tΈgU=^a˩=7xuuuuS EuCzzHprw"OOQɳ+]X`nd^nmg[tRSlV{yrҙC(W<=$܍N^qi`n!;o.p?swҙMճS*a/t)&RhJκpT9:E,Ε:ըNjdBBK*![VH7:"TmyYnB{nuԓ3UqcR)F=E)'ta旂-{iYmIIMYy~IgjH NsV_p7>k g;Bzŭ;pͻCr Ig*6WWxOdӥH):ݣS!h{8WV:uۛ!=$ y.6oY!ݼLrPѲe9 qֹSOB.jTISSx&ǚ_G'u~fr7˙sWWWWW:u~ RTg=.Ξٟ]qE~'+]Xbnd^n9i:W6+Ͻ<9̡ZpIukN*ó6>+WܺczH-tnCDYw}=dmsz>L.v$)&jJY' !i؎sըywT[xX!]9YܯNyՙjeuLw 涧W6=9Sw;&uN~M=ϒčb:_G'9g/ +&B&r*ՕN߂YG-ogpW8avIJo~3ټ[lNNj*s/ON:sn/\꧓𬍬 ؟| i=Q]pY[޺GS*K.i+EBHm\?n5y^Ֆ6Oȕn^g0E˚ͱG{*8i.zsguS;&& h|wXa{ZV~WqB=sNĺgr ^]]]]-HQu=E!S\+r5™u"g^L36T=5''9hwvFXOȕn^g0E˚ͱG{*8i.zsguS;&& h|wXa{ZV~WqB=sNĺgr ^]]]]_ԯ,mW{dgg99jw).sOOf9D{3]!c+VSᳳks/ON:sѮ X5=uX迋NMɉt'K׽m!YN빅oΤvP)z5TXה1\)w:QE;EMBTz:<a.S23iV /!. ^m<y8ʼnOBONm<7wifA9MN7t j'0{5y||}eWN\Y}])IIrq8NYg]ACut 6r)8S{nJ*ҫӽ6S@îX[fUH)9vk.g|ŝVI.x~8sUY}> stream xA, aV:_Կguw.0TY^-ԟָ)/w^ג*St~MZr9/{6w2pEh202^}c/ w^Sezvr{91ݹl\=>Z 8]+$u_>=^GgBw{.5enRq2j\IukuR}Prο5NHʥHY͟Z%9]> y.[s˹ ^]]]]j=IVir.[aa[x:!'.ug;領5n;hORe߯Iҧ^G~Vݷ㺢dDFmapMٽE򥽸f{m~s$lM.ݹl\=>m mt^ wud8uIgH8gm>-~-&z^N@Np 鍜{\[897xuuuuE@'[ۿh g~;R=O9uCN\ avMi{kܔw=} ^ݿ_WOý}SouE>!{Փ)K{q%4N='IBOz\sz.} ۆ8@N;)p.τ˙wpδ.|s[:[5MxtݷٰS|9o$R4|8PE™9)LSqr=oꊖ;'?}L iooY'R5\|Jy;՜:y 87;#'S]jsN:0֒ IsK=+Ʈ3 dVO4npjcCI<;.)N|efϯA%Ni^NſGB/?K羑;Ow(Ynojy9GI;?CS\/nupyN:!}9W|%o9+ZvЄ4۷ze>?<jNIVqn{km؝)w.9s'w|kτOC^֥Mmq}c2S'xR78x}5챡$g?Ngl23SWm u'4ۉz}sFɣOߗ˿ХsHΧ;L|kz笈n{_x5夝5lG>vh)ss3H7wγ n6Kȥz:<#yKp I;7oΟz*H3 CYQ2}T^gooOwğsp'h/3|"ۗ=q*J8ݛi{qOwr897:R~و)D.g.8iwI9g&N35qo5BOK#DS]ɻM|).ݫ=|.u8tJv!>g;g|KvV԰݇vڽ[ɧy-tR"9Ϧ{6\ffyx*/!zuxWw^S6BVvԜ[2uGO4oKʴ"8s܉˿'z'S SsN=$8wncҍ7.vPlvn3}z9uB"7POҞ('>Ww^S6BVvԜ[2uGO4oKʴ"8s܉˿'z'S SsN=$8wncҍ7.vPlvn3}z9uB"7POҞ(&svGi|GY:Py~BEPws={ubWk&pIb9tN{i=/t~BowS\>t Pwؽ]f6Y:Q'~nQn9%!'ӐQȗO :HgK?nmrKvIf3wr-;M?.g9r_eͨdt.h=lӝԕ.F=o&3%?;ߎӜnB8k~ yʫ w){'Tyu7۳W'vf­'.ܟn@W?DOg'&}7C uklfn.us ܔLJfNBnʷ%z}$-9y{xN\?0{s%:v2:%{9杕w=$ՙ:Mw &>M5h;ӆ)sΤOgOjw̧74Q 14q8gڟoYtQruvOc̈́4BmDgː '({kfssOٚ )^Z.N;{nc#|κչSOnJC%u3['!7גO=kΜFW=< pչh=uE4l3s!.{~L? pT~_bɻzHL&_Qr}fi]IykckpؚBiCQy9gҧny5;ӛySrvٸ\3O淬{\:{nfBD6etNIwoϧl̈́\/-B'=[~}gth|zp&nќIݤג;w֩6r\>=p'/;ټt6]P[^ݙ`kxf[sb;Ou\ fk)7{}O;ϼ/|Ng ߚR~Bo"Ι瘓[֝]ltm={EX3!G0TO8Q2=}qɷFr> stream x;r0 C$)Q풠yo\KHLg,t]k7"mWOp>Ӹao+Qퟪ5+|~_̬gv]}O3%[g"^sUpQy{U+xd=[V!CgfZ\lώ~UG ct_g#"+˝{vggΊ=VJ{#YSvU8kWɻdgt&3" g[M/'bto$+GW+ѳGw"n?jۮ}ό^|po<'GyoqW>.箑3Zwc{_ýdʳKg2^YV;6;s=3Ƕbvc^1-~*`w=::Χd.sl;ʮ;P᫊uڟ1ν[xk-_'6ɜysFUK*sl/kLyVqLk2^ӛQ}dNYg81c[W11o?GV̽ ˜]xy*OYWw΢*Tb*1@v1f:3'ɹ0K't'LB.L.69wfud~^w+ ?3Ewqɹ0K''Bx.L.69wfudNu;1@2fOqWer̤x \޳1 M@]:o;?+>'U˘^dOQudN|]˘ׅqTi@]:9 \y:cˎd9+KF ԥrb~cGc2_Qudޜ@AF ԥ6Kendstream endobj 213 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 338 >> stream xڱ 0 E!@i@J@n Ǿ}+> stream x  oWendstream endobj 215 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1017 >> stream x[ CjY寥Qz1Wv"tc\T* ;%O$'5:^Լ~[}Zye]U7=_ sEYTAwJH;N"k;u:éy/@~ʬUeGu;OT*'NW}EYTAJD֋wzPѩNk\|Tf}m*?B B'+!n'.bH^?v EV2|$^#y8 Gendstream endobj 216 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2815 >> stream xQ$)Ck{j%g%HrIt_?wo '3YN?_0<:N P~u= m.h|olxw"}w480Kx_|x2 sXp^[7m.h|olxw"筀w480K/Bv_}/@><}˄uR8qށC7x6;V;@D%!G O^ e\V:)8 @ۡ Z_<^`;@D%!G O^ e\V:)8 @ۡ Z_<^`;@D%!G O^ e\V:)8 @ۡ Z_<^`;@D%!G O^ e\V:)8 @ۡ Z_<^`;@D%!G @2{%YӬ?^Zkop{"Jԍ{i|] |$?׋Z".m]xNwNd}w?G ==k{թn^'N xWs]iW0q*^*NJ𲷾Na4NlE.9ET3S:3yYܤͣJAnUuw{Q$A$I;Aiy&OUmXA=ܜ[׬ˤ}&Y͙.5" 9g,VE,ʽGk搟+Jz5PxOў+-a.]J*ם79{.t u~{zflT?zQK֖ǯ}>拏QTЦPEӽ5ob _kMvv. 뮢ğ4=T̫7Eg81KLU:I•9t_E'.]Q8<Wx*^%ʚjw'ޫ|*dj_MMBNgr/e)V=4|]3lս]QҫY{Œ('._i wRRɼt sS륮3SNg[׋]<~'h[}}/݌2OG*6.ytSZ_S0msIhE^w%ĦWb^(:Ɖ L\2eAOr_AS.$=9(viW\䩘u[U*$-WT+8^SY&sV:ojBr8{ƕ|s?՜:Us6YUUQ^OTzUߥKI%S]Vppգn S:L㴾 {:QT ǯNV;}.)&6ݟ_C%uV4ТZpEjSID4ׯ0SӺdm$ZtSuzu+߭'iQ.ɍq$v*d]{R:~*c6Պ6~n ZK/Nm~'R_so;zG}xsNJßjd9ìy('e ҥvݩ SV+T8UR8Q R)]y&qZeo=S(dօW{>tiOï:+h}-ew$swWJio6 -:ũ:kFugS hCS[]g2=)|m?z1jEN?Iϥ6g?=OzniN2qyz{{_W86A^V{df㽾KJuΞtM!Ga)(e*ÿKZ :9xﲷzvH}.Uݧ4{;g{&xd/fS.{~uѵls95r-?^:U&9۟SӫkdiQ}.tgLm}Ux _]z'S+`5^<ΚWwLna:}epVmvE{}.%N=B^SPQT+ϫ<t*rXeo=ꝑ\$O[/iN9w"S^%(!]2k$sk:S[~n$ujLįs?UWӢ.]43d2UMiVgZO%xW+:ݫk:x5=ԙ8s^I2s *\OBr+ = wRRIt-vϿk]2ϫ> stream xKE C(ia赨SNaB L評ٻBstIjZVRﮮK*^Kwl NlidFM9g_nl*SW'$ $荻vX܈o^-m~B${>H|,mzr㲝Wo$_7X̞ Y3%qb%K嬞Xr3sǩ}ظ{RWgɓS)s&&uNN'r"sȼ6dS;o$ZVjԯaWwfۯgz+97", evuf홿S[EggwR'Ueeꍻv< %sN>=%OoBosGsի8}tfwl vNN+U8~IJ_N:uz\z8 YoH7UΝ'w]׫t"ΙTj699[~BUzo?FTo גx&܋ifVjZҔW;S5K~=V\'̹ffg@'.۔3ӕm} *ZS&0Pwos廓†P$H}e˭h/CB>|;z#x9ifVjZҤ~5%!{ۯgz Eu,;6VBE˒V} :qԻ`M w%PyRʪ⹦WsrpJxV]Jزo~RKΈ$S3owʿB[qlwT\N?Ԅ"V-.wkg&dUX̞ξ*]Twl:5e uHz,;89񎺨*lJWϞ:*:ډΈ2$3ǹ7)fjZV*MWS5ߍӹ@TIK'V8Z)˦EFz=/Vs9=SUrw$%t&P*ƯAf,T>HEvVjZM>8~ %;uvfSP%G= rԻHȫtWYNET#Cj9{)yqK9iӮ+SV{[}'欸 U6-EI3Ŝ_ęl2)Ҭ_4;rn0'-]TH-5'~ꛪTYUԗ#z2SL+n {ωS$߸r1{L~ZV Rއs2|?uwl__rĻgA.z yuξ*˩jDT~H-g5^2/.ziס}?'suevʪ2w/˿/$ӜwT~ڿߦH1Iu&=K8M#S >bG 椥 /B}S*?rs#WO?s*2sIpa9u7qXw>Q>#fOɯVjZ}AҬⅬk쑻}>u})RO磞ml]$lm:;kyh媒y8'3QS%⒧y_|՝J9k +;;ڔzGߦH1Iu&=]{&?W'<4sLڇ_wn0--~*?*[S=zw9$T~Ns"T?-'gfm5=_w;WT86wnjZV?8a endstream endobj 218 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3905 >> stream xQnEI C1NGQ6[X7p0??~. :ߙYLicH{(*~G!S9)8Iu3k5kUUU-RgZVR8x5kY7_N?w{+;}ګ)U%Z6.a1ƙ+C6Hu ӥr/̋#Ǽ/.N8xL>IZ]d|P(R[ZN3Y+fiԛS=:9 Cs'v2]ktݵS:6쳶2U--S x9%Mdx{U=27P͙@FS;}YVj%0^MZŗ7O=]l>fj{w%oM F{qо+s/Cti 1KKD-Τ:9OsVk;E"L抳Y8&󔇹e3NuPEĴpz9ɯL|.]w픎M=-gLUK!4gNtIS'|#s7^^U}ϼM)as&N"uVjZ-{>x3bSicVx[kԻ lg|/;Nڌ" W2lN&jʽ0/:?&ytꝴʫ)w$rF|P(R[ZN3aS4qM)sj7^79'87LԜWUs#z|eN'C5qL2D4u72}UUܔNwr6[jZVշ~/qއwof\L9z>u}ժQ{K`-z0a̕}IQ$_DMőc^Gİw?NVy5sUȝZ"KKIu&u"b&λfSޒ7X˦a#_ݦs|/;N;E}!T:Mőc^⫒1S)䜱%۞UVES挓yRpRIg6I7l-+f]{fl7?H 3-SPsf^U!ϙRujxӞ9S}isr*)9u^W?SY3eUUZŻs6fUZVj"H^u]/Yz󝯦%Wv贗?E}+6^דZ|5W_)s, 3*)UMݣ];7{n*n{wV3"5Njz>18&󔍹e&r2ݘ‚3XO=jVWY]?ϖC3]N_Eb=WPUy]LeˠK'Η63V)O[5,VjZ}c{;_MKi/^V,m~'ljzSwYNEf#lUS.諚r/̋Gwn9ݤU.d$2?9?g~-Ej*j&?}bN5qM)sL)z''?$d15g>{՛oQ/~-O;7:Bgޝ:{zf ΗA*Nf/)Imf< RjYVjZu?V٘s;_MKѝŬ$Q˖j=v\~ڪStҞ**o\P2zk'%d@x{wW"I=_^y;ɬLo"CȬO~ߺP1n2< >Ueɬ%œPOwojZV]O>Uo6\:WӒ+{vt?E}+f19nԲyr]:?좊Ի^I #>g{RףmgN2+3i2+S߷.#Ti⤛;6DqBsOoNوaH/5éߕMWY]?C5%<]ywzrRUO'%}p2|I$fƓ*ijZVUzӽ^'w`SWl -EVpeW#7^姭?O'8ɜrA赻Vqv\ߪj*GTDs6Ifeg~;kSKK-zd)8&ͳ.rBtղueɖ2é?݁Z]eu.^Ҩ<;]ZK]3':N=:$o=QLt)+YZVj5]}Ȝw>gSw]h)޷pVF`-[$zg.?mU)~:iOI WFue rVMU@GW9ҥ%~)N2+;Q^"^]jiճ&MI7wl]vq&s2㬝+3N|Nu*wQbF)rբ]9q}ȗ6թ '+b"K^̺jZVRz߇7!y %l\#>!VN|/B]l]p6漫չʙ!TtОJxEw鵻!\.L/o.U[pTqdVv'ߋv!ERO*T&3ӶP滐]tXEU*wQŻd8=ߠ7~/,:B?y- @aަGZ,S6ujZVӥ~/=oB2G6K22gG|Bg^ ԻlDyWs}3C=z. tkw];)kC]> stream xQF  i`0Img.‹c~cW2I?}>㮛ye_p7ywvvdpF9wqYSRzVQghlo'ANYj[)3IdOqvseu;ߡy>ezwrS^ü[n<ݮEoJk$ο} ^2;˪]ϳX/=gމ[ʟ$cM~3h8T&dz) uw55]wB!{iKc,z瞻ɼxyun]ly/=si<(Ϻ).k? bsktxO]$q{d[=,a|!l6l7lɼ7宎xPÍ7|^9< ?eN=x{c7rdz lnFcM5D]Qp݃{a{kugPm*Qlvw^N2T$k$qPXO&ϒywv|l29BA$vӘhn}sd^GvpE<޼nX7.<ٗ4LgMm5v9mBi.p̸=T2ϭ0q]dޛrWGsrE (oƛwC/2'ɞn96m71&k8qfd==K޵3V6( ;u'no*5l8j{|'vgg<; JC6GB! VНw18| *9gv*v;5vrUrx=鷧h:U3e7^IWSy64nL<gɻ2smmSVϬϫdk77gL1ɾdSScX.ѻZ%jޭ~ٓ~{S=3ZXNZqeT?U36vtJ7_Q%ɟ={d]~uEϸix(xnn2 y:oCDa{/Sy[1|x4[gu'ͳjQ9ǟ{ux>!;Oi C!puH`cKcV}{qNo֝WnfWاɽseXDMy3vOU$:\J3{%M٩ {9Γ|ӝeodFgOĺ}W7O[=7rluy^ۤ5mYٲ Q³bO;v|<ֻ֫``;mݬU i=T85sKcJiB! +Z[O㱵Ie]7>wLvd_ o4rO)>wr\w=Qjiݮk³^ISvw^(t졿y%٧n|d }nӪVOco\漩7[1pW6iD{?wͻe[qV켇-CnSݧw7O*.8Nxg7vECGme/l܅ػRB!q~UO۪O]]97Y==5k0۰ݜf^F&oӰL[4lʷCc >3v{dRJ6y.ʍ̾-7ԕ{u7yGo1pWtO4y۬(X עع-of=;q=L>8<kŘyB!7q>g9ذ7lׄ\Img+gPvFw xZm῍nf=m}|L3wH#n# !Bn58@C!<ɷY!B!B"1B!߹!Kf[endstream endobj 220 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 439 >> stream x۱1 ?Ǖh]qƮ6^YݡkK6`"ȨXjd3!0 @- @l^6Dpaˆ$.52*A lLaMNe 4\jdTj$@ N .5)5z@T@*NIFF{(Z4IhO6DfjQ tcA2lp ! ,ʆ' +"2lp7endstream endobj 221 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 265 >> stream x 0" ߩ ̰h~X,Wendstream endobj 222 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 223 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1433 >> stream x1@ G*0e,]̵ `@~`_?yLujEs`CMZEnF/\LgKBO'.kI6UOT %_[ lԊ0 1^;=VWO)]l8&L|K`3v^t笜z?p )۶}^jE&s`CMZEnF/\3ەCgKOHw& `{} xgӴ97 *6n/mEwʬwml=۾~="9L&^7Oid%'#wOd3Y4mNeMw):`};ҝS=Ovf׊.a 7iHs%#o=oצ+U.?!]tyANO6UOӶT4ٖb8Ej"vߎti?!䓠z}?{ٵ s`CMZEnF/\[۵JUggKOH]ffS.gӴ-7?!iN`mݷ#9%O$h㙯;{ٵ s`CMZEnF/\ȻG=gKOH]ffS.gӴ-7?!idwmHwNɟB> ڦxkv&PVQы4W2vQ钻Ed d3Y4mKeMOHm):&f};ҝS=O9;]+0 6ߤUi"͓YN=gKOH]ffS.gӴ-7?!idwmHwNɟB> ڦxkv&PVQы4Ofg:.?!]tyANO6UOӶT4ٖb`mmݷ#9%O$h3^0=$t=M C埐.< k@|KŘ_ [RLͶv;O{ !mcs g Σiz^\w蒸Ed o|KjI}vߎti?!䓠ml4z< y4ͻo+n6.?!]tyA.|o1)endstream endobj 224 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3650 >> stream xAr$Ic梵607ݺ@Fe;_=Nmyo$ә|! 6I##3! })ݧaFr-ܲ!ܵB!B[NIc}/![B!7m6ߖF2)wܠo#ߜ42>= < Bnq|nAZ!n!->Nɭ !›wo{#m; OnзoNEx OnLi!|8p | w-BSXxAքBAmhymoę,,m8$wfНՁvէxk>vDrʽ-w>g]n[ӰAē;-wmxDIIxs;6ӡ]cq|2]7J[еǟ]SnN{1g OZ=;2]!]nCKnDZ?жOaAwVMW㭹{):'s{3)>ܞ'wuo]OúOܷ&gߵsz-''IϹL~W[wOtu;*yoA.wy;TWN;<)<~jBvtOd"Bx'Ċ:cώNf\5[YnSN+jW> K4;g)f9۾C]F)7-cfM;E!LV={N'gߜϩϭ}Sfg{ۚ'ݹa<;뜰S~wyj6C{sN):oS xvKb: Nv& az#mN'lo!m oS>;:m?OVKsleO:!8]z k+/,~NSnuix>ROIg7nkFN~vr;V;dzxPvܞs&O;"))pf}9&[+M5z.EގxV(;e>$s6Jɞ:ܲ!·m:yʞY9k 5ٿA޶&Ba[ߡgWSz7S3|܏&OuP&u}aBOO^E?홷)o+'LY݌ns7D;z;TJqJ]pzϐNorUT!lB!|yg;uuzJ[[Lgtҁ3uE%CfdfN4qu&ED*]9SLy C:ǡZп_m+φLٝgOF'N޺3]',[O~jtR gsv2])1y;O:Shz`n޾݉f٧ yvwuH7{bZjZ?~}8tm|!>yNBxQ#Lӭg}rr:}:̢١ OZ3x8 OS" a")Y<֡PP@߯TgC3MDfp#'o]_͙tԧjwMD?5s:N9ޘIO]鼝C[E^)=0g7o_ADv?ja:6W[ m>B<io=~i?N4m4pJgk.9m{ $t  mxO97gÊf:fpg3;*_WۚgL9ٚR{j3vNqKڛ|gg';dzc;St9s I5-Wg=}:O'ogLw.MNݵ9Loޜ=|ncB!T<pm<;ӪVi>wiR\>wrڨ@I&4ߟgsoT{u)u:$ώf"w$U鿮5r5!Ԭ[Wg}7%%Μ N{!wtUwx{jPs6fj[pT{tNnjǛ>n]RksȽ9={V!ByvwL2VtNQ2ىZObgtٟ;3/ϺsžzpݣS׬NT4\uV< oμ\tuMER?S 껰{#nmm]_gzYfwfv[NuI4RT0SzwF>jnY޷LWu)~g?S=Ph{~\QpDϙu{Kv})Nu>N+QL|vuYwvfwRѧS,\\fϔj!By.;I>kn>tjLyvV::+OϪ)&]g̋鳮c6\ns5:uS:)WrDOB3.']]Sԩ}n"i.[s<=qv[t[tٝݖSe])MD*>ԥޝѬϺڬۻ6sm!U]yJϩC,)Wl9sfޒݟ~_mJyS} m8u{]GٝTԩk69-W>;3Z!wYW S:xOY|sE򖚂C,}*>k~̛n_C12)v~g=+;9~ot[NQVr'ֆ;5۫HQ#rS>BPP߅`7s+j?ېYe-{|vSN{|*y{ӌNjٚ˔ UfOZѬ3y\=s؟ũfݛEj)tޝZq_)¡"_7nm7E)ͺn'ӣЙ,ͺ3[43!Cxendstream endobj 225 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4255 >> stream xVKI;Loڳ!53!"vv?/ywӷe~s;+GOk .Yיsj/{8uuHi/L` ]HHeDjbX79̚4g:6ݔyr~wnogYw:jYޑ*)w{U ʜl]Z[љp5ܷrmk_vXaʽ!  ɹ)M˿YQiQsǬTsT7δzvoEOou^UwO4AOי?~d2*1\MB<^mYjN5zw9 vwx OrFbXYߟj=~6fCf(qSչH66+Y[HVçb)$,pzCT8W:+kuA=%'ϴV|”{Co2sAS,LщpY71NRoo7|i=ߊ4:g%O Y]i· 3'OOteUcι|xXjN+= jԩs n9Y4bx Ӿ_,~ZB+ԩ!\'|][xWpA.2W+ gדMND\8d.4=r+3”۬kr.hJoѹHcM̿+Roo7d֔$/V8yq'2LfG9}ijX< )]wďYqUj_] GO/aS,+; ;u꜂[/w1*uNbX|BzB/ֹ넯Њu:wI/_a(U%\Pʄ.Yyo):YKn/=MO! s06q ҴcE(xt.Ҙu4<5e#ɨd Ne܉2nQw_rZZ!+#,zJ]3ck\Ws,DQxKKmBN: Kd]Lx j}"S~bX,N`Cח/ֹe]faÓ7U]gX(Lί_m׍:jtnk$d8 \=|Gmf뺺ZGsKTLyiB/ KT'a̽Yl<{ŀw]Gz;ԁ?*4`#-̴kvݻlNP+%sS7ˣ6sVk\W3R-[$پ⨽i)HDBz<“K&bX,OR'0ܡKUܲ. 3yI3,x&owwׯFNKH^52_Ozvˏhv^>ˣ6u]]#vԹe~ÀW4\΀\%ŀ0S^r6ƌսb@̣JOC@NوdWqLf5;vS6u꒹sǩQ_g+tx5Jhc-RBl_qYP4G$_G~=O {HKcX,'~-t}yj[v*W<,mqO O gm694Z^rhtnk:e8 \XS2d6{uzn.7]e~ÀWѴP\%ŀ0rt W+ݯz::*v< QљÿQPrRJK`9ܽn\3[\ G~5Jhvu83ϜM yWw;9~qt4%ôzX,bqo.,~Z==,XMOqOzjsH& KH^5.3_Oz~pC9QHaeƽ2?Ua@+Sh= A.buz*<^oGkwΣJOC@ztM = dnj KK` MWx971,Z])~5Jh69-ϜM yWw;9)~Y͊Kɰr3Y,łYXendstream endobj 226 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4264 >> stream xMK 1M,zS& i>d?|{g>/˟KܲgSSlꝞn n1śii{wTbqM=`7sĸ:ߕ:z;ԅz8rXB~u34q6]A1: 'sSO[CKǚI]^vv@uxN3gΦp}Ww;ᜢ\%+iϤddZV՝-(*~Y\Zʳȏ; TYT]?3=5arGU߉OX3su}^<$AWE(u=scm™6SB_F937]rTIpx"$G-|touuܿ+u*v< pB8gi>6\u-mb/uZNs禞V@5ԽZ6Vg5ϜM8j,w9EEJ#W>͟IݟɚjZV;_߻_zZOqnY9 Tlόg?km~4i ,qSɼfʙAWş4H[ο2ONpI{.(!i8g3:{]PIH]sb`3>+DI)&R,LX^%sֽp]u *u_]iWsGkgSi;ᜢy/o)TS*jZV+Dw׬eOqnY9 Tlόg?km~4i ,qSɼfʙAWş4H[ο2ONpI{.(!i8g3:{]PIH]sb`3>+DI)&R,LX^%sֽp]u *u_]iWsGkgSi;ᜢy/o)TS*jZV+\mkTa$V)9Us,3#l{VALʩ)Lp sۯgz9;g qvI==$'Syeo$M'uB2/+i8ڡ~ @ӔyJb>ΐУB*vpߛd5Bl,)4Wlʹߜ[J1:e;gº2gGx|΄lt ! #'UtiWsW+-o+y.Zg,Ӫw9E T_bwۆ;7.5g~>jZԪks_ _˞~3]S8s'"YgFV'\jSS8+6B_rvTd3^%?u zzINHNd^PWpNC8)OՕ|o!G+WSٔs9ƕb/uw΄ueΎ* CnVGN޹ӮVZV] NYʧU4s橾Ċ wn,*\j)|VjZUz=]wgNEo9'̿>?VGMdZ<'n ߹;oNy x9&us/j핽4 ~ANZr*9z;+ީG0N{&䪲|$gr>rn^eVw_H:%$Zx?Uou U2SIɻvv=Q>z9S0O%Veu:mS¥㜒"jZV+XfN r,^7V/s8-d˙O?a9մ:4h o%z9qkݑs"<[94s{Tk썤N rҲ{tV'YN==*p:ߛd5!W~'9s*p~O]B:w/,! T«zsNOJ޵i;ᜢy.,)oz-'.)|VjZy)v}*8X>n*n8-)w7d$zjM884NgoN)Ъ7˚gܒF}e]}f%M!uB_NY%GoR*o!G0΄N=I9YUpg+|W(-L^KK 32Ku/IrRf[;^eV“w2e㬊N;w9ErS^9=sV̫jZpUSspNO,.mB OpZDSO{oKI ԚYq`qiʝ%8')=O[Fr7ms3CġU^üZVՊ;OFR޲;TZ\׫8}tB :-S.h 'GN@!n!URvH9u/%'gb{QY]GpYISH _A2{Tt:Eod#XW?>OΩsv+!~c$Y%8.Gu,ZG>;:yZVW^o$ n-;NťxG'0a 9`Ѫ2傦pr}JaR%!EjdSr*hYBxr&ƺuūuw4 uN GESFj~O6wCNG$TIpsvOUTINqNų lw\g p*hqPYD:g)=O%]YΈrO{TwʢEzQӻcOkWjZ)tUOWvFR)uS;;%E 7&xR"?3lfK,3<> stream x[nHD1N{(x0Rf%矏?繺^jNuJų~szBѵ;T,nEΜyuyjB6<~SobDͫm婮X%$0ey/H 7nA]y3[&3NݩڙEnRkQʻkV CbΓ(RݻwYIqO٭י)\&“#nvy5kO 93ސӾ0G| NM㦡3ssdNz)neL'-=!7%Mt2&nnO.O&jlsrV~qn j+[ =Oݸ &?eS?9My'7zFzfzKUo8cn HX%|xOϳ!i{8ʙ:=^6a uܞcpkYu2*fMS7[sRU{ڞ${NHcޅ?SyJNaV't:9EѻsgNw{;F)Rp ow>=N*; uꦬ=EAxY n6iyV?w+ ~p7- Tw lTزXp=))RM,^Mix׬l'7tbON7dNWSuOϾcsNQ:n5ż$df6̴BvV{&{&AjZz:=e;jBMIݺܮ.ϭsq7O)9#ͪKC,y|~սWr+Rʜ']oz*圆NuSٞW" u|7u[4gxOmRJ)唜'ݩjNӟErn$du m>Kؙ| V '랲xIp@;%Lss&lY'˙kBKI|{!7ۑ.y\D=vn4CRk+ONyG.zn}Q1-GcUȿ/g9qEB[pj<%'gr~)j>;QG'zblK)R&Kؙ| V '랲xIp@;%Lss&lY'˙kBKI|{!7ۑ.y\D=vn4CRk+ONyG.zn}Q1-GcUȿ/g9qEB[pj<%'gr~)j>;QG'zblK)RĻCܛ\nAounS;e77NFg?t7nO}G*9t˛kN%-t#3~FScw-:-{, .vii]RJ)kݽ۶4}77{͹r 3I-2S;Fg?t7nO}G*9t˛kN%-t#3~FScw-:-{, .vii]RJ)4oJ)IoRqJ)RgRC.S)d~SRJ)RJm+RJoRRJ){f);Rʿ;RM'[?uK)RJ)۶RJ)^/[J)E,-RJ)EM3K)ߡ_RM+O~RJ)(J!endstream endobj 228 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 597 >> stream xANA GO!Hha7vrFᐶ%?aOl= -͞ } T7 [dmL5/g!c{@Ru4 JytXg=ҿ:gHm$f:K>d/8cf~@ϴcmL~).lLo@p zF6L`&lyHm$9;a3ye?ͤ.@*m1a ӱ| L T8 Um5/O #&06PTsLҶ0W 3/n\OҶ0W 3/n\OҶ0]! Tz9I]T6P.J/p= J4_\@@Hm`/k op\OFeendstream endobj 229 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 230 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 335 >> stream x GOjn>RqcrE s! ?tsRi3[t=9d{|i==sz i?v\⼋޾.~dd"c-@'endstream endobj 231 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1365 >> stream x˭%7  9{H?95=ǝ9Y]ΐ).ɱA+K )O9r cN1fj1ig[!wxJgSw;C$=w/96<%c-T:byjń_߷:DOCnSsܙ[*nUNU~ rܚ̨ě򔌝#P?3g橡~}|>OONMqgNntqV9uW3dʯKrl=pk3oS2v@EX+v쟙ZLho}Ct>9{H?95=ǝ9Y]ΐ).ɱA+̌ N)O9r cN1fj1ig[!wxJgSw;C$=f03*:<%c-Л?3O r P}ʙܜHȯwu9t{8ΐ).ɱA+g03*+|ˎ3P -9'͉ZxwXOJW r|3-Л?3O r P}ʙܜHȯwu9t{8ΐ).ɱA+'1-Wzw3g橡[N}s"jOB]9 N0Gn'=2%96a$ #@ocf<5bB{˩oN$@-I+grs"!U;C$=ߟĴx^s  qendstream endobj 232 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3892 >> stream xAm C igI+ER-kZt3|3j5K{C[rHV,{r+听ؿ;s힬)>s7SVw iI-S90󳘳g  I)8revw Fp7S'N{]*>Ԅ͜r3epneMBڍ1?)zs4˖I]Ij3-nsxIs̴WpHI6>'yZJ^N&Of2ݒ97D~GUw4gM;jZV+~˼;m$#m?o>I-S90󳘳g  I)8revw Fp7S'N{]*>Ԅ͜r3epneMBڍ1?)zs4˖I]Ij3-nsxIs̴WpHI6>'yZJ^N&Of2ݒ97D~GUw4gM;jZVsxVo`Nm$gԻԲ9}HNȝ3 !DNu7%MK;S-3STHJvMN;'P[w~s4ps\3r8'JX&Ur=7!ms!l܁6y{s&s淥wKDL3S3)>h ܙ@EbsHay_ں+%m箹VjZ}Ma͖ywJn)MIƹOrFL-g)8O4\so[D32;=E?dzPmi^qj u7N:g͕)9#sTum2\%,qf;V8m7׹OoqjZVw{%VlW__ N=dn-a~+l&mRRfatY)So`=W+Ψ.͒_Nk%25 wLoo垠*W9Dgd;!m:t7HAh-'a~^uih饭3T9NϔԜ}Вd6GM*ǬɜL*i^%vnr~nxVjZ){f˼2/mwpJcS8qICKqeJUgq|Ns d{\;j,3Sh4KN~u:uίdlx,ܹ2me{t]ugp7'sC뤋ݤ#s=N"Nҷ*|yեeMPI8?SSsAKUWd6>7&s2bOC'yh;?e kYVj̫/VL-kh;sB8,f2'I`e&33[զvtrM9tUW!KM*{r ^jnk3&n`r3r8Y m] 3sUSpmOK6ӿNcuL$9dN&Um"-!d#pҚW)I<܆ 2VjZ}Y߱T|l9!{o3$2TDvJәjSe:MerΐI=9 t_k/C5q}709JFL9SaF@綍n9t)8xۀʇ'yեb`N@} :On&OܜzW|B2'*6Lxys28iͫ$OvdpnÄnoVjZ[uPwP%7[wnMߟ&pRshIx;71dtZ>oS6M\Q{Pq[L_%oЯN^] ܹ2&^4i3%$%_N]] $yn?OnFJǟvo |MU9g)fU @p{I|Mvֳx2积VjZ}Yy3Iͬe'읯[3 7oNMn49֧ϛÔM2W|TT2;S9C&;GөWn/3w.>5ML I{ o'7Sor!!{WI6z񧠝[*|yեb`N} Y:nYŐߜY]L)=N&OfD2=^9m],4 jZV_}xe~ɤs~ߴl9K]e[/g׶;fRiVe>>g'8mg6rv^]}9ךxW*SfJegJHF5ǧ)d휹+[繏[ZNny:8o\iU>Vy}JBޙ af7BE¹Z5d> stream x[V C i1@P@g*CԵ-QeB}+]:+]XgW+wބu_:L:qI]S?V&UTfuI,XޔL*19ՙ&uw ::v9V*u"sqvѩ]ms6Kr?qnI\M}_Wt8eg=@96*'3:.3SD 9R=GU2+g ]tՕ6V֌<{ryRQBeYeYoEDg kޮӾHENz%}7KBΉjYLIBGL/^GG&(Tԩ!t$7.x}3m`R_.kzͲ+6toF{毣 ɿG½q^rʮ'`=Z{FŝuIAu7'I;Jf.˲,˲,KΤw|-#88ED[on: r*TLg X:ף|Bd7:39:]*>$_D,ٵ_\U{x}6gөUwW{_΍xv2-{-:{9NZ{qJڹ:fwfb7!o9=۽X7;iLW8o.6:º4Hfe goNV}oeYeYL__pڄ8 w|-pqΉp'}80:uT.S-W',oY3 ԿSi΂;1Zg]ҫ:Zͼayj/+!I(Dv0P=S ~iLB2Jp!K靷R[GG}d{/W:@0] Ɂ7:Wg>75%\lܻuJɭιV}dX͓d־D;]3r L'{U"嬯In.^ :ߐO<)gz}_IJ,˲,,_x/ڄ8 O]Si΂;1Zg]ҫ:Zͼayj/+!I(Dv0P=S ~iLB2Jp!K靷R[GG}d{/W:@0] Ɂ7:Wg>75%\lܻuJɭιV}dX͓d־D;]3r L'{U"嬯In.^ :ߐO<)gz}_IJ,˲,,_x/ڜ8:ȃAۡy3Yp'U;R Bz[GTsC;U4³^xt&ta]za̮9=TU>Z|Jn܈sgX^!rp]zϻw6rIUvԔsu&g%yJɭι+sq<ornĹ^,m9dm.;t9A*;gmjJڹ:꒼Y}%V@Ml㕹O׌8m$68"Ͻf?] Eܵ ]eUg^pjS&w'ҔOɳSm,˲,2׸;67NAۡy3Y8o-GN|֫ݴgⴛьOھʖ4BEY:=مuw5{B26JpLAV*p/F8 іL.;'0kjtNor.trL6E}8S ˓;tY5㜑GK6'L_DT=NE]{_pJe9S<ՙ,cu zvUv3ԌTs~Y OSY/V&kš:!];U%9ahƧT{_΍8wq֋-' 7ONlPyFfGTmJ!l]ׁ3el$oVw_ :o97 gWOJDIV]UW`AQBAQ]{r_.N%x/;tg> ^A71!':f|YeY_bendstream endobj 234 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4270 >> stream xMn  iyӡT?*Y.~$BJb-jVEGʙ6^v Bj7Q ʌOs~Y Op+ ]k7!S%Lgi;=ŋpgptqbkV[N2=ߢ->$շ؋bx~q9ͪY}%prqvayTa%NWXyPO؅BEܵgy*8Y+' ^C{g~ 9*>h4Fѭr~<}ǩWdpq;=_.9q"'W7vd>MZ3^SN<+yaԙLgH)X&$vp,NW)}\'Z]^s-֬tQeJ{{ۢ^g{>! Ѕ֙p?JfW~NX3o+W͹GK i{ t!eQ(3ԴuȪ+' ^%?N[et!ܝ^nfGh4nk?NzW ]&ٷtɉ?ɿ#iꜹ=v!D^ LgB8CM7!S%LgiuܾL#:I:%8Ukf#|*Sڛ> _.΄yU7sš}][nj=*\]fH WxT/BT8NDV\9I*p]M*3u3s>Fht_x-mqd6:2\NϾ-KNH. GfQ/ڏsVlז/D-!OԙLBAsS,MHfrr8'R}efԗ$QWy干^-x  @%tr&gUŹZ}nYM;lJmFpNpK''Fpyޓk}t6UrſzN̋9 9^wPWrwu;Fh4Z[Q΢?Γ̦[]&ٷtɉeul?EQ}Ίڲv!Dɞ:39 ](rn%V LNYOC1̌r$juy*ϵh4F_[éQ;;x:B2y~" r*.UNnG p{:Ozm&z8=U;&IfUp*3Qt̘:98Ng˹uչMHgxLWۢ&TTfڿL6'{Unp|tzC9lzcŇ5[/n!6CŪ6=nw,BCWaUspYKvJdsh4FR1VoEڧK,姢 'zo~> 7]'v\z ujԩKTWIH~v6| s4LJPv''auT}97޳*gߖ ;S[%3rv:.1/{Nֱb?<Ϳ\UqLв$Lusvߜ!d]_ߝ +Jl+U>Fhg.=.+%n)(tUtr+%Szƒ/Q]%'!IK)Ox'L$3*azBQ?QGHBz:U~[r2|[NY6n̴en侸wp:}tRg[ǖ=7Fpq{oVW/2B˪0u~sx3u}7w*\*O<#* TIKh4F{b%՜j„vݝο gm+.tIN<2ۺG(a˸ǁ룓n7Of^8kSz9<׫ Τ<98 N pmM 5jIgV珳U=Nvrsxg\%cv脰;m]TݲGU?7?ꜳgp=6gνs" űLwqOә.3MَFh4u[ŘMN߅Sov$SYn'{ljummӣ`ueI'T3zVus)\͜jrUpV g QGx8uF&\džE5$yN^ʪ'W\l;99Ϸ ۽2`_zwlΦЩ!?׳/Y*gg$Z7Xl] Ι, ΓUgU<+\B0h4F/~qCc;ޓs;9$J&wG" 覷SqgU6p:w.pBuwiQdRu!dU|tR*&Y};gH)s ~y:kNu>!a \)gV7h4FmFendstream endobj 235 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2458 >> stream x[I DE`S{ZL2"UY䲍?IJwswsڋs;9ip2{wDήup|~=ZJŭm:'i4'Rլ~3guz}'Tܮ Y?˹w;k#$oy-RIsͩ$ܟޜɷxJ9:LzBuwiL5%aW::IY9t?]{mT&PSMTwV]TWHB/Ezvluw&tOur/J{VyLHP*&vn-x$\:wzkZvN.3sT ӫQ|BOPS*~_Z֫sÕ];^?W7+.nsgULή{bb_z)gWHwteTOi)w?_΍/Vq-OɹJBrw/z @*zsL&g׽W1J[ oml]Գ+]?sZ) {^MAP1 gҭlzQK݄]7gو#f o%4#WV7g{=E}ӛG9seζk>u 3\s<KJw3EE7u+̩S%L^_G9UdTOi)g~ܪNvkꞒsߥ3y_ݬԻH%%_"g/dOIY}ueTldj.ٺolb9yV*LL7ݚ^""笋rLi5-O f\]gйfv~ce&4#WV7g{=E}ӛG9seζk>u 3\s<KJw3EE7u+̩S%L^_G9UdTOi)g~ܪNvkꞒsߥ3y_ݬԻH%%_"g/dOIY}ueTldj.ٺolb9yV*LL7ݚ^""笋rLi5-O f\]gйfvofxr7moS斖3q ILn3[əm=[r2l^7[eWH9|fK$omjWWNOSJ^Z|x*ܚs#+vF7z9ԓp=_ݬԻ_{Wz_ UV_Br_꜊߳tTRV.sB-{vwVޓo&g 0'%UܡBW9(PϙiH;s&<ޠP&[Oƞv}9sKK8U]z 7M̶u9s\ܛ-ϲU{QL>%ܿn6+̩S%L^_-gSg<vkfnM]߹ w;k#^WoGĜWIޯnV]M~+g*/!/uNE^*z{ML9!I=;eb73υMMuo~ܒ*PG[L4]MϿu9utNwK߃!n );v}:{y$dN8't͑3$;LuK4v޳;]izw͚S߅x sk9I3_Vp7p'4-yNz„kL*oYi*z&]LQwDg WP]ɟ[~BdJx^=I2]~sLc7IN3Sݒ?@ac]&w.77ZN̗y' 3 MK0!-~'3f7uVںJɼa?)ga?Q@wK@2^|`:c ~?߫Xo/0.P*=* .~{s |`]s x> ~w.^\_`@8?@oW¿gߧ^endstream endobj 236 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 422 >> stream x1 G$iLëڲq`~GVtbot 3ӳ\L>IWjq6wh$48]Pt'Xhs@B1MMP+1 Bd,9S`z$ j;1 @B S`z ;1 @N I S`̢Q> S`̢]> S``Mo NoGendstream endobj 237 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 238 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 543 >> stream xm1"N/DSÌXFpז/;8EC\~ժ~@fPCWj @}fu9N_W]/Sp#q5fTB0xҮo; ]m/չ9d7]_vǹj/Stժ~@fŴ|V~1"o3> e?8\sL`Ӯ/;W\y:ԌjU?BbZR@?NYv~al䲟C~rfu9N0Suė7׉:)tU\ժ~@gŴ|o7VN1>5du}V@9G/cVd endstream endobj 239 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1640 >> stream xA&E$wI"K.9-_K~V oX:Se  *] >SNU*_W0Vq?vΣc^שiyWz W+\PA扐*?!^Qޓ;`w1\95ioXn&~3峙ߵJw?}d =vgO͕SjHV@k8^>]שhyQz]ש*hyKzX+ee =vgO͕SjHV@k8^>]ש*hyKzX+ee =vgO͕SjHV@k8^>]ש4?}ܳK\eSsԬ$k8^>]+҈+/{v +{;}jU@ٜ$cMB;gg3hy?گC2ܳK\eSsԬ$k8^>E(~]޸/s>F+f M6' XN/-Zޏ.]޸/s>F+f M6' XN/-Zޏ.]޸/s>F+f M6' XN/_}L&ߥsȤ/zfm欍N [7Ϝ9ۿ&J'+s*}oWԷc~~3Ox?9zu%8ҜvxO4W_o>b^2S%2u띙pt-fƽMU̜ǯ轢T3sPW_wY!sjOvsf< v$GKlk}qٞ&\Yk>'۷6yN9#U_N[i_쳎endstream endobj 240 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4180 >> stream xAd9C1M) h Q+YsFRqpz ieNYwm!H៫ IfhހsTJvg 'NIJά(NߝxFrFnrrוp*=Is^MN˦xtLdy.s't^'߄t2u|7Eo*g*:g6YrrJȫ{S98m9ɞ:-i\œW&i%ղRc%}Y=lZhN\¡k]i6FQVoGEi93N⿄;̤>m'ziZJ+\f6EP7 9T_înBCe)mT\HWF١s-e˗BVN=_#Fx*g< +Y#H6=+>뜜rw'h%IU\t%}99U9:$dOJ.zW9-h8 glTtzv2TT$U-BnԪ+u>3{R%S~jz{o\ i;UgR{V)jV~:J&L`sf]o$FRw] gVf]o_mh66-vPrjۮ{-]uɄIŦJWIIh%BN(ndqۍкwcg{K#=> IGh4].|^[:y=wz;T*yx*S–p!pjՕwh)?57hsZҪ~Yi= {݉vܔMvC+?]%&97IuTe3+3{.7vUoF4L̖CI(9mὖ.d$bSV$K![RwuK78Fhݻum~wh4.7&]eדT vv{z;YF<>hG"w*gV&hU[^3rr\љOQL;} =ϦvAOLQ!qť7mRֵu"I]a}rwi9+RZsiF8$j/B~Fw[TpyA Ou:ʧw*]M$M3w>Un~^j}S9{|DwmHtF%~]T|DvbN¡n/Yo'=kvwר݃LJMUH$vY:*rkrS՝SZN.;+:v)*z=OGu9t6)=7F8MܺCp~[<+̴O.9PcE*B:{BkN73Oq]}V]Oۨu{랪:8hvɸPgVnRлIzTWtCߧ϶KػCmRBw{*gwInh4$[R[YKFplԙTt͟i5gy**6Ϊ]!OU7GBwiU>F^Ow=m \ZzGo_u6z?yōP}&trbS:-\ٟ#${\w&R\r޾.ug3Obm$㹽u[3oҸ3pbR\*BsݳvV_%-l<`#8wi\t鸤h4.Ů{LSgRqlZ[v6J]H;S=z;Rwg> gVu*ވ ql>#ܥUޒ{=ra-pj})7BOеʹM˶F#sgjpmsݙHs%˙zy<}r*u6G֎}nQ+μJμ~¹KEpr9u^NY[TF8'/ܥ{:s㒎FhtzW}=_4a[&ʡ?Go']IWɘf'Og t{']uϮl$9צJbz{+J%5ҍs8:=/^]Ϻ_B;TyƩOfz^\f#ir^NN;ZBri's}J'!יvszVs?P)?P1GNYw&UT~C$8'pz<מpK4պOFe5OtBGh4uy[ Є]lT*^t%]%cޛ"<-h_]Vv =*\\*y(]T2!Br<ҩzN Fȯ7@/רSvR:]5]RJۄ횕@jtW朒ϙpE +STyi̷Yw:{|m&_8ݾr4ʔ|»h96g%pLQ93fݡNѶ|tZ"Ҩ*S <;S8gy99^z{Qk>=U☹|<|-NBdWqH{Ž>Ψ)I8{9 gxr'\Qg}J&=+>_mTT&|Nө_mp4F}'&;{~пX2Vҫ~UKWLHZwSQ墧86pTuI)%l272miv9mBwCr_ gͺy8볜gҲ%wr_&j U*N8rz'uϹwS5EœsK*NUҴiwם^T/I>UST> stream xMF  "ݑ?"a}Xms}sVPqOȥ(6^e%t=L )&XTisOq6訒ۅg*l9(!ɜ[)]wS^Ζ>i&lMI8)7É<-y,besk Y,NtLp4?;d5iRD;'~RSft:3K ,-B a](O;ENQOOp@jZ}Rwә+2L*0;c~[b8˧ήu!V!}IزgMecqHDh$(xNrD8$O/yͳ-ˇ۽ ,Nvo\I~S,ڻ7EC槻HΡ7SySsℸ{ZVSm;=OI&{wLwoZgTRٕG7/a݁ʼnё3O{JE{ƻgy:Ϛ7mj地n;SRtW͐3wd+3gG'szhCRt9T?q*tjNWrOVjrJ6Խms?L*t\mə[OA!]Xn^!TΉrJ}Ѣ[&?x&uK–>imguWޗ'aM 9="W׹UBs<9$'m-Ә$NJ+:7 ?C{8uBOJ3Ev9;uQs>\Ms\Q:'i3)IzhY'T8s.ʙBvΌ 6tS8qjZ{޶9qK#&z'2;[trSqPH(Vo_ǣ׳36DsܸR_uzw( I]eOZgtqY7pI'zzCjHu.BObIC?gy4$ӲRJǬ$'޽4N݃SҫL]})E_ǦxԜ6WĜ&yNIr8qZsFLcJZVu6ʼn8Μ rХ33N$sZV.ކ]ά8"=}Uߩ'M+opuQvO3k*DiՕpMiQDݤ9Ϥ.}I2ק88.usIĐڣ ,g&%Vz3$NM%:uɍ§{:T7g"O٣Gv9{uN0kޜSt9ՕN sS='O5mW=$oxRMވLhjZVwH6rː BwIJn'<\r]ԧ];Bx&9QZnu%_uzSZT9Q7i3K}_in;&wNK]\71Bh{=˙I.fƬ;v>gyL$rSeIǬDvrNv9+zzs葺]ݽ$L7gE]gu%!HmSMەDO&᪷?T7{8ZVҽ =_g9$TNBs?WrxBh>u?:t9 rΒ'e_uzuC&l)KeO{=uq6Y7p]"t=!gGwLw &O/_=IzhY> ڣrSeIǬ΄K+=znoνSMʟ5ә:CY9I*Ֆ s;;=dX{!IA-l8KhjZVކ]ά//aI\SzIɝȼx9:x+w=˖pZ%0,K–>8 mdwK&q>9$2F{a< des_zoGڣrSeIǬ΄8 mdwK&q>9$2F{a< des_zoGڣrSeIǬ΄8 mdwK&%*\Yt$ּ<,sFXdJ8-7UtLpguOtBr;As&Uϡ.HJgԬ>S̿ngB(- U¯ iQDݤ7&K}_"'m29b=rDTi Q$={Ěf9Sh>:ݵNDhJǬqO e ={s˳Kt9ˀ8g =Mb9YO28Qo(~ᷣ7[g~rsv93]YMcuuZVҽ = R|Mi=aQ}gSOtk=أ2vK{*DiU~mXN*'&0Yeh9i9͹S$J[Xb%a#\w4͙B)p"ES:fu&s 'G|rn(+O5'N;C]XR_>{PMiwɚT} x~+E9m z=#Ӵ̹l7jjZMmݟEp"\.B;wVBCT]ݸ-8s= g>\&ʣ̽ ޻P9'[NѢ[O,}IrG:ڜ_$Wνp6є4%O*n.r %ys'Y><~}FΚufY \aM`=u޽qxE˚wJn,ގ.Y ߂:C5aBl=y"wVNrڞw:6]3$_6>{3]/甦VU$Vendstream endobj 242 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4302 >> stream xK#F C ifFGTY,cb}Vׇ?W>E7U+! n{|< MGwAw]rn41V{E980Ypdt9H?S}wl&)/hJ,U}\*d %N|Xyh>:9̚f):Ĺ֛w} |X}]䳾3~uj„>=y"oTNrڞӷG.ęKO|sMg봧=ٮsJVjzC]muΟS9m"iLI͢S:fu&^yrJ3{ 7c;%7r?qv( =|v 'NXۑE*3]!pιWnԙ*s/ÔVjt ?$̤g֞Y -{OTۊ]<ve6Yv)/NYsNS͙O0Y˖p_''>e B%Q))lY Y,N֦iwTۦ|7%g>a|VMYM&Dظ ̚,-8m)N| GYaŔ7^!vZVUt ޘEIUNMWeku:7RwH timazn74:g;517ϔ,])-bt$LR|gML +x<+jd5Օ)Xκso 5!+${ԩ~)NL}gR%bq6MZ6]䳾. >)[j*-jZ5!Tue,gYl miMqڜSXf&lܷ˟˃|6jZYF9mjZVN{K#sd栘^eV'ii) rյι?{pr#gp ( NO ߝ՜伝78:Ys i߸JDԓK|;~NֻnOQ;t)9UyB<%f&lܷ˟˃|6jZYF9mjZVN{2EE^&)龧St:k.S;r3뽨9OunD;gy~uT]̋u۝su8Y/.!O]jg\$p*ht:^sݦv{N֋KSv" )齎W:lw:YGf B;9{|̥=:bzͤvyସ)=mWHǬ9K]#& %4yX{};*frۺ.VP:>u*&ߥTpn+( Ί99tSnw JƝ̸z.)iM;7jZkSnpz~7dNJ锺GH2-p߂5Րr39Qu9މEܸp^3Bxz#|yxogtJF)p9„{qtNisSk֍z;X}SXn\*?!ˍEXW:fu&3 +"Srݸ9܉KSͫ\ٺMnw)n?=p YIHRg%IXƪouN Lf͟˦L~[rfu wvnoTO&3cռߡNȕviPiݟu$yVԉEoF\dl䷅+gV\pgFd9:sZVdv9{~'er΢j?Qzu抏_3oK&U[po j6tl]̻p]%O\.SBp6ώ =Txzl48u&$Ǖ|ֻ#{&UӬ}SmKy#5.ՙ νK S}ʔ9 JJBj.g" w"Lfs3 ɓ)NN2l9ƣӬ> stream xA Coj/zccj%ɬlzIR(iXO?꼝yvey跿ޙnZZ)jU5m;;K8UII٭?y'%g:CU'.al=gܰn$z237D'{W6 9O֙j}ؓ]LJsδS9O2̖NF&ٟ{yΞ?~*W=tn٥^v.Mv8s;gTIߝ]j>9|N&R:s {6֞3S9sX:yڹθm39ܙUu#7g]*aykaNr>3sޝ4-9ݓ=.3>JUjz~ͻ6Ujs7{n;\U ]MԜ춼˳azm^ۓʹsիΘ9~nT]N.V|% '9{6'wT;ZgM>yD{Tw?ۙ;^=wDgvND"L =n9c]ryWpCW52-l؁~nsrn~6}3&jv_UW?v1;msIΞɝ}6l֙dϻ}6~&1v&lWϝ.љ995ӷ=f>nOsNXmW{T3T{|'O>?n߄{ÏOzc濛;ycf69;?!94 ߄nln<ݍl~73:ɬޢ l|>$ndF;-zs?ٙy}F7>?;7wwoM Hycg=$N7por=;|IowS3߁ oMܜ܍133vd>{66~yfOw6^ ;; ]wg6T8xgÛl.=ߦrzߒǽ',u!?~7Y3=f?}lׅIkpΛ,|];_'q9o0+:>s} >;xY7~yf*d`߯[:oM}Ll >{ ?zB?}endstream endobj 244 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 400 >> stream x1 @ G$?uk\g1뀋e%}?u:@$3Nd >ٚ`ŽSmI(A)6Yf{ d buН6`LB̜ ;m 9@w`OB`fBZnvН0h'03!@:N0h'03!@-_@wA#@>  xʭOendstream endobj 245 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 246 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 363 >> stream x 0E"T~q axwNۺ|է;ݟ0j&u3_ R/ԅ>BrG]H P`SR..H[]g,B>nendstream endobj 247 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 823 >> stream xK0 Co:E1AE?CIӂ_o~>9yJ{|4F:w!]|4F:w!]|4F:w!]|4F:w!]|F:$]|F:$]|F:$]|F:$]|F:$]|F:$]|T齲UD?K5{ϴ~'i{g~VF&'L+jǯv'+y;fa/SvYS77D?s{{ϴ~'i{g~VF&'L+jǯv'+y;fa/SvYS77،=On۩VWfyBg3~np=Zӕh #e9Uv1+IԜN~[M^VW{^eCW??ͳٕs$7wendstream endobj 248 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1474 >> stream xKĺ E$w2بB#_oDgd-MTKș̈́ls TDOS9<ͶSVU۽dӜ;ݨT;2W=[[_^˾e3SIؕyO魖ML>OS-{ݚ;~[5`ζMSK~ٷL`f* 2)2{8=cɜ w*cs519=[xzǝ^OyK?Ӟv\f3S%$ϙ4a%gN{zJW[sJNܩPXW7oZ@o9׭N7ry+mg;e03UBNVrvݱtչ;iΝ uu{VۜSza[t^!Ҟ L[Luwr=Dͻ/{y~N{ow?M8w{Bj7'sz;,Mf)5 _IۡF~ 绯?s OO-̯wݴyorv::n'&3Oeuzovn39SB?Su2=- KMœONoB::oJ[0:e8e?ovnB?Su2=- KMœONoB::oJ[0:e8e?ovnB?763a[^9vUEjendstream endobj 249 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1437 >> stream x8  fkt6d|(wI'ZWۛwdq?UeŝW@gᴉ~N|)x'm%LIߙzB8Ed{Dz]Ta ~;KX?n^uy;wםy gUy03O9 s0W7oWy>Ua]sVԯ7; ;/N? 3{ϓ?+>=o_zw}+gR?gJ;ϧ*켋z c'a~gs)N} p~YWֿ ;7{}>;wiT~[R~iw$SrNzB8)sΜsϓ?+UJyfX?g~yw;-<s9{+T3{஝yJTO8e.3syg'_I^Z+^_۴>LN?ϧ*\ Lk'a~gs)N} p~YWWJsW6zz 0B~<:pIߙ~ApSr=9缟'V|LVoΝb9}pw6}]}l{L8JϫL[owNww)9629<;gre/w͵zs+Äg+lcYU^ez;w;v3Oəߍ).f3*V;sgۜ҇]3΄XY^g=&UU; ݙFؔ? 3{O?+]cM芳mNî[gB{R3]aΪR*sovN~杄Srw#lʟ?Y> Oy_icB=g=aBΉ:vγNy;i+9wo; ݙg_<6sSW똫PYOs΄lS^NJΝ+?NwwY9w1\n=^_k++M~/ߝ@-O+Y9sNԙpWy¯tγf$NJ7L"endstream endobj 250 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1546 >> stream xKd)ChӞmKCef8~}_uKo>bOYsNbwY9!awsL?OZڛU^9ι&WӞyYS=᭻7?[73 sBN_дPͻ9&ٟ'kiM*wMV+iϼϩݛؙ̄9!/hZN6]Oz;TYL99݄o9>:9'R휩nr}ΛY=![gWrV|kwFr$ 73k,׹OʄMO;KzB|*Ι&W鼙"uv5!gŷv7m$g\OŸp3vO[=|2 V7>.UO=lV3sĄ&fNPwC*r':mִ݄z<-sN_ a܊wuiT7>.UO=lV3sĄ&fNPwC*r':mִ݄z<-sN_ sK*t8T3WDVuVlOn9޽}̜>{&1kNݭ~YsfqY;s}歛2!;zz>9뗛sL3;j7adJV[MN6!&V쮺ϕdτ 9'$\_%'Ʉ>{n#|wu9[4ÙvNdlro:a\IML{ݭsBU"zL69=Wr߬N~缞pwmors[%+_Ix+n oeO~^k\oYsu$Z٪WM{69[{Yy=+l簷JV[Vݴ֟v"׸x =Hγ*Umrr_xZ gԝ3RM^_%7&_Iؙ3.C> stream xA0 Gj+JHJsh|?~:+"r^oxUo)G'γ G?۽2gx&?󳊞EN2|gL%f>;l`oצڙ=_5H.;Zߓpg9W+"S{͟0Olf[ܒm̓l\_fp{;~Wggk2dsտ"=5x ffn߼-9> stream x۱ !@i!@֝2@/]@W{z* !9BȠb`κ2. *=`0endstream endobj 253 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 254 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 255 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 256 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 257 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 258 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 259 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 260 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 261 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 262 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1613 >> stream xA9 CL0ionQ(V٦)뿏LaO ޸ݾ7dO w!IO~}}z`:3jZ%Ӆٯj^'w:&]꟟2aOzU.$]gb㽏^tz}7WL_$rI]zv @i}̨ujL3gz~{uexқt~B~J˄=zCUrv~}.czߋ>zgޤ>@_+3]&9[w]%'i̥ujFn5mz~{O:}??!}UohWΛx}.fzߋ>zeOSٕj2]ȿ$gCzv @ҘK*.jN,7U51dut~B2gOzU73!U>\$dEV};s&@_+3dtIv. 'ui̢uj@&G=?MՀ'Ʈl'['K_lh{75(L{}}.&0 YQU{eR]sT+sveI^o.Х]rPo YNgWؕ-wR3u mֱ&弟 `&!+wxVꞷkpj}eήT3K%9ԳKN*m6/f2֩ջ|o1mz~{%OْO:A'K_lh{75(->p3{l]~3 YQU{{Jv=NPٕj]:ʿdIzv @_b?o)N{siT +yb͖| ??L]bCۻuIG9ocsIȊ:/6ESq:}eήTQ%3MԳKN*yB̟uj.ߘ܎tNSdoNХ gҗ..}˴҅3}>p3{l]~3 YQU{ eurw*92SM @GwTR.9dc9]!f:zo fnGO:Vy7[I'R3uK| eZ™xϙ=.?癄b㽏^Ǻ?;ʜ];KftgT8$oGL&:z fvyU %OْO:A'K_ܥzCniVp/sfy&!+wxM&.sveFlӥ]rP3<]+'V1X]꟟p.}s ֺY™xϙ=.?癄b㽏^$;797&|vٕj]:rfeOzv @v{@/|WN0 '%OlK_eyo鯯u]sd&LDr2̉j]:nrr幕z\2Ƅendstream endobj 263 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3490 >> stream xQ%C&ݑ-\<\誚?7u.[C!:yJϒw斿7%OgmU7OeN_*r!DEOLP#;do">B!T5FNn|yB]$<%!~'Y-Jɖlщk~_]y{?Ƚ!I J{d$B'-6rj77=o}wLةvyw#[{Tդ:;ߧ-߾ gi蛬ѩvn.ֹ?Jm5=dwtm쨝MþZxs|෯ޝNS4gV;Kh˄|^a=iK:i`7p|kNpQu[mm>^4zйMco3[Ni;sGSt:jwj58B%%$=yQxSO]?vt)5'l?s5i˿n6Yi'&kt**)wuR;'} }:ٝ9?u:;jga֭98:+q)zw'brGSv823ߡWuiOewν7gM9<t:߅*vS*g9twֻ~[*ͦ^z2tCǦSNaڮDsZ)iBx 7@GI_O[LeںW*o)X_άηӹ%1NY$ɰ;tq'd7:6ŖͧVl§ y~^ 5;UTe`uIIq*.9P(|eC3y pn4sػeB}C:Ŧ+)z6jhۨwvzn:2gP۔B)Թ 34s֦pl}zS/SSUudPYga7jkFMtNᬶY}z:~#S _aN~:h4A箎0`}QTاyZ{G)xdQͭ}CzJFO6˜)]2=NV:$Oݵ&)%Ө(xgnf!-/zzooS¹?|t%?YrҟӖS3d?!%gsB65n܂BG-08e*uLx泅_vJ~:4dJwUSNȖ+ĂRez%wOiWMV(=k6y[ⷯS};snR6SS2d7 Wq?7GᥤߩB*7[WH`E :Ba7oa[S¹?|t%?YrҟӖS3d?!%gsB65n܂BG-08e*uLx泅_vJ~:4dJwUSNȖ+ĂRez%wOiWMV(=k6y[ⷯS};snR6SS2d7 Wq?7GᥤߩB*7[WH`E :Ba7wB77ѩNAwV۬BwM{rR>$=l48׶El}Xќg_(OLR;fͭ?9-eCOfzG9W]jB,([P ~& &+Ԝ5t鿋-lשqvԍd7{~Nӟrwl :m 9xB/;diNBSl RNgN_vb:ӷ_fk֟ߓ;&Ff9=- mdk;_Ċt8B)g}ݱ7ln9}=l//+e?z2p; )bWCbA)ܲe7n0aWX4Y٠N]la߾NSMnDgF'!Sp(؜[fkem (;uV8~'4HsؽBj睡 }I}5(Osk]SS7+[y$F'Wm#c3득\W؟js4`;eOjB}M3xӔԜ)8,[j[Fvz[Q +43r8nn5ԯssP!6]V-sv|#w7߹> stream xVK8 ; 76PxdV͹^XtOm 4i3slіs }V1e/ ~+ NF%l.߉:U>ѡ~iρ'OUms=LeXA;3ɄfsgOLeUq)O'~Y {')霻t *~2 W6Ud:uESb'9e/ rNb:2zߣ: a<Yy&wNr$*U_hϧ~jX-O$w gdp0$L賂G){aML[aoN/ ΍;Ny:R;qOIN=nPNdͿmM"өs.TR&?a)+E~$_sJeӑnU- _gmNus\P䜿B__4\ؒf_b'!-٢rl LPD>+rOTCO_b'sv-RȌO4=p]bNmW]sYe^ז3%!VJ7^>񼫩`S\ǩ:XNwvLN~RG{i W'C߹=p;U9MCǜUOWo6*Sp~֬/2TuyIV/?\J6W9Sx(rW/ί{X.OlIگ?ē^{ulQrcp~&(p'tšKקׯ?JϹw;NdƁKY1K+2k˙ϐ|ed^GBNYxT0)T},;;?A'w #M{EG=洅ʓ!zwmr zĝ*cNn*tŧ+7|A)8?k f{$ ߗ9p:g%w.TJ5\N>tSf :S K3oߩgoj 9}.$N8{Mȭa.ޑTջH8T{Iwވ_ w]=ݥ PrwPL)Wsu."FLq8U_gԹ%ToVr_`Z[X+\waO:V*u ,B4VԹ5LDoJXIN={StUI p'tšKקoBn sEdƁKFJBI,'.m ϔ{:wgJ9Sw7`S\ǩ:<;ۥ-Az&=~R?3Uػ nsޅj%\-w1A~su~d^? xqqqqw7(foqmx?8Ⳓ'yj\6E+`YLoUw볧ӹ,Um`Hzn;:jq[M?Mc"~T4g2(t6S캑^U܄u{IK>%ΦnyɤjNu3)NqXՙpvMQ7EM]Hp~Qsۂ3ڈkUػ)]GSffs:CIz mY_Nj $2endstream endobj 265 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4366 >> stream xK CTd&v(ӾT! V^i< 9jv"g;ޱu&O'f%RїS s߉CszOyN?K[wxkuuMKYС;MZ]lvNqgbKSK a3}֍Ry'ۋ׭?1δ*[:Qiݧ9ZNLy.ҩ4}O9 WL)瘝@Bև?dnnĴrity wwEbNov˙I]Lz}V~pWWWWWD6Sxz! gQS9it*= ɓOvMo%#[tt QG}HO39nu6EκlJetIb0S9~BI;٥wMlg/Y&Cg[lvzsSz}3a̙<":Si:έh+=]{omFdE܂Ϝ?%݅RV}rδ4*;Md#QQV~pWWWWWD6Sxz! gQS9it*= ɓOvMo%#[tt QG}HO39nu6EκlJetIb0S9~BI;٥wMlg/Y&Cg[lvzsSz}3a̙<":Si:έh+=]{omFdE܂Ϝ?%݅RV}rδ4*;Md#QQV~pWWWWWD6Sxz! gQS9M9~ iIs9Nyvґm28UJZ_Gٜ.֙fGz-gVWz/[~EEPӧtMsNsu|gN&zI!lY!|?;:lz^.t>iFz;Ns䝉CJbwɻ:3Th^=@PDFr&NIV*}')lZ>m5?3٩^&V$zOL9a<; Ŷ{_ON*g%֣nlNUkMẘON [#rI+nwg"(y&߹~Otvik9ώO:3'=C6 A¿Iw4~#W=[H|^Nl9 W!]%wt}F]UT*S^]4 iJn#mn9sTz$+~pWWWWW6ߟ=1Tp:۲Cnr&]pR}$Db^ٜwY)1=̛ ˦uf'|6/p9hurm E9'r^99izWi-gڜ:;4kKءLyuuuuElBBV󝚜8SrO5ɖ{)}}ME'cL(o),}zi7SANMẘOSa#pP9*Z]~Ӛ0wrͼ;~Otj>.\u{!Yu1I/') ;Ү yT)s>5;_%tmEg`B7߲mw[yPqդ/&[٦7>/2aӧti<BL9^6ݭ3+>;NWApzthurMk܅"[5?٫spyvֹU:dr4':+O~קt&pvRJSuz4ι[?ݟuJu :'^]lyBy(R:=k>i-gڜ:;4kKءLC/'& .-{i^ɿN]'us*YΝFTqHK.Gv`)5ۧ*͙7@/֙FJé&thue&'ExzN/MwLgϊ7W&礢C^>ׁ1ә'|γ6r&*]sREO7.2U~i7a^ttؚ":[tw.R/'& .-{i^ɿN]'us*YΝFTqHK.Gv`)5ۧ*͙7@/֙FJé&thue&'ExzN/MwLgϊ7W&礢C^>ׁ1ә'|γ6r&*]sREO7.2U~i7a^ttؚ":[tw.R/'~M{gӄMzCO STopsZiΖ94ˁ5I&]}exW_I'6 jHvg;f܈&n]DtMs'y;V.*>i,U/&lr~E ԫ:x:YpI!i"o˖Tgn!-)7qr:VtwJӜzt7B;w_p**Z]~Wn3Y&il{)¿մ˹u)Mg;-vtw46f.]Uu4<*|´l!՝Nsg;\NWfHO=Nd'LҩS7}ҝΫnYIgZ&稚K;0w!S8:=KޟNrd7ՄyU<* a#B?Ǧ;(yC޲-nܩrUv st\~׹*N/'5:3龼̄f9N&tq{L;+Wӫ;o-{_U:3i܂^Sntr={b_ιs֩ҡxu.t ON};nS"ozݦ:\073`K> stream xA aSy1{D%P`W,=DlvH,7֙nH1;iCgtrx֓z#2g߯|+=)Lpq[&2-uN鶥[Oⶹ>{|oig=+ myf}qv?e''\y=_s?Sn!vPO\fuVpyg Un7;u3S*.SUlɜe~O#& &;Lۭ*svSi'U9V:OOZ;S6|GN|L߃mlLXy8djXlINʵ7?ѳR3*{泛4=UV'&i=ݪo2/q'Z޴k9eHZ<[Unu'Ȥ9Y0$.<ʓ~n͵mᄁs?i܈;66&shwz.S{ Tw~+Cl?ZzR84YIX9o<["w8Owxj7/GӞg7-3:ۜJia]I>m7h[B~诏9C }{>3TѿfעoӐxJSsV:$8nb8~Myiwms]瞪I{ҳ:~3r̺wCŖ4K?0yvڍn8\- StqP ۓ)Klۙ3g yk^gg/g~x>3OYOFt*<9kmM5BZ|}}{>3TѿfעoӐxJSsV:$8nb8~Myiwms]瞪I{ҳ:~3r̺wCŖ4K?0yvڍn8\- StqP ۓ)Klۙ3g yk^gg/g~x>3OYOFt*<9kmM5BZq-CHFl筩ҷ1~oH<{gQyf>'umWftL)=$gs֜'RYxy煜$;̍^gGk5CS)P-%6g8پ s!xӝ[PEFn$涅n[1sfw==t2$˩=WMGix\w~J*p&/\5OK38[yk*mlL''O|YTٯIrݭ'k;-tە.p#<{vJO=ə\5TV>3vy!'}>s#٭CZqxF-T.DnnrN%s{:g{!-f2nWE5#v-o38-rOE4Zi!}UgKaMexFBx2iϮg󹫦SMD=K#sZl;vv>,v;ygrMy;ܭ6[~tڤp9:tI}.Syj'n^u96Swqtι =ﭏg!:f}zMjFb uO[ވgp[z1䞨h`˵<֧Cn Ζw侀<𿅞dҞ]sWM0$:{җFHޝsz[B}yߍ**30v4`=a:'I~v­aۭa??i]V~r M7kޖ}LZsg;ヌ~ogrߔU~~kДaۭa3zCө l+O?y>I!B'mD**3ҝp{oΖ ;Lt$?Ϯ]W7t5w#=3'7'*OC.! #{;ے3[KclϜ-\ROOwM2t5wsfWo>w=a:mIB'o'!B!̒EC!7]!B!B!w mB!B!B䟓BnB!B!B8'/. mB!B!B䟓BnB!B!vzk7S!ܒw$|!B!B 86}endstream endobj 267 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 436 >> stream x P"@i( 吗g3^P~yt]wIF%Eh'2`] ) @3=9p`B]HQ [ye"RfzrH"<օ(EyVl %Kh'.2c]OLO9bp؃,r0u!@>Y @3=9cWLLOX$4ӓjv*u!@& @3=9â a]Fp?[B\@endstream endobj 268 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 260 >> stream xA @'׿f!̰6`܏j $bendstream endobj 269 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 300 >> stream x ! "VN5`G4g ?}]9u&7d /"1Q,0;7OoY۬p0endstream endobj 270 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1045 >> stream xэ0 "N/ΒO3p(U_|OGLv&wDEYXvN޽f Y͉ɱY;&ϵkYi3DEYXv`d{7kdҍooN|uMڙ?5yM^;JAN׸7&* s&oԮY3 n {sʫkrl'grSz \3s<%y9^V2 +Lw;vͮY3 n ʿ959639)=9t<|qoMTt+j&P}ֻNf߬C7^$&g>wg3yM^;ʟAfroMTt+jZnݵCuf n ^H~uMϐ}g\v?#V2 +Rkiv@x'!M6y<+Gɽ4QѭdVhw 1Ny!596>C>@smxV ʏ0{h[,P;Juw[b7+ tcBkrl|s7}>a&DEYXv];N[oV.;W n }&ϵkY3(?L n%B@+m=vn߬\$Ѝs%&tg3yM^;2 x+B+-'9k9E.ӓc:3<&gAߜHε" tc\ɱLk |n^JuwoN$uN 1p؀ }&ϵkYf@>7tEh7's:@8W{zrl@}>,3 @W"RrɹvS n eendstream endobj 271 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4039 >> stream xAn$W C iFWH*e7Drј(ު(ާ{7EQ*(EQT*Os_B[DQ9(?(((_%?ݙMdzQ}ҁ-l_ %Mxa~ڠ^>;ko2z''vT~wPEINn ̍~깽|ElKC8țOEܶ߷#ݝ>|mj9ׇdPLbW؜n xœSOjSG5[=T!詶(vPuNԬN2-bwtvffc3`XnI+SnV'A=n< EIo*f7׭?n|7:z6F{jUU>۽3]ihs{}+e*OTy7L[iMQ)xba9PUTϻŦm3pg,3/z{^EQEѩxo/w9,ԛ7f\)nyz*HOȘp[{Ny7T)>(vPuNԬN2-bwtvffc3`XnI+SnV'A=n< EIo*f7׭?n|7:z6F{jUU>۽3]ihs{}+e*OTy7L[iMQ)xba9PUTϻŦm3pg,3/z{^EQEѩ樓L4{@93MfhΩTnW)lo+lNavT eǩ輩~kvsP<Wsf{U<8I9;\!x'8PrasNҧ?B%Pw`]#%);VMgpKn[8ߚwhg{sI.6CSTVMQ1ٙ%AQU<9)wfyʦ$csPE4Y@0CPdfo]t8C>ٛsD6Fid鏿d])%,巔{;!Qɹ9V 6~}?念:}r* 95P9liZSe *+Ԧ3#t]]ne4>T؜SҰ}r&ߺs#=['(("A9_55w%<9&Ш)*6T+<[W0<.ΐO'_(-j?|/e3wWJIu7K-^w>iHjrd?sOoN܇}N,gx[_ vsD@' =U'+6l24l HI,(+6fӾ['?PegLgٝ'ϭ/O]zNtMymV|δ}O`.ΐ[&'lQlyi(e3t#%ݔfCmb.sTԖntp;TnS7簥iMQ)77 xrLaց.+ T& :EQEQĖ[Yi_s-rΓџSiSvu&ԳΓo'.B='{Ϧ<S l6+FMe>Ex gZƾSngȭ?{Lb(6<4{lonJP֡C1hv|9VX*~}jS7:evcs*7)sҴ(Tߔ꛿aw}nIn]n ʇ;6;nQ/ M=DԝܰlnLٟќ]?/l=?]^uԦw9uH /;- >ExJ;ˉʳO]P7ͦN>uU==쭿HϩO {9»;cwF'}nOEQEQ-d386ר]_oMTS}Mg M]ܓmb7奧$:c Qoޝdݿ>4UFw|Dݺcwlw{^ z;3Ca4ݘ7۳?9^xwGgzMvs>6Lœ!j_vn[8}vg݇!S2jGև'6oM}J]s)zz[iSs/$s6wwNȟ;=(H#[(-KfFqVJSSFyb23=wdV>ĊǦ+s6ӛz}NԦlOFsn[ƭQbSuޫp9-SPLRvVNfw"{Ey}b?/Cև'6a[ZIL>U,pJߙ03?a"]r~xΌp<́n(("Nfߵolfg=gxP6ORߋv7exb;zxnXy^Ap uluYIxvh7O^Xf'n Š3֧SP>>Xyqb|FzSۡωڔhNmø5Jlw{N9z[c ʿɝs_`Su](ϺCuֻ9p>{EQEQQ等^KfFqi}wʙ3uG&f݁M89|ꉒ['=n˞: g3MԿ>0ģA#OQ; ާ;PTyRSP:z7> stream xK\ DaB23f al\?ׇ'友̥apoS {6YU4ԄYά'Km;Cn;6[5a6CܿmߜonϫF!-FöTQO;YoUm7gD,:lUXfo=.Z~ޜq*u * wIo B78Z63Lq>: {S&i ׿^-%ũ^>瞩lջ[ZVjզu1.) iWmYFݔ4{Y6V] 9 Oj=T Wgt}8uu8{Ο5 :=soK _5'JJOz?K՜^MחV|,EgoGԞ;LJq/bywCK&lVßto|YN4I쿧SY=[߳9S8SrpnB,)R6;{vwޑ'OjZVUJK[5a 3}ğU%۔J=);il*'@r{ϲb6p$Wq~?k-Wmt{ޖ^'aIVjNV6n~R6!9,/9ͳY΋ގN=wBT_ĔTS慎_DMɭҳ?I'߆:ij* WOmzF'gsp.XS楦mv*#O,jZVʸl yNA=jgS8Ot“^'OLә5qm-mq[íXSVxyA]M&D؜m8UXTmUSm;=!UN~5=J3{ws7]e ~gzmUpƩN{': {vo,:@uTTzxe|ʼԴ}Pw~¶N;SRkg8M˹Njžݛ>Nug"?U4zy9"2/5n];o-jZV~wN\6ON zaYs_ڶ7>Nt < *VMߣ#S$-9w.)wvVy< 6'I-L۟NT,*O_m_ OE|qΉΝ\g33jK|NO ϒ",3)[N4E7쌜Y鶨'sfVX;v6ԄigK':rgVn\y3d rG,uJ9]swLjZV~)<=y:pUNj~{Xix԰OׯBm_L':^QM&Qё)W;;V' gIp-e'zIvFάt[ԓ93+U\P;||YҿijB43ť?+7<z2yJ#y|@Wy񮹻VGH&~jZV+_J _qF**?ęNt4߅8N6;;VOLC`SЪ τ~s JE m#nG* ;hf6H$ziT }!mT kgVHxtxRť@emH 찧S;M9gƕGU孖r[w?Nn^)l8mꎐ~jZV+_Jԗ)?S˓cq?] sHLDg.I]~ᄊ Mp{ImXlȹsQOk:iT= 6EH-LXj?70{/$YTچ;vĪ9ѹSlfÌIHn ОLU͠K8ۆ]M%0 vfԊG'U\N<_ֆop{:UoӔgVn\ytzYUj/usF{< yEgj!T+s*qutwS͗!&lWtٿT:3]vOG@W95N#vZV/ŗ[EuIbvq9Ovy Q3w:S&f:љKvloURbXȹQϺkhYSp*y"lE?DN}f6!v1{=OɄU外?aZ9|8m:;M 4>|YҿijB4f|n=Ο;O՟3Z}oe7D8y|4y]㴩;BiWjZR|)?XTlTq,ld_o9s3e퍏j$HQnGV%u,fފE;;V5g]M'RC&?<[M-?{/VsNt7mfÌBnw=n7LXUNjV _S7L<>îۦ3=OӔ~N㣌̗!&TOmvٿT:3]vOG@W95N#vZV/ŗ[EuIbv8O!T,qe˔:S=3%IE n{~ɜ%a<rtԳZNZ?2}M'RC&?|YҿijB43UsOmΟ;O՟3Z+[w?Nn^)l8mꎐ~jZV/~endstream endobj 273 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4269 >> stream xK+ICQNHCE3u$Jx|:93UߓŔqVb鎓՝n\d)N$]wETTn{N9"l97u֙]IB*DjyhՄ?|&uyza3'6KK7C%;Waͧ)E{63';Bn_YU >=Oܮ&LՓx{ŮBjb2Ի?QڐMStfNӜ?g^*Ι¯Xw]WGsA˫˹k뎐~jZV+/%{%gt'ΪofeOջ4Iۍ)i': d6/sؒ{|yJ*OU)f;k> '3;ImU VOG|qΉΙ\g3s2:TeK΄23E2;zW5%\qCENN֔ykK\fM =dm;:tϚW~ =*O2Ih '8msߙ)m!ugjZV՝/%{)#\6OB*x-fV$j]J]KhۻHv/訐jZLkR>'-'q\2iTHZbH-m>a*Úp~R9dڦyhYkt)E{63'SNE_ \)L8!3S*wu]S'0TDjMfѾtepߙC&LqCT+s4pv9WvmRwίVjZIR⾗?et'R.r]u‰,Sw֔Դy*=+isn׾6N;O۔DťrߔQg?=s O럟N{/]dQyJa~+T3hfdtʩH7+V_ SéRE5eW 3t_ϵ]h_:3YiYMMX_5>N3?sygCT˟YO˹LꮊtTЮVjZx9_o3.S?!wO)kts5N5fўS!^QMsqryئ$..+.?Cd؜xKO Tw|\p{$W [t)E{63'SNEGY:eKN]ʴ=.)'Lw|5eE霹=ΚN7njB¨%t_S-]G8wBOZ͢+|t]gRwU[vZVʯRGlNq=UWI94uNŜZS)SzIM;Yâb}S+LSMTş򝜜wUXlSy"2 #ҦIsz.=0S VO 'K,*O_V|5`uKwΔ=QSQ3\2m]~)LIɓlEhU!W$2+eiԄvΡR=gVHxF[V^1mz*Oy!EW,Yv9WzW%'sZVժW%) <)Ωs|^BT:}2eJ/i':+xXT/bJxŜzS mJ"R\DSF]vV2 qNϥ'f*!*IᄳaEKjUN{ Ι\g32p:JpVTkO5eWi3!yҔtҒh*Dfs:͟9T 4a+MOW婖?/DhE>k:.犿sWdqVjZ*|C;eOy{6;ܟ O x-''ދ?gVɜ<];9e+l_%CթOB>\.V+g2*8= {IUY8DXbQyz+<9335%qg*z#=*{Ք]ure=w5gſPQ1gOU!Wt7^*8NjBuLgm>i2+TWS!*:63^}VjZߟjqԝ=U~RSы'E3dΉ ^LʯR!'!S.yg]]WTZ q|„$* s,pV",<}UINV|՜Ι KZ]GΊN]hjʮ:9ӲһK+r/KG'5:Mu64yJFTpLIɩ|J^z>gVjZr͸l }BՙWWKBζp;RWIfKq&IU-0-SeH˪so]Ьm$# :7ci}VT&9Lw霩);pUaN_Uų;gp:矖՜JmiqNv?8 ^>:=ת4gۛ?7S.۩NTS'sW6z9wVjZҤ~f\y>V̫s{IH!g[$%pNtV8ϤJTE̖c2$s݇Kueչk.hֶ{y1SV>+^*]rˈw;tԔĝU0'ŪҝN8U OzJjΊJζ8N pSBpV/utkUgqv ˟)'dqs\é9+~SEjZViJ~z޷l~9yv>]\ճO)!4'V3uT۝= 8g )IW{revʶ{Wo*gq:*i=Ij®I2pq<ν3tԔĝU_Vwfz_HgKgZ Baʮ߬Mnz;BNs/'auTI)w'{>gۛ>=PA:9B y^]E8YλEjZV9}qtr=Y$lU=kHK3ybi?YG9OÊBs&P2 $,z)'wQll'qfrﯣRVəޓۨ&d- ;LLMIYe|gTa{w jͪǽ)^q#t4;>{B|pVGurwsv޿9='PC/!TKWMU[ZVj#U})'B9v<4qVZ,4cbluLg!KUwVg6Cٸ)[?YGuG{R՝ՙ͐뼄j6.ڙEx:Is_2/*-qsugD:ތYRok;$TPq'8'ҔĝU:/&{{7Aqugϖ&sVLʼn;LUO֧,Mݟu/9y'+%ȭp<n /Թw+~ܵ9Ί )UtK9?ɰlNZ^Sg֮&[}ZVNg;޷9,]6 RzHκ 4O,s O5k|_A;T3ӕrOn\*uS5=3*-qV ?!G$YnuN9'3șcyf͍KXOpVO);(2ľ>Ug:{s>u7gbꝿ_z*t:> stream xA9 C1M3l|THvކHU׵?y֕t}:pxO h]f:gyzbWt3ԛvC>_שPWXQsdmg){i>i]gTϮJtָSPyft'R[B0΄Sdp ߎ43uN@)wOdouo1 Qg~JNW&UeU}Liz[IK?٭o$ЗOyE}&w ssdO hȟ)-ĦjdU?SNf㙮a'lަ|L׈Ͱp)SySKCӿE$(TvRv;u[ew*Ni~sUNTzpg&B'?4Sfm÷gr~(ԳZ?T+r{HȪ>i[F]i%P7u|Zqӧ?>P;${ȜݑFΒEr;twz]x|;J'9=>{$L:-K$;U93=nھ23t09{9pj'6sg} Tx)ϗγ|^\L^O~VwwwNgޞc(Sz;uwwIUY:_IӔg[rjoҩٵ3×Rf_+vTNksmQ]`TMOsr=]dH#Nfg";=QYEZɮVi]d=~&ږy}%OB~|ުҙOm_:ڜsvv8 ҹW3Uew*NiKubYvOTzfwg&'?;;Voo1~{)ʤ /i{-Lrd7Zn{fK)oYN*59׶N%ߝ|w${RNYҺHȤpv{Ӽ>QYKZ纪(OUJ줳9r}'i|z͑$[=6Sdp.::Ag3|{JOtO=Mآu?>]u;L9%`i-5N4_wIUYvy}^^M)W}T=ϳ۹Ϗ6jmOsVyEB9L@N%ߝ|${RNYҺHȤpv{Ӽ>QYKZ纪(OUJ줳9r}'i|z͑$[=6Sdp.::Ag3|{JOtO=Mآu?>]u;L9%`i-5N4_wIUYvy}^^M)W}T=ϳ۹Ϗ6jmOsVyEB9L@NŝrwWsbU2n*ə+NHǃO?SGBɮzM9R_#>IAF]̞pJ٩dS76Sdpן;CwgtϞyOIN3uSOd{ICuo;v&Bۄgmʤi>oUOYW=ߞQۉK=%oںl;+$8L@|SNkNiqU2n*ə+NHǃO?SGBɮzM9R_#>IAF]̞pJ٩dS76Sdpן;CwgtϞyOIN3uSOd{ICuo;v&Bۄgmʤi>oUOYW=ߞQۉK=%oںl;+$8Lt5md~st'=K2tu"I&{S|ڤߙw3]/A'||aF8K` }<$Hfkۿ;К/p/nt*nM iT{Sɉ%{g:$)>|m;ErΙn]\= 3]\4?S~l]Dw“` Z>W l-w|ZQ2E_ OS`ޯH&A{| n__*\&϶WO$|= 7 /p|=7T g2 ni| >e ~»B8n_Op|_Nw-'&NS4endstream endobj 275 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 513 >> stream xA1 G,=pAb€3خ.VIW`s y|uF ;I2"v{Ɲ o!i@7ZP^@ Z0u!h@ z q{8#vQ97]A ׅ.Nހnt 8n9w9; /8x]p9; /8pc  #8pc  #8puv@.t}55u!9\$Fjkm@'3 C4h"@ z y]d1vFM?hmendstream endobj 276 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 277 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 432 >> stream x 0 !@)rb%=eڲ+}>>P*A=U3[Av9L`ps*UsXWi tH-ɱ^}x?X"Hǡ]sf+>s# t npQ3Pj!-^V2ɳ%9v8-D&9T;"/E@Igv>v õ05jTLULClI/eendstream endobj 278 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1294 >> stream xA( C f aHcd߿> nyDMvFSqסjwIٟfx-s؍ ]wdVYՇ;We d[:;sc okON!:PN%[y3;5 wn-$ӳ֞6CځOtnUK9=72agVvjޑXeUVޗ[H&goW *zKkWf͔s&_"7fЁU.i |ΐI>ܧ*\$@E_Ӯ )LDځo͠5Q=fFi |ΐI>ܧ*\$@E_ )'LDځo͠5Q=ԩU39CyGf`U}OUڹI2<={ FM{+k9a҇pbUs7{+F*p.2c$@E_qVVq¤inQ=oVT#T\eƨI2<={ aI‰zVM8i(3FM [U7o[X > D q*@ΥQf$ӳ0n|Ǵ%}H;p 'Y5~㌌۫@r@ΥQf$ӳ0n|Ǵ%}H;p 'Y5~㌌۫@r@ΥQf$ӳ0"cVa3Yg> stream xۑ, CB{*Y#& XM~n s?_?Oˢ͚eF%KslǙ=WZuޜ&z8\s5Tq{E?Nxٿb7:T:<qNTgOhLRNQş3,ݾqvT!Tis읥=/m':´%*̊t }r)Z03I:m~]M",%mߋѱm6a/i̊\_,!B]}r)Z03I:m~]M",%mߋѱm6a/i̊\_,!B]ՃFr{xaY[9zrzu43cr {|Nnұ%Pic%K.D͙ϋHMɛqn}*Qr{b{m4sr>,sm$W9Mp"9l9))|-u6?+[gCR{8N.!/dc}ƍs+{2-$4ώ:vNҒ|n$O$鵑6@cV~m떰wDN,篜^.̘ܶBS۩tl =Tژm>G 钯?ws"R{&o3prA4ަ^%'M"!ٍvx,|]\e&HfmSWoʈ5u8Kj6귬ty+:'g˙l[N1y {/GqcTפ䞼WLA|<}*\ѫN9 q7gF*l[ff̝&uim;In5zҚL|M#&x^%LPvX'LЙ=m#)xcOQ/* \O[gN,}2ow-HCFΊm*3]׹ݲYYq{RYAȞOr8,dIMOV9uܜ)m+jq!˹–|.%5?[u+"ss{V=wL%ʞIsNrEW-Rl; n,OwGBS;{W6p k'KIMfϤJmص3P9;+ظgM{N]2|ú'mזY[O9֛Tlt:NOo /6{\97¢Jr!;ۧk׼,}=ڻ̄&KſP06KTwAIH]2Ni㜒yɊEq/h%.ywݎb\g_G5FXR_+>ɒnu.{nN9M9]M_} η./NfC8=$M:Y=g3Y!s \7dΙ<gl΍ܹq(3i |^mĹrnEB.+aݟwOפyg9Y r9{w M&GסamPͩσ8s7>e>NFJnLNVRC&犾٤=ϖ{9IU;x8s[Z~W<pKFSp'ɔ'i LIxAj"8g$8$Eh==O::9B'g'7Y)%oĕd{;_ Уy6ɢOQ8Ytګ]_- JzzȤ\ї3r/0g; j'WwaKOgظ\}jp>:é*a#_͕ÉnLT9 kE&^NdgnsH} $a$A) /w^TR䷞LIgwϿC''BL~\&S>:忠-2/uAzT6ϖq&YTI> 't:NF;/>+H9}~!8h=mx> stream xK, Caߩ=;BFtDJ~k襦'<{CxREq㙺g۝7"ixkմ{ם¥IK_^ >Ѷd?j^gg{Fƣ{?4PwaI>{8='%\-q/ Y7駝 /Ԑ{'UÖ́j\qCVx.mC=jzW/r^jZ5!¦U]dyzq;i󄧙Yu5;}?dٸCH'ϻs:N÷sMU%{оx9KyTg4 uR!T{ؐ3eW6qɶubQ9/gKT,S8{!efDZ[*}uf_QújY_ݳ Hq<=;\a&t~SLz.O 'yCWrgOҽ'qc ŭ;t:묓<_B:zhΝ&rLm1ڬKjZ^T-g'%nœ66Ō]\5dɥMyS߹x/+TWTg4I\B)㽲%!s($ sUZN*ݦ<)mә=qvR7E[eYV~o1I՜Ϟz'O"OJ5RٳH<ٟm{O\[~f {{N6?CV8ImN7@WUu\VՋEĭxƦ ^!T{ݟ2+]I.$TO']Rm!rۆdjmzn?ٻVۼuηOO.xԛͨjT̀s:Dhgz"gYRgTvṅ:vU;ןι߽Yigޞ-ţR.?\qE򐕵')sZVo)ɖ~z_0n,ȹuld֙w趣BBe!T{ݟ2+]UN62ė߳,Sm{6 Q8mE M'{ oKgĝ]^ n~,6zzY8T<)&='RgT!+u3Oݢێ p9Wܺ_77msum#jBIurN7@WUu\V+ ߵf![U Rқt*lu }=qEv\bfx3Wjt*/$.l^אv&!TW-g9b&'nXݳ)m1̝h(-jn?ٻnx3]<'jpccq ™OYO1<7T:kg^˝yvU;ןι߽YigޞmTOpCwNNp¸rڬKjZ^Qc-{<> stream xKV C i2x^~DDMQ]Z_'úԴH,n]+ťUQ<;W~)'+{dvKw.EL89g"}ə:Da'a֦yh » IWyǃ+7+z5;tsqkt x6OwVkumfe[2TN=iLvJNuYg7ÛZ0SNYJfNf䧒B*zh{gT鑛9qSxVjSw>;ʔ$++mj[o-?C攧+<8'A]%aλ֩~A%xxݟ OUp=W; uO<4z'\egHO7fmV_BGeCuځEEk YIׅ?gHQ'.۔wg U<Uޫa ԙzr.Y6ީ.+fx]&u)Klpݳ~%O?g⟵!=iS0.>s#ܧt>q2劧\jZ<.g}z' sp~﮴yf~{ l S,u;Zu&<%V-Ý__$MwW|۶;7!=lrp*s.;X~zI8e8YU9&p^gEu+&ig^tM8g݈3s:N)"+ urUr6sn{(M苫NwIolDrW-S]VY!ecUTfvўjy8*\%$Y+^F,[)+ca8^K0jZEPp?+cWq?)۶ݹDwŷg'S霝sɖлN)ɪϙ0 T%U:+{n^1VL;&o79FtApL97V'u9w]f`󭒳SvSElB_\uGcNZc'sjR:7u/7TS.ÉW*!Zi5gqߪLY @é*\ڄ)pV*_ _ ۣRwNU%g$쏟֙ B2|pV|pNJNλPV?s?[s@Jv':Ä'$p:o'N~ ^)9u99딓{6ǮY8wOl*ɹ:u\9*99e=UM:Mbév`u\+i]ȿDCS%ZN;loroS3r{;_Vrg= J;u,Vj/B 3G>aBBVZܟE?~Zg&Dg)Y9*9I:B[ų{lWqv^+y۝ n3鼝;-(zQ־NK9SNٜf=Qx&zr|lT{6;g4c,fځsN?Gxw#7kaNj9i9!T;N sϤʙ[|ZV0*Խ3ZVUri;!sz:U-J-"qN'a=ix&:?O8YU<͓mWedrŽ9l9Jv'z=n~>'*\ՙYm_* :gg]fcw=uPzJuO6YIy4qtUpB>$o!TЪ<[p5&Pk|*S:9q&߅{ r63g?Nw3JHOŪK' N&9_jZ+狐M?9:S]޲$,tݓg:!Usq+nwmaq֫|XԻcSl^$=wlw OMof픐w\=yR$(a{#W"3|Ӕ8l YLzZV-tuY cftyrUwUp.sF gW:.gY{x"sz9gΊ4NOEo$o32Y<>Uǥu 3#im#s=wS%.דeUtwUթeTS&N+89w| (OX$*:6{L\͡u5iDJ@$)RâEM폳=Y.1av4SrzWsm-R}nuϊR%kNzZVJ_w1|~gٵm |~fXsv]YVDq)ilw_Oգ'C[W;*?'g:8%O?>{%8̚8W*sxz9Qr**沩pi澜%bF?sw™ܣ.} (>sP>aE. ݺ@xfF~w,evxs/7*,-"DtljRfi$֫ߙT쌧 $[3Ggr]jNOgpu͝ij"4-[!duqvr'rWLgr~ǧ㟸uY*ssYeO/g"t\N_E\6u.mܗuBTQ(W?gUU8{T6=7Ez:g'w3;\!8 [,sN|NvWâEM폳^,Zݔ9qz\;Td|{LΰSM,δ>pZVS`}26,j\$s]UT bVw7ѹ߾9$zv&UZܬgѾr~uYguΙ𮖂M]EM@jZX endstream endobj 282 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2243 >> stream xKn1 C$o,zGYdQ6R1__9g[I~Nֿc[=4NdέTʬv'߾}pNXox.s{<[W+,rOHn³Է(2ϝ{eڮ9]"[tr4|)OkAny:mR#(WlT.+pl5'Dw:Ť*wmY*ڱ)9=^EvoqKϦNݽ~vUӍZrV]V³"{rf{rfJWnqK6w֑׳~^UϽe%+:g?ݦIEPot59 oǭnyM̌Oaj;:_}=ϩ$wf/E6-8)vubo53g*YU'Y9gOv3χ5>*$_\gFSЙds='dg?TI$:jψ|{gP}Ot'@gnt˃hbf|2w#P9*xN'ɭ<羛0)mq6Ma{̯1w=Sͪ?!p={[ݭ}>LV$j>3'9q$<N$ITS~F;k{}*M;' ND<v> stream xA 0 G?m:;T23e%<~|;47@4 Ω$Pst$t' VgN%:ؠO:Y+3 @nc٠{Io, iI136^@G Kw`Fm 5[S`# ;A0M#6`E7HzdNLH25fw :Y0 @encflPu@G Kw`Fm }m *rlcgendstream endobj 284 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 285 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 803 >> stream x[! E$wz)Rn J,`lf~~>8Ȩsf^.@yNΊq,γٹvω-hEέ)2ϡ$ODq{ΙZ{պFf%6v8 lvs4;Ab$y Zsk s(oA>S)Qyk]fgzZ@vKqgL=/$rrܢtͬ K'ck=Ě"J2T *oGgJ[{ӌuq/ d'{ ߌĮ{pB!''-:H t |vc>lHendstream endobj 286 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2145 >> stream xKn6E$w UYU4?&9Fs}{S{2oe&!9Mo?Χzh%FbЩFUuʜdNufT?cOy_Crkosw3UB9>*#a;0OȜ<=grV鞱jw;Ƿ>Yn0]n|-T`eǟf73 }sX[MȚ}+b9ig<9:kz0-OO49uKs~;z:L~Z{w՚Hbw4]Sff[&YެbG99VEG}®$0~G3]F}3,X3i}5/jv]%ƾ4O)qKt|Y3cWUNyB.O+txvSͯwwU>a`w|lMVviv37՛m߄w뎪/>vV͓ȩ{kG tNSd8i3tmg;{}Q*+& O35ukfgj2Ůͺ*a}XcUT{d>ڧ+隙J 3wY;e73*0ߋ5W"L6NYaUg;O缄L-}5?v[U't]ίξ{NqLLKz+'2tęUrk&*i}5ar}y)-Ӿ>kb˜ #8s2}z55am}7uwoM@}endstream endobj 287 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4059 >> stream xKn$F C d7TŏjGezVׇϜ~'wzݞz3w{l<] r.-y wqVErS&QqӺzJw槴"3j z΄O'ʼn+9m T:b˦Oڻ=XlqH,N\I =l)7^6g~qb6CYnSVjZp~{'N:^<=:_ǽ񳝺<迈?):)JKx,+)קqS'Iӕmu&թ'BlH_D):]jTiQ\:vӳ)$8 ,κ?S!pz6Շ-q=Ty;A=::B/rGT)3cd}J3)a}{\ظm^M-!,iVjZVߓȓW}q'IOm\wjr/Rwf^Nt]m_ğyә=Xlܶtu&ijZV+\;'N[8ߋ"CW.s۩'Krjz뜊8<]Is.2EiyqO"O *޸V3iꮻ> SO\:*uzoO')~gO*"5%r;eS)u:zJx*+nSԕ\N^Z=g8ߑ:)tVgG?̊s"]n wMq#gWSOsō+JסK7ӴjZVK x;'N[8ߋ"CW.s۩'Krjz뜊8<]Is.2EiyqO"O *޸V3iꮻ> SO\:*uzoO')~gO*"5%r;eS)u:zJx*+nSԕ\N^Z=g8ߑ:)tVgG?̊s"]n wMq#gWSOsō+JסK7ӴjZVKiiIڡ(>;'b')'תfW|ԛ"Oȝs2"TD/M$u7{_ιworِNoṈߧgsv^"N{՝^,]߸S]eIW4_GA=%\UzG?eNH~3ul'"\^ڤ>I{O=qT\IroɫjZV7<;qދt:7eƝ8խz/LZڬ9}t:d6)wB>:)ĕtEcC<9&/M| tFGgH:s~x>$)," t<ە4u޲=>9=uQNIz ~&ĝ'T7aNIp@YDL_M‰$)}=8A=%i }l.]D<9t"O5N;;̞緮2œTٿ:'EVjZ*J#ORŝ$u7OqB ՛ϨR(~;tN}uo1Ky&ORXS<\[BgUewgxXiJ:OoYݺz$P?OQoΉq$8 ,NvsPo q@XSߔN㠞4Tr6KxN" f:iM٧sq'ɝf[WI_w"SVjZV%| ϑ'N[ ՔiOUa"L/U0!')N^t̋P%ل/u:In K s}8rKkoWRO zǙ;EumJJƮkVnMY=|JDh':gJR/!>Eq\N+'8uL-u^uos^3Nl3Ӕs4Sl򥗞ܙ" "Nw{9q6O7yjZVN B{sN[ ՔiOUa"L/U0!')N^t̋P%ل/u:In K s}8rKkoWRO zǙ;EumJJƮkVnMY=|JDh':gJR/!>Eq\N+'8uL-u^uos^3Nl3Ӕs4Sl򥗞ܙ" "Nw{9q6O7yjZVNoj—C&OɅ̪nE9;̿7t'Is>t3c'Qߖ}N[2Bfؿu7ϝ"Ԅ~gu]-.J^KsGǙ@'p:l{*yn ϖ)Bϥ S2:~vC~?-wqg}X;6iL'}&j$zi=O~} LΈ4nZV/ endstream endobj 288 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4188 >> stream xK$IC1M{I2#&DIEϳ8 * t3qn%o-}!*3DΎ vNsS1vo$_Q»޾1S'I-!uR!N6}z+{"Ԅ~~kMM-g.|torI8sNN:=A~ OJx\gR܎ Y*;?>U|{C~ߩظWմLODiy&jSui{|}?p&ql4jZV+TM7;$uwXחQsgj<|xC$uGLt{uZѽSf}%dqz..AoIRwKH/s?YS^~eNqZ϶߲9=!S#|x͸_}ǗXr&'8Ilo\-!\VjZ+TM7;$uwXחQsgj<|xC$uGLt{uZѽSf}%dqz..AoIRwKH/s?YS^~eNqZ϶߲9=!S#|x͸_}ǗXr&'8Ilo\-!\VjZ+TM7;$uwXחMEfd+ ~ꜹsL9Y.%ߠ_oIRwKH/sJYyc`rhYzv-Sz{:%qșHpՓvɧpUN%:w~V$u :Yi/= M)y"Mƹ4>}t9t3řY5xݒ'[zjYâO=l tʪرjZVBP5Kߐ O-!hyk<|D}t9t3e+f64OGsBzcNʍzfSSѝ:+յg+Z{?iERR3ӻ&2R$p&Wi&+iz7.yrr@x*<f9Yç.n O\_FisV# DmT,6Ow ԛZVj:+TM7;$:7E yҺ%ᩒsësqNI5y>W%ADx<jΩ U荙:Itn*7I녛yO=NEwpfVמ@h=w!IiJ=BL,#JÙ0_u N߸wV {gSDӛQd?*<sQh|  exʖ'CJCY8+xX]wSɳ\6\]Q)lZ>K7z]+s&O-SrY]yi& ߞȍWV'wh՜9= iz8$_lwg=i:%O$3u ':Nx;-dLOUzjYSBފQ'5gNjΊjZVՊ\IsSTqs6rS9u#sOqcwmLX$nd^3uU-|RP @h={zwsN~}yԿ^%OTgFQOĸ9Y$UҲ$'lLtS9&6!+9o߽* =g?Pyށ󊹛ʟۗf zjZVYP5KߐopU;o͟T9$uks;{]롽+D9o0[8Y$WL$:7EyT'u4v¯,.Z޲=>޹m]g__=njdsr;WIp@8;iET=:1pN"pI>l>9-#T'rHJfNf[woJCY8+x*Tw b&Y|^jZVo+TM7;$:7E&V/^}GT^E8U޵xesnQTG9o$ޘD禨ܷz+'9uSgf~['gn~T7=VTIs9׫$8 l{4"ԻZx꨾:ÕΜ}7޻i:~NVߕ:ٷ Jӊ,œ}!+9o%{oq9ySU՗'n jZVQendstream endobj 289 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4188 >> stream x[$GCS1DMRB{V<?kJ%OTߤF,SGMlWoo㽗S[ M;IoڰRTfu's!dd?{Ù]87U߲r9q³Y8[B-dMYVjZU U Ngr-)tfW(#S]e]| -7<ɚ 7WU8y<;epuS<֝|gzYp겤]גz=>9۩MQBTeI-/K湥7'pqNI_V&'oKC['Oel$6$a#S]Ԥ3g?ׁOQbSلKsjZVժ"WoHuR?s!Ȕ俹s6PFhʼ[nx6)5%A# 9o6Spxv)x; f%TeI^ï%{|rSwʙ©˒[^ PsKo8'?O5✦7&MaO[ثDwNνH~ l)8IFhzI-gjYMJ~ jZVUEP5Kߐ,!7B)ss%eSI˦oUIY) ~ƠKےZq-;epuS) W\6ܟYlIgRϙrvVY[f񴄤H`Cxn dR$E8usH뤾%L 8 :[ȕDwNɹ AzH Y$ "q YSΜ*]crsU\>eZVjU+TM7dS]7]M1%o.utl 9IY9uo-~#)5%A#t~[^+"e,nbJ=9O!ˆTߗ"˔6LO9Oj? W}k, lC-,yYqNIԷ B9{?9R~a#H ?$a#~ZD9}"8!kJÙqV|S uL]N~KçVjZR _$=ufqz.DB8'm g.s#N2;Lap:I[LIzgq)OϋKx'\*[G=EwuMI`C7HM"ԵL:KXuv ]| WuB7,!s8usHN֧$p3q6C~KD9s.祍 g{HfS(# }=7q8sV# oٮcrsU\2eZVjՕ+TM7b&\=qNU"\F> ev@/t )晒 & SZONT,znksUoRB1EkՙteOev=7v')=:d{:TopG)=ߚMSUn ,E)6gōW˩]N]]gdeIH2[݇Kʥ`{87)VÉ+.u du'pzR;[ʿ'.O(g/QFųӄޛ+ΦPFNEc,6uSTwqy)g 7B>Y~'9BSyY;$Qg,[roSJ1u',62pviYSffO衞گ,ɻH?N5UwвNҳ:N\luS{}]dyZ&#W/'U\˽=(˼e#MzY8+x*T~)N1K[VjZ!R SnM4!;ե"ZVj% #endstream endobj 290 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1412 >> stream xA8 C`ӞE I_{mI\Q?^o ݥwiW^wez55Nvn.&g\u~w5I*l |jU:䯯]1mzz{55%=F>g-۷ogsZWIYdKJaw{=ҟ]r&7G~.T]~:i > &?y/.d/uru&0GZ}09>=F>g-۷ogsZWIYdKJaw{=ҟ]r&7G~.T]~:i > &?yw|2ߣݹdf5NL5NL5N3܊rx n .3܊v!3܊rx 56=jp+=.X{V /?Q!endstream endobj 291 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 296 >> stream xڱ !@i衠DtU48@OuH4v4v4v4v4v4vik!endstream endobj 292 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 293 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 972 >> stream xAn0 CoPd3"-=h=0D%}|4c^r" ҃]3>yҌ'8Gκ;fldށT~̬ȱg[̩ti T̯YWpeޟTI3P9>yPeJn2"ן mrz0 $Su0RNd]^z`;~TI3P9늯r7ɼX7ϒ^+-+Ujy z`NHH04`~Ⱥ |+~cw@>YΓf<9r_nyn%m7RWZV˫Uu&SAJ'6`7OiJ9u{AVnT:ݧ:OYW|2}d $`Y;ӄtU] Y ;*M_4Ӄ9N m oӀr" ҃w=v>yҌ'8GκY#[ w ڙ&즫JȊdWVQUQm2Y̩ti T̯YW{lUzݧ:OYW>yĝ|]m] 𽣪d^5HA9=S: _)'`/=0߫7}w)Ou4 5Α0}d $`݉;ں\Y{GU-ɼkfrz0 $Su0RNd]^z`WoާO}OquY#[ w Nܙ ;jM_4Ӄ9N m࿿r+vnendstream endobj 294 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2605 >> stream xQ$9Mg(IQ.,w_] u;Wg r?w:!{ :7M9W}- @Й?ӉשuwV+~Km2^C?Aw&@wNa"Y8WՑ ;tOV禉1w :g:Q: <7w;N mx;Oջ|0 ,A|[\p~s_;{L 3yZ_wgpӆw}~O;g 6;wwB'oҝ\8S`RpB>^g : fMO;\q W9Jwnns\OIYx [xû4:7=ppGSs)t^o+ݹ̅s=&g)lex`pNm {𛳿-t0:NYswy8;wB'o~[L8S`RpB>^g : fMO;\q WIm1A8\OIYx [xû4:7=ppGSW 竺wٝBo]NU{kx.f&ܝudmuޥG[K ijOKݤ-_agS?;tz}pwI޴o ݽ UMtqv|)ߟkZm:Scʌ|v雹iSdjW[ v&smW\ש$MOէ)uꛋ cg^Sԯt֠ke{'at f뒿itz*dIpWs{ew :S7ѡ=]Lй;[Nj9tK̉矗5ԞI[4+v+{U.4j5fi{):tUճJZ2թWiӾ)W.%t_WPx{gŠ*l~Ԓ0%ڞLrNNB:PXy LT׭Pѹ^33*U.~{#SȪVJ5]7]7p:srTUܗ7=MܭsB,j+i|j+ܝU@wU*;sQ^9A]==[=]6=6Ϊ)u=ޓՒtOUN&k$!]é7_ IVC|t;Ug ޿eSvӦ}S8kMǩ]J辮ġl΄U>GiٺVu%a:+J= (> stream xKlGCSGT\9MbT?ڡ{ Ϧ]&}DjZV,pI&$}`"B=KZ:M9Hf}qϕvz%67gW2ȉp9n.߄v]99[㻤xq֓k-F]9N+sDINRjnnwښ{ٯw$.:%<՜+Y!qŠsir4qkMo*+4e|NCMML.jZXRRlMܺ–|yVQ(!Iӓۓ7SFꜸ/r\ō-P=ջ ѕ-a_[Wzwܻpݷ"El,7';*mkl]R sqf{w.:WOP{DUa V:q{vHџs2IﶽJZ'.{G澔mf\)x3Kt8%T(/QUpBS7ŕYy&Ru{wSq7z]wW䐣v}ᎭS75MtI޻8ΩTzSnߒ"^lZVJ'klv̩`r1|Nu]jy꠸EfT,;gI¦uZѱ9gk_n{~ZT8^ .ݭS.|}q9i+O7Xl}Yfgqr4O%c¥N/٥?5%FMap_Y0미ڙ[#ΙTu?Քy_jΜNQ=OM%"ƳKWq9N՛^+^#jZXJ=|gS䷓?I]N[2|Nu]jy꠸EfT,;gI¦uZѱ9gk_n{~ZT8^ .ݭS.|}q9i+O7Xl}Yfgqr4O%c¥N/٥?5%FMap_Y0미ڙ[#ΙTu?Քy_jΜNQ=OM%"ƳKWq9N՛^+^#jZXRbM8$ _s|yS\$hf׎0E͙s.ЪYSIrLOxw)S89mW(⽜.wén^]z/.gg|X̬)g:p<٥ ۔W9gRU{bSzw|ߗ:u_KsnћXWn)ɯc-8<-bMvݚp}o|^p|jZV+D <4O@Ź>ww7Ifv8{ SԜ9wy"ڟ5 T+q\2sOvu.R~=E߫7by6Ϳ{}ˇ̚+x8s 8=]My8s&Uw<,6ϩ{w}3]Ut1_9u妛:&""m׭Y Q(=NطvwǧVjB{CMOjNvs26ޝKS ߹'|wVTɰB̝yoᄧz}'#Mx\)&u;ݔ7zOȚ#dp7EfUO־\朗UBlqBCx]TouQ|8;vY 4ؒ|/uB[oV)Lիʦ].N7OXStyx Nɼ)ⓜ|~ԍijZV+;~3)Ddmfٽ;t/sOЩaׇ.%ę;r37 Og6N\ G>SMޱv)o*5EGn̪|7}9/>),?!4;83*LqVw& hi$%^\ެS< ?WM>]nh':#l3͝yS'9^jZV:yG#X%7^20{_VOs8+  uMFtlg \  YJ|N|6)J5wJ~볺:%|BN >ޝ.['sbO6P_]:MiT6U:soePwp_Auǖ^+sg2v~)yȾlL'zѕ<Ά;xz'nZV՟=-7d\aN39upV=+WWe] '9QT6qv9}N՝yRʼbyߞ4ԯ8߫&{eKK u*vrlH]N&xH Uݝ3+Vj=-REBwY95rx/^pV,Vnܿi]voq!*>-qJy]sJzNZܷhƧYkͳgg7eMgR{=)'N<)e^A{ߊoOgWUo=B޲ݥ׍%EMWV;guqOb9t6. ,> stream x[VCTڅkT5?yx<]{!NuRCڗ"OZ$BR0Wuٟxpu^6j9̝:i_+dnpxho׬^y "jMɕ"K 3bK3g.V"Lh=xrS8@n^6QT6֍8*yގZYm/]ndH˿^%=Q+m*xY:o7cR5"Ks{~"N[EV"Lh=$i۩04?`)N_}]V/Uff]TglIg}y&u>ZoJu煮۴KHyYSLДκ6\VjV/3[;#^6[UY'גYS[w`{OK;v;򯸗/0pyqOuJr^aּ͘b"ԹbͨȒ?^~6Vo*3Z'.8Iv*w"亁+O.Xʤ׻8*stK.zһY3w_:cdfIϭ֛R*'6m~9e^go)4e. 9WjZ=0u V@'pvUVIdVؐ z.dd߸j_A^6۵c^>E/Wgfyx⯣S+lN wVX3*O>'B[a-ʤ N ΰ8Yn jӃ]IU'TׯwqvU>u_~pdWFʙ4߸]Թҥ1_7M}BNJuܛ̍KHy]IMҔ\uw\VjV%W[;#^6[UY'חYaC3*\깐ٓ}}!{8o^&y=_l^9≿N[9}+̚I[cͨȒ?^~6Vo*3Z'.8Iv*w8d=N>pwR&UP]EU~}I3¥Rd/^yV*gb|vQJ|4 9)mron37w,!SUpv%M7KSruߝsZVZ _,I+o\'{pNn~gWeE^̷o[g67>)Kn/]Wwtng S({on\C{&ὐT~|:'::Wg;ioqXA29xꂓmœn,R>iT(N_tMp½J_SAE(uuӤ+ycN]nlӍ)ߋ'Ή4%W ӒZVJ/wK򤕷wFl8'R?"OZM[ڷkYҥQ;:3KwLzG~)7i7Hx=gkN^HY uMAV>I+֌ Dȝz8ETz͟dvx.4%\9[v%{K39 9]TglS~+X^Mx˩S?-w&WsSlK.Й)$S!t^(M3W孴Vj){-<%-R?y~|ήr$oR?*sݚ=Kugi>9[v%{K39 9]TglS~+X^Mx˩S?-w&WsSlK.Й)$S!t^(M3W孴Vj){-0zF5v:aN29*+.+'9$ɀ9n#KAz~%M皞+RO#Kt]?S6>RI.>ׯ.'$S%jZV%|;]{%p3 YgUr᜵) xK^Ԝ>$d5*]*isXo9 <:\WΔyof&'du8D.Y޲z%6TI)N{յL[jz.N]峍$mمKuƖd6Vd]|N5aW^4)wjSuzx.S8+u$.g&O7 υwQ_ucZV+ؤ}endstream endobj 297 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4240 >> stream x[HC1N{~NKŇXe#uyV߬?w6ŧ}V'_L~\m3s8- K]Ԝ9$tOP»u[LJac}IXwp}igpz|nkfѫ|B!Ǚ'+[֬ӶOp3ԨgRU>O9]$-l]9KuƖ|d6C2?SM85kV/mƖNz|-'zg OQ_禱ZVժ8qB39T̺ ٴ2KMp'p)?A9X/.v05ZYS<]:]="z.3mgyzU;$4_-[sYa$%-z Yk]pԛ^ti<:g9SA6nqt:goom_W SES\d#֔sXVjU/1l 8!p֙mfӍlZM䍋NIׇNC;Eƚy)ڮrnYM}=ζ3řL]Cr[ן=홳sPApNG|Št|MfeP &V|tS<]\g]a:;7x{zݨ;w8{r@:9YFqMlWLs%DBϔ%n;Tv ڂv83) lM{/:B'WK/Sd).:q:{Ϙ3T8vwY|zw)3'7jZV]cVtugݓY'&8R}3tO׷?{:3g.Vp)Nԛˠ~Mf%xh]Ϻ8uvn0(3Qw pF[d(usN3t:'ԯ^]f/p#猍K+څ0)K^M5w7&8OpNgSԛ^tEOX^_R>a]u)g?Y-=u1g6Sq.SguOnjZ~k9};&ʼ2ũYqHsfuUF3g9YT'.{&k6=Ax)Dg;ʸ9$AXqpNnRlТYB?4<LaTu 俎1.!˳0r=^p?%gW=M+O'v*.4gg[:|ӄ(> iUSFr]u纛BgcXVzrs8 [.k 6xt%43"jZV]):ΙA8us8+iάh,'Bĥy{pͦr21Ԣ/("l^7d7+)ݭ[ TMZ4Kgos]),sׁ.!ޜQё:%dyV^gw ng쪧iwdN޴lKSo'!r}?m~*|9{ވb[Krֳ\wSR]>+^]Onnug_sum7Sufztt>sPZVժ+{\rtdwOBp.>ꪎm&X.pj/2i}_gn0V'< Gλ'LfcVSt9B̊ONVVwtR%8๱|<9IE~- !#W&éPֺp~&M+I܄++<*iQp71a{}b߄6vYTY'sv=87y?ƒ0VqHs IA"mJSrT(k]z8?ݕbn•T~En4(x0EƽVoB,f o9\^<Ar89 fͦ]qpN7jZV]7_u%YNŧY]Un34{dz3 ̖ +R;޲HT=yWSM$oWde-O:/(3 i>%w0[ӛ~wxR Y"VwY[\TߢL.B\^<''C3ʹ,3vvoIo7jZV]{~%l:K2vKO9&f";giggR)tM#-R]Vwӽezj]<Iޮ*yG'[-'\)ȓ3t^DQf,}JnaV7{.M`ӥA8'8vOE) .zE͙]+v=87y,ONn4g_GsYfnߔ*?njZmII@.3Sw)gVWqm3W^ɌRllG5!05EjZ|G~׳7szrmT}T~ΩY]um٦KƫTNg!-9]$] u$}n *}Y8#Vݮ;rw*pN}3gRd<1O3&dNqRN:'xolܬf_p*I374* άz̟ώ ¯?N }Pq̋SԄ u}>G8`<,ݍJbG!w!a 3jZ|G>do0ۨS9̳MY;&7M.W/&C>[~ +rۥHλPH> stream xAn0 GîD2)Π炲B~N]|k8ݟsZ:ϫ[wuk~M=ߡow~rV^0ߪ ܪUk]'0smSsNW> stream x; DChMيd&@ B6Ʊo3zk$[u\ o y6a$ T>$/#$E `^@R i@e@2BRVЦ( @c'Iendstream endobj 300 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 301 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 649 >> stream xm0 "N/( $ > ?_o:8i2Sd;>h 9>.@27PB"E90uAO&*^VIH Eiwt=OuAO&*^VIH Ey8.@27Pii2[tOv)y25=8Hfx]"^ Mf#yIׅ2pj]ГdnׅJH&Uv<6=OuAO&*w8igY8.@27Pe''^ Vف81ON+=8Hf] $u*;U'ɉ|Ժ' @;Kzd`[eϳr<9񛯘Zd ~vɓV/Lc@yVU''~S낞Ls)`Yɯ I?/cc@endstream endobj 302 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1775 >> stream xA9 C`" ;U%Cb^vg̢c2W;up1V@_ܥc2.XùKX[eg/]§sη^`O?`]-l+3nk^JO/BeLЁfz[{:ӭs`ɫ 7>SYgOTn>Խvpv&&pyί49O}R+tYT xo'տ3ݪ>~}3=ՙu}vtJ 0إ{OUET=}j_O a=s-WNXpNfwW+Lr~ ߝv̜WnILCUΪ^ݘ3gL] _'tO[VvԺfRu'rJ^? `'t`LnwTR}j_O a=s-WNXpNfwW+Lr~ ߝv̜WnILCUΪ^ݘ3gL] _'tO[VvԺfRu'rJ^? `g; P&ߨͶЗ3/3oy+?}}[mMyί4-ە3s@B+r/OGf;9 ^-}s1-t'gk}S1|j]f_7'_/o웢yS:7[J9)STYصɰwGb-̜I2_M5㺙 i}u,UH~wə>ffϜ{;gs&dq7Lw_[-3P[3;1iUo=ӑyM:1[J%LM;nqdOgndHgfϧ\I~WL[f^s~ugg@~S/ kOKބ{ֱ[NuݩkϜ[~U;9i'4OV+R 3'趾3waצD~„{zO]]]Uf22ۧ[N2E} f\{ZB&{urʴN^{$wH; u}RZJ99@mMMK=}ޓfO0m׋߽wiU{r_|UNgН{9Iޟ_{_ړsY:303Q}vS[]ݩf:9ٙ+0Y3'wuΜ9OrW?;g@N endstream endobj 303 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2443 >> stream xAF CCtuWDTEfLjVk?~ 'uNOINm垄|&jy5Lzn5T ~e>?ݛZN}%\si+nr~g@Rmf%E[ʪy~U!}_&6_)Z{wٝӱ{ܩJx5O=_!O5'|GoڢImtނ;{_oz&0SG_ɽu;ܩobʻ*n!w,垤*O&[> ڭׯv7Ґsk'miƗ󼲣6l[7 o"m—js:?9d3}mu1_-[j ;o|/v+~~Dz[9y_IrjdASzm|jw}# 9zR-ߖa|9+;k^ͦ߿E~ m-Ҧ.|>w1ILO[?VwuVp03 if}rE lSnu86'k~'I&yl Hh~⫝̸yw /d29gOd{$݄'7hjߑt=vRay6?%V%Eߐӷ$Utނ|7 ;IemIĽ'[;o߇*'_\t<ўNfRYECU ڴ0)Y 937ҠdYʙ;jY_gr>}ϵIf]jNy2Ѽ{ :_Suң#m^g<29n$ 4Wyҟa3{WЦI&OQ￯~ڨoș&SMr՟WQh?swݐ{M2RsSUq䬓i:;M晜v; ifa^IMHOUNo=9fk^&yGvtcY};zndӶ=6sw:jWNwS^ȸTLZG6g^Av~>՟paT'ޱ=&3LvOl$T> stream xAn-G CE$w @ȢS(_럿_³݉W+{fͰƧ&ְ9oʩvJؿS3{vSw=UJVM{|a94Q&;uJ~ 9LMq#k@w_?_wďwڿ?A3{u~ATy݉g_ܝ-{/ ɦ%R);/cOd6=f<}*7d_yNq; w/ 3&3v#ÝJ}jz[hޭMuI1s678o|/(|OTwij/aNf=їdOْSΝf23sSRi/L<;꿗ل~}N>5=-4Oo}$qkJ97W'Jg}wٗ0w'wfͰƧ&ְ9oʩԟ;%cg6ӝPN}'J뛿M”si{MwJ~Cy:MJ6vL ^_P({u|wٗ0w'wfͰƧ&ְ9oʩԟ;%cg6ӝPN}'J뛿M”si{MwJ~Cy:MJ6vL ^_P(;5-=KtJySNeg%{쿑[=w;W'Y[cWe|9ge:=v޵;o^ٚ%i|?࠿:pP*'_w<;kk[4{R! J/h˴J#{7G"z:5wSOѳlǮmsft{kw멹9<}ӳ5Kr&A3{u~ATNxvVb͞Tu3 T捝6as~){z]'OѳlǮmғ9՜ޯ$icK[.:#-'N'A3{u~TN?y [4{Ra׍g$7lSi7vJڨ͹Nwgﯟ+t~Æɩo0ɞ֝OC}*_}%Wv9dddofLM̷Knݳ'29>[7WW Jw7!yPaWnSn]ϧlƷ5wu gOIG9˝T+-[tTY[nG9gfY5o])SsL~N ɖ Niސ|Άmo|ܯ:oB|tg9®~ 7ܸOokι.|Ξr;W)[J܎rb׳jz;L%S& ҳzw?+-9Ҽ! N ^_5(dk' 񞴊( (|S߸~JγvCr|~)ېJ=ÛH%wgLrLU~ߖ/<1M?!r 8W_02W*4$g{*6G$LLgSL}):*߳ 6gky=woC+o"} o2Nۢ2W)SsL[:L6 )$Tvf_}=p;r>S9g̕jOQѰ={;%gL$J̷?Wyw%T-$yM|P?.r#ϛGlL_їmVs=ߟ2%endstream endobj 305 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2288 >> stream x;G DEHT2Й T#'/y15Z/f*nUqn~NN~nB_eU Wԟg';HY~}m])ʎw^wK Mϗ.&ldzz*wiLw[ީNUw7G:r֫7 _6w~{_ym;]MvZ%{ZlU&lm=aWNظ{ jZɝjocܪO9|Q2>/a'ߙ]8MdjTy&SɝD{oޟ%tWnll?~ws0z/SUrsfVOOcwSڭiwח<݄gXVrX[+]LN s$8ߵ/OFt4c~6N1Owwʷ<9{j'—sf3rJnMI&Tm<;;ݪ\ggr W4ӝ'}|76{9uiwmwI|?pCTű\w.}VGTL])[;rlM;Inen<;LVJɍLv׵sK3yv{gk;'sc_oͦir>˜Oヤg}ű\w.}VGTL])[;rlM;Inen<;LVJɍLv׵sK3yv{gk;'sc_oͦir>˜Oヤgz}>k=nMx>>w>O=L)y?mWݿ#v;ͼ:_Nު\_9li'з5[I,Gw r-}:spLR/~}W{w5݄*&gs$fS{'~Щ{a2"-k=nMx>>w>O=L)y?mWݿ#v;ͼ:_Nު\_9li'з5[I,Gw r-}:spLR/~}W{w5݄*&gs$fS{'~Щ|mIw{pZaә$dp=sǙ)%\OMT}i}i&$ܭw3GP3a&+ʰ՝okI)g#y&_Z=̧O~/U_6wBNuu?pCT>͖M9Vgtf/ 9qfJ i/?U{ttڿw_d w&Q%TLéɼ㊶2luFZqوoɗVO8)K͝P%luyt近5E~BMk:0[mMo_cutkW7/-۹%7ݲ[r>sKwy뮓η,߹yvw|m_ׁ"mSv!]@ vuB$e;|n}_]'oY~ s']_X[-endstream endobj 306 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 400 >> stream x۱ P"@ߩ ,B ~p?\#J tXr]\#J tXr]\#J tXr]@#^, NGY`u!Y`u!Y`u!v, B;NJ tXr]@J tXr]@J tXr]%\@@gI%ׅ))Y`u!tJ tXr]%૞eendstream endobj 307 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 268 >> stream xձ #efbh%lLIr5;<)gIm`6endstream endobj 308 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 309 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 310 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 311 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 312 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 313 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 314 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 315 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 316 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 439 >> stream x !ZuM "#seL (~]#=,@-3YxVҽ۩G+~-N9ч>,@-3YxVҽ۩G+~-N9ч>fP97s 7 Юe1 πJw;3C+bl/> ]htZgR"}&iendstream endobj 317 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1472 >> stream xAn9 CL0i#Y% *7]32#BI6rm]T/ 0n.zN2y'^:އ{qOn7~BqԶ*>OvSʊ19nUEtVBCڹFͽk/Ջ#=-zd N2y':ɌkL_SDT[ϡ$BqԶη>OZCϔ.r:a`[DU'g*ps\{^G>{[$dNu:ޓ{o|CI20mo})e]t vuVBC@k3g֩^`exD>?tcU+5I;}Ww٧Զnߦ>OZ1'ra`vuVBC@k3g֩^`exD>?tcU+5I;}Ww٧Զnߦ>OZ1'ra`vuVBC@k3g֩^`exD>?tcU+5I;DzJ#::OmݾM}cNt.nUꬄЇfάS8 =b~[}~ VjޓwwѕGttfFS>}k vy}Mmms'vqjWg%> $6sfőOV#~[}~Ƅ<+t3ݿ3^i4۷ϓ֣wɟns-$> ?S:= N2Stn5uG>w vyP[hjKU^zGUn5>vL8 slΓ78ɜ?O{q3䱞CInO-U{Us"LBC3؃̱A8O$s<5IᖻSwG`wz%>T%wTVq3 iϔc0 ?S:= N2Stn0uG$9d4RlQ[ 0-$> ?S:= N2Stn0uG$9d4RlQ[ 0'-Ϙ'!{뉢ϙOU):+:moW[jӳكm~?9ϖQI9[:ȰA|C_ɕT/]0Pwu< Gd.Db4.9SdF T_?z2w)Ͼ5n;ə _|w2i93?{zwGGͶ:?Ǥendstream endobj 318 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4248 >> stream xKn G C dpGU]lTMϟ럿ߟ^t&s!\H͙Mמ?+)&86G)[geIdKxoR~*J?ȾPD.Y^-$;5%d>|ŠfeޥO[!H!3+?!Wr]42 ܊r ~#̭kovSK˼wqJ&_7jZVQw̝mooz@UFug5aZ]-rνz:JO#۾]2slٺs%qʔMT 9zwu=%AS2=]uP11 bs^B>aE9iD7řӹ]rr@H+ *83)?2%Nu )g 3VvIȐuú> ,6-N^xӓ8I})\]-K:NmZV*Gܯmooz@UFug5aZ]-rνz:JO#۾]2slٺs%qʔMT 9zwu=%AS2=]uP11 bs^B>aE9iD7řӹ]rr@H+ *83)?2%Nu )g 3VvIȐuú> ,6-N^xӓ8I})\]-K:NmZV*Gܯgw;d;wkA\ PKIT Ί[BvZ84%goߑ^ܹx:ͶI Wovl -W<SZ8eSص{@rLa9sy9IVjJ+/o;wkA\ PKIT Ί[BvZ84%goߑ^ܹx:ͶI Wovl -W<SZ8eSص{@rLa9sy9IVjJ+󝓶^o-aw~4a.I[9\?9ɮƹxNIru{%e蹱IPʁ%y  ρӕ!"'Ϭ.ÕߩXznH>a^wS<[8smYn+gkڑ|93 )?3M\.e "m&lʹVٞNaq*mG'. WjZeMܦ|{]l sܥq 8lwI:ݒ7EIv5(CuJC+0-CύM2jV,/ɻT=pdvH֦x, 9yfuѵNuscF ™os=W'r._9[#$]׎̙I'TMq@Y m%wᙢHx '"?ff)_Wo3ak'U=r8t S^o;:q$dZV*SܯޯM|6u] w%9MNiM!r&[gW,!Oq|4[Nɍ'NgSp:'g yzz꺐;QwћKwwlB\6OC™~뿥q/0{i V!8{{dÖ܅g")Ivulu ~Ml--nˬipS WjZeͯM|6u] w%9MNiM!r&[gW,!Oq|4[Nɍ'NgSp:'g yzz꺐;QwћKwwlB\6OC™~뿥q/0{i V!8{{dÖ܅g")Ivulu ~Ml--nˬipS WjZeV"nNXrTsvgUu7X[uS!+ObG5'W<% S^'ˍ湴>t: yzz>wvKOSvͿkGU&i+SN;kxyR}T5ӹ¹pKcC܍V᩻lԜܬ·তYvo4Maqz7OBzjZP|$(X:?ݑ+a%<Թˍ*νK&kSu#rJj3D^}DKkw)dmzGuϞϿӛƩ'W\B]\ZO#gQ&^B%;U +nk;Nu,9VV{y䗥Nb|nJ׎LRQqrg&Ե؝^x޻Nxӛ*u™o>7:SWݍ+gz\VjZ%Eŕ3v]γqNܸJۯdry6U7r;K.9KT;+8+wAvgQpN֦w]w;izr%%ɥ4kR{;9%[zzwl)M= %' lStNg^]q7Us&U浨/'d9(թ]ԉ˦ϳ3O[|;?GMOtN\Š?g!SԗtM(Wf| Ц)2wM?#u'|Bvz[Vj,W׾{ <-߱qtnWeV'yKeԧtd|JS:l )! O#,N+C/3erQb8ΡMSe:{/VG:rNԓ%*ZV*Yܯ7I7OlIVq툥S)Lq86EOl9%usLa8$\O'Dp΄<ͳ8/Sλ2獰xOTA]ֽSlnLAiIw ]Jj.6OzYq@/ qVxaqIOVlSeǙmJӔ$y὜STVu~MoZV&bendstream endobj 319 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4209 >> stream x[m Cq>aZX ٚuUOA*<;Y|W;b7?~*E)szh3/zJ|SKusLaTHH9 ~NA'.gFu8?~s#,;*Sr;UPq.m. j_TPwWNS='];%u.6{^S4dzz; ՕU?=bqzsYiLO&T΄rN^NS%d׽jZV~E$| <]_b,9]tN]/OUstwyh'KN3ݫڽptLNYȿʯ2BV/5,7R%8'-w]NǝqκT9;uf^G%\a~ާtQ;ٛ|=?j<]2IJI-MBIՙIt3".9̕^əioLN_@˩vsNZV*YܯoE7OKE9]0޻ecqij..o\\{s{6V_n~i?+?WVUW@ꥦB\'宋鸓r Y*gάBW+lվ.j'{ǝB핧K59^ 9齅IS3:39ԟCF%+9:M͓IVv]h{9x.I^VjZ%k<.BIDJvR#39iOoQ rLpBXT^UG1cu{19gyy/<$\})ͧ: ̛|DjY]d%.阜 ۫uz"3[ݙ.99ԝ꧘B^CM9 H}Ep.ySg&'9x>̳3".SH˽Lcr|ȡMT;I*!۽VjJ+;S"dLԫd';B*;6% ˔ N!TEUXu3_'~o~Ο2C'N|pZϼG5e:aNfX8B`Zǩ.۫J=#5ޝҹϘLy~)^q>dޔA!ੀW$ gg:ufrwJ SLɪsbe?UN{[Vj,WDwr7OOBNS{9<#<s7rvY+E[PKѳNO/pz{ҵHkj%C|^Oܤ)B],ί:r'y[͑7{:>w)YUsNv{jZNP=5Nt;b9NW^'qf8t@C"VrL*l:ZO>MY9+tWf.8(rdu;72ZiW ߔg׬:>w)YUsNv{jZNNbd=.S]pTϫPmJ$K ^%~unVû_u=KՔrbO;72ZiW ߔg׬:YYkJV՜+UVdȢl(|PгKZNl钷0YdͨLLH^ӟ6øWӲ{;:?FtzcY7I7՝ IçMNgu&Nltw}r\̴oʳkV}OL5%jΉTjZ~Y/o >KөT;P_j%wܬϻ_u=K ~ӽ ^A7C;%\䴟d+5ޥ:'GeCN%-'\6t[^]}{uɚKb/oj\=AhՄ\N9Өe]͉ׯ:wLהKQIܔ.2|;;8̸Ϟ H+fQwyE̬r!΍xɢeg]-|S]{g;)dU9ʙmsZV/Sa{x_?ç{s:jt*uRd^ys"P!oWa+CzhK_{e^&wջt9pUdȢl(|Vi=[@.y 뻫\b8YsU卝ruW^'9)gմ9^ r) 1锛ҥO~gGgS4|v,./qzU.:ܹO>Y,̴oʳkV}OL}R;Ŕ9'VS9pVjeqXz|T'eyJO].*&2_GeAnͼ蜋p*ĢOS޴׿2O颞E[tspAwY. .ɜ?K/_;Q?j mN5yS3~iT{pWgxBߘ4{&3a01i:yxԙTwd,- 6HG'Doq̴5~Zti"~*gjZVAendstream endobj 320 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4178 >> stream xM& CaxQÍVDEeD1>ϿXni]lo*?su)$B/5myNXTT=~*eg$w2ϔ!SԻ/9^V}A=%Sg9B ? B{Sojf$gմ=}D+nzwlMMg{ĦQw&S=ӱ*;"3ۮ֔ G:]9O6¹ZV~~'OlMΜ>pܵ{rs~D3~m *fu_j͢fz6k\uYɭ'CZ3qA'V8 ; 'Ϛ޾_'۳܍hl/ӇuGyVtrQMswgti+zq cDŽ79侦iM"TOS=Ӣ*;"_˶͑:7Vz,OZgt4s*i'jZrNS-9++|̹kgbT[Դ/E*l~ZO? m[1Nf" ץ㜕NX/q@w9OΟ5+',}Ng MG7^,O뎈l6v`Vwzǎ o '9s}M Յ&8 sErzEi-UwD&:imŁK#unX8wi"Dg?UN~OVjZͣ*v~&ga$@%Onoˌ;~̡mZo9 ;v2Yg<1JnŬIh&?$'yX}pJM&L{oLi yf)TT䜟ϏnUl*Ù,6S(*{B1gSl͚R3o>%GݙN-UwD&:imŁK#un_48wi"D.nVj+;9GU\ٗUr6O \̸7Zߦu8 yéʿc/OVonjf"NrwgԴj´wvʔ@g&BuNEVZF|Y9rΨis>e߮/ڞOx6۬Y-9SxԝTOIRGdkV9REJI댎s&rNtJvjZVq"z< _7l)> Lp@l)8"7qxbKsY>ilZXy:Z{SW3ӹ=SVjZ'W׾yeey3dӟʔڷ_T{a`C9 (8un)m|JȔ.6BxYSXlN;h 9+ Y鿣s^N׬ϝ賴qz{^riL._wlߔ,S$vGpV7en3{[Z'rMq^lqLMi,Y g:wQ%t7jZV~EFҾyeey3dӟʔڷ_T{a`C9 (8un)m|JȔ.6BxYSXlN;h 9+ Y鿣s^N׬ϝ賴qz{^riL._wlߔ,S$vGpV7en3{[Z'rMq^lqLMi,Y g:wQ%t7jZV~EFҾyli;ٸ_ڙ=Qs3D8}0{_$A+SoMC/7ӫqݾ^\7ߓmo۟p>᳿j3Bs+>gl N| K/[B 7q-kzv 3g ǟzn1?JDğK0{:Kؔ -ɹ:3L[3QTv~6v+Mo{] ;?ӹukOWjZ}G4Z/4+ϮQ'r"|23좚ɽ2'a_nng S^-< gBYm/m2[ɄMrPlؚ떓j>a'“h> stream xK%7DEtSiГJ1nFT'E럮vYISOڄ9Qw@w~oN\~N:%gIo{2g ř UtKΦMζp*ެVE{Oj~©<}yB~uRm7]3kSݓMG?y➹$w`=gr]{pE3UOxSv+^uU:;Gg@-S3cWgzz蜈ޮ$Trl6OuHׇ w''޷H;O{spvRWY3ބ{w9r橤L5gi7UW{Tovk¯_~^;ywqnlWs&w?Nګ4_tv̊IyROHl~V:1[K,NsίܫgQT[x=O"ʙ9If;ٛsKJg稠N= uw̽esv%ޙUWΟ橮w{svCѓٜz<9'UEFy뜓zuRϢ䜉&ܻ˙PW3O%mf9{OҽLz{_~SUtsc3Yw7^ }7{gVLʓJ}BBg&IZ2gqd3w~|^v83 u*LdzE]euE~ TWΜI2l]RT:;GuuY;P?ff.sfߜx+\rl6Ou]矾{TԻ~~97-B6ΓF?mvJ= ɺyyyբNRuN׫t-S̯ׄ=/_omoZo:@rN*J9{nT/EZOߒ3+;u{ *+kg~]mT6=~ZٽJ~j<*'\q7mɩ9af>M[nr-m]ۅt`C kox? ~p>.p7~u &|;]nM\w|I_V7s B'Y܄5~Ƿ ܇t`̟ endstream endobj 322 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 363 >> stream x۱ @ !xM?zrA\,.h\: @-ʍC@u!ʍC@u!]C@u!]C@u!C&r 2B Mdօ 5Ȭ :$4kY0tHh" .+_mcendstream endobj 323 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 324 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 643 >> stream xm0 !ZtM iR}'B^/~}߰^:_=WLOșzկ?Ԉg,;2Ok3.> O3kVEt}SD#~|w^:_=WLOHV1~%F [32{ϡ$CV"~pendstream endobj 325 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1965 >> stream xA8C`ӞEm(Dlԗ=IJ"/ۑ?_?WwwwpNYվo@[o듑~?1Yy*蹗J>=Z=wFom]T 6CIN"$^yߵNt<ڧe\'>UG'#M-|VeU WbmV%{@{ga,nz|%8o׺;8щjZݳHsSuĭ}}22zglUVe r)fUO'T˿zFϪ.?P!Qwx*Ϫ=+4'>UG'#PoN[U\qY| ﱞp3E I;8o׺;8щjZݳHsSuĭ}}2 U4UYy*XU>P-Yw9{?]TdKwx*Ϫ=+4'>UG'u4UYy*XU>P-Yw?#+]`m$D7]kSyVOY9:־>wd7NʪSA8ڬJ>jXCYYqkO$$@>@2 ͷ-7Jo9'I\q Yzx ;LP!B;4Ne{@o{[ISA8=uTsz{& s(ɐI|~@2 ͷ-worΔ3N P=qw3ש~ϡ$C'wi44pʯMz)g r)d{,fSW?4CIN" 8iim!UQ9S8S*[@5XG{| $ϡ$C'%|Mf>ƩLc/Hmo pGΙrƩ WBV:=kp$|%8coȵN߭Ӟ ;k֩"ow{*U2J:ʙ.]aWybkUbv]=w9I_%m a'3Y\= {{Zs~י]:w׺̓n~WjPU9*v]%3tNsY=kq~+֭VE*N`oms\uίtO+MN*IIBN*u޺dkӻs5m矏OwzF?~]&픮ߩȿ_k~LŽ:: * {'Gw+*|w٫5jO{:'hڒbo_*̙*9\KYz.wdu͡zwdW])6]'׶VN#Wjտ;5_g~׳w2m3gהzf^^W_#3ܻ;VəZiW2sfs:]uI'SkHHZ]LκJГWK،:NۗIPendstream endobj 326 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4253 >> stream xX۱$U 3"u[VOVL?Ez YUptxwi[\N㷸}n&jq:uj~=`-a6ޑgN =ftr&#/S#/.f}$B B7wޱUnq+W VwjڸqZaUKܦpzf#a_˼KÓI֙ʩP*Ovvi8<O%p88{9ͩ'WX p:O3H=+nOu*>ucVFEavԪn)m|xo}A,8Une086vУΡIB p6$rP_Tq\a1Ҟڏ w ڸ£~ BCNNl iLOzᦇgesDžGacθ޸il2or_LLUN U x,uKwVo6O}(9˙NY26w4<,gJV:}]P ޓn̓|,4w"/(gii/ꦺ)s98sd2|zy 9oyVZF Tql񞬍.< '_OK 5g ԕ&湂:NBG =x7&+qI)Sgj q !$LWՖ5sMN:9庶Lz Tq|;ur3H%X>utfr 7Bk[mpqĂSguS]LmuJ9T2M>S42O˻:H۩wݻ3óa|8aNtƱlg۩\IN lql@s+̺f%e:3UͦRѬΩ`)TBKp8tR7 ;t֝:7nV 3[w7]NÓ9QrBt< Nl?<-I*t .ni/)TS[ݻ=NYקrTi`yWwizzx;{Wpx=rG~#9l鼞xS86v=l;+qQߘm6S unceY׬䷬"_gX :9#,^R{Tu8)76ޝ Ppf]O[b&ڀ)3ۑSjGYaVT`;KA.y z<-vU.=ۮsٶ2¬өTuN'LHe&Զu:qpU)"~œFM+Ay5_6f7ͳA:0]s2z5pjl,OpytlO /h] lnjueUpN8zZ渏Kf"t]w[Rf>o 6ޝ Ppf]O[b&ڀ)3ۑSjGYaVT`;KA.y z<-vU.=ۮsٶ2¬өTuN'LHe&Զu:qpU)"~œFM+Ay5_6f7ͳA:0]s2z5pjl,OpytlO /h] lnjueUpN8zZ渏Kf"t]w[Rf>Aw_À|~%.%LUjm+~uQo2 o0yi,~Ϯ2#=\'BS]J~'lM OS;p8|&ܯG[SNz=N Oyk^X<gfV+:=yVn4Ҵ%tۜU(Qq'{Lo=B'giN.m۲m4l[ora8$4e5\#+ɡ€࿕u%-=2?IsR< †c{^g 3|LTNq]SBm+ =XW<-XmYBB#xn%qf˺r8C{+p%;dDw*Ńpffӓg KK;IPL#M[B;NwȿY~UG8DŽ փ+Tyhі-vMÖޱ-v*W> stream xA,9B1MiKN/pQmp_ 3+͐s-E!Y?Df/Fv+ gUjץJNom oRB׬ڶ+A_EHuN^ʩէ< ژw ʁqUrmiٛ8M+䙛nfNyozZ2HcU/$Oٚ._Ko ;?Z>^<90c* Km9x]0)St( ;J8J(e\t4lbLʼn/....?^׫u܆}]sY{6e}lzt=QOn;m;3/ev:N_x7zA9|1;{&6$Immj]XQ^@jiٛ8M+۰]Owڿ):BS$5o9ӾH4=}kx=v7)yqʽxyr`ǨUNm97Fg:tApOis,?W_g`.BWyk{hno}1WtM֫8Ro_BƯΟy"s~]sY{6e}lzt=QOn;m;3/ev:N_x7zA9|1;{&6$Immj]XQ^@jiٛ8M+۰]Owڿ):BS$5o9ӾH4=}kx=v7)yqʽxyr`ǨUNm97Fg:tApOis,?W_g`.BWyk{hno}1WtM֫8Ro_BƯΟy"3iONܫlwv[gos鹦供P4QҦJ*;3~sӓuxk5$I`|}ƝN%I&tn;oiU'd?Df0l/L| Z(F\#u4eҙ0 =yrHwGmu2%3v m]Z|fߕj:ɦ@*:k*[e"o߹7Ug) ^_?DfN?ӞW,,׳=۷sM}7Vi5MUwfJ: 'i skH˓;JLܴw\WӪO.s;:Z$Ka:i^4v>Q.L~Gzhh;3/@ka*=/z^8eJNg:t𩻘ϵͶ56+uMˁTtTDFmC߾s#oR :Z ?^W/F^AziƷL5%݄ZQBה6UzW]m^V fi2qC^P醸4Y$OwzJJ.UL@*Fiޮٛ8M+h =$1}~h{Jn.4eҙxq󢡇3qцKg:+~m 6 1ǜNϋS˓'ѻ`k֙t!$~r^ssbO5&xu)5-RYS)'6_R :Z9Ug{߼=Lg6 Y=%ݮt'gsM}7Vi5M\sN=e:[/Bt޽t]wzJ&.Lz@x97yڦgo 4gΩ ؼ&}GrJ.H4e;+ܛp/s:=/N/OzGIYgoЅt mx[x͉=լfPչ<״HUOgMLdԞ_\\\\| 䯒>Ka*di'2T=sUS\}KS+h)).1mtsJW&*bһJ^2f^K=._<{jsOcoKIH]enP+s;:Z9Uz}1l/L&$.H2xyNA_F[3uv yqʽxyrZ{Lzs sI2HO߬hx\^rٺ“֩O.RYS)es5B0LZW!WO<9gw7R[ڝF^A[nOOIti Sھ2Qi5MUȗՀ64S?\tKOW5>x|{S\jL@*sz]I&ؘ:OdΩ;dx{a2Qxo'qA.>D9ws 2ҝ%fMOϋS˓Cux`ӧfWېNAZf]D5VֵN}ww9zΚJL=/mͿ&,a: :Z =.w727=bxՒJҳf[{^?25QҦJ콯LOn wG:zA *:jsnDZ'&|W9~Y9'ݫYgc2z\:z0i(S/0ߌS:9~m uVrʽxyr\tw.L]}q>4s:2-SKȨuM![owRGëuȜG^|*s/W-$=ku|U/\)mDf[@_}w#B|6֬Ou2ozWy޽u6&?9ǥS<; 2\ 8^SіP N:a%7~܋'LϕXNgz7ux`okL30+B9徔ZmͿ&,ߩW!WO<9y^^WuSM[2|U/\)m&t=~]JG| H+z9%͹5k9 ^@VvUOYgktiZ!Ϝlg~z^|3= mSߧ^*g3+=^Uz ϓC:N{\Ny[r:L%|t^=+ gÛyF)OlRG490endstream endobj 328 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4375 >> stream xA$ Cab6VHEYNSOUϿqfuj 3ݜ7:;x2O7_V|$ڴSȟ _T[O|GШ|_qUd6/(:v[#έs#-g wSrΔ[;e^zfS7ai)w={o /(9vfUٝךJt#㐗Uζ3*<{J'nɳ:~g͸|>_D8Z ]IKL՟HS"jZV[~d~e~ogw1$Wɿ-X g&,O#jS5FExo ¾:If#'%U.|wStڧuP9r]ٺ?Oujj"jN)4~/YμOgJWjr7U+2}lNLg-'9^ee 2EK#$4Ù3?v)4ٗN~)7B쾕g T.?iwɼq}-OgufTSqW>q84,'YK2;F)8}8USh$Y"\f*s3Bߔ{٦ڧ[KŭéR_4̖!T 4eݭ/wV*IIϠڢڟc ߋj3әjZM_Fޔt֒x*Su׫L!Uh nܴ/ϩwv=a~ *};βq4oSʙzOo鮔Sfow:fS4,'YKB{\f_^}Bwu4>gR=!^ߟã3NG} cj{%i\[|)o 2[tѣV*ΊO1p_VՊB+i)%QTwwWYBfL|i_S{ 3sKUwehjo/3 ])ުǧtcSMy]9-h9i<>YNo̾89)) $iro}ϤzC M5!?Gg^rˋKӔvZSf23d8Gg Uc 7ZVziy*'?YK)qߎ?|9ܦޅN8}W;d]QQlgo&1=:||NB?tOine9S=g Lg-IO}QZL/}3g [\J}N=sTǙI)l;Ƿ{_*:ܽ:ug H2g_|Šfgs;tʤDQ+~#uۧ9Ϙ>gS7ZVOINLg-IϦ};+mpz:,s_ﴓvE~G+veH2J{>|:*;vzӭ>Mso*OU%3$}?wEiI2}S)ns*q}:e̹/_Sg&SlgSγ}ߋSpvsx֝}7~#T;} +r_>*Gݞo<#aEnNJ71 3ڽ7es{ U">*_Vj֓wgruϙ?sFǬUfO\L6߱M>O2TkoJBwq_uӗˑ03uuj=n*^{BΧ&#|;$f :KOLKX9g:;xΨf{wڔ+S)OݛvlxzżɼvӊC&6OGG"wL;c6֪Θ}ξ;)iSO$8hޘ2Tݳóf/ZV?:R병7Qqvt[m?;g\OZJ:yf߾lD9!jaN;o%eJ!:!)^*B掝^|KSΪ:u$HG?&gL2gnܴ37[ΔN2}9-7bx&ꍸ;=YB&O.Tv 7!?CU g9} +rS꼲RQͲ3jM+~Z}9%ZVSߡ:TV}tvΙ>דNٷﯽ$QeNm9ZeؾNo_q_`goNlcT;N 8O3+p# 97-aLgsݷtO3pL_98t ;)+ļ)z#NoO`I /oMP>g_|Š:,rTTl*Œ;eӊVEt_G<}ɬVjTo@w(g>gӧ[k{tvz3KCf߾7jN5[2$g)VﴓyQWTjNUShvpLwGkM锹"wt$v2S9]e*Cv2]3/j*ST'/0͡|LIf;ZnAns*SbSF*gڻ.ܑJﻴ>ߍpOV魝vOqӞr>S2NeLvIC8GfnǗ{jJNS7ϼ^7xjVvnߵ<~>[9o$Cͱ }$}F|ξU)9^kji$t'OHIQ̎}ɮ{LjZ/zaendstream endobj 329 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1717 >> stream xKA<vÝ+YUJȈ %n>!It2ɩwj'S_jg:{vꝙdexb?索5;әx^ݢν{׵~ZΟC_gmZ򌪼oW֙&Ծ~N=3_fvc'۽sr:D2OKU5ӎ|wW]ef:;=?!Y i;ٝo[|ruL>QݩKNؗd?ىs_~q߹iL.̜c;99ں;9#o__ώIfj\?*ϝ%?y_&Oncuo_8vf*?eHg;1*3i}f[+JZuLv2:CGs3טWT33svzޕkW]۫Tj]zngzd{9ܫ*̙r*̤|%l~Iށ;iMy~UɜNnjҽ!OH{#~澪Zu~^pEU{ڽ{6?mFd?Tși$L7m"= 8wlgԸ~ZU;K8M}Tq~FT ʐ<3vcUfo̶W:yT~e8uZMlgV噯1m?ʩ(gg+%Ls%IU+گW:zvlrVWiUu3T:əIU]%J퓼UiwN~i;Yd?L&9={:Cf3HG}Uww*?ኄ{l~ڎɶlW;ӑ3YI\oD;P{k9zBų}BL8dEfgTͧΰuq]'̿S޹` S0ɓ'>޹` S0ɓ'n޶`oɒy9×<)endstream endobj 330 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 354 >> stream x 0"4|. ) fٵxo x59j?ʴ0 `69Hyfs: jl>`69Hyfs: jl>`69Hyfs: jl>`69>tMendstream endobj 331 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 332 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 687 >> stream xQ CHaF@wm+Qrڿ0s &6SvՊQxgFy4`,ܪpzXx"6Sf2+MM^Ҁs^bg3c@>Y ͗#<պr{XiX湵+'~q~xy]gƀ3U_}쉳~`/GxJ2ϭ]Qe<;1c@JoXs,dnOyFm.ҀskWT+g~NUgvwc[7;K@/SQ~g۳'D4`,UʙSřg MpҞ"3dv͏]bgӫ+ ˬʬxRuz^7EfK{ƊWP's}5?{t=uOO4`,*I_qrywy#=B&k~س+*Ҁʪ+p"endstream endobj 333 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2285 >> stream xM6 EE$w2IA9#|X$e^$I$I"T*iu\]*Iyi}ݓKvO3?wy$]cR1$I$I$I_/Yuo$M.vFKvO3?wy$]cR1$I$I$I_/Yuo$M.vFKvO3?wy$]cR1$I$I$I_/f\]* rHU"%;v'*g*IzˊD$I$I$I-bo%Dޥ"wQ17t.\SnW~Brah8I$I$I$I$/YN]*i-wwu*=_.)+?V9SI0_VT$$I$I$Il$xJ+r E}JKvOUT<̗-'$I$I$I$=-Iޥv?3PUB-%;v'*g*IzˊD$I$I$IͿߖ$RID[* I咝rj3$=eEKI"I$iw95rfܻk'gzg@V_)?᷷}pw5޾evVZ)+o~yY'ܽӧ̹Km9b?{o${ka1dOI9_}dZOk s" f*},XM|YRrm&!a$IzW(}{]#gϽvr_N̜wk9[-~FqVY{f[Yi &k杒^\gL>rN2.=ld)r콅V쭅y=%U|A[hfUi9?)2D~>~C|6`5eEKEHB˵YH$\d_%wiʵ=!$猯OҗJĻTeJ~:k:HulU ZgM;N9TJլLST0>oNN&?8VןI˜Hj3ί\mWug)/jN?fO8S[G7S#XBkOT&-{ٱ^U#tWTu:l* <i?0#~tc߾׻*9k'|zkdt :?s_/:;F$I rwu`oȚT}i˙OȬ6Ț38vOgU'gWcmlrdյ#[>'-O.Ѧ m:H^իL;7SL]$MvYU/:IvUu6]i=ٝsWW̨M^۱ziȵw|3DVOHŝޙ[;mw3s~Nv˙OȬ6Ț38vOgU'gWcmlrdյ#[>'-O.Ѧ m:H^իL;7SL]$MvYU/:IvUu6]i=ٝsWW̨M^۱ziȵw|3DVOHŝޙ[;mw3۽z;v9gt߱oν[{Uj]=${jg$li3''j>۽sv> stream xAn%G C d;?%zԓ2VO?ܻ.Ӓg*MsKFd6Zs< ?}2JB07ҙ"P/F}[}M7=O˼^r>jjS賝똒ӗN~D 䜽*ΧngwPLݐ{kuTn{gA)zg;sps:nJP#dTiruO[' iEޔ6EHtTLqj7uL!_Ou j%o'|kJJLNw:̳ZκO}}U{Rթ|"7d;g9: VQEn, aӱ)}۶h*LF1ɐkVjZޤO—-; O9Utw!I~lZ7%M.'$0ϲ]L}m*<9SMSS0C%af{5{ 횒ӝN~,%lӹCaz|u_^wTu* %Ιgk!-nn4BµUTnѲe;˂Fx6EXttJǶ-(𳹪sL2jZV7I :}j= )hɗpjI'EgڭTF6Bv*md^!4uNn̈O[8cJIq>%gSSnuOCGu]gzuvd߳{6Os;\|mGxַ?Šgݧwv'譛NӤSOi5ϳőr~맴ڌf9n>%;_6ګpk]Zd8*^B|Δݟ[Z4Qz*vd}OkɵW]VjZUS_SgΎK:8?9PjipjI'EgڭTF6Bv*md^!4uNn̈O[8cJIq>%gSSnuOCGu]gzuvd߳{6Os;\|mGxַ?Šgݧwv'譛NӤSOi5ϳőr~맴ڌf9n>%;_6ګpk]Zd8*^B|Δݟ[Z4Qz*vd}OkɵW]VjZUgv'!qʭMwݡٌߝ*MwA{5UlZBgg3WT363_֜ܞ*ۥmTǞVܦ8STY:}kjߧZOU; LԹVк2LuL:a6̤ߓOiua}jkY?u'3CRqWf{gͷNx63"tIT?9#țzyJ~t:s0;PwPMP~g;f8l^ilU)[lkN93WuwQ^,sy0yƦ$_nUSg&On*Ňp3J3|Cvn}1UYBݜSTn;ʔmZ4\ţx_VjZ(W9?ׇMvp:OGWupOiEޔSZK̤H[V߁ʔj;1d#2Mlf;*TOg[sϴ͙{Ǽg}γI36-'z|uSw2"83|rS+>tQ2S}L=uٮ;ϤrVTnӺU*^wu3jZVF}?N|ZUdL:[:{Ӎ<>?^lTojo[Lda2M} Q3)6ée&N{l|)wh}v }Cuo'7,?BNGELyG:IEdL]|^9?˽cOHIv{|4\œ=ݍ[ZVjznuQi7֝8ZUdL:[:{Ӎ<>?^lTojo[Lda2M} Q3)6ée&N{l|)wh}v }Cuo'7,?BNGELyG:IEdL]|^9?˽cOHIv{|4\œ=ݍ[ZVjznuQi7aspjEP5Onɨ7A9+榷MKvdt+Zq.LeGNgQk9Tu7'aE}Ι|gTKon}x]һ}gg92|k2y'ϓͤyZBB:?;3/ZS/+IՙE{gKC} OA R$}{}jZV-}뒝ބASܴnS+BY{:tKFо*Y17'nZs&[^-Ԋsa'-;?p:Ch_馪9  -Kv;dvu]}w#g'| }7vt8+?ϑISfG_i+>y,7m&Z7y]|YI,B?ܫ?^BS}2 ^JW'ٽ'VjZn:܉#) ȿCN_5S^4Пu{qoM(['fhi1Uk9)B IgfTK]JnZ3 _"[҄IuˤL Zݟ٭/vJyξ4l}VП%%h*#j[ޚj"gzjZV+|߇[;.iPڞ{:dU+?EU_M Y7քM}n}bQIZٜ"ILLtjNTԙ%;`% ]o-MxkTL )*do@qOݚi$LNKKϖOwZo )Z[B2RQ孩&2[qwlZVjR}|WH9+e8S$:{gP:;t&AkS5Knt[k[q6k6{5~GܖQy_sf7vCKp3|[Ĺ!kGS>uN3[/LfTdI?Ia2]r4LL{ӑM#b3Zլ\g]gl:s{S27җuMeRu[SMdopZV^nendstream endobj 335 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4194 >> stream xK+C&; *~DU:(G$wZڄWHr8*U~?O+>n]E|iI;:QTWwM]W0m2%MA;13mCG7IׅnJ9W'oܻVlοٙ[π:oNff3Rzޑ'KD)pn~ظ=M=aժR7M\夨kG,*V_SnU13jZVիҽY/[]=^C;}ݱRWP! NAhu@*οKizՅn]xܜjMHjє3Q˦ps{]&v/m3kνTa{dUySG< uvLN>]^/EڕL.&7G̿D,6n9uݱM):u;Z97ID%`ڎX`5X]w$\VjZ*˙z{x-+vK]E ZB=*8IMqO;.uV]w9]ss~W=6!)R}GS·GGKN/͹#w˚A7Ct]ά9^SU N$οٙR39xwzu^hW3ԛ k|&Nr2F~ظ=fN+?w$ pu6eIOk&')|i;bMה[cwޑ(npZVjt.;K;^C;}ݱ:UWP! NvGjA :U3(urE8牫}ٲ&Y<:wwuOu8RsW7*S8+>ͪI`G3H-5ծ}y2R3ԚԴ-$tV<=܉t=YwTT63Sho<)LQ"J8ѩ$^sjZVW{v9缽vvcu_-rBV$iպb~%tfP5=6GqWeM8mxtTWɝ Wq~=3^qjuT|uoUpV|r*v$s8+>]{C'P! NvG꩏n/N'A&ۅιkm{l&'1g˚pg訒R1Q\z*>YPg˙{2{8nƍL#RKͩ@W'*_un9yKIb)?!~37ޑ'KDIAظ=&O~gN+)GWT;hHW)TyX g8;:U~+۫jZV^އ]_%ݮdgŧk:yt!dUIHYY=ũ?t9v͢md>FlYN,UU*fv#Kp6Cŧ:*luQu9rqOf~gͳ_޸Sr^iDj9D%-'oi; >jq =H"snjyxZig]wlS{rs[x;Z$p*ϾSpĚ)"'aZWjZVҽ+׵nw{o΄+vC5%핊槝TvVVftN{vYbc%4fm4f訐mYa+> éά%Гɭ8YԴ!ԜIJ%ҮNɝ"TxGllr翽)2o\)iT^7?\eԴ5+t|& >:/K/Ѧ1{hӦ1GG]o ^IpTNHdžOtf%-!NnŹwlWwMvv'-vMwJ;dcL!ǫxJMIEjZOsf"oܓxvE+]>.} g]wlS毨2+xmڍZ !S+|;E=7ZVjzUa3O>Wn CNȪv2SI7^3 Cr**8k2O3wf]?zi,ڴit](BaU R`x3*>Չ`oV߹$ϺyY/ZRK͙) uȓg?MW06''uiY32[aW7~]u;߮K䶫޻^w<,6?'E;}X<ΎX̽ ߠZVj/O>a9<* Ro'dUO;WguQ!9q{5'ЙZl 4[m4.b*fRT0T< D0շgsNtH~g]\q׬vuIsvI :w@3IuǦqEԴL-0+?{.HoץszrW]LL/^CۻS⟓>,gG,oP] q^VjZMėg۾^K#^%yYZxL*&]4ORg)-wn:TxӾw<^tltzi פPPr 3zn*>ՉNXUT;SNErlWwMvNJ-5"ltWid_1L*5ONhY<]vrfIQv{9yS2KsJHϝUzsruJBkj)7ZVjzO]\s۾^K#^%yUB i)YJꝛ'!&s߹*"^m5)y9T\!̭^3Ou"v;S*V.D-%?SQ%m\y6'inRKͩ@2[*:UsWL J͓S%Zm*zR^Nd^ |sghEEgzս \%t];~v VjZS+WgUY9*A@Ȫɪّ3 Iir9;tx ⿲4N՜PVC!ϭ~=uuO,ދ-i{/K;M'nr> stream xAc9C1sv/fJ!&H@ߋΟ;!|L\?+*Y )*h;$wOK7I݁c['+lW)oZW:SqH kS=ݳJpi}9Wӟ5^f=$&ʦ}U$\wgR򐨦|3;qzEtf9=Yhw9u촷zW"wLOOyJG{ά!۫jZVYM}rγ)+ĵвS>sǹ{j2Vɛqz8rnyV~K9ULHG;ݓ?CO{᜿)evii 6Nڭnu)Ʉ =HzzJϤ"aP꾏3;qTgEYtr^AroHg/ V dfjǿWY8;XVjZrUSb h:l5l>+oO蜢q>̦U=;pls8;>!~RNi;o*NOp=;4^8oJ}qZZzGv&d<{}J2aB9Rum~83yT洺to<-9UmQf9~7Wً©{B:՟yl:-VjZV/ůwOhݦ8OٴSr^CKHOITevZ%savʔ)Bιuӓ+wl֧Lqz.Qf:*sls#VCµ;Ջ)ܡur$$OҶc%u3R9?7EL6WpBE(aS0k$E٥>m_68{nt֑wS*4T:NSB2Rq6vjZVjVS_g/y')vJNkh ) N+?S^VjZj+s}׿Sn*Ί75S+UZ=LRy^Svک&uz ug.)gm:t^SEܖpJ6GgNh=STsOIpxqsGϔg|Mcsٸ)9wDPm:Y$;oxJr87vJIԔ{ +T8]ZYB™nK}ھ%^{$Q}TmZpWgknĦNf;>˩z~lt+8nVjZf59Rߡ?e@Oy+q$#ܿ>aŁVZyT{riMeb{-DR*oܓs!͹wϿt/&9Pm`f:TuO3E;w!?P^Fhg|>L 8SfsW]TgTܱ?|_\M+*7\qO˯ڝ?skV9=!h?ӹH9u>-ʇۢ.vGέ:;֩TҶ"98Bzӷ)J )oF}>ZʍKnnVjZf59ڭ=2~-qJ*s\VLeZVj/)ķw&͙sOi׮pئUMKK?ps*YN%\޺'qSO]_F..L*;v.IEA%Ow׺[Єq:3GE(')~ 9sb{09_=ڷs|BTT 眹=3jZVq_Su5q4B Քĵ7QKO%l꟢RNF/oii!sşKOhw!>U¾)Ys;vDuUm.͹#rVDlrUpkU"t:sQk UtfD)i;dRiГv٫\ Il]5.:GF*ڜ%"5vliľ {^!L˷ٿjG剤~!#.99wwZVje8cB5e6qMTSh~j ˹[lZoFm=\RC> stream xA8 GlirK6)r:2I#ʰֿ8wG^e=*2}s3'ӬT8;G}k.GL;v~92~|+i.sWY뵭@V> stream x !tҀ;/ۏ Ǽ){ /8 ~`^@@ Kq]O/ ~ȥ_(X#g?PCү\ё!qrWWͶendstream endobj 339 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 340 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 999 >> stream xK@ C$o(K2 mĚ[Pگ?<c}?=<:qBMf&+C?w{U?B"[g_O~"R8uO:VxrŹ:s5n*Sf`SpTƝaF`9sw]W#(e{V'K/u\+t=m7!W3\2U`'|RƝ|iJw{U?B"[gu&֐.%Nrݯ=η0\q\sTi>|RƝ|iJw{U?B"[gu&֐.%Nrݯ=η0\q\sT @`&SQN dW.߫p2?y3]$do+a\7u}0Rrqff+ُ~UU8lYy> stream xAr$7 aaAؙ*G_ӎPO=@LD2+%2_C/o]_{|3)[6d'Ԓxΰ{PK[]17~˷u;L_w7g&,׼ac-lٍ-P}L -~ot)Mx <5m/}Dn}[vc'3qx|K[` 5x|z8|f2{ :2w_fnlZ|&coPo)>{vL>oSL7Y7yo|@[&lٍ-P}L -~ot)c;[IW[םs>cO ]L|y-'5YcSf*o]g繍V?n=dn[Nd٢*z3uT<]Oe-=OA->>&۞N0;MuRsm~~C]y,)|'n~ MOL y:Sn=7F~JQj=ͫIY̻:oϤV CLG0#9:f]Fqg=3Tz:y@Dԉ<=_lٓ}*m=}NYO홅F|3{rpKݭfvޓN}"^ξe z=)>:jn٫Z-U97w2*~oܤΤ ➞ٝ3scݼztɼ۩sLJa09ۏtn ;➳gOet};sOa'> ND{Φ='*o~w&8Εo/E{yyUN۞Y(nT7'W Pxmfm='([驾k;Qo xx~6A1nN+sWܡ.[ nlU弽IݙSykyvˬ[]}Nߓzz|Coq푟iv-zsgtVEO|-'+;όOg7gܲWytU9a"}ƝNpv 槦Eװg׆irˤܦe;۞}ߘ?ajU9OٰZ7͜;dTPajХŔ~7A1nN+sWܡ.[ nlU弽IݙSykyvˬ[]}Nߓzz|Coq푟iv-zsgtVEO|-'+;όOg7gܲWytU9a"}ƝNpv 槦Eװg׆irˤܦe;۞}ߘ?ajU9OٰZ7͜;dTPajХŔfq{浪Lvř/Us M8;erwuxsT6T|3ٝ 6W0ߤ¹?OCO~޻ԭ)ܥΟ3gg ir睡?n|ԉ|<3OsNwItת\zkjz3uO3;~~S[E^-vB:ܜ7sʶLR UIE^Y:[ >y:?ϝ/m;j5]qK{$g>nTΞ>n=7fʾ6z};LeyZWuWgOSӉJ,&%`Ӭ=?mް'WO7ԹlԆSsg9O+êI8W +虻OonPVIa5@3N'endstream endobj 342 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4308 >> stream x[  i{͇&TI___CԧO,m? ].NwNiO2^ue.y~ӄa~b/OkI7~bt"&jy9;ӘT µS:M%4B>'dTmz}8 :ayҔK^']S :S8s"ޙ!yG0wBw ';gn4t*҄ t1픿 aw&܅ՕKtnfyA'w<S+>9%9]DR\qЙ]>4Nu4ĽNJSgӻDrKbig N'!iOLNsqq8]{ټJ6鞧9ѻsmi=7gt*N;0Oл/(rWE'dv}uuuu_I&jw8+gzN'? fOI7LS=Z< i (>O\n 6N}tϻ_urRӾ)E}tfsz]ɱ9+Za':7}nO>g9]"flx uGr&8t i{wCV]_ʦ?͵NvrT:[ۜެ9 UqNi[;K WV8ug/U']$tWWWW;k B:ed&:?9'x3Oh]>$8[r&1 ;#_ʳ]{8w[p鄮Z'&'u'ELBaMv+O"t!~uN@6&NNrbN;ũ(Ε ;Yo4*Ut]9x~Wf7\Ҵ./gsG8uX邳5]9|ZE.Au]*Jg@F"O ;ޛR &J4-?kwΛ*}$lU񿚚-*qO&Ņ"&agzvZyk~tu.] U䤻IHr"l܎Rqs_N3$ܯΩ;IS}}~#oz#8s۹2>a=9K-F3/ULQ33VlHg+]p#'O%N]W hH)a{WWWWW\_D,*}OlŶRk"տ}&HNy5l|tܳM]Om@hOt4qAMB{IWkW|§SI#m;+gi6z9z?A5Q*~3ELQ}!9^NZfٞҺ6t&mQ3q_J)'W/aߩ%Jmʿ-gDy}rẍ́\_Qgs8uکYKHW=8 os̿ʄIn2f iUYuNi wna6*{u;3읹TݑŜI:77ɕZSgi:t6o-׭k6z9ziŽ_ɟ[S0t]>+nisULvl\3L3*J_P#/a_?+\7B́@T5ϾON;⣙7WkR+*vN;u5+u BW*gzRunW9iޭubr]z^Ì!!T*60:?)ٛ-Ueng3Йj;3IP&&Rkj t:]=uPO#S?Kp6sxk&Ugm63w_wn7NMki7]W =v%~uuuuE>ث!4/ѩk}w47WL>^%ͩNSuuNNUYVgʉy* wZ͝br]z^Ì!!T?3Q3ANo"9T2Cs['35D1'S;r-79Z9tJ&5G9ԫ]?}̾ wLQ!t/%wғlTu fvȥt/ؑo֕?. vendstream endobj 343 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4461 >> stream xKn%Dxb[JŇGirh{?u}ھݥ MĤ.?ur"x7eF]i6 ?y ;6i]IO-ߝIKL_''pƿIۧRޡջ9p\WK|va#lEҗr5a8zퟘԮ߷0c=$q*3itN򓞔V9Dgsˉ[mbYѦv'q;M6Dn]!l!sfs҅|/]VI|.739𦬾'GKNY-1osOM>Qմld6_5lNTwƎyzfwxdKL_''pƿIۧRޡջ9p\WK|va#lEҗr5a8zퟘԮ߷0c=$q*3itN򓞔V9Dgsˉ[mbYѦv'q;M6Dn]!l!sfs҅|/]VI|.739𦬾'GKNY-1osOM>Qմld6_5lNTwƎyzfwxdKL_''pƿIۧRޡջ9p괝IӟɧnK/'9^';{IOה>5=ONLNzjx8o$ԡ"'=)r:Л%fwvg6'=}oR): 췳-9ulWeōryxSVʓ%CSv7KxNt9osJ=L++]\&&YJ_Pؑ3o~?WWWWWSrS/^_AO}I]~Dnxw1iT;z4~;N3is9Tzi$dg/iRsҧfɉIO}{3CB2;:T'UNg5zSyn,u'"s/M*W'v624YJ\n2o[yrTt~NƟ~ T؛.mNigIv~0]ĤS:K ;vMgjJw{똦m]PTKL_''pƿIۧRޡջ9pWb{EupW(]f};y{;sWwOהz0qt)=ke ͡NFQž};8QI];W:ie;/g3ȼʄ>5uq΢sgS9BmOLD~+wLx+}9Y6 ʴh6+]:&ܣO863y{T X%9;[Hse;^Z65C]9zt|֛aR;~\5UKJNE{=U~Lg{$$D׻/K|N/agY?^]]]Cw@%oʫ>U/vϓ{?; J}NORAv+T4β՗s˳qud^eBI8Eg~Iζ'&O"뿻N^_N}RZeZV4Õ.[NQy'rifhřMYu0??%]aN}u؞*KH&utzO=%>3ײַf!׋;u|n(:|WwDޑkk?و^?AEgS|zʹt2ΤY_o§M*]ovx+2+s~Ҽ9{r-yS^uh]w)*#ͽ)N~*~0{7ΦΕs^eBIh*;O9T5w'+$S)W'eV$mE9ܥys'xAI$T7y^W@lpni$Kˊ:msy>MYuL]P?9&^9]$Tj&򻮹Tt{ϲyx?Mĥ?%Kryuuuzo>'8s7uO??w9% M1P"pv*(9zeҳPjj^ν,ut'TrU G|W9ީW 餈@rsלt$o+B Iy#lY&Мlr~=MW_n'r&t.q^)36iv"tٝ. i]>LB)8i{0=o:3 *-[.|fk]NIBSLo9T+ J}El'ԡگs/K*I/tUUΥw*~C:)">6lw5g;+CB}Rff[V 4';r8s{OS%aƄ\3K)yʌMک]]~xveBzSФ:}Gz}/v8Tzr:o:l$vSf$3хI孠OJ/NtZ>ޥ?%LϛΌ"J묿}]f'!p6 jKNN? woOѶ7BrNR.|z]J/^)^Yʿ .NSwR'˛=a3Olz^?]AY78LhvxJKKPN 뒫@ة+]~xvkM8%z}Kǁ~/&+)YUNM]qS0'.9{q1!NҴxғw\:ozٿ:\tɉ'a^)]h[NW*tśO/[ PEPw˳;+s^r]BMB TVtvJսs NUอwqNAKf~u2йٴprvMJ7gendstream endobj 344 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4162 >> stream xKCэN݃Pk)#Sϟ)7+p"u|Nn^+ 褾{YAuJ6*+>_hutW䲩_ =;필&<)<{{Ngo\FjNORB{ Wfs9s]XJHSΕԞUaSEoTt̺/,Φn'Wt 7$eѲ*ظ,ʿ-ߋfJ!v@UysӄX{}S9m㯰xfS-ScKk/y6fגæKʺu-Vj \3Ϻ)N5-ea"Rwy4m&U=_J9{w2r%TwggoUgWÌ+ zg#ݼg,)^Q|gr N&k3]WW^IB 33Y:ydz:CqgtnUM!NsZVj-}\/gYu_ah)VuMqv<6*/K㜽z\g_aq޻C~ʪaƕ=ݳW?_GQwP_vYqgwt]럿>:9 ߑzcj~'f9xւ;vY"]Z=lun3g^t(3 ^'.+Nws+$!]ˬ{hTWXl¦|vmfIO~)'\*ӳ)՜,݊2t]=+;+̹ÃΊU=+83s׍"xޝVgSٹ:ӓQKѿ}fhy%#uBfrVpgb\t=nL!b9;Qvə튻 ]nS<\V “ƕ3]N3~6g7njZ99scarI^aS ev:^Tx !J͒y5Nyu7*n;AZa7Gx{n4۷Éޛ=+"49ճ;4ouܻwȽB,$3#r3߱ΩHhI哰gPVt蹑g8'RIՙ*l9+9on3S'gwÉszvWԽι˙6u#.ύI8TƜ}~9믾#BYܤݺjGW_^ieK.Իg8'RIՙ*l9+9on3S'gwÉszvWԽι˙6u#.ύI8TƜ}~9믾#BYܤݺjGW_^ieK.Ի'v27=Kxt٭r~5h62ʼN& ԯnl~rsHUe9jZVo"jZVսJrZUWVjZVjxZVjZMVjZ?k}endstream endobj 345 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 517 >> stream xiQ "rN [0FZ~C/l앖dK`®F`;o2e7+@/у6FM& Ћk sF+ Qf~- b lldK`®2F?2[' n҈k ȷ2[' n҈k ȷ2[' n҈k4 O+ E~r!&F2$g6+IрhVf`&[v75M\l+6O- ]\l+6O- ]\l+}౩endstream endobj 346 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 272 >> stream xֱ !4vB@;~ϓԚAno d 86d endstream endobj 347 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 348 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1408 >> stream xA9 CL0i-Y{AQT, 뿿>UܵûI:NULu urϜJ3|vJt `}Rvt@>5'V_<bૄStg}\3gL9v]5:&XԼ%} 9sUWGB |qbu]K'T;+ L=U#X5:J4 ʉLn|!} 9fzdzUo$W *&]OԊpBi`S%Ι^=u9]3?Jr>xH>^k k{[zlDCBǩ ruPe_#|P; `9SO8gz;^}FeUyc2_]uw } 9zziDCBǩ ruPe_#|P; `9SO8gz;^}FeUyc2_]uw } 9]U[7HxH8U1A]nGbwf3Ts*ﺐ#k#@9afIc2gsvj[,zfDCBǩ ruՕv}'?gc^wus0ӜJ3Uyׅ] +ݭހ4N*g?>sP@>5gQ @9qﭏ]wJ᳊1ۻ޹iS%ΙBɏp焕Vo@]'?@MdJV sr5 Hu[;>󺽫+L=U✩ʻ.'NXnuR9L$Dvd8'?ZhoG7Q~ǽ>Rt몫ʝ᳊1ۻ޹iS%ΙBɏpgVu@]gS?]Ly!} 99YԚ;E{;;.w]W]UUyLs*qT]rwM~?{2:rLf Y|kəs"YQ%N?#4Un#V宩LUu!G~G8J_:7>?yΑOY;'U⤫+P SMSϏp;iU*qT]rwM~?{zs1Y|kəs"yJ~aRi܌NcG8]S%ΙBɏpgVu@oN9&Sw @{;2`endstream endobj 349 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3890 >> stream xn$G C?"AO7\0J3xMO~=wiZÛBL>ᔍI(dB%ξv}L}_xBOU̶詷_[?dL:}'y:kdK3cη" 2x_=5<W [>܁4ު 9kdNq#;ݥB1wԻGwtz&ϝoT︆yW4-rXA[&pF$Ug{q~2lvؒ@g_v/Nq<}Eph <ۯCmF}+vKlfOgkp]oUΎ}E'8 sku!_ }!VOONvd˄|V܁j ;cNwͽvuV>9e*]S*xm?3Շ*ƢiGN6>>T蠪2 ۢrši(&I)t>#C}I4?cu  oSMVe+T|vvu˛<n:PjyiǿSs#;wƦ<'j%q9ko;uWXvBû u7 攻o~kwJLi3&;tW[܋[n7[gS/~N^Oak`?2S=S}rn,jlzTtk3z_O*y-=,[Zᐆrkhdh>O32g$[!J36^Go6dZ;*;N5g7m;*)XG}S:즓F?[9?=bswglSlO~j>ϯ&|^XSSgm}9l!ް7j}_N6LVD5m 飹 wwY|,Tz4NhBeVNΩ攩*쟢E3SM%؊BizwIJ5c2{˞ TUfb!S^!,MzSx=aF[4m2G&Ogm}ib7-vxŖ{ L7YVNEg,Nݴ)N3y0V'O[+:k) ʯ&ʄ~b9%N'B7j}_}OjNa<'iE~O4Q3vߐ>p7ߡ}w}BMT,TVl$jNj)]t>3^2n(tޟwzqN,[\3&c}MUe&VO?e >Ҥ:F[aE+3}jtW[*֯~n]lon>{|5m^]t&ς͍M4:983w .`uuٯ6ΰ}j2ϯL'6)n]Y[B!|󽀚y:aې#Me|Z¹]unN܂F܅~z߅&|MV98p}SS:gB5t–!{;qV3&T*:ݜ*}wuש:gsZj*Ti hO$2Zq9pרi[zr擃RO=g4pv]bSşw}zkp6UgmTrj(؎4 84Sm;*)~YxmƷϓr҇w.4k! ;+9ۜBv;B3G V滁f;(=zl1t&/m؆\k6͊k k»';4SlN'<X4sz4Tl:8캯iE.Xftb2ҫN*Tՙ|wgw6{7 WMx~s$TOAyOiw3{牂ƾ#vjQ{HXUl\sڙBSB.{.GMD9]lkJg]!)u4:P9}F8;E5TgB!i(։{:Ngfmϵf#جؾ鿦i>{*{jx-cLC9vtYjS zEjj;NCζî:V҉n&J'/#LdBOUw{z7>J!jwӰ~ 1 MJ;ؙԜ䩜v7z(تmk`8bwOֿ4 h:Uϖ;^lO*d8E)¿삑~4NatrZMlSPgt STx QNu&B\Q*a3-]NFi75M;ӳX4-}+橷1̩N}*vlO'cskcd0ԎG'S 9-{T8^)90&tp5Sͬ+OL98s <}*Lۥ>s3!_\1Aendstream endobj 350 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4336 >> stream xAXCуM{IP}*'^Oq8s|$ni9 _WvȻz9:w[DLV3sS>Wfsj*|}Wv>{~?:kPgsp:4ՎSV];zap1zϪT|5Sɬ֝;ZS7G6>fvN8yJu>8aG}:;:"8otN7zWOmg§Ϻ;8T*u8O\qۥgSLl"i[sj=gS%KwONfb|vk~S]J婺]uϩ\]]]]Uy3L/M}}L݄{!8sw^D[33Ze'_oi >-f՟?skN<O쫢$Lfsi{:pjUzwCƟɤz3d mG}BUZL|Q.N+mIW|:Ig*=f8 woF}ep:[VNWǹE=agGS)RmyNTuz'v8Mr~GTofblqw1EȹO^ܻ|oہrrB$Mȹ;}7ET||u;3SU&*3OQMݲoV3$ӡ T̾**O:n6}SVg{'8dLg>INVv'$l\ﯥͷ KŧC|Fcqfn$W Ce>tu]zv4"Ֆg >4NQ7y*nln݄*w0If&ɶ;zSdŽٻLʧ;-s;pzZN<NN3U;욶C7Kز_+%({N2<۲#wV;l*Z*v*>NUUlD wC;m.2%d_[%C[8;ZL|Q.N+mIV!s>gfw}T8 Wuuh3Thp_FgOٽ_ʡ̟)'ܜirsN;ZNNWC؈S<;. ~/oہrVQ89ITk,a˾2|FۗwnmV *[8oˎYh۩:UUٲ*TUȤYm mGok2yGE8o$Y?dyqQ=c$\M֡+6Sq}ei<g~U*3ZTpqsf1Iέ; k89Y_ a#N8׻"$Kg83sr(Rq8_=-'owp9ŁSEKg#$-sSĤ*3?9-%F:l{8S8<*[߲/ 8pοT|CZNg9h}|ro9>ץ .xA TKܸv&T}7/wdƾ'IJOōֻ,'OENF獪LC83Ә%$0aa,%{Lrd-fI^]]]OoYv|(I N-UM=JU#^6Nlɒ˾"dI;^JR =j99Tɽql&Z^*7CsrZ7PUk/arڙRTTU<'+U>7Z.fv4<972 Lc[ZI&@1m&^rxuuu>%ޝ[v|(IΖ{8E~'Bf]pH|\OKߤ%߲oVO;,g>c<'yUYrOeO1 diT:bNO T:?]-Ҳe:u%h;71wEO5EH$Ul|*y񓜯rg}*n}]l'Od q6zv;Jn9fUUT*?gGk%9 TqtwQqxM1{L2<:9+FN[qw3t3r/[l0 Oi ^[igUT;g$O !Kn )& #*|BTZ)_!!4ZT]띰TZLmG4&pH  mO!/~TTnLOōֻ | 4]wGM=#ܬJs$'Aw#*.*)fIg]'gEU]p?~תUw3f>*$p֙-w3Zef'_oi ;"_q;[rZ3QMSe g?-}*͡G8"-̺9v rO1ϟܓGHxr>]>f|2OퟩzuÔ3f}ӡuq~h\;Z*Z*ۛqW!ۻ8]/#Z*33U+?[G i93]olݜs>;?''S[cB]$_oi 32[>Z3QMSe g?YeK>OrWPW;R˓s-½||rD;If'pJ➆p:43<|61*yT̕}̛<4G{B^26";Z*Z*[<6qDϵř"sq:u8zIzcY㟭v|lg6n9tUOѝ۟1SծI~WLK`-N-^?ǩ㟬%}lqSWI^o>>g$az8%qOG8"-̺$3&؃9g2pBUU|OGK>pgnLmJ|>gvip|֝z-U-?T8"\ZltY8:H$w1QWWWW߬BEs;pzZLׄC'rڲ7ҩ=Niw*ɛbs̤.߮9{!GZL*rڲ7ҩ=Niw*ɛbs̤.߮9{!GZL*> stream xA3QCOdW"bCkeZ*OCZ5rf&W%< ΩJջMf*?^y-۩Td̗I8UpvV ˩BpSkFl{E-OzwZMʑ_P;횳_fM2Ku![4~\|Dɏ6I7sݿOtSUzJK噧ry𬣤GYuhf+vtwOoVSŗL&TWM=N>]sڲTW쮥*M?UɷkN2IKW%-?yC>"F'|ߩ*}=%tSa&u3ӫ|AVw>USݲ2pP2o\?nSUtg`y[E]ٛ]s~*ڭк$'s ts{זkEI U-Irquuuu-߲Tnܴ U+܋ۡ2䓛ղiap$0ӗ[.-a_TW\qrv{JEx3py;ILwVŰؒC]Z[6TϪ%з U_nNBMbu0u**f&j~]{ɿ+T-rO9fb'ٝL{WloYYUk>{ӲkOE5-p6dN#3?sn*Ip5k񳽋Ѕ&K$9ӸzזoK*ZgnZLׄpqPCj08˭LUk}0/a+8k9;=%"8d$g;*ZElN-}}ZgU/7'!Eu I1Na~ 3O5Wy\|nTRՓs߽+vjJ7,*U5i5秢ݚ8Jr2@ǟ9$NIBEB~ԥt|i\]]]]-oo35a*BνnV\NwThE2m_pW\R%IΪ9 6$gʖ2/bK~J-#N} a/''E*ݹ:'1T9If]k#wEY<د3 #mKBve!]h93oН)g!*[޴l: 9{6]93@ǟs E$͐y3MNy)ɟտV}Ѷ K˙隰_w!^j7esO].;f*"\/E+h$gUnyDN3SeKVwCJSUEّYUN0I՗zw哘w*ԿÜa$َSݵ,aKW™TבYŶ%!2G.\73S-SzioZLLN=䜙LϹ"LfTř̦lO_qk835a*Irkm!3s_Ur_Owi ɗH g#[&Yy6y#Z-)TqguЭ-p;pve#Zv;STOٴv۩wݯI3KwuUzqwgh3j +BHbے]wGI-'!Wn•mIJrJ4βMsǿ$#ZI&M'LϿ?N-BNiz*Lv|w$9v5m~搙/*Y'_뻴Kl_-w<m-ϖe:K֖ 8޲~c;BZ)lg;kwTW$Gԙ%fv*;3}B_wZOytTurVmIȮs+?ʶOrV%9%wg٦9_}a~-$Y&T&NߟB!'ɴ\]]]]=K8_=-'!'w$0XGn3''#_-]ZL{8>ի99 TR3#dlЭ-p;ܫMcezu2Lve9pԗ{㜽9}lINiWɈKd3vOrv_Jf^ k{Q3[$kp>g8}ɛ͐UQGXwe"(AlbgsKQ0%dzBW'p/0aS33+ڷi9 98'ٿ5U:%t<9:n|f{[d.^I!g3nmɀ^l+#ydr8-3QcKvLKJF^$[{R2OXۋ_EZ&ɿ]k+9ksNl䬊*'>º,9G,u*f;[Ž,9jſ>a] 9\]]]]9ʨ*>^2rdg[܋[Y uQ]8|JNrٱ|nV WӨ):#WLϩV9Utʩlqp3$к{e/Ʒ$s6Z*.iW'酿}f*;T߸j*Z=sr}:Jj9OΪg[/sfg'ݟOq樾eGיqڠ]̼CIҟ{!wMPqNڷi93]K<2^jͺLدrq_k}Wr̎-?us,gN`JǟFLaJg|NBȩvfSNOf;=!ݣϟ67?-K}7%RwNKJ?)N/3W!ѧ*U{T霓UZW|V$|vV=ۊ}7;;~݄>3G-;d7*d}g>Md4Sm*s2-WWWWWgU*6Uwvo=g똚笃/i;"$mv˾2=}'R s+v&oDEE|J8;Os_U: 䓜UNC63rx2{WeHΜUfiUjTӫSu8}O8hJvT{HPK)U#r>T* lٴi>g3;PMMr}Pqv9םUl;&Nup4KrsrMZ-WWWW&?PS}9endstream endobj 352 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 3648 >> stream xAG C ?PH惷(?)RFyCmMnN(8dMg֕]R{eCF+<}(:R^ƛ[:P`j-P>5͡M]|-!>FhtY`{(h^T Sw ՖMs>_CXIqp%g{M)4f/5-`+tEL]t߾즼 뭮ԽYaզ0aG>L5 [|xCo>ʭHC 3oFU]֏f;*h^T Sw ՖMs>_CXIqp%g{M)4f/5-`+tEL]t߾즼 뭮ԽYaզ0aG>L5 [|xCo>ʭHC 3_73[_-s,l?[6uGT~;}l;QWyt{x8H!{J?9vK >r,[^\_sjSJ?<6;0OO:2]pRL$3c) xLd]Ʋٮx(>j\+>;`otSf ہ7x;U;ݚ㓁Q4ݘ-oSg;n-<민= FߡާCsB!:Ԕ~fwhT ncaҴ;jtvwf/eQҸeL<ùE SiLȡ[:V斋`SjvWQuu]8E߁~*}jOթJb&Iow[OMaFg"5vC?Uu^{S}2Xo۩<} bly0<;ߡvnqYi84>BJSjꛈu)ؗ吧BE6ϸr'1^x_!.'S[/<}rSش&OT74tkh?eE^vGf/F>ߗ>'6;oOu4njS/7M c~S*My/ ݨ0f_J퓇})vfM9lWwuws:;Ud4 v~2lZd)}t@)Os#Ɣ]*ٙ0SMoPgb߳ϼ4:$c OW<]f&O]w.޶wOmsߕO{+Sȡ'?A5-:9t?L|SuBSwpr#Iml3^FtNw"6^sow/;yϻލ<{bέwF[|ޱe->\[n~BcesO'dN0ldOO/ )gM!oYocl'ɼƋ9x.թ1Sknm%z';ԗy7ڻsOWl޹.h;lg`cqOwuIl߉l߳~?t5Ŗ4i!BA]@M^tM~!>ɗ1B!B!B!0ȟ@B!;ɿ. !tȋ!O!'2B!B!B!B!Bx'Sɋ!O!'2B!B!B!B!h!endstream endobj 353 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 472 >> stream xA P C(uMme_{V\LfY~z>~+@? IPٌ$h~/{L4Cf A0'ׅ9&!K@e3Ӟ=:Pٌ$h8Dd lF4P3 9x;2@'Y* \e,@ `f\2Cf A03ׅQf!Q@e3]!0*  Pٌ$hX+!]@e3`t@ -$ lF4Pl.%i@e37rgendstream endobj 354 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 355 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 374 >> stream xA C7M E1{ 8j z>>WqGHκA*<*]dVO=̩ !&t> stream xK$7 Co:6P4lȝLQ@m-'~9?|5'/UstwmZ=Ua{0a_xW g97lc>ԒȤ=J}Nvȑ?3?̳^ٽf zOBf楪Tx.SW+*vC~&LdL39OwӾkZ._'df^:H2 |R{l;`cE6ΚӃsn:["/НI[+?m&CvȔ?3?~7ɽ :t?dRA*;Jo:'V DGʏg62mHvץJ3qw<{+J$/U$9L;6+6vC~zgy_*^8kNιd+Y>;Jo:'V DGʏg62mHvץJ3qw<{+J$/U$9L;6+BvC~zgy_*^8kNιd+Y>;Jo:'V DGʏg62mHvץJ3qw<{+J$/U$9L;6+BvC~zgy_*^8kNιd+Y>;Jo:'V DGʏg62mHvץJ3qw<{+J$/U$9L;6+5BvC~zgy_*^8kNιdw﫴oj DGʏg2gKvץJ3qw<{+J$/U$9L;6+5BvC~zgy_*^8kNιdw﫴oj DGʏg2gKvץJ3qw<{+~-O3l;wi3SNsNÜ-nM';啿~S=(u$/p]kN<3}Tp9|z$/!+s5]l̔00gsfyTi8!J DGך9L_C>U9F.`_d2ɋy3s5]l̔00gsp=qB:5'sd| s8\OegIkش)'9'aUa7禓%d9 {<(u$/p]kN<3}Tp9|z$/!Ϭl;wi3SNsNÜ-nM'K緻;>} DGך LwC>U9F.J endstream endobj 357 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4248 >> stream xK]GCaSyK&"ax2nDZVf\L^j:SOoj_kMl%r6n?>YrhOWg+S pեMx΅qN< ~i8kvgR\]K؝Fsn9ŌgfOAnoC{-9gtu3S*WjK}VQO:~w!))I^B뉜xɎgQ_'!Z .SwgR32EOɼ&ۏO֬ZEqʔ:B\ui6s,fς_"Oh[% T9r%/ O!bv09+ŽRrxHn2JYTN.>]ϚWq{v,[N~/9;b13oqx)Z' K۝uݵBC5BuۛTS;i`mŦngR7qgOFj3[9%jZN`Vz8~f{LQV?8s5*vFJ?wgSXSMkOH:Gl2-i慼vN{7ʳΊkLG_>lvSq9uZГ'TޒO un ''LÙRso$UMPB=rQgdw5l#-lt8a%)23kR߲8|i*-yF{S6pQBYœm}ݻgOFtʈVStaZVeWa'l)}))ئJK88s)MLaq[uUE 7NpS;(ҽJsbeWwd(ܸ†Lfݲ#sMS/64!Եp9+\̼L'*9)ʛ88l\ג*&h6˾)C7MYqVpV>:N"o+l>{ S|uV7Sq̍)EvE ϳSQqPh&LթXIou]j_)Vj]n_IwY*SRRM]#˓TqpR쑛T̫o$jOvP{*V+,{ʮ"QqK eeGjjl_Nm*iBkrV> qyəT]O.UrR<N;7ٍYqpNS߹%UMl}S~n:γ8}t~7Ed7Vؐ),uQM}<(2ꜻ8+n\щwS&gs6mM7wSrվS=VjtD/)ܼltŸ?KLgV^.7rۈ"׫TNu[tW,m+q9):B.n\%#g*#˩SAdQu3rK*2zh;qɞ)wS^;ܶNSy{SO-]\ds?rf%NVzбoiPF,nοݖYn]6MHW7ɥU;gΜIUSNjZu>:}MQ;,*-?9*")>řpϬ:%\&ko$EWgIgnYVrv SXu\Nݫ9ݸJxGTFaS.ɢf*y Ud'*VGUwx=SP+v&͹mp[il]^ K؝M dcS>Yz)o$?\~'BuV(2Y{#+SXy5*YFŪByo8+SXyu\3Ws+ 9I$EY,,e܄K?3ܒ4ul\8YCN\%Nv֔SWVΫAqi8'gUr=>%\9V^5'k a{rn)On҄-8g 7ZMN7lܓWeéfK{_jױZV+>!endstream endobj 358 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4429 >> stream xVY, ;D UETm.5,˯vXQa%UarήpuLL|"ny"Hh&ko$Uwʫxk wՍUByl:pV^C;Wslj# 9I$EY>Yy M'LW<)I˅{4gș' RI`Ij5rQiO *֎`N[ϊ +'KE Fr3On҄-| 7Ϲ)7yMܹlܓWX}}^bX,wd~ϰNCw"o~{RWş9>< $4ޤ,TIԉtXԽȜ E}ΟೢaHnGB?oOvx㪰|f^nP7x\ԓw!nqʬ{"rv;Iꮇ3+IQQ{xX{$b'taUZ9hK/͓4qO<:\yӢkNOqqqzgU♧_kX,ogT!H7=LϜ\\{oR wbw*tD:W,o^Md΄"ovݾKWOYQ0$TZlj#U7dyV;DqUX>3/ qXWOkV,ypߊw=),~n 'aG:(.:6=I{7'M1# [4,Q]n-Z٫&/;HNQT0ȥny3Ô\xzO.9d 0f+5¯cVO ]R]Yw n`Eyv;95罟7~+PV8p@̛uQ=EooӿGgN=8[+m;:I:91ݻjYbσkVIgkwۿGg? ;AqIڻ?oڽLߎOzgɼ&6wS\hy*^%4yX,A¿pW{&ǧ:Esny3Ô\xzO.9d 0>dR3 :fքл;~7XQtO.Q&s+dk{?6ܓTbͼ?l)W?MZڡb&D,-Zy rӡ?M~gVi_};,-~ǭaNHKK<kyz_Vjv*9m*^r3upwq|˖p-Zۺ.HNQTڗ¿).SrK><\47&tpx&J̀YN@Yw n`E=}XD9TpORCW6r_ n7ij< j-8wNOwNL7 Y''}XCZj9mT K,n/ Iir~YY۩@P{m4r|Q]>x7.[V< jnzX,/#KϨIo![SVI\ ]ﵺK+NgUξu8}vF VTt9y;-ƝݮTw{֙= nd%w-+TZL Z]M˘8 1'>},Y''}{OZɛUGB]{Io-ORVYs۔nMkZ+;Jx]ƒNW91 PMO7XQ1D)twvS튊]O[g;ԏb+QܡgDsRiyX3S'huM6-c^5ǜtLgUn\E\8U?uRgSky&oV ]Rpv%a:IK<ky"yet{ymimWke^wG WxFn:.o)tdÚbX, FLOg/|)xJNu>qOO^qtO(&t†<)y\_nj'@ݴfVxu$ sW<՝w]ݮTw{֙AB+Ns8 7iSjyX3S;oeݤo`zvoܹNRQo6m;~縇JVjI ]b$%a<\/NҒ&tgy&J`@u8/ԽRߍmzr6nWTt:}r:Sd~&w0+榞WV@Ú ک}+&}ӳ~-wgu ziJfASwF'JR(>)MC3y-=mDs߈mZZQշ<E"ħAbXTgTJב›)Mg"uC<=y' ũ~VZ҄n0#DW Wa1|S Ts"WwZ6\튊]O[gj@O׃xޤufjyX3S;oeݤo`zvoܹNRQo6m;]),HR|JۈWi_ '6ųi(Ur&etuBѹMkZ+;Jظ6Hq0TԽҵqX, bCuFτuo$+uS'\R7ӓ|ry_zwo%MvϺV*1swEK@unJ:ӳ~ϝ[<,fӶÚ ˕' K+aÉm#KȻ 0ZyO}AP)fqvV5qwq*Rx >= jEm\,բendstream endobj 359 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4331 >> stream xI,ICэM$!sE֨G ??OZ[:3!Eq@.RogOnp8߽JK9ZT Ι;S[z]H-g.;L)TjOmgH[''֙Z'Tj9SWxMZNȭ-'A]੝ph[ѕtggK{G^UE=ٴ:âdaJ/):SR'}bs&«xhYR=owNqNkrVQO6m:*IO^CO]B޲Y |IzW=Jj'G'ay&ڜnpŝQTٓ8tmjZVj% '|ըgr8R ӾTm/):SR'}bs&«xhYR=owNqNkrVQO6m:*IO^CO]B޲Y |IzW=Jj'G'ay&ڜnpŝQTٓ8tmjZVj% '|ըgr8R(ٸ?պ#ٓ8>\l&kw$Mκ*<~6URo.֥RnR'L󩐩zvujB@8p_6mWGK٢Zt~'tM>D+g4>8w'LV.!o=[TZ\+ \tI%\MnY2;Yړ8 d{ZVK _ _5΄ d6Owȅ;x&NW9ɚIv; E?.gԛu):jG0„T 8봽~|*dj귞f]3d9p}~5:'N*\;ץMy5r蹖:]I:]ӳ9Y%g*kyh K[ի$')'ߊ:m'G'nR wxk(a~Vx$~+<?>YޮVjRBW{&S"M!zS#{)'˹ iY=d].:%_9ang^{ߖwLYqfuOjZVV¯tB ܟJ)Q(a⬹;It Lغ)T,t:gE8Ben#]'_z3Tf:먦:]J%V*ظ,wIq%lKs Tѽ))SlN鬒Úє$8LI:WwdcpO ONx|X@$KGm' J\rv)*|JNɗsNآ8=^%m"SsVYZVտ:SއgL7"ĿRE-<%<ѩw⬹s+ Tg|IbMs;PW 㙎:9ϦLtQMϜNJnj.Ku%gu{>,;8{c:+8랽ND[T2M!|R>aEwlN̢$ V7#9aH|un~D7KN‰>mG޹w9swR矰H-s5q3.´ߗ{ Wj#Ta}5}K?_\wsV;qܹTVs3Ϥb9+LGgSp&f:먦gn'\b 75ɥ:MʒͳϺ=SluIu=Աqu^N?-O&sf);6 'qfQ{vUK?j$u?s:7?"%'D?RSܻ;Ov9}˙xaxxK׽SwΫjZ/fMPw#y:=ӪMNwneyrM"̟"tIv[ͩ؍S)Tu_\Ww!aQyM5P8YuSLgUF!>ۧUX>mn:)k^ 6^*~')JͥrN6?o/;:'W\N݌z9Y˙|ºzw8+gөxrٸ]Iu"|̮J=w.g⊝gr}pֻUX>=)pB3 f*+>\rn7XXP&Ŝ3qbSOğnt\Vժ.~'~ǻ&uu:e{Uo#6SXn9$N<%f}W׍E?wE(&춚SS8C=ѩιC¢Lu/jN?b?qh뜧:B|vO|uRּlOL+nTNRKd;l~^wuNr7i3Ku)q85W*{Sq=&Eߙ]'z\;"& wO|zrS:gATV|n8:M9g[|ջ?ݔ):ZVU]~7)F&Z\f6zr<2=:'7*,u gHيιϤR; :线SQbLGE7wNLk'O Q'I؟*N;T))!_&Y')Fwn.g 뚾iYEэe%}TCTAQ$$8;ɝŻ*,u P{l¶OD9Wl ?ӷVՊBendstream endobj 360 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 2651 >> stream xQC1 0l:74I7?kޝRNao$ {tVxs[tY?F&r𤋮s5qS2w\CKI3 ;->u $Ra֣:OQw:fw^ z\eN?#qHZd,NQ;)gkV1YmF U}&۳-zzgC85gTmQ\OZ=ٛ+3_gTSwo$ >;םN<jLGE)onk'r𤋮s5q>ݝR6?UI>x՝ýIke-}:?H:\SnZwyOOQ8eHڳ>>}wv3;}rgyWݖY =9(@w-t]Ҫ>QS_=y=٘aDiSjt)8w:v]T_W7|z왎:QՏVvnԭb"q}Oe9tHw) ͩ-Cż;}͕n<*\iU[ޭ΃U{t4HV7GTsoWqN-{쭖SzfZdS\뿳=|q~J.EޛN9PΤ{ SnK,ÞFO}vy Bj]Aц¡O=+Rd5 y=I}g+Q+duqm<=ΩϞENMaD۝ψgD"jWrxݎS>m5S4!jj7\ӕ)嗒*4orDg[ݬult';̳ez2?ERt:V030mYm)Y'[ЯMg7)ΤjIP1GωDS{m(SE=I ":|'RԳ"E]s{Гg~|BF_왎:QtF4xM$𤋮v؁*_):V>IvY<]yR~)iI#Tus|3MޝRL:;s@.tϖ/h?-jGZ<<]@l'sM`u\ӛ+IùÌ`W]n3|')'^ʠy:o?=)9o}{6zB`6"Џ!Ϟ\>ӌඁn7OWly9qv%=Op cOW3Iw~܃?yopo%;Jwp0'go*ؕt I |퉗2rEOO "xl^翨Ͳ}.?vw8x;'4#m /=x෩ ){ g <k wT=oVû{ak wT=o.;05x;m*o {7PopM_M`/B'<| ~~ ^ tQ `/<k wTy 4endstream endobj 361 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 465 >> stream xA @C7MO0cZYd_j~-`:6;oRF 6.}7RF 6.}u!9*<HئԥySF 6.}u!y~ȱM"&K:qW)i_rlSIN\pJ`T bRqwSF 6.}u!|~ȱM"&KzsW4/9@Ĥu@o XSF 6*4 ِendstream endobj 362 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 363 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 471 >> stream xm ChM_ B z2 611cjQY7 KVtuySTLDg6 !d i~z(1U`\}H+*c=@ffMnpjA=Nv7ze,\f:؉'͎Ľ"P9k#dfm6S 2pV'yH/K2Q3N.jfG%^ԿVQs=FrH 8endstream endobj 364 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1543 >> stream xI9Ct6 HqxZʘHX~ϡi|6'9׻;˸TcIri77+jupcaLn-H~&'9d zY/:fyr5 htmfoBGQ711@&$p?\2q-;:*s\zZ9]f[bnTMj6ɭ פ$0p~A/e\Σ@ʜwp/+^㿀}NfY֩-tU{ drkA58 !#_zײ3P2ʥ/uӵiVu*v FĨlZpM:Ns^y^섕9 ^V.-OyʴB#ܨ;5m [ II`^8;2!ʥמ=)ϞYV]ty& drkA58 !#_z/CٽuOYV]t 74 [ =qCF82N ^7{Ks42P@oh@&$7z$0p~A/endٻ?czg*HGxC2 A󛎓2qjb?ݛ^g^Z靕㳫t#H ւ:o:Ns^Ʃ!Fvoz%ܽ$İڬ]@oh@&$y~qCF82N ^7{+%!f*HGxCȗ-9sܞfeu~N쎏Ysº2+g/J~[zIg\s0Q$ǶN~bgeڋ]Ivl wB :u!Y=թNNgW<=O'2dFuU{佨[:δ sf19$Yr}`w~Sq{jg5+?s'u*gw|\ʘY=={~WrKZ=%rW%w uȌ%9uΏ;+^Ԝ|HrcKؽblTg}שmO }Nݵvr:|; y'3Uj%Eu҅qU /E6̉%9ϒ#;Ipu scv$gDg}7 {jeS殅jqSƹcXKNqD%;únFۿT뙟QN%{y]D8ߝus{J7ƩYZf,Y~bۓEf='~WO_ї̨2%au 0) qkӣQm<dO{r׫%侧7v0;-xƫ#<;s]x߳:kO_;3ɺg}XGYendstream endobj 365 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4095 >> stream xArd1C1slklJL", GC&t3h,AXTͺLW>gµh5}il|癍[忈~ƤfQ:; +Eg޿;v]"Oiɼj}/SdRTmLݒwcd2)}o[5t^TLzp3.A5?gGZ*['$Lڵ[n_ a;e-=݄wf})7]f&o'񑫤ݸ{jZV~@[ݓ@{O q&'gӺqE%B{06n܉r"} ;1t}9loIȕoW}Br;/f{qv)tM09ﲑEc\1[1_cx2}Sv=[[l“v8uKⳏs-"&նq:=}MjE%LA3/l͡d~j>TSL|M\Ng3[ I-@2yWZ%<_|;TIS|3˖]ϩ]̞i/v*lnO~IfSBTo5ӒwjZV+_L[z ?z|ע' 'oF@զ^8y_l8y3\T*6fS$[З>E%LA3/l͡d~j>TSL|M\Ng3[ I-@2yWZ%<_|;TIS|3˖]ϩ]̞i/v*lnO~IfSBTo5ӒwjZV+_d<[[I 9gZ}|N”OS- ;9lڌwST>-r~ke%J=Mٽ3S2L]}7r:nڷؒyaR%B_LF-VhpR/SӀmjng:$o alNH)J4r8SjZVJo?2s+I 9gZ}|N”OS- ;9lڌwST>-r~ke%J=Mٽ3S2L]}7r:nڷؒyaR%B_LF-VhpR/SӀmjng:$o alNH)J4r8SjZVJo6η4߷4I>g2۩?GNSoaίKs?v_jҽw>^Mtu_7#{ҭHyvڤ}JΔû9Lew%$ow}rN&[ZNߋ'.︥Ǒ!NUwI&UnS}fNmԭ}*ڌsӿLq}ZO&N+T>ԝs(9FLw{;0Hݿu:3UHj~|:;tpN]ԮMf8WjZVZ_S|&ɌnU;rNru:v/}Zϝ۩eI^T{Q4]wܴΎI#g]h*:Sz|3A薖;O}~ݒyv;ni997?/ZLKn3>*G:;U9%sTMWqpF;ϞS8h3N2Yq:Rk=l;8{P^OSwι2e.|#uֹZvV"uh9uS7\VjZiZK ٧'yNNy|n՛td{n\]Kxv_ZK<^uSOǦ>8IfOTl OQ%mYr 8ߎq>OGZ:yԳWދaq2*I :ovk*kN9>*۩sfw8:lfo繕m)Z*erv$8nJmg9&:Fʫ}ZSgvꜳ:ƿ:[Yynfov{f}9 >6}Zg-atš̊{/w;hUnu6jZVJ+7)-omϲiտ ՔO>_iRtO?;rrOP%_nW8FϙI+WM|޺;Y礏QQK3rfJ0!͸:7xǩ'i 3/Lvy1Ox7sG$9eja6;?m;*e~KgYkӾ,o;*/_fYu;d8WjZVJ k_.gSZ*.*۞eӪ)I}Ҥ_龟~vh~/)}J>gpߋ34?W6#TuwI["g7Ž̔a*Cq;toSOff^s#%bh/B9oUVIfs!^:m2!wv7v*TϘya}YNvT_̤ϝMvpVjZ._IBhC%do{M+vDx*v|9Z:QiI݄G sV )>¼{~>UsʡFSܜ̺rn/]C>[䗫%c8TO?R@Hڧ%lG#dR99SWgzTfe:Ct.n1مvnZi}VjZR.0ۤ*{ ߿Y6#O-8;)ZN~jhw萯ϊϿvGBpp'uY'p&>)I:WlwTI)*2Oqs&/35tgfoђ_LSe ?}LKN!ioI|O^ɞ7Sqg^/!ӹżsf>BeiZVjҊ"|Ki9Mv$ݟv9ziDxBCsiwr7NNyɿ wS*S%Cd~+i'*7{#>Ȼ8d8US$yw)ggpKFޅaUpGş{r6qJr֕݌ktNϯi7t~ud82i΄tg֧i3B-jZVՠÔSendstream endobj 366 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 4245 >> stream xKn-G C i2+GԵ^鈢@_|6É_'=\l^M?n9k?i9g9cZ%GIv:箝o.®{P钜o=N:!Zz#WʿwQduLqsw]ϳNe:%UaUa;RsN6a# u/'g]8Q)S'px~ێ.=~=l\sV9!qz5!rVjZ|ٜ sdm}Vrvȼ[yxťkG9.^oҹovV˹_I¤&'33OdVvUm~Jsޅs&\^E:뭣S'~ !h6 zKaR^G[i6auD8oT9]9srOIRqΞ#5!BWft$I~:z8XgUJSsFKqMIjZVoS;d@4ID\̰7\GEC8CV/.mvX;s¥}U~]zH&78al Uo$3HoS#.xĝ7 ,7ԙ .\ox8MxIEI[: WM#©&ϙCO~Hw:s Y2#MTÙ:rW2B3]kJ2WjZ~*i9_]Bd'qْ3SA{ lW]sG,:ogR[]9Wh?-guHtIvzx8oxpZF2+#*5'Du9Gy=]kj L'KG+tMWEQzGn*ctR]lJT.&z;=p{2{jy[zM^ޕ7uR%;HZl>蔹)qŝe "]z"y5uOFsONݛ[X>xLZWFxv$G׷멀̡Ƿ=%B u:$s%T>W U !J9M݃P塝qVjZVoJOR| T{K":ƒiv=8>m}g \4P"V9W+/,Do]XuxXȪOlN7V7۸9$:eb{\qw©|ꤞC~2dMS㟑ŜƓS&+Ϻ9^!ջ79ɑ-z* q?3s-gvc {mD]᭦:\ yiyCt;oS Tozyho\jZV._ֳ~=%L >+:ƒiv=8>m}K.Xjރ9SϹ:3MTw7Nx OneL-ʺ:=7zûLTRg^}:L?xsg;`2i]yIۑ<r-gvc {mD]p]7:o8:o^ T:=W<ۛo^WnZVjKEt?&gU 4lW]>ޥw,~RozթP\A|ę[u&w;zGI'e&vz}eFmrRO̞Ny=]p{3wtSp[ PQ99<\qI'%-{9$g1/gYNzwĚ3"Y^}IMۻ]LߺNr2V,͚ÙƬ|)Y饛BW\o9yJ]Y:ªS5N7rcZVj/YߍZ?arf}s2CRW>s[Q.\:Bt49^0^7'i.R_'WXlɬs֧V**''ӘY]+9Ļe1䬜=p6IXs}F24wY7>˫/i{7)[^Nf޻Y{8sܘ/%_: tS*6'o^ TV#\GXuI=Y]XnVjZb}Cn"]|eK W7C|愷b!Wё$yHʧ~%8Tx/o0$'_B8p8۔di{ m&>$˹ӱ4rxoKN)<$gunL%]Yz..goN:gy%5mFt> stream x[G C ߩa0`L[U|:AǏG?|}ye>w\pebԕϜ@H<$uy68L\_0=MN8dmlSY%T8'7PNp/΍崑;g?Wr:O!yV/+Sɒ۬z..'_N:gԴxf[Ng[Ҭ=iHyVXpꜟi޽C}+Ju3nsV3=}w~ZVjL%Wn9tr&t23Ϟl:'IEi"Dw'm:I]:Bu^wA&40a] a.S- 4^Bs~?}s/ϯ876%7ngpr6I' ;LLMt 9kϽNMaqq=x"ujmdR}K2Mᅫ=ɿ9;@^ݧjZV/)ߍSÝ L̳g&IRQIfNRW>Pםs*v< LaWCXT gï/POz%+΍MIM'y[*Y9`9\9oIz3-S'BsSS~XDnuF9fݠ6sT48Lc9?EgoEft,Wf5s|eZVjUWjM8 oKMw@^);dťMd6f1go#T'Y8U!pN)Nl;i3;"gHȢ!ẩoJyEs){+oNNwlPV~S4}w4u:SoMqO_޽vl9$ȋjڜ\wO40:I$:s"8/WjZS ߁ww݋7%BgL [/&_w2BژORˬxِ v8'o̿pĝOh3$dQwpԿ u7޹rܽ7'';6a y+?)>;˺P8/z^If;ItE5mN.]T;'D?M$sN6l:gY9Wח|jZVߩdYjwpvh5K9&}i=rw "qWooA=o!2 asr:{ON;$$tv6gpjpr6O\gބ\3+'ȳI > CQq_ΆfvԹ⟓5-.緦+ggwfS_zB tI|B2sÉ${jZVߩ/j7$E; ,dB.I=w:埶.Mr{g\Oi;%93N8f=0!N5-Ω$ӣS9'L6?/sN. ޽=uv߲fD< S緎56!g o%p"9>imVYj&eq:}npٸs{XQMɨPfveTgS&8t];dN*ܺ8OٸxOjZV Q?򷽄,NLȥ;YǃSӶEIn쟐 ə:m{:g&[ެ4é9՛dqzu:$ɆaEӻg.9ۮ[֌'aֱ&&dLN?G'M͊?Pqݤ,NO ?7|Nu :)̮lj„ιu,BpI[)ZVjZIݡ?狚5)3׹7qzRu63՝3'lR}\.M>;+wH7?ұgOӋa׽$}T~6ggoXԹ7sBR)YAs/:DtT]{[gK#WyHl:it^R8;UXEYwOXQBoq9Y˹?T(z9=,> mڡ펪יmWxRp%r5JyZV;r~+XlWz̧$vPOϢqF۽sM/ExggNg}>=S:6irzѕW=캗dϦ:|WΊ&!:MiMS!-,YJˍf9''LL$1 "UeFyTpgʨwc:[ݳS>aEv%7Cһ+֤X>~rR)<ڛ3,B''7Xҹfώ;38d=m{, wxRu$^J/aAʬoVjZYo^gOשI[q}ub^B9*8[S";κ|N7;I!י x}++Uw[VjZe~Kw =ߥ:-SΩuT:%gs*6vǦ~E<1Sn J,pB:g?ΖХ6f\鄳hN7}s̥< T])LEy݌ O&=Y$oN9m&',·Έ̞IUg)OX>wRd,;upi O=E M:9#ּisU*iΧB4?\ެ6LkEc]Vj.M"|Nߧn괬OY8Q锜ΩğO}L* u{8[Brڨq٦΢Mf;ݤN,5sOا93^4Pu0%u3*<=d:a椷pr;#2{&UP>a][cWI |EY+?)4eXU89gKJ єp{@2EWڃ%mtZV껔՗O.U|B+IfO( {HoMEsQ( 3κ;Ns[6gd5^쓫)2✓,6ݧ'O &=A)S&6[!ԓ|Seg휺uS$ޕm 3]LfS+)-R(^5̚:3Ewitruܹ+e|n9gmjZV_SEendstream endobj 368 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1997 >> stream xA6 Ew: x)>$xp?oJ7}ʴIO;gOc~ד'ܓ[7=a^w=y¹ z^LpNwUܕmeny:}w3wqJ99+[NH$wٳM8{H93盲՞OaNg֬5?]3CU9ٹ[Yߵl$399[OE MY\-$+am\++f&gMv1MfflsU޵t$=^{mw0s{~vnǪi6RNs.CKr3LtysޑJ s~yVMd̵gvJyr'sfUM#wn~g݇{~NyvV:om휒6j{wI70D5yG<+k{r;UyR6yUSUg&Йp=ҧW%S&OH;4Im2 I^)xmɬo)5 UNO}v⮿f~u:Uik8uT3ʼn&]1yI'_97-QyM]w)wOy^~:ߕ<󜖭\wɬ;Uއ=rʄLxBߝ]L[cGWa}[x_媛9XOxNg*OT9ѳ~zwSo|;alBž 9eskKLctޖ*n)vFzZ3n\tDg'yjg[3;Y6ۉ\K5s]X)nzO3tsrN,*Nurl姳]3 ;ijOuzڪ콓HXe}߳NO+LN.̄+gݹ uϺE9vt翾U뤻x]JD==맯w8e{n6˛aOUp;?놟eݗͦeW;33Lu.?~XmMB~||w|OB?_I>~7Iw?ûujMhq^eendstream endobj 369 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 377 >> stream x 0"NF;Ao#˲~ݜۑՍ_UId> stream x  oWendstream endobj 371 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 372 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 373 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 374 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 375 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 376 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 377 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 378 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 246 >> stream x  oWendstream endobj 379 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 833 >> stream xщ1Dїcu4sXg0 {j>C}K$I$I$I$I$I$I$mܯ?8LƔ[|d(1%uʥoLIGrS^|(1%ʥoLI]rSRo\ƔjʥoLIGrSRWy\Ɣ[|d(1%ŇrSRo\ƔU|^(1%ʥoLIz{\Ɣ[|d(1%uʥoLIGa݋57#@)P.}cJ->27$^|(1%ʥoLI]rSRoxm&!%iC @)P.}cJ*>/Kߘz l#0A )IjʥoLIGrSRWy\Ɣ[|df oHIڽPP.}cJ->2Kߘ 7#0L}CJϟo]/7p68if~5lʾ&v7$ޝ-Xf߀Sy K^ye 8w4[ҟ7T^pݻp*oair 6̾gfvWC<2 N36tߐ{w4y`}N-,Mz7lqnjHXf߀SyI{;{F`RvΖ?,o]/@<2;N٭_ p*/8iroxL}CJ/endstream endobj 380 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1029 >> stream xѭ1DXpX#yg=]GCkgT?_.e߀)lR ;NlO0;`$8 )Ie [XJnge ;Nl몡x̾SyI=sHpRnogKۏ0z0wUC<@}򂓒{=l#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷmy2L-,%^y2'eu}<Pf߀䞹ox$8 )Ie [XJnge ;Nl몡x̾SyI=sHpRnogKۏ0z0wUC<@}򂓒{=l#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷm? [̈́endstream endobj 381 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1029 >> stream xѭ1DXpX#yg=]GCkgT?_.e߀)lR ;NlO0;`$8 )Ie [XJnge ;Nl몡x̾SyI=sHpRnogKۏ0z0wUC<@}򂓒{=l#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷmy2L-,%^y2'eu}<Pf߀䞹ox$8 )Ie [XJnge ;Nl몡x̾SyI=sHpRnogKۏ0z0wUC<@}򂓒{=l#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷm? [̈́endstream endobj 382 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1029 >> stream xѭ1DXpX#yg=]GCkgT?_.e߀)lR ;NlO0;`$8 )Ie [XJnge ;Nl몡x̾SyI=sHpRnogKۏ0z0wUC<@}򂓒{=l#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷmy2L-,%^y2'eu}<Pf߀䞹ox$8 )Ie [XJnge ;Nl몡x̾SyI=sHpRnogKۏ0z0wUC<@}򂓒{=l#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷm? [̈́endstream endobj 383 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1029 >> stream xѭ1DXpX#yg=]GCkgT?_.e߀)lR ;NlO0;`$8 )Ie [XJnge ;Nl몡x̾SyI=sHpRnogKۏ0z0wUC<@}򂓒{=l#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷmy2L-,%^y2'eu}<Pf߀䞹ox$8 )Ie [XJnge ;Nl몡x̾SyI=sHpRnogKۏ0z0wUC<@}򂓒{=l#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷm? [̈́endstream endobj 384 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1029 >> stream xѭ1DXpX#yg=]GCkgT?_.e߀)lR ;NlO0;`$8 )Ie [XJnge ;Nl몡x̾SyI=sHpRnogKۏ0z0wUC<@}򂓒{=l#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷmy2L-,%^y2'eu}<Pf߀䞹ox$8 )Ie [XJnge ;Nl몡x̾SyI=sHpRnogKۏ0z0wUC<@}򂓒{=l#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷm? [̈́endstream endobj 385 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1029 >> stream xѭ1DXpX#yg=]GCkgT?_.e߀)lR ;NlO0;`$8 )Ie [XJnge ;Nl몡x̾SyI=sHpRnogKۏ0z0wUC<@}򂓒{=l#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷmy2L-,%^y2'eu}<Pf߀䞹ox$8 )Ie [XJnge ;Nl몡x̾SyI=sHpRnogKۏ0z0wUC<@}򂓒{=l#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷm? [̈́endstream endobj 386 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1029 >> stream xѭ1DXpX#yg=]GCkgT?_.e߀)lR ;NlO0;`$8 )Ie [XJnge ;Nl몡x̾SyI=sHpRnogKۏ0z0wUC<@}򂓒{=l#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷmy2L-,%^y2'eu}<Pf߀䞹ox$8 )Ie [XJnge ;Nl몡x̾SyI=sHpRnogKۏ0z0wUC<@}򂓒{=l#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷm? [̈́endstream endobj 387 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1047 >> stream xэ1EDDClorX2ծwN~|_.e߀)lR ;Nl矸ϿoT^pRr;8Il#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷmy2L-,%^y2'eu}<Pf߀䞹ox$8 )Ie [XJnge ;Nl몡x̾SyI=sHpRnogKۏ0z0wUC<@}򂓒{=l#7$Ζ7`*oa)7`68)y2L'%};{F oHI-m?(oTRrh?(olqRf[W e NJv@ߐt{;[~<Pf߀ ~6Pf߀ټ̶03a!%vx̾Sy Kɭl̾yIm]5t7`*/8)g6 NCJli<@}[/@<@}f2ۺj>(oT^pRrܷmy2L-,%^y2'eu}<Pf߀䞹ox$8 )I@I zX/D@88)y V3B'% _Ws ׽tendstream endobj 388 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1517 >> stream x6@u ßjCuP(6 |$FfT+_"`[өcJ $Gsld_fBrv.| l4{#4<, N"2;y`j'~#<, ?:M"2झ˷4)8KSO5IY_o '`O<5Epld_&`Np[`sE$,/oJ'Iǔto 6B~YF*9'S](+ǟexD`y[%S-IY_^!-#+Oz)ގ'@~mxೌU/rt6P=tY+I#I72K W}:kx[z:kjd_n4rY+>LIKo3 ՓL>ޮ44{#4<\"ߘ%e߰ޚpvx 凈' -_dS'?~~yD~|Hfa5'\rw3< \=W$iFfi~yD1Kfa5,,ȯO[Ȧ:,9Nڳ> stream xq P`cu4ss@QQW۟׿VwK~3e_{gL GڏaOr_@s_L|x~YD&g ɪ>9++ki<=x]zn"ğ?y[ԥ2q"3?sYڥw '29;OV_О@Dܬev)>] L 6h>^lQ;blj<h>^fik%< {X=>O|~}C{Vs_om L 6|/ps\yq:x5}osf Ndr :VEpo\D䎬0V)^ZƇr l;{Kw/>&}0\q"3GXugxiMz^ Ndrw5{A6YEDZ<ԝ5g|x {b)܅E&y?QN3>1q"3/(uxi ^Þcp 78ɩ́wYvv2>ȶ1_MYYKasQaO18<g0J:^Z~Ƈ׶3=NdfVy/a?ks N'29u9.+Nٶ3)+ki<\/ ]Kf .,29+@<\/ ]zW!'23+p<\/ ]Kf '29{79{A6a¹*_*NAХϻdBO"ğ*ХzeBOq"3 *ХϻdBOnp"Swg{d!)+ki<\3Oo't.,29+@<\oұЇ{̬pwOrҷЁTx>ِ gfEDnZ<Wz/-}  L 6Wuto''23+;o<\ro't'29q~7ާA6d~Y*Y5=9Vмway^AtҼ8YsA{hB伻;/g< ܗ4x9'^- L 6x$/z-ljʞ<x/zXCRD&|={^/TD侬pN5B;iVN"ğ=9~ ;lj><G{/Pf5'29 _qyyn֕endstream endobj 390 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1634 >> stream xˍdAl5M|(-f3h` Aƹ8$T1?_>e:1U;ήCsϘ"nW__>q ?=NdfV|uP'29{wd`._ p¾78ٵ+tn*ܡf޶EDnZ<u*o;]XdrWy8޿HLJs4V'23+{k<g6> p¾78ٵ+tn*ܡf޶EDnZ<Guz2ݧھ<gp 6>˨vjx{̬p]'@.}{Lή'Wtk7ݭfްDDnZ<Guz2ݧھ<gp 6>˨vjx{̬p]'@.}{Lή'Wtk7ݭfްDDnZ<m:r1Yy}u"ğCsj|S{̬֮j| SP'29NTs첫DDnZ<m:r1Yy}u"ğCsj|S{̬֮j| SP'29NTs첫DDnZ< O)! a:/way^桡]mz߁Nlj< ϥ! a:/78ɩt)B޶DDnZ< O)! a:/way^桡]mz߁Nlj< ϥ! a:/78ɩt)B޶DDnZ<MO&! dFA<gJ({ljʎ<Mϟ! dFAϥN<F%"rwVyh~2a 3ҍ]܅E&y?VF1 =NdfVvyh~a 3ҍ]D&~.tYH7:P,C\4Ù ]XdrWy6C˼t=NdfVy6~8So#!@wRIt`z7ܝ4x*T?LJq"ğC\X3=uq"3WC\ÙD&L\f3ԻIDQ?ć_@g܅E&y?ʩ2ׅk8Y!߁5wOFǝLBAEDD&de-?9$>z >.,29+@<UN/.<^ϸlj<ć_@gD&{4:tfz **$"2!+ki<#:u"ğ!ߘ>lj<?rx~c΢`TvLC|Eg#"[ sgkendstream endobj 391 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1559 >> stream xэ\7 P ;=8󳰽YB@K=qV?~\o Qf¼Bb`x""ތO(;d{DbU8| Tn:y68TìDb`M}vDDYx@^<zw"3"T[v.3q"?/P1πޝ< Hr*JH`w202/"" 9K7ڋg@Nda]X$9<|ʽx~Kea=N$33_*7лGaIN[ }\UED$!3giyxMxәP]X$9cINw3S;P[̜ax^71]X$9¯q"?*ynG68TnpӔ@7obf3IYx6+ڋgƒ]X$9C=N$33߸Pvk/-t9' N$90\&.'0P̜a͡l4vaOglF^6uSO{Hffna]l468}\&Ocɴ/"<,X9v:ԓ., lf#NcIc׭<,X˵v:ԓ'ˤiL=EDr2s?M=vaOg`mk/t<8|Koe& @Hrnp"3ƒgrfo^DdAendstream endobj 392 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1588 >> stream xэc7 !AjM5-0` ,1O@4%z4~]*[?62{O&:}f<~SedЇ=Ngfε_o{O&D:vpsZϋ,?IBl>ʧߙمE:g<am-^0זּˆ%89aR/wf&pm68Ωq  t""23KaR/wf&pmvaOyXz[G;mpa=NgfNyT| \ NsjgfHyxvOWe?j7x@pc>pU89/'9 v3vHyxvOWe?j7x@pc>pU89/'9 v3vHyX `6/"3g0P0: '33X< s0M7x0`ڹg~+HyX `6/"3g0P0: '33X< s0M7x0`ڹg~+Hy ^0g`?o~ݍL'33'W<|k/]3ӃktN7I8'f \OEDdf÷Vo<3=H'@<|nlxfzp%89[wxD \ NsjI90CWzj]-"'34x7x$awvaOyxzL_e{H̜Y`/ +& tNH8<+& WRg>`>/ +& txğÃ{W`B/Dzf̊?x ^1I؝ NsjF ^1IZ?,?՛@`tc txğ]+^0q:߉eÝ=NgfNy[k &N0f/H~'0[jt,?՛@`tc txğ]+^0q:߉eÝ=NgfNy[k &N0f/H~'0[jt,? ^6'Oa°#H'@<T3'33T</'0aؑ Nsj7d8Nna9þVWD[ffi<9 } مE:g<J0ϜaG89ixٜ>a Îlp"S!vjt ڽ""23Kik܏ 9.,9 6Oswxna^q"=3sBm*^0'ggH笞YpBϰaG}+"6endstream endobj 393 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1619 >> stream xѱD  Q|%#=3>C%YsT믿!ҟzkz:3\gSDןRt ]f{qljLeC "_SYa/.8,X>=CÎ}+"2-Y<@ݍ/ev 6Xx,H]Df/ev,}:Ϙ?۱""R YΡanaɹĝ 1؅;Ndf*)x_PYΡa.8n+ܧs^+"2-Y<(]/>c>\Oy~; fY:;"V?gWS`Y\p"Sy]t{UDdZ*4xQ>^0?|,b}naɹg v̲twE'23<(ݯx,ND& EofȴTfi<Է|T{} f\OyF~/ fq%V>?gRT{ ft7|Y%RiyFoxlAqG(naɹg^K'23}<(/xlAqG(.8n(>]ͳtKۥ""R QRو^ /!"s=/-"bF&wT6Qaަxj=)"2-Y<ϑ<^*[]{ Hnaɹg/M+cwTO> stream xё,5[`h[uYGEkNc67vx[SDy'|\'>*G.vrʹ|P'>*1Y'.>0q3[zfA""3S٥\ctl6R܅E&yğswN|T.cHqʉ<5Vtl6RD&g4NFzEDfK9 l L?2\@a'23'xk^ lL;h,46YLes<>04zos 65_8Qɖ{TΚy.O\|`i'29_YJ?}-GJ{""3S٥\`54܅E&yğsN|Tit'23&x kh=7L5|OdˑRTvi*@RVqD&gL@ɲ QoTvi<QBɲ]Xdr7@<ǩGz؊'233%xԿU2e+ =7٭1yR?2e+> stream x$U [ۈ9mo[tUe<tP:__o㯿!t⿤i`6׽4)"BWx,aB8I^ʿRKe }HwlNkt#mt#=LH'.IfVǍZ:N'D6'G ?if򔼗DDv&RYN,\Oyj%_EYJ-{DW ʿ=Ke9I3;lp" {ӟ43EyJK"";y ox,?ifr]Xds'<"YN,K=Ndgy 㥲Y68_H=O<%%Ifs'3U> stream xi,WP`Xc3vlSSGsn^*C/ $m~]e 3g}7?]r*S/QQDv&^wQᝮ2˳D6'j=,,$ٜd֗˿',&-9oa9y~W?*Uf1iywD[ y{E2IK Nds9|iLb=ysDDv&y/o2IK[Xds'@}m"Տ tYLZ'3VC{y^Q?*|bҒٜ~_ii,|OIfi}y:=a.eS?*u"s<k7Qe"wD[ yYG Nds|c̥Ld3"";> stream x@`ñ:f?fD] 6=*O}oJLh2Lf^]aSD۟T|'?$ i2a[Tfo'?* i2Lf^D3n.DIȤ""͙ygҜمEs=yo CLW8Όy>GIbJsfi/t%3ILi~d Lf<3ILi"͹gǬ'ҙU<'nQ-LS3Hs_t"h5yWV4g2K׏y&Jcbs 4zC<&6g8Όy&Jcbs4g.Jcbj Lf<Ri5yLlva\Oy0XHV'ҙU<Ri5yLl68Lt"Ri5yLl^[!"ҙ,]?V:@6&.,Ҝ ~6& jRq"]5ls+ n`i]@'!nJ9AD9Y~<ϭtlMs]X9`lL>դ29D:3j>V:@6&'ҜɻNC*&ns6郈Hs&tx[tT7va\Oyn5XHn`ax[tT768L6Lo}ds+ n.,Ҝ ~6ϭ& mRq"]5ls+ n'Ҝ[6C6&ټ""ynק .,Ҝ ~6ϭ& mD:3j>&~}h8plp"͙h9dpi8IDD3įO ']X9`l[M>d3ñljtftհ}&~}h8Lf68L?=4N6ü ""y~9;=ly3Hs'<7Hi`7ljtftհ}> stream xѩ$G @їcu49^h=@C ~sÜny_ǔg{?& 2eqR8w:9fI&3C93I*7٥Y0MR plu[=Nj6zpxuΝsN'l~: sd$d?gsÜS`7 K7yM~?Vs l28Uy9w:9zTn03s 9r]zxENN.,{Y7?HXaۛfW ׏Yĩ1MnpRa0eӗr]zxENN.,{Y7?HXaۛfW ׏Yĩ1MnpRa0eӗr]zxENN _.,{Y4}?HXdfW ׏Yĩ1t5npRΧa0eӗr]zxENN _.,{Y4}?HXdfW ׏Yĩ1t5npRΧa0eӗr]zxENN _.,{Y4}?HXdکkfW ׏Yĩ1t5npR 5f349wI*7٥Yĩ1t5R plEE{=Nj6zpxENN _'|͜Pc1Msr]zxΚ&3Om.,{Y4e?HXdکkfW ׏Yi2npRɶ 5f349wI*7٥Yi2R plE_E{=Nj6zpxΚ&3Om'l{͜Pc1Msr]zxΚ&3Om.,{Y1M?HXgi2qRѫp4yjl78dV&&Oɯ$p4yjlwa86ϊoG:3Op^5\?gScwI&۞2!4|L~%d?CN2O/p=og?֙y8Uy>)3478>oeBh24ɉKR.=<χ2e&&_.,{Y1ǝ$34qRѫ|)Sfi2npR?|ʄdi25r]zx9eL>M6Ty?C?dwIF!Lɧ/pM> stream xˍlEE[c|h9tCgm-JϭcUhVfv> w?|O~;>#M|:{xI%ǿѬ2|:xI%<[tr7֒t|xk:x K=c|Q&v> ΢yY_o'5co#YkIj.KLJf} 0>6% ob;N,jN^pRs=>=撻t|xk -,5|E֗f?͒䋼΢yY_i+\róA3fd%.fy K=c|O7#"8hazxk '5co#YkIj.KLJf}nRs7<גo);N,jfyI%7<S YeIj.KLJf}nRs7<גo);N,jfyI%7<S YeIj.KLJ`ep h[ 0>6ϵ=#-;N,j炕)on^pRs &v84HVYKy.XY8-,5|s-vHx+| v:`ep h[\ró]N8 U撻t|x V|{fe)7#'uM5Ls/V^pRs&p vK JRk]:><+ S[y K=c\@\:`ep a+/8ng܍p8%.5Yoy.$ )Y;N,j5Y撻88ݒ撻t|x g|{湐|$|ga+8hazx g|򂓚KvvppvKWKy>Ś+ggaoa`|l ;nG7p ];N,jS)rp񂓚K[\r)^9 p8 x K=c\Hq?SVqRgT> stream xѩ$7Ʊ:f9EPt?OUР)_F�㯿yk '/NyWoLIo;8^$7?pvXS8xq:'m.ՙ/^p2 S J֒<p2ğ]Xl$gtGט8y㤝E '/Ny%:O''1Ud/m> stream xэdKEXmo| x h)Y7[WGop&/ʯwƔ-Opo #؎'ݬ_L^l_']9v&4%rY:x!b;s.OgvK??I7^5L?'0Al؎562}xb;I3MI\s?'0Al؎܅`Ɵ4$ ّ㤛Udv^|l']9!#ّQ.ל 2;]X\>Ɵ4w?l'ݬz0x #ّ58v1wdv;4s5gy̎@fGr.Og|A2#۹I7^5L?'0;dvd/78r=]2;%rY:xv2;t|?'0;dH8fի|dvа#ّ5wv1qȜа#۵߂t,Ɵdv${tUy>2;h^np嚻8dFhؑoAIZs?#̯^ 0l #а){I7^5L?#̯^npӛ]L2g#4v$]9KAÎ@d/war6O`vhؔ㤛UAÎ@d/78r.&vd[P֜ԠaS %t|?7wqv6e/8fի|djа) N\szClٮ endstream endobj 402 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1362 >> stream x-@ї_J4ŘslZT+~>Ԡ)Η^SƔ~7>0Ύ@aSr~25(l %tsfwF(v[PnydjP(lFͽyTn?(l^qҝW ӏydjP(lFnp͕{[86 ]$\9KԠ)Pؔ܅{?Ɵܾ$#Pؔ;KԠ)Pؔछ+80q(l 6e2AIr?瑩AaS) K7~?瑩AaS(¦@g_6r,j~> stream xA DDCl39,>a(^_wo_Ǐ\ż /ӗY)"6/\ż /K#yljLb*9}bٜd~f 9}̕NDdsxüJ_ /؅E6h? /KO#yljLt}0)Қ)lp"qϔ!m*}(ٚ-m?0)Қ)"s$w Ti,89L f ${3eyJ_&JED&yKۏ9L f 漿g#*UZ3=Ndgy**'9Lfdj""&UZUZ3]Xds_ydnp}*'3UC> stream x7 @!AjM5-:=LvyL(`@yU/=%d25S|ToLIm7O. @',?q?pRej La6㸙S,SYfȩI"wiy'YLvais7@y'Y"mGr㤝^5t?pRej La6㸙S,SYfȩI"wiy'YLvais7@y'Y"mGr㤝^5t?pRej La6㸙S,SYfȩI"wiy'YLvais7@y'Y"mGr㤝^5t?pRej La6㸙,w#ԘY%ik<,SYf <,SY#9qBs8)25ejIqBjL,߂]xW_8)SYf <,SY#9qB '?cj La6,w#ԘY%ik< @.,mh6 @VoH{Ы.*SYf v͜/d-(I[ܥy|]ULvais7@y'Yj8igW ݏy}]UL68is퀛9_r7B%[PKL d)ogN L Ԙ)qBL d)lp"7snS3K$m-r?u!T25S؅}9d1;S㤝^5t?u!T25SEn|!5foAIZ.m> stream x1 Q n5["H ߇@5?U~qqj`SsO*cJMxR˩3-㤙 Γ3N rjn'Mnv;|ag4\zǔ[|P.cJ*>^(1%fH$I@)\zǔU|P.cJ$I$M+ rSRo!@)x\zǔԛ9 I$IV;CrSRW@)7s@$I4 7ʥwLIŇ ;rSRo$I$iZnKzʥwLI] ;I$IҴ/(1%2KʥwLI$Ii_P.cJ->d(1%u/Kz3$I$Iӊp\zǔ[|P.cJ*>^(1%fH$I@)\zǔU|P.cJ$I$M+ rSRo!@)x\zǔԛ9 I$IV;CrSRW@)7s@$I48O 85˩2ɽ O v95pٹ{4R> stream xcG P将ch66g ՀO^j3ʟϯhgRpGk 5SׅpKk 5SD6f )o#њYEDB5Қ)"s8)]5tB5Қ)lp"Sx3󅔷h,""[SyKۏu!Hivay~9L RZ ?$=NdgJW |ni f T|!m;Z3KTy>~]RZ3]Xds_y@7aٙUC<_.[Z)'973_HyR.("5xä 5Қ)"sRH{Δ9L RZ)'9=73_HyR.("5xä 5Қ)"sRH{Δ9L RZ)'9=73_HyR.("5xä 5Қ)"sRH{Δ9L RZ)'9=73_HyR.("5xä 5Қ)"sRH{Δ9L RZ)'9=73_HyR.("5xä 5Қ)"sRH{Δ9L RZ)'9=73eHi fDD6sRZ3]Xds_y@aٙUC> stream xmE ПXkrzыKyƧtxU=#o~'0)Қ)')"m_~#GSf{${Ͽ**'9Lfdj""&UZUZ3]Xds_ydn}*'3UCSe[PDdkxäJk `|g OҚYq";]5tsTi |bٜ} 9o#TD鷠$oi0/,68Igʐ6BL~ lMsT e|g\ rUZ3=Ndgy*}bٜd/} 9o#TD鷠$oi0/,68Igʐ6BL~ lMsT e|g\ r?=Ndgy*}bٜd/} 9o#TD鷠$oi0/,68Igʐ6BL~ lMs1/ e|g\ r?=Ndgy.9}bٜd}f 9}̕NDdsxyAN_ /؅E6h?b^%m\q";]5ts1/ e${3k edv""\ r9}.,9/@> stream x-@:֌mBk/ѡ8c +㏿t:1%o>O~rCFqʍ~t:tr3k te2;I\9K`^(|l.,]6C;;#ᇰ)ٗ㤛W ӏy0/ 6r.Wm0k(ٔ균$]y0/ 6r.}?CFqҫ<t I+6[5Fl^[PV<t  K>ƟԠ)ٗ㤛W ӏy0/ 6r.Wm0k(ٔ균$]y0/ 6r.}?畩AaS/I7K`^(|l']laP8){oAIZ9K`j(lFOg25(l te#8fUyL :M N\YClΦU%j,<σAgS) K>ƟԠ)ٗ㤛W ӏy05l 6e#78rFf :Wt<M¦l.,]6+S¦@Q78#y',j~<σAgS)I+70k(ٔ균$]y05l 6e#war'y^6+8fUyL :M N\YClΦU%j,<+S¦@aS6r.}?畩AaS(rn^5L?畩AaS)I+80q(l 6e2AI\9KԠ)Pؔ܅}yejP(t$㤛W ӏyejP(lFnp=-L MٮLP.W25(l 6e#war'y^qv {ta> stream xэlE EїX0s<^[+,WwUo~7?A̷^yjӿ1%_cdv:l^q:}Î@d/78rӛ]L2g#tؑ%jt<2;#ّ܅`Ɵs0^@w;I7kj~war6ϣw*㤛^5L? Bv'']sCv@vIgtY:xG&|t|?QxC{qZb;owp.9b;b;ޤ3MI\,<#sO5]X\>Ɵ]> stream xѩFƱ:fzi(FOTU/:+*_W7K -b:fpv~q^1Pj'm.\V*{#b.&I J֒<_\,,m~h6O:Be.JkHBq΢[ ݗuWTb'8is>w*s'YSI\_K^1P YGT~I9NYt<_\'m.@e.2$k*IK#T*s1<> stream x 7 P .>mZ+`Qׯ//ę·8܅}tSD>ϗ?$sGO]'ҙ g rp14'g[r""Iz<)x2 4s!y?~wa+sHgy.8S8oeiNA=..얜Hs^:<g "yk\H񏄟-]'ҙhazy w[DvvPp p %+"Ҝ/sa+Hs;<ל,Lp5sHgy.8Y8"leiND=[[/("Қ/sa+Hs;<ל,Lp5sHgy.8Y8"leiND=[[/("Қ/s[YX9`|mk=QD:m5L/s[ N9IgUn SiNKǗdp h-,,Ҝ06ϵH(ނq"dp h-'Ҝó܂)4'\si,,Ҝ06ϵH(nn8D[ \si'Ҝó܂)4'\si,,Ҝ06ϵH(nn8D[ \si'Ҝó܂)4'\si,,Ҝ06K >!*fsHgy9_P4 fiNGmLLHZD9I/_O3nfajffGr""IzDLo`L0t&8$}F鿠Hk^:> stream xG @A`ñ:fC0@U}?~o~iN2O|Ɣٞ7uf&;=Nj6_)3npRɶLM&&_39qI*7٥Yi2R pluf&'5j~< gMƶpM=oeBh24ɉKR.=< gMƶp=og$348UyV8k<5}Tny+BɧLN\MvyV8k<5}Ty?g#aiƞq^5\?gScwI&۞w3'Ԙyj|%d?gScw K7yM~?vj8UyV8k<5}Tny7sB7M]Mvy9qjL;6|Ty?g#aiƞq^5\?gƴa׸I&;w3'Ԙyj|%d?gƴa׸ K7yM~?vj8Uy9qjL;6|Tny7sB7M]Mvy9qjL;6|Ty?g +9v{{l<85 N*7ʹa0eӗr]zxENN _.,{Y4+ sN'5j~<"'NiÆqww3-tv:L{%d?gƴS`7 K7yM~?Vs:&8Uy9qjL;v{Tn)0-tv:L{%d?gƴS`7 K7yM~?Vs:&8Uy9qjL;v{Tn)0-tv:L{%d?gsÜS`7 K7yM~?Vs l28Uy9w:9zTn03s 9r]zxuΝsN.,{Y7?HXa)fW ׏Y0MnpRP`)0Lf@Mvy9w:9f K7y>dM&=Nj6zpxuΝsλenpRP`)0Lf@Mvy9w:9f K7y>dM&=Nj6zpxuΝsλenpRP`)0Lf@Mvy>S`y7]X*Ο!o2ἛM{l<)0ἛM^':L&w|$iؿfendstream endobj 413 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1454 >> stream x,E[g|2hE])"_P҄vϪ/RɯN7|})"~w*%Ct3ٙdlt37ٜd氁$7ADdgY:h8pD6' M\&lN2KǗy_ 4Vf8"s?yTr?$|n ;Ndgyg $_i84KIf<6LoE6~0~H6ݦ;NdgytmZxlN`nUIf<6LoE6~0~H6ݦ;NdgytmZxlN`nUIf<6}m."s?9 AiensٙhazyGt>6/8I?mZ6>lN2KǗyMcnsٜ 06}` ZM+swD[ f5Dv&j^MV'9aFh1yBDdgY:<u})+oa͹k  gռٙhazyč>41y'9흝>ZM] If<G&4E6~sLr7?$|DcV;Ndgy7~T>Ĕwv"h5}wI+DD6'g:/rOyoG&|wD[ g:g?*xlN]`3]>DJ If<} h-,9`|mcQ!41y'3V<}Ə1^p"Lh4gtCDdsY:<1vd:̼ٜ 06a=ad:a?*yljL0<1=ad:̼ٜfD}>""yɿG&d杷OyK ㇄&! Q9;Ndgy G&dv6%3M$ٜd/sVD>G0oa͹kƏ J`&89L+h[?*ylNu&A4DDXپendstream endobj 414 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1510 >> stream xmcGcu4 9*ʰ7^s(4gZoo/?~SUWLd}܇SDۜ'oJ~[>ü3GDv&]xUWL[QM5h2gICDD6'y*tנLg󈷰'@}mP?$|J.UTxljL^B7x :t1xlNנLg{""3,/Sf:ӘGE6<kT$w!S:t_G;Ndg<ka3y Nds|Wf:ӘDIfi}y׶~T8^29ٜSꇄe:s38T_Ge.s3/8#^13Hz""9,/S֏ \0g"syCpLgs'3VC{y ppes'9o+aaIODD6'y4鴗Ny ly)o]z\f/ 8ii/G Nds_ x]Le""3,/S!LLwG[Xds6OQ~[2{IxljL^HCN{(V?*E^p"R;b:e.\Ifi}y7~TKo%-,9 P_.K w-_G;Ndg> stream xV cu4سshbX[=^< 믿ዞY*cn{s<~/xg;^|1W{$|3<^_RbٜxS$tx*+<^*n&*g؅E6xS(/'LTΰljLjS%/~]H73lp" pL~&*]$"3,?J /.va9gʿ:Ke9I?3q";Tɿ7K_D /u<.yyL2KǏ)㥲Yva9gJ:Ƌd9I|/Z8){rff)gD6'A ?ifrDDv&RYN, Oyj%_EYJ-{DW ʿ=Ke9I33lp" {ӟ43EJK"";yj/x3d~r]Xds'.ΤMJ9 t t&LNw$txr<^* Iژ\.,9`lGRYE7ƴZ8)Bz6%WlN҇tғ1-CW"";yx,'icZrOy!KeHӒkDv&j>\M2^* Iژ\'98|JIOƴy_L2KǏyu/Ut#=Ieٜ 0~6#_&㥲n9q";&/Ut#=IeٜMээ0!O]"";y$Ke }H;؅E6x Wx,i Aq";&iaBrDDv& !|J7F7Ä>ywL2KǏy/%!LEcٜ 0~6_,Ӂ40=Ndg7exɿUKe },SD6'_ =I}HS=&"_tjendstream endobj 416 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1555 >> stream xэ,7  hop`LN?hW___ EF,[{yԿX2 lEqٙʙ/(Ge =$V78ͩ/:C>mLe::>*i )6! l?_/QLȲ =Ndg*'K*#i=z l?_2QIg=Ndg*L*:: l?gWM|T7:Dvr3@&>*::l/St}]GiDDK~vGe}]G'wayg P0F3{TNyGe}]G'789~otH9히ȶTvi<Ca]Xds7@0ch=7 l?gN|T4zN1Dvr3N|`4zosٜӯkYJ?}-GJ{"";S٥qzf6;wayg Sډ:F88qO\|`1nHqٜjAciȪ7PDdg*4x1N cf.,9 la_;Q@a'3'x1N:mv)np"s] 7h,46YLe3iW.rٜ 6HovqmF{TΝy9:>0]c'9gܣ1nLe3iW.rٜ 6HovqmF{TΝy9:>0]c'9gܣ1nLe3R4ʫi7J3Tʫi7D6$۴۴{l0>G""pendstream endobj 417 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1618 >> stream xq$G @ l]kdgϼFHp@CUvӁ\xB}4suoLy6ܮ/M+c{T^vxlMw/Qy%t_"xi`ލ""3Sy^KeS{ux]Xdr'@l~ f;:'Z'237(~<ϋտ⥲)}Ž> lp"}iz+`vnOLKeƏy/M+Gbva9y^-/(`j{TޠC'Ž+Li{T^<տ⥲89 .^0D&NA.+"vUi<x,NpNw@va9y~; fY:+"gʫ?gWST8 f t)HEpY.*"2-Y?g/Lva ?gwT`g8a8My~G fAz.]D&ZA:9{vȴTfix~`g2y؅]Xdr'@lQY]Df6ŏ/LvakY:t?۱""Ry:f):ӆ؅E&xM/b ?gsRt u {Lιd\g2sQoED2KuRt u { L3\*^0K-t9'23*~„aGva9y>O8עx ENŏp>„aG689 $@snΜa_c~Kzhendstream endobj 418 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 16 /Subtype /Image /Type /XObject /Width 4810 /Length 1599 >> stream xѭ#7 !AjM5-0`϶,qzsq 0hׯן!nW- 3Lhܥ37 ż'X0a陙ԯ~@*^0B0Älp"S>nF0ϜVWD[ffi<\C3U8/H'@<\CO/q"=3_ճV`tc e9t>tc {uHyZ= &N0fp^vaOyZ=k &N0V(^6\Dzfk<WgxL'9!s|VLPd>y ^0AzgL.,9 6_~׍M=Dzf<_7x$lp"S5>gYDOffi<|zL txįue+x$a8f/x 1I8;H~O7x$a'~铙Y< +U)eCvaOyxv vb陙W<+{H|/ve =V;\D[ffi0vZ[y .,9 6KVOky+O/Dzf<jgxټߙlp"Sx;wfGEDdf/Òڙ!^6owcЇ]Xs ~m jx|;O'>q"=3]_%[lsHԾwpF.> stream xAn$7 P!AΚlsg`qWŪ>dTU>3wCvzks|57ŏ͉Ժ]O78}˙Gtcʬ +)x7~EDd.?)"~lNqz t 6Es]؜B;tf陑/]<xcs U@ӓ Ns}:]ә*wǡ""2rC?6P8=مE:?.~lNq:ljȗ.xf9*w'9s>XL;PKsD*;Bp Hgpy/~lt4Dzf{<ǦH}w5Nlp"SN77 s "'#wig lnVrG'ZwDzf<7LzE8HTЇ^ۉzEz응4xnV= Zqva9f!~R;x=NgFp$?<_ZttN }赝Zt̩K!>>w ṯ t 6A2~x~Z '3#yϖO]]slp"ST:Z^J|/̽ endstream endobj xref 0 420 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000007618 00000 n 0000031698 00000 n 0000032112 00000 n 0000032526 00000 n 0000032940 00000 n 0000033354 00000 n 0000033768 00000 n 0000034183 00000 n 0000034598 00000 n 0000035013 00000 n 0000035428 00000 n 0000035843 00000 n 0000036258 00000 n 0000036673 00000 n 0000037088 00000 n 0000037503 00000 n 0000037918 00000 n 0000038333 00000 n 0000038748 00000 n 0000039163 00000 n 0000039578 00000 n 0000039993 00000 n 0000040408 00000 n 0000040823 00000 n 0000041238 00000 n 0000041653 00000 n 0000042068 00000 n 0000042483 00000 n 0000043191 00000 n 0000044236 00000 n 0000045969 00000 n 0000048116 00000 n 0000050273 00000 n 0000052376 00000 n 0000054481 00000 n 0000055581 00000 n 0000056181 00000 n 0000056651 00000 n 0000057066 00000 n 0000057481 00000 n 0000057896 00000 n 0000058311 00000 n 0000058726 00000 n 0000059141 00000 n 0000059556 00000 n 0000059971 00000 n 0000060386 00000 n 0000060801 00000 n 0000062261 00000 n 0000065861 00000 n 0000070479 00000 n 0000074991 00000 n 0000079143 00000 n 0000079803 00000 n 0000080247 00000 n 0000080684 00000 n 0000082313 00000 n 0000086323 00000 n 0000090849 00000 n 0000095442 00000 n 0000098704 00000 n 0000099252 00000 n 0000099667 00000 n 0000100308 00000 n 0000101999 00000 n 0000106288 00000 n 0000110628 00000 n 0000114949 00000 n 0000117603 00000 n 0000118166 00000 n 0000118581 00000 n 0000119444 00000 n 0000121625 00000 n 0000125993 00000 n 0000130505 00000 n 0000134948 00000 n 0000136799 00000 n 0000137366 00000 n 0000137781 00000 n 0000138769 00000 n 0000141417 00000 n 0000145820 00000 n 0000150108 00000 n 0000154586 00000 n 0000155672 00000 n 0000156129 00000 n 0000156544 00000 n 0000157921 00000 n 0000161133 00000 n 0000165650 00000 n 0000170097 00000 n 0000174382 00000 n 0000175245 00000 n 0000175714 00000 n 0000176129 00000 n 0000177258 00000 n 0000181073 00000 n 0000185482 00000 n 0000189864 00000 n 0000193727 00000 n 0000194519 00000 n 0000194935 00000 n 0000195459 00000 n 0000197122 00000 n 0000201348 00000 n 0000205671 00000 n 0000210014 00000 n 0000212650 00000 n 0000213161 00000 n 0000213577 00000 n 0000213993 00000 n 0000214409 00000 n 0000214825 00000 n 0000215241 00000 n 0000215657 00000 n 0000216073 00000 n 0000216489 00000 n 0000216905 00000 n 0000217954 00000 n 0000220585 00000 n 0000225044 00000 n 0000229676 00000 n 0000234278 00000 n 0000235695 00000 n 0000236245 00000 n 0000236661 00000 n 0000237882 00000 n 0000240958 00000 n 0000245364 00000 n 0000249725 00000 n 0000254206 00000 n 0000254926 00000 n 0000255388 00000 n 0000255804 00000 n 0000256957 00000 n 0000260367 00000 n 0000264760 00000 n 0000269242 00000 n 0000272928 00000 n 0000273595 00000 n 0000274029 00000 n 0000274515 00000 n 0000275712 00000 n 0000279742 00000 n 0000284009 00000 n 0000288313 00000 n 0000291365 00000 n 0000291926 00000 n 0000292342 00000 n 0000292926 00000 n 0000294315 00000 n 0000298769 00000 n 0000303213 00000 n 0000307732 00000 n 0000310107 00000 n 0000310666 00000 n 0000311082 00000 n 0000312072 00000 n 0000314528 00000 n 0000318903 00000 n 0000323393 00000 n 0000327740 00000 n 0000329418 00000 n 0000329928 00000 n 0000330344 00000 n 0000331519 00000 n 0000334471 00000 n 0000338921 00000 n 0000343510 00000 n 0000348003 00000 n 0000348878 00000 n 0000349381 00000 n 0000349797 00000 n 0000350888 00000 n 0000354248 00000 n 0000358789 00000 n 0000363240 00000 n 0000367420 00000 n 0000368269 00000 n 0000368722 00000 n 0000369138 00000 n 0000369990 00000 n 0000372170 00000 n 0000374554 00000 n 0000377064 00000 n 0000378853 00000 n 0000379377 00000 n 0000379793 00000 n 0000380209 00000 n 0000380625 00000 n 0000381041 00000 n 0000381457 00000 n 0000381873 00000 n 0000382289 00000 n 0000382705 00000 n 0000383121 00000 n 0000383953 00000 n 0000386152 00000 n 0000390469 00000 n 0000394839 00000 n 0000399157 00000 n 0000400760 00000 n 0000401243 00000 n 0000401659 00000 n 0000402754 00000 n 0000405487 00000 n 0000409997 00000 n 0000414575 00000 n 0000419192 00000 n 0000420505 00000 n 0000421013 00000 n 0000421429 00000 n 0000422617 00000 n 0000425603 00000 n 0000429861 00000 n 0000433937 00000 n 0000437908 00000 n 0000438517 00000 n 0000438952 00000 n 0000439368 00000 n 0000440972 00000 n 0000444793 00000 n 0000449219 00000 n 0000453654 00000 n 0000457420 00000 n 0000458187 00000 n 0000458603 00000 n 0000459108 00000 n 0000460644 00000 n 0000464707 00000 n 0000469041 00000 n 0000473482 00000 n 0000476111 00000 n 0000476703 00000 n 0000477119 00000 n 0000477832 00000 n 0000479643 00000 n 0000483994 00000 n 0000488434 00000 n 0000492907 00000 n 0000495218 00000 n 0000495788 00000 n 0000496204 00000 n 0000496737 00000 n 0000497730 00000 n 0000499375 00000 n 0000500983 00000 n 0000502700 00000 n 0000503447 00000 n 0000503902 00000 n 0000504318 00000 n 0000504734 00000 n 0000505150 00000 n 0000505566 00000 n 0000505982 00000 n 0000506398 00000 n 0000506814 00000 n 0000507230 00000 n 0000507646 00000 n 0000509430 00000 n 0000513091 00000 n 0000517652 00000 n 0000522189 00000 n 0000525887 00000 n 0000526493 00000 n 0000526923 00000 n 0000527393 00000 n 0000528609 00000 n 0000532819 00000 n 0000537172 00000 n 0000541612 00000 n 0000544734 00000 n 0000545417 00000 n 0000545833 00000 n 0000546435 00000 n 0000547900 00000 n 0000552296 00000 n 0000556884 00000 n 0000561528 00000 n 0000563942 00000 n 0000564571 00000 n 0000564987 00000 n 0000565960 00000 n 0000568276 00000 n 0000572506 00000 n 0000576865 00000 n 0000581224 00000 n 0000582807 00000 n 0000583273 00000 n 0000583689 00000 n 0000584831 00000 n 0000587607 00000 n 0000591903 00000 n 0000596289 00000 n 0000600700 00000 n 0000601573 00000 n 0000602072 00000 n 0000602488 00000 n 0000603307 00000 n 0000605253 00000 n 0000607867 00000 n 0000610487 00000 n 0000612946 00000 n 0000613516 00000 n 0000613954 00000 n 0000614370 00000 n 0000614786 00000 n 0000615202 00000 n 0000615618 00000 n 0000616034 00000 n 0000616450 00000 n 0000616866 00000 n 0000617282 00000 n 0000617891 00000 n 0000619534 00000 n 0000623953 00000 n 0000628333 00000 n 0000632682 00000 n 0000635323 00000 n 0000635856 00000 n 0000636272 00000 n 0000637085 00000 n 0000639221 00000 n 0000643645 00000 n 0000648115 00000 n 0000652661 00000 n 0000654549 00000 n 0000655073 00000 n 0000655489 00000 n 0000656346 00000 n 0000658802 00000 n 0000663030 00000 n 0000667395 00000 n 0000671678 00000 n 0000672882 00000 n 0000673381 00000 n 0000673797 00000 n 0000674966 00000 n 0000678134 00000 n 0000682613 00000 n 0000687245 00000 n 0000691578 00000 n 0000692265 00000 n 0000692707 00000 n 0000693123 00000 n 0000694702 00000 n 0000698763 00000 n 0000703270 00000 n 0000707883 00000 n 0000711702 00000 n 0000712344 00000 n 0000712760 00000 n 0000713304 00000 n 0000715179 00000 n 0000719598 00000 n 0000724198 00000 n 0000728700 00000 n 0000731522 00000 n 0000732157 00000 n 0000732573 00000 n 0000733214 00000 n 0000734928 00000 n 0000739194 00000 n 0000743610 00000 n 0000747904 00000 n 0000750072 00000 n 0000750619 00000 n 0000751035 00000 n 0000751451 00000 n 0000751867 00000 n 0000752283 00000 n 0000752699 00000 n 0000753115 00000 n 0000753531 00000 n 0000753947 00000 n 0000754363 00000 n 0000755366 00000 n 0000756566 00000 n 0000757766 00000 n 0000758966 00000 n 0000760166 00000 n 0000761366 00000 n 0000762566 00000 n 0000763766 00000 n 0000764984 00000 n 0000766672 00000 n 0000768568 00000 n 0000770373 00000 n 0000772103 00000 n 0000773862 00000 n 0000775652 00000 n 0000777389 00000 n 0000779103 00000 n 0000780797 00000 n 0000782387 00000 n 0000783901 00000 n 0000785436 00000 n 0000787009 00000 n 0000788556 00000 n 0000790089 00000 n 0000791615 00000 n 0000793165 00000 n 0000794221 00000 n 0000795762 00000 n 0000797292 00000 n 0000798816 00000 n 0000800370 00000 n 0000801945 00000 n 0000803483 00000 n 0000805004 00000 n 0000806629 00000 n 0000808310 00000 n 0000810031 00000 n 0000811757 00000 n 0000813546 00000 n 0000815316 00000 n trailer << /Root 1 0 R /Size 420 /ID [<8f7009034ee3f95249ad4cbc79842569>] >> startxref 817075 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/stream-line-enders.out0000644000064100006410000000063113247541377020021 0ustar ejbejbWARNING: stream-line-enders.pdf (object 5 0, offset 384): stream keyword followed by carriage return only WARNING: stream-line-enders.pdf (object 6 0, offset 443): stream keyword not followed by proper line terminator WARNING: stream-line-enders.pdf (object 7 0, offset 503): stream keyword not followed by proper line terminator qpdf: operation succeeded with warnings; resulting file may have some problems qpdf-8.0.2/qpdf/qtest/qpdf/good8.out0000644000064100006410000000021013247541377015334 0ustar ejbejb/QTest is indirect and has type real (5) /QTest is a real number with value 3.14159 unparse: 7 0 R unparseResolved: 3.14159 test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/good13.pdf0000644000064100006410000000212413247541377015360 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 7 0 obj << /strings [(one) ($\242) () (()) (\() (\)) (a\f\b\t\r\nb) (A\000B) (a b) (a \ b)] /hex#20strings [<506F7461746f> <010 203 0004056> <41 42>] /indirect 8 0 R /n#65sting << /a [1 2 << /x (y) >> [(z)]] /b <> >> >> endobj 8 0 obj (hello) endobj xref 0 9 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n 0000000556 00000 n 0000000822 00000 n trailer << /Size 9 /Root 1 0 R /QTest 7 0 R >> startxref 846 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/large_file-check-linearized.out0000644000064100006410000000023713247541377021615 0ustar ejbejbPDF Version: 1.3 File is not encrypted File is linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/bad-token-startxref.out0000644000064100006410000000027513247541377020213 0ustar ejbejb1/0: uncompressed; offset = 9 2/0: uncompressed; offset = 63 3/0: uncompressed; offset = 135 4/0: uncompressed; offset = 307 5/0: uncompressed; offset = 403 6/0: uncompressed; offset = 438 qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.5.c-check0000644000064100006410000000005013247541377017706 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/no-pages-types.out0000644000064100006410000000027713247541377017204 0ustar ejbejbchecking no-pages-types.pdf PDF Version: 1.3 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/issue-120.out0000644000064100006410000000035713247541377015760 0ustar ejbejbWARNING: issue-120.pdf (offset 85): loop detected resolving object 3 0 WARNING: issue-120.pdf (object 6 0, offset 85): supposed object stream 3 is not a stream qpdf: operation succeeded with warnings; resulting file may have some problems qpdf-8.0.2/qpdf/qtest/qpdf/short-id-check.out0000644000064100006410000000073213247541377017131 0ustar ejbejbchecking a.pdf PDF Version: 1.3 R = 2 P = -4 User password = Encryption key = 897d768fbd extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/numeric-and-string-1.pdf0000644000064100006410000004343413247541377020141 0ustar ejbejb%PDF-1.3 % 2 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Courier /Encoding /WinAnsiEncoding >> endobj 3 0 obj << /Type /XObject /Subtype /Image /Width 5100 /Height 6600 /BitsPerComponent 1 /ColorSpace /DeviceGray /Filter [/CCITTFaxDecode] /DecodeParms [<< /Columns 5100 /Rows 6600 /K -1 >>] /Length 2676 >> stream 堰@BPE$Ba堠6 R4l"% GG@@ %|< pp_|<,>a  \3yh(9GXD!Ʋ4A`RPJ@("?-X@BhE!;`B2E!J?- @Va 6l Ua 6 Ƞk KfGGGG_(A @@ BB@@ FFFaaayy%@FhXXaaaaAXaB ,>@?,2Xx^|> ,> lW<AO\ < . p\. >0k { ʰOX|0  ,<,0 < < < ɏxAx~L p|?> / Rcc . p_pa }xADŽxAB< A_o_p  ,0  ,0f|?/?/@e /_K|? ?U_#g a/c / 1L>|30xA<,< 0 < _ 5 Xg…|,3a 3a ^υ|,d6`+`!lk#k#˄LF5d`r1k#.ABqq-I@RPJRP A JV(dDDDDDDGendstream endobj 4 0 obj << /Type /Page /Parent 1 0 R /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Resources << /XObject << /Im1 3 0 R >> /Font << /F1 2 0 R >> /ProcSet [ /PDF /Text /ImageB ] >> >> endobj 5 0 obj << /Length 6 0 R >> stream q 612 0 0 792 0 0 cm /Im1 Do Q endstream endobj 6 0 obj 31 endobj 7 0 obj << /Type /XObject /Subtype /Image /Width 5100 /Height 6600 /BitsPerComponent 1 /ColorSpace /DeviceGray /Filter [/CCITTFaxDecode] /DecodeParms [<< /Columns 5100 /Rows 6600 /K -1 >>] /Length 3076 >> stream 堰@BPE$E¯ @Fa XdH6K@Xd XaUBFaaAV?/|> .xAhS >+q  !?GxX ˃;V_  x|?>_Bp_/xaa ,0_   xApR•w/(_(_(P\(P\./<(XxApX|$< υ Xg9h(9GXD!Ʋ4AP邘h, JH >-"#XE!J eZ a 6 22Ѐ@#P,2,2,<GFFFX D> /xA  8 ,0xA p^Dy|  $ag%FKS!V  B(;`a* C%)! Xaa ЁPBPCSg#V Pw@PK`0| C9@ D  PA:8φr\ d2<|? |?/ .q 𿅇 ((Ag?P  BXxAxx_x\. Dž3A ~X3 0b3A /  ~a|3|0 (D0AAr 5^#8 9 P< XaCdC  Xg>001 )@"` 3c 80 AAƲ1RTBX~(\"03…(A q堰)( JAa@""h06Ma4a"k \B BC  ͓Xc1E_DGDDŽ@F"cB_  B_ _ pr \(_ |/……pp,00anQ y W1^9 Wx_ |p (A°;$ D2Ȇ endstream endobj 8 0 obj << /Type /XObject /Subtype /Image /Width 305 /Height 305 /BitsPerComponent 8 /ColorSpace /DeviceGray /Filter [/DCTDecode] /Length 3894 >> stream JFIF,,C    $.' ",#(7),01444'9=82<.342 11 }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz?*}b5uBHA?i}G ڟmO{m6=?hS4 {O?罧Mjo&A?i}G ڟmO{m6=?hS4 {O?罧Mjo&A?i}G ڟmO{m6=?hS4 {O?罧Mjo&A?i}G ڟmO{m6=?hS4 {O?罧Mjo&A?i}G ڟmO{m6=?k3W_'2BnY'\YxCs׳K^EQEQEQEQEQEQEQEQEWO !ٿ%@((((((((+\etנQEQEQEQEQEQEQEQEQExae2onoo k(((((((((<}0i]777{7QEQEQEQEQEQEQEQEQEq>kBZ (((((((((?WMo ^-zQEQEQEQEQEQEQEQEQ\gm?Z+7fЖ(((((((((3-qxCs׳K^EQEQEQEQEQEQEQEQEWO !ٿ%@((((((((+\etנQEQEQEQEQEQEQEQEQExae2onoo k(((((((((<}0i]777{7QEQEQEQEQEQEQEQEQEq>kBZ (;TPK3=Me}Lo|R?0ZΝq@Bv 7Q1;0(((((((3-qxCs׳K^EɥKx$Vj]3Mpu?5ᰏ/c!G@=iX>>gcߩ5}Wd͏`2}G']P eg{e)xn2M냃޺(((((((?WMo ^-zW=IbDҪ6{[EU$ u'{Qg7r:d=z آ((((((+\etנQE`Ѯd08h\r>՟K6Vgģ<{`s]uR? ^&CEQEQEQEQEQEQExae2onoo k(##d`C+ = q-ut^۝Ђwx+Gpy9铷e}& ]_85i\ķq$:"#׽T^weܗV ͳ`~ u]MQEQEQEQEQEQEQ\gm?Z+7fЖ(agt- i# q:w٭v7yh8MEQEQEQEQEQEQEQ\gm?Z+7fЖ(((((((((3-qxCs׳K^EQEQEQEQEQEQEQEQEWO !ٿ%@((((((((+\etנQEQEQEQEQEQEQEQEQExae2onoo k(((((((((<}0i]777{7QEQEQEQEQEQEQEQEQEq>kBZ (((((((((?WMo ^-zQEQEQEQEQEQEQEQEQ\gm?Z+7fЖ(((((((((3-qxCs׳K^EQEQEQEQEQEQEQEQEWO !ٿ%@((((((((+\etנQEQEQEQEQEQEQEQEQExae2onoo k(((((((((<}0i]777{7QEQEQEQEQEQEQEQEQEq>kBZ (((((((((?WMo ^-zQEQEQEQEQEQEQEQEQ\gm?Z+7fЖ(((((((((3-qj2{RI1f7%gGhƏO?>gGhƏO?>gGhƏO?>gGhƏO?>gGhƏO?>gGhƏO?>gGhƏO?>gGhƏO?>gGhƏOϳyNi9ǰZgk(((((((((endstream endobj 9 0 obj << /Type /XObject /Subtype /Image /Width 305 /Height 305 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter [/DCTDecode] /Length 6377 >> stream JFIF,,C    $.' ",#(7),01444'9=82<.342C  2!!2222222222222222222222222222222222222222222222222211" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?n]$H `yWG \;?G¿ɿ4^=FK<Ҋ(?G;3דi^^CF{o +׫ϸ +<((((((((((((((((40mWך|[?+ad?0YQE}9|+CJ3דi^_D~}Q^AQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@yſo.^Oc!?4+_?WW+CJ##~~(((((((((((((((((+>-umJ|&{)yQ_p~w g&ҽz_?WWoqAEWx!EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP^io`dK40mW3aO(sW#=y7? g&ҽz/<{~ߟ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( O%z]yſo<?ɞC# ?%iEW¿ɿ4^!W#=y7yGGQESd8byeuHK3P:{ eV\! ' I0Eį45 :OM3psׅ:ל`^#r|]xVӴ2j\dƏ" G|egd[q ؞9*J˰J,MǫZtE#M xW庌a8Lu)rw_e._z+%٥jZRap&u3r9U[i_N&P7\ z+-umJ|&{)yQ_p~w g&ҽz_?WWoqAEWx'2K )[9e֩*t+ېK-'UR>ߝh|FֲU7*~-jSFi$IDS6 rrMC?EW|VC$FiI!h\JRE6mQEQEQEQEQEQEQEQEQEQEQEQEQEmJO%zy?>=FK<Ҋ(?G;3דi^^CF{o +׫ϸ +<G4i xTII$gӢ眹kz''+% (((((((((((((40mWך|[?+ad?0YQE}9|+CJ3דi^_D~}Q^AQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@yſo.^Oc!?4+_?WW+CJ##~~(((((((((((((((((+>-umJ|&{)yQ_p~w g&ҽz_?WWoqAEWx!EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP^io`dK40mW3aO(sW#=y7? g&ҽz/<{~ߟ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( O%z]yſo<?ɞC# ?%iEW¿ɿ4^!W#=y7yGGQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEW|[?+>-L2S,J(>s^Mzy¿ɿ4^?ߢ?>?肊( B((((((((((((((((^^io`dO'}gŸIgQEqF{o +׫~s^Mz|^y?DQEyQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEmJO%zy?>=FK<Ҋ(?G;3דi^^CF{o +׫ϸ +<((((((((((((((((40mWך|[?+ad?0YQE}9|+CJ3;[k:Gbh$c.J' PO+3L{JQ+^քo_=.O[ɿ[ɿ¼|o~++0+?m& ?m& ?}134PO(PO('?sKA?oA?o0?=.O[ɿ[ɿ|o~+0+?m& ?m& ?}134PO(PO('?sKA?oA?o0?=.O[ɿ[ɿ|o~+0+?m& ?m& ?}134PO(PO('?sKA?oA?o0?=.O[ɿ[ɿ|o~+0+?m& ?m& ?}134PO(PO('?sKA?oA?o0?=.O[ɿ[ɿ|o~+0O% s^-o%?cA/ٷ]mdcݖ帪8ԩ%~=,(aVUٮhNk\W. ڟWqtQ]G`QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEendstream endobj 10 0 obj << /Type /Page /Parent 1 0 R /Contents 11 0 R /MediaBox [ 0 0 612 792 ] /Resources << /XObject << /Im2 7 0 R /Im3 8 0 R /Im4 9 0 R >> /Font << /F1 2 0 R >> /ProcSet [ /PDF /Text /ImageB /ImageC ] >> >> endobj 11 0 obj << /Length 12 0 R >> stream q 612 0 0 792 0 0 cm /Im2 Do Q q 73.2 0 0 73.2 215.28 575.28 cm /Im3 Do Q q 73.2 0 0 73.2 359.28 575.28 cm /Im4 Do Q endstream endobj 12 0 obj 117 endobj 1 0 obj << /Type /Pages /Count 2 /Kids [ 4 0 R 10 0 R] >> endobj 13 0 obj << /CreationDate (D:19910817141013) /Producer (Apex PDFWriter) >> endobj 14 0 obj << /Type /Catalog /Pages 1 0 R >> endobj xref 0 15 0000000000 65536 f 0000017626 00000 n 0000000015 00000 n 0000000110 00000 n 0000003015 00000 n 0000003201 00000 n 0000003284 00000 n 0000003302 00000 n 0000006607 00000 n 0000010671 00000 n 0000017217 00000 n 0000017435 00000 n 0000017606 00000 n 0000017691 00000 n 0000017773 00000 n trailer << /Root 14 0 R /Info 13 0 R /Size 15 >> startxref 17823 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/issue-118.out0000644000064100006410000000043113247541377015760 0ustar ejbejbWARNING: issue-118.pdf: can't find PDF header WARNING: issue-118.pdf (offset 732): loop detected resolving object 2 0 WARNING: issue-118.pdf (xref stream: object 8 0, offset 732): supposed object stream 2 is not a stream issue-118.pdf (offset 732): unable to find /Root dictionary qpdf-8.0.2/qpdf/qtest/qpdf/fix2.qdf.out0000644000064100006410000000232013247541377015741 0ustar ejbejb%PDF-1.5 % %QDF-1.0 1 0 obj << /Type /ObjStm /Length 407 /N 3 /First 51 >> stream 2 0 3 74 4 166 %% Object stream: object 2, index 0 << /Pages 3 0 R /Type /Catalog >> %% Object stream: object 3, index 1 << /Count 1 /Kids [ 4 0 R ] /Type /Pages >> %% Object stream: object 4, index 2 %% Page 1 << /Contents 8 0 R /MediaBox [ 100 100 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 7 0 R >> /ProcSet 6 0 R >> /Type /Page >> endstream endobj 5 0 obj << /Type /ObjStm /Length 202 /N 2 /First 45 /Extends 1 0 R >> stream 6 0 7 55 %% Object stream: object 6, index 0 [ /PDF /Text ] %% Object stream: object 7, index 1 << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endstream endobj %% Contents for page 1 8 0 obj << /Length 9 0 R >> stream BT /F1 24 Tf 72 720 Td (.........Potato Salad) Tj ET endstream endobj 9 0 obj 59 endobj 10 0 obj << /Type /XRef /Length 44 /W [ 1 2 1 ] /Root 2 0 R /Size 11 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> stream R endstream endobj startxref 983 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/long-id-linearized-check.out0000644000064100006410000000025613247541377021056 0ustar ejbejbchecking a.pdf PDF Version: 1.3 File is not encrypted File is linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.4.c-check0000644000064100006410000000005013247541377017346 0ustar ejbejbversion: 1.3 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.6-ogen.check0000644000064100006410000000026213247541377020404 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/extensions-none-min-1.8.5.out0000644000064100006410000000014313247541377020705 0ustar ejbejbversion: 1.8 extension level: 5 << /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.7-ogen.c-check0000644000064100006410000000005013247541377020620 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/append-page-content-good.qdf0000644000064100006410000003307513247541377021055 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /PageLabels 2 0 R /PageMode /UseOutlines /Pages 3 0 R /Type /Catalog >> endobj 2 0 obj << /Nums [ 0 << /P () >> 2 << /S /D /St 1 >> 7 << /P () >> 9 << /S /R /St 6 >> 11 << /P () >> 12 << /S /r /St 2 >> 15 << /S /r /St 6 >> 19 << /P () >> 20 << /S /R /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> endobj 3 0 obj << /Count 30 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R 33 0 R ] /Type /Pages >> endobj %% Page 1 4 0 obj << /Contents 34 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 2 5 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 3 6 0 obj << /Contents 40 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 4 7 0 obj << /Contents 42 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 5 8 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 6 9 0 obj << /Contents 46 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 7 10 0 obj << /Contents 48 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 8 11 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 9 12 0 obj << /Contents 52 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 10 13 0 obj << /Contents 54 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 11 14 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 12 15 0 obj << /Contents 58 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 13 16 0 obj << /Contents 60 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 14 17 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 15 18 0 obj << /Contents 64 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 16 19 0 obj << /Contents 66 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 17 20 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 18 21 0 obj << /Contents 70 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 19 22 0 obj << /Contents 72 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 20 23 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 21 24 0 obj << /Contents 76 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 22 25 0 obj << /Contents 78 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 23 26 0 obj << /Contents 80 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 24 27 0 obj << /Contents 82 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 25 28 0 obj << /Contents 84 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 26 29 0 obj << /Contents 86 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 27 30 0 obj << /Contents 88 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 28 31 0 obj << /Contents 90 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 29 32 0 obj << /Contents 92 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Page 30 33 0 obj << /Contents 94 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 36 0 R >> /ProcSet 37 0 R >> /Type /Page >> endobj %% Contents for page 1 34 0 obj << /Length 35 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 0 new) Tj ET endstream endobj 35 0 obj 50 endobj 36 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 37 0 obj [ /PDF /Text ] endobj %% Contents for page 2 38 0 obj << /Length 39 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 39 0 obj 46 endobj %% Contents for page 3 40 0 obj << /Length 41 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 41 0 obj 46 endobj %% Contents for page 4 42 0 obj << /Length 43 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 43 0 obj 46 endobj %% Contents for page 5 44 0 obj << /Length 45 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 45 0 obj 46 endobj %% Contents for page 6 46 0 obj << /Length 47 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 47 0 obj 46 endobj %% Contents for page 7 48 0 obj << /Length 49 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 49 0 obj 46 endobj %% Contents for page 8 50 0 obj << /Length 51 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 51 0 obj 46 endobj %% Contents for page 9 52 0 obj << /Length 53 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 53 0 obj 46 endobj %% Contents for page 10 54 0 obj << /Length 55 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 55 0 obj 46 endobj %% Contents for page 11 56 0 obj << /Length 57 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 57 0 obj 47 endobj %% Contents for page 12 58 0 obj << /Length 59 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 59 0 obj 47 endobj %% Contents for page 13 60 0 obj << /Length 61 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 61 0 obj 47 endobj %% Contents for page 14 62 0 obj << /Length 63 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 63 0 obj 47 endobj %% Contents for page 15 64 0 obj << /Length 65 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 65 0 obj 47 endobj %% Contents for page 16 66 0 obj << /Length 67 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 67 0 obj 47 endobj %% Contents for page 17 68 0 obj << /Length 69 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 69 0 obj 47 endobj %% Contents for page 18 70 0 obj << /Length 71 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 71 0 obj 47 endobj %% Contents for page 19 72 0 obj << /Length 73 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 73 0 obj 47 endobj %% Contents for page 20 74 0 obj << /Length 75 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 75 0 obj 47 endobj %% Contents for page 21 76 0 obj << /Length 77 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 77 0 obj 47 endobj %% Contents for page 22 78 0 obj << /Length 79 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 79 0 obj 47 endobj %% Contents for page 23 80 0 obj << /Length 81 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 81 0 obj 47 endobj %% Contents for page 24 82 0 obj << /Length 83 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 83 0 obj 47 endobj %% Contents for page 25 84 0 obj << /Length 85 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 85 0 obj 47 endobj %% Contents for page 26 86 0 obj << /Length 87 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 87 0 obj 47 endobj %% Contents for page 27 88 0 obj << /Length 89 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 89 0 obj 47 endobj %% Contents for page 28 90 0 obj << /Length 91 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 91 0 obj 47 endobj %% Contents for page 29 92 0 obj << /Length 93 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 93 0 obj 47 endobj %% Contents for page 30 94 0 obj << /Length 95 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 95 0 obj 47 endobj xref 0 96 0000000000 65535 f 0000000025 00000 n 0000000124 00000 n 0000000655 00000 n 0000001052 00000 n 0000001257 00000 n 0000001462 00000 n 0000001667 00000 n 0000001872 00000 n 0000002077 00000 n 0000002282 00000 n 0000002488 00000 n 0000002694 00000 n 0000002901 00000 n 0000003108 00000 n 0000003315 00000 n 0000003522 00000 n 0000003729 00000 n 0000003936 00000 n 0000004143 00000 n 0000004350 00000 n 0000004557 00000 n 0000004764 00000 n 0000004971 00000 n 0000005178 00000 n 0000005385 00000 n 0000005592 00000 n 0000005799 00000 n 0000006006 00000 n 0000006213 00000 n 0000006420 00000 n 0000006627 00000 n 0000006834 00000 n 0000007041 00000 n 0000007260 00000 n 0000007367 00000 n 0000007387 00000 n 0000007506 00000 n 0000007565 00000 n 0000007668 00000 n 0000007711 00000 n 0000007814 00000 n 0000007857 00000 n 0000007960 00000 n 0000008003 00000 n 0000008106 00000 n 0000008149 00000 n 0000008252 00000 n 0000008295 00000 n 0000008398 00000 n 0000008441 00000 n 0000008544 00000 n 0000008587 00000 n 0000008690 00000 n 0000008734 00000 n 0000008837 00000 n 0000008881 00000 n 0000008985 00000 n 0000009029 00000 n 0000009133 00000 n 0000009177 00000 n 0000009281 00000 n 0000009325 00000 n 0000009429 00000 n 0000009473 00000 n 0000009577 00000 n 0000009621 00000 n 0000009725 00000 n 0000009769 00000 n 0000009873 00000 n 0000009917 00000 n 0000010021 00000 n 0000010065 00000 n 0000010169 00000 n 0000010213 00000 n 0000010317 00000 n 0000010361 00000 n 0000010465 00000 n 0000010509 00000 n 0000010613 00000 n 0000010657 00000 n 0000010761 00000 n 0000010805 00000 n 0000010909 00000 n 0000010953 00000 n 0000011057 00000 n 0000011101 00000 n 0000011205 00000 n 0000011249 00000 n 0000011353 00000 n 0000011397 00000 n 0000011501 00000 n 0000011545 00000 n 0000011649 00000 n 0000011693 00000 n 0000011797 00000 n trailer << /Root 1 0 R /Size 96 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 11817 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad15.out0000644000064100006410000000032113247541377015213 0ustar ejbejbWARNING: bad15.pdf (trailer, offset 753): treating unexpected array close token as null /QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 0 done qpdf-8.0.2/qpdf/qtest/qpdf/deterministic-id-in.pdf0000644000064100006410000053325313247541377020141 0ustar ejbejb%PDF-1.4 % 4 0 obj << /Creator (Apache FOP Version 1.1) /Producer (Apache FOP Version 1.1) /CreationDate (D:20150524172830-04'00') >> endobj 5 0 obj << /N 3 /Length 11 0 R /Filter /FlateDecode >> stream xgPTY{si249IЀ$Hn2-49AD$)8:EEyqpQQYU[[Ϗ:;羺UzȐ ɰ> 3(8p H 0D[oo+k?Q '/s,^IW8=%1{8cq?_e> ʄS+ԮfG[^N/?_zVCte?(.Or}]/t7Y9;Ꙁ嶖z RWN0t8@g ةo9(0-pGo:(H2O:4w7&CɛRTRӬҪ>e dje͜r:fg(fn;=b{y;&w:<+n\www̛||~=ߣ~pڽ{p n~.bE,6)>R)ᕌT4t灎2fYAٻ[(7*=D8zHPQURYR*jڮFfoa#6GZkj k?9ι^Xڱ  YǛ =d,\̜ =uGZuZm/ i޳?\Nk/:2;:;]]Cv[tˉ/_(!,]̺8)[z_ rϧoל]x7dercxA;wZ73l=|ýk]Y?24?`,tL`a7->gM`"00>|W%y2ETӴ/7|jq6wk^k?&,YVwFz矽OxPAɏ?M-~'K KKB. t ]@B. t ]V,r96_6@-Jh 7#edoMDEa&s|.7>s7  endstream endobj 6 0 obj [/ICCBased 5 0 R] endobj 7 0 obj << /Type /Metadata /Subtype /XML /Length 12 0 R >> stream application/pdf en 2015-05-24T17:28:30-04:00 Apache FOP Version 1.1 1.4 Apache FOP Version 1.1 2015-05-24T17:28:30-04:00 2015-05-24T17:28:30-04:00 endstream endobj 10 0 obj << /Length 13 0 R /Filter /FlateDecode >> stream xuMKA +rT1̵ Pebk{ofWh&I3;c+ ~5 **Mck$?r_"s8`9@> endobj 11 0 obj 2453 endobj 12 0 obj 858 endobj 13 0 obj 225 endobj 15 0 obj << /Length 16 0 R /Filter /FlateDecode >> stream xSMO@ﯘ&vjƶHUJ+Mf2ͼHB{L%x)IJ) CƂ$( pcHIV& r·v9 }hEGBg 0n#7Q/C#AAyچF 9p3c=q,s 0Dk')Zu)`t2ݴ_Ti-J0RIa| uP $.o@a8iFB=-|2|Wu+hq#-2Qx7kLF5]~..@3&> endobj 16 0 obj 336 endobj 18 0 obj << /URI (http://qpdf.sourceforge.net/) /S /URI >> endobj 19 0 obj << /Type /Annot /Subtype /Link /Rect [ 81.72 657.641 191.15 666.641 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 18 0 R /H /I >> endobj 21 0 obj << /URI (https://github.com/qpdf/qpdf) /S /URI >> endobj 22 0 obj << /Type /Annot /Subtype /Link /Rect [ 367.94 657.641 483.23 666.641 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 21 0 R /H /I >> endobj 23 0 obj << /URI (http://www.opensource.org/licenses/artistic-license-2.0.php) /S /URI >> endobj 24 0 obj << /Type /Annot /Subtype /Link /Rect [ 248.721 635.641 387.438 644.641 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 23 0 R /H /I >> endobj 25 0 obj << /Type /Annot /Subtype /Link /Rect [ 393.349 635.641 539.999 644.641 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 23 0 R /H /I >> endobj 26 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 623.641 163.65 632.641 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 23 0 R /H /I >> endobj 27 0 obj << /URI (http://www.apexcovantage.com) /S /URI >> endobj 28 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 589.641 141.053 598.641 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 27 0 R /H /I >> endobj 29 0 obj << /Type /Annot /Subtype /Link /Rect [ 146.786 589.641 273.986 598.641 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 27 0 R /H /I >> endobj 30 0 obj << /Length 31 0 R /Filter /FlateDecode >> stream xVr&߯`Ozg7yԤ+7,Ľ"#}=$'>}i }Ҝ9}tɤD"LcԠIQVy%@П'y ӧ0Y S?=xL BBð+þPK9/&(x9mܢ_pԁf)w$2c<858SyΧw1":_:O#LH? pFsCѹAnӛ qv|/QF8.@`.d =\}fc PaeKᷟޡ7aVbUfU؊uT*vvUJZ.]Iȫ4 yIU~A"jn:vA|ˏU,/$yIMj\â` >)uUFӽaem׶`:]pʱ~F1 ) ⩔(*l=KEDŽ 0ppD ! cE(~$0$14}/6 :{ǪC`(z$bw;G6q7AอڍeNp2Wvq -E J}FվEXr 掖l;\ݡ{ i4lfiOǮ<-;עNHJАJW]kJBUFC޲F"|Ök%#tuTvz֓G7mh}Attm` >2i$9bt`{b1f !VމaPOw7@4 P1<$i[41BŞ,7\dȊpzqY1Ypw̬h%#dMQ Sp^/ړ=ϴWwfYljkNmW KԸ2kh> endobj 31 0 obj 1224 endobj 33 0 obj << /Length 34 0 R /Filter /FlateDecode >> stream xXK6W `S>nO]tr%bV9IKC/iS4p/ge~9)>'cmw$$[Ҙ"")ɇEHaIRT{7On?`[['87IT8\kpoK/'/-D^\2+w٬ƶfMMrM#fd PSM"' NbR9$0YmdC@i {)N9J"9gIe`Ӭӫ^2wHl梋4.7nVa* IǖM`M/,#c΂6 +1[Qv$GJLMC_Y@cwӄdg Lm_V+-Vf(t fi(K,rZ]:+V #o汌43=UTPgQ)Q(mB?+>47Gfad|V \kx%Бfw"%kLؗix@I-#q%fb58|0cמR# a# T!HgVh/TIG7xPɻvBsPwޟS'|=1ygen84*L6RAWAq\ X݉<߼wrnUUH4;LraRyC1d>,=(M1{:N4H]'n_5F.5]yn{ݮ5UF9c].rDp9:zM];M LOM|C o .W1ɺ"Fcc87z)ϳ'كDuh}o^hspL^{L51Ϳ[6n :u̳LSl;EEq[>Dm6f9B)gkCקŴA6U }mO(C=qF/~k3x7>3*.w`ǕkߘcA .[ > endobj 34 0 obj 1572 endobj 36 0 obj << /URI (http://www.zlib.net/) /S /URI >> endobj 37 0 obj << /Type /Annot /Subtype /Link /Rect [ 102.28 552.539 182.84 561.539 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 36 0 R /H /I >> endobj 39 0 obj << /URI (http://www.pcre.org/) /S /URI >> endobj 40 0 obj << /Type /Annot /Subtype /Link /Rect [ 104.49 531.449 188.37 540.449 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 39 0 R /H /I >> endobj 41 0 obj << /URI (http://www.gnu.org/software/make) /S /URI >> endobj 42 0 obj << /Type /Annot /Subtype /Link /Rect [ 184.2 510.359 324.74 519.359 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 41 0 R /H /I >> endobj 43 0 obj << /URI (http://www.perl.org/) /S /URI >> endobj 44 0 obj << /Type /Annot /Subtype /Link /Rect [ 187.53 489.269 269.75 498.269 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 43 0 R /H /I >> endobj 45 0 obj << /URI (http://www.gnu.org/software/diffutils/) /S /URI >> endobj 46 0 obj << /Type /Annot /Subtype /Link /Rect [ 197.68 468.179 351.01 477.179 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 45 0 R /H /I >> endobj 47 0 obj << /URI (http://www.remotesensing.org/libtiff/) /S /URI >> endobj 48 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.06 284.909 260.06 293.909 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 47 0 R /H /I >> endobj 49 0 obj << /URI (http://www.ghostscript.com) /S /URI >> endobj 50 0 obj << /Type /Annot /Subtype /Link /Rect [ 224.76 263.819 336.43 272.819 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 49 0 R /H /I >> endobj 51 0 obj << /URI (http://downloads.sourceforge.net/docbook/) /S /URI >> endobj 52 0 obj << /Type /Annot /Subtype /Link /Rect [ 516.1 152.549 540.0 161.549 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 51 0 R /H /I >> endobj 53 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 140.549 219.75 149.549 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 51 0 R /H /I >> endobj 54 0 obj << /URI (http://xml.apache.org/fop/) /S /URI >> endobj 55 0 obj << /Type /Annot /Subtype /Link /Rect [ 516.1 140.549 540.0 149.549 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 54 0 R /H /I >> endobj 56 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 128.549 152.54 137.549 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 54 0 R /H /I >> endobj 57 0 obj << /Length 58 0 R /Filter /FlateDecode >> stream xZY6~_ĕ $N)cL8$(a"doK"ɛj5F/4} I?yzsEBG$4)H(%)(AX_WϿ!| N٩?_}=7ߗ ReeT#Mpji@eW5 ߳2e=~k)4ZD/"wыoWf:QmW(hQByY+i]m'6wkx"Uߐ78U]HC&J<>~H𽜆qs&%[ 7I :XBz{&Rfp\#|6-uCǪ9<2TM3.tQ< 2?~gqE,(q 2-y۷e)#Zd&I\^o%ޟ(vCfT'>N`EOth&;0,ia!%6۰~/f@>A7YH3 UX\m{`]5',e{f}YBöoX_s6RK}ۦc DoE׉ (u5/g6 F%h(s}'¥qK# 2<'&diھT2=n ՑEF2,m=E4)A0+{I>T e I_Kś[;i1pI0i9+[v6P*~p-hhAF|Z;B0)g6td toD y"e![ <[Z%zby*h`&nA-AYK/ >kz2ɿN@ĐXPYS|<9@kBaa~\歭nFE["|8} Q?aXo]iH̓JҐ(Xb[Y4aIREXbJS) jծ9Ⱦi/&r8Ԏlgy{ԇX=ltE;P\h᱊F]#04":bgYc9Fخ!$-y_aڋ0ĈӰ맊+E{ނ&n/fu9 _:@AZ:3a8#GC DA<}PpV*iGDئ wfJ8TNq ׈;7a`\AY| E AL0# 3&b5I;̆j[MV pf{b Ɉ :޽0s-\[i6-6׬Z08U-n`Hxޗl{ Ĕm*7nl$z:-i ^W=ٲ|@;TSvܠont޿|y4xQۮZQT6l:Sr8++E˄Xu3&5x~D;>NODoCX~A1 /u{<$hHݵ?AvA&|wↅÒ J5[BF,/ =+Tzzr _w8霷 4uy!C}*^"+5un*1y=CêN*J\i.3/ FbU#X7デn㻄4ǸXV Tp-9z2D0]ډ0f`dx+mPGSu|G٪+vy;/7Ҡ8Y8#:S!(=8S#вHP*<)koџbp(_|q2 @A딣2E$x D݈዇ø6li(: qo,58d_8ev$@m W՝ NPx!]uGG:_=eww-A&yJӘFx~Z˃vMyNa|t#&(E (ll-X,vR0̛kr fw:T!_TW40G'E&՝zZDs"ƃm[ Du%$?DV)g8ǻ>5cG_O\GM5'#;Q5#wK&Q7sn/T2B|'\ۚ V}{˪HcgG6vtm!@^mgъ_٪j(OF>o:Z)!T/hhU|f߽gaI"26%$NKo!N E% !/]6hE6$B8w:"[y endstream endobj 38 0 obj [ 37 0 R 40 0 R 42 0 R 44 0 R 46 0 R 48 0 R 50 0 R 52 0 R 53 0 R 55 0 R 56 0 R ] endobj 35 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 38 0 R /Contents 57 0 R >> endobj 58 0 obj 2926 endobj 60 0 obj << /Length 61 0 R /Filter /FlateDecode >> stream xXKo8W)ݤE[,ʢ#QPHZMx!9΃/("Yaqoyebe%)1t@NPwD4Pa6G?_8 cqO@^!\?AśQV[E4yE(,*OVMWV!^oM*^U~z+Z[\Nc4m0G>' ILNWp|2ѭ*Di 1|A$4I~y8? 6_|g0j1[,Y/ bj%aqF{Ҕ5p`%1EVHXaQ^sJȋP07_ }wĠA j!ymQa0e\18%-MMWkYo]x<%R]gҙv3١@k^W `ӅLDINT6/Էo(|vFT F͛>%Z+U;x1 w],1dƴ(V*X*[bYEԀ a^TY$iy7-,_ ైbZdP$1͡( 3{N2hȦnzE#R=lٖ#W$d$iS):xrlt̍۽6[=7`(>UT%tW<Ʊ!U Yj:A{+˪1H ?)G VHIqFwC.7ڡ3tFC1+7~Qwe 8涿tCzV{ч̠>cВ}5q]KG? MKvE{1 C4x B 4'gN;܁E#zr,w;ޫ;zC`@@|06ܑ-A/s*1PUEq~R6G(L$?#LJ]reR9V$!7Z[ Sedt^v`-Vy.=4ps-ՉS1ø;ט=|nfm{zgqndaֲ^6bA>}V1 h}W6]9Z;:b[#!0/=9X r\:33]9v=ZJC[jf@(Iq288T qv82 endstream endobj 59 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 60 0 R >> endobj 61 0 obj 1447 endobj 63 0 obj << /Length 64 0 R /Filter /FlateDecode >> stream xَ6򽿂oiY ,x=FlaZKcf؏""{›.|xąO$6#OXxG" H)VY?Bp"nK> w.N2ؼ/添ͫw\rw0! c' ,KNgUӋ u]G7^~!w߼8xiL%C/V hJҀŧR%MECDE?\k{1-r=$#hN:bpi/{.juo,ٞ$N8%4VѳwLaų3,6HjZGS~3{vCh·fCQFN:{hm:oM_ڈ=Y1YP8ThO1r4v{ *y. K\ҥvϤ#"^8ifYGK~4y(FTFWSz1+-&w"xtYDt$$Z^ΓY+<eєMjP0ӲϚj-)rݳzn%`ۘ5g'!%,t9omq԰*Z,Mg = mvAc0E0@{> Fbr!bԂi[3tAYC jШCت/$B\_5fQãYWTXr/uL\dE<\ LWm L 8i{6Zյ~0l⺕6+2U3 "{ֈW72X|؛Ł>:.X@6n"a0(g҈󞭔Ev񃄧^WExV 3Xq"@.)|9p0(v= ŞႸH/2%! >]n7~w|$R4\3)`,JѤi"o _6T^V4I؋i h {fO',I|-5Ȅ͘ab+C</[b.p/8&<, ^K^Kb{?_QBi/uu1> endobj 64 0 obj 2639 endobj 66 0 obj << /Length 67 0 R /Filter /FlateDecode >> stream xYɒ+pLUjUCx$g!&&µ މQL| QGQ%쾘 "r8P Z RC/صu3LQ/h{3wݟvf(ɻ(qUUV$}åmy?~F01 BB8O&49RHhr6A3?5Mj{M;"oFZ1M|; 1\N2! w"R5qH%IyOO뗧'i"_A$7@[gI#`_p%r"x:kgP(;q.ڮe@K$)oБԑ+̧8[OןE TR^K^l—~Z1t~D{"p`68.p\Za!7JY H9yZS'z=E_ś8pL(J_JՂ9ԋcw4HEv1mTBVE|'mNP}4 '$+k`znuGtu=y#UUwZJ K#Y˴XuN8O ȟժ}{ȚG[k㲔I"nTm$@pg_J]—nMrzQȓ5+l%?Ԍ} zުIvxO0@3VE "FC8'͸5;.-kõ3 4ӆV΃eKp|h&9Gɣ 0vBtlAT3|+w;' ed{Ɵ>]7\3YF]wBVoO*N08|t4Ͽ~tqI3tG~IWnL2&5)hYK$LU͜HV$EUe6 VBfr%tPQf9ÃHZhq&rM߷-IY>YCf7ӁB xޮxɖ?eLkAt :K=F&ӁgZ_ض?ݩ-ۙ+H?cbp]sI:#zU\1rჩf- M+bped:_N QjZ 3 BR'䇀;Hi\>DQ"4%UP3TH;跗;]5ky3%YPdX oysi'V.Ύvv\a躲[la=$+ R3o¹MdE+EJQ4<*=Ԡs7/} "Pxuχ{īG(l ϔFB>bj4"3IxӰܸ2$yYI|ֹܺ1SR < \ ټ#ٷ^G=YDQ ܲ!/)Qi\i2x** -hZMA9Tq[tdɡCB).MiUDŤX&$kҟd+:ښ6}f\s]jAf9At?P\~v"X+l9]4}5)ǘb!P׾V nAt=[ MkpxƔPp%mU0OVXySByWӾwqpɚ4.FgjdA[#Y" _fى^j!Y U <3WeXqQzb}b#EŊPo`QAP*Ӝm5Gps: =z(s~M@PW 4lx Là R OCx|6`E,!'̧ɷ9LVZsW~;fi0e~+F` [lg cFe[>형F;Mug)ppV?q endstream endobj 65 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 66 0 R >> endobj 67 0 obj 2200 endobj 69 0 obj << /Type /Action /S /GoTo /D [65 0 R /XYZ 72.0 152.784 null] >> endobj 70 0 obj << /Type /Annot /Subtype /Link /Rect [ 333.717 519.578 484.943 528.578 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 69 0 R /H /I >> endobj 72 0 obj << /Type /Annot /Subtype /Link /Rect [ 484.943 519.578 515.831 528.578 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 69 0 R /H /I >> endobj 73 0 obj << /Type /Action /S /GoTo /D [62 0 R /XYZ 72.0 519.752 null] >> endobj 74 0 obj << /Type /Annot /Subtype /Link /Rect [ 319.381 163.171 460.719 172.171 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 73 0 R /H /I >> endobj 75 0 obj << /Type /Annot /Subtype /Link /Rect [ 460.719 163.171 494.664 172.171 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 73 0 R /H /I >> endobj 76 0 obj << /Type /Annot /Subtype /Link /Rect [ 329.293 85.499 488.903 94.499 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 69 0 R /H /I >> endobj 77 0 obj << /Type /Annot /Subtype /Link /Rect [ 488.903 85.499 523.981 94.499 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 69 0 R /H /I >> endobj 78 0 obj << /Length 79 0 R /Filter /FlateDecode >> stream xے۶]_3+ [g;IΤDB+6)j6_߃;xvnsuCPl埬Qy|58ԠY'ElWGoi7X\6ќ:q!/Dߜ(%E)u/1?r&MR-?5D/>U="FnGc͛$D~Q*B1qEQZ~E(F۶nЇ?\KX8"PMP4t*1}:t4v?h<Tѩz~D;*lPS[ ~3)Sj *)ӌ)&C]wcW$InD Z)[Jx)@A>}4es air1Dr kRI5_LQD4<Sp& es悵KL{ n# +LDi}­ yB<esW5lψ2A bG<$ڑjtb}B6@dҚfʉ$#`p|C5Fu΋k'o*E5{uyn1KWUbIQE_DWe>~ȴn-qeYG RX%ili…8%.#WLdLdc )cl,v^x:BߟR2o'XYS} U8HzT#Leyu®w*Yc.soT^toD-f,oED\Li_5oކd4hjGE T1(' !]LB͓ Jծ7h y I > 頹ⓔepNW¼(ɍR8i_*zt-QIs5x)YO{+cRZ` ]?at}]\rD2#tU #l(xYA5-XuK,$!rJ̭.,goufd g v[i?^qU)Yp5Rik4f?Hf$YV2ŬlFАvL!/ǹ}Ⱥ-s5! =dK~73)E>ۇOi8߃&$nt0Pr{J^t[R 1]to02N).b9:ծZ* F5 OSV}M8s5(މUz P3.49Ul者 H=}+$ 7ɋ5K;u1J6>Ai4CG)*7ۦE!B7XiيR~[aR7O@S-&s|H"J^֑:# M e F^VY Fx!@E E77ΗSJyʨ0^(jaY67a W0(7"LVf V!IV u8ufF0f[(aF,IV>$Hhn NHD>̪)gM=9NEϯq'}x endstream endobj 71 0 obj [ 70 0 R 72 0 R 74 0 R 75 0 R 76 0 R 77 0 R ] endobj 68 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 71 0 R /Contents 78 0 R >> endobj 79 0 obj 2796 endobj 81 0 obj << /Length 82 0 R /Filter /FlateDecode >> stream x]}żu)r)@ۻd>d rl~}!Cywi. fP/7Rg?y Ӥ#gLJ3! JI0G9@!A<t7ϿÃaMd&tɑO?\~(nzw;Z%Y'IYe, J/w'폗k?E̘XFc>)j#?:I8CT%0&PH6>jy!߫v֌еb)PCH Nȯ.3oQv p$O,P# @ YK=hlg'T NCژj=[ε+ 8 P ֍!|L5{wϸ;Gq^.6m;%X GG(3YRHߵ[Apf&d'0JUC2~K#ƕ9U2_ea-sv ̚˨V^-B9K1ic0XAk +湛(@J(l(ϗ2,keAf}F^OFvR&&L #i\]1-|U1m?}bVrP'wo$eɘa, ,]Z;U#Yʡ*6]=:rv>gq>ĬGa:aks`„uͼq_ ~1&X?Y3A\@aaOj̓ +9l ZlLӠ 1Mi ;}jG 95F qlv(\mM';&+}80ֵVik^ [V{tvO`d?A7 ٖ.ChoF2w3bdgtr4=>4#n2s5=v. XTߎu"הl5my7Ȳ(|su!ly2Zҟj&Πo2]`pʑhJ emWju: `kq>[aR[D&)q8rbVǡP8m{2jC:VŪ*֦65~O8^ 0 #މ"kZCФã8 .dxSW DL&7ِQ2ʂ!U;os| *S{j|]|_v؋D.+҅˦~TGPb?>Qh lg !MRBpA;Y:Wg8"Vh?#5薮B-w,vOy}a'҅wJz.j շ _1S|!%3TxV1|1"PCLd"m6ZulGqLWգ8_t:r-X1KQ\#WX,` H*ap;XMx i]ZD#4 +)I^ërɫMj mj9#O8^< { 6f~߲:Zj[#.M:Us8 8_xr궃[S0ɖ)~!Q'ky'VUE֌ㅢ%:+ GH,`qHV? ;^жjwv>Eo``;/_&I &B6߱G;!~+Nz ڔPvjoWSB;8PEůR2(`Ftd_7";?8XkmTϦZ"/[8zAǍ EY=^`0 ;5stt]@W[qiwV)+^KqYBC)hQ.cְWpd2㢜R/q졠ŖKݨ.~7X.KDk̥P'T.3Dl-+"Oi m^U _yBF07q FǑgr;NV8X;n1nLsqt+L {G30sM_m("1pK׌Nbt1١cc"<9ćrzƞ&-"Њ6smJ{KL\ Rf:C>.u0LYJֺK\nogt1(@ 1ћJLk@d]0,b@rPSj7njGQ iWCYpN0J=$_hPmx3UP42X"5 s$[Q6EF{R5ڵxEe5`JzCpP|zpt,$i m\U -48̆7<}\y♜ݳuqj2K^G30iQAe.exx9͹6R0 &\ P%}} endstream endobj 80 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 81 0 R >> endobj 82 0 obj 3843 endobj 84 0 obj << /Length 85 0 R /Filter /FlateDecode >> stream x[Y~_ovG?ȱ(ZH,?pv:iקȪ" Xj"Y*r?߅^'/#oL#/Έf^Q=SQ"b ~'.|˯P.7+{_{Ѫ(MXQv{}]_[7oPuWt -:^{[ P|NIwLRdj'V*/~Q}}Ł8Qxͧ1ucsueT=^h[PWq L1,B+&r݀SeJ5s&==*X4w3BVAtNܐ4WgC?Y4cP \c=%U$i%+dنW.g,IfyIg!+#.r{1sJ,zo,VLfA*G 2:Gڊ 京|•=D'-UfMВY[T7Ej읏/E(<҇vn;{ .SFTءBt:9ur?asϾjƲ4jg0Băǥz Kg ܥH7w3B?!隦`M[XX#ߋ`9?Ҹåǯ kf"iN\M+lA};i;5&h\B?oDpbPFZ9_boC'cP-V΍&<,%v *h Y+`H;!C $i v*!ZێbqKŅBdТ!clM>r!z wNuyԶA}[ԟZL5"JGVй>WNɽb*MΒ4ciY lezgP[&<ԈO j]N<,WpK5 8,tLW<$VXe)L I1ƃ0T? MߏgWK˽3um`}4BA*™ J 8Q8f38`MkPeHq?g'ܬ[rR˥0(zϺ=ތ,WTmjYY*S39WZױlci "FP#*MY[8$U)Vha{:Q HJkLɋm*E҉LEShz˱ )9o,oBjp(ŠM 6j6uһrLUyс§tݟ ,FX# i; .1:b_؍ϵ?h?i1Q;Q|uH(Y. gSҡo,\$ـq-  jJ".'rJgw< 9Tz1۪\ Ңd|sQPL]7=g>[Ô# i;p9p\f3v(T. /J=*c9#M 1Քf^l茸8= PۻZ/ =%A1E?i[~%H*-)yfQ FFT퇑#YÀ =]+,m>QL')io]==f[ E*Ț ;R>|eK3-i9earV&G(敇fx. Qs 1aPHFukbjT .HLA`ap:@O|jސ6GdXh0\ 'SX'T4bk*' %p/IVUK5dL {ف8=Ii7`zw`oT.Ɖa/ @`7Ar)s-4նq̼U@s{ !>}w>a7F|r}Iع@)VKr~Gcc'"!ʷSK%`%.4n8RhMg NDt檎# _"My2J9TY8Ctz'ծ;!^Ԩ8YL38A5.RsSpV浀v=jTf`~֩+![W?-Q yQҘ~3t 9t"5V:C AЍen%Uكqd{o֯l1yi!J?M 0qa"Nj2+յLV-g̀jo4d2y8|Ɯ<:it4r6 ,؍蕸/]V!ӣ-S,HCI=^ꞍBqL{#M t|~4utŮ7=%1D9 =3zx:yY0]qb*$A_\9)$v>fvV>"s~J!4D(!hhE5-~u$UY9@QҘ;e錉[~N&ɹd> endobj 85 0 obj 4054 endobj 87 0 obj << /Length 88 0 R /Filter /FlateDecode >> stream xXK6 W;c1zK>I39ds%zFZw iY61 ~PSlbTuZ"FIEYꐦ3Ԋ<"68~V>bBP8¹9a_?|ݯ~ޮ^Pޥ(qMIPx#ѶCn?}{mXٞD{^q XB+I冉D-Z}hW9HG(AC7" .pEWO6bLx =UP 9J36[77@ vӊ!iOI?u;:n,IIu0uS }2<>k9J:>jʄ$ 0*$b;y5=ީP;򅂄 owQx~`"`pM5dPͱ,fμ Wtϝg4?8FZ[ "30W]9Or.Z^D&֞{#̨Q8KE[hxL%Rt.DpZAKT,,[X9y-sY[3##;69O  4T l5>Xgn{,T .-^dr&fQb HX58 {jn((WqTZ}yRx^dW7~2U|@L'ڶVli_ GMO!șԳ:ndMJU?\M8y䯂r6)9LH6 yI6y%Y4iw' ˒tV:h72;zMK((V2fPnr4t-téݖ;!!@M }2}d:7{3 N*+@sđ#'|<1vG= >3ZhλQՍ(o+~ W9γl!Ae5 \&ˣuMCeycvqmZohD$0OpJU;;oќM_{feAYqe= L|M!LGH0BNyOНH42!NnLͼmuO'穨<^09\ t^^iEPI Ttr0Ik{F M}K9(09QXQM[WN&ۈ&z8sd5-D_3o.Q#tTd,h{;)VN;fɝ8 rl P[Ұ9562 #5΂[5yh|h@Ŋkh7j$[<bSNL~ɾp:W%*^eΘ<= CQ邁,(pNR,XH*Rr1Q4I0+}km@B?=^ pe .wmY}(FwGnylX*񗧝/ xinXE7{}㩚T(K(lglZ`G<=*$|X{6}(N /zG&0HyX=nQz ZnU_ e endstream endobj 86 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 87 0 R >> endobj 88 0 obj 1633 endobj 90 0 obj << /Length 91 0 R /Filter /FlateDecode >> stream x˒>_K* ߾m8㭬˩Ј ԒΎ>h$R?j@h4|㟪pxR$+-(Hd"@8 vOw%& &<߱Kvf>F d\_4@̪u_9PKpF`F4lI{`~qYxOw+ΒOU #O7\%ϻ*loL`΂yTKc #DѤ*M=c&olLȉcPSwf6-_UE=$,ǽ%о}ZGɮa;pm.˫:e`ʋyʮ(ώ,41ָ"yx#_WV%xu9tl*qnTޡn0I &D{ln͘:'i8GlL" zgMs?zUFrs7{`:?wϠi6Sko3e+a:yvdA6q;j{{x=r:Xv).`46Y9)˅{6AkVP~OI%>y+~JYަ38Ӽ(ufJ?_Φ&xatK9D (\@!R)Fv ;G33ӳc~Jj]v\Uƹ2v4jMP|``;TrS -մx#EA;)AV4 !HH+- k|oA/AstiZ:x..gO(g6GX̉j?jJ&:6;0}A\xR##![yL*S<HgKnWլ2Caa<q\a2^ȫh|)VT@5&AL>ϩ<2hf60qJ5=. |Tv`kEa^t4>BƘ<<qȑ]HCeyLX_GGC-nNOp6@"y:% G 0 ΎN JS9}瘜lIw~Sk͌K^%Xd|ƗƽٯUxQL4xj ӝ+ l})( X8DZÕe lܿ,"r…UI8{{\2ʬ^L(:\&O²YP\G*a˚)kƣt[t0 g0tm*L>(́p(o:ΧX XnG[rKFBe^aD4ٖ:nvޮbN:jGǔێb@|+Kpve7pE ((=8@A1[q*O97ĭ{ouZ{Z#  =htpQlXEu4`ͥ2"iT/3܏\dz YuF-*‡mFU$ /$Q)Bܦ!,b3*#_ .vQjrxfC`,Qn%UC=in$74n} !RQa0GUb׋w7 9j1PB0nw*Pk~ f3^-آgyqk-Ӯ+Si 4bue&e^Yík)BY]F,^,/E 5hu7vV_U0J[^xUU3vU1*v&J8&.2c2p:{[LEpfwW[pku>ka-9wFdg:;r`v`8C7$%26} iK\g4WHXX1ւ 8XlA7 CΊ4 HYv+QqSUa;miF$1`0D"r8ʪZIV\l<{y,IߥNҚhjW4Y~U(v^N@0tKv=ܚ}Zڃ88,`3#z:zE0Ucc.h%c4OsF/ÅL{P4493,} 40jۚШfc+(e Gk* }6O?b`ᩆm!-;Ft~"ᕘ;8WrMd gCׂ%` '7J,jb`aZmb>+QLTPiq/`&x܏EvG;`mVɣj0]Y<؍xA@oU͋3QdM B r~vwA on/Ptipvb Auc:]y:bd:RZUr?}S~4z"fA*HE6!\"\;$ xAwe8ϫ_}dpI-h/J0EM] `P ?b%{>R> endobj 91 0 obj 3350 endobj 93 0 obj << /Type /Action /S /GoTo /D [89 0 R /XYZ 72.0 720.0 null] >> endobj 94 0 obj << /Type /Annot /Subtype /Link /Rect [ 366.92 188.609 456.9 197.609 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 93 0 R /H /I >> endobj 96 0 obj << /Type /Annot /Subtype /Link /Rect [ 456.9 188.609 493.28 197.609 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 93 0 R /H /I >> endobj 97 0 obj << /Length 98 0 R /Filter /FlateDecode >> stream x˒6-vAʇlJ6LU1C&_Iq7NYhD?Ax-D1'|Hĉv[AH~G^@W@]BVuY8^ʓΪhtbtC98>ƂG<,v ŮGi TOYyN! >dߓԗ2?c >ispsY-ґ)&)}sU2F8 dExGHEsNw,9Ww=t-sjA-}OQz#EtĦGJc I i>`s Oepm/^G|`bLvR |" ]#pj!z< j_l2v.{N_\v+췣-FJomZq c`$ x&S#2P蛗ngܤ7aBb,"!4xM[m렳ҮޥKAs3ف[i}ڂz ؍KKkC7I4@0 \w5#{rB&)u]Ԧ]螡B0>@33IYז1 NWN,= Xcvh2T ,n ~s/ C?X _D'@8,$ JJAVIb?M i߻#\Cj[nȁQI'DcAchv<_s? pwCYcʠFHJZ|~<%I|lUxQS5 `> 4O-8gU+OEČϩt~2FSuW3f"耎0C ^-WaP xAL¡zS+{Wq-FkvIs 1Ey<X1Co0An/5ߊV~v㜚+@=:ؐj+\ : @9Sw+,XP ~nT[x(Îc[@f=X>ãYV@eg<8PPNr$:5%f~xY0\,gÛ7 VuwY8a`irUsJ=P NN0olC'X!4(Ya- CF:`7.~^UbA\UVR<n3bYdk$Rx訳`M8"iM(;_*0%\3D":F61V*F1E ؚ%yR^IFw[+ʏ$c{_ /d5* }(,Sls#XNR~<2i(NKѨodwл/ I;m<;~"M"a? endstream endobj 95 0 obj [ 94 0 R 96 0 R ] endobj 92 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 95 0 R /Contents 97 0 R >> endobj 98 0 obj 2661 endobj 100 0 obj << /Type /Annot /Subtype /Link /Rect [ 208.09 637.5 298.07 646.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 93 0 R /H /I >> endobj 102 0 obj << /Type /Annot /Subtype /Link /Rect [ 298.07 637.5 334.45 646.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 93 0 R /H /I >> endobj 103 0 obj << /Length 104 0 R /Filter /FlateDecode >> stream x]۸ݿoMK.E .p<m%q}R$P M0grԷUDBV?Eq"R$ *IqFČ3ҨU #E08?V*$[}5 4ѓfŸ.?$կϫ72y\AUUV )$Կ<Wm=y/ߞ'$Q0Q렵!t'YNg& VS EEpM;BgF[1M*v> `rQx3?e(*ٷ )|`5)B|(TQTE-^wr!/L`ubw q?VZk;tA}VTdP/Mpc]|׳=apRu" @hzlpnKlBݟD콞 ɡʞ.;(>(u'U1fPNBHH%9OVsGŁ!mbkgaI8ZVDUP>+RMcbZMy@v@>bv{{ZD.J`eqꦃ&ߖФZ e$KXpqq8 q͵# [LSCdW nܩB;BmGL93ݮ?oIoƭv'"9A9hy!8`m/ͧL>WroFbxnZ7ĵ'hOC` M7/|uMӝMs51i2P@_QFY!8dO{]JíeBYބP 6#*||Ty_ fzܻkU'ąI|pϨ Q{2/w-1 Pv3!Q;@1-6 ːvn_~6YYWNg ~-QX7.2}^1;.uTy%Q9A.P0j{qcb%^i ݮpLDchѵ' b۫jJo5劧t3N!u4+䭲 +0JSm@5`w.P ; )ᄗXeTaWmCg34Bǡ׹[;D1DF' ~C2B NcrLuhc2JHC;đL-$09wDUfG\{As'iyVY֡;]܍8`S' Xۈ<8 lGeu9aiqeYK zDU>ݹKc" `/Ve$֡~]77'wZf3^[ SpHaȲIX4*gvJSC/4 [-zM'+TA#ʢ(]ۗQcmZml7uNz `9֘W lLu֣p{A4`\u\!ӝzwQ5qc{ԐzXFi̼3>+[jGhqQw*pc8Q܍eU̘X*aGc敥z'{JCx 䏧A && GI_9l2wMgdm6cN=BĽ6`?_ߋnAB3cF9k5Ŕ޷\=!t=+B&AQ74"}wO,&q_a!t鹦؅3 ѭC[8)l?;qdߖUtf)j nRdAa m6TPYR36_eK{{ア{=, 7&G󒸺*1Cfݷ"^^hfŌuB㗨xL+IPU3C Z%HoACdT8 ;(Zf$Љ^=&gs.{I=OժûVyJ@;7xD۹@[sF>uCD9?nd.p'{ԧmZ/'ǯ]=D봺AM5UET}; eH=/g=g}\b endstream endobj 101 0 obj [ 100 0 R 102 0 R ] endobj 99 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 101 0 R /Contents 103 0 R >> endobj 104 0 obj 2669 endobj 106 0 obj << /Length 107 0 R /Filter /FlateDecode >> stream xSn0 +xu)ɪkѥ@ءI$-'YNbGpQD||"J({ -y|2fpi0`#D{@N\,G>Gؒے\/P>] iQCpVAӗ VNpeCy?^,g< '<ۇa` fYxcӅ(.dy|NWMsϋh2&#(R֮3|Hej \cR}JثX-֜Q#pTj&4Rm..-X9"ҜT:ykse-Tk Z5:Bw~;yp`;N{#فzQog1m[i>G]|kTfIf} endstream endobj 105 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 106 0 R >> endobj 107 0 obj 439 endobj 109 0 obj << /Length 110 0 R /Filter /FlateDecode >> stream xXݏ4߿\;N/ !PxoC󱍳=qijd)/3c{7va w'כNI0v(&\ "5qtD* HĞ4F~ؼyapi. #f}vAȃ0deK:$l!|%n{`02Xfrv%?w`qt~>$ۈQCj mM^If7(krL>i,a;O۵[-#A mQ8mӗ=#ɥ „x' ɔ`ypȨvӉ=(FD]K7zv4|D _١ 䴼omy)* yŢ¢#]"ܸ##h 8ySU!>8Ԩ{JDVYjm']Fon6?{Y].ͥ<̀TG 1A1{]ۈ_7y;&yY֨B`1葌26ӧl kG:C\3k_FZߎTѦ `-zѰ+0٤PebQN W6;u^,ڒ3 C#ڕxHGDkPV98FS s PG^;T >Z*t,lNdЭ܋'*T3GHNLHc0Ăbv8_xbkp=[GjBzfReQgtCo>f,J*zA[fƼࣜ5?Wa&ؿ}jt\L# ҖJn)׺hYBnk{GMq.IRYDЛZģ7}Ks {K[?Ξ q\W!Q\OSAdVb?vP-q]._OF(t,*aV4uAuZ>/% w4tԮ;h]zöZpM n5ZȈzN귆JEځB o<$eYYU{HSJt3iQ3<4Ӿ3Yמu77D!ρ-N1`.-Ns]QmmBǟ2B(>!zSO̓<ӝxtFO'=i\LmDžW%hg_'sqN}$L(7 +-OJd+l7c ;g)eѕ} 5$-f;+r$}~fEc`ˇAchsxo|꽍Nb2髺=/m'WGRpvq%_MBvC b`cJo"ZBL-Ƣc5\qM!*bS_nMXR_WL_~tM՞y!Z믫EPfG?qH_aYEU'Ev֣qMfPy>rq&ti$ԥ?75@֖Y6"Y", mĪdY<ұteKL~ՕGl 3G<(/1}^81L-TՕR0OŵԜ޴tIFyQiv7m U.ib?wo*yrƴn16)?AELkd%p;j|w,M7!}kfp*k(78&cC|\>@TFId;m0k+\BbNm?NR4WSowaVsn:@H@c󬿁EWƟ+KrF>KK܎4ifIEY3_FWe^f x/Uf4QXA݈(v+>K.DŭK-tt{#9z+4\fATX$6^G A(gm2J/V Q ,mT&adUYAx^iikaD7{# - D'ɩ-oC} !>?!uozK^Kaۑ!CoɊ^`8.8Ί>Vf4} gel'LJA$t~CFۊ4ϗmX[DZWyЫg#l:rA9xjclBGy2367t|YCOU~!fR 6Q| S>+#<}cP$brCSz(0$ N/{'J,$% ơG" ]8ycTz_w,?ªȪx-?C8m"Cg$ݗB5  GPGq7kun'AM7IwYUI88š s PZᝎ/WG)hu T3M@v jz6llvK-Б{aAOKpF42ZK6`R9˻Ϣx~k~KH]B t?`'6C55k$XĠ-m~g51 endstream endobj 111 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 112 0 R >> endobj 113 0 obj 3768 endobj 115 0 obj << /Length 116 0 R /Filter /FlateDecode >> stream x;]6+ (;0l6L\U._՝_HItٮE$@DER BQ;}& (3BY )v4kD4Ow]_>a]xM G6}. dLDaR¿((Dؼ??N CT>k%[7/}?,` F iN0{px5ƈ έ?5&ʃW!bj 붑ǀ&df^&ΊEycDY,Uw`JͻVBa(dF߽_(KdƐL @%+TeV1`_0O{՞aЩׇz2A+ccCrRs՜VuaSee$l1/9=lծA0Qbgt=T;2p|9szhD09g4k*.Q>V`36Xzyo=WpHaL95cŅD3HRʡN+cOI^{5Vi׮lp6!7qJѼaI*bmeKQ ` ;lPOzR;@jE ekv"$X@&٫A I \DI~:*\<,Z𚚖bXgl8 1pZzvm45/muwU4MrWsߝ:ֳZGqZ -) z}Rdu]ַT!Zj0ͽ5Pz?aAsWη`nTA`{U7,D)SVf~ލJ)d*NtNFxF'i?d⊨ԏ k]v?[ .SuCf;A+z gYTv#T dz9("jZox ) \^"a!Bt(a"VL2LtJ: DNeRF@oj-&/\j$PpjOɞ'RXeBծXG=k̈&̮Xvӥ!>N{Ҏu ^yя Tֶj3`\G̮@=]zy<֞8`Æ}U)bʙ 3!g-Uo'[aq^~9uEm?cÍFFe R! N:mqo(T20(#MfyN\! D~ c^A4:Q/a`aƽHeH F7/AfТ1=,;/ ڪxcÊe T 7Č p Ɏl]PvG{Xp$S2<(&Q7b4:\8xwG@b\800| d`uQJ-.Vhx G!C |q:կå*DU墈PF\-,Bf) M:L{ΪN'^ȦkSp#2m TxLJmkU Y*2l2LH)]W~{<zY/#n!5&.numqM?ù 3On 'CX `k/^$.DH tu\lP^sQbjK4U;wݙu!jﱩ/[Ee8)]ط]SCGPMtr=C}% .6|lgu8sUC+[E` N%v~ p v7}8l]ehtǶ~SdF4'B=jFQzȁ+!d~S8wV0UB ؍[@Q҅VHvN2N&,dϽp?jX=rzTAQc@]&'J@{z_4? BH?8r E xD 79B yH |@Ck wEqq܋8\5jczәDsc}ow2x}k[OJ e!26c[,ki`viib,8xao8FXPW1Dn_|]"h˒8XfP`| }CвX8sHCyXJLMzKS7ii~d!MiÅI&=Aa(DD  -yPG֕-"X=դ}D/wm\.H%*zÆM(bך`2I`zj~9'9[BՃ܎S%KJXiL l.F*j{S%穑 | 3 3QdȉSP?v4]'%?thJY _0Gr A7(/gqM&|fݰ/,pbU]V tER ΃?_ꧪ1.<{w0_ Um+vNp@ Z%r'/E/ITD>ZZHc^k>B e.Ԓ 7]^HkXA]< [ :XaU@I˸,ZQ B#/Uin6N8 mM6yNzcEk@̧W.#ivz&cs^?`%4_В^ʟhϴbW$ u=Q$EbxشmFx>2cni[}zڈh sƥ~2U?@Ixؚ% Ӆnn@ bvgh/^}#TYy&"f1tqF!uhg>a{w1Q_hdF{+bd<irACi$Y#=*utqw~ l,3o ~P~t{8y9iDfrfB7x2MWOo1⛃ C󔙅; ) H@,YwPo^!c))ke+:}ZمG:IT m3@4 ʼ 8&Ow}TRQ)>IM!ҷ*6/G? (JC)`s<ER͏>Kzm_Vضqh פArt]7N"2v=s(1l,L XbnwW<҇53f^VXWSԟEU}a-B<SoYb;y`q}wnO#8mJөk{;z.>$cf ܎R˟؀%`fU0Ԇ5s fe'PzKb$,%,=`MopuA7œa.Ǯۅ94ac>:` 7f"^]LX/4,1SOH.,(d乹\17+[\xs)evB1ڪ%dTeKoeL3eK QC:y{hq> *WgeQ@?HsO7H9a7ֶٕ^]Xe:о`@dv!>V ]`R-Hҗ:R8\ܯ9DttV^Nɉ?݌"x2[W_}09X0ګ98^~(ڎʨꆇ0D/K7A[Amp'2_b9_1Gˮ<|da:+2S%Cԟ3H9ہC3=G3 o-lǂfcK8)qh;= ]r&k1~]/'b2UA5!HP-V ԹרCX7FYlO^1fp1Q @s F!7c_F t1Vt> endobj 116 0 obj 4504 endobj 118 0 obj << /Length 119 0 R /Filter /FlateDecode >> stream xkܶ `Yi.nȇ8tZb#QݦMm7pf8p!}.~% 9 L7Y%)pb1 ?#t&\o9997o'?޼xQhFhiSӗlh_ ~ n|D8J$r)ˉIGdݵc-jm ?# T򨟫rNK15tuch!&|ucy(^&QG~`}0060+V^*=$-0#Wf[O]0jg>Mzlx'iݳJqH$KD[g"#Yf첶Es֩3vZti`wZϬѰK76CAGf]͡hYI|a I׫Dı]UaUk[:Zߋ)Q<_#s=E* cU'}}ম$&&X}()7 U-"DYLj]I,E8_һ@4Wln\ĵD ?D|֛'q~88 ''ޡU{aʊmE5(358Mp3j-u=6 hÄcDZ,!>v ʪG!ξ^@a6$ 3. o wE*w,74Ǻq7gݷ `}F"47xY:p {vNfkvn:v24Ɍ}sGej$]Mq#|@*(ܜh.~ A98lؚ-WHB9ΣRgA"LaxӔZq! x_L'El5,polb02~@?*a}9Wq SIQBbֽ(vs"_e=bO kٓD=?!,iLu+:|=.l^Hlree]:0_ RUC&@$zϧaBv@7Q brF1@, '1ya6OnF)~ kxSݛj"$"Vq0,DJ$ژ0T/S&f@ :0r 9((+xJbqK>#75CZY5 ys,TsT,^^ ѼUe1dRiP'0Ӆn6|QO N哆)mO2[OtD8"]}qhyf<,aW:E,h8 \_:xmܳIukya›qj[:{> j4bZ|kĠfc" T3j m L'W,d" }m;`fC|X\(!gtA-׶[!̈́[!,~MJE:fDӆeUR`N\/v11maMDlzPPJ3*y$1%i(bqа%c`ZƘiF)p@CglS:ߡS@`ΥD=EEdzw\z2Q䄆QYE J( ȗ(8Е53aeJ&;Ud3 cӽ[ yK gf7NC5Ʀ7N&}**0\x+YL\zXOf]uBto"#s2rOVXV[ay6O1\2Kڥ?Et((-3. Z!vԕL]ȌR}/?(uS}=Q]=(M#j`FΫ$\9 N~&{h1k1q-KTZ\E* `kuv w-jtIcJ ] m 3u`A8Ԍ9h1vʒQeK~ v@WI\^qKY5m( (HB؂G:7oe͢,1]'אx^UmE/y8WS+J wM\W Lα^eڭqY+HO(G*H2 #>!Y|'7. TC*@lJIG']:a:WO`( 0 >e 1 E;伶«)V?P(L eݠK /8aGلqq缹eHKXT֚ GQBOOԉ]nuRK@ r8)❉! U(&mք[|a0a^? ˥^ C=|g۴cSpJJx*DdV<-2yA?|IOxc]Z4~4y7 ɭvm ]!P2kLI!>D(iNblĽy3GϹeQOK 1.09=8 _D:$aLҴܟ} 7fe0J{rG9EO}79[s%D(*勑Go3E*Onʟƺw߂Aʣ/ru WE?1BM%;ܘ:Uf`KҴgVr:XUzW<L!MͿ endstream endobj 117 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 118 0 R >> endobj 119 0 obj 3952 endobj 121 0 obj << /Length 122 0 R /Filter /FlateDecode >> stream x\Y6~_ovodu>Dmz퇩 SԴNx~Q(AA*}v>{ҜW* v)ۅ .<o9>>4/'<<|p{T~rڗO?}w~]OVE,e^r$?^kyxD៻|]€?t'%nq?q)ˠۖ*@ m7|m|}n!xݜU6Ezg~a,Θ[?c6od^+}C>m# DilbG&AS_573/y˂9[ 'lUW7ȫT%8Ys5 ޷Nå5mT?^mg:}Gdc鰛[yaS=BH^ `ue))bHڷH,Ƕʢ)( ^>&Mp~ q&h##(;-3eo`܆შ^ݮ;tk%A z'ZP: mA7j`98to#D=?TΫjr}៝'+) 8e\bP7=e!آ8r"3=[̑=͵ƤZZ4Jy'N&"z=ʦBӱMJnIBRG>p"GhP{O@T-3ѽy+APSV9@_0x,kMGla>ɦKCUԴ`z 4uCZK_;bM grbIo, ]2b L9Gn:RJ]= Nԭ6DH+!ayHMR$2ٙ"x^`X2aQ]%  (h"J_MAb&~Rb*wM ~ 'xRs/i P~|M0K/JUԛ4;$&= fd9Z/S4Yc]g VN ʌaaOMvtŰ!H$pY\Π,5T ܖG.P}5Òzv<Ϥ@ZxQ&S F/ibzM5Lb/0E^O>1T-FLX/K Sb6c\ꢭE}C}94 #0`,6jʚ 7nt)8C |g[mc6JxiX-0zߊd~L`x,e'mt(ˌ#$;A<*tBg$QU=$Oeeha|"EqeSK-N \vu'it Z.цDt2vdm& g6!̘ &V #,Mg;VӨ 2^u׽>=emwJ[WЩ!~cщJ+q qˇb<!lA#o `՜HȯwnZa\4)?`p!Vko xc ER%G ]4,׍uyI*uG[m{C5VJ <'yB(η8XX4P@n0͸# z2 ٴu~9@Me4"^ִ8S@av}p 7y7wVm+h HLkAwvg߿ylF4nl MQ׮X_|[#< ЎP+Oz̥n#diJjcmߗ*[jC;MTfa)c P5&hMj=SҤ' @n̊uq,cnZ]!CsT;Bn%D]z1b{"IHJ? [l>gJ)CGu ÅP9˳̏j1$}&s+,X`ΐ/)^AcoD5uCZ΅aς oW}yom,m\ak@oY@7ƘU68OmG$:WqL,AwD:Gi %Dk7.1Ȍ{4?"y q Kl^N ҆2l}$LjwY`@CmOcU.\&+,7,&YdJD8ڂs8K.0דB(DWSm d!&j0^7sݍ1֑%r"y/lӂ:lFG*Z˝v9e^x:K 2n}mW]ZydI0vneEyZ4E5jS5pS*Fǜh:dU49BOv)ceSGnSIe3:nDSom.<ێfȋPfv!^k. mkh{> T! w1ÐyBmB9R$tXAuNyCBݜ%cn0XmiUv΄*ڗu rw,O>Lc<}o({I3/ }vLVXmż ,Mp elc/(V/"@?H,[jɘDAuIU~lN_bR CrCP{`ʹ2 HΝ+FwYyuq E1ڎm,0N0:AP]q8- TOԎ%tuImkMYѐ/D ~1V\d:Ŀ:mYw^gޡDG$ M]ݯWeAK% beBL1k[)/DA01`Z+HAO-gfpjϓ!{[ՏVE]6GZ[B8;^im,ZeXk '$% ܻhkA;~gDԨ1 7] -*ڙR`; q}$iq:xڎ03b!D mb&s:/]ׅN])A~_l-nCLE(4`ӳߞyV) 0(/īfڬsN*kT{`YLe#u 3VRƠ;~-A]%n;MH$/wcjFd.*OkU)>;R~а&G@Aԉ^ߦ33N҄B@7l+fe+z~,GPvmx660;Cv2i3ڵz*mzSUU$R> Ad( CU. t^;^bP{Ԇh0*M MX2U'ߩ-`hΔ! 7$}W H4#09QE^;fـ-0e\ETZ*PjpP}{['ê~b?hYszHD*+U{[!!}tqji'8F9cr"{1%(@JT(+H@YgYF7'E03eSdNr)Z\;&B4>띲Ρ)Ԭ"%VĢ^iEmJ{[l52W&#ϮPljRj⇾F1wkVq0|ǹ $}xsSta"Tg}[ $|Ԧ!)ی/d!+7bra{}ĝ* PCKœ떓K}, ;+:S-/ h=8> endobj 122 0 obj 5049 endobj 125 0 obj << /Type /Annot /Subtype /Link /Rect [ 160.538 85.505 386.813 94.505 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 124 0 R /H /I >> endobj 127 0 obj << /Type /Annot /Subtype /Link /Rect [ 386.813 85.505 425.379 94.505 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 124 0 R /H /I >> endobj 128 0 obj << /Length 129 0 R /Filter /FlateDecode >> stream x[Y6~_$UcE&zks؞-ĞF-u~A$>dm( 1B//ԏtxG^+ͼ0;yD^bDd(quwϿ@aPrްUIxOwyUꅁpp&2? D^Q(:q}?_}XF:_1_I,a`l[4A?o#px/6~78~96ھݙ`_uP~}.I 72Pcy?F4u.d8yZATE;ݪ'QtMȞ3W_ 0 8_JO"?q|ׯC`jm!,(|[߻gr'FY [1(@( Eh,>F@C˼7hQ 9 h jlpnȶ5y>ڊUw]i@8R<زA dW#QFP(M04']ttHHep>/\*pu:h#zXF]痣f5ѨF_U1` Vwи!"X{,A: -Xz `+kA2-cMn{A@JG38N3zt7V,VT,"5A'RulHMcԤ- Lpm%5,njP4;JT4W;+e2,'zhrXְSvT9LM_z/ cQ" S?O TT fJs?tcH69Xtup:VC,6閜JvV'P9m-IrUR4PK\axhdR D0b3:Y bVp%H`dJϢѼɽ g}iYj\.,s艤`_ J=0BS%YъA# BMKv6*toxbcb[IJå(V`=[dG"%JޕBB))4F6÷Le $M6B3Gɺ!h$q_w~ګv!A<Z/jv疩Fnk|@zhE%3 })2bN\(wui7$$~$TAi~D;jէG园rPkM>\A oI qa-ڰf%e[F~>=BVݭoa4q5hqI;rlN` 9s?LkY8v1rXk jw^Nh÷+YQy<agKfw ػt#80+:=Ai~?ò uюLu\$"/v*'̱0 8M$}H@vDi!THqѺ_njBtk ѴGUHx%!&ƅZW]h 8GvigڑC\͂{h2OUW(AM4-ƒ5mG0>pev= NsB0-*xOZ;*2kIcT519P,(^U7iP'8j3RsQO-q4B& xKPpN}UM;tbi6UۘvWyt0Ddi*F j,N6bx~#?.UUv۪ikK6 "Zd{Z/__k9F;%A#Ϸ =01 ]9/D/ V$uB-3% Q9*XU" HwWfer#˨)8pNp6"A#Sr+icQvrwQ\5WcaZ@?<œ>ҏ3;`PÑ% =-Y#1n>;#ЎrlyGA ~h8+fny(sH%Vd[/A.n5wt V 6y#ԍ-8π>|![;2ǩoEܩ}S =2A/dmQVC3ifu4A;YS}:]xf]访Ke(2뜄+}L4 ark2 ];.@]\DciDB]t&' #~DQMOÌi6YoyG`(d'#=LuKÊ޾@Eg/H;-J=s[ⓓ6ay $AC£6(ȰOjWFCsԌ0wJݎE^o͓ y&<6s/8L0Xvuǵz%ks2fh{_%̜ܶKO/?d0#cYaڼ[/^o= :kj0оDWLn`e"ʢ.j['$8/􃟭(0aVNrfUs0E˰dz)?MfGQ uоw0)V&"$M8wH%_Iԝ8$o`uztOǰ>%7w endstream endobj 126 0 obj [ 125 0 R 127 0 R ] endobj 123 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 126 0 R /Contents 128 0 R >> endobj 129 0 obj 4039 endobj 131 0 obj << /Length 132 0 R /Filter /FlateDecode >> stream xZY6~_3@xž$gt-vk$-x7 0HbUo;'t}{'JԹkACkjKIv5 5c5CaCPF<ؕd`Eƺ}S=cELv>ޝyz?0ԂJAECGu */<5@c[h5WEY5衩~i^ph^R n{\nzg!_=u),]PPve(W$f+b^7Cbuu@4Ŀw<;+ei&$w#+4!(Rkw2*"T B3{: OAKr3rg#M(q_L2ڃ K-% 33U {I%[\Kq櫵&H+5л )imֿ=K퍠.)k>ԟ;xC14myа4u5>=B '"Y5|e%@<Wyaw̱5\# 2G٢nJbyf\Q>5qn&g*YGYeI/:Gp*Cbk]VoLx8@ bK< ckA#= YT"Y˩F:DkI'F*y\5'>)wT5ImENFO)+9ȏYƽ iIGTLHf2i_d~L8XhBTgݐbOҗd2Z\D yof][-̷ۆW͓,Bȳ@;y-ؖ ȐyAE/*M >]y^L\jWOVמTS&^ڊyTIN*ef%Z5M#?$2,b"B &z{^+ ɾPW,~ XO3T#/:of{^_GI|k]RqMR:`~%pϊ=7 4r%qc~W%O]^lPgY 7[!QȜhRQSL[65SHe*w GA]lS@s?L-}z3b7 k!f!F!&!迲nf4#?l@,*>S-a5Wplp3`d zdwpdE]C,ga#M4kB,H-J9H"OZkZ^yצ5R |OpA5_ya=C[*rJ,6p yX3gl`t*9lAr%+;}&CYP:4=h--XP#ɳj6b[rJ,13DOktwrp{n?AeI< smc/rMݲ.3P =4Vp7+'ngO a5_ʏ/^ؗ# EbwQ3@\Վ%|} endstream endobj 130 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 131 0 R >> endobj 132 0 obj 2662 endobj 134 0 obj << /Type /Action /S /GoTo /D [133 0 R /XYZ 72.0 340.617 null] >> endobj 135 0 obj << /Type /Annot /Subtype /Link /Rect [ 334.947 468.365 448.053 477.365 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 134 0 R /H /I >> endobj 137 0 obj << /Type /Annot /Subtype /Link /Rect [ 448.053 468.365 485.879 477.365 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 134 0 R /H /I >> endobj 138 0 obj << /Length 139 0 R /Filter /FlateDecode >> stream xْܶ}ova&&QʩT,J^0cקnn 1g7W_kE>}.!q}8I,_tG#eO y"=™!H8=޼]w.γ(< OWav/NlqJ5&bas&€y&HS4}ye2Ycݵh_ @ XErz#̰l i|KAT8y-^4ҝM/Uc7LviҁF<[~Kˈ*Ds89Mp+Tb34+h rƅ"|_sOfA^Kf˂u?4j\XnV,r$I/"7eCWqFcRY]6_n%V T*iNhM _=fo"ۈ>5–9ܙd; `+'ܙ>1̑G&nkuau4[jjbΒt?`6r`{$;(f&{!lՈF:$zͰShI-([VՕ0W?dk6Cw+9;5.`xY{\M| '^wiǾ>R` L} 墕V㇀&1~5=[$u#}[K$ÌodF7r90'Qb4 an?gj~ QَI`yn0Jdu-ሄiZyfN<2AzSz^Z3=d䉗2OVSoЅ԰ZR#8auG!|0TDirQO=X0l.Y9ȁR ?.r nvc9&E6DV':6bYi0+z{rxK1<(nmFL81F%ԭܓtGxh݂ǐ1U~ (e LGAaPn5O΄فPJ30:umuch5v&Tq4<κz 8\BHVi+J/{4g&rzDTRr]$U*eGp_ endstream endobj 136 0 obj [ 135 0 R 137 0 R ] endobj 133 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 136 0 R /Contents 138 0 R >> endobj 139 0 obj 3013 endobj 124 0 obj << /Type /Action /S /GoTo /D [140 0 R /XYZ 72.0 720.0 null] >> endobj 141 0 obj << /Type /Action /S /GoTo /D [133 0 R /XYZ 72.0 720.0 null] >> endobj 142 0 obj << /Type /Annot /Subtype /Link /Rect [ 497.962 450.438 539.999 459.438 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 141 0 R /H /I >> endobj 144 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 438.558 125.9 447.438 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 141 0 R /H /I >> endobj 145 0 obj << /Type /Annot /Subtype /Link /Rect [ 125.9 438.438 163.703 447.438 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 141 0 R /H /I >> endobj 146 0 obj << /Type /Annot /Subtype /Link /Rect [ 295.01 426.438 384.99 435.438 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 93 0 R /H /I >> endobj 147 0 obj << /Type /Annot /Subtype /Link /Rect [ 384.99 426.438 421.37 435.438 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 93 0 R /H /I >> endobj 148 0 obj << /Length 149 0 R /Filter /FlateDecode >> stream xْܶ}oV4^ت*Rr!v6_nf'k=@F(1Rp"rr҄gdO:#- ܭ妻7?ք $y_Ο>:#Go"'I.aO~}T]M6?IFq3i&_$g?d)=%ﱚ08SkhAcA4<@PQ$YLp?d /"YA8M B O yN#y={S5yݴ.#V$(c06}G'/A @ןu54qj)ǀv/xX~UXPL ymUMa`¥f%JW(Hay5%lˢz5xjBg%ORljTvw{_\f  %F֛^[=u쟗Aj[=3%h C'``d%'9hD"YS%ԕ6ܿ"5y1ʙ(V>gp FսN|8{([HD~.Ĥ=WX mk;{Lrhm668%3\-orTjeh*Bc<>><Ќ^ tEjPM@;hcfIV& +JyaS+h"9c2л | neu3Nc3TpzR1Jf0A-,jimY^]~zvKܕojq3$e$"s/_2! *M\fbr<[e𒅀fγ㌰u'+{Oh '0)dDS-ܬrb%ش.׵H(2b6)5\yؖ^fBzMfaV_#\~ $ܙuA9{-wULA`ľ}a `'it}g`yZ7 kVI%~HT?odx <3C,3UI+=o]bU"LDhhL?غk̅C7AΝ#*o0u4 ìP6#uSFvx=S`&X\|8W>1RID(hҏ{MmCf4c.[>j@2,"(Op/כ'=$عw>i:!-aYv9IɸhSMqrO>U7tdCc"VCҳ 9 cOLTfXh;}d ]A57r,ٟW~{?@|Ojazrԕf_!D}ꇏGӈ[ j%/yQ|l/)`D1 UӎHH! +>.ؾ7^pm>VwCL~u,}:<",AB+, YatTG0=/p {_.=UVݑFS˳xR}A!S'D+r4DN7WX2G'C^R㨦~@:YE27pǣbySXONL D 1Wy-Av߽F`! o+ LFsaL!NBq(Rpk^"mUUU{Ttr%.6^|5ڄd^ ~5=^|n55L:z,%_ІB\U0}>!?UY!5фǝ "a#5.gwd &]3dӬ HA/ qU*D;ТbV>]κߍqןSH,Bsqgiv \Gե0,}'{ITi60iEvbIq(., 9=[S. v,.$&Έ endstream endobj 143 0 obj [ 142 0 R 144 0 R 145 0 R 146 0 R 147 0 R ] endobj 140 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 143 0 R /Contents 148 0 R >> endobj 149 0 obj 2872 endobj 151 0 obj << /Length 152 0 R /Filter /FlateDecode >> stream xZKܸ ϯ-㪱VϖgSNj׵a֎mQ=ɯHR|.7>$r}* HtG|YA+q > wQϻ~&]tݝiGo|]Gow?q<XEyY<(4$xj)bnM'|42'B/ ,ZxkL[uj ߛx?S!8aIzsdVQ&Ip ASY|ڹ ~l;p, "d9vIo`qpv$eݯWs>90ݫjN{:ƭ,'.irC|rGGGC q==ARsi =4,jF0$9=8,PtET ~~㘏'NsG@swY$Wo82\#!Yy"{s=0JEݕLwo (C2$ 5 ^hĀN'mI*9!sObK1(P1zgFdk՗PHjBNJ{ fw t-G9ȉD@@ێNAR-Z*N9m~ļ-%Bm{PJ*_NOr*t[X/1Mk6B*5)w麓`ZeM;Geu̲0\~l$p'0g0ZGJ2uB7ܞ1\ !A7##eC;臍Jkј=c(az 7']qMj15Ȣ}s$gIvǼp`>Mxb*m*Jt!8 sh.#ږ\gDg3~viBDiWg۵3I(̋2*E]GQT#z_Dp~r|}`&XGԸ\kdZ09[%&⎗l.,yoVTSlnI3z:ֺą.MUo-.$01aҍ4O*CCt؀{~!-ʰ(wUYl?Ӎ/ŋ%6ɇÆs|`ދW2Rq#.Q4 2ݶz3j2'mޏ=tF=zEh4hLElޒ#ӍƫDGxFoIP~SUOO 0I8MLJWs? 鮵ѝ:tmm󛕦( t5QURts^ƸJn#İnD:^"&A 15]HЭN~Ax^ T i]AepH4(өW)ίZ:CZsY6io"mR+ZhO4[LZYfB>nNɚ,%ꓬx$:fylTH|)]+YIQC9c$)z] {\r{.yDH~e;&(cås\ QD-Jd!-"N"W+/t葼fH3$ј\h=4^oɛ>*z[-u$_ 8=)l]1}ϖ5ΣR-E3B%ݭo ҖylyD3!> endobj 152 0 obj 3384 endobj 154 0 obj << /Length 155 0 R /Filter /FlateDecode >> stream xVYD~()bO>bE- ZixXwbajݾ-OCf$w}]WUEAPXO0྆<0 kr5Z~N )bp3k?Xjz|'۝8ȣw [P 9+E\g2'd}l3ѓ %ӝ|@ۀb\wM?Deǧ{Adb:@g;+lEېBgk>(;N/SV}%EGJ=a UQe2qi* s!@)E)TC֓t fZE`W Ub9Χ>jhֱ"`SPX%7R]Y.E-^#-kbhXWy4jxs8gO0 8]Bvg&m9 ڋxR٪7_׾7ҁjTSQnzAV KH_cɌZ/rhE<^\nMF$ވLQ)EpV$㴯.ei&Zo@ sv%jT)mUWj,U"4W1qBoes÷8S8]isPCl22a\ftOG5#5u" c࿦e61NgQ@KeuXd3>[s`>yd˸E3L"tȢ*%.߀N*eߠFݼY|1͔YY‡ݻ_1`۹2G뒙n1Z__1C69dzxؠh}֟/3 clw$Z5_q:(*ތZx endstream endobj 153 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 154 0 R >> endobj 155 0 obj 972 endobj 157 0 obj << /Length 158 0 R /Filter /FlateDecode >> stream xrͻ ƒIݜ؛r*UfUThϐ2ɑV4^ )nՠAݍ~"nO^2=](M h@'h~"ЯWA%ݯ~>Hwq)*e'9;\ĊfHGzwxtnQ#eofnƩM;Fk#0TW9^x|oׁٗA. d ۡn{q F&\o(xE~W/do?SEs I)C44gsB-/?|")7xfHRo+a?.rrZi)~?K=q|qyIe2o0; b׍څ:szד05 Q3޷c )d9dɌ2/zZ<m &ּ:.'D1?aXb9!'҄f+pGi ilXmsy=›muol^9 㬤^br5ouJX@pN%IwanUƣ(G ;[o;nJK"q}蹨1Z8qcSpC=DϢu]=ʪzsn\_"uCLo[3=1WA&2yPaO lARd3ԵZOzSnϽEeH"0|vI^@TgvǶ:LČȅHjM|IkJՒM>{ }P_+3RX:X[!@٩]D5$y6*DnmD%,!/hLT)d5ښ iHݍ 4v)Nx6@Y6 #iy$o`qX9/3 drFV_TۨnTNλZFA-$XwBI>CUڍZ7 9Xj-p%Qy&,5 NBsD8Г2 P_ pEOJ2r8`ܩ3D suu}k/&h:u3iXkdB^ݥrK"Ki}aL,øyT?r\H8²lE@CdqW JPJЛiy6l1֌ |r"P?o ȵ2˻:)ŮLr,)R~XoBg}zCAfDY]R۟ }]9'w,uJ6CG=5+[aJTnͰ,[$$#3Rb`I0 d*tMmDЃ"T7^Q> 9n ||cۍku l&5/NqGc98+tn- _k̠`"+ z͡L#bqHLuXþCviB1Vp["4 fpm* d.hWy@b֢keݨ37v7Bf?,Rֆ#Cl9fK/7T@Ԭ}^ƻ=um+?/qO]yBk*I]ĹĄAܠ.Ma^mZ$8gP$ĦC;&Ѧvb!^R7̺ 3;a ]Ff֎fTS>a_r AD{nQ5!ʁ fGNgfr+GMWhO|F9~trl [m'=W\+.7~͵͸9scFgmPQyR!j3+/5]MvzDkk %bP?/PDTigBF&UZBdHϩQD' w03sPB } =Z)/5AB7 Υ?/Lx endstream endobj 156 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 157 0 R >> endobj 158 0 obj 3127 endobj 160 0 obj << /Type /Action /S /GoTo /D [156 0 R /XYZ 72.0 197.346 null] >> endobj 161 0 obj << /Type /Annot /Subtype /Link /Rect [ 299.614 431.318 491.36 440.318 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 160 0 R /H /I >> endobj 163 0 obj << /Type /Annot /Subtype /Link /Rect [ 491.36 431.318 528.338 440.318 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 160 0 R /H /I >> endobj 164 0 obj << /Length 165 0 R /Filter /FlateDecode >> stream x˒ܶ>_WU+.&uHxSN(*,0$f1_"8}h_+YnBw| ʟ4H>kOҀ& #/IC4Zr@_큒~>ˁ.)揇 ~@ꠢS}#:n[0DPpoֿ֞hAtۏ9%_1)y:#:#amI~:!ۂՎ(QqpÛljfyT!oK]=W%wT6V]k]G04}ގ h e#aTn[ĵatu_0ܗ'xBH܋>P4,J+)t_D͋6c׬h kIс˪2F~l OKH7^ne$^mq.sve:HMg##xNK$/x!g/v hY,O.u/íW˪l}/#J-ˌ:F~_x{ Ye]o ( EFCceYI-}EAhOwlX͙pP&,g>}$yԣ8}ఏBʱcͷY.po,}g^eW\eݰko&1x -MuDsjtVW'<8(O' /]2թ*X] xSB2ZZ,b0--e$-xj訳Zc K ljO^: 8Y#wA5j{VƐe]7 SQR ^cO_6}pa^$xC!gW&Z1QaF ݐ$#+50h<[*9Z"An ͧ' 8K/CTO OLMh?L2u( kzH9qXlc,&V,*zpUv,vE,\aF Bh̅;R{mBQer7aB++{*췣O>tބl"&٦S0 ,yGSN|_׵fU,Ufc#Y0ԏ(ۆn6?M'‘2J#?^|9X[Ă`c;32doB81 IvZq<;6FM Uc򦂥LT:[tQ0pJ6W+WJgoBahgc=~CAW EkWE-5)vōC7-KchjAP|دa%aSsvZC܎kϧE5]qxD'mktBh Sb֒4^#f!&^p} 63/r]|Ȁ")fQ #3&>ɺsP`zc~9(&0=*0 {K⬸l/~TʑY^$׍lS kjjAg3hM^C> _2(zP}0([5{-D^A[ThAGaGnU,T8TDR~B?j1{01/ =7#/0_ OZ);nEj3!F*޼ *(k/P~5c](Mia۫nrs.> endstream endobj 162 0 obj [ 161 0 R 163 0 R ] endobj 159 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 162 0 R /Contents 164 0 R >> endobj 165 0 obj 2156 endobj 167 0 obj << /Length 168 0 R /Filter /FlateDecode >> stream xXr6+pWihKIı|%B"S\d4Drخ&zE#.~$ɮYHGdE1BǏHC$HWYW@IW%|qArѲ߸n%ՏCDۂw/=mwKjVJK> endobj 168 0 obj 1415 endobj 170 0 obj << /Length 171 0 R /Filter /FlateDecode >> stream xYI۸W6}雗xxܶ;qf4I\Z} lMNxk| P(T_UA_7>VIQ0]q1jnǨF`ZG }ٴX"&7ޥ89棳] B?h t^~ K}#㸹C=jm֖">n[[Cͫ͋1=t_sЃ A= w/MX{LgR=y(q%ˮmɾ}5%Ej+Pb/=NմD5F+TH ؁R4(`2K~XhbRI8kno2Iq'`L{?>o{rUnP$?CYB5  {5s#gv{_v`AG wO V֬=^Sgx 8wh Q8lmrj mk^G'.xӃm KqY2pWw g b$0Xt>T*8LWp99AK֐@s8ji 8ϰ0bӾ?~|tڍ8tFlyEu.l]b4If7 U@كq6{`-(X_L u[,M-LW RxOQFn3H? > \;y$Rb\~P. IɃy@UB} E1iS%-x U QO+Cm!ť2V'9dá\z9WbgII*&A[ M6. a&*0_VI%8| URQV+eƸ<Qg!,q+zmvB|+#N0|qY{Y:WgjNe>ǑđDp_#oo:~ ɝ.8^ o%k{nRhyE2N|mR iJ4 RGIvդS: ʶOJGҎ$n+UP+YVߙ`Kwn'yfL\UPÝ'gpGW(.,uw\赑Lz* 6_?)-*,M>'RqP+HuY# aCtl m v'*o;XX .:f TaUU4UFi."ُzC ZO=MR 5e96xE VfG _'Kݗ"v P+vgv *Q"HNkg2q^fW_\֎=/'u g TMJܯCCB\iȝi*w^rچe$TEV=&$dμ\h2m4 + lri̋ҫX{EI\t$N]HaboߠC~D2!Hc ݢ%G4L<`<2?b2ȞalfW{ۃ9N4&[)L (ok3® EoeVW4w>X> endobj 171 0 obj 2600 endobj 173 0 obj << /Length 174 0 R /Filter /FlateDecode >> stream x˒6>_=yR5IxM*Nxj}HrHHbL2Iy[|ȩ=dT 4FwCB FG IHjT0,!G ip7`f$. |H )9[od s* DqQyBrcH~U4ԍb?BA/mJC_}HrHOQC%*G|)o|!04rVZoV̊0a>sK4vz-l<xm#ElTP9aXElvؒxDŜf#Z{S$lj˲`q<'G:0cO4@'ϳAkwXY!JR'x7F:!ؤ)-bTAZ܊6isSFsr*P4ˁxNڭFJq`MS;c5j'à>Շ\#tD,Mh)Xӆz[7x]\ ȄђU| XJT-xY>Q#[{@p<эv6*"TzQQ pL^Bx/Sns%=[vk;:Sݝf!D!U-#f !ڷcsW)$}bp),v㗨4dzرYÀM4s[=X~!BUA$9 }#V4 Ar+d}sV/0 2z?u2@ N )]T3N( L؉蚺ҋ0U.J_ן4O/>k<6:J!󶁛of9ޖ]18v!eANSr㡫U.A͉COd! Gɀtꆫ_[򦹚I}=:41gbx^Sc^wd (y'VZnO0Wb~fx 3!nXi>'e]1A(4<[ ywb QK̖ o2 ԰p|njk(WϯNžxә<7\1 Juaa/^ŨT_#4Ɋ $:aLW\ݨ0p{  p ~X+mhҰ9vod IM7$5M$T06gDPMφ,(0-B;`yU5%EZv h=H}?L,U#hZoo&ҝ{ 吝xTҌ7;sˈ`0,@@$r<#e@pM!DJOxN}G Dw_/,R7S\AɭÜyYQ^Y!K'"Ub{c!U8%EA;Ξ] K+tudH7 d%.5>X,kah*i2'TêSW9Ϧ4< }}} N{~%8\%FZ v%[Ϝ_; 9@JγGY +nvrԭtnL]&IB]:iWN ;^R >mq)wvp,lg ̗ D%'^y/h'+ endstream endobj 172 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 173 0 R >> endobj 174 0 obj 3288 endobj 176 0 obj << /Length 177 0 R /Filter /FlateDecode >> stream xZY6~_8Û&>Nʼn홬S"2!oٗ* *"!]ɟbpE"R$5+IqFD, ?8 =|\*./G|_}wwیD!9 Kf:H'V31Y7w#m(?hQɠW>_(G4xA`6L[kAߋzNbHGlEee, ϴmxsOv5Ȟ>2e!*›^J:v-y-ۚ}d) 0L|zQfK$ѳM3"C˔RVbM.D2#D|Պ5RՉh/  /BN} ;ђlE'v=w8DP; Kr:+gnꚼ+xZޟ }뻵e|x޳irjf /^ a%A7v7x@TSJ`XӍ/,6v6Sڜ/iS]7e=TZ8i(cQ1B^t<֞Y1zJ,17"ЙɌ4o-,,e9=Sc$q>1.&'*@_lܑ` ={=XRg<g0d :2H)OrX9aX-s\l|QHdܼ~fuM%N]? i"9VQy{uGVzpk.t\ 4݅2fkX N1DzF7~p=#o{(P#)țiPѴ='Q4YDIŎXu/n ew\l Afǟ )і jyVUŘRS˫ jO@M*83uc#w 267 ' ޞP[TX,(*#EMp T>@5Ҷ0A#znPu ҆XS(6 Q@- BdӇ{~in0#@f/l1 wuQypxQ ԢWdF[uW2/AߓV⁋H&m4ZP@}8}189T"]X[IG5 vBޗKCG Q/z7 ޝ͓!OW[ȡ! XDɑA%:ɄASB0v8* zI~X9*0F<5'﵉OPz82X!i.YCHtE }";ZC S#;,5T;BI}y7:FWޝ K Ad2J ^gZmT&HSxHǝ>~/Eeߡ#:8/e7#ˌ> xb.%^O4سoA$Tk Inv ^G *q:``Tog).'؋ycV.ȤgǨy o^yfih#ݬAf&;տΜ$!n> 9z>Ǜi-^ endstream endobj 175 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 176 0 R >> endobj 177 0 obj 2980 endobj 179 0 obj << /Type /Action /S /GoTo /D [92 0 R /XYZ 72.0 585.874 null] >> endobj 180 0 obj << /Type /Annot /Subtype /Link /Rect [ 378.272 673.5 539.999 682.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 179 0 R /H /I >> endobj 182 0 obj << /Type /Annot /Subtype /Link /Rect [ 100.0 661.5 136.11 670.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 179 0 R /H /I >> endobj 183 0 obj << /Type /Annot /Subtype /Link /Rect [ 136.11 661.5 167.49 670.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 179 0 R /H /I >> endobj 184 0 obj << /Length 185 0 R /Filter /FlateDecode >> stream x;ْ6r|M>Mqi[ T7,. dHF#H$ׇ8ߓSI?=JmqP&AZPS^q&yp ΃Vb@b!8??tQ;t6A=93Ïl}G?=?|1(x>xeuY]UTa$x>'J1I=xRͦ0QdR, 2Yj?-ȼ ڦ&q "s!ҀZ]ްqkС(Z6gm,VzWl(x/mѓxS8]zq+KbrڡayKAK#ѐ&t,:4 t49tbe48 Qt6]x'y}N1-;eBѷXSqO<܃Vf[ѽ\%FE#b$+[ӷ/7"* ENg/"}Y,ig]5[7T;%Bf~3vjEB-GP}A/ )^-pzk 9pg1 b8([x̀X*.!]=H4uc{ B~>y8Pq2Y<U÷{ETiy'*b CeR,:"deYiA߀ՒSBp#Kg1Ll&%3V-'6WW61Z%2.@3;,1cFհn Ҫ oP(C>uS@dڋGBW`9+_]:sɇuEm<@+VgJ*WrVĴrZEF̨sA{Ⰲ]v;(sa;?d'd(eDM[BtSR x,EXbԾJ0/vX=7scnhoC4 ~DDn@=gw)'FJh4S9 9y`@ #f"n "k 2gfmyڣ1p"+;Y^m|=MC{KKiB9hhGk i5[cGܤd zFV4rm1g W٭۸" 37<3u$&.aÊ^Z tQ]@Oh/%)"VV{|%EƱdenoŨd &gXRI)x#(0*JYɦMA qR /4elm=ߌ!f lv Ɗ^Ro`r.<\1z_H",uU#kx"J,GlTH3x=:KI{F*.iWÙ moEPad&({:8<#o<9kWIDnG&# } ~z*Rqx UUҸ% KLWaY-P,#f51bt1o~ G9f"+t1ԋ3:mU ȿ8+حYXGo 8 H8?S[N(0v~w$MD#uZy ?mBcL={I#t\'[=1tAL(5̙<=r娵O5{z_rYUaZQ|\F"Xs,cyOs3}lڎĉ{oB|0467 ;ߊfn{ W!-06R-)S, V"n?Fj6*8J:wSOI^da߳\W<bVhþ4 `~0>:2b$zfū"%~e`ƐN _P|c'L=Fߨm8Fl0gVM-,א)LSBVż Wy{m`bÀxmppk .Wu#M0Ugym޿!* })t1ѷЗ%ӗZ7pߖYX{ .Mvp%I5:#elߴ~bZ(M|[~%Qfz}hEqz GVpٷR{foM )cY;T.[?>7_#a endstream endobj 181 0 obj [ 180 0 R 182 0 R 183 0 R ] endobj 178 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 181 0 R /Contents 184 0 R >> endobj 185 0 obj 4187 endobj 187 0 obj << /Length 188 0 R /Filter /FlateDecode >> stream xَ6}o Ӳ[۳q`o| ,`KiՒc[Ţ$vcc͢b/Wo?apEq: 0YL}*c#E0س߮+?alp/ѩ/?fW?_=n[q,\'?>\Fl|;n+J-g?1`gՁ. r5KАE> *× "taƊ ulE<{MaȆ?ӪQ"g˴amZY2Λ `{WfE+<v;YG5!q]S_b(XQț$U;P_rydEMonΊEZ[FDd6օDANlH&x׶"Rʼn}6Ng y4,e"lqf/[) i*SܙgZԧki 031/N9kw/~G&OHsTwh,rL ,b{ϣ/xoeS=+@}Fhp/D 0"9HG OgYdV]2Q^ݾ|jwB+ߛۭ2e*[seАAպHuowV .Dp @.DcÅ0 O̳7v?B, QV)E`xA^=}#VZhxw|;-Wo%؁duWxb{'CfP?e63 rd]_ǁG8 ֌b~Fp\à{c6ht&JJc& !+TCib&P 3!IKfEzvab@wB~*g<:=:ܛ ! gwdT" nƩ-`2\~ƸkK^IE $gt~X'JQ`97J)3 ڎL7Sux|EmU j59(lf9}yx8ܤEFQe㬬/}fg[[\XЌݰ2AJ>Lm^ uwW4b'[hfu@vuy2 YC;׻^1ݪ]EDX;qtH% 4``,u!ZwW9$]ˏu`Dz,것A]m*)E5A9dhmnZ Rzy0t~Ŷ@Y-wu%*eB4@OC/1F%CTh r194M_2XϞQ{__=.Pq}rkʫl49km˻(ud͜j Öz-9oOtX0K)Z0 E'wF*=]Oځ>>IW{=Y4ʯQP0"Wćjt#(0DNՙ:@l8@cޠa?wtxzKkL=lWJ8Ta+JֻȳԿ_ i endstream endobj 186 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 187 0 R >> endobj 188 0 obj 3192 endobj 190 0 obj << /Length 191 0 R /Filter /FlateDecode >> stream xْ6}okWysJ|dI qM I2@AyƩR74}74+KU?r%Jrh8ZlGO`rѷ7(Z{o͗7_I#G['"^4eYiTѯ/>VQF?_piyxP+3?'JgRQa`DZ5Ѡ>]=G8tu!ř!$|UZĽ/lFah(o#SOgWzc,VFcQ-Q8 RL~d5EN 0F۾mS=FNG|ꇚ,YKI4-0O2![~Q;E]?E3d7g0s'%³k,}^Z'Rngoh=sCim±<;1yq'b@'#|5ih'gxDT'$9Z}:0$yFNi Gf~wʬ|VGC@^PmЀqs^l:ۢU$Ki/-"ݪ\8!-ڝM}O60`@h릜AڭoaюvLlx!vH*(Z\SH{ IzU{yyj<fTWl؜G F}̘nO'#mBe833c*|JU*g卐 yQ:rv[(uoW`+ٜZqQ\H@ ~|V75O;c4-2x|MBðo1g%JLS"+ٶqNdy4*% r`HyHtA+,,O*q81 b֕R"KC rq\^$<Ƀ|s=q载:UgI|L>lZFLm#xjjoՀW5<lVIKc6(0@E(s^^j>Mj9\ 9\py_|…f^`ԊNJ4jq0uRaI`Xwr4ccILR^ew|_Qۉf )-Uk^heWk#G˯N@4ٮ5tc?҈kWiL9!|j^t؊}fM'G_s\ߜЅm^f$TD5ίeɀc Lr[I xƇBrxY=|>ӘqNϊ^ emϘ+{̀ihJtQ d{Ft̠T /Hv\BWҭLjjx\7K/j1㶫J3'et UͰļDY[kW Jz.2tz>")徽=`ຝ1O,gD*RbE/YK:w NVy\AB&y£>g>H$P<@r28?7r&^;]Z=l֖3MfHfZAU<B~.ܘ}*x%l7NY$9$ JD,o-nZaNKg9ZNu_\}LyvCs@:|؈U M\C,!l9?\CuSasИS;olMP0, |zu%p@ZO[\,@cg~sPr0tOr^?cQbLƙ}hӶPb:N ߼u('ɠd٭#9['9OY/BEZ<7P퓬-zAzZyA]'P$_~'9CK|4si_8ՋR"ѽb$& endstream endobj 189 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 190 0 R >> endobj 191 0 obj 3175 endobj 193 0 obj << /URI (http://delphi.about.com/) /S /URI >> endobj 194 0 obj << /Type /Annot /Subtype /Link /Rect [ 359.15 295.375 455.27 304.375 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 193 0 R /H /I >> endobj 196 0 obj << /Type /Annot /Subtype /Link /Rect [ 321.485 190.125 417.605 199.125 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 193 0 R /H /I >> endobj 197 0 obj << /Length 198 0 R /Filter /FlateDecode >> stream xr6REjOZ;N98~h+U!1CD| 5~6 3䬽t7~"`>wiȲ3Y"RbA  +(-?8~Q_짋?9a?eg&x_.g?\ܾNXೇ8(NtqA+6PW/~|8& 5F}!]{f>$#}ҀV~Q=k?V*XG@6G!Jήwvl=zܱ% k֍ |/Mbgާ0LN >y슭e'TɬMf;Y;):z V}0~($ZdB)={4ēWV!X~к]1BFQ :۞# .Y[>Ⱦ 0(ep\7(/ 3.ӀeS= B" O| Qn9NCY{wflm]b|}ۂz0OJ^PN~azٓ&hBU\,΀W ^1HQvjD(+v %N}> $ 9ȆMVr_{ZXY6Mm6[횮R/e%{[S#ZN}1Z };B~#x7qñǫ^h ΏkE5+L$1V2^p> D*'ܚt@2p 4cj&M[:'C>(L!»W'p~tj\N\hF3ƍnjB֏?sAJ(踋د<&47lk+}_n=Ah %:K%WkNs$n6S($ս+5ۿDf?ajs@P'?榇~|bD&\vZ;p孿!ǽj(BƄHS%mI| O~?]9?:!KajmGWCK":"樴XbX›Zۯ)Ge S.QmNEElymUB%c?zЅN plzff0X@XpAج48Gt';ՏX݈ji?Z  2KY9 -\9%XM8i> Jn I6%d`U3[}!{|fle`%ӕ +(b-,.1K;֜ P("`|"jSADshMx%=쀬r̕.(vX)R z5mϲ U"_pUǮڜpAU `來fۮyeϛ`PKLK,{^hoYŎnŞH^jOyB#ƫm=Ҁi5p#kM 5𽰔wo,XԀ[[5PȬlj #ٱ=CBCp J^(bȂfJoB/뛗?@d4&jv lgn( 5jj_{O|/3?Q !JT.E3Eǭ0 W,p2uVfgw7TLJ/]:9@[%4pHbG^dn!n:Y{@ >Bz^ [x hdn[U~vP%>ѡa׆(Q;gH) &x&":P|mJ;H.qY 8ʼvG\ qt !n!l:MA,Qywy&=b } L&5h_x~qxBk&[m ceg)xBSf[C3g $S e)5^;+_MBL }펷ٝA(`r&9$%K4$OGnaXD'SHf4XDpW"l,RLTFPL $J!0|ΩhKAg n55עDdNK(--~tш}]CQͮ?NxIOظ' f M'蔏D!Sf 10Uxex8珁V0ٿG8-7ĽbVx&Ʌ=VZAp(|( JXwXBw;WwB5kyr>Wڤ7`cJ?]'>=;ض-7>,/2l:1}o^vi9gm3?ң6 ̗D@Nxq|₾iJ j^)AJ_ v;ݘf{i U}_ endstream endobj 195 0 obj [ 194 0 R 196 0 R ] endobj 192 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 195 0 R /Contents 197 0 R >> endobj 198 0 obj 2854 endobj 200 0 obj << /Length 201 0 R /Filter /FlateDecode >> stream xkܶ ~hzqE .v= DYz}ܕt>q73"<|Co՟`h|42Ԓu jժ`3"jᦿ!o7+D`\ӛy~~(ADE% 2s!qЀbVZkib@ju;Z twQ>γ(8g,ʞqnlNZ b<#Q0j0m˪abIj^1AqiA4 ۩zbct=X-[N܁m# c aM?:3M-mp/]6SeŁCeN5y nZRre?r=E;rGe3xWVՀSE|#D/ LRvOӧ{2R!m2bG BUF٢2\`irxٟlvBO JyR[1qP5 ;גz-F3+[(TV !\?XPB-|T7kD0\HIzuGƒeԬK"XGcW޿}n=&NOTqeFvԋGlYlJuVb),YMNիWo(GP^ech:ͺSA'hgiA(76A4rPddtY>EeRoWg OuúΞ;# #$YW`ZN+{6 ZWvC#Zd%PmNbUY,1=I飪{rI#geΒgZ&"K=urI$DɊH6:u$A" /Mn?2+6d\r L6S%8@g4S=65%sXwF$o%͘Lq.CDXD+~۫IYJ]n$8;bM;['he9f.. `H;y)"̤Z݅Yl_BeW19K15Es DWfͫ*q1dK(q呪C[y@jM5o]t" EI4'ي\'goe(x6 i$ua;qNK6,fY[١ofӍӋk0;5~g`i>ɮ7ʼnksi1qs ڶ_9ٞ)N8WuHw};$"8聬Sٴ+ja/ׯ]<{svjʛƆڧ+Jb ((dY_-)=Z̔W W6 (l$3TNMQðGXU~?u R6aM|W rfN)xO6T~*SgĶf有=~n~qRF<#Rp}Lc.w܁v̲{ȇ`6]Zal& ֏a7AhOTfVyMNvzm݁`[:o>C:^[oʛN}9V+G7ئ.!Z09̠W/Ҁ5]ˇA]E^SaOVRb馳7/V |b"^^bW (D g؏m <PvW,2a*S/xT7v>#^-_Ou6}D:e3z *Vxyϧ*scHLpV%3/MYȎcs!N@5ӄ^>)`Cp9ًkQ>m=s͊3X~ңHW2x: On+GshUs;«'HiXt2~+(IJ仃2=Q2hK@+<Q?Lk~J%tNbAI<'/ 6 4@Npf,ҕF &XLw{ j˵At*7`%^8x~IKb=DZ_4> endobj 201 0 obj 2673 endobj 203 0 obj << /Type /Action /S /GoTo /D [199 0 R /XYZ 72.0 720.0 null] >> endobj 204 0 obj << /Type /Annot /Subtype /Link /Rect [ 405.397 573.15 539.999 582.15 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 203 0 R /H /I >> endobj 206 0 obj << /Type /Annot /Subtype /Link /Rect [ 100.0 561.27 122.78 570.15 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 203 0 R /H /I >> endobj 207 0 obj << /Type /Annot /Subtype /Link /Rect [ 122.78 561.15 159.16 570.15 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 203 0 R /H /I >> endobj 208 0 obj << /Length 209 0 R /Filter /FlateDecode >> stream xYKs6ϯ-vD_㛜XN%){%W6Dbf& )~hV'ok4~Ać?'݇$vFZ@Ґd$ "/IEqLJe i?}W|dA|Xj{I1Qb,&Gý/$?xYo?ϻ ?hYˠ>ӎ#r n@4j6 8D}wSߨZ\Fw=|; R /lz;:{[ s_a63Wr=%axyK ') jZu>ZԊ`=H]rVuE,HE{8 ܺ]k[gџ,(o-;{vM )E;oBRdiS+DL̑756,[.EmFKap^鯬-=7Sj@~-jQj6ւh9/\C'vZ3y r蛡'Q5{ɫ lIl> .pYPd1N C𴛻ɻ8|áIJ4,Q.5g7xޞG]| i~lx[N3l1OMqwnƋj-Į%MD u6Em}]XY=1Q2,mB2#Y*lOa=]cإNb,O<i꩐&Xʣ fʶ)C%'֑Gk/m'+N?vѣKRe${ I9' ifl8 !ȃײV.;~h@[92R+B (Ҕ[[fS2RSetEۦSVﯖ%K,h<+~i-+ HouheeP+΀"|?8}/UY48eE'>zw M'KZ&^\>lz;+;zwC6Tu!bDUºc6{6S8L7rcD0f0a-l1O K􁵥⹡:phʅAm4ȳʂh[n](%+!B}]t{^ ӁNhl804o[Tm)1 y]}^p|>QWA}+%ՓC7FxlڕV,VPhKҫʥ$$q𲬏Y @~W/3VP'C8^so ݫ&YFy1}䛳1<&dXYp Rxh&ʘ#0EF7</fW#.?8ebpx-^ҟ(E`8> ʤƴIT|:REf2Z[ GpNkb]hyN"/Z}Ct.-P:2ԝ/wA-ϮmhBey9xd+:qC\KS^=)*zA\LJ3~W& "f|7Al:GWG~/6Aٶ4Z8Z;Q7/^gS(=eN^{f|XD+6p%.dy?@֏N};^a^(c'U(&[2\8q4Aq|_?2>&vhX,H["նb>ʆ%h]#,.fe}bZכعd0apu > ԍܴ> r`^^=񩋴{n1o?:ģqi:&~aoaw +Gs̮D\u <_hY"TVOJWwiE mfF_we|w_7c)E9/w-0 endstream endobj 205 0 obj [ 204 0 R 206 0 R 207 0 R ] endobj 202 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 205 0 R /Contents 208 0 R >> endobj 209 0 obj 2081 endobj 211 0 obj << /Length 212 0 R /Filter /FlateDecode >> stream xXK6W Q-m6n99m1+Z>$z4 p^i ?I<^Eablpjd. ~& Jil|X,.*N+ZbAEE%s+NF*GKՆhRG÷hne>m'p4k.J_|A?7g.EQ/p;( 0M|ߏc}mK>_=w{⸠ "ח])R--z`(5E-~ew]OmqLxGYc` YbABE9H 8*,,ޗ; ąi:nsNZ!տmN4PFUn' w]ڶ`[5!kg ĂO$A}xxW?y9(8,jdLL`(#@ۙ8M\53-_54e BY7 TdÔm'B dŚ#QyD#{b5Y .Kl"In;GPRKf}**1 bD%>]B]-hX*w i-$sF(Fi ~<2hEU-\(u(w]uYNjv&etɚ&w݊2Gv fm˸sj붢w?'U%y.2r Y.HP6I,<z鵰 hm3_[Ɓ( }? ӅkG%E{50>v(A߽UC KP[])+in\`v˸[7h|7@k/w-&H먃νȿ#I2*RtI9м0yÝ$ %@0߰0 FP9zu#v"wv*!h3(!~$j]&@1ނv8R%;zjd:aM».#+1wcj4,[;.-5py:GZ&`*X@y%\ðl(/1ī\e4}Y 9Hf.a0m/}q7L0.t!a7 -etTBv\bߥ$k M2tZ+ekk Plw$5YⳀg;jq5ϝ(qa.,)jy#bPP˧;捞x]s䥁z.Ffmtv&jxu$. ~?ucD endstream endobj 210 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 211 0 R >> endobj 212 0 obj 1604 endobj 214 0 obj << /Type /Action /S /GoTo /D [210 0 R /XYZ 72.0 720.0 null] >> endobj 215 0 obj << /Type /Annot /Subtype /Link /Rect [ 429.325 422.206 539.998 431.206 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 214 0 R /H /I >> endobj 217 0 obj << /Type /Annot /Subtype /Link /Rect [ 100.0 410.326 112.5 419.206 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 214 0 R /H /I >> endobj 218 0 obj << /Type /Annot /Subtype /Link /Rect [ 112.5 410.206 151.668 419.206 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 214 0 R /H /I >> endobj 219 0 obj << /Type /Annot /Subtype /Link /Rect [ 116.94 305.47 269.15 314.47 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 69 0 R /H /I >> endobj 220 0 obj << /Type /Annot /Subtype /Link /Rect [ 269.15 305.47 300.53 314.47 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 69 0 R /H /I >> endobj 221 0 obj << /Type /Action /S /GoTo /D [68 0 R /XYZ 72.0 452.406 null] >> endobj 222 0 obj << /Type /Annot /Subtype /Link /Rect [ 116.94 271.102 232.21 280.102 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 221 0 R /H /I >> endobj 223 0 obj << /Type /Annot /Subtype /Link /Rect [ 232.21 271.102 263.59 280.102 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 221 0 R /H /I >> endobj 224 0 obj << /Type /Action /S /GoTo /D [123 0 R /XYZ 72.0 360.619 null] >> endobj 225 0 obj << /Type /Annot /Subtype /Link /Rect [ 455.55 248.384 539.998 257.384 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 224 0 R /H /I >> endobj 226 0 obj << /Type /Annot /Subtype /Link /Rect [ 100.0 236.384 188.88 245.384 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 224 0 R /H /I >> endobj 227 0 obj << /Type /Annot /Subtype /Link /Rect [ 188.88 236.384 225.26 245.384 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 224 0 R /H /I >> endobj 228 0 obj << /Type /Annot /Subtype /Link /Rect [ 492.575 213.666 540.002 222.666 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 124 0 R /H /I >> endobj 229 0 obj << /Type /Annot /Subtype /Link /Rect [ 100.0 201.666 268.61 210.666 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 124 0 R /H /I >> endobj 230 0 obj << /Type /Annot /Subtype /Link /Rect [ 268.61 201.666 304.99 210.666 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 124 0 R /H /I >> endobj 231 0 obj << /Length 232 0 R /Filter /FlateDecode >> stream x˒6>_5ܜijVۙ! ;IgHlVvYhdp(gTE4Y"3NWy6G/>t\W7+rNN!_}'/ߟDK#JSQR)Oʲ,Ҩ9+~~mG9|G7'p|T<(ceiBNxN`ݬڐ9{XjFPˣ N KqsGlfVĽ!31лe7JQv1B'qV戚jόgX`]]t8^m[is>$&9/<᧻O}5v__&z3i ф$esMq@ӎxjGfaqj y9O3B"M8X5{NZ&L^d 62ƨ8Dz8zWCC0sҘd,/ylٯ MF^x瀵k-,C?So%?qQݓsd?nBl6Xa'5R޳t^1vre+=DQ6":TU;p- ^xm6r˄mڧf{)aZno͕RgJA08D`J[JoqRht`/~A!KEjKYGcI=31.IcRBH{݀5nD9%Xu% ׎qtWCdzS;8xhqh<$H (!IO*丳uFX4Q=6;097]a,:MI$6.:7)Y}P϶9fube_l@NJXmF{|@NY/7;y/%enR8)4oeƓRZZK(!ꖔЋia#<tٷ:B`A&s]n)2vk{:U\դCu[д\p 4s]Rt8k_r=6qa74 l`rI,kdtCːPէmJFeBSV5UWhoW_T^rBRxpp*H{ꭳšȩ]5Sٯ xɠui罊VZ0;ECшqW#w pB0⒌(/ ^s@b$8Z:ڂ%a]Q0BKbfB|Mi'`ГؼXРjEέTih:φt5賷|_02x1rH'e~6 s؟<櫺]뷯sM+2}YL=9*d:&GТRq8|vgoR5pAh];LfGA-a=F?wcQ >ey^Nwy_#i}5)U^|l} rǺ~0\23g*Ӌ5|/Mҋ_AL"8@-(g|tb(Ӗ>Tks#G2WUjv3'_R %P_?e7&`6O2^Ju"4Ǐ>B= +=NJ?^< endstream endobj 216 0 obj [ 215 0 R 217 0 R 218 0 R 219 0 R 220 0 R 222 0 R 223 0 R 225 0 R 226 0 R 227 0 R 228 0 R 229 0 R 230 0 R ] endobj 213 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 216 0 R /Contents 231 0 R >> endobj 232 0 obj 3516 endobj 234 0 obj << /Type /Action /S /GoTo /D [169 0 R /XYZ 72.0 720.0 null] >> endobj 235 0 obj << /Type /Annot /Subtype /Link /Rect [ 455.792 645.641 540.001 654.641 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 234 0 R /H /I >> endobj 237 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 633.761 94.78 642.641 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 234 0 R /H /I >> endobj 238 0 obj << /Type /Annot /Subtype /Link /Rect [ 94.78 633.641 131.16 642.641 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 234 0 R /H /I >> endobj 239 0 obj << /Length 240 0 R /Filter /FlateDecode >> stream xUKs0+dU##t:q'L-cMe p_0,&1=}?OA}7G1XnNB wdaLX[tcvNzu nPFCw ǟA68v]r ya\\%RX{FNB8˚Ϣ_ϋ}3QOXHO)orf'vy)VP} 1'!.~}ΝF^VI\@)JZ$^gę¼_۝(k-7p 3v\XTmPX+\sQ7b/=9=Aum)]m +v'ʾf:@YԮY/i)Jb]kȇnvѠP0HnW]Nb^\OyIFC-2> SME%1rll:qF¤Y<0~ܕ͂Ѳ=fF'yMݖp7UgJ q@ endstream endobj 236 0 obj [ 235 0 R 237 0 R 238 0 R ] endobj 233 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 236 0 R /Contents 239 0 R >> endobj 240 0 obj 712 endobj 242 0 obj << /Type /Action /S /GoTo /D [17 0 R /XYZ 72.0 720.0 null] >> endobj 243 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 680.124 154.961 689.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 242 0 R /H /I >> endobj 245 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.3 680.124 542.08 689.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 242 0 R /H /I >> endobj 246 0 obj << /Type /Action /S /GoTo /D [32 0 R /XYZ 72.0 720.0 null] >> endobj 247 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 668.124 148.536 677.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 246 0 R /H /I >> endobj 248 0 obj << /Type /Annot /Subtype /Link /Rect [ 537.134 668.124 542.134 677.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 246 0 R /H /I >> endobj 249 0 obj << /Type /Action /S /GoTo /D [35 0 R /XYZ 72.0 720.0 null] >> endobj 250 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 656.124 205.901 665.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 249 0 R /H /I >> endobj 251 0 obj << /Type /Annot /Subtype /Link /Rect [ 536.802 656.124 541.802 665.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 249 0 R /H /I >> endobj 252 0 obj << /Type /Action /S /GoTo /D [35 0 R /XYZ 72.0 627.192 null] >> endobj 253 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 644.124 202.929 653.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 252 0 R /H /I >> endobj 254 0 obj << /Type /Annot /Subtype /Link /Rect [ 536.926 644.124 541.926 653.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 252 0 R /H /I >> endobj 255 0 obj << /Type /Action /S /GoTo /D [35 0 R /XYZ 72.0 127.049 null] >> endobj 256 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 632.124 187.474 641.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 255 0 R /H /I >> endobj 257 0 obj << /Type /Annot /Subtype /Link /Rect [ 537.019 632.124 542.019 641.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 255 0 R /H /I >> endobj 258 0 obj << /Type /Action /S /GoTo /D [68 0 R /XYZ 72.0 720.0 null] >> endobj 259 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 620.124 146.658 629.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 258 0 R /H /I >> endobj 260 0 obj << /Type /Annot /Subtype /Link /Rect [ 537.146 620.124 542.146 629.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 258 0 R /H /I >> endobj 261 0 obj << /Type /Action /S /GoTo /D [68 0 R /XYZ 72.0 669.305 null] >> endobj 262 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 608.124 183.041 617.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 261 0 R /H /I >> endobj 263 0 obj << /Type /Annot /Subtype /Link /Rect [ 537.047 608.124 542.047 617.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 261 0 R /H /I >> endobj 264 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 596.124 172.009 605.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 221 0 R /H /I >> endobj 265 0 obj << /Type /Annot /Subtype /Link /Rect [ 537.115 596.124 542.115 605.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 221 0 R /H /I >> endobj 266 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 584.124 194.093 593.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 73 0 R /H /I >> endobj 267 0 obj << /Type /Annot /Subtype /Link /Rect [ 536.98 584.124 541.98 593.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 73 0 R /H /I >> endobj 268 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 572.124 209.663 581.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 69 0 R /H /I >> endobj 269 0 obj << /Type /Annot /Subtype /Link /Rect [ 536.884 572.124 541.884 581.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 69 0 R /H /I >> endobj 270 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 560.124 255.333 569.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 179 0 R /H /I >> endobj 271 0 obj << /Type /Annot /Subtype /Link /Rect [ 536.604 560.124 541.604 569.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 179 0 R /H /I >> endobj 272 0 obj << /Type /Action /S /GoTo /D [99 0 R /XYZ 72.0 636.0 null] >> endobj 273 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 548.124 294.063 557.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 272 0 R /H /I >> endobj 274 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.338 548.124 541.338 557.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 272 0 R /H /I >> endobj 275 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 536.124 130.045 545.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 93 0 R /H /I >> endobj 276 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.212 536.124 542.212 545.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 93 0 R /H /I >> endobj 277 0 obj << /Type /Action /S /GoTo /D [108 0 R /XYZ 72.0 720.0 null] >> endobj 278 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 524.124 184.956 533.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 277 0 R /H /I >> endobj 279 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.894 524.124 541.894 533.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 277 0 R /H /I >> endobj 280 0 obj << /Type /Action /S /GoTo /D [111 0 R /XYZ 72.0 720.0 null] >> endobj 281 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 512.124 189.335 521.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 280 0 R /H /I >> endobj 282 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.868 512.124 541.868 521.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 280 0 R /H /I >> endobj 283 0 obj << /Type /Action /S /GoTo /D [111 0 R /XYZ 72.0 690.141 null] >> endobj 284 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 500.124 164.008 509.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 283 0 R /H /I >> endobj 285 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.134 500.124 542.134 509.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 283 0 R /H /I >> endobj 286 0 obj << /Type /Action /S /GoTo /D [111 0 R /XYZ 72.0 464.807 null] >> endobj 287 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 488.124 169.762 497.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 286 0 R /H /I >> endobj 288 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.098 488.124 542.098 497.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 286 0 R /H /I >> endobj 289 0 obj << /Type /Action /S /GoTo /D [117 0 R /XYZ 72.0 408.138 null] >> endobj 290 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 476.124 174.195 485.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 289 0 R /H /I >> endobj 291 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.072 476.124 542.072 485.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 289 0 R /H /I >> endobj 292 0 obj << /Type /Action /S /GoTo /D [120 0 R /XYZ 72.0 187.938 null] >> endobj 293 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 464.124 159.023 473.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 292 0 R /H /I >> endobj 294 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.164 464.124 542.164 473.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 292 0 R /H /I >> endobj 295 0 obj << /Type /Action /S /GoTo /D [123 0 R /XYZ 72.0 528.576 null] >> endobj 296 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 452.124 232.17 461.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 295 0 R /H /I >> endobj 297 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.716 452.124 541.716 461.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 295 0 R /H /I >> endobj 298 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 440.124 233.86 449.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 224 0 R /H /I >> endobj 299 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.706 440.124 541.706 449.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 224 0 R /H /I >> endobj 300 0 obj << /Type /Action /S /GoTo /D [123 0 R /XYZ 72.0 264.662 null] >> endobj 301 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 428.124 225.016 437.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 300 0 R /H /I >> endobj 302 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.76 428.124 541.76 437.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 300 0 R /H /I >> endobj 303 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 416.124 277.557 425.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 124 0 R /H /I >> endobj 304 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.44 416.124 541.44 425.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 124 0 R /H /I >> endobj 305 0 obj << /Type /Action /S /GoTo /D [140 0 R /XYZ 72.0 518.119 null] >> endobj 306 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 404.124 190.364 413.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 305 0 R /H /I >> endobj 307 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.972 404.124 541.972 413.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 305 0 R /H /I >> endobj 308 0 obj << /Type /Action /S /GoTo /D [130 0 R /XYZ 72.0 410.0 null] >> endobj 309 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 392.124 186.331 401.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 308 0 R /H /I >> endobj 310 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.998 392.124 541.998 401.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 308 0 R /H /I >> endobj 311 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 380.124 136.409 389.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 141 0 R /H /I >> endobj 312 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.176 380.124 542.176 389.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 141 0 R /H /I >> endobj 313 0 obj << /Type /Action /S /GoTo /D [133 0 R /XYZ 72.0 667.229 null] >> endobj 314 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 368.124 244.815 377.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 313 0 R /H /I >> endobj 315 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.64 368.124 541.64 377.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 313 0 R /H /I >> endobj 316 0 obj << /Type /Action /S /GoTo /D [133 0 R /XYZ 72.0 560.872 null] >> endobj 317 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 356.124 227.215 365.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 316 0 R /H /I >> endobj 318 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.746 356.124 541.746 365.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 316 0 R /H /I >> endobj 319 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 344.124 167.338 353.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 134 0 R /H /I >> endobj 320 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.114 344.124 542.114 353.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 134 0 R /H /I >> endobj 321 0 obj << /Type /Action /S /GoTo /D [150 0 R /XYZ 72.0 720.0 null] >> endobj 322 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 332.124 214.562 341.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 321 0 R /H /I >> endobj 323 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.824 332.124 541.824 341.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 321 0 R /H /I >> endobj 324 0 obj << /Type /Action /S /GoTo /D [150 0 R /XYZ 72.0 393.752 null] >> endobj 325 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 320.124 239.324 329.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 324 0 R /H /I >> endobj 326 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.672 320.124 541.672 329.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 324 0 R /H /I >> endobj 327 0 obj << /Type /Action /S /GoTo /D [150 0 R /XYZ 72.0 277.193 null] >> endobj 328 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 308.124 249.211 317.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 327 0 R /H /I >> endobj 329 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.612 308.124 541.612 317.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 327 0 R /H /I >> endobj 330 0 obj << /Type /Action /S /GoTo /D [153 0 R /XYZ 72.0 720.0 null] >> endobj 331 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 296.124 181.908 305.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 330 0 R /H /I >> endobj 332 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.024 296.124 542.024 305.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 330 0 R /H /I >> endobj 333 0 obj << /Type /Action /S /GoTo /D [159 0 R /XYZ 72.0 720.0 null] >> endobj 334 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 284.124 232.703 293.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 333 0 R /H /I >> endobj 335 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.618 284.124 541.618 293.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 333 0 R /H /I >> endobj 336 0 obj << /Type /Action /S /GoTo /D [159 0 R /XYZ 72.0 626.773 null] >> endobj 337 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 272.124 176.938 281.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 336 0 R /H /I >> endobj 338 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.054 272.124 542.054 281.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 336 0 R /H /I >> endobj 339 0 obj << /Type /Action /S /GoTo /D [159 0 R /XYZ 72.0 127.887 null] >> endobj 340 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 260.124 216.675 269.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 339 0 R /H /I >> endobj 341 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.812 260.124 541.812 269.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 339 0 R /H /I >> endobj 342 0 obj << /Type /Action /S /GoTo /D [156 0 R /XYZ 72.0 408.866 null] >> endobj 343 0 obj << /Type /Annot /Subtype /Link /Rect [ 120.0 248.124 266.259 257.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 342 0 R /H /I >> endobj 344 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.602 248.124 541.602 257.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 342 0 R /H /I >> endobj 345 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 236.124 248.115 245.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 160 0 R /H /I >> endobj 346 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.62 236.124 541.62 245.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 160 0 R /H /I >> endobj 347 0 obj << /Type /Action /S /GoTo /D [166 0 R /XYZ 72.0 650.0 null] >> endobj 348 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 224.124 204.549 233.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 347 0 R /H /I >> endobj 349 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.886 224.124 541.886 233.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 347 0 R /H /I >> endobj 350 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 212.124 143.288 221.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 234 0 R /H /I >> endobj 351 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.134 212.124 542.134 221.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 234 0 R /H /I >> endobj 352 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 200.124 193.284 209.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 203 0 R /H /I >> endobj 353 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.846 200.124 541.846 209.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 203 0 R /H /I >> endobj 354 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 188.124 154.828 197.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 214 0 R /H /I >> endobj 355 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.068 188.124 542.068 197.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 214 0 R /H /I >> endobj 356 0 obj << /Type /Action /S /GoTo /D [233 0 R /XYZ 72.0 720.0 null] >> endobj 357 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 176.124 155.373 185.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 356 0 R /H /I >> endobj 358 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.064 176.124 542.064 185.124 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 356 0 R /H /I >> endobj 359 0 obj << /Length 360 0 R /Filter /FlateDecode >> stream xOsdy>i=}ϿՄ-Yز/:zQ"!:Ȣ\,١sO&HIc;ʬ,A2_{<×_+>D=|ͮ>EW~_|ͯsxpſ?|wO'ť7/8?O3qyL?\a?ޓ_qo=κԇ?x7:Ox:O>xᛧ>|zGxSs~>\>~5[>gzYlG9UvUhm9)B8$RT+߀8D0D0D0E0E0E0E`&]v"8Dp)S.\"@ XkZ@kZE0D0D0D0D0E0E0E`Q7:T/GQ=ꤚ,Y.\d2C,(bE,eT*Q2*YYYY&Y&Y&Y6ldȲe'N,Yd9r$I,Y.C,<2Xf,bE,eVJAAAIIII,Y8:L's;x8?6q>|Og7ٍ~z=~c׳V?ӛe7K >)C$ﱺIK-{u=^z[b qo.uR=΃꠺SnF5Yvdr A,'YNdr=wZ,]jܳwrOߡbReeeeeeee#F,;Yvdr A,'YN\dr=Z,("{/XQbGReeeeeee#F,Yvdr A,'YNdr<2C,e"Y2XfˤO'i4I$}>IsO'i~Uy߬+|&2?_և/_y᫗w|`OoFr˼}w&kѵnݛ4JTwWԍ)YHT A,YNd9r"%{(XIb'R4B]rO& $$$F,۶_#P꠺SFzj\dr=iZ,"{(XIb'Reeeeeee#F,Yvdr A,'YNdr=iZ,"{(XI#U,Qj LLLLldȲ-bt.{>|w_V3Dy7 y=h"|̇/~?=}r?>}gqycۇ}yeW:?+-)*|{ ;KUuzJ}*|{M,Yd9r$I,Y.LjLuj LLLldȲe'N,;Yd9r$I,Y.\by>B-"#by>B-#dddddddȲe#F,;Yvd9r$I,'Y.\d2}Z,/ǷE,/G2}|{]2},,i4I$}>IsO'iWmwqc}ޡ.:~v{_=yo{dz1n5qܮtoN{ uPݩ^RonTe#F,;Yvdr A,'YN\drze=IJbYX"ebYX*eeeeeee#Fm[ [%uT7ԣPTAuPM,Y.\bX!qe"Q2XF˨b,,,,,,,,Y6ldɲe'A,Yd9r"EK,<2C,e"Y2Xf% $$$F,Y^3jerN~uyY^YzxAl{.~f8w^:f8%#k]q9*ՍjA,EKRıT,U$KReY+=JuzJzHN5Yvdr A,'YNdrze=IJbYX"e-bYX*eeeeeeee#F,;Yvd9r A,'YN\drebX!qe"Q2XF˨ddddddddȲe#N,;Yvd9r$I,Y.\d2C,,bE,eV*Y2i4I$}>IsO'i4Ykkn;r6l[}l_||3=ro~wmn\wJ+yX-_gY-Ii|_KW[nTvS:Lu4iT.S]Hul)'=RN{p+y%=TTTTTTTT6Sme7<-[(f.S]Hut)'=եT\rRݓ]+.Lj3nTvS:Lu4iT.S]HuO})'=jRBYI5+f%լLj3bSQǽFqd|5bso;|c~fD8ƽ7#N嗗7'嗗αV<,///;!oO//;!OTvS:Lu0iT.S]Luj=HZRTk!ZHVRTk%ZM5L5L5L5M5M5Mj3fTvS:Lu0iTNS]LujAQH5 F!(TjTS S S SMSMSMSMSmLj7nTS:Lu4iT.R̓T *za}~d|_.c~f}L:;;f:=N%A~$yX-_Kj3nTS:Lu4iT.S]G9QNJxT(70000444fT륙G}Iwgq7'gq妺Lu2E:yRT('}_Yw;L+n|@y|R>Lu0iTNS]LuހrRH^Huo@@9 $7 TTTTTTTT6Sm[9Z{Kދi|E7Mu2E{Iuo@@9 ('սTjjjjjjjj3fTvSMu0aTNS]Lu"ս夺7 ހrRPN{M5L5L5L5M5M5Mj3f{ܸuWi7Ιܬwƍm܌e8տW/߾axg3#Zu7Oئ>;m$_f|m(O<,'=PnaaaiiiiTz~co{<-[(f.S]Hum('=T؆rRc+ Lj3nTvS:Lu4iT.S]Hum('=PN{lC9 Lj3mC{lӏ?ﮏ~~x?wwdQFޛl/Wօ<-_. yX-__. 6SM0aTNS:Mu2E BNKBN׋BN=z.Lj3nTvS:Lu4iT.S]HzI^IzQ޷T兜T慜TTTTTTTTNUS̶#Q.*ǫlzT)_vWp)92ך"7W[=#κן!AuzIuzJr"}Is_rDu;$dAr~'oNzFzzHɲe'N,Yd9r"E,XsH-PZ,9}]222222ɲe#hMW˛Q,O<,7iT.RW㠜T8$/A9qH^Iu_rS S S SMSMSMSMSmLj7nTS:Lu4iT.R̓T |߿>z??^q㻏3]Of]Kzyr}fPDy^L0 {Yw; ˻q}koϗF7'#A[nTvS:Lu4iT.S]Hu|I9/%/wTΗWRݛrPnaaaiiiiTyyMjA8,˻Y-o2eTޔrRݛrPN{S+M9(70000444fTvSM0aTNSLu2E{SIuo!y!ս)多TjVRݛrHLuOXK*ˈϣܹ>}\8_ͽ姏}ˎ=Ɲ1^kmi?o˾:Iz_t꠺S\Z(mMq v\,Or뒇EܺrSM0aTNS:Mu2E_IuK9#)'}Tjjjjjjjj3f2i1ޒ[(f|rS]Lu"} 0夺>rR݇SN`M5L5L5L5M5M5Mj3fTvS:Lu0iTNS]LujAYH5 f!,TjVS S S SMSMSMSMSm9zlJ<_-vv}1uϣ?|߽—C"qޣ|ݶβ{Shw nAy|RLj3nTS:Lu4iT.S]єFSN{M9iT4rS S S S SMSMSMSmLmz2[~XwZ,byZnT.S]єFK^HuO)'=T4rS S S SMSMSMSmLj3nTS:Lu4iT.S]AyjRBYH5 f%լTTTTTTTTit`gkuo.|w>? ϳ~}˛ ϗ!֝l8ΗLG)|B!yZ>(ߧPHw/8߯f ɛ]H)rSM0aTNS:Mu2E9$'Rl!9^瀼e{M5L5L5L5M5M5M5Mj3fTvS:Lu0iT.S]H=zٞCrRl!9^瀼e{M5L5L5L5L5M5M5Mj3fTvS:Lu0iT.S]Lue{I=T/sHN9$'͖fKiRl)m6[8X2 덒c>c<|7?ٝvuL;#Zw~G?rgmKNz)oOoZJ{ N9aaaiiiT6SmMj7aTNS:Mu2eT@rRq 8夺WRqM5L5L5L5M5M5M5Mj3նUۚXayX-_jyT.S]┓SN{ N9T@rS S S S SMSMSMSmLj7nTS:Lu4iT.S]AyjRBYH5+f%լTTTTTTT<̚/z|ݷ/}ݝyyYZ;7u2T|Q$Y>)[J2E ս;Z B{k+J>D000444fTVu^vzI7$Q=޻BTVPd9r"%qebXF(bE,eT*Q2222222ɲe#F,;Yvd9r I,'Y.\d2C,<2Xf,bU,eV LLLld7xiHηqFY+ jބ?Q_} >|r_ۿ}gClʝ{Y|=ﻏ#.7ngLi|sAyX-_o0(7Ex)Iu/%y!}夺>^rS S S SMSMSMSMSmLmXsMEA8,˻Y-o2eTR>^rRKQNx)+(70000444fTvSM0aTNSLu2Ex)Iu/%y!}夺TRjjjjjjj3f~~&cPvݡ|eס|,{nWO/\݌γ,Yw~kG{n{f͒7'{fAޱYT.S]Hu('=WꞫQN{&y%=WTTTTTTTT6SmMj7aTS:Mu2eT\rRs5Iu('=WꞫQnaaaaiiiT6SMj7aTNS:Mu2eT\rRs5 夺jꞫQnaaaiiiTh̵ƔeNZ޳ܛ#_eNv~=/S)/w,ד7_VȰ)^yf|cuoыi|)yX-_7%ojjjj3f.c{OnEIi|_ET.S]HRHN/ ӿ('}T)`jjjjjjjj3fTvS:Lu0aTNS]Lu>7rRgQN0Iu!&y%}LåZy7w{`_|ktg]= ͍ /zypqoPKzoyůם_kU{9*W>+[(?)oOʛ6SmMj7nTS:Mu2eT('=UꞪRN{J9*Lj۪(QEy7'XayXnT.S]_SN{*y!]PN{*y%=UTTTTTTTT6SmMj7aTS:Mu2eTTrRSUIuOU)'=UjVRjaaaaiiiTw9sM{FY3gTnn8\榟>>}ݷ|<_<GcfnGayz-ߐwڒ7'i|Ӗ<,j7nTS:Mu4iT.RݧRNW _)'}T鯔jjjjjjjj3fTvS:Lu0aTNS]Lu>rRݧRNWIu*y%}+Lj3nTvS:Lu4iT.S]HuJ9_%/OTjVRJiRl)m6[J-͖fKkyo4sc?'$?\s=|xzw=l杇A^qG)wDo  -M fXϯSŰXQ,EK}7U$QReeeeeeee#F,;Yvdr A,'YN\dr},b䆺>[jGqK-n222222ɲe#?{|QޫI(yX4eT#)'}T1M>r[J{.@6SmLj7nTS:Mu4eTAyjf!,TjVRjaaaaiiiTwmh~:x,ls; kyCt'x,+\w߿>}|뿼>~p9:nAn|g֝ucE~Nɛ{:i)IZ BjZ+jaaaaiiiTo7~n|$y|R>i.S]LujAQH5 F!ըTjTS S S SMSMSMSmLj3nTS:Lu4iT.S]AyjRBYH5 f%լTTTTTTTT uTF)Ӟ{|JXk1^s#fw<-]$˻ zXo.p ay|QwYnTvS:Lu0iT.S]HuO)'=TԚrRSk+5Lj3nTvS:Lu4iT.S]HuO)'=ZSN{jM95Lj3fTvS:Lu4iT.S]H5R̓T ,TjRJYI5m6[J-͖fKiRl)mt9—S1zktzt^/ty>c~Y^߬kkβ!ߔz uR={ATw{?r$I,Y.\dbyu~Pe?dddddddȲe#F,;Yvd9r$I,'Y.\dibyٲuˆ}PeU,/AMAAAIIII,Y6dɲ A,YNd9r"%=ˎ|Pe?>*& $K$}>Krcܛj4:7ƝzMxlc_߼aw'gUwvc'y7cκMX-_P,_(C}夺T_>KJ/M5L5L5L5L5M5M5Mj3նUG?ayX-_jy|R>i.S]Lu>rRG|I^HuE9#('}Lj3fTvS:Lu4iT.S]HuE9#$/T_WRG|QnaaaiiiiTyʑk}5=FYkκ{#=}=rבӱݿ}x/~_a%{+ Ay!ZHRTk%ZIVS S S SMSMSMSMSmLj7nTS:Lu4iT.RT 8H5RBQH5 F%ըTTTTTTTT6SmMj7nTS:Mu2eTAyjTjRJYI5+f5000444f{sZOv\8Z^a<4w9,WO_?2|}4awmJy^x7?ى›ޜEޜf(?ߛSwZ,7nTS:Lu4iT.S]ͣTy>4rR݇I^IuG6Sm5<_%ay|Q>I,妺Lu2Ex*9 eK|b\ǡ?3ڛўLh7 c}լwތ8.%OGEѥrSMSMSMSmLj3nTS:Lu4iT.S]OYT)RݧSNu+S)70004444fTvSMu0aTNSLu"}:夺OYT)딓>e]JuM5L5L5L5L5M5M5Mj3fTvS:Lu0iT.S]Lu>erRM-͖fKiRl)m6[J-͖fKiRl)m6[YX [uwF^I{9!'x_#v_߬ǬG<κiZ<-Oay|Q鑼YnTNS]Lu"}YIu_oVB,夺:K6SmLj7nTS:Mu4iT.RݗTi%//IK9J^Iu_rS S S SMSMSMSMSmLj7nTS:Lu4iT.R׫Tk)'}ZIu_VJjjjjjj͖fK+(2\ԣQכּ{VW~H7Ӻ.`{~9߻GSY7[/Ǒ=כּE]f|o.yZnaaaaiiiT6SMj7aTNS:Mu2eTɪ>YUBdUIuJ9U)7000444fT6SM0aTNS:Mu2EdUIu*y!}*夺OV>YrS S S SMSMSMSMSmzsp[s \NW=ʚk;jyKm17`{,_?}˥N}|Pzy9$iRq},Y;Ӝκן7' !Oˇ !˻zprRnu}M5L5L5L5L5M5M5Mj3fTvS:Lu0iT.S]Luu}IB !'u}M5L5L5L5M5M5Mj3fTvS:Lu0iTNS]Luu}IB !'o+^7܇TTTTTTTT^'[؇}6rݠr%zg݉Ϻp?'׉ӷO>]>/﫩ތtϋc5n|V˛妺Lu"ս夺7TWJJ{+M5L5L5L5L5M5M5Mj3fTvS:Lu0iT.S]LurRݛ_I^Huo~E9ͯ('սLu)72!7@o?z˫zBߛe7O{QϗQr?[z]>u޺ן1AuzI*Ս)n,Y,&rS S S S SMSMSMSmLmh-y?,˻Q-oOg<-7eT.R$SNd c)'}L2夺ITTTTTTT6SmLj7nTS:Mu4eTAyjTjRBYI5+f50004444fMI7U_v |vﯯG$?_}U7\sT!myڗ7Lq޺|w>߈c>zŝGlu1z]k~gOs%uzJ`<-)It,y%}3[5rRG0SNf+#)70000444fTvSM0aTNSLu2EfIu,y!}3夺`T̔jjjjjjj3fTvSMu0aTNSLu"> endobj 360 0 obj 15258 endobj 361 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Times-Italic /Encoding /WinAnsiEncoding >> endobj 362 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Times-Bold /Encoding /WinAnsiEncoding >> endobj 363 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Courier /Encoding /WinAnsiEncoding >> endobj 364 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Courier-Oblique /Encoding /WinAnsiEncoding >> endobj 365 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Courier-BoldOblique /Encoding /WinAnsiEncoding >> endobj 366 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Courier-Bold /Encoding /WinAnsiEncoding >> endobj 367 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding >> endobj 368 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Helvetica-BoldOblique /Encoding /WinAnsiEncoding >> endobj 369 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Times-Roman /Encoding /WinAnsiEncoding >> endobj 1 0 obj << /Type /Pages /Count 43 /Kids [8 0 R 14 0 R 241 0 R 17 0 R 32 0 R 35 0 R 59 0 R 68 0 R 62 0 R 65 0 R 80 0 R 92 0 R 83 0 R 99 0 R 86 0 R 89 0 R 105 0 R 108 0 R 111 0 R 114 0 R 117 0 R 120 0 R 123 0 R 140 0 R 130 0 R 133 0 R 150 0 R 153 0 R 159 0 R 156 0 R 166 0 R 169 0 R 172 0 R 175 0 R 178 0 R 213 0 R 186 0 R 189 0 R 192 0 R 202 0 R 199 0 R 210 0 R 233 0 R ] >> endobj 2 0 obj << /Type /Catalog /Pages 1 0 R /Lang (en) /Metadata 7 0 R /PageLabels 9 0 R >> endobj 3 0 obj << /Font << /F6 361 0 R /F7 362 0 R /F9 363 0 R /F10 364 0 R /F12 365 0 R /F11 366 0 R /F3 367 0 R /F4 368 0 R /F5 369 0 R >> /ProcSet [/PDF /ImageB /ImageC /Text] /ColorSpace << /DefaultRGB 6 0 R >> >> endobj 9 0 obj << /Nums [0 << /P (i) >> 1 << /P (ii) >> 2 << /P (iii) >> 3 << /P (iv) >> 4 << /P (1) >> 5 << /P (2) >> 6 << /P (3) >> 7 << /P (4) >> 8 << /P (5) >> 9 << /P (6) >> 10 << /P (7) >> 11 << /P (8) >> 12 << /P (9) >> 13 << /P (10) >> 14 << /P (11) >> 15 << /P (12) >> 16 << /P (13) >> 17 << /P (14) >> 18 << /P (15) >> 19 << /P (16) >> 20 << /P (17) >> 21 << /P (18) >> 22 << /P (19) >> 23 << /P (20) >> 24 << /P (21) >> 25 << /P (22) >> 26 << /P (23) >> 27 << /P (24) >> 28 << /P (25) >> 29 << /P (26) >> 30 << /P (27) >> 31 << /P (28) >> 32 << /P (29) >> 33 << /P (30) >> 34 << /P (31) >> 35 << /P (32) >> 36 << /P (33) >> 37 << /P (34) >> 38 << /P (35) >> 39 << /P (36) >> 40 << /P (37) >> 41 << /P (38) >> 42 << /P (39) >> ] >> endobj xref 0 370 0000000000 65535 f 0000168753 00000 n 0000169134 00000 n 0000169239 00000 n 0000000015 00000 n 0000000145 00000 n 0000002684 00000 n 0000002717 00000 n 0000003966 00000 n 0000169484 00000 n 0000003665 00000 n 0000004158 00000 n 0000004179 00000 n 0000004199 00000 n 0000004631 00000 n 0000004219 00000 n 0000004824 00000 n 0000007476 00000 n 0000004844 00000 n 0000004910 00000 n 0000007407 00000 n 0000005047 00000 n 0000005113 00000 n 0000005251 00000 n 0000005348 00000 n 0000005488 00000 n 0000005628 00000 n 0000005764 00000 n 0000005830 00000 n 0000005967 00000 n 0000006107 00000 n 0000007686 00000 n 0000009355 00000 n 0000007707 00000 n 0000009548 00000 n 0000014779 00000 n 0000009569 00000 n 0000009627 00000 n 0000014682 00000 n 0000009765 00000 n 0000009823 00000 n 0000009961 00000 n 0000010031 00000 n 0000010168 00000 n 0000010226 00000 n 0000010364 00000 n 0000010440 00000 n 0000010578 00000 n 0000010653 00000 n 0000010791 00000 n 0000010855 00000 n 0000010993 00000 n 0000011072 00000 n 0000011208 00000 n 0000011344 00000 n 0000011408 00000 n 0000011544 00000 n 0000011680 00000 n 0000014989 00000 n 0000016533 00000 n 0000015010 00000 n 0000016726 00000 n 0000019462 00000 n 0000016747 00000 n 0000019655 00000 n 0000021952 00000 n 0000019676 00000 n 0000022145 00000 n 0000026096 00000 n 0000022166 00000 n 0000022246 00000 n 0000026034 00000 n 0000022386 00000 n 0000022526 00000 n 0000022606 00000 n 0000022746 00000 n 0000022886 00000 n 0000023024 00000 n 0000023162 00000 n 0000026306 00000 n 0000030246 00000 n 0000026327 00000 n 0000030439 00000 n 0000034590 00000 n 0000030460 00000 n 0000034783 00000 n 0000036513 00000 n 0000034804 00000 n 0000036706 00000 n 0000040153 00000 n 0000036727 00000 n 0000040346 00000 n 0000043490 00000 n 0000040367 00000 n 0000040445 00000 n 0000043456 00000 n 0000040582 00000 n 0000040719 00000 n 0000043700 00000 n 0000046775 00000 n 0000043721 00000 n 0000046738 00000 n 0000043856 00000 n 0000043991 00000 n 0000046987 00000 n 0000047526 00000 n 0000047009 00000 n 0000047721 00000 n 0000049222 00000 n 0000047742 00000 n 0000049417 00000 n 0000053285 00000 n 0000049439 00000 n 0000053480 00000 n 0000058084 00000 n 0000053502 00000 n 0000058279 00000 n 0000062331 00000 n 0000058301 00000 n 0000062526 00000 n 0000067675 00000 n 0000062548 00000 n 0000067870 00000 n 0000072326 00000 n 0000079247 00000 n 0000067892 00000 n 0000072289 00000 n 0000068032 00000 n 0000068172 00000 n 0000072539 00000 n 0000075301 00000 n 0000072561 00000 n 0000075496 00000 n 0000079012 00000 n 0000075518 00000 n 0000075600 00000 n 0000078975 00000 n 0000075742 00000 n 0000075884 00000 n 0000079225 00000 n 0000083115 00000 n 0000079327 00000 n 0000079407 00000 n 0000083054 00000 n 0000079549 00000 n 0000079686 00000 n 0000079826 00000 n 0000079965 00000 n 0000080104 00000 n 0000083328 00000 n 0000086812 00000 n 0000083350 00000 n 0000087007 00000 n 0000088079 00000 n 0000087029 00000 n 0000088274 00000 n 0000091500 00000 n 0000088295 00000 n 0000091695 00000 n 0000094352 00000 n 0000091717 00000 n 0000091799 00000 n 0000094315 00000 n 0000091940 00000 n 0000092081 00000 n 0000094565 00000 n 0000096080 00000 n 0000094587 00000 n 0000096275 00000 n 0000098975 00000 n 0000096297 00000 n 0000099170 00000 n 0000102558 00000 n 0000099192 00000 n 0000102753 00000 n 0000105833 00000 n 0000102775 00000 n 0000106028 00000 n 0000110850 00000 n 0000106050 00000 n 0000106131 00000 n 0000110805 00000 n 0000106269 00000 n 0000106404 00000 n 0000106540 00000 n 0000111063 00000 n 0000114355 00000 n 0000111085 00000 n 0000114550 00000 n 0000117825 00000 n 0000114572 00000 n 0000118020 00000 n 0000121356 00000 n 0000118042 00000 n 0000118105 00000 n 0000121319 00000 n 0000118245 00000 n 0000118387 00000 n 0000121569 00000 n 0000124342 00000 n 0000121591 00000 n 0000124537 00000 n 0000127258 00000 n 0000124559 00000 n 0000124639 00000 n 0000127213 00000 n 0000124779 00000 n 0000124916 00000 n 0000125054 00000 n 0000127471 00000 n 0000129175 00000 n 0000127493 00000 n 0000129370 00000 n 0000135169 00000 n 0000129392 00000 n 0000129472 00000 n 0000135044 00000 n 0000129614 00000 n 0000129752 00000 n 0000129892 00000 n 0000130029 00000 n 0000130166 00000 n 0000130247 00000 n 0000130387 00000 n 0000130527 00000 n 0000130609 00000 n 0000130750 00000 n 0000130889 00000 n 0000131029 00000 n 0000131171 00000 n 0000131310 00000 n 0000131450 00000 n 0000135382 00000 n 0000136737 00000 n 0000135404 00000 n 0000135484 00000 n 0000136692 00000 n 0000135626 00000 n 0000135763 00000 n 0000135902 00000 n 0000136950 00000 n 0000167505 00000 n 0000136971 00000 n 0000137050 00000 n 0000166796 00000 n 0000137189 00000 n 0000137328 00000 n 0000137407 00000 n 0000137546 00000 n 0000137688 00000 n 0000137767 00000 n 0000137906 00000 n 0000138048 00000 n 0000138129 00000 n 0000138268 00000 n 0000138410 00000 n 0000138491 00000 n 0000138630 00000 n 0000138772 00000 n 0000138851 00000 n 0000138990 00000 n 0000139132 00000 n 0000139213 00000 n 0000139352 00000 n 0000139494 00000 n 0000139633 00000 n 0000139775 00000 n 0000139913 00000 n 0000140052 00000 n 0000140190 00000 n 0000140331 00000 n 0000140470 00000 n 0000140612 00000 n 0000140691 00000 n 0000140830 00000 n 0000140972 00000 n 0000141110 00000 n 0000141251 00000 n 0000141331 00000 n 0000141470 00000 n 0000141612 00000 n 0000141692 00000 n 0000141831 00000 n 0000141973 00000 n 0000142055 00000 n 0000142194 00000 n 0000142336 00000 n 0000142418 00000 n 0000142557 00000 n 0000142699 00000 n 0000142781 00000 n 0000142920 00000 n 0000143062 00000 n 0000143144 00000 n 0000143283 00000 n 0000143425 00000 n 0000143507 00000 n 0000143645 00000 n 0000143787 00000 n 0000143925 00000 n 0000144067 00000 n 0000144149 00000 n 0000144288 00000 n 0000144428 00000 n 0000144567 00000 n 0000144707 00000 n 0000144789 00000 n 0000144928 00000 n 0000145070 00000 n 0000145150 00000 n 0000145289 00000 n 0000145431 00000 n 0000145570 00000 n 0000145712 00000 n 0000145794 00000 n 0000145933 00000 n 0000146073 00000 n 0000146155 00000 n 0000146294 00000 n 0000146436 00000 n 0000146575 00000 n 0000146717 00000 n 0000146797 00000 n 0000146936 00000 n 0000147078 00000 n 0000147160 00000 n 0000147299 00000 n 0000147441 00000 n 0000147523 00000 n 0000147662 00000 n 0000147804 00000 n 0000147884 00000 n 0000148023 00000 n 0000148165 00000 n 0000148245 00000 n 0000148384 00000 n 0000148526 00000 n 0000148608 00000 n 0000148747 00000 n 0000148889 00000 n 0000148971 00000 n 0000149110 00000 n 0000149252 00000 n 0000149334 00000 n 0000149474 00000 n 0000149616 00000 n 0000149755 00000 n 0000149895 00000 n 0000149975 00000 n 0000150114 00000 n 0000150256 00000 n 0000150395 00000 n 0000150537 00000 n 0000150676 00000 n 0000150818 00000 n 0000150957 00000 n 0000151099 00000 n 0000151179 00000 n 0000151318 00000 n 0000151460 00000 n 0000167718 00000 n 0000167741 00000 n 0000167852 00000 n 0000167961 00000 n 0000168067 00000 n 0000168181 00000 n 0000168299 00000 n 0000168410 00000 n 0000168523 00000 n 0000168643 00000 n trailer << /Root 2 0 R /Info 4 0 R /ID [<9B1C69409FC9A5F50E44B9588E3E60F8> <9B1C69409FC9A5F50E44B9588E3E60F8>] /Size 370 >> startxref 170269 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad6.pdf0000644000064100006410000000224613247541377015105 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000128 00000 n 0000000300 00000 n 0000000389 00000 n 0000000424 00000 n trailer << /Size 7 /Root 1 0 R >> startxref 542 %%EOF 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 7 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 7 0 obj << /Length 48 >> stream BT /F1 24 Tf 72 720 Td (Sandwiches) Tj ET endstream endobj xref 0 1 0000000006 65535 f 3 2 0000000750 00000 n 0000000000 00000 f 7 1 0000000922 00000 n trailer << /Size 8 /Root 1 0 R /Prev 542 >> startxref 1022 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.1.check0000644000064100006410000000026213247541377021141 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/unreferenced-preserved.pdf0000644000064100006410000000163713247541377020736 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 2 0 obj << /Pages 1 0 R /Type /Catalog >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 1 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 9 0 R >> /Type /Page >> endobj 4 0 obj << /Length 48 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 5 0 obj 44 endobj 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 7 0 obj [ 8 0 R ] endobj 8 0 obj /Potato endobj 9 0 obj [ /PDF /Text ] endobj xref 0 10 0000000000 65535 f 0000000015 00000 n 0000000074 00000 n 0000000123 00000 n 0000000266 00000 n 0000000384 00000 n 0000000402 00000 n 0000000509 00000 n 0000000534 00000 n 0000000557 00000 n trailer << /Root 2 0 R /Size 10 /ID [<5c2381b459937c988290150df782f1fd><31415926535897932384626433832795>] >> startxref 587 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.1.check0000644000064100006410000000026213247541377017467 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/append-page-content-damaged.qdf0000644000064100006410000004014413247541377021502 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /Outlines 2 0 R /PageLabels 3 0 R /PageMode /UseOutlines /Pages 4 0 R /Type /Catalog >> endobj 2 0 obj << /Count 6 /First 5 0 R /Last 6 0 R /Type /Outlines >> endobj 3 0 obj << /Nums [ 0 << /P () >> 2 << /S /D /St 1 >> 7 << /P () >> 9 << /S /R /St 6 >> 11 << /P () >> 12 << /S /r /St 2 >> 15 << /S /r /St 6 >> 19 << /P () >> 20 << /S /R /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> endobj 4 0 obj << /Count 30 /Kids [ 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 35 0 R 36 0 R ] /Type /Pages >> endobj 5 0 obj << /Count 4 /Dest [ 12 0 R /XYZ null null null ] /First 37 0 R /Last 38 0 R /Next 6 0 R /Parent 2 0 R /Title (Iss 1 -> 5: /XYZ null null null) /Type /Outline >> endobj 6 0 obj << /Dest [ 22 0 R /XYZ 66 756 3 ] /Parent 2 0 R /Prev 5 0 R /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Type /Outline >> endobj %% Page 1 7 0 obj << /Contents 39 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Type /Page >> endobj %% Page 2 8 0 obj << /Contents 43 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Type /Page >> endobj %% Page 3 9 0 obj << /Contents 45 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Type /Page >> endobj %% Page 4 10 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Type /Page >> endobj %% Page 5 11 0 obj << /Contents 49 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Type /Page >> endobj %% Page 6 12 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Type /Page >> endobj %% Page 7 13 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Type /Page >> endobj %% Page 8 14 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Type /Page >> endobj %% Page 9 15 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Type /Page >> endobj %% Page 10 16 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Type /Page >> endobj %% Page 11 17 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Type /Page >> endobj %% Page 12 18 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Type /Page >> endobj %% Page 13 19 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Type /Page >> endobj %% Page 14 20 0 obj << /Contents 67 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Type /Page >> endobj %% Page 15 21 0 obj << /Contents 69 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Type /Page >> endobj %% Page 16 22 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Type /Page >> endobj %% Page 17 23 0 obj << /Contents 73 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Type /Page >> endobj %% Page 18 24 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Type /Page >> endobj %% Page 19 25 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Type /Page >> endobj %% Page 20 26 0 obj << /Contents 79 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Type /Page >> endobj %% Page 21 27 0 obj << /Contents 81 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Type /Page >> endobj %% Page 22 28 0 obj << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Type /Page >> endobj %% Page 23 29 0 obj << /Contents 85 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Type /Page >> endobj %% Page 24 30 0 obj << /Contents 87 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Type /Page >> endobj %% Page 25 31 0 obj << /Contents 89 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Type /Page >> endobj %% Page 26 32 0 obj << /Contents 91 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Type /Page >> endobj %% Page 27 33 0 obj << /Contents 93 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Type /Page >> endobj %% Page 28 34 0 obj << /Contents 95 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Type /Page >> endobj %% Page 29 35 0 obj << /Contents 97 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Type /Page >> endobj %% Page 30 36 0 obj << /Contents 99 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Type /Page >> endobj 37 0 obj << /Count -3 /Dest [ 18 0 R /Fit ] /First 101 0 R /Last 102 0 R /Next 38 0 R /Parent 5 0 R /Title (Amanda 1.1 -> 11: /Fit) /Type /Outline >> endobj 38 0 obj << /Count 2 /Dest [ 20 0 R /FitH 792 ] /First 103 0 R /Last 104 0 R /Parent 5 0 R /Prev 37 0 R /Title /Type /Outline >> endobj %% Contents for page 1 39 0 obj << /Length 40 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 0 new) Tj ET endstream endobj 40 0 obj 50 endobj 41 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 42 0 obj [ /PDF /Text ] endobj %% Contents for page 2 43 0 obj << /Length 44 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 44 0 obj 46 endobj %% Contents for page 3 45 0 obj << /Length 46 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 46 0 obj 46 endobj %% Contents for page 4 47 0 obj << /Length 48 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 48 0 obj 46 endobj %% Contents for page 5 49 0 obj << /Length 50 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 50 0 obj 46 endobj %% Contents for page 6 51 0 obj << /Length 52 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 52 0 obj 46 endobj %% Contents for page 7 53 0 obj << /Length 54 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 54 0 obj 46 endobj %% Contents for page 8 55 0 obj << /Length 56 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 56 0 obj 46 endobj %% Contents for page 9 57 0 obj << /Length 58 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 58 0 obj 46 endobj %% Contents for page 10 59 0 obj << /Length 60 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 60 0 obj 46 endobj %% Contents for page 11 61 0 obj << /Length 62 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 62 0 obj 47 endobj %% Contents for page 12 63 0 obj << /Length 64 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 64 0 obj 47 endobj %% Contents for page 13 65 0 obj << /Length 66 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 66 0 obj 47 endobj %% Contents for page 14 67 0 obj << /Length 68 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 68 0 obj 47 endobj %% Contents for page 15 69 0 obj << /Length 70 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 70 0 obj 47 endobj %% Contents for page 16 71 0 obj << /Length 72 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 72 0 obj 47 endobj %% Contents for page 17 73 0 obj << /Length 74 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 74 0 obj 47 endobj %% Contents for page 18 75 0 obj << /Length 76 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 76 0 obj 47 endobj %% Contents for page 19 77 0 obj << /Length 78 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 78 0 obj 47 endobj %% Contents for page 20 79 0 obj << /Length 80 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 80 0 obj 47 endobj %% Contents for page 21 81 0 obj << /Length 82 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 82 0 obj 47 endobj %% Contents for page 22 83 0 obj << /Length 84 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 84 0 obj 47 endobj %% Contents for page 23 85 0 obj << /Length 86 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 86 0 obj 47 endobj %% Contents for page 24 87 0 obj << /Length 88 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 88 0 obj 47 endobj %% Contents for page 25 89 0 obj << /Length 90 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 90 0 obj 47 endobj %% Contents for page 26 91 0 obj << /Length 92 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 92 0 obj 47 endobj %% Contents for page 27 93 0 obj << /Length 94 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 94 0 obj 47 endobj %% Contents for page 28 95 0 obj << /Length 96 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 96 0 obj 47 endobj %% Contents for page 29 97 0 obj << /Length 98 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 98 0 obj 47 endobj %% Contents for page 30 99 0 obj << /Length 100 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 100 0 obj 47 endobj 101 0 obj << /Count -2 /Dest [ 19 0 R /FitV 100 ] /First 105 0 R /Last 106 0 R /Next 102 0 R /Parent 37 0 R /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Type /Outline >> endobj 102 0 obj << /Count 1 /Dest [ 19 0 R /XYZ null null null ] /First 107 0 R /Last 107 0 R /Parent 37 0 R /Prev 101 0 R /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Type /Outline >> endobj 103 0 obj << /Dest [ 8 0 R /FitR 66 714 180 770 ] /Next 104 0 R /Parent 38 0 R /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Type /Outline >> endobj 104 0 obj << /Dest [ 7 0 R /XYZ null null null ] /Parent 38 0 R /Prev 103 0 R /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Type /Outline >> endobj 105 0 obj << /Dest [ 25 0 R /XYZ null null null ] /Next 106 0 R /Parent 101 0 R /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Type /Outline >> endobj 106 0 obj << /Dest [ 26 0 R /XYZ null null null ] /Parent 101 0 R /Prev 105 0 R /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Type /Outline >> endobj 107 0 obj << /Dest [ 29 0 R /XYZ null null null ] /Parent 102 0 R /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Type /Outline >> endobj xref 0 108 0000000000 65535 f 0000000025 00000 n 0000000142 00000 n 0000000222 00000 n 0000000753 00000 n 0000001143 00000 n 0000001359 00000 n 0000001534 00000 n 0000001739 00000 n 0000001944 00000 n 0000002149 00000 n 0000002355 00000 n 0000002561 00000 n 0000002767 00000 n 0000002973 00000 n 0000003179 00000 n 0000003386 00000 n 0000003593 00000 n 0000003800 00000 n 0000004007 00000 n 0000004214 00000 n 0000004421 00000 n 0000004628 00000 n 0000004835 00000 n 0000005042 00000 n 0000005249 00000 n 0000005456 00000 n 0000005663 00000 n 0000005870 00000 n 0000006077 00000 n 0000006284 00000 n 0000006491 00000 n 0000006698 00000 n 0000006905 00000 n 0000007112 00000 n 0000007319 00000 n 0000007526 00000 n 0000007722 00000 n 0000007906 00000 n 0000008239 00000 n 0000008346 00000 n 0000008366 00000 n 0000008485 00000 n 0000008544 00000 n 0000008647 00000 n 0000008690 00000 n 0000008793 00000 n 0000008836 00000 n 0000008939 00000 n 0000008982 00000 n 0000009085 00000 n 0000009128 00000 n 0000009231 00000 n 0000009274 00000 n 0000009377 00000 n 0000009420 00000 n 0000009523 00000 n 0000009566 00000 n 0000009669 00000 n 0000009713 00000 n 0000009816 00000 n 0000009860 00000 n 0000009964 00000 n 0000010008 00000 n 0000010112 00000 n 0000010156 00000 n 0000010260 00000 n 0000010304 00000 n 0000010408 00000 n 0000010452 00000 n 0000010556 00000 n 0000010600 00000 n 0000010704 00000 n 0000010748 00000 n 0000010852 00000 n 0000010896 00000 n 0000011000 00000 n 0000011044 00000 n 0000011148 00000 n 0000011192 00000 n 0000011296 00000 n 0000011340 00000 n 0000011444 00000 n 0000011488 00000 n 0000011592 00000 n 0000011636 00000 n 0000011740 00000 n 0000011784 00000 n 0000011888 00000 n 0000011932 00000 n 0000012036 00000 n 0000012080 00000 n 0000012184 00000 n 0000012228 00000 n 0000012332 00000 n 0000012376 00000 n 0000012480 00000 n 0000012524 00000 n 0000012628 00000 n 0000012672 00000 n 0000012777 00000 n 0000012798 00000 n 0000013003 00000 n 0000013235 00000 n 0000013430 00000 n 0000013617 00000 n 0000013808 00000 n 0000013999 00000 n trailer << /Root 1 0 R /Size 108 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 14174 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-other-force-1.8.2.out0000644000064100006410000000023513247541377022272 0ustar ejbejbversion: 1.8 extension level: 2 << /ADBE << /BaseVersion /1.8 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.11.c-check0000644000064100006410000000040613247541377017431 0ustar ejbejbversion: 1.4 linearized: 1 encrypted: 1 user password: extract for accessibility: 1 extract for any purpose: 1 print low resolution: 1 print high resolution: 1 modify document assembly: 1 modify forms: 1 modify annotations: 1 modify other: 1 modify anything: 1 qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.6-ogen.c-check0000644000064100006410000000005013247541377020321 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/bad5.out0000644000064100006410000000007613247541377015141 0ustar ejbejbbad5.pdf (xref table, offset 591): invalid xref entry (obj=2) qpdf-8.0.2/qpdf/qtest/qpdf/good7.qdf0000644000064100006410000000214713247541377015311 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 43 endobj %% Original object ID: 6 0 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 5 0 7 0 obj [ /PDF /Text ] endobj xref 0 8 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000242 00000 n 0000000484 00000 n 0000000582 00000 n 0000000628 00000 n 0000000773 00000 n trailer << /QTest 16059 /Root 1 0 R /Size 8 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 808 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/diff-encrypted0000755000064100006410000000026013247541377016421 0ustar ejbejb#!/bin/sh lines=$(expr 0 + $(diff "$1" "$2" | egrep '^[<>]' | egrep -v '(Date|InstanceID)' | wc -l)) if [ "$lines" = "0" ]; then echo okay else diff -a -U 0 "$1" "$2" fi qpdf-8.0.2/qpdf/qtest/qpdf/good21.qdf0000644000064100006410000000214713247541377015365 0ustar ejbejb%PDF-1.1 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj %% Original object ID: 6 0 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 5 0 7 0 obj [ /PDF /Text ] endobj xref 0 8 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000242 00000 n 0000000484 00000 n 0000000583 00000 n 0000000629 00000 n 0000000774 00000 n trailer << /QTest /#23 /Root 1 0 R /Size 8 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 809 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/xref-errors.out0000644000064100006410000000130213247541377016575 0ustar ejbejbWARNING: xref-errors.pdf (xref table, offset 585): accepting invalid xref table entry WARNING: xref-errors.pdf (xref table, offset 606): accepting invalid xref table entry WARNING: xref-errors.pdf (xref table, offset 627): accepting invalid xref table entry WARNING: xref-errors.pdf (xref table, offset 648): accepting invalid xref table entry WARNING: xref-errors.pdf (xref table, offset 667): accepting invalid xref table entry checking xref-errors.pdf PDF Version: 1.3 File is not encrypted File is not linearized 1/0: uncompressed; offset = 9 2/0: uncompressed; offset = 63 3/0: uncompressed; offset = 135 4/0: uncompressed; offset = 307 5/0: uncompressed; offset = 403 6/0: uncompressed; offset = 438 qpdf-8.0.2/qpdf/qtest/qpdf/bad22-recover.out0000644000064100006410000000102313247541377016654 0ustar ejbejbWARNING: bad22.pdf (object 4 0, offset 314): stream dictionary lacks /Length key WARNING: bad22.pdf (object 4 0, offset 341): attempting to recover stream length WARNING: bad22.pdf (object 4 0, offset 341): recovered stream length: 44 /QTest is indirect and has type stream (10) /QTest is a stream. Dictionary: << /Qength 44 >> Raw stream data: BT /F1 24 Tf 72 720 Td (Potato) Tj ET Uncompressed stream data: BT /F1 24 Tf 72 720 Td (Potato) Tj ET End of stream data unparse: 4 0 R unparseResolved: 4 0 R test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/bad22.out0000644000064100006410000000031513247541377015214 0ustar ejbejbWARNING: bad22.pdf (object 4 0, offset 314): stream dictionary lacks /Length key /QTest is implicit /QTest is indirect and has type null (2) /QTest is null unparse: 4 0 R unparseResolved: null test 0 done qpdf-8.0.2/qpdf/qtest/qpdf/extensions-none-min-1.8.out0000644000064100006410000000006213247541377020542 0ustar ejbejbversion: 1.8 extension level: 0 null test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/extensions-none-force-1.3.out0000644000064100006410000000006213247541377021050 0ustar ejbejbversion: 1.3 extension level: 0 null test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/issue-146.out0000644000064100006410000000074313247541377015767 0ustar ejbejbWARNING: issue-146.pdf: file is damaged WARNING: issue-146.pdf: can't find startxref WARNING: issue-146.pdf: Attempting to reconstruct cross-reference table WARNING: issue-146.pdf (trailer, offset 20728): unknown token while reading object; treating as string WARNING: issue-146.pdf (trailer, offset 20732): unexpected EOF WARNING: issue-146.pdf (trailer, offset 20732): parse error while reading object issue-146.pdf: unable to find trailer dictionary while recovering damaged file qpdf-8.0.2/qpdf/qtest/qpdf/c-r5-key-owner.out0000644000064100006410000000121513247541377017006 0ustar ejbejbchecking c-r5-in.pdf PDF Version: 1.7 extension level 3 R = 5 P = -2052 User password = Encryption key = 35ea16a48b6a3045133b69ac0906c2e8fb0a2cc97903ae17b51a5786ebdba020 extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: not allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed stream encryption method: AESv3 string encryption method: AESv3 file encryption method: AESv3 File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-other-min-1.8.out0000644000064100006410000000015513247541377021620 0ustar ejbejbversion: 1.8 extension level: 0 << /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.10.check0000644000064100006410000000067613247541377017560 0ustar ejbejbchecking a.pdf PDF Version: 1.5 R = 3 P = -4 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/V4.pdf0000644000064100006410000003467513247541377014575 0ustar ejbejb%PDF-1.5 % 1 0 obj << /Metadata 3 0 R /Outlines 4 0 R /PageLabels << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /PageMode /UseOutlines /Pages 5 0 R /Type /Catalog >> endobj 2 0 obj << /CreationDate <878feb73403029cf616cb1a687facf5fda374c7d7aea69> /ModDate <878feb73403029cf616cb1a687facf5fda374c7d7aea69> >> endobj 3 0 obj << /Subtype /XML /Type /Metadata /Length 313 /Filter /FlateDecode >> stream VȁgǙ4P/DSI Lġ*tw ̒-IdM韫.ڰl)0\˅PCJ<ךAIT#P2O5#B-tƟF@lp k@JFDOpbaMge]UX~-xW-`H<#fߩ Ϯl >#Q >;䬿i;& X2j0i{4=3@%{0^ qe5e-Z[c1)ͭ"lendstream endobj 4 0 obj << /Count 6 /First 6 0 R /Last 7 0 R /Type /Outlines >> endobj 5 0 obj << /Count 30 /Kids [ 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 35 0 R 36 0 R 37 0 R ] /Type /Pages >> endobj 6 0 obj << /Count 4 /Dest [ 13 0 R /XYZ null null null ] /First 38 0 R /Last 39 0 R /Next 7 0 R /Parent 4 0 R /Title /Type /Outline >> endobj 7 0 obj << /Dest [ 23 0 R /XYZ 66 756 3 ] /Parent 4 0 R /Prev 6 0 R /Title <1b6409921a12fc17589224e8432a6551df02dc0438828b2945875ecb66> /Type /Outline >> endobj 8 0 obj << /Contents 40 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 9 0 obj << /Contents 43 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 10 0 obj << /Contents 44 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 11 0 obj << /Contents 45 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 12 0 obj << /Contents 46 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 13 0 obj << /Contents 47 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 14 0 obj << /Contents 48 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 15 0 obj << /Contents 49 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 16 0 obj << /Contents 50 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 17 0 obj << /Contents 51 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 18 0 obj << /Contents 52 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 19 0 obj << /Contents 53 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 20 0 obj << /Contents 54 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 21 0 obj << /Contents 55 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 22 0 obj << /Contents 56 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 23 0 obj << /Contents 57 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 24 0 obj << /Contents 58 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 25 0 obj << /Contents 59 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 26 0 obj << /Contents 60 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 27 0 obj << /Contents 61 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 28 0 obj << /Contents 62 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 29 0 obj << /Contents 63 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 30 0 obj << /Contents 64 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 31 0 obj << /Contents 65 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 32 0 obj << /Contents 66 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 33 0 obj << /Contents 67 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 34 0 obj << /Contents 68 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 35 0 obj << /Contents 69 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 36 0 obj << /Contents 70 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 37 0 obj << /Contents 71 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 38 0 obj << /Count -3 /Dest [ 19 0 R /Fit ] /First 72 0 R /Last 73 0 R /Next 39 0 R /Parent 6 0 R /Title <704e93f71c093c9451f51d8d30096777c6db3ca1ed26> /Type /Outline >> endobj 39 0 obj << /Count 2 /Dest [ 21 0 R /FitH 792 ] /First 74 0 R /Last 75 0 R /Parent 6 0 R /Prev 38 0 R /Title <9271cad9b87307ae19e794d736db6434febf8562dcac44677abc> /Type /Outline >> endobj 40 0 obj << /Filter /FlateDecode /Length 52 >> stream kQެh}d0 0Ȭ2;ϭzɴ6LO(endstream endobj 41 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 42 0 obj [ /PDF /Text ] endobj 43 0 obj << /Filter /FlateDecode /Length 52 >> stream *92'hv?*,/Mt{> stream >iGyx lOeਆygS=wJ@]wDh@endstream endobj 45 0 obj << /Filter /FlateDecode /Length 52 >> stream ]yj7Ur3:]23CT#+/?h%{Ҽ>ddendstream endobj 46 0 obj << /Filter /FlateDecode /Length 52 >> stream 輅YCXy4k!JW:6t3,i-{~9ةrfo(P"G_Խ@endstream endobj 47 0 obj << /Filter /FlateDecode /Length 52 >> stream JH T6=f@T$25M:bc;<>5`T endstream endobj 48 0 obj << /Filter /FlateDecode /Length 52 >> stream qDőC)S?^i\'= $"^O5endstream endobj 49 0 obj << /Filter /FlateDecode /Length 52 >> stream Ng 1~eW-rTz Qaz-bO5cendstream endobj 50 0 obj << /Filter /FlateDecode /Length 52 >> stream "n%ֶe"` AG8߯yeaUb~WѮu4Yendstream endobj 51 0 obj << /Filter /FlateDecode /Length 52 >> stream 'bέ/[ E^%,|b+p u&";˓'J`Gp{endstream endobj 52 0 obj << /Filter /FlateDecode /Length 53 >> stream =<\Y4>L!Uv3v?EeHWHP$endstream endobj 53 0 obj << /Filter /FlateDecode /Length 53 >> stream ^ g\Ի{<]DJ'C4 Te6 endstream endobj 54 0 obj << /Filter /FlateDecode /Length 53 >> stream hri ] uґNDJ XPd, P&_n`M[ #5pendstream endobj 55 0 obj << /Filter /FlateDecode /Length 53 >> stream h Tw{bҫ <5z ~oSUiX]/endstream endobj 56 0 obj << /Filter /FlateDecode /Length 53 >> stream 9gv:Xd\#N3&u} q`Gܠ> 1mT** endstream endobj 57 0 obj << /Filter /FlateDecode /Length 53 >> stream l {<&EO 2W[-A̚W)*p?Vrendstream endobj 58 0 obj << /Filter /FlateDecode /Length 53 >> stream lWcž%}[G$`vLxgB.6\N?endstream endobj 59 0 obj << /Filter /FlateDecode /Length 53 >> stream `9]JĆi n!z:Pd;'2c*tJg}"D"/ IRendstream endobj 60 0 obj << /Filter /FlateDecode /Length 53 >> stream T4E4Ƙ==rG` {BMOhtE?\B yendstream endobj 61 0 obj << /Filter /FlateDecode /Length 53 >> stream :0 |V-)웗(]Et / v{9&bendstream endobj 62 0 obj << /Filter /FlateDecode /Length 53 >> stream f=1S$j~4m-{F\A1+hK4h1 Iendstream endobj 63 0 obj << /Filter /FlateDecode /Length 53 >> stream }"4,A@#wƥ@%x\qز 1ROFendstream endobj 64 0 obj << /Filter /FlateDecode /Length 53 >> stream SU]RFj$G2i1̾%F~z/| Aendstream endobj 65 0 obj << /Filter /FlateDecode /Length 53 >> stream yX`k DwV^xDJ{?~' /-QF\d{T鼜endstream endobj 66 0 obj << /Filter /FlateDecode /Length 52 >> stream  ^/_P ^ר_N;Ε(._Np+tendstream endobj 67 0 obj << /Filter /FlateDecode /Length 53 >> stream *6b9,j!m^FMPۗ~Bo4(Ibђ?endstream endobj 68 0 obj << /Filter /FlateDecode /Length 53 >> stream Lj)rq7W(Vu;MY0RKaw⛲m+11Msendstream endobj 69 0 obj << /Filter /FlateDecode /Length 53 >> stream ܂ᷕqigL Fِt.ěX!K%:y.I^+HVJ^* `endstream endobj 70 0 obj << /Filter /FlateDecode /Length 53 >> stream mZQ"T:#cwX (U%,D\B6Y2q=u>̀endstream endobj 71 0 obj << /Filter /FlateDecode /Length 53 >> stream (is(kI; u9 "ՉIlxTQE*GZ(endstream endobj 72 0 obj << /Count -2 /Dest [ 20 0 R /FitV 100 ] /First 76 0 R /Last 77 0 R /Next 73 0 R /Parent 38 0 R /Title /Type /Outline >> endobj 73 0 obj << /Count 1 /Dest [ 20 0 R /XYZ null null null ] /First 78 0 R /Last 78 0 R /Parent 38 0 R /Prev 72 0 R /Title /Type /Outline >> endobj 74 0 obj << /Dest [ 9 0 R /FitR 66 714 180 770 ] /Next 75 0 R /Parent 39 0 R /Title <14a231dc625225d5f35045fbbf0ffabde08f8a26f9b3c4390bece8df0f4b41f6fe6f9588e930769cebd9560d> /Type /Outline >> endobj 75 0 obj << /Dest [ 8 0 R /XYZ null null null ] /Parent 39 0 R /Prev 74 0 R /Title <6475a8e89ca1782fdac584ae05b3d353f0db39a37845916b6f24c5e24ab7db06ede90f55f4eed495c9> /Type /Outline >> endobj 76 0 obj << /Dest [ 26 0 R /XYZ null null null ] /Next 77 0 R /Parent 72 0 R /Title /Type /Outline >> endobj 77 0 obj << /Dest [ 27 0 R /XYZ null null null ] /Parent 72 0 R /Prev 76 0 R /Title <1f24e992b2baf565c42d1e97107c241ebd6ed15e6de811d6a1b84f04fb5c492329ad9deb7e89e68ae8a52b> /Type /Outline >> endobj 78 0 obj << /Dest [ 30 0 R /XYZ null null null ] /Parent 73 0 R /Title <884aeeefd7963d0158fec2161eb1313b88836487b0324828302315fa0d7376ade68c6481cfdfcedd17b6f5> /Type /Outline >> endobj 79 0 obj << /CF << /StdCF << /AuthEvent /DocOpen /CFM /V2 /Length 16 >> >> /Filter /Standard /Length 128 /O <36451bd39d753b7c1d10922c28e6665aa4f3353fb0348b536893e3b1db5c579b> /P -4 /R 4 /StmF /StdCF /StrF /StdCF /U <32c27288b9ec6a4fab94e6188828595c0122456a91bae5134273a6db134c87c4> /V 4 >> endobj xref 0 80 0000000000 65535 f 0000000015 00000 n 0000000378 00000 n 0000000520 00000 n 0000000934 00000 n 0000001005 00000 n 0000001267 00000 n 0000001476 00000 n 0000001637 00000 n 0000001818 00000 n 0000001999 00000 n 0000002181 00000 n 0000002363 00000 n 0000002545 00000 n 0000002727 00000 n 0000002909 00000 n 0000003091 00000 n 0000003273 00000 n 0000003455 00000 n 0000003637 00000 n 0000003819 00000 n 0000004001 00000 n 0000004183 00000 n 0000004365 00000 n 0000004547 00000 n 0000004729 00000 n 0000004911 00000 n 0000005093 00000 n 0000005275 00000 n 0000005457 00000 n 0000005639 00000 n 0000005821 00000 n 0000006003 00000 n 0000006185 00000 n 0000006367 00000 n 0000006549 00000 n 0000006731 00000 n 0000006913 00000 n 0000007095 00000 n 0000007272 00000 n 0000007461 00000 n 0000007584 00000 n 0000007692 00000 n 0000007723 00000 n 0000007846 00000 n 0000007969 00000 n 0000008092 00000 n 0000008215 00000 n 0000008338 00000 n 0000008461 00000 n 0000008584 00000 n 0000008707 00000 n 0000008830 00000 n 0000008954 00000 n 0000009078 00000 n 0000009202 00000 n 0000009326 00000 n 0000009450 00000 n 0000009574 00000 n 0000009698 00000 n 0000009822 00000 n 0000009946 00000 n 0000010070 00000 n 0000010194 00000 n 0000010318 00000 n 0000010442 00000 n 0000010566 00000 n 0000010689 00000 n 0000010813 00000 n 0000010937 00000 n 0000011061 00000 n 0000011185 00000 n 0000011309 00000 n 0000011510 00000 n 0000011740 00000 n 0000011940 00000 n 0000012133 00000 n 0000012331 00000 n 0000012529 00000 n 0000012714 00000 n trailer << /Info 2 0 R /Root 1 0 R /Size 80 /ID [<66d36a30a97e0f16f39955c6221e0c2a><31415926535897932384626433832795>] /Encrypt 79 0 R >> startxref 13011 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad17.out0000644000064100006410000000034213247541377015220 0ustar ejbejbWARNING: bad17.pdf (trailer, offset 715): dictionary ended prematurely; using null as value for last key /QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 0 done qpdf-8.0.2/qpdf/qtest/qpdf/object-types-os.out0000644000064100006410000001267313247541377017363 0ustar ejbejbWARNING: object-types-os.pdf object stream 1, object 7 0 at offset 347: operation for string attempted on object of type dictionary: returning empty string WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 384: returning null for out of bounds array access WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 384: returning null for out of bounds array access WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 429: operation for array attempted on object of type integer: returning null WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 429: operation for array attempted on object of type integer: ignoring attempt to append item WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 384: ignoring attempt to erase out of bounds array item WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 384: ignoring attempt to erase out of bounds array item WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 429: operation for array attempted on object of type integer: ignoring attempt to erase item WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 429: operation for array attempted on object of type integer: ignoring attempt to insert item WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 429: operation for array attempted on object of type integer: ignoring attempt to replace items WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 429: operation for array attempted on object of type integer: ignoring attempt to set item WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 429: operation for array attempted on object of type integer: treating as empty WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 429: operation for array attempted on object of type integer: treating as empty WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 429: operation for boolean attempted on object of type integer: returning false WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 429: operation for dictionary attempted on object of type integer: treating as empty WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 429: operation for dictionary attempted on object of type integer: treating as empty WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 429: operation for dictionary attempted on object of type integer: returning false for a key containment request WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 429: operation for dictionary attempted on object of type integer: ignoring key removal request WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 429: operation for dictionary attempted on object of type integer: ignoring key removal/replacement request WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 429: operation for dictionary attempted on object of type integer: ignoring key removal/replacement request WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 429: operation for dictionary attempted on object of type integer: ignoring key replacement request WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 429: operation for dictionary attempted on object of type integer: returning null for attempted key retrieval WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 429: operation for inlineimage attempted on object of type integer: returning empty data WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 362: operation for integer attempted on object of type dictionary: returning 0 WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 429: operation for name attempted on object of type integer: returning dummy name WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 429: operation for operator attempted on object of type integer: returning fake value WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 362: operation for real attempted on object of type dictionary: returning 0.0 WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 429: operation for string attempted on object of type integer: returning empty string WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 429: operation for string attempted on object of type integer: returning empty string WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 362: operation for number attempted on object of type dictionary: returning 0 One error WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 385: operation for string attempted on object of type name: returning empty string One error WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 362 -> dictionary key /Quack: operation for string attempted on object of type null: returning empty string Two errors WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 384: returning null for out of bounds array access WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 384 -> null returned from invalid array access: operation for string attempted on object of type null: returning empty string One error WARNING: object-types-os.pdf object stream 1, object 7 0 at offset 400: operation for string attempted on object of type name: returning empty string WARNING: object-types-os.pdf, object 8 0 at offset 538 -> dictionary key /Potato: operation for name attempted on object of type null: returning dummy name test 42 done qpdf-8.0.2/qpdf/qtest/qpdf/extensions-none-force-1.7.1.out0000644000064100006410000000014313247541377021213 0ustar ejbejbversion: 1.7 extension level: 1 << /ADBE << /BaseVersion /1.7 /ExtensionLevel 1 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/V5R6.out0000644000064100006410000000106213247541377015024 0ustar ejbejbchecking a.pdf PDF Version: 1.7 extension level 8 R = 6 P = -4 User password = user extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed stream encryption method: AESv3 string encryption method: AESv3 file encryption method: AESv3 File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/good18.qdf0000644000064100006410000003536313247541377015401 0ustar ejbejb%PDF-1.5 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /PageMode /UseOutlines /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 30 /Kids [ 3 0 R 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 33 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 2 %% Original object ID: 4 0 4 0 obj << /Contents 37 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 3 %% Original object ID: 5 0 5 0 obj << /Contents 39 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 4 %% Original object ID: 6 0 6 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 5 %% Original object ID: 7 0 7 0 obj << /Contents 43 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 6 %% Original object ID: 8 0 8 0 obj << /Contents 45 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 7 %% Original object ID: 9 0 9 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 8 %% Original object ID: 10 0 10 0 obj << /Contents 49 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 9 %% Original object ID: 11 0 11 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 10 %% Original object ID: 12 0 12 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 11 %% Original object ID: 13 0 13 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 12 %% Original object ID: 14 0 14 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 13 %% Original object ID: 15 0 15 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 14 %% Original object ID: 16 0 16 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 15 %% Original object ID: 17 0 17 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 16 %% Original object ID: 18 0 18 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 17 %% Original object ID: 19 0 19 0 obj << /Contents 67 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 18 %% Original object ID: 20 0 20 0 obj << /Contents 69 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 19 %% Original object ID: 21 0 21 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 20 %% Original object ID: 22 0 22 0 obj << /Contents 73 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 21 %% Original object ID: 23 0 23 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 22 %% Original object ID: 24 0 24 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 23 %% Original object ID: 25 0 25 0 obj << /Contents 79 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 24 %% Original object ID: 26 0 26 0 obj << /Contents 81 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 25 %% Original object ID: 27 0 27 0 obj << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 26 %% Original object ID: 28 0 28 0 obj << /Contents 85 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 27 %% Original object ID: 29 0 29 0 obj << /Contents 87 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 28 %% Original object ID: 30 0 30 0 obj << /Contents 89 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 29 %% Original object ID: 31 0 31 0 obj << /Contents 91 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 30 %% Original object ID: 32 0 32 0 obj << /Contents 93 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 33 0 33 0 obj << /Length 34 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 0) Tj ET endstream endobj 34 0 obj 46 endobj %% Original object ID: 35 0 35 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 36 0 36 0 obj [ /PDF /Text ] endobj %% Contents for page 2 %% Original object ID: 37 0 37 0 obj << /Length 38 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 38 0 obj 46 endobj %% Contents for page 3 %% Original object ID: 39 0 39 0 obj << /Length 40 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 40 0 obj 46 endobj %% Contents for page 4 %% Original object ID: 41 0 41 0 obj << /Length 42 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 42 0 obj 46 endobj %% Contents for page 5 %% Original object ID: 43 0 43 0 obj << /Length 44 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 44 0 obj 46 endobj %% Contents for page 6 %% Original object ID: 45 0 45 0 obj << /Length 46 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 46 0 obj 46 endobj %% Contents for page 7 %% Original object ID: 47 0 47 0 obj << /Length 48 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 48 0 obj 46 endobj %% Contents for page 8 %% Original object ID: 49 0 49 0 obj << /Length 50 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 50 0 obj 46 endobj %% Contents for page 9 %% Original object ID: 51 0 51 0 obj << /Length 52 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 52 0 obj 46 endobj %% Contents for page 10 %% Original object ID: 53 0 53 0 obj << /Length 54 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 54 0 obj 46 endobj %% Contents for page 11 %% Original object ID: 55 0 55 0 obj << /Length 56 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 56 0 obj 47 endobj %% Contents for page 12 %% Original object ID: 57 0 57 0 obj << /Length 58 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 58 0 obj 47 endobj %% Contents for page 13 %% Original object ID: 59 0 59 0 obj << /Length 60 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 60 0 obj 47 endobj %% Contents for page 14 %% Original object ID: 61 0 61 0 obj << /Length 62 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 62 0 obj 47 endobj %% Contents for page 15 %% Original object ID: 63 0 63 0 obj << /Length 64 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 64 0 obj 47 endobj %% Contents for page 16 %% Original object ID: 65 0 65 0 obj << /Length 66 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 66 0 obj 47 endobj %% Contents for page 17 %% Original object ID: 67 0 67 0 obj << /Length 68 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 68 0 obj 47 endobj %% Contents for page 18 %% Original object ID: 69 0 69 0 obj << /Length 70 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 70 0 obj 47 endobj %% Contents for page 19 %% Original object ID: 71 0 71 0 obj << /Length 72 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 72 0 obj 47 endobj %% Contents for page 20 %% Original object ID: 73 0 73 0 obj << /Length 74 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 74 0 obj 47 endobj %% Contents for page 21 %% Original object ID: 75 0 75 0 obj << /Length 76 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 76 0 obj 47 endobj %% Contents for page 22 %% Original object ID: 77 0 77 0 obj << /Length 78 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 78 0 obj 47 endobj %% Contents for page 23 %% Original object ID: 79 0 79 0 obj << /Length 80 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 80 0 obj 47 endobj %% Contents for page 24 %% Original object ID: 81 0 81 0 obj << /Length 82 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 82 0 obj 47 endobj %% Contents for page 25 %% Original object ID: 83 0 83 0 obj << /Length 84 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 84 0 obj 47 endobj %% Contents for page 26 %% Original object ID: 85 0 85 0 obj << /Length 86 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 86 0 obj 47 endobj %% Contents for page 27 %% Original object ID: 87 0 87 0 obj << /Length 88 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 88 0 obj 47 endobj %% Contents for page 28 %% Original object ID: 89 0 89 0 obj << /Length 90 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 90 0 obj 47 endobj %% Contents for page 29 %% Original object ID: 91 0 91 0 obj << /Length 92 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 92 0 obj 47 endobj %% Contents for page 30 %% Original object ID: 93 0 93 0 obj << /Length 94 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 94 0 obj 47 endobj xref 0 95 0000000000 65535 f 0000000052 00000 n 0000000158 00000 n 0000000581 00000 n 0000000813 00000 n 0000001045 00000 n 0000001277 00000 n 0000001509 00000 n 0000001741 00000 n 0000001973 00000 n 0000002206 00000 n 0000002440 00000 n 0000002675 00000 n 0000002910 00000 n 0000003145 00000 n 0000003380 00000 n 0000003615 00000 n 0000003850 00000 n 0000004085 00000 n 0000004320 00000 n 0000004555 00000 n 0000004790 00000 n 0000005025 00000 n 0000005260 00000 n 0000005495 00000 n 0000005730 00000 n 0000005965 00000 n 0000006200 00000 n 0000006435 00000 n 0000006670 00000 n 0000006905 00000 n 0000007140 00000 n 0000007375 00000 n 0000007622 00000 n 0000007725 00000 n 0000007773 00000 n 0000007920 00000 n 0000008007 00000 n 0000008110 00000 n 0000008181 00000 n 0000008284 00000 n 0000008355 00000 n 0000008458 00000 n 0000008529 00000 n 0000008632 00000 n 0000008703 00000 n 0000008806 00000 n 0000008877 00000 n 0000008980 00000 n 0000009051 00000 n 0000009154 00000 n 0000009225 00000 n 0000009328 00000 n 0000009400 00000 n 0000009503 00000 n 0000009575 00000 n 0000009679 00000 n 0000009751 00000 n 0000009855 00000 n 0000009927 00000 n 0000010031 00000 n 0000010103 00000 n 0000010207 00000 n 0000010279 00000 n 0000010383 00000 n 0000010455 00000 n 0000010559 00000 n 0000010631 00000 n 0000010735 00000 n 0000010807 00000 n 0000010911 00000 n 0000010983 00000 n 0000011087 00000 n 0000011159 00000 n 0000011263 00000 n 0000011335 00000 n 0000011439 00000 n 0000011511 00000 n 0000011615 00000 n 0000011687 00000 n 0000011791 00000 n 0000011863 00000 n 0000011967 00000 n 0000012039 00000 n 0000012143 00000 n 0000012215 00000 n 0000012319 00000 n 0000012391 00000 n 0000012495 00000 n 0000012567 00000 n 0000012671 00000 n 0000012743 00000 n 0000012847 00000 n 0000012919 00000 n 0000013023 00000 n trailer << /Root 1 0 R /Size 95 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 13043 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/eof-terminates-literal.out0000644000064100006410000000030713247541377020677 0ustar ejbejbchecking eof-terminates-literal.pdf PDF Version: 1.3 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/bad21.out0000644000064100006410000000064213247541377015216 0ustar ejbejbWARNING: bad21.pdf (trailer, offset 742): invalid name token WARNING: bad21.pdf (trailer, offset 715): expected dictionary key but found non-name object; inserting key /QPDFFake1 WARNING: bad21.pdf (trailer, offset 715): expected dictionary key but found non-name object; inserting key /QPDFFake2 /QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 0 done qpdf-8.0.2/qpdf/qtest/qpdf/copy-foreign-objects-out2.pdf0000644000064100006410000000343013247541377021204 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 3 0 R /Type /Catalog >> endobj 2 0 obj << /O1 4 0 R /O2 5 0 R /O3 6 0 R /This-is-QTest true >> endobj 3 0 obj << /Count 2 /Kids [ 7 0 R 6 0 R ] /Type /Pages >> endobj 4 0 obj [ /This-is-O1 /potato << /O2 [ 3.14159 << /O2 5 0 R >> 2.17828 ] >> /salad /O2 5 0 R /Stream1 8 0 R ] endobj 5 0 obj << /K1 [ 2.236 /O1 4 0 R 1.732 ] /O1 4 0 R /This-is-O2 true >> endobj 6 0 obj << /Contents 9 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 10 0 R >> /ProcSet [ /PDF /Text ] >> /Rotate 180 /This-is-O3 true /Type /Page >> endobj 7 0 obj << /Contents 11 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 12 0 R >> /ProcSet 13 0 R >> /Type /Page >> endobj 8 0 obj << /Stream2 14 0 R /This-is-Stream1 true /Length 18 >> stream This is stream 1. endstream endobj 9 0 obj << /Length 47 >> stream BT /F1 15 Tf 72 720 Td (Original page 2) Tj ET endstream endobj 10 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 11 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 12 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 13 0 obj [ /PDF /Text ] endobj 14 0 obj << /Stream1 8 0 R /This-is-Stream2 true /Length 18 >> stream This is stream 2. endstream endobj xref 0 15 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000135 00000 n 0000000200 00000 n 0000000317 00000 n 0000000395 00000 n 0000000577 00000 n 0000000723 00000 n 0000000828 00000 n 0000000924 00000 n 0000001024 00000 n 0000001118 00000 n 0000001226 00000 n 0000001257 00000 n trailer << /QTest 2 0 R /Root 1 0 R /Size 15 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 1362 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.5.c-check0000644000064100006410000000005013247541377021360 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/c-info1.out0000644000064100006410000000025313247541377015557 0ustar ejbejbInfo key /Author: (null) Info key /Producer: (null) Info key /Creator: (null) Info key /Author: Mr. Potato Head Info key /Producer: QPDF library Info key /Creator: (null) qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.1-ogen.check0000644000064100006410000000026213247541377020415 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.6-ogen.check0000644000064100006410000000026213247541377020063 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/eof-in-inline-image.out0000644000064100006410000000061713247541377020040 0ustar ejbejboperator: BT name: /F1 integer: 24 operator: Tf integer: 72 integer: 720 operator: Td string: (Potato) operator: Tj operator: ET operator: BI name: /CS name: /G name: /W integer: 1 name: /H integer: 1 name: /BPC integer: 8 name: /F name: /Fl name: /DP dictionary: << /Columns 1 /Predictor 15 >> operator: ID page object 3 0 stream 4 0 (stream data, offset 139): EOF found while reading inline image qpdf-8.0.2/qpdf/qtest/qpdf/good14.out0000644000064100006410000000562613247541377015431 0ustar ejbejb-- stream 0 -- A %here is a comment B % here is another with CR A B one two three lines (string with \r\nCRNL) and another indentation (\001B%DEF)<01> <8a8b> (ab) <8c>
) > <610062> (MOO)WARNING: good14.pdf (offset 628): content normalization encountered bad tokens WARNING: good14.pdf (offset 628): Resulting stream data may be corrupted but is may still useful for manual inspection. For more information on this warning, search for content normalization in the manual. -- stream 1 -- This stream does end with a newline. // tests: // bad tokens preserved // comments // indentation // CR/NL inside string literal -- changed to \r or \n, newline follows // whitespace in hexstring (removed) // strings normalized // newlines normalized // names normalized // trailing space (preserved) // final newline added /bad#name /good name /bad#00name WARNING: good14.pdf (offset 860): content normalization encountered bad tokens WARNING: good14.pdf (offset 860): Resulting stream data may be corrupted but is may still useful for manual inspection. For more information on this warning, search for content normalization in the manual. -- stream 2 -- (This stream ends with a \001 bad token WARNING: good14.pdf (offset 1316): content normalization encountered bad tokens WARNING: good14.pdf (offset 1316): normalized content ended with a bad token; you may be able to resolve this by coalescing content streams in combination with normalizing content. From the command line, specify --coalesce-contents WARNING: good14.pdf (offset 1316): Resulting stream data may be corrupted but is may still useful for manual inspection. For more information on this warning, search for content normalization in the manual. -- stream 3 -- WARNING: good14.pdf (offset 1549): content normalization encountered bad tokens WARNING: good14.pdf (offset 1549): normalized content ended with a bad token; you may be able to resolve this by coalescing content streams in combination with normalizing content. From the command line, specify --coalesce-contents WARNING: good14.pdf (offset 1549): Resulting stream data may be corrupted but is may still useful for manual inspection. For more information on this warning, search for content normalization in the manual. test 3 done qpdf-8.0.2/qpdf/qtest/qpdf/issue-149.out0000644000064100006410000000037313247541377015771 0ustar ejbejbWARNING: issue-149.pdf: file is damaged WARNING: issue-149.pdf: loop detected following xref tables WARNING: issue-149.pdf: Attempting to reconstruct cross-reference table qpdf: operation succeeded with warnings; resulting file may have some problems qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-other-min-1.7.3.out0000644000064100006410000000023513247541377021757 0ustar ejbejbversion: 1.7 extension level: 3 << /ADBE << /BaseVersion /1.7 /ExtensionLevel 3 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/bad12.out0000644000064100006410000000033313247541377015213 0ustar ejbejbWARNING: bad12.pdf: reported number of objects (9) inconsistent with actual number of objects (8) /QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 0 done qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-other-min-1.6.out0000644000064100006410000000023513247541377021615 0ustar ejbejbversion: 1.7 extension level: 2 << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/good15.qdf0000644000064100006410000000214713247541377015370 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 43 endobj %% Original object ID: 6 0 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 5 0 7 0 obj [ /PDF /Text ] endobj xref 0 8 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000242 00000 n 0000000484 00000 n 0000000582 00000 n 0000000628 00000 n 0000000773 00000 n trailer << /QTest /oink /Root 1 0 R /Size 8 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 808 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad27.out0000644000064100006410000000027213247541377015223 0ustar ejbejbWARNING: bad27.pdf (object 4 0, offset 307): expected n n obj /QTest is implicit /QTest is indirect and has type null (2) /QTest is null unparse: 4 0 R unparseResolved: null test 0 done qpdf-8.0.2/qpdf/qtest/qpdf/extensions-other-force-1.7.1.out0000644000064100006410000000023513247541377021377 0ustar ejbejbversion: 1.7 extension level: 1 << /ADBE << /BaseVersion /1.7 /ExtensionLevel 1 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.8.check0000644000064100006410000000026213247541377017162 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.7.c-check0000644000064100006410000000005013247541377017710 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.1-ogen.c-check0000644000064100006410000000005013247541377022302 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.2.check0000644000064100006410000000026213247541377017154 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/encrypted1.out0000644000064100006410000000032713247541377016403 0ustar ejbejbD:20080424174457 Apex PDFWriter <36451bd39d753b7c1d10922c28e6665aa4f3353fb0348b536893e3b1db5c579b> q 185 0 0 200 213.5 296 cm /Im2 Do Q test 2 done qpdf-8.0.2/qpdf/qtest/qpdf/issue-150.out0000644000064100006410000000016213247541377015755 0ustar ejbejbWARNING: issue-150.pdf: can't find PDF header overflow/underflow converting 9900000000000000000 to 64-bit integer qpdf-8.0.2/qpdf/qtest/qpdf/p1-a.pdf0000644000064100006410000000166213247541377015030 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (A) Tj ET endstream endobj 5 0 obj 39 endobj 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 7 0 obj [ /PDF /Text ] endobj xref 0 8 0000000000 65535 f 0000000025 00000 n 0000000079 00000 n 0000000161 00000 n 0000000376 00000 n 0000000470 00000 n 0000000489 00000 n 0000000607 00000 n trailer << /Root 1 0 R /Size 8 /ID [<36b07232d7657658c548006151d4c57c><36b07232d7657658c548006151d4c57c>] >> startxref 642 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/show-page-1-content-normalized.out0000644000064100006410000000011013247541377022155 0ustar ejbejbq 222 0 0 240 28.5 96 cm /Im1 Do Q q 185 0 0 200 313.5 296 cm /Im2 Do Q qpdf-8.0.2/qpdf/qtest/qpdf/split-exp-40000644000064100006410000000143713247541377015610 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet 6 0 R >> /Type /Page >> endobj 4 0 obj << /Length 48 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 5 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 6 0 obj [ /PDF /Text ] endobj xref 0 7 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000266 00000 n 0000000384 00000 n 0000000491 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 521 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.12.c-check0000644000064100006410000000005013247541377017764 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/good6.qdf0000644000064100006410000000215013247541377015302 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj %% Original object ID: 6 0 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 5 0 7 0 obj [ /PDF /Text ] endobj xref 0 8 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000242 00000 n 0000000484 00000 n 0000000583 00000 n 0000000629 00000 n 0000000774 00000 n trailer << /QTest false /Root 1 0 R /Size 8 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 809 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/page-labels-and-outlines.pdf0000644000064100006410000003716213247541377021052 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /PageLabels << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /Pages 2 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 95 0 R >> endobj 2 0 obj << /Count 30 /Kids [ 3 0 R 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R ] /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents 33 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 2 4 0 obj << /Contents 37 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 3 5 0 obj << /Contents 39 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 4 6 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 5 7 0 obj << /Contents 43 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 6 8 0 obj << /Contents 45 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 7 9 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 8 10 0 obj << /Contents 49 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 9 11 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 10 12 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 11 13 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 12 14 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 13 15 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 14 16 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 15 17 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 16 18 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 17 19 0 obj << /Contents 67 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 18 20 0 obj << /Contents 69 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 19 21 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 20 22 0 obj << /Contents 73 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 21 23 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 22 24 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 23 25 0 obj << /Contents 79 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 24 26 0 obj << /Contents 81 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 25 27 0 obj << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 26 28 0 obj << /Contents 85 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 27 29 0 obj << /Contents 87 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 28 30 0 obj << /Contents 89 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 29 31 0 obj << /Contents 91 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 30 32 0 obj << /Contents 93 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Contents for page 1 33 0 obj << /Length 34 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 0) Tj ET endstream endobj 34 0 obj 46 endobj 35 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 36 0 obj [ /PDF /Text ] endobj %% Contents for page 2 37 0 obj << /Length 38 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 38 0 obj 46 endobj %% Contents for page 3 39 0 obj << /Length 40 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 40 0 obj 46 endobj %% Contents for page 4 41 0 obj << /Length 42 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 42 0 obj 46 endobj %% Contents for page 5 43 0 obj << /Length 44 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 44 0 obj 46 endobj %% Contents for page 6 45 0 obj << /Length 46 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 46 0 obj 46 endobj %% Contents for page 7 47 0 obj << /Length 48 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 48 0 obj 46 endobj %% Contents for page 8 49 0 obj << /Length 50 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 50 0 obj 46 endobj %% Contents for page 9 51 0 obj << /Length 52 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 52 0 obj 46 endobj %% Contents for page 10 53 0 obj << /Length 54 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 54 0 obj 46 endobj %% Contents for page 11 55 0 obj << /Length 56 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 56 0 obj 47 endobj %% Contents for page 12 57 0 obj << /Length 58 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 58 0 obj 47 endobj %% Contents for page 13 59 0 obj << /Length 60 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 60 0 obj 47 endobj %% Contents for page 14 61 0 obj << /Length 62 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 62 0 obj 47 endobj %% Contents for page 15 63 0 obj << /Length 64 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 64 0 obj 47 endobj %% Contents for page 16 65 0 obj << /Length 66 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 66 0 obj 47 endobj %% Contents for page 17 67 0 obj << /Length 68 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 68 0 obj 47 endobj %% Contents for page 18 69 0 obj << /Length 70 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 70 0 obj 47 endobj %% Contents for page 19 71 0 obj << /Length 72 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 72 0 obj 47 endobj %% Contents for page 20 73 0 obj << /Length 74 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 74 0 obj 47 endobj %% Contents for page 21 75 0 obj << /Length 76 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 76 0 obj 47 endobj %% Contents for page 22 77 0 obj << /Length 78 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 78 0 obj 47 endobj %% Contents for page 23 79 0 obj << /Length 80 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 80 0 obj 47 endobj %% Contents for page 24 81 0 obj << /Length 82 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 82 0 obj 47 endobj %% Contents for page 25 83 0 obj << /Length 84 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 84 0 obj 47 endobj %% Contents for page 26 85 0 obj << /Length 86 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 86 0 obj 47 endobj %% Contents for page 27 87 0 obj << /Length 88 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 88 0 obj 47 endobj %% Contents for page 28 89 0 obj << /Length 90 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 90 0 obj 47 endobj %% Contents for page 29 91 0 obj << /Length 92 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 92 0 obj 47 endobj %% Contents for page 30 93 0 obj << /Length 94 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 94 0 obj 47 endobj 95 0 obj << /Type /Outlines /First 96 0 R /Last 97 0 R /Count 6 >> endobj 96 0 obj << /Type /Outline /Title (Iss 1 -> 5: /XYZ null null null) /Parent 95 0 R /Count 4 /Next 97 0 R /First 98 0 R /Last 99 0 R /Dest [ 8 0 R /XYZ null null null ] >> endobj 97 0 obj << /Type /Outline /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Parent 95 0 R /Prev 96 0 R /Dest [ 18 0 R /XYZ 66 756 3 ] >> endobj 98 0 obj << /Type /Outline /Title (Amanda 1.1 -> 11: /Fit) /Parent 96 0 R /Next 99 0 R /First 100 0 R /Last 101 0 R /Count -3 /Dest [ 14 0 R /Fit ] >> endobj 99 0 obj << /Type /Outline % /Title (Sandy (Sandy [Greek]) 1.2 -> 13: /FitH 792) /Title /Parent 96 0 R /Prev 98 0 R /First 105 0 R /Last 106 0 R /Count 2 /Dest [ 16 0 R /FitH 792 ] >> endobj 100 0 obj << /Type /Outline /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Parent 98 0 R /Next 101 0 R /First 102 0 R /Last 103 0 R /Count -2 /Dest [ 15 0 R /FitV 100 ] >> endobj 101 0 obj << /Type /Outline /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Parent 98 0 R /Prev 100 0 R /First 104 0 R /Last 104 0 R /Count 1 /Dest [ 15 0 R /XYZ null null null ] >> endobj 102 0 obj << /Type /Outline /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Parent 100 0 R /Next 103 0 R /Dest [ 21 0 R /XYZ null null null ] >> endobj 103 0 obj << /Type /Outline /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Parent 100 0 R /Prev 102 0 R /Dest [ 22 0 R /XYZ null null null ] >> endobj 104 0 obj << /Type /Outline /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Parent 101 0 R /Dest [ 25 0 R /XYZ null null null ] >> endobj 105 0 obj << /Type /Outline /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Parent 99 0 R /Next 106 0 R /Dest [ 4 0 R /FitR 66 714 180 770 ] >> endobj 106 0 obj << /Type /Outline /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Parent 99 0 R /Prev 105 0 R /Dest [ 3 0 R /XYZ null null null ] >> endobj xref 0 107 0000000000 65535 f 0000000025 00000 n 0000000434 00000 n 0000000830 00000 n 0000001035 00000 n 0000001240 00000 n 0000001445 00000 n 0000001650 00000 n 0000001855 00000 n 0000002060 00000 n 0000002265 00000 n 0000002471 00000 n 0000002678 00000 n 0000002885 00000 n 0000003092 00000 n 0000003299 00000 n 0000003506 00000 n 0000003713 00000 n 0000003920 00000 n 0000004127 00000 n 0000004334 00000 n 0000004541 00000 n 0000004748 00000 n 0000004955 00000 n 0000005162 00000 n 0000005369 00000 n 0000005576 00000 n 0000005783 00000 n 0000005990 00000 n 0000006197 00000 n 0000006404 00000 n 0000006611 00000 n 0000006818 00000 n 0000007037 00000 n 0000007140 00000 n 0000007160 00000 n 0000007279 00000 n 0000007338 00000 n 0000007441 00000 n 0000007484 00000 n 0000007587 00000 n 0000007630 00000 n 0000007733 00000 n 0000007776 00000 n 0000007879 00000 n 0000007922 00000 n 0000008025 00000 n 0000008068 00000 n 0000008171 00000 n 0000008214 00000 n 0000008317 00000 n 0000008360 00000 n 0000008463 00000 n 0000008507 00000 n 0000008610 00000 n 0000008654 00000 n 0000008758 00000 n 0000008802 00000 n 0000008906 00000 n 0000008950 00000 n 0000009054 00000 n 0000009098 00000 n 0000009202 00000 n 0000009246 00000 n 0000009350 00000 n 0000009394 00000 n 0000009498 00000 n 0000009542 00000 n 0000009646 00000 n 0000009690 00000 n 0000009794 00000 n 0000009838 00000 n 0000009942 00000 n 0000009986 00000 n 0000010090 00000 n 0000010134 00000 n 0000010238 00000 n 0000010282 00000 n 0000010386 00000 n 0000010430 00000 n 0000010534 00000 n 0000010578 00000 n 0000010682 00000 n 0000010726 00000 n 0000010830 00000 n 0000010874 00000 n 0000010978 00000 n 0000011022 00000 n 0000011126 00000 n 0000011170 00000 n 0000011274 00000 n 0000011318 00000 n 0000011422 00000 n 0000011466 00000 n 0000011570 00000 n 0000011590 00000 n 0000011677 00000 n 0000011873 00000 n 0000012019 00000 n 0000012194 00000 n 0000012547 00000 n 0000012738 00000 n 0000012948 00000 n 0000013117 00000 n 0000013286 00000 n 0000013439 00000 n 0000013608 00000 n trailer << /Root 1 0 R /Size 107 >> startxref 13773 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/good16.out0000644000064100006410000000017113247541377015421 0ustar ejbejb/QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.8-ogen.check0000644000064100006410000000026213247541377020406 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/issue-148.pdf0000644000064100006410000000012713247541377015727 0ustar ejbejb %startxref 8 0 obj<>stream x endstream qpdf-8.0.2/qpdf/qtest/qpdf/unreferenced-objects.pdf0000644000064100006410000000202313247541377020356 0ustar ejbejb%PDF-1.3 % %QDF-1.0 2 0 obj << /Pages 1 0 R /Type /Catalog >> endobj 1 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 1 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 9 0 R >> /Type /Page >> endobj %% Contents for page 1 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 7 0 obj [ 8 0 R ] endobj 8 0 obj /Potato endobj 9 0 obj [ /PDF /Text ] endobj xref 0 10 0000000000 65535 f 0000000079 00000 n 0000000025 00000 n 0000000161 00000 n 0000000376 00000 n 0000000475 00000 n 0000000494 00000 n 0000000612 00000 n 0000000638 00000 n 0000000662 00000 n trailer << /Root 2 0 R /Size 10 /ID [<5c2381b459937c988290150df782f1fd><5c2381b459937c988290150df782f1fd>] >> startxref 697 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.2.check0000644000064100006410000000026213247541377017131 0ustar ejbejbchecking a.pdf PDF Version: 1.3 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-other-force-1.8.out0000644000064100006410000000015513247541377022133 0ustar ejbejbversion: 1.8 extension level: 0 << /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/bad1.out0000644000064100006410000000011013247541377015122 0ustar ejbejbWARNING: bad1.pdf: can't find PDF header bad1.pdf: can't find startxref qpdf-8.0.2/qpdf/qtest/qpdf/xref-with-short-size.pdf0000644000064100006410000004021713247541377020313 0ustar ejbejb%PDF-1.5 % 3 0 obj << /Length 56 /Filter /FlateDecode >> stream xs w34SԳ432SIS04374R070342UIQHԌ r i k endstream endobj 9 0 obj << /Length1 1644 /Length2 14221 /Length3 0 /Length 15279 /Filter /FlateDecode >> stream xڵeT_5ݡ8w Npw(R\Kqn݋==]Y/}YY"SQc3w0J;\ؘY M@lLnv&vfVV** gH`v] VV>* tL@Wu/G 䟅+ˇ>R$-\`b[o83@`21+2<>ZhebgpjR25T? 9::8 5u FPS}d((."w6;oF _>R-iruuga`tsqevpdv t! dA_ @ rMvʏAߚv ? ** {k+d2t5quscxipsvC?]Bwؙǿ q?mrvquWE 3cSSRSgRI?I*xYl|J%?P O'Wg/m[pXX-roȢvrJG l@W+zYm^?qtpXع-w s06sǸ S]dCL+Ǩ;@ %I3iKNH8@{k;o!ZhiMg"m 4Wv5˺|_ di8LGC oYق..?7 `QPSf߲'N d`n sqLMX?a9XA)G7W?35!*GmY:;?nhl! ?T-. `b$yGٿDA(!,/8 |Ik +*M|Z#-9A'C) j ̢.rPo5TMm5r\U?!X&FpR.r#o:9gHc|ݏש? =ؚ0<: ;]cLzŖg8)y}tX8ՋtD$#$a)IGS 1XMvZ&7Ǎjpja-%0vfO!DR'Eމ,;׺C]{1ecPI73Xa9*rxK4CHtEupX1Acaȥ',}^br8ɌplV"H0dQ;]F$%I0^;5>B UQa6Zs9e6vE-/%ӗ)EݰV Y-ۦڣP{7㚬dr"$N<ڈxLPuC JٓA@|m$"4W: ~3 "1< f'm38Q(=Q!{[mHoH)"0qtU^Θ..:!M/\SI?3#EbNU^k.5d, M~&Oդ,e?7uɘ\0#WEa%ؖy;o.M 4 k痗/&kg$kbrZD[ ] RE[X `]tvkY-xbqI Ed/&͞6X}C.{*vR؋$tru`(/6Y[NxKQaI*8ӇWNkk ߴǐzAr7c.e]{f f3,Rݻ/ bvȰ{8 P2^ɛ&n1gNtH,WPc%6:|w|'*nG=Ow2l"H3!w0v|gkV Dpu)@uJI}QfRuc5zK#!ok(dB̖'/XrAl4?:Kh]tE+]#Z/"I2߲hx␔bdɋs#뱄EMq59y XtH c$(+NX1"~GavE?&ej%F] k0tK:RB_D!9gXC)krB96%6 8J5kz% 3'=٥݊:Ơe#1Ԍf\= */5Ti_cTΜ7߱0 Zۍw)"|ZV.o>=ζcoeT@YtpsP(hsDN .bZ(2pD`[*ZWU/YM69߉(TߐL67;c:+@OiA xF5Lg*fDRɥ w@;YE{CVJkP\lg7JFQw(ig4 sF@ !9{rAlu<`+%EQ#}{CZ_?!;7'?በ7["i*%p͹)A߉i#7Ff5 K\_O8*_ Ʃ-6a:o]Tt hʼYvTWB a3@:C]Z_/Ũs =/Yi<$ϠD‡UD_CF"`I7.jiGOmt;}8S Rx5t >;s;ܩU+izO:k aԽBρnbш$[*ܞƷ, -q)(H맽  ^K IHP;tDnh= YYKyhcYY 9&CBh'sry#"J/ŇO2E;x.X&oAߋ$DDWґPTqφ9#8== ëk:;Sggxkڹ<|&#[⚮]J4&\o;hFX'tof_/3?TS3U''a=,3boFEA堧,Kǘ>}ps{{egǹ3!`faFNLl 1Zs$>Ҡ3$&C7`%uEvhHs;)1fKL_IiwU ^|rs[od9᠀4ku4Rv^綺Hӈؒ-FO&!LCx;IFz4ed #uJh_+*}jaM#@~ ;MR\<mroF1q%M=%]YU(4գ)Ӈ }.[?M4x-IjZC%^POǯ,LZg5K\A/o4+@ǁ0BlX@ApUv.EZ 2[&#~3lR/.%y=W+ :w;!mn_"ݶqYNx/WcBwULY4h%<_t;sKmEWbK"#}Ռ\2}!wD D${S]PI>[ aL9Ii=|ffX 5~qlm Ȝu!F"ePyݡwG'P4#~H1sy횅ªIqJ.bGw=zD]8YdǴh[(,:s52QTGKiԭ1ȗ>NO}($lCoאGrzOf]viU-/pdsN.jWĚO "P/陛f+Gl;s^j'C z+XksoT&d]umX(}lR~y`abz/$*sӣOa+xgBKd5zV-yA oM b bHO >*gah 0\l"f;NꂉE~.#gmx/ʠ/"9w4š&5MjZE+No0D4R94N91//UtFL iaddm^.l@x>4L1 yJYבYl3N(ڣ8ƁSYbQu3ls“: 72k(k::zŸy1t#(i9|bb:]+$:/()TWQs3(Nsݙ[rOV-JKWzVVԍGbGnK6: ٭6-'P&ta4B/V;bU#ɗT<!l0s_cqb1g;w4fuZN X##)jGG3]k_)1(d&D@̒i=M*+Hd/cYP5>&hk /IPnj Xͼk܊j8"2rx V i+C}p Qe: 5b;1SŲn句_,! r U^PO7 >n Zo.Iz3t|E͟aZJږ0ZqX+ PWbgbu]Y}jX53a+ʬm-*S~a𳳖lSA AKakeW}k\8G١yf(0n3 Vs/|ml%~@y SfgaQ@ޤ^UbMV̏K*)-L-ge;| K%4~ɬp@?녡;^ܖrZdZ6þ$]-.KmRMIБqC8|geNu٭܋τ CfZpj!kOq>P?Iz\X hKbzRPf,2]s8$P,KcRˇ wtP;}!_^1E(vdhx Kz"$l< ty>aIi#M=)ϐ 阚XCF"$ P |̢r{x"sCBdo KJ@usLKla6^ڷMF CDgY,(q ӘYJs?$"`G|WRDG"5Lfv뻬i= 3ke ,g \DKٻG 1ngWO3 4zaMxoЫRYkk$sX]fi4i߃'s}WdL]L?9sIH\D:Syi R>eI}FCk YW4kH>6\}IkZt{vuFk>"< [Mo$B.=1δ9,pI(sdXyGp)'yyk؉8nƩUN-"ksc#%hPb٨G {êR0j]dq#Jm]v12hP'CXrgJȀ> 'I l^.ʂvk8ƃwtrL2)yOhR(4OIp >G0L_R 2Jˡ.tD|^s R:d/ސEqRpljJ4TЍ BHby2% ?F0l o$X)3$WpL rV …`/+LHD?ÂEu쇝w01RJӪ\-eK86h9gHH2Pq)72 <(6$ta{01Ǣs45]凕 l&i^W~9R F,}7R@PX#دl!sSHuEk^Rw|ƲNJ֧ciU?TGyG@'/=ߟwwq~[Ϊ{ފ(4c^p *&cz|Ye#F|Ҭ2=2v*v|ɟHi'~g5> 'j'B`9& rS׬Cѡa/h6.` lj![2CG,S]ݧ+[ꈾ[X/=:*m{Yg0ҷ W͡|R&uAN[f[:V ?;C7i ۵3;LEigK5v Ae Ζf-8\{{M R;W}NS`rzx  ч43r2qsራviiMm+m!dQ<~g}bjhm%2;-6!/BEhb41, B)TnktO#YŹPJ^iH eYWjMtG99wqWxnsNJf/#ӑ~/ y| 6mewչv%}:D S5.{}U$ȉw.@pE x*B.3j)M̸+ᬡ9CQBkT)2Dn7*#B6ekd&js Lu8"&vиcZ;_RTzO4۹1dx)MrS;k:#K-niĤ~ߺ!T@3KvHp;et J$\${7 uMp -ΗhXF.,ly]Xѐuqp~ l7]9(4Nhvo3σF l|yCWằ;:*clrcZcjzZc:M704) "YG@#f&hLjJ(a7 !(gVtW/8:FƯMM6LW۹NJ:1Vsk2 e"l ycJ7'<"}8YӬ3Bj63O,/DVlG:x暸 pB tݯ~f*cba 懈f,4%D~n]y_/S)7Pz`N(E~KYU|#D:h.))Fglue߇8~:Pfrl+>V A{GaxOz(^7EiCZۍs!^k>?}F2ͅoO 1|l+w Гܾ;F 9F )> )X,ڛI] `<4g }r)}djP]Um ȡy{S#hITx9ҚOXSufŗ̱ vtEl'XKOy MOÆs(P' <~n],mԑi21l]eq9g2ʇ捊gv,ם_4|'e,U ecܼL)X_Z:tJPƼ|Q, |^sx8>eP1%7;7 b |(@d6C@2 rgiel(i?\rxKRYB݆>|qKLchpRz%ĺh5BHR/^jϨŎN~+)ozn"a&[Mz{1T:Wp -`?]нBZ9ڮg1U]>tEǛ;^7lM3GByuaCZ%=7&MaR!Ԫͻ#ƾ۵w47W\@8]UŽY IXa}Аk[uVf8))yZ!^ǔ`s#E+ dgSo/y|kTɠ[}aߪ%턁a:%qɟkhތ{wܙu\w1wH]B}Vt*EdXL$_7w#XA’Xs~žV1 0~h^F`>xBB`'>A?coߦC2O|fYU+kKF%u,víɶӨMLާBMMeb9l̽wr;j DGpAKi)Ι lTIo2 'ǻ|VruL>3iXWj,օ-;=`.~)UmX%nV_;Ko;bHgF(y _(&Q4QD4wc}-M:Kؽп76}b,l-Cֹ039^~>Y5.~HʛO1)mj-\J3d8I-5vƤ9"\|_ Vj?"0!=hsz5RL_Ok 6e {d!&!x]VLz g|p'a)"&t3 ^&\ˑ?y1@BNc+63C*\*<貐i1L MuDQ' DfB; Uݟ$xA\]y278/WWpQߚEjb/t iͯM?JZu\!}kdDBHu󥝍{+]n*镕<dLׂZΡhεV::ez`6}(4,$bemm.@ߗYU>{GKhO,&*?)gOiKHCw|kxHw <ITΏyaDV~5kʡFA'$8 t@K7>Ɨ8,1Dٟ]p-r(:\fNH%+U@].iO])6K}ǝZ~FZf׽eþ"Y3Mȑ4ѢOձ3慁O-Nsb!VC%BvǦDlg|۹P4]i ׽gWN(_i$jQz1fFg棵 r'_6')$̧pzɷa)'|JRFDt$72u+4Zc8\bX*8<_dޘm1FTݶmZum3 l-=X -^Y%a{[ONdp/LyôgPn5d׏#~'g0"kaGzHb2<{goMHڀ*]J9SiUA0NkUtV9A OJ/e$)= vX35t2RAfjLX &R剌m>n1_۵ػu8KƗ4 ;+v*M[!.rqoe=EkxiJm~~kp Dʊ0m^!8:c.وƵ}PW%-z<@^hӸO/pkTP0.1e0 #tUI35u` |Z{'#SzxM9.M,gfvl{abn;YcmMJ& a Ϟr0<ZAZ< 10`AG; !0-r"hRr+ONҶ[}JS%GaSiqZ6x>,,^ -ܕ2f(ty "}NEBpT hA%rY vЅoF蘲.;$P%!_؅cXLs/VXi&XXY %: a8vb[bFNIqS\myT4#ct3iL*,PңO\ U59n/HRTjkEx'k ͬm#ncr_3H@NhD)mܶ]9L F2rZ1kQm=rXy--d]$,>netl_X{;B4 1ؐ{Ls: F)\;? H%>ykvPePFf{$5 0: կtVb%Wa.⮛C81C>%2Sn[s]}u>-ume;/yԯSdVomP3 :0m*QZw6&M+sRJ~]-xq]yɱ 1=ugp]TcnWGX:Z/F3b ( ms}9IY]d|Pn. G;"3F,țuH۲rodH/ (/'}MUk}RѾ:Y׸dF;\eԚ1׽$}[;#`ElWݎ%óy QnQP{юR[2Tv/8hx!o4fu\~ͥhJC߿nF"&$jNU6L* TQ@[JR&A8Tڝf^L^I1Eч͍Kgb`QEraCifqt,5H<"mDωēŵ n`:! ,T[)r?o@{ٵd}1P˧ghm!8%'Hb\H"pn Җɚz-~ZY}Ai?s<oߑ&^dJzu~yk[H1 ̞ZYGF@BBZbNN6=kGDxoByNta7vݒ3lAoo1xrB$qr(R J>mRTS>4 B?wsi?s `{ *P5؝,L{Y2rP + tQ,V`Yu_ᾏGH^5A&q R9o|~ b tk7)ƒ@My6$+~8vNݍM DxB3_1 imAT;sSLKU m8j!ujEDD`=iCJ2i(DŽ> stream xڅR]o@|طRw/BGH x8싱؎DM*hڽd]@^(s!9P<B/C]43jEƀts˝kSXn:Mk ϝZR8J ' NxVƝeXxB5ujʺ#Wxs>n:/U=!WUj7aBb2>0k_O:Kǖ4>7*"50}h#[g|#^$yH".HQ'{zҘżHbAîi[:DetR8K6 9Y:iY .Q |{ZCs@k}A?FWV7r!5iW6w0nTkE{xfe1V`Lr<'.`q2dQ rK?[ܮ!w(b Y}Q=P9Eѱjld] GĦ;12r'Q) \+_O>  endstream endobj 13 0 obj << /Type /XRef /Index [0 13] /Size 13 /W [1 2 1] /Root 11 0 R /Info 12 0 R /ID [<6D0EE533EAFB5AD21C2CF24F10EC2288> <6D0EE533EAFB5AD21C2CF24F10EC2288>] /Length 50 /Filter /FlateDecode >> stream xI .C$jc,Ctܬq~% bVi.n endstream endobj startxref 16227 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.1-ogen.c-check0000644000064100006410000000005013247541377020612 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/split-exp.zdf_010000644000064100006410000000203113247541377016520 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 1) Tj ET endstream endobj 5 0 obj 47 endobj %% Original object ID: 5 0 6 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 7 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000242 00000 n 0000000509 00000 n 0000000611 00000 n 0000000657 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 765 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/split-content-stream-errors.out0000644000064100006410000000122613247541377021732 0ustar ejbejbchecking split-content-stream-errors.pdf PDF Version: 1.3 File is not encrypted File is not linearized WARNING: split-content-stream-errors.pdf (offset 557): error decoding stream data for object 6 0: LZWDecoder: bad code received WARNING: split-content-stream-errors.pdf (offset 557): stream will be re-processed without filtering to avoid data loss WARNING: page object 3 0 (item index 0 (from 0)): ignoring non-stream in an array of streams WARNING: split-content-stream-errors.pdf (offset 557): error decoding stream data for object 6 0: LZWDecoder: bad code received WARNING: content stream (content stream object 6 0): errors while decoding content stream qpdf-8.0.2/qpdf/qtest/qpdf/V4-clearmeta.pdf0000644000064100006410000003557113247541377016524 0ustar ejbejb%PDF-1.5 % 1 0 obj << /Metadata 3 0 R /Outlines 4 0 R /PageLabels << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /PageMode /UseOutlines /Pages 5 0 R /Type /Catalog >> endobj 2 0 obj << /CreationDate /ModDate >> endobj 3 0 obj << /Subtype /XML /Type /Metadata /Length 770 >> stream 2003-10-10T18:04:32-03:00 2003-10-10T18:04:32-03:00 2003-10-10T18:04:32-03:00 2003-10-10T18:04:32-03:00 2003-10-10T18:04:32-03:00 endstream endobj 4 0 obj << /Count 6 /First 6 0 R /Last 7 0 R /Type /Outlines >> endobj 5 0 obj << /Count 30 /Kids [ 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 35 0 R 36 0 R 37 0 R ] /Type /Pages >> endobj 6 0 obj << /Count 4 /Dest [ 13 0 R /XYZ null null null ] /First 38 0 R /Last 39 0 R /Next 7 0 R /Parent 4 0 R /Title (\005\002\233*snٳ3AS\013-\(RiY\t\202) /Type /Outline >> endobj 7 0 obj << /Dest [ 23 0 R /XYZ 66 756 3 ] /Parent 4 0 R /Prev 6 0 R /Title /Type /Outline >> endobj 8 0 obj << /Contents 40 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 9 0 obj << /Contents 43 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 10 0 obj << /Contents 44 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 11 0 obj << /Contents 45 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 12 0 obj << /Contents 46 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 13 0 obj << /Contents 47 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 14 0 obj << /Contents 48 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 15 0 obj << /Contents 49 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 16 0 obj << /Contents 50 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 17 0 obj << /Contents 51 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 18 0 obj << /Contents 52 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 19 0 obj << /Contents 53 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 20 0 obj << /Contents 54 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 21 0 obj << /Contents 55 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 22 0 obj << /Contents 56 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 23 0 obj << /Contents 57 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 24 0 obj << /Contents 58 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 25 0 obj << /Contents 59 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 26 0 obj << /Contents 60 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 27 0 obj << /Contents 61 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 28 0 obj << /Contents 62 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 29 0 obj << /Contents 63 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 30 0 obj << /Contents 64 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 31 0 obj << /Contents 65 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 32 0 obj << /Contents 66 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 33 0 obj << /Contents 67 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 34 0 obj << /Contents 68 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 35 0 obj << /Contents 69 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 36 0 obj << /Contents 70 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 37 0 obj << /Contents 71 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources << /Font << /F1 41 0 R >> /ProcSet 42 0 R >> /Rotate 0 /Type /Page >> endobj 38 0 obj << /Count -3 /Dest [ 19 0 R /Fit ] /First 72 0 R /Last 73 0 R /Next 39 0 R /Parent 6 0 R /Title <92aedebefb60106f3cf13118ca301bd9a1f2906f4a2c> /Type /Outline >> endobj 39 0 obj << /Count 2 /Dest [ 21 0 R /FitH 792 ] /First 74 0 R /Last 75 0 R /Parent 6 0 R /Prev 38 0 R /Title <94a12a6e9605c70a68c376eb000ba242e7531e40e5a26f8893d8> /Type /Outline >> endobj 40 0 obj << /Filter /FlateDecode /Length 52 >> stream < *1'4z7nPO^Suiv /`ֈ?0&E?tendstream endobj 41 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 42 0 obj [ /PDF /Text ] endobj 43 0 obj << /Filter /FlateDecode /Length 52 >> stream &PF֍" W2jY(K%X7t14;endstream endobj 44 0 obj << /Filter /FlateDecode /Length 52 >> stream S^N`ʯKg)T/Z B!eګQ&bendstream endobj 45 0 obj << /Filter /FlateDecode /Length 52 >> stream ?Ox6m&Bf;m}yVi-Ɩcbi?hendstream endobj 46 0 obj << /Filter /FlateDecode /Length 52 >> stream 7-Gj2q%og#Ren(ںPV$endstream endobj 47 0 obj << /Filter /FlateDecode /Length 52 >> stream )W(F콸"lI;qi‹=zU?Z*aVL̓oendstream endobj 48 0 obj << /Filter /FlateDecode /Length 52 >> stream `&]b:`0,a^o9}zdo9kTI+d(l51endstream endobj 49 0 obj << /Filter /FlateDecode /Length 52 >> stream xEε۩%5u%uVjX|3$/EP7 endstream endobj 50 0 obj << /Filter /FlateDecode /Length 52 >> stream ?֔B *@K@N[ڪj$J;ܽNt\ Lx^endstream endobj 51 0 obj << /Filter /FlateDecode /Length 52 >> stream Ӵ ~QB6}4.".D_l(Q_飮=endstream endobj 52 0 obj << /Filter /FlateDecode /Length 53 >> stream M GΛ˿4ّlK>#2Ṯ &;!rf,2xendstream endobj 53 0 obj << /Filter /FlateDecode /Length 53 >> stream c} o:C3LX͗[鲧&Q΃`Tendstream endobj 54 0 obj << /Filter /FlateDecode /Length 53 >> stream s{v-fڝ++ʄ$S$f1[Rmhendstream endobj 55 0 obj << /Filter /FlateDecode /Length 53 >> stream TqK_*1R^J SFи+`\ZM2{7Zendstream endobj 56 0 obj << /Filter /FlateDecode /Length 53 >> stream V$`MZʑAWT)(򕇼{ "f&wz;jVQo+lendstream endobj 57 0 obj << /Filter /FlateDecode /Length 53 >> stream ]gZV@l6zMJ'p6[Q.(]2p씶 O~endstream endobj 58 0 obj << /Filter /FlateDecode /Length 53 >> stream j-2hm& xHRz+Q$~nĨ^!$!-endstream endobj 59 0 obj << /Filter /FlateDecode /Length 53 >> stream <v0w s+~HGu=ko6I]̠9f^>,g[endstream endobj 60 0 obj << /Filter /FlateDecode /Length 53 >> stream ۉ6!hlK|#Amc %9`?u- !%4_ endstream endobj 61 0 obj << /Filter /FlateDecode /Length 53 >> stream pC"iQʨn3hBοYqjb+{qG @endstream endobj 62 0 obj << /Filter /FlateDecode /Length 53 >> stream #D$ !؊.wȖP3;TCYtd:p{Oaendstream endobj 63 0 obj << /Filter /FlateDecode /Length 53 >> stream ;kCA ~m9o~<<*rЧ8`$.Odendstream endobj 64 0 obj << /Filter /FlateDecode /Length 53 >> stream Ǥ WIyސ=M22ȦO7iƗg[endstream endobj 65 0 obj << /Filter /FlateDecode /Length 53 >> stream ˮT] ժ=U& @]:i6T1/Hendstream endobj 66 0 obj << /Filter /FlateDecode /Length 52 >> stream 3Pa*%wKl=> JƆl[ptԧ ۊa`3endstream endobj 67 0 obj << /Filter /FlateDecode /Length 53 >> stream 0!W\ٳ%qTF2sRY^i6W*lthendstream endobj 68 0 obj << /Filter /FlateDecode /Length 53 >> stream +\rmv+/I7uPZE٦ ܵ܈]`r5b~€endstream endobj 69 0 obj << /Filter /FlateDecode /Length 53 >> stream ; 2P!/jZ/$O5)\6 /HJQ3gxendstream endobj 70 0 obj << /Filter /FlateDecode /Length 53 >> stream |t]8dbCaFb8 ˇ8_̵̣HTendstream endobj 71 0 obj << /Filter /FlateDecode /Length 53 >> stream IPo;C^\7lo+'P.~L4"$ܚtvendstream endobj 72 0 obj << /Count -2 /Dest [ 20 0 R /FitV 100 ] /First 76 0 R /Last 77 0 R /Next 73 0 R /Parent 38 0 R /Title /Type /Outline >> endobj 73 0 obj << /Count 1 /Dest [ 20 0 R /XYZ null null null ] /First 78 0 R /Last 78 0 R /Parent 38 0 R /Prev 72 0 R /Title /Type /Outline >> endobj 74 0 obj << /Dest [ 9 0 R /FitR 66 714 180 770 ] /Next 75 0 R /Parent 39 0 R /Title <98430c8d4f958ccd973d340d72191882c87339f73ec14a4288a81920e384476db0d377fe586c57964394bd6b> /Type /Outline >> endobj 75 0 obj << /Dest [ 8 0 R /XYZ null null null ] /Parent 39 0 R /Prev 74 0 R /Title <3f9b26779dcb253261c7a5e6647adc34fac95446402634e4f7f1821bf8e585b8a2b12b30cfc99f2431> /Type /Outline >> endobj 76 0 obj << /Dest [ 26 0 R /XYZ null null null ] /Next 77 0 R /Parent 72 0 R /Title /Type /Outline >> endobj 77 0 obj << /Dest [ 27 0 R /XYZ null null null ] /Parent 72 0 R /Prev 76 0 R /Title <495d42ba68c5e918c05788b74323ca3c018a1fd276903bca35de5d56fac19ed5972ac016c479c6a16c5091> /Type /Outline >> endobj 78 0 obj << /Dest [ 30 0 R /XYZ null null null ] /Parent 73 0 R /Title /Type /Outline >> endobj 79 0 obj << /CF << /StdCF << /AuthEvent /DocOpen /CFM /V2 /Length 16 >> >> /EncryptMetadata false /Filter /Standard /Length 128 /O <36451bd39d753b7c1d10922c28e6665aa4f3353fb0348b536893e3b1db5c579b> /P -4 /R 4 /StmF /StdCF /StrF /StdCF /U /V 4 >> endobj xref 0 80 0000000000 65535 f 0000000015 00000 n 0000000378 00000 n 0000000520 00000 n 0000001370 00000 n 0000001441 00000 n 0000001703 00000 n 0000001897 00000 n 0000002058 00000 n 0000002239 00000 n 0000002420 00000 n 0000002602 00000 n 0000002784 00000 n 0000002966 00000 n 0000003148 00000 n 0000003330 00000 n 0000003512 00000 n 0000003694 00000 n 0000003876 00000 n 0000004058 00000 n 0000004240 00000 n 0000004422 00000 n 0000004604 00000 n 0000004786 00000 n 0000004968 00000 n 0000005150 00000 n 0000005332 00000 n 0000005514 00000 n 0000005696 00000 n 0000005878 00000 n 0000006060 00000 n 0000006242 00000 n 0000006424 00000 n 0000006606 00000 n 0000006788 00000 n 0000006970 00000 n 0000007152 00000 n 0000007334 00000 n 0000007516 00000 n 0000007693 00000 n 0000007882 00000 n 0000008005 00000 n 0000008113 00000 n 0000008144 00000 n 0000008267 00000 n 0000008390 00000 n 0000008513 00000 n 0000008636 00000 n 0000008759 00000 n 0000008882 00000 n 0000009005 00000 n 0000009128 00000 n 0000009251 00000 n 0000009375 00000 n 0000009499 00000 n 0000009623 00000 n 0000009747 00000 n 0000009871 00000 n 0000009995 00000 n 0000010119 00000 n 0000010243 00000 n 0000010367 00000 n 0000010491 00000 n 0000010615 00000 n 0000010739 00000 n 0000010863 00000 n 0000010987 00000 n 0000011110 00000 n 0000011234 00000 n 0000011358 00000 n 0000011482 00000 n 0000011606 00000 n 0000011730 00000 n 0000011931 00000 n 0000012161 00000 n 0000012361 00000 n 0000012554 00000 n 0000012752 00000 n 0000012950 00000 n 0000013135 00000 n trailer << /Info 2 0 R /Root 1 0 R /Size 80 /ID [<66d36a30a97e0f16f39955c6221e0c2a><31415926535897932384626433832795>] /Encrypt 79 0 R >> startxref 13455 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad35.out0000644000064100006410000000021513247541377015217 0ustar ejbejbWARNING: bad35.pdf (object 1 0, offset 521): supposed object stream 1 has wrong type bad35.pdf (offset 521): unable to find /Root dictionary qpdf-8.0.2/qpdf/qtest/qpdf/enc-XI-R6,V5,U=view,attachments,cleartext-metadata.pdf0000644000064100006410000005360013247541377025377 0ustar ejbejb%PDF-1.7 % 85 0 obj <> endobj 91 0 obj <>/Encrypt 86 0 R/Filter/FlateDecode/ID[<7F25422CE0BDE941BB4347FD74E2B041><5B14C978D0BA39499E3935A9F1D82086>]/Index[85 13]/Info 84 0 R/Length 52/Prev 22038/Root 87 0 R/Size 98/Type/XRef/W[1 2 1]>>stream hbbd``b`"@K H0o;Y ? endstream endobj startxref 0 %%EOF 97 0 obj <>stream \'_KH2Ӹ:ݽH}Qx{~dm(+1mQ.:y꠳y8H"Z*#L6"^xՂcEO(j:H}Lb,!JMTx]BhAwTpKG)h{IG[p endstream endobj 86 0 obj <>>>/EncryptMetadata false/Filter/Standard/Length 256/O(Zsљc/G.:C!k{!eW1&s3We~Ndr-m)/OE(Zg !~Va"m}Vh#a)/P -1028/Perms(Bfc] Vt)/R 6/StmF/StdCF/StrF/StdCF/U(\rr.\\7O" `FܙJBz@o'zgNl)/UE(%"fq5W\) H8i|)/V 5>> endobj 87 0 obj <>>>/Metadata 64 0 R/Names 92 0 R/Outlines 68 0 R/PageLabels<>2<>7<>9<>11<>12<>15<>19<>20<>22<>23<>29<>]>>/PageMode/UseAttachments/Pages 80 0 R/Type/Catalog>> endobj 88 0 obj <>/ProcSet 96 0 R>>/Rotate 0/Type/Page>> endobj 89 0 obj <>stream &ONWK3K.'IKu3[[r7'g ,Z?il%<]2jևus1>5;z0)覐_d`kkK̤gB.Dt!۾rМ=&z#]$g',ȩ;P;R#&<꽘 4c솓fQ26=oYUݷf68mZQNMDlyTdN9 qN[ >uԮ" ֝>d5_Qr]fCZ~T_T%_ڲN&QLNum6`UG@!0'SUF"کNceP%E>+zP ǒCq&;D3M}POd)i)ז~G@%}.?#̫Rthwo<*W @Hr[?\ Qկt!dg|9H {xY0! H&7 EXm&1Z0%/X Oh0NSr'Fw%d}+wY_g2ZvVRC꣇Ɖf|fqI/@<ԨVlUU&r(&)hWL},_-T2O0EċB4ݹD5j0 G1&ycukqwi\cYLdxNf6GV-D endstream endobj 90 0 obj <>stream 򪰮<'cbimHت+ѹSHSBW P^Qʖ endstream endobj 1 0 obj <>/ProcSet 96 0 R>>/Rotate 0/Type/Page>> endobj 2 0 obj <>stream 腰V14 #e}5LAXA.d\s`E< ws endstream endobj 3 0 obj <>/ProcSet 96 0 R>>/Rotate 0/Type/Page>> endobj 4 0 obj <>stream 6/%FQЋLcNT>/ProcSet 96 0 R>>/Rotate 0/Type/Page>> endobj 6 0 obj <>stream [Xڻ5"Wt0QC /&Ev <$i fOLݚY endstream endobj 7 0 obj <>/ProcSet 96 0 R>>/Rotate 0/Type/Page>> endobj 8 0 obj <>stream 1 R=vjܻ '6>8m,IMSvػ\_O|/8% endstream endobj 9 0 obj <>/ProcSet 96 0 R>>/Rotate 0/Type/Page>> endobj 10 0 obj <>stream Pxh.Sg܁t{NMgCN $ʘ9UxwB~y endstream endobj 11 0 obj <>/ProcSet 96 0 R>>/Rotate 0/Type/Page>> endobj 12 0 obj <>stream 4(6"dA?f`<,]\[eR&8[J)>T .`!#N[x#P8( endstream endobj 13 0 obj <>/ProcSet 96 0 R>>/Rotate 0/Type/Page>> endobj 14 0 obj <>stream BS۸rmv}b\aBVhX@ D"=g)ML, endstream endobj 15 0 obj <>/ProcSet 96 0 R>>/Rotate 0/Type/Page>> endobj 16 0 obj <>stream  & J&cx>/ProcSet 96 0 R>>/Rotate 0/Type/Page>> endobj 18 0 obj <>stream ]5k7d׵66:p8v[5zgs ZG6ԑ8o endstream endobj 19 0 obj <>/ProcSet 96 0 R>>/Rotate 0/Type/Page>> endobj 20 0 obj <>stream 9 |!}a*%*G'O Рs&L `v*.>)ۛ03 endstream endobj 21 0 obj <>/ProcSet 96 0 R>>/Rotate 0/Type/Page>> endobj 22 0 obj <>stream Yа5AM2[:!Sxi̽_ii7* i)@)h51GxvQj{7 endstream endobj 23 0 obj <>/ProcSet 96 0 R>>/Rotate 0/Type/Page>> endobj 24 0 obj <>stream \NzP'$5nHQAŨ $$sq͘U0vU$IMet\/ - endstream endobj 25 0 obj <>/ProcSet 96 0 R>>/Rotate 0/Type/Page>> endobj 26 0 obj <>stream N_,deO&)D-H+~~(̣Eb@Q' 7G S©r endstream endobj 27 0 obj <>/ProcSet 96 0 R>>/Rotate 0/Type/Page>> endobj 28 0 obj <>stream E/ʇzPwAFY1 9Ӊ<˸b Jt} VV>U#H endstream endobj 29 0 obj <>/ProcSet 96 0 R>>/Rotate 0/Type/Page>> endobj 30 0 obj <>stream 4S#c}0O3 ]D[jIJ'{mg][Plctú- endstream endobj 31 0 obj <>/ProcSet 96 0 R>>/Rotate 0/Type/Page>> endobj 32 0 obj <>stream Ƙ"ᬊ!_{n_bǩyTG=\(gfgv68P ^5 endstream endobj 33 0 obj <>/ProcSet 96 0 R>>/Rotate 0/Type/Page>> endobj 34 0 obj <>stream ]B7o?s!ij`o} o:bJ| pȪįPH endstream endobj 35 0 obj <>/ProcSet 96 0 R>>/Rotate 0/Type/Page>> endobj 36 0 obj <>stream ׵8RRؤݖj59kj> c_*S} Nm0'Woݟpϫ8Ál endstream endobj 37 0 obj <>/ProcSet 96 0 R>>/Rotate 0/Type/Page>> endobj 38 0 obj <>stream HdD%0 qQ-1+1WM y*C.u endstream endobj 39 0 obj <>/ProcSet 96 0 R>>/Rotate 0/Type/Page>> endobj 40 0 obj <>stream ,OU #6;#'s] E{NMHӿsoB!W.0 endstream endobj 41 0 obj <>/ProcSet 96 0 R>>/Rotate 0/Type/Page>> endobj 42 0 obj <>stream lo 03LB/^%^7fR}$0l3rO,r&O] JwO:׼ endstream endobj 43 0 obj <>/ProcSet 96 0 R>>/Rotate 0/Type/Page>> endobj 44 0 obj <>stream B痹7&>}+e BKW"JYKߥg2QJWڼ;$7!89 endstream endobj 45 0 obj <>/ProcSet 96 0 R>>/Rotate 0/Type/Page>> endobj 46 0 obj <>stream hCf:G/{2o±d@u̘HrxYZ?`fn\1Ir! endstream endobj 47 0 obj <>/ProcSet 96 0 R>>/Rotate 0/Type/Page>> endobj 48 0 obj <>stream {k[SWUBUR}V &ۯ>kۋ-L _W endstream endobj 49 0 obj <>/ProcSet 96 0 R>>/Rotate 0/Type/Page>> endobj 50 0 obj <>stream fqGټJs֏Dg#J$ cSw5예dxTңXr/Wi/1rDM^| endstream endobj 51 0 obj <>/ProcSet 96 0 R>>/Rotate 0/Type/Page>> endobj 52 0 obj <>stream 3_Nd]]M(+7$%Y+6]ԧd' J8* endstream endobj 53 0 obj <>/ProcSet 96 0 R>>/Rotate 0/Type/Page>> endobj 54 0 obj <>stream ynvs橰`oeT]:d^&oVc(+"ȥ 9b endstream endobj 55 0 obj <>/ProcSet 96 0 R>>/Rotate 0/Type/Page>> endobj 56 0 obj <>stream  K4$ },7&V$]H tFq)*Fc}Xac%y& endstream endobj 57 0 obj <>/ProcSet 96 0 R>>/Rotate 0/Type/Page>> endobj 58 0 obj <>stream !g;{$B #TϲU%u!'%ЍDtM]MSթ8{zw endstream endobj 59 0 obj <>stream Mo*E$3!HXS|7*xQ|L3sQ}#%8Nw8t}ð# ,|@Yv̕p{N$fN1ўϹ_.PॊnE·Მ?_ ݑP(m~YŬJ3y=h+ . Y(!7m#AؾُEש:ʔ켳U$UtCɗؖ^iL3x}`p7쿋Ĉ<kĽx]ٙ%yznwwղZ|%ŁݽIFs\?߇?Y$%Fz_}= fƫTy7McI =C5\đa2YfEU*Yx @bg:ғ;jԻe05 xWᥡ;Ne?k'62~ķkW xb. :[u$~ y ;֝& B:Aw` ?=\O>|r[T}k endstream endobj 60 0 obj <>/Subtype/text#2Fplain>>stream 3jֿ@DH,.g`QoBmF? ;8cn@;'( endstream endobj 61 0 obj <nW6i; C{?W#A>Z\(!h$9F05_e\r7Fj)/Size 2620>>/Subtype/image#2Fx-png>>stream B_ܺ5Cˮ0L7HUz]%wZS*-aJAzNϓn&R`i پPb`CMpv఑d0no[)̨l4>@R,K~@}kCzmyW]+ifLQ=a,rNOZ £p/Bk3:`@i?O[U1F4r+p%yxkAu2Ois%EfkOV PW2s =1s^r>9$HT=+EsK 'xPb-Z}.+nqg:T4<%ED> Ӆ|L?dz&`kđZ/hCQo'{}E<1+c( 't1(졖A"LI#*A\S:;ku_AAhG55F H 6(3HƎE.͠ .#cC+,69~ /n:4PT=%8q) X# j/-bigɛ`UYO2:YNC~7F>v4gjzw@Hʳɐ3&CT ޹t,73MDWp{_…h_S[L6 R0jӬ}&1_c)8r)RJB _9|N4-duX?%?/: ,cn! >׆-` [12Ƃ4ڸO@ҰD*ـe9(\c ɬd\{WVX; µh֫s_U:\ͼ%|=Xh9<-cַܿf_LB+ZKh7F[ |+Wz_Q:cdz7|0am ܁uxu`~1SYW:\'!7[_ĞŦiV!)ZcDbYs{ `ʍ6HwX O]T0rw:tzAО"\;ˢؔ7ۢtN0. eqF|ޑ$f2NK*_rY7hsvg5|T:B+qN=w`vXC ^9D;4Xq]*-GR&vr˓,;cpƪXs)bflDTKu5l[nMl5^GA'+,?mP_J$K){3];*^m*RxyB}p̤wjAu@}s=lwlpŨޓ}fh?(}sJp)hfeJT&V&X)VeДHwnk]CN{|ee:WQ; +;z 4ʏx9=,8.>9GQ _+#C512xy?W2FW^Ô(A Mw|j ?6' M'ͣG6g*-N;{-G!92MAh3p5e3Q"'}~g=%S=j8񗿒lN=S#x^(Z}ڡ Izc4ye8Ljl*Tbd%ȣ`F3@zv"OZv9GZb1Ρѫ:rHp }.(y *eW Pĭݙ5Ftq_9?- !aԟ`vdn¡!ܚy"\,.E,jz( ߯ƣOAIHJbմOҦt&9*{QVWgoܷsFu)??d6WG"4`<9!=Պt|Vr^3*۲7 y.EHHpɨ0Y;1qk~//to->!jdiw$E_/N21nǖd{>stream 0tB8mGz땄M[}YGZoZ 9X5p -u6`VȜMBQvdAFvO;MZV*'1vGl妽>V}&Ĭh%f*G;jg>Bf4h#<\|3(EnJoM:BTFٹma!uZspG>MӖI8jO8RX ixL553^U!PZ^wCJIiGCuO4Zvǫ3T7c\L8(4&hOS!/4;e;yETHJpe <'Z*%UEPYl˭d@=_bOR,ƹ{U#>a׮6@j]e ޢS' MIxӄ>uz~w0-Q17"f'gz=`br1W7(`2~`tJ ZEX-F$@ ,kDR@}bS^51:%\TT~n/2&z+qyJ8ߪK֎<"v[) $hU<$&[Oe3O@g`bAo&L(b Gx6IN JT6PvJ=&{x'Ory'k-j__B+H!ukt9J*D0CHQ:$A'ipCϫrZ"2 w6q_egLEM#h :ʭ]dx}H)j5G^;-C&Ojdg6p4[:mGVA%?)?_x`u>Fnu.j=pb2e'C4gRoߊnPUIЇ"xr5m\C`ҳu(٦1}mRs*g?x{x+?:6N0 59c1ZA 3Хg<]x s=zB"p @M63S?F .bpyF@= .; 8ƏNbf>aZ0OРmУr(84+`b VW'9 *סǹ<K^u4t@tEЎnhv.'0_,}DlA^=1Zr5N,I@mCqkAn5_x_W,YW (k|l;Ϗu)6 .4&,\F?u2ҟOĘV *wYhxG~:f endstream endobj 63 0 obj <>stream u IݘᖎӼFbNV&ہG>#|a=v/< 6] -ܥH[aZ0Fd6-ƫtahb< Q +l)Tǎzt+ݶ*xowdkKQ3zNwp V$@nK4!PloC^4K擜MB'ә5[cݜ GEǝS7Q;cV F?W8{| a'.ܧw5FhMLaM*Vrk1)dl>:Xd- \N{"aN1(TZCt7DYmak!=N֮o6#4k#3;vԁ2)Ǡ endstream endobj 64 0 obj <>stream 2012-12-29T17:31:46-05:00 2012-12-29T16:49:10-05:00 2012-12-29T17:31:46-05:00 application/pdf uuid:e2f4c09b-cfcf-4d3e-b4f4-2d5eba7e6962 uuid:68b72d63-f506-4458-b613-a4b04f6f0cfe endstream endobj 65 0 obj <>stream I)/18s3>dG풯hYW|A:F E8FB_}G?SAʔڣI|Nb5jbd!2bTgD![!rW|TuhÑ帇X.fŒ-a[&u*C5_g)ަ镃| $u",/# ɚv#>Wr<&:/y-eVqJo[{ tIʍ&RS!uYYa\<4筍9m endstream endobj 66 0 obj <>stream dՊc=rm?gm)L X\ȇw8TmG&l'a;L5o\eP}S-8 #e2i\sZ endstream endobj 67 0 obj <>/Encrypt 86 0 R/Filter/FlateDecode/ID[<7F25422CE0BDE941BB4347FD74E2B041><5B14C978D0BA39499E3935A9F1D82086>]/Info 84 0 R/Length 92/Root 87 0 R/Size 85/Type/XRef/W[1 2 1]>>stream hbb&Fn]&@ q[b-b1̢^2"27( Ab$x8A u{J,+_d% endstream endobj startxref 116 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/split-exp-08.Pdf0000644000064100006410000000136313247541377016402 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼T M,.M 3endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 6 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000398 00000 n trailer << /Root 1 0 R /Size 6 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 497 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/enc-R3,V2,U=view,O=master.pdf0000644000064100006410000004136313247541377020504 0ustar ejbejb%PDF-1.4 % 91 0 obj << /Linearized 1 /O 94 /H [ 1335 210 ] /L 17139 /E 4178 /N 30 /T 15201 >> endobj xref 91 22 0000000016 00000 n 0000000805 00000 n 0000001179 00000 n 0000001545 00000 n 0000001740 00000 n 0000001820 00000 n 0000002009 00000 n 0000002150 00000 n 0000002317 00000 n 0000002492 00000 n 0000002656 00000 n 0000002818 00000 n 0000003001 00000 n 0000003204 00000 n 0000003353 00000 n 0000003518 00000 n 0000003683 00000 n 0000003815 00000 n 0000003836 00000 n 0000003952 00000 n 0000001335 00000 n 0000001524 00000 n trailer << /Size 113 /Info 89 0 R /Encrypt 93 0 R /Root 92 0 R /Prev 15191 /ID[<66d36a30a97e0f16f39955c6221e0c2a><2658c2e5766d56a7f165b47a7b830d7d>] >> startxref 0 %%EOF 92 0 obj << /PageLabels << /Nums [ 0 << /P ()>> 2 << /S /r /St 1 >> 7 << /P ()>> 9 << /S /r /St 6 >> 11 << /P ()>> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P ()>> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /Pages 88 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 95 0 R /Metadata 90 0 R >> endobj 93 0 obj << /Filter /Standard /R 3 /O (c@aM=v7#+iD-5j) /U (<\)zo'MSY؎[n^\nyT!zx) /P -3104 /V 2 /Length 128 >> endobj 111 0 obj << /S 145 /O 189 /Filter /FlateDecode /Length 112 0 R >> stream G$#?X @bGR O"GGe,KEpt1{}#z8GY2; 6hqq(2`%B#eyHdc endstream endobj 112 0 obj 95 endobj 94 0 obj << /Contents 107 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 95 0 obj << /Type /Outlines /First 96 0 R /Last 97 0 R /Count 6 >> endobj 96 0 obj << /Type /Outline /Title (>%.Y5s'$y8=_tX3`I) /Parent 95 0 R /Count 4 /Next 97 0 R /First 98 0 R /Last 99 0 R /Dest [ 13 0 R /XYZ null null null ] >> endobj 97 0 obj << /Type /Outline /Title (/E/Qrǥ{Bjb) /Parent 95 0 R /Prev 96 0 R /Dest [ 43 0 R /XYZ 66 756 3 ] >> endobj 98 0 obj << /Type /Outline /Title (xp>װ @ v) /Parent 96 0 R /Next 99 0 R /First 102 0 R /Last 103 0 R /Count -3 /Dest [ 31 0 R /Fit ] >> endobj 99 0 obj << /Type /Outline /Title (Ģ%r>WLD:b=F6) /Parent 96 0 R /Prev 98 0 R /First 100 0 R /Last 101 0 R /Count 2 /Dest [ 37 0 R /FitH 792 ] >> endobj 100 0 obj << /Type /Outline /Title ("jhfK-yaYDWPxlۤXo-Et) /Parent 99 0 R /Next 101 0 R /Dest [ 1 0 R /FitR 66 714 180 770 ] >> endobj 101 0 obj << /Type /Outline /Title (" CPyhf;_Ë,*\r#ÕH> endobj 102 0 obj << /Type /Outline /Title ( 0ۇg-6D#0GlY) /Parent 98 0 R /Next 103 0 R /First 105 0 R /Last 106 0 R /Count -2 /Dest [ 34 0 R /FitV 100 ] >> endobj 103 0 obj << /Type /Outline /Title (\r:.[ $l[/;) /Parent 98 0 R /Prev 102 0 R /First 104 0 R /Last 104 0 R /Count 1 /Dest [ 34 0 R /XYZ null null null ] >> endobj 104 0 obj << /Type /Outline /Title (l[O@ T=asA7Okf[O) /Parent 103 0 R /Dest [ 64 0 R /XYZ null null null ] >> endobj 105 0 obj << /Type /Outline /Title (KÈA&^J\)ڔE>!K}"U-) /Parent 102 0 R /Next 106 0 R /Dest [ 52 0 R /XYZ null null null ] >> endobj 106 0 obj << /Type /Outline /Title (L[F]&vBt0nH\rW-mA0) /Parent 102 0 R /Prev 105 0 R /Dest [ 55 0 R /XYZ null null null ] >> endobj 107 0 obj << /Filter /FlateDecode /Length 108 0 R >> stream flFjα򐦓Ŝ #vw%e%vRrClgOP2 endstream endobj 108 0 obj 52 endobj 109 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 110 0 obj [ /PDF /Text ] endobj 1 0 obj << /Contents 2 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 2 0 obj << /Filter /FlateDecode /Length 3 0 R >> stream >- z-#ksm?;B$Z0 -<V&zi\Q7XwP endstream endobj 3 0 obj 52 endobj 4 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 5 0 obj << /Filter /FlateDecode /Length 6 0 R >> stream U-;gF*:?[4=b~tvO$|>cn؄K#o) endstream endobj 6 0 obj 52 endobj 7 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 8 0 obj << /Filter /FlateDecode /Length 9 0 R >> stream aNOUsu5 ӺzhEۏUS/gkHBwm endstream endobj 9 0 obj 52 endobj 10 0 obj << /Contents 11 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 11 0 obj << /Filter /FlateDecode /Length 12 0 R >> stream .$MC~ l<ɍYϙE0}^1f9 endstream endobj 12 0 obj 52 endobj 13 0 obj << /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 14 0 obj << /Filter /FlateDecode /Length 15 0 R >> stream kĆb6Ď|{x@Oœ[LBŠwN߳W endstream endobj 15 0 obj 52 endobj 16 0 obj << /Contents 17 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 17 0 obj << /Filter /FlateDecode /Length 18 0 R >> stream K(5Bvu󇻥 Fqq Df^?r:M endstream endobj 18 0 obj 52 endobj 19 0 obj << /Contents 20 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 20 0 obj << /Filter /FlateDecode /Length 21 0 R >> stream MdkޠGjSoCie;#\>eMێ!R\}~_? endstream endobj 21 0 obj 52 endobj 22 0 obj << /Contents 23 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 23 0 obj << /Filter /FlateDecode /Length 24 0 R >> stream Tע0;xIߏ`> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 26 0 obj << /Filter /FlateDecode /Length 27 0 R >> stream ;>r}'J̕: #Rbs`xV endstream endobj 27 0 obj 52 endobj 28 0 obj << /Contents 29 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 29 0 obj << /Filter /FlateDecode /Length 30 0 R >> stream (Kȏv{G`v9vk" 4ĢN endstream endobj 30 0 obj 53 endobj 31 0 obj << /Contents 32 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 32 0 obj << /Filter /FlateDecode /Length 33 0 R >> stream nڅ8ǮgvQq/p,(ۛ(_lٸeƪ0W endstream endobj 33 0 obj 53 endobj 34 0 obj << /Contents 35 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 35 0 obj << /Filter /FlateDecode /Length 36 0 R >> stream !֓|>hYE̤nFdPm ўz endstream endobj 36 0 obj 53 endobj 37 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 38 0 obj << /Filter /FlateDecode /Length 39 0 R >> stream .ZiMU,=5[^8?EdJRK!e.zHvUM}El endstream endobj 39 0 obj 53 endobj 40 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 41 0 obj << /Filter /FlateDecode /Length 42 0 R >> stream ^S}y ͊ۋe^BћO?i>cu"V endstream endobj 42 0 obj 53 endobj 43 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 44 0 obj << /Filter /FlateDecode /Length 45 0 R >> stream eUsA4:ޠHsqNTU/#Oʆwt[3(/e endstream endobj 45 0 obj 53 endobj 46 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 47 0 obj << /Filter /FlateDecode /Length 48 0 R >> stream Շ6b3u?V7d 0̿k.2rCD endstream endobj 48 0 obj 53 endobj 49 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 50 0 obj << /Filter /FlateDecode /Length 51 0 R >> stream C}O@P$7/YJa,'"&p #O> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 53 0 obj << /Filter /FlateDecode /Length 54 0 R >> stream niI_`(/>%8-:86(VMa6 endstream endobj 54 0 obj 53 endobj 55 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 56 0 obj << /Filter /FlateDecode /Length 57 0 R >> stream ̬ 0~q*n Om_> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 59 0 obj << /Filter /FlateDecode /Length 60 0 R >> stream }X5 #ju|²( 69$磼u|ZM}? endstream endobj 60 0 obj 53 endobj 61 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 62 0 obj << /Filter /FlateDecode /Length 63 0 R >> stream 9bG$Χx3yZy+m#3f34;@S.u# endstream endobj 63 0 obj 53 endobj 64 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 65 0 obj << /Filter /FlateDecode /Length 66 0 R >> stream cwsI#CV5:o 'N`Z!Y}]wGn j endstream endobj 66 0 obj 53 endobj 67 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 68 0 obj << /Filter /FlateDecode /Length 69 0 R >> stream +[:vUSh:\ ;%mʗL9ט9!md]oeOԚ endstream endobj 69 0 obj 53 endobj 70 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 71 0 obj << /Filter /FlateDecode /Length 72 0 R >> stream |(Wru"-qna{@ H'2oɍ҆ endstream endobj 72 0 obj 52 endobj 73 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 74 0 obj << /Filter /FlateDecode /Length 75 0 R >> stream QSw'gi3p4_:~ZOn1Rup endstream endobj 75 0 obj 53 endobj 76 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 77 0 obj << /Filter /FlateDecode /Length 78 0 R >> stream nZ[%HMCqD8c 4˴ qjkыo 1>ԫA endstream endobj 78 0 obj 53 endobj 79 0 obj << /Contents 80 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 80 0 obj << /Filter /FlateDecode /Length 81 0 R >> stream n&z0!tS9P2U>- ِ>'k(cgpB&  endstream endobj 81 0 obj 53 endobj 82 0 obj << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 83 0 obj << /Filter /FlateDecode /Length 84 0 R >> stream ^p]&a|H(h>ȓ3YEK/OD9/"|ׯ! endstream endobj 84 0 obj 53 endobj 85 0 obj << /Contents 86 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 86 0 obj << /Filter /FlateDecode /Length 87 0 R >> stream &VgdˊQ *_3GKG4. h5AN endstream endobj 87 0 obj 53 endobj 88 0 obj << /Count 30 /Kids [ 94 0 R 1 0 R 4 0 R 7 0 R 10 0 R 13 0 R 16 0 R 19 0 R 22 0 R 25 0 R 28 0 R 31 0 R 34 0 R 37 0 R 40 0 R 43 0 R 46 0 R 49 0 R 52 0 R 55 0 R 58 0 R 61 0 R 64 0 R 67 0 R 70 0 R 73 0 R 76 0 R 79 0 R 82 0 R 85 0 R ] /Type /Pages >> endobj 89 0 obj << /ModDate (\)> endobj 90 0 obj << /Type /Metadata /Subtype /XML /Length 770 >> stream ܭ@/lO;ڼ:;:O}X ѧ8YLKxߤJ? ݺw~0K@4|eHv Ym^! <H]s}a\qT~<KзtDr&IFjOV:*Ob p1J0٠AY4 ۷.BB.${'f({-7)ɌxvjS/[{;DrC'c'`\Cǘo`_NJ@ )?b!P|f2OfZ|ޱjA;9yz(WJaAXC OeRY x ;U]FKz"h@Z#rUJ|4w;JT @zo > *ۜ lJL\|;LF[N*N[ °Tnb'0ِ<+FxPF~LaNYlLZ2 \c{ zvG ( )urɌ ,qhdS^e<#e2֔i=0I,W؎ZW8-nus.r&ނPpD{4!OeKa@ BtgfDafXs,O+q܈kFhƬRW}`K\Rڢu-픱J{v/Ua+> hsc1uB̵ zNJ| endstream endobj xref 0 91 0000000000 65535 f 0000003986 00000 n 0000004178 00000 n 0000004306 00000 n 0000004325 00000 n 0000004517 00000 n 0000004645 00000 n 0000004664 00000 n 0000004856 00000 n 0000004984 00000 n 0000005003 00000 n 0000005197 00000 n 0000005327 00000 n 0000005347 00000 n 0000005541 00000 n 0000005671 00000 n 0000005691 00000 n 0000005885 00000 n 0000006015 00000 n 0000006035 00000 n 0000006229 00000 n 0000006359 00000 n 0000006379 00000 n 0000006573 00000 n 0000006703 00000 n 0000006723 00000 n 0000006917 00000 n 0000007047 00000 n 0000007067 00000 n 0000007261 00000 n 0000007392 00000 n 0000007412 00000 n 0000007606 00000 n 0000007737 00000 n 0000007757 00000 n 0000007951 00000 n 0000008082 00000 n 0000008102 00000 n 0000008296 00000 n 0000008427 00000 n 0000008447 00000 n 0000008641 00000 n 0000008772 00000 n 0000008792 00000 n 0000008986 00000 n 0000009117 00000 n 0000009137 00000 n 0000009331 00000 n 0000009462 00000 n 0000009482 00000 n 0000009676 00000 n 0000009807 00000 n 0000009827 00000 n 0000010021 00000 n 0000010152 00000 n 0000010172 00000 n 0000010366 00000 n 0000010497 00000 n 0000010517 00000 n 0000010711 00000 n 0000010842 00000 n 0000010862 00000 n 0000011056 00000 n 0000011187 00000 n 0000011207 00000 n 0000011401 00000 n 0000011532 00000 n 0000011552 00000 n 0000011746 00000 n 0000011877 00000 n 0000011897 00000 n 0000012091 00000 n 0000012221 00000 n 0000012241 00000 n 0000012435 00000 n 0000012566 00000 n 0000012586 00000 n 0000012780 00000 n 0000012911 00000 n 0000012931 00000 n 0000013125 00000 n 0000013256 00000 n 0000013276 00000 n 0000013470 00000 n 0000013601 00000 n 0000013621 00000 n 0000013815 00000 n 0000013946 00000 n 0000013966 00000 n 0000014236 00000 n 0000014337 00000 n trailer << /Size 91 /ID[<66d36a30a97e0f16f39955c6221e0c2a><2658c2e5766d56a7f165b47a7b830d7d>] >> startxref 173 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.7.check0000644000064100006410000000026213247541377017136 0ustar ejbejbchecking a.pdf PDF Version: 1.3 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-other-force-1.8.5.qdf0000644000064100006410000000240113247541377022235 0ustar ejbejb%PDF-1.8 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Extensions << /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj %% Original object ID: 6 0 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 7 0 7 0 obj [ /PDF /Text ] endobj xref 0 8 0000000000 65535 f 0000000052 00000 n 0000000301 00000 n 0000000410 00000 n 0000000652 00000 n 0000000751 00000 n 0000000797 00000 n 0000000942 00000 n trailer << /Root 1 0 R /Size 8 /ID [<484577389048fa45fc00a1f5b434efa5><31415926535897932384626433832795>] >> startxref 977 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad22.pdf0000644000064100006410000000141213247541377015155 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Qength 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /QTest 4 0 R >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/split-exp-group-06-10.pdf0000644000064100006410000000400313247541377020002 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 5 /Kids [ 3 0 R 4 0 R 5 0 R 6 0 R 7 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 9 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Contents 10 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 9 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 5 0 obj << /Contents 11 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 9 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 6 0 obj << /Contents 12 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 9 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 7 0 obj << /Contents 13 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 9 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 8 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼T3M,.; 1endstream endobj 9 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 10 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TsM,.D 2endstream endobj 11 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼T M,.M 3endstream endobj 12 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TKM,.V 4endstream endobj 13 0 obj << /Filter /FlateDecode /Length 54 >> stream xs Qw3T04UIS07" ̼TCM,." \endstream endobj xref 0 14 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000147 00000 n 0000000299 00000 n 0000000452 00000 n 0000000605 00000 n 0000000758 00000 n 0000000911 00000 n 0000001034 00000 n 0000001133 00000 n 0000001257 00000 n 0000001381 00000 n 0000001505 00000 n trailer << /Root 1 0 R /Size 14 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 1630 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad34.pdf0000644000064100006410000000143113247541377015161 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 4 0 obj << /Length 44 /Quack 9 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000322 00000 n 0000000418 00000 n 0000000453 00000 n trailer << /Size 7 /Root 1 0 R /QTest 4 0 R >> startxref 571 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/good9.qdf0000644000064100006410000000226513247541377015314 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj %% Original object ID: 6 0 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 5 0 7 0 obj [ /PDF /Text ] endobj xref 0 8 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000242 00000 n 0000000484 00000 n 0000000583 00000 n 0000000629 00000 n 0000000774 00000 n trailer << /QTest (Hola!) /Root 1 0 R /Size 8 /Z <279e79d4051fe36af8d7b8425e510a8b39940d447c6be3a24a5a6d3abd6c99025c> /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 809 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/unfilterable-with-crypt-after.out0000644000064100006410000000045113247541377022206 0ustar ejbejb<< /DL 30 /DecodeParms [ null ] /Filter [ /ZlateDecode ] /Length 39 /Params << /CheckSum /CreationDate (D:20121229172641-05'00') /ModDate (D:20121229172600) /Size 30 >> /Subtype /text#2fplain >>attachment1.txt: This is the first attachment. --END-- test 36 done qpdf-8.0.2/qpdf/qtest/qpdf/fax-decode-parms.out0000644000064100006410000000030113247541377017434 0ustar ejbejbchecking fax-decode-parms.pdf PDF Version: 1.4 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.8-ogen.c-check0000644000064100006410000000005013247541377020300 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/linearization-bounds-2.pdf0000644000064100006410000003001613247541377020564 0ustar ejbejb%PDF-1.3 % 60 0 obj << /Linearized 1 /L 12302 /H [ 1114 192 ] /O 63 /E 3631 /N 30 /T 10983 >> endobj xref 60 19 0000000015 00000 n 0000000764 00000 n 0000001114 00000 n 0000001306 00000 n 0000001454 00000 n 0000001550 00000 n 0000001658 00000 n 0000001689 00000 n 0000001763 00000 n 0000001942 00000 n 0000002077 00000 n 0000002233 00000 n 0000002511 00000 n 0000002667 00000 n 0000002820 00000 n 0000002990 00000 n 0000003179 00000 n 0000003321 00000 n 0000003476 00000 n trailer << /Root 61 0 R /Size 79 /Prev 10974 /ID [<14d7d243d6d6ad3bc3f75c7c5994346d>] >> startxref 0 %%EOF 61 0 obj << /Outlines 67 0 R /PageLabels << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /PageMode /UseOutlines /Pages 59 0 R /Type /Catalog >> endobj 62 0 obj << /Filter /FlateDecode /S 999 /Length 99 >> stream xc```b``b`a`` 6+49@h&fr`V#<$"(f`g(ueОQ{^~M Xܙ&}m# endstream endobj 63 0 obj << /Contents 64 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 64 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 0) Tj ET endstream endobj 65 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 66 0 obj [ /PDF /Text ] endobj 67 0 obj << /Count 6 /First 68 0 R /Last 69 0 R /Type /Outlines >> endobj 68 0 obj << /Count 4 /Dest [ 9 0 R /XYZ null null null ] /First 70 0 R /Last 71 0 R /Next 69 0 R /Parent 67 0 R /Title (Iss 1 -> 5: /XYZ null null null) /Type /Outline >> endobj 69 0 obj << /Dest [ 29 0 R /XYZ 66 756 3 ] /Parent 67 0 R /Prev 68 0 R /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Type /Outline >> endobj 70 0 obj << /Count -3 /Dest [ 21 0 R /Fit ] /First 74 0 R /Last 75 0 R /Next 71 0 R /Parent 68 0 R /Title (Amanda 1.1 -> 11: /Fit) /Type /Outline >> endobj 71 0 obj << /Count 2 /Dest [ 25 0 R /FitH 792 ] /First 72 0 R /Last 73 0 R /Parent 68 0 R /Prev 70 0 R /Title /Type /Outline >> endobj 72 0 obj << /Dest [ 1 0 R /FitR 66 714 180 770 ] /Next 73 0 R /Parent 71 0 R /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Type /Outline >> endobj 73 0 obj << /Dest [ 63 0 R /XYZ null null null ] /Parent 71 0 R /Prev 72 0 R /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Type /Outline >> endobj 74 0 obj << /Count -2 /Dest [ 23 0 R /FitV 100 ] /First 77 0 R /Last 78 0 R /Next 75 0 R /Parent 70 0 R /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Type /Outline >> endobj 75 0 obj << /Count 1 /Dest [ 23 0 R /XYZ null null null ] /First 76 0 R /Last 76 0 R /Parent 70 0 R /Prev 74 0 R /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Type /Outline >> endobj 76 0 obj << /Dest [ 43 0 R /XYZ null null null ] /Parent 75 0 R /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Type /Outline >> endobj 77 0 obj << /Dest [ 35 0 R /XYZ null null null ] /Next 78 0 R /Parent 74 0 R /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Type /Outline >> endobj 78 0 obj << /Dest [ 37 0 R /XYZ null null null ] /Parent 74 0 R /Prev 77 0 R /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Type /Outline >> endobj 1 0 obj << /Contents 2 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 2 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 4 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 5 0 obj << /Contents 6 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 6 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 7 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 8 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 9 0 obj << /Contents 10 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 10 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 11 0 obj << /Contents 12 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 12 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 13 0 obj << /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 14 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 15 0 obj << /Contents 16 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 16 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 17 0 obj << /Contents 18 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 18 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 19 0 obj << /Contents 20 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 20 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 21 0 obj << /Contents 22 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 22 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 23 0 obj << /Contents 24 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 24 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 25 0 obj << /Contents 26 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 26 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 27 0 obj << /Contents 28 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 28 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 29 0 obj << /Contents 30 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 30 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 31 0 obj << /Contents 32 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 32 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 33 0 obj << /Contents 34 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 34 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 35 0 obj << /Contents 36 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 36 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 37 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 38 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 39 0 obj << /Contents 40 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 40 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 41 0 obj << /Contents 42 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 42 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 43 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 44 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 45 0 obj << /Contents 46 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 46 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 47 0 obj << /Contents 48 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 48 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 49 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 50 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 51 0 obj << /Contents 52 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 52 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 53 0 obj << /Contents 54 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 54 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 55 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 56 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 57 0 obj << /Contents 58 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 58 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 59 0 obj << /Count 30 /Kids [ 63 0 R 1 0 R 3 0 R 5 0 R 7 0 R 9 0 R 11 0 R 13 0 R 15 0 R 17 0 R 19 0 R 21 0 R 23 0 R 25 0 R 27 0 R 29 0 R 31 0 R 33 0 R 35 0 R 37 0 R 39 0 R 41 0 R 43 0 R 45 0 R 47 0 R 49 0 R 51 0 R 53 0 R 55 0 R 57 0 R ] /Type /Pages >> endobj xref 0 60 0000000000 65535 f 0000003631 00000 n 0000003777 00000 n 0000003872 00000 n 0000004018 00000 n 0000004113 00000 n 0000004259 00000 n 0000004354 00000 n 0000004500 00000 n 0000004595 00000 n 0000004742 00000 n 0000004838 00000 n 0000004986 00000 n 0000005082 00000 n 0000005230 00000 n 0000005326 00000 n 0000005474 00000 n 0000005570 00000 n 0000005718 00000 n 0000005814 00000 n 0000005962 00000 n 0000006059 00000 n 0000006207 00000 n 0000006304 00000 n 0000006452 00000 n 0000006549 00000 n 0000006697 00000 n 0000006794 00000 n 0000006942 00000 n 0000007039 00000 n 0000007187 00000 n 0000007284 00000 n 0000007432 00000 n 0000007529 00000 n 0000007677 00000 n 0000007774 00000 n 0000007922 00000 n 0000008019 00000 n 0000008167 00000 n 0000008264 00000 n 0000008412 00000 n 0000008509 00000 n 0000008657 00000 n 0000008754 00000 n 0000008902 00000 n 0000008999 00000 n 0000009147 00000 n 0000009244 00000 n 0000009392 00000 n 0000009489 00000 n 0000009637 00000 n 0000009734 00000 n 0000009882 00000 n 0000009979 00000 n 0000010127 00000 n 0000010224 00000 n 0000010372 00000 n 0000010469 00000 n 0000010617 00000 n 0000010714 00000 n trailer << /Size 60 /ID [<14d7d243d6d6ad3bc3f75c7c5994346d>] >> startxref 216 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.1-ogen.c-check0000644000064100006410000000005013247541377020314 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/linearization-bounds-2.out0000644000064100006410000000106213247541377020621 0ustar ejbejbchecking linearization-bounds-2.pdf PDF Version: 1.3 File is not encrypted File is linearized WARNING: linearization-bounds-2.pdf (linearization hint stream: object 62 0, offset 1282): expected endstream WARNING: linearization-bounds-2.pdf (linearization hint stream: object 62 0, offset 1183): attempting to recover stream length WARNING: linearization-bounds-2.pdf (linearization hint stream: object 62 0, offset 1183): recovered stream length: 106 linearization-bounds-2.pdf (linearization hint table, offset 1183): /S (shared object) offset is out of bounds qpdf-8.0.2/qpdf/qtest/qpdf/bad33.pdf0000644000064100006410000000176613247541377015173 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 7 0 obj << % Comment /Length 123 /Filter (FlateDecode) >> stream x%11 b;t4| wXID8G>rQu O E:IWPlII)rp4~;As/҅jcszT.?u<*6 endstream endobj xref 0 8 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n 0000000556 00000 n trailer << /Size 8 /Root 1 0 R /QTest 7 0 R >> startxref 1771 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/damaged-stream-c-check.out0000644000064100006410000000073213247541377020473 0ustar ejbejbwarning: damaged-stream.pdf (offset 426): error decoding stream data for object 5 0: LZWDecoder: bad code received code: 5 file: damaged-stream.pdf pos : 426 text: error decoding stream data for object 5 0: LZWDecoder: bad code received warning: damaged-stream.pdf (offset 426): stream will be re-processed without filtering to avoid data loss code: 5 file: damaged-stream.pdf pos : 426 text: stream will be re-processed without filtering to avoid data loss qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.1-ogen.c-check0000644000064100006410000000005013247541377020271 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/extra-header-lin-newline.pdf0000644000064100006410000000246613247541377021065 0ustar ejbejb%PDF-1.3 % 2 0 obj << /Linearized 1 /L 1334 /H [ 593 118 ] /O 5 /E 1109 /N 1 /T 1176 >> endobj %% Comment with newline xref 2 7 0000000015 00000 n 0000000544 00000 n 0000000593 00000 n 0000000711 00000 n 0000000854 00000 n 0000000972 00000 n 0000001002 00000 n trailer << /Root 3 0 R /Size 9 /Prev 1168 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 0 %%EOF 3 0 obj << /Pages 1 0 R /Type /Catalog >> endobj 4 0 obj << /Filter /FlateDecode /S 36 /Length 41 >> stream xc```a`` d>8p1?N`Q endstream endobj 5 0 obj << /Contents 6 0 R /MediaBox [ 0 0 612 792 ] /Parent 1 0 R /Resources << /Font << /F1 8 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj 6 0 obj << /Length 48 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 7 0 obj [ /PDF /Text ] endobj 8 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 1 0 obj << /Count 1 /Kids [ 5 0 R ] /Type /Pages >> endobj xref 0 2 0000000000 65535 f 0000001109 00000 n trailer << /Size 2 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 240 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/extensions-other-force-1.8.5.qdf0000644000064100006410000000240113247541377021344 0ustar ejbejb%PDF-1.8 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Extensions << /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj %% Original object ID: 6 0 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 7 0 7 0 obj [ /PDF /Text ] endobj xref 0 8 0000000000 65535 f 0000000052 00000 n 0000000301 00000 n 0000000410 00000 n 0000000652 00000 n 0000000751 00000 n 0000000797 00000 n 0000000942 00000 n trailer << /Root 1 0 R /Size 8 /ID [<369e89600ee1a6c4c7e73533610180c2><31415926535897932384626433832795>] >> startxref 977 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/large_file_xref_reconstruct.out0000644000064100006410000000623113247541377022075 0ustar ejbejbWARNING: a.pdf: file is damaged WARNING: a.pdf: can't find startxref WARNING: a.pdf: Attempting to reconstruct cross-reference table page 1 of 200 page 2 of 200 page 3 of 200 page 4 of 200 page 5 of 200 page 6 of 200 page 7 of 200 page 8 of 200 page 9 of 200 page 10 of 200 page 11 of 200 page 12 of 200 page 13 of 200 page 14 of 200 page 15 of 200 page 16 of 200 page 17 of 200 page 18 of 200 page 19 of 200 page 20 of 200 page 21 of 200 page 22 of 200 page 23 of 200 page 24 of 200 page 25 of 200 page 26 of 200 page 27 of 200 page 28 of 200 page 29 of 200 page 30 of 200 page 31 of 200 page 32 of 200 page 33 of 200 page 34 of 200 page 35 of 200 page 36 of 200 page 37 of 200 page 38 of 200 page 39 of 200 page 40 of 200 page 41 of 200 page 42 of 200 page 43 of 200 page 44 of 200 page 45 of 200 page 46 of 200 page 47 of 200 page 48 of 200 page 49 of 200 page 50 of 200 page 51 of 200 page 52 of 200 page 53 of 200 page 54 of 200 page 55 of 200 page 56 of 200 page 57 of 200 page 58 of 200 page 59 of 200 page 60 of 200 page 61 of 200 page 62 of 200 page 63 of 200 page 64 of 200 page 65 of 200 page 66 of 200 page 67 of 200 page 68 of 200 page 69 of 200 page 70 of 200 page 71 of 200 page 72 of 200 page 73 of 200 page 74 of 200 page 75 of 200 page 76 of 200 page 77 of 200 page 78 of 200 page 79 of 200 page 80 of 200 page 81 of 200 page 82 of 200 page 83 of 200 page 84 of 200 page 85 of 200 page 86 of 200 page 87 of 200 page 88 of 200 page 89 of 200 page 90 of 200 page 91 of 200 page 92 of 200 page 93 of 200 page 94 of 200 page 95 of 200 page 96 of 200 page 97 of 200 page 98 of 200 page 99 of 200 page 100 of 200 page 101 of 200 page 102 of 200 page 103 of 200 page 104 of 200 page 105 of 200 page 106 of 200 page 107 of 200 page 108 of 200 page 109 of 200 page 110 of 200 page 111 of 200 page 112 of 200 page 113 of 200 page 114 of 200 page 115 of 200 page 116 of 200 page 117 of 200 page 118 of 200 page 119 of 200 page 120 of 200 page 121 of 200 page 122 of 200 page 123 of 200 page 124 of 200 page 125 of 200 page 126 of 200 page 127 of 200 page 128 of 200 page 129 of 200 page 130 of 200 page 131 of 200 page 132 of 200 page 133 of 200 page 134 of 200 page 135 of 200 page 136 of 200 page 137 of 200 page 138 of 200 page 139 of 200 page 140 of 200 page 141 of 200 page 142 of 200 page 143 of 200 page 144 of 200 page 145 of 200 page 146 of 200 page 147 of 200 page 148 of 200 page 149 of 200 page 150 of 200 page 151 of 200 page 152 of 200 page 153 of 200 page 154 of 200 page 155 of 200 page 156 of 200 page 157 of 200 page 158 of 200 page 159 of 200 page 160 of 200 page 161 of 200 page 162 of 200 page 163 of 200 page 164 of 200 page 165 of 200 page 166 of 200 page 167 of 200 page 168 of 200 page 169 of 200 page 170 of 200 page 171 of 200 page 172 of 200 page 173 of 200 page 174 of 200 page 175 of 200 page 176 of 200 page 177 of 200 page 178 of 200 page 179 of 200 page 180 of 200 page 181 of 200 page 182 of 200 page 183 of 200 page 184 of 200 page 185 of 200 page 186 of 200 page 187 of 200 page 188 of 200 page 189 of 200 page 190 of 200 page 191 of 200 page 192 of 200 page 193 of 200 page 194 of 200 page 195 of 200 page 196 of 200 page 197 of 200 page 198 of 200 page 199 of 200 page 200 of 200 qpdf-8.0.2/qpdf/qtest/qpdf/bad3.pdf0000644000064100006410000000135713247541377015104 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj noxref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000128 00000 n 0000000300 00000 n 0000000389 00000 n 0000000424 00000 n trailer << /Size 7 /Root 1 0 R >> startxref 542 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-other.pdf0000644000064100006410000000215113247541377020473 0ustar ejbejb%PDF-1.7 % %QDF-1.0 1 0 obj << /Pages 2 0 R /Type /Catalog /Extensions << /ADBE 8 0 R /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 7 0 obj [ /PDF /Text ] endobj 8 0 obj << /BaseVersion /1.7 /ExtensionLevel 2 >> endobj xref 0 9 0000000000 65535 f 0000000025 00000 n 0000000179 00000 n 0000000261 00000 n 0000000476 00000 n 0000000575 00000 n 0000000594 00000 n 0000000712 00000 n 0000000747 00000 n trailer << /Root 1 0 R /Size 9 /ID [<484577389048fa45fc00a1f5b434efa5><484577389048fa45fc00a1f5b434efa5>] >> startxref 805 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/test14.out0000644000064100006410000000022013247541377015441 0ustar ejbejbcaught logic error as expected old dict: 1 old dict: 1 new dict: 2 swapped array: /Array array and dictionary contents are correct test 14 done qpdf-8.0.2/qpdf/qtest/qpdf/V4-encryption.out0000644000064100006410000000057213247541377017010 0ustar ejbejbR = 4 P = -4 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed stream encryption method: RC4 string encryption method: RC4 file encryption method: RC4 qpdf-8.0.2/qpdf/qtest/qpdf/bad14-recover.out0000644000064100006410000000031313247541377016656 0ustar ejbejbWARNING: bad14.pdf (trailer, offset 753): treating unexpected brace token as null /QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/terminate-parsing.out0000644000064100006410000000244013247541377017754 0ustar ejbejbname: /potato test suite: terminating parsing real: 0.1 integer: 0 integer: 0 real: 0.1 integer: 0 integer: 0 operator: cm operator: q integer: 0 real: 1.1999 real: -1.1999 integer: 0 real: 121.19 real: 150.009 operator: cm operator: BI name: /CS name: /G name: /W integer: 1 name: /H integer: 1 name: /BPC integer: 8 name: /F name: /Fl name: /DP dictionary: << /Columns 1 /Predictor 15 >> operator: ID inline-image: 789c63fc0f0001030101 operator: EI operator: Q operator: q integer: 0 real: 35.997 real: -128.389 integer: 0 real: 431.964 real: 7269.02 operator: cm operator: BI name: /CS name: /G name: /W integer: 30 name: /H integer: 107 name: /BPC integer: 8 name: /F name: /Fl name: /DP dictionary: << /Columns 30 /Predictor 15 >> operator: ID inline-image: 789cedd1a11100300800b1b2ffd06503148283bc8dfcf8af2a306ee352eff2e06318638c31c63b3801627b620a operator: EI operator: Q operator: q integer: 0 real: 38.3968 real: -93.5922 integer: 0 real: 431.964 real: 7567.79 operator: cm operator: BI name: /CS name: /G name: /W integer: 32 name: /H integer: 78 name: /BPC integer: 8 name: /F name: /Fl name: /DP dictionary: << /Columns 32 /Predictor 15 >> operator: ID inline-image: 789c63fccf801f308e2a185530aa60882a20203faa605401890a0643aa1e5530aa6054010d140000bdd03c13 operator: EI operator: Q -EOF- test 37 done qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-min-1.7.2.out0000644000064100006410000000020513247541377020634 0ustar ejbejbversion: 1.7 extension level: 2 << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 /URL (http://something.adobe.com) >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/bad-xref-entry.pdf0000644000064100006410000000213113247541377017111 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj %% Original object ID: 6 0 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 5 0 7 0 obj [ /PDF /Text ] endobj xref 0 8 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000242 00000 n 0000000484 00000 n 0000000580 00000 n 0000000629 00000 n 0000000774 00000 n trailer << /Root 1 0 R /Size 8 /ID [<2e68fbddcf3742fa64db89e66acd25d9><2e68fbddcf3742fa64db89e66acd25d9>] >> startxref 809 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/split-exp-09.Pdf0000644000064100006410000000136313247541377016403 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TKM,.V 4endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 6 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000398 00000 n trailer << /Root 1 0 R /Size 6 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 497 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad32.pdf0000644000064100006410000000141213247541377015156 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 9 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /QTest 4 0 R >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/shallow_stream.out0000644000064100006410000000005313247541377017345 0ustar ejbejbattempt to make a shallow copy of a stream qpdf-8.0.2/qpdf/qtest/qpdf/bad4-recover.out0000644000064100006410000000043713247541377016604 0ustar ejbejbWARNING: bad4.pdf: file is damaged WARNING: bad4.pdf (xref table, offset 547): xref syntax invalid WARNING: bad4.pdf: Attempting to reconstruct cross-reference table /QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.2-ogen.c-check0000644000064100006410000000005013247541377020631 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/issue-141a.pdf0000644000064100006410000000012213247541377016054 0ustar ejbejb0009 0 obj<>stream endstream endobj startxref 3 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.8-ogen.c-check0000644000064100006410000000005013247541377022311 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.5-ogen.c-check0000644000064100006410000000005013247541377020634 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.2.c-check0000644000064100006410000000005013247541377017344 0ustar ejbejbversion: 1.3 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/issue-117.pdf0000644000064100006410000000540113247541377015723 0ustar ejbejb%PDF-1.4 %äß 2 0 obj <> stream x33T(*T0P0L-M,L ,Rµ  ͊* *@LA!Th HZ>9K3D%_!Z=kTA]|endstream endobj 3 0 obj 90 endobj 4 0 obj <> stream x']|l>XZYI#"ح\Gp{o{x3oѸ땫rǝΓv)эʠ=\##fg_,.]]ꏳϻ:DD2ʵn*d+^ QHRy7Rfq‰"n(oL^DݦAi͍C)B/xΓQV%BKP̫z&"P%ǡ"R4ƅN"ilU֢ A5BihLGٗqu.wFBR`+x\KRHO̷x( Nދ|~prhVHEm ,1s] 798nwo呛HIHHA@h^ar,2dSIٗq >`׏d(b + [#Ù1yn;m!A-u_Ƅ+kƿsl/1*+d_HF> stream x + H$  u J@ nm3;hέn8Cw;S ;m!A-u_Ƅ+:j2B P p hgTȔ t\Zh/~U$;;n$Q>֊ %M:!Ŭ2 s˒R)!Ŭ2 +j-+ 4 ֣c8zVs< 44 ֣:l>zVs< YXp>|U č g,[se ,X{g]['K m{g饹]['K W=Eh0 endstream endobj 7 0 obj 10P1 endobj 9 0 obj << >> endobj 10 0 obj <> /ProcSet[/PDF/Text/ImageC/ImageI/ImageB] >> endobj 1 0 obj <>/Contents 2 0 R>> endobj 8 0 obj <> endobj 11 0 obj <> endobj 12 0 obj < /Producer /CreationDate(D:20160726112714+02'00')>> endobj xref 0 13 f n 0000000019 00000 n 0000000180 00000 n n 0000001582 00000 n 0000001603 00000 n 0000002871 00000 n n 0000002892 00000 n 0000002914 00000 n 0000003254 00000 n n trailer < ] /DocChecksum /4B441113AA259DFC90F1B66B7406B22D >> startxref 3526 % qpdf-8.0.2/qpdf/qtest/qpdf/extensions-other-min-1.7.3.out0000644000064100006410000000023513247541377021066 0ustar ejbejbversion: 1.7 extension level: 3 << /ADBE << /BaseVersion /1.7 /ExtensionLevel 3 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/good1.out0000644000064100006410000000017113247541377015333 0ustar ejbejb/QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/good5.out0000644000064100006410000000017713247541377015345 0ustar ejbejb/QTest is indirect and has type boolean (3) /QTest is Boolean with value true unparse: 7 0 R unparseResolved: true test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/bad5-recover.out0000644000064100006410000000044613247541377016605 0ustar ejbejbWARNING: bad5.pdf: file is damaged WARNING: bad5.pdf (xref table, offset 591): invalid xref entry (obj=2) WARNING: bad5.pdf: Attempting to reconstruct cross-reference table /QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/no-contents-coalesce-contents.pdf0000644000064100006410000000103013247541377022135 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 720 720 ] /Parent 2 0 R /Resources << >> /Type /Page >> endobj 4 0 obj << /Length 0 /Filter /FlateDecode >> stream endstream endobj xref 0 5 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000229 00000 n trailer << /Root 1 0 R /Size 5 /ID [<52bba3c78160d0c6e851b59110e5d076><31415926535897932384626433832795>] >> startxref 298 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.9-ogen.c-check0000644000064100006410000000005013247541377020301 0ustar ejbejbversion: 1.5 linearized: 1 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/unreferenced-dropped.pdf0000644000064100006410000000143713247541377020372 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet 6 0 R >> /Type /Page >> endobj 4 0 obj << /Length 48 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 5 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 6 0 obj [ /PDF /Text ] endobj xref 0 7 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000266 00000 n 0000000384 00000 n 0000000491 00000 n trailer << /Root 1 0 R /Size 7 /ID [<5c2381b459937c988290150df782f1fd><31415926535897932384626433832795>] >> startxref 521 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/lin6.pdf0000644000064100006410000006037013247541377015143 0ustar ejbejb%PDF-1.4 % 91 0 obj << /Linearized 1 /L 24824 /H [ 1291 232 ] /O 93 /E 2897 /N 30 /T 22877 >> endobj xref 91 22 0000000017 00000 n 0000000910 00000 n 0000001523 00000 n 0000001732 00000 n 0000001865 00000 n 0000001982 00000 n 0000002016 00000 n 0000002263 00000 n 0000002317 00000 n 0000002897 00000 n 0000002982 00000 n 0000003179 00000 n 0000003326 00000 n 0000003499 00000 n 0000003795 00000 n 0000003963 00000 n 0000004128 00000 n 0000004315 00000 n 0000004521 00000 n 0000004673 00000 n 0000004840 00000 n 0000001291 00000 n trailer << /Size 113 /Prev 22866 /Info 89 0 R /Root 92 0 R /ID [<67d1eb92072918b21678fe411bdecbe9><67d1eb92072918b21678fe411bdecbe9>] >> startxref 0 %%EOF 92 0 obj << /PageLabels << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /Pages 88 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 100 0 R /Metadata 90 0 R >> endobj 112 0 obj << /S 262 /O 337 /Filter /FlateDecode /Length 133 >> stream xc```f``f`e``raa@ 3 G ca0a \ 8NT!w~OEHr!>a(f`Pb>f`aq\HM(elG~S2a?Y endstream endobj 93 0 obj << /Contents 94 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 95 0 R >> /ProcSet 96 0 R >> /Type /Page /Thumb 97 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 94 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0  endstream endobj 95 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 96 0 obj [ /PDF /Text ] endobj 97 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 98 0 R /BitsPerComponent 8 /Length 83 >> stream 8;Z]Y0b(o`&-G4acc:FWkNLuZiJL1R9X1GU)1Em"BmZ': endstream endobj 98 0 obj [ /Indexed /DeviceRGB 255 99 0 R ] endobj 99 0 obj << /Filter [ /ASCII85Decode /LZWDecode ] /Length 481 >> stream J,g]g+e/h_!_gCtO=0f)$P%cIi8Zdfc5&3j_8$7g.@L`YKUJNGBP\poR=_;Dl'P(T (7Boo^^S:71(MN]ZQX/+Cbu.lK"p74pe1T%s.DY%&\1TdJhr54.M9au6>79n6`Q:4 PbLSZTLEE(8E@'*1mg_*eTnN*;*'V3+gm-EEetX%;Bo$ur2ss*N`.-!.kG_q6GDD' dKoL!8Ka#EV,@V!\j8ZFbp6EE<9cn=N6j0nf;(&;QU6bUD')c@\ 9-d\DA=cZ0Q>gIM$$;cd2O@&a;X,Nn_aP(]I1aRc(K1^ue> gF/(+GaKo$qneLWDrQ#;5\S(\$q'4Q,85`-8;S(=Z"WSBOV*FM)4,?B],R endstream endobj 100 0 obj << /Type /Outlines /First 101 0 R /Last 102 0 R /Count 6 >> endobj 101 0 obj << /Type /Outline /Title (Iss 1 -> 5: /XYZ null null null) /Parent 100 0 R /Count 4 /Next 102 0 R /First 103 0 R /Last 104 0 R /Dest [ 13 0 R /XYZ null null null ] >> endobj 102 0 obj << /Type /Outline /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Parent 100 0 R /Prev 101 0 R /Dest [ 43 0 R /XYZ 66 756 3 ] >> endobj 103 0 obj << /Type /Outline /Title (Amanda 1.1 -> 11: /Fit) /Parent 101 0 R /Next 104 0 R /First 107 0 R /Last 108 0 R /Count -3 /Dest [ 31 0 R /Fit ] >> endobj 104 0 obj << /Type /Outline /Title /Parent 101 0 R /Prev 103 0 R /First 105 0 R /Last 106 0 R /Count 2 /Dest [ 37 0 R /FitH 792 ] >> endobj 105 0 obj << /Type /Outline /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Parent 104 0 R /Next 106 0 R /Dest [ 1 0 R /FitR 66 714 180 770 ] >> endobj 106 0 obj << /Type /Outline /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Parent 104 0 R /Prev 105 0 R /Dest [ 93 0 R /XYZ null null null ] >> endobj 107 0 obj << /Type /Outline /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Parent 103 0 R /Next 108 0 R /First 110 0 R /Last 111 0 R /Count -2 /Dest [ 34 0 R /FitV 100 ] >> endobj 108 0 obj << /Type /Outline /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Parent 103 0 R /Prev 107 0 R /First 109 0 R /Last 109 0 R /Count 1 /Dest [ 34 0 R /XYZ null null null ] >> endobj 109 0 obj << /Type /Outline /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Parent 108 0 R /Dest [ 64 0 R /XYZ null null null ] >> endobj 110 0 obj << /Type /Outline /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Parent 107 0 R /Next 111 0 R /Dest [ 52 0 R /XYZ null null null ] >> endobj 111 0 obj << /Type /Outline /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Parent 107 0 R /Prev 110 0 R /Dest [ 55 0 R /XYZ null null null ] >> endobj 1 0 obj << /Contents 2 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 95 0 R >> /ProcSet 96 0 R >> /Type /Page /Thumb 3 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 2 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0"  endstream endobj 3 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 98 0 R /BitsPerComponent 8 /Length 79 >> stream 8;Z]Y5n1Up&->+`k@abO#212#CXjH)pgLz!!)M^ 7t:U?@"bK0~> endstream endobj 4 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 95 0 R >> /ProcSet 96 0 R >> /Type /Page /Thumb 6 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 5 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0+  endstream endobj 6 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 98 0 R /BitsPerComponent 8 /Length 79 >> stream 8;Z]Y5n1Up&->+`k@abO#212#CXjH)pgLz!!)M^ 7t:U?@"bK0~> endstream endobj 7 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 95 0 R >> /ProcSet 96 0 R >> /Type /Page /Thumb 9 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 8 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 04  endstream endobj 9 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 98 0 R /BitsPerComponent 8 /Length 83 >> stream 8;Z]Y_$RmW#Qqjoh8arLO6b<@i1j-:!g6W(L0s2:8[>JD>No-nRG@hbjuqu#('"=7 !!!"HkRh2&ftODc~> endstream endobj 10 0 obj << /Contents 11 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 95 0 R >> /ProcSet 96 0 R >> /Type /Page /Thumb 12 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 11 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0=  endstream endobj 12 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 98 0 R /BitsPerComponent 8 /Length 85 >> stream 8;Z]Y;$fKB$j/b]oi"*F;`i_jm(nQ]=/PD0A`qPJ])Vg2 !!!#W7n\@5!86V8Wr~> endstream endobj 13 0 obj << /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 95 0 R >> /ProcSet 96 0 R >> /Type /Page /Thumb 15 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 14 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0F  endstream endobj 15 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 98 0 R /BitsPerComponent 8 /Length 77 >> stream 8;Z]W;$k#l'LP`aob0R[oB`R/d(s+['?K@-iE)21[]d',D.WB.0;X$YHJ\c(zJ.FdE $ip=7W2f~> endstream endobj 16 0 obj << /Contents 17 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 95 0 R >> /ProcSet 96 0 R >> /Type /Page /Thumb 18 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 17 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0O  endstream endobj 18 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 98 0 R /BitsPerComponent 8 /Length 83 >> stream 8;Z]Y5n*fK&->+`on+@aXIX,ao[2_To,t[O1]0j#e+U07X_(d?:%*T!OdtY60)ttP !!!"DkS%>(;R*0N~> endstream endobj 19 0 obj << /Contents 20 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 95 0 R >> /ProcSet 96 0 R >> /Type /Page /Thumb 21 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 20 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0X  endstream endobj 21 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 98 0 R /BitsPerComponent 8 /Length 77 >> stream 8;Z]W;$k#l'LP`aob0R[oB`R-d)'1\'?K@-iE)21[T?YW[^+U,\'htak.Citz!$?Li (]YIXW;u~> endstream endobj 22 0 obj << /Contents 23 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 95 0 R >> /ProcSet 96 0 R >> /Type /Page /Thumb 24 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 23 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,WTr 0a endstream endobj 24 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 98 0 R /BitsPerComponent 8 /Length 85 >> stream 8;Z]Y5n*f[#R!G[pqb;O_9VF_i3CD#MI`;!B)%YZR3ZE[h+Ad>PoJQYQ#h.]hZ endstream endobj 25 0 obj << /Contents 26 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 95 0 R >> /ProcSet 96 0 R >> /Type /Page /Thumb 27 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 26 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,WTr 0j ! endstream endobj 27 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 98 0 R /BitsPerComponent 8 /Length 78 >> stream 8;Z]W0b(o`&-G4acc:FWkNLuZiJL1RN$XfP_lk=AD=;&lC9EcLls&`1Ha@Vkz!5O@2 ! endstream endobj 28 0 obj << /Contents 29 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 95 0 R >> /ProcSet 96 0 R >> /Type /Page /Thumb 30 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 29 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W04Tr 07 I endstream endobj 30 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 98 0 R /BitsPerComponent 8 /Length 82 >> stream 8;Z]Y5n1Up&->+`k6F6H=ZbGS\4;`pk!=5(B)%X%VX6i"QWq]q3Si9@?TXB/k5H.s z!. endstream endobj 31 0 obj << /Contents 32 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 95 0 R >> /ProcSet 96 0 R >> /Type /Page /Thumb 33 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 32 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0@ J endstream endobj 33 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 98 0 R /BitsPerComponent 8 /Length 81 >> stream 8;Z]Y5m[NW$j/b]l_f3s-[)YnToXn;-BMk2_QQobh*"c;j]9tmFZMJ)?Tkrbr@\-N zGj#fK!.^Z=rr~> endstream endobj 34 0 obj << /Contents 35 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 95 0 R >> /ProcSet 96 0 R >> /Type /Page /Thumb 36 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 35 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0I K endstream endobj 36 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 98 0 R /BitsPerComponent 8 /Length 83 >> stream 8;Z]Y5n*fK$j/e]j^UL5@li4NkbHR?-Bb"K[erbGcHMkR/q6U(Pr1^Kfl_Vd1qi8X z!.]hg! endstream endobj 37 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 95 0 R >> /ProcSet 96 0 R >> /Type /Page /Thumb 39 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 38 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0R L endstream endobj 39 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 98 0 R /BitsPerComponent 8 /Length 83 >> stream 8;Z]Y_$L*-#Qqjp\"E;&5IPWN%6bPfR6^6Vm,hB4m])^JB=V"[-`?fQq,^:.h.sP) z!!!OX!Xo)*"/jW~> endstream endobj 40 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 95 0 R >> /ProcSet 96 0 R >> /Type /Page /Thumb 42 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 41 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0[ M endstream endobj 42 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 98 0 R /BitsPerComponent 8 /Length 83 >> stream 8;Z]Y0b"+;$j/b\j^UL5'0;apaAD,D2cuY&GOm=VG?%A5ZeVR>P>fqFqeIO!j0n%b z!!#.R#quA.<2Y0~> endstream endobj 43 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 95 0 R >> /ProcSet 96 0 R >> /Type /Page /Thumb 45 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 44 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0d N endstream endobj 45 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 98 0 R /BitsPerComponent 8 /Length 82 >> stream 8;Z]Y_$L*-#Qqjp[ibK=5IPWN%6bPf)'S&el/l'I\s#h;qH%F%3k9+>.s!Xe>;$'Y zJ7h%H"os/bVl9~> endstream endobj 46 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 95 0 R >> /ProcSet 96 0 R >> /Type /Page /Thumb 48 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 47 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0m O endstream endobj 48 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 98 0 R /BitsPerComponent 8 /Length 83 >> stream 8;Z]Y0b"+;$j/b\j^UL5'0;apaAD,D2cuY&GOm=VG?%A5ZeVR>P>fqFqeIO!j0n%b z!!#.R#quA.<2Y0~> endstream endobj 49 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 95 0 R >> /ProcSet 96 0 R >> /Type /Page /Thumb 51 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 50 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W04Tr 0v P endstream endobj 51 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 98 0 R /BitsPerComponent 8 /Length 82 >> stream 8;Z]Y5n1Up$j/e]a2`SO-Zked\4 endstream endobj 52 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 95 0 R >> /ProcSet 96 0 R >> /Type /Page /Thumb 54 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 53 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0 Q endstream endobj 54 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 98 0 R /BitsPerComponent 8 /Length 83 >> stream 8;Z]Y_$L*-#QqjpmDj\B-gf],%6bPf)'S&U9_an@A7eSYC:Q3M<7fp6rG0^788#O< z!!!OX!Xo&Ud\g"~> endstream endobj 55 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 95 0 R >> /ProcSet 96 0 R >> /Type /Page /Thumb 57 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 56 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0 R endstream endobj 57 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 98 0 R /BitsPerComponent 8 /Length 82 >> stream 8;Z]Y_$L*-#Qqjp[ibLPT(]_RfVg\~> endstream endobj 58 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 95 0 R >> /ProcSet 96 0 R >> /Type /Page /Thumb 60 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 59 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0A J endstream endobj 60 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 98 0 R /BitsPerComponent 8 /Length 82 >> stream 8;Z]Y5n1Up&->+`k6F6H=ZbGS\4;`pk!=5(B)%X%VX6i"QWq]q3Si9@?TXB/k5H.s z!. endstream endobj 61 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 95 0 R >> /ProcSet 96 0 R >> /Type /Page /Thumb 63 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 62 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0J K endstream endobj 63 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 98 0 R /BitsPerComponent 8 /Length 81 >> stream 8;Z]Y5m[NW$j/b]l_f3s-[)YnToXn;-BMk2_QQobh*"c;j]9tmFZMJ)?Tkrbr@\-N zGj#fK!.^Z=rr~> endstream endobj 64 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 95 0 R >> /ProcSet 96 0 R >> /Type /Page /Thumb 66 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 65 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0S L endstream endobj 66 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 98 0 R /BitsPerComponent 8 /Length 83 >> stream 8;Z]Y5n*fK$j/e]j^UL5@li4NkbHR?-Bb"K[erbGcHMkR/q6U(Pr1^Kfl_Vd1qi8X z!.]hg! endstream endobj 67 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 95 0 R >> /ProcSet 96 0 R >> /Type /Page /Thumb 69 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 68 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0\ M endstream endobj 69 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 98 0 R /BitsPerComponent 8 /Length 83 >> stream 8;Z]Y_$L*-#Qqjp\"E;&5IPWN%6bPfR6^6Vm,hB4m])^JB=V"[-`?fQq,^:.h.sP) z!!!OX!Xo)*"/jW~> endstream endobj 70 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 95 0 R >> /ProcSet 96 0 R >> /Type /Page /Thumb 72 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 71 0 obj << /Filter /FlateDecode /Length 52 >> stream Hr RPw3T02QI͍@!$/I,i*dqpe N endstream endobj 72 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 98 0 R /BitsPerComponent 8 /Length 83 >> stream 8;Z]Y0b"+;$j/b\j^UL5'0;apaAD,D2cuY&GOm=VG?%A5ZeVR>P>fqFqeIO!j0n%b z!!#.R#quA.<2Y0~> endstream endobj 73 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 95 0 R >> /ProcSet 96 0 R >> /Type /Page /Thumb 75 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 74 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0n O endstream endobj 75 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 98 0 R /BitsPerComponent 8 /Length 82 >> stream 8;Z]Y_$L*-#Qqjp[ibK=5IPWN%6bPf)'S&el/l'I\s#h;qH%F%3k9+>.s!Xe>;$'Y zJ7h%H"os/bVl9~> endstream endobj 76 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 95 0 R >> /ProcSet 96 0 R >> /Type /Page /Thumb 78 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 77 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0w P endstream endobj 78 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 98 0 R /BitsPerComponent 8 /Length 83 >> stream 8;Z]Y0b"+;$j/b\j^UL5'0;apaAD,D2cuY&GOm=VG?%A5ZeVR>P>fqFqeIO!j0n%b z!!#.R#quA.<2Y0~> endstream endobj 79 0 obj << /Contents 80 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 95 0 R >> /ProcSet 96 0 R >> /Type /Page /Thumb 81 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 80 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W02Tr 0 Q endstream endobj 81 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 98 0 R /BitsPerComponent 8 /Length 82 >> stream 8;Z]Y5n1Up$j/e]a2`SO-Zked\4 endstream endobj 82 0 obj << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 95 0 R >> /ProcSet 96 0 R >> /Type /Page /Thumb 84 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 83 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0 R endstream endobj 84 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 98 0 R /BitsPerComponent 8 /Length 83 >> stream 8;Z]Y_$L*-#QqjpmDj\B-gf],%6bPf)'S&U9_an@A7eSYC:Q3M<7fp6rG0^788#O< z!!!OX!Xo&Ud\g"~> endstream endobj 85 0 obj << /Contents 86 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 95 0 R >> /ProcSet 96 0 R >> /Type /Page /Thumb 87 0 R /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 86 0 obj << /Filter /FlateDecode /Length 53 >> stream Hr RPw3T02QI͍@!$/I,W0Tr 0 S endstream endobj 87 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 98 0 R /BitsPerComponent 8 /Length 82 >> stream 8;Z]Y_$L*-#Qqjp[ibLPT(]_RfVg\~> endstream endobj 88 0 obj << /Count 30 /Kids [ 93 0 R 1 0 R 4 0 R 7 0 R 10 0 R 13 0 R 16 0 R 19 0 R 22 0 R 25 0 R 28 0 R 31 0 R 34 0 R 37 0 R 40 0 R 43 0 R 46 0 R 49 0 R 52 0 R 55 0 R 58 0 R 61 0 R 64 0 R 67 0 R 70 0 R 73 0 R 76 0 R 79 0 R 82 0 R 85 0 R ] /Type /Pages >> endobj 89 0 obj << /ModDate (D:20031101162053-05'00') /CreationDate (D:20031101161932-05'00') >> endobj 90 0 obj << /Type /Metadata /Subtype /XML /Length 319 /Filter /FlateDecode >> stream xAo0|&;m!4.kUgi S'AB_~Kf^96)HNtij_O8Ӿ%Fѩ:)ųJn/SsRsrB ((-aq0qMߠ^w9SB @ eBEӥA"/kVnGD:ޖhl_r!BJ#1{!ȧNiB-688e1~K2z+:uxy^:;/R&+'pO]H3/]8 n2 endstream endobj xref 0 91 0000000091 65535 f 0000005007 00000 n 0000005213 00000 n 0000005345 00000 n 0000005587 00000 n 0000005793 00000 n 0000005925 00000 n 0000006167 00000 n 0000006373 00000 n 0000006505 00000 n 0000006751 00000 n 0000006960 00000 n 0000007093 00000 n 0000007342 00000 n 0000007551 00000 n 0000007684 00000 n 0000007925 00000 n 0000008134 00000 n 0000008267 00000 n 0000008514 00000 n 0000008723 00000 n 0000008856 00000 n 0000009097 00000 n 0000009306 00000 n 0000009439 00000 n 0000009688 00000 n 0000009897 00000 n 0000010030 00000 n 0000010272 00000 n 0000010481 00000 n 0000010615 00000 n 0000010861 00000 n 0000011070 00000 n 0000011204 00000 n 0000011449 00000 n 0000011658 00000 n 0000011792 00000 n 0000012039 00000 n 0000012248 00000 n 0000012382 00000 n 0000012629 00000 n 0000012838 00000 n 0000012972 00000 n 0000013219 00000 n 0000013428 00000 n 0000013562 00000 n 0000013808 00000 n 0000014017 00000 n 0000014151 00000 n 0000014398 00000 n 0000014607 00000 n 0000014741 00000 n 0000014987 00000 n 0000015196 00000 n 0000015330 00000 n 0000015577 00000 n 0000015786 00000 n 0000015920 00000 n 0000016166 00000 n 0000016375 00000 n 0000016509 00000 n 0000016755 00000 n 0000016964 00000 n 0000017098 00000 n 0000017343 00000 n 0000017552 00000 n 0000017686 00000 n 0000017933 00000 n 0000018142 00000 n 0000018276 00000 n 0000018523 00000 n 0000018732 00000 n 0000018865 00000 n 0000019112 00000 n 0000019321 00000 n 0000019455 00000 n 0000019701 00000 n 0000019910 00000 n 0000020044 00000 n 0000020291 00000 n 0000020500 00000 n 0000020634 00000 n 0000020880 00000 n 0000021089 00000 n 0000021223 00000 n 0000021470 00000 n 0000021679 00000 n 0000021813 00000 n 0000022059 00000 n 0000022330 00000 n 0000022433 00000 n trailer << /Size 91 /ID [<67d1eb92072918b21678fe411bdecbe9><67d1eb92072918b21678fe411bdecbe9>] >> startxref 178 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.5.c-check0000644000064100006410000000005013247541377017670 0ustar ejbejbversion: 1.2 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/pages-loop.pdf0000644000064100006410000000214313247541377016333 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R 2 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj %% Original object ID: 6 0 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 5 0 7 0 obj [ /PDF /Text ] endobj xref 0 8 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000252 00000 n 0000000494 00000 n 0000000593 00000 n 0000000639 00000 n 0000000784 00000 n trailer << /Root 1 0 R /Size 8 /ID [<395875d4235973eebbade9c7e9e7f857><395875d4235973eebbade9c7e9e7f857>] >> startxref 819 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/xref-with-short-size-new.out0000644000064100006410000000074413247541377021141 0ustar ejbejb1/0: uncompressed; offset = 15 2/0: compressed; stream = 1, index = 0 3/0: compressed; stream = 1, index = 1 4/0: compressed; stream = 1, index = 2 5/0: compressed; stream = 1, index = 3 6/0: compressed; stream = 1, index = 4 7/0: compressed; stream = 1, index = 5 8/0: compressed; stream = 1, index = 6 9/0: compressed; stream = 1, index = 7 10/0: compressed; stream = 1, index = 8 11/0: uncompressed; offset = 674 12/0: uncompressed; offset = 801 13/0: uncompressed; offset = 16194 qpdf-8.0.2/qpdf/qtest/qpdf/extensions-other-force-1.8.5.out0000644000064100006410000000023513247541377021404 0ustar ejbejbversion: 1.8 extension level: 5 << /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/rotated.pdf0000644000064100006410000001622713247541377015737 0ustar ejbejb%PDF-1.4 % 1 0 obj << /Pages 3 0 R /Type /Catalog >> endobj 2 0 obj << /CreationDate (D:20120721200217) /Producer (Apex PDFWriter) >> endobj 3 0 obj << /Count 20 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R ] /Type /Pages >> endobj 4 0 obj << /Contents 20 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 21 0 R >> /ProcSet [ /PDF /Text ] >> /Rotate 0 /Type /Page >> endobj 5 0 obj << /Contents 22 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 21 0 R >> /ProcSet [ /PDF /Text ] >> /Rotate 180 /Type /Page >> endobj 6 0 obj << /Contents 23 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 21 0 R >> /ProcSet [ /PDF /Text ] >> /Rotate 270 /Type /Page >> endobj 7 0 obj << /Contents 24 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 21 0 R >> /ProcSet [ /PDF /Text ] >> /Rotate 90 /Type /Page >> endobj 8 0 obj << /Contents 25 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 21 0 R >> /ProcSet [ /PDF /Text ] >> /Rotate 180 /Type /Page >> endobj 9 0 obj << /Contents 26 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 21 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 10 0 obj << /Contents 27 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 21 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 11 0 obj << /Contents 28 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 21 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 12 0 obj << /Contents 29 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 21 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 13 0 obj << /Contents 30 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 21 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 14 0 obj << /Count 5 /Kids [ 31 0 R 32 0 R 33 0 R 34 0 R 35 0 R ] /Parent 3 0 R /Rotate 90 /Type /Pages >> endobj 15 0 obj << /Contents 36 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 21 0 R >> /ProcSet [ /PDF /Text ] >> /Rotate 270 /Type /Page >> endobj 16 0 obj << /Contents 37 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 21 0 R >> /ProcSet [ /PDF /Text ] >> /Rotate 90 /Type /Page >> endobj 17 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 21 0 R >> /ProcSet [ /PDF /Text ] >> /Rotate 270 /Type /Page >> endobj 18 0 obj << /Contents 39 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 21 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 19 0 obj << /Contents 40 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 21 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 20 0 obj << /Length 53 /Filter /FlateDecode >> stream xs Qw3T04UIS07" ̼TCM,. ,endstream endobj 21 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 22 0 obj << /Length 53 /Filter /FlateDecode >> stream xs Qw3T04UIS07" ̼T#M,. -endstream endobj 23 0 obj << /Length 53 /Filter /FlateDecode >> stream xs Qw3T04UIS07" ̼TcM,. .endstream endobj 24 0 obj << /Length 53 /Filter /FlateDecode >> stream xs Qw3T04UIS07" ̼TM,.) /endstream endobj 25 0 obj << /Length 53 /Filter /FlateDecode >> stream xs Qw3T04UIS07" ̼TSM,.2 0endstream endobj 26 0 obj << /Length 53 /Filter /FlateDecode >> stream xs Qw3T04UIS07" ̼T3M,.; 1endstream endobj 27 0 obj << /Length 53 /Filter /FlateDecode >> stream xs Qw3T04UIS07" ̼TsM,.D 2endstream endobj 28 0 obj << /Length 53 /Filter /FlateDecode >> stream xs Qw3T04UIS07" ̼T M,.M 3endstream endobj 29 0 obj << /Length 53 /Filter /FlateDecode >> stream xs Qw3T04UIS07" ̼TKM,.V 4endstream endobj 30 0 obj << /Length 54 /Filter /FlateDecode >> stream xs Qw3T04UIS07" ̼TCM,." \endstream endobj 31 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 14 0 R /Resources << /Font << /F1 21 0 R >> /ProcSet [ /PDF /Text ] >> /Rotate 180 /Type /Page >> endobj 32 0 obj << /Contents 42 0 R /MediaBox [ 0 0 612 792 ] /Parent 14 0 R /Resources << /Font << /F1 21 0 R >> /ProcSet [ /PDF /Text ] >> /Rotate 180 /Type /Page >> endobj 33 0 obj << /Contents 43 0 R /MediaBox [ 0 0 612 792 ] /Parent 14 0 R /Resources << /Font << /F1 21 0 R >> /ProcSet [ /PDF /Text ] >> /Rotate 180 /Type /Page >> endobj 34 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 14 0 R /Resources << /Font << /F1 21 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 35 0 obj << /Contents 45 0 R /MediaBox [ 0 0 612 792 ] /Parent 14 0 R /Resources << /Font << /F1 21 0 R >> /ProcSet [ /PDF /Text ] >> /Rotate 0 /Type /Page >> endobj 36 0 obj << /Length 54 /Filter /FlateDecode >> stream xs Qw3T04UIS07" ̼TC3M,."V bendstream endobj 37 0 obj << /Length 54 /Filter /FlateDecode >> stream xs Qw3T04UIS07" ̼TCsM,."_ cendstream endobj 38 0 obj << /Length 54 /Filter /FlateDecode >> stream xs Qw3T04UIS07" ̼TC M,."h dendstream endobj 39 0 obj << /Length 54 /Filter /FlateDecode >> stream xs Qw3T04UIS07" ̼TCKM,."q eendstream endobj 40 0 obj << /Length 54 /Filter /FlateDecode >> stream xs Qw3T04UIS07" ̼T#M,."* ]endstream endobj 41 0 obj << /Length 54 /Filter /FlateDecode >> stream xs Qw3T04UIS07" ̼TCCM,.") ]endstream endobj 42 0 obj << /Length 54 /Filter /FlateDecode >> stream xs Qw3T04UIS07" ̼TC#M,."2 ^endstream endobj 43 0 obj << /Length 54 /Filter /FlateDecode >> stream xs Qw3T04UIS07" ̼TCcM,."; _endstream endobj 44 0 obj << /Length 54 /Filter /FlateDecode >> stream xs Qw3T04UIS07" ̼TCM,."D `endstream endobj 45 0 obj << /Length 53 /Filter /FlateDecode >> stream xs Qw3T04UIS07" ̼TBHk"M aendstream endobj xref 0 46 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000145 00000 n 0000000305 00000 n 0000000469 00000 n 0000000635 00000 n 0000000801 00000 n 0000000966 00000 n 0000001132 00000 n 0000001286 00000 n 0000001441 00000 n 0000001596 00000 n 0000001751 00000 n 0000001906 00000 n 0000002020 00000 n 0000002187 00000 n 0000002353 00000 n 0000002520 00000 n 0000002675 00000 n 0000002830 00000 n 0000002954 00000 n 0000003054 00000 n 0000003178 00000 n 0000003302 00000 n 0000003426 00000 n 0000003550 00000 n 0000003674 00000 n 0000003798 00000 n 0000003922 00000 n 0000004046 00000 n 0000004171 00000 n 0000004339 00000 n 0000004507 00000 n 0000004675 00000 n 0000004831 00000 n 0000004997 00000 n 0000005122 00000 n 0000005247 00000 n 0000005372 00000 n 0000005497 00000 n 0000005622 00000 n 0000005747 00000 n 0000005872 00000 n 0000005997 00000 n 0000006122 00000 n trailer << /Info 2 0 R /Root 1 0 R /Size 46 /ID [<31415926535897932384626433832795>] >> startxref 6246 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.9.c-check0000644000064100006410000000005013247541377017674 0ustar ejbejbversion: 1.2 linearized: 1 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.12.c-check0000644000064100006410000000040613247541377021443 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 1 user password: extract for accessibility: 1 extract for any purpose: 1 print low resolution: 1 print high resolution: 1 modify document assembly: 1 modify forms: 1 modify annotations: 1 modify other: 1 modify anything: 1 qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.5.c-check0000644000064100006410000000005013247541377017347 0ustar ejbejbversion: 1.3 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/extensions-other-min-1.8.2.out0000644000064100006410000000023513247541377021066 0ustar ejbejbversion: 1.8 extension level: 2 << /ADBE << /BaseVersion /1.8 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/show-page-1-content-filtered.out0000644000064100006410000000011013247541377021607 0ustar ejbejbq 222 0 0 240 28.5 96 cm /Im1 Do Q q 185 0 0 200 313.5 296 cm /Im2 Do Q qpdf-8.0.2/qpdf/qtest/qpdf/extensions-none-force-1.8.5.qdf0000644000064100006410000000226313247541377021170 0ustar ejbejb%PDF-1.8 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Extensions << /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> >> /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj %% Original object ID: 6 0 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 5 0 7 0 obj [ /PDF /Text ] endobj xref 0 8 0000000000 65535 f 0000000052 00000 n 0000000223 00000 n 0000000332 00000 n 0000000574 00000 n 0000000673 00000 n 0000000719 00000 n 0000000864 00000 n trailer << /Root 1 0 R /Size 8 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 899 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad28.out0000644000064100006410000000054513247541377015227 0ustar ejbejbWARNING: bad28.pdf (object 4 0, offset 395): expected endobj /QTest is indirect and has type stream (10) /QTest is a stream. Dictionary: << /Length 44 >> Raw stream data: BT /F1 24 Tf 72 720 Td (Potato) Tj ET Uncompressed stream data: BT /F1 24 Tf 72 720 Td (Potato) Tj ET End of stream data unparse: 4 0 R unparseResolved: 4 0 R test 0 done qpdf-8.0.2/qpdf/qtest/qpdf/gen1.qdf0000644000064100006410000000235313247541377015123 0ustar ejbejb%PDF-1.5 % %QDF-1.0 1 0 obj << /Type /ObjStm /Length 733 /N 5 /First 88 >> stream 2 0 3 99 4 216 5 463 6 543 %% Object stream: object 2, index 0; original object ID: 1 1 << /Pages 3 0 R /Type /Catalog >> %% Object stream: object 3, index 1; original object ID: 2 1 << /Count 1 /Kids [ 4 0 R ] /Type /Pages >> %% Object stream: object 4, index 2; original object ID: 3 1 %% Page 1 << /Contents 7 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 5 0 R >> /Type /Page >> %% Object stream: object 5, index 3; original object ID: 5 1 [ /PDF /Text ] %% Object stream: object 6, index 4; original object ID: 6 1 << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endstream endobj %% Contents for page 1 %% Original object ID: 4 1 7 0 obj << /Length 8 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 8 0 obj 44 endobj 9 0 obj << /Type /XRef /Length 40 /W [ 1 2 1 ] /Root 2 0 R /Size 10 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> stream  endstream endobj startxref 1014 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/c-write-warnings.out0000644000064100006410000000102613247541377017522 0ustar ejbejbwarning: bad33.pdf: file is damaged code: 5 file: bad33.pdf pos : 0 text: file is damaged warning: bad33.pdf (offset 1771): xref not found code: 5 file: bad33.pdf pos : 1771 text: xref not found warning: bad33.pdf: Attempting to reconstruct cross-reference table code: 5 file: bad33.pdf pos : 0 text: Attempting to reconstruct cross-reference table warning: bad33.pdf (offset 629): stream filter type is not name or array code: 5 file: bad33.pdf pos : 629 text: stream filter type is not name or array qpdf-8.0.2/qpdf/qtest/qpdf/good3.qdf0000644000064100006410000000213113247541377015276 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj %% Original object ID: 6 0 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj %% Original object ID: 5 0 7 0 obj [ /PDF /Text ] endobj xref 0 8 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000242 00000 n 0000000484 00000 n 0000000583 00000 n 0000000629 00000 n 0000000774 00000 n trailer << /Root 1 0 R /Size 8 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 809 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/11_split-exp.zdf0000644000064100006410000000136413247541377016531 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 54 >> stream xs Qw3T04UIS07" ̼TCCM,.") ]endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 6 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000399 00000 n trailer << /Root 1 0 R /Size 6 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 498 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/xref-with-short-size-recover.out0000644000064100006410000000033113247541377022005 0ustar ejbejbWARNING: xref-with-short-size.pdf (xref stream, offset 16227): Cross-reference stream data has the wrong size; expected = 52; actual = 56 qpdf: operation succeeded with warnings; resulting file may have some problems qpdf-8.0.2/qpdf/qtest/qpdf/broken-decode-parms-no-filter.out0000644000064100006410000000031613247541377022041 0ustar ejbejbchecking broken-decode-parms-no-filter.pdf PDF Version: 1.3 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.11.check0000644000064100006410000000067213247541377017537 0ustar ejbejbchecking a.pdf PDF Version: 1.4 R = 3 P = -4 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed File is linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/test8.out0000644000064100006410000000014313247541377015370 0ustar ejbejbexception: stream data provider for 7 0 provided 29 bytes instead of expected 28 bytes test 8 done qpdf-8.0.2/qpdf/qtest/qpdf/bad4.pdf0000644000064100006410000000135613247541377015104 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref x0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000128 00000 n 0000000300 00000 n 0000000389 00000 n 0000000424 00000 n trailer << /Size 7 /Root 1 0 R >> startxref 542 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/terminate-parsing.pdf0000644000064100006410000000300313247541377017712 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 2 /Kids [ 3 0 R 4 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj 4 0 obj << /Contents [ 8 0 R 9 0 R ] /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /ProcSet [ /PDF /ImageB ] >> /Type /Page >> endobj 5 0 obj << /Length 44 >> stream /potato/Abort << not seen; stopped parsing. endstream endobj 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 7 0 obj [ /PDF /Text ] endobj 8 0 obj << /Length 137 >> stream 0.1 0 0 0.1 0 0 cm q 0 1.1999 -1.1999 -0 121.19 150.009 cm BI /CS /G/W 1/H 1/BPC 8/F/Fl/DP<> ID xc EI Q endstream endobj 9 0 obj << /Length 317 >> stream q 0 35.997 -128.389 -0 431.964 7269.02 cm BI /CS /G/W 30/H 107/BPC 8/F/Fl/DP<> ID xѡ0e*0nRcc1;8b{b EI Q q 0 38.3968 -93.5922 -0 431.964 7567.79 cm BI /CS /G/W 32/H 78/BPC 8/F/Fl/DP<> ID xcπ0*U0`* ?`T CU0`T < EI Q endstream endobj xref 0 10 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000129 00000 n 0000000272 00000 n 0000000414 00000 n 0000000507 00000 n 0000000614 00000 n 0000000644 00000 n 0000000831 00000 n trailer << /Root 1 0 R /Size 10 /ID [] >> startxref 1198 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad1.pdf0000644000064100006410000000000513247541377015067 0ustar ejbejboops qpdf-8.0.2/qpdf/qtest/qpdf/good20.pdf0000644000064100006410000002404413247541377015363 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> /OtherStuff [ 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 35 0 R 36 0 R 37 0 R 38 0 R 39 0 R 40 0 R 41 0 R 42 0 R 43 0 R 44 0 R 45 0 R 46 0 R 47 0 R 48 0 R 49 0 R 50 0 R 51 0 R 52 0 R 53 0 R 54 0 R 55 0 R 56 0 R 57 0 R 58 0 R 59 0 R 60 0 R 61 0 R 62 0 R 63 0 R 64 0 R 65 0 R 66 0 R 67 0 R 68 0 R 69 0 R 70 0 R 71 0 R 72 0 R 73 0 R 74 0 R 75 0 R 76 0 R 77 0 R 78 0 R 79 0 R 80 0 R 81 0 R 82 0 R 83 0 R 84 0 R 85 0 R 86 0 R 87 0 R 88 0 R 89 0 R 90 0 R 91 0 R 92 0 R 93 0 R 94 0 R 95 0 R 96 0 R 97 0 R 98 0 R 99 0 R 100 0 R 101 0 R 102 0 R 103 0 R 104 0 R 105 0 R 106 0 R 107 0 R 108 0 R 109 0 R 110 0 R 111 0 R 112 0 R 113 0 R 114 0 R 115 0 R 116 0 R 117 0 R 118 0 R 119 0 R 120 0 R 121 0 R 122 0 R 123 0 R 124 0 R 125 0 R 126 0 R 127 0 R 128 0 R 129 0 R 130 0 R 131 0 R 132 0 R 133 0 R 134 0 R 135 0 R 136 0 R 137 0 R 138 0 R 139 0 R 140 0 R 141 0 R 142 0 R 143 0 R 144 0 R 145 0 R 146 0 R 147 0 R 148 0 R 149 0 R 150 0 R 151 0 R 152 0 R 153 0 R 154 0 R 155 0 R 156 0 R 157 0 R 158 0 R 159 0 R 160 0 R 161 0 R 162 0 R 163 0 R 164 0 R 165 0 R 166 0 R ] >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 7 0 obj [/Object-7] endobj 8 0 obj [/Object-8] endobj 9 0 obj [/Object-9] endobj 10 0 obj [/Object-10] endobj 11 0 obj [/Object-11] endobj 12 0 obj [/Object-12] endobj 13 0 obj [/Object-13] endobj 14 0 obj [/Object-14] endobj 15 0 obj [/Object-15] endobj 16 0 obj [/Object-16] endobj 17 0 obj [/Object-17] endobj 18 0 obj [/Object-18] endobj 19 0 obj [/Object-19] endobj 20 0 obj [/Object-20] endobj 21 0 obj [/Object-21] endobj 22 0 obj [/Object-22] endobj 23 0 obj [/Object-23] endobj 24 0 obj [/Object-24] endobj 25 0 obj [/Object-25] endobj 26 0 obj [/Object-26] endobj 27 0 obj [/Object-27] endobj 28 0 obj [/Object-28] endobj 29 0 obj [/Object-29] endobj 30 0 obj [/Object-30] endobj 31 0 obj [/Object-31] endobj 32 0 obj [/Object-32] endobj 33 0 obj [/Object-33] endobj 34 0 obj [/Object-34] endobj 35 0 obj [/Object-35] endobj 36 0 obj [/Object-36] endobj 37 0 obj [/Object-37] endobj 38 0 obj [/Object-38] endobj 39 0 obj [/Object-39] endobj 40 0 obj [/Object-40] endobj 41 0 obj [/Object-41] endobj 42 0 obj [/Object-42] endobj 43 0 obj [/Object-43] endobj 44 0 obj [/Object-44] endobj 45 0 obj [/Object-45] endobj 46 0 obj [/Object-46] endobj 47 0 obj [/Object-47] endobj 48 0 obj [/Object-48] endobj 49 0 obj [/Object-49] endobj 50 0 obj [/Object-50] endobj 51 0 obj [/Object-51] endobj 52 0 obj [/Object-52] endobj 53 0 obj [/Object-53] endobj 54 0 obj [/Object-54] endobj 55 0 obj [/Object-55] endobj 56 0 obj [/Object-56] endobj 57 0 obj [/Object-57] endobj 58 0 obj [/Object-58] endobj 59 0 obj [/Object-59] endobj 60 0 obj [/Object-60] endobj 61 0 obj [/Object-61] endobj 62 0 obj [/Object-62] endobj 63 0 obj [/Object-63] endobj 64 0 obj [/Object-64] endobj 65 0 obj [/Object-65] endobj 66 0 obj [/Object-66] endobj 67 0 obj [/Object-67] endobj 68 0 obj [/Object-68] endobj 69 0 obj [/Object-69] endobj 70 0 obj [/Object-70] endobj 71 0 obj [/Object-71] endobj 72 0 obj [/Object-72] endobj 73 0 obj [/Object-73] endobj 74 0 obj [/Object-74] endobj 75 0 obj [/Object-75] endobj 76 0 obj [/Object-76] endobj 77 0 obj [/Object-77] endobj 78 0 obj [/Object-78] endobj 79 0 obj [/Object-79] endobj 80 0 obj [/Object-80] endobj 81 0 obj [/Object-81] endobj 82 0 obj [/Object-82] endobj 83 0 obj [/Object-83] endobj 84 0 obj [/Object-84] endobj 85 0 obj [/Object-85] endobj 86 0 obj [/Object-86] endobj 87 0 obj [/Object-87] endobj 88 0 obj [/Object-88] endobj 89 0 obj [/Object-89] endobj 90 0 obj [/Object-90] endobj 91 0 obj [/Object-91] endobj 92 0 obj [/Object-92] endobj 93 0 obj [/Object-93] endobj 94 0 obj [/Object-94] endobj 95 0 obj [/Object-95] endobj 96 0 obj [/Object-96] endobj 97 0 obj [/Object-97] endobj 98 0 obj [/Object-98] endobj 99 0 obj [/Object-99] endobj 100 0 obj [/Object-100] endobj 101 0 obj [/Object-101] endobj 102 0 obj [/Object-102] endobj 103 0 obj [/Object-103] endobj 104 0 obj [/Object-104] endobj 105 0 obj [/Object-105] endobj 106 0 obj [/Object-106] endobj 107 0 obj [/Object-107] endobj 108 0 obj [/Object-108] endobj 109 0 obj [/Object-109] endobj 110 0 obj [/Object-110] endobj 111 0 obj [/Object-111] endobj 112 0 obj [/Object-112] endobj 113 0 obj [/Object-113] endobj 114 0 obj [/Object-114] endobj 115 0 obj [/Object-115] endobj 116 0 obj [/Object-116] endobj 117 0 obj [/Object-117] endobj 118 0 obj [/Object-118] endobj 119 0 obj [/Object-119] endobj 120 0 obj [/Object-120] endobj 121 0 obj [/Object-121] endobj 122 0 obj [/Object-122] endobj 123 0 obj [/Object-123] endobj 124 0 obj [/Object-124] endobj 125 0 obj [/Object-125] endobj 126 0 obj [/Object-126] endobj 127 0 obj [/Object-127] endobj 128 0 obj [/Object-128] endobj 129 0 obj [/Object-129] endobj 130 0 obj [/Object-130] endobj 131 0 obj [/Object-131] endobj 132 0 obj [/Object-132] endobj 133 0 obj [/Object-133] endobj 134 0 obj [/Object-134] endobj 135 0 obj [/Object-135] endobj 136 0 obj [/Object-136] endobj 137 0 obj [/Object-137] endobj 138 0 obj [/Object-138] endobj 139 0 obj [/Object-139] endobj 140 0 obj [/Object-140] endobj 141 0 obj [/Object-141] endobj 142 0 obj [/Object-142] endobj 143 0 obj [/Object-143] endobj 144 0 obj [/Object-144] endobj 145 0 obj [/Object-145] endobj 146 0 obj [/Object-146] endobj 147 0 obj [/Object-147] endobj 148 0 obj [/Object-148] endobj 149 0 obj [/Object-149] endobj 150 0 obj [/Object-150] endobj 151 0 obj [/Object-151] endobj 152 0 obj [/Object-152] endobj 153 0 obj [/Object-153] endobj 154 0 obj [/Object-154] endobj 155 0 obj [/Object-155] endobj 156 0 obj [/Object-156] endobj 157 0 obj [/Object-157] endobj 158 0 obj [/Object-158] endobj 159 0 obj [/Object-159] endobj 160 0 obj [/Object-160] endobj 161 0 obj [/Object-161] endobj 162 0 obj [/Object-162] endobj 163 0 obj [/Object-163] endobj 164 0 obj [/Object-164] endobj 165 0 obj [/Object-165] endobj 166 0 obj [/Object-166] endobj xref 0 167 0000006875 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000001687 00000 n 0000001783 00000 n 0000001818 00000 n 0000001936 00000 n 0000001964 00000 n 0000001992 00000 n 0000002020 00000 n 0000002050 00000 n 0000002080 00000 n 0000002110 00000 n 0000002140 00000 n 0000002170 00000 n 0000002200 00000 n 0000002230 00000 n 0000002260 00000 n 0000002290 00000 n 0000002320 00000 n 0000002350 00000 n 0000002380 00000 n 0000002410 00000 n 0000002440 00000 n 0000002470 00000 n 0000002500 00000 n 0000002530 00000 n 0000002560 00000 n 0000002590 00000 n 0000002620 00000 n 0000002650 00000 n 0000002680 00000 n 0000002710 00000 n 0000002740 00000 n 0000002770 00000 n 0000002800 00000 n 0000002830 00000 n 0000002860 00000 n 0000002890 00000 n 0000002920 00000 n 0000002950 00000 n 0000002980 00000 n 0000003010 00000 n 0000003040 00000 n 0000003070 00000 n 0000003100 00000 n 0000003130 00000 n 0000003160 00000 n 0000003190 00000 n 0000003220 00000 n 0000003250 00000 n 0000003280 00000 n 0000003310 00000 n 0000003340 00000 n 0000003370 00000 n 0000003400 00000 n 0000003430 00000 n 0000003460 00000 n 0000003490 00000 n 0000003520 00000 n 0000003550 00000 n 0000003580 00000 n 0000003610 00000 n 0000003640 00000 n 0000003670 00000 n 0000003700 00000 n 0000003730 00000 n 0000003760 00000 n 0000003790 00000 n 0000003820 00000 n 0000003850 00000 n 0000003880 00000 n 0000003910 00000 n 0000003940 00000 n 0000003970 00000 n 0000004000 00000 n 0000004030 00000 n 0000004060 00000 n 0000004090 00000 n 0000004120 00000 n 0000004150 00000 n 0000004180 00000 n 0000004210 00000 n 0000004240 00000 n 0000004270 00000 n 0000004300 00000 n 0000004330 00000 n 0000004360 00000 n 0000004390 00000 n 0000004420 00000 n 0000004450 00000 n 0000004480 00000 n 0000004510 00000 n 0000004540 00000 n 0000004570 00000 n 0000004600 00000 n 0000004630 00000 n 0000004660 00000 n 0000004690 00000 n 0000004720 00000 n 0000004752 00000 n 0000004784 00000 n 0000004816 00000 n 0000004848 00000 n 0000004880 00000 n 0000004912 00000 n 0000004944 00000 n 0000004976 00000 n 0000005008 00000 n 0000005040 00000 n 0000005072 00000 n 0000005104 00000 n 0000005136 00000 n 0000005168 00000 n 0000005200 00000 n 0000005232 00000 n 0000005264 00000 n 0000005296 00000 n 0000005328 00000 n 0000005360 00000 n 0000005392 00000 n 0000005424 00000 n 0000005456 00000 n 0000005488 00000 n 0000005520 00000 n 0000005552 00000 n 0000005584 00000 n 0000005616 00000 n 0000005648 00000 n 0000005680 00000 n 0000005712 00000 n 0000005744 00000 n 0000005776 00000 n 0000005808 00000 n 0000005840 00000 n 0000005872 00000 n 0000005904 00000 n 0000005936 00000 n 0000005968 00000 n 0000006000 00000 n 0000006032 00000 n 0000006064 00000 n 0000006096 00000 n 0000006128 00000 n 0000006160 00000 n 0000006192 00000 n 0000006224 00000 n 0000006256 00000 n 0000006288 00000 n 0000006320 00000 n 0000006352 00000 n 0000006384 00000 n 0000006416 00000 n 0000006448 00000 n 0000006480 00000 n 0000006512 00000 n 0000006544 00000 n 0000006576 00000 n 0000006608 00000 n 0000006640 00000 n 0000006672 00000 n 0000006704 00000 n 0000006736 00000 n 0000006768 00000 n 0000006800 00000 n 0000006832 00000 n trailer << /Size 167 /Root 1 0 R >> startxref 6864 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/lin6.out0000644000064100006410000003646213247541377015206 0ustar ejbejbWARNING: end of first page section (/E) mismatch: /E = 2897; computed = 5005..5007 WARNING: object count mismatch for page 0: hint table = 19; computed = 16 WARNING: page 0 has shared identifier entries WARNING: page 0: shared object 93: in hint table but not computed list WARNING: object count mismatch for page 1: hint table = 3; computed = 2 WARNING: page 1: shared object 98: in hint table but not computed list WARNING: page 1: shared object 99: in hint table but not computed list WARNING: object count mismatch for page 2: hint table = 3; computed = 2 WARNING: page 2: shared object 98: in hint table but not computed list WARNING: page 2: shared object 99: in hint table but not computed list WARNING: object count mismatch for page 3: hint table = 3; computed = 2 WARNING: page 3: shared object 98: in hint table but not computed list WARNING: page 3: shared object 99: in hint table but not computed list WARNING: object count mismatch for page 4: hint table = 3; computed = 2 WARNING: page 4: shared object 98: in hint table but not computed list WARNING: page 4: shared object 99: in hint table but not computed list WARNING: object count mismatch for page 5: hint table = 3; computed = 2 WARNING: page 5: shared object 98: in hint table but not computed list WARNING: page 5: shared object 99: in hint table but not computed list WARNING: object count mismatch for page 6: hint table = 3; computed = 2 WARNING: page 6: shared object 98: in hint table but not computed list WARNING: page 6: shared object 99: in hint table but not computed list WARNING: object count mismatch for page 7: hint table = 3; computed = 2 WARNING: page 7: shared object 98: in hint table but not computed list WARNING: page 7: shared object 99: in hint table but not computed list WARNING: object count mismatch for page 8: hint table = 3; computed = 2 WARNING: page 8: shared object 98: in hint table but not computed list WARNING: page 8: shared object 99: in hint table but not computed list WARNING: object count mismatch for page 9: hint table = 3; computed = 2 WARNING: page 9: shared object 98: in hint table but not computed list WARNING: page 9: shared object 99: in hint table but not computed list WARNING: object count mismatch for page 10: hint table = 3; computed = 2 WARNING: page 10: shared object 98: in hint table but not computed list WARNING: page 10: shared object 99: in hint table but not computed list WARNING: object count mismatch for page 11: hint table = 3; computed = 2 WARNING: page 11: shared object 98: in hint table but not computed list WARNING: page 11: shared object 99: in hint table but not computed list WARNING: object count mismatch for page 12: hint table = 3; computed = 2 WARNING: page 12: shared object 98: in hint table but not computed list WARNING: page 12: shared object 99: in hint table but not computed list WARNING: object count mismatch for page 13: hint table = 3; computed = 2 WARNING: page 13: shared object 98: in hint table but not computed list WARNING: page 13: shared object 99: in hint table but not computed list WARNING: object count mismatch for page 14: hint table = 3; computed = 2 WARNING: page 14: shared object 98: in hint table but not computed list WARNING: page 14: shared object 99: in hint table but not computed list WARNING: object count mismatch for page 15: hint table = 3; computed = 2 WARNING: page 15: shared object 98: in hint table but not computed list WARNING: page 15: shared object 99: in hint table but not computed list WARNING: object count mismatch for page 16: hint table = 3; computed = 2 WARNING: page 16: shared object 98: in hint table but not computed list WARNING: page 16: shared object 99: in hint table but not computed list WARNING: object count mismatch for page 17: hint table = 3; computed = 2 WARNING: page 17: shared object 98: in hint table but not computed list WARNING: page 17: shared object 99: in hint table but not computed list WARNING: object count mismatch for page 18: hint table = 3; computed = 2 WARNING: page 18: shared object 98: in hint table but not computed list WARNING: page 18: shared object 99: in hint table but not computed list WARNING: object count mismatch for page 19: hint table = 3; computed = 2 WARNING: page 19: shared object 98: in hint table but not computed list WARNING: page 19: shared object 99: in hint table but not computed list WARNING: object count mismatch for page 20: hint table = 3; computed = 2 WARNING: page 20: shared object 98: in hint table but not computed list WARNING: page 20: shared object 99: in hint table but not computed list WARNING: object count mismatch for page 21: hint table = 3; computed = 2 WARNING: page 21: shared object 98: in hint table but not computed list WARNING: page 21: shared object 99: in hint table but not computed list WARNING: object count mismatch for page 22: hint table = 3; computed = 2 WARNING: page 22: shared object 98: in hint table but not computed list WARNING: page 22: shared object 99: in hint table but not computed list WARNING: object count mismatch for page 23: hint table = 3; computed = 2 WARNING: page 23: shared object 98: in hint table but not computed list WARNING: page 23: shared object 99: in hint table but not computed list WARNING: object count mismatch for page 24: hint table = 3; computed = 2 WARNING: page 24: shared object 98: in hint table but not computed list WARNING: page 24: shared object 99: in hint table but not computed list WARNING: object count mismatch for page 25: hint table = 3; computed = 2 WARNING: page 25: shared object 98: in hint table but not computed list WARNING: page 25: shared object 99: in hint table but not computed list WARNING: object count mismatch for page 26: hint table = 3; computed = 2 WARNING: page 26: shared object 98: in hint table but not computed list WARNING: page 26: shared object 99: in hint table but not computed list WARNING: object count mismatch for page 27: hint table = 3; computed = 2 WARNING: page 27: shared object 98: in hint table but not computed list WARNING: page 27: shared object 99: in hint table but not computed list WARNING: object count mismatch for page 28: hint table = 3; computed = 2 WARNING: page 28: shared object 98: in hint table but not computed list WARNING: page 28: shared object 99: in hint table but not computed list WARNING: object count mismatch for page 29: hint table = 3; computed = 2 WARNING: page 29: shared object 98: in hint table but not computed list WARNING: page 29: shared object 99: in hint table but not computed list lin6.pdf: linearization data: file_size: 24824 first_page_object: 93 first_page_end: 2897 npages: 30 xref_zero_offset: 22877 first_page: 0 H_offset: 1291 H_length: 232 Page Offsets Hint Table min_nobjects: 3 first_page_offset: 1523 nbits_delta_nobjects: 5 min_page_length: 580 nbits_delta_page_length: 12 min_content_offset: 0 nbits_delta_content_offset: 0 min_content_length: 0 nbits_delta_content_length: 12 nbits_nshared_objects: 3 nbits_shared_identifier: 3 nbits_shared_numerator: 4 shared_denominator: 8 Page 0: nobjects: 19 length: 3484 content_offset: 0 content_length: 2904 nshared_objects: 4 identifier 0: 0 numerator 0: 0 identifier 1: 0 numerator 1: 0 identifier 2: 0 numerator 2: 0 identifier 3: 0 numerator 3: 0 Page 1: nobjects: 3 length: 580 content_offset: 0 content_length: 0 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 2: nobjects: 3 length: 580 content_offset: 0 content_length: 0 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 3: nobjects: 3 length: 584 content_offset: 0 content_length: 4 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 4: nobjects: 3 length: 591 content_offset: 0 content_length: 11 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 5: nobjects: 3 length: 583 content_offset: 0 content_length: 3 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 6: nobjects: 3 length: 589 content_offset: 0 content_length: 9 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 7: nobjects: 3 length: 583 content_offset: 0 content_length: 3 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 8: nobjects: 3 length: 591 content_offset: 0 content_length: 11 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 9: nobjects: 3 length: 584 content_offset: 0 content_length: 4 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 10: nobjects: 3 length: 589 content_offset: 0 content_length: 9 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 11: nobjects: 3 length: 588 content_offset: 0 content_length: 8 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 12: nobjects: 3 length: 590 content_offset: 0 content_length: 10 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 13: nobjects: 3 length: 590 content_offset: 0 content_length: 10 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 14: nobjects: 3 length: 590 content_offset: 0 content_length: 10 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 15: nobjects: 3 length: 589 content_offset: 0 content_length: 9 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 16: nobjects: 3 length: 590 content_offset: 0 content_length: 10 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 17: nobjects: 3 length: 589 content_offset: 0 content_length: 9 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 18: nobjects: 3 length: 590 content_offset: 0 content_length: 10 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 19: nobjects: 3 length: 589 content_offset: 0 content_length: 9 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 20: nobjects: 3 length: 589 content_offset: 0 content_length: 9 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 21: nobjects: 3 length: 588 content_offset: 0 content_length: 8 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 22: nobjects: 3 length: 590 content_offset: 0 content_length: 10 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 23: nobjects: 3 length: 590 content_offset: 0 content_length: 10 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 24: nobjects: 3 length: 589 content_offset: 0 content_length: 9 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 25: nobjects: 3 length: 589 content_offset: 0 content_length: 9 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 26: nobjects: 3 length: 590 content_offset: 0 content_length: 10 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 27: nobjects: 3 length: 589 content_offset: 0 content_length: 9 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 28: nobjects: 3 length: 590 content_offset: 0 content_length: 10 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Page 29: nobjects: 3 length: 589 content_offset: 0 content_length: 9 nshared_objects: 4 identifier 0: 2 numerator 0: 0 identifier 1: 3 numerator 1: 0 identifier 2: 5 numerator 2: 0 identifier 3: 6 numerator 3: 0 Shared Objects Hint Table first_shared_obj: 0 first_shared_offset: 0 nshared_first_page: 19 nshared_total: 19 nbits_nobjects: 0 min_group_length: 34 nbits_delta_group_length: 10 Shared Object 0: group length: 209 Shared Object 1: group length: 133 Shared Object 2: group length: 117 Shared Object 3: group length: 34 Shared Object 4: group length: 247 Shared Object 5: group length: 54 Shared Object 6: group length: 580 Shared Object 7: group length: 85 Shared Object 8: group length: 197 Shared Object 9: group length: 147 Shared Object 10: group length: 173 Shared Object 11: group length: 296 Shared Object 12: group length: 168 Shared Object 13: group length: 165 Shared Object 14: group length: 187 Shared Object 15: group length: 206 Shared Object 16: group length: 152 Shared Object 17: group length: 167 Shared Object 18: group length: 167 Outlines Hint Table first_object: 100 first_object_offset: 2897 nobjects: 12 group_length: 2110 qpdf-8.0.2/qpdf/qtest/qpdf/good19.qdf0000644000064100006410000000234013247541377015367 0ustar ejbejb%PDF-1.5 % %QDF-1.0 1 0 obj << /Type /ObjStm /Length 723 /N 5 /First 86 >> stream 2 0 3 97 4 212 5 457 6 535 %% Object stream: object 2, index 0; original object ID: 2 << /Pages 3 0 R /Type /Catalog >> %% Object stream: object 3, index 1; original object ID: 3 << /Count 1 /Kids [ 4 0 R ] /Type /Pages >> %% Object stream: object 4, index 2; original object ID: 4 %% Page 1 << /Contents 7 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 5 0 R >> /Type /Page >> %% Object stream: object 5, index 3; original object ID: 5 [ /PDF /Text ] %% Object stream: object 6, index 4; original object ID: 6 << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endstream endobj %% Contents for page 1 %% Original object ID: 7 0 7 0 obj << /Length 8 0 R >> stream BT /F1 24 Tf 72 720 Td (Salad) Tj ET endstream endobj 8 0 obj 43 endobj 9 0 obj << /Type /XRef /Length 40 /W [ 1 2 1 ] /Root 2 0 R /Size 10 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> stream v endstream endobj startxref 1003 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.12.check0000644000064100006410000000026213247541377017212 0ustar ejbejbchecking a.pdf PDF Version: 1.3 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/lin-delete-and-reuse.pdf0000644000064100006410000003210613247541377020172 0ustar ejbejb%PDF-1.3 % 61 0 obj << /Linearized 1 /L 12284 /H [ 814 191 ] /O 63 /E 3330 /N 30 /T 10945 >> endobj xref 61 19 0000000015 00000 n 0000000704 00000 n 0000001005 00000 n 0000001153 00000 n 0000001249 00000 n 0000001357 00000 n 0000001388 00000 n 0000001462 00000 n 0000001641 00000 n 0000001776 00000 n 0000001932 00000 n 0000002210 00000 n 0000002380 00000 n 0000002569 00000 n 0000002724 00000 n 0000002879 00000 n 0000003021 00000 n 0000003177 00000 n 0000000814 00000 n trailer << /Root 62 0 R /Size 80 /Prev 10936 /ID [<041f011908a94e978d5f9e43dd29abd8><041f011908a94e978d5f9e43dd29abd8>] >> startxref 0 %%EOF 62 0 obj << /Outlines 67 0 R /PageLabels 60 0 R /PageMode /UseOutlines /Pages 59 0 R /Type /Catalog >> endobj 79 0 obj << /Filter /FlateDecode /S 186 /O 228 /Length 104 >> stream xc```b``c`a`` 6+49@h&fr`V#<$"(f`g(ueОQ{^MM~mX荵@?i" endstream endobj 63 0 obj << /Contents 64 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 64 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 0) Tj ET endstream endobj 65 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 66 0 obj [ /PDF /Text ] endobj 67 0 obj << /Count 6 /First 68 0 R /Last 69 0 R /Type /Outlines >> endobj 68 0 obj << /Count 4 /Dest [ 9 0 R /XYZ null null null ] /First 70 0 R /Last 71 0 R /Next 69 0 R /Parent 67 0 R /Title (Iss 1 -> 5: /XYZ null null null) /Type /Outline >> endobj 69 0 obj << /Dest [ 29 0 R /XYZ 66 756 3 ] /Parent 67 0 R /Prev 68 0 R /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Type /Outline >> endobj 70 0 obj << /Count -3 /Dest [ 21 0 R /Fit ] /First 72 0 R /Last 73 0 R /Next 71 0 R /Parent 68 0 R /Title (Amanda 1.1 -> 11: /Fit) /Type /Outline >> endobj 71 0 obj << /Count 2 /Dest [ 25 0 R /FitH 792 ] /First 77 0 R /Last 78 0 R /Parent 68 0 R /Prev 70 0 R /Title /Type /Outline >> endobj 72 0 obj << /Count -2 /Dest [ 23 0 R /FitV 100 ] /First 74 0 R /Last 75 0 R /Next 73 0 R /Parent 70 0 R /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Type /Outline >> endobj 73 0 obj << /Count 1 /Dest [ 23 0 R /XYZ null null null ] /First 76 0 R /Last 76 0 R /Parent 70 0 R /Prev 72 0 R /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Type /Outline >> endobj 74 0 obj << /Dest [ 35 0 R /XYZ null null null ] /Next 75 0 R /Parent 72 0 R /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Type /Outline >> endobj 75 0 obj << /Dest [ 37 0 R /XYZ null null null ] /Parent 72 0 R /Prev 74 0 R /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Type /Outline >> endobj 76 0 obj << /Dest [ 43 0 R /XYZ null null null ] /Parent 73 0 R /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Type /Outline >> endobj 77 0 obj << /Dest [ 1 0 R /FitR 66 714 180 770 ] /Next 78 0 R /Parent 71 0 R /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Type /Outline >> endobj 78 0 obj << /Dest [ 63 0 R /XYZ null null null ] /Parent 71 0 R /Prev 77 0 R /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Type /Outline >> endobj 1 0 obj << /Contents 2 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 2 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 4 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 5 0 obj << /Contents 6 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 6 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 7 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 8 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 9 0 obj << /Contents 10 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 10 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 11 0 obj << /Contents 12 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 12 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 13 0 obj << /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 14 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 15 0 obj << /Contents 16 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 16 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 17 0 obj << /Contents 18 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 18 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 19 0 obj << /Contents 20 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 20 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 21 0 obj << /Contents 22 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 22 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 23 0 obj << /Contents 24 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 24 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 25 0 obj << /Contents 26 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 26 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 27 0 obj << /Contents 28 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 28 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 29 0 obj << /Contents 30 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 30 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 31 0 obj << /Contents 32 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 32 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 33 0 obj << /Contents 34 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 34 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 35 0 obj << /Contents 36 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 36 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 37 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 38 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 39 0 obj << /Contents 40 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 40 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 41 0 obj << /Contents 42 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 42 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 43 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 44 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 45 0 obj << /Contents 46 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 46 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 47 0 obj << /Contents 48 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 48 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 49 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 50 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 51 0 obj << /Contents 52 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 52 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 53 0 obj << /Contents 54 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 54 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 55 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 56 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 57 0 obj << /Contents 58 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 65 0 R >> /ProcSet 66 0 R >> /Type /Page >> endobj 58 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 59 0 obj << /Count 30 /Kids [ 63 0 R 1 0 R 3 0 R 5 0 R 7 0 R 9 0 R 11 0 R 13 0 R 15 0 R 17 0 R 19 0 R 21 0 R 23 0 R 25 0 R 27 0 R 29 0 R 31 0 R 33 0 R 35 0 R 37 0 R 39 0 R 41 0 R 43 0 R 45 0 R 47 0 R 49 0 R 51 0 R 53 0 R 55 0 R 57 0 R ] /Type /Pages >> endobj 60 0 obj << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> endobj xref 0 61 0000000000 65535 f 0000003330 00000 n 0000003476 00000 n 0000003571 00000 n 0000003717 00000 n 0000003812 00000 n 0000003958 00000 n 0000004053 00000 n 0000004199 00000 n 0000004294 00000 n 0000004441 00000 n 0000004537 00000 n 0000004685 00000 n 0000004781 00000 n 0000004929 00000 n 0000005025 00000 n 0000005173 00000 n 0000005269 00000 n 0000005417 00000 n 0000005513 00000 n 0000005661 00000 n 0000005758 00000 n 0000005906 00000 n 0000006003 00000 n 0000006151 00000 n 0000006248 00000 n 0000006396 00000 n 0000006493 00000 n 0000006641 00000 n 0000006738 00000 n 0000006886 00000 n 0000006983 00000 n 0000007131 00000 n 0000007228 00000 n 0000007376 00000 n 0000007473 00000 n 0000007621 00000 n 0000007718 00000 n 0000007866 00000 n 0000007963 00000 n 0000008111 00000 n 0000008208 00000 n 0000008356 00000 n 0000008453 00000 n 0000008601 00000 n 0000008698 00000 n 0000008846 00000 n 0000008943 00000 n 0000009091 00000 n 0000009188 00000 n 0000009336 00000 n 0000009433 00000 n 0000009581 00000 n 0000009678 00000 n 0000009826 00000 n 0000009923 00000 n 0000010071 00000 n 0000010168 00000 n 0000010316 00000 n 0000010413 00000 n 0000010673 00000 n trailer << /Size 61 /ID [<041f011908a94e978d5f9e43dd29abd8><041f011908a94e978d5f9e43dd29abd8>] >> startxref 166 %%EOF % 1. Delete page labels xref 0 1 0000000060 65535 f 60 1 0000000000 00001 f trailer << /Root 62 0 R /Size 80 /Prev 166 >> startxref 12309 %%EOF % 2. Delete outlines, reuse page labels. 60 1 obj << /Nums [ 0 << /P () >> 2 << /S /D /St 1 >> 7 << /P () >> 9 << /S /R /St 6 >> 11 << /P () >> 12 << /S /r /St 2 >> 15 << /S /r /St 6 >> 19 << /P () >> 20 << /S /R /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> endobj % Reuse object 1 with the same generation number. Leave outlines % there pointing to a deleted object. 62 0 obj << /Outlines 67 0 R /PageLabels 60 1 R /PageMode /UseOutlines /Pages 59 0 R /Type /Catalog >> endobj xref 0 1 0000000067 65535 f 60 1 0000012474 00001 n 62 1 0000012866 00000 n 67 12 0000000068 00001 f 0000000069 00001 f 0000000070 00001 f 0000000071 00001 f 0000000072 00001 f 0000000073 00001 f 0000000074 00001 f 0000000075 00001 f 0000000076 00001 f 0000000077 00001 f 0000000078 00001 f 0000000000 00001 f trailer << /Size 80 /Prev 12309 /Root 62 0 R >> startxref 12987 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad27-recover.out0000644000064100006410000000057413247541377016673 0ustar ejbejbWARNING: bad27.pdf: file is damaged WARNING: bad27.pdf (object 4 0, offset 307): expected n n obj WARNING: bad27.pdf: Attempting to reconstruct cross-reference table WARNING: bad27.pdf: object 4 0 not found in file after regenerating cross reference table /QTest is implicit /QTest is indirect and has type null (2) /QTest is null unparse: 4 0 R unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/lin5.out0000644000064100006410000002116313247541377015175 0ustar ejbejbWARNING: end of first page section (/E) mismatch: /E = 4213; computed = 4004..4005 WARNING: page 1: shared object 170: in computed list but not hint table WARNING: page 1: shared object 172: in computed list but not hint table WARNING: page 2: shared object 170: in computed list but not hint table WARNING: page 2: shared object 172: in computed list but not hint table WARNING: page 3: shared object 170: in computed list but not hint table WARNING: page 3: shared object 172: in computed list but not hint table WARNING: page 4: shared object 170: in computed list but not hint table WARNING: page 4: shared object 172: in computed list but not hint table WARNING: page 5: shared object 170: in computed list but not hint table WARNING: page 5: shared object 172: in computed list but not hint table WARNING: page 6: shared object 170: in computed list but not hint table WARNING: page 6: shared object 172: in computed list but not hint table WARNING: page 7: shared object 170: in computed list but not hint table WARNING: page 7: shared object 172: in computed list but not hint table WARNING: page 8: shared object 170: in computed list but not hint table WARNING: page 8: shared object 172: in computed list but not hint table WARNING: page 9: shared object 170: in computed list but not hint table WARNING: page 9: shared object 172: in computed list but not hint table WARNING: page 10: shared object 170: in computed list but not hint table WARNING: page 10: shared object 172: in computed list but not hint table WARNING: page 11: shared object 170: in computed list but not hint table WARNING: page 11: shared object 172: in computed list but not hint table WARNING: page 12: shared object 170: in computed list but not hint table WARNING: page 12: shared object 172: in computed list but not hint table WARNING: page 13: shared object 170: in computed list but not hint table WARNING: page 13: shared object 172: in computed list but not hint table WARNING: page 14: shared object 170: in computed list but not hint table WARNING: page 14: shared object 172: in computed list but not hint table WARNING: page 15: shared object 170: in computed list but not hint table WARNING: page 15: shared object 172: in computed list but not hint table WARNING: page 16: shared object 170: in computed list but not hint table WARNING: page 16: shared object 172: in computed list but not hint table WARNING: page 17: shared object 170: in computed list but not hint table WARNING: page 17: shared object 172: in computed list but not hint table WARNING: page 18: shared object 170: in computed list but not hint table WARNING: page 18: shared object 172: in computed list but not hint table WARNING: page 19: shared object 170: in computed list but not hint table WARNING: page 19: shared object 172: in computed list but not hint table WARNING: page 20: shared object 170: in computed list but not hint table WARNING: page 20: shared object 172: in computed list but not hint table WARNING: page 21: shared object 170: in computed list but not hint table WARNING: page 21: shared object 172: in computed list but not hint table WARNING: page 22: shared object 170: in computed list but not hint table WARNING: page 22: shared object 172: in computed list but not hint table WARNING: page 23: shared object 170: in computed list but not hint table WARNING: page 23: shared object 172: in computed list but not hint table WARNING: page 24: shared object 170: in computed list but not hint table WARNING: page 24: shared object 172: in computed list but not hint table WARNING: page 25: shared object 170: in computed list but not hint table WARNING: page 25: shared object 172: in computed list but not hint table WARNING: page 26: shared object 170: in computed list but not hint table WARNING: page 26: shared object 172: in computed list but not hint table WARNING: page 27: shared object 170: in computed list but not hint table WARNING: page 27: shared object 172: in computed list but not hint table WARNING: page 28: shared object 170: in computed list but not hint table WARNING: page 28: shared object 172: in computed list but not hint table WARNING: page 29: shared object 170: in computed list but not hint table WARNING: page 29: shared object 172: in computed list but not hint table WARNING: incorrect offset in outlines table: hint table = 1710; computed = 1627 WARNING: incorrect length in outlines table: hint table = 2124; computed = 2075 lin5.pdf: linearization data: file_size: 27464 first_page_object: 156 first_page_end: 4213 npages: 30 xref_zero_offset: 24265 first_page: 0 H_offset: 1149 H_length: 266 Page Offsets Hint Table min_nobjects: 3 first_page_offset: 1415 nbits_delta_nobjects: 5 min_page_length: 355 nbits_delta_page_length: 12 min_content_offset: 0 nbits_delta_content_offset: 0 min_content_length: 0 nbits_delta_content_length: 12 nbits_nshared_objects: 0 nbits_shared_identifier: 5 nbits_shared_numerator: 0 shared_denominator: 8 Page 0: nobjects: 17 length: 2590 content_offset: 0 content_length: 2235 nshared_objects: 0 Page 1: nobjects: 3 length: 355 content_offset: 0 content_length: 0 nshared_objects: 0 Page 2: nobjects: 3 length: 355 content_offset: 0 content_length: 0 nshared_objects: 0 Page 3: nobjects: 3 length: 355 content_offset: 0 content_length: 0 nshared_objects: 0 Page 4: nobjects: 3 length: 360 content_offset: 0 content_length: 5 nshared_objects: 0 Page 5: nobjects: 3 length: 360 content_offset: 0 content_length: 5 nshared_objects: 0 Page 6: nobjects: 3 length: 361 content_offset: 0 content_length: 6 nshared_objects: 0 Page 7: nobjects: 3 length: 361 content_offset: 0 content_length: 6 nshared_objects: 0 Page 8: nobjects: 3 length: 361 content_offset: 0 content_length: 6 nshared_objects: 0 Page 9: nobjects: 3 length: 361 content_offset: 0 content_length: 6 nshared_objects: 0 Page 10: nobjects: 3 length: 362 content_offset: 0 content_length: 7 nshared_objects: 0 Page 11: nobjects: 3 length: 362 content_offset: 0 content_length: 7 nshared_objects: 0 Page 12: nobjects: 3 length: 362 content_offset: 0 content_length: 7 nshared_objects: 0 Page 13: nobjects: 3 length: 362 content_offset: 0 content_length: 7 nshared_objects: 0 Page 14: nobjects: 3 length: 362 content_offset: 0 content_length: 7 nshared_objects: 0 Page 15: nobjects: 3 length: 362 content_offset: 0 content_length: 7 nshared_objects: 0 Page 16: nobjects: 3 length: 362 content_offset: 0 content_length: 7 nshared_objects: 0 Page 17: nobjects: 3 length: 362 content_offset: 0 content_length: 7 nshared_objects: 0 Page 18: nobjects: 3 length: 362 content_offset: 0 content_length: 7 nshared_objects: 0 Page 19: nobjects: 3 length: 362 content_offset: 0 content_length: 7 nshared_objects: 0 Page 20: nobjects: 3 length: 362 content_offset: 0 content_length: 7 nshared_objects: 0 Page 21: nobjects: 3 length: 362 content_offset: 0 content_length: 7 nshared_objects: 0 Page 22: nobjects: 3 length: 362 content_offset: 0 content_length: 7 nshared_objects: 0 Page 23: nobjects: 3 length: 362 content_offset: 0 content_length: 7 nshared_objects: 0 Page 24: nobjects: 3 length: 361 content_offset: 0 content_length: 6 nshared_objects: 0 Page 25: nobjects: 3 length: 362 content_offset: 0 content_length: 7 nshared_objects: 0 Page 26: nobjects: 3 length: 362 content_offset: 0 content_length: 7 nshared_objects: 0 Page 27: nobjects: 3 length: 362 content_offset: 0 content_length: 7 nshared_objects: 0 Page 28: nobjects: 3 length: 362 content_offset: 0 content_length: 7 nshared_objects: 0 Page 29: nobjects: 3 length: 362 content_offset: 0 content_length: 7 nshared_objects: 0 Shared Objects Hint Table first_shared_obj: 0 first_shared_offset: 16 nshared_first_page: 17 nshared_total: 17 nbits_nobjects: 0 min_group_length: 21 nbits_delta_group_length: 9 Shared Object 0: group length: 212 Shared Object 1: group length: 83 Shared Object 2: group length: 194 Shared Object 3: group length: 144 Shared Object 4: group length: 170 Shared Object 5: group length: 292 Shared Object 6: group length: 165 Shared Object 7: group length: 163 Shared Object 8: group length: 184 Shared Object 9: group length: 203 Shared Object 10: group length: 149 Shared Object 11: group length: 164 Shared Object 12: group length: 164 Shared Object 13: group length: 132 Shared Object 14: group length: 116 Shared Object 15: group length: 21 Shared Object 16: group length: 34 Outlines Hint Table first_object: 157 first_object_offset: 1710 nobjects: 12 group_length: 2124 qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.8.check0000644000064100006410000000026213247541377017476 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/image-streams.pdf0000644000064100006410000536576313247541377017054 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 9 /Kids [ 3 0 R 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 12 0 R /MediaBox [ 0 0 612 392 ] /Parent 2 0 R /Resources << /Font << /F1 13 0 R >> /ProcSet [ /PDF /Text /ImageC ] /XObject << /Im1 14 0 R >> >> /Type /Page >> endobj 4 0 obj << /Contents 15 0 R /MediaBox [ 0 0 612 392 ] /Parent 2 0 R /Resources << /Font << /F1 13 0 R >> /ProcSet [ /PDF /Text /ImageC ] /XObject << /Im1 16 0 R >> >> /Type /Page >> endobj 5 0 obj << /Contents 17 0 R /MediaBox [ 0 0 612 392 ] /Parent 2 0 R /Resources << /Font << /F1 13 0 R >> /ProcSet [ /PDF /Text /ImageC ] /XObject << /Im1 18 0 R >> >> /Type /Page >> endobj 6 0 obj << /Contents 19 0 R /MediaBox [ 0 0 612 392 ] /Parent 2 0 R /Resources << /Font << /F1 13 0 R >> /ProcSet [ /PDF /Text /ImageC ] /XObject << /Im1 20 0 R >> >> /Type /Page >> endobj 7 0 obj << /Contents 21 0 R /MediaBox [ 0 0 612 392 ] /Parent 2 0 R /Resources << /Font << /F1 13 0 R >> /ProcSet [ /PDF /Text /ImageC ] /XObject << /Im1 22 0 R >> >> /Type /Page >> endobj 8 0 obj << /Contents 23 0 R /MediaBox [ 0 0 612 392 ] /Parent 2 0 R /Resources << /Font << /F1 13 0 R >> /ProcSet [ /PDF /Text /ImageC ] /XObject << /Im1 24 0 R >> >> /Type /Page >> endobj 9 0 obj << /Contents 25 0 R /MediaBox [ 0 0 612 392 ] /Parent 2 0 R /Resources << /Font << /F1 13 0 R >> /ProcSet [ /PDF /Text /ImageC ] /XObject << /Im1 26 0 R >> >> /Type /Page >> endobj 10 0 obj << /Contents 27 0 R /MediaBox [ 0 0 612 392 ] /Parent 2 0 R /Resources << /Font << /F1 13 0 R >> /ProcSet [ /PDF /Text /ImageC ] /XObject << /Im1 28 0 R >> >> /Type /Page >> endobj 11 0 obj << /Contents 29 0 R /MediaBox [ 0 0 612 392 ] /Parent 2 0 R /Resources << /Font << /F1 13 0 R >> /ProcSet [ /PDF /Text /ImageC ] /XObject << /Im1 30 0 R >> >> /Type /Page >> endobj 12 0 obj << /Length 97 /Filter /FlateDecode >> stream xs Qw3T02QIS07R062PIQwI-LNuV(,PH)I-R+TRp *j3Q0BC mh ɹ . \[endstream endobj 13 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 14 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceCMYK /Height 480 /Subtype /Image /Type /XObject /Width 400 /Length 847 /Filter /FlateDecode >> stream xα0 1_d &)`$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I5LR]endstream endobj 15 0 obj << /Length 102 /Filter /FlateDecode >> stream x 0wF;B;k,t(|K)i}Z<AfnDm)j|i_Ӻ: I/ȇ^ol{Zb 6^Nendstream endobj 16 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceCMYK /Filter /DCTDecode /Height 480 /Subtype /Image /Type /XObject /Width 400 /Length 9364 >> stream AdobedC    $.' ",#(7),01444'9=82<.342CMYK }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzCMYK?袊((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((+ ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((+(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((+((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((袊((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((+endstream endobj 17 0 obj << /Length 108 /Filter /FlateDecode >> stream x 0>ōvʏ5 boqNۢD}}qv;Az6H/>=1CиtZ##^e` m'irk6endstream endobj 18 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceCMYK /Filter /RunLengthDecode /Height 480 /Subtype /Image /Type /XObject /Width 400 /Length 768998 >> stream endstream endobj 19 0 obj << /Length 96 /Filter /FlateDecode >> stream xs Qw3T02QIS07R062PIQwI-LN rwR(,PH)I-R+TRp *2Q0BC mh ɹ . \endstream endobj 20 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Height 480 /Subtype /Image /Type /XObject /Width 400 /Length 645 /Filter /FlateDecode >> stream x10 'hxП|fsԺ?J`s$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I) endstream endobj 21 0 obj << /Length 99 /Filter /FlateDecode >> stream x ; @{O1eAk$T 'D z}ajZB&j[da)i13ߡL$hF-{~+l&k-q|WG/8endstream endobj 22 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 480 /Subtype /Image /Type /XObject /Width 400 /Length 3650 >> stream JFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?袊((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((Ҩ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((j(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((L+O܂((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((y+((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((v(܏0((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((endstream endobj 23 0 obj << /Length 106 /Filter /FlateDecode >> stream x ; @bJc@ûlêwkd9yLoڵ G4g1g}cиzD&Rˡ\%.Qendstream endobj 24 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /RunLengthDecode /Height 480 /Subtype /Image /Type /XObject /Width 400 /Length 641497 >> stream endstream endobj 25 0 obj << /Length 97 /Filter /FlateDecode >> stream xs Qw3T02QIS07R062PIQwI-LNu/JT(,PH)I-R+TRp *j3Q0BC mh ɹ . \ŵendstream endobj 26 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /Height 480 /Subtype /Image /Type /XObject /Width 400 /Length 221 /Filter /FlateDecode >> stream xA 0;Nv2 xp1u .@@ Qdendstream endobj 27 0 obj << /Length 101 /Filter /FlateDecode >> stream x ; @{O1eqMd}(]ay 52qT"#7䟎ScB#A:j̴RlyYk [a/.h)Mendstream endobj 28 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /Filter /DCTDecode /Height 480 /Subtype /Image /Type /XObject /Width 400 /Length 2587 >> stream JFIFC    $.' ",#(7),01444'9=82<.342  }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz?((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((endstream endobj 29 0 obj << /Length 108 /Filter /FlateDecode >> stream x ; @bJc@kY]@6/f% ]a9 q{v"7>YW=_t~!h\:"ONRʢ\;%N R  endstream endobj 30 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /Filter /RunLengthDecode /Height 480 /Subtype /Image /Type /XObject /Width 400 /Length 3001 >> stream ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333endstream endobj xref 0 31 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000173 00000 n 0000000362 00000 n 0000000551 00000 n 0000000740 00000 n 0000000929 00000 n 0000001118 00000 n 0000001307 00000 n 0000001496 00000 n 0000001686 00000 n 0000001876 00000 n 0000002044 00000 n 0000002152 00000 n 0000003169 00000 n 0000003343 00000 n 0000012876 00000 n 0000013056 00000 n 0000782231 00000 n 0000782398 00000 n 0000783212 00000 n 0000783382 00000 n 0000787200 00000 n 0000787378 00000 n 0001429051 00000 n 0001429219 00000 n 0001429610 00000 n 0001429783 00000 n 0001432539 00000 n 0001432719 00000 n trailer << /Root 1 0 R /Size 31 /ID [<53b6958e9beef00ea2ac077d5f2912b6><53b6958e9beef00ea2ac077d5f2912b6>] >> startxref 1435895 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/test4-2.pdf0000644000064100006410000000200613247541377015465 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj 44 endobj 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 7 0 obj [ /PDF /Text ] endobj 8 0 obj << % stream /A 4 0 R >> endobj xref 0 9 0000000000 65535 f 0000000025 00000 n 0000000079 00000 n 0000000161 00000 n 0000000376 00000 n 0000000475 00000 n 0000000494 00000 n 0000000612 00000 n 0000000647 00000 n trailer << /Root 1 0 R /Size 9 /QTest 8 0 R /ID [] >> startxref 691 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.7-ogen.check0000644000064100006410000000026213247541377020107 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/show-xref.out0000644000064100006410000000064513247541377016252 0ustar ejbejb1/0: uncompressed; offset = 15 2/0: uncompressed; offset = 64 3/0: compressed; stream = 2, index = 0 4/0: compressed; stream = 2, index = 1 5/0: compressed; stream = 2, index = 2 6/0: compressed; stream = 2, index = 3 7/0: uncompressed; offset = 390 8/0: uncompressed; offset = 521 9/0: uncompressed; offset = 39802 10/0: uncompressed; offset = 49559 11/0: uncompressed; offset = 49672 12/0: uncompressed; offset = 49880 qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-min-1.8.out0000644000064100006410000000006213247541377020476 0ustar ejbejbversion: 1.8 extension level: 0 null test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/stream-data.pdf0000644000064100006410000000214513247541377016471 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /Pages 2 0 R /QStream 3 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 5 0 R ] /Type /Pages >> endobj 3 0 obj << /Length 4 0 R /Filter /ASCIIHexDecode >> stream 706F7461746F0A endstream endobj 4 0 obj 15 endobj %% Page 1 5 0 obj << /Contents 6 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 8 0 R >> /ProcSet 9 0 R >> /Type /Page >> endobj %% Contents for page 1 6 0 obj << /Length 7 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 7 0 obj 44 endobj 8 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 9 0 obj [ /PDF /Text ] endobj xref 0 10 0000000000 65535 f 0000000025 00000 n 0000000096 00000 n 0000000168 00000 n 0000000264 00000 n 0000000293 00000 n 0000000508 00000 n 0000000607 00000 n 0000000626 00000 n 0000000744 00000 n trailer << /Root 1 0 R /Size 10 /ID [<422061d5d2701ad547ece6eb89b05b77><422061d5d2701ad547ece6eb89b05b77>] >> startxref 779 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/c-r2.pdf0000644000064100006410000002324513247541377015036 0ustar ejbejb%PDF-1.5 % 1 0 obj << /Outlines 3 0 R /PageLabels 15 0 R /PageMode /UseOutlines /Pages 16 0 R /Type /Catalog >> endobj 2 0 obj << /Type /ObjStm /Length 610 /Filter /FlateDecode /N 13 /First 87 >> stream iR6kR}FTuq*Ȣxah,m yrWǪH5cRoC c48xu ̀/ъz'QFs7$A SdC66/^GyAׅyMz!SCN H7!Dk (a܏As<%GhYK$%TTN Jd1.+%wabj[$I|]aq%[ >m (" hk Yiml]b-nbv$e c=vX`1YtP}"Y!}- dܒVOtw<|ƕѷ4ݛ[1i06 };P)SQ)BKsȂ-z /Wy?LԁݞPKT̀{X8W</`> endobj 17 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 18 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 19 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 20 0 obj << /Contents 52 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 21 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 22 0 obj << /Contents 54 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 23 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 24 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 25 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 26 0 obj << /Contents 58 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 27 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 28 0 obj << /Contents 60 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 29 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 30 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 31 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 32 0 obj << /Contents 64 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 33 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 34 0 obj << /Contents 66 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 35 0 obj << /Contents 67 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 36 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 37 0 obj << /Contents 69 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 38 0 obj << /Contents 70 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 39 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 40 0 obj << /Contents 72 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 41 0 obj << /Contents 73 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 42 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 43 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 44 0 obj << /Contents 76 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 45 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 46 0 obj << /Contents 78 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 47 0 obj << /Length 50 /Filter /FlateDecode >> stream 컱Xq#c~Vj/i'":l:irD}~endstream endobj 48 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 49 0 obj [ /PDF /Text ] endobj 50 0 obj << /Length 51 /Filter /FlateDecode >> stream &!IS`F`^VO}~z/98ԪZO*M9nendstream endobj 51 0 obj << /Length 51 /Filter /FlateDecode >> stream trKx団T^^ RNѣJgs % oJ6dPBendstream endobj 52 0 obj << /Length 51 /Filter /FlateDecode >> stream Э5ُNN>S_/> rJ ȩEZD|%endstream endobj 53 0 obj << /Length 51 /Filter /FlateDecode >> stream |ef+"B1[ Ĕmsk]{̻UfJendstream endobj 54 0 obj << /Length 51 /Filter /FlateDecode >> stream Diכq]6ʠ"͋BG|;>n&VM|!tendstream endobj 55 0 obj << /Length 51 /Filter /FlateDecode >> stream n4~|3|@zl` -ӦFo`lS?{(endstream endobj 56 0 obj << /Length 51 /Filter /FlateDecode >> stream e{\6fH؜.UO+Υ~p$y:5ECendstream endobj 57 0 obj << /Length 50 /Filter /FlateDecode >> stream = MY> (Ffl^7 U2wZendstream endobj 58 0 obj << /Length 50 /Filter /FlateDecode >> stream 1> 笸((ٽ H3RP!Peƫ7Tendstream endobj 59 0 obj << /Length 50 /Filter /FlateDecode >> stream dC>8tSϒKo'_f u5;?F-7endstream endobj 60 0 obj << /Length 50 /Filter /FlateDecode >> stream +)}7 3\ńW$]>D!^k}'IVĤ+endstream endobj 61 0 obj << /Length 50 /Filter /FlateDecode >> stream 0ϖS 7ŧ#Th*fks·=cendstream endobj 62 0 obj << /Length 50 /Filter /FlateDecode >> stream Ti͎]˵L.a|R} ZH[ g2^/9endstream endobj 63 0 obj << /Length 50 /Filter /FlateDecode >> stream p^;XMm$3Cײ0O;Zo ߭y5aendstream endobj 64 0 obj << /Length 50 /Filter /FlateDecode >> stream QҼPp'd>j[y6ot)B L]dTkfA:endstream endobj 65 0 obj << /Length 50 /Filter /FlateDecode >> stream 1 -sQTeg3ڋ?e?wM=抸wendstream endobj 66 0 obj << /Length 51 /Filter /FlateDecode >> stream |W%ȳ";K(`E .y}Rendstream endobj 67 0 obj << /Length 51 /Filter /FlateDecode >> stream g r|q!a^^Gsq biR8B_ˤ2endstream endobj 68 0 obj << /Length 51 /Filter /FlateDecode >> stream }FR_[k#Riaf7NUGwZz s,Y tendstream endobj 69 0 obj << /Length 51 /Filter /FlateDecode >> stream 0I|mI絡g-m+qMxb֊=*> stream aw)Ɍs~Nb3;j-L[dSg5PON+endstream endobj 71 0 obj << /Length 51 /Filter /FlateDecode >> stream 2SسH]M[U@[sm> stream <byNrM3?SmUXCX6> mN}Aendstream endobj 73 0 obj << /Length 50 /Filter /FlateDecode >> stream 'Ic,oW\d}ZjǕF:XpOmDendstream endobj 74 0 obj << /Length 51 /Filter /FlateDecode >> stream '@fkDъ:! 0͡A FD> stream T:)C&Ĉk.֢!m*!mƻkUmG%dzendstream endobj 76 0 obj << /Length 51 /Filter /FlateDecode >> stream du#e .QGՓL\JʛCJe R錏~CC"endstream endobj 77 0 obj << /Length 51 /Filter /FlateDecode >> stream q:-&y-ټ@)Lf3ti*j)߆"mjllW^_endstream endobj 78 0 obj << /Length 51 /Filter /FlateDecode >> stream em Hw6XC=`\6Jxv݊ )1ˍUDendstream endobj 79 0 obj << /Filter /Standard /Length 40 /O /P -8 /R 2 /U /V 1 >> endobj 80 0 obj << /Type /XRef /Length 85 /Filter /FlateDecode /DecodeParms << /Columns 4 /Predictor 12 >> /W [ 1 2 1 ] /Root 1 0 R /Size 81 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] /Encrypt 79 0 R >> stream xcb&F~&b`$d '(QBJWA*  $(F4Y&3 % endstream endobj startxref 9534 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.5.check0000644000064100006410000000026213247541377021145 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.11.check0000644000064100006410000000067213247541377017216 0ustar ejbejbchecking a.pdf PDF Version: 1.4 R = 3 P = -4 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed File is linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.2-ogen.c-check0000644000064100006410000000005013247541377022303 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/good12.pdf0000644000064100006410000000176413247541377015370 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 7 0 obj << % Comment /Length 123 /Filter /FlateDecode >> stream x%11 b;t4| wXID8G>rQu O E:IWPlII)rp4~;As/҅jcszT.?u<*6 endstream endobj xref 0 8 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n 0000000556 00000 n trailer << /Size 8 /Root 1 0 R /QTest 7 0 R >> startxref 770 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/enc-R3,V2,O=master.pdf0000644000064100006410000004137013247541377017311 0ustar ejbejb%PDF-1.4 % 91 0 obj << /Linearized 1 /O 94 /H [ 1335 211 ] /L 17144 /E 4183 /N 30 /T 15206 >> endobj xref 91 22 0000000016 00000 n 0000000805 00000 n 0000001179 00000 n 0000001546 00000 n 0000001741 00000 n 0000001821 00000 n 0000002012 00000 n 0000002153 00000 n 0000002320 00000 n 0000002495 00000 n 0000002659 00000 n 0000002821 00000 n 0000003004 00000 n 0000003206 00000 n 0000003356 00000 n 0000003521 00000 n 0000003688 00000 n 0000003820 00000 n 0000003841 00000 n 0000003957 00000 n 0000001335 00000 n 0000001525 00000 n trailer << /Size 113 /Info 89 0 R /Encrypt 93 0 R /Root 92 0 R /Prev 15196 /ID[<66d36a30a97e0f16f39955c6221e0c2a><79e6f7461dc3a473906f6be61484d418>] >> startxref 0 %%EOF 92 0 obj << /PageLabels << /Nums [ 0 << /P ()>> 2 << /S /r /St 1 >> 7 << /P ()>> 9 << /S /r /St 6 >> 11 << /P ()>> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P ()>> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /Pages 88 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 95 0 R /Metadata 90 0 R >> endobj 93 0 obj << /Filter /Standard /R 3 /O (C\(pK&ZW$e+eOPr) /U (;dz朁i옭aYY؎[n^\nyT!zx) /P -3104 /V 2 /Length 128 >> endobj 111 0 obj << /S 145 /O 189 /Filter /FlateDecode /Length 112 0 R >> stream Ee_u:.cRhmZv jYG-e4؄_ˮfxҟe>04U7Wm򗀨㊠5{y( endstream endobj 112 0 obj 96 endobj 94 0 obj << /Contents 107 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 95 0 obj << /Type /Outlines /First 96 0 R /Last 97 0 R /Count 6 >> endobj 96 0 obj << /Type /Outline /Title (ll9ߐ\)\)@!XLddH) /Parent 95 0 R /Count 4 /Next 97 0 R /First 98 0 R /Last 99 0 R /Dest [ 13 0 R /XYZ null null null ] >> endobj 97 0 obj << /Type /Outline /Title ([ۈFcEnpKbSZa) /Parent 95 0 R /Prev 96 0 R /Dest [ 43 0 R /XYZ 66 756 3 ] >> endobj 98 0 obj << /Type /Outline /Title (!X6=Jş_@J) /Parent 96 0 R /Next 99 0 R /First 102 0 R /Last 103 0 R /Count -3 /Dest [ 31 0 R /Fit ] >> endobj 99 0 obj << /Type /Outline /Title (thtQ觘?bb) /Parent 96 0 R /Prev 98 0 R /First 100 0 R /Last 101 0 R /Count 2 /Dest [ 37 0 R /FitH 792 ] >> endobj 100 0 obj << /Type /Outline /Title (Q[سh;Ρ*W~,>$IBญ~o) /Parent 99 0 R /Next 101 0 R /Dest [ 1 0 R /FitR 66 714 180 770 ] >> endobj 101 0 obj << /Type /Outline /Title (+WIic|6-n\)^F 3L+=&_&ȶ) /Parent 99 0 R /Prev 100 0 R /Dest [ 94 0 R /XYZ null null null ] >> endobj 102 0 obj << /Type /Outline /Title ($`J;!FI"m0) /Parent 98 0 R /Next 103 0 R /First 105 0 R /Last 106 0 R /Count -2 /Dest [ 34 0 R /FitV 100 ] >> endobj 103 0 obj << /Type /Outline /Title (ϒ]I7$AMJ?zXdA9$0") /Parent 98 0 R /Prev 102 0 R /First 104 0 R /Last 104 0 R /Count 1 /Dest [ 34 0 R /XYZ null null null ] >> endobj 104 0 obj << /Type /Outline /Title (ίTԁבk{3?0\rE_OUM y {wr?) /Parent 103 0 R /Dest [ 64 0 R /XYZ null null null ] >> endobj 105 0 obj << /Type /Outline /Title (g\rpkC_'2VAZ`^|@d) /Parent 102 0 R /Next 106 0 R /Dest [ 52 0 R /XYZ null null null ] >> endobj 106 0 obj << /Type /Outline /Title (a1E힑,OQ\r\)S/?u\r䅱E/w) /Parent 102 0 R /Prev 105 0 R /Dest [ 55 0 R /XYZ null null null ] >> endobj 107 0 obj << /Filter /FlateDecode /Length 108 0 R >> stream aLuT$~SkkpkK$[4[~$NBGGM#0 iK endstream endobj 108 0 obj 52 endobj 109 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 110 0 obj [ /PDF /Text ] endobj 1 0 obj << /Contents 2 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 2 0 obj << /Filter /FlateDecode /Length 3 0 R >> stream $׺jTU[5Y&>W%oW,s2*'2 {7k(M endstream endobj 3 0 obj 52 endobj 4 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 5 0 obj << /Filter /FlateDecode /Length 6 0 R >> stream yD4!o!1m4Y> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 8 0 obj << /Filter /FlateDecode /Length 9 0 R >> stream FG& DQ,n׼)*0= endstream endobj 9 0 obj 52 endobj 10 0 obj << /Contents 11 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 11 0 obj << /Filter /FlateDecode /Length 12 0 R >> stream T|묠'> v@s\oqw+8K|-T endstream endobj 12 0 obj 52 endobj 13 0 obj << /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 14 0 obj << /Filter /FlateDecode /Length 15 0 R >> stream k8Z+ڭVljQOT'ެLkCRiL r7+> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 17 0 obj << /Filter /FlateDecode /Length 18 0 R >> stream SSTQf򧛺tS4_:Ș6"]š罶3gƻ& endstream endobj 18 0 obj 52 endobj 19 0 obj << /Contents 20 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 20 0 obj << /Filter /FlateDecode /Length 21 0 R >> stream Uz 3Q٪ ܄gv BƧ, 5-G endstream endobj 21 0 obj 52 endobj 22 0 obj << /Contents 23 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 23 0 obj << /Filter /FlateDecode /Length 24 0 R >> stream `R4^5her5 ~ "*fIp> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 26 0 obj << /Filter /FlateDecode /Length 27 0 R >> stream %{r͊@Ս0m AdVN8ew u> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 29 0 obj << /Filter /FlateDecode /Length 30 0 R >> stream %j9mxC{WHh9S?`dYY˃q) endstream endobj 30 0 obj 53 endobj 31 0 obj << /Contents 32 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 32 0 obj << /Filter /FlateDecode /Length 33 0 R >> stream ܁%,!VqӒA)m%pj.}y C0(bxϥ endstream endobj 33 0 obj 53 endobj 34 0 obj << /Contents 35 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 35 0 obj << /Filter /FlateDecode /Length 36 0 R >> stream j-F*O<-9R /W&#lU'.wi endstream endobj 36 0 obj 53 endobj 37 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 38 0 obj << /Filter /FlateDecode /Length 39 0 R >> stream :ধF7Ae^F3.!k .Ԙ[Q2~m$o9T endstream endobj 39 0 obj 53 endobj 40 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 41 0 obj << /Filter /FlateDecode /Length 42 0 R >> stream ߗ p@H?+6kWtJWnΔ r.,nK( endstream endobj 42 0 obj 53 endobj 43 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 44 0 obj << /Filter /FlateDecode /Length 45 0 R >> stream δQr{0ߪBiFM !#Lf` e7mM endstream endobj 45 0 obj 53 endobj 46 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 47 0 obj << /Filter /FlateDecode /Length 48 0 R >> stream \̆Pb|XeK#V!ʣؓ@0]1m endstream endobj 48 0 obj 53 endobj 49 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 50 0 obj << /Filter /FlateDecode /Length 51 0 R >> stream UT9 ɂ,-sV^-DL cpaU'E@*` endstream endobj 51 0 obj 53 endobj 52 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 53 0 obj << /Filter /FlateDecode /Length 54 0 R >> stream [i>),N*~y'oOt=B!1N- endstream endobj 54 0 obj 53 endobj 55 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 56 0 obj << /Filter /FlateDecode /Length 57 0 R >> stream L\+LL]p"OkIcQ|HPs~}ji>혁&)Y endstream endobj 57 0 obj 53 endobj 58 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 59 0 obj << /Filter /FlateDecode /Length 60 0 R >> stream -]#ʺQ$y7dD7'[T>BYVEiw+? J endstream endobj 60 0 obj 53 endobj 61 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 62 0 obj << /Filter /FlateDecode /Length 63 0 R >> stream Lۄ EJSЍ Mz*X_;po(¬ Pr5B endstream endobj 63 0 obj 53 endobj 64 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 65 0 obj << /Filter /FlateDecode /Length 66 0 R >> stream }|@tyR <+y<- UK=:a:T uҞ@ endstream endobj 66 0 obj 53 endobj 67 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 68 0 obj << /Filter /FlateDecode /Length 69 0 R >> stream Җ¿j:z bCoے~SM>Q*K)*]0#G]6/=1( endstream endobj 69 0 obj 53 endobj 70 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 71 0 obj << /Filter /FlateDecode /Length 72 0 R >> stream ,/d_cosrg?rNߠ.ڈٮ{p6~x L91 endstream endobj 72 0 obj 52 endobj 73 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 74 0 obj << /Filter /FlateDecode /Length 75 0 R >> stream 7k;DtmGc%uaut߯uڗIۇ XGnv Pi2 endstream endobj 75 0 obj 53 endobj 76 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 77 0 obj << /Filter /FlateDecode /Length 78 0 R >> stream kl~nHk2fV:TR&fQ,* ,'u1,7 endstream endobj 78 0 obj 53 endobj 79 0 obj << /Contents 80 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 80 0 obj << /Filter /FlateDecode /Length 81 0 R >> stream NMU]U萊h-DsU,Qҧ:3ݼu endstream endobj 81 0 obj 53 endobj 82 0 obj << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 83 0 obj << /Filter /FlateDecode /Length 84 0 R >> stream / 4uݬrXP֞B~Z@w%2UAZMg#<ʼW3;t> endstream endobj 84 0 obj 53 endobj 85 0 obj << /Contents 86 0 R /MediaBox [ 0 0 612 792 ] /Parent 88 0 R /Resources << /Font << /F1 109 0 R >> /ProcSet 110 0 R >> /Type /Page /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 86 0 obj << /Filter /FlateDecode /Length 87 0 R >> stream 텥oR;"zN$F_`{qZQ8=Qޞ!# endstream endobj 87 0 obj 53 endobj 88 0 obj << /Count 30 /Kids [ 94 0 R 1 0 R 4 0 R 7 0 R 10 0 R 13 0 R 16 0 R 19 0 R 22 0 R 25 0 R 28 0 R 31 0 R 34 0 R 37 0 R 40 0 R 43 0 R 46 0 R 49 0 R 52 0 R 55 0 R 58 0 R 61 0 R 64 0 R 67 0 R 70 0 R 73 0 R 76 0 R 79 0 R 82 0 R 85 0 R ] /Type /Pages >> endobj 89 0 obj << /ModDate (\\zoMnE #aH) /CreationDate (\\zoMnA#aH) >> endobj 90 0 obj << /Type /Metadata /Subtype /XML /Length 770 >> stream :N|أ7[oEa໾ 8GZ ) a*f;1̎_P~~`3 _WnDEGi6%dZ m= DFbej79ߙԢ,hƉ!ŷ|JG|f5mykNHpG Mow\jLʝ,uє#@Bs; RF<6ߖn'7 ґ<>F_N[w,]uwp|9;3.[eͽvj <-KY 8K&F<79e6f7461dc3a473906f6be61484d418>] >> startxref 173 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/c-no-original-object-ids.pdf0000644000064100006410000003566013247541377020756 0ustar ejbejb%PDF-1.5 % %QDF-1.0 1 0 obj << /Outlines 3 0 R /PageLabels 15 0 R /PageMode /UseOutlines /Pages 16 0 R /Type /Catalog >> endobj 2 0 obj << /Type /ObjStm /Length 3176 /N 13 /First 126 >> stream 3 0 4 100 5 335 6 520 7 718 8 1044 9 1262 10 1508 11 1715 12 1922 13 2115 14 2329 15 2535 %% Object stream: object 3, index 0 << /Count 6 /First 4 0 R /Last 5 0 R /Type /Outlines >> %% Object stream: object 4, index 1 << /Count 4 /Dest [ 17 0 R /XYZ null null null ] /First 6 0 R /Last 7 0 R /Next 5 0 R /Parent 3 0 R /Title (Iss 1 -> 5: /XYZ null null null) /Type /Outline >> %% Object stream: object 5, index 2 << /Dest [ 18 0 R /XYZ 66 756 3 ] /Parent 3 0 R /Prev 4 0 R /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Type /Outline >> %% Object stream: object 6, index 3 << /Count -3 /Dest [ 19 0 R /Fit ] /First 8 0 R /Last 9 0 R /Next 7 0 R /Parent 4 0 R /Title (Amanda 1.1 -> 11: /Fit) /Type /Outline >> %% Object stream: object 7, index 4 << /Count 2 /Dest [ 20 0 R /FitH 792 ] /First 13 0 R /Last 14 0 R /Parent 4 0 R /Prev 6 0 R /Title /Type /Outline >> %% Object stream: object 8, index 5 << /Count -2 /Dest [ 21 0 R /FitV 100 ] /First 10 0 R /Last 11 0 R /Next 9 0 R /Parent 6 0 R /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Type /Outline >> %% Object stream: object 9, index 6 << /Count 1 /Dest [ 21 0 R /XYZ null null null ] /First 12 0 R /Last 12 0 R /Parent 6 0 R /Prev 8 0 R /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Type /Outline >> %% Object stream: object 10, index 7 << /Dest [ 22 0 R /XYZ null null null ] /Next 11 0 R /Parent 8 0 R /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Type /Outline >> %% Object stream: object 11, index 8 << /Dest [ 23 0 R /XYZ null null null ] /Parent 8 0 R /Prev 10 0 R /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Type /Outline >> %% Object stream: object 12, index 9 << /Dest [ 24 0 R /XYZ null null null ] /Parent 9 0 R /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Type /Outline >> %% Object stream: object 13, index 10 << /Dest [ 25 0 R /FitR 66 714 180 770 ] /Next 14 0 R /Parent 7 0 R /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Type /Outline >> %% Object stream: object 14, index 11 << /Dest [ 26 0 R /XYZ null null null ] /Parent 7 0 R /Prev 13 0 R /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Type /Outline >> %% Object stream: object 15, index 12 << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> endstream endobj 16 0 obj << /Count 30 /Kids [ 26 0 R 25 0 R 27 0 R 28 0 R 29 0 R 17 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 19 0 R 21 0 R 20 0 R 35 0 R 18 0 R 36 0 R 37 0 R 22 0 R 23 0 R 38 0 R 39 0 R 24 0 R 40 0 R 41 0 R 42 0 R 43 0 R 44 0 R 45 0 R 46 0 R ] /Type /Pages >> endobj %% Page 6 17 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 16 18 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 12 19 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 14 20 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 13 21 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 19 22 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 20 23 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 23 24 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 2 25 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 1 26 0 obj << /Contents 67 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 3 27 0 obj << /Contents 69 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 4 28 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 5 29 0 obj << /Contents 73 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 7 30 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 8 31 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 9 32 0 obj << /Contents 79 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 10 33 0 obj << /Contents 81 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 11 34 0 obj << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 15 35 0 obj << /Contents 85 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 17 36 0 obj << /Contents 87 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 18 37 0 obj << /Contents 89 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 21 38 0 obj << /Contents 91 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 22 39 0 obj << /Contents 93 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 24 40 0 obj << /Contents 95 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 25 41 0 obj << /Contents 97 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 26 42 0 obj << /Contents 99 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 27 43 0 obj << /Contents 101 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 28 44 0 obj << /Contents 103 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 29 45 0 obj << /Contents 105 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Page 30 46 0 obj << /Contents 107 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj %% Contents for page 6 47 0 obj << /Length 48 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 48 0 obj 46 endobj 49 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 50 0 obj [ /PDF /Text ] endobj %% Contents for page 16 51 0 obj << /Length 52 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 52 0 obj 47 endobj %% Contents for page 12 53 0 obj << /Length 54 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 54 0 obj 47 endobj %% Contents for page 14 55 0 obj << /Length 56 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 56 0 obj 47 endobj %% Contents for page 13 57 0 obj << /Length 58 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 58 0 obj 47 endobj %% Contents for page 19 59 0 obj << /Length 60 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 60 0 obj 47 endobj %% Contents for page 20 61 0 obj << /Length 62 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 62 0 obj 47 endobj %% Contents for page 23 63 0 obj << /Length 64 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 64 0 obj 47 endobj %% Contents for page 2 65 0 obj << /Length 66 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 66 0 obj 46 endobj %% Contents for page 1 67 0 obj << /Length 68 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 0) Tj ET endstream endobj 68 0 obj 46 endobj %% Contents for page 3 69 0 obj << /Length 70 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 70 0 obj 46 endobj %% Contents for page 4 71 0 obj << /Length 72 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 72 0 obj 46 endobj %% Contents for page 5 73 0 obj << /Length 74 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 74 0 obj 46 endobj %% Contents for page 7 75 0 obj << /Length 76 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 76 0 obj 46 endobj %% Contents for page 8 77 0 obj << /Length 78 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 78 0 obj 46 endobj %% Contents for page 9 79 0 obj << /Length 80 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 80 0 obj 46 endobj %% Contents for page 10 81 0 obj << /Length 82 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 82 0 obj 46 endobj %% Contents for page 11 83 0 obj << /Length 84 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 84 0 obj 47 endobj %% Contents for page 15 85 0 obj << /Length 86 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 86 0 obj 47 endobj %% Contents for page 17 87 0 obj << /Length 88 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 88 0 obj 47 endobj %% Contents for page 18 89 0 obj << /Length 90 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 90 0 obj 47 endobj %% Contents for page 21 91 0 obj << /Length 92 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 92 0 obj 47 endobj %% Contents for page 22 93 0 obj << /Length 94 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 94 0 obj 47 endobj %% Contents for page 24 95 0 obj << /Length 96 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 96 0 obj 47 endobj %% Contents for page 25 97 0 obj << /Length 98 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 98 0 obj 47 endobj %% Contents for page 26 99 0 obj << /Length 100 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 100 0 obj 47 endobj %% Contents for page 27 101 0 obj << /Length 102 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 102 0 obj 47 endobj %% Contents for page 28 103 0 obj << /Length 104 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 104 0 obj 47 endobj %% Contents for page 29 105 0 obj << /Length 106 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 106 0 obj 47 endobj %% Contents for page 30 107 0 obj << /Length 108 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 108 0 obj 47 endobj 109 0 obj << /Type /XRef /Length 440 /W [ 1 2 1 ] /Root 1 0 R /Size 110 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> stream      SW'f5q@O !"_#/#$%&r'O''(A(}())y)* *9**+5+a++,],,---..>../7/b//0[0011122@223<3h334d445$556 6L667L7y788z899& endstream endobj startxref 14630 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad28.pdf0000644000064100006410000000141213247541377015163 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream enwobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /QTest 4 0 R >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/short-id-linearized.pdf0000644000064100006410000000241613247541377020145 0ustar ejbejb%PDF-1.3 % 2 0 obj << /Linearized 1 /L 1294 /H [ 561 118 ] /O 5 /E 1077 /N 1 /T 1144 >> endobj xref 2 7 0000000015 00000 n 0000000512 00000 n 0000000561 00000 n 0000000679 00000 n 0000000822 00000 n 0000000940 00000 n 0000000970 00000 n trailer << /Root 3 0 R /Size 9 /Prev 1136 /ID [<443a32303130303432333131>] >> startxref 0 %%EOF 3 0 obj << /Pages 1 0 R /Type /Catalog >> endobj 4 0 obj << /Filter /FlateDecode /S 36 /Length 41 >> stream xc```a``2d>8p1?N`JB endstream endobj 5 0 obj << /Contents 6 0 R /MediaBox [ 0 0 612 792 ] /Parent 1 0 R /Resources << /Font << /F1 8 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj 6 0 obj << /Length 48 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 7 0 obj [ /PDF /Text ] endobj 8 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 1 0 obj << /Count 1 /Kids [ 5 0 R ] /Type /Pages >> endobj xref 0 2 0000000000 65535 f 0000001077 00000 n trailer << /Size 2 /ID [<443a32303130303432333131>] >> startxref 216 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/a-09-split-exp.zdf0000644000064100006410000000174513247541377016677 0ustar ejbejb%PDF-1.4 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 53 >> stream x 휏nyA?(=2?&ꍕ>(ٙ aȊ1endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 6 0 obj << /Filter /Standard /Length 128 /O <2a2f0a1990192c60114730bdcd39f37828a53c89a340dd473c85299dc5258e1c> /P -4 /R 3 /U /V 2 >> endobj xref 0 7 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000398 00000 n 0000000497 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] /Encrypt 6 0 R >> startxref 704 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-other-min-1.8.5.out0000644000064100006410000000023513247541377021762 0ustar ejbejbversion: 1.8 extension level: 5 << /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/split-exp-06.Pdf0000644000064100006410000000136313247541377016400 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼T3M,.; 1endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 6 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000398 00000 n trailer << /Root 1 0 R /Size 6 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 497 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/a-02-split-exp.zdf0000644000064100006410000000174513247541377016670 0ustar ejbejb%PDF-1.4 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 53 >> stream x 휏nyA?(=2?&ꍕ>(ٙʤ aȊ1endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 6 0 obj << /Filter /Standard /Length 128 /O <2a2f0a1990192c60114730bdcd39f37828a53c89a340dd473c85299dc5258e1c> /P -4 /R 3 /U /V 2 >> endobj xref 0 7 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000398 00000 n 0000000497 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] /Encrypt 6 0 R >> startxref 704 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.5-ogen.check0000644000064100006410000000026213247541377020403 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/extra-header-lin-no-newline.pdf0000644000064100006410000000246613247541377021477 0ustar ejbejb%PDF-1.3 % 2 0 obj << /Linearized 1 /L 1334 /H [ 593 118 ] /O 5 /E 1109 /N 1 /T 1176 >> endobj %% Comment % No newline xref 2 7 0000000015 00000 n 0000000544 00000 n 0000000593 00000 n 0000000711 00000 n 0000000854 00000 n 0000000972 00000 n 0000001002 00000 n trailer << /Root 3 0 R /Size 9 /Prev 1168 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 0 %%EOF 3 0 obj << /Pages 1 0 R /Type /Catalog >> endobj 4 0 obj << /Filter /FlateDecode /S 36 /Length 41 >> stream xc```a`` d>8p1?N`Q endstream endobj 5 0 obj << /Contents 6 0 R /MediaBox [ 0 0 612 792 ] /Parent 1 0 R /Resources << /Font << /F1 8 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj 6 0 obj << /Length 48 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 7 0 obj [ /PDF /Text ] endobj 8 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 1 0 obj << /Count 1 /Kids [ 5 0 R ] /Type /Pages >> endobj xref 0 2 0000000000 65535 f 0000001109 00000 n trailer << /Size 2 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 240 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/append-page-content-damaged-check.out0000644000064100006410000000047213247541377022612 0ustar ejbejbWARNING: append-page-content-damaged.pdf: file is damaged WARNING: append-page-content-damaged.pdf: can't find startxref WARNING: append-page-content-damaged.pdf: Attempting to reconstruct cross-reference table checking append-page-content-damaged.pdf PDF Version: 1.3 File is not encrypted File is not linearized qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.12-ogen.c-check0000644000064100006410000000005013247541377020674 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/good20.qdf0000644000064100006410000004311613247541377015365 0ustar ejbejb%PDF-1.5 % %QDF-1.0 1 0 obj << /Type /ObjStm /Length 9257 /N 83 /First 709 >> stream 2 0 3 97 4 212 5 2305 6 2380 7 2455 8 2531 9 2608 10 2686 11 2764 12 2843 13 2922 14 3001 15 3080 16 3159 17 3238 18 3317 19 3396 20 3475 21 3554 22 3633 23 3712 24 3791 25 3870 26 3949 27 4028 28 4107 29 4186 30 4265 31 4344 32 4423 33 4502 34 4581 35 4660 36 4739 37 4818 38 4897 39 4976 40 5055 41 5134 42 5213 43 5292 44 5371 45 5450 46 5529 47 5608 48 5687 49 5766 50 5845 51 5924 52 6003 53 6082 54 6161 55 6240 56 6319 57 6398 58 6477 59 6556 60 6635 61 6714 62 6793 63 6872 64 6951 65 7030 66 7109 67 7188 68 7267 69 7346 70 7425 71 7504 72 7583 73 7662 74 7741 75 7820 76 7899 77 7978 78 8057 79 8136 80 8215 81 8294 82 8373 83 8452 84 8531 %% Object stream: object 2, index 0; original object ID: 1 << /Pages 3 0 R /Type /Catalog >> %% Object stream: object 3, index 1; original object ID: 2 << /Count 1 /Kids [ 4 0 R ] /Type /Pages >> %% Object stream: object 4, index 2; original object ID: 3 %% Page 1 << /Contents 85 0 R /MediaBox [ 0 0 612 792 ] /OtherStuff [ 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 35 0 R 36 0 R 37 0 R 38 0 R 39 0 R 40 0 R 41 0 R 42 0 R 43 0 R 44 0 R 45 0 R 46 0 R 47 0 R 48 0 R 49 0 R 50 0 R 51 0 R 52 0 R 53 0 R 54 0 R 55 0 R 56 0 R 57 0 R 58 0 R 59 0 R 60 0 R 61 0 R 62 0 R 63 0 R 64 0 R 65 0 R 66 0 R 67 0 R 68 0 R 69 0 R 70 0 R 71 0 R 72 0 R 73 0 R 74 0 R 75 0 R 76 0 R 77 0 R 78 0 R 79 0 R 80 0 R 81 0 R 82 0 R 83 0 R 84 0 R 90 0 R 91 0 R 92 0 R 93 0 R 94 0 R 95 0 R 96 0 R 97 0 R 98 0 R 99 0 R 100 0 R 101 0 R 102 0 R 103 0 R 104 0 R 105 0 R 106 0 R 107 0 R 108 0 R 109 0 R 110 0 R 111 0 R 112 0 R 113 0 R 114 0 R 115 0 R 116 0 R 117 0 R 118 0 R 119 0 R 120 0 R 121 0 R 122 0 R 123 0 R 124 0 R 125 0 R 126 0 R 127 0 R 128 0 R 129 0 R 130 0 R 131 0 R 132 0 R 133 0 R 134 0 R 135 0 R 136 0 R 137 0 R 138 0 R 139 0 R 140 0 R 141 0 R 142 0 R 143 0 R 144 0 R 145 0 R 146 0 R 147 0 R 148 0 R 149 0 R 150 0 R 151 0 R 152 0 R 153 0 R 154 0 R 155 0 R 156 0 R 157 0 R 158 0 R 159 0 R 160 0 R 161 0 R 162 0 R 163 0 R 164 0 R 165 0 R 166 0 R 167 0 R 168 0 R 169 0 R ] /Parent 3 0 R /Resources << /Font << /F1 89 0 R >> /ProcSet 88 0 R >> /Type /Page >> %% Object stream: object 5, index 3; original object ID: 7 [ /Object-7 ] %% Object stream: object 6, index 4; original object ID: 8 [ /Object-8 ] %% Object stream: object 7, index 5; original object ID: 9 [ /Object-9 ] %% Object stream: object 8, index 6; original object ID: 10 [ /Object-10 ] %% Object stream: object 9, index 7; original object ID: 11 [ /Object-11 ] %% Object stream: object 10, index 8; original object ID: 12 [ /Object-12 ] %% Object stream: object 11, index 9; original object ID: 13 [ /Object-13 ] %% Object stream: object 12, index 10; original object ID: 14 [ /Object-14 ] %% Object stream: object 13, index 11; original object ID: 15 [ /Object-15 ] %% Object stream: object 14, index 12; original object ID: 16 [ /Object-16 ] %% Object stream: object 15, index 13; original object ID: 17 [ /Object-17 ] %% Object stream: object 16, index 14; original object ID: 18 [ /Object-18 ] %% Object stream: object 17, index 15; original object ID: 19 [ /Object-19 ] %% Object stream: object 18, index 16; original object ID: 20 [ /Object-20 ] %% Object stream: object 19, index 17; original object ID: 21 [ /Object-21 ] %% Object stream: object 20, index 18; original object ID: 22 [ /Object-22 ] %% Object stream: object 21, index 19; original object ID: 23 [ /Object-23 ] %% Object stream: object 22, index 20; original object ID: 24 [ /Object-24 ] %% Object stream: object 23, index 21; original object ID: 25 [ /Object-25 ] %% Object stream: object 24, index 22; original object ID: 26 [ /Object-26 ] %% Object stream: object 25, index 23; original object ID: 27 [ /Object-27 ] %% Object stream: object 26, index 24; original object ID: 28 [ /Object-28 ] %% Object stream: object 27, index 25; original object ID: 29 [ /Object-29 ] %% Object stream: object 28, index 26; original object ID: 30 [ /Object-30 ] %% Object stream: object 29, index 27; original object ID: 31 [ /Object-31 ] %% Object stream: object 30, index 28; original object ID: 32 [ /Object-32 ] %% Object stream: object 31, index 29; original object ID: 33 [ /Object-33 ] %% Object stream: object 32, index 30; original object ID: 34 [ /Object-34 ] %% Object stream: object 33, index 31; original object ID: 35 [ /Object-35 ] %% Object stream: object 34, index 32; original object ID: 36 [ /Object-36 ] %% Object stream: object 35, index 33; original object ID: 37 [ /Object-37 ] %% Object stream: object 36, index 34; original object ID: 38 [ /Object-38 ] %% Object stream: object 37, index 35; original object ID: 39 [ /Object-39 ] %% Object stream: object 38, index 36; original object ID: 40 [ /Object-40 ] %% Object stream: object 39, index 37; original object ID: 41 [ /Object-41 ] %% Object stream: object 40, index 38; original object ID: 42 [ /Object-42 ] %% Object stream: object 41, index 39; original object ID: 43 [ /Object-43 ] %% Object stream: object 42, index 40; original object ID: 44 [ /Object-44 ] %% Object stream: object 43, index 41; original object ID: 45 [ /Object-45 ] %% Object stream: object 44, index 42; original object ID: 46 [ /Object-46 ] %% Object stream: object 45, index 43; original object ID: 47 [ /Object-47 ] %% Object stream: object 46, index 44; original object ID: 48 [ /Object-48 ] %% Object stream: object 47, index 45; original object ID: 49 [ /Object-49 ] %% Object stream: object 48, index 46; original object ID: 50 [ /Object-50 ] %% Object stream: object 49, index 47; original object ID: 51 [ /Object-51 ] %% Object stream: object 50, index 48; original object ID: 52 [ /Object-52 ] %% Object stream: object 51, index 49; original object ID: 53 [ /Object-53 ] %% Object stream: object 52, index 50; original object ID: 54 [ /Object-54 ] %% Object stream: object 53, index 51; original object ID: 55 [ /Object-55 ] %% Object stream: object 54, index 52; original object ID: 56 [ /Object-56 ] %% Object stream: object 55, index 53; original object ID: 57 [ /Object-57 ] %% Object stream: object 56, index 54; original object ID: 58 [ /Object-58 ] %% Object stream: object 57, index 55; original object ID: 59 [ /Object-59 ] %% Object stream: object 58, index 56; original object ID: 60 [ /Object-60 ] %% Object stream: object 59, index 57; original object ID: 61 [ /Object-61 ] %% Object stream: object 60, index 58; original object ID: 62 [ /Object-62 ] %% Object stream: object 61, index 59; original object ID: 63 [ /Object-63 ] %% Object stream: object 62, index 60; original object ID: 64 [ /Object-64 ] %% Object stream: object 63, index 61; original object ID: 65 [ /Object-65 ] %% Object stream: object 64, index 62; original object ID: 66 [ /Object-66 ] %% Object stream: object 65, index 63; original object ID: 67 [ /Object-67 ] %% Object stream: object 66, index 64; original object ID: 68 [ /Object-68 ] %% Object stream: object 67, index 65; original object ID: 69 [ /Object-69 ] %% Object stream: object 68, index 66; original object ID: 70 [ /Object-70 ] %% Object stream: object 69, index 67; original object ID: 71 [ /Object-71 ] %% Object stream: object 70, index 68; original object ID: 72 [ /Object-72 ] %% Object stream: object 71, index 69; original object ID: 73 [ /Object-73 ] %% Object stream: object 72, index 70; original object ID: 74 [ /Object-74 ] %% Object stream: object 73, index 71; original object ID: 75 [ /Object-75 ] %% Object stream: object 74, index 72; original object ID: 76 [ /Object-76 ] %% Object stream: object 75, index 73; original object ID: 77 [ /Object-77 ] %% Object stream: object 76, index 74; original object ID: 78 [ /Object-78 ] %% Object stream: object 77, index 75; original object ID: 79 [ /Object-79 ] %% Object stream: object 78, index 76; original object ID: 80 [ /Object-80 ] %% Object stream: object 79, index 77; original object ID: 81 [ /Object-81 ] %% Object stream: object 80, index 78; original object ID: 82 [ /Object-82 ] %% Object stream: object 81, index 79; original object ID: 83 [ /Object-83 ] %% Object stream: object 82, index 80; original object ID: 84 [ /Object-84 ] %% Object stream: object 83, index 81; original object ID: 85 [ /Object-85 ] %% Object stream: object 84, index 82; original object ID: 86 [ /Object-86 ] endstream endobj %% Contents for page 1 %% Original object ID: 4 0 85 0 obj << /Length 86 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 86 0 obj 44 endobj 87 0 obj << /Type /ObjStm /Length 7468 /N 82 /First 771 >> stream 88 0 89 79 90 242 91 320 92 398 93 476 94 554 95 632 96 710 97 788 98 867 99 946 100 1026 101 1106 102 1186 103 1267 104 1349 105 1431 106 1513 107 1595 108 1677 109 1759 110 1841 111 1923 112 2005 113 2087 114 2169 115 2251 116 2333 117 2415 118 2497 119 2579 120 2661 121 2743 122 2825 123 2907 124 2989 125 3071 126 3153 127 3235 128 3317 129 3399 130 3481 131 3563 132 3645 133 3727 134 3809 135 3891 136 3973 137 4055 138 4137 139 4219 140 4301 141 4383 142 4465 143 4547 144 4629 145 4711 146 4793 147 4875 148 4957 149 5039 150 5121 151 5203 152 5285 153 5367 154 5449 155 5531 156 5613 157 5695 158 5777 159 5859 160 5941 161 6023 162 6105 163 6187 164 6269 165 6351 166 6433 167 6515 168 6597 169 6679 %% Object stream: object 88, index 0; original object ID: 5 [ /PDF /Text ] %% Object stream: object 89, index 1; original object ID: 6 << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> %% Object stream: object 90, index 2; original object ID: 87 [ /Object-87 ] %% Object stream: object 91, index 3; original object ID: 88 [ /Object-88 ] %% Object stream: object 92, index 4; original object ID: 89 [ /Object-89 ] %% Object stream: object 93, index 5; original object ID: 90 [ /Object-90 ] %% Object stream: object 94, index 6; original object ID: 91 [ /Object-91 ] %% Object stream: object 95, index 7; original object ID: 92 [ /Object-92 ] %% Object stream: object 96, index 8; original object ID: 93 [ /Object-93 ] %% Object stream: object 97, index 9; original object ID: 94 [ /Object-94 ] %% Object stream: object 98, index 10; original object ID: 95 [ /Object-95 ] %% Object stream: object 99, index 11; original object ID: 96 [ /Object-96 ] %% Object stream: object 100, index 12; original object ID: 97 [ /Object-97 ] %% Object stream: object 101, index 13; original object ID: 98 [ /Object-98 ] %% Object stream: object 102, index 14; original object ID: 99 [ /Object-99 ] %% Object stream: object 103, index 15; original object ID: 100 [ /Object-100 ] %% Object stream: object 104, index 16; original object ID: 101 [ /Object-101 ] %% Object stream: object 105, index 17; original object ID: 102 [ /Object-102 ] %% Object stream: object 106, index 18; original object ID: 103 [ /Object-103 ] %% Object stream: object 107, index 19; original object ID: 104 [ /Object-104 ] %% Object stream: object 108, index 20; original object ID: 105 [ /Object-105 ] %% Object stream: object 109, index 21; original object ID: 106 [ /Object-106 ] %% Object stream: object 110, index 22; original object ID: 107 [ /Object-107 ] %% Object stream: object 111, index 23; original object ID: 108 [ /Object-108 ] %% Object stream: object 112, index 24; original object ID: 109 [ /Object-109 ] %% Object stream: object 113, index 25; original object ID: 110 [ /Object-110 ] %% Object stream: object 114, index 26; original object ID: 111 [ /Object-111 ] %% Object stream: object 115, index 27; original object ID: 112 [ /Object-112 ] %% Object stream: object 116, index 28; original object ID: 113 [ /Object-113 ] %% Object stream: object 117, index 29; original object ID: 114 [ /Object-114 ] %% Object stream: object 118, index 30; original object ID: 115 [ /Object-115 ] %% Object stream: object 119, index 31; original object ID: 116 [ /Object-116 ] %% Object stream: object 120, index 32; original object ID: 117 [ /Object-117 ] %% Object stream: object 121, index 33; original object ID: 118 [ /Object-118 ] %% Object stream: object 122, index 34; original object ID: 119 [ /Object-119 ] %% Object stream: object 123, index 35; original object ID: 120 [ /Object-120 ] %% Object stream: object 124, index 36; original object ID: 121 [ /Object-121 ] %% Object stream: object 125, index 37; original object ID: 122 [ /Object-122 ] %% Object stream: object 126, index 38; original object ID: 123 [ /Object-123 ] %% Object stream: object 127, index 39; original object ID: 124 [ /Object-124 ] %% Object stream: object 128, index 40; original object ID: 125 [ /Object-125 ] %% Object stream: object 129, index 41; original object ID: 126 [ /Object-126 ] %% Object stream: object 130, index 42; original object ID: 127 [ /Object-127 ] %% Object stream: object 131, index 43; original object ID: 128 [ /Object-128 ] %% Object stream: object 132, index 44; original object ID: 129 [ /Object-129 ] %% Object stream: object 133, index 45; original object ID: 130 [ /Object-130 ] %% Object stream: object 134, index 46; original object ID: 131 [ /Object-131 ] %% Object stream: object 135, index 47; original object ID: 132 [ /Object-132 ] %% Object stream: object 136, index 48; original object ID: 133 [ /Object-133 ] %% Object stream: object 137, index 49; original object ID: 134 [ /Object-134 ] %% Object stream: object 138, index 50; original object ID: 135 [ /Object-135 ] %% Object stream: object 139, index 51; original object ID: 136 [ /Object-136 ] %% Object stream: object 140, index 52; original object ID: 137 [ /Object-137 ] %% Object stream: object 141, index 53; original object ID: 138 [ /Object-138 ] %% Object stream: object 142, index 54; original object ID: 139 [ /Object-139 ] %% Object stream: object 143, index 55; original object ID: 140 [ /Object-140 ] %% Object stream: object 144, index 56; original object ID: 141 [ /Object-141 ] %% Object stream: object 145, index 57; original object ID: 142 [ /Object-142 ] %% Object stream: object 146, index 58; original object ID: 143 [ /Object-143 ] %% Object stream: object 147, index 59; original object ID: 144 [ /Object-144 ] %% Object stream: object 148, index 60; original object ID: 145 [ /Object-145 ] %% Object stream: object 149, index 61; original object ID: 146 [ /Object-146 ] %% Object stream: object 150, index 62; original object ID: 147 [ /Object-147 ] %% Object stream: object 151, index 63; original object ID: 148 [ /Object-148 ] %% Object stream: object 152, index 64; original object ID: 149 [ /Object-149 ] %% Object stream: object 153, index 65; original object ID: 150 [ /Object-150 ] %% Object stream: object 154, index 66; original object ID: 151 [ /Object-151 ] %% Object stream: object 155, index 67; original object ID: 152 [ /Object-152 ] %% Object stream: object 156, index 68; original object ID: 153 [ /Object-153 ] %% Object stream: object 157, index 69; original object ID: 154 [ /Object-154 ] %% Object stream: object 158, index 70; original object ID: 155 [ /Object-155 ] %% Object stream: object 159, index 71; original object ID: 156 [ /Object-156 ] %% Object stream: object 160, index 72; original object ID: 157 [ /Object-157 ] %% Object stream: object 161, index 73; original object ID: 158 [ /Object-158 ] %% Object stream: object 162, index 74; original object ID: 159 [ /Object-159 ] %% Object stream: object 163, index 75; original object ID: 160 [ /Object-160 ] %% Object stream: object 164, index 76; original object ID: 161 [ /Object-161 ] %% Object stream: object 165, index 77; original object ID: 162 [ /Object-162 ] %% Object stream: object 166, index 78; original object ID: 163 [ /Object-163 ] %% Object stream: object 167, index 79; original object ID: 164 [ /Object-164 ] %% Object stream: object 168, index 80; original object ID: 165 [ /Object-165 ] %% Object stream: object 169, index 81; original object ID: 166 [ /Object-166 ] endstream endobj 170 0 obj << /Type /XRef /Length 684 /W [ 1 2 1 ] /Root 2 0 R /Size 171 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> stream       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR$%4%HWWWWWWWWWW W W W W WWWWWWWWWWWWWWWWWWW W!W"W#W$W%W&W'W(W)W*W+W,W-W.W/W0W1W2W3W4W5W6W7W8W9W:W;W<W=W>W?W@WAWBWCWDWEWFWGWHWIWJWKWLWMWNWOWPWQB endstream endobj startxref 17104 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.1-ogen.check0000644000064100006410000000026213247541377020101 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/a-05-split-exp.zdf0000644000064100006410000000174513247541377016673 0ustar ejbejb%PDF-1.4 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 53 >> stream x 휏nyA?(=2?&ꍕ>(ٙ aȊ1endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 6 0 obj << /Filter /Standard /Length 128 /O <2a2f0a1990192c60114730bdcd39f37828a53c89a340dd473c85299dc5258e1c> /P -4 /R 3 /U /V 2 >> endobj xref 0 7 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000398 00000 n 0000000497 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] /Encrypt 6 0 R >> startxref 704 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/split-exp-02.Pdf0000644000064100006410000000136313247541377016374 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼T#M,. -endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 6 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000398 00000 n trailer << /Root 1 0 R /Size 6 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 497 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/tokens.pdf0000644000064100006410000002233613247541377015576 0ustar ejbejb%PDF-1.5 % %QDF-1.0 %comment 1 %comment 2 %comment 3 1 0 obj << /Type /ObjStm /Length 6020 /N 35 /First 323 >> stream 2 0 3 97 4 318 5 566 6 814 7 1062 8 1310 9 1558 10 1808 11 2058 12 2309 13 2560 14 2812 15 3064 16 3228 17 3309 18 3473 19 3554 20 3718 21 3799 22 3963 23 4044 24 4208 25 4289 26 4453 27 4534 28 4698 29 4779 30 4943 31 5024 32 5188 33 5269 34 5433 35 5514 36 5678 %% Object stream: object 2, index 0; original object ID: 2 << /Pages 3 0 R /Type /Catalog >> %% Object stream: object 3, index 1; original object ID: 3 << /Count 11 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R ] /Type /Pages >> %% Object stream: object 4, index 2; original object ID: 4 %% Page 1 << /Contents 37 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 15 0 R >> /ProcSet 16 0 R >> /Type /Page >> %% Object stream: object 5, index 3; original object ID: 5 %% Page 2 << /Contents 39 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 17 0 R >> /ProcSet 18 0 R >> /Type /Page >> %% Object stream: object 6, index 4; original object ID: 6 %% Page 3 << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 19 0 R >> /ProcSet 20 0 R >> /Type /Page >> %% Object stream: object 7, index 5; original object ID: 7 %% Page 4 << /Contents 43 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 21 0 R >> /ProcSet 22 0 R >> /Type /Page >> %% Object stream: object 8, index 6; original object ID: 8 %% Page 5 << /Contents 45 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 23 0 R >> /ProcSet 24 0 R >> /Type /Page >> %% Object stream: object 9, index 7; original object ID: 9 %% Page 6 << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 25 0 R >> /ProcSet 26 0 R >> /Type /Page >> %% Object stream: object 10, index 8; original object ID: 10 %% Page 7 << /Contents 49 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 27 0 R >> /ProcSet 28 0 R >> /Type /Page >> %% Object stream: object 11, index 9; original object ID: 11 %% Page 8 << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 29 0 R >> /ProcSet 30 0 R >> /Type /Page >> %% Object stream: object 12, index 10; original object ID: 12 %% Page 9 << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 31 0 R >> /ProcSet 32 0 R >> /Type /Page >> %% Object stream: object 13, index 11; original object ID: 13 %% Page 10 << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 33 0 R >> /ProcSet 34 0 R >> /Type /Page >> %% Object stream: object 14, index 12; original object ID: 14 %% Page 11 << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> %% Object stream: object 15, index 13; original object ID: 15 << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> %% Object stream: object 16, index 14; original object ID: 16 [ /PDF /Text ] %% Object stream: object 17, index 15; original object ID: 17 << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> %% Object stream: object 18, index 16; original object ID: 18 [ /PDF /Text ] %% Object stream: object 19, index 17; original object ID: 19 << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> %% Object stream: object 20, index 18; original object ID: 20 [ /PDF /Text ] %% Object stream: object 21, index 19; original object ID: 21 << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> %% Object stream: object 22, index 20; original object ID: 22 [ /PDF /Text ] %% Object stream: object 23, index 21; original object ID: 23 << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> %% Object stream: object 24, index 22; original object ID: 24 [ /PDF /Text ] %% Object stream: object 25, index 23; original object ID: 25 << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> %% Object stream: object 26, index 24; original object ID: 26 [ /PDF /Text ] %% Object stream: object 27, index 25; original object ID: 27 << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> %% Object stream: object 28, index 26; original object ID: 28 [ /PDF /Text ] %% Object stream: object 29, index 27; original object ID: 29 << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> %% Object stream: object 30, index 28; original object ID: 30 [ /PDF /Text ] %% Object stream: object 31, index 29; original object ID: 31 << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> %% Object stream: object 32, index 30; original object ID: 32 [ /PDF /Text ] %% Object stream: object 33, index 31; original object ID: 33 << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> %% Object stream: object 34, index 32; original object ID: 34 [ /PDF /Text ] %% Object stream: object 35, index 33; original object ID: 35 << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> %% Object stream: object 36, index 34; original object ID: 36 [ /PDF /Text ] endstream endobj %% Contents for page 1 %% Original object ID: 37 0 37 0 obj << /Length 38 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 38 0 obj 44 endobj %% Contents for page 2 %% Original object ID: 38 0 39 0 obj << /Length 40 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET BI /CS /G/W 66/H 47/BPC 8/F/Fl/DP<> ID xI P|C;U`7Z Ę}D_W->>^&u]"!*&E|Sy d-<B0B@N+<hlK/56L >0>Y!c\Y %Y8?&}j;3lpsHtQTt*hUw%)p"DiRjDYNUAvF& u#cW ߉WO EI BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 40 0 obj 399 endobj %% Contents for page 3 %% Original object ID: 39 0 41 0 obj << /Length 42 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato ET endstream endobj 42 0 obj 40 endobj %% Contents for page 4 %% Original object ID: 40 0 43 0 obj << /Length 44 0 R >> stream BT /F1 24 Tf (qu\ ack) (qu\ ack) (qu\ ack) 72 720 Td 3.14 3. .14 +3.14 +3. +.14 -3.14 -3. -.14 +16059 -16059 +. quack /name#oops /n#61me one true two false three null four !@#$^&{}*-_+= abc123def3.14true > stream BT /F#00x 24 Tf 72 720 Td (Ptat\000) Tj ET /ThisMustBeLast endstream endobj %QDF: ignore_newline 46 0 obj 67 endobj %% Contents for page 6 %% Original object ID: 42 0 47 0 obj << /Length 48 0 R >> stream ID /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 48 0 obj 44 endobj %% Contents for page 7 %% Original object ID: 43 0 49 0 obj << /Length 50 0 R >> stream /potato BI /CS /G/W 66/H 47/BPC 8/F/Fl/DP<> ID xI P|C;U`7Z Ę}D_W->>^&u]"!*&E|Sy d-<B0B@N+<hlK/56L >0>Y!c\Y %Y8?&}j;3lpsHtQTt*hUw%)p"DiRjDYNUAvF& u#cW ߉WO EI endstream endobj %QDF: ignore_newline 50 0 obj 318 endobj %% Contents for page 8 %% Original object ID: 44 0 51 0 obj << /Length 52 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 52 0 obj 44 endobj %% Contents for page 9 %% Original object ID: 45 0 53 0 obj << /Length 54 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 54 0 obj 44 endobj %% Contents for page 10 %% Original object ID: 46 0 55 0 obj << /Length 56 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 56 0 obj 44 endobj %% Contents for page 11 %% Original object ID: 47 0 57 0 obj << /Length 58 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 58 0 obj 44 endobj 59 0 obj << /Type /XRef /Length 240 /W [ 1 2 1 ] /Root 2 0 R /Size 60 /ID [<88048e17c961e094ffece98cb88c46d0>] >> stream <      !"N kF X !!L!!"^"# # endstream endobj startxref 8991 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/good17-not-recompressed.pdf0000644000064100006410000002167313247541377020665 0ustar ejbejb%PDF-1.5 % 1 0 obj << /Outlines 3 0 R /PageLabels 16 0 R /PageMode /UseOutlines /Pages 17 0 R /Type /Catalog >> endobj 2 0 obj << /Type /ObjStm /Length 467 /Filter /FlateDecode /N 10 /First 63 >> stream xj0r|t,Y!J`lek0K;c{N,˖+Ȗŀ!7) 5X@\9Rr9+&j>nHev^mF@y> stream xuPAN09jmRU9UKTzX"R =k!흝5 *2P\l6[7 w7mX*@J4;8q'{mNC_@+"\VU_'q;*|~?G3^{+Eg b/n|8D,j,܀J?#b6c9D(Я6qTue>]JJ5##uWy-:I6qo5endstream endobj 17 0 obj << /Count 30 /Kids [ 27 0 R 26 0 R 28 0 R 29 0 R 30 0 R 18 0 R 31 0 R 32 0 R 33 0 R 34 0 R 35 0 R 20 0 R 22 0 R 21 0 R 36 0 R 19 0 R 37 0 R 38 0 R 23 0 R 24 0 R 39 0 R 40 0 R 25 0 R 41 0 R 42 0 R 43 0 R 44 0 R 45 0 R 46 0 R 47 0 R ] /Type /Pages >> endobj 18 0 obj << /Contents 48 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 19 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 20 0 obj << /Contents 52 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 21 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 22 0 obj << /Contents 54 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 23 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 24 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 25 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 26 0 obj << /Contents 58 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 27 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 28 0 obj << /Contents 60 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 29 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 30 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 31 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 32 0 obj << /Contents 64 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 33 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 34 0 obj << /Contents 66 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 35 0 obj << /Contents 67 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 36 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 37 0 obj << /Contents 69 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 38 0 obj << /Contents 70 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 39 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 40 0 obj << /Contents 72 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 41 0 obj << /Contents 73 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 42 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 43 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 44 0 obj << /Contents 76 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 45 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 46 0 obj << /Contents 78 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 47 0 obj << /Contents 79 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources << /Font << /F1 49 0 R >> /ProcSet 50 0 R >> /Type /Page >> endobj 48 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 49 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 50 0 obj [ /PDF /Text ] endobj 51 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 52 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 53 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 54 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 55 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 56 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 57 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 58 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 59 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 0) Tj ET endstream endobj 60 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 61 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 62 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 63 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 64 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 65 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 66 0 obj << /Length 46 >> stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 67 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 68 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 69 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 70 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 71 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 72 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 73 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 74 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 75 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 76 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 77 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 78 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 79 0 obj << /Length 47 >> stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 80 0 obj << /Type /XRef /Length 94 /Filter /FlateDecode /DecodeParms << /Columns 4 /Predictor 12 >> /W [ 1 2 1 ] /Root 1 0 R /Size 81 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> stream xcb&F~&b`$ϴ;(dmY110rĦ )(,4.!AD"cq!\$ "%! endstream endobj startxref 8795 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/no-contents-none.pdf0000644000064100006410000000065713247541377017501 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /MediaBox [ 0 0 720 720 ] /Parent 2 0 R /Resources << >> /Type /Page >> endobj xref 0 4 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n trailer << /Root 1 0 R /Size 4 /ID [<52bba3c78160d0c6e851b59110e5d076><31415926535897932384626433832795>] >> startxref 213 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/good18.pdf0000644000064100006410000004021113247541377015364 0ustar ejbejb%PDF-1.5 % %QDF-1.0 1 0 obj << /PageLabels 107 0 R /Pages 2 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 95 0 R >> endobj 2 0 obj << /Count 30 /Kids [ 3 0 R 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R ] /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents 33 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 2 4 0 obj << /Contents 37 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 3 5 0 obj << /Contents 39 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 4 6 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 5 7 0 obj << /Contents 43 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 6 8 0 obj << /Contents 45 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 7 9 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 8 10 0 obj << /Contents 49 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 9 11 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 10 12 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 11 13 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 12 14 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 13 15 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 14 16 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 15 17 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 16 18 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 17 19 0 obj << /Contents 67 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 18 20 0 obj << /Contents 69 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 19 21 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 20 22 0 obj << /Contents 73 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 21 23 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 22 24 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 23 25 0 obj << /Contents 79 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 24 26 0 obj << /Contents 81 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 25 27 0 obj << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 26 28 0 obj << /Contents 85 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 27 29 0 obj << /Contents 87 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 28 30 0 obj << /Contents 89 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 29 31 0 obj << /Contents 91 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 30 32 0 obj << /Contents 93 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Contents for page 1 33 0 obj << /Length 34 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 0) Tj ET endstream endobj 34 0 obj 46 endobj 35 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 36 0 obj [ /PDF /Text ] endobj %% Contents for page 2 37 0 obj << /Length 38 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 38 0 obj 46 endobj %% Contents for page 3 39 0 obj << /Length 40 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 40 0 obj 46 endobj %% Contents for page 4 41 0 obj << /Length 42 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 42 0 obj 46 endobj %% Contents for page 5 43 0 obj << /Length 44 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 44 0 obj 46 endobj %% Contents for page 6 45 0 obj << /Length 46 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 46 0 obj 46 endobj %% Contents for page 7 47 0 obj << /Length 48 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 48 0 obj 46 endobj %% Contents for page 8 49 0 obj << /Length 50 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 50 0 obj 46 endobj %% Contents for page 9 51 0 obj << /Length 52 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 52 0 obj 46 endobj %% Contents for page 10 53 0 obj << /Length 54 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 54 0 obj 46 endobj %% Contents for page 11 55 0 obj << /Length 56 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 56 0 obj 47 endobj %% Contents for page 12 57 0 obj << /Length 58 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 58 0 obj 47 endobj %% Contents for page 13 59 0 obj << /Length 60 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 60 0 obj 47 endobj %% Contents for page 14 61 0 obj << /Length 62 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 62 0 obj 47 endobj %% Contents for page 15 63 0 obj << /Length 64 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 64 0 obj 47 endobj %% Contents for page 16 65 0 obj << /Length 66 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 66 0 obj 47 endobj %% Contents for page 17 67 0 obj << /Length 68 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 68 0 obj 47 endobj %% Contents for page 18 69 0 obj << /Length 70 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 70 0 obj 47 endobj %% Contents for page 19 71 0 obj << /Length 72 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 72 0 obj 47 endobj %% Contents for page 20 73 0 obj << /Length 74 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 74 0 obj 47 endobj %% Contents for page 21 75 0 obj << /Length 76 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 76 0 obj 47 endobj %% Contents for page 22 77 0 obj << /Length 78 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 78 0 obj 47 endobj %% Contents for page 23 79 0 obj << /Length 80 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 80 0 obj 47 endobj %% Contents for page 24 81 0 obj << /Length 82 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 82 0 obj 47 endobj %% Contents for page 25 83 0 obj << /Length 84 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 84 0 obj 47 endobj %% Contents for page 26 85 0 obj << /Length 86 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 86 0 obj 47 endobj %% Contents for page 27 87 0 obj << /Length 88 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 88 0 obj 47 endobj %% Contents for page 28 89 0 obj << /Length 90 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 90 0 obj 47 endobj %% Contents for page 29 91 0 obj << /Length 92 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 92 0 obj 47 endobj %% Contents for page 30 93 0 obj << /Length 94 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 94 0 obj 47 endobj xref 0 110 0000000095 65535 f 0000000025 00000 n 0000000145 00000 n 0000000541 00000 n 0000000746 00000 n 0000000951 00000 n 0000001156 00000 n 0000001361 00000 n 0000001566 00000 n 0000001771 00000 n 0000001976 00000 n 0000002182 00000 n 0000002389 00000 n 0000002596 00000 n 0000002803 00000 n 0000003010 00000 n 0000003217 00000 n 0000003424 00000 n 0000003631 00000 n 0000003838 00000 n 0000004045 00000 n 0000004252 00000 n 0000004459 00000 n 0000004666 00000 n 0000004873 00000 n 0000005080 00000 n 0000005287 00000 n 0000005494 00000 n 0000005701 00000 n 0000005908 00000 n 0000006115 00000 n 0000006322 00000 n 0000006529 00000 n 0000006748 00000 n 0000006851 00000 n 0000006871 00000 n 0000006990 00000 n 0000007049 00000 n 0000007152 00000 n 0000007195 00000 n 0000007298 00000 n 0000007341 00000 n 0000007444 00000 n 0000007487 00000 n 0000007590 00000 n 0000007633 00000 n 0000007736 00000 n 0000007779 00000 n 0000007882 00000 n 0000007925 00000 n 0000008028 00000 n 0000008071 00000 n 0000008174 00000 n 0000008218 00000 n 0000008321 00000 n 0000008365 00000 n 0000008469 00000 n 0000008513 00000 n 0000008617 00000 n 0000008661 00000 n 0000008765 00000 n 0000008809 00000 n 0000008913 00000 n 0000008957 00000 n 0000009061 00000 n 0000009105 00000 n 0000009209 00000 n 0000009253 00000 n 0000009357 00000 n 0000009401 00000 n 0000009505 00000 n 0000009549 00000 n 0000009653 00000 n 0000009697 00000 n 0000009801 00000 n 0000009845 00000 n 0000009949 00000 n 0000009993 00000 n 0000010097 00000 n 0000010141 00000 n 0000010245 00000 n 0000010289 00000 n 0000010393 00000 n 0000010437 00000 n 0000010541 00000 n 0000010585 00000 n 0000010689 00000 n 0000010733 00000 n 0000010837 00000 n 0000010881 00000 n 0000010985 00000 n 0000011029 00000 n 0000011133 00000 n 0000011177 00000 n 0000011281 00000 n 0000000096 65535 f 0000000097 65535 f 0000000098 65535 f 0000000099 65535 f 0000000100 65535 f 0000000101 65535 f 0000000102 65535 f 0000000103 65535 f 0000000104 65535 f 0000000105 65535 f 0000000106 65535 f 0000000107 65535 f 0000000108 65535 f 0000000109 65535 f 0000000000 65535 f trailer << /Root 1 0 R /Size 110 >> startxref 11301 %%EOF 108 0 obj << /Type /ObjStm /N 13 /First 107 /Length 2445 >> stream 95 0 96 74 97 259 98 393 99 556 100 898 101 1077 102 1275 103 1432 104 1589 105 1730 106 1887 107 2040 %95 << /Type /Outlines /First 96 0 R /Last 97 0 R /Count 6 >> %96 << /Type /Outline /Title (Iss 1 -> 5: /XYZ null null null) /Parent 95 0 R /Count 4 /Next 97 0 R /First 98 0 R /Last 99 0 R /Dest [ 8 0 R /XYZ null null null ] >> % 97 << /Type /Outline /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Parent 95 0 R /Prev 96 0 R /Dest [ 18 0 R /XYZ 66 756 3 ] >> % 98 << /Type /Outline /Title (Amanda 1.1 -> 11: /Fit) /Parent 96 0 R /Next 99 0 R /First 100 0 R /Last 101 0 R /Count -3 /Dest [ 14 0 R /Fit ] >> % 99 << /Type /Outline % /Title (Sandy (Sandy [Greek]) 1.2 -> 13: /FitH 792) /Title /Parent 96 0 R /Prev 98 0 R /First 105 0 R /Last 106 0 R /Count 2 /Dest [ 16 0 R /FitH 792 ] >> % 100 << /Type /Outline /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Parent 98 0 R /Next 101 0 R /First 102 0 R /Last 103 0 R /Count -2 /Dest [ 15 0 R /FitV 100 ] >> % 101 << /Type /Outline /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Parent 98 0 R /Prev 100 0 R /First 104 0 R /Last 104 0 R /Count 1 /Dest [ 15 0 R /XYZ null null null ] >> % 102 << /Type /Outline /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Parent 100 0 R /Next 103 0 R /Dest [ 21 0 R /XYZ null null null ] >> % 103 << /Type /Outline /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Parent 100 0 R /Prev 102 0 R /Dest [ 22 0 R /XYZ null null null ] >> % 104 << /Type /Outline /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Parent 101 0 R /Dest [ 25 0 R /XYZ null null null ] >> % 105 << /Type /Outline /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Parent 99 0 R /Next 106 0 R /Dest [ 4 0 R /FitR 66 714 180 770 ] >> % 106 << /Type /Outline /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Parent 99 0 R /Prev 105 0 R /Dest [ 3 0 R /XYZ null null null ] >> % 107 << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> endstream endobj 109 0 obj << /Type /XRef /Size 110 /Index [0 110] /W [1 2 1] /Length 110 /Root 1 0 R /Filter /FlateDecode /DecodeParms << /Columns 4 /Predictor 12 >> >> stream xcb&FI& bX$s <`8%B4mAb B-abpY"IQ. b1fX $1A0^q%1 endstream endobj xref 0 0 trailer << /Size 110 /Root 1 0 R /Prev 11301 /XRefStm 16113 >> startxref 16418 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/c-check-clear-in.pdf0000644000064100006410000000137313247541377017256 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/encrypted-with-images.3-ogen.check0000644000064100006410000000026213247541377022071 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/good5.pdf0000644000064100006410000000146313247541377015306 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 7 0 obj true endobj xref 0 8 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n 0000000556 00000 n trailer << /Size 8 /Root 1 0 R /QTest 7 0 R >> startxref 577 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/p1-b.pdf0000644000064100006410000000166213247541377015031 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj %% Contents for page 1 4 0 obj << /Length 5 0 R >> stream BT /F1 24 Tf 72 720 Td (B) Tj ET endstream endobj 5 0 obj 39 endobj 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 7 0 obj [ /PDF /Text ] endobj xref 0 8 0000000000 65535 f 0000000025 00000 n 0000000079 00000 n 0000000161 00000 n 0000000376 00000 n 0000000470 00000 n 0000000489 00000 n 0000000607 00000 n trailer << /Root 1 0 R /Size 8 /ID [<36b07232d7657658c548006151d4c57c><36b07232d7657658c548006151d4c57c>] >> startxref 642 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf.test0000644000064100006410000031566413247541377014512 0ustar ejbejb#!/usr/bin/env perl require 5.008; BEGIN { $^W = 1; } use strict; use Cwd; use Digest::MD5; use File::Basename; use File::Copy; use File::Spec; chdir("qpdf") or die "chdir testdir failed: $!\n"; require TestDriver; cleanup(); my $devNull = File::Spec->devnull(); my $td = new TestDriver('qpdf'); my $compare_images = 1; if ((exists $ENV{'QPDF_SKIP_TEST_COMPARE_IMAGES'}) && ($ENV{'QPDF_SKIP_TEST_COMPARE_IMAGES'} eq '1')) { $compare_images = 0; } my $large_file_test_path = $ENV{'QPDF_LARGE_FILE_TEST_PATH'} || undef; if (defined($large_file_test_path)) { $large_file_test_path = File::Spec->rel2abs($large_file_test_path); $large_file_test_path =~ s!\\!/!g; } my $have_acroread = 0; if ($compare_images) { # check for working acroread if (system("acroread -toPostScript -pairs good1.pdf a.ps" . " >$devNull 2>&1") == 0) { $have_acroread = 1; } } # These variables are used to store the total number of tests in the # test suite. NOTE: qtest's requirement to indicate the number of # tests serves as a check that the test suite is operating properly. # Do not calculate these values as a side effect of running the tests. # That defeats the purpose. However, since this test suite consists # of several separate series of tests, many of which iterate over # static lists of things, we calculate the numbers as we go in terms # of static values. # This should be set to the number of times we called compare_pdfs. # This has to be kept separate because the number of test cases # compare_pdfs generates depends on the value of $compare_images. my $n_compare_pdfs = 0; # This should be set to the number of times we call acroread. my $n_acroread = 0; # Each section of tests should increment this number by the number of # tests they generate excluding calls to acroread or compare_pdfs, # which are tracked separately by $n_compare_pdfs and $n_acroread. my $n_tests = 0; # Call show_ntests after each block of test cases. In show_ntests, # you can turn on printing of the expected number of test cases. This # is useful for tracking down problems in the number of test cases. show_ntests(); # ---------- $n_compare_pdfs += 5; # Check compare_pdfs to make sure that it works properly. Each call # to compare_pdfs is worth three test cases. compare_pdfs("p1-a-p2-b.pdf", "p1-a-p2-b.pdf"); compare_pdfs("p1-a.pdf", "p1-a.pdf"); compare_pdfs("p1-a.pdf", "p1-b.pdf", 1); compare_pdfs("p1-a.pdf", "p1-a-p2-b.pdf", 1); compare_pdfs("p1-a-p2-a.pdf", "p1-a-p2-b.pdf", 1); flush_tiff_cache(); show_ntests(); # ---------- $td->notify("--- PDF Doc Encoding ---"); $n_tests += 1; $td->runtest("PDF doc encoding to Unicode", {$td->COMMAND => "test_pdf_doc_encoding pdf-doc-to-utf8.in"}, {$td->FILE => "pdf-doc-to-utf8.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); show_ntests(); # ---------- $td->notify("--- Stream Replacement Tests ---"); $n_tests += 8; $td->runtest("replace stream data", {$td->COMMAND => "test_driver 7 qstream.pdf"}, {$td->STRING => "test 7 done\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "replaced-stream-data.pdf"}); $td->runtest("replace stream data compressed", {$td->COMMAND => "test_driver 8 qstream.pdf"}, {$td->FILE => "test8.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "replaced-stream-data-flate.pdf"}); $td->runtest("new streams", {$td->COMMAND => "test_driver 9 minimal.pdf"}, {$td->FILE => "test9.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("new stream", {$td->FILE => "a.pdf"}, {$td->FILE => "new-streams.pdf"}); $td->runtest("add page contents", {$td->COMMAND => "test_driver 10 minimal.pdf"}, {$td->STRING => "test 10 done\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("new stream", {$td->FILE => "a.pdf"}, {$td->FILE => "add-contents.pdf"}); show_ntests(); # ---------- $td->notify("--- Extensions Dictionary Tests ---"); my @ext_inputs = ('minimal.pdf', 'extensions-adbe.pdf', 'extensions-other.pdf', 'extensions-adbe-other.pdf'); my @new_versions = ('1.3', '1.6', '1.7.1', '1.7.2', '1.7.3', '1.8', '1.8.0', '1.8.2', '1.8.5'); $n_tests += (4 * @new_versions + 3) * @ext_inputs; foreach my $input (@ext_inputs) { my $base = $input; $base =~ s/\.pdf$//; if ($base eq 'minimal') { $base = 'extensions-none'; } foreach my $version (@new_versions) { foreach my $op (qw(min force)) { $td->runtest("$input: $op version to $version", {$td->COMMAND => "qpdf --static-id" . " --$op-version=$version $input a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check version information ($op $version)", {$td->COMMAND => "test_driver 34 a.pdf"}, {$td->FILE => "$base-$op-$version.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); if (($op eq 'force') && ($version eq '1.8.5')) { # Look at the actual file for a few cases to make sure # qdf and non-qdf output are okay $td->runtest("check file", {$td->FILE => "a.pdf"}, {$td->FILE => "$base-$op-$version.pdf"}); $td->runtest("$input: $op version to $version", {$td->COMMAND => "qpdf --qdf --static-id" . " --$op-version=$version $input a.qdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check file", {$td->FILE => "a.qdf"}, {$td->FILE => "$base-$op-$version.qdf"}); } } } } show_ntests(); # ---------- $td->notify("--- Page API Tests ---"); $n_tests += 9; $td->runtest("basic page API", {$td->COMMAND => "test_driver 15 page_api_1.pdf"}, {$td->STRING => "test 15 done\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "page_api_1-out.pdf"}); $td->runtest("manual page manipulation", {$td->COMMAND => "test_driver 16 page_api_1.pdf"}, {$td->STRING => "test 16 done\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "page_api_1-out2.pdf"}); $td->runtest("duplicate page", {$td->COMMAND => "test_driver 17 page_api_2.pdf"}, {$td->FILE => "page_api_2.out", $td->EXIT_STATUS => 2}, $td->NORMALIZE_NEWLINES); $td->runtest("delete and re-add a page", {$td->COMMAND => "test_driver 18 page_api_1.pdf"}, {$td->STRING => "test 18 done\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "page_api_1-out3.pdf"}); $td->runtest("duplicate page", {$td->COMMAND => "test_driver 19 page_api_1.pdf"}, {$td->FILE => "page_api_1.out", $td->EXIT_STATUS => 2}, $td->NORMALIZE_NEWLINES); $td->runtest("remove page we don't have", {$td->COMMAND => "test_driver 22 page_api_1.pdf"}, {$td->FILE => "page_api_1.out2", $td->EXIT_STATUS => 2}, $td->NORMALIZE_NEWLINES); show_ntests(); # ---------- $td->notify("--- Files for specific bugs ---"); # The number is the github issue number in which the bug was reported. my @bug_tests = ( ["51", "resolve loop", 3], ["99", "object 0", 2], ["99b", "object 0", 2], ["100", "xref reconstruction loop", 2], ["101", "resolve for exception text", 3], ["117", "other infinite loop", 2], ["118", "other infinite loop", 2], ["119", "other infinite loop", 3], ["120", "other infinite loop", 3], ["106", "zlib data error", 3], ["141a", "/W entry size 0", 2], ["141b", "/W entry size 0", 2], ["143", "self-referential ostream", 3], ["146", "very deeply nested array", 2], ["147", "previously caused memory error", 2], ["148", "free memory on bad flate", 2], ["149", "xref prev pointer loop", 3], ["150", "integer overflow", 2], ); $n_tests += scalar(@bug_tests); foreach my $d (@bug_tests) { my ($n, $description, $exit_status) = @$d; $td->runtest($description, {$td->COMMAND => "qpdf issue-$n.pdf a.pdf"}, {$td->FILE => "issue-$n.out", $td->EXIT_STATUS => $exit_status}, $td->NORMALIZE_NEWLINES); } show_ntests(); # ---------- $td->notify("--- Library version ---"); $n_tests += 3; $td->runtest("qpdf version", {$td->COMMAND => "qpdf --version"}, {$td->REGEXP => "qpdf version \\S+\n.*", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("qpdf copyright contains version too", {$td->COMMAND => "qpdf --copyright"}, {$td->REGEXP => "(?s)qpdf version \\S+\n.*Apache.*", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("C API: qpdf version", {$td->COMMAND => "qpdf-ctest --version"}, {$td->REGEXP => "qpdf-ctest version \\S+\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); show_ntests(); # ---------- $td->notify("--- Linearize pass1 file ---"); $n_tests += 3; $td->runtest("linearize pass 1 file", {$td->COMMAND => "qpdf --linearize --static-id" . " --linearize-pass1=b.pdf minimal.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "minimal-linearized.pdf"}); $td->runtest("check pass1 file", {$td->FILE => "b.pdf"}, {$td->FILE => "minimal-linearize-pass1.pdf"}); show_ntests(); # ---------- $td->notify("--- Tokenizer ---"); $n_tests += 4; $td->runtest("tokenizer with no ignorable", {$td->COMMAND => "test_tokenizer -no-ignorable tokens.pdf"}, {$td->FILE => "tokens-no-ignorable.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("tokenizer", {$td->COMMAND => "test_tokenizer tokens.pdf"}, {$td->FILE => "tokens.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("tokenizer with max_len", {$td->COMMAND => "test_tokenizer -maxlen 50 tokens.pdf"}, {$td->FILE => "tokens-maxlen.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("ignore bad token", {$td->COMMAND => "qpdf --show-xref bad-token-startxref.pdf"}, {$td->FILE => "bad-token-startxref.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); show_ntests(); # ---------- $td->notify("--- Numbers and strings ---"); $n_tests += 3; foreach (my $i = 1; $i <= 3; ++$i) { $td->runtest("numbers and strings", {$td->COMMAND => "test_driver 5 numeric-and-string-$i.pdf"}, {$td->FILE => "numeric-and-string-$i.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); } show_ntests(); # ---------- $td->notify("--- Stream data ---"); $n_tests += 1; $td->runtest("get stream data", {$td->COMMAND => "test_driver 11 stream-data.pdf"}, {$td->FILE => "test11.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); show_ntests(); # ---------- $td->notify("--- Decode parameter problems ---"); $n_tests += 4; # Make sure we ignore decode parameters that we don't understand $td->runtest("unknown decode parameters", {$td->COMMAND => "qpdf --check fax-decode-parms.pdf"}, {$td->FILE => "fax-decode-parms.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("ignore broken decode parms with no filters", {$td->COMMAND => "qpdf --check broken-decode-parms-no-filter.pdf"}, {$td->FILE => "broken-decode-parms-no-filter.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("stream with indirect decode parms", {$td->COMMAND => "qpdf --static-id indirect-decode-parms.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check file", {$td->FILE => "a.pdf"}, {$td->FILE => "indirect-decode-parms-out.pdf"}); show_ntests(); # ---------- $td->notify("--- Cross reference streams ---"); $n_tests += 3; # Handle xref stream with more entries than reported (bug 2872265) $td->runtest("xref with short size", {$td->COMMAND => "qpdf --show-xref xref-with-short-size.pdf"}, {$td->FILE => "xref-with-short-size.out", $td->EXIT_STATUS => 3}, $td->NORMALIZE_NEWLINES); $td->runtest("recover xref with short size", {$td->COMMAND => "qpdf xref-with-short-size.pdf a.pdf"}, {$td->FILE => "xref-with-short-size-recover.out", $td->EXIT_STATUS => 3}, $td->NORMALIZE_NEWLINES); $td->runtest("show new xref stream", {$td->COMMAND => "qpdf --show-xref a.pdf"}, {$td->FILE => "xref-with-short-size-new.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); show_ntests(); # ---------- $td->notify("--- Multiple levels of indirection ---"); $n_tests += 2; # Handle file with object stream containing an unreferenced object # that in turn contains an indirect scalar (bug 2974522). $td->runtest("unreferenced indirect scalar", {$td->COMMAND => "qpdf --qdf --static-id --object-streams=preserve" . " unreferenced-indirect-scalar.pdf a.qdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "a.qdf"}, {$td->FILE => "unreferenced-indirect-scalar.out"}); show_ntests(); # ---------- $td->notify("--- ID and Encryption Parameter Issues ---"); $n_tests += 12; # Encrypt files whose /ID strings are other than 32 bytes long (bug # 2991412). Also linearize these files, which was reported in a # separate bug by email. foreach my $file (qw(short-id long-id)) { $td->runtest("encrypt $file.pdf", {$td->COMMAND => "qpdf --encrypt '' pass 40 -- $file.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check $file.pdf", {$td->COMMAND => "qpdf --check --show-encryption-key a.pdf"}, {$td->FILE => "$file-check.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("linearize $file.pdf", {$td->COMMAND => "qpdf --deterministic-id --linearize $file.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "$file-linearized.pdf"}); $td->runtest("check $file.pdf", {$td->COMMAND => "qpdf --check a.pdf"}, {$td->FILE => "$file-linearized-check.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); } # A user provided a file that was missing /ID in its trailer even # though it is encrypted and also has a space instead of a newline # after its xref keyword. This file has those same properties. $td->runtest("check broken file", {$td->COMMAND => "qpdf --check invalid-id-xref.pdf"}, {$td->FILE => "invalid-id-xref.out", $td->EXIT_STATUS => 3}, $td->NORMALIZE_NEWLINES); # A file was emailed privately with issue 96. short-O-U.pdf was # created by copying encryption parameters from that file. It exhibits # the same behavior as the original file. $td->runtest("short /O or /U", {$td->COMMAND => "qpdf --password=19723102477 --check short-O-U.pdf"}, {$td->FILE => "short-O-U.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); show_ntests(); # ---------- $td->notify("--- Min/force version ---"); $n_tests += 7; # Min/Force version $td->runtest("set min version", {$td->COMMAND => "qpdf --verbose --min-version=1.6 good1.pdf a.pdf"}, {$td->STRING => "qpdf: wrote file a.pdf\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check version", {$td->COMMAND => "qpdf --check a.pdf"}, {$td->FILE => "min-version.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("force version", {$td->COMMAND => "qpdf --force-version=1.4 a.pdf b.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check version", {$td->COMMAND => "qpdf --check b.pdf"}, {$td->FILE => "forced-version.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); unlink "a.pdf", "b.pdf" or die; $td->runtest("C API: min/force versions", {$td->COMMAND => "qpdf-ctest 14 object-stream.pdf '' a.pdf b.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("C check version 1", {$td->COMMAND => "qpdf-ctest 1 a.pdf '' ''"}, {$td->FILE => "c-min-version.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("C check version 2", {$td->COMMAND => "qpdf --check b.pdf"}, {$td->FILE => "forced-version.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); show_ntests(); # ---------- $td->notify("--- Filter abbreviations ---"); $n_tests += 2; # Stream filter abbreviations from table H.1 $td->runtest("stream filter abbreviations", {$td->COMMAND => "qpdf --static-id filter-abbreviation.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "filter-abbreviation.out"}); show_ntests(); # ---------- $td->notify("--- Invalid objects ---"); $n_tests += 2; $td->runtest("empty object", {$td->COMMAND => "qpdf -show-object=7,0 empty-object.pdf"}, {$td->FILE => "empty-object.out", $td->EXIT_STATUS => 3}, $td->NORMALIZE_NEWLINES); $td->runtest("object with zero offset", {$td->COMMAND => "qpdf --check zero-offset.pdf"}, {$td->FILE => "zero-offset.out", $td->EXIT_STATUS => 3}, $td->NORMALIZE_NEWLINES); show_ntests(); # ---------- $td->notify("--- Error/output rediction ---"); $n_tests += 2; $td->runtest("error/output redirection to null", {$td->COMMAND => "test_driver 12 linearized-and-warnings.pdf"}, {$td->FILE => "linearized-and-warnings-1.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("error/output redirection to strings", {$td->COMMAND => "test_driver 13 linearized-and-warnings.pdf"}, {$td->FILE => "linearized-and-warnings-2.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); show_ntests(); # ---------- $td->notify("--- Line terminators for stream ---"); $n_tests += 2; $td->runtest("odd terminators for stream keyword", {$td->COMMAND => "qpdf --qdf --static-id" . " stream-line-enders.pdf a.qdf"}, {$td->FILE => "stream-line-enders.out", $td->EXIT_STATUS => 3}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "a.qdf"}, {$td->FILE => "stream-line-enders.qdf"}); show_ntests(); # ---------- $td->notify("--- Swap and replace ---"); $n_tests += 3; $td->runtest("swap and replace", {$td->COMMAND => "test_driver 14 test14-in.pdf"}, {$td->FILE => "test14.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "test14-out.pdf"}); # Most of the test suite uses static or deterministic ID. This test # case exercises regular ID generation. Test 14 also exercises writing # to memory without static ID. $td->runtest("check non-static ID version", {$td->COMMAND => "sh ./diff-ignore-ID-version a.pdf b.pdf"}, {$td->STRING => "okay\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); show_ntests(); # ---------- $td->notify("--- Key functions, C API ---"); $n_tests += 4; $td->runtest("C API info key functions", {$td->COMMAND => "qpdf-ctest 16 minimal.pdf '' a.pdf"}, {$td->FILE => "c-info1.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "c-info-out.pdf"}); unlink "a.pdf" or die; $td->runtest("C API info key functions", {$td->COMMAND => "qpdf-ctest 16 c-info2-in.pdf '' a.pdf"}, {$td->FILE => "c-info2.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "c-info-out.pdf"}); unlink "a.pdf" or die; show_ntests(); # ---------- $td->notify("--- Object copying ---"); $n_tests += 7; $td->runtest("shallow copy an array", {$td->COMMAND => "test_driver 20 shallow_array.pdf"}, {$td->STRING => "test 20 done\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "shallow_array-out.pdf"}); $td->runtest("shallow copy a stream", {$td->COMMAND => "test_driver 21 shallow_array.pdf"}, {$td->FILE => "shallow_stream.out", $td->EXIT_STATUS => 2}, $td->NORMALIZE_NEWLINES); $td->runtest("warn for unknown key in Pages", {$td->COMMAND => "test_driver 23 lin-special.pdf"}, {$td->FILE => "pages-warning.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("reserved objects", {$td->COMMAND => "test_driver 24 minimal.pdf"}, {$td->FILE => "reserved-objects.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "reserved-objects.pdf"}); $td->runtest("detect foreign object in write", {$td->COMMAND => "test_driver 29" . " copy-foreign-objects-in.pdf minimal.pdf"}, {$td->FILE => "foreign-in-write.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); show_ntests(); # ---------- $td->notify("--- Parsing ---"); $n_tests += 17; $td->runtest("parse objects from string", {$td->COMMAND => "test_driver 31 minimal.pdf"}, # file not used {$td->FILE => "parse-object.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("EOF terminating literal tokens", {$td->COMMAND => "qpdf --check eof-terminates-literal.pdf"}, {$td->FILE => "eof-terminates-literal.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("EOF reading token", {$td->COMMAND => "qpdf --check eof-reading-token.pdf"}, {$td->FILE => "eof-reading-token.out", $td->EXIT_STATUS => 3}, $td->NORMALIZE_NEWLINES); $td->runtest("extra header text", {$td->COMMAND => "test_driver 32 minimal.pdf"}, {$td->FILE => "test-32.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "extra-header-no-newline.pdf"}); $td->runtest("check output", {$td->FILE => "b.pdf"}, {$td->FILE => "extra-header-lin-no-newline.pdf"}); $td->runtest("check output", {$td->FILE => "c.pdf"}, {$td->FILE => "extra-header-newline.pdf"}); $td->runtest("check output", {$td->FILE => "d.pdf"}, {$td->FILE => "extra-header-lin-newline.pdf"}); # leading-junk also has a space instead of a newline after xref $td->runtest("check file with leading junk", {$td->COMMAND => "qpdf --check leading-junk.pdf"}, {$td->FILE => "leading-junk.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("EOF inside inline image", {$td->COMMAND => "test_driver 37 eof-in-inline-image.pdf"}, {$td->FILE => "eof-in-inline-image.out", $td->EXIT_STATUS => 2}, $td->NORMALIZE_NEWLINES); $td->runtest("tokenize content streams", {$td->COMMAND => "test_driver 37 tokenize-content-streams.pdf"}, {$td->FILE => "tokenize-content-streams.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("terminate parsing", {$td->COMMAND => "test_driver 37 terminate-parsing.pdf"}, {$td->FILE => "terminate-parsing.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("content stream errors", {$td->COMMAND => "qpdf --check content-stream-errors.pdf"}, {$td->FILE => "content-stream-errors.out", $td->EXIT_STATUS => 2}, $td->NORMALIZE_NEWLINES); $td->runtest("ensure arguments to R are direct", {$td->COMMAND => "qpdf --check indirect-r-arg.pdf"}, {$td->FILE => "indirect-r-arg.out", $td->EXIT_STATUS => 3}, $td->NORMALIZE_NEWLINES); $td->runtest("no trailing space in xref table", {$td->COMMAND => "qpdf --check no-space-in-xref.pdf"}, {$td->FILE => "no-space-in-xref.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); # An array is split across multiple content streams starting object # 42. This was reported in github issue 73. The file is modified from # that example. $td->runtest("parse split content stream", {$td->COMMAND => "qpdf --check split-content-stream.pdf"}, {$td->FILE => "split-content-stream.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("split content stream errors", {$td->COMMAND => "qpdf --check split-content-stream-errors.pdf"}, {$td->FILE => "split-content-stream-errors.out", $td->EXIT_STATUS => 3}, $td->NORMALIZE_NEWLINES); show_ntests(); # ---------- $td->notify("--- Custom Pipeline ---"); $n_tests += 2; $td->runtest("output to custom pipeline", {$td->COMMAND => "test_driver 33 minimal.pdf"}, {$td->STRING => "test 33 done\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "custom-pipeline.pdf"}); show_ntests(); # ---------- $td->notify("--- Object stream cases ---"); $n_tests += 3; # The file override-compressed-object.pdf contains an object stream # with four strings in it. The file is then appended. The appended # section overrides one of the four strings with a string in another # object stream and another one in an uncompressed object. The other # two strings are left alone. The test case exercises that all four # objects have the correct value. $td->runtest("overridden compressed objects", {$td->COMMAND => "test_driver 38 override-compressed-object.pdf"}, {$td->FILE => "override-compressed-object.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("generate object streams for gen > 0", {$td->COMMAND => "qpdf --qdf --static-id" . " --object-streams=generate gen1.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check file", {$td->FILE => "a.pdf"}, {$td->FILE => "gen1.qdf"}); show_ntests(); # ---------- $td->notify("--- Bound checks ---"); $n_tests += 3; $td->runtest("bounds check linearization data 1", {$td->COMMAND => "qpdf --check linearization-bounds-1.pdf"}, {$td->FILE => "linearization-bounds-1.out", $td->EXIT_STATUS => 2}, $td->NORMALIZE_NEWLINES); $td->runtest("bounds check linearization data 2", {$td->COMMAND => "qpdf --check linearization-bounds-2.pdf"}, {$td->FILE => "linearization-bounds-2.out", $td->EXIT_STATUS => 2}, $td->NORMALIZE_NEWLINES); # Throws logic error, not bad_alloc $td->runtest("sanity check array size", {$td->COMMAND => "qpdf --check linearization-large-vector-alloc.pdf"}, {$td->FILE => "linearization-large-vector-alloc.out", $td->EXIT_STATUS => 2}, $td->NORMALIZE_NEWLINES); show_ntests(); # ---------- $td->notify("--- Page errors ---"); $n_tests += 3; $td->runtest("handle page no with contents", {$td->COMMAND => "qpdf --show-pages page-no-content.pdf"}, {$td->FILE => "page-no-content.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("no type key for page nodes", {$td->COMMAND => "qpdf --check no-pages-types.pdf"}, {$td->FILE => "no-pages-types.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("detect loops in pages structure", {$td->COMMAND => "qpdf --check pages-loop.pdf"}, {$td->FILE => "pages-loop.out", $td->EXIT_STATUS => 2}, $td->NORMALIZE_NEWLINES); show_ntests(); # ---------- $td->notify("--- Xref ---"); $n_tests += 5; # Handle file with invalid xref table and object 0 as a regular object # (bug 3159950). $td->runtest("check obj0.pdf", {$td->COMMAND => "qpdf --check obj0.pdf"}, {$td->FILE => "obj0-check.out", $td->EXIT_STATUS => 3}, $td->NORMALIZE_NEWLINES); # Demonstrate show-xref after check and not after check to illustrate # that it can dump the real xref or the recovered xref. $td->runtest("dump bad xref", {$td->COMMAND => "qpdf --show-xref bad-xref-entry.pdf"}, {$td->FILE => "bad-xref-entry.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); # Test @file here too. open(F, ">args") or die; print F "--check\n"; print F "--show-xref\n"; close(F); $td->runtest("dump corrected bad xref", {$td->COMMAND => "qpdf \@args bad-xref-entry.pdf"}, {$td->FILE => "bad-xref-entry-corrected.out", $td->EXIT_STATUS => 3}, $td->NORMALIZE_NEWLINES); unlink "args"; $td->runtest("combine show and --pages", {$td->COMMAND => "qpdf --empty --pages minimal.pdf -- --show-pages"}, {$td->FILE => "show-pages-pages.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("show number of pages", {$td->COMMAND => "qpdf --show-npages 20-pages.pdf --password=user"}, {$td->STRING => "20\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); show_ntests(); # ---------- $td->notify("--- Overwrite self ---"); $n_tests += 1; $td->runtest("don't overwrite self", {$td->COMMAND => "(echo a.pdf; echo a.pdf) | qpdf \@-"}, {$td->REGEXP => "input file and output file are the same.*", $td->EXIT_STATUS => 2}); show_ntests(); # ---------- $td->notify("--- Type checks ---"); $n_tests += 4; # Whenever object-types.pdf is edited, object-types-os.pdf should be # regenerated. $td->runtest("ensure object-types-os is up-to-date", {$td->COMMAND => "qpdf" . " --object-streams=generate" . " --deterministic-id" . " --stream-data=uncompress" . " object-types.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check file", {$td->FILE => "a.pdf"}, {$td->FILE => "object-types-os.pdf"}); $td->runtest("type checks", {$td->COMMAND => "test_driver 42 object-types.pdf"}, {$td->FILE => "object-types.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("type checks with object streams", {$td->COMMAND => "test_driver 42 object-types-os.pdf"}, {$td->FILE => "object-types-os.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); # ---------- $td->notify("--- Coalesce contents ---"); $n_tests += 6; $td->runtest("qdf with normalize warnings", {$td->COMMAND => "qpdf --qdf --static-id coalesce.pdf a.pdf"}, {$td->FILE => "normalize-warnings.out", $td->EXIT_STATUS => 3}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "coalesce.qdf"}); $td->runtest("coalesce contents with qdf", {$td->COMMAND => "qpdf --qdf --static-id" . " --coalesce-contents coalesce.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "coalesce-out.qdf"}); $td->runtest("coalesce contents without qdf", {$td->COMMAND => "qpdf --static-id" . " --coalesce-contents coalesce.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "coalesce-out.pdf"}); show_ntests(); # ---------- $td->notify("--- Page with no contents ---"); $n_tests += 7; $td->runtest("check no contents", {$td->COMMAND => "qpdf --check no-contents.pdf"}, {$td->FILE => "no-contents-check.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); foreach my $arg ('--qdf', '--coalesce-contents', '') { $td->runtest("convert no contents ($arg)", {$td->COMMAND => "qpdf $arg --static-id no-contents.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); my $suf = $arg; $suf =~ s/--//; if ($suf eq '') { $suf = "none"; } $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "no-contents-$suf.pdf"}); } show_ntests(); # ---------- $td->notify("--- Token filters ---"); $n_tests += 2; $td->runtest("token filter", {$td->COMMAND => "test_driver 41 coalesce.pdf"}, {$td->STRING => "test 41 done\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "token-filters-out.pdf"}); show_ntests(); # ---------- $td->notify("--- Newline before endstream ---"); $n_tests += 10; # From issue 133, http://verapdf.org/software/ is an open source # package that can verify PDF/A compliance. This could potentially be # useful for manual or automated verification that qpdf doesn't break # PDF/A compliance should that ever be desired. foreach my $d ( ['--qdf', 'qdf', 'qdf'], ['--newline-before-endstream', 'newline', 'nl'], ['--qdf --newline-before-endstream', 'newline and qdf', 'nl-qdf'], ) { my ($flags, $description, $suffix) = @$d; $td->runtest("newline before endstream: $description", {$td->COMMAND => "qpdf --static-id --stream-data=preserve" . " $flags streams-with-newlines.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "newline-before-endstream-$suffix.pdf"}); if ($flags =~ /qdf/) { $td->runtest("fix-qdf", {$td->COMMAND => "fix-qdf a.pdf"}, {$td->FILE => "a.pdf", $td->EXIT_STATUS => 0}); } } $td->runtest("newline before endstream (C)", {$td->COMMAND => "qpdf-ctest 22 streams-with-newlines.pdf '' a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "newline-before-endstream-nl.pdf"}); show_ntests(); # ---------- $td->notify("--- Split Pages ---"); # sp = split-pages my @sp_cases = ( [11, '%d at beginning', '', '%d_split-out.zdf'], [11, '%d at end', '--qdf', 'split-out.zdf_%d'], [11, '%d in middle', '--encrypt u o 128 --', 'a-%d-split-out.zdf'], [11, 'pdf extension', '', 'split-out.Pdf'], [4, 'fallback', '--pages 11-pages.pdf 1-3 minimal.pdf --', 'split-out'], ); $n_tests += 5; for (@sp_cases) { $n_tests += 1 + $_->[0]; } $td->runtest("split page group > 1", {$td->COMMAND => "qpdf --static-id --split-pages=5 11-pages.pdf" . " --verbose split-out-group.pdf"}, {$td->FILE => "split-pages-group.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); foreach my $f ('01-05', '06-10', '11-11') { $td->runtest("checkout group $f", {$td->FILE => "split-out-group-$f.pdf"}, {$td->FILE => "split-exp-group-$f.pdf"}); } $td->runtest("no split-pages to stdout", {$td->COMMAND => "qpdf --split-pages 11-pages.pdf -"}, {$td->FILE => "split-pages-stdout.out", $td->EXIT_STATUS => 2}, $td->NORMALIZE_NEWLINES); foreach my $d (@sp_cases) { my ($n, $description, $xargs, $out) = @$d; $td->runtest("split pages " . $description, {$td->COMMAND => "qpdf --static-id --split-pages 11-pages.pdf" . " $xargs $out"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); my $pattern = $out; my $nlen = length($n); if ($pattern =~ m/\%d/) { $pattern =~ s/\%d/\%0${nlen}d/; } elsif ($pattern =~ m/\.pdf$/i) { $pattern =~ s/(\.pdf$)/-%0${nlen}d$1/i; } else { $pattern .= "-%0${nlen}d"; } for (my $i = 1; $i <= $n; ++$i) { my $actual = sprintf($pattern, $i); my $expected = $actual; $expected =~ s/split-out/split-exp/; $td->runtest("checkout output page $i", {$td->FILE => $actual}, {$td->FILE => $expected}); } } show_ntests(); # ---------- $td->notify("--- Rotate Pages ---"); $n_tests += 2; # Do absolute, positive, and negative on ranges that include # inherited and non-inherited. # Pages 11-15 inherit /Rotate 90 # Pages 1 and 2 have explicit /Rotate 270 # Pages 16 and 17 have explicit /Rotate 180 $td->runtest("page rotation", {$td->COMMAND => "qpdf --static-id to-rotate.pdf a.pdf" . " --rotate=+90:1,4,11,16" . " --rotate=180:2,5,12-13" . " --rotate=-90:3,15,17,18"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "rotated.pdf"}); show_ntests(); # ---------- $td->notify("--- Numeric range parsing tests ---"); my @nrange_tests = ( [",5", "qpdf: error at * in numeric range *,5: unexpected separator", 2], ["4,,5", "qpdf: error at * in numeric range 4,*,5: unexpected separator", 2], ["4,5,", "qpdf: error at * in numeric range 4,5,*: number expected", 2], ["z1,", "qpdf: error at * in numeric range z*1,: digit not expected", 2], ["1z,", "qpdf: error at * in numeric range 1*z,: z not expected", 2], ["1-5?", "qpdf: error at * in numeric range 1-5*?: unexpected character", 2], ["1-30", "qpdf: error in numeric range 1-30: number 30 out of range", 2], ["1-10,0,5", "qpdf: error in numeric range 1-10,0,5: number 0 out of range", 2], ["1-10,1234,5", "qpdf: error in numeric range 1-10,1234,5: number 1234 out of range", 2], ["1,r,3", "qpdf: error in numeric range 1,r,3: number 16 out of range", 2], ["1,r16,3", "qpdf: error in numeric range 1,r16,3: number 0 out of range", 2], ["1,3,5-10,z-13,13,9,z,2,r2-r4", "numeric range 1,3,5-10,z-13,13,9,z,2,r2-r4" . " -> 1 3 5 6 7 8 9 10 15 14 13 13 9 15 2 14 13 12", 0], ["r1-r15", # r\d+ at end "numeric range r1-r15" . " -> 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1", 0], ); $n_tests += scalar(@nrange_tests); foreach my $d (@nrange_tests) { my ($range, $output, $status) = @$d; $td->runtest("numeric range $range", {$td->COMMAND => ['qpdf', '-- test-numrange=' . $range], $td->FILTER => "grep 'numeric range'"}, {$td->STRING => $output . "\n", $td->EXIT_STATUS => $status}, $td->NORMALIZE_NEWLINES); } show_ntests(); # ---------- $td->notify("--- Merging and Splitting ---"); $n_tests += 8; # Select pages from the same file multiple times including selecting # twice from an encrypted file and specifying the password only the # first time. The file 20-pages.pdf is specified with two different # paths to duplicate a page. my $pages_options = "--pages page-labels-and-outlines.pdf 1,3,5-7,z" . " 20-pages.pdf --password=user z-15" . " page-labels-and-outlines.pdf 12" . " 20-pages.pdf 10" . " ./20-pages.pdf --password=owner 10" . " minimal.pdf 1 --"; $td->runtest("merge three files", {$td->COMMAND => "qpdf page-labels-and-outlines.pdf a.pdf" . " $pages_options --static-id"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); # Manually verified about this file: make sure that outline entries # that pointed to pages that were preserved still work in the copy, # and verify that all pages are as expected. page-labels-and-outlines # as well as 20-pages have text on page n (from 1) that shows its page # position from 0, so page 1 says it's page 0. $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "merge-three-files-1.pdf"}); # Select the same pages but add them to an empty file $td->runtest("merge three files", {$td->COMMAND => "qpdf --empty a.pdf" . " $pages_options --static-id"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); # Manually verified about this file: it has the same pages but does # not contain outlines, page labels, or other things from the original # file. $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "merge-three-files-2.pdf"}); $td->runtest("avoid respecification of password", {$td->COMMAND => "qpdf --empty a.pdf --copy-encryption=20-pages.pdf" . " --encryption-file-password=user" . " --pages 20-pages.pdf 1,z -- --static-id"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "pages-copy-encryption.pdf"}); $td->runtest("merge with implicit ranges", {$td->COMMAND => "qpdf --empty a.pdf" . " --pages minimal.pdf 20-pages.pdf --password=user" . " page-labels-and-outlines.pdf --" . " --static-id"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "merge-implicit-ranges.pdf"}); show_ntests(); # ---------- $td->notify("--- PDF From Scratch ---"); $n_tests += 2; $td->runtest("basic qpdf from scratch", {$td->COMMAND => "pdf_from_scratch 0"}, {$td->STRING => "test 0 done\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "from-scratch-0.pdf"}); show_ntests(); # ---------- $td->notify("--- PCLm ---"); $n_tests += 2; $td->runtest("write as PCLm", {$td->COMMAND => "test_driver 40 pclm-in.pdf a.pdf"}, {$td->STRING => "test 40 done\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "pclm-out.pdf"}); show_ntests(); # ---------- $td->notify("--- Precheck streams ---"); $n_tests += 2; $td->runtest("bad stream", {$td->COMMAND => "qpdf --static-id bad-data.pdf a.pdf"}, {$td->FILE => "bad-data.out", $td->EXIT_STATUS => 3}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "bad-data-out.pdf"}); show_ntests(); # ---------- $td->notify("--- Decode levels ---"); $n_tests += 14; # image-streams.pdf is the output of examples/pdf-create. # examples/pdf-create validates the actual image data. foreach my $l (qw(none generalized specialized all)) { $td->runtest("image-streams: $l", {$td->COMMAND => "qpdf image-streams.pdf --compress-streams=n" . " --decode-level=$l a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check image-streams: $l", {$td->COMMAND => "test_driver 39 a.pdf"}, {$td->FILE => "image-streams-$l.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); } # C API $td->runtest("image-streams: C", {$td->COMMAND => "qpdf-ctest 20 image-streams.pdf '' a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check image-streams: C", {$td->COMMAND => "test_driver 39 a.pdf"}, {$td->FILE => "image-streams-specialized.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); # Bad JPEG data $td->runtest("check finds bad jpeg data", {$td->COMMAND => "qpdf --check bad-jpeg.pdf"}, {$td->FILE => "bad-jpeg-check.out", $td->EXIT_STATUS => 3}, $td->NORMALIZE_NEWLINES); $td->runtest("precheck detects bad jpeg data", {$td->COMMAND => "qpdf --static-id --decode-level=all" . " bad-jpeg.pdf a.pdf"}, {$td->FILE => "bad-jpeg.out", $td->EXIT_STATUS => 3}, $td->NORMALIZE_NEWLINES); $td->runtest("check file", {$td->FILE => "a.pdf"}, {$td->FILE => "bad-jpeg-out.pdf"}); $td->runtest("get data", {$td->COMMAND => "qpdf --show-object=6" . " --filtered-stream-data bad-jpeg.pdf"}, {$td->FILE => "bad-jpeg-show.out", $td->EXIT_STATUS => 3}, $td->NORMALIZE_NEWLINES); show_ntests(); # ---------- $td->notify("--- Preserve unreferenced objects ---"); $n_tests += 6; $td->runtest("drop unused objects", {$td->COMMAND => "qpdf --static-id unreferenced-objects.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "unreferenced-dropped.pdf"}); $td->runtest("keep unused objects", {$td->COMMAND => "qpdf --static-id --preserve-unreferenced" . " unreferenced-objects.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "unreferenced-preserved.pdf"}); $td->runtest("keep unused objects (C)", {$td->COMMAND => "qpdf-ctest 21 unreferenced-objects.pdf '' a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "unreferenced-preserved.pdf"}); show_ntests(); # ---------- $td->notify("--- Copy Foreign Objects ---"); $n_tests += 7; foreach my $d ([25, 1], [26, 2], [27, 3]) { my ($testn, $outn) = @$d; $td->runtest("copy objects $outn", {$td->COMMAND => "test_driver $testn" . " copy-foreign-objects-in.pdf minimal.pdf"}, {$td->STRING => "test $testn done\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "copy-foreign-objects-out$outn.pdf"}); } $td->runtest("copy objects error", {$td->COMMAND => "test_driver 28" . " copy-foreign-objects-in.pdf minimal.pdf"}, {$td->FILE => "copy-foreign-objects-errors.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); show_ntests(); # ---------- $td->notify("--- Error Condition Tests ---"); # $n_tests incremented after initialization of badfiles below. my @badfiles = ("not a PDF file", # 1 "no startxref", # 2 "bad primary xref offset", # 3 "invalid xref syntax", # 4 "invalid xref entry", # 5 "free table inconsistency", # 6 "no trailer dictionary", # 7 "bad secondary xref", # 8 "no /Size in trailer", # 9 "/Size not integer", # 10 "/Prev not integer", # 11 "/Size inconsistency", # 12 "bad {", # 13 "bad }", # 14 "bad ]", # 15 "bad >>", # 16 "odd number of dictionary items", # 17 "bad )", # 18 "bad >", # 19 "invalid hexstring character", # 20 "invalid name token", # 21 "no /Length for stream dictionary", # 22 "/Length not integer", # 23 "expected endstream", # 24 "bad obj declaration (objid)", # 25 "bad obj declaration (generation)", # 26 "bad obj declaration (obj)", # 27 "expected endobj", # 28 "null in name", # 29 "invalid stream /Filter", # 30 "unknown stream /Filter", # 31 "obj/gen mismatch", # 32 "invalid stream /Filter and xref", # 33 "obj/gen in wrong place", # 34 "object stream of wrong type", # 35 "bad dictionary key", # 36 ); $n_tests += @badfiles + 3; # Test 6 contains errors in the free table consistency, but we no # longer have any consistency check for this since it is not important # neither Acrobat nor other PDF viewers really care. Tests 12 and 28 # have error conditions that used to be fatal but are now considered # non-fatal. my %badtest_overrides = (); for(6, 12..15, 17, 18..32, 34, 36) { $badtest_overrides{$_} = 0; } for (my $i = 1; $i <= scalar(@badfiles); ++$i) { my $status = $badtest_overrides{$i}; $status = 2 unless defined $status; $td->runtest($badfiles[$i-1], {$td->COMMAND => "test_driver 0 bad$i.pdf"}, {$td->FILE => "bad$i.out", $td->EXIT_STATUS => $status}, $td->NORMALIZE_NEWLINES); } $td->runtest("C API: errors", {$td->COMMAND => "qpdf-ctest 2 bad1.pdf '' a.pdf"}, {$td->FILE => "c-read-errors.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("C API: warnings writing", {$td->COMMAND => "qpdf-ctest 2 bad33.pdf '' a.pdf"}, {$td->FILE => "c-write-warnings.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("C API: no recovery", {$td->COMMAND => "qpdf-ctest 10 bad33.pdf '' a.pdf"}, {$td->FILE => "c-no-recovery.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); show_ntests(); # ---------- $td->notify("--- Recovery Tests ---"); $n_tests += @badfiles + 9; # Recovery tests. These are mostly after-the-fact -- when recovery # was implemented, some degree of recovery was possible on many of the # files. Mostly the recovery does not actually repair the error, # though in some cases it may. Acrobat Reader would not be able to # recover any of these files any better. my %recover_failures = (); for (1, 7, 16, 35) { $recover_failures{$_} = 1; } for (my $i = 1; $i <= scalar(@badfiles); ++$i) { my $status = 0; if (exists $recover_failures{$i}) { $status = 2; } $td->runtest("recover " . $badfiles[$i-1], {$td->COMMAND => "test_driver 1 bad$i.pdf"}, {$td->FILE => "bad$i-recover.out", $td->EXIT_STATUS => $status}, $td->NORMALIZE_NEWLINES); } # See if we can recover the cross reference table on a file that has # been appended to even when it deletes and reuses objects. We can't # completely do it in the case of deleted objects, but we can get # mostly there. $td->runtest("good replaced page contents", {$td->COMMAND => "qpdf --static-id -qdf --no-original-object-ids" . " append-page-content.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "append-page-content-good.qdf"}); $td->runtest("damaged replaced page contents", {$td->COMMAND => "qpdf --static-id -qdf --no-original-object-ids" . " append-page-content-damaged.pdf a.pdf"}, {$td->FILE => "append-page-content-damaged.out", $td->EXIT_STATUS => 3}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "append-page-content-damaged.qdf"}); $td->runtest("run check on damaged file", {$td->COMMAND => "qpdf --check append-page-content-damaged.pdf"}, {$td->FILE => "append-page-content-damaged-check.out", $td->EXIT_STATUS => 3}, $td->NORMALIZE_NEWLINES); $td->runtest("check with C API", {$td->COMMAND => "qpdf-ctest 1 append-page-content-damaged.pdf '' ''"}, {$td->FILE => "append-page-content-damaged-c-check.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("recoverable xref errors", {$td->COMMAND => "qpdf --check --show-xref xref-errors.pdf"}, {$td->FILE => "xref-errors.out", $td->EXIT_STATUS => 3}, $td->NORMALIZE_NEWLINES); $td->runtest("xref loop with append", {$td->COMMAND => "qpdf --deterministic-id append-xref-loop.pdf a.pdf"}, {$td->FILE => "append-xref-loop.out", $td->EXIT_STATUS => 3}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "append-xref-loop-fixed.pdf"}); show_ntests(); # ---------- $td->notify("--- Basic Parsing Tests ---"); # $n_tests incremented below after initialization of @goodfiles. my @goodfiles = ("implicit null", # 1 "direct null", # 2 "unresolved null", # 3 "indirect null", # 4 "indirect bool, real", # 5 "direct bool", # 6 "integer", # 7 "real, ASCIIHexDecode", # 8 "string", # 9 "array", # 10 "dictionary", # 11 "stream", # 12 "nesting, strings, names", # 13 "tokenizing pipeline", # 14 "name", # 15 "object-stream", # 16 "hybrid xref", # 17 "hybrid xref old mode", # 18 "xref with prev", # 19 "lots of compressible objects", # 20 "pound in name", # 21 ); $n_tests += (3 * @goodfiles) + 6; my %goodtest_overrides = ('14' => 3); my %goodtest_flags = ('18' => '-ignore-xref-streams', '20' => '-object-streams=generate', ); for (my $i = 1; $i <= scalar(@goodfiles); ++$i) { my $n = $goodtest_overrides{$i} || 1; $td->runtest("$goodfiles[$i-1]", {$td->COMMAND => "test_driver $n good$i.pdf"}, {$td->FILE => "good$i.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); my $xflags = $goodtest_flags{$i} || ''; check_pdf("create qdf", "qpdf --static-id -qdf $xflags good$i.pdf", "good$i.qdf", 0); } check_pdf("no normalization", "qpdf -qdf --static-id --normalize-content=n good7.pdf", "good7-not-normalized.qdf", 0); check_pdf("no qdf", "qpdf --static-id good17.pdf", "good17-not-qdf.pdf", 0); check_pdf("no recompression", "qpdf --static-id --stream-data=preserve good17.pdf", "good17-not-recompressed.pdf", 0); show_ntests(); # ---------- $td->notify("--- C API Tests ---"); my @capi = ( [2, 'no options'], [3, 'normalized content'], [4, 'ignore xref streams'], [5, 'linearized'], [6, 'object streams'], [7, 'qdf'], [8, 'no original object ids'], [9, 'uncompressed streams'], ); $n_tests += (2 * @capi) + 3; foreach my $d (@capi) { my ($n, $description) = @$d; my $outfile = $description; $outfile =~ s/ /-/g; $outfile = "c-$outfile.pdf"; $td->runtest($description, {$td->COMMAND => "qpdf-ctest $n hybrid-xref.pdf '' a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check $description", {$td->FILE => "a.pdf"}, {$td->FILE => $outfile}); } $td->runtest("write to bad file name", {$td->COMMAND => "qpdf-ctest 2 hybrid-xref.pdf '' /:a:/:b:"}, {$td->REGEXP => "error: open /:a:/:b:: .*", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("write damaged to bad file name", {$td->COMMAND => "qpdf-ctest 2 append-page-content-damaged.pdf" . " '' /:a:/:b:"}, {$td->REGEXP => "warning:(?s:.*)\n" . "error: open /:a:/:b:: .*", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("write damaged", {$td->COMMAND => "qpdf-ctest 2 append-page-content-damaged.pdf" . " '' a.pdf"}, {$td->FILE => "c-write-damaged.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); show_ntests(); # ---------- $td->notify("--- Deterministic ID Tests ---"); $n_tests += 11; foreach my $d ('nn', 'ny', 'yn', 'yy') { my $linearize = ($d =~ m/^y/); my $ostream = ($d =~ m/y$/); $td->runtest("deterministic ID: linearize/ostream=$d", {$td->COMMAND => "qpdf -deterministic-id" . ($linearize ? " -linearize" : "") . " -object-streams=" . ($ostream ? "generate" : "disable") . " deterministic-id-in.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("compare files", {$td->FILE => "a.pdf"}, {$td->FILE => "deterministic-id-$d.pdf"}); } $td->runtest("deterministic ID with encryption", {$td->COMMAND => "qpdf -deterministic-id encrypted-with-images.pdf a.pdf"}, {$td->STRING => "INTERNAL ERROR: QPDFWriter::generateID" . " has no data for deterministic ID." . " This may happen if deterministic ID and" . " file encryption are requested together.\n", $td->EXIT_STATUS => 2}, $td->NORMALIZE_NEWLINES); $td->runtest("deterministic ID (C API)", {$td->COMMAND => "qpdf-ctest 19 deterministic-id-in.pdf '' a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("compare files", {$td->FILE => "a.pdf"}, {$td->FILE => "deterministic-id-nn.pdf"}); # ---------- $td->notify("--- Object Stream Tests ---"); $n_tests += (36 * 4) + (12 * 2); $n_compare_pdfs += 36; for (my $n = 16; $n <= 19; ++$n) { my $in = "good$n.pdf"; foreach my $flags ('-object-streams=disable', '-object-streams=preserve', '-object-streams=generate') { foreach my $qdf ('-qdf', '', '-encrypt "" x 128 --') { # 4 tests + 1 compare_pdfs * 36 cases # 2 additional tests * 12 cases $td->runtest("object stream mode", {$td->COMMAND => "qpdf --static-id $flags $qdf $in a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); compare_pdfs("good$n.pdf", "a.pdf"); if ($qdf eq '-qdf') { $td->runtest("fix-qdf identity check", {$td->COMMAND => "fix-qdf a.pdf >| b.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("compare files", {$td->FILE => "a.pdf"}, {$td->FILE => "b.pdf"}); } $td->runtest("convert to qdf", {$td->COMMAND => "qpdf --static-id --no-original-object-ids" . " -qdf -decrypt" . " -object-streams=disable $in a.qdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("convert output to qdf", {$td->COMMAND => "qpdf --static-id --no-original-object-ids" . " -qdf -object-streams=disable a.pdf b.qdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("compare files", {$td->FILE => "a.qdf"}, {$td->FILE => "b.qdf"}); } } flush_tiff_cache(); } show_ntests(); # ---------- $td->notify("--- Specific File Tests ---"); $n_tests += 2; # Special PDF files that caused problems at some point $td->runtest("damaged stream", {$td->COMMAND => "qpdf --check damaged-stream.pdf"}, {$td->FILE => "damaged-stream.out", $td->EXIT_STATUS => 3}, $td->NORMALIZE_NEWLINES); $td->runtest("damaged stream (C)", {$td->COMMAND => "qpdf-ctest 2 damaged-stream.pdf '' a.pdf"}, {$td->FILE => "damaged-stream-c-check.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); show_ntests(); # ---------- $td->notify("--- Mutability Tests ---"); $n_tests += 4; $td->runtest("no normalization", {$td->COMMAND => "test_driver 4 test4-1.pdf"}, {$td->FILE => "test4-1.qdf", $td->EXIT_STATUS => 0}); $td->runtest("object ordering", {$td->COMMAND => "test_driver 4 test4-4.pdf"}, {$td->FILE => "test4-4.qdf", $td->EXIT_STATUS => 0}); $td->runtest("loop detected", {$td->COMMAND => "test_driver 4 test4-2.pdf"}, {$td->FILE => "test4-2.out", $td->EXIT_STATUS => 2}, $td->NORMALIZE_NEWLINES); $td->runtest("stream detected", {$td->COMMAND => "test_driver 4 test4-3.pdf"}, {$td->FILE => "test4-3.out", $td->EXIT_STATUS => 2}, $td->NORMALIZE_NEWLINES); show_ntests(); # ---------- $td->notify("--- Extraction Tests ---"); $n_tests += 11; $td->runtest("show xref", {$td->COMMAND => "qpdf encrypted-with-images.pdf" . " --show-xref"}, {$td->FILE => "show-xref.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("show pages", {$td->COMMAND => "qpdf encrypted-with-images.pdf" . " --show-pages"}, {$td->FILE => "show-pages.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("show-pages-images", {$td->COMMAND => "qpdf encrypted-with-images.pdf" . " --show-pages --with-images"}, {$td->FILE => "show-pages-images.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("show-page-1", {$td->COMMAND => "qpdf encrypted-with-images.pdf" . " --show-object=5,0"}, {$td->FILE => "show-page-1.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("show-page-1-content-raw", {$td->COMMAND => "qpdf encrypted-with-images.pdf" . " --show-object=7 --raw-stream-data"}, {$td->FILE => "show-page-1-content-raw.out", $td->EXIT_STATUS => 0}); $td->runtest("show-page-1-content-filtered", {$td->COMMAND => "qpdf encrypted-with-images.pdf" . " --show-object=7 --filtered-stream-data"}, {$td->FILE => "show-page-1-content-filtered.out", $td->EXIT_STATUS => 0}); $td->runtest("show-page-1-content-normalized", {$td->COMMAND => "qpdf encrypted-with-images.pdf" . " --show-object=7,0 --filtered-stream-data --normalize-content=y"}, {$td->FILE => "show-page-1-content-normalized.out", $td->EXIT_STATUS => 0}); $td->runtest("show-page-1-image", {$td->COMMAND => "qpdf encrypted-with-images.pdf" . " --show-object=8 --raw-stream-data"}, {$td->FILE => "show-page-1-image.out", $td->EXIT_STATUS => 0}); $td->runtest("unfilterable stream data", {$td->COMMAND => "qpdf unfilterable.pdf" . " --show-object=4 --filtered-stream-data"}, {$td->FILE => "show-unfilterable.out", $td->EXIT_STATUS => 2}, $td->NORMALIZE_NEWLINES); $td->runtest("show-xref-by-id", {$td->COMMAND => "qpdf encrypted-with-images.pdf" . " --show-object=12"}, {$td->FILE => "show-xref-by-id.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("show-xref-by-id-filtered", {$td->COMMAND => "qpdf encrypted-with-images.pdf" . " --show-object=12 --filtered-stream-data"}, {$td->FILE => "show-xref-by-id-filtered.out", $td->EXIT_STATUS => 0}); show_ntests(); # ---------- $td->notify("--- Clear-text Metadata Tests ---"); $n_tests += 58; # args: file, exp_encrypted, exp_cleartext check_metadata("compressed-metadata.pdf", 0, 0); check_metadata("enc-base.pdf", 0, 1); foreach my $f (qw(compressed-metadata.pdf enc-base.pdf)) { foreach my $w (qw(compress preserve)) { $td->runtest("$w streams ($f)", {$td->COMMAND => "qpdf --stream-data=$w $f a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); check_metadata("a.pdf", 0, 1); $td->runtest("encrypt normally", {$td->COMMAND => "qpdf --encrypt '' '' 128 -- a.pdf b.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); check_metadata("b.pdf", 1, 0); unlink "b.pdf"; $td->runtest("encrypt V4", {$td->COMMAND => "qpdf --encrypt '' '' 128 --force-V4 -- a.pdf b.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); check_metadata("b.pdf", 1, 0); unlink "b.pdf"; $td->runtest("encrypt with cleartext metadata", {$td->COMMAND => "qpdf --encrypt '' '' 128 --cleartext-metadata --" . " a.pdf b.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); check_metadata("b.pdf", 1, 1); $td->runtest("preserve encryption", {$td->COMMAND => "qpdf b.pdf c.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); check_metadata("c.pdf", 1, 1); unlink "b.pdf", "c.pdf"; $td->runtest("encrypt with aes and cleartext metadata", {$td->COMMAND => "qpdf --encrypt '' '' 128" . " --cleartext-metadata --use-aes=y -- a.pdf b.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); check_metadata("b.pdf", 1, 1); $td->runtest("preserve encryption", {$td->COMMAND => "qpdf b.pdf c.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); check_metadata("c.pdf", 1, 1); unlink "b.pdf", "c.pdf"; } } show_ntests(); # ---------- $td->notify("--- Linearization Tests ---"); # $n_tests incremented after initialization of @linearized_files and # @to_linearize. # *'ed files were linearized with Pdlin. my @linearized_files = ('lin0', # not linearized 'lin1', # * outlines, page labels, pdlin 'lin2', # * lin1 with null and newline 'lin3', # same file saved with acrobat 'lin4', # * lin1 with no /PageMode 'lin5', # lin3 with embedded thumbnails 'lin6', # * lin5 with pdlin 'lin7', # lin5 with /PageMode /UseThumbs 'lin8', # * lin7 with pdlin 'lin9', # * shared objects, indirect null 'badlin1', # parameter dictionary errors ); my @to_linearize = ('lin-special', # lots of weird cases -- see file comments 'delete-and-reuse', # deleted, reused objects 'lin-delete-and-reuse', # linearized, then delete and reuse 'object-stream', # contains object streams 'hybrid-xref', # contains both xref tables and streams 'gen1', # has objects with generation > 0 'direct-outlines', # /Outlines is a direct object @linearized_files, # we should be able to relinearize ); $n_tests += @linearized_files + 6; $n_tests += (3 * @to_linearize * 5) + 6; foreach my $base (@linearized_files) { $td->runtest("dump linearization: $base", {$td->COMMAND => "qpdf --show-linearization $base.pdf"}, {$td->FILE => "$base.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); } # Check normal modified and linearized modified files, making sure # that their qdf files are identical. The next two tests have the # same expected output files and different input files. check_pdf("modified", "qpdf --static-id --qdf --no-original-object-ids" . " delete-and-reuse.pdf", "delete-and-reuse.qdf", 0); check_pdf("linearized and modified", "qpdf --static-id --qdf --no-original-object-ids" . " lin-delete-and-reuse.pdf", "delete-and-reuse.qdf", # same output 0); $td->runtest("check linearized and modified", {$td->COMMAND => "qpdf --check lin-delete-and-reuse.pdf"}, {$td->FILE => "lin-delete-and-reuse-check.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check multiple modifications", {$td->COMMAND => "qpdf --check delete-and-reuse.pdf"}, {$td->FILE => "delete-and-reuse-check.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); foreach my $base (@to_linearize) { foreach my $omode (qw(disable preserve generate)) { my $oarg = "-object-streams=$omode"; my $sdarg = ""; if (($base eq 'lin-special') || ($base eq 'object-stream')) { $sdarg = "--stream-data=uncompress"; } $td->runtest("linearize $base ($omode)", {$td->COMMAND => "qpdf -linearize $oarg $sdarg" . " --static-id $base.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check linearization", {$td->COMMAND => "qpdf --check-linearization a.pdf"}, {$td->STRING => "a.pdf: no linearization errors\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); # Relinearizing twice should produce identical results. We # have to do it twice because, if objects changed ordering # during the original linearization, the hint tables won't # exactly match. This is because object identifiers are # inserted into the hint table in their original order since # we don't yet have renumbering information when we compute # the table values. $td->runtest("relinearize $base 1", {$td->COMMAND => "qpdf -linearize $sdarg --static-id a.pdf b.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("relinearize $base 2", {$td->COMMAND => "qpdf -linearize $sdarg --static-id b.pdf c.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("compare files ($omode)", {$td->FILE => "b.pdf"}, {$td->FILE => "c.pdf"}); if (($base eq 'lin-special') || ($base eq 'object-stream')) { $td->runtest("check $base ($omode)", {$td->FILE => "a.pdf"}, {$td->FILE => "$base.$omode.exp"}); } } } show_ntests(); # ---------- $td->notify("--- Encryption Tests ---"); # $n_tests incremented below # The enc-file.pdf files were encrypted using Acrobat 5.0, not the # qpdf library. The files are decrypted using qpdf, then re-encrypted # using qpdf with specific flags. The /P value is checked. The # resulting files were saved and manually checked with Acrobat 5.0 to # ensure that the security settings were as intended. # The enc-XI-file.pdf files were treated the same way but with Acrobat # XI instead of Acrobat 5.0. They were used to create test files with # newer encryption formats. # Values: basename, password, encryption flags, /P Encrypt key, # extract-for-accessibility, extract-for-any-purpose, # print-low-res, print-high-res, modify-assembly, modify-forms, # modify-annotate, modify-other, modify-all my @encrypted_files = (['base', ''], ['R3,V2', '', '-accessibility=n -extract=n -print=full -modify=all', -532, 0, 0, 1, 1, 1, 1, 1, 1, 1], ['R3,V2,U=view', 'view', '-accessibility=y -extract=n -print=none -modify=none', -3392, 1, 0, 0, 0, 0, 0, 0, 0, 0], ['R3,V2,O=master', 'master', '-accessibility=n -extract=y -print=none -modify=annotate', -2576, 0, 1, 0, 0, 1, 1, 1, 0, 0], ['R3,V2,O=master', '', '-accessibility=n -extract=n -print=none -modify=form', -2624, 0, 0, 0, 0, 1, 1, 0, 0, 0], ['R3,V2,U=view,O=master', 'view', '-accessibility=n -extract=n -print=none -modify=assembly', -2880, 0, 0, 0, 0, 1, 0, 0, 0, 0], ['R3,V2,U=view,O=master', 'master', '-accessibility=n -print=low', -2564, 0, 1, 1, 0, 1, 1, 1, 1, 1], ['R2,V1', '', '-print=n -modify=n -extract=n -annotate=n', -64, 0, 0, 0, 0, 0, 0, 0, 0, 0], ['R2,V1,U=view', 'view', '-print=y -modify=n -extract=n -annotate=n', -60, 0, 0, 1, 1, 0, 0, 0, 0, 0], ['R2,V1,O=master', 'master', '-print=n -modify=y -extract=n -annotate=n', -56, 0, 0, 0, 0, 1, 0, 0, 1, 0], ['R2,V1,O=master', '', '-print=n -modify=n -extract=y -annotate=n', -48, 1, 1, 0, 0, 0, 0, 0, 0, 0], ['R2,V1,U=view,O=master', 'view', '-print=n -modify=n -extract=n -annotate=y', -32, 0, 0, 0, 0, 0, 1, 1, 0, 0], ['R2,V1,U=view,O=master', 'master', '', -4, 1, 1, 1, 1, 1, 1, 1, 1, 1], ['long-password', 'asdf asdf asdf asdf asdf asdf qwer'], ['long-password', 'asdf asdf asdf asdf asdf asdf qw'], ['XI-base', ''], ['XI-R6,V5,O=master', '', '-extract=n -print=none -modify=assembly', -2368, 1, 0, 0, 0, 1, 0, 0, 0, 0], ['XI-R6,V5,O=master', 'master', '-extract=n -print=none -modify=assembly', -2368, 1, 0, 0, 0, 1, 0, 0, 0, 0], ['XI-R6,V5,U=view,O=master', 'view', '-print=low', -2052, 1, 1, 1, 0, 1, 1, 1, 1, 1], ['XI-R6,V5,U=view,O=master', 'master', '-print=low', -2052, 1, 1, 1, 0, 1, 1, 1, 1, 1], ['XI-R6,V5,U=view,O=master', 'master', '-accessibility=n', -4, # -accessibility=n has no effect 1, 1, 1, 1, 1, 1, 1, 1, 1], ['XI-long-password', 'qwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnm'], ['XI-long-password', 'qwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcv'], ); $n_tests += 5 + (2 * (@encrypted_files)) + (6 * (@encrypted_files - 6)) + 9; $td->runtest("encrypted file", {$td->COMMAND => "test_driver 2 encrypted-with-images.pdf"}, {$td->FILE => "encrypted1.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("preserve encryption", {$td->COMMAND => "qpdf encrypted-with-images.pdf encrypted-with-images.enc"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("recheck encrypted file", {$td->COMMAND => "test_driver 2 encrypted-with-images.enc"}, {$td->FILE => "encrypted1.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); # Test that long passwords that are one character too short fail. We # test the truncation cases in the loop below by using passwords # longer than the supported length. $td->runtest("significant password characters (V < 5)", {$td->COMMAND => "qpdf --check enc-long-password.pdf" . " --password='asdf asdf asdf asdf asdf asdf q'"}, {$td->REGEXP => ".*invalid password.*", $td->EXIT_STATUS => 2}); $td->runtest("significant password characters (V = 5)", {$td->COMMAND => "qpdf --check enc-XI-long-password.pdf" . " --password=qwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxc"}, {$td->REGEXP => ".*invalid password.*", $td->EXIT_STATUS => 2}); my $enc_base = undef; foreach my $d (@encrypted_files) { my ($file, $pass, $xeflags, $P, $accessible, $extract, $printlow, $printhigh, $modifyassembly, $modifyform, $modifyannot, $modifyother, $modifyall) = @$d; my $f = sub { $_[0] ? "allowed" : "not allowed" }; my $enc_details = "extract for accessibility: " . &$f($accessible) . "\n" . "extract for any purpose: " . &$f($extract) . "\n" . "print low resolution: " . &$f($printlow) . "\n" . "print high resolution: " . &$f($printhigh) . "\n" . "modify document assembly: " . &$f($modifyassembly) . "\n" . "modify forms: " . &$f($modifyform) . "\n" . "modify annotations: " . &$f($modifyannot) . "\n" . "modify other: " . &$f($modifyother) . "\n" . "modify anything: " . &$f($modifyall) . "\n"; if ($file =~ m/XI-/) { $enc_details .= "stream encryption method: AESv3\n" . "string encryption method: AESv3\n" . "file encryption method: AESv3\n"; } # Test writing to stdout $td->runtest("decrypt $file", {$td->COMMAND => "qpdf --static-id -qdf --object-streams=disable" . " --no-original-object-ids" . " --password=\"$pass\" enc-$file.pdf -" . " > $file.enc"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); if ($file =~ m/base$/) { $enc_base = $file; $td->runtest("check ID", {$td->COMMAND => "perl check-ID.pl $file.enc"}, {$td->STRING => "ID okay\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); } else { $td->runtest("check against base", {$td->COMMAND => "sh ./diff-encrypted $enc_base.enc $file.enc"}, {$td->STRING => "okay\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); } if ($file =~ m/^(?:XI-)?R(\d),V(\d)(?:,U=(\w+))?(?:,O=(\w+))?$/) { my $R = $1; my $V = $2; my $upass = $3 || ""; my $opass = $4 || ""; my $bits = (($V == 5) ? 256 : ($V == 2) ? 128 : 40); my $eflags = "-encrypt \"$upass\" \"$opass\" $bits $xeflags --"; if (($pass ne $upass) && ($V >= 5)) { # V >= 5 can no longer recover user password with owner # password. $upass = ""; } my $accessibility_warning = ""; if (($R > 3) && ($eflags =~ /accessibility=n/)) { $accessibility_warning = "qpdf: -accessibility=n is ignored" . " for modern encryption formats\n"; } $td->runtest("encrypt $file", {$td->COMMAND => "qpdf --static-id --no-original-object-ids -qdf" . " $eflags $file.enc $file.enc2"}, {$td->STRING => $accessibility_warning, $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check /P", {$td->COMMAND => "qpdf --show-encryption --password=\"$pass\"" . " $file.enc2"}, {$td->STRING => "R = $R\nP = $P\n" . "User password = $upass\n$enc_details", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("decrypt again", {$td->COMMAND => "qpdf --static-id --no-original-object-ids -qdf" . " --password=\"$pass\"" . " $file.enc2 $file.enc3"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("compare", {$td->FILE => "$file.enc"}, {$td->FILE => "$file.enc3"}); $td->runtest("preserve encryption", {$td->COMMAND => "qpdf --static-id --password=\"$pass\"" . " $file.enc2 $file.enc4"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check /P", {$td->COMMAND => "qpdf --show-encryption --password=\"$pass\"" . " $file.enc4"}, {$td->STRING => "R = $R\nP = $P\n" . "User password = $upass\n$enc_details", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); } } $td->runtest("non-encrypted", {$td->COMMAND => "qpdf --show-encryption enc-base.pdf"}, {$td->STRING => "File is not encrypted\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("invalid password", {$td->COMMAND => "qpdf -qdf --password=quack" . " enc-R2,V1,U=view.pdf a.qdf"}, {$td->STRING => "enc-R2,V1,U=view.pdf: invalid password\n", $td->EXIT_STATUS => 2}, $td->NORMALIZE_NEWLINES); $td->runtest("C API: invalid password", {$td->COMMAND => "qpdf-ctest 2 enc-R2,V1,U=view.pdf '' a.qdf"}, {$td->FILE => "c-invalid-password.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); my @cenc = ( [11, 'hybrid-xref.pdf', "''", 'r2', "", ""], [12, 'hybrid-xref.pdf', "''", 'r3', "", ""], [15, 'hybrid-xref.pdf', "''", 'r4', "", ""], [17, 'hybrid-xref.pdf', "''", 'r5', "", "owner3"], [18, 'hybrid-xref.pdf', "''", 'r6', "", "user4"], [13, 'c-r2.pdf', 'user1', 'decrypt with user', "user password: user1\n", ""], [13, 'c-r3.pdf', 'owner2', 'decrypt with owner', "user password: user2\n", ""], [13, 'c-r5-in.pdf', 'user3', 'decrypt R5 with user', "user password: user3\n", ""], [13, 'c-r6-in.pdf', 'owner4', 'decrypt R6 with owner', "user password: \n", ""], ); $n_tests += 2 * @cenc; foreach my $d (@cenc) { my ($n, $infile, $pass, $description, $output, $checkpass) = @$d; my $outfile = $description; $outfile =~ s/ /-/g; my $pdf_outfile = "c-$outfile.pdf"; my $check_outfile = "c-$outfile.out"; $td->runtest("C API encryption: $description", {$td->COMMAND => "qpdf-ctest $n $infile $pass a.pdf"}, {$td->STRING => $output, $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); if (-f $pdf_outfile) { $td->runtest("check $description content", {$td->FILE => "a.pdf"}, {$td->FILE => $pdf_outfile}); } else { # QPDF doesn't provide any way to make the random bits in # /Perms static, so we have no way to predictably create a # /V=5 encrypted file. It's not worth adding this...the test # suite is adequate without having a statically predictable # file. $td->runtest("check $description", {$td->COMMAND => "qpdf --check a.pdf --password=$checkpass"}, {$td->FILE => $check_outfile, $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); } } # Test combinations of linearization and encryption. Note that we do # content checks on encrypted and linearized files in various # combinations below. Here we are just making sure that they are # linearized and/or encrypted as desired. $td->runtest("linearize encrypted file", {$td->COMMAND => "qpdf --linearize encrypted-with-images.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check encryption", {$td->COMMAND => "qpdf --show-encryption a.pdf", $td->FILTER => "grep -v allowed"}, {$td->STRING => "R = 3\nP = -4\nUser password = \n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check linearization", {$td->COMMAND => "qpdf --check-linearization a.pdf"}, {$td->STRING => "a.pdf: no linearization errors\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("linearize and encrypt file", {$td->COMMAND => "qpdf --linearize --encrypt user owner 128 --use-aes=y --" . " lin-special.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check encryption", {$td->COMMAND => "qpdf --show-encryption --password=owner a.pdf", $td->FILTER => "grep -v allowed | grep -v method"}, {$td->STRING => "R = 4\nP = -4\nUser password = user\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check linearization", {$td->COMMAND => "qpdf --check-linearization" . " --password=user a.pdf"}, {$td->STRING => "a.pdf: no linearization errors\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); # Test AES encryption in various ways. $n_tests += 18; $td->runtest("encrypt with AES", {$td->COMMAND => "qpdf --encrypt '' '' 128 --use-aes=y --" . " enc-base.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check encryption", {$td->COMMAND => "qpdf --show-encryption a.pdf", $td->FILTER => "grep -v allowed | grep -v method"}, {$td->STRING => "R = 4\nP = -4\nUser password = \n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("convert original to qdf", {$td->COMMAND => "qpdf --static-id --no-original-object-ids" . " --qdf --min-version=1.6 enc-base.pdf a.qdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("convert encrypted to qdf", {$td->COMMAND => "qpdf --static-id --no-original-object-ids" . " --qdf a.pdf b.qdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("compare files", {$td->FILE => 'a.qdf'}, {$td->FILE => 'b.qdf'}); $td->runtest("linearize with AES and object streams", {$td->COMMAND => "qpdf --encrypt '' '' 128 --use-aes=y --" . " --linearize --object-streams=generate enc-base.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check encryption", {$td->COMMAND => "qpdf --show-encryption a.pdf", $td->FILTER => "grep -v allowed | grep -v method"}, {$td->STRING => "R = 4\nP = -4\nUser password = \n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("linearize original", {$td->COMMAND => "qpdf --linearize --object-streams=generate" . " enc-base.pdf b.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("convert linearized original to qdf", {$td->COMMAND => "qpdf --static-id --no-original-object-ids" . " --qdf --object-streams=generate --min-version=1.6" . " b.pdf a.qdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("convert encrypted to qdf", {$td->COMMAND => "qpdf --static-id --no-original-object-ids" . " --qdf --object-streams=generate a.pdf b.qdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("compare files", {$td->FILE => 'a.qdf'}, {$td->FILE => 'b.qdf'}); $td->runtest("force version on aes encrypted", {$td->COMMAND => "qpdf --force-version=1.4 a.pdf b.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check", {$td->COMMAND => "qpdf --check b.pdf"}, {$td->FILE => "aes-forced-check.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("make sure there is no xref stream", {$td->COMMAND => "grep /ObjStm b.pdf | wc -l"}, {$td->REGEXP => "\\s*0\\s*", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("encrypt with V=5,R=5", {$td->COMMAND => "qpdf --encrypt user owner 256 --force-R5 -- " . "minimal.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check encryption", {$td->COMMAND => "qpdf --check a.pdf --password=owner"}, {$td->FILE => "V5R5.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("encrypt with V=5,R=6", {$td->COMMAND => "qpdf --encrypt user owner 256 -- " . "minimal.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check encryption", {$td->COMMAND => "qpdf --check a.pdf --password=user"}, {$td->FILE => "V5R6.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); # Look at some actual V4 files $n_tests += 14; foreach my $d (['--force-V4', 'V4'], ['--cleartext-metadata', 'V4-clearmeta'], ['--use-aes=y', 'V4-aes'], ['--cleartext-metadata --use-aes=y', 'V4-aes-clearmeta']) { my ($args, $out) = @$d; $td->runtest("encrypt $args", {$td->COMMAND => "qpdf --static-aes-iv --static-id" . " --encrypt '' '' 128 $args -- enc-base.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "$out.pdf"}); $td->runtest("show encryption", {$td->COMMAND => "qpdf --show-encryption a.pdf"}, {$td->FILE => "$out-encryption.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); } # Crypt Filter $td->runtest("decrypt with crypt filter", {$td->COMMAND => "qpdf --decrypt --static-id" . " metadata-crypt-filter.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check output", {$td->FILE => 'a.pdf'}, {$td->FILE => 'decrypted-crypt-filter.pdf'}); # Copy encryption parameters $n_tests += 10; $td->runtest("create reference qdf", {$td->COMMAND => "qpdf --qdf --no-original-object-ids minimal.pdf a.qdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("create encrypted file", {$td->COMMAND => "qpdf --encrypt user owner 128 --use-aes=y --extract=n --" . " minimal.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("copy encryption parameters", {$td->COMMAND => "test_driver 30 minimal.pdf a.pdf"}, {$td->STRING => "test 30 done\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output encryption", {$td->COMMAND => "qpdf --show-encryption b.pdf --password=owner"}, {$td->FILE => "copied-encryption.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("convert to qdf", {$td->COMMAND => "qpdf --qdf b.pdf b.qdf" . " --password=owner --no-original-object-ids"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("compare qdf", {$td->COMMAND => "sh ./diff-ignore-ID-version a.qdf b.qdf"}, {$td->STRING => "okay\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("copy encryption with qpdf", {$td->COMMAND => "qpdf --copy-encryption=a.pdf". " --encryption-file-password=user" . " minimal.pdf c.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output encryption", {$td->COMMAND => "qpdf --show-encryption c.pdf --password=owner"}, {$td->FILE => "copied-encryption.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("convert to qdf", {$td->COMMAND => "qpdf --qdf c.pdf c.qdf" . " --password=owner --no-original-object-ids"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("compare qdf", {$td->COMMAND => "sh ./diff-ignore-ID-version a.qdf c.qdf"}, {$td->STRING => "okay\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); # Files with attachments my @attachments = ( 'enc-XI-attachments-base.pdf', 'enc-XI-R6,V5,U=attachment,encrypted-attachments.pdf', 'enc-XI-R6,V5,U=view,attachments,cleartext-metadata.pdf'); $n_tests += 4 * @attachments + 3; foreach my $f (@attachments) { my $pass = ''; my $tpass = ''; if ($f =~ m/U=([^,\.]+)/) { $pass = "--password=$1"; $tpass = $1; } $td->runtest("decrypt $f", {$td->COMMAND => "qpdf --decrypt $pass $f a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("extract attachments", {$td->COMMAND => "test_driver 35 a.pdf"}, {$td->FILE => "attachments.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("copy $f", {$td->COMMAND => "qpdf $pass $f a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("extract attachments", {$td->COMMAND => "test_driver 35 a.pdf $tpass"}, {$td->FILE => "attachments.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); } $td->runtest("unfilterable with crypt", {$td->COMMAND => "test_driver 36 unfilterable-with-crypt.pdf attachment"}, {$td->FILE => "unfilterable-with-crypt-before.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); unlink "a.pdf"; $td->runtest("decrypt file", {$td->COMMAND => "qpdf -decrypt --password=attachment" . " unfilterable-with-crypt.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("copy of unfilterable with crypt", {$td->COMMAND => "test_driver 36 a.pdf attachment"}, {$td->FILE => "unfilterable-with-crypt-after.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); # Raw encryption key my @enc_key = (['user', '--password=user3'], ['owner', '--password=owner3'], ['hex', '--password-is-hex-key --password=35ea16a48b6a3045133b69ac0906c2e8fb0a2cc97903ae17b51a5786ebdba020']); $n_tests += scalar(@enc_key); foreach my $d (@enc_key) { my ($description, $pass) = @$d; $td->runtest("use/show encryption key ($description)", {$td->COMMAND => "qpdf --check --show-encryption-key c-r5-in.pdf $pass"}, {$td->FILE => "c-r5-key-$description.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); } show_ntests(); # ---------- $td->notify("--- Check from C API ---"); my @c_check_types = qw(warn clear); $n_tests += scalar(@c_check_types); foreach my $i (@c_check_types) { $td->runtest("C check $i", {$td->COMMAND => "qpdf-ctest 23 c-check-$i-in.pdf '' -"}, {$td->FILE => "c-check-$i.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); } show_ntests(); # ---------- $td->notify("--- Content Preservation Tests ---"); # $n_tests incremented below my @files = ("encrypted-with-images.pdf", # encrypted "inline-images.pdf", "lin-special.pdf", "object-stream.pdf", "hybrid-xref.pdf"); my @flags = (["-qdf", # 1 "qdf"], ["-qdf --normalize-content=n", # 2 "qdf not normalized"], ["-qdf --stream-data=preserve", # 3 "qdf not uncompressed"], ["-qdf --stream-data=preserve --normalize-content=n", # 4 "qdf not normalized or uncompressed"], ["--stream-data=uncompress", # 5 "uncompresed"], ["--normalize-content=y", # 6 "normalized"], ["--stream-data=uncompress --normalize-content=y", # 7 "uncompressed and normalized"], ["-decrypt", # 8 "decrypted"], ["-linearize", # 9 "linearized"], ["-encrypt \"\" owner 128 --", # 10 "encrypted"], ["-linearize -encrypt \"\" o 128 --", # 11 "linearized and encrypted"], ["", # 12 "no arguments"], ); $n_tests += 1 + (@files * @flags * 2 * 3); $n_compare_pdfs += 1 + (@files * @flags * 2); $n_acroread += (@files * @flags * 2); foreach my $file (@files) { my $base = basename($file, '.pdf'); foreach my $o (qw(disable generate)) { my $n = 0; my $oflags = "--object-streams=$o"; my $odescrip = "os:" . substr($o, 0, 1); my $osuf = ($o eq 'generate' ? "-ogen" : ""); foreach my $d (@flags) { my ($flags, $fdescrip) = @$d; ++$n; system("rm -f *.pnm"); $td->runtest("$file ($odescrip $fdescrip)", {$td->COMMAND => "qpdf $flags $oflags $file a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check status", {$td->COMMAND => "qpdf --check a.pdf"}, {$td->FILE => "$base.$n$osuf.check", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check with C API", {$td->COMMAND => [qw(qpdf-ctest 1 a.pdf), "", ""]}, {$td->FILE => "$base.$n$osuf.c-check", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); compare_pdfs($file, "a.pdf"); if ($have_acroread) { # These tests require Adobe Reader > 7.x to work with # encrypted files. $td->runtest("check with Adobe Reader", {$td->COMMAND => "acroread -toPostScript -pairs a.pdf 1.ps"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); } } flush_tiff_cache(); } } $td->runtest("convert inline-images to qdf", {$td->COMMAND => "qpdf --static-id --no-original-object-ids" . " --qdf inline-images.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); compare_pdfs("inline-images.pdf", "a.pdf"); show_ntests(); # ---------- $td->notify("--- Specialized filtering Tests ---"); $n_tests += 3; $n_compare_pdfs += 1; # The PDF file was submitted on bug #83 on github. All the PNG filters # are exercised. The test suite does not exercise PNG predictors with # LZW because I don't have a way to create such a file, but it's very # likely that it will work since the handling of the PNG filters is # separate from the regular decompression. $td->runtest("decode png-filtering", {$td->COMMAND => "qpdf --static-id" . " --compress-streams=n --decode-level=generalized" . " png-filters.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "png-filters-decoded.pdf"}); compare_pdfs("png-filters.pdf", "a.pdf"); $td->runtest("stream with tiff predictor", {$td->COMMAND => "qpdf --check tiff-predictor.pdf"}, {$td->FILE => "tiff-predictor.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); show_ntests(); # ---------- $td->notify("--- fix-qdf Tests ---"); $n_tests += 5; for (my $n = 1; $n <= 2; ++$n) { $td->runtest("fix-qdf $n", {$td->COMMAND => "fix-qdf fix$n.qdf"}, {$td->FILE => "fix$n.qdf.out", $td->EXIT_STATUS => 0}); $td->runtest("identity fix-qdf $n", {$td->COMMAND => "fix-qdf fix$n.qdf.out"}, {$td->FILE => "fix$n.qdf.out", $td->EXIT_STATUS => 0}); } $td->runtest("fix-qdf with big object stream", # > 255 objects in a stream {$td->COMMAND => "fix-qdf big-ostream.pdf"}, {$td->FILE => "big-ostream.pdf", $td->EXIT_STATUS => 0}); show_ntests(); # ---------- $td->notify("--- Large File Tests ---"); my $nlarge = 1; if (defined $large_file_test_path) { $nlarge = 2; } else { $td->notify("--- Skipping tests on actual large files ---"); } $n_tests += $nlarge * 13; for (my $large = 0; $large < $nlarge; ++$large) { if ($large) { $td->notify("--- Running tests on actual large files ---"); } else { $td->notify("--- Running large file tests on small files ---"); } my $size = ($large ? "large" : "small"); my $file = $large ? "$large_file_test_path/a.pdf" : "a.pdf"; $td->runtest("write test file", {$td->COMMAND => "test_large_file write $size '$file'"}, {$td->FILE => "large_file.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("read test file", {$td->COMMAND => "test_large_file read $size '$file'"}, {$td->FILE => "large_file.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check", {$td->COMMAND => "qpdf --suppress-recovery --check '$file'", $td->FILTER => "grep -v checking"}, {$td->FILE => "large_file-check-normal.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); for my $ostream (0, 1) { for my $linearize (0, 1) { if (($ostream == 0) && ($linearize == 0)) { # Original file has no object streams and is not linearized. next; } my $args = ""; my $omode = $ostream ? "generate" : "disable"; my $lin = $linearize ? "--linearize" : ""; my $newfile = "$file-new"; $td->runtest("transform: ostream=$ostream, linearize=$linearize", {$td->COMMAND => "qpdf --stream-data=preserve" . " --object-streams=$omode" . " $lin '$file' '$newfile'"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("read test file", {$td->COMMAND => "test_large_file read $size '$newfile'"}, {$td->FILE => "large_file.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); my $check_out = ($linearize ? ($ostream ? "large_file-check-ostream-linearized.out" : "large_file-check-linearized.out") : ($ostream ? "large_file-check-ostream.out" : "large_file-check-normal.out")); $td->runtest("check: ostream=$ostream, linearize=$linearize", {$td->COMMAND => "qpdf --suppress-recovery --check '$newfile'", $td->FILTER => "grep -v checking"}, {$td->FILE => $check_out, $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); unlink $newfile; } } # Clobber xref open(F, "+<$file") or die; seek(F, -50, 2); my $pos = tell F; my $buf; read(F, $buf, 50); die unless $buf =~ m/^(.*startxref\n)\d+/s; $pos += length($1); seek(F, $pos, 0) or die; print F "oops" or die; close(F); my $cmd = +{$td->COMMAND => "test_large_file read $size '$file'"}; if ($large) { $cmd->{$td->FILTER} = "sed -e 's,$large_file_test_path/,,'"; } $td->runtest("reconstruct xref table", $cmd, {$td->FILE => "large_file_xref_reconstruct.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); unlink $file; } # ---------- cleanup(); # See comments at beginning about calculation of number of tests. We # do it strictly based on static values, not as a by-product of # running the test suite. $td->report(calc_ntests()); sub calc_ntests { my $result = $n_tests; if ($have_acroread) { $result += $n_acroread; } if ($compare_images) { $result += 3 * ($n_compare_pdfs); } $result; } sub show_ntests { if (0) { $td->emphasize("tests so far: ". calc_ntests()); } } sub check_pdf { my ($description, $command, $output, $status) = @_; unlink "a.pdf"; $td->runtest($description, {$td->COMMAND => "$command a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => $status}); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => $output}); } sub flush_tiff_cache { system("rm -rf tiff-cache"); } sub compare_pdfs { return unless $compare_images; my ($f1, $f2, $exp) = @_; $exp = 0 unless defined $exp; system("rm -rf tif1 tif2"); mkdir "tiff-cache", 0777 unless -d "tiff-cache"; my $md5_1 = get_md5_checksum($f1); my $md5_2 = get_md5_checksum($f2); mkdir "tif1", 0777 or die; mkdir "tif2", 0777 or die; if (-f "tiff-cache/$md5_1.tif") { $td->runtest("get cached original file image", {$td->COMMAND => "cp tiff-cache/$md5_1.tif tif1/a.tif"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); } else { # We discard gs's stderr since it has sometimes been known to # complain about files that are not bad. In particular, gs # 9.04 can't handle empty xref sections such as those found in # the hybrid xref cases. We don't really care whether gs # complains or not as long as it creates correct images. If # it doesn't create correct images, the test will fail, and we # can run manually to see the error message. If it does, then # we don't care about the warning. $td->runtest("convert original file to image", {$td->COMMAND => "(cd tif1;" . " gs 2>$devNull -q -dNOPAUSE -sDEVICE=tiff24nc" . " -sOutputFile=a.tif - < ../$f1)"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); copy("tif1/a.tif", "tiff-cache/$md5_1.tif"); } if (-f "tiff-cache/$md5_2.tif") { $td->runtest("get cached new file image", {$td->COMMAND => "cp tiff-cache/$md5_2.tif tif2/a.tif"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); } else { $td->runtest("convert new file to image", {$td->COMMAND => "(cd tif2;" . " gs 2>$devNull -q -dNOPAUSE -sDEVICE=tiff24nc" . " -sOutputFile=a.tif - < ../$f2)"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); copy("tif2/a.tif", "tiff-cache/$md5_2.tif"); } $td->runtest("compare images", {$td->COMMAND => "tiffcmp -t tif1/a.tif tif2/a.tif"}, {$td->REGEXP => ".*", $td->EXIT_STATUS => $exp}); system("rm -rf tif1 tif2"); } sub check_metadata { my ($file, $exp_encrypted, $exp_cleartext) = @_; my $out = "encrypted=$exp_encrypted; cleartext=$exp_cleartext\n" . "test 6 done\n"; $td->runtest("check metadata: $file", {$td->COMMAND => "test_driver 6 $file"}, {$td->STRING => $out, $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); } sub get_md5_checksum { my $file = shift; open(F, "<$file") or fatal("can't open $file: $!"); binmode F; my $digest = Digest::MD5->new->addfile(*F)->hexdigest; close(F); $digest; } sub cleanup { system("rm -rf *.ps *.pnm ?.pdf ?.qdf *.enc* tif1 tif2 tiff-cache"); system("rm -rf *split-out*"); } qpdf-8.0.2/qpdf/test_pdf_doc_encoding.cc0000644000064100006410000000162313247541377016314 0ustar ejbejb#include #include #include #include #include static char const* whoami = 0; void usage() { std::cerr << "Usage: " << whoami << " infile" << std::endl; exit(2); } int main(int argc, char* argv[]) { if ((whoami = strrchr(argv[0], '/')) == NULL) { whoami = argv[0]; } else { ++whoami; } // For libtool's sake.... if (strncmp(whoami, "lt-", 3) == 0) { whoami += 3; } if (argc != 2) { usage(); } char const* infilename = argv[1]; std::list lines = QUtil::read_lines_from_file(infilename); for (std::list::iterator iter = lines.begin(); iter != lines.end(); ++iter) { QPDFObjectHandle str = QPDFObjectHandle::newString(*iter); std::cout << str.getUTF8Value() << std::endl; } return 0; } qpdf-8.0.2/qpdf/pdf_from_scratch.cc0000644000064100006410000000550113247541377015313 0ustar ejbejb#include #include #include #include #include #include #include #include #include #include static char const* whoami = 0; void usage() { std::cerr << "Usage: " << whoami << " n" << std::endl; exit(2); } static QPDFObjectHandle createPageContents(QPDF& pdf, std::string const& text) { std::string contents = "BT /F1 15 Tf 72 720 Td (" + text + ") Tj ET\n"; return QPDFObjectHandle::newStream(&pdf, contents); } QPDFObjectHandle newName(std::string const& name) { return QPDFObjectHandle::newName(name); } void runtest(int n) { QPDF pdf; pdf.emptyPDF(); if (n == 0) { // Create a minimal PDF from scratch. QPDFObjectHandle font = pdf.makeIndirectObject( QPDFObjectHandle::parse("<<" " /Type /Font" " /Subtype /Type1" " /Name /F1" " /BaseFont /Helvetica" " /Encoding /WinAnsiEncoding" ">>")); QPDFObjectHandle procset = pdf.makeIndirectObject( QPDFObjectHandle::parse("[/PDF /Text]")); QPDFObjectHandle contents = createPageContents(pdf, "First Page"); QPDFObjectHandle mediabox = QPDFObjectHandle::parse("[0 0 612 792]"); QPDFObjectHandle rfont = QPDFObjectHandle::newDictionary(); rfont.replaceKey("/F1", font); QPDFObjectHandle resources = QPDFObjectHandle::newDictionary(); resources.replaceKey("/ProcSet", procset); resources.replaceKey("/Font", rfont); QPDFObjectHandle page = pdf.makeIndirectObject( QPDFObjectHandle::newDictionary()); page.replaceKey("/Type", newName("/Page")); page.replaceKey("/MediaBox", mediabox); page.replaceKey("/Contents", contents); page.replaceKey("/Resources", resources); pdf.addPage(page, true); QPDFWriter w(pdf, "a.pdf"); w.setStaticID(true); w.setStreamDataMode(qpdf_s_preserve); w.write(); } else { throw std::runtime_error(std::string("invalid test ") + QUtil::int_to_string(n)); } std::cout << "test " << n << " done" << std::endl; } int main(int argc, char* argv[]) { QUtil::setLineBuf(stdout); if ((whoami = strrchr(argv[0], '/')) == NULL) { whoami = argv[0]; } else { ++whoami; } // For libtool's sake.... if (strncmp(whoami, "lt-", 3) == 0) { whoami += 3; } if (argc != 2) { usage(); } try { int n = QUtil::string_to_int(argv[1]); runtest(n); } catch (std::exception& e) { std::cerr << e.what() << std::endl; exit(2); } return 0; } qpdf-8.0.2/qpdf/qpdf.testcov0000644000064100006410000002650313247541377014051 0ustar ejbejbignored-scope: libtests QPDF err expected endobj 0 QPDF err wrong objid/generation 0 QPDF check objid 1 QPDF check generation 1 QPDF check obj 1 QPDF hint table length indirect 0 QPDF hint table length direct 0 QPDF P absent in lindict 0 QPDF P present in lindict 0 QPDF expected n n obj 0 QPDF /L mismatch 0 QPDF err /T mismatch 0 QPDF err /O mismatch 0 QPDF opt direct pages resource 1 QPDF opt inheritable keys 0 QPDF opt no inheritable keys 0 QPDF opt erase empty key ancestor 0 QPDF opt resource inherited 0 QPDF opt page resource hides ancestor 0 QPDF opt key ancestors depth > 1 0 QPDF opt loop detected 0 QPDF categorize pagemode present 1 QPDF categorize pagemode outlines 1 QPDF warn /E mismatch 0 QPDF lin outlines in part 1 QPDF lin nshared_total > nshared_first_page 1 QPDF lin part 8 empty 1 QPDF lin check shared past first page 0 QPDFWriter flatten array null 0 main QTest implicit 0 main QTest indirect 1 main QTest null 0 main QTest bool 1 main QTest int 0 main QTest real 0 main QTest name 0 main QTest string 0 main QTest array 0 main QTest array indirect 1 main QTest dictionary 0 main QTest dictionary indirect 1 main QTest stream 0 QPDFWriter write to stdout 0 QPDFWriter write to file 0 QPDF lin write nshared_total > nshared_first_page 1 QPDFWriter encrypted hint stream 0 QPDF opt inherited scalar 0 QPDF xref reused object 0 QPDF xref gen > 0 1 QPDF xref size mismatch 0 QPDF not a pdf file 0 QPDF can't find startxref 0 QPDF invalid xref 0 QPDF invalid xref entry 0 QPDF missing trailer 0 QPDF trailer lacks size 0 QPDF trailer size not integer 0 QPDF trailer prev not integer 0 QPDFObjectHandle bad brace 0 QPDFObjectHandle bad array close 0 QPDF stream without length 0 QPDF stream length not integer 0 QPDF missing endstream 0 QPDFObjectHandle bad dictionary close 0 QPDF can't find xref 0 QPDFTokenizer bad ) 0 QPDFTokenizer bad > 0 QPDFTokenizer bad hexstring character 0 QPDFTokenizer null in name 0 QPDFTokenizer bad name 0 QPDF_Stream invalid filter 0 QPDF UseOutlines but no Outlines 0 QPDFObjectHandle clone bool 0 QPDFObjectHandle clone null 0 QPDFObjectHandle clone integer 0 QPDFObjectHandle clone real 0 QPDFObjectHandle clone name 0 QPDFObjectHandle clone string 0 QPDFObjectHandle clone array 0 QPDFObjectHandle clone dictionary 0 QPDFObjectHandle makeDirect loop 0 QPDFObjectHandle ERR clone stream 0 QPDFTokenizer allow pound anywhere in name 0 QPDF indirect last obj from xref 1 QPDF default for xref stream field 0 0 QPDF prev key in xref stream dictionary 0 QPDF prev key in trailer dictionary 0 QPDF found xref stream 0 QPDF ignoring XRefStm in trailer 0 QPDF xref deleted object 0 QPDF_Stream PNG filter 0 QPDF xref /Index is null 0 QPDF xref /Index is array 1 QPDFWriter copy Extends 0 QPDFWriter encrypt object stream 0 QPDFWriter uncompressing page dictionary 0 QPDFWriter uncompressing root 0 QPDFWriter compressing uncompressed stream 0 QPDF exclude indirect length 0 QPDFWriter generate >1 ostream 0 QPDF exclude encryption dictionary 0 QPDF loop detected traversing objects 0 QPDF reconstructed xref table 0 QPDF recovered in readObjectAtOffset 0 QPDF recovered stream length 0 QPDF found wrong endstream in recovery 0 QPDF_Stream pipeStreamData with null pipeline 0 QPDFWriter not recompressing /FlateDecode 0 QPDF_encryption xref stream from encrypted file 0 qpdf unable to filter 0 QPDF_String non-trivial UTF-16 0 QPDF xref overwrite object 0 QPDF decoding error warning 0 qpdf-c called qpdf_init 0 qpdf-c called qpdf_cleanup 0 qpdf-c called qpdf_more_warnings 0 qpdf-c qpdf_get_error returned error 0 qpdf-c qpdf_next_warning returned warning 0 qpdf-c called qpdf_set_suppress_warnings 0 qpdf-c called qpdf_set_ignore_xref_streams 0 qpdf-c called qpdf_set_attempt_recovery 0 qpdf-c called qpdf_read 2 qpdf-c called qpdf_get_pdf_version 0 qpdf-c called qpdf_get_user_password 0 qpdf-c called qpdf_is_linearized 0 qpdf-c called qpdf_is_encrypted 0 qpdf-c called qpdf_init_write 3 qpdf-c called qpdf_set_object_stream_mode 0 qpdf-c called qpdf_set_stream_data_mode 0 qpdf-c called qpdf_set_content_normalization 0 qpdf-c called qpdf_set_qdf_mode 0 qpdf-c called qpdf_set_static_ID 0 qpdf-c called qpdf_set_suppress_original_object_IDs 0 qpdf-c called qpdf_set_preserve_encryption 0 qpdf-c called qpdf_set_r2_encryption_parameters 0 qpdf-c called qpdf_set_r3_encryption_parameters 0 qpdf-c called qpdf_set_linearization 0 qpdf-c called qpdf_write 1 qpdf-c called qpdf_allow_accessibility 0 qpdf-c called qpdf_allow_extract_all 0 qpdf-c called qpdf_allow_print_low_res 0 qpdf-c called qpdf_allow_print_high_res 0 qpdf-c called qpdf_allow_modify_assembly 0 qpdf-c called qpdf_allow_modify_form 0 qpdf-c called qpdf_allow_modify_annotation 0 qpdf-c called qpdf_allow_modify_other 0 qpdf-c called qpdf_allow_modify_all 0 QPDFWriter increasing minimum version 1 QPDFWriter using forced PDF version 0 qpdf-c called qpdf_set_minimum_pdf_version 0 qpdf-c called qpdf_force_pdf_version 0 qpdf-c called qpdf_init_write multiple times 0 QPDF_encryption rc4 decode string 0 QPDF_encryption rc4 decode stream 0 QPDFWriter not compressing metadata 0 QPDF_encryption CFM V2 0 QPDF_encryption CFM AESV2 0 QPDF_encryption aes decode string 0 QPDF_encryption cleartext metadata 0 QPDF_encryption aes decode stream 0 QPDFWriter forcing object stream disable 0 QPDFWriter forced version disabled encryption 0 qpdf-c called qpdf_set_r4_encryption_parameters 0 qpdf-c called qpdf_set_static_aes_IV 0 QPDF_encryption stream crypt filter 0 QPDF ERR object stream with wrong type 0 QPDF object gone after xref reconstruction 0 qpdf-c called qpdf_has_error 0 qpdf-c called qpdf_get_qpdf_version 0 QPDF_Stream pipe original stream data 0 QPDF_Stream pipe replaced stream data 0 QPDF_Stream pipe use stream provider 0 QPDF_Stream provider length mismatch 0 QPDFObjectHandle newStream 0 QPDFObjectHandle newStream with data 0 QPDF_Stream pipe no stream data 0 QPDFObjectHandle prepend page contents 0 QPDFObjectHandle append page contents 0 QPDF_Stream getRawStreamData 0 QPDF_Stream getStreamData 0 QPDF_Stream expand filter abbreviation 0 qpdf-c called qpdf_read_memory 0 QPDF stream without newline 0 QPDF stream with CR only 0 QPDF stream with CRNL 0 QPDF stream with NL only 0 QPDF replaceObject called with indirect object 0 QPDFWriter copy encrypt metadata 1 qpdf-c get_info_key 1 qpdf-c set_info_key to value 0 qpdf-c set_info_key to null 0 qpdf-c set-info-key use existing info 0 qpdf-c add info to trailer 0 qpdf-c called qpdf_init_write_memory 0 exercise processFile(name) 0 exercise processFile(FILE*) 0 exercise processMemoryFile 0 QPDF duplicate page reference 0 QPDF remove page 2 QPDF insert page 2 QPDF updateAllPagesCache 0 QPDF insert non-indirect page 0 QPDF insert indirect page 0 QPDFObjectHandle ERR shallow copy stream 0 QPDFObjectHandle shallow copy array 0 QPDFObjectHandle shallow copy dictionary 0 QPDFObjectHandle shallow copy scalar 0 QPDFObjectHandle newStream with string 0 QPDF unknown key not inherited 0 QPDF_Stream provider length not provided 0 QPDF_Stream unknown stream length 0 QPDF replaceReserved 0 QPDF copyForeign direct 0 QPDF copyForeign not foreign 0 QPDF copy indirect 0 QPDF loop reserving objects 0 QPDF replace indirect 0 QPDF replace array 0 QPDF replace dictionary 0 QPDF replace stream 0 QPDF reserve array 0 QPDF reserve dictionary 0 QPDF reserve stream 0 QPDF not crossing page boundary 0 QPDF replace foreign indirect with null 0 QPDF not copying pages object 0 QPDF insert foreign page 0 QPDFWriter foreign object 0 QPDFWriter copy use_aes 1 QPDFObjectHandle indirect without context 0 QPDFObjectHandle trailing data in parse 0 qpdf pages encryption password 0 QPDFTokenizer EOF reading token 0 QPDFTokenizer EOF reading appendable token 0 QPDFWriter extra header text no newline 0 QPDFWriter extra header text add newline 0 QPDF bogus 0 offset 0 QPDF global offset 0 QPDFWriter make stream key direct 0 QPDFWriter copy V5 0 QPDFWriter increasing extension level 0 QPDFWriter make Extensions direct 0 QPDFWriter make ADBE direct 1 QPDFWriter preserve Extensions 0 QPDFWriter create Extensions 1 QPDFWriter remove ADBE 0 QPDFWriter remove existing Extensions 0 QPDFWriter preserve ADBE 0 QPDF_encryption skip 0x28 0 QPDF_encrypt crypt array 0 QPDF_encryption CFM AESV3 0 QPDFWriter remove Crypt 0 qpdf-c called qpdf_get_pdf_extension_level 0 qpdf-c called qpdf_set_r5_encryption_parameters 0 qpdf-c called qpdf_set_r6_encryption_parameters 0 QPDFObjectHandle EOF in inline image 0 QPDFObjectHandle inline image token 0 QPDF not caching overridden objstm object 0 QPDFWriter original obj non-zero gen 0 QPDF_optimization indirect outlines 0 QPDF xref space 2 qpdf pages range omitted at end 0 qpdf pages range omitted in middle 0 qpdf npages 0 QPDF already reserved object 0 QPDFWriter standard deterministic ID 1 QPDFWriter linearized deterministic ID 1 QPDFWriter deterministic with no data 0 qpdf-c called qpdf_set_deterministic_ID 0 QPDFObjectHandle indirect with 0 objid 0 QPDF object id 0 0 QPDF recursion loop in resolve 0 QPDFObjectHandle treat word as string 0 QPDFObjectHandle found fake 1 QPDFObjectHandle no val for last key 0 QPDF resolve failure to null 0 QPDFWriter preserve unreferenced standard 0 QPDFObjectHandle errors in parsecontent 0 QPDF stream with non-space 0 qpdf same file error 0 qpdf read args from stdin 0 qpdf read args from file 0 qpdf split-pages %d 0 qpdf split-pages .pdf 0 qpdf split-pages other 0 QPDFTokenizer allowing bad token 0 QPDF ignore first space in xref entry 0 QPDF ignore first extra space in xref entry 0 QPDF ignore second extra space in xref entry 0 QPDF ignore length error xref entry 0 QPDF_encryption pad short parameter 0 QPDFWriter ignore self-referential object stream 0 QPDFObjectHandle found old angle 1 QPDF_Stream special filters 3 QPDFTokenizer block long token 0 qpdf-c called qpdf_set_decode_level 0 qpdf-c called qpdf_set_compress_streams 0 qpdf-c called qpdf_set_preserve_unreferenced_objects 0 qpdf-c called qpdf_set_newline_before_endstream 0 QPDF_Stream TIFF predictor 0 QPDFTokenizer inline image at EOF 0 Pl_QPDFTokenizer found ID 0 QPDFObjectHandle non-stream in stream array 0 QPDFObjectHandle coalesce called on stream 0 QPDFObjectHandle coalesce provide stream data 0 QPDF_Stream bad token at end during normalize 0 QPDFObjectHandle bad token in parse 0 QPDFObjectHandle eof in parseInternal 0 QPDFObjectHandle array bounds 0 QPDFObjectHandle boolean returning false 0 QPDFObjectHandle integer returning 0 0 QPDFObjectHandle real returning 0.0 0 QPDFObjectHandle name returning dummy name 0 QPDFObjectHandle string returning empty string 0 QPDFObjectHandle string returning empty utf8 0 QPDFObjectHandle operator returning fake value 0 QPDFObjectHandle inlineimage returning empty data 0 QPDFObjectHandle array treating as empty 0 QPDFObjectHandle array null for non-array 0 QPDFObjectHandle array treating as empty vector 0 QPDFObjectHandle array ignoring set item 0 QPDFObjectHandle array ignoring replace items 0 QPDFObjectHandle array ignoring insert item 0 QPDFObjectHandle array ignoring append item 0 QPDFObjectHandle array ignoring erase item 0 QPDFObjectHandle dictionary false for hasKey 0 QPDFObjectHandle dictionary null for getKey 0 QPDFObjectHandle dictionary empty set for getKeys 0 QPDFObjectHandle dictionary empty map for asMap 0 QPDFObjectHandle dictionary ignoring replaceKey 0 QPDFObjectHandle dictionary ignoring removeKey 0 QPDFObjectHandle dictionary ignoring removereplace 0 QPDFObjectHandle numeric non-numeric 0 QPDFObjectHandle erase array bounds 0 qpdf-c called qpdf_check_pdf 0 QPDF xref loop 0 qpdf-8.0.2/qpdf/test_large_file.cc0000644000064100006410000002301213247541377015135 0ustar ejbejb// NOTE: This test program doesn't do anything special to enable large // file support. This is important since it verifies that programs // don't have to do anything special -- all the work is done // internally by the library as long as they don't do their own file // I/O. #include #include #include #include #include #include #include #include // Run "test_large_file write small a.pdf" to get a PDF file that you // can look at in a reader. // This program reads and writes specially crafted files for testing // large file support. In write mode, write a file of npages pages // where each page contains unique text and a unique image. The image // is a binary representation of the page number. The image contains // horizontal stripes with light stripes representing 1, dark stripes // representing 0, and the high bit on top. In read mode, read the // file back checking to make sure all the image data and page // contents are as expected. // Running this is small mode produces a small file that is easy to // look at in any viewer. Since there is no question about proper // functionality for small files, writing and reading the small file // allows the qpdf library to test this test program. Writing and // reading the large file then allows us to verify large file support // with confidence. static char const* whoami = 0; // Height should be a multiple of 10 static int const nstripes = 10; static int const stripesize_large = 500; static int const stripesize_small = 5; static int const npages = 200; // initialized in main int stripesize = 0; int width = 0; int height = 0; static unsigned char* buf = 0; static inline unsigned char get_pixel_color(int n, size_t row) { return (n & (1 << (nstripes - 1 - row))) ? '\xc0' : '\x40'; } class ImageChecker: public Pipeline { public: ImageChecker(int n); virtual ~ImageChecker(); virtual void write(unsigned char* data, size_t len); virtual void finish(); private: int n; size_t offset; bool okay; }; ImageChecker::ImageChecker(int n) : Pipeline("image checker", 0), n(n), offset(0), okay(true) { } ImageChecker::~ImageChecker() { } void ImageChecker::write(unsigned char* data, size_t len) { for (size_t i = 0; i < len; ++i) { size_t y = (this->offset + i) / width / stripesize; unsigned char color = get_pixel_color(n, y); if (data[i] != color) { okay = false; } } this->offset += len; } void ImageChecker::finish() { if (! okay) { std::cout << "errors found checking image data for page " << n << std::endl; } } class ImageProvider: public QPDFObjectHandle::StreamDataProvider { public: ImageProvider(int n); virtual ~ImageProvider(); virtual void provideStreamData(int objid, int generation, Pipeline* pipeline); private: int n; }; ImageProvider::ImageProvider(int n) : n(n) { } ImageProvider::~ImageProvider() { } void ImageProvider::provideStreamData(int objid, int generation, Pipeline* pipeline) { if (buf == 0) { buf = new unsigned char[width * stripesize]; } std::cout << "page " << n << " of " << npages << std::endl; for (int y = 0; y < nstripes; ++y) { unsigned char color = get_pixel_color(n, y); memset(buf, color, width * stripesize); pipeline->write(buf, width * stripesize); } pipeline->finish(); } void usage() { std::cerr << "Usage: " << whoami << " {read|write} {large|small} outfile" << std::endl; exit(2); } static void set_parameters(bool large) { stripesize = large ? stripesize_large : stripesize_small; height = nstripes * stripesize; width = height; } std::string generate_page_contents(int pageno) { std::string contents = "BT /F1 24 Tf 72 720 Td (page " + QUtil::int_to_string(pageno) + ") Tj ET\n" "q 468 0 0 468 72 72 cm /Im1 Do Q\n"; return contents; } static QPDFObjectHandle create_page_contents(QPDF& pdf, int pageno) { return QPDFObjectHandle::newStream(&pdf, generate_page_contents(pageno)); } QPDFObjectHandle newName(std::string const& name) { return QPDFObjectHandle::newName(name); } QPDFObjectHandle newInteger(int val) { return QPDFObjectHandle::newInteger(val); } static void create_pdf(char const* filename) { QPDF pdf; pdf.emptyPDF(); QPDFObjectHandle font = pdf.makeIndirectObject( QPDFObjectHandle::newDictionary()); font.replaceKey("/Type", newName("/Font")); font.replaceKey("/Subtype", newName("/Type1")); font.replaceKey("/Name", newName("/F1")); font.replaceKey("/BaseFont", newName("/Helvetica")); font.replaceKey("/Encoding", newName("/WinAnsiEncoding")); QPDFObjectHandle procset = pdf.makeIndirectObject(QPDFObjectHandle::newArray()); procset.appendItem(newName("/PDF")); procset.appendItem(newName("/Text")); procset.appendItem(newName("/ImageC")); QPDFObjectHandle rfont = QPDFObjectHandle::newDictionary(); rfont.replaceKey("/F1", font); QPDFObjectHandle mediabox = QPDFObjectHandle::newArray(); mediabox.appendItem(newInteger(0)); mediabox.appendItem(newInteger(0)); mediabox.appendItem(newInteger(612)); mediabox.appendItem(newInteger(792)); for (int pageno = 1; pageno <= npages; ++pageno) { QPDFObjectHandle image = QPDFObjectHandle::newStream(&pdf); QPDFObjectHandle image_dict = image.getDict(); image_dict.replaceKey("/Type", newName("/XObject")); image_dict.replaceKey("/Subtype", newName("/Image")); image_dict.replaceKey("/ColorSpace", newName("/DeviceGray")); image_dict.replaceKey("/BitsPerComponent", newInteger(8)); image_dict.replaceKey("/Width", newInteger(width)); image_dict.replaceKey("/Height", newInteger(height)); ImageProvider* p = new ImageProvider(pageno); PointerHolder provider(p); image.replaceStreamData(provider, QPDFObjectHandle::newNull(), QPDFObjectHandle::newNull()); QPDFObjectHandle xobject = QPDFObjectHandle::newDictionary(); xobject.replaceKey("/Im1", image); QPDFObjectHandle resources = QPDFObjectHandle::newDictionary(); resources.replaceKey("/ProcSet", procset); resources.replaceKey("/Font", rfont); resources.replaceKey("/XObject", xobject); QPDFObjectHandle contents = create_page_contents(pdf, pageno); QPDFObjectHandle page = pdf.makeIndirectObject( QPDFObjectHandle::newDictionary()); page.replaceKey("/Type", newName("/Page")); page.replaceKey("/MediaBox", mediabox); page.replaceKey("/Contents", contents); page.replaceKey("/Resources", resources); pdf.addPage(page, false); } QPDFWriter w(pdf, filename); w.setStaticID(true); // for testing only w.setStreamDataMode(qpdf_s_preserve); w.setObjectStreamMode(qpdf_o_disable); w.write(); } static void check_page_contents(int pageno, QPDFObjectHandle page) { PointerHolder buf = page.getKey("/Contents").getStreamData(); std::string actual_contents = std::string(reinterpret_cast(buf->getBuffer()), buf->getSize()); std::string expected_contents = generate_page_contents(pageno); if (expected_contents != actual_contents) { std::cout << "page contents wrong for page " << pageno << std::endl << "ACTUAL: " << actual_contents << "EXPECTED: " << expected_contents << "----\n"; } } static void check_image(int pageno, QPDFObjectHandle page) { QPDFObjectHandle image = page.getKey("/Resources").getKey("/XObject").getKey("/Im1"); ImageChecker ic(pageno); image.pipeStreamData(&ic, 0, qpdf_dl_specialized); } static void check_pdf(char const* filename) { QPDF pdf; pdf.processFile(filename); std::vector const& pages = pdf.getAllPages(); assert(pages.size() == static_cast(npages)); for (int i = 0; i < npages; ++i) { int pageno = i + 1; std::cout << "page " << pageno << " of " << npages << std::endl; check_page_contents(pageno, pages.at(i)); check_image(pageno, pages.at(i)); } } int main(int argc, char* argv[]) { whoami = QUtil::getWhoami(argv[0]); QUtil::setLineBuf(stdout); // For libtool's sake.... if (strncmp(whoami, "lt-", 3) == 0) { whoami += 3; } if (argc != 4) { usage(); } char const* operation = argv[1]; char const* size = argv[2]; char const* filename = argv[3]; bool op_write = false; bool size_large = false; if (strcmp(operation, "write") == 0) { op_write = true; } else if (strcmp(operation, "read") == 0) { op_write = false; } else { usage(); } if (strcmp(size, "large") == 0) { size_large = true; } else if (strcmp(size, "small") == 0) { size_large = false; } else { usage(); } set_parameters(size_large); try { if (op_write) { create_pdf(filename); } else { check_pdf(filename); } } catch (std::exception& e) { std::cerr << e.what() << std::endl; exit(2); } delete [] buf; return 0; } qpdf-8.0.2/qpdf/test_driver.cc0000644000064100006410000014142513247541377014350 0ustar ejbejb// This program tests miscellaneous functionality in the qpdf library // that we don't want to pollute the qpdf program with. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include static char const* whoami = 0; void usage() { std::cerr << "Usage: " << whoami << " n filename1 [arg2]" << std::endl; exit(2); } class Provider: public QPDFObjectHandle::StreamDataProvider { public: Provider(PointerHolder b) : b(b), bad_length(false) { } virtual ~Provider() { } virtual void provideStreamData(int objid, int generation, Pipeline* p) { p->write(b->getBuffer(), b->getSize()); if (this->bad_length) { unsigned char ch = ' '; p->write(&ch, 1); } p->finish(); } void badLength(bool v) { this->bad_length = v; } private: PointerHolder b; bool bad_length; }; class ParserCallbacks: public QPDFObjectHandle::ParserCallbacks { public: virtual ~ParserCallbacks() { } virtual void handleObject(QPDFObjectHandle); virtual void handleEOF(); }; void ParserCallbacks::handleObject(QPDFObjectHandle obj) { if (obj.isName() && (obj.getName() == "/Abort")) { std::cout << "test suite: terminating parsing" << std::endl; terminateParsing(); } std::cout << obj.getTypeName() << ": "; if (obj.isInlineImage()) { // Exercise getTypeCode assert(obj.getTypeCode() == QPDFObject::ot_inlineimage); std::cout << QUtil::hex_encode(obj.getInlineImageValue()) << std::endl; } else { std::cout << obj.unparse() << std::endl; } } void ParserCallbacks::handleEOF() { std::cout << "-EOF-" << std::endl; } class TokenFilter: public QPDFObjectHandle::TokenFilter { public: TokenFilter() { } virtual ~TokenFilter() { } virtual void handleToken(QPDFTokenizer::Token const& t) { if (t == QPDFTokenizer::Token(QPDFTokenizer::tt_string, "Potato")) { // Exercise unparsing of strings by token constructor writeToken( QPDFTokenizer::Token(QPDFTokenizer::tt_string, "Salad")); } else { writeToken(t); } } virtual void handleEOF() { writeToken(QPDFTokenizer::Token(QPDFTokenizer::tt_name, "/bye")); write("\n"); } }; static std::string getPageContents(QPDFObjectHandle page) { PointerHolder b1 = page.getKey("/Contents").getStreamData(); return std::string( reinterpret_cast(b1->getBuffer()), b1->getSize()) + "\0"; } static void checkPageContents(QPDFObjectHandle page, std::string const& wanted_string) { std::string contents = getPageContents(page); if (contents.find(wanted_string) == std::string::npos) { std::cout << "didn't find " << wanted_string << " in " << contents << std::endl; } } static QPDFObjectHandle createPageContents(QPDF& pdf, std::string const& text) { std::string contents = "BT /F1 15 Tf 72 720 Td (" + text + ") Tj ET\n"; return QPDFObjectHandle::newStream(&pdf, contents); } void runtest(int n, char const* filename1, char const* arg2) { // Most tests here are crafted to work on specific files. Look at // the test suite to see how the test is invoked to find the file // that the test is supposed to operate on. if (n == 0) { // Throw in some random test cases that don't fit anywhere // else. This is in addition to whatever else is going on in // test 0. // The code to trim user passwords looks for 0x28 (which is // "(") since it marks the beginning of the padding. Exercise // the code to make sure it skips over 0x28 characters that // aren't part of padding. std::string password( "1234567890123456789012(45678\x28\xbf\x4e\x5e"); assert(password.length() == 32); QPDF::trim_user_password(password); assert(password == "1234567890123456789012(45678"); QPDFObjectHandle uninitialized; assert(uninitialized.getTypeCode() == QPDFObject::ot_uninitialized); assert(strcmp(uninitialized.getTypeName(), "uninitialized") == 0); } QPDF pdf; PointerHolder file_buf; FILE* filep = 0; if (n == 0) { pdf.setAttemptRecovery(false); } if (((n == 35) || (n == 36)) && (arg2 != 0)) { // arg2 is password pdf.processFile(filename1, arg2); } else if (n % 2 == 0) { if (n % 4 == 0) { QTC::TC("qpdf", "exercise processFile(name)"); pdf.processFile(filename1); } else { QTC::TC("qpdf", "exercise processFile(FILE*)"); filep = QUtil::safe_fopen(filename1, "rb"); pdf.processFile(filename1, filep, false); } } else { QTC::TC("qpdf", "exercise processMemoryFile"); FILE* f = QUtil::safe_fopen(filename1, "rb"); fseek(f, 0, SEEK_END); size_t size = QUtil::tell(f); fseek(f, 0, SEEK_SET); file_buf = PointerHolder(true, new char[size]); char* buf_p = file_buf.getPointer(); size_t bytes_read = 0; size_t len = 0; while ((len = fread(buf_p + bytes_read, 1, size - bytes_read, f)) > 0) { bytes_read += len; } if (bytes_read != size) { if (ferror(f)) { throw std::runtime_error( std::string("failure reading file ") + filename1 + " into memory: read " + QUtil::int_to_string(bytes_read) + "; wanted " + QUtil::int_to_string(size)); } else { throw std::logic_error( std::string("premature eof reading file ") + filename1 + " into memory: read " + QUtil::int_to_string(bytes_read) + "; wanted " + QUtil::int_to_string(size)); } } fclose(f); pdf.processMemoryFile(filename1, buf_p, size); } if ((n == 0) || (n == 1)) { QPDFObjectHandle trailer = pdf.getTrailer(); QPDFObjectHandle qtest = trailer.getKey("/QTest"); if (! trailer.hasKey("/QTest")) { // This will always happen when /QTest is null because // hasKey returns false for null keys regardless of // whether the key exists or not. That way there's never // any difference between a key that is present and null // and a key that is absent. QTC::TC("qpdf", "main QTest implicit"); std::cout << "/QTest is implicit" << std::endl; } QTC::TC("qpdf", "main QTest indirect", qtest.isIndirect() ? 1 : 0); std::cout << "/QTest is " << (qtest.isIndirect() ? "in" : "") << "direct and has type " << qtest.getTypeName() << " (" << qtest.getTypeCode() << ")" << std::endl; if (qtest.isNull()) { QTC::TC("qpdf", "main QTest null"); std::cout << "/QTest is null" << std::endl; } else if (qtest.isBool()) { QTC::TC("qpdf", "main QTest bool", qtest.getBoolValue() ? 1 : 0); std::cout << "/QTest is Boolean with value " << (qtest.getBoolValue() ? "true" : "false") << std::endl; } else if (qtest.isInteger()) { QTC::TC("qpdf", "main QTest int"); std::cout << "/QTest is an integer with value " << qtest.getIntValue() << std::endl; } else if (qtest.isReal()) { QTC::TC("qpdf", "main QTest real"); std::cout << "/QTest is a real number with value " << qtest.getRealValue() << std::endl; } else if (qtest.isName()) { QTC::TC("qpdf", "main QTest name"); std::cout << "/QTest is a name with value " << qtest.getName() << std::endl; } else if (qtest.isString()) { QTC::TC("qpdf", "main QTest string"); std::cout << "/QTest is a string with value " << qtest.getStringValue() << std::endl; } else if (qtest.isArray()) { QTC::TC("qpdf", "main QTest array"); int n = qtest.getArrayNItems(); std::cout << "/QTest is an array with " << n << " items" << std::endl; for (int i = 0; i < n; ++i) { QTC::TC("qpdf", "main QTest array indirect", qtest.getArrayItem(i).isIndirect() ? 1 : 0); std::cout << " item " << i << " is " << (qtest.getArrayItem(i).isIndirect() ? "in" : "") << "direct" << std::endl; } } else if (qtest.isDictionary()) { QTC::TC("qpdf", "main QTest dictionary"); std::cout << "/QTest is a dictionary" << std::endl; std::set keys = qtest.getKeys(); for (std::set::iterator iter = keys.begin(); iter != keys.end(); ++iter) { QTC::TC("qpdf", "main QTest dictionary indirect", (qtest.getKey(*iter).isIndirect() ? 1 : 0)); std::cout << " " << *iter << " is " << (qtest.getKey(*iter).isIndirect() ? "in" : "") << "direct" << std::endl; } } else if (qtest.isStream()) { QTC::TC("qpdf", "main QTest stream"); std::cout << "/QTest is a stream. Dictionary: " << qtest.getDict().unparse() << std::endl; std::cout << "Raw stream data:" << std::endl; std::cout.flush(); QUtil::binary_stdout(); PointerHolder out = new Pl_StdioFile("raw", stdout); qtest.pipeStreamData(out.getPointer(), 0, qpdf_dl_none); std::cout << std::endl << "Uncompressed stream data:" << std::endl; if (qtest.pipeStreamData(0, 0, qpdf_dl_all)) { std::cout.flush(); QUtil::binary_stdout(); out = new Pl_StdioFile("filtered", stdout); qtest.pipeStreamData(out.getPointer(), 0, qpdf_dl_all); std::cout << std::endl << "End of stream data" << std::endl; } else { std::cout << "Stream data is not filterable." << std::endl; } } else { // Should not happen! std::cout << "/QTest is an unknown object" << std::endl; } std::cout << "unparse: " << qtest.unparse() << std::endl << "unparseResolved: " << qtest.unparseResolved() << std::endl; } else if (n == 2) { // Encrypted file. This test case is designed for a specific // PDF file. QPDFObjectHandle trailer = pdf.getTrailer(); std::cout << trailer.getKey("/Info"). getKey("/CreationDate").getStringValue() << std::endl; std::cout << trailer.getKey("/Info"). getKey("/Producer").getStringValue() << std::endl; QPDFObjectHandle encrypt = trailer.getKey("/Encrypt"); std::cout << encrypt.getKey("/O").unparse() << std::endl; std::cout << encrypt.getKey("/U").unparse() << std::endl; QPDFObjectHandle root = pdf.getRoot(); QPDFObjectHandle pages = root.getKey("/Pages"); QPDFObjectHandle kids = pages.getKey("/Kids"); QPDFObjectHandle page = kids.getArrayItem(1); // second page QPDFObjectHandle contents = page.getKey("/Contents"); QUtil::binary_stdout(); PointerHolder out = new Pl_StdioFile("filtered", stdout); contents.pipeStreamData(out.getPointer(), 0, qpdf_dl_generalized); } else if (n == 3) { QPDFObjectHandle streams = pdf.getTrailer().getKey("/QStreams"); for (int i = 0; i < streams.getArrayNItems(); ++i) { QPDFObjectHandle stream = streams.getArrayItem(i); std::cout << "-- stream " << i << " --" << std::endl; std::cout.flush(); QUtil::binary_stdout(); PointerHolder out = new Pl_StdioFile("tokenized stream", stdout); stream.pipeStreamData(out.getPointer(), qpdf_ef_normalize, qpdf_dl_generalized); } } else if (n == 4) { // Mutability testing: Make /QTest direct recursively, then // copy to /Info. Also make some other mutations so we can // tell the difference and ensure that the original /QTest // isn't effected. QPDFObjectHandle trailer = pdf.getTrailer(); QPDFObjectHandle qtest = trailer.getKey("/QTest"); qtest.makeDirect(); qtest.removeKey("/Subject"); qtest.replaceKey("/Author", QPDFObjectHandle::newString("Mr. Potato Head")); // qtest.A and qtest.B.A were originally the same object. // They no longer are after makeDirect(). Mutate one of them // and ensure the other is not changed. These test cases are // crafted around a specific set of input files. QPDFObjectHandle A = qtest.getKey("/A"); if (A.getArrayItem(0).getIntValue() == 1) { // Test mutators A.setArrayItem(1, QPDFObjectHandle::newInteger(5)); // 1 5 3 A.insertItem(2, QPDFObjectHandle::newInteger(10)); // 1 5 10 3 A.appendItem(QPDFObjectHandle::newInteger(12)); // 1 5 10 3 12 A.eraseItem(3); // 1 5 10 12 A.insertItem(4, QPDFObjectHandle::newInteger(6)); // 1 5 10 12 6 A.insertItem(0, QPDFObjectHandle::newInteger(9)); // 9 1 5 10 12 6 } else { std::vector items; items.push_back(QPDFObjectHandle::newInteger(14)); items.push_back(QPDFObjectHandle::newInteger(15)); items.push_back(QPDFObjectHandle::newInteger(9)); A.setArrayFromVector(items); } trailer.replaceKey("/Info", pdf.makeIndirectObject(qtest)); QPDFWriter w(pdf, 0); w.setQDFMode(true); w.setStaticID(true); w.write(); // Prevent "done" message from getting appended exit(0); } else if (n == 5) { std::vector pages = pdf.getAllPages(); int pageno = 0; for (std::vector::iterator iter = pages.begin(); iter != pages.end(); ++iter) { QPDFObjectHandle& page = *iter; ++pageno; std::cout << "page " << pageno << ":" << std::endl; std::cout << " images:" << std::endl; std::map images = page.getPageImages(); for (std::map::iterator iter = images.begin(); iter != images.end(); ++iter) { std::string const& name = (*iter).first; QPDFObjectHandle image = (*iter).second; QPDFObjectHandle dict = image.getDict(); int width = dict.getKey("/Width").getIntValue(); int height = dict.getKey("/Height").getIntValue(); std::cout << " " << name << ": " << width << " x " << height << std::endl; } std::cout << " content:" << std::endl; std::vector content = page.getPageContents(); for (std::vector::iterator iter = content.begin(); iter != content.end(); ++iter) { std::cout << " " << (*iter).unparse() << std::endl; } std::cout << "end page " << pageno << std::endl; } QPDFObjectHandle root = pdf.getRoot(); QPDFObjectHandle qstrings = root.getKey("/QStrings"); if (qstrings.isArray()) { std::cout << "QStrings:" << std::endl; int n = qstrings.getArrayNItems(); for (int i = 0; i < n; ++i) { std::cout << qstrings.getArrayItem(i).getUTF8Value() << std::endl; } } QPDFObjectHandle qnumbers = root.getKey("/QNumbers"); if (qnumbers.isArray()) { std::cout << "QNumbers:" << std::endl; int n = qnumbers.getArrayNItems(); for (int i = 0; i < n; ++i) { std::cout << QUtil::double_to_string( qnumbers.getArrayItem(i).getNumericValue(), 3) << std::endl; } } } else if (n == 6) { QPDFObjectHandle root = pdf.getRoot(); QPDFObjectHandle metadata = root.getKey("/Metadata"); if (! metadata.isStream()) { throw std::logic_error("test 6 run on file with no metadata"); } Pl_Buffer bufpl("buffer"); metadata.pipeStreamData(&bufpl, 0, qpdf_dl_none); Buffer* buf = bufpl.getBuffer(); unsigned char const* data = buf->getBuffer(); bool cleartext = false; if ((buf->getSize() > 9) && (strncmp(reinterpret_cast(data), " b = p1.getBuffer(); // This is a bogus way to use StreamDataProvider, but it does // adequately test its functionality. Provider* provider = new Provider(b); PointerHolder p = provider; qstream.replaceStreamData( p, QPDFObjectHandle::newName("/FlateDecode"), QPDFObjectHandle::newNull()); provider->badLength(false); QPDFWriter w(pdf, "a.pdf"); w.setStaticID(true); // Linearize to force the provider to be called multiple times. w.setLinearization(true); w.setStreamDataMode(qpdf_s_preserve); w.write(); // Every time a provider pipes stream data, it has to provide // the same amount of data. provider->badLength(true); try { qstream.getStreamData(); std::cout << "oops -- getStreamData didn't throw" << std::endl; } catch (std::exception const& e) { std::cout << "exception: " << e.what() << std::endl; } } else if (n == 9) { QPDFObjectHandle root = pdf.getRoot(); // Explicitly exercise the Buffer version of newStream PointerHolder buf = new Buffer(20); unsigned char* bp = buf->getBuffer(); memcpy(bp, "data for new stream\n", 20); // no null! QPDFObjectHandle qstream = QPDFObjectHandle::newStream( &pdf, buf); QPDFObjectHandle rstream = QPDFObjectHandle::newStream(&pdf); try { rstream.getStreamData(); std::cout << "oops -- getStreamData didn't throw" << std::endl; } catch (std::logic_error const& e) { std::cout << "exception: " << e.what() << std::endl; } rstream.replaceStreamData( "data for other stream\n", QPDFObjectHandle::newNull(), QPDFObjectHandle::newNull()); root.replaceKey("/QStream", qstream); root.replaceKey("/RStream", rstream); QPDFWriter w(pdf, "a.pdf"); w.setStaticID(true); w.setStreamDataMode(qpdf_s_preserve); w.write(); } else if (n == 10) { std::vector pages = pdf.getAllPages(); pages.at(0).addPageContents( QPDFObjectHandle::newStream( &pdf, "BT /F1 12 Tf 72 620 Td (Baked) Tj ET\n"), true); pages.at(0).addPageContents( QPDFObjectHandle::newStream( &pdf, "BT /F1 18 Tf 72 520 Td (Mashed) Tj ET\n"), false); QPDFWriter w(pdf, "a.pdf"); w.setStaticID(true); w.setStreamDataMode(qpdf_s_preserve); w.write(); } else if (n == 11) { QPDFObjectHandle root = pdf.getRoot(); QPDFObjectHandle qstream = root.getKey("/QStream"); PointerHolder b1 = qstream.getStreamData(); PointerHolder b2 = qstream.getRawStreamData(); if ((b1->getSize() == 7) && (memcmp(b1->getBuffer(), "potato\n", 7) == 0)) { std::cout << "filtered stream data okay" << std::endl; } if ((b2->getSize() == 15) && (memcmp(b2->getBuffer(), "706F7461746F0A\n", 15) == 0)) { std::cout << "raw stream data okay" << std::endl; } } else if (n == 12) { pdf.setOutputStreams(0, 0); pdf.showLinearizationData(); } else if (n == 13) { std::ostringstream out; std::ostringstream err; pdf.setOutputStreams(&out, &err); pdf.showLinearizationData(); std::cout << "---output---" << std::endl << out.str() << "---error---" << std::endl << err.str(); } else if (n == 14) { // Exercise swap and replace. This test case is designed for // a specific file. std::vector pages = pdf.getAllPages(); if (pages.size() != 4) { throw std::logic_error("test " + QUtil::int_to_string(n) + " not called 4-page file"); } // Swap pages 2 and 3 pdf.swapObjects(pages.at(1).getObjGen(), pages.at(2).getObjGen()); // Replace object and swap objects QPDFObjectHandle trailer = pdf.getTrailer(); QPDFObjectHandle qdict = trailer.getKey("/QDict"); QPDFObjectHandle qarray = trailer.getKey("/QArray"); // Force qdict but not qarray to resolve qdict.isDictionary(); QPDFObjectHandle new_dict = QPDFObjectHandle::newDictionary(); new_dict.replaceKey("/NewDict", QPDFObjectHandle::newInteger(2)); try { // Do it wrong first... pdf.replaceObject(qdict.getObjGen(), qdict); } catch (std::logic_error) { std::cout << "caught logic error as expected" << std::endl; } pdf.replaceObject(qdict.getObjGen(), new_dict); // Now qdict still points to the old dictionary std::cout << "old dict: " << qdict.getKey("/Dict").getIntValue() << std::endl; // Swap dict and array pdf.swapObjects(qdict.getObjGen(), qarray.getObjGen()); // Now qarray will resolve to new object but qdict is still // the old object std::cout << "old dict: " << qdict.getKey("/Dict").getIntValue() << std::endl; std::cout << "new dict: " << qarray.getKey("/NewDict").getIntValue() << std::endl; // Reread qdict, now pointing to an array qdict = pdf.getObjectByObjGen(qdict.getObjGen()); std::cout << "swapped array: " << qdict.getArrayItem(0).getName() << std::endl; // Exercise getAsMap and getAsArray std::vector array_elements = qdict.getArrayAsVector(); std::map dict_items = qarray.getDictAsMap(); if ((array_elements.size() == 1) && (array_elements.at(0).getName() == "/Array") && (dict_items.size() == 1) && (dict_items["/NewDict"].getIntValue() == 2)) { std::cout << "array and dictionary contents are correct" << std::endl; } // Exercise writing to memory buffer for (int i = 0; i < 2; ++i) { QPDFWriter w(pdf); w.setOutputMemory(); // Exercise setOutputMemory with and without static ID w.setStaticID(i == 0); w.setStreamDataMode(qpdf_s_preserve); w.write(); Buffer* b = w.getBuffer(); std::string const filename = (i == 0 ? "a.pdf" : "b.pdf"); FILE* f = QUtil::safe_fopen(filename.c_str(), "wb"); fwrite(b->getBuffer(), b->getSize(), 1, f); fclose(f); delete b; } } else if (n == 15) { std::vector const& pages = pdf.getAllPages(); // Reference to original page numbers for this test case are // numbered from 0. // Remove pages from various places, checking to make sure // that our pages reference is getting updated. assert(pages.size() == 10); pdf.removePage(pages.back()); // original page 9 assert(pages.size() == 9); pdf.removePage(*pages.begin()); // original page 0 assert(pages.size() == 8); checkPageContents(pages.at(4), "Original page 5"); pdf.removePage(pages.at(4)); // original page 5 assert(pages.size() == 7); checkPageContents(pages.at(4), "Original page 6"); checkPageContents(pages.at(0), "Original page 1"); checkPageContents(pages.at(6), "Original page 8"); // Insert pages // Create some content streams. std::vector contents; contents.push_back(createPageContents(pdf, "New page 1")); contents.push_back(createPageContents(pdf, "New page 0")); contents.push_back(createPageContents(pdf, "New page 5")); contents.push_back(createPageContents(pdf, "New page 6")); contents.push_back(createPageContents(pdf, "New page 11")); contents.push_back(createPageContents(pdf, "New page 12")); // Create some page objects. Start with an existing // dictionary and modify it. Using the results of // getDictAsMap to create a new dictionary effectively creates // a shallow copy. QPDFObjectHandle page_template = pages.at(0); std::vector new_pages; for (std::vector::iterator iter = contents.begin(); iter != contents.end(); ++iter) { // We will retain indirect object references to other // indirect objects other than page content. QPDFObjectHandle page = page_template.shallowCopy(); page.replaceKey("/Contents", *iter); if (iter == contents.begin()) { // leave direct new_pages.push_back(page); } else { new_pages.push_back(pdf.makeIndirectObject(page)); } } // Now insert the pages pdf.addPage(new_pages.at(0), true); checkPageContents(pages.at(0), "New page 1"); pdf.addPageAt(new_pages.at(1), true, pages.at(0)); assert(pages.at(0).getObjGen() == new_pages.at(1).getObjGen()); pdf.addPageAt(new_pages.at(2), true, pages.at(5)); assert(pages.at(5).getObjGen() == new_pages.at(2).getObjGen()); pdf.addPageAt(new_pages.at(3), false, pages.at(5)); assert(pages.at(6).getObjGen() == new_pages.at(3).getObjGen()); assert(pages.size() == 11); pdf.addPage(new_pages.at(4), false); assert(pages.at(11).getObjGen() == new_pages.at(4).getObjGen()); pdf.addPageAt(new_pages.at(5), false, pages.back()); assert(pages.size() == 13); checkPageContents(pages.at(0), "New page 0"); checkPageContents(pages.at(1), "New page 1"); checkPageContents(pages.at(5), "New page 5"); checkPageContents(pages.at(6), "New page 6"); checkPageContents(pages.at(11), "New page 11"); checkPageContents(pages.at(12), "New page 12"); // Exercise writing to FILE* FILE* out = QUtil::safe_fopen("a.pdf", "wb"); QPDFWriter w(pdf, "FILE* a.pdf", out, true); w.setStaticID(true); w.setStreamDataMode(qpdf_s_preserve); w.write(); } else if (n == 16) { // Insert a page manually and then update the cache. std::vector const& all_pages = pdf.getAllPages(); QPDFObjectHandle contents = createPageContents(pdf, "New page 10"); QPDFObjectHandle page = pdf.makeIndirectObject( QPDFObjectHandle(all_pages.at(0)).shallowCopy()); page.replaceKey("/Contents", contents); // Insert the page manually. QPDFObjectHandle root = pdf.getRoot(); QPDFObjectHandle pages = root.getKey("/Pages"); QPDFObjectHandle kids = pages.getKey("/Kids"); page.replaceKey("/Parent", pages); pages.replaceKey( "/Count", QPDFObjectHandle::newInteger(1 + all_pages.size())); kids.appendItem(page); assert(all_pages.size() == 10); pdf.updateAllPagesCache(); assert(all_pages.size() == 11); assert(all_pages.back().getObjGen() == page.getObjGen()); QPDFWriter w(pdf, "a.pdf"); w.setStaticID(true); w.setStreamDataMode(qpdf_s_preserve); w.write(); } else if (n == 17) { // The input file to this test case is broken to exercise an // error condition. std::vector const& pages = pdf.getAllPages(); pdf.removePage(pages.at(0)); std::cout << "you can't see this" << std::endl; } else if (n == 18) { // Remove a page and re-insert it in the same file. std::vector const& pages = pdf.getAllPages(); // Remove pages from various places, checking to make sure // that our pages reference is getting updated. assert(pages.size() == 10); QPDFObjectHandle page5 = pages.at(5); pdf.removePage(page5); pdf.addPage(page5, false); assert(pages.size() == 10); assert(pages.back().getObjGen() == page5.getObjGen()); QPDFWriter w(pdf, "a.pdf"); w.setStaticID(true); w.setStreamDataMode(qpdf_s_preserve); w.write(); } else if (n == 19) { // Remove a page and re-insert it in the same file. std::vector const& pages = pdf.getAllPages(); // Try to insert a page that's already there. pdf.addPage(pages.at(5), false); std::cout << "you can't see this" << std::endl; } else if (n == 20) { // Shallow copy an array QPDFObjectHandle trailer = pdf.getTrailer(); QPDFObjectHandle qtest = trailer.getKey("/QTest"); QPDFObjectHandle copy = qtest.shallowCopy(); // Append shallow copy of a scalar copy.appendItem(trailer.getKey("/Size").shallowCopy()); trailer.replaceKey("/QTest2", copy); QPDFWriter w(pdf, "a.pdf"); w.setStaticID(true); w.setStreamDataMode(qpdf_s_preserve); w.write(); } else if (n == 21) { // Try to shallow copy a stream std::vector const& pages = pdf.getAllPages(); QPDFObjectHandle page = pages.at(0); QPDFObjectHandle contents = page.getKey("/Contents"); contents.shallowCopy(); std::cout << "you can't see this" << std::endl; } else if (n == 22) { // Try to remove a page we don't have std::vector const& pages = pdf.getAllPages(); QPDFObjectHandle page = pages.at(0); pdf.removePage(page); pdf.removePage(page); std::cout << "you can't see this" << std::endl; } else if (n == 23) { std::vector const& pages = pdf.getAllPages(); pdf.removePage(pages.back()); } else if (n == 24) { // Test behavior of reserved objects QPDFObjectHandle res1 = QPDFObjectHandle::newReserved(&pdf); QPDFObjectHandle res2 = QPDFObjectHandle::newReserved(&pdf); QPDFObjectHandle trailer = pdf.getTrailer(); trailer.replaceKey("Array1", res1); trailer.replaceKey("Array2", res2); QPDFObjectHandle array1 = QPDFObjectHandle::newArray(); QPDFObjectHandle array2 = QPDFObjectHandle::newArray(); array1.appendItem(res2); array1.appendItem(QPDFObjectHandle::newInteger(1)); array2.appendItem(res1); array2.appendItem(QPDFObjectHandle::newInteger(2)); // Make sure trying to ask questions about a reserved object // doesn't break it. if (res1.isArray()) { std::cout << "oops -- res1 is an array" << std::endl; } if (res1.isReserved()) { std::cout << "res1 is still reserved after checking if array" << std::endl; } pdf.replaceReserved(res1, array1); if (res1.isReserved()) { std::cout << "oops -- res1 is still reserved" << std::endl; } else { std::cout << "res1 is no longer reserved" << std::endl; } res1.assertArray(); std::cout << "res1 is an array" << std::endl; try { res2.unparseResolved(); std::cout << "oops -- didn't throw" << std::endl; } catch (std::logic_error e) { std::cout << "logic error: " << e.what() << std::endl; } try { res2.makeDirect(); std::cout << "oops -- didn't throw" << std::endl; } catch (std::logic_error e) { std::cout << "logic error: " << e.what() << std::endl; } pdf.replaceReserved(res2, array2); res2.assertArray(); std::cout << "res2 is an array" << std::endl; // Verify that the previously added reserved keys can be // dereferenced properly now int i1 = res1.getArrayItem(0).getArrayItem(1).getIntValue(); int i2 = res2.getArrayItem(0).getArrayItem(1).getIntValue(); if ((i1 == 2) && (i2 == 1)) { std::cout << "circular access and lazy resolution worked" << std::endl; } QPDFWriter w(pdf, "a.pdf"); w.setStaticID(true); w.setStreamDataMode(qpdf_s_preserve); w.write(); } else if (n == 25) { // The copy object tests are designed to work with a specific // file. Look at the test suite for the file, and look at the // file for comments about the file's structure. // Copy qtest without crossing page boundaries. Should get O1 // and O2 and their streams but not O3 or any other pages. assert(arg2 != 0); QPDF newpdf; newpdf.processFile(arg2); QPDFObjectHandle qtest = pdf.getTrailer().getKey("/QTest"); newpdf.getTrailer().replaceKey( "/QTest", newpdf.copyForeignObject(qtest)); QPDFWriter w(newpdf, "a.pdf"); w.setStaticID(true); w.setStreamDataMode(qpdf_s_preserve); w.write(); } else if (n == 26) { // Copy the O3 page using addPage. Copy qtest without // crossing page boundaries. In addition to previous results, // should get page O3 but no other pages including the page // that O3 points to. Also, inherited object will have been // pushed down and will be preserved. assert(arg2 != 0); QPDF newpdf; newpdf.processFile(arg2); QPDFObjectHandle qtest = pdf.getTrailer().getKey("/QTest"); QPDFObjectHandle O3 = qtest.getKey("/O3"); newpdf.addPage(O3, false); newpdf.getTrailer().replaceKey( "/QTest", newpdf.copyForeignObject(qtest)); QPDFWriter w(newpdf, "a.pdf"); w.setStaticID(true); w.setStreamDataMode(qpdf_s_preserve); w.write(); } else if (n == 27) { // Copy O3 and the page O3 refers to before copying qtest. // Should get qtest plus only the O3 page and the page that O3 // points to. Inherited objects should be preserved. assert(arg2 != 0); QPDF newpdf; newpdf.processFile(arg2); QPDFObjectHandle qtest = pdf.getTrailer().getKey("/QTest"); QPDFObjectHandle O3 = qtest.getKey("/O3"); newpdf.addPage(O3.getKey("/OtherPage"), false); newpdf.addPage(O3, false); newpdf.getTrailer().replaceKey( "/QTest", newpdf.copyForeignObject(qtest)); QPDFWriter w(newpdf, "a.pdf"); w.setStaticID(true); w.setStreamDataMode(qpdf_s_preserve); w.write(); } else if (n == 28) { // Copy foreign object errors try { pdf.copyForeignObject(pdf.getTrailer().getKey("/QTest")); std::cout << "oops -- didn't throw" << std::endl; } catch (std::logic_error e) { std::cout << "logic error: " << e.what() << std::endl; } try { pdf.copyForeignObject(QPDFObjectHandle::newInteger(1)); std::cout << "oops -- didn't throw" << std::endl; } catch (std::logic_error e) { std::cout << "logic error: " << e.what() << std::endl; } } else if (n == 29) { // Detect mixed objects in QPDFWriter assert(arg2 != 0); QPDF other; other.processFile(arg2); // Should use copyForeignObject instead other.getTrailer().replaceKey( "/QTest", pdf.getTrailer().getKey("/QTest")); try { QPDFWriter w(other, "a.pdf"); w.write(); std::cout << "oops -- didn't throw" << std::endl; } catch (std::logic_error e) { std::cout << "logic error: " << e.what() << std::endl; } } else if (n == 30) { assert(arg2 != 0); QPDF encrypted; encrypted.processFile(arg2, "user"); QPDFWriter w(pdf, "b.pdf"); w.setStreamDataMode(qpdf_s_preserve); w.copyEncryptionParameters(encrypted); w.write(); // Make sure the contents are actually the same QPDF final; final.processFile("b.pdf", "user"); std::vector pages = pdf.getAllPages(); std::string orig_contents = getPageContents(pages.at(0)); pages = final.getAllPages(); std::string new_contents = getPageContents(pages.at(0)); if (orig_contents != new_contents) { std::cout << "oops -- page contents don't match" << std::endl << "original:\n" << orig_contents << "new:\n" << new_contents << std::endl; } } else if (n == 31) { // Test object parsing from a string. The input file is not used. QPDFObjectHandle o1 = QPDFObjectHandle::parse( "[/name 16059 3.14159 false\n" " << /key true /other [ (string1) (string2) ] >> null]"); std::cout << o1.unparse() << std::endl; QPDFObjectHandle o2 = QPDFObjectHandle::parse(" 12345 \f "); assert(o2.isInteger() && (o2.getIntValue() == 12345)); try { QPDFObjectHandle::parse("[1 0 R]", "indirect test"); std::cout << "oops -- didn't throw" << std::endl; } catch (std::logic_error e) { std::cout << "logic error parsing indirect: " << e.what() << std::endl; } try { QPDFObjectHandle::parse("0 trailing", "trailing test"); std::cout << "oops -- didn't throw" << std::endl; } catch (std::runtime_error e) { std::cout << "trailing data: " << e.what() << std::endl; } } else if (n == 32) { // Extra header text char const* filenames[] = {"a.pdf", "b.pdf", "c.pdf", "d.pdf"}; for (int i = 0; i < 4; ++i) { bool linearized = ((i & 1) != 0); bool newline = ((i & 2) != 0); QPDFWriter w(pdf, filenames[i]); w.setStaticID(true); std::cout << "file: " << filenames[i] << std::endl << "linearized: " << (linearized ? "yes" : "no") << std::endl << "newline: " << (newline ? "yes" : "no") << std::endl; w.setLinearization(linearized); w.setExtraHeaderText(newline ? "%% Comment with newline\n" : "%% Comment\n% No newline"); w.write(); } } else if (n == 33) { // Test writing to a custom pipeline Pl_Buffer p("buffer"); QPDFWriter w(pdf); w.setStaticID(true); w.setOutputPipeline(&p); w.write(); PointerHolder b = p.getBuffer(); FILE* f = QUtil::safe_fopen("a.pdf", "wb"); fwrite(b->getBuffer(), b->getSize(), 1, f); fclose(f); } else if (n == 34) { // Look at Extensions dictionary std::cout << "version: " << pdf.getPDFVersion() << std::endl << "extension level: " << pdf.getExtensionLevel() << std::endl << pdf.getRoot().getKey("/Extensions").unparse() << std::endl; } else if (n == 35) { // Extract attachments std::map > attachments; QPDFObjectHandle root = pdf.getRoot(); QPDFObjectHandle names = root.getKey("/Names"); QPDFObjectHandle embeddedFiles = names.getKey("/EmbeddedFiles"); names = embeddedFiles.getKey("/Names"); for (int i = 0; i < names.getArrayNItems(); ++i) { QPDFObjectHandle item = names.getArrayItem(i); if (item.isDictionary() && item.getKey("/Type").isName() && (item.getKey("/Type").getName() == "/Filespec") && item.getKey("/EF").isDictionary() && item.getKey("/EF").getKey("/F").isStream()) { std::string filename = item.getKey("/F").getStringValue(); QPDFObjectHandle stream = item.getKey("/EF").getKey("/F"); attachments[filename] = stream.getStreamData(); } } for (std::map >::iterator iter = attachments.begin(); iter != attachments.end(); ++iter) { std::string const& filename = (*iter).first; std::string data = std::string( reinterpret_cast((*iter).second->getBuffer()), (*iter).second->getSize()); bool is_binary = false; for (size_t i = 0; i < data.size(); ++i) { if ((data.at(i) < 0) || (data.at(i) > 126)) { is_binary = true; break; } } if (is_binary) { std::string t; for (size_t i = 0; i < std::min(data.size(), static_cast(20)); ++i) { if ((data.at(i) >= 32) && (data.at(i) <= 126)) { t += data.at(i); } else { t += "."; } } t += " (" + QUtil::int_to_string(data.size()) + " bytes)"; data = t; } std::cout << filename << ":\n" << data << "--END--\n"; } } else if (n == 36) { // Extract raw unfilterable attachment QPDFObjectHandle root = pdf.getRoot(); QPDFObjectHandle names = root.getKey("/Names"); QPDFObjectHandle embeddedFiles = names.getKey("/EmbeddedFiles"); names = embeddedFiles.getKey("/Names"); for (int i = 0; i < names.getArrayNItems(); ++i) { QPDFObjectHandle item = names.getArrayItem(i); if (item.isDictionary() && item.getKey("/Type").isName() && (item.getKey("/Type").getName() == "/Filespec") && item.getKey("/EF").isDictionary() && item.getKey("/EF").getKey("/F").isStream() && (item.getKey("/F").getStringValue() == "attachment1.txt")) { std::string filename = item.getKey("/F").getStringValue(); QPDFObjectHandle stream = item.getKey("/EF").getKey("/F"); Pl_Buffer p1("buffer"); Pl_Flate p2("compress", &p1, Pl_Flate::a_inflate); stream.pipeStreamData(&p2, 0, qpdf_dl_none); PointerHolder buf = p1.getBuffer(); std::string data = std::string( reinterpret_cast(buf->getBuffer()), buf->getSize()); std::cout << stream.getDict().unparse() << filename << ":\n" << data << "--END--\n"; } } } else if (n == 37) { // Parse content streams of all pages std::vector pages = pdf.getAllPages(); for (std::vector::iterator iter = pages.begin(); iter != pages.end(); ++iter) { QPDFObjectHandle page = *iter; ParserCallbacks cb; page.parsePageContents(&cb); } } else if (n == 38) { // Designed for override-compressed-object.pdf QPDFObjectHandle qtest = pdf.getRoot().getKey("/QTest"); for (int i = 0; i < qtest.getArrayNItems(); ++i) { std::cout << qtest.getArrayItem(i).unparseResolved() << std::endl; } } else if (n == 39) { // Display image filter and color set for each image on each page std::vector pages = pdf.getAllPages(); int pageno = 0; for (std::vector::iterator p_iter = pages.begin(); p_iter != pages.end(); ++p_iter) { std::cout << "page " << ++pageno << std::endl; std::map images = (*p_iter).getPageImages(); for (std::map::iterator i_iter = images.begin(); i_iter != images.end(); ++i_iter) { QPDFObjectHandle image_dict = (*i_iter).second.getDict(); std::cout << "filter: " << image_dict.getKey("/Filter").unparseResolved() << ", color space: " << image_dict.getKey("/ColorSpace").unparseResolved() << std::endl; } } } else if (n == 40) { // Write PCLm. This requires specially crafted PDF files. This // feature was implemented by Sahil Arora // as part of a Google Summer of // Code project in 2017. assert(arg2 != 0); QPDFWriter w(pdf, arg2); w.setPCLm(true); w.setStaticID(true); w.write(); } else if (n == 41) { // Apply a token filter. This test case is crafted to work // with coalesce.pdf. std::vector pages = pdf.getAllPages(); for (std::vector::iterator iter = pages.begin(); iter != pages.end(); ++iter) { (*iter).addContentTokenFilter(new TokenFilter); } QPDFWriter w(pdf, "a.pdf"); w.setQDFMode(true); w.setStaticID(true); w.write(); } else if (n == 42) { // Access objects as wrong type. This test case is crafted to // work with object-types.pdf. QPDFObjectHandle qtest = pdf.getTrailer().getKey("/QTest"); QPDFObjectHandle array = qtest.getKey("/Dictionary").getKey("/Key2"); QPDFObjectHandle dictionary = qtest.getKey("/Dictionary"); QPDFObjectHandle integer = qtest.getKey("/Integer"); QPDFObjectHandle null = QPDFObjectHandle::newNull(); assert(array.isArray()); assert(dictionary.isDictionary()); assert("" == qtest.getStringValue()); array.getArrayItem(-1).assertNull(); array.getArrayItem(16059).assertNull(); integer.getArrayItem(0).assertNull(); integer.appendItem(null); array.eraseItem(-1); array.eraseItem(16059); integer.eraseItem(0); integer.insertItem(0, null); integer.setArrayFromVector(std::vector()); integer.setArrayItem(0, null); assert(0 == integer.getArrayNItems()); assert(integer.getArrayAsVector().empty()); assert(false == integer.getBoolValue()); assert(integer.getDictAsMap().empty()); assert(integer.getKeys().empty()); assert(false == integer.hasKey("/Potato")); integer.removeKey("/Potato"); integer.replaceOrRemoveKey("/Potato", null); integer.replaceOrRemoveKey("/Potato", QPDFObjectHandle::newInteger(1)); integer.replaceKey("/Potato", QPDFObjectHandle::newInteger(1)); qtest.getKey("/Integer").getKey("/Potato"); assert(integer.getInlineImageValue().empty()); assert(0 == dictionary.getIntValue()); assert("/QPDFFakeName" == integer.getName()); assert("QPDFFAKE" == integer.getOperatorValue()); assert("0.0" == dictionary.getRealValue()); assert(integer.getStringValue().empty()); assert(integer.getUTF8Value().empty()); assert(0.0 == dictionary.getNumericValue()); // Make sure error messages are okay for nested values std::cerr << "One error\n"; assert(array.getArrayItem(0).getStringValue().empty()); std::cerr << "One error\n"; assert(dictionary.getKey("/Quack").getStringValue().empty()); assert(array.getArrayItem(1).isDictionary()); assert(array.getArrayItem(1).getKey("/K").isArray()); assert(array.getArrayItem(1).getKey("/K").getArrayItem(0).isName()); assert("/V" == array.getArrayItem(1).getKey("/K").getArrayItem(0).getName()); std::cerr << "Two errors\n"; assert(array.getArrayItem(16059).getStringValue().empty()); std::cerr << "One error\n"; array.getArrayItem(1).getKey("/K").getArrayItem(0).getStringValue(); // Stream dictionary QPDFObjectHandle page = pdf.getAllPages()[0]; assert("/QPDFFakeName" == page.getKey("/Contents").getDict().getKey("/Potato").getName()); } else { throw std::runtime_error(std::string("invalid test ") + QUtil::int_to_string(n)); } if (filep) { fclose(filep); } std::cout << "test " << n << " done" << std::endl; } int main(int argc, char* argv[]) { QUtil::setLineBuf(stdout); if ((whoami = strrchr(argv[0], '/')) == NULL) { whoami = argv[0]; } else { ++whoami; } // For libtool's sake.... if (strncmp(whoami, "lt-", 3) == 0) { whoami += 3; } if ((argc < 3) || (argc > 4)) { usage(); } try { int n = QUtil::string_to_int(argv[1]); char const* filename1 = argv[2]; char const* arg2 = argv[3]; runtest(n, filename1, arg2); } catch (std::exception& e) { std::cerr << e.what() << std::endl; exit(2); } return 0; } qpdf-8.0.2/qpdf/fix-qdf0000755000064100006410000002026113247541377012765 0ustar ejbejb#!/usr/bin/env perl require 5.008_001; use warnings; use strict; use File::Basename; my $whoami = basename($0); my $dirname = dirname($0); if ((@ARGV == 1) && ($ARGV[0] eq '--version')) { exec "$dirname/qpdf", '--version'; exit 2; } my $offset = 0; my $last_offset = 0; my $file = shift(@ARGV); if (defined $file) { open(F, "<$file") or die "$whoami: can't open $file: $!\n"; } else { $file = 'stdin'; open(F, "<&STDIN") or die "$whoami: can't dup stdin: $!\n"; } binmode F; binmode STDOUT; my $line = get_line(); if (! ((defined $line) && ($line =~ m/^%PDF-1\.\d+\b/))) { die "$whoami: $file: not a pdf file\n"; } print $line; $line = get_line(); die "$whoami: $file: premature EOF\n" unless defined $line; print $line; $line = get_line(); if (! ((defined $line) && ($line =~ m/^%QDF-1.\d+\b/))) { die "$whoami: $file: not a qdf file\n"; } print $line; my $last_obj = 0; my @xref = (); my $stream_start = 0; my $stream_length = 0; my $xref_offset = 0; my $xref_f1_nbytes = 0; my $xref_f2_nbytes = 0; my $xref_size = 0; my $cur_state = 0; my $st_top = ++$cur_state; my $st_in_obj = ++$cur_state; my $st_in_stream = ++$cur_state; my $st_after_stream = ++$cur_state; my $st_in_ostream_dict = ++$cur_state; my $st_in_ostream_offsets = ++$cur_state; my $st_in_ostream_outer = ++$cur_state; my $st_in_ostream_obj = ++$cur_state; my $st_in_xref_stream_dict = ++$cur_state; my $st_in_length = ++$cur_state; my $st_at_xref = ++$cur_state; my $st_before_trailer = ++$cur_state; my $st_in_trailer = ++$cur_state; my $st_done = ++$cur_state; my @ostream = (); my @ostream_offsets = (); my @ostream_discarded = (); my $ostream_idx = 0; my $ostream_id = 0; my $ostream_extends = ""; my $state = $st_top; while (defined($line = get_line())) { if ($state == $st_top) { if ($line =~ m/^(\d+) 0 obj$/) { check_obj_id($1); $state = $st_in_obj; } elsif ($line =~ m/^xref$/) { $xref_offset = $last_offset; $state = $st_at_xref; } print $line; } elsif ($state == $st_in_obj) { print $line; if ($line =~ m/^stream$/) { $state = $st_in_stream; $stream_start = $offset; } elsif ($line =~ m/^endobj$/) { $state = $st_top; } elsif ($line =~ m,/Type /ObjStm,) { $state = $st_in_ostream_dict; $ostream_id = $last_obj; } elsif ($line =~ m,/Type /XRef,) { $xref_offset = $xref[-1][1]; $xref_f1_nbytes = 0; my $t = $xref_offset; while ($t) { $t >>= 8; ++$xref_f1_nbytes; } # Figure out how many bytes we need for ostream index. # Make sure we get at least 1 byte even if there are no # object streams. my $max_objects = 1; foreach my $e (@xref) { my ($type, $f1, $f2) = @$e; if ((defined $f2) && ($f2 > $max_objects)) { $max_objects = $f2; } } while ($max_objects) { $max_objects >>=8; ++$xref_f2_nbytes; } my $esize = 1 + $xref_f1_nbytes + $xref_f2_nbytes; $xref_size = 1 + @xref; my $length = $xref_size * $esize; print " /Length $length\n"; print " /W [ 1 $xref_f1_nbytes $xref_f2_nbytes ]\n"; $state = $st_in_xref_stream_dict; } } elsif ($state == $st_in_ostream_dict) { if ($line =~ m/^stream/) { $state = $st_in_ostream_offsets; } else { push(@ostream_discarded, $line); if ($line =~ m,/Extends (\d+ 0 R),) { $ostream_extends = $1; } } # discard line } elsif ($state == $st_in_ostream_offsets) { if ($line =~ m/^\%\% Object stream: object (\d+)/) { check_obj_id($1); $stream_start = $last_offset; $state = $st_in_ostream_outer; push(@ostream, $line); } else { push(@ostream_discarded, $line); } # discard line } elsif ($state == $st_in_ostream_outer) { adjust_ostream_xref(); push(@ostream_offsets, $last_offset - $stream_start); $state = $st_in_ostream_obj; push(@ostream, $line); } elsif ($state == $st_in_ostream_obj) { push(@ostream, $line); if ($line =~ m/^\%\% Object stream: object (\d+)/) { check_obj_id($1); $state = $st_in_ostream_outer; } elsif ($line =~ m/^endstream/) { $stream_length = $last_offset - $stream_start; write_ostream(); $state = $st_in_obj; } } elsif ($state == $st_in_xref_stream_dict) { if ($line =~ m,/(Length|W) ,) { # already printed } elsif ($line =~ m,/Size ,) { my $size = 1 + @xref; print " /Size $xref_size\n"; } else { print $line; } if ($line =~ m/^stream\n/) { my $pack = "(C C$xref_f1_nbytes C$xref_f2_nbytes)"; print pack($pack, 0, 0, 0); foreach my $x (@xref) { my ($type, $f1, $f2) = @$x; $f2 = 0 unless defined $f2; my @f1 = (); my @f2 = (); foreach my $d ([\@f1, $f1, $xref_f1_nbytes], [\@f2, $f2, $xref_f2_nbytes]) { my ($fa, $f, $nbytes) = @$d; for (my $i = 0; $i < $nbytes; ++$i) { unshift(@$fa, $f & 0xff); $f >>= 8; } } print pack($pack, $type, @f1, @f2); } print "\nendstream\nendobj\n\n"; print "startxref\n$xref_offset\n\%\%EOF\n"; $state = $st_done; } } elsif ($state == $st_in_stream) { if ($line =~ m/^endstream$/) { $stream_length = $last_offset - $stream_start; $state = $st_after_stream; } print $line; } elsif ($state == $st_after_stream) { if ($line =~ m/^\%QDF: ignore_newline$/) { --$stream_length; } elsif ($line =~ m/^(\d+) 0 obj$/) { check_obj_id($1); $state = $st_in_length; } print $line; } elsif ($state == $st_in_length) { if ($line !~ m/^\d+$/) { die "$file:$.: expected integer\n"; } my $new = "$stream_length\n"; $offset -= length($line); $offset += length($new); print $new; $state = $st_top; } elsif ($state == $st_at_xref) { my $n = scalar(@xref); print "0 ", $n+1, "\n0000000000 65535 f \n"; for (@xref) { my ($type, $f1, $f2) = @$_; printf("%010d 00000 n \n", $f1); } $state = $st_before_trailer; } elsif ($state == $st_before_trailer) { if ($line =~ m/^trailer <>$/) { print "startxref\n$xref_offset\n\%\%EOF\n"; $state = $st_done; } } elsif ($state == $st_done) { # ignore } } die "$whoami: $file: premature EOF\n" unless $state == $st_done; sub get_line { my $line = scalar(); if (defined $line) { $last_offset = $offset; $offset += length($line); } $line; } sub check_obj_id { my $cur_obj = shift; if ($cur_obj != $last_obj + 1) { die "$file:$.: expected object ", $last_obj + 1, "\n"; } $last_obj = $cur_obj; push(@xref, [1, $last_offset]); } sub adjust_ostream_xref { pop(@xref); push(@xref, [2, $ostream_id, $ostream_idx++]); } sub write_ostream { my $first = $ostream_offsets[0]; my $onum = $ostream_id; my $offsets = ""; my $n = scalar(@ostream_offsets); for (@ostream_offsets) { $_ -= $first; ++$onum; $offsets .= "$onum $_\n"; } my $offset_adjust = length($offsets); $first += length($offsets); $stream_length += length($offsets); my $dict_data = ""; $dict_data .= " /Length $stream_length\n"; $dict_data .= " /N $n\n"; $dict_data .= " /First $first\n"; if ($ostream_extends) { $dict_data .= " /Extends $ostream_extends\n"; } $dict_data .= ">>\n"; $offset_adjust += length($dict_data); print $dict_data; print "stream\n"; print $offsets; foreach (@ostream) { print $_; } for (@ostream_discarded) { $offset -= length($_); } $offset += $offset_adjust; $ostream_idx = 0; $ostream_id = 0; @ostream = (); @ostream_offsets = (); @ostream_discarded = (); $ostream_extends = ""; } qpdf-8.0.2/manual/0000755000064100006410000000000013247543020012006 5ustar ejbejbqpdf-8.0.2/manual/common.xsl0000644000064100006410000000065413247541377014050 0ustar ejbejb 0pt qpdf-8.0.2/manual/build.mk0000644000064100006410000000171713247541377013461 0ustar ejbejbINDOC = manual/qpdf-manual OUTDOC = manual/$(OUTPUT_DIR)/qpdf-manual TARGETS_manual := doc/qpdf.1 doc/fix-qdf.1 doc/zlib-flate.1 ifeq ($(BUILD_HTML),1) TARGETS_manual += doc/qpdf-manual.html endif ifeq ($(BUILD_PDF),1) TARGETS_manual += doc/qpdf-manual.pdf endif VALIDATE=manual/$(OUTPUT_DIR)/validate ifeq ($(VALIDATE_DOC),1) $(VALIDATE): $(INDOC).xml $(XMLLINT) --noout --dtdvalid $(DOCBOOKX_DTD) $< touch $(VALIDATE) else $(VALIDATE): touch $(VALIDATE) endif $(OUTDOC).pdf: $(OUTDOC).fo qpdf/build/qpdf $(FOP) $< -pdf $@.tmp qpdf/build/qpdf --linearize $@.tmp $@ $(OUTDOC).html: $(INDOC).xml manual/html.xsl $(VALIDATE) $(XSLTPROC) --output $@ manual/html.xsl $< .PRECIOUS: $(OUTDOC).fo $(OUTDOC).fo: $(INDOC).xml manual/print.xsl $(VALIDATE) $(XSLTPROC) --output $@ manual/print.xsl $< doc/%.1: manual/%.1.in sed -e 's:@PACKAGE_VERSION@:$(PACKAGE_VERSION):g' \ -e 's:@docdir@:$(docdir):g' \ < $< > $@ doc/%: manual/$(OUTPUT_DIR)/% cp $< $@ qpdf-8.0.2/manual/Makefile0000644000064100006410000000003113247541377013455 0ustar ejbejbinclude ../make/proxy.mk qpdf-8.0.2/manual/qpdf.1.in0000644000064100006410000000150113247541377013441 0ustar ejbejb\" This file is not processed by autoconf, but rather by build.mk in \" the manual directory. .TH QPDF "1" "April 2008" "qpdf version @PACKAGE_VERSION@" "User Commands" .SH NAME qpdf \- PDF transformation software .SH SYNOPSIS .B qpdf [ \fIoptions \fR] \fIinfilename [ outfilename ]\fR .SH DESCRIPTION The qpdf program is used to convert one PDF file to another equivalent PDF file. It is capable of performing a variety of transformations such as linearization (also known as web optimization or fast web viewing), encryption, and decryption of PDF files. It also has many options for inspecting or checking PDF files, some of which are useful primarily to PDF developers. .PP For a summary of qpdf's options, please run \fBqpdf --help\fR. A complete manual can be found in @docdir@/qpdf-manual.html or @docdir@/qpdf-manual.pdf. qpdf-8.0.2/manual/html.xsl.in0000644000064100006410000000051213247541377014122 0ustar ejbejb stylesheet.css qpdf-8.0.2/manual/README0000644000064100006410000000021313247541377012677 0ustar ejbejbThis directory contains sources to the documentation. If you are looking for pre-built documentation, please look in the "doc" directory. qpdf-8.0.2/manual/print.xsl.in0000644000064100006410000000457113247541377014323 0ustar ejbejb #F0F0F0 0.5pt solid #575757 3pt #00c qpdf-8.0.2/manual/zlib-flate.1.in0000644000064100006410000000207613247541377014550 0ustar ejbejb\" This file is not processed by autoconf, but rather by build.mk in \" the manual directory. .TH ZLIB-FLATE "1" "April 2008" "zlib-flate from qpdf version @PACKAGE_VERSION@" "User Commands" .SH NAME zlib-flate \- raw zlib compression program .SH SYNOPSIS .B zlib-flate \fI-compress | -uncompress\fR .SH DESCRIPTION The zlib-flate program is part of the qpdf package. .PP The zlib-flate program reads from standard input and writes to standard output either compressing or uncompressing its input using raw zlib compression. It can be used to uncompress or compress raw PDF streams or other data that is compressed with raw zlib compression. This program is provided primarily as a debugging tool, though it could be used for other purposes, such as being called from a script that creates simple PDF files. .PP This program should not be used as a general purpose compression tool. Use something like gzip(1) instead. .PP For details about qpdf, please see the qpdf manual, which can be found in @docdir@/qpdf-manual.html or @docdir@/qpdf-manual.pdf. .SH "SEE ALSO" qpdf(1), gzip(1) qpdf-8.0.2/manual/qpdf-manual.xml0000644000064100006410000061576513247541377014776 0ustar ejbejb ]> QPDF Manual For QPDF Version &swversion;, &lastreleased; JayBerkenbilt 2005–2018 Jay Berkenbilt General Information QPDF is a program that does structural, content-preserving transformations on PDF files. QPDF's website is located at http://qpdf.sourceforge.net/. QPDF's source code is hosted on github at https://github.com/qpdf/qpdf. QPDF is licensed under the Apache License, Version 2.0 (the "License"). Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Versions of qpdf prior to version 7 were released under the terms of the Artistic License, version 2.0. At your option, you may continue to consider qpdf to be licensed under those terms. The Apache License 2.0 permits everything that the Artistic License 2.0 permits but is slightly less restrictive. Allowing the Artistic License to continue being used is primary to help people who may have to get specific approval to use qpdf in their products. QPDF is intentionally released with a permissive license. However, if there is some reason that the licensing terms don't work for your requirements, please feel free to contact the copyright holder to make other arrangements. QPDF was originally created in 2001 and modified periodically between 2001 and 2005 during my employment at Apex CoVantage. Upon my departure from Apex, the company graciously allowed me to take ownership of the software and continue maintaining as an open source project, a decision for which I am very grateful. I have made considerable enhancements to it since that time. I feel fortunate to have worked for people who would make such a decision. This work would not have been possible without their support. What is QPDF? QPDF is a program that does structural, content-preserving transformations on PDF files. It could have been called something like pdf-to-pdf. It also provides many useful capabilities to developers of PDF-producing software or for people who just want to look at the innards of a PDF file to learn more about how they work. With QPDF, it is possible to copy objects from one PDF file into another and to manipulate the list of pages in a PDF file. This makes it possible to merge and split PDF files. The QPDF library also makes it possible for you to create PDF files from scratch. In this mode, you are responsible for supplying all the contents of the file, while the QPDF library takes care off all the syntactical representation of the objects, creation of cross references tables and, if you use them, object streams, encryption, linearization, and other syntactic details. You are still responsible for generating PDF content on your own. QPDF has been designed with very few external dependencies, and it is intentionally very lightweight. QPDF is not a PDF content creation library, a PDF viewer, or a program capable of converting PDF into other formats. In particular, QPDF knows nothing about the semantics of PDF content streams. If you are looking for something that can do that, you should look elsewhere. However, once you have a valid PDF file, QPDF can be used to transform that file in ways perhaps your original PDF creation can't handle. For example, many programs generate simple PDF files but can't password-protect them, web-optimize them, or perform other transformations of that type. Building and Installing QPDF This chapter describes how to build and install qpdf. Please see also the README.md and INSTALL files in the source distribution. System Requirements The qpdf package has few external dependencies. In order to build qpdf, the following packages are required: zlib: http://www.zlib.net/ jpeg: http://www.ijg.org/files/ or https://libjpeg-turbo.org/ gnu make 3.81 or newer: http://www.gnu.org/software/make perl version 5.8 or newer: http://www.perl.org/; required for fix-qdf and the test suite. GNU diffutils (any version): http://www.gnu.org/software/diffutils/ is required to run the test suite. Note that this is the version of diff present on virtually all GNU/Linux systems. This is required because the test suite uses diff -u. A C++ compiler that works well with STL and has the long long type. Most modern C++ compilers should fit the bill fine. QPDF is tested with gcc, clang, and Microsoft Visual C++. Part of qpdf's test suite does comparisons of the contents PDF files by converting them images and comparing the images. The image comparison tests are disabled by default. Those tests are not required for determining correctness of a qpdf build if you have not modified the code since the test suite also contains expected output files that are compared literally. The image comparison tests provide an extra check to make sure that any content transformations don't break the rendering of pages. Transformations that affect the content streams themselves are off by default and are only provided to help developers look into the contents of PDF files. If you are making deep changes to the library that cause changes in the contents of the files that qpdf generates, then you should enable the image comparison tests. Enable them by running configure with the flag. If you enable this, the following additional requirements are required by the test suite. Note that in no case are these items required to use qpdf. libtiff: http://www.remotesensing.org/libtiff/ GhostScript version 8.60 or newer: http://www.ghostscript.com If you do not enable this, then you do not need to have tiff and ghostscript. If Adobe Reader is installed as acroread, some additional test cases will be enabled. These test cases simply verify that Adobe Reader can open the files that qpdf creates. They require version 8.0 or newer to pass. However, in order to avoid having qpdf depend on non-free (as in liberty) software, the test suite will still pass without Adobe reader, and the test suite still exercises the full functionality of the software. Pre-built documentation is distributed with qpdf, so you should generally not need to rebuild the documentation. In order to build the documentation from its docbook sources, you need the docbook XML style sheets (http://downloads.sourceforge.net/docbook/). To build the PDF version of the documentation, you need Apache fop (http://xml.apache.org/fop/) version 0.94 or higher. Build Instructions Building qpdf on UNIX is generally just a matter of running ./configure make You can also run make check to run the test suite and make install to install. Please run ./configure --help for options on what can be configured. You can also set the value of DESTDIR during installation to install to a temporary location, as is common with many open source packages. Please see also the README.md and INSTALL files in the source distribution. Building on Windows is a little bit more complicated. For details, please see README-windows.md in the source distribution. You can also download a binary distribution for Windows. There is a port of qpdf to Visual C++ version 6 in the contrib area generously contributed by Jian Ma. This is also discussed in more detail in README-windows.md. There are some other things you can do with the build. Although qpdf uses autoconf, it does not use automake but instead uses a hand-crafted non-recursive Makefile that requires gnu make. If you're really interested, please read the comments in the top-level Makefile. Running QPDF This chapter describes how to run the qpdf program from the command line. Basic Invocation When running qpdf, the basic invocation is as follows: qpdf This converts PDF file to PDF file . The output file is functionally identical to the input file but may have been structurally reorganized. Also, orphaned objects will be removed from the file. Many transformations are available as controlled by the options below. In place of , the parameter may be specified. This causes qpdf to use a dummy input file that contains zero pages. The only normal use case for using would be if you were going to add pages from another source, as discussed in . If appears anywhere in the command-line, it will be read line by line, and each line will be treated as a command-line argument. The option allows arguments to be read from standard input. This allows qpdf to be invoked with an arbitrary number of arbitrarily long arguments. It is also very useful for avoiding having to pass passwords on the command line. does not have to be seekable, even when generating linearized files. Specifying “” as means to write to standard output. However, you can't specify the same file as both the input and the output because qpdf reads data from the input file as it writes to the output file. QPDF attempts to detect this case and fail without overwriting the output file. Most options require an output file, but some testing or inspection commands do not. These are specifically noted. Basic Options The following options are the most common ones and perform commonly needed transformations. Specifies a password for accessing encrypted files. Increase verbosity of output. For now, this just prints some indication of any file that it creates. Causes generation of a linearized (web-optimized) output file. Encrypt the file using the same encryption parameters, including user and owner password, as the specified file. Use to specify a password if one is needed to open this file. Note that copying the encryption parameters from a file also copies the first half of /ID from the file since this is part of the encryption parameters. If the file specified with requires a password, specify the password using this option. Note that only one of the user or owner password is required. Both passwords will be preserved since QPDF does not distinguish between the two passwords. It is possible to preserve encryption parameters, including the owner password, from a file even if you don't know the file's owner password. Causes generation an encrypted output file. Please see for details on how to specify encryption parameters. Removes any encryption on the file. A password must be supplied if the file is password protected. Overrides the usual computation/retrieval of the PDF file's encryption key from user/owner password with an explicit specification of the encryption key. When this option is specified, the argument to the option is interpreted as a hexadecimal-encoded key value. This only applies to the password used to open the main input file. It does not apply to other files opened by or other options or to files being written. Most users will never have a need for this option, and no standard viewers support this mode of operation, but it can be useful for forensic or investigatory purposes. For example, if a PDF file is encrypted with an unknown password, a brute-force attack using the key directly is sometimes more efficient than one using the password. Also, if a file is heavily damaged, it may be possible to derive the encryption key and recover parts of the file using it directly. To expose the encryption key used by an encrypted file that you can open normally, use the option. Apply rotation to specified pages. The portion of the option value has the same format as page ranges in . The portion of the parameter may be either 90, 180, or 270. If preceded by or , the angle is added to or subtracted from the specified pages' original rotations. Otherwise the pages' rotations are set to the exact value. For example, the command qpdf in.pdf out.pdf --rotate=+90:2,4,6 --rotate=180:7-8 would rotate pages 2, 4, and 6 90 degrees clockwise from their original rotation and force the rotation of pages 7 through 9 to 180 degrees regardless of their original rotation. Select specific pages from one or more input files. See for details on how to do page selection (splitting and merging). Write each group of pages to a separate output file. If is not specified, create single pages. Output file names are generated as follows: If the string %d appears in the output file name, it is replaced with a range of zero-padded page numbers starting from 1. Otherwise, if the output file name ends in .pdf (case insensitive), a zero-padded page range, preceded by a dash, is inserted before the file extension. Otherwise, the file name is appended with a zero-padded page range preceded by a dash. Page ranges are a single number in the case of single-page groups or two numbers separated by a dash otherwise. For example, if infile.pdf has 12 pages qpdf --split-pages infile.pdf %d-out would generate files 01-out through 12-out qpdf --split-pages=2 infile.pdf outfile.pdf would generate files outfile-01-02.pdf through outfile-11-12.pdf qpdf --split-pages infile.pdf something.else would generate files something.else-01 through something.else-12 Note that outlines, threads, and other global features of the original PDF file are not preserved. For each page of output, this option creates an empty PDF and copies a single page from the output into it. If you require the global data, you will have to run qpdf with the option once for each file. Using is much faster if you don't require the global data. Password-protected files may be opened by specifying a password. By default, qpdf will preserve any encryption data associated with a file. If is specified, qpdf will attempt to remove any encryption information. If is specified, qpdf will replace the document's encryption parameters with whatever is specified. Note that qpdf does not obey encryption restrictions already imposed on the file. Doing so would be meaningless since qpdf can be used to remove encryption from the file entirely. This functionality is not intended to be used for bypassing copyright restrictions or other restrictions placed on files by their producers. In all cases where qpdf allows specification of a password, care must be taken if the password contains characters that fall outside of the 7-bit US-ASCII character range to ensure that the exact correct byte sequence is provided. It is possible that a future version of qpdf may handle this more gracefully. For example, if a password was encrypted using a password that was encoded in ISO-8859-1 and your terminal is configured to use UTF-8, the password you supply may not work properly. There are various approaches to handling this. For example, if you are using Linux and have the iconv executable installed, you could pass to qpdf where password is a password specified in your terminal's locale. A detailed discussion of this is out of scope for this manual, but just be aware of this issue if you have trouble with a password that contains 8-bit characters. Encryption Options To change the encryption parameters of a file, use the --encrypt flag. The syntax is Note that “” terminates parsing of encryption flags and must be present even if no restrictions are present. Either or both of the user password and the owner password may be empty strings. The value for may be 40, 128, or 256. The restriction flags are dependent upon key length. When no additional restrictions are given, the default is to be fully permissive. If is 40, the following restriction options are available: Determines whether or not to allow printing. Determines whether or not to allow document modification. Determines whether or not to allow text/image extraction. Determines whether or not to allow comments and form fill-in and signing. If is 128, the following restriction options are available: Determines whether or not to allow accessibility to visually impaired. Determines whether or not to allow text/graphic extraction. Controls printing access. may be one of the following: : allow full printing : allow low-resolution printing only : disallow printing Controls modify access. may be one of the following, each of which implies all the options that follow it: : allow full document modification : allow comment authoring and form operations : allow form field fill-in and signing : allow document assembly only : allow no modifications If specified, any metadata stream in the document will be left unencrypted even if the rest of the document is encrypted. This also forces the PDF version to be at least 1.5. If is specified, AES encryption will be used instead of RC4 encryption. This forces the PDF version to be at least 1.6. Use of this option forces the /V and /R parameters in the document's encryption dictionary to be set to the value 4. As qpdf will automatically do this when required, there is no reason to ever use this option. It exists primarily for use in testing qpdf itself. This option also forces the PDF version to be at least 1.5. If is 256, the minimum PDF version is 1.7 with extension level 8, and the AES-based encryption format used is the PDF 2.0 encryption method supported by Acrobat X. the same options are available as with 128 bits with the following exceptions: This option is not available with 256-bit keys. AES is always used with 256-bit encryption keys. This option is not available with 256 keys. If specified, qpdf sets the minimum version to 1.7 at extension level 3 and writes the deprecated encryption format used by Acrobat version IX. This option should not be used in practice to generate PDF files that will be in general use, but it can be useful to generate files if you are trying to test proper support in another application for PDF files encrypted in this way. The default for each permission option is to be fully permissive. Page Selection Options Starting with qpdf 3.0, it is possible to split and merge PDF files by selecting pages from one or more input files. Whatever file is given as the primary input file is used as the starting point, but its pages are replaced with pages as specified. Multiple input files may be specified. Each one is given as the name of the input file, an optional password (if required to open the file), and the range of pages. Note that “” terminates parsing of page selection flags. For each file that pages should be taken from, specify the file, a password needed to open the file (if any), and a page range. The password needs to be given only once per file. If any of the input files are the same as the primary input file or the file used to copy encryption parameters (if specified), you do not need to repeat the password here. The same file can be repeated multiple times. If a file that is repeated has a password, the password only has to be given the first time. All non-page data (info, outlines, page numbers, etc.) are taken from the primary input file. To discard these, use as the primary input. Starting with qpdf 5.0.0, it is possible to omit the page range. If qpdf sees a value in the place where it expects a page range and that value is not a valid range but is a valid file name, qpdf will implicitly use the range 1-z, meaning that it will include all pages in the file. This makes it possible to easily combine all pages in a set of files with a command like qpdf --empty out.pdf --pages *.pdf --. It is not presently possible to specify the same page from the same file directly more than once, but you can make this work by specifying two different paths to the same file (such as by putting ./ somewhere in the path). This can also be used if you want to repeat a page from one of the input files in the output file. This may be made more convenient in a future version of qpdf if there is enough demand for this feature. The page range is a set of numbers separated by commas, ranges of numbers separated dashes, or combinations of those. The character “z” represents the last page. A number preceded by an “r” indicates to count from the end, so r3-r1 would be the last three pages of the document. Pages can appear in any order. Ranges can appear with a high number followed by a low number, which causes the pages to appear in reverse. Repeating a number will cause an error, but you can use the workaround discussed above should you really want to include the same page twice. Example page ranges: 1,3,5-9,15-12: pages 1, 3, 5, 6, 7, 8, 9, 15, 14, 13, and 12 in that order. z-1: all pages in the document in reverse r3-r1: the last three pages of the document r1-r3: the last three pages of the document in reverse order Note that qpdf doesn't presently do anything special about other constructs in a PDF file that may know about pages, so semantics of splitting and merging vary across features. For example, the document's outlines (bookmarks) point to actual page objects, so if you select some pages and not others, bookmarks that point to pages that are in the output file will work, and remaining bookmarks will not work. On the other hand, page labels (page numbers specified in the file) are just sequential, so page labels will be messed up in the output file. A future version of qpdf may do a better job at handling these issues. (Note that the qpdf library already contains all of the APIs required in order to implement this in your own application if you need it.) In the mean time, you can always use as the primary input file to avoid copying all of that from the first file. For example, to take pages 1 through 5 from a infile.pdf while preserving all metadata associated with that file, you could use qpdf If you wanted pages 1 through 5 from infile.pdf but you wanted the rest of the metadata to be dropped, you could instead run qpdf If you wanted to take pages 1–5 from file1.pdf and pages 11–15 from file2.pdf in reverse, you would run qpdf If, for some reason, you wanted to take the first page of an encrypted file called encrypted.pdf with password pass and repeat it twice in an output file, and if you wanted to drop metadata (like page numbers and outlines) but preserve encryption, you would use qpdf Note that we had to specify the password all three times because giving a password as doesn't count for page selection, and as far as qpdf is concerned, encrypted.pdf and ./encrypted.pdf are separated files. These are all corner cases that most users should hopefully never have to be bothered with. Advanced Parsing Options These options control aspects of how qpdf reads PDF files. Mostly these are of use to people who are working with damaged files. There is little reason to use these options unless you are trying to solve specific problems. The following options are available: Prevents qpdf from attempting to recover damaged files. Tells qpdf to ignore any cross-reference streams. Ordinarily, qpdf will attempt to recover from certain types of errors in PDF files. These include errors in the cross-reference table, certain types of object numbering errors, and certain types of stream length errors. Sometimes, qpdf may think it has recovered but may not have actually recovered, so care should be taken when using this option as some data loss is possible. The option will prevent qpdf from attempting recovery. In this case, it will fail on the first error that it encounters. Ordinarily, qpdf reads cross-reference streams when they are present in a PDF file. If is specified, qpdf will ignore any cross-reference streams for hybrid PDF files. The purpose of hybrid files is to make some content available to viewers that are not aware of cross-reference streams. It is almost never desirable to ignore them. The only time when you might want to use this feature is if you are testing creation of hybrid PDF files and wish to see how a PDF consumer that doesn't understand object and cross-reference streams would interpret such a file. Advanced Transformation Options These transformation options control fine points of how qpdf creates the output file. Mostly these are of use only to people who are very familiar with the PDF file format or who are PDF developers. The following options are available: By default, or with , qpdf will compress any stream with no other filters applied to it with the /FlateDecode filter when it writes it. To suppress this behavior and preserve uncompressed streams as uncompressed, use . Controls which streams qpdf tries to decode. The default is . The following options are available: : do not attempt to decode any streams : decode streams filtered with supported generalized filters: , , , and . We define generalized filters as those to be used for general-purpose compression or encoding, as opposed to filters specifically designed for image data. : in addition to generalized, decode streams with supported non-lossy specialized filters; currently this is just : in addition to generalized and specialized, decode streams with supported lossy filters; currently this is just (JPEG) Controls transformation of stream data. This option predates the and options. Those options can be used to achieve the same affect with more control. The value of may be one of the following: : recompress stream data when possible (default); equivalent to : leave all stream data as is; equivalent to : uncompress stream data compressed with generalized filters when possible; equivalent to Enables or disables normalization of content streams. Content normalization is enabled by default in QDF mode. Please see for additional discussion of QDF mode. Controls handling of object streams. The value of may be one of the following: : preserve original object streams (default) : don't write any object streams : use object streams wherever possible Tells qpdf to preserve objects that are not referenced when writing the file. Ordinarily any object that is not referenced in a traversal of the document from the trailer dictionary will be discarded. This may be useful in working with some damaged files or inspecting files with known unreferenced objects. This flag is ignored for linearized files and has the effect of causing objects in the new file to be written in order by object ID from the original file. This does not mean that object numbers will be the same since qpdf may create stream lengths as direct or indirect differently from the original file, and the original file may have gaps in its numbering. Tells qpdf to insert a newline before the endstream keyword, not counted in the length, after any stream content even if the last character of the stream was a newline. This may result in two newlines in some cases. This is a requirement of PDF/A. While qpdf doesn't specifically know how to generate PDF/A-compliant PDFs, this at least prevents it from removing compliance on already compliant files. Write the first pass of linearization to the named file. The resulting file is not a valid PDF file. This option is useful only for debugging QPDFWriter's linearization code. When qpdf linearizes files, it writes the file in two passes, using the first pass to calculate sizes and offsets that are required for hint tables and the linearization dictionary. Ordinarily, the first pass is discarded. This option enables it to be captured. When a page's contents are split across multiple streams, this option causes qpdf to combine them into a single stream. Use of this option is never necessary for ordinary usage, but it can help when working with some files in some cases. For example, some PDF writers split page contents into small streams at arbitrary points that may fall in the middle of lexical tokens within the content, and some PDF readers may get confused on such files. If you use qpdf to coalesce the content streams, such readers may be able to work with the file more easily. This can also be combined with QDF mode or content normalization to make it easier to look at all of a page's contents at once. Turns on QDF mode. For additional information on QDF, please see . Forces the PDF version of the output file to be at least version. In other words, if the input file has a lower version than the specified version, the specified version will be used. If the input file has a higher version, the input file's original version will be used. It is seldom necessary to use this option since qpdf will automatically increase the version as needed when adding features that require newer PDF readers. The version number may be expressed in the form major.minor.extension-level, in which case the version is interpreted as major.minor at extension level extension-level. For example, version 1.7.8 represents version 1.7 at extension level 8. Note that minimal syntax checking is done on the command line. This option forces the PDF version to be the exact version specified even when the file may have content that is not supported in that version. The version number is interpreted in the same way as with so that extension levels can be set. In some cases, forcing the output file's PDF version to be lower than that of the input file will cause qpdf to disable certain features of the document. Specifically, 256-bit keys are disabled if the version is less than 1.7 with extension level 8 (except R5 is disabled if less than 1.7 with extension level 3), AES encryption is disabled if the version is less than 1.6, cleartext metadata and object streams are disabled if less than 1.5, 128-bit encryption keys are disabled if less than 1.4, and all encryption is disabled if less than 1.3. Even with these precautions, qpdf won't be able to do things like eliminate use of newer image compression schemes, transparency groups, or other features that may have been added in more recent versions of PDF. As a general rule, with the exception of big structural things like the use of object streams or AES encryption, PDF viewers are supposed to ignore features in files that they don't support from newer versions. This means that forcing the version to a lower version may make it possible to open your PDF file with an older version, though bear in mind that some of the original document's functionality may be lost. By default, when a stream is encoded using non-lossy filters that qpdf understands and is not already compressed using a good compression scheme, qpdf will uncompress and recompress streams. Assuming proper filter implements, this is safe and generally results in smaller files. This behavior may also be explicitly requested with . When is specified, qpdf will attempt to normalize whitespace and newlines in page content streams. This is generally safe but could, in some cases, cause damage to the content streams. This option is intended for people who wish to study PDF content streams or to debug PDF content. You should not use this for “production” PDF files. This paragraph discusses edge cases of content normalization that are not of concern to most users and are not relevant when content normalization is not enabled. When normalizing content, if qpdf runs into any lexical errors, it will print a warning indicating that content may be damaged. The only situation in which qpdf is known to cause damage during content normalization is when a page's contents are split across multiple streams and streams are split in the middle of a lexical token such as a string, name, or inline image. There may be some pathological cases in which qpdf could damage content without noticing this, such as if the partial tokens at the end of one stream and the beginning of the next stream are both valid, but usually qpdf will be able to detect this case. For slightly increased safety, you can specify in addition to or . This will cause qpdf to combine all the content streams into one, thus recombining any split tokens. However doing this will prevent you from being able to see the original layout of the content streams. If you must inspect the original content streams in an uncompressed format, you can always run with for a QDF file without content normalization, or alternatively for a regular non-QDF mode file with uncompressed streams. These will both uncompress all the streams but will not attempt to normalize content. Please note that if you are using content normalization or QDF mode for the purpose of manually inspecting files, you don't have to care about this. Object streams, also known as compressed objects, were introduced into the PDF specification at version 1.5, corresponding to Acrobat 6. Some older PDF viewers may not support files with object streams. qpdf can be used to transform files with object streams to files without object streams or vice versa. As mentioned above, there are three object stream modes: , , and . In mode, the relationship to objects and the streams that contain them is preserved from the original file. In mode, all objects are written as regular, uncompressed objects. The resulting file should be readable by older PDF viewers. (Of course, the content of the files may include features not supported by older viewers, but at least the structure will be supported.) In mode, qpdf will create its own object streams. This will usually result in more compact PDF files, though they may not be readable by older viewers. In this mode, qpdf will also make sure the PDF version number in the header is at least 1.5. The flag turns on QDF mode, which changes some of the defaults described above. Specifically, in QDF mode, by default, stream data is uncompressed, content streams are normalized, and encryption is removed. These defaults can still be overridden by specifying the appropriate options as described above. Additionally, in QDF mode, stream lengths are stored as indirect objects, objects are laid out in a less efficient but more readable fashion, and the documents are interspersed with comments that make it easier for the user to find things and also make it possible for fix-qdf to work properly. QDF mode is intended for people, mostly developers, who wish to inspect or modify PDF files in a text editor. For details, please see . Testing, Inspection, and Debugging Options These options can be useful for digging into PDF files or for use in automated test suites for software that uses the qpdf library. When any of the options in this section are specified, no output file should be given. The following options are available: Causes generation of a deterministic value for /ID. This prevents use of timestamp and output file name information in the /ID generation. Instead, at some slight additional runtime cost, the /ID field is generated to include a digest of the significant parts of the content of the output PDF file. This means that a given qpdf operation should generate the same /ID each time it is run, which can be useful when caching results or for generation of some test data. Use of this flag is not compatible with creation of encrypted files. Causes generation of a fixed value for /ID. This is intended for testing only. Never use it for production files. If you are trying to get the same /ID each time for a given file and you are not generating encrypted files, consider using the option. Causes use of a static initialization vector for AES-CBC. This is intended for testing only so that output files can be reproducible. Never use it for production files. This option in particular is not secure since it significantly weakens the encryption. Suppresses inclusion of original object ID comments in QDF files. This can be useful when generating QDF files for test purposes, particularly when comparing them to determine whether two PDF files have identical content. Shows document encryption parameters. Also shows the document's user password if the owner password is given. When encryption information is being displayed, as when or is given, display the computed or retrieved encryption key as a hexadecimal string. This value is not ordinarily useful to users, but it can be used as the argument to if the is specified. Note that, when PDF files are encrypted, passwords and other metadata are used only to compute an encryption key, and the encryption key is what is actually used for encryption. This enables retrieval of that key. Checks file integrity and linearization status. Checks and displays all data in the linearization hint tables. Shows the contents of the cross-reference table in a human-readable form. This is especially useful for files with cross-reference streams which are stored in a binary format. Show the contents of the given object. This is especially useful for inspecting objects that are inside of object streams (also known as “compressed objects”). When used along with the option, if the object is a stream, shows the raw stream data instead of object's contents. When used along with the option, if the object is a stream, shows the filtered stream data instead of object's contents. If the stream is filtered using filters that qpdf does not support, an error will be issued. Prints the number of pages in the input file on a line by itself. Since the number of pages appears by itself on a line, this option can be useful for scripting if you need to know the number of pages in a file. Shows the object and generation number for each page dictionary object and for each content stream associated with the page. Having this information makes it more convenient to inspect objects from a particular page. When used along with , also shows the object and generation numbers for the image objects on each page. (At present, information about images in shared resource dictionaries are not output by this command. This is discussed in a comment in the source code.) Checks file structure and well as encryption, linearization, and encoding of stream data. A file for which reports no errors may still have errors in stream data content but should otherwise be structurally sound. If any errors, qpdf will exit with a status of 2. There are some recoverable conditions that detects. These are issued as warnings instead of errors. If qpdf finds no errors but finds warnings, it will exit with a status of 3 (as of version 2.0.4). When is combined with other options, checks are always performed before any other options are processed. For erroneous files, will cause qpdf to attempt to recover, after which other options are effectively operating on the recovered file. Combining with other options in this way can be useful for manually recovering severely damaged files. The and options are ignored unless is given. Either of these options will cause the stream data to be written to standard output. In order to avoid commingling of stream data with other output, it is recommend that these objects not be combined with other test/inspection options. If is given and is also given, qpdf will attempt to normalize the stream data as if it is a page content stream. This attempt will be made even if it is not a page content stream, in which case it will produce unusable results. QDF Mode In QDF mode, qpdf creates PDF files in what we call QDF form. A PDF file in QDF form, sometimes called a QDF file, is a completely valid PDF file that has %QDF-1.0 as its third line (after the pdf header and binary characters) and has certain other characteristics. The purpose of QDF form is to make it possible to edit PDF files, with some restrictions, in an ordinary text editor. This can be very useful for experimenting with different PDF constructs or for making one-off edits to PDF files (though there are other reasons why this may not always work). It is ordinarily very difficult to edit PDF files in a text editor for two reasons: most meaningful data in PDF files is compressed, and PDF files are full of offset and length information that makes it hard to add or remove data. A QDF file is organized in a manner such that, if edits are kept within certain constraints, the fix-qdf program, distributed with qpdf, is able to restore edited files to a correct state. The fix-qdf program takes no command-line arguments. It reads a possibly edited QDF file from standard input and writes a repaired file to standard output. The following attributes characterize a QDF file: All objects appear in numerical order in the PDF file, including when objects appear in object streams. Objects are printed in an easy-to-read format, and all line endings are normalized to UNIX line endings. Unless specifically overridden, streams appear uncompressed (when qpdf supports the filters and they are compressed with a non-lossy compression scheme), and most content streams are normalized (line endings are converted to just a UNIX-style linefeeds). All streams lengths are represented as indirect objects, and the stream length object is always the next object after the stream. If the stream data does not end with a newline, an extra newline is inserted, and a special comment appears after the stream indicating that this has been done. If the PDF file contains object streams, if object stream n contains k objects, those objects are numbered from n+1 through n+k, and the object number/offset pairs appear on a separate line for each object. Additionally, each object in the object stream is preceded by a comment indicating its object number and index. This makes it very easy to find objects in object streams. All beginnings of objects, stream tokens, endstream tokens, and endobj tokens appear on lines by themselves. A blank line follows every endobj token. If there is a cross-reference stream, it is unfiltered. Page dictionaries and page content streams are marked with special comments that make them easy to find. Comments precede each object indicating the object number of the corresponding object in the original file. When editing a QDF file, any edits can be made as long as the above constraints are maintained. This means that you can freely edit a page's content without worrying about messing up the QDF file. It is also possible to add new objects so long as those objects are added after the last object in the file or subsequent objects are renumbered. If a QDF file has object streams in it, you can always add the new objects before the xref stream and then change the number of the xref stream, since nothing generally ever references it by number. It is not generally practical to remove objects from QDF files without messing up object numbering, but if you remove all references to an object, you can run qpdf on the file (after running fix-qdf), and qpdf will omit the now-orphaned object. When fix-qdf is run, it goes through the file and recomputes the following parts of the file: the /N, /W, and /First keys of all object stream dictionaries the pairs of numbers representing object numbers and offsets of objects in object streams all stream lengths the cross-reference table or cross-reference stream the offset to the cross-reference table or cross-reference stream following the startxref token Using the QPDF Library The source tree for the qpdf package has an examples directory that contains a few example programs. The qpdf/qpdf.cc source file also serves as a useful example since it exercises almost all of the qpdf library's public interface. The best source of documentation on the library itself is reading comments in include/qpdf/QPDF.hh, include/qpdf/QPDFWriter.hh, and include/qpdf/QPDFObjectHandle.hh. All header files are installed in the include/qpdf directory. It is recommend that you use #include <qpdf/QPDF.hh> rather than adding include/qpdf to your include path. When linking against the qpdf static library, you may also need to specify -lz -ljpeg on your link command. If your system understands how to read libtool .la files, this may not be necessary. The qpdf library is safe to use in a multithreaded program, but no individual QPDF object instance (including QPDF, QPDFObjectHandle, or QPDFWriter) can be used in more than one thread at a time. Multiple threads may simultaneously work with different instances of these and all other QPDF objects. Design and Library Notes Introduction This section was written prior to the implementation of the qpdf package and was subsequently modified to reflect the implementation. In some cases, for purposes of explanation, it may differ slightly from the actual implementation. As always, the source code and test suite are authoritative. Even if there are some errors, this document should serve as a road map to understanding how this code works. In general, one should adhere strictly to a specification when writing but be liberal in reading. This way, the product of our software will be accepted by the widest range of other programs, and we will accept the widest range of input files. This library attempts to conform to that philosophy whenever possible but also aims to provide strict checking for people who want to validate PDF files. If you don't want to see warnings and are trying to write something that is tolerant, you can call setSuppressWarnings(true). If you want to fail on the first error, you can call setAttemptRecovery(false). The default behavior is to generating warnings for recoverable problems. Note that recovery will not always produce the desired results even if it is able to get through the file. Unlike most other PDF files that produce generic warnings such as “This file is damaged,”, qpdf generally issues a detailed error message that would be most useful to a PDF developer. This is by design as there seems to be a shortage of PDF validation tools out there. (This was, in fact, one of the major motivations behind the initial creation of qpdf.) Design Goals The QPDF package includes support for reading and rewriting PDF files. It aims to hide from the user details involving object locations, modified (appended) PDF files, the directness/indirectness of objects, and stream filters including encryption. It does not aim to hide knowledge of the object hierarchy or content stream contents. Put another way, a user of the qpdf library is expected to have knowledge about how PDF files work, but is not expected to have to keep track of bookkeeping details such as file positions. A user of the library never has to care whether an object is direct or indirect. All access to objects deals with this transparently. All memory management details are also handled by the library. The PointerHolder object is used internally by the library to deal with memory management. This is basically a smart pointer object very similar in spirit to the Boost library's shared_ptr object, but predating it by several years. This library also makes use of a technique for giving fine-grained access to methods in one class to other classes by using public subclasses with friends and only private members that in turn call private methods of the containing class. See QPDFObjectHandle::Factory as an example. The top-level qpdf class is QPDF. A QPDF object represents a PDF file. The library provides methods for both accessing and mutating PDF files. QPDFObject is the basic PDF Object class. It is an abstract base class from which are derived classes for each type of PDF object. Clients do not interact with Objects directly but instead interact with QPDFObjectHandle. QPDFObjectHandle contains PointerHolder<QPDFObject> and includes accessor methods that are type-safe proxies to the methods of the derived object classes as well as methods for querying object types. They can be passed around by value, copied, stored in containers, etc. with very low overhead. Instances of QPDFObjectHandle always contain a reference back to the QPDF object from which they were created. A QPDFObjectHandle may be direct or indirect. If indirect, the QPDFObject the PointerHolder initially points to is a null pointer. In this case, the first attempt to access the underlying QPDFObject will result in the QPDFObject being resolved via a call to the referenced QPDF instance. This makes it essentially impossible to make coding errors in which certain things will work for some PDF files and not for others based on which objects are direct and which objects are indirect. Instances of QPDFObjectHandle can be directly created and modified using static factory methods in the QPDFObjectHandle class. There are factory methods for each type of object as well as a convenience method QPDFObjectHandle::parse that creates an object from a string representation of the object. Existing instances of QPDFObjectHandle can also be modified in several ways. See comments in QPDFObjectHandle.hh for details. When the QPDF class creates a new object, it dynamically allocates the appropriate type of QPDFObject and immediately hands the pointer to an instance of QPDFObjectHandle. The parser reads a token from the current file position. If the token is a not either a dictionary or array opener, an object is immediately constructed from the single token and the parser returns. Otherwise, the parser is invoked recursively in a special mode in which it accumulates objects until it finds a balancing closer. During this process, the “R” keyword is recognized and an indirect QPDFObjectHandle may be constructed. The QPDF::resolve() method, which is used to resolve an indirect object, may be invoked from the QPDFObjectHandle class. It first checks a cache to see whether this object has already been read. If not, it reads the object from the PDF file and caches it. It the returns the resulting QPDFObjectHandle. The calling object handle then replaces its PointerHolder<QDFObject> with the one from the newly returned QPDFObjectHandle. In this way, only a single copy of any direct object need exist and clients can access objects transparently without knowing caring whether they are direct or indirect objects. Additionally, no object is ever read from the file more than once. That means that only the portions of the PDF file that are actually needed are ever read from the input file, thus allowing the qpdf package to take advantage of this important design goal of PDF files. If the requested object is inside of an object stream, the object stream itself is first read into memory. Then the tokenizer reads objects from the memory stream based on the offset information stored in the stream. Those individual objects are cached, after which the temporary buffer holding the object stream contents are discarded. In this way, the first time an object in an object stream is requested, all objects in the stream are cached. An instance of QPDF is constructed by using the class's default constructor. If desired, the QPDF object may be configured with various methods that change its default behavior. Then the QPDF::processFile() method is passed the name of a PDF file, which permanently associates the file with that QPDF object. A password may also be given for access to password-protected files. QPDF does not enforce encryption parameters and will treat user and owner passwords equivalently. Either password may be used to access an encrypted file. As pointed out earlier, the intention is not for qpdf to be used to bypass security on files. but as any open source PDF consumer may be easily modified to bypass basic PDF document security, and qpdf offers may transformations that can do this as well, there seems to be little point in the added complexity of conditionally enforcing document security. QPDF will allow recovery of a user password given an owner password. The input PDF file must be seekable. (Output files written by QPDFWriter need not be seekable, even when creating linearized files.) During construction, QPDF validates the PDF file's header, and then reads the cross reference tables and trailer dictionaries. The QPDF class keeps only the first trailer dictionary though it does read all of them so it can check the /Prev key. QPDF class users may request the root object and the trailer dictionary specifically. The cross reference table is kept private. Objects may then be requested by number of by walking the object tree. When a PDF file has a cross-reference stream instead of a cross-reference table and trailer, requesting the document's trailer dictionary returns the stream dictionary from the cross-reference stream instead. There are some convenience routines for very common operations such as walking the page tree and returning a vector of all page objects. For full details, please see the header file QPDF.hh. The following example should clarify how QPDF processes a simple file. Client constructs QPDF pdf and calls pdf.processFile("a.pdf");. The QPDF class checks the beginning of a.pdf for %!PDF-1.[0-9]+. It then reads the cross reference table mentioned at the end of the file, ensuring that it is looking before the last %%EOF. After getting to trailer keyword, it invokes the parser. The parser sees “<<”, so it calls itself recursively in dictionary creation mode. In dictionary creation mode, the parser keeps accumulating objects until it encounters “>>”. Each object that is read is pushed onto a stack. If “R” is read, the last two objects on the stack are inspected. If they are integers, they are popped off the stack and their values are used to construct an indirect object handle which is then pushed onto the stack. When “>>” is finally read, the stack is converted into a QPDF_Dictionary which is placed in a QPDFObjectHandle and returned. The resulting dictionary is saved as the trailer dictionary. The /Prev key is searched. If present, QPDF seeks to that point and repeats except that the new trailer dictionary is not saved. If /Prev is not present, the initial parsing process is complete. If there is an encryption dictionary, the document's encryption parameters are initialized. The client requests root object. The QPDF class gets the value of root key from trailer dictionary and returns it. It is an unresolved indirect QPDFObjectHandle. The client requests the /Pages key from root QPDFObjectHandle. The QPDFObjectHandle notices that it is indirect so it asks QPDF to resolve it. QPDF looks in the object cache for an object with the root dictionary's object ID and generation number. Upon not seeing it, it checks the cross reference table, gets the offset, and reads the object present at that offset. It stores the result in the object cache and returns the cached result. The calling QPDFObjectHandle replaces its object pointer with the one from the resolved QPDFObjectHandle, verifies that it a valid dictionary object, and returns the (unresolved indirect) QPDFObject handle to the top of the Pages hierarchy. As the client continues to request objects, the same process is followed for each new requested object. Casting Policy This section describes the casting policy followed by qpdf's implementation. This is no concern to qpdf's end users and largely of no concern to people writing code that uses qpdf, but it could be of interest to people who are porting qpdf to a new platform or who are making modifications to the code. The C++ code in qpdf is free of old-style casts except where unavoidable (e.g. where the old-style cast is in a macro provided by a third-party header file). When there is a need for a cast, it is handled, in order of preference, by rewriting the code to avoid the need for a cast, calling const_cast, calling static_cast, calling reinterpret_cast, or calling some combination of the above. As a last resort, a compiler-specific #pragma may be used to suppress a warning that we don't want to fix. Examples may include suppressing warnings about the use of old-style casts in code that is shared between C and C++ code. The casting policy explicitly prohibits casting between integer sizes for no purpose other than to quiet a compiler warning when there is no reasonable chance of a problem resulting. The reason for this exclusion is that the practice of adding these additional casts precludes future use of additional compiler warnings as a tool for making future improvements to this aspect of the code, and it also damages the readability of the code. There are a few significant areas where casting is common in the qpdf sources or where casting would be required to quiet higher levels of compiler warnings but is omitted at present: char vs. unsigned char. For historical reasons, there are a lot of places in qpdf's internals that deal with unsigned char, which means that a lot of casting is required to interoperate with standard library calls and std::string. In retrospect, qpdf should have probably used regular (signed) char and char* everywhere and just cast to unsigned char when needed, but it's too late to make that change now. There are reinterpret_cast calls to go between char* and unsigned char*, and there are static_cast calls to go between char and unsigned char. These should always be safe. Non-const unsigned char* used in the Pipeline interface. The pipeline interface has a write call that uses unsigned char* without a const qualifier. The main reason for this is to support pipelines that make calls to third-party libraries, such as zlib, that don't include const in their interfaces. Unfortunately, there are many places in the code where it is desirable to have const char* with pipelines. None of the pipeline implementations in qpdf currently modify the data passed to write, and doing so would be counter to the intent of Pipeline, but there is nothing in the code to prevent this from being done. There are places in the code where const_cast is used to remove the const-ness of pointers going into Pipelines. This could theoretically be unsafe, but there is adequate testing to assert that it is safe and will remain safe in qpdf's code. size_t vs. qpdf_offset_t. This is pretty much unavoidable since sizes are unsigned types and offsets are signed types. Whenever it is necessary to seek by an amount given by a size_t, it becomes necessary to mix and match between size_t and qpdf_offset_t. Additionally, qpdf sometimes treats memory buffers like files (as with BufferInputSource, and those seek interfaces have to be consistent with file-based input sources. Neither gcc nor MSVC give warnings for this case by default, but both have warning flags that can enable this. (MSVC: or , which also enables some additional warnings that we ignore; gcc: ). This could matter for files whose sizes are larger than 263 bytes, but it is reasonable to expect that a world where such files are common would also have larger size_t and qpdf_offset_t types in it. On most 64-bit systems at the time of this writing (the release of version 4.1.0 of qpdf), both size_t and qpdf_offset_t are 64-bit integer types, while on many current 32-bit systems, size_t is a 32-bit type while qpdf_offset_t is a 64-bit type. I am not aware of any cases where 32-bit systems that have size_t smaller than qpdf_offset_t could run into problems. Although I can't conclusively rule out the possibility of such problems existing, I suspect any cases would be pretty contrived. In the event that someone should produce a file that qpdf can't handle because of what is suspected to be issues involving the handling of size_t vs. qpdf_offset_t (such files may behave properly on 64-bit systems but not on 32-bit systems because they have very large embedded files or streams, for example), the above mentioned warning flags could be enabled and all those implicit conversions could be carefully scrutinized. (I have already gone through that exercise once in adding support for files larger than 4 GB in size.) I continue to be committed to supporting large files on 32-bit systems, but I would not go to any lengths to support corner cases involving large embedded files or large streams that work on 64-bit systems but not on 32-bit systems because of size_t being too small. It is reasonable to assume that anyone working with such files would be using a 64-bit system anyway since many 32-bit applications would have similar difficulties. size_t vs. int or long. There are some cases where size_t and int or long or size_t and unsigned int or unsigned long are used interchangeably. These cases occur when working with very small amounts of memory, such as with the bit readers (where we're working with just a few bytes at a time), some cases of strlen, and a few other cases. I have scrutinized all of these cases and determined them to be safe, but there is no mechanism in the code to ensure that new unsafe conversions between int and size_t aren't introduced short of good testing and strong awareness of the issues. Again, if any such bugs are suspected in the future, enabling the additional warning flags and scrutinizing the warnings would be in order. To be clear, I believe qpdf to be well-behaved with respect to sizes and offsets, and qpdf's test suite includes actual generation and full processing of files larger than 4 GB in size. The issues raised here are largely academic and should not in any way be interpreted to mean that qpdf has practical problems involving sloppiness with integer types. I also believe that appropriate measures have been taken in the code to avoid problems with signed vs. unsigned integers from resulting in memory overwrites or other issues with potential security implications, though there are never any absolute guarantees. Encryption Encryption is supported transparently by qpdf. When opening a PDF file, if an encryption dictionary exists, the QPDF object processes this dictionary using the password (if any) provided. The primary decryption key is computed and cached. No further access is made to the encryption dictionary after that time. When an object is read from a file, the object ID and generation of the object in which it is contained is always known. Using this information along with the stored encryption key, all stream and string objects are transparently decrypted. Raw encrypted objects are never stored in memory. This way, nothing in the library ever has to know or care whether it is reading an encrypted file. An interface is also provided for writing encrypted streams and strings given an encryption key. This is used by QPDFWriter when it rewrites encrypted files. When copying encrypted files, unless otherwise directed, qpdf will preserve any encryption in force in the original file. qpdf can do this with either the user or the owner password. There is no difference in capability based on which password is used. When 40 or 128 bit encryption keys are used, the user password can be recovered with the owner password. With 256 keys, the user and owner passwords are used independently to encrypt the actual encryption key, so while either can be used, the owner password can no longer be used to recover the user password. Starting with version 4.0.0, qpdf can read files that are not encrypted but that contain encrypted attachments, but it cannot write such files. qpdf also requires the password to be specified in order to open the file, not just to extract attachments, since once the file is open, all decryption is handled transparently. When copying files like this while preserving encryption, qpdf will apply the file's encryption to everything in the file, not just to the attachments. When decrypting the file, qpdf will decrypt the attachments. In general, when copying PDF files with multiple encryption formats, qpdf will choose the newest format. The only exception to this is that clear-text metadata will be preserved as clear-text if it is that way in the original file. Random Number Generation QPDF generates random numbers to support generation of encrypted data. Versions prior to 5.0.1 used random or rand from stdlib to generate random numbers. Version 5.0.1, if available, used operating system-provided secure random number generation instead, enabling use of stdlib random number generation only if enabled by a compile-time option. Starting in version 5.1.0, use of insecure random numbers was disabled unless enabled at compile time. Starting in version 5.1.0, it is also possible for you to disable use of OS-provided secure random numbers. This is especially useful on Windows if you want to avoid a dependency on Microsoft's cryptography API. In this case, you must provide your own random data provider. Regardless of how you compile qpdf, starting in version 5.1.0, it is possible for you to provide your own random data provider at runtime. This would enable you to use some software-based secure pseudorandom number generator and to avoid use of whatever the operating system provides. For details on how to do this, please refer to the top-level README.md file in the source distribution and to comments in QUtil.hh. Adding and Removing Pages While qpdf's API has supported adding and modifying objects for some time, version 3.0 introduces specific methods for adding and removing pages. These are largely convenience routines that handle two tricky issues: pushing inheritable resources from the /Pages tree down to individual pages and manipulation of the /Pages tree itself. For details, see addPage and surrounding methods in QPDF.hh. Reserving Object Numbers Version 3.0 of qpdf introduced the concept of reserved objects. These are seldom needed for ordinary operations, but there are cases in which you may want to add a series of indirect objects with references to each other to a QPDF object. This causes a problem because you can't determine the object ID that a new indirect object will have until you add it to the QPDF object with QPDF::makeIndirectObject. The only way to add two mutually referential objects to a QPDF object prior to version 3.0 would be to add the new objects first and then make them refer to each other after adding them. Now it is possible to create a reserved object using QPDFObjectHandle::newReserved. This is an indirect object that stays “unresolved” even if it is queried for its type. So now, if you want to create a set of mutually referential objects, you can create reservations for each one of them and use those reservations to construct the references. When finished, you can call QPDF::replaceReserved to replace the reserved objects with the real ones. This functionality will never be needed by most applications, but it is used internally by QPDF when copying objects from other PDF files, as discussed in . For an example of how to use reserved objects, search for newReserved in test_driver.cc in qpdf's sources. Copying Objects From Other PDF Files Version 3.0 of qpdf introduced the ability to copy objects into a QPDF object from a different QPDF object, which we refer to as foreign objects. This allows arbitrary merging of PDF files. The “from” QPDF object must remain valid after the copy as discussed in the note below. The qpdf command-line tool provides limited support for basic page selection, including merging in pages from other files, but the library's API makes it possible to implement arbitrarily complex merging operations. The main method for copying foreign objects is QPDF::copyForeignObject. This takes an indirect object from another QPDF and copies it recursively into this object while preserving all object structure, including circular references. This means you can add a direct object that you create from scratch to a QPDF object with QPDF::makeIndirectObject, and you can add an indirect object from another file with QPDF::copyForeignObject. The fact that QPDF::makeIndirectObject does not automatically detect a foreign object and copy it is an explicit design decision. Copying a foreign object seems like a sufficiently significant thing to do that it should be done explicitly. The other way to copy foreign objects is by passing a page from one QPDF to another by calling QPDF::addPage. In contrast to QPDF::makeIndirectObject, this method automatically distinguishes between indirect objects in the current file, foreign objects, and direct objects. Please note: when you copy objects from one QPDF to another, the source QPDF object must remain valid until you have finished with the destination object. This is because the original object is still used to retrieve any referenced stream data from the copied object. Writing PDF Files The qpdf library supports file writing of QPDF objects to PDF files through the QPDFWriter class. The QPDFWriter class has two writing modes: one for non-linearized files, and one for linearized files. See for a description of linearization is implemented. This section describes how we write non-linearized files including the creation of QDF files (see . This outline was written prior to implementation and is not exactly accurate, but it provides a correct “notional” idea of how writing works. Look at the code in QPDFWriter for exact details. Initialize state: next object number = 1 object queue = empty renumber table: old object id/generation to new id/0 = empty xref table: new id -> offset = empty Create a QPDF object from a file. Write header for new PDF file. Request the trailer dictionary. For each value that is an indirect object, grab the next object number (via an operation that returns and increments the number). Map object to new number in renumber table. Push object onto queue. While there are more objects on the queue: Pop queue. Look up object's new number n in the renumbering table. Store current offset into xref table. Write n 0 obj. If object is null, whether direct or indirect, write out null, thus eliminating unresolvable indirect object references. If the object is a stream stream, write stream contents, piped through any filters as required, to a memory buffer. Use this buffer to determine the stream length. If object is not a stream, array, or dictionary, write out its contents. If object is an array or dictionary (including stream), traverse its elements (for array) or values (for dictionaries), handling recursive dictionaries and arrays, looking for indirect objects. When an indirect object is found, if it is not resolvable, ignore. (This case is handled when writing it out.) Otherwise, look it up in the renumbering table. If not found, grab the next available object number, assign to the referenced object in the renumbering table, and push the referenced object onto the queue. As a special case, when writing out a stream dictionary, replace length, filters, and decode parameters as required. Write out dictionary or array, replacing any unresolvable indirect object references with null (pdf spec says reference to non-existent object is legal and resolves to null) and any resolvable ones with references to the renumbered objects. If the object is a stream, write stream\n, the stream contents (from the memory buffer), and \nendstream\n. When done, write endobj. Once we have finished the queue, all referenced objects will have been written out and all deleted objects or unreferenced objects will have been skipped. The new cross-reference table will contain an offset for every new object number from 1 up to the number of objects written. This can be used to write out a new xref table. Finally we can write out the trailer dictionary with appropriately computed /ID (see spec, 8.3, File Identifiers), the cross reference table offset, and %%EOF. Filtered Streams Support for streams is implemented through the Pipeline interface which was designed for this package. When reading streams, create a series of Pipeline objects. The Pipeline abstract base requires implementation write() and finish() and provides an implementation of getNext(). Each pipeline object, upon receiving data, does whatever it is going to do and then writes the data (possibly modified) to its successor. Alternatively, a pipeline may be an end-of-the-line pipeline that does something like store its output to a file or a memory buffer ignoring a successor. For additional details, look at Pipeline.hh. QPDF can read raw or filtered streams. When reading a filtered stream, the QPDF class creates a Pipeline object for one of each appropriate filter object and chains them together. The last filter should write to whatever type of output is required. The QPDF class has an interface to write raw or filtered stream contents to a given pipeline. Linearization This chapter describes how QPDF and QPDFWriter implement creation and processing of linearized PDFS. Basic Strategy for Linearization To avoid the incestuous problem of having the qpdf library validate its own linearized files, we have a special linearized file checking mode which can be invoked via qpdf --check-linearization (or qpdf --check). This mode reads the linearization parameter dictionary and the hint streams and validates that object ordering, parameters, and hint stream contents are correct. The validation code was first tested against linearized files created by external tools (Acrobat and pdlin) and then used to validate files created by QPDFWriter itself. Preparing For Linearization Before creating a linearized PDF file from any other PDF file, the PDF file must be altered such that all page attributes are propagated down to the page level (and not inherited from parents in the /Pages tree). We also have to know which objects refer to which other objects, being concerned with page boundaries and a few other cases. We refer to this part of preparing the PDF file as optimization, discussed in . Note the, in this context, the term optimization is a qpdf term, and the term linearization is a term from the PDF specification. Do not be confused by the fact that many applications refer to linearization as optimization or web optimization. When creating linearized PDF files from optimized PDF files, there are really only a few issues that need to be dealt with: Creation of hints tables Placing objects in the correct order Filling in offsets and byte sizes Optimization In order to perform various operations such as linearization and splitting files into pages, it is necessary to know which objects are referenced by which pages, page thumbnails, and root and trailer dictionary keys. It is also necessary to ensure that all page-level attributes appear directly at the page level and are not inherited from parents in the pages tree. We refer to the process of enforcing these constraints as optimization. As mentioned above, note that some applications refer to linearization as optimization. Although this optimization was initially motivated by the need to create linearized files, we are using these terms separately. PDF file optimization is implemented in the QPDF_optimization.cc source file. That file is richly commented and serves as the primary reference for the optimization process. After optimization has been completed, the private member variables obj_user_to_objects and object_to_obj_users in QPDF have been populated. Any object that has more than one value in the object_to_obj_users table is shared. Any object that has exactly one value in the object_to_obj_users table is private. To find all the private objects in a page or a trailer or root dictionary key, one merely has make this determination for each element in the obj_user_to_objects table for the given page or key. Note that pages and thumbnails have different object user types, so the above test on a page will not include objects referenced by the page's thumbnail dictionary and nothing else. Writing Linearized Files We will create files with only primary hint streams. We will never write overflow hint streams. (As of PDF version 1.4, Acrobat doesn't either, and they are never necessary.) The hint streams contain offset information to objects that point to where they would be if the hint stream were not present. This means that we have to calculate all object positions before we can generate and write the hint table. This means that we have to generate the file in two passes. To make this reliable, QPDFWriter in linearization mode invokes exactly the same code twice to write the file to a pipeline. In the first pass, the target pipeline is a count pipeline chained to a discard pipeline. The count pipeline simply passes its data through to the next pipeline in the chain but can return the number of bytes passed through it at any intermediate point. The discard pipeline is an end of line pipeline that just throws its data away. The hint stream is not written and dummy values with adequate padding are stored in the first cross reference table, linearization parameter dictionary, and /Prev key of the first trailer dictionary. All the offset, length, object renumbering information, and anything else we need for the second pass is stored. At the end of the first pass, this information is passed to the QPDF class which constructs a compressed hint stream in a memory buffer and returns it. QPDFWriter uses this information to write a complete hint stream object into a memory buffer. At this point, the length of the hint stream is known. In the second pass, the end of the pipeline chain is a regular file instead of a discard pipeline, and we have known values for all the offsets and lengths that we didn't have in the first pass. We have to adjust offsets that appear after the start of the hint stream by the length of the hint stream, which is known. Anything that is of variable length is padded, with the padding code surrounding any writing code that differs in the two passes. This ensures that changes to the way things are represented never results in offsets that were gathered during the first pass becoming incorrect for the second pass. Using this strategy, we can write linearized files to a non-seekable output stream with only a single pass to disk or wherever the output is going. Calculating Linearization Data Once a file is optimized, we have information about which objects access which other objects. We can then process these tables to decide which part (as described in “Linearized PDF Document Structure” in the PDF specification) each object is contained within. This tells us the exact order in which objects are written. The QPDFWriter class asks for this information and enqueues objects for writing in the proper order. It also turns on a check that causes an exception to be thrown if an object is encountered that has not already been queued. (This could happen only if there were a bug in the traversal code used to calculate the linearization data.) Known Issues with Linearization There are a handful of known issues with this linearization code. These issues do not appear to impact the behavior of linearized files which still work as intended: it is possible for a web browser to begin to display them before they are fully downloaded. In fact, it seems that various other programs that create linearized files have many of these same issues. These items make reference to terminology used in the linearization appendix of the PDF specification. Thread Dictionary information keys appear in part 4 with the rest of Threads instead of in part 9. Objects in part 9 are not grouped together functionally. We are not calculating numerators for shared object positions within content streams or interleaving them within content streams. We generate only page offset, shared object, and outline hint tables. It would be relatively easy to add some additional tables. We gather most of the information needed to create thumbnail hint tables. There are comments in the code about this. Debugging Note The qpdf --show-linearization command can show the complete contents of linearization hint streams. To look at the raw data, you can extract the filtered contents of the linearization hint tables using qpdf --show-object=n --filtered-stream-data. Then, to convert this into a bit stream (since linearization tables are bit streams written without regard to byte boundaries), you can pipe the resulting data through the following perl code: use bytes; binmode STDIN; undef $/; my $a = <STDIN>; my @ch = split(//, $a); map { printf("%08b", ord($_)) } @ch; print "\n"; Object and Cross-Reference Streams This chapter provides information about the implementation of object stream and cross-reference stream support in qpdf. Object Streams Object streams can contain any regular object except the following: stream objects objects with generation > 0 the encryption dictionary objects containing the /Length of another stream In addition, Adobe reader (at least as of version 8.0.0) appears to not be able to handle having the document catalog appear in an object stream if the file is encrypted, though this is not specifically disallowed by the specification. There are additional restrictions for linearized files. See for details. The PDF specification refers to objects in object streams as “compressed objects” regardless of whether the object stream is compressed. The generation number of every object in an object stream must be zero. It is possible to delete and replace an object in an object stream with a regular object. The object stream dictionary has the following keys: /N: number of objects /First: byte offset of first object /Extends: indirect reference to stream that this extends Stream collections are formed with /Extends. They must form a directed acyclic graph. These can be used for semantic information and are not meaningful to the PDF document's syntactic structure. Although qpdf preserves stream collections, it never generates them and doesn't make use of this information in any way. The specification recommends limiting the number of objects in object stream for efficiency in reading and decoding. Acrobat 6 uses no more than 100 objects per object stream for linearized files and no more 200 objects per stream for non-linearized files. QPDFWriter, in object stream generation mode, never puts more than 100 objects in an object stream. Object stream contents consists of N pairs of integers, each of which is the object number and the byte offset of the object relative to the first object in the stream, followed by the objects themselves, concatenated. Cross-Reference Streams For non-hybrid files, the value following startxref is the byte offset to the xref stream rather than the word xref. For hybrid files (files containing both xref tables and cross-reference streams), the xref table's trailer dictionary contains the key /XRefStm whose value is the byte offset to a cross-reference stream that supplements the xref table. A PDF 1.5-compliant application should read the xref table first. Then it should replace any object that it has already seen with any defined in the xref stream. Then it should follow any /Prev pointer in the original xref table's trailer dictionary. The specification is not clear about what should be done, if anything, with a /Prev pointer in the xref stream referenced by an xref table. The QPDF class ignores it, which is probably reasonable since, if this case were to appear for any sensible PDF file, the previous xref table would probably have a corresponding /XRefStm pointer of its own. For example, if a hybrid file were appended, the appended section would have its own xref table and /XRefStm. The appended xref table would point to the previous xref table which would point the /XRefStm, meaning that the new /XRefStm doesn't have to point to it. Since xref streams must be read very early, they may not be encrypted, and the may not contain indirect objects for keys required to read them, which are these: /Type: value /XRef /Size: value n+1: where n is highest object number (same as /Size in the trailer dictionary) /Index (optional): value [n count ...] used to determine which objects' information is stored in this stream. The default is [0 /Size]. /Prev: value offset: byte offset of previous xref stream (same as /Prev in the trailer dictionary) /W [...]: sizes of each field in the xref table The other fields in the xref stream, which may be indirect if desired, are the union of those from the xref table's trailer dictionary. Cross-Reference Stream Data The stream data is binary and encoded in big-endian byte order. Entries are concatenated, and each entry has a length equal to the total of the entries in /W above. Each entry consists of one or more fields, the first of which is the type of the field. The number of bytes for each field is given by /W above. A 0 in /W indicates that the field is omitted and has the default value. The default value for the field type is “1”. All other default values are “0”. PDF 1.5 has three field types: 0: for free objects. Format: 0 obj next-generation, same as the free table in a traditional cross-reference table 1: regular non-compressed object. Format: 1 offset generation 2: for objects in object streams. Format: 2 object-stream-number index, the number of object stream containing the object and the index within the object stream of the object. It seems standard to have the first entry in the table be 0 0 0 instead of 0 0 ffff if there are no deleted objects. Implications for Linearized Files For linearized files, the linearization dictionary, document catalog, and page objects may not be contained in object streams. Objects stored within object streams are given the highest range of object numbers within the main and first-page cross-reference sections. It is okay to use cross-reference streams in place of regular xref tables. There are on special considerations. Hint data refers to object streams themselves, not the objects in the streams. Shared object references should also be made to the object streams. There are no reference in any hint tables to the object numbers of compressed objects (objects within object streams). When numbering objects, all shared objects within both the first and second halves of the linearized files must be numbered consecutively after all normal uncompressed objects in that half. Implementation Notes There are three modes for writing object streams: , , and . In disable mode, we do not generate any object streams, and we also generate an xref table rather than xref streams. This can be used to generate PDF files that are viewable with older readers. In preserve mode, we write object streams such that written object streams contain the same objects and /Extends relationships as in the original file. This is equal to disable if the file has no object streams. In generate, we create object streams ourselves by grouping objects that are allowed in object streams together in sets of no more than 100 objects. We also ensure that the PDF version is at least 1.5 in generate mode, but we preserve the version header in the other modes. The default is . We do not support creation of hybrid files. When we write files, even in preserve mode, we will lose any xref tables and merge any appended sections. Release Notes For a detailed list of changes, please see the file ChangeLog in the source distribution. 8.0.2: March 6, 2018 When a loop is detected while following cross reference streams or tables, treat this as damage instead of silently ignoring the previous table. This prevents loss of otherwise recoverable data in some damaged files. Properly handle pages with no contents. 8.0.1: March 4, 2018 Disregard data check errors when uncompressing streams. This is consistent with most other PDF readers and allows qpdf to recover data from another class of malformed PDF files. On the command line when specifying page ranges, support preceding a page number by “r” to indicate that it should be counted from the end. For example, the range r3-r1 would indicate the last three pages of a document. 8.0.0: February 25, 2018 Packaging and Distribution Changes QPDF is now distributed as an AppImage in addition to all the other ways it is distributed. The AppImage can be found in the download area with the other packages. Thanks to Kurt Pfeifle and Simon Peter for their contributions. Bug Fixes QPDFObjectHandle::getUTF8Val now properly treats non-Unicode strings as encoded with PDF Doc Encoding. Improvements to handling of objects in PDF files that are not of the expected type. In most cases, qpdf will be able to warn for such cases rather than fail with an exception. Previous versions of qpdf would sometimes fail with errors such as “operation for dictionary object attempted on object of wrong type”. This situation should be mostly or entirely eliminated now. Enhancements to the qpdf Command-line Tool. All new options listed here are documented in more detail in . The option has been added for debugging qpdf's linearization code. The option can be used to combine content streams of a page whose contents are an array of streams into a single stream. API Enhancements. All new API calls are documented in their respective classes' header files. There are no non-compatible changes to the API. Add function qpdf_check_pdf to the C API. This function does basic checking that is a subset of what qpdf --check performs. Major enhancements to the lexical layer of qpdf. For a complete list of enhancements, please refer to the ChangeLog file. Most of the changes result in improvements to qpdf's ability handle erroneous files. It is also possible for programs to handle whitespace, comments, and inline images as tokens. New API for working with PDF content streams at a lexical level. The new class QPDFObjectHandle::TokenFilter allows the developer to provide token handlers. Token filters can be used with several different methods in QPDFObjectHandle as well as with a lower-level interface. See comments in QPDFObjectHandle.hh as well as the new examples examples/pdf-filter-tokens.cc and examples/pdf-count-strings.cc for details. 7.1.1: February 4, 2018 Bug fix: files whose /ID fields were other than 16 bytes long can now be properly linearized A few compile and link issues have been corrected for some platforms. 7.1.0: January 14, 2018 PDF files contain streams that may be compressed with various compression algorithms which, in some cases, may be enhanced by various predictor functions. Previously only the PNG up predictor was supported. In this version, all the PNG predictors as well as the TIFF predictor are supported. This increases the range of files that qpdf is able to handle. QPDF now allows a raw encryption key to be specified in place of a password when opening encrypted files, and will optionally display the encryption key used by a file. This is a non-standard operation, but it can be useful in certain situations. Please see the discussion of in or the comments around QPDF::setPasswordIsHexKey in QPDF.hh for additional details. Bug fix: numbers ending with a trailing decimal point are now properly recognized as numbers. Bug fix: when building qpdf from source on some platforms (especially MacOS), the build could get confused by older versions of qpdf installed on the system. This has been corrected. 7.0.0: September 15, 2017 Packaging and Distribution Changes QPDF's primary license is now version 2.0 of the Apache License rather than version 2.0 of the Artistic License. You may still, at your option, consider qpdf to be licensed with version 2.0 of the Artistic license. QPDF no longer has a dependency on the PCRE (Perl-Compatible Regular Expression) library. QPDF now has an added dependency on the JPEG library. Bug Fixes This release contains many bug fixes for various infinite loops, memory leaks, and other memory errors that could be encountered with specially crafted or otherwise erroneous PDF files. New Features QPDF now supports reading and writing streams encoded with JPEG or RunLength encoding. Library API enhancements and command-line options have been added to control this behavior. See command-line options and and methods QPDFWriter::setCompressStreams and QPDFWriter::setDecodeLevel. QPDF is much better at recovering from broken files. In most cases, qpdf will skip invalid objects and will preserve broken stream data by not attempting to filter broken streams. QPDF is now able to recover or at least not crash on dozens of broken test files I have received over the past few years. Page rotation is now supported and accessible from both the library and the command line. QPDFWriter supports writing files in a way that preserves PCLm compliance in support of driverless printing. This is very specialized and is only useful to applications that already know how to create PCLm files. Enhancements to the qpdf Command-line Tool. All new options listed here are documented in more detail in . Command-line arguments can now be read from files or standard input using @file or @- syntax. Please see . : request page rotation : ensure that a newline appears before every endstream keyword in the file; used to prevent qpdf from breaking PDF/A compliance on already compliant files. : preserve unreferenced objects in the input PDF : break output into chunks with fixed numbers of pages : print the name of each output file that is created and replace for improving granularity of controlling compression and decompression of stream data. The option will remain available. When running qpdf --check with other options, checks are always run first. This enables qpdf to perform its full recovery logic before outputting other information. This can be especially useful when manually recovering broken files, looking at qpdf's regenerated cross reference table, or other similar operations. Process --pages earlier so that other options like or can operate on the file after page splitting/merging has occurred. API Changes. All new API calls are documented in their respective classes' header files. QPDFObjectHandle::rotatePage: apply rotation to a page object QPDFWriter::setNewlineBeforeEndstream: force newline to appear before endstream QPDFWriter::setPreserveUnreferencedObjects: preserve unreferenced objects that appear in the input PDF. The default behavior is to discard them. New Pipeline types Pl_RunLength and Pl_DCT are available for developers who wish to produce or consume RunLength or DCT stream data directly. The examples/pdf-create.cc example illustrates their use. QPDFWriter::setCompressStreams and QPDFWriter::setDecodeLevel methods control handling of different types of stream compression. Add new C API functions qpdf_set_compress_streams, qpdf_set_decode_level, qpdf_set_preserve_unreferenced_objects, and qpdf_set_newline_before_endstream corresponding to the new QPDFWriter methods. 6.0.0: November 10, 2015 Implement command-line option and QPDFWriter::setDeterministicID as well as C API function qpdf_set_deterministic_ID for generating a deterministic ID for non-encrypted files. When this option is selected, the ID of the file depends on the contents of the output file, and not on transient items such as the timestamp or output file name. Make qpdf more tolerant of files whose xref table entries are not the correct length. 5.1.3: May 24, 2015 Bug fix: fix-qdf was not properly handling files that contained object streams with more than 255 objects in them. Bug fix: qpdf was not properly initializing Microsoft's secure crypto provider on fresh Windows installations that had not had any keys created yet. Fix a few errors found by Gynvael Coldwind and Mateusz Jurczyk of the Google Security Team. Please see the ChangeLog for details. Properly handle pages that have no contents at all. There were many cases in which qpdf handled this fine, but a few methods blindly obtained page contents with handling the possibility that there were no contents. Make qpdf more robust for a few more kinds of problems that may occur in invalid PDF files. 5.1.2: June 7, 2014 Bug fix: linearizing files could create a corrupted output file under extremely unlikely file size circumstances. See ChangeLog for details. The odds of getting hit by this are very low, though one person did. Bug fix: qpdf would fail to write files that had streams with decode parameters referencing other streams. New example program: pdf-split-pages: efficiently split PDF files into individual pages. The example program does this more efficiently than using qpdf --pages to do it. Packaging fix: Visual C++ binaries did not support Windows XP. This has been rectified by updating the compilers used to generate the release binaries. 5.1.1: January 14, 2014 Performance fix: copying foreign objects could be very slow with certain types of files. This was most likely to be visible during page splitting and was due to traversing the same objects multiple times in some cases. 5.1.0: December 17, 2013 Added runtime option (QUtil::setRandomDataProvider) to supply your own random data provider. You can use this if you want to avoid using the OS-provided secure random number generation facility or stdlib's less secure version. See comments in include/qpdf/QUtil.hh for details. Fixed image comparison tests to not create 12-bit-per-pixel images since some versions of tiffcmp have bugs in comparing them in some cases. This increases the disk space required by the image comparison tests, which are off by default anyway. Introduce a number of small fixes for compilation on the latest clang in MacOS and the latest Visual C++ in Windows. Be able to handle broken files that end the xref table header with a space instead of a newline. 5.0.1: October 18, 2013 Thanks to a detailed review by Florian Weimer and the Red Hat Product Security Team, this release includes a number of non-user-visible security hardening changes. Please see the ChangeLog file in the source distribution for the complete list. When available, operating system-specific secure random number generation is used for generating initialization vectors and other random values used during encryption or file creation. For the Windows build, this results in an added dependency on Microsoft's cryptography API. To disable the OS-specific cryptography and use the old version, pass the option to ./configure. The qpdf command-line tool now issues a warning when is specified for newer encryption versions stating that the option is ignored. qpdf, per the spec, has always ignored this flag, but it previously did so silently. This warning is issued only by the command-line tool, not by the library. The library's handling of this flag is unchanged. 5.0.0: July 10, 2013 Bug fix: previous versions of qpdf would lose objects with generation != 0 when generating object streams. Fixing this required changes to the public API. Removed methods from public API that were only supposed to be called by QPDFWriter and couldn't realistically be called anywhere else. See ChangeLog for details. New QPDFObjGen class added to represent an object ID/generation pair. QPDFObjectHandle::getObjGen() is now preferred over QPDFObjectHandle::getObjectID() and QPDFObjectHandle::getGeneration() as it makes it less likely for people to accidentally write code that ignores the generation number. See QPDF.hh and QPDFObjectHandle.hh for additional notes. Add command-line option to the qpdf command to show the number of pages in a file. Allow omission of the page range within for the qpdf command. When omitted, the page range is implicitly taken to be all the pages in the file. Various enhancements were made to support different types of broken files or broken readers. Details can be found in ChangeLog. 4.1.0: April 14, 2013 Note to people including qpdf in distributions: the .la files generated by libtool are now installed by qpdf's make install target. Before, they were not installed. This means that if your distribution does not want to include .la files, you must remove them as part of your packaging process. Major enhancement: API enhancements have been made to support parsing of content streams. This enhancement includes the following changes: QPDFObjectHandle::parseContentStream method parses objects in a content stream and calls handlers in a callback class. The example examples/pdf-parse-content.cc illustrates how this may be used. QPDFObjectHandle can now represent operators and inline images, object types that may only appear in content streams. Method QPDFObjectHandle::getTypeCode() returns an enumerated type value representing the underlying object type. Method QPDFObjectHandle::getTypeName() returns a text string describing the name of the type of a QPDFObjectHandle object. These methods can be used for more efficient parsing and debugging/diagnostic messages. qpdf --check now parses all pages' content streams in addition to doing other checks. While there are still many types of errors that cannot be detected, syntactic errors in content streams will now be reported. Minor compilation enhancements have been made to facilitate easier for support for a broader range of compilers and compiler versions. Warning flags have been moved into a separate variable in autoconf.mk The configure flag work for Microsoft compilers All MSVC CRT security warnings have been resolved. All C-style casts in C++ Code have been replaced by C++ casts, and many casts that had been included to suppress higher warning levels for some compilers have been removed, primarily for clarity. Places where integer type coercion occurs have been scrutinized. A new casting policy has been documented in the manual. This is of concern mainly to people porting qpdf to new platforms or compilers. It is not visible to programmers writing code that uses the library Some internal limits have been removed in code that converts numbers to strings. This is largely invisible to users, but it does trigger a bug in some older versions of mingw-w64's C++ library. See README-windows.md in the source distribution if you think this may affect you. The copy of the DLL distributed with qpdf's binary distribution is not affected by this problem. The RPM spec file previously included with qpdf has been removed. This is because virtually all Linux distributions include qpdf now that it is a dependency of CUPS filters. A few bug fixes are included: Overridden compressed objects are properly handled. Before, there were certain constructs that could cause qpdf to see old versions of some objects. The most usual manifestation of this was loss of filled in form values for certain files. Installation no longer uses GNU/Linux-specific versions of some commands, so make install works on Solaris with native tools. The 64-bit mingw Windows binary package no longer includes a 32-bit DLL. 4.0.1: January 17, 2013 Fix detection of binary attachments in test suite to avoid false test failures on some platforms. Add clarifying comment in QPDF.hh to methods that return the user password explaining that it is no longer possible with newer encryption formats to recover the user password knowing the owner password. In earlier encryption formats, the user password was encrypted in the file using the owner password. In newer encryption formats, a separate encryption key is used on the file, and that key is independently encrypted using both the user password and the owner password. 4.0.0: December 31, 2012 Major enhancement: support has been added for newer encryption schemes supported by version X of Adobe Acrobat. This includes use of 127-character passwords, 256-bit encryption keys, and the encryption scheme specified in ISO 32000-2, the PDF 2.0 specification. This scheme can be chosen from the command line by specifying use of 256-bit keys. qpdf also supports the deprecated encryption method used by Acrobat IX. This encryption style has known security weaknesses and should not be used in practice. However, such files exist “in the wild,” so support for this scheme is still useful. New methods QPDFWriter::setR6EncryptionParameters (for the PDF 2.0 scheme) and QPDFWriter::setR5EncryptionParameters (for the deprecated scheme) have been added to enable these new encryption schemes. Corresponding functions have been added to the C API as well. Full support for Adobe extension levels in PDF version information. Starting with PDF version 1.7, corresponding to ISO 32000, Adobe adds new functionality by increasing the extension level rather than increasing the version. This support includes addition of the QPDF::getExtensionLevel method for retrieving the document's extension level, addition of versions of QPDFWriter::setMinimumPDFVersion and QPDFWriter::forcePDFVersion that accept an extension level, and extended syntax for specifying forced and minimum versions on the command line as described in . Corresponding functions have been added to the C API as well. Minor fixes to prevent qpdf from referencing objects in the file that are not referenced in the file's overall structure. Most files don't have any such objects, but some files have contain unreferenced objects with errors, so these fixes prevent qpdf from needlessly rejecting or complaining about such objects. Add new generalized methods for reading and writing files from/to programmer-defined sources. The method QPDF::processInputSource allows the programmer to use any input source for the input file, and QPDFWriter::setOutputPipeline allows the programmer to write the output file through any pipeline. These methods would make it possible to perform any number of specialized operations, such as accessing external storage systems, creating bindings for qpdf in other programming languages that have their own I/O systems, etc. Add new method QPDF::getEncryptionKey for retrieving the underlying encryption key used in the file. This release includes a small handful of non-compatible API changes. While effort is made to avoid such changes, all the non-compatible API changes in this version were to parts of the API that would likely never be used outside the library itself. In all cases, the altered methods or structures were parts of the QPDF that were public to enable them to be called from either QPDFWriter or were part of validation code that was over-zealous in reporting problems in parts of the file that would not ordinarily be referenced. In no case did any of the removed methods do anything worse that falsely report error conditions in files that were broken in ways that didn't matter. The following public parts of the QPDF class were changed in a non-compatible way: Updated nested QPDF::EncryptionData class to add fields needed by the newer encryption formats, member variables changed to private so that future changes will not require breaking backward compatibility. Added additional parameters to compute_data_key, which is used by QPDFWriter to compute the encryption key used to encrypt a specific object. Removed the method flattenScalarReferences. This method was previously used prior to writing a new PDF file, but it has the undesired side effect of causing qpdf to read objects in the file that were not referenced. Some otherwise files have unreferenced objects with errors in them, so this could cause qpdf to reject files that would be accepted by virtually all other PDF readers. In fact, qpdf relied on only a very small part of what flattenScalarReferences did, so only this part has been preserved, and it is now done directly inside QPDFWriter. Removed the method decodeStreams. This method was used by the option of the qpdf command-line tool to force all streams in the file to be decoded, but it also suffered from the problem of opening otherwise unreferenced streams and thus could report false positive. The option now causes qpdf to go through all the motions of writing a new file based on the original one, so it will always reference and check exactly those parts of a file that any ordinary viewer would check. Removed the method trimTrailerForWrite. This method was used by QPDFWriter to modify the original QPDF object by removing fields from the trailer dictionary that wouldn't apply to the newly written file. This functionality, though generally harmless, was a poor implementation and has been replaced by having QPDFWriter filter these out when copying the trailer rather than modifying the original QPDF object. (Note that qpdf never modifies the original file itself.) Allow the PDF header to appear anywhere in the first 1024 bytes of the file. This is consistent with what other readers do. Fix the pkg-config files to list zlib and pcre in Requires.private to better support static linking using pkg-config. 3.0.2: September 6, 2012 Bug fix: QPDFWriter::setOutputMemory did not work when not used with QPDFWriter::setStaticID, which made it pretty much useless. This has been fixed. New API call QPDFWriter::setExtraHeaderText inserts additional text near the header of the PDF file. The intended use case is to insert comments that may be consumed by a downstream application, though other use cases may exist. 3.0.1: August 11, 2012 Version 3.0.0 included addition of files for pkg-config, but this was not mentioned in the release notes. The release notes for 3.0.0 were updated to mention this. Bug fix: if an object stream ended with a scalar object not followed by space, qpdf would incorrectly report that it encountered a premature EOF. This bug has been in qpdf since version 2.0. 3.0.0: August 2, 2012 Acknowledgment: I would like to express gratitude for the contributions of Tobias Hoffmann toward the release of qpdf version 3.0. He is responsible for most of the implementation and design of the new API for manipulating pages, and contributed code and ideas for many of the improvements made in version 3.0. Without his work, this release would certainly not have happened as soon as it did, if at all. Non-compatible API change: The version of QPDFObjectHandle::replaceStreamData that uses a StreamDataProvider no longer requires (or accepts) a length parameter. See for an explanation. While care is taken to avoid non-compatible API changes in general, an exception was made this time because the new interface offers an opportunity to significantly simplify calling code. Support has been added for large files. The test suite verifies support for files larger than 4 gigabytes, and manual testing has verified support for files larger than 10 gigabytes. Large file support is available for both 32-bit and 64-bit platforms as long as the compiler and underlying platforms support it. Support for page selection (splitting and merging PDF files) has been added to the qpdf command-line tool. See . Options have been added to the qpdf command-line tool for copying encryption parameters from another file. See . New methods have been added to the QPDF object for adding and removing pages. See . New methods have been added to the QPDF object for copying objects from other PDF files. See A new method QPDFObjectHandle::parse has been added for constructing QPDFObjectHandle objects from a string description. Methods have been added to QPDFWriter to allow writing to an already open stdio FILE* addition to writing to standard output or a named file. Methods have been added to QPDF to be able to process a file from an already open stdio FILE*. This makes it possible to read and write PDF from secure temporary files that have been unlinked prior to being fully read or written. The QPDF::emptyPDF can be used to allow creation of PDF files from scratch. The example examples/pdf-create.cc illustrates how it can be used. Several methods to take PointerHolder<Buffer> can now also accept std::string arguments. Many new convenience methods have been added to the library, most in QPDFObjectHandle. See ChangeLog for a full list. When building on a platform that supports ELF shared libraries (such as Linux), symbol versions are enabled by default. They can be disabled by passing to ./configure. The file libqpdf.pc is now installed to support pkg-config. Image comparison tests are off by default now since they are not needed to verify a correct build or port of qpdf. They are needed only when changing the actual PDF output generated by qpdf. You should enable them if you are making deep changes to qpdf itself. See README.md for details. Large file tests are off by default but can be turned on with ./configure or by setting an environment variable before running the test suite. See README.md for details. When qpdf's test suite fails, failures are not printed to the terminal anymore by default. Instead, find them in build/qtest.log. For packagers who are building with an autobuilder, you can add the option to ./configure to restore the old behavior. 2.3.1: December 28, 2011 Fix thread-safety problem resulting from non-thread-safe use of the PCRE library. Made a few minor documentation fixes. Add workaround for a bug that appears in some versions of ghostscript to the test suite Fix minor build issue for Visual C++ 2010. 2.3.0: August 11, 2011 Bug fix: when preserving existing encryption on encrypted files with cleartext metadata, older qpdf versions would generate password-protected files with no valid password. This operation now works. This bug only affected files created by copying existing encryption parameters; explicit encryption with specification of cleartext metadata worked before and continues to work. Enhance QPDFWriter with a new constructor that allows you to delay the specification of the output file. When using this constructor, you may now call QPDFWriter::setOutputFilename to specify the output file, or you may use QPDFWriter::setOutputMemory to cause QPDFWriter to write the resulting PDF file to a memory buffer. You may then use QPDFWriter::getBuffer to retrieve the memory buffer. Add new API call QPDF::replaceObject for replacing objects by object ID Add new API call QPDF::swapObjects for swapping two objects by object ID Add QPDFObjectHandle::getDictAsMap and QPDFObjectHandle::getArrayAsVector to allow retrieval of dictionary objects as maps and array objects as vectors. Add functions qpdf_get_info_key and qpdf_set_info_key to the C API for manipulating string fields of the document's /Info dictionary. Add functions qpdf_init_write_memory, qpdf_get_buffer_length, and qpdf_get_buffer to the C API for writing PDF files to a memory buffer instead of a file. 2.2.4: June 25, 2011 Fix installation and compilation issues; no functionality changes. 2.2.3: April 30, 2011 Handle some damaged streams with incorrect characters following the stream keyword. Improve handling of inline images when normalizing content streams. Enhance error recovery to properly handle files that use object 0 as a regular object, which is specifically disallowed by the spec. 2.2.2: October 4, 2010 Add new function qpdf_read_memory to the C API to call QPDF::processMemoryFile. This was an omission in qpdf 2.2.1. 2.2.1: October 1, 2010 Add new method QPDF::setOutputStreams to replace std::cout and std::cerr with other streams for generation of diagnostic messages and error messages. This can be useful for GUIs or other applications that want to capture any output generated by the library to present to the user in some other way. Note that QPDF does not write to std::cout (or the specified output stream) except where explicitly mentioned in QPDF.hh, and that the only use of the error stream is for warnings. Note also that output of warnings is suppressed when setSuppressWarnings(true) is called. Add new method QPDF::processMemoryFile for operating on PDF files that are loaded into memory rather than in a file on disk. Give a warning but otherwise ignore empty PDF objects by treating them as null. Empty object are not permitted by the PDF specification but have been known to appear in some actual PDF files. Handle inline image filter abbreviations when the appear as stream filter abbreviations. The PDF specification does not allow use of stream filter abbreviations in this way, but Adobe Reader and some other PDF readers accept them since they sometimes appear incorrectly in actual PDF files. Implement miscellaneous enhancements to PointerHolder and Buffer to support other changes. 2.2.0: August 14, 2010 Add new methods to QPDFObjectHandle (newStream and replaceStreamData for creating new streams and replacing stream data. This makes it possible to perform a wide range of operations that were not previously possible. Add new helper method in QPDFObjectHandle (addPageContents) for appending or prepending new content streams to a page. This method makes it possible to manipulate content streams without having to be concerned whether a page's contents are a single stream or an array of streams. Add new method in QPDFObjectHandle: replaceOrRemoveKey, which replaces a dictionary key with a given value unless the value is null, in which case it removes the key instead. Add new method in QPDFObjectHandle: getRawStreamData, which returns the raw (unfiltered) stream data into a buffer. This complements the getStreamData method, which returns the filtered (uncompressed) stream data and can only be used when the stream's data is filterable. Provide two new examples: pdf-double-page-size and pdf-invert-images that illustrate the newly added interfaces. Fix a memory leak that would cause loss of a few bytes for every object involved in a cycle of object references. Thanks to Jian Ma for calling my attention to the leak. 2.1.5: April 25, 2010 Remove restriction of file identifier strings to 16 bytes. This unnecessary restriction was preventing qpdf from being able to encrypt or decrypt files with identifier strings that were not exactly 16 bytes long. The specification imposes no such restriction. 2.1.4: April 18, 2010 Apply the same padding calculation fix from version 2.1.2 to the main cross reference stream as well. Since qpdf --check only performs limited checks, clarify the output to make it clear that there still may be errors that qpdf can't check. This should make it less surprising to people when another PDF reader is unable to read a file that qpdf thinks is okay. 2.1.3: March 27, 2010 Fix bug that could cause a failure when rewriting PDF files that contain object streams with unreferenced objects that in turn reference indirect scalars. Don't complain about (invalid) AES streams that aren't a multiple of 16 bytes. Instead, pad them before decrypting. 2.1.2: January 24, 2010 Fix bug in padding around first half cross reference stream in linearized files. The bug could cause an assertion failure when linearizing certain unlucky files. 2.1.1: December 14, 2009 No changes in functionality; insert missing include in an internal library header file to support gcc 4.4, and update test suite to ignore broken Adobe Reader installations. 2.1: October 30, 2009 This is the first version of qpdf to include Windows support. On Windows, it is possible to build a DLL. Additionally, a partial C-language API has been introduced, which makes it possible to call qpdf functions from non-C++ environments. I am very grateful to Žarko Gajic (http://zarko-gajic.iz.hr/) for tirelessly testing numerous pre-release versions of this DLL and providing many excellent suggestions on improving the interface. For programming to the C interface, please see the header file qpdf/qpdf-c.h and the example examples/pdf-linearize.c. Žarko Gajic has written a Delphi wrapper for qpdf, which can be downloaded from qpdf's download side. Žarko's Delphi wrapper is released with the same licensing terms as qpdf itself and comes with this disclaimer: “Delphi wrapper unit qpdf.pas created by Žarko Gajic (http://zarko-gajic.iz.hr/). Use at your own risk and for whatever purpose you want. No support is provided. Sample code is provided.” Support has been added for AES encryption and crypt filters. Although qpdf does not presently support files that use PKI-based encryption, with the addition of AES and crypt filters, qpdf is now be able to open most encrypted files created with newer versions of Acrobat or other PDF creation software. Note that I have not been able to get very many files encrypted in this way, so it's possible there could still be some cases that qpdf can't handle. Please report them if you find them. Many error messages have been improved to include more information in hopes of making qpdf a more useful tool for PDF experts to use in manually recovering damaged PDF files. Attempt to avoid compressing metadata streams if possible. This is consistent with other PDF creation applications. Provide new command-line options for AES encrypt, cleartext metadata, and setting the minimum and forced PDF versions of output files. Add additional methods to the QPDF object for querying the document's permissions. Although qpdf does not enforce these permissions, it does make them available so that applications that use qpdf can enforce permissions. The option to qpdf has been extended to include some additional information. There have been a handful of non-compatible API changes. For details, see . 2.0.6: May 3, 2009 Do not attempt to uncompress streams that have decode parameters we don't recognize. Earlier versions of qpdf would have rejected files with such streams. 2.0.5: March 10, 2009 Improve error handling in the LZW decoder, and fix a small error introduced in the previous version with regard to handling full tables. The LZW decoder has been more strongly verified in this release. 2.0.4: February 21, 2009 Include proper support for LZW streams encoded without the “early code change” flag. Special thanks to Atom Smasher who reported the problem and provided an input file compressed in this way, which I did not previously have. Implement some improvements to file recovery logic. 2.0.3: February 15, 2009 Compile cleanly with gcc 4.4. Handle strings encoded as UTF-16BE properly. 2.0.2: June 30, 2008 Update test suite to work properly with a non-bash /bin/sh and with Perl 5.10. No changes were made to the actual qpdf source code itself for this release. 2.0.1: May 6, 2008 No changes in functionality or interface. This release includes fixes to the source code so that qpdf compiles properly and passes its test suite on a broader range of platforms. See ChangeLog in the source distribution for details. 2.0: April 29, 2008 First public release. Upgrading from 2.0 to 2.1 Although, as a general rule, we like to avoid introducing source-level incompatibilities in qpdf's interface, there were a few non-compatible changes made in this version. A considerable amount of source code that uses qpdf will probably compile without any changes, but in some cases, you may have to update your code. The changes are enumerated here. There are also some new interfaces; for those, please refer to the header files. QPDF's exception handling mechanism now uses std::logic_error for internal errors and std::runtime_error for runtime errors in favor of the now removed QEXC classes used in previous versions. The QEXC exception classes predated the addition of the <stdexcept> header file to the C++ standard library. Most of the exceptions thrown by the qpdf library itself are still of type QPDFExc which is now derived from std::runtime_error. Programs that caught an instance of std::exception and displayed it by calling the what() method will not need to be changed. The QPDFExc class now internally represents various fields of the error condition and provides interfaces for querying them. Among the fields is a numeric error code that can help applications act differently on (a small number of) different error conditions. See QPDFExc.hh for details. Warnings can be retrieved from qpdf as instances of QPDFExc instead of strings. The nested QPDF::EncryptionData class's constructor takes an additional argument. This class is primarily intended to be used by QPDFWriter. There's not really anything useful an end-user application could do with it. It probably shouldn't really be part of the public interface to begin with. Likewise, some of the methods for computing internal encryption dictionary parameters have changed to support /R=4 encryption. The method QPDF::getUserPassword has been removed since it didn't do what people would think it did. There are now two new methods: QPDF::getPaddedUserPassword and QPDF::getTrimmedUserPassword. The first one does what the old QPDF::getUserPassword method used to do, which is to return the password with possible binary padding as specified by the PDF specification. The second one returns a human-readable password string. The enumerated types that used to be nested in QPDFWriter have moved to top-level enumerated types and are now defined in the file qpdf/Constants.h. This enables them to be shared by both the C and C++ interfaces. Upgrading to 3.0 For the most part, the API for qpdf version 3.0 is backward compatible with versions 2.1 and later. There are two exceptions: The method QPDFObjectHandle::replaceStreamData that uses a StreamDataProvider to provide the stream data no longer takes a length parameter. While it would have been easy enough to keep the parameter for backward compatibility, in this case, the parameter was removed since this provides the user an opportunity to simplify the calling code. This method was introduced in version 2.2. At the time, the length parameter was required in order to ensure that calls to the stream data provider returned the same length for a specific stream every time they were invoked. In particular, the linearization code depends on this. Instead, qpdf 3.0 and newer check for that constraint explicitly. The first time the stream data provider is called for a specific stream, the actual length is saved, and subsequent calls are required to return the same number of bytes. This means the calling code no longer has to compute the length in advance, which can be a significant simplification. If your code fails to compile because of the extra argument and you don't want to make other changes to your code, just omit the argument. Many methods take long long instead of other integer types. Most if not all existing code should compile fine with this change since such parameters had always previously been smaller types. This change was required to support files larger than two gigabytes in size. Upgrading to 4.0 While version 4.0 includes a few non-compatible API changes, it is very unlikely that anyone's code would have used any of those parts of the API since they generally required information that would only be available inside the library. In the unlikely event that you should run into trouble, please see the ChangeLog. See also for a complete list of the non-compatible API changes made in this version. qpdf-8.0.2/manual/fix-qdf.1.in0000644000064100006410000000131113247541377014044 0ustar ejbejb\" This file is not processed by autoconf, but rather by build.mk in \" the manual directory. .TH FIX-QDF "1" "April 2008" "fix-qdf version @PACKAGE_VERSION@" "User Commands" .SH NAME fix-qdf \- repair PDF files in QDF form after editing .SH SYNOPSIS .B fix-qdf < \fIinfilename\fR > \fIoutfilename\fR .SH DESCRIPTION The fix-qdf program is part of the qpdf package. .PP The fix-qdf program reads a PDF file in QDF form and writes out the same file with stream lengths, cross-reference table entries, and object stream offset tables regenerated. .PP For details about fix-qdf and about PDF files in QDF mode, please see the qpdf manual, which can be found in @docdir@/qpdf-manual.html or @docdir@/qpdf-manual.pdf. qpdf-8.0.2/README-hardening.md0000644000064100006410000000532413247541377013766 0ustar ejbejb# Avoiding `operator[]` During a security review by Red Hat security team (specifically Florian Weimer), it was discovered that qpdf used `std::string` and `std::vector`'s `operator[]`, which has no bounds checking by design. Instead, using those objects' `at()` method is preferable since it does bounds checking. Florian has a tool that can detect all uses of these methods and report them. I have a short perl script that automatically corrects any such uses. The perl script is not intended to be general, but it could be reasonably general. The only known shortcut is that it might not work very well with some cases of nested `[]`'s like `a[b[c]]` or with cases where there are line breaks inside the brackets. For qpdf's coding style, it worked on all cases reported. To use this, obtain htcondor-analyzer, run it, and respond to the report. Here's what I did. ``` sudo aptitude install libclang-dev llvm llvm-dev clang cd /tmp git clone https://github.com/fweimer/htcondor-analyzer # HEAD = 5fa06fc68a9b0677e9de162279185d58ba1e8477 at this writing cd htcondor-analyzer make ``` In qpdf: ``` ./autogen.sh /tmp/htcondor-analyzer/create-db CC=/tmp/htcondor-analyzer/cc CXX=/tmp/htcondor-analyzer/cxx ./configure --disable-shared --disable-werror # to remove conftest.c \rm htcondor-analyzer.sqlite /tmp/htcondor-analyzer/create-db ``` Repeat until no more errors: ``` /tmp/fix-at.pl is shown below. ``` ``` make /tmp/htcondor-analyzer/report | grep std:: | grep qpdf >| /tmp/r perl /tmp/fix-at.pl /tmp/r # move all *.new over the original file. patmv is my script. Can # also use a for loop. patmv -f s/.new// **/*.new ``` /tmp/fix-at.pl: ```perl #!/usr/bin/env perl require 5.008; use warnings; use strict; use File::Basename; my $whoami = basename($0); my %to_fix = (); while (<>) { chomp; die unless m/^([^:]+):(\d+):(\d+):\s*(.*)$/; my ($file, $line, $col, $message) = ($1, $2, $3, $4); if ($message !~ m/operator\[\]/) { warn "skipping $_\n"; next; } push(@{$to_fix{$file}}, [$line, $col, $message]); } foreach my $file (sort keys %to_fix) { open(F, "<$file") or die; my @lines = (); close(F); my $last = ""; my @data = reverse sort { ($a->[0] <=> $b->[0]) || ($a->[1] <=> $b->[1]) } @{$to_fix{$file}}; foreach my $d (@data) { my ($line, $col) = @$d; next if $last eq "$line:$col"; $last = "$line:$col"; die if $line-- < 1; die if $col-- < 1; print $lines[$line]; $lines[$line] =~ s/^(.{$col})([^\[]+)\[([^\]]+)\]/$1$2.at($3)/ or die "$file:$last\n"; print $lines[$line]; } open(F, ">$file.new") or die; foreach my $line (@lines) { print F $line; } close(F) or die; } ``` qpdf-8.0.2/make/0000755000064100006410000000000013247541377011463 5ustar ejbejbqpdf-8.0.2/make/rules.mk0000644000064100006410000000257313247541377013155 0ustar ejbejbinclude make/$(BUILDRULES).mk define firstelem $(word 1,$(subst /, ,$(1))) endef SPC := $(subst /, ,/) define lastelem $(subst $(SPC),/,$(word $(words $(subst /, ,$(1))),$(subst /, ,$(1)))) endef define objbase $(patsubst %.$(2),%.$(3),$(firstelem)/$(OUTPUT_DIR)/$(lastelem)) endef # Usage: $(call src_to_obj,srcs) define src_to_obj $(foreach F,$(1),$(call objbase,$(F),cc,$(OBJ))) endef # Usage: $(call c_src_to_obj,srcs) define c_src_to_obj $(foreach F,$(1),$(call objbase,$(F),c,$(OBJ))) endef # Usage: $(call src_to_lobj,srcs) define src_to_lobj $(foreach F,$(1),$(call objbase,$(F),cc,$(LOBJ))) endef # Usage: $(call c_src_to_lobj,srcs) define c_src_to_lobj $(foreach F,$(1),$(call objbase,$(F),c,$(LOBJ))) endef # Usage: $(call obj_to_dep,objs) define obj_to_dep $(patsubst %.$(OBJ),%.dep,$(1)) endef # Usage: $(call lobj_to_dep,objs) define lobj_to_dep $(patsubst %.$(LOBJ),%.dep,$(1)) endef # Usage: $(call depflags,$(basename obj)) ifeq ($(GENDEPS),1) depflags=-MD -MF $(1).dep -MP else depflags= endif # Usage: $(call run_qtest,dir) define run_qtest @echo running qtest-driver for $(1) @(cd $(1)/$(OUTPUT_DIR); \ if TC_SRCS="$(foreach T,$(TC_SRCS_$(1)),../../$(T))" \ $(QTEST) -bindirs .:.. -datadir ../qtest -covdir ..; then \ true; \ else \ if test "$(SHOW_FAILED_TEST_OUTPUT)" = "1"; then \ cat -v qtest.log; \ fi; \ false; \ fi) endef qpdf-8.0.2/make/gcc-linux.mk0000644000064100006410000000422613247541377013711 0ustar ejbejb# # This file primarily exists for making it possible to test the build # system and external library support from Linux. However, its use is # strongly discouraged; use the (default) libtool rules for building # on Linux. # # --- Required interface definitions --- OBJ=o LOBJ=o # Usage: $(call libname,base) define libname lib$(1).so endef # Usage: $(call binname,base) define binname $(1) endef # --- Required rule definitions --- # 1 2 # Usage: $(call compile,src,includes) define compile $(CXX) $(CPPFLAGS) $(CXXFLAGS) \ $(call depflags,$(basename $(call src_to_obj,$(1)))) \ $(foreach I,$(2),-I$(I)) \ -c $(1) -o $(call src_to_obj,$(1)) endef # 1 2 # Usage: $(call c_compile,src,includes) define c_compile $(CC) $(CPPFLAGS) $(CFLAGS) \ $(call depflags,$(basename $(call c_src_to_obj,$(1)))) \ $(foreach I,$(2),-I$(I)) \ -c $(1) -o $(call c_src_to_obj,$(1)) endef define libcompile $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fpic \ $(call depflags,$(basename $(call src_to_lobj,$(1)))) \ $(foreach I,$(2),-I$(I)) \ -c $(1) -o $(call src_to_lobj,$(1)) endef define c_libcompile $(CC) $(CPPFLAGS) $(CXXFLAGS) -fpic \ $(call depflags,$(basename $(call c_src_to_lobj,$(1)))) \ $(foreach I,$(2),-I$(I)) \ -c $(1) -o $(call c_src_to_lobj,$(1)) endef # 1 2 # Usage: $(call makeslib,objs,library) define makeslib $(RM) $2 $(AR) cru $(2) $(1) $(RANLIB) $(2) endef # 1 2 3 4 5 6 7 # Usage: $(call makelib,objs,library,ldflags,libs,current,revision,age) define makelib $(RM) $(2) $(2).* major=$$(( $(5) - $(7) )); \ versuffix=$$major.$(7).$(6); \ $(CXX) $(CXXFLAGS) -shared -o $(2).$$versuffix $(1) \ -Wl,--soname -Wl,`basename $(2)`.$$major \ $(3) $(4) && \ ln -s `basename $(2)`.$$versuffix $(2) && \ ln -s `basename $(2)`.$$versuffix $(2).$$major endef # 1 2 3 4 # Usage: $(call makebin,objs,binary,ldflags,libs) define makebin $(CXX) $(CXXFLAGS) $(1) -o $(2) $(LDFLAGS) $(3) $(4) endef # Install target install: all @echo Automated installation is not supported for buildrules=$(BUILDRULES) qpdf-8.0.2/make/libtool.mk0000644000064100006410000000673713247541377013475 0ustar ejbejb# --- Required interface definitions --- # LIBTOOL needs bash SHELL=/bin/bash OBJ=o LOBJ=lo # Usage: $(call libname,base) define libname lib$(1).la endef # Usage: $(call binname,base) define binname $(1) endef # --- Private definitions --- ifeq ($(HAVE_LD_VERSION_SCRIPT), 1) LD_VERSION_FLAGS=-Wl,--version-script=libqpdf.map else LD_VERSION_FLAGS= endif # Usage: $(call libdepflags,$(basename obj)) # Usage: $(call fixdeps,$(basename obj)) ifeq ($(GENDEPS),1) libdepflags=-MD -MF $(1).tdep -MP fixdeps=sed -e 's/\.o:/.lo:/' < $(1).tdep > $(1).dep else libdepflags= fixdeps= endif # --- Required rule definitions --- # 1 2 # Usage: $(call compile,src,includes) define compile $(CXX) $(CXXFLAGS) \ $(call depflags,$(basename $(call src_to_obj,$(1)))) \ $(foreach I,$(2),-I$(I)) \ $(CPPFLAGS) \ -c $(1) -o $(call src_to_obj,$(1)) endef # 1 2 # Usage: $(call c_compile,src,includes) define c_compile $(CC) $(CFLAGS) \ $(call depflags,$(basename $(call c_src_to_obj,$(1)))) \ $(foreach I,$(2),-I$(I)) \ $(CPPFLAGS) \ -c $(1) -o $(call c_src_to_obj,$(1)) endef # 1 2 # Usage: $(call libcompile,src,includes) define libcompile $(LIBTOOL) --quiet --mode=compile \ $(CXX) $(CXXFLAGS) \ $(call libdepflags,$(basename $(call src_to_obj,$(1)))) \ $(foreach I,$(2),-I$(I)) \ $(CPPFLAGS) \ -c $(1) -o $(call src_to_obj,$(1)); \ $(call fixdeps,$(basename $(call src_to_obj,$(1)))) endef # 1 2 # Usage: $(call libcompile,src,includes) define c_libcompile $(LIBTOOL) --quiet --mode=compile \ $(CC) $(CFLAGS) \ $(call libdepflags,$(basename $(call c_src_to_obj,$(1)))) \ $(foreach I,$(2),-I$(I)) \ $(CPPFLAGS) \ -c $(1) -o $(call c_src_to_obj,$(1)); \ $(call fixdeps,$(basename $(call src_to_obj,$(1)))) endef # 1 2 # Usage: $(call makeslib,objs,library) define makeslib $(RM) $2 $(AR) cru $(2) $(1) $(RANLIB) $(2) endef # 1 2 3 4 5 6 7 # Usage: $(call makelib,objs,library,ldflags,libs,current,revision,age) define makelib $(LIBTOOL) --mode=link \ $(CXX) $(CXXFLAGS) $(LD_VERSION_FLAGS) \ -o $(2) $(1) $(3) $(4) \ -rpath $(libdir) -version-info $(5):$(6):$(7) -no-undefined endef # 1 2 3 4 # Usage: $(call makebin,objs,binary,ldflags,libs) define makebin $(LIBTOOL) --mode=link $(CXX) $(CXXFLAGS) $(1) -o $(2) $(3) $(4) endef # Install target install: all ./mkinstalldirs $(DESTDIR)$(libdir)/pkgconfig ./mkinstalldirs $(DESTDIR)$(bindir) ./mkinstalldirs $(DESTDIR)$(includedir)/qpdf ./mkinstalldirs $(DESTDIR)$(docdir) ./mkinstalldirs $(DESTDIR)$(mandir)/man1 $(LIBTOOL) --mode=install ./install-sh \ libqpdf/$(OUTPUT_DIR)/libqpdf.la \ $(DESTDIR)$(libdir)/libqpdf.la $(LIBTOOL) --finish $(DESTDIR)$(libdir) $(LIBTOOL) --mode=install ./install-sh \ qpdf/$(OUTPUT_DIR)/qpdf \ $(DESTDIR)$(bindir)/qpdf $(LIBTOOL) --mode=install ./install-sh \ zlib-flate/$(OUTPUT_DIR)/zlib-flate \ $(DESTDIR)$(bindir)/zlib-flate cp qpdf/fix-qdf $(DESTDIR)$(bindir) cp include/qpdf/*.h $(DESTDIR)$(includedir)/qpdf cp include/qpdf/*.hh $(DESTDIR)$(includedir)/qpdf cp doc/stylesheet.css $(DESTDIR)$(docdir) cp libqpdf.pc $(DESTDIR)$(libdir)/pkgconfig if [ -f doc/qpdf-manual.html ]; then \ cp doc/qpdf-manual.html $(DESTDIR)$(docdir); \ fi if [ -f doc/qpdf-manual.pdf ]; then \ cp doc/qpdf-manual.pdf $(DESTDIR)$(docdir); \ fi cp doc/*.1 $(DESTDIR)$(mandir)/man1 qpdf-8.0.2/make/proxy.mk0000644000064100006410000000021113247541377013167 0ustar ejbejbTHIS=$(notdir $(abspath .)) all: $(MAKE) -C .. build_$(THIS) check: $(MAKE) -C .. check_$(THIS) clean: $(MAKE) -C .. clean_$(THIS) qpdf-8.0.2/make/msvc.mk0000644000064100006410000000513713247541377012772 0ustar ejbejb# --- Required interface definitions --- OBJ=obj LOBJ=obj # Usage: $(call libname,base) define libname $(1).lib endef # Usage: $(call binname,base) define binname $(1).exe endef # --- Local Changes --- # Filter out -g CFLAGS := $(filter-out -g,$(CFLAGS)) CXXFLAGS := $(filter-out -g,$(CXXFLAGS)) clean:: $(RM) *.pdb # --- Required rule definitions --- # 1 2 # Usage: $(call compile,src,includes) define compile cl -nologo -O2 -Zi -Gy -EHsc -MD -TP -GR $(CPPFLAGS) $(CXXFLAGS) \ $(foreach I,$(2),-I$(I)) \ -c $(1) -Fo$(call src_to_obj,$(1)) endef # 1 2 # Usage: $(call c_compile,src,includes) define c_compile cl -nologo -O2 -Zi -Gy -EHsc -MD $(CPPFLAGS) $(CFLAGS) \ $(foreach I,$(2),-I$(I)) \ -c $(1) -Fo$(call c_src_to_obj,$(1)) endef # 1 2 # Usage: $(call libcompile,src,includes) define libcompile cl -nologo -O2 -Zi -Gy -EHsc -MD -TP -GR $(CPPFLAGS) $(CXXFLAGS) \ -DDLL_EXPORT $(foreach I,$(2),-I$(I)) \ -c $(1) -Fo$(call src_to_obj,$(1)) endef # 1 2 # Usage: $(call c_libcompile,src,includes) define c_libcompile cl -nologo -O2 -Zi -Gy -EHsc -MD $(CPPFLAGS) $(CXXFLAGS) \ -DDLL_EXPORT $(foreach I,$(2),-I$(I)) \ -c $(1) -Fo$(call c_src_to_obj,$(1)) endef # 1 2 # Usage: $(call makeslib,objs,library) define makeslib lib -nologo -OUT:$(2) $(1) endef # 1 2 3 4 5 6 7 # Usage: $(call makelib,objs,library,ldflags,libs,current,revision,age) define makelib cl -nologo -O2 -Zi -Gy -EHsc -MD -LD -Fe$(basename $(2))$(shell expr $(5) - $(7)).dll $(1) \ -link -SUBSYSTEM:CONSOLE,5.01 -incremental:no \ $(foreach L,$(subst -L,,$(3)),-LIBPATH:$(L)) \ $(foreach L,$(subst -l,,$(4)),$(L).lib) if [ -f $(basename $(2))$(shell expr $(5) - $(7)).dll.manifest ]; then \ mt.exe -nologo -manifest $(basename $(2))$(shell expr $(5) - $(7)).dll.manifest \ -outputresource:$(basename $(2))$(shell expr $(5) - $(7)).dll\;2; \ fi mv $(basename $(2))$(shell expr $(5) - $(7)).lib $(2) endef # 1 2 3 4 # Usage: $(call makebin,objs,binary,ldflags,libs) define makebin cl -nologo -O2 -Zi -Gy -EHsc -MD $(1) \ -link -SUBSYSTEM:CONSOLE,5.01 -incremental:no -OUT:$(2) \ $(foreach L,$(subst -L,,$(3)),-LIBPATH:$(L)) \ $(foreach L,$(subst -l,,$(4)),$(L).lib) if [ -f $(2).manifest ]; then \ mt.exe -nologo -manifest $(2).manifest \ -outputresource:$(2)\;2; \ fi endef # Install target INSTALL_DIR = install-msvc$(WINDOWS_WORDSIZE) STATIC_LIB_NAME = qpdf.lib include make/installwin.mk install: installwin qpdf-8.0.2/make/mingw.mk0000644000064100006410000000412713247541377013141 0ustar ejbejb# --- Required interface definitions --- OBJ=o LOBJ=o # Usage: $(call libname,base) define libname lib$(1).a endef # Usage: $(call binname,base) define binname $(1).exe endef # --- Required rule definitions --- # 1 2 # Usage: $(call compile,src,includes) define compile $(CXX) $(CPPFLAGS) $(CXXFLAGS) \ $(call depflags,$(basename $(call src_to_obj,$(1)))) \ $(foreach I,$(2),-I$(I)) \ -c $(1) -o $(call src_to_obj,$(1)) endef # 1 2 # Usage: $(call c_compile,src,includes) define c_compile $(CC) $(CPPFLAGS) $(CFLAGS) \ $(call depflags,$(basename $(call src_to_obj,$(1)))) \ $(foreach I,$(2),-I$(I)) \ -c $(1) -o $(call c_src_to_obj,$(1)) endef # 1 2 # Usage: $(call libcompile,src,includes) define libcompile $(CXX) $(CPPFLAGS) $(CXXFLAGS) -DDLL_EXPORT \ $(call depflags,$(basename $(call src_to_obj,$(1)))) \ $(foreach I,$(2),-I$(I)) \ -c $(1) -o $(call src_to_obj,$(1)) endef # 1 2 # Usage: $(call c_libcompile,src,includes) define c_libcompile $(CC) $(CPPFLAGS) $(CFLAGS) -DDLL_EXPORT \ $(call depflags,$(basename $(call src_to_obj,$(1)))) \ $(foreach I,$(2),-I$(I)) \ -c $(1) -o $(call c_src_to_obj,$(1)) endef # 1 2 # Usage: $(call makeslib,objs,library) define makeslib $(RM) $2 $(AR) cru $(2) $(1) $(RANLIB) $(2) endef # 1 2 3 4 5 6 7 # Usage: $(call makelib,objs,library,ldflags,libs,current,revision,age) define makelib $(DLLTOOL) -l $(2) -D $$(basename `echo $(2) | sed -e 's,/lib\(.*\).a,/\1,'`$(shell expr $(5) - $(7)).dll) $(1); \ $(CXX) -shared -o `echo $(2) | sed -e 's,/lib\(.*\).a,/\1,'`$(shell expr $(5) - $(7)).dll \ $(1) $(3) $(4) endef # 1 2 3 4 # Usage: $(call makebin,objs,binary,ldflags,libs) define makebin $(CXX) $(CXXFLAGS) $(1) -o $(2) $(3) $(4) endef # Install target INSTALL_DIR = install-mingw$(WINDOWS_WORDSIZE) STATIC_LIB_NAME = libqpdf.a include make/installwin.mk install: installwin $(STRIP) $(DEST)/bin/*.exe $(STRIP) $(DEST)/bin/*.dll qpdf-8.0.2/make/installwin.mk0000644000064100006410000000137213247541377014203 0ustar ejbejbDEST=$(INSTALL_DIR)/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION) installwin: all $(RM) -r $(INSTALL_DIR) mkdir $(INSTALL_DIR) mkdir $(DEST) mkdir $(DEST)/bin mkdir $(DEST)/lib mkdir $(DEST)/include mkdir $(DEST)/include/qpdf mkdir $(DEST)/doc cp libqpdf/$(OUTPUT_DIR)/$(STATIC_LIB_NAME) $(DEST)/lib cp libqpdf/$(OUTPUT_DIR)/qpdf*.dll $(DEST)/bin perl copy_dlls libqpdf/$(OUTPUT_DIR)/qpdf*.dll $(DEST)/bin $(OBJDUMP) $(WINDOWS_WORDSIZE) cp qpdf/$(OUTPUT_DIR)/qpdf.exe $(DEST)/bin cp zlib-flate/$(OUTPUT_DIR)/zlib-flate.exe $(DEST)/bin cp qpdf/fix-qdf $(DEST)/bin cp include/qpdf/*.h $(DEST)/include/qpdf cp include/qpdf/*.hh $(DEST)/include/qpdf cp doc/stylesheet.css $(DEST)/doc cp doc/qpdf-manual.html $(DEST)/doc cp doc/qpdf-manual.pdf $(DEST)/doc qpdf-8.0.2/README-appimage.md0000644000064100006410000000160313247541377013606 0ustar ejbejb# Using the QPDF AppImage bundle (for Linux x86_64 systems only) Tips: * After downloading, you have to set the executable bit for any AppImage (for security reasons this is disabled by default): `chmod +x .AppImage` * Run the QPDF AppImage with the `--ai-usage` parameter to start learning some useful details about built-in features of this specific AppImage. * You can rename the AppImage to any name allowed for file names on Linux. The `.AppImage` suffix is not required for it to function. It will also work as expected if you invoke it from a symlink. Using `qpdf` as its filename or symlink name is OK. However, you may want to continue using the QPDF package provided by your system's package manager side by side with the AppImage bundle: in this case it is recommended to use `qpdf.ai` as a short name for (or as the symlink name to) the qpdf-.AppImage. qpdf-8.0.2/autoconf.mk.in0000644000064100006410000000211613247541377013322 0ustar ejbejbPACKAGE_TARNAME=@PACKAGE_TARNAME@ PACKAGE_VERSION=@PACKAGE_VERSION@ LT_CURRENT=@LT_CURRENT@ LT_REVISION=@LT_REVISION@ LT_AGE=@LT_AGE@ top_builddir=@top_builddir@ prefix=@prefix@ exec_prefix=@exec_prefix@ bindir=@bindir@ libdir=@libdir@ includedir=@includedir@ datarootdir=@datarootdir@ mandir=@mandir@ docdir=@docdir@ htmldir=@htmldir@ pdfdir=@pdfdir CC=@CC@ WFLAGS=@WFLAGS@ CXXWFLAGS=@CXXWFLAGS@ CFLAGS=@CFLAGS@ $(WFLAGS) LDFLAGS=@LDFLAGS@ LIBS=@LIBS@ CPPFLAGS=@CPPFLAGS@ CXX=@CXX@ CXXFLAGS=@CXXFLAGS@ $(CXXWFLAGS) $(WFLAGS) AR=@AR@ RANLIB=@RANLIB@ DLLTOOL=@DLLTOOL@ STRIP=@STRIP@ OBJDUMP=@OBJDUMP@ GENDEPS=@GENDEPS@ LIBTOOL=@LIBTOOL@ DOCBOOKX_DTD=@DOCBOOKX_DTD@ FOP=@FOP@ XSLTPROC=@XSLTPROC@ XMLLINT=@XMLLINT@ BUILD_HTML=@BUILD_HTML@ BUILD_PDF=@BUILD_PDF@ VALIDATE_DOC=@VALIDATE_DOC@ QPDF_SKIP_TEST_COMPARE_IMAGES=@QPDF_SKIP_TEST_COMPARE_IMAGES@ BUILDRULES=@BUILDRULES@ HAVE_LD_VERSION_SCRIPT=@HAVE_LD_VERSION_SCRIPT@ WINDOWS_WORDSIZE=@WINDOWS_WORDSIZE@ SHOW_FAILED_TEST_OUTPUT=@SHOW_FAILED_TEST_OUTPUT@ # Allow environment variable to override QPDF_LARGE_FILE_TEST_PATH?=@QPDF_LARGE_FILE_TEST_PATH@ qpdf-8.0.2/ChangeLog0000644000064100006410000021063013247541377012322 0ustar ejbejb2018-03-06 Jay Berkenbilt * 8.0.2: release * Properly handle pages with no contents. Fixes #194. 2018-03-05 Jay Berkenbilt * Improve handling of loops while following cross reference tables. Fixes #192. 2018-03-04 Jay Berkenbilt * 8.0.1: release * On the command line when specifying page ranges, support preceding a page number by "r" to indicate that it should be counted from the end. For example, the range r3-r1 would indicate the last three pages of a document. 2018-03-03 Jay Berkenbilt * Ignore zlib data check errors while uncompressing streams. This is consistent with behaviors of other readers and enables handling of some incorrectly written zlib strems. Fixes #191. 2018-02-25 Jay Berkenbilt * 8.0.0: release 2018-02-17 Jay Berkenbilt * Fix QPDFObjectHandle::getUTF8Val() to properly handle strings that are encoded with PDF Doc Encoding. Fixes #179. * Add qpdf_check_pdf to the "C" API. This method just attempts to read the entire file and produce no output, making possible to assess whether the file has any errors that qpdf can detect. * Major enhancements to handling of type errors within the qpdf library. This fix is intended to eliminate those annoying cases where qpdf would exit with a message like "operation for dictionary object attemped on object of wrong type" without providing any context. Now qpdf keeps enough context to be able to issue a proper warning and to handle such conditions in a sensible way. This should greatly increase the number of bad files that qpdf can recover, and it should make it much easier to figure out what's broken when a file contains errors. * Error message fix: replace "file position" with "offset" in error messages that report lexical or parsing errors. Sometimes it's an offset in an object stream or a content stream rather than a file position, so this makes the error message less confusing in those cases. It still requires some knowledge to find the exact position of the error, since when it's not a file offset, it's probably an offset into a stream after uncompressing it. * Error message fix: correct some cases in which the object that contained a lexical error was omitted from the error message. * Error message fix: improve file name in the error message when there is a parser error inside an object stream. 2018-02-11 Jay Berkenbilt * Add QPDFObjectHandle::filterPageContents method to provide a different interface for applying token filters to page contents without modifying the ultimate output. 2018-02-04 Jay Berkenbilt * Changes listed on today's date are numerous and reflect significant enhancements to qpdf's lexical layer. While many nuances are discussed and a handful of small bugs were fixed, it should be emphasized that none of these issues have any impact on any output or behavior of qpdf under "normal" operation. There are some changes that have an effect on content stream normalization as with qdf mode or on code that interacts with PDF files lexically using QPDFTokenizer. There are no incompatible changes for normal operation. There are a few changes that will affect the exact error messages issued on certain bad files, and there is a small non-compatible enhancement regarding the behavior of manually constructed QPDFTokenizer::Token objects. Users of the qpdf command line tool will see no changes other than the addition of a new command-line flag and possibly some improved error messages. * Significant lexer (tokenizer) enhancements. These are changes to the QPDFTokenizer class. These changes are of concern only to people who are operating with PDF files at the lexical layer using qpdf. They have little or no impact on most high-level interfaces or the command-line tool. New token types tt_space and tt_comment to recognize whitespace and comments. this makes it possible to tokenize a PDF file or stream and preserve everything about it. For backward compatibility, space and comment tokens are not returned by the tokenizer unless QPDFTokenizer.includeIgnorable() is called. Better handling of null bytes. These are now included in space tokens rather than being their own "tt_word" tokens. This should have no impact on any correct PDF file and has no impact on output, but it may change offsets in some error messages when trying to parse contents of bad files. Under default operation, qpdf does not attempt to parse content streams, so this change is mostly invisible. Bug fix to handling of bad tokens at ends of streams. Now, when allowEOF() has been called, these are treated as bad tokens (tt_bad or an exception, depending on invocation), and a separate tt_eof token is returned. Before the bad token contents were returned as the value of a tt_eof token. tt_eof tokens are always empty now. Fix a bug that would, on rare occasions, report the offset in an error message in the wrong space because of spaces or comments adjacent to a bad token. Clarify in comments exactly where the input source is positioned surrounding calls to readToken and getToken. * Add a new token type for inline images. This token type is only returned by QPDFTokenizer immediately following a call to expectInlineImage(). This change includes internal refactoring of a handful of places that all separately handled inline images, The logic of detecting inline images in content streams is now handled in one place in the code. Also we are more flexible about what characters may surround the EI operator that marks the end of an inline image. * New method QPDFObjectHandle::parsePageContents() to improve upon QPDFObjectHandle::parseContentStream(). The parseContentStream method used to operate on a single content stream, but was fixed to properly handle pages with contents split across multiple streams in an earlier release. The new method parsePageContents() can be called on the page object rather than the value of the page dictionary's /Contents key. This removes a few lines of boiler-plate code from any code that uses parseContentStream, and it also enables creation of more helpful error messages if problems are encountered as the error messages can include information about which page the streams come from. * Update content stream parsing example (examples/pdf-parse-content.cc) to use new QPDFObjectHandle::parsePageContents() method in favor of the older QPDFObjectHandle::parseContentStream() method. * Bug fix: change where the trailing newline is added to a stream in QDF mode when content normalization is enabled (the default for QDF mode). Before, the content normalizer ensured that the output ended with a trailing newline, but this had the undesired side effect of including the newline in the stream data for purposes of length computation. QPDFWriter already appends a newline without counting in length for better readability. Ordinarily this makes no difference, but in the rare case of a page's contents being split in the middle of a token, the old behavior could cause the extra newline to be interprted as part of the token. This bug could only be triggered in qdf mode, which is a mode intended for manual inspection of PDF files' contents, so it is very unlikely to have caused any actual problems for people using qpdf for production use. Even if it did, it would be very unusual for a PDF file to actually be adversely affected by this issue. * Add support for coalescing a page's contents into a single stream if they are represented as an array of streams. This can be performed from the command line using the --coalesce-contents option. Coalescing content streams can simplify things for software that wants to operate on a page's content streams without having to handle weird edge cases like content streams split in the middle of tokens. Note that QPDFObjectHandle::parsePageContents and QPDFObjectHandle::parseContentStream already handled split content streams. This is mainly to set the stage for new methods of operating on page contents. The new method QPDFObjectHandle::pipeContentStreams will pipe all of a page's content streams though a single pipeline. The new method QPDFObjectHandle.coalesceContentStreams, when called on a page object, will do nothing if the page's contents are a single stream, but if they are an array of streams, it will replace the page's contents with a single stream whose contents are the concatenation of the original streams. * A few library routines throw exceptions if called on non-page objects. These constraints have been relaxed somewhat to make qpdf more tolerant of files whose page dictionaries are not properly marked as such. Mostly exceptions about page operations being called on non page objects will only be thrown in cases where the operation had no chance of succeeding anyway. This change has no impact on any default mode operations, but it could allow applications that use page-level APIs in QPDFObjectHandle to be more tolerant of certain types of damaged files. * Add QPDFObjectHandle::TokenFilter class and methods to use it to perform lexical filtering on content streams. You can call QPDFObjectHandle::addTokenFilter on stream object, or you can call the higher level QPDFObjectHandle::addContentTokenFilter on a page object to cause the stream's contents to passed through a token filter while being retrieved by QPDFWriter or any other consumer. For details on using TokenFilter, please see comments in QPDFObjectHandle.hh. * Enhance the string, type QPDFTokenizer::Token constructor to initialize a raw value in addition to a value. Tokens have a value, which is a canonical representation, and a raw value. For all tokens except strings and names, the raw value and the value are the same. For strings, the value excludes the outer delimiters and has non-printing characters normalized. For names, the value resolves non-printing characters. In order to better facilitate token filters that mostly preserve contents and to enable developers to be mostly unconcerned about the nuances of token values and raw values, creating string and name tokens now properly handles this subtlety of values and raw values. When constructing string tokens, take care to avoid passing in the outer delimiters. This has always been the case, but it is now clarified in comments in QPDFObjectHandle.hh::TokenFilter. This has no impact on any existing code unless there's some code somewhere that was relying on Token::getRawValue() returning an empty string for a manually constructed token. The token class's operator== method still only looks at type and value, not raw value. For example, string tokens for <41> and (A) would still be equal because both are representations of the string "A". * Add QPDFObjectHandle::isDataModified method. This method just returns true if addTokenFilter has been called on the stream. It enables a caller to determine whether it is safe to optimize away piping of stream data in cases where the input and output are expected to be the same. QPDFWriter uses this internally to skip the optimization of not re-compressing already compressed streams if addTokenFilter has been called. Most developers will not have to worry about this as it is used internally in the library in the places that need it. If you are manually retrieving stream data with QPDFObjectHandle::getStreamData or QPDFObjectHandle::pipeStreamData, you don't need to worry about this at all. * Provide heavily annoated examples/pdf-filter-tokens.cc example that illustrates use of some simple token filters. * When normalizing content streams, as in qdf mode, issue warning about bad tokens. Content streams are only normalized when this is explicitly requested, so this has no impact on normal operation. However, in qdf mode, if qpdf detects a bad token, it means that either there's a bug in qpdf's lexer, that the file is damaged, or that the page's contents are split in a weird way. In any of those cases, qpdf could potentially damage the stream's contents by replacing carrige returns with newlines or otherwise messing with spaces. The mostly likely case of this would be an inline image's compressed data being divided across two streams and having the compressed data in the second stream contain a carriage return as part of its binary data. If you are using qdf mode just to look at PDF files in text editors, this usually doesn't matter. In cases of contents split across multiple streams, coalescing streams would eliminate the problem, so the warning mentions this. Prior to this enhancement, the chances of qdf mode writing incorrect data were already very low. This change should make it nearly impossible for qdf mode to unknowingly write invalid data. 2018-02-04 Jay Berkenbilt * Add QPDFWriter::setLinearizationPass1Filename method and --linearize-pass1 command line option to allow specification of a file into which QPDFWriter will write its intermediate linearization pass 1 file. This is useful only for debugging qpdf. qpdf creates linearized files by computing the output in two passes. Ordinarily the first pass is discarded and not written anywhere. This option allows it to be inspected. 2018-02-04 Jay Berkenbilt * 7.1.1: release * Bug fix: properly linearize files whose /ID has a length of other than 16 bytes. * Rename some test files to avoid files with three dots in their names. Fixes #173. * Fix various build and compilation issues on some platforms and compilers. Fixes #176, #172, #177 * Fix a few typos and clarify a few comments in header files. 2018-01-14 Jay Berkenbilt * 7.1.0: release * Allow raw encryption key to be specified in libary and command line with the QPDF::setPasswordIsHexKey method and --password-is-hex-key option. Allow encryption key to be displayed with --show-encryption-key option. Thanks to Didier Stevens for the idea and contribution of one implementation of this idea. See his blog post at https://blog.didierstevens.com/2017/12/28/cracking-encrypted-pdfs-part-3/ for a discussion of using this for cracking encrypted PDFs. I hope that a future release of qpdf will include some additional recovery options that may also make use of this capability. 2018-01-13 Jay Berkenbilt * Fix lexical error: the PDF specification allows floating point numbers to end with ".". Fixes #165. * Fix link order in the build to avoid conflicts when building from source while an older version of qpdf is installed. Fixes #158. * Add support for TIFF predictor for LZW and Flate streams. Now all predictor functions are supported. Fixes #171. 2017-12-25 Jay Berkenbilt * Clarify documentation around options that control parsing but not output creation. Two options: --suppress-recovery and --ignore-xref-streams, were documented in the "Advanced Transformation Options" section of the manual and --help output even though they are not related to output. These are now described in a separate section called "Advanced Parsing Options." * Implement remaining PNG filters for decode. Prior versions could decode only the "up" filter. Now all PNG filters (sub, up, average, Paeth, optimal) are supported for decoding. Thanks to Tobias Hoffmann for providing a test PDF file that has images with all PNG filters along with different numbers of bits per sample and samples per pixel, and thanks to Casey Rojas for providing implementations of the remaining PNG filters. The implementation of the remaining PNG filters changed the interface to the private Pl_PNGFilter class, but this class's header file is not in the installation, and there is no public interface to the class. Within the library, the class is never allocated on the stack; it is only ever dynamically allocated. As such, this does not actually break binary compatibility of the library. 2017-09-15 Jay Berkenbilt * 7.0.0: release 2017-09-12 Jay Berkenbilt * Relicense qpdf under version 2.0 of the Apache License rather than version 2.0 of the Artistic License. Both are fine, but the Apache License is in more widespread use, and I like it a little better than Artistic-2.0. It is my intention that there be no change in what you can or can't do with qpdf. Versions of qpdf prior to version 7 were released under the terms of version 2.0 of the Artistic License. At your option, you may continue to consider qpdf to be licensed under those terms. Please see the manual for additional information. * Improve the error message that is issued when QPDFWriter encounters a stream that can't be decoded. In particular, mention that the stream will be copied without filtering to avoid data loss. * Add new methods to the C API to correspond to new additions to QPDFWriter: - qpdf_set_compress_streams - qpdf_set_decode_level - qpdf_set_preserve_unreferenced_objects - qpdf_set_newline_before_endstream 2017-08-25 Jay Berkenbilt * Re-implement parser iteratively to avoid stack overflow on very deeply nested arrays and dictionaries. Fixes #146. * Detect infinite loop while finding additional xref tables. Fixes #149. 2017-08-22 Jay Berkenbilt * 7.0.b1: release * Convert all README files to markdown. Names changed as follows: - README --> README.md - README.hardening --> README-hardening.md - README.maintainer --> README-maintainer.md - README-what-to-download.txt --> README-what-to-download.md - README-windows.txt --> README-windows.md The file README-windows-install.txt remains a text file. 2017-08-21 Jay Berkenbilt * Add support for writing PCLm files. Most of the work was done by Sahil Arora as part of a Google Summer of Code project in 2017. PCLm support is useful only for clients that specifically know how to create PCLm files. Support in qpdf is just for ensuring that objects are written in the correct order and for including some additional material in the output that is required by the PCLm standard. 2017-08-19 Jay Berkenbilt * Remove --precheck-streams. This is enabled by default now without any efficiency cost. This feature was never released. * Update pdf-create example to illustrate use of additional image compression filters. * Add support for /RunLengthDecode and /DCTDecode: - New pipeline types Pl_RunLength and Pl_DCT - New command-line flags --compress-streams and --decode-level to replace/enhance --stream-data - New QPDFWriter::setCompressStreams and QPDFWriter::setDecodeLevel methods Please see documentation, header files, and help messages for details on these new features. 2017-08-12 Jay Berkenbilt * Add QPDFObjectHandle::rotatePage to apply rotation to a page object. Add --rotate option to qpdf to specify page rotation from the command line. * Provide --verbose option that causes qpdf to print an indication of what files it is writing. * Change --single-pages to --split-pages and make it take an optional argument specifying the number of pages per file. 2017-08-11 Jay Berkenbilt * Fix --newline-before-endstream to always add a newline before endstream even if the last character was already a newline. This is actually what's required by PDF/A. Fixes #133. * Handle encrypted files whose encryption parameters are too short. Fixes #96. 2017-08-10 Jay Berkenbilt * Remove dependency on libpcre. * Be more forgiving of certain types of errors in the xref table that don't interfere with interpreting the table. * Remove unused "tracing" parameter from PointerHolder's (T*, bool) constructor. This change breaks source code compatibility, but since this argument to PointerHolder has not used for a long time and the presence of a boolean parameter in the primary constructor makes it too easy to use that by mistake when trying to use PointerHolder for arrays, it seems like it's finally time to take it out. If you have a compile error because of this change, please check to see whether you intended to use the (bool, T*) version of the constructor instead. If not, just remove the second parameter. 2017-08-09 Jay Berkenbilt * When recovering stream length, find endobj without endstream as well as just looking for endstream. Be a little more lax about where we allow it to be found. 2017-08-05 Jay Berkenbilt * Add --single-pages option to cause output to be written to a separate file for each page rather than one big file. * Process --pages options earlier so that certain inspection options, like --show-pages, can show the state after the merging operations. 2017-08-02 Jay Berkenbilt * Fix off-by-one error in parsing pages options. Fixes #129. 2017-07-29 Jay Berkenbilt * Support @filename and @- in the qpdf command-line tool to read command-line arguments, one per line, from the named file. @- reads from standard input. Fixes #16. * Detect when input file and output file are the same and exit to avoid overwriting and losing input file. Fixes #29. * When passing multiple inspection arguments, run --check first, and defer exit until after all the checks have been run. This makes it possible to force operations such as --show-xref to be delayed until after recovery attempts have been made. For example, if you have a file with a syntactically valid xref table that has some offsets that are incorrect, running qpdf --check --show-xref on that file will first recover the xref and the dump the recovered xref, while just running qpdf --show-xref will show the xref table as present in the file. Fixes #42. * When recovering stream length, indicate the recovered length. Fixes #44. * Add --newline-before-endstream command-line option and setNewlineBeforeEndstream method to QPDFWriter. This forces qpdf to always add a newline before the endstream keyword. It is a necessary but not sufficient condition for PDF/A compliance. Fixes #103. * Handle zlib data errors when decoding streams. Fixes #106. * Improve handling of files where the "stream" keyword is not followed by proper line terminators. Fixes #104. * Fix content stream parsing to handle cases of structures within the stream split across stream boundaries. Fixes #73. 2017-07-28 Jay Berkenbilt * Add --preserve-unreferenced command-line option and setPreserveUnreferencedObjects method to QPDFWriter. This option causes QPDFWriter to write all objects from the input file to the output file regardless of whether the objects are referenced. Objects are written to the output file in numerical order from the input file. This option has no effect for linearized files. 2017-07-27 Jay Berkenbilt * Add --precheck-streams command-line option and setStreamPrecheck method to QPDFWriter to tell QPDFWriter to attempt decoding a stream fully before deciding whether to filter it or not. * Recover gracefully from streams that aren't filterable because the filter parameters are invalid in the stream dictionary or the dictionary itself is invalid. * Significantly improve recoverability from invalid qpdf objects. Most conditions in basic object parsing that used to cause qpdf to exit are now warnings. There are still many more opportunities for improvements of this sort beyond just object parsing. 2017-07-26 Jay Berkenbilt * Fixes to infinite loops below also fix problems reported in other issues and cover CVE-2017-11624, CVE-2017-11625, CVE-2017-11626, and CVE-2017-11627. * Don't attempt to interpret syntactic keywords (like R and endobj) found while parsing content streams. * Detect infinite loops while resolving objects. This could happen if something inside an object that had to be resolved during parsing, such as a stream length, recursively referenced the object being resolved. * CVE-2017-9208: Handle references to and appearance of object 0 as a special case. Object 0 is not allowed, and qpdf was using it internally to represent direct objects. * CVE-2017-9209: Fix infinite loop caused by attempting to reconstruct the xref table while already in the process of reconstructing the xref table. * CVE-2017-9210: Fix infinite loop caused by attempting to unparse an object for inclusion in the text of an exception. 2015-11-10 Jay Berkenbilt * 6.0.0: release * No changes from 5.2.0. The 5.2.0 release broke binary compatibility and was withdrawn. 2015-10-31 Jay Berkenbilt * 5.2.0: release * libqpdf/QPDF.cc (read_xrefTable): Be tolerant of some malformed xref tables that don't have the required trailing space after each line. 2015-10-29 Jay Berkenbilt * Implement QPDFWriter::setDeterministicID and --deterministic-id commandline-flag to qpdf to request generation of a deterministic /ID for non-encrypted files. 2015-05-24 Jay Berkenbilt * 5.1.3: release * Bug fix: fix-qdf was not handling object streams with more than 255 objects in them. * Handle Microsoft crypt provider initialization properly for case where no keys have been previously created, such as in a fresh Windows installation. * Include time.h in QUtil.hh for time_t 2015-02-21 Jay Berkenbilt * Detect loops in Pages structure. Thanks to Gynvael Coldwind and Mateusz Jurczyk of the Google Security Team for providing a sample file with this problem. * Prevent buffer overrun when converting a password to an encryption key. Thanks to Gynvael Coldwind and Mateusz Jurczyk of the Google Security Team for providing a sample file with this problem. * Ensure that arguments to "R" when parsing the file are direct objects before trying to resolve them. This prevents specially crafted files from causing qpdf to crash with a stack overflow. Thanks to Gynvael Coldwind and Mateusz Jurczyk of the Google Security Team for providing a sample file with this problem. 2014-12-01 Jay Berkenbilt * Some broken PDF files lack the required /Type key for /Page and /Pages nodes in the page dictionary. QPDF now uses other methods to figure out what kind of node it is looking at so that it can handle those files. Original reported at https://bugs.launchpad.net/ubuntu/+source/qpdf/+bug/1397413 2014-11-14 Jay Berkenbilt * Bug fix: QPDFObjectHandle::getPageContents() no longer throws an exception when called on a page that has no /Contents key in its dictionary. This is allowed by the spec, and some software packages generate files like this for pages that are blank in the original. 2014-06-07 Jay Berkenbilt * 5.1.2: release * MS Visual C++ build: explicitly target Windows 5.0.1 (XP) * New example program: pdf-split-pages: efficiently split PDF files into individual pages. * Bug fix: don't fail on files that contain streams where /Filter or /DecodeParms references a stream. Before, qpdf would try to convert these to direct objects, which would fail because of the stream. 2014-02-22 Jay Berkenbilt * Bug fix: if the last object in the first part of a linearized file had an offset that was below 65536 by less than the size of the hint stream, the xref stream was invalid and the resulting file is not usable. This is now fixed. 2014-01-14 Jay Berkenbilt * 5.1.1: release 2013-12-26 Jay Berkenbilt * Bug fix: when copying foreign objects (which occurs during page splitting among other cases), avoid traversing the same object more than once if it appears more than once in the same direct object. This bug is performance-only and does not affect the actual output. 2013-12-17 Jay Berkenbilt * 5.1.0: release 2013-12-16 Jay Berkenbilt * Document and make explicit that passing null to QUtil::setRandomDataProvider() resets the random data provider. * Provide QUtil::getRandomDataProvider(). 2013-12-14 Jay Berkenbilt * Allow anyspace rather than just newline to follow xref header. This allows qpdf to read a wider range of damaged files. 2013-11-30 Jay Berkenbilt * Allow user-supplied random data provider to be used in place of OS-provided or insecure random number generation. See documentation for 5.1.0 for details. * Add configure option --enable-os-secure-random (enabled by default). Pass --disable-os-secure-random or define SKIP_OS_SECURE_RANDOM to avoid attempts to use the operating system-provided secure random number generation. This can be especially useful on Windows if you wish to avoid any dependency on Microsoft's cryptography system. 2013-11-29 Jay Berkenbilt * If NO_GET_ENVIRONMENT is #defined, for Windows only, QUtil::get_env will always return false. This was added to support a user who needs to avoid calling GetEnvironmentVariable from the Windows API. QUtil::get_env is not used for any functionality in qpdf and exists only to support the test suite including test coverage support with QTC (part of qtest). * Add /FS to msvc builds to allow parallel builds to work with Visual C++ 2013. * Add missing #include in some files that use std::min and std::max. 2013-11-21 Jay Berkenbilt * Change image comparison tests, which are disabled by default, to use tiff files with 8 bits per sample rather than 4. This works around a bug in tiffcmp but also increases time and disk space for image comparison tests. 2013-10-28 Jay Berkenbilt * Fix MacOS compilation errors by adding a missing #include in a header file. 2013-10-18 Jay Berkenbilt * 5.0.1: release * Warn when -accessibility=n is specified with a modern encryption format (R > 3). Also, accept this flag (and ignore with warning) with 256-bit encryption. qpdf has always ignored the accessibility setting with R > 3, but it previously did so silently. 2013-10-05 Jay Berkenbilt * Replace operator[] in std::string and std::vector with "at" in order to get bounds checking. This reduces the chances that incorrect code will result in data exposure or buffer overruns. See README.hardening for additional notes. * Use cryptographically secure random number generation when available. See additional notes in README. * Replace some assert() calls with std::logic_error exceptions. Ideally there shouldn't be assert() calls outside of testing. This change may make a few more potential code errors in handling invalid data recoverable. * Security fix: In places where std::vector(size_t) was used, either validate that the size parameter is sane or refactor code to avoid the need to pre-allocate the vector. This reduces the likelihood of allocating a lot of memory in response to invalid data in linearization hint streams. * Security fix: sanitize /W array in cross reference stream to avoid a potential integer overflow in a multiplication. It is unlikely that any exploits were possible from this bug as additional checks were also performed. * Security fix: avoid buffer overrun that could be caused by bogus data in linearization hint streams. The incorrect code could only be triggered when checking linearization data, which must be invoked explicitly. qpdf does not check linearization data when reading or writing linearized files, but the qpdf --check command does check linearization data. * Security fix: properly handle empty strings in QPDF_Name::normalizeName. The empty string is not a valid name and would never be parsed as a name, so there were no known conditions where this method could be called with an empty string. * Security fix: perform additional argument sanity checks when reading bit streams. * Security fix: in QUtil::toUTF8, change bounds checking to avoid having a pointer point temporarily outside the bounds of an array. Some compiler optimizations could have made the original code unsafe. 2013-07-10 Jay Berkenbilt * 5.0.0: release * 4.2.0 turned out to be binary incompatible on some platforms even though there were no changes to the public API. Therefore the 4.2.0 release has been withdrawn, and is being replaced with a 5.0.0 release that acknowledges the ABI change and also removes some problematic methods from the public API. * Remove methods from public API that were only intended to be used by QPDFWriter and really didn't make sense to call from anywhere else as they required internal knowledge that only QPDFWriter had: - QPDF::getLinearizedParts - QPDF::generateHintStream - QPDF::getObjectStreamData - QPDF::getCompressibleObjGens - QPDF::getCompressibleObjects 2013-07-07 Jay Berkenbilt * 4.2.0: release [withdrawn] * Ignore error case of a stream's decode parameters having invalid length when there are no stream filters. * qpdf: add --show-npages command-line option, which causes the number of pages in the input file to be printed on a line by itself. * qpdf: allow omission of range in --pages. If range is omitted such that an argument that is supposed to be a range is an invalid range and a valid file name, the range of 1-z is assumed. This makes it possible to merge a bunch of files with something like qpdf --empty out.pdf --pages *.pdf -- 2013-06-15 Jay Berkenbilt * Handle some additional broken files with missing /ID in trailer for encrypted files and with space rather than newline after xref. 2013-06-14 Jay Berkenbilt * Detect and correct /Outlines dictionary being a direct object when linearizing files. This is not allowed by the spec but has been seen in the wild. Prior to this change, such a file would cause an internal error in the linearization code, which assumed /Outlines was indirect. * Add /Length key to crypt filter dictionary for encrypted files. This key is optional, but some version of MacOS reportedly fail to open encrypted PDF files without this key. * Bug fix: properly handle object stream generation when the original file has some compressible objects with generation != 0. * Add QPDF::getCompressibleObjGens() and deprecate QPDF::getCompressibleObjects(), which had a flaw in its logic. * Add new QPDFObjectHandle::getObjGen() method and indiciate in comments that its use is favored over getObjectID() and getGeneration() for most cases. * Add new QPDFObjGen object to represent an object ID/generation pair. 2013-04-14 Jay Berkenbilt * 4.1.0: release 2013-03-25 Jay Berkenbilt * manual/qpdf-manual.xml: Document the casting policy that is followed in qpdf's implementation. 2013-03-11 Jay Berkenbilt * When creating Windows binary distributions, make sure to only copy DLLs of the correct type. The ensures that the 32-bit distributions contain 32-bit DLLs and the 64-bit distributions contain 64-bit DLLs. 2013-03-07 Jay Berkenbilt * Use ./install-sh (already present) instead of "install -c" to install executables to fix portability problems against different UNIX variants. 2013-03-03 Jay Berkenbilt * Add protected terminateParsing method to QPDFObjectHandle::ParserCallbacks that implementor can call to terminate parsing of a content stream. 2013-02-28 Jay Berkenbilt * Favor fopen_s and strerror_s on MSVC to avoid CRT security warnings. This is useful for people who may want to use qpdf in an application that is Windows 8 certified. * New method QUtil::safe_fopen to wrap calls to fopen. This is less cumbersome than calling QUtil::fopen_wrapper. * Remove all calls to sprintf * New method QUtil::int_to_string_base to convert to octal or hexademical (or decimal) strings without using sprintf 2013-02-26 Jay Berkenbilt * Rewrite QUtil::int_to_string and QUtil::double_to_string to remove internal length limits but to remain backward compatible with the old versions for valid inputs. 2013-02-23 Jay Berkenbilt * Bug fix: properly handle overridden compressed objects. When caching objects from an object stream, only cache objects that, based on the xref table, would actually be resolved into this stream. Prior to this fix, if an object stream A contained an object B that was overridden by an appended section of the file, qpdf would cache the old value of B if any non-overridden member of A was accessed before B. This commit fixes that bug. 2013-01-31 Jay Berkenbilt * Do not remove libtool's .la file during the make install step. Note to packagers: if your distribution wants to you remove the .la file, you will have to do that yourself now. 2013-01-25 Jay Berkenbilt * New method QUtil::hex_encode to encode binary data as a hexadecimal string * qpdf --check was exiting with status 0 in some rare cases even when errors were found. It now always exits with one of the document error codes (0 for success, 2 for errors, 3 or warnings). 2013-01-24 Jay Berkenbilt * Make --enable-werror work for MSVC, and generally handle warning options better for that compiler. Warning flags for that compiler were previous hard-coded into the build with /WX enabled unconditionally. * Split warning flags into WFLAGS in autoconf.mk to make them easier to override. Before they were repeated in CFLAGS and CXXFLAGS and were commingled with other compiler flags. * qpdf --check now does syntactic checks all pages' content streams as well as checking overall document structure. Semantic errors are still not checked, and there are no plans to add semantic checks. 2013-01-22 Jay Berkenbilt * Add QPDFObjectHandle::getTypeCode(). This method returns a unique integer (enumerated type) value corresponding to the object type of the QPDFObjectHandle. It can be used as an alternative to the QPDFObjectHandle::is* methods for type testing, particularly where there is a desire to use a switch statement or optimize for performance when testing object types. * Add QPDFObjectHandle::getTypeName(). This method returns a string literal describing the object type. It is useful for testing and debugging. 2013-01-20 Jay Berkenbilt * Add QPDFObjectHandle::parseContentStream, which parses the objects in a content stream and calls handlers in a callback class. The example pdf-parse-content illustrates it use. * Add QPDF_Operator and QPDF_InlineImage types along with appropriate wrapper methods in QPDFObjectHandle. These new object types are to facilitate content stream parsing. 2013-01-17 Jay Berkenbilt * 4.0.1: release * Add clarifying comment in QPDF.hh for methods that return the user password to state that it is no longer possible with newer encryption formats to recover the user password knowing the owner password. * Fix detection of binary attachments in the test suite. This resolves false test failures on some platforms. No changes to the actual QPDF code were made. 2012-12-31 Jay Berkenbilt * 4.0.0: release * Add new methods qpdf_get_pdf_extension_level, qpdf_set_r5_encryption_parameters, qpdf_set_r6_encryption_parameters, qpdf_set_minimum_pdf_version_and_extension, and qpdf_force_pdf_version_and_extension to support new functionality from the C API. 2012-12-30 Jay Berkenbilt * Fix long-standing bug that could theoretically have resulted in possible misinterpretation of decode parameters in streams. As far as I can tell, it is extremely unlikely that files with the characteristics that would have triggered the bug actually exist in cases that qpdf versions prior to 4.0.0 could have read. Unencrypted files with encrypted attachments would have triggered this bug, but qpdf versions prior to 4.0.0 already refused to open such files. * Fix long-standing bug in which a stream that used a crypt filter and was otherwise not filterable by qpdf would be decrypted properly but would retain the crypt filter indication in the file. There are no known ways to create files like this, so it is unlikely that anyone ever hit this bug. 2012-12-29 Jay Berkenbilt * Add read/write support for both the deprecated Acrobat IX encryption format and the Acrobat X/PDF 2.0 encryption format using 256-bit AES keys. Using the Acrobat IX format (R=5) forces the version of the file to 1.7 with extension level 3. Using the PDF 2.0 format (R=6) forces it to 1.7 extension level 8. * Add new method QPDF::getEncryptionKey to return the actual encryption key used for encryption of data in the file. The key is returned as a std::string. * Non-compatible API change: change signature of QPDF::compute_data_key to take the R and V values from the encryption dictionary. There is no reason for any application code to call this method since handling of encryption is done automatically by the qpdf libary. It is used internally by QPDFWriter. * Support reading and decryption of files whose main text is not encrypted but whose attachments are. More generally, support the case of files and streams encrypted differently with some limitations, described in the documentation. This was not previously supported due to lack of test files, but I created test files using a trial version of Acrobat XI to fully implement this case. * Incorporate sha2 code from sphlib 3.0. See README for licensing. Create private pipeline class for computing hashes with sha256, sha384, and sha512. * Allow specification of initialization vector when using AES filtering. This is required to compute the hash used in /R=6 (PDF 2.0) encryption. 2012-12-28 Jay Berkenbilt * Add random number generation functions to QUtil. * Fix old bug that could cause an infinite loop if user password recovery methods were called and a password contained the "(" character (which happens to be the first byte of padding used by older PDF encryption formats). This bug was noticed while reading code and would not happen under ordinary usage patterns even if the password contained that character. 2012-12-27 Jay Berkenbilt * Add awareness of extension level to PDF Version methods for both reading and writing. This includes adding method QPDF::getExtensionLevel and new versions of QPDFWriter::setMinimumPDFVersion and QPDFWriter::forcePDFVersion that support extension levels. The qpdf command-line tool interprets version numbers of the form x.y.z as version x.y at extension level z. * Update AES classes to support use of 256-bit keys. * Non-compatible API change: Removed public method QPDF::flattenScalarReferences. Instead, just flatten the scalar references we actually need to flatten. Flattening scalar references was a wrong decision years ago and has occasionally caused other problems, among which were that it caused qpdf to visit otherwise unreferenced and possibly erroneous objects in the file when it didn't have to. There's no reason that any non-internal code would have had to call this. * Non-compatible API change: Removed public method QPDF::decodeStreams which was previously used by qpdf --check but is no longer used. The decodeStreams method could generate false positives since it would attempt to access all objects in the file including those that were not referenced. There's no reason that any non-internal code would have had to call this. * Non-compatible API change: Removed public method QPDF::trimTrailerForWrite, which was only intended for use by QPDFWriter and which is no longer used. 2012-12-26 Jay Berkenbilt * Add new fields to QPDF::EncryptionData to support newer encryption formats (V=5, R=5 and R=6) * Non-compatible API change: Change public nested class QPDF::EncryptionData to make all member fields private and to add method calls. This is a non-compatible API change, but changing EncryptionData is necessary to support newer encryption formats, and making this change will prevent the need from making a non-compatible change in the future if new fields are added. A public nested class should never have had public members to begin with. 2012-12-25 Jay Berkenbilt * Allow PDF header to appear anywhere in the first 1024 bytes of the file as recommended in the implementation notes of the Adobe version of the PDF spec. 2012-11-20 Jay Berkenbilt * Add zlib and libpcre to Requires.private in the pkg-config file to support static linking. Thanks Tobias Hoffmann for pointing out the omission. * Ignore (with warning) non-freed objects in the xref table whose offset is 0. Some PDF producers (incorrectly) do this. See https://bugs.linuxfoundation.org/show_bug.cgi?id=1081. 2012-09-23 Jay Berkenbilt * Add public methods QPDF::processInputSource and QPDFWriter::setOutputPipeline to allow users to read from custom input sources and to write to custom pipelines. This allows the maximum flexibility in sources for reading and writing PDF files. 2012-09-06 Jay Berkenbilt * 3.0.2: release * Add new method QPDFWriter::setExtraHeaderText to add extra text, such as application-specific comments, to near the beginning of a PDF file. For linearized files, this appears after the linearization parameter dictionary. For non-linearized files, it appears right after the PDF header and non-ASCII comment. * Make it possible to write the same QPDF object with two different QPDFWriter objects that have both called setLinearization(true) by making private method QPDF::calculateLinearizationData() properly initialize its state. * Bug fix: Writing after calling QPDFWriter::setOutputMemory() would cause a segmentation fault because of an internal field not being initialized, rendering that method useless. This has been corrected. 2012-08-11 Jay Berkenbilt * 3.0.1: release * Bug fix: let EOF terminate a literal token as well as whitespace or comments. 2012-07-31 Jay Berkenbilt * 3.0.0: release 2012-07-29 Jay Berkenbilt * 3.0.rc1: release 2012-07-25 Jay Berkenbilt * From Tobias: add QPDFObjectHandle::replaceStreamData that takes a std::string analogous to the QPDFObjectHandle::newStream that takes a string that was added earlier. 2012-07-21 Jay Berkenbilt * Change configure to have image comparison tests disabled by default. Update README and README.maintainer with information about running them. * Add --pages command-line option to qpdf to enable page-based merging and splitting. * Add new method QPDFObjectHandle::replaceDict to replace a stream's dictionary. Use with caution; see comments in QPDFObjectHandle.hh. * Add new method QPDFObjectHandle::parse for creation of QPDFObjectHandle objects from string representations of the objects. Thanks to Tobias Hoffmann for the idea. 2012-07-15 Jay Berkenbilt * add new QPDF::isEncrypted method that returns some additional information beyond other versions. * libqpdf/QPDFWriter.cc: fix copyEncryptionParameters to fix the minimum PDF version based on other file's encryption needs. This is a fix to code added on 2012-07-14 and did not impact previously released code. * libqpdf/QPDFWriter.cc (copyEncryptionParameters): Bug fix: qpdf was not preserving whether or not AES encryption was being used when copying encryption parameters. The file would still have been properly encrypted, but a file that started off encrypted with AES could have become encrypted with RC4. 2012-07-14 Jay Berkenbilt * QPDFWriter: add public copyEncryptionParameters to allow copying encryption parameters from another file. * QPDFWriter: detect if the user has inserted an indirect object from another QPDF object and throw an exception directing the user to copyForeignObject. 2012-07-11 Jay Berkenbilt * Added new APIs to copy objects from one QPDF to another. This includes letting QPDF::addPage() (and QPDF::addPageAt()) accept a page object from another QPDF and adding QPDF::copyForeignObject(). See QPDF.hh for details. * Add method QPDFObjectHandle::getOwningQPDF() to return the QPDF object associated with an indirect QPDFObjectHandle. * Add convenience methods to QPDFObjectHandle: assertIndirect(), isPageObject(), isPagesObject() * Cache when QPDF::pushInheritedAttributesToPage() has been called to avoid traversing the pages trees multiple times. This state is cleared by QPDF::updateAllPagesCache() and ignored by QPDF::flattenPagesTree(). 2012-07-08 Jay Berkenbilt * Add QPDFObjectHandle::newReserved to create a reserved object and QPDF::replaceReserved to replace it with a real object. QPDFObjectHandle::newReserved reserves an object ID in a QPDF object and ensures that any references to it remain unresolved. When QPDF::replaceReserved is later called, previous references to the reserved object will properly resolve to the replaced object. 2012-07-07 Jay Berkenbilt * NOTE: BREAKING API CHANGE. Remove previously required length parameter from the version QPDFObjectHandle::replaceStreamData that uses a stream data provider. Prior to qpdf 3.0.0, you had to compute the stream length in advance so that qpdf could internally verify that the stream data had the same length every time the provider was invoked. Now this requirement is enforced a different way, and the length parameter is no longer required. Note that I take API-breaking changes very seriously and only did it in this case since the lack of need to know length in advance could significantly simplify people's code. If you were previously going to a lot of trouble to compute the length of the new stream data in advance, you now no longer have to do that. You can just drop the length parameter and remove any code that was previously computing the length. Thanks to Tobias Hoffmann for pointing out how annoying the original interface was. 2012-07-05 Jay Berkenbilt * Add QPDFWriter methods to write to an already open stdio FILE*. Implementation and idea area based on contributions from Tobias Hoffmann. 2012-07-04 Jay Berkenbilt * Accept changes from Tobias Hoffmann: add public method QPDF::pushInheritedAttributesToPage including warnings for non-inherited keys that may be discarded from /Pages by non-conformant PDF files when the /Pages tree is flattened. 2012-06-27 Jay Berkenbilt * Add Pl_Concatenate pipeline for stream concatenation also implemented by Tobias Hoffmann. Also added test code (libtests/concatenate.cc). * Add new methods implemented by Tobias Hoffmann: QPDFObjectHandle::newReal(double) and QPDFObjectHandle::newStream(QPDF*, std::string const&). 2012-06-26 Jay Berkenbilt * Minor changes so that support for PDF files larger than 4GB works well with 32-bit and 64-bit Linux and also with 32-bit and 64-bit Windows with both MSVC and mingw. * Rework internal methods for doing recovery of the cross reference tables for much greater efficiency both in terms of time and memory usage. 2012-06-24 Jay Berkenbilt * Support PDF files larger than 4 GB. This involved many changes to the ABI to increase the size of integer types used in various places as well as increasing the amount of padding used when creating linearized files. Automated tests for large files are disabled by default. Run ./configure --help for information on enabling them. Running the tests requires 11 GB of free disk space and takes several minutes. 2012-06-22 Jay Berkenbilt * examples/pdf-create.cc: Provide an example of creating a PDF from scratch. This simple PDF has a single page with some text and an image. * Add empty QPDFObjectHandle factories for array and dictionary. With PDF-from-scratch capability, it is useful to be able to create empty arrays and dictionaries and add keys to them. Updated pdf_from_scratch.cc to use these interfaces. 2012-06-21 Jay Berkenbilt * Add QPDF::emptyPDF() to create an empty QPDF object suitable for adding pages and other objects to. pdf_from_scratch.cc is test code that exercises it. * make/libtool.mk: Place user-specified CPPFLAGS and LDFLAGS later in the compilation so that if a user installs things in a non-standard place that they have to tell the build about, earlier versions of qpdf installed there won't break the build. Thanks to Macports for reporting this. (Fixes bug 3468860.) * Instead of using off_t in the public APIs, use qpdf_offset_t instead. This is defined as long long in qpdf/Types.h. If your system doesn't support long long, you can redefine it. * Add pkg-config files * QPDFObjectHandle: add shallowCopy() method * QPDF: add new APIs for adding and removing pages. This includes addPage(), addPageAt(), and removePage(). Also a method updateAllPagesCache() is now available to force update of the internal pages cache if you should modify the pages structure manually. * QPDF: new processFile method that takes an open FILE* instead of a filename. 2012-06-20 Jay Berkenbilt * Add new array mutation routines to QPDFObjectHandle. Implemented by Tobias Hoffmann. * Rework APIs that use size_t, off_t, and primative integer types so that size_t is used for sizes of memory and off_t is used for file offsets. Also set _FILE_OFFSET_BITS so that large files can be supported on 32-bit UNIX/Linux platforms. The code assumes in places that sizeof(off_t) >= sizeof(size_t). This resulted in non-compatible ABI changes and hopefully clears the way for QPDF to work with files that are larger than 4 GiB in size. * Add support for versioned symbols on ELF platforms. * Various fixes for gcc 4.7 2011-04-06 Jay Berkenbilt * Fix PCRE to stop using deprecated (and now dropped) interfaces. 2011-12-28 Jay Berkenbilt * 2.3.1: release * include if available to support MSVC 2010 * Since PCRE is not necessarily thread safe, don't declare any PCRE objects to be static. * Disregard stderr output from ghostscript when using it to compare images in the test suite; see comments in qpdf.test for details. * Fixed a few documentation errors. 2011-08-11 Jay Berkenbilt * 2.3.0: release * include/qpdf/qpdf-c.h ("C"): add new methods qpdf_init_write_memory, qpdf_get_buffer_length, and qpdf_get_buffer to support writing to memory from the C API. * include/qpdf/qpdf-c.h ("C"): add new methods qpdf_get_info_key and qpdf_set_info_key for manipulating text fields of the /Info dictionary. 2011-08-10 Jay Berkenbilt * libqpdf/QPDFWriter.cc (copyEncryptionParameters): preserve whether metadata is encryption. This fixes part of bug 3173659: the password becomes invalid if qpdf copies an encrypted file with cleartext-metadata. * include/qpdf/QPDFWriter.hh: add a new constructor that takes only a QPDF reference and leaves specification of output for later. Add methods setOutputFilename() to set the output to a filename or stdout, and setOutputMemory() to indicate that output should go to a memory buffer. Add method getBuffer() to retrieve the buffer used if output was saved to a memory buffer. * include/qpdf/QPDF.hh: add methods replaceObject() and swapObjects() to allow replacement of an object and swapping of two objects by object ID. * include/qpdf/QPDFObjectHandle.hh: add new methods getDictAsMap() and getArrayAsVector() for returning the elements of a dictionary or an array as a map or vector. 2011-06-25 Jay Berkenbilt * 2.2.4: release 2011-06-23 Jay Berkenbilt * make/libtool.mk (install): Do not strip executables and shared libraries during installation. Leave that up to the packager. * configure.ac: disable -Werror by default. 2011-05-07 Jay Berkenbilt * libqpdf/QPDF_linearization.cc (isLinearized): remove unused offset variable, found by a gcc 4.6 warning. 2011-04-30 Jay Berkenbilt * 2.2.3: release * libqpdf/QPDF.cc (readObjectInternal): Accept the case of the stream keyword being followed by carriage return by itself. While this is not permitted by the specification, there are PDF files that do this, and other readers can read them. * libqpdf/Pl_QPDFTokenizer.cc (processChar): When an inline image is detected, suspend normalization only up to the end of the inline image rather than for the remainder of the content stream. (Fixes qpdf-Bugs 3152169.) 2011-01-31 Jay Berkenbilt * libqpdf/QPDF.cc (readObjectAtOffset): use -1 rather than 0 when reading an object at a given to indicate that no object number is expected. This allows xref recovery to proceed even if a file uses the invalid object number 0 as a regular object. * libqpdf/QPDF_linearization.cc (isLinearized): use -1 rather than 0 as a sentintel for not having found the first object in the file. Since -1 can never match the regular expression, this prevents an infinite loop when checking a file that starts with (erroneous) 0 0 obj. (Fixes qpdf-Bugs-3159950.) 2010-10-04 Jay Berkenbilt * 2.2.2: release * include/qpdf/qpdf-c.h: Add qpdf_read_memory to C API to call QPDF::processMemoryFile. 2010-10-01 Jay Berkenbilt * 2.2.1: release * include/qpdf/QPDF.hh: Add setOutputStreams method to allow redirection of library-generated output/error to alternative streams. * include/qpdf/QPDF.hh: Add processMemoryFile method for processing a PDF file from a memory buffer instead of a file. 2010-09-24 Jay Berkenbilt * libqpdf/QPDF.cc: change private "file" method to be a PointerHolder to prepare qpdf for being able to work with PDF files loaded into memory in addition to working with files on disk. * include/qpdf/PointerHolder.hh: add operator* and operator-> methods so that PointerHolder objects can be used like pointers. This is consistent with the smart pointer objects in the next revision of C++. 2010-09-05 Jay Berkenbilt * libqpdf/QPDF.cc (readObjectInternal): Recognize empty objects and treat them as null. * libqpdf/QPDF_Stream.cc (filterable): Handle inline image filter abbreviations as stream filter abbreviations. Although this is not technically allowed by the PDF specification, table H.1 in the pre-ISO spec indicates that Adobe's readers accept them. Thanks to Jian Ma for bringing this to my attention. 2010-08-14 Jay Berkenbilt * 2.2.0: release * Rename README.windows to README-windows.txt and convert its line endings to Windows-style line endings. Also mention Jian Ma's VC6 port in the manual and README-windows.txt. 2010-08-09 Jay Berkenbilt * Add QPDFObjectHandle::getRawStreamData to return raw (unfiltered) stream data. 2010-08-08 Jay Berkenbilt * 2.2.rc1: release 2010-08-05 Jay Berkenbilt * Add QPDFObjectHandle::addPageContents, a convenience routine for appending or prepending new streams to a page's content streams. The "pdf-double-page-size" example illustrates its use. * Add new methods to QPDFObjectHandle: replaceStreamData and newStream. These methods allow users of the qpdf library to add new streams and to replace data of existing streams. The "pdf-double-page-size" and "pdf-invert-images" examples illustrate their use. 2010-06-06 Jay Berkenbilt * Fix memory leak for QPDF objects whose underlying PDF objects contain circular references. Thanks to Jian Ma for calling my attention to the memory leak. 2010-04-25 Jay Berkenbilt * 2.1.5: release * libqpdf/QPDF_encryption.cc (compute_encryption_key): remove restrictions on length of file identifier string. (Fixes qpdf-Bugs-2991412.) 2010-04-18 Jay Berkenbilt * 2.1.4: release * libqpdf/QPDFWriter.cc (writeLinearized): the padding calculation fix in 2.1.2 was applied in only one place but it was needed in two places since there are actually two cross reference streams in a linearized file. The new padding calculation is now used for both streams. Hopefully this should put an end to linearization padding problems. (Fixes qpdf-Bugs-2979219.) 2010-04-10 Jay Berkenbilt * qpdf/qpdf.cc (main): Since qpdf --check only checks syntax and stream encoding without doing any semantic checks, make the output clearer when no errors around found. This is inspired by qpdf-Bugs-2983225. 2010-03-27 Jay Berkenbilt * 2.1.3: release * libqpdf/QPDF_optimization.cc (flattenScalarReferences): Flatten scalar references for unreferenced objects as well as those seen during traversal of the file. This matters when preserving object streams that contain unreferenced objects with indirect scalars. (Fixes qpdf-Bugs-2974522.) Updated TODO with a description of a possibly better fix involving removal of flattenScalarReferences. * libqpdf/Pl_AES_PDF.cc (finish): Don't complain if an AES input buffer is not a multiple of 16 bytes. Instead, just pad with nulls and hope for the best. PDF files have been encountered "in the wild" that contain AES buffers that aren't a multiple of 16 bytes. 2010-01-24 Jay Berkenbilt * 2.1.2: release * libqpdf/QPDFWriter.cc: fix logic error in padding calculation. When writing linearized files with cross reference streams, the padding calculation failed to take differences in sizes of compressed data between pass 1 and pass 2 into consideration. 2009-12-14 Jay Berkenbilt * 2.1.1: release * qpdf/qtest/qpdf.test: improve test for acroread to make sure it actually works and is not just present in the path. 2009-12-13 Jay Berkenbilt * libqpdf/qpdf/Pl_AES_PDF.hh: include , if available, so we have valid definitions of uint32_t. 2009-10-30 Jay Berkenbilt * 2.1: release * libqpdf/QPDF.cc: be more forgiving of extraneous whitespace in the xref table and while recovering from error conditions. 2009-10-26 Jay Berkenbilt * Work around failure of PCRE test case; this test case exercises an aspect of PCRE that qpdf does not use, and the test fails with the version of PCRE on Red Hat Enterprise Linux 5, so we ignore failure on this particular test case. * Fix RPM .spec file to include "C" examples 2009-10-24 Jay Berkenbilt * 2.1.rc1: release * Provide interfaces for getting qpdf's own version number 2009-10-19 Jay Berkenbilt * include/qpdf/QPDF.hh (QPDF): getWarnings now returns a list of QPDFExc rather than a list of strings. This way, warnings may be inspected in more detail. * Include information about the last object read in most error messages. Most of the time, this will provide a good hint as to which object contains the error, but it's possible that the last object read may not necessarily be the one that has the error if the erroneous object was previously read and cached. 2009-10-18 Jay Berkenbilt * If forcing version, disable object stream creation and/or encryption if previous specifications are incompatible with new version. It is still possible that PDF content, compression schemes, etc., may be incompatible with the new version, but at least this way, older viewers will at least have a chance. * libqpdf/QPDFWriter.cc (unparseObject): avoid compressing Metadata streams if possible. 2009-10-13 Jay Berkenbilt * Upgrade embedded qtest to version 1.4, which allows the test suite to be run in Windows with MSYS and ActiveState Perl rather than requiring Cygwin perl. 2009-10-04 Jay Berkenbilt * Implement support AES encrypt and crypt filters. Implementation is not fully tested due to lack of test data but has been tested for several cases. 2009-10-04 Jay Berkenbilt * Add methods to QPDFWriter and corresponding command line arguments to qpdf to set the minimum output PDF version and also to force the version to a particular value. * libqpdf/QPDF.cc (processXRefStream): warn and ignore extra xref stream entries when stream is larger than reported size. This used to be a fatal error. (Fixes qpdf-Bugs-2872265.) 2009-09-27 Jay Berkenbilt * Add several methods to query permissions controlled by the encryption dictionary. Note that qpdf does not enforce these permissions even though it allows the user to query them. * The function QPDF::getUserPassword returned the user password with the required padding as specified by the PDF specification. This is seldom useful to users. This function has been replaced by QPDF::getPaddedUserPassword. Call the new QPDF::getTrimmedUserPassword to retreive the user password in a human-readable format. * qpdf/qpdf.cc (main): qpdf --check now prints the PDF version number in addition to its other output. 2009-09-26 Jay Berkenbilt * Removed all references to QEXC; now using std::runtime_error and std::logic_error and their subclasses for all exceptions. 2009-05-03 Jay Berkenbilt * 2.0.6: release * libqpdf/QPDF_Stream.cc (filterable): ignore /DecodeParms if it's not a type we recognize. (Fixes qpdf-Bugs-2779746.) 2009-03-10 Jay Berkenbilt * 2.0.5: release 2009-03-09 Jay Berkenbilt * libqpdf/Pl_LZWDecoder.cc: adjust LZWDecoder full table detection, now having been able to adequately test boundary conditions both and with and without early code change. Also compared implementation with other LZW decoders. 2009-03-08 Jay Berkenbilt * qpdf/fix-qdf (write_ostream): Adjust offsets while writing object streams to account for changes in the length of the dictionary and offset tables. * qpdf/qpdf.cc (main): In check mode, in addition to checking structure of file, attempt to decode all stream data. * libqpdf/QPDFWriter.cc (QPDFWriter::writeObject): In QDF mode, write a comment to the QDF file before each object that indicates the object ID of the corresponding object from the original file. Add --no-original-object-ids flag to qpdf and setSuppressOriginalObjectIDs() method to QPDFWriter to turn this behavior off. * libqpdf/QPDF.cc (QPDF::pipeStreamData): Issue a warning instead of failing if there is a problem found while decoding stream. * qpdf/qpdf.cc: Exit with a status of 3 if warnings were found regardless of what mode we're in. 2009-02-21 Jay Berkenbilt * 2.0.4: release 2009-02-20 Jay Berkenbilt * Fix many typos in comments and strings. * qpdf/qpdf.cc: in --check mode, if there are warnings but no errors, exit with a status of 3. * libqpdf/QPDF.cc (QPDF::insertXrefEntry): when recovering the cross-reference table, have objects we encounter later in the file supersede those we found earlier. This improves the chances of being able to recover appended files with damaged cross-reference tables. 2009-02-19 Jay Berkenbilt * libqpdf/Pl_LZWDecoder.cc: correct logic error for previously untested case of running the LZW decoder without the "early code change" flag. Thanks to a bug report from "Atom Smasher", I finally was able to obtain an input stream compressed in this way. 2009-02-15 Jay Berkenbilt * 2.0.3: release 2008-12-11 Jay Berkenbilt * qpdf/qpdf.cc (main): Accept -help and -version as well as --help and --version 2008-11-23 Jay Berkenbilt * Include stdio.h in a few files for proper compilation with (yet to be released) gcc 4.4 * updated embedded qtest to version 1.3 * libqpdf/QPDF_String.cc (QPDF_String::getUTF8Val): handle UTF-16BE properly rather than just treating the string as a string of 16-bit characters. 2008-06-30 Jay Berkenbilt * 2.0.2: release * updated embedded qtest to version 1.2 (includes previous changes) 2008-06-07 Jay Berkenbilt * qpdf/qtest/qpdf/diff-encrypted: change == to = so that the test suite passes when /bin/sh is not bash 2008-05-07 Jay Berkenbilt * qtest/bin/qtest-driver (run_test): increase timeout for qtest to be more tolerant of slow machines 2008-05-06 Jay Berkenbilt * 2.0.1: release * make/rules.mk: fix logic with .dep generation for .lo files so that dependencies work properly with libtool 2008-05-05 Jay Berkenbilt * libqpdf/qpdf/MD5.hh: fix header to be 64-bit clean * configure.ac: add tests for sized integer types 2008-05-04 Jay Berkenbilt * libqpdf/QPDF_encryption.cc: do not assume size_t is unsigned int * qpdf/qtest/qpdf.test: removed locale-specific tests. These were really to check bugs in perl 5.8.0 and are obsolete now. They also make the test suite fail in some environments that don't have all the locales fully configured. * various: updated several files for gcc 4.3 by adding missing includes (string.h, stdlib.h) 2008-04-26 Jay Berkenbilt * 2.0: initial public release qpdf-8.0.2/examples/0000755000064100006410000000000013247543020012347 5ustar ejbejbqpdf-8.0.2/examples/build.mk0000644000064100006410000000244113247541377014015 0ustar ejbejbBINS_examples = \ pdf-bookmarks \ pdf-mod-info \ pdf-npages \ pdf-double-page-size \ pdf-invert-images \ pdf-create \ pdf-parse-content \ pdf-split-pages \ pdf-filter-tokens \ pdf-count-strings CBINS_examples = pdf-linearize TARGETS_examples = $(foreach B,$(BINS_examples) $(CBINS_examples),examples/$(OUTPUT_DIR)/$(call binname,$(B))) $(TARGETS_examples): $(TARGETS_qpdf) INCLUDES_examples = include TC_SRCS_examples = $(wildcard examples/*.cc) # ----- $(foreach B,$(BINS_examples),$(eval \ OBJS_$(B) = $(call src_to_obj,examples/$(B).cc))) $(foreach B,$(CBINS_examples),$(eval \ OBJS_$(B) = $(call c_src_to_obj,examples/$(B).c))) ifeq ($(GENDEPS),1) -include $(foreach B,$(BINS_examples) $(CBINS_examples),$(call obj_to_dep,$(OBJS_$(B)))) endif $(foreach B,$(BINS_examples),$(eval \ $(OBJS_$(B)): examples/$(OUTPUT_DIR)/%.$(OBJ): examples/$(B).cc ; \ $(call compile,examples/$(B).cc,$(INCLUDES_examples)))) $(foreach B,$(CBINS_examples),$(eval \ $(OBJS_$(B)): examples/$(OUTPUT_DIR)/%.$(OBJ): examples/$(B).c ; \ $(call c_compile,examples/$(B).c,$(INCLUDES_examples)))) $(foreach B,$(BINS_examples) $(CBINS_examples),$(eval \ examples/$(OUTPUT_DIR)/$(call binname,$(B)): $(OBJS_$(B)) ; \ $(call makebin,$(OBJS_$(B)),$$@,$(LDFLAGS_libqpdf) $(LDFLAGS),$(LIBS_libqpdf) $(LIBS)))) qpdf-8.0.2/examples/pdf-parse-content.cc0000644000064100006410000000337113247541377016230 0ustar ejbejb#include #include #include #include #include static char const* whoami = 0; void usage() { std::cerr << "Usage: " << whoami << " filename page-number" << std::endl << "Prints a dump of the objects in the content streams" << " of the given page." << std::endl << "Pages are numbered from 1." << std::endl; exit(2); } class ParserCallbacks: public QPDFObjectHandle::ParserCallbacks { public: virtual ~ParserCallbacks() { } virtual void handleObject(QPDFObjectHandle); virtual void handleEOF(); }; void ParserCallbacks::handleObject(QPDFObjectHandle obj) { std::cout << obj.getTypeName() << ": "; if (obj.isInlineImage()) { std::cout << QUtil::hex_encode(obj.getInlineImageValue()) << std::endl; } else { std::cout << obj.unparse() << std::endl; } } void ParserCallbacks::handleEOF() { std::cout << "-EOF-" << std::endl; } int main(int argc, char* argv[]) { whoami = QUtil::getWhoami(argv[0]); // For libtool's sake.... if (strncmp(whoami, "lt-", 3) == 0) { whoami += 3; } if (argc != 3) { usage(); } char const* filename = argv[1]; int pageno = QUtil::string_to_int(argv[2]); try { QPDF pdf; pdf.processFile(filename); std::vector pages = pdf.getAllPages(); if ((pageno < 1) || (static_cast(pageno) > pages.size())) { usage(); } QPDFObjectHandle page = pages.at(pageno-1); ParserCallbacks cb; page.parsePageContents(&cb); } catch (std::exception& e) { std::cerr << whoami << ": " << e.what() << std::endl; exit(2); } return 0; } qpdf-8.0.2/examples/Makefile0000644000064100006410000000003113247541377014016 0ustar ejbejbinclude ../make/proxy.mk qpdf-8.0.2/examples/pdf-invert-images.cc0000644000064100006410000001243613247541377016222 0ustar ejbejb#include #include #include #include #include #include #include static char const* whoami = 0; void usage() { std::cerr << "Usage: " << whoami << " infile.pdf outfile.pdf [in-password]" << std::endl << "Invert some images in infile.pdf;" << " write output to outfile.pdf" << std::endl; exit(2); } // Derive a class from StreamDataProvider to provide updated stream // data. The main purpose of using this object is to avoid having to // allocate memory up front for the objects. A real application might // use temporary files in order to avoid having to allocate all the // memory. Here, we're not going to worry about that since the goal // is really to show how to use this facility rather than to show the // best possible way to write an image inverter. This class still // illustrates dynamic creation of the new stream data. class ImageInverter: public QPDFObjectHandle::StreamDataProvider { public: virtual ~ImageInverter() { } virtual void provideStreamData(int objid, int generation, Pipeline* pipeline); // Map [og] = image object std::map image_objects; // Map [og] = image data std::map > image_data; }; void ImageInverter::provideStreamData(int objid, int generation, Pipeline* pipeline) { // Use the object and generation number supplied to look up the // image data. Then invert the image data and write the inverted // data to the pipeline. PointerHolder data = this->image_data[QPDFObjGen(objid, generation)]; size_t size = data->getSize(); unsigned char* buf = data->getBuffer(); unsigned char ch; for (size_t i = 0; i < size; ++i) { ch = static_cast(0xff) - buf[i]; pipeline->write(&ch, 1); } pipeline->finish(); } int main(int argc, char* argv[]) { whoami = QUtil::getWhoami(argv[0]); // For libtool's sake.... if (strncmp(whoami, "lt-", 3) == 0) { whoami += 3; } // For test suite bool static_id = false; if ((argc > 1) && (strcmp(argv[1], " --static-id") == 0)) { static_id = true; --argc; ++argv; } if (! ((argc == 3) || (argc == 4))) { usage(); } char const* infilename = argv[1]; char const* outfilename = argv[2]; char const* password = (argc == 4) ? argv[3] : ""; try { QPDF qpdf; qpdf.processFile(infilename, password); ImageInverter* inv = new ImageInverter; PointerHolder p = inv; // For each page... std::vector pages = qpdf.getAllPages(); for (std::vector::iterator iter = pages.begin(); iter != pages.end(); ++iter) { QPDFObjectHandle& page = *iter; // Get all images on the page. std::map images = page.getPageImages(); for (std::map::iterator iter = images.begin(); iter != images.end(); ++iter) { QPDFObjectHandle& image = (*iter).second; QPDFObjectHandle image_dict = image.getDict(); QPDFObjectHandle color_space = image_dict.getKey("/ColorSpace"); QPDFObjectHandle bits_per_component = image_dict.getKey("/BitsPerComponent"); // For our example, we can only work with images 8-bit // grayscale images that we can fully decode. Use // pipeStreamData with a null pipeline to determine // whether the image is filterable. Directly inspect // keys to determine the image type. if (image.pipeStreamData(0, qpdf_ef_compress, qpdf_dl_generalized) && color_space.isName() && bits_per_component.isInteger() && (color_space.getName() == "/DeviceGray") && (bits_per_component.getIntValue() == 8)) { // Store information about the images based on the // object and generation number. Recall that a single // image object may be used more than once. QPDFObjGen og = image.getObjGen(); if (inv->image_objects.count(og) == 0) { inv->image_objects[og] = image; inv->image_data[og] = image.getStreamData(); // Register our stream data provider for this // stream. Future calls to getStreamData or // pipeStreamData will use the new // information. Provide null for both filter // and decode parameters. Note that this does // not mean the image data will be // uncompressed when we write the file. By // default, QPDFWriter will use /FlateDecode // for anything that is uncompressed or // filterable in the input QPDF object, so we // don't have to deal with it explicitly here. image.replaceStreamData( p, QPDFObjectHandle::newNull(), QPDFObjectHandle::newNull()); } } } } // Write out a new file QPDFWriter w(qpdf, outfilename); if (static_id) { // For the test suite, uncompress streams and use static // IDs. w.setStaticID(true); // for testing only } w.write(); std::cout << whoami << ": new file written to " << outfilename << std::endl; } catch (std::exception &e) { std::cerr << whoami << " processing file " << infilename << ": " << e.what() << std::endl; exit(2); } return 0; } qpdf-8.0.2/examples/pdf-filter-tokens.cc0000644000064100006410000001650613247541377016240 0ustar ejbejb// // This example illustrates the use of QPDFObjectHandle::TokenFilter // with addContentTokenFilter. Please see comments inline for details. // See also pdf-count-strings.cc for a use of // QPDFObjectHandle::TokenFilter with filterPageContents. // #include #include #include #include #include #include #include #include #include static char const* whoami = 0; void usage() { std::cerr << "Usage: " << whoami << " infile outfile" << std::endl << "Applies token filters to infile and writes outfile" << std::endl; exit(2); } // The StringReverser class is a trivial example of using a token // filter. This class only overrides the pure virtual handleToken // function and preserves the default handleEOF function. class StringReverser: public QPDFObjectHandle::TokenFilter { public: virtual ~StringReverser() { } virtual void handleToken(QPDFTokenizer::Token const&); }; void StringReverser::handleToken(QPDFTokenizer::Token const& token) { // For string tokens, reverse the characters. For other tokens, // just pass them through. Notice that we construct a new string // token and write that, thus allowing the library to handle any // subtleties about properly encoding unprintable characters. This // function doesn't handle multibyte characters at all. It's not // intended to be an example of the correct way to reverse // strings. It's just intended to give a simple example of a // pretty minimal filter and to show an example of writing a // constructed token. if (token.getType() == QPDFTokenizer::tt_string) { std::string value = token.getValue(); std::reverse(value.begin(), value.end()); writeToken(QPDFTokenizer::Token(QPDFTokenizer::tt_string, value)); } else { writeToken(token); } } // The ColorToGray filter finds all "rg" operators in the content // stream and replaces them with "g" operators, thus mapping color to // grayscale. Note that it only applies to content streams, not // images, so this will not replace color images with grayscale // images. class ColorToGray: public QPDFObjectHandle::TokenFilter { public: virtual ~ColorToGray() { } virtual void handleToken(QPDFTokenizer::Token const&); virtual void handleEOF(); private: bool isNumeric(QPDFTokenizer::token_type_e); bool isIgnorable(QPDFTokenizer::token_type_e); double numericValue(QPDFTokenizer::Token const&); std::deque all_stack; std::deque stack; }; bool ColorToGray::isNumeric(QPDFTokenizer::token_type_e token_type) { return ((token_type == QPDFTokenizer::tt_integer) || (token_type == QPDFTokenizer::tt_real)); } bool ColorToGray::isIgnorable(QPDFTokenizer::token_type_e token_type) { return ((token_type == QPDFTokenizer::tt_space) || (token_type == QPDFTokenizer::tt_comment)); } double ColorToGray::numericValue(QPDFTokenizer::Token const& token) { return QPDFObjectHandle::parse(token.getValue()).getNumericValue(); } void ColorToGray::handleToken(QPDFTokenizer::Token const& token) { // Track the number of non-ignorable tokens we've seen. If we see // an "rg" following three numbers, convert it to a grayscale // value. Keep writing tokens to the output as we can. // There are several things to notice here. We keep two stacks: // one of "meaningful" tokens, and one of all tokens. This way we // can preserve whitespace or comments that we encounter in the // stream and there preserve layout. As we receive tokens, we keep // the last four meaningful tokens. If we see three numbers // followed by rg, we use the three numbers to calculate a gray // value that is perceptually similar to the color value and then // write the "g" operator to the output, discarding any spaces or // comments encountered embedded in the "rg" operator. // The stack and all_stack members are updated in such a way that // they always contain exactly the same non-ignorable tokens. The // stack member contains the tokens that would be left if you // removed all space and comment tokens from all_stack. // On each new token, flush out any space or comment tokens. Store // the incoming token. If we just got an rg preceded by the right // kinds of operands, replace the command. Flush any additional // accumulated tokens to keep the stack only four tokens deep. while ((! this->all_stack.empty()) && isIgnorable(this->all_stack.at(0).getType())) { writeToken(this->all_stack.at(0)); this->all_stack.pop_front(); } this->all_stack.push_back(token); QPDFTokenizer::token_type_e token_type = token.getType(); if (! isIgnorable(token_type)) { this->stack.push_back(token); if ((this->stack.size() == 4) && (token == QPDFTokenizer::Token(QPDFTokenizer::tt_word, "rg")) && (isNumeric(this->stack.at(0).getType())) && (isNumeric(this->stack.at(1).getType())) && (isNumeric(this->stack.at(2).getType()))) { double r = numericValue(this->stack.at(0)); double g = numericValue(this->stack.at(1)); double b = numericValue(this->stack.at(2)); double gray = ((0.3 * r) + (0.59 * b) + (0.11 * g)); if (gray > 1.0) { gray = 1.0; } if (gray < 0.0) { gray = 0.0; } write(QUtil::double_to_string(gray, 3)); write(" g"); this->stack.clear(); this->all_stack.clear(); } } if (this->stack.size() == 4) { writeToken(this->all_stack.at(0)); this->all_stack.pop_front(); this->stack.pop_front(); } } void ColorToGray::handleEOF() { // Flush out any remaining accumulated tokens. while (! this->all_stack.empty()) { writeToken(this->all_stack.at(0)); this->all_stack.pop_front(); } } int main(int argc, char* argv[]) { whoami = QUtil::getWhoami(argv[0]); // For libtool's sake.... if (strncmp(whoami, "lt-", 3) == 0) { whoami += 3; } if (argc != 3) { usage(); } char const* infilename = argv[1]; char const* outfilename = argv[2]; try { QPDF pdf; pdf.processFile(infilename); std::vector pages = pdf.getAllPages(); for (std::vector::iterator iter = pages.begin(); iter != pages.end(); ++iter) { // Attach two token filters to each page of this file. // When the file is written, or when the pages' contents // are retrieved in any other way, the filters will be // applied. See comments on the filters for additional // details. QPDFObjectHandle page = *iter; page.addContentTokenFilter(new StringReverser); page.addContentTokenFilter(new ColorToGray); } QPDFWriter w(pdf, outfilename); w.setStaticID(true); // for testing only w.write(); } catch (std::exception& e) { std::cerr << whoami << ": " << e.what() << std::endl; exit(2); } return 0; } qpdf-8.0.2/examples/qtest/0000755000064100006410000000000013247541377013524 5ustar ejbejbqpdf-8.0.2/examples/qtest/mod-info/0000755000064100006410000000000013247541377015234 5ustar ejbejbqpdf-8.0.2/examples/qtest/mod-info/usage.out0000644000064100006410000000035213247541377017071 0ustar ejbejbUsage: pdf-mod-info -in in_file [-out out_file] [-key key [-val val]?]+ Modifies/Adds/Removes PDF /Info entries in the in_file and stores the result in out_file Special mode: pdf-mod-info --dump file dumps all /Info entries to stdout qpdf-8.0.2/examples/qtest/mod-info/dump.out0000644000064100006410000000064113247541377016733 0ustar ejbejbAuthor: Yours Truly ContentTemperature: 100F CreationDate: D:20040212104653-05'00' Creator: Adobe Acrobat 6.0 FormerlyKnownAs: target/branch/leaf/leaf.pdf Keywords: 40, 128, public, encryption, ignition, primarily prime ModDate: D:20040212112832-05'00' Producer: Adobe Acrobat 6.0 Image Conversion Plug-in Subject: Of The Matter Title: My New Car Title VeryImportantNote: pordofor stands for portable document format qpdf-8.0.2/examples/qtest/mod-info/files/0000755000064100006410000000000013247541377016336 5ustar ejbejbqpdf-8.0.2/examples/qtest/mod-info/files/2.qdf0000644000064100006410000046257413247541377017215 0ustar ejbejb%PDF-1.5 % %QDF-1.0 1 0 obj << /Metadata 3 0 R /Pages 5 0 R /Type /Catalog >> endobj 2 0 obj << /CreationDate (12/12) /Creator (Writer) /ModDate (D:20041221113239-05'00') /Subject (Tammlin) >> endobj 3 0 obj << /Subtype /XML /Type /Metadata /Length 4 0 R >> stream endstream endobj %QDF: ignore_newline 4 0 obj 3154 endobj 5 0 obj << /Count 1 /Kids [ 6 0 R ] /Type /Pages >> endobj %% Page 1 6 0 obj << /Annots 7 0 R /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 10 0 R /Type /Page >> endobj 7 0 obj [ 11 0 R ] endobj %% Contents for page 1 8 0 obj << /Length 9 0 R >> stream 0 w q 0 -0.1 612.1 792.1 re W* n q 0 0 0 rg BT 90.1 615.3 Td /F1 80 Tf (abcd) Tj 151.2 0 Td (-) Tj 26.6 0 Td (efghjk-) Tj ET Q q 0 0 0 rg BT 90.1 504.8 Td /F1 80 Tf (mn) Tj 102.4 0 Td ( ) Tj 20 0 Td (o) Tj 40.1 0 Td (p) Tj 39.9 0 Td (-) Tj 26.8 0 Td (q) Tj ET Q q 0 0 0 rg BT 90.1 394.3 Td /F1 80 Tf (rs) Tj 58.7 0 Td (tu) Tj 62.1 0 Td (v) Tj 40.1 0 Td (w) Tj 57.8 0 Td ( ) Tj 20.1 0 Td (xyz) Tj ET Q Q endstream endobj %QDF: ignore_newline 9 0 obj 403 endobj 10 0 obj << /Font 12 0 R /ProcSet [ /PDF ] >> endobj 11 0 obj << /APEX:Id (353) /APEX:Label (1) /APEX:LabelAp 13 0 R /F 4 /Rect [ 63.461945 339.112457 525.003418 700.653259 ] /Subtype /APEX:Zone /Type /Annot >> endobj 12 0 obj << /F1 15 0 R >> endobj 13 0 obj << /BBox [ 0.0 0.0 9.199997 12.399994 ] /FormType 1 /Resources << /Font 16 0 R /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 14 0 R >> stream 0 0 1 rg 0 0 9.2 12.4 re f BT 1 g /LABELFONT 12 Tf 1 2.32 TD (1)Tj ET endstream endobj 14 0 obj 70 endobj 15 0 obj << /BaseFont /NimbusRomanNo9L-Regu /FirstChar 0 /FontDescriptor 17 0 R /LastChar 255 /Subtype /Type1 /ToUnicode 18 0 R /Type /Font /Widths [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 333 408 500 500 833 778 333 333 333 500 564 250 333 250 278 500 500 500 500 500 500 500 500 500 500 278 278 564 564 564 444 921 722 662 667 718 611 556 722 715 329 389 700 611 883 722 722 552 722 662 556 611 722 722 944 722 722 611 333 278 333 469 500 333 444 500 444 500 444 333 500 500 278 278 500 278 778 500 500 500 500 344 389 278 500 500 722 500 500 444 480 200 480 541 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333 500 500 167 500 500 500 500 180 444 500 333 333 556 556 0 500 500 500 250 0 453 350 333 444 444 500 1000 1000 0 444 0 333 333 333 333 333 333 333 333 0 333 333 0 333 333 333 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 889 0 276 0 0 0 0 611 722 889 310 0 0 0 0 0 667 0 0 0 278 0 0 278 500 722 500 0 0 0 0 ] >> endobj 16 0 obj << /LABELFONT 20 0 R >> endobj 17 0 obj << /Ascent 1098 /CapHeight 1098 /Descent -281 /Flags 4 /FontBBox [ -168 -281 1030 1098 ] /FontFile 21 0 R /FontName /NimbusRomanNo9L-Regu /ItalicAngle 0 /StemV 80 /Type /FontDescriptor >> endobj 18 0 obj << /Length 19 0 R >> stream /CIDInit /ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> def /CMapName /Adobe-Identity-UCS def /CMapType 2 def 1 begincodespacerange <00> endcodespacerange 100 beginbfchar <20> <00A0> <21> <0021> <22> <0022> <23> <0023> <24> <0024> <25> <0025> <26> <0026> <27> <2019> <28> <0028> <29> <0029> <2A> <002A> <2B> <002B> <2C> <002C> <2D> <00AD> <2E> <002E> <2F> <002F> <30> <0030> <31> <0031> <32> <0032> <33> <0033> <34> <0034> <35> <0035> <36> <0036> <37> <0037> <38> <0038> <39> <0039> <3A> <003A> <3B> <003B> <3C> <003C> <3D> <003D> <3E> <003E> <3F> <003F> <40> <0040> <41> <0041> <42> <0042> <43> <0043> <44> <0044> <45> <0045> <46> <0046> <47> <0047> <48> <0048> <49> <0049> <4A> <004A> <4B> <004B> <4C> <004C> <4D> <004D> <4E> <004E> <4F> <004F> <50> <0050> <51> <0051> <52> <0052> <53> <0053> <54> <0054> <55> <0055> <56> <0056> <57> <0057> <58> <0058> <59> <0059> <5A> <005A> <5B> <005B> <5C> <005C> <5D> <005D> <5E> <005E> <5F> <005F> <60> <2018> <61> <0061> <62> <0062> <63> <0063> <64> <0064> <65> <0065> <66> <0066> <67> <0067> <68> <0068> <69> <0069> <6A> <006A> <6B> <006B> <6C> <006C> <6D> <006D> <6E> <006E> <6F> <006F> <70> <0070> <71> <0071> <72> <0072> <73> <0073> <74> <0074> <75> <0075> <76> <0076> <77> <0077> <78> <0078> <79> <0079> <7A> <007A> <7B> <007B> <7C> <007C> <7D> <007D> <7E> <007E> <00A1> <00A2> <00A3> <2215> <00A5> endbfchar 49 beginbfchar <0192> <00A7> <00A4> <0027> <201C> <00AB> <2039> <203A> <2013> <2020> <2021> <2219> <00B6> <2022> <201A> <201E> <201D> <00BB> <2026> <2030> <00BF> <0060> <00B4> <02C6> <02DC> <02C9> <02D8> <02D9> <00A8> <02DA> <00B8> <02DD> <02DB> <02C7> <2014> <00C6> <00AA> <0141> <00D8> <0152> <00BA> <00E6> <0131> <0142> <00F8> <0153> <00DF> endbfchar endcmap CMapName currentdict /CMap defineresource pop end end endstream endobj 19 0 obj 2311 endobj 20 0 obj << /BaseFont /Courier-Oblique /Subtype /Type1 /Type /Font >> endobj 21 0 obj << /Length1 1346 /Length2 145230 /Length3 0 /Length 22 0 R >> stream %!PS-AdobeFont-1.0: NimbusRomanNo9L-Regu 1.06 %%Title: NimbusRomanNo9L-Regu %%CreationDate: Thu Aug 5 23:43:46 2004 %%Creator: frob %%DocumentSuppliedResources: font NimbusRomanNo9L-Regu % Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development; Cyri % Generated by FontForge 20040703 (http://fontforge.sf.net/) %%EndComments FontDirectory/NimbusRomanNo9L-Regu known{/NimbusRomanNo9L-Regu findfont dup/UniqueID known{dup /UniqueID get 4162059 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 11 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0 ]readonly def /FontName /NimbusRomanNo9L-Regu def /FontBBox {-168 -281 1031 1098 }readonly def /UniqueID 4162059 def /PaintType 0 def /FontInfo 10 dict dup begin /version (1.06) readonly def /Notice (Copyright \050URW\051++,Copyright 1999 by \050URW\051++ Design & Development; Cyrillic glyphs added by Valek Filippov \050C\051 2001; Numero, infinity and Omega made by Dmitry 40in \050C\051 2001) readonly def /FullName (Nimbus Roman No9 L Regular) readonly def /FamilyName (Nimbus Roman No9 L) readonly def /Weight (Regular) readonly def /FSType 0 def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /Encoding StandardEncoding def currentdict end currentfile eexec o4>ì`0BCT&5. Svik kA 7F`$yJU4NL^ Vٍ.+Yҁ4۳\sm'vͽ=@R3GIJzvN1͌dհf~ e:^/:0(}l^?2-*Йu3K65g*ߠJ(]EpBp{ڏ#b(m)ȩ̺48Ń/]=MNEgE.+ b(ppp9nLtD3(WӕěG?5a^on7S^cͶ[Gc-ky,guuy6:̔S$eTOˑŠ@0;7FZqS`ru,!B>̄7c"\#"y8K5FyBĠv]t]%whʟd/mKk.HWI vd߀4>!n&}%ѫ;wCHBbp6BJFbG^f@^ut[7Ĕ5N?>f@€ Q֑# ؑ5 I#"Lb:Ṭ*f}tgxyWGxVVF0ɘvǦ>; 4wǁsOEhiE/17񥱲YY$d5x:8/); D%آ(צSsb wb!GP7:8<󖯇PԬT{Γ|<2&Rޑ`?l0T%uN~ - PѼ+IEsP7f&8ؽO]՞V}_2R5:8`ĺ1I^8 RsL8n$4Wf=p.z|Ur~H&nT<EɓomW􉠌2U_я>:Yo;-kGp#dݢ0eEv0F!N]친)Ā88zKG7up$|kS5vβR*İ?pIѼTM6%ט̛ :Q5*Ҹ$HGJ`1Wcm]E^CH\?"b7Zzu$+LqJ9vu :! !ca̧gb#~jq&2Ѻ+>4!b$3-Fl'{y皟S#\sM|X9;wQǡ i>фznPz1aS`-W̉ fTo0~gX~Fd(*I][;@MR1BsZ  hc`S^3|ud'Q$܄4gx ҆xO'O4I33:ẒdݽJ^Kd $*-[Pp7.k&%w$RݥȤ'7N9jzd9'Y)g)#QÊ@_5`O)BVr Yoi޾blĠF:<9}z.gS@cr:p-莭JkB#TbWrb0h;V9;8U]=-pW8{[LKaG@;&5F$ mZ\Zp40e ' f(#)B: YвA]rۛNU 7 n J;;ĥ# _B>.y o͠퇜 ͕.BQu[۹5GqUrה}lw`r`3dq&xwT lRY+RfÄ}H$4pm1:ӗMg",{41"8r0t+&7o"#vcxa˰41kN#sLBXi݄qG`ք-(ɓC9uIN; ODFk~SydL&GVɈNT@*PzY!F]@{V'% sx6k/rU smÔ`6pr:i"!yҖwFT|`_<TEں< d߰C;:Bj9rTV\/=!.z 8"cɻ-(^!˞*e8 *^'+>Zo1ET/ڝNx ]bWPJ b 0 `/9CԷy{|O${9AȣՑ*7(aFBQܥՖHM O~\EfqѷooL9 XQC0S/lAӇ\*7^IQlYFG:E|VTG78{ 30"7"g V3T/\ddADVޠTɴK;֪/r-ʈ ;:6T $6}dϊO/1,GF Uqf0Y9\dUIg=_>HjL6PėCc4}+7Læ +ʂ>@]R6 efaimɜ:_6.GZ79Afޏ؍w?C! 04,Ri+$ MIA,p˼~V]-<5(rUoghTxmd:u\equeҴQ$` G5y`t)q#Mr}zxd>gPsh 1ϠrA D AFƳHt^ j&:mVOoȪ)7ɗQSFV=#?m #!x~ flm@XyuXN`yܽkgG9ڑ uS1#X \.~~Ao~9uZ?K6:v?/yR۩}t *Teo-"2?;r}& oţ6r8B^u-g>x`JAzsiyn:;q!U~~rbdATUlŹUt_'@pom |6fW6$Q"A3 ڻ_Ej[U ~ydbѻ{Lvv'2Xf҂nS_~go37{|I[uL0nc$Z0Z9$Ashao["Hl[$Uğ0\p=b )h|izN 4n`n;6(TaUUl+KdjJ3(I=b>.yE:BV;sXƢ4D7<[d!YlgZ\Nqslsjm87oizJDnhk̩^yE+`Ǚ.Q5 $QTրj #po]L]W23f\"W/ullO)+ԛkwC>ߪlq jpnQ3\A)\ͫ@_l;W,+ִXPj{*)Ԍ& ND0~BU>ħvK)QD%h4 /9*7zl =t&[MV P([E+&kΞ A*>@rOg.|s.TzEgxdm?bAW?ݿLQwlhK$sB#_1[`/,M˖S+ҷHuN;ى7J( IVVhCvrz*'էDk1;ɮ+"@n>Qa=~_ngέq9*sP}r~gݳu}v6k[(RB͟?:lIPt(8 .miU.kNf0!<#5ҞUj-^Fu_ډ1 W~#N Pz AYkMd-rOM:G$O>4M'K*ֹ_/4E{D`q*mUP]Æ%A2.pY)%|vR3@jd]1o]r8~M)M5gvf R^-0t^يA^%?ãj!~q=76#Ш[Lʂ@݀ a13C26֍ O?oW?'qBqemawe@Ԇ D}MQ80\f3R(|L{KrFp`T&(J/k )NԈVXwTa҉ fyJix I/%nt_2kT/^Jr6Tcwɩ@t?y^EHooB,XԨNv)+(]bU!88*AGΟ;P .<_cLvhgʧa&=] j湍oi.R#6!0 n{@WAj֢=H\hp;aỻ3`v_ڎR11V1I <#zHCAHG'uZ< SE͐=\)dU2 ܨ䔜7 (dL ki&VU8`Pg*QAFڦ]yg)iji)n!ahzb3,3=? MRV*6ߚb6h'ƥ$7x wD #hVD1#OՁ *Z\<ʨ6% D)ª^hX){tFNiPM-\|1Q]n3Gpt}`-!*u٫{/&xQyr{TWG^P *,g̒tBUeցCoڹc!1FlF,ݒovR>2)HЭlKrvX𳧅FmvR*o B{{&':!r :_Dzj9.MF܎+3TμڿF*gލm:nf]Of '\pMydK{Rp1ڍ::q8K dy6YmWVjG]#C?FZfdE9UX';3 +p{]bZ)31ߠa F?`Jɹu]-S|k|$i zUo[TkJq71rg+Kt"@ه2A39 8` qO](ڃW[S} n27UwN).$yw$sk)u~w/aMi]af9HI2 VkY&VX@6U*f#OuX?KQhϻ¿p 4\Щzg Pz7rsl"#KQ{.!/q6d*ћA1y5b'׉eOEf@2͋ u;FS迡=>fH]Q+[|b=ˬ|U#גbl&P@SKЙu[%#ˀ;ՆQ5*M U;.^=rǹBȗn g$lO :KZ#—w}ߥ8B>J۱ț/cQPkro1Y΃Ԩ_!p5^%4*-)v-E˾TVRM ̋@NuGvS= q5]AY\a1Y:Tn\#PI=YqPx\.ߔVgEN)م?4*<4um[5`sybwH Ӱrx%Am9_~HoaT!NA%ѹ4! >EkUqZXd鼐,{SDѼ^`O7w(C2B}M1<O7db*ZU8`܋~EP0N~@p 򵈻ó V /寿H?VfYC? B]W1 j, o.5UsjmlQb CTkyu3l-/nvL@ K΄mQ8DZdڹks(R`_xݣ%K0/FA?7@IfZ }@S\@SZQ΄MF=;-/s4d_9v^@s%g%Z$0`ǚWCk8w /Un J]#Jδښ[8CTKrT0qWɞI,e)Ct\u8gaTBtXh (*,PK]c7mL!zz<+A9>um ҔӅ-hrnMgJ9hY r@YἜ>f vlhT_#,%|lxATlqXmβz|j}oƝCv6[c$J"a}ٝtU^٧EX 6w}emB%,nQTԹLA#p}7 !D/1`TIin'2\*{; ޷փBx@9S/.KůDjZjءι&^1Lzh-6eARw0)fRqd7>t(I&c̪)(k !Z֙q[c׹XA%)]1x;TRa^q${R̰إH#O1d9))OV ]Z*$z@dW#&*8F}Y7OUGm A"KD%(A,usŌUiz^9|kIJNM"V&i"@Df B5SO;#_ &W{1k.QpqUv{]E0ek=u儕Nʂ nP} ev2FG$;?S$M۬<Gk bz9?.q-_{^Fa)^gLM4d]2;P- JՈI՞z z+7Fd#Bi^A 0L6O5 jaXo(-c{7UYWLuꤩtumBtTȍn1WcR\-|?15zmyO~kZzt W&tø$Fn׸mԍ1ШlS{d۸UY MIҘޔA;>g7*]{ 9F&tYu+I+¸}@D_7n.Zޜ _;L} ^| 09EZ#h}bm05*\1⌥@ּVkZ`6C1sw~*pލ%{t Vu;wP>-_CW4(.kU4!m>ovI}a#c2t`?ԇEt%_o:nRYAɾr@&̌$a:{A&*y }NBQS=qU[snc%&8L0u0ׯjWުtݝŒ~< DEŀ5ﻰ0@ΐ%C#f*)p` pL +J"rp?yvypc_{|%f uZUD0 O1L0 ۴  4OMM)}P_۫c;j>x{+u D䩦3hԞsaXo2R#0 >1<4QfF|IN$i.@ )B4b^\;. wFT5cY6D |+⩝ۓKݯU3iظH\L7 #eT?jj5Rvv lAlzl!ӖW/.h+,МTSD'0EIcϳL5;[%NiیEj9]0'L({<ج]+mV/gJ,zuIt^\:0N,T %`8bCG͗*(lA7y- `m=) &īcDsȣӀԍ ׇ}]oQ^J4P r1t amjEd\FHjt!v%Y=pȃ`-a< y;_NF`6هFG1}Yv=CAUp61gtvL:昃6/75u'\ax/@[ti?>ZaG. OŃ.,ɂQUH>-6$sv.V>xRGTh:Re!?x!L#ſ<YCM`넨tm@kѝ~ Jm+ G *2 YvӋ+^.r53(N'x뙨 #w,4N'_#>>*, PM0%Ee}G\]͛4IXo3!K|$ڧ RX6ǻ03@skOHVB#Za9A841~Z^gA3o)é +ewf)+R );  ޏ]qZo 4wPD8QrqۏEmSTgH0U\-Ďz0El _A-CD*II }y̖V5|x=8*$I ,^m;Oy'I,3o`%ưr ЕMTiEN] GMԍx*  j+zʵÑ]BWw!9aELqԽti+7H 7.Baap\ZZdC6Zfz+PCwgо1cE LamZw8!DG(ad=pRQ&V:֠Wdǜ)yL^є%]Vfڽ QOgw<0 , M\+TE:.bю2}z*&[BCatj3L[Tm>g a6Tw@H*cz,vdl0!Ѵ􊄡c,CX}x)C*Ґgv2n(h 8zXU4r+tf>#.f2Tuݻ C2rol+0U  ghw5Z+ L-`3*wg(ܩѣUc g > AѴi4Unm1q,y5b) v]?(fgT O?1G"Ic2N{M@4n<!M[}`s 31& ^G]ua<*vNtTsC";0),7}#PH*%)2$)޼ū:*98yXh1Cr%ݫ̳O3,[tʉFeDzn [wŢ,ڰyQ)G^ܔݧ`ǴuZ}=8Uif5SSe6XAޡZTZu\+pILSm^Z]$̿ m==N ͧ,մ*JJ0H[)P_ZhugҊ癔çq<&˨ܴacA1Rm(v;0 (fa RIMw[~YPQlUB`5"]縵9m9"1^$e,gQs} MH !>PS>ΚىIһ= fېX;=߸o4 cgŘ07nės޵HS4́Qovݞv! S׺طof2`l ~Nڣ@jXkNgA1%7v͜6~ZXay*'KAfFL",hamzHz%iX>I}.;ф2K%-爠f/d_`ۘ~wDU06T<GNR'B:2o2T`:,}u|'a]W$hڧt5W2ȀJ L9P}4+se'ZBSMm[l@$=bb̾T5?6#5I"8bKܲxQ+|.iahwm?sZ}Ҷ @ C$dYTT:ȸ(GT)|7z5m ނKt4:,El|lFwb++暭[+WgnHe+#t=X-/}7JM7b'!"c Qq`p|ts;px! }@x,s3KuɶhhI;3kkF,4"p@5†S?L[xbxU[x o{aM0˟[D,:voJ <ضbY 0 ijP,iU'8eb7^(AT}n19oN!f)pK\Iyg{ԓBU#09L'&WgF$ӡJ8@w42 $pҚykjN0o7~3;p.'⏠s s+#N|zQ̀'9^p.}zJR LyOňӆt}. kzAe;r^@Gg}QuTfy &xfǹ ?I˜sR5$ ss(?ޞ N HهAaoRMFsv1^cèB#!>= U@~e?Q[/fQM/٠G\l}!U_Hk)+4$AZn%([/ ގK2:\C!h79혰5əsWQҭOLl0WjP]_z:r7MB+Ē$ t|M8,ɎC}V qxlz~چX4SO 6W2s9#)>i|VPIFKĖ쎢x< b}F<άmß¼jH>v"~v?:S5eusFie/_NC3~+wKZ諊sb>HCԼ$B0*:dxd *ŅQ̗fK0(mr'UnUmz`D ɍ@$6Hlfk zq#3WDmTnPp>_ʿ#sg(NsWj՚x71Ov4'&Cۓ$97J4.utel,<K]Ylo8+w[^#G~E:viŗvҜCzǺWPF#LA~Ya{:G0rffRXly!}3\,[ziқ+"32~] d 'C ǢkIvoLitEǟeIl|>bSpBa*"Aтc @# N 4n4ڈT-ϑ<774=W.+P+7cM :պ^K>5n}k{J9|tWW{mor%,|"s| oIs\,@'b,G47 K'?#{>4RyWO GU3zF[|u,f+/V% * Wٳ_\kC~,3{1AQ_5eΠY`^=Nxƹ4L6g3K2V8@@G8Wћڣ#=#3`zAeMv`8P%[rNv$)$9"aţ)se^Խ2xRA{p%LJe= qqjMtw>[*{!D\c+iRG:_ p#Wp "( ,ĸoo:kּeyo ūI] 22(Uq/K r>g 36N9ϖmqr"*KڡKTvҳM |K{~B$CUUv)k. u!z7\L8)]:L, ޶2e!"dBI p <^BMBϣEr߆7 B)$KL ^\.gJ?|EG)뙳@j~Js^ ~~DӘD2~vȳ" a)Xݴ fSSY{(޼nt5 auNb̀_֘!Cn#}, Gú=30 !yX,ooWC"׬ΊAXAz|ln\p5V=iXjI!46fM 8?MHl vEĄ9K )d;u ^n9._SI~*>2p0q# ܎99P8^; JiR)=h@H B pn{џnQDEVU)+)F-._j@ ZsAo., 5=Dg&RJ3B?؛T"^vƗV^y[ГP߂},G^܃3Da7OXʡMa}j_s%e CWa˖,N.6 #!0ުbk9GSƬ|(Yu3smcy#b%TKX L J J RU+&j !gđT[jcŽа[nVAkG\+Mrf|Ͼ|:,8V8@gu%mI2E&ٶsWkACޢ[FF ByM`vʮ.C'B\Dqdc}0k_#x9S'({dn1}~(B g\dk4EU}|ƔIz*1xhkD2{&#ך3pAc(0$iű {s,+C_Ґ%gzozܲ@'\^M[jq/_7{ub^I .VsXv~]vz Wq>:ZocE째6^ƆB<Ӡ"E>70mՏ,0+]Rn{IEu#D Nh6_j 7L=K)YhΧ2jFmt#?&xR,5x͌hHRq%z>b.3;F> g#eL|Qi~9g3q6X}fk*w]K.7s}Cu}Ecuu9H'êğ: /,%Vk.,lH[ pC909h;-;13r$U& ";tٛΛzg<઼rmKx`EMo4O{ٞyM4=t:k' DhuJƤ w&+# 9 s+yt$ vmq8If W'Jۙ]3a)W? mHvʱmcwRe…/wP3sM TÜ#+uk:KԨ ȩt) &NkG M$EWwlCM9yۮFKRN)!F;iд jNJ:#=RE%+ڝ̛(uϔ@;#xcIҦG~~l~ V{0oLˤXҌgNĖNRmӱ16b!#\iĻin$)b 뺯72iw"Fn#)ԱAt }۫!If[=wzTl#hQTP[g]Z-]Z5r)?;[6+ J mf$ڱ- YhԪc8 y$ؼ6{o\GGL(56 )-JzL$ZQ_Pu"P>Yc\2O4--5؛XGgd7Ms%ˮIv%|MDȢf$-8a^s?d9ˇD%A v9Ee<̱Q7n^HJN uJjL%uNyzN c42dhΚ'ۂn]Y0iR4:@hBLrXBuCN3'ɕG 3U?>tV#EEvn'V0R!<Ζs,_9ޒOy1faUpMIJ/s<_(&&; !@(긕FUX&HYrD!=(]Z썶BwJW; בbPzjcMpsV}82ofJJ|Q]}\4_Q|-#-[SvCIsOf2-cmUI/ &`*p~$,GX- wD %;"^ȺMh@8p(2\r೷Q)z{*dicoF ;}]̀y.Quzq6=BtV94جKsAUvEɴjNlXK$.LUV wVQɅkx=ējMa{ eA:{yeDŨ賀鸰N;O6OOrM=C]aOvE߭U'bԭ^љFI@&1/qAhFaQ@mSu͹^7QAc3T 1d)*Kj+=aG%7f 0Bn'dsIzԋN`kC&G@1@ ;/)4k]*X(Bx|[apI1Wd- a p3ꅡ&ܸiW&&_&/&itVCcIt[ְnJa؈MO&3Tj-٢ "7[11A_Ksvh@o ,˅9vu܉FǴbBq q\x+whQY|QF k^.w}U֌q:Sb4Q.݅VoF}cq`3Lcz ~95.:aW4/ N=-\/L>ؕCww0DбuJ"sۅ:M3IP.$K3f4ʱnmf\,!9o-!DO"u }iYq˾QWn.CR/GN}norf}֪mm;y4— r}mM>SiK".Qw'#%\3BEemㄕ˸W]Oe~Uz lYOpКziv.Icbw[SIs ҿaӄzU,{Aޗ>9~'(!kuUnl'!$y2kmMlY}@e,MnUM-:e8 >X B Y}P ɓK t~rY|OVnHc!7h-$#HVVZdǪߓ0q@W#d/9P6~i9\ )>UlaӴ?Ott+v{\y3rHДUhMIx ( ÒCmP)~,{  ,AK#K¡}A z#l Q#%nD{¯>}Z޾c'7o$W4hQ Tmš7D}_hA9Ue3Uj(q˚d 8`\Nn!yuܶk[1\6l_6¼\Ҹ,[.:#kź2hJ)7Ԝr4?VW./؆2vI>s{.KݸINva%$Cῢmyf$ C Ò\%.7j~؟,"-ԁX#AԽ^'-XAX_k?) Y\׏?ϔG ՔBx%o_`.v{E"j೓eFAP4K&Ƽ\s4M~-RP`LSɃ:\-])c-KgB;Y ?\u(~U_gZNj1ǃV:{vsShZg$0W?yqadt[$ ^~ U ^, Űp}]8xP "뭺% ^%ͭw*tp3ڝЈ'20xJʯseǥ, \IBa#¹i+R NH<`:󄲌Y{;d{zSʬ4m^40a*tn1S@`ƥGq޵8--ҚY&Tt&(k\6 Z~B6i_}1L" E-KUmcϟ,lbvw48Q Kb@!{E@<;+bUr[4"S`:v-bɧl2 51Duo#,yR T1w\rcwH &۹V=s wS^!0f 3!c|k]BHV|g)UjÏMT%#A}f益&^6kkoW{8yRefťg8!c]*F3jјrcY7ʈ%A%wfҵң 5Y0JFFqK|Ox@@US29 B2?[TMoZ<),`lQ2Ej9>wKH*<.*w޹YGu>lSg[= T'ֲ/ؽ6{4~CZS339MfoUҥ|) @/يx Y-&t35Vx]u؋ 2A<m)#;!pjT;"4vFdEwWIb8D)ڃHnV ]qJ%t 0G!m2U!@RTȞ!l3[AE>D @]O2!WI;Vt; '((ۤBɼ'*!g$ÅsQi%u۟9H: a>|ci-6ܒGrlْk]irAOg C^fwWoKG8r=a/cеWꩦ\GyD"L WEEtU8z_1子NNT:Gx_#< PȷK3ùF  /H@=_v< JXnyytEŠUj1n2{N+Q̙!e:3p.L1wE 6TV88e(,p[. ]硳uɇg]r$2mض -/a"]O?T4N=s$]@rd9!ks41cTݬzG&IԒNiچ)"} "X$L2B#1SiΖ֝B*~␫Qh1Yy3́?D xo8^>n3Tμ#.}RP6ZdQ$}YF@dXr#˧y ԑ"ҲI _"sxIC+Xw!jJM m,K>s3U:c UQJ1]$tB D;],G's2vAԊDW3sS0~]\|Pm=T|[,pJz3A@5Ki t@:QWc|(JC嗦ÀNv6VE=Gב8oټ=Y%'?ba?If"3CCnM)!2r1?bqR [][HrhCK֒‚|;R > .w5sj'Ǫ+Bh/b),o{,pJ.pD~PȂ~xAfobȎyuY֞FC=ٙz  y;V7D> \7P k F<(ܴaO*ޙ삐STF,Ģ[)Ro9U4:hг"_Zٵչ،}>JX&=ytuBzyvӄY0&[jjIOɨK;`bBM¯; \U3W7AbΙs8y}A{K oUZu-e<=W7_SEI db1QE,skM2"xIK}JG{A-+aWapAσrk,)nBj p8jChЄ`_f04.ZAg/,y r*.${`0(.ۤ$*FAw%^SD3sPx Ȑ-̺)|ПzS!at&CsEfOTلBOxtcH޲k7='|iSծT.LMV'AZ~bg ^qGНϿIK[琇$makc)/)7aϥlNuKMV6l xYxܬ 127,_SkVF NW( Tۑሪ;s̏96~kZzt[os8buv5XH+4֌ KxlyJW Qд-27=fd9o'cbڧWxuk\fIOtGK?SE%א p:Jua'=Q3K@{b_ ,vEJ-:JybuED_|ԢSu4B<_wL!/<{'}b[s eo+}D$_7@NŇf(#X kQ>V\~wx# 9u\ȪfFL*%:$[hՌ%n-eY\a.R}N}/\f;o1beBs:O`t8\'{u; `?Ո㉯i_דNEVù:8՟A`iɻM/ۏ" .q_So.{ ҁ:h.E7[ ^uCS̑U9=1w:)F[cb?._23;;poLÆv̋ϰR^ zZ=i S.gO\/H; n, zQy^nՃ)E-1V$ [?A"~USKZ rB!)%|P0ڈuMKӐoKA*K\uwZzCFwg3(25Mm4|Sʒ|+JjSO(&aOuYç%ZM(ZrDvHJ޴m"\ !BR3y!Z+s":y&<=.P4Bڽeq-MO( $C.`|Tij<"xnKc Ԏ.zJjU.EwA6}y!1gvu'@#' Ⱦtj)']I8J|oU._4Օ|R4dkdvhAGDTtX*7a9,%8>V;:l4f-/'\LHl{u1G.'J$=k =D_X^SۢIȖV鲏И#Z{5@5UgkEIHoqrd)Lta}Du_܇Ȼ|PŅ͙{5A} ?ECt$ 4}8mO3[LSMUSbgzڕ9 V ףy<135>Nn߻ Rόu\ӶާqACt6rE:w*|LcE>=ᦂ|(Ĉi P+l$ػc3Ne ոZ[qSp3c:Ch[{B&OkSE__,Ww f&ޱ͒Š_Z`sE{HۇT,&: S!l2 Lt䚟C_.ͮ7^nZ# Yk7Ȱ=RDbfk*|2Y0 C ña"3e4I.SHQj!z csgEat]FR f,:vkT!CV)z ߴI`8)MY_Im*R|m|PS8W5g A YŻ9ԺOf]OtFUZО|94$[cJ̡Ytmې%NJG0a7Ch@Hk~ >QfJm`b\ױ9ɗ9 &C1Ίҗ@iE}3B XZ: Q.3VQ[p7+Vi!-vf/Yf"n>ДZ*FWWGuEO+{_UI Ah_H0@@5y_\ɪpbJ8U0`Lk^W^zE4ijfH@x/D0%3ůX} :QI޵eHXg,00uomz7Ju᥮twQ$8MBK+ TpCZs8yyb7*nrRץ]}e~Q4zP1:tyK=~-\S˗#u [V>N0LX&dI:q>uxok= z◎vDCߨS@]J'] {EP Y=m;w:(H5 _ETEQc5HG8UAޞ czN'}?x91`sܳߵER y62"#ȹRѲ#:#* rT> d̝C\ƍ۴@WUf_d1οZ [s퐅@Ʒ ^!O1uºZZ^@bk e728v]5X40r¾myNJ:儯!@뀋0]%*3p|ASfg`6|H (eWɳ$6>jY$a2XPf/H(P0ISvF777nf'.d+,YǒIb2շɠCya]8| ]"Mm̴{k8R5Wŗ3i}qh5#xb&Gf];Dt^@+^H+&H_tl2|| WYvET {B{>iG?M96n8N}Sט-P@-j4,HwKvU19zcGIN  S4= cB⬴Ũr-y*j~}}ހ]iG jyu~ \l [iչy& J.=uتY6M2 0iU1&@Y&O30% ޶ )I& P@APjӊfȉW<{y^;u*c`1Y/c݋/ c.\}UU)(O.\Wȵ$FI<āOv1f>mTUr4uSe)֧Ǝ ,+A[6:_;@ chLvtSɛTBm;|Y"u9IS"2Shԣ *%``Ф6+ [k{NϢހI1u99,> %&nb" H=֨G4TP*F5r+8cԱHY5,z(t:fKVQA|(Ϳ0󀅉͂4wi!@cRޑ3>);V):'B =4B X!,<ً/ࠐ᷹KֿD! 6Fe)k̏Eo^ͽc`IMbEԽ}Kh[nS跴/k}Jv^BY8%SJzRceJ̦ϠbdBS@< wڻp2Avxl be4K /M*Έ!?Odbfe$*5Ki4h! _gqo~nXZ>+v[*.u!!2G C{ DW(E'1~!nN7Zqn@X^DNޓWԘCR 2|QNf!E}$cv8bUr ms1L_o= ^~NuMa~^i*d=[mOp@z 6Aʱfء2XcR9U޷yL x&W;_fC&-[7b@?iA1rO%Cs0ɥ1HN$pg) sI`= ~1Іɘ&fŝ߬:¹j™F(04?pJZbm vK| _ё_艽<1_-xQNx06Z\ yX&51iFӸ js:x-41tw\ŭoPoCn'kt`Zmr->6lh+*l1t r(J}wh|74ګsBo@j9?9w?D9.[N2k-}{yu];R7SpuXobU%db<[ < zdCo^cu |zGVWpfi}sԩ$g]^@%4c~\?Tp+M:h{Sړ[0+68hn$y%9 wɂz;vRvS5.*K:T 1+냮K_vkΕ⩴ ZJXp5 s&#$0d"<>-U=[|@d ~EPzp1Q,ZT?ŸfN0QmfG#`{߁Gy $֥c Dgs$HX,bWؐ5nj̔!`~?$1UpTxJƋ}G}$rG<.'Иr(GMЮBTԾ'_OU'˖,(.\"DJ(ISVqB? /1f__!$$ ru1&&  rs:R Tl|78e) ,az3P:ߟjX1X98r|y 2%YZ=a{z#:"a7p>ר1rj_6Syp#Xp)RWaD€ҁ2<հ[^*SOI9ZPX g*?J֋LCp;8g`$LRrT)P% :ED-+@l%JdZ1JM8p#Bfi@6OLG* )HĻij9 ҒG0 K 8ew:<VQJ&ubc!c9;'(0~y,vQ]/-9$s'*й(Dԫ<(:+/R0Kjc FcDn܏hW0AAъHf3 <|.|r f2O_G0rOk811'=fيA(V[SY'o>K_,x[֢AfdQTKTydTP2k/u*ef7wxh|pRąuştJpHE)r\7'$H6\Eϻ7q"m}+S , VMHAuשdڇJcQE]ea_Lg*tJ=ZXdy&SYSvg]KcUBEcw̔/2Hh0''jRfù&Xwɸ(zėǖ/+?[{ɸmsz?RYth y.s81i\_ X&459>njfЕYx^XBc41ˬ{%( |N1*LŪW(|Mǐd-&m8z`zUug[$\{'Y=eZOP< GIF{a a[P+mDo^ yIH Ót.1)f?6$Ǻ48F@b=G2;b^͕c*Tm gl1k+-bh)Z,֭t2IM_ s+^ڋ}ebQ Hsb_cwBWDM]z\NNүal K*}>S$Z (n Q觯dHW2FUd29ŒL1"Lj-`b 逖'<⟼dzq,3$gEHw#@c.h'cI}Auմu^N2#(Rc=HWBSy4׫R0/ӝ(&ѯY)װ,. |}q5a#Մ3~(< IIiڀ< à0 g*-N]S( XF̒ݰ6a5 -=QX,b%_.UVC'GonBn>+~a..d9D{UlyuDQW%\w?Sp)Y~($?b!E(H wGβ0/}Z4*KMc`a]]㰦ߛvOh$% RpC<ռ{9#d^j|ߵ ϊq#>z9gIGF+9SE;}U=<?\1-DiFC\ tIq{ (bE_QR~ v3X3^I>5bilxH>1E~ EO` ȫ0P%w|wq=c;5e)}_KeJG"z^ svB wsu99T2Кޅ{=u.r}cM+=2NϢ4Rx3-ؤs4z9fܘy#KLSa =@In"; VJ Cd+ؕE-H].M,Ty=ڼ^w$>(LR+jdJNd3Nct; Dx¨?,^G_ؗIi.4}D?uf78Im¤DL2m\xM֠p_jNb+HzTm Ɵ/BPs7&VtxV` `\8bpzk?]% "pV8c׋ְ͌%B_:wxxrRÓCp)SX~ % 'rcߣLe,=OKdWNr+x#@XȟރeZ OujНfov+pe[[t%^BS$.ў3Q>I @ბQ)MOǔZ xlL#!e_eR;fC #AQ߿P3~<;tnADQaP X֚!=E F;ˊ=[VGͮK}3yO4žt\BgxβH|.E 4pPf.}3>V~+?5Y&qN3<ǒC7[$8(jd{iΥ`UZxHi1/} MwIԽ cQFp՗&ֹ8nd kJ|Cn"UYf5.x}B`ln3p_Q.Iސzɀg_ϝd}IXI(kJ>әڏLϡU B4[I: ^}@ܺX'd:*$$2A0ȟt"CUX5;~'AٲhNn'UWhTྷ'S{U77$^dK)a!v4ŒZ.Fi)b1 Yu+֦w!'e`iRu.4FxMix)}@9_)i=NqnpPLc.jw"o1@d!x)`#者́ fD4~nr9UyV zѠ'>!ߨҶG?˷]cуۄz9y'ӹn9,ea91;(SKIN [U{K aUlp_:Y}EZP6L3Rz{7xFE)ʸ5k2 e4p.o9ݦ>/v K{f®Ql*63mގUr4mSZ07K8ffLwK흆}j-X~vߓhg|oua޿!nkyQc:ua/_2S!,YZXهADr5z9Ⱦ p1rLUa7,9/=;y$L@4"'&C"}赓B-з'ÅҬ* +%U$Vyd]UBt[*\9)8Bw/Y,qCBşl y=[?ĵE?ʜ^QrԄ% &BA"^y9w rܕ^Imr8=l> o~:rE) ]:k㯸Hļ{1ǢQ MDj[[ο_U op "jfؠӭ WJlA]bgdw"rq69L/9w%;=J-b3F\-*AxU!֘QFi/39e[]Cۉͭ!r{WG8۾s0{D`j];d:{mʻ|@k DlevxXi ԙ,3*\FzaL"(f5V:?gX.V/-i%vK/ > RUȣ6MNR)ߟ[;*WNH߸(?t eV۫A'I!o<yI| Z\NW罘|6k94zg*2ᐷY" .>ⴻ9r& :7h:[:K[[)5 {%f5\%Mvȫ`8v""N?p;;z7/1R3sw3)_`ٚ1H5=EV0?+$) hULK(j`d)!N-zk &[qQZ,քؤ@B^xU`UkY/FRrid0a^Mxf O[Wlpqp.9w XowghJzW V ώ8)U Fq;$+φ4KAH@| )E);1 dF:kaix5,?{?#+ښIjOfFw:zίGoqȝ5ǻ v86Vt2 EPeWqtXNi.jɨEU S]̕5wMHv'C1J7mSW.o1^G# \+U7ʧR>ǦRM29t;b8z+Nm0v= )=3HnwRU5IL#7;KI< DE5isV{lgH(%_ts>vxuFaV{!m@EX]H&$#@uW)1f|R[L:W/1hJW$ qsZCԧhmKDuxِ1wgO\ӆ’7Tڮsƻꤷf[qO|DZ\QDxnDT Ts;#d8!4e|JyeFن1N?UyOkKw)ND0+yM; kSՑEDUZ;ܮFeWy MDH3RCnIeq5? 5u^22kjvfa٠93mg}}j NfopN-`qWM12U9SA2f2OD )>yԣfe7NM)w^;l(n)-B2>|GJ[N*1 ,'ŧ;7تޚ8`^d*/r5 ٵFLowaX iVqAԡ'h)ی`x$ C,8_Od)Tq!"(2r*Y̢9f3BU@.5e|R*r#Wec^6]PS}#JVs?R R>UV ´B]:Kz|8vRc@yZ{1P?H*w8̨Ѽn4|hf٘ 9\DˆJ|CPĿǼzSD|-8b( ?E'cp.R*TA*No΋.%d"4ǫHe+\2aϦz:Mh0j6{}$[@d-ZЏbE#B0uHd\_jL46pjZo|k[p@K9fGECrzeOJ/LOƲLUdriǸ>4h\T|S# D]k6(~7T!Wu%ziv[X;qCi{r&n6-o|"*\@f?j'i:­JҜmA Zx7 SL-uJ'p1^(Nv]/RoTF,`wXeOnnͲjg, eD2욵5Ƶ!8ԗAT}VRff6d;IgOV_<{"R#m)wA?x zrbe8m$6{"JWNqq&:0"{5ec&X3>ݎudP(űs霳`9)Gz x`0ue7l=޲d }>ƯLFu$7)-ؒ(_ ַѲb|vW kR<5~8X7>_E@N88aG6*cHv-ٻxvpR,Dٳxu B%hm$]uﻈBY.3`,Qh /L%%q&tۍRlyCQ Y|Zj ϨVY-Nj,;܄W$TY6UͶJt\I߷m#`\ U?n/l&g;NӦD-bI6)& p~_h^˟aeL[ ®)C8Kh ^ dB/4Ǹ_Rdq=N|j<&efZ㾣 x+ =ԅ.)Y]»{}&\6JI AlfU,&'IyZ {Yu>k?͑L3&pс=Pԓ4Eg̑FS$e E=|P0SFAIj= 4%gYeeW15?gW.|E" }' vmٙe V,oٮf6r?fr_x{ h~ g6fVۑ~ U,Ö-<mf =uN@Q;|ܸgCl@@B)/q>CzX5 ¼H! S7q#Rm@ l Yr/c1y#%#“EX[ә߭jROH9D#b:\n$/ m[aPsN*'yz ]v]Gv6sA:Tʺ};zQ=ycQ-^F#h@ ȿU~X9Y9{Axgu Fiv1 Gj=ѲԎlo:c c^zLydL]JޠCP,⬦3b36 b> MYV}]$_R|1PX<8y&eYP^%<(bp,O'+3͖6n^;h1(RNQ/GzHr͘ǯ3ۄGFPYT`~d(mK8!PzwWV_iԅU$ڎv+|0 1Eiom-(h:1}ֻ@hn *4q1H"Q,M˨rl8 |DfnmB$_:Jq1.I<2 EQ[OǡAkEՀKVd(cGkkuKHj0+0'TUv~zk)F=VE Klw`w5:S?<ͅwz'<`Ο<3/[@"P"&Ɇy既gW(o PY<@5,_8,53|p uUu>aTVP,k|.eiHgɴ0':4t_=B~Y*Ԍu?iސ <Ȁ<{{$m?t4ҌM0J0XY8˂Y8H9tkYq!9T{ka^E4@lh3ӎF ~ "՗FٲT*Q+ueBٝY3m,{W;%X%1 LDqs;uUr/Lh  trYG!<}(2zoFXpbz^'i8LGxhE(ƽSJť ~ GP3!S},6&YvQ:jt5!`b]{;*[cQY%Yz>4lISD|N'Qq_UL@I%lڎTu(X,K߾aO2ԍFdYad Iogg `pN{kW(EY^=]DQ,Ϛnj|{<2%\&}@Jp~=!a8BK/Ey#nT'B |YFX7]]dTGҠE,JLϡϭR,ζ,t/z'9s5PNafi蹊UvQĝtkyk²Iv':h q,R*e#3n^:GEιOl5'ItL}FnJn!:q|'&>xIoqΐ=D JC.C~@.mR[c'j!BHwpj40`3⹗) zbDpcV(Jʶ?MNTntY *qwg Yyj3`=OcRSXڃ w2KIb#Ui_١ӣ:ui}#xtȊ^y`4VhvqN%}mhp̚/bdRgXpA962w+z޶IźSs$K i FR|H03|i %A{+HxaY7$CM,|WN^t"b:g"74^maij|66ZG<a;x|[?/B\KL -8\F7Bf`cW#Rgc\Հ%ѹFd ҙߍt_EM8a$ϬdhUQs+A?S*?ZW C?)mOz~e6*46ވ~͠tS3|l̺ϣn <ڛҥngܙLQEˣȒPQ>p9-,)S7MTkJg"WM W73WxW37Myݾq2zI t:;FoS 2<쓴HdV0i%ɧ9FIKhhC[κl)W4>r{v t~Lp ~| %_5hiT[NRR0JkI˔ZP zŌ]y$~2d}F'\,`NozX,uM$[aG7E4]TNcA^D.Mg%94fϳQi^`yp./*"Н,zKqUOԺHah F qYe -am%G"maxe_ːk1 -L')ppzgzU=փeSAB\KjH@o '[ 7KՆy.V`ֶ-+Q;h~E5&]X~Ln}M~E2 /#|SfbiK#]!d>%K)!|fbqAҠOuXz< ly\ҡJ:%7CPďnqeKW -nڄ HDsž~`W] !>rԀ67H֕31 CxuiP N`қ~\)g-g~5X0-8I pe)v(us&>a  ¶7T5:7UK~鲳a,DG^}ӹG9/bYgzSero@OBg5*?0Ծ>ГH}"rWT҂ J9 àrOwc& ` &5uo$[G` lY{Al "7ddg YI<"^) Dls,Z%c\_t\\I3l𷚊Y 4kMhLNj.aĽ E} 8>N j`nT?]EE}Qfq-jouvNlӳdX @z1rUs\[b[Bt)VX;%§x^Azz?IDh,bQ8U2垼C {}ʈ_PΟ8n4;o璙egWNf╢h&ez퉿)-A\GGb ]a#x'9!l *NDiyV\*iYkx1u0lKj˽qYZ"SF׏umcSL~\#g[?aB}wWIQUPU=95?gqB/XQK~ق1 ˴'~ t_ϒZ#޶D#_y>L'-PJ > l?BAjH0&.2U(Α in)6?_B rry$df5үm憜5]A[ 0&ᤞF.^y DwzJ9Is!LZC#7vmMl~늎d&쉻|jm8Z ^_S\Ĩ ү&]5b罼p>.Rv2&/ĉYǚiP?DȲui V(V?\t&Uոy.&kWڏlCxc] ;U<*K`2h *cSQ'[ľ@"&Y;jz<1(Ȩx}z7n0]>dAaMK9d8ZUؑ`Y:ܶ_hmeQ*nwk2 ЃBՐ#sУ:,cy~1"LmU?LdgtEjHt LoTd&~sJ)ws7vizz]o9p-$u]?$"->bfOA{ʠf5ûHRtZFB>+ӈn0VtkVdTȕ33aГmH.3/Qa_0klg{¥\ƭGT'|k4F)!dAG꣢=?#;;Rn8!02c=@?kDV>- 9ba|Sƙ QͫeWYw̓pR!EK*N[1E*Αîi#$v_ik%x DBR/ -s:9=}DlJSRW qU?iQxtݢ+ibiP)9Qd{pfw#GO/48Y90RŶ!NeRXOYF0ĝP{$Y"Gsw(V@ٹ:@ .&Ԇ쟃 S -v$$߈NfTGQZ%~c]d<6!%LBEV %p#(}g Mt$#3, 938`O6r*@)yKKV4]z)Ҏi2ӄɼx3k;X q.auf(2 c>}FI:$u$fB8Q,WG.DG<࿤)?4/;dE:{xl^!NƗPpRf}>\*1ͼx?Qg[cKk`O~CI+(˱MJ !@헥}]NNcBͰEf=L_8)V( TΟ zadx`z6YWDA~(Z U0|g sl%gWD:Th=ֿo>~qlIXǟxDX )5uQ曧xKXR8`v@.v0#TOv76V8G*+Jh8Z~B!!v(m\>6Pai#7Ov$6cήR֖Xxqnp}# A3)qz 6<-qquOa:DP1ʍ>H(5 :UGGLT]2#01Qtک>oBEKEUƘTB]M6/65[\MIX+DUVYM5}ǘG5?8odv$,KoGPSpPKRRu0]oV3^e$k뭨zn =MHZ݈7+M|K DRCr4+WXbu\ӓ$HV0d3' {ʱ/ A3B4qkvczz``kfa/[KHlL=a;xPs9WMhn@(8ZZ< vré O[BnQc?`k⾍w![2xP>RfvX#QxLف)lY uDN2MKDboႾYGH4#2̚¶t8CxmSF΋W$RRԞΡc C.[6ҹ9V g0%ESI\folK cz. O\qr_穆e0_֐`g8+g[%tIgJ'݌W:t ARzP?|]_c#=046O7hӾd-lȮ3v+1emuk6Gy034K)!Q/5^Au20Rmv3b b5~7 - ~2Ԣߓj"hWYLZ̀&2" ǀvu'k*/?C91c胛cvЪBbNZV{et{44" ^æyٲ 9.%ptvSF9GqP:I0=E,PskUm$Kg$\ൂL!ѽf-~W~6+_ %3aTrM[T< -~n;Sd"wVj-XԠHeQB#>a٘Yl/WX"S:o-b ,cڐr*MNy^z#!˗WY>{bUWg#"! >dX3Rnz~^Ϳ_`]oߵ7HΏ>ŕR73YE.1f>"=Vc^1P[؃}!"gdϚ6] Pw>͈_FϨ<@aހ)>P]^?x\&AunpK剧 )lKhN?'rn0T:6OLh5dXp+U|7_MOkѭZctЅE^V!=u" M5^8?6 / n4kgu%%O/^3GQ]R{ 4ޛIATLٻY1J`_;8<G7dvjDO dO1z S]Z Awv[-(hA{Qjo2RD{Q)N79: %Q^FEm8b0s|ƕwR@wHM_‰}2:SڨWFyz$J{8s[A]9 `WsTR`cJ#kYwY?*rTEz.s9l8ME{u@k1zv$I%.w?(% q]%N`}99*Պ@lRݴ%~7blwl wD[193ɭ2F*R#BIAU㔹$tbwFՅ`hn_+2W^!7#Rᖫ!ƒƽYKh)-7MPTfO͗r~z!{^OwE_0f"ϊ+b{,OPD0vŻi0K m #2u_Hv)ą.wd/T-FoHX\"U}^GٳX4MEp`1vتi nEox8XNmA=X8}L|*G) ZO:61e=EbGCUwmz79Mvr!iDUWu=:pJ(_**kJ4Fa(2a= qSWJ4MIܰՕt@eRkL.CgB'D$<60"YK#I Lg>.Euŧ*tÐ ;#=5FTuDEopNavFp`_uzBRdx|lD.65CL'gmzmp 2os,CNsg쇍oH4W*pR k?.xj*ZOɻQqG>. ίPI0y%/'OmUtR>&yI$DiuKJEaҒuX(L_ =࿺c7IP56n ^=CZ_'DgSt]{!=oGX4c2t@Vi~,@6^=T 'a}k\D'l KHK_ J>6QJ!. iAŅ{j`u$gkꟖ'`Tpb-V"<+{{-_bWK,k>p^ 8'amc#QB⍃(8~QA"&q(6 V5#9G1Qz&%2߉mhSԑVbi?mb?ւXs"ǖ}㎑Pİ+e\h{F>6n|Ƀ{af;jע6ɐ^U|)g`O:嘼v?jōB)Աo{.)`Ļ `KCKGC~1W[Sp] AE+:{@a3dza-F"h4;Ǥ>hqs3<OD+$"(Ѿ{a\D9@nh,c楨 Fb4<1U˔z(݉O{3d+ +X>]Ds{`X&ңz* yߦגb`=* U J՜a`ϭj<ԧ+uBVQSqYY{ ;0_ ͠?( ҍ>?u>y`CD:,|?|99}p\56b A0Hud@ݿz1Hx'M.4O8)EQZ.A`΃ߣ/7x[%Y*|/Ћ/ƏUҕrb{ 1.rЗyH14N &}Y8FvZ8yA8ωw+FBR _\BX c7JWNj dHv!z' Kbw9}dɳV N=3nWT>!p:^AL~|Pl -uV抰3RGQUX}.z;qn=xNM*pVRp=p ʩ . z Ƀs>a>d7F҈ /JTDLDY# L7ն`mcxgv8A$$8/5蓭wt\%.H /.,z+֝;mUpH@lW>O]DnƼ^[H-vAFoj51d(E#ze4 R \凓pf*5$x-Dd#gD>~GD;̴un8@x%*j>!ġ[زv}쿊󲊟$J%F*+S~f}EufE3 6N80?"?ˁ[dV^pNj4M%"SM=lTZP fF-ʪqWȀ.s=fx~2xS<bA[FqYB6vq{74Ϙ?t~|mHT\Uh1N\7˞Gyhp/jk䤲2. Vt;NyE,Ƒ=!ӻ:6_BWp@[gs/a:MFYG8$ 3IF|S'k ҝ1)V =ĘD_S(rOGsgNWL< 3F0>JŰ#DnID2n`80T ՠz\/X>-:~e*,mʗgusّ[l]r4mm~pfvp[4WpO 9$=顣Ŕ"Q}2`ײrf,EHDׂ~MrP=/|MEG*r0$4D:@BxCp0_+ hJ落/,Rk:4`[W;lz2ge iKk4f+xf}'-RM>eڼ;lM\$Ո5vIa;vyr]Im oߘ[ FS u4~a4 C rd-D-U5Ȕۖli& psYaHScox(~ pn="N;pΎ/iS'gy6^; &vI`g+T k^sS$ӵ%O2۰ NpI$Zmβb f[?͜㽈zmFS3D,d,u͆ YE]jyU(``9O֎#s@jp.KhܾϵTz_DHNSD) 'Ĺb^'FU8g]#ȳ4UV؂f:#Jr%{i4Fen7]VyAST\' (u#5 I. @O;"0I gbT =Jrޢ9Ô{'ŤspVJԤdJ u3q4@/GR}=6sO%d"[ބ| IFYg b8wԯK|^m.ݦm*Q Hk`i#zs{󦁀O KlHoY`X]o%x)ɜ쇙p)j%w6qĠs_5wJI8`ъ>Y7)Ƞ~n~聜Ԏh8dž^A}nTfյ]z%T4k]# ΣkO$ۃ^|,WtW? E~|b'Gg߈-#ԪZVc,/TڨO Cτ%k U uY ia'^Q˴z`8JBHH+va\x$fl8.d;o}AB`"u9g|GwZ R٢cUBd»!b +ig/cG ]GŒqK=BIfqh:.j"߽ɿU1r?xGkUFQͨԅs;XfF @ٸ#"`ڀu.dZe@󿣤ffcُMAJF_0 \BG+^r\⛺;\` =~C6jhETY6O~LJ%Gu > Ge[a<î&ZVϩXk]UIkn_Q!f7~ˆcx7Y~FL9lSMlcaNxǬKŵq?1&޶R4W#1L` z+kbX'zQ+qzYCu{iM>,%ݙAS'A0x$p||Dq x\pk#Ѫ 3 >Si#~)f`X[U(|8 f#NuBO ϻ4ziݾRtc՟v/3Ed zO# 8 /M'&(`pUjlQr;J^kMٹn0sfC0yT}AB$1[XlTfƩ]wZv",KСk=B֔,G ]ci~'^TұfGqOe]SӖ\ύKE;NttNr$Zye6Q=b@?X84Xlj>*7J Y.r0ŚZKmh>By$+.!ן.*'W kܦMg2BF105% t䨰{'Rm-f.9,i&pD;d: T3I&qud3p G>}Two+ɰ)uv7>нh™Q|f$DR`+ʣi f /Vot \{`s%{<(eI^:y{#28rw}L ބHW pb*I Ou>x| SxNU~"j"Eo U10AAAJhi)Z.^39'Yo6ȏAN'c1'G~^E2pTd6Ԩ@%)r0g}LjBqFLE{xkI~kȋMn(@n2QbUJ>8 ҠeN6Qx'YZz&Xu+etTHqLFF pw; -УOD:7!TDBvKwq:g2,N+9N¶-cgTY<Z:6_} BںK 0mjVn "黬ǚyzR߰(>sP;jSbԶ"*t2 J`iRwpۈª_phF=^vm*6qǒF<̄e /،qj~_5lK6Ⱦz1?;A+,9?Ms Jfl,#}L"L?RY;2PiӔ;.76JJ+. E{NS'#pxܝNg"`+n 5W-6[UKa"OުVתG AQPh`^ ry{bQ}=r>tDaHgDC{c fpV2QL:4%L8 TvzNj xA?4V֬Ox+·\k`I]`%^nEtBYYE/(B~)UPOwdGm>PG|o1rE]][G1J!PF*>#2KdyP aqu(E}ab=RXԬUl< -,OTwJMeYvH,KWsu' 6W]p0UQ8* /;9ycnUEmBt |e&LXO'IKHZK G<ЦoOe|4))w*D"tc[H;074i/;IйQXvq.btQ0$l]I&1UYCOGu 9EK衖g6v[s%o4K9@,iqy|X'&m2/^=~"6Py븙zX@t1AlG9O!]@ ^8QǥTh؝(_yӴnhm|ORC0Z 2qj,xse?ฒ(ecG|x{ OրHi̯p; $ $ pO@7[ksNƅ^p8c/cQWpVÁRPD W Sڻ@5;^4'-7݁$Nˎ?>ΎP{0y4j۷za͖y`MXP ei\ ,X#cS)i8Z7P̛uxT@w3L~Gbuշǡ]B2j5dr&=sĄdBUKԫ~zuMjo'Q9^.Z%yZ(OO&v%5F=+*&K}o1 vkh9yeEN![VGdEV' JsN7Csfaa ECL JD 4]0|^rgGO9WKP)}H|V˙"UHM$@CVk[ly8XKol*1@k6htiGh]ncIMt; H1ѫ`>֌9KZmf$Q_dh'EHXy6 -F$~CǖsÃAK,n胻[ 'b rA;bN7סKLdcu0irhQ ]-lތzmn]I3ڲMΥ%s[L*P-G'y~4}Ҫ^BT/ \ZG%fOC !&M&|)ڇq XnJ G-:;tʼ |g1CWȭnP}p,],W)5´lU]`^(WK=yol+rץU V4- nXqkn Arh蜏S^idl_8NMdYg)C5869+P;qͨp3F ڎ#~Tu# ٞ~|J࿸ߐ]a~/;ٸ˕(Ɵ+DTx?S^]Ӷ5JJciT]8/wrF͈ O#4sYM3B{i_ L^cPPʚ9@b\ڴԣnDQʄLh r|ZVz·-P-7QLu!9MN/KNȩ q)T ܟ)C4570H?nNApPzf*^X -vSUMƢvNhIbuBX_IsXk ./PzeN߻0Ogp}&"2TwJ(QIA" CYH~kxT쑷jAA+̂j2/jT* ʽIr٤^{xctZ5~2IޏOgԾgXOճ @݀ݿx/!<U|Zw@y$ԡ$)}8gܖ{&)]z9YhwCL>"sD𩖛d4D;Pρ m)aͣk4w4{u k-U -?%8D1W(Fġ_3顧ZZ'uf?)Ax?}]fg[xQ#]2 s(jG ḩ* Hlz%Wd] Na`HES O% +7ᑉ3,eKtNXRG(Py=qA9bчѯIMOEfj OK7iht`6yj:I^,VI?Ԝd׳rrA`١MKU?Olgexz҂j Bh+ x@òJ6"_rVul ȒJPocpRV`pjҖ ۶!kˀBm7r[W`3v|PбIR"Q޽K;d,ITֆzh3d1nyȗ.r R]b[a <8)-w0Wh Q3 =)!>qE;ܔvM7Tu@k9#ʲXJA;{|~Q){ [ ݰvFmgMkA4y V`F7`$*~݆8LT4$xݐAIPZ>D|ztw-yJz2:X?`oX'65ϖVΒ(e)}6u?S3 +7Wk{0`1V)E\̈.c zV$g)QW].wI #mVu-I1K&1?(;)E7R7 ?*c&4< &w\\d'8֤SJPh so]q9ic&VDQj J--I NPIjs,ړ>T$'ؽMRw9KGbCqܤ0IKVݹZ at ǀMsmg\h"fm%f/6Nю/K28GPsi)& /| |H$oW E]|E3 L-?7j&sa:ZuP`1 e4Є:Df@wSV5eށvFd"_aY90\Rl@kк E-TȏaÖe2qϢru`&UuLڄY|z9zuDNweXkJО\H3&ʁ2=J+7B^Rن?ݣ^pk="5Jp@H,֧8`#ÎSw8mgZ~WkpT .bnOT@Bk 3.LŦٌƘe &ʰt]^||wVƮ?9f@:j#Vqm KRKQE/dz& jxwCl%/R*tr]6 g\֮e^KThaQ{:xzz4)G$HnDwx `M]"P?([x5&H4ذt pZ4l;*qXr0NX? y9xo{ n=L =^/s/~6T)]y>\t) *qŴCXМ!K62&;#"Uj@38tfe_\P7`߀?R0MH>r?V4Kɕ"Nj=dV֠W2p&5̮ x3kW?)cF>> @ #31X/Z(Wɞ"Ycj#uu۲h&4 Psu%>+9+P8;IޖP:8д gg#Du#V(p5!1֪eN.z¶bll2)SHPpŀM{ vvW2=g5d7;@U uڰWdyG@8`H5*SeL{  K&-odc:pi@ ig{fB58Q  co5_~ KYF#U2k\n 5^}DqFB_ĺlgfa>|!<rTHe` 4PyRAD'5ح``鬫 a8X)$o\'j9#d(%'O{Y|-4UP1z~[*>UL/Зe.ϙ? 櫾w3@̷yXwk۟imF*yhk9`ڄlcjX9Q 9 I7ix+AB{EW[7 -?^B uO[( h EBʹjt(MRYm遡U&hClG Fq>M/&p}a$>z8i/8GWձmM V=B"$VTG Q- G$GFx-x-*U4Z4!a|,1YkptΜ^eM c-ړu>vI.Y3TkH{Uy_IeG/3t#j=T8P2}[YNNյ'qƁיCfF+xwO^uMK$/ 6X M>/9shvIZ2>ˊ_&~0|Rmȃl'_Q: [vhAE5cIL*m!"m;e@}T=ξ &p6TI !1⁄G!L;6E^NwMݽ RrDQdxϹc %Pjӽ!_I3*[ 59FlFs*q>osՆ\i;%ukht!TN LVqx3ݸحĹ(-sxdM o(nqdM-7s5+|ɦ誦dsG|:Dk|CarT"\_w]2/f'/Dw"ɸpM4̕շE$lpvX{װ58蒴ݜm:Ri+2iز(}>nο2Jq9pZ"kZː5]5H1 QN@;/Q;nR>[R*h!΋`fL51jM[өʊON,+B~pxU 2M̸S8Rqͮ6~XN֟37nGݍTU@0ſE(f9:pRť{ޱmnK( %tTbN7YKh.CZnjdJqew>C&X8 HL8~#oj ؛dcUz[_VFS(/.yA@(Qmfxf6i_ ,th0s/CNFN6ĵ䷍stztk*ݝV΃ k+v F:Y%DDZk.!iJhbXOW|T/9.ѭ F@&ś8 .'b$e[4+]gQÐV&JL1dػպ5i{&t`8 1F@4XUl~J<9쳻QiŽ^s [X_ B-ݔ2pRRU]'{1?W1јlPk݄p.\VA6G+=~t_wҥ =2p yGOo40axH]6ryI6fy -0 k eI;ZA_ڈP%R`o\sVQvEslW fh K57r 1=)-LŌOf |7oۿ^4ZH8O>9Hf.'5VSVdq`.i亘5&PI ʳ6ՌVC>-2^8ЀӺ}ɞ^>0DlZ mΣ@ӋuÛ|-`A* bȩ捓o'awT_?xTObpKbO#Iu- wFف1`fƅHDdP6i4!lAR|e?a.!z3t$v%iKlns};"j)";Sez9: '{sO)Sg3||B]ۻ8=KPuH=o[ %Nȓ9'$̸yEʞMu%GUBr$C68NFP 0HbvO]Tkn.k"م[1+rEU9ӼtUd]x$kH$r<տͶ Ji-2=ACg/ݷGHhHӜn*8f~騥~M{F+u fQjM.[fZ6 ^ABQKG\Huh֎P\A46v(fw-!o.HԸN7u- e">mv,ևiOξ:e7@2^7ݱAsIqx%`Z#z wɏ^);"6zkgpDhèHD`6UG(1|HT>iXl9AC IYXFV.1$7h,@V^OA JO8,oT/Nu_5{̜%1^V$dfV> NipjuBb'3E[*l Q1G]B0bE]}fXsNJ_y*O h+56<@Oq(Yr2{{Õ?-hĿ@CG Ρ{lx_r8n) iJC|[K»9EQ5W0lz8i'Q;ޏ݁Ya"jf]ߖhw)G\d=p5nCڧX״">]4@A4dh-vΖ8H[J' %r,c*҃dҧ̇C[=/i]_&,g1Y,w۾tD4qڀP/S0%S0AHUMPHk6I(5IxS Np}&fiTts{y.'IQWz[lhm ) f)ѣ<)F-z($A7BkޡZw[۾uWH9}0`4C: MG.ځ4{=19"=g}ጆP}Q ߂>!9Lk1V^4 !u@W f0ݥ.p[e45@frnflH} ]Ḱ ѷ%\ecld׵ILRw|57ƤooyCrsiE͸ ިK-@ic"ȸv'ZMȉ! ;;M z(+D +1oI> /BpiPx'Pٮ` Ga!ĮSG D>!`W`F`VХDd/nڒ$=*L}ʳ_*1eB[#g4Cb_4_,zV癵=-ؿE'E;&|]#^/mvffGB!|J.=<uRBOfn@nM+x qz z-C>-And+( +'bMP{P<Dk$ƇKKdAyj7^59֕ sSh屦҄{ IonQ'ݧLuL[ez8A'1$)aE; ͪ;8#7j9?ĒD"oo|ܲ.⬅'FZNn׃`ڷ[A)^X Fza'"S9C.kABY^ a6 zEHx̀Gc\C[eX) 'l.3 k f3kH1,7.s9 X6Q&l)b}u[Φ8"-I.{&oO(W7Xתum~Y?7Ãzr#p- 30)u _g`dx3 ?5~Iޅq:a7DeΜWy e^rG 飬X ӽ pH_GB/k_` B]OS82Zm(dZE6 x e*ɶ nκK)՝ Z9UM=d^Ôe;LFg9m֝}fhL|xH oߧ* 3%G`-w/@eKZ{*-ZK:hOGq̯+~9E0=0&f['<& #1 gGyN@&U?Nt`B.;vvT=5C"Rr^KVŀhSrlC]^\! pAO*xfЭ:L@.tqOyfx0;to_*.Yxz,Ev{KI5r@ `W͈r<뙰% 65b&77*+6.zD!аEr @&測xFw-(/!,ͪ>=!47c ƛa w.+\Sјt-? ssE'F*>+}h}H#BAd}C Mqqh%%- J D2FfD̃Svz3XOwaw].]qt:DIݟDR bZIDH:РTP9j%l&AoCeϻ$(7A; LeVϺC/{)sp6~$/2$.ڶǬ,UA:!'5BG|ǜa#1]Ú@eݨ]BH"b-$r-siNN<'y/FLQvH;D~4W9KGwt-fe:+Kٱ;6m]gaU=|ad͍3%!C-b9nlcd4ꤠlR՛[4 ; (L$TJbbMϿjK2C`̌@LJ̠'/\}@IP6->QZ9ūl>&ɃӲ":G&T\ݘbhi+jeɞ̡ QFbU4k?W;m5ٲgS%is4?o\=A*V+F\r)BEM~1)7s6 0!=]Ok(}}3a2o}EAO6ȲIڛ-~|LǏXfz̓sa/L~!1~-HP4AWKk'8#t'] $фxZ=])z94K@֌g{+X@)4DJ|:>T/,NhЍGj(I[51kczSDMU"ރAq[_A֘)fSոP5ۃ)=ch+PYgWcg s.|@6*s%| vĎrޭBܡ8FSss1ٞ,odjn#q^dᅖϊ QWQCP'e~P}.~f .m97>^"ӆV3=r&Cw2u{&[s=2-x ^{zy𐖊8_7)#iFD tpW[Q9}uZJJmEÅ'Av&,uOi 2 @( RH]*1|xb.j)G!`[nwDD޴[0z+zSZ+R5ubatl!s-_xi0K&|#KEtzEO:T v~ |i!C$!&DIGmf$Tu2MfHۀ#xOdQDGStKZsP]9/,$,8ՊMzAe{N)Gn̷ƛ1xi1GG#l\Kf]F Gtn(tc`2[p/Hضʓ@h[&!Vsd"Of U?br ,o*g_%Gi`-P2ݔ#aOIK^廈ͼa8^f+3j]Dher[%v7Ѝ':L9ż=TkhFUVMsܡvI=;_F*Q{J+8?p@~Z/u;0*|0jâa*]YsZ?D;_x1es<ӑ֜һX+Z^*ci57MO]gl {vqsȺh \hz7`Ŗ=T22F@2f|4VѐډtH2<K/zW|L^R_Tu#ց 0CB޾ W ˋ.T^b_O  /{Xܪ*Nφ 9PF)33"aurrl%/* Z$'Ԥ@1n Lؘ1Ua^[<jfz]nِC^EJ38ރ[gQ)Mv>OB/]ٰvk :mL`<=Ȣu/QC2XL:O/4؅eĿ >mh!^LXNɍPǽe¶-)9b- @XDR|_qt5(W鈦5ݳ:wKN- ND^&q>qp B9[+%y:40_T*Cu40{Jf[z|pS8{qv 1 4&#?FMYաl"EටyN~-Ab Kk'hlR/]N-Rr6$rSM'?:Op7IR_UmXrSj9QhCH~C7.2pi87 ^"=Xy;Y pXiBq ֢\?8[9[cԷW UKuaKf&\W\ЮmOZ{x H_˻ZK@fGvE\ה,8&Df#o:oWɯ%f=[sfYmw(T--D^lx#C5w~V!ۗ~ϑ,M S SЬ;JH32EXڤΙ] **X%]#%t!l+?QZ`.1_C ju>ɁjExj.w8obp|@y#ޏT%] go.@k^K-Tu /g.+Uw]D[2)_J S!ڈ[{y٦3p \ܡӵ[WH[? 5 9oKu2.TeHw*F2:BGD>E 17\_P/G}{CXK!%1WvB1ߺs砓/rTi5'Kq! F.\D˩]_R~Ԕ>-xߒlA_;h$* N!U^3y/?p^wN#V[+*Os"Rz+VO2\W}_1቏үysr'r 1rq".cЙ -3gq%߾r`[ncDž%ʅʄdĊ "BA 7P7ƲEzXq m3#bp%]lg+G!;s9,"ai,1;T) *E-W-pvlv86m{9 BKrc8q2ڎi`X)9܆+HقF:L%w5TNY4EkAfek ;E) x3F#Da_zʎ0 3ߟZ"Z_C`>5< 5i>&/BLl ];x%+?"k-tj:dg"p4l;RU.e# Bax;Xz ISmDs %m"&4=(WQ^D l$]FCqAfWP硙zwKfcvc5 u$fQI:e;9‡0Qr: R[l3蕞@\ e$:hT? tt0,z(5rF Y@T%% lxAn^X`NovgE{zv;=]]g8k-l6HJ5x6p>:L5~{qsp[6kZ=Dr`(`ӴG8M7hL)1:** PChnWo\KRd=iƈKWoidhRN} \W#D'qaߏ0y@n ?#fy{;Uff &KR+n4IȢ6P*2b-$u2ML4`raY:2,5!vP'C/2_}_pV@mP;H=[cq5ɳH[9H̾גR ٘ȸg4;o[!Ȳ8p6GIjayܦҷ֦aL82I!4*ٖenb2 $HD! Bv9=r)9U,a[Eҥ1r5"׉O{BHB}I_ {^* 85VQ1ȭq}α׉֩zjM-^ c)$81 ԑCx֍|lJqdD@ksm,A=zIVIOPM cZ»[ ]S6+ 7,&М 뛂n(Qy4duݴm&5[6MW0^KfcΨxLii`.TyI:]hYx*7n`$&"o3ȼ_U6 9W͎ \i{̛&m\+_.?/.X^?jzpz҆mnknr_|Hסԥ}̊r4j}vz|'$:FPCtӕ4anl^X n;?&(})(W)92|-#7r&EקW`1ձlْtB5{D Γ3Z yzEDngnhK.t1&ÂBqy7q\UX6xoja… DuCP?2k/X N19Ru)̀ҡPe*wMA!TIsfO kvV%ţ*T*j1}iz*h״(ò.#K(?0/+8X fEԉH=󷳔AyQ! _M4r.<1bE l ޙ?f 6{#97>VIg>ݮ" F\<ƉE+'GXq\pThdDpOxez؈ %"}[L7Nש6髠JƁEoU>h;pgW90ЍL  j[yP` 0B0n|1,ki0u': SN|EdJ'nVSVӐM y `ŝ߯*utH E #$b j Ҥh둊?3cY$_Hx.PZQN[j6*N-t߄m(aVEHm wX7kϽhFӻVuM½sgG| m!}e-jit`'ڢڛlHd0RZ8 x)gȨʪYTõ_g !IښVw{hp(8&p =Zj6A0d6K~%gAL C):4FFqCX.TA=5f&n&y\AwyJ|EW ߲AAnQϏ*4 /lf$Tn1d*Fc9(4ؓZX$i2ӎl+ʷ E;f Mi!$m#-CoyOnRJ[N9+llsVWg;Cظ 73Y^ 1Jɺ³T5=8QapU7ӏᡘғD% FYRe5 VUa Rdu6*wF#]2ωT=nj#yʛ'R:-t4uch/-S/OC=D638qՖYt( fK/0#_1`$)H8uBvxNBeB II>eMB$Kenf:G*;`E͒+4 Omjo6X@ru( Ⱥcz7VM֡[o vB|]gxq ߒ MX%W~VW|rdcB] Xj-T`.N -e]zB u!*Oݐs4w@QU{K;011Bz P _OWVqM D>ËcV/=^g}d ǟtD,iU_;"/hۺ}TO ghnƋޙ/eߎ"62l.@`a.&wbW:DqاI$ M^)BMrC' Qخ)U}Ō{Ni; UQĆXʴ+SqV>qmб MSbIUqR3.ŀvd'WbjHU Z ߷rA#%OrY0OR!Yĝ5p4Ke{+CL0`ۗejrvybkuCCs8(4T!1{G^jiBR "\c ;AJ쬟;SAގ %wVG iVgU50ӂ6Tܗm¾"RDRb_]7>dܘb~ow' ҆Q+}I4mU6|k1M+^Fjb=BSenB*X`!eI2A`V I$o[znzMɌ8ĩٞ*صA SI)VAz'ޅB?W;EÛjbQa!ERК&6Db@wu}&M&E23|E  IXo<,7vl葼 ٬TyԵ"E4bzA]g\^ѥ C]0XIM{|${l.29Wu?(hTY-!nl^\̪iMLɨ{WSS-}XZx:S &Irh-&u٩SA@y.$҄B1q:8b.ԏ λ/ jKle7@} Q݁I'{?X l[?V ,[)5Gc zTEdN>H nGsI}yhHn-}^pRYFق1(3Q|橕)"Q E#xp}M - 2&eV|Ų^Ie$?ɪ%.u59]OtQ5uZr>[2B6xvJ׶}mJ&wU5Ϙo\wf')pY>OYZ )X6O .2lp)T# MfƐr<E$ w,f+G|:V}~'T v zZHg9yc2%JEQ[SS`]ʮ"`Mv"dX]d5_x]E+ 'Jў:(qIq`7Dñon[# J6)`^$;C5iJx]L(_W,Zdyj.&ox1b8s<^ x:yt0>,UŶ[A8s>IMfMOŚX,}QQn߁9VjX 2$An|ևQ*N[ J3Ƶ0ފ=߮[oQEE[8H#$*fpG"X4pZ%g̽sΧiuJ vFgr^ߏ]CJPI.m fuO\Q^!YIIe~PO*Rr'qT?]㰕{ M< B"\/[@R%렼7p9)FqOn%~A@#(Qqy eɱYRP/\p`NCM5g[Z@]OE?ETJcI&6cm98 {28+kԲR d3EVAvRs/wkR CuEu rBUf:֑-PNg9x9)ѱƺҷفlpRQ7^e2-|a 뺃X;_aHZh&yK8u9Y;-fnCAYh1w~6H/Af!V1z3 b(EMLQh nQk0Z\xj 㙜Է7& G c/:)r$3, tlu>ꩀ>Mm?Q5 Uf!}"ua4YzzdiJ՛'CR@[w5 i~iXEJ0@DSNp׏?kt<^]!oMڲ#'a_KVin'$tݖJz%i?"1lA'"9L셈k+2QnIӕDLd8F4Fn5zd_Ci7ӹB}ŌLhHaW73u •;ZCajmv#SoGgS[{! ݜ$=4C96q/GIYYAܗJ 5kx'*=eib[:Rѻ]'G"λ6BiO]3+9f1M)Jp_ѻЎ&L|xS<㇦8C*W$PWu q.pVbm5wԢ@v|ӄ,f!9<̲^cm{[őw%VeD20¨49.U4͝b9mTwMyu;g\ w!v3J{ޤSVq쥽m E]7 ~ێPX2:'?hRY=!FH -bEIB2K-U^Eոį_']5Z#BϦnoPb E|B&9$-k]V6XcЄ _>s{b57?q)vot]*:} $Ah :nZ+ZÃ0a]^ឺIsZ/ (Zs~P`o>rtԙumJTē\=>U`OBNk$Ph2鋪L2-ʫwr/'Qz#{ZdZw Hu雥i > _?Q˰" r ~qE V]7{Kky1AYyo 7Z9;0Lzw%Cn^NZތDJMY&h%\4Ok O3M^uV"L҉[ {BW0}k?@Nxbrw/uߖs bLt}2B@Kt!1ʴm-IG0;R4tZ?4拕1"SAEw><;wle 0 vPl~9H$8ΏxCN`0;S-U2(o{~g3uhL\F޷z݆Xl<ي5FL4Zo.x;94πrDBjKv 蔶Cau !"I[\,X}G@Q $ӵrád]kڒ Y&c-54-q b(1=;~!ڵA̜x1E7g;^#AU?~(; [՗_5sFu7n9LErr/-زxWy1}%p룷 12 +vJ$[mNCf==h st@KgV_EVhT`" 5*BWd`^[!ޣ~FJpwآ$tc׈x9?[?ۓ(pc9lhx}Ubјan_#|Ңm3yq!+*ߟ9D'Ћ2=EI/J'#Z(!Zԗ!}dWL7ߤo*UjԃGBmUaj-/.Krls;, IPA sU%\w+Ӵ_ 8Mg[ ř?+6{$:E\~R6P#&P.W1Ŭ!GV9P}]@[uTc+*?\xO^K3Htsc02EG)r0?s-IjxiAI2D9ў`t=剖zVCڬĨLeP<*\#| ,ݞ8U%v Goț yxƹ'^)TЗFmf{T3uR2֩Angݬpj=z%-و}klfnV|]ϳkY(O$gقFHА yjN)ryL݁F\]: Rl3$\'1r@O)Qve,E:_o`75(%lpD3w<^9"zŬP7V4ʅ6o)#:O]/7`k8H3vNWxɭ<!X:Wl}^[Hv2lhhq;?=E}6n3ԛrH,2^/{dg8A'KcJiqw(?>߬qQVQ(/z C]ZpϲEaxh'A#Q =ĔXg{Z@M_9Msp3{.mW >o:[FzoGEg:̿2amp0>yùEԤ ;яTbZ͊WIn2:<)|W=h~JZq ndb-S4g[sw(TΏ 'ʉ'ׄ`nBP4"=X&.ЩA]ǧZZC 2CgFm492/cf?`z^^gAޛp7iN;f̒25u =`ڪlwbר/խ?Oy '+\U29!B_0 !71-o8O\85|zJJn@+̰)b Mo'-H%L*UՁ/8@\ S6f['Fxg8B,4_0K N:L/ R.6hV:x9‘Epb_lLib0)RAhwrYKw 0rC4.vJiKÑ_N=㯕tnIUJH R6 ^~e(j( ffŀP?E`lwBO' ,IJ2@3y w%/ЯD#czjtMݰӗ֌ DfɃI2^ƚf)`TO\L;:kذmf(x`?*(sQ&/;yLA\lrW[ oc'L:PӕCpZᾆG)5VЕEףٞaM.MѫՈgk{O94A9sٚ%F咮n"Ẽ*y;Ŵw[119]O:o0pVIRb6/8[\"@MxzD #Ҕ+-ǻ8 Yzй/y/ <6GTqTf>+< 6M) r VOˁ w_њJ7v,yL4\1v,n\qš,foH2R0<`A8Hm2vVgun O 3vLn3>-(CX#`K1=OYޘMa{!W@Zk>M ,l5#v >\d(xrH ?rEPrxQ1IɪQɰa }l(k.8(erɳDOLMg2>M|D{1!>d{u" ShZW2@#&w빛R7mXAjwB:[Tp8d/LPzbK%`w3@qr:ۘe Nڟ(XksKAe{2]ɹ]rNseuVZE9iц[GP:mF׷ Ǿ:!}uc:tau&Rq|ggSfbt a0IU)spXy9h$&eHfa$lNKU Yyڐ(cf3ŭ_>:hs ev;( ﵻo<Gۡ &x*˘wa Nj;#CmۡޮhT>nB19w2x\w꽠nL6RE>2OHm6b 2jGƜM?w(mNɈY`W3ғfbx a?4I'hofWT{!>f+.Ȧǃ+}Ϭ"??s -9T}ډС/OůS3>L t  +g"5~S'ڙLMӮ4 P7552ޛjﳆBopIȟd^S`(6h48u/oCPx1;օYl쒽5ď7},z !(S_ӡ6 A q=BU<~0YPz9x`!G̰S Poarrξ Ht[e1 )WX1N$*DGWSGR+ QBj)p)}ٟ 5 eGb >k&39mnPڒW +`.NC(Bc^g:Rc|"GHb/|\KSY(ŭH n@G\lb\&$vaLJJaS:Js-đrW"6O/ S˨:#@L6:Ѧڮ=K$g_9ܐ^4Wqnen+g8Z" +vA -R'48V`dR+ U:kCnX!a7u+3Ӈ4&.h8Pl. 2 4va)ir| o+s;\k9[sڀHh81[Y WNET< >S.Q !; ຠs)7Ƥ 9L%Q}' :|sAcԫa _hj k7[]8 Wv@rM9E4![J4i\ϸ:tP@OYJ|Zˣ*]DWbUp;gfD{>ZJJ$+}eVpia9Fq ٍ鎮n9Q.2Ǩ&Tɩr:#0/sۛ av'C5ZN[# <h#NoDɵm޿ɫ n`jFs|s'|+uWH'YP TH`GifQ2ܔt&9ue/xN%H7xWZ.*pUOqF٬+P {0xƍ-ʠy- i:S"BX۵W@rg'2KZ3hα& y\nAR}c=6 `T?=#2ɸ8tvǓ/qSfϞ;'iFȕiDj@'z/,$xU EZ6 wf)Lr8Y9mKBX9IbA)9o4 +*J}Sd ïWiE1YΑaV&G  *kp. „֝yq0A_Kp*μwL(Ҕ+?Xp -lIsBk!#3l3Bn(9}1a+U2kB]f( :z)gUɛ &ܪG- 2EךAS&bBOwq5cGuTC,jzQd~!yuIPɯ Cy{(:5L-}PUɓl귑GA}Jx&(9tDb|=Jbrbb.uΤʛ076'k 񛎄CtK縢_QwVۦLhr 7 -|`f5h& HDTzt=PWdr3"Q p:yj{$Z~b}C'@:Ljoc8.f0[fW8I5H8͐_صw1 Y)Ptֆfё+_U$)^w4/k1P4ye ]bS{ c3'CrIJr[R t\omx׿tNwJ:"Iy ~m[f7b:g|<AR6@OUTثLZʣ TrМ)M[IHFLKmOTRK nvhw(\\R~{)b^Px&^ _v#wWIaZ)gvP3Ө\dI7Чq 3,\Xr͉H!= v=4UsڈӢM1LrU`ͩ~Q@Q.4`sCע#i'{ڔOcy*a`%_Oy[a,p~}73jR!=[&}whI5Dy4럪FZZuXCoAw̚s $gKO^^[ޞ*p n`lW! QÑ8K d;w)cphCI/]R-:M%ݫ-}ީQ s` NwGS\ڮ;o"ۯV10ݟ}8+~4+Ĵ?yQ;Ћ ̏~%&v' iY$h0L?GaPe>=6!9s<%$T_sgm`B#@5_@e B>i;!v9zl(A9\,\[%FMi@䋡{Da˒GshdŮǞc]gl D$̒)?Zwh$N`53qdnLps j1 [n s,"/4Ο$glՒܭu"ՉV)fͫr<ٗ#h^73P SdwvsWKr־.͏@yֻ &j\g"e:s8ۙ-}eE>z1ĽIt+xC&]fC`9ZEӢP |4Ii&םQײBF0Qsu[IZF>nMEϛI#d>LAU&;"!NWǑؔ}ٲ. ZrF $Mg7RRwFV;PH1Npc*TuF|ԉtGYM Y.c4NcMgmΛH3T}b3ct֨?M{yl. ɜu3lzi9)M%)h~2fTk3oD#(׾!b4hn9b|.T.IB@L%,\Esŭzȹ=b^7)|43Mq.b Cd!m3A\aG~HTUOqR%28^Up3dR(O~Ub6?oڴP 39*B)^ibQ AlR9bīX+F)R$cc"d7:sjBd9x'TyVF=?͒ʩ5B Z næ$r=׈=mAV[2q& ZzT[Mӫ7}e\xLڦUx& }!o?yDlG9>x.Ųj͠n_2 %wЍsQ%MS}U! Ocx:GV;:T9jj"m΂|gܿf F1Ö*#˵r77j8ry 5웖gd_lIo8 +LK6_JhGk#Ӱ](d`HGj#ǯd6}D$ҩpdu=<džt<"oc)bX7~JA\b8Ē.Z$["\ z["nJ$T* ++' BG#ĶZdE!4 cH"7xWkns,XxX8X.įF`g2}xή.{-2ۤϸ)8Uk.RȀBj 3֒\y`U ;+MCTHwLSǹi˜^ZչI3pʙnDElŽJh1V^f3lBo/ɇ9s8z#]^X|z)+K3 O>$Wt=S]51jW^Mr#y@ ;6{nڇп%dsAPQd" us:v *$0QAptTi&]I%pC?l9~pJ(_m:)3LEs9IDp[g}Ţ 0{[B]DoZvH{7/P(q=hRO^ȖPCP g }B-b c=z s![mwi1D-RNo~ KG`8)fryz?ݱiU!N- izk˂jYa+ZjJ,`u>H O?.g .\JMޢehȺiDFMddp[AFtoO,|f+a0hFQP oϲiʊA–J1֏ "W f1͗N=ܷKTE!iCi̥fGh*{ 2Uz{_IN5^4{K$m-4w OO[ɰ0XFfcNAfqDi5бcK}WB.4#ӟ0>\P2>񷀌\}vЊo7^|<B)3JO$wW9?+x zaA: Id D/Y 3R1xv?i˘LتapKWtˏ |+6//'7j:LcpՑlj39p™gUmfalr$΀a˫h+*s#*)V`v)bhj,rsKؓxޘƷ,IS`RT~] +A G˱lT+ l&4^)s^;RһY+̛ _)>\p#ڗ@5bLt=>ՑC=86)c!5XWY|u=-*$^BK@'?"yxbBU$? eಝe@ຳ0U3 lKS]\!-LMc 'kѿoOGIJ!,N& qH+m( ^,Wǯ4-\>ń4] V,ta~,} aqn5"lTccb+&ccY?|Փ)b"Ct\ :̈́wsS&w!v캹՞MZ(t-}*A=caMÐݕOȭ |ٳ SYlEdnZeYQa9o1=YU/mxKO(U{jfzICӫVdP_ykABti,]ڇ @7Ng\C"{.7${G(iִv)>1lGwIo\D>/x7rS qT5<@yσ9k=Kd0"fqP)cP 6K8KbwTsXgVQ'[c?ةRhQw  lB6LأW:7 &'Ѵp&FV/cf[TZA_> :?^Cܼ@yWbx /Jn}Z*\i~i r$`?!.Dq7l}IEK'0&e9T7,oV<0 lrg;9fu@0k* -“|wePu"(79uT_x0 J䜥{?:%Kht]/n$@ALlwR;33Hx1,B0H["!pFEhAn.};ĜNq$3)xO-qNƢMWC X&lr2QE-]12R 0v,7Tì'QufZTgAݰyTkF8I@C0RO-bD0ʵuQ؉]xغ,LU<ͬꇗ"2CFYp*3xFZ )S Z޷oii}ϖlTnl%ɴ}`qQJCq{/|*"h i ~/Nc1]AYML"@SxhLQ!B_,n!iVe6Lz%2ZC"pX.yMs ĚWDKC41~@,(C4ܮE?7@}Myϯ612exUBf{/63}e0ZP>ʐECA^!6";|i*Bo-Rعs._( 쫢iy>BbӇ3Ҭ腎rZMkF}Q a# @~#62 |h h5C0BmQF%qQb8IEhUs6Y :sUtCG#BħZ&q*R[X@Ss(S<}0ڒ!Q[ ]#+&= ]s v!4? ߿YRSi/k=)tڷ:M`trs' ᇬ(Fh˰wKWgX%vES)PKaCJnXavN6F?J4Fԑ6*sP_(e_oπMm7}P,cJF_C\IP#Y i<(F+Cx J`f~,zco*}AG/c< ?^O ?a>]Q">Yѵg+*R# @$$Q{/Sp!,Jׅcu {8ܜrbIZ:?X2eXf~oB~PWJ%9pOvWhj):͛%ѾD45zRnW3l)"QXoyew /QlF$]bUԙ+Ch]+^- ;` v+u䦐ȘUbwܲ/k-K B([Zc;8Y{p3 Aˋ,_>İ/B|rޗnnJ\u G8g{&ܥRKx272Z7%sߠMuhWB˽GD|uy<*_c -p W0"*!&HyNb)FZ+uOZOsSM͑!)smz9sFQD;-V4&ޛAkq$05^PcJ#`׬C%GOFPnAx[JilW`\;^\ef*Q DC An'hOW ru )CEg$}e;w)"TC?ÛԻTq4vsΉWOb\NnbKPRvַj0Yzy%8J1+1 :;_G 'ahjz7|_o&ڽ ʃs |Ӝ+̐YEZM;cʰgሺuセқc0ios[0+3>#()E~w`I&l¬-{z/g8SME@)@ -\f|ha5q۸ '膄 чOoސED$Cd) YI'&c E~{2BE&R∹6,;Mr6—gL]al}>rUsoD`Eyi CʂZ69ŹHKРM~k>SRCNHgSm|;0v@W"};f!YXQ6V)o|Dꊼt=^ڶ.>i+: t q`bg=L#x_ }ѡzgT5j v%6y6;⡪yrOj X;"?qFl0ȁ<>DA,-C6t\̲zJT!yοRnon.| A[l"e YqP 1b!'zaQ_6N?K$^H)Ko-&E_7nix8TZGPC ?ϫݍkc)>3Ϡ!`]I7I%PRZNi?NxףyZ7 >sV=Ce}@Ke(+.YN](*co^gb#XAjQ/2wc/WS,5 1w$6t@C`ꇭML5 ʻ <)@rE:/ՀHe=sEL[E{bJQδ?#`Uwy"w@7NhgPzV['m@2u|oGA <學JQDS-Ӏa1ݑ%a|^/<8t1f.T9M{yoQ|p K| ?]]Lup1O|UZ G2|ꂴE?s OSL0\hJA"22x# - Us`te_l#{$̀VG$1M"%?ͪ9~5CR_9U׻LxȖHP74NYĵե5H*̖PEjjD Vs`[fv4[5w7yxJ|\Q)J.ձ.ו)KzClUhq5{Ǻr a/e+ee:|>בf"rk|XʼnLtCS~SC Qc׿W${0[qͱچ_8; ii Qu37hv ݯHEE˃E~ְe(Ύ,m4H~7ݪ1yRu3%B @utgtH;˸Vv O]I>NwralďѤC?'11ƫHGNͦp>kV0(OԁK=OWf3ϣ ;ŭQ+3>0g~ TtRc8#W#o.7Kߒ eQ/L N {q0}?3O~[#aS2zClZj+;S=]×X# #9:9i`s1?ĺ&O;S܀љxnCA} ]xzԹ _ew;[ 9!j pr[9UU^6TƣbihmM{bM4~ֿbJ &pA81HgS}mbim@>TN8!…!#vq0XGW~GBV|hvX@҆gmvuZKU|h.3 O2q+|nӜz=MyCOL&|q=_3)/'9{dM*t饌ewy&6`)$R'ui4z3֙YT_4I[Jt}m Ni=$9sơG[I g΍@6KiڏeLLࢍj|n Y[̑DOJka!ٖɔLLMG~CvL^ 9ΕKpLwZc)0xS>#q/4C%M.XQz$9"4ógG#װ H~W;Vͤ(dw6h{Ugr^ř~/*?{kyZle?hɇMnٌaߥ7FdR; 4/U@6jc#۹XuXˈ&qQ\RZPjM/,>E(|3ZQw͞yy'?b72ٍ;%"ٰхUց;`*HԁrZj,j j R{1z7u넼"W 7bh$e^t h6ʄ)u@E=L̊(,3=QfS?P[ӌQ&07fgL=%[S%cc͙*ywcWn2t/oR2ZHB}X/fA9a}_ '`N٭דM ߑ)KfO#uT5O\f90SVcA=9!h=Ͱ 8oʋw8=DR2&v9VR_i7ܾƖO<5F;%lT{(߸}U ndn*{dpNY!REמe}x2Ib=w{: tF<~O-{dB[.~Xް7@eP=ijRlzW}ItV*^N[ `&8ɈԹV2jNu_Ǘk_;+aUU(<'UrΗꐺr)E"eU2hszOuiXt3OzWh3d nn襉:."dr:%fNQ1G y񐇯_F_T%4{Q+="済drgnXz?v&p/ B҉TȧCckj|R;J3$,X$Yd~@]’SO^i)ܾx|t}~ E;'-/x^7㙪 J@|z=:ֲ0Iʹv\k @XӞB%εWeIzn=/ukZ+%F˩K%1}o"z9S$,A%mdjy6m-L%8]6ۑ_ͦ۝&h8"U}M@g9⒊Q={B1JWr aVM>&MDjihq "I^Ϝ1ɸvb\v(Zk Sr,hsN|Ң+Wg%[U de-=LP{w&Sk^qm,"R:_!j`~8 na-,`wt{XcY܍+jۃh:hB=2H2qK@1td6Q7f(3gճB[qJl֨xmѵqAgCzwrcM dVKP{Pkv e;a`}.Xe-Q#͊9rsmNtFZ%"T(m,WBEyKrZjG-cpF+>ں:2 ڏ=e+BcS U"g BX~a\ֻi󥩀diges끸bY#F* w>fi^y`ŴQph^K\677L׈,-sH~IJu䷗9ϗI*W UޞjXm|ǐcdG1얳.N۳̾zc P<|e1)ʓ hr Kw Emp~0z5 PfΨCԉB4gzZzIE#e&BX#66:0\zF'3 t$u/P"8JCJq![[XM$#&T:6MF['Etj:2ѓ)ZשD4qFƍ'sI,I:Aw0a $jk,8Mqҿ 0Ub\]Sej';G|J g[1L ܰ+ ć"fQEbL7"y8\XoNǓTȯ Q!mXslZ_moSk*r#һ sJrKuaG{h& P+}JdN ~ͮ\OBc&UX}4 vzƈzUً$$I*"ݐR8LF oZU׏2tZ z+  |ΆWbo dGgpfVj+OJTb('+8FfL4MBqxS6 C\7YRLhq#.KVTK8֊&+&0[E͝љ-ݣo1/q BGMKHH$Ehgd߸<ǓKpL;# w$D$ǔL Sbw'΁;M[X!.b8+ASQmaլ1ˈ&Ⱦbin@3#;Fj Hq"yTT^܎X;/@c-H2 LħWd[€;k ^,Uh9|0Y¬_V#$|8!EAKw7ڣb+5y?د20o6h1P`_z}nu#>N5W]RZ^AM(GzV9)}GXF ] ϐ.޻toVT H1A1o6+P$w#,y,RH2󽺬Vuò)N*,+BD[W mPpQ9[fIlplRKkc%\gI[h^[x TnvKtw)L`'2L@li>XZ?bQ|$r;\X?+0Jwa{x#JR2 3d2\ 0Q+Miه(كDko@lS奣惌꩕2" 䦔Ǡ~ ׶84PN 0#i L{Ee5{١?NyCY! F".ΥW.10{GD9Dkya((@6!{|ypkH15Ch\B a3d+B%~٘L;_\٬0U2z~&mk,Pm.8ia׏[ŏ?Bw7@F]#qˈZYk[2gE0$khʦؒ*{ݷ\ȔXJ!!/ҿ#o)?T '/$ $ܹ $^3h]>ڒ aZ: M 3(LTd%I f?Il(/%R2A'Ҵ^*t&1Pb) 8ZR2I1{,34ZXCBϫ[7^x|I[nL#[d [r3GS( k}+_<H2#u l EVR],z\N\2GuJ`Ocf-]44f6MVڷJUDz++ "M^Md:W@ DE\p]Ћ/l7,_`O:RtgaaY?@vښ2iZJ#׭^uo90VZ+ ^y \Pv^&UAaD+OX,Zqsʵ2b۫+ίIkɢOl>x+&g@qJPwC7uHhfObMI,5>!ǰL"]qRE=LxP'pA#5'M< uc75 -jHE5̪ ks XD^I<*?A1p<`GIl/VTD#ڄ%KVo\BJg0DbxcfM4iu ,R[G`VL!ZjW:3V0T3`~)t0%",hadۓVcVgp]{QW;6!oukͩŒ}3[;rG0t>jO*jMڪWBu[)WMr/t^Z>]ez)62ht)"b{e]oTznoNzRjPt2 Lpb?Ry.j|/sڞo^^ufj: p s(u}8i@YD3n>LbshB'R^pKE܌ 3E,I>*'!4'K^&{K1:Qynǭt^MLE~{O3nz`>Kri0u%kc=,x}LRZOn[{MJ qhObAV'O魘.瘬<5\bJ=NA!U6^M^$Wf*wˎhKGe;;:&T_q =Γ=yA}4VZ(*qPpnjz64Vx#!=}g/E mB^ʠnu.y8JEN  m:G &-Φ^ge *~7a@ml`U,_vT( o@S0`k5I5h8xgi>z1[PtctkK0tfl;rl>FuM]ooÝ HRD$:tQMƁ .#O ed/ n,4 kP7!Ř`7Sfs/*7nD3/ 0'Eү֬- ݩ6.ᷠd[5e|ccLqhRfFZ@Kz;r5U}!Ĉ ȷSh,$<;-Do08bxRon V{CIcb<Pvn!+"*kU$w S$+Ge$XTH7K"D!$Ciq??BrO5ѐ<( Pu9AHrv^~c|wmQj̸~aӉ׸vc pYʦ%ֿFF2؞WFC0JkW'bO&J=cUqO/J^YD=رq'fg.G6y8DB_;k/|+]"Tw/4}sԶ͹7)ukg gRyլ%{Bc&25tCЊJV؛ײ=_ݪ_P^Xxi0 oQ{NF8d'Em 7+/`z*芮%t%fdEzݡAz=-u%iH_ ֎ U1An J#B1 i G U v!@ـdH *AbVE|SWZoqԶfOj4y:0'o*iv_rY;ts$iZu'P6칄 \8i< ?i6c#ffj 56?s"!~8VǏcJZ[MqW'9X0@i elQ#+p]cϲ871M=szN[ڇ"e ӡךa .ý"Iͯ[4x,k "豶߹ykGHD;JQnA}+VFF>}&*h#''x`S.06IdI^!odW],*>r sVr^KĜ|ddrVC?d.Gȇ x^ct%M:ôtNʠ=䅙/%UwH6U(Mvc8 At0?~.Wň )݊FǷc3=Ni+Kgܘ ^olm29,|SN(/y;4kNlS>k_nOj^ea!w3R]^=r8s y֪ϰZV$CZˍ.1Bܿ)_%!#Rs>x~*v$+: !+ x悜\W0#LhG<~H,V9xd~:/Pʉ)/ InK~^ f0n5ҷ!$#5e*TX.f_1Y$.if엦O?B6JKq!_gZ<7Fòft?[|N9f|N&f&4dq!+M}]r 3׭?1 /~eSn#Iq'wS \C_{Y֦ 4.N2֝ fFY~͌¾ x>n`ok ]HϢcIi)g'7aOwe[B\ӟڞ)O~#LmN$(O]YhD[#e>ݩ{mð~~[8]]j ouT)gˌba};FLqS@@Hi .t۞Ѝ]-^*rl"/@xMWe+jx$T`P"Sk!w8k+C4tm%3|kay(¢dɜ`vűn/_ ,kğ{o29%a 3Fɣx9>g0$/19 Qn01^GxlwK*aKeooy_Ȥ5_fʨغ ;#MƮ+o 2QeMfǫ^Mũ8)Q7\>{SX9 ֚_V‚KV*IjkV!C,eG/S9dh:U5 tlZrHD}Tr=b;~GOޜjU-yL kU 8PQ0Y"o }f*Y=uTC1 _G0*ݺLd<2\,j]Xۃzb K;+9`1$CJ8ůj%U75FH}]at1/x,#$s8Q/ɴ a7|rUjxZG.$ .u./a~9?9aG!pV)I n1"+dI\>[Uy,YyPqEtPX^ŀjz }Yp5 9 +s<;=?A>("~yp)%VWF )׻E vdK`ΔvڹlAyjo +I-Z=')Wd!qLgJ1c}F<@i#MMTQXˆSdRoRcsO+'F!fy"wъ=]la<AW'\zF?thQFB[2(I0W:fo:^Ґ'^67F$A@(.v~dp*$eFGvT6+%21asI5/RSqHJ߬ 4\S13cp6l#6җ%yh^) \[Ԓԕ=/2Y5S)iq;Ofi5oqq3ҐUUAhB5v.kgEO}۔1D~0!w8*MzЩYK^mG;=i|?8_E#:pT,Coorsl-R:\mnzÏoPP =.WT$%=ൊF}txlJzm`nYcɷ[c =! TuzLuIo9r99rfe73L~}Z-i㉯rzCӣxɪ~vǀ8uo$ƐD$6EӵՖ*EcGw@nR5Z*8Gیngg|,L{7,e[1NoF-/6z:VU>ַ`x}W;-~l.&a=u8Dr9Zdgw%p=4~-]Rn 7xB6m܂9 9tjPXw숰wҰ+T\k=k>;>Ok2 s1c0>sv7U`G{:dKЯ&x̉[Nqr'尕^BU"̏ð.LC XgJN|=,9 p{–9.)"Dg؋` ,LාQx$\j-}J k0A%gldk 樊n2>6._ `O:$vk'{\8wca5'douI MϦx+^8]B0d+W)7ܹ:PL}ot[X.|JL5>˥ejI@7bQ>h LG/261ۗжC&VeJ'ױ7r y{\:$<&$MbN4@uD#=&h {(_N-xt M)ɤY2ݱ=cǬPpub*w ց۵27gdfNdWrmtN-_i{";:>`jpCsۖA|JW~q4گ80>{mv尽P`c} 8u1ȋ6K蚌hx/ޫP< ";Jk+ Գ@}ihh>%4!2G0y7^=N0dВѼͿn38bϫGwd&,|zwva?Sz>X x +T!ﵡR*i}gJैI^h*芗=43j>伣k({暣0B}`aݸZsJIzzP o;#d ]CN1vQ=j h3Q^kSDW :۬TPVU n%ڲ9ף^,D)D0KXa`ɍ%=8ߚ#(5L8\~T)&O覷ӿufsGxuX l).aV&.s=`. 8ReNgFYE탼+54T lԐՀ~7tgZ,pr/Z+/y׊%3GXymz*0'vD}gOzW> $0Kxu@Ƞ[Oࠫl~ȟ=-l,zlg~vy)5tƅy )4rJg /+;ζ_oԄޢx1X-)z}'mi!j YAjƥML$>dP/ jߡvtlz<1_7YGy4ߋS0#F Fh﵂eG0PT:DN-8hX۱ι#;-uCg㘵]+ ܖ=oqY"f)xOUʥD{(SiS1r0\*k{Α%)qB~^'Hڠ9`[bbL}KGv3Cg[~Sa1MCyp;綞D . ܈ PG@]H8F[hp6ndyN~qk#v^9趮;#gjxlWl;}}"'~1?(ϲ+G'~ú=C.i 8[Rj5~>cӼaFEjQ}[,Y}Qlm_K[X uCc)/[}|agQLѷL~#{|JA9#d%k-2GAWXUJ]ؿbLo}XǛK'`#N +Lp),zEzx8ATƊw[K ^UM0KsHN@}qEYg/z*+: ~WT\@@5]ʾ w`r9uG2I)( +Q+xHlY.| ul\Rؿ=Q S7n%ic}Nқ\v+5 ĪSJz穼\#[ ԣ'|5*n65 q*wu[㫙gi%r_O:0n% BnqGjo  @\UI7qVR̺31Iȃ=*O~gډ?_&".,HNa4sa ?$IU;un!0&ӃȢ̍葓Uj~㴒gx7[R0u9 `tV=9bU@NR0wF@,+[4Y LWtKɞ"FCo/w\%=f ufR>\7ً9>:$ɪH&++\rVI5h8{!zTvaF ^_bOIKQZլi5$BɶpGպ5rW&5&B)x\1mm9xՆxZ2ʣǑ*F1X6j!lϭ{$l_"|?ֹd둣h/>1}&(7syPvDn&y2Cmԃܲ-2gi/Ġ$D^U#b!Bg@#/P+ʖ@}(pF\'P(Օ\~ $&`6z:Doe Fږ/33-@+s N~+F*T+x|.MM؍#ȋJB?TC{.Xb6bk=;("]gM<aNsʯ4-+ -v+ (w|c-:qb? ] {5^hp9+ǡNFvN/wցN94- 7l&U>|btNBId\| ܀XVVi#B_0MuYo oa}<|~uSBE0I;q?TȰjM趯?]>|c,HPߏZqڳS }gAkpֶ KӨxkLYuS7 T)n<=e~F\6Dzp@*6ɛHq~8oTN)o[b;Q$qPNrc7Lmj@#9RSuA5$ۏwV$Kpe_*{ +7==:ٜM\\zf.gyzKqk\>ڸS39Fdv;7n픁 zzt1~X4-EӀۥyHS 7Lϲf?>98vP_ [-Wm7> jXDkD~آ @Q/CNB>ìjLڴ7gCgj\je{͟l4|j]8ܧ5d?\`P2O[._34{ u]hÏ1]4V#\Tr#8a,a-PU c?Z6Ljd6)r>rdmOɅ\Stfse=^]v kpA0?08EnCȍU y@cJĶяWiG,(6Ҕ~HڅF2{ϱŝ5p*N+5lj9pE!(gƫ p &H5);.X5/0\gd%27C%Jc`J_= rŞr h9!Ӕ=ҔT؆b@@(m S`]C--y͆bKUd/sxU]bv-FplZ4FCI6M3lޮ}4g*h__& 娭?rB VHigH|U1Y=V ݛ)Ia բc<؞`$8,~{DfT r")xO\tO T\c|@hhBٵ*1;K6S%ɒ|pK`ۆzL vqн笜!/>VHW+<5;utD䲎'H%N&}P 3 ꍍa0;eEόGQw;- vx"Ԡ2+7gYVb12->f9Wh}n!t\Im4Aw1 ?3ԡEgɎ@騎ʤo_EꯆV^g~0` C<b | 3U[ּ MV߷S^zT\@z,*vM4Y8X 2O >{C랃ezH9ΐ[_i vE\TC%zsK j}tv W]{҈"ÎWL<Λ[!qLtdUgR*=pݦxȻUV">ֽ^v,+hZL;lڜ)ot!${QuZLabwah뾼̺dZYĉ3T#hb>R4fng9Ÿ.bx;-KOVң1+*J<=# S~^/ش1̠<$5|Jvp 1R8:Z:"ѧ] c(AQfjiWg(k2iCx$CcM-mnD #uCSiAT1N@kxhb3XS/W"uTr4䆧 T* 4 Z@Jyh75rPlc5z#BK8mlU$7jpIqZ=Y30 ?k蹘'mR,FU\;B3Nyj{j w@0'h>l)A2X@]+08IP;?/N)x8/鳁$w(̤4So0L9,ÏYp`<{KU$WL5;~ &Ѽ9KsҢG}inkf(sBgQ Eޘw.$ c~+c_0x" %h8ƘSXRT3G#_)OB^hj:5"3lD14vfF͛‡vٹܽw;N70K&گYܼ88~QtPQL<B_b1/uT԰wzkimje3(uˋ_wz(8<ܕ(9*8&ѫφM41ں7ltSvc꺄j ݱ?"ͼ黎TyvI  b#q^<5;QosM⧢`SQY,w,ʙ?Qƥ I|MlEuDQ`V9;fJQO)7.c߾`Ə8m|VWQgoahcypr+MO)-`LY7#9xDFOuZ6RcPmY7Lp֭>SfR5+hkrx,fsċY "%*Eqeֽv8>NuvGZѠɉO0yAwiH.W6;*|gTEUTۛ)%y~-?uOtzUI;aY"lT֋Q W!$Pb{AwٌN^ISٷ?4M3p,OGAz7pc9uӢ2! 8DVM.Jk We:msb~' k}E>_*`7~` _arY?|s=Y,9Q -:HtE `d#I&ckdY,n4Tb9H_AQArc_0ZɊa"k̻K\ش#v^;7kDǕ@0\{+!>6  QdD:8xl]i}Hil*gbkJ43.Փ*uMFwgSa-t_ΆQ"'@pR~d2]#fAZxш{l fpf͐6Lǒ1u6CL@~,YeW֛PL۠}ؘ] `ɨp(Nx]*a7/ &Qiz lXylUpgfK"e :Ɍ?;]a| DgT!!?(r :s]pJ_-kLVmR90F1ɇ2~`[p t6 8FAM}6i]#۶"+r!Zc\yfrFIKm z,f.y(7֓H$>JСg@ԢU*"n,A|x]+q\Xa8U6`Ui.kC.|!71Q"XQr3 ~\ЍRg, wQc0OyMlGUAAōbҐMsm'qH~Bv#e[ oħI=6^Vzؼ. %5مBB}3r6)>qΘ;!AZR}IQh ܏!.>DmW3䏬ZzѲ{ ULp^t؀ɤoU*s),uP抪3@l`G'\yD-&(U螔d[e<}Ċ)) ЇXVLDOwM0@셀<%y-FI n( xfr$|gTNQ: юj_B0+@)TT~J/QuS 4Eq-M?.Ez}TJF qt\f'U(op=t~M `OE  ՂS1I^ 2\[GI0A#Y(w;[CV9̥_v9,3 ysGpս~|QlVv٨3#3|Fo%,B8&aԊ'Zhcg fPH܌TPٰ|e=!Ҁ\a$M3lq!dӁ9 ?NXx=zQHAm*fqEt/<}îFh`}4[XyEZq)ge P9#bх0x%ǁ07-HktWa. Oʭz opmC\y lGX?1ght\6Oѿ>sJWYXqtsz\ ʝ%+7e`i%#"j*gOJRG5"Xhm娄,S2,=z VSblj8d_6l\1>~K??Ki=B4M$s2X+8,`nىQ0%}|- #ݨay+$|?sxci"#|۸OaI+{BEb1KɘųU<29=A6 3ͪ@8?:PuDhϧ0@SFz=azXxq[S+0c *TC[[F {HꙊm1V!l\ƥ)V2`r9w r(Mty\e1Q;dDݑ94ۚHmq@1**>9o)n>Y^ KCWߐ3 ht$^2\ 6Lu]}O %1Ͷ<QLfOʟ2=Iı^6׀.4B-ަJ6l=?dG2F4`Mߙi)}F6rpC 9b nQ+- I )sf8Ocon摍녎b(Ήr7WMѼzm]S`2^`ϯ䦓_- fJƀB.=1Lfc[.[U6X9q{2pR:0SI9+&HW¼c|V_#ʭ #Jm&+N^Jt._7gD[]6}ok#]%>uB_z'ԟ'VSrdΣm1+}jVEǢ÷ɇN/5{H& F|YMxk8/AoQ&*`YrkQ5`z 6LC']f\1J11?j% Z5gO},)h[`:nHR+gMa+sKwesx{\H_a`%ϱ(|Y`BjKڻ9FcA{8V5xYm*QJ HYf1ƿB. J10[`UB4C"bT1P \?c|s169bn*&sYB 9pvbeɝJܽ* u*,;rUL^vݿ;Z1(>tM q2[q(Oζ9@O2P|OH ߦ^ci:Bܳ^V/"4T%%UgDU:%Mow}烼,ƳφUKu}Ք9Od3YtØ 3  I RZ24ۤHP r3C8AڗWC&Ƣ;l} DZz B7B?]mwn dJ 6z#lғ?-n" F1'0+`z<tHl,wbP̃g+yLwEsHetsY@cKrAT(B_C& LlH'ʑNاԿmA$6iU!1/ܗ4I"ÇY:_]սOD(NwS?*w+uqPЦ,ɭm!+|H%q8X^Y".-7Y0V~ua-oZmegTҍz\gi/jѨ,D@UWY2W,8;HvrN=f t+{4kDof˦SLډ:,* r30X-f Yo⧳O^d8|aܴd 7ݞzr[3~AAɎ"h|UgDo:E_jtfi]o_"w1t,rPe=.|ohd}D$ VFmL|[parz|0Uoo19pvX'S ;[nﺸPH^`ЈǼh_KUϘhkZ!RQV 0kDT7 ]G%ȚqV3LTbsS EOŶ/|,_dxql#1J鐑iC Ug\R/n;[AYN_'B:1cȦt)o*wU _LamID_9h1S4ψɍź,.@'[N{dk뿎r~D_@dݡ5JN򊤋wKOv^aP|;_*)V.}T%Y324IY8=xw{V)u&;m%׻4~MnB‡_va&,@:V`|;=p'"H^*+Q|)r7\k4J- %=K YI['(W)aѾ#@>$ `LN yR=`cr[-/ \e(j4GN5)굀 !<ʫ9|ޖ6"U&\t'e{vY"7<1_p:}.kV_<`aYx_S`"综fNï W8 +,1)vmG*n,n?91,H* j2G` g:!mP_[(w[FdSE <;"x[X@;UL&.ޝU^FV9\FrdX(*dHP"% GoN%մsT:!ad! a3/V:_N+wkWA3!Nã;aF"z "B40ʿ ḿ`f\ɻopS>b0a86M!uAu⥐g=6UG\򶤛Y/>W:mr71 ǛBKYwf];ъ'3+h{FKyUi2.| 4~—eA :~83@ .rUz7W#$%ΤPZ:T:x;1T&MxLl{Am-\Zre]S,Z%Hl, P+ftKB \ ;^~fuR~tĈ:$.&Q}fE>PG!iJƒa6o-_$zհt|ڸV-V( I!C?qAXIi^om`$O.c ,@ T &nbo29: TF2 ݃g[ӓ،AOuY|UN>|?&U}J M&{0`YcZX˪Ɋ-~=+ l+K`Y#} Ri}ȖAMOm5zq86Z@Z*zc%l*4pˉRqWp—J*5+Y@򅠽`<6:wT׫\ŞnPD]qIMDZ hBnmz-V^+nj@zHSh~0! Ex4Pèg_cugͮ QYӞjue£o?!D ]31ѪB'W"jGn`jla5jj0yuHCWf)bniL'o+ BYUOb!X)T|",YP~#&ֳoPTK1mh#3dךNeCo¥bȗz_WE 1fBGBt]" IU噋1uvP%Zm\x^MaE?6 ~Ɣ W2aR`Fq14>E{z3MdW]Z_}'r1Mu7ܳ-a4`ל~?[CGsf,\{!LUr'>W3m:0',.;\B'&BOQ9 ֬/B]G/J*g<A[Q"T~U?! wH2MfP5+ 1o\HtQ*JdE= E7\ס@ath|]AFU~@z)YMKAhOS,Ǒ+<+P?E`e+^K<9IࣽŲ g\y-wXȬU)w*.hl=@1+Ez6"TK 1/ژ9Id{] ` 47jotkjoVAdrLqQԫ@y3kxo5ƍee}Kݍiy*? 'Æb]{3##ˁjGnңnlx,Ǭd`ujSf3(;UgJ:þb<2A1;PmmT5CI;$ 8 7|LL˨u"5SҦ3,dԑ8)i4R5.(B_5V7P*WX+1YjFϐ@8׻DhVՕ9C:פ=SԎ?VI]=qjP5dC%%%^3ޢ OfoGz>y@w=SiM >SK2ko mDEvݭaɾ6gLT^3 İ3u0,;?sNϼ%&?)xV"z~՞F*` ^QhT;Q8{8 s-6&PCCMx43x jeH߉d#†iHU7~.nau}gd& iR(؃W> %TQ[QnBhvIC%PMĀmб(M@OsLa;!=r[d^lWǕムΪg ሶU~|L>Y |gAd\|c3jwP3UrcjYR-qىI(U=5?ԯ C*ޡ;i9;8no2daXD2Cw>–4B~LDfAþ(>FUh2#3FYO!4ɼPg}I_o?nOp44d,?'xzp-̚h|>yMeNGϳ#$ԣ Dn*gC8Nn>'*GќE=7‘ofG9'gRTY9cI S#1]өy_8 MHwfԚ;tBfؔjH?Y V "ӊ{M1B/~^V3kv,BuOsSAg"p}ByBlvv/_ Fe/ 9T?/Q1$0T 5ӸG6;jZ+$+>#L[0y0oYn ~V1ᠴqd;z+z꧇LqhQ|-.`E,ޒzW/He^?ɃoghE3JכxeoǶ!Ï:@EprmzILXKd}. pnۯrp޹Cjj}Q;q+j`J#ۖY9jmZJbu&Y4=lLD^g-'۱83wH_J@!̞ WXio:t](p,<b ^r#*E%8u˩ o^Sp-<\;BPj'G׭M+xKSFv \ Uo n*' 6`kؾ }RCl҈4 oLJKHd럷9]O4|d,-jpCҜۯ<9M,i5qFb$X=1|b>r~N)qJJN#Gs%ӕȮ'@*l6`Ac{?y[biIRAԍ*O6NcY*A dr.̻-iqr16 :L`~6qH淕=W1tlj!!-t_iu3p>:<23ӵUXGB=|\Vsdp/$zlQ:d{g׏Hxr  .{L $K+W*j _}^Fw.LϘ/]D2L9)ga = ֗<(Nݯ_F5"QQp`MfM-3K+QD >TyDZ/[0TM7RGo~:L}.gYzIbYϔAT y UBB76"װ.᫐17= jzik*"YH+8_ `^lS"o:َqNѝ<!vgTFg1}Z? 7qbmƿٗ} րhyY`y+g;.TY$~Iz' *Gٙb`j E? ސ]dm@ e#Xm7S3޵BJFHH$ ,6HP#׋cN+4l^g?gp]t"bۆ{mpyrv]*)'%s}Oz ßJ88y  _񻻵lGq*gю=6k:ngZbC,EšVQT%2pIR'B} ~\Уx!Wxe8}Ӛ,V@a@ ;7Hb-PY_zYPFUO-%52.m9X`RԍWFzG`orrUEr|5ϷnE:}H`sI2fGV~4G5꾾fV%Ӯam[16=lƼ#Yr^񼈃ЅiWrNLP[G)0Hu~)6Ov(t"M)_h 𙇪~fPO0H5B7$,GNbgRBRIױi"BQ,Q)9L] j*IT|S;J0apJ}Vu+* Z]/T%87]mfSPVj]{_"@l*hDaT'fC'T^ב=wgSk3F`I㋊nsJQJZ{7m,&K endstream endobj %QDF: ignore_newline 22 0 obj 146576 endobj xref 0 23 0000000000 65535 f 0000000025 00000 n 0000000097 00000 n 0000000221 00000 n 0000003486 00000 n 0000003507 00000 n 0000003589 00000 n 0000003741 00000 n 0000003793 00000 n 0000004273 00000 n 0000004293 00000 n 0000004357 00000 n 0000004555 00000 n 0000004591 00000 n 0000004905 00000 n 0000004925 00000 n 0000006943 00000 n 0000006986 00000 n 0000007229 00000 n 0000009597 00000 n 0000009619 00000 n 0000009703 00000 n 0000156405 00000 n trailer << /Info 2 0 R /Root 1 0 R /Size 23 /ID [<31415926535897932384626433832795>] >> startxref 156429 %%EOF qpdf-8.0.2/examples/qtest/mod-info/files/3.qdf0000644000064100006410000001414513247541377017201 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /Metadata 2 0 R /Pages 4 0 R /Type /Catalog >> endobj 2 0 obj << /Subtype /XML /Type /Metadata /Length 3 0 R >> stream Exporters Export Their Export Goods (Including Titles)Export BusinessX. Port endstream endobj %QDF: ignore_newline 3 0 obj 3616 endobj 4 0 obj << /Count 1 /Kids [ 5 0 R ] /Type /Pages >> endobj %% Page 1 5 0 obj << /Contents 6 0 R /CropBox [ 0.0 0.0 72.0 72.0 ] /MediaBox [ 0.0 0.0 72.0 72.0 ] /Parent 4 0 R /Resources << /ColorSpace << /CS0 8 0 R >> /ProcSet [ /PDF /ImageC /ImageI ] /XObject << /Im0 9 0 R >> >> /Rotate 0 /Type /Page >> endobj %% Contents for page 1 6 0 obj << /Length 7 0 R >> stream q 12 0 0 12 30 30 cm /Im0 Do Q endstream endobj 7 0 obj 31 endobj 8 0 obj [ /Indexed /DeviceRGB 255 11 0 R ] endobj 9 0 obj << /BitsPerComponent 8 /ColorSpace 8 0 R /Height 16 /Name /X /Subtype /Image /Type /XObject /Width 16 /Length 10 0 R >> stream  endstream endobj %QDF: ignore_newline 10 0 obj 256 endobj 11 0 obj << /Length 12 0 R >> stream  """)))UUUMMMBBB999|PP֭3f333f3333f3ffffff3f̙3ff333f333333333f33333333f33f3ff3f3f3f3333f33̙33333f333333f3333f3ffffff3f33ff3f3f3f3fff3ffffffffff3ffff̙fff3fffff3fff333f3f3ff3ff33f̙̙3̙ff̙̙̙3f̙3f̙333f3̙333f3ffffff3f̙̙3f̙3f3f333f3333f3fff̙fff3f̙3f3f̙fffffffff!___www˲:n endstream endobj %QDF: ignore_newline 12 0 obj 768 endobj xref 0 13 0000000000 65535 f 0000000025 00000 n 0000000097 00000 n 0000003824 00000 n 0000003845 00000 n 0000003927 00000 n 0000004299 00000 n 0000004385 00000 n 0000004404 00000 n 0000004463 00000 n 0000004910 00000 n 0000004931 00000 n 0000005778 00000 n trailer << /Info << /Subject (Tammlin) >> /Root 1 0 R /Size 13 /ID [<4ccc11a4a9c8b04da971e7f2621e1c62><31415926535897932384626433832795>] >> startxref 5799 %%EOF qpdf-8.0.2/examples/qtest/mod-info/files/empty-info.pdf0000644000064100006410000001325213247541377021123 0ustar ejbejb%PDF-1.3 % 3 0 obj << /Linearized 1 /L 5802 /H [ 558 123 ] /O 5 /E 1860 /N 1 /T 5624 >> endobj xref 3 8 0000000015 00000 n 0000000493 00000 n 0000000681 00000 n 0000000923 00000 n 0000000972 00000 n 0000001078 00000 n 0000001597 00000 n 0000000558 00000 n trailer << /Info << >> /Root 4 0 R /Size 11 /Prev 5616 /ID [<4ccc11a4a9c8b04da971e7f2621e1c62><40a1387ef1f610b88cefdcb01e8bb8de>] >> startxref 0 %%EOF 4 0 obj << /Metadata 2 0 R /Pages 1 0 R /Type /Catalog >> endobj 10 0 obj << /Filter /FlateDecode /S 36 /Length 45 >> stream xc```e``c pe3QZ0f`0dLh`MU endstream endobj 5 0 obj << /Contents 7 0 R /CropBox [ 0.0 0.0 72.0 72.0 ] /MediaBox [ 0.0 0.0 72.0 72.0 ] /Parent 1 0 R /Resources << /ColorSpace << /CS0 6 0 R >> /ProcSet [ /PDF /ImageC /ImageI ] /XObject << /Im0 9 0 R >> >> /Rotate 0 /Type /Page >> endobj 6 0 obj [ /Indexed /DeviceRGB 255 8 0 R ] endobj 7 0 obj << /Filter /FlateDecode /Length 36 >> stream H*24R0B elBɹ\ .\\`Oendstream endobj 8 0 obj << /Filter /FlateDecode /Length 448 >> stream H$R!Q\@`00šWQy LŧM\?DE ԥ +*0E!.!MZItf yط3 ˏFxo_~endstream endobj 9 0 obj << /BitsPerComponent 8 /ColorSpace 6 0 R /Filter /FlateDecode /Height 16 /Length 94 /Name /X /Subtype /Image /Type /XObject /Width 16 >> stream HTQ 0C)m-+t&ڲmx[(;1z_'Z=b<pLٝϵ{8`ɯmendstream endobj 1 0 obj << /Count 1 /Kids [ 5 0 R ] /Type /Pages >> endobj 2 0 obj << /Length 3616 /Subtype /XML /Type /Metadata >> stream Exporters Export Their Export Goods (Including Titles)Export BusinessX. Port endstream endobj xref 0 3 0000000000 65535 f 0000001860 00000 n 0000001919 00000 n trailer << /Size 3 /ID [<4ccc11a4a9c8b04da971e7f2621e1c62><40a1387ef1f610b88cefdcb01e8bb8de>] >> startxref 166 %%EOF qpdf-8.0.2/examples/qtest/mod-info/files/no-info.pdf0000644000064100006410000001323613247541377020403 0ustar ejbejb%PDF-1.3 % 3 0 obj << /Linearized 1 /L 5790 /H [ 546 123 ] /O 5 /E 1848 /N 1 /T 5612 >> endobj xref 3 8 0000000015 00000 n 0000000481 00000 n 0000000669 00000 n 0000000911 00000 n 0000000960 00000 n 0000001066 00000 n 0000001585 00000 n 0000000546 00000 n trailer << /Root 4 0 R /Size 11 /Prev 5604 /ID [<4ccc11a4a9c8b04da971e7f2621e1c62><535f1fbf51fd65a185c0c6ea702c2f90>] >> startxref 0 %%EOF 4 0 obj << /Metadata 2 0 R /Pages 1 0 R /Type /Catalog >> endobj 10 0 obj << /Filter /FlateDecode /S 36 /Length 45 >> stream xc```e``Rb pe3QZ0f`0dLh`MR endstream endobj 5 0 obj << /Contents 7 0 R /CropBox [ 0.0 0.0 72.0 72.0 ] /MediaBox [ 0.0 0.0 72.0 72.0 ] /Parent 1 0 R /Resources << /ColorSpace << /CS0 6 0 R >> /ProcSet [ /PDF /ImageC /ImageI ] /XObject << /Im0 9 0 R >> >> /Rotate 0 /Type /Page >> endobj 6 0 obj [ /Indexed /DeviceRGB 255 8 0 R ] endobj 7 0 obj << /Filter /FlateDecode /Length 36 >> stream H*24R0B elBɹ\ .\\`Oendstream endobj 8 0 obj << /Filter /FlateDecode /Length 448 >> stream H$R!Q\@`00šWQy LŧM\?DE ԥ +*0E!.!MZItf yط3 ˏFxo_~endstream endobj 9 0 obj << /BitsPerComponent 8 /ColorSpace 6 0 R /Filter /FlateDecode /Height 16 /Length 94 /Name /X /Subtype /Image /Type /XObject /Width 16 >> stream HTQ 0C)m-+t&ڲmx[(;1z_'Z=b<pLٝϵ{8`ɯmendstream endobj 1 0 obj << /Count 1 /Kids [ 5 0 R ] /Type /Pages >> endobj 2 0 obj << /Length 3616 /Subtype /XML /Type /Metadata >> stream Exporters Export Their Export Goods (Including Titles)Export BusinessX. Port endstream endobj xref 0 3 0000000000 65535 f 0000001848 00000 n 0000001907 00000 n trailer << /Size 3 /ID [<4ccc11a4a9c8b04da971e7f2621e1c62><535f1fbf51fd65a185c0c6ea702c2f90>] >> startxref 166 %%EOF qpdf-8.0.2/examples/qtest/mod-info/files/4.qdf0000644000064100006410000001415413247541377017202 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /Metadata 2 0 R /Pages 4 0 R /Type /Catalog >> endobj 2 0 obj << /Subtype /XML /Type /Metadata /Length 3 0 R >> stream Exporters Export Their Export Goods (Including Titles)Export BusinessX. Port endstream endobj %QDF: ignore_newline 3 0 obj 3616 endobj 4 0 obj << /Count 1 /Kids [ 5 0 R ] /Type /Pages >> endobj %% Page 1 5 0 obj << /Contents 6 0 R /CropBox [ 0.0 0.0 72.0 72.0 ] /MediaBox [ 0.0 0.0 72.0 72.0 ] /Parent 4 0 R /Resources << /ColorSpace << /CS0 8 0 R >> /ProcSet [ /PDF /ImageC /ImageI ] /XObject << /Im0 9 0 R >> >> /Rotate 0 /Type /Page >> endobj %% Contents for page 1 6 0 obj << /Length 7 0 R >> stream q 12 0 0 12 30 30 cm /Im0 Do Q endstream endobj 7 0 obj 31 endobj 8 0 obj [ /Indexed /DeviceRGB 255 11 0 R ] endobj 9 0 obj << /BitsPerComponent 8 /ColorSpace 8 0 R /Height 16 /Name /X /Subtype /Image /Type /XObject /Width 16 /Length 10 0 R >> stream  endstream endobj %QDF: ignore_newline 10 0 obj 256 endobj 11 0 obj << /Length 12 0 R >> stream  """)))UUUMMMBBB999|PP֭3f333f3333f3ffffff3f̙3ff333f333333333f33333333f33f3ff3f3f3f3333f33̙33333f333333f3333f3ffffff3f33ff3f3f3f3fff3ffffffffff3ffff̙fff3fffff3fff333f3f3ff3ff33f̙̙3̙ff̙̙̙3f̙3f̙333f3̙333f3ffffff3f̙̙3f̙3f3f333f3333f3fff̙fff3f̙3f3f̙fffffffff!___www˲:n endstream endobj %QDF: ignore_newline 12 0 obj 768 endobj xref 0 13 0000000000 65535 f 0000000025 00000 n 0000000097 00000 n 0000003824 00000 n 0000003845 00000 n 0000003927 00000 n 0000004299 00000 n 0000004385 00000 n 0000004404 00000 n 0000004463 00000 n 0000004910 00000 n 0000004931 00000 n 0000005778 00000 n trailer << /Info << /Producer (Obivan Kinobi) >> /Root 1 0 R /Size 13 /ID [<4ccc11a4a9c8b04da971e7f2621e1c62><31415926535897932384626433832795>] >> startxref 5799 %%EOF qpdf-8.0.2/examples/qtest/mod-info/files/source1.pdf0000644000064100006410000001345413247541377020421 0ustar ejbejb%PDF-1.3 % 1 0 obj<> endobj 3 0 obj<> endobj 5 0 obj<> endobj 7 0 obj<>/XObject<>/ProcSet[/PDF/ImageC/ImageI]>>>> endobj 8 0 obj[/Indexed/DeviceRGB 255 10 0 R] endobj 9 0 obj<>stream H*24R0B elBɹ\ .\\`O endstream endobj 10 0 obj<>stream H$R!Q\@`00šWQy LŧM\?DE ԥ +*0E!.!MZItf yط3 ˏFxo_~ endstream endobj 11 0 obj<>stream HTQ 0C)m-+t&ڲmx[(;1z_'Z=b<pLٝϵ{8`ɯm endstream endobj 13 0 obj<>stream 40, 128, public, encryption, ignition, primarily prime My New Car TitleOf The MatterYours Truly endstream endobj xref 0 14 0000000002 65535 f 0000000016 00000 n 0000000004 00001 f 0000000066 00000 n 0000000006 00001 f 0000000502 00000 n 0000000012 00001 f 0000000562 00000 n 0000000773 00000 n 0000000819 00000 n 0000000922 00000 n 0000001439 00000 n 0000000000 00001 f 0000001690 00000 n trailer <<75c4e9f8c220344d96a571ddc5d4bb87>]>> startxref 5498 %%EOF qpdf-8.0.2/examples/qtest/mod-info/files/source2.pdf0000644000064100006410000046335213247541377020430 0ustar ejbejb%PDF-1.5 % 1 0 obj<>stream xPK 0zY |$P} n-I,ZDx~Iϲx49s> endobj 4 0 obj<>stream x|x$-;cv2m۶mgm۶m7==OU{ލU$r4FƢ6N4 skgG[k}[)cSg_Dw 9;;uR2s8,F&NV#==8:pLl m m̍m z@ @JAEE_ acGsSc+[K$flc7i"鄨񿲥gg99q? Ells'Voutk'-ml]m$MB rin  b)P8__v'H.=ӆ(#جQ 3K{2CՐ7?Ǽ^ՆnOR9ï$6PW Q3P*[<etSX'٘S'j.1dhJ""r3:.+ )vD#0v;|S{dPusϪ%C؋W#w9=Qm* 3.;"E"2`ܰENk+du1CI#G ܑ+D>U^HCzaNg]AWCω==0oxOy D/>ia_g mk1qݵeh O'!\۪ ro.q4 o4o+vSIsB*4ZtK('m菂;+=;AX}ZƒY't\n֍SY858nr* -̝SX}iFRDUxyzCG yLǸOux` 2 Q[{,w뜋'CϯQ=n: T+='$\H[ Yܺ|i 6W+%˥Bʉg{AAȗeRW1TA]9JVA3Ht&RByw!Ø@߸ ? >|8bku[PF)!dב2TE*}VN8:-uI TxD }퀟<"bwVV ȋf)FJ&ژye0En wLEh1ߨ* ѰS{N ɫR8lb:ƜrpR_U2*.|Yumm6z!vu {'4 h,?S;;^}pN$)ATbyDiٺRL7{u\3Й: *=@w7[Ҋ48|$*YOS8_ 8^<]1e@i3z (v%ؑ&BQ[3o,O#\}"đ^b,h#;f*0na(Yb+hqUJթB80X ݟ% cwZ\Zc%W\.y ؄NoS  `̀ݙgԊPj~|K+4V@R[4m 79\|J&ݘ6񼝯{je 4B}T>w*?Wl(80ǚ-Zw Kqq'O#SZ >ΪMw刲o%&LF:pn'1~aW 9Dhsa2.Sx|I?"NJ9mƗ8" ʅU\ 6OѨyF;HK+=fHx\J@^*"~*8[3һMTk6fFWa]P/9nI+@5 M~h39lb|`{ɻ $5yU藯`wކDekhXjNCzI:*甎&z@R$ ?oI>v">J9$>J@0:TnbQjs*ͫ({t@!$k+^& J)Yf~&F.+eJ\1A.*[ 2z|\:ץj>(R/9xXmí'$# q}SV;bd1nC[7 A!%t]/i ipP^$p֥~ GE"M;53b=>yC-i\,/y.Re/Jhh&x/N|#M>.Ǜ4+rDW:9v~ hTM/š)0{9g=,AȷWjLd6mw tۖ} kezHabmK0z ґ4#,Ĥє «{f '% r#V\, >) eAy9~QnqiE6NaJA'~} qȢ'K!<6Pml?70hȝio 7P 7t8ണ9|8L!P6XQu07R)bW)MkWdҔG,ODi'-};`&iհc7'6ɫ&"@)9:x jNBa=j\F6[Kfp>Ͼ6Pa> b067qs_<;)T-weݢ\~T!ɕK ^&u*fY.@d xmX)S{TmiaQ`@*ǐէKj_1@DsC,Eq'i}ɒga"ܩ_ !4I1Ժڴ))dG2s/^mCWھ莐_9db:))ӝ-\__Ղ M~LGq];} JEE,bWq q1{X;`6̃EǰU 9.YC֖ A.P;6×Ĕ^ b?!9-u+Q27)9*Y1M@y0un5Bդg3\s뇜ɣb=muQ}$kn (?8٦"ąF %RbAJP?)O*2ɶu#YAgDN~?GVz v. xtUWY2,<+sz3]"!^e.'+( Ĩf\2@e`I{lyiYaЌ70,Q-n.MFQ1)Izĸ5F"%{Qhn鯔h+.)oew6XEk}ms#5PvF  TK{s l2yh243yyv2VvX>/)YwE,wRy7!sm9ꡤ)u~_s!A>h U j@AJ!11)դ?k;71u6~bNtNYy=鳿tP9\ M'%5a[V]][`{)Z;༰~?mktۄva!2i 8+ꝭ"H;% q"kE%jR$3iu{gן,#Y]TQ5_Iz=Fb7 I p"Lų$#쮿ѥҷp k#@8s]q*EK9>ogSx-3ia1z!8ETuKz G6~rΧBIR{20~OȞJD5A:fK^NT_b?^sʌrX( bQ*NPgBf؉RP MlhL,n։hAؙo3Xc;fXhp'?娜GIWu:mY8~OqT7G7g*N(p1(Iz1GvkةH3;s)9A q?E|tϔ/E ڸ[.k83-8&:T0KZű湶QChBDSc,, i ɒ$UI61vs!<E;-1b[JT;KSC]*>uLIM]yj!*}y ZgZYI1o] 2h+s|uȟm^[kZ@v ^8GQL0lJ>i/J$*^=[LR%n&hm rpzwtwuSB Y^a)#l_M{)?~=&Iw,?6h6WڮfIq @ܫʯ>o w)]Z ̇~iEvPWU?Č'Y?Uqx>(A{^3="E_/5Gè0a(mLh ! Tm*o6mHr-=ҕc8Ќ_j |8YraYv:Kަ#KeOBW󨟻R pE/`MՇF8jrVMAxty~[Hȍ5\eQ띲6M6Ch  *n,#CTy*thFrR"iM RMlb^H'}@WZuvxf j[azh43VVLïz+cM$u+v%uO(>< 0Ea|8zPZ\ڮaqGe^;`x;|?-yx];tmFͺ+Y޹x!O+ I4k"ͧtV?//L;_ܖч*QUSlT>j1G)V-Sd$Ml1ܣAZ=Fd%?QGc=sK`L5%㍄{Rһ{dv M ґcH1 aG wG>;EM~ƻMy,|e XB~W(T{_SNTD~W3w"md) `Vuq8%6es0 zve'3y!-2^}($xLחhbs@~=YBg͖~k5vGxOΛelIhL_VH`y:nQ(sX}#JCn<ʏH%d2] ω_V+y gף1K ՙ&l K9fG$!ަP FLi| ,Q-+,osYTσa%$F n?:h\UN]Fˁ5]/հcޛ@J$p|vSGJ;[TV {}15k5SW/24)wCan _R{/g:ln4ZM#v;̊zGC'`C 2QF dxI/@:!IAg8JVL;W7%mhikXnV#)8͞"aBwĊ P7k4їnP&t!lөy?C{o>172m0FְuI':|ދDuuX>P =? fR7 Dd$Q2Y(=`˝6U=.#Z hJ8\@➮OKim8*S;}gf!&}cY"n[̾>ԟߝ w4_cG#g>rv?ovx (w̼v3=d`>mmz Yg$?:-$b ɱy x0|@OhENp8}3T'pP4+ ԏL4^cJSe_Q-?ٿ3 ARlC<$om ,'J1tܱE"ʳ|(-YgejKi22h=;?)BI*^hFg;+zKåК,ׅV*̋iYjhSx?AXJ .ߐƣTFK]^&3cÂ+ȥ,\d+lq"̑FThG[&遤" G^w5}p nh QsӣwXͨ:Q@u/|qDJ޵<LQHg"CCf^"5xʞ \suIegQb r8&c3$ ̮ooJϪvCaK*N«t~ 0ޘ2y 7]S0{JpG9ot)˦)oVKM *ɜ~; nB39@72yi& D,s4:=?Ou2T}Pd:`<6- ˌi@e9QQd7x0?KIQ.V.}1ϋz SZ-*il1۩SԒ {E\*0[i3jb'8\ISH#c2u1SʮiwY) #Ϸ ɳFI|c B4S)5Ŀ 8``bg .g{:=̗Lf-n29h'-2z_ո!+ =:Z~3)[\b />~Z GKx_AROiu}恽Jm_fpLgL eǦ:̔ģPע_0˷51un$Q;q>mǕZj{2 drHf[sW:xEzAӑ7,?5GԌFN; !<VOg;t&e9d-ѓMo SJُKoiFW/ՙyhl<*JߢˀPepF>T7~d0f\0M;A£)"q$ ȓo͛0p̲>^&rr˵uH!5WoRLqp8 z2̔nNxEeXv$z:(}gR""Բ 3zJ0_poek04ȣԸTf_Л߈ۧߋYk kJ ꯇCP l;Fħb$_,]ױeVqC l[OhjU`%_1xb= /d^̴TjECgSrq)U/9d.v.ܲcZ`MVO0/I?F7!Z o-_suDŻ+@1}EkE6 1 ndU_3\#\ҞD9qozC\m;tڹ`1zXeǛw#&$ƟP)h(x|E2(sYQ(#&uBu }C?fJ1s Rs(Lg &o9v aa%}Š3ϸQS { |V#03|Xjs،ek8fH! wQueÝGy1W~l-}1R`z [Q_9[rah B^;ή%+/ܵz%" =Kz5[-#>y/ 9)guGGWfp xw&&Ưsm0$Wk=&Η |V}Q%˪4c@4-}P$"u[6B3bt{7]Gܩ ڈs^[:Xsm%JU1+z$Ć9 +Z'`fU)g/&@નGd'*3r" _4w݃ %CpP[',яcIJ{ƛ!`B1HCj*T:Rƿ9o rHw#Er1tD㞸Vu83LLȲ5N&CbXOba-O3yҗ}B_]A).>S*n4{ovN8`#.X>D3%ޙ=m۴M_)L0i`Ot}^bLۑŋbҞTpbeIG]Ckv/Уdy|oڞaQ& ̓c㞯֞W 3XQta\q88\'4#M B(bXb-`dzރ E4ՈhGl2I |\~p[ Uv vgz~Z-9 .G*!'IslYAw!SnRHt ÎNDƈD8CKy疇{lSE?>(S (Bg@msrKuh/B4F%P)LUgzK4 ;ݹ XC.mSgmOX+QW'ugKq~a]lQjkLA].;o|,Vm"u5 Hp3oAokzYJ-B~Z䥎mw&ˌ ;Ucl ֝n!Ǔs׾W\U}P*\r4EB y_3`q%.wScisD5Nz?BzD2ZQInFukl9m:FZ I''V:G9=ƦIϫ(e_϶Px˕Q5{rbm* HHv菜s闫-Uʜ6r}+QDXk+@WWH&M))os`oWr_O_⠣qpsV$f ܇v]rbj Q[Ouw|Cjܰ44Eې.zo*L7XO*gs$"&ޅlG5>۬t;."^$> 3N<>JCIMh^8L09m?4E s͇V$Wi m륨aT>M0˟j4k=Q2|oezV)a|TT[$,1FyK\lK 챀SnY*|ʕj]x{!-N8LfޓYsrqDH)Q}ͳm-Z &* y&l)rJDtnc3zΩ4 '`-mb[S՟5np4fݘk k,)nȰYZa#PIm;EyC *OV*KOfTpM$=bϝŝ1t8eP?O$Pz쟷yBbɓuq)P'VyWl?<' [Pd<"N  ;,DaA/zhH`1m;4.19A[wZ$lD<iZp"p!)Q9 һI]0zǥ+#wźz)&֣~#$PYTtlW`R#yJP\@vt@_1dǫv/F #{~27F'ez4@G.Cy=•9UL2$ : MO2#b-7674#ްe;u3TK yREV]pS-u2RjVʕ%Q~ 3Cd@ ~*Gi-wI{z13jv鍳ݟ>mIm*d*z*̞oL:ف40KcNyҡOU2y^I+dzy^;âxvLq݋wɼ:!V kSk Jkrl1Gҟg>U6N>s{ܡs]pQ'+;-3 8c!/`2*U[azRX$حXm{-8׃Ka@QrqۏEmSTgH0U\-Ďz0El _A-CD*II }y̖V5|x=8*$I ,^m;Oy'I,3o`%ưr ЕMTiEN] GMԍx*  j+zʵÑ]BWw!9aELqԽti+7H 7.Baap\ZZdC6Zfz+PCwgо1cE LamZw8!DG(ad=pRQ&V:֠Wdǜ)yL^є%]Vfڽ QOgw<0 , M\+TE:.bю2}z*&[BCatj3L[Tm>g a6Tw@H*cz,vdl0!Ѵ􊄡c,CX}x)C*Ґgv2n(h 8zXU4r+tf>#.f2Tuݻ C2rol+0U  ghw5Z+ L-`3*wg(ܩѣUc g > AѴi4Unm1q,y5b) v]?(fgT O?1G"Ic2N{M@4n<!M[}`s 31& ^G]ua<*vNtTsC";0),7}#PH*%)2$)޼ū:*98yXh1Cr%ݫ̳O3,[tʉFeDzn [wŢ,ڰyQ)G^ܔݧ`ǴuZ}=8Uif5SSe6XAޡZTZu\+pILSm^Z]$̿ m==N ͧ,մ*JJ0H[)P_ZhugҊ癔çq<&˨ܴacA1Rm(v;0 (fa RIMw[~YPQlUB`5"]縵9m9"1^$e,gQs} MH !>PS>ΚىIһ= fېX;=߸o4 cgŘ07nės޵HS4́Qovݞv! S׺طof2`l ~Nڣ@jXkNgA1%7v͜6~ZXay*'KAfFL",hamzHz%iX>I}.;ф2K%-爠f/d_`ۘ~wDU06T<GNR'B:2o2T`:,}u|'a]W$hڧt5W2ȀJ L9P}4+se'ZBSMm[l@$=bb̾T5?6#5I"8bKܲxQ+|.iahwm?sZ}Ҷ @ C$dYTT:ȸ(GT)|7z5m ނKt4:,El|lFwb++暭[+WgnHe+#t=X-/}7JM7b'!"c Qq`p|ts;px! }@x,s3KuɶhhI;3kkF,4"p@5†S?L[xbxU[x o{aM0˟[D,:voJ <ضbY 0 ijP,iU'8eb7^(AT}n19oN!f)pK\Iyg{ԓBU#09L'&WgF$ӡJ8@w42 $pҚykjN0o7~3;p.'⏠s s+#N|zQ̀'9^p.}zJR LyOňӆt}. kzAe;r^@Gg}QuTfy &xfǹ ?I˜sR5$ ss(?ޞ N HهAaoRMFsv1^cèB#!>= U@~e?Q[/fQM/٠G\l}!U_Hk)+4$AZn%([/ ގK2:\C!h79혰5əsWQҭOLl0WjP]_z:r7MB+Ē$ t|M8,ɎC}V qxlz~چX4SO 6W2s9#)>i|VPIFKĖ쎢x< b}F<άmß¼jH>v"~v?:S5eusFie/_NC3~+wKZ諊sb>HCԼ$B0*:dxd *ŅQ̗fK0(mr'UnUmz`D ɍ@$6Hlfk zq#3WDmTnPp>_ʿ#sg(NsWj՚x71Ov4'&Cۓ$97J4.utel,<K]Ylo8+w[^#G~E:viŗvҜCzǺWPF#LA~Ya{:G0rffRXly!}3\,[ziқ+"32~] d 'C ǢkIvoLitEǟeIl|>bSpBa*"Aтc @# N 4n4ڈT-ϑ<774=W.+P+7cM :պ^K>5n}k{J9|tWW{mor%,|"s| oIs\,@'b,G47 K'?#{>4RyWO GU3zF[|u,f+/V% * Wٳ_\kC~,3{1AQ_5eΠY`^=Nxƹ4L6g3K2V8@@G8Wћڣ#=#3`zAeMv`8P%[rNv$)$9"aţ)se^Խ2xRA{p%LJe= qqjMtw>[*{!D\c+iRG:_ p#Wp "( ,ĸoo:kּeyo ūI] 22(Uq/K r>g 36N9ϖmqr"*KڡKTvҳM |K{~B$CUUv)k. u!z7\L8)]:L, ޶2e!"dBI p <^BMBϣEr߆7 B)$KL ^\.gJ?|EG)뙳@j~Js^ ~~DӘD2~vȳ" a)Xݴ fSSY{(޼nt5 auNb̀_֘!Cn#}, Gú=30 !yX,ooWC"׬ΊAXAz|ln\p5V=iXjI!46fM 8?MHl vEĄ9K )d;u ^n9._SI~*>2p0q# ܎99P8^; JiR)=h@H B pn{џnQDEVU)+)F-._j@ ZsAo., 5=Dg&RJ3B?؛T"^vƗV^y[ГP߂},G^܃3Da7OXʡMa}j_s%e CWa˖,N.6 #!0ުbk9GSƬ|(Yu3smcy#b%TKX L J J RU+&j !gđT[jcŽа[nVAkG\+Mrf|Ͼ|:,8V8@gu%mI2E&ٶsWkACޢ[FF ByM`vʮ.C'B\Dqdc}0k_#x9S'({dn1}~(B g\dk4EU}|ƔIz*1xhkD2{&#ך3pAc(0$iű {s,+C_Ґ%gzozܲ@'\^M[jq/_7{ub^I .VsXv~]vz Wq>:ZocE째6^ƆB<Ӡ"E>70mՏ,0+]Rn{IEu#D Nh6_j 7L=K)YhΧ2jFmt#?&xR,5x͌hHRq%z>b.3;F> g#eL|Qi~9g3q6X}fk*w]K.7s}Cu}Ecuu9H'êğ: /,%Vk.,lH[ pC909h;-;13r$U& ";tٛΛzg<઼rmKx`EMo4O{ٞyM4=t:k' DhuJƤ w&+# 9 s+yt$ vmq8If W'Jۙ]3a)W? mHvʱmcwRe…/wP3sM TÜ#+uk:KԨ ȩt) &NkG M$EWwlCM9yۮFKRN)!F;iд jNJ:#=RE%+ڝ̛(uϔ@;#xcIҦG~~l~ V{0oLˤXҌgNĖNRmӱ16b!#\iĻin$)b 뺯72iw"Fn#)ԱAt }۫!If[=wzTl#hQTP[g]Z-]Z5r)?;[6+ J mf$ڱ- YhԪc8 y$ؼ6{o\GGL(56 )-JzL$ZQ_Pu"P>Yc\2O4--5؛XGgd7Ms%ˮIv%|MDȢf$-8a^s?d9ˇD%A v9Ee<̱Q7n^HJN uJjL%uNyzN c42dhΚ'ۂn]Y0iR4:@hBLrXBuCN3'ɕG 3U?>tV#EEvn'V0R!<Ζs,_9ޒOy1faUpMIJ/s<_(&&; !@(긕FUX&HYrD!=(]Z썶BwJW; בbPzjcMpsV}82ofJJ|Q]}\4_Q|-#-[SvCIsOf2-cmUI/ &`*p~$,GX- wD %;"^ȺMh@8p(2\r೷Q)z{*dicoF ;}]̀y.Quzq6=BtV94جKsAUvEɴjNlXK$.LUV wVQɅkx=ējMa{ eA:{yeDŨ賀鸰N;O6OOrM=C]aOvE߭U'bԭ^љFI@&1/qAhFaQ@mSu͹^7QAc3T 1d)*Kj+=aG%7f 0Bn'dsIzԋN`kC&G@1@ ;/)4k]*X(Bx|[apI1Wd- a p3ꅡ&ܸiW&&_&/&itVCcIt[ְnJa؈MO&3Tj-٢ "7[11A_Ksvh@o ,˅9vu܉FǴbBq q\x+whQY|QF k^.w}U֌q:Sb4Q.݅VoF}cq`3Lcz ~95.:aW4/ N=-\/L>ؕCww0DбuJ"sۅ:M3IP.$K3f4ʱnmf\,!9o-!DO"u }iYq˾QWn.CR/GN}norf}֪mm;y4— r}mM>SiK".Qw'#%\3BEemㄕ˸W]Oe~Uz lYOpКziv.Icbw[SIs ҿaӄzU,{Aޗ>9~'(!kuUnl'!$y2kmMlY}@e,MnUM-:e8 >X B Y}P ɓK t~rY|OVnHc!7h-$#HVVZdǪߓ0q@W#d/9P6~i9\ )>UlaӴ?Ott+v{\y3rHДUhMIx ( ÒCmP)~,{  ,AK#K¡}A z#l Q#%nD{¯>}Z޾c'7o$W4hQ Tmš7D}_hA9Ue3Uj(q˚d 8`\Nn!yuܶk[1\6l_6¼\Ҹ,[.:#kź2hJ)7Ԝr4?VW./؆2vI>s{.KݸINva%$Cῢmyf$ C Ò\%.7j~؟,"-ԁX#AԽ^'-XAX_k?) Y\׏?ϔG ՔBx%o_`.v{E"j೓eFAP4K&Ƽ\s4M~-RP`LSɃ:\-])c-KgB;Y ?\u(~U_gZNj1ǃV:{vsShZg$0W?yqadt[$ ^~ U ^, Űp}]8xP "뭺% ^%ͭw*tp3ڝЈ'20xJʯseǥ, \IBa#¹i+R NH<`:󄲌Y{;d{zSʬ4m^40a*tn1S@`ƥGq޵8--ҚY&Tt&(k\6 Z~B6i_}1L" E-KUmcϟ,lbvw48Q Kb@!{E@<;+bUr[4"S`:v-bɧl2 51Duo#,yR T1w\rcwH &۹V=s wS^!0f 3!c|k]BHV|g)UjÏMT%#A}f益&^6kkoW{8yRefťg8!c]*F3jјrcY7ʈ%A%wfҵң 5Y0JFFqK|Ox@@US29 B2?[TMoZ<),`lQ2Ej9>wKH*<.*w޹YGu>lSg[= T'ֲ/ؽ6{4~CZS339MfoUҥ|) @/يx Y-&t35Vx]u؋ 2A<m)#;!pjT;"4vFdEwWIb8D)ڃHnV ]qJ%t 0G!m2U!@RTȞ!l3[AE>D @]O2!WI;Vt; '((ۤBɼ'*!g$ÅsQi%u۟9H: a>|ci-6ܒGrlْk]irAOg C^fwWoKG8r=a/cеWꩦ\GyD"L WEEtU8z_1子NNT:Gx_#< PȷK3ùF  /H@=_v< JXnyytEŠUj1n2{N+Q̙!e:3p.L1wE 6TV88e(,p[. ]硳uɇg]r$2mض -/a"]O?T4N=s$]@rd9!ks41cTݬzG&IԒNiچ)"} "X$L2B#1SiΖ֝B*~␫Qh1Yy3́?D xo8^>n3Tμ#.}RP6ZdQ$}YF@dXr#˧y ԑ"ҲI _"sxIC+Xw!jJM m,K>s3U:c UQJ1]$tB D;],G's2vAԊDW3sS0~]\|Pm=T|[,pJz3A@5Ki t@:QWc|(JC嗦ÀNv6VE=Gב8oټ=Y%'?ba?If"3CCnM)!2r1?bqR [][HrhCK֒‚|;R > .w5sj'Ǫ+Bh/b),o{,pJ.pD~PȂ~xAfobȎyuY֞FC=ٙz  y;V7D> \7P k F<(ܴaO*ޙ삐STF,Ģ[)Ro9U4:hг"_Zٵչ،}>JX&=ytuBzyvӄY0&[jjIOɨK;`bBM¯; \U3W7AbΙs8y}A{K oUZu-e<=W7_SEI db1QE,skM2"xIK}JG{A-+aWapAσrk,)nBj p8jChЄ`_f04.ZAg/,y r*.${`0(.ۤ$*FAw%^SD3sPx Ȑ-̺)|ПzS!at&CsEfOTلBOxtcH޲k7='|iSծT.LMV'AZ~bg ^qGНϿIK[琇$makc)/)7aϥlNuKMV6l xYxܬ 127,_SkVF NW( Tۑሪ;s̏96~kZzt[os8buv5XH+4֌ KxlyJW Qд-27=fd9o'cbڧWxuk\fIOtGK?SE%א p:Jua'=Q3K@{b_ ,vEJ-:JybuED_|ԢSu4B<_wL!/<{'}b[s eo+}D$_7@NŇf(#X kQ>V\~wx# 9u\ȪfFL*%:$[hՌ%n-eY\a.R}N}/\f;o1beBs:O`t8\'{u; `?Ո㉯i_דNEVù:8՟A`iɻM/ۏ" .q_So.{ ҁ:h.E7[ ^uCS̑U9=1w:)F[cb?._23;;poLÆv̋ϰR^ zZ=i S.gO\/H; n, zQy^nՃ)E-1V$ [?A"~USKZ rB!)%|P0ڈuMKӐoKA*K\uwZzCFwg3(25Mm4|Sʒ|+JjSO(&aOuYç%ZM(ZrDvHJ޴m"\ !BR3y!Z+s":y&<=.P4Bڽeq-MO( $C.`|Tij<"xnKc Ԏ.zJjU.EwA6}y!1gvu'@#' Ⱦtj)']I8J|oU._4Օ|R4dkdvhAGDTtX*7a9,%8>V;:l4f-/'\LHl{u1G.'J$=k =D_X^SۢIȖV鲏И#Z{5@5UgkEIHoqrd)Lta}Du_܇Ȼ|PŅ͙{5A} ?ECt$ 4}8mO3[LSMUSbgzڕ9 V ףy<135>Nn߻ Rόu\ӶާqACt6rE:w*|LcE>=ᦂ|(Ĉi P+l$ػc3Ne ոZ[qSp3c:Ch[{B&OkSE__,Ww f&ޱ͒Š_Z`sE{HۇT,&: S!l2 Lt䚟C_.ͮ7^nZ# Yk7Ȱ=RDbfk*|2Y0 C ña"3e4I.SHQj!z csgEat]FR f,:vkT!CV)z ߴI`8)MY_Im*R|m|PS8W5g A YŻ9ԺOf]OtFUZО|94$[cJ̡Ytmې%NJG0a7Ch@Hk~ >QfJm`b\ױ9ɗ9 &C1Ίҗ@iE}3B XZ: Q.3VQ[p7+Vi!-vf/Yf"n>ДZ*FWWGuEO+{_UI Ah_H0@@5y_\ɪpbJ8U0`Lk^W^zE4ijfH@x/D0%3ůX} :QI޵eHXg,00uomz7Ju᥮twQ$8MBK+ TpCZs8@yyb7*nrRץ]}e~Q4zP1:tyK=~-\S˗#u [V>N0LX&dI:q>uxok= z◎vDCߨS@]J'] {EP Y=m;w:(H5 _ETEQc5HG8UAޞ czN'}?x91`sܳߵER y62"#ȹRѲ#:#* rT> d̝C\ƍ۴@WUf_d1οZ [s퐅@Ʒ ^!O1uºZZ^@bk e728v]5X40r¾myNJ:儯!@뀋0]%*3p|ASfg`6|H (eWɳ$6>jY$a2XPf/H(P0ISvF777nf'.d+,YǒIb2շɠCya]8| ]"Mm̴{k8R5Wŗ3i}qh5#xb&Gf];Dt^@+^H+&H_tl2|| WYvET {B{>iG?M96n8N}Sט-P@-j4,HwKvU19zcGIN  S4= cB⬴Ũr-y*j~}}ހ]iG jyu~ \l [iչy& J.=uتY6M2 0iU1&@Y&O30% ޶ )I& P@APjӊfȉW<{y^;u*c`1Y/c݋/ c.\}UU)(O.\Wȵ$FI<āOv1f>mTUr4uSe)֧Ǝ ,+A[6:_;@ chLvtSɛTBm;|Y"u9IS"2Shԣ *%``Ф6+ [k{NϢހI1u99,> %&nb" H=֨G4TP*F5r+8cԱHY5,z(t:fKVQA|(Ϳ0󀅉͂4wi!@cRޑ3>);V):'B =4B X!,<ً/ࠐ᷹KֿD! 6Fe)k̏Eo^ͽc`IMbEԽ}Kh[nS跴/k}Jv^BY8%SJzRceJ̦ϠbdBS@< wڻp2Avxl be4K /M*Έ!?Odbfe$*5Ki4h! _gqo~nXZ>+v[*.u!!2G C{ DW(E'1~!nN7Zqn@X^DNޓWԘCR 2|QNf!E}$cv8bUr ms1L_o= ^~NuMa~^i*d=[mOp@z 6Aʱfء2XcR9U޷yL x&W;_fC&-[7b@?iA1rO%Cs0ɥ1HN$pg) sI`= ~1Іɘ&fŝ߬:¹j™F(04?pJZbm vK| _ё_艽<1_-xQNx06Z\ yX&51iFӸ js:x-41tw\ŭoPoCn'kt`Zmr->6lh+*l1t r(J}wh|74ګsBo@j9?9w?D9.[N2k-}{yu];R7SpuXobU%db<[ < zdCo^cu |zGVWpfi}sԩ$g]^@%4c~\?Tp+M:h{Sړ[0+68hn$y%9 wɂz;vRvS5.*K:T 1+냮K_vkΕ⩴ ZJXp5 s&#$0d"<>-U=[|@d ~EPzp1Q,ZT?ŸfN0QmfG#`{߁Gy $֥c Dgs$HX,bWؐ5nj̔!`~?$1UpTxJƋ}G}$rG<.'Иr(GMЮBTԾ'_OU'˖,(.\"DJ(ISVqB? /1f__!$$ ru1&&  rs:R Tl|78e) ,az3P:ߟjX1X98r|y 2%YZ=a{z#:"a7p>ר1rj_6Syp#Xp)RWaD€ҁ2<հ[^*SOI9ZPX g*?J֋LCp;8g`$LRrT)P% :ED-+@l%JdZ1JM8p#Bfi@6OLG* )HĻij9 ҒG0 K 8ew:<VQJ&ubc!c9;'(0~y,vQ]/-9$s'*й(Dԫ<(:+/R0Kjc FcDn܏hW0AAъHf3 <|.|r f2O_G0rOk811'=fيA(V[SY'o>K_,x[֢AfdQTKTydTP2k/u*ef7wxh|pRąuştJpHE)r\7'$H6\Eϻ7q"m}+S , VMHAuשdڇJcQE]ea_Lg*tJ=ZXdy&SYSvg]KcUBEcw̔/2Hh0''jRfù&Xwɸ(zėǖ/+?[{ɸmsz?RYth y.s81i\_ X&459>njfЕYx^XBc41ˬ{%( |N1*LŪW(|Mǐd-&m8z`zUug[$\{'Y=eZOP< GIF{a a[P+mDo^ yIH Ót.1)f?6$Ǻ48F@b=G2;b^͕c*Tm gl1k+-bh)Z,֭t2IM_ s+^ڋ}ebQ Hsb_cwBWDM]z\NNүal K*}>S$Z (n Q觯dHW2FUd29ŒL1"Lj-`b 逖'<⟼dzq,3$gEHw#@c.h'cI}Auմu^N2#(Rc=HWBSy4׫R0/ӝ(&ѯY)װ,. |}q5a#Մ3~(< IIiڀ< à0 g*-N]S( XF̒ݰ6a5 -=QX,b%_.UVC'GonBn>+~a..d9D{UlyuDQW%\w?Sp)Y~($?b!E(H wGβ0/}Z4*KMc`a]]㰦ߛvOh$% RpC<ռ{9#d^j|ߵ ϊq#>z9gIGF+9SE;}U=<?\1-DiFC\ tIq{ (bE_QR~ v3X3^I>5bilxH>1E~ EO` ȫ0P%w|wq=c;5e)}_KeJG"z^ svB wsu99T2Кޅ{=u.r}cM+=2NϢ4Rx3-ؤs4z9fܘy#KLSa =@In"; VJ Cd+ؕE-H].M,Ty=ڼ^w$>(LR+jdJNd3Nct; Dx¨?,^G_ؗIi.4}D?uf78Im¤DL2m\xM֠p_jNb+HzTm Ɵ/BPs7&VtxV` `\8bpzk?]% "pV8c׋ְ͌%B_:wxxrRÓCp)SX~ % 'rcߣLe,=OKdWNr+x#@XȟރeZ OujНfov+pe[[t%^BS$.ў3Q>I @ბQ)MOǔZ xlL#!e_eR;fC #AQ߿P3~<;tnADQaP X֚!=E F;ˊ=[VGͮK}3yO4žt\BgxβH|.E 4pPf.}3>V~+?5Y&qN3<ǒC7[$8(jd{iΥ`UZxHi1/} MwIԽ cQFp՗&ֹ8nd kJ|Cn"UYf5.x}B`ln3p_Q.Iސzɀg_ϝd}IXI(kJ>әڏLϡU B4[I: ^}@ܺX'd:*$$2A0ȟt"CUX5;~'AٲhNn'UWhTྷ'S{U77$^dK)a!v4ŒZ.Fi)b1 Yu+֦w!'e`iRu.4FxMix)}@9_)i=NqnpPLc.jw"o1@d!x)`#者́ fD4~nr9UyV zѠ'>!ߨҶG?˷]cуۄz9y'ӹn9,ea91;(SKIN [U{K aUlp_:Y}EZP6L3Rz{7xFE)ʸ5k2 e4p.o9ݦ>/v K{f®Ql*63mގUr4mSZ07K8ffLwK흆}j-X~vߓhg|oua޿!nkyQc:ua/_2S!,YZXهADr5z9Ⱦ p1rLUa7,9/=;y$L@4"'&C"}赓B-з'ÅҬ* +%U$Vyd]UBt[*\9)8Bw/Y,qCBşl y=[?ĵE?ʜ^QrԄ% &BA"^y9w rܕ^Imr8=l> o~:rE) ]:k㯸Hļ{1ǢQ MDj[[ο_U op "jfؠӭ WJlA]bgdw"rq69L/9w%;=J-b3F\-*AxU!֘QFi/39e[]Cۉͭ!r{WG8۾s0{D`j];d:{mʻ|@k DlevxXi ԙ,3*\FzaL"(f5V:?gX.V/-i%vK/ > RUȣ6MNR)ߟ[;*WNH߸(?t eV۫A'I!o<yI| Z\NW罘|6k94zg*2ᐷY" .>ⴻ9r& :7h:[:K[[)5 {%f5\%Mvȫ`8v""N?p;;z7/1R3sw3)_`ٚ1H5=EV0?+$) hULK(j`d)!N-zk &[qQZ,քؤ@B^xU`UkY/FRrid0a^Mxf O[Wlpqp.9w XowghJzW V ώ8)U Fq;$+φ4KAH@| )E);1 dF:kaix5,?{?#+ښIjOfFw:zίGoqȝ5ǻ v86Vt2 EPeWqtXNi.jɨEU S]̕5wMHv'C1J7mSW.o1^G# \+U7ʧR>ǦRM29t;b8z+Nm0v= )=3HnwRU5IL#7;KI< DE5isV{lgH(%_ts>vxuFaV{!m@EX]H&$#@uW)1f|R[L:W/1hJW$ qsZCԧhmKDuxِ1wgO\ӆ’7Tڮsƻꤷf[qO|DZ\QDxnDT Ts;#d8!4e|JyeFن1N?UyOkKw)ND0+yM; kSՑEDUZ;ܮFeWy MDH3RCnIeq5? 5u^22kjvfa٠93mg}}j NfopN-`qWM12U9SA2f2OD )>yԣfe7NM)w^;l(n)-B2>|GJ[N*1 ,'ŧ;7تޚ8`^d*/r5 ٵFLowaX iVqAԡ'h)ی`x$ C,8_Od)Tq!"(2r*Y̢9f3BU@.5e|R*r#Wec^6]PS}#JVs?R R>UV ´B]:Kz|8vRc@yZ{1P?H*w8̨Ѽn4|hf٘ 9\DˆJ|CPĿǼzSD|-8b( ?E'cp.R*TA*No΋.%d"4ǫHe+\2aϦz:Mh0j6{}$[@d-ZЏbE#B0uHd\_jL46pjZo|k[p@K9fGECrzeOJ/LOƲLUdriǸ>4h\T|S# D]k6(~7T!Wu%ziv[X;qCi{r&n6-o|"*\@f?j'i:­JҜmA Zx7 SL-uJ'p1^(Nv]/RoTF,`wXeOnnͲjg, eD2욵5Ƶ!8ԗAT}VRff6d;IgOV_<{"R#m)wA?x zrbe8m$6{"JWNqq&:0"{5ec&X3>ݎudP(űs霳`9)Gz x`0ue7l=޲d }>ƯLFu$7)-ؒ(_ ַѲb|vW kR<5~8X7>_E@N88aG6*cHv-ٻxvpR,Dٳxu B%hm$]uﻈBY.3`,Qh /L%%q&tۍRlyCQ Y|Zj ϨVY-Nj,;܄W$TY6UͶJt\I߷m#`\ U?n/l&g;NӦD-bI6)& p~_h^˟aeL[ ®)C8Kh ^ dB/4Ǹ_Rdq=N|j<&efZ㾣 x+ =ԅ.)Y]»{}&\6JI AlfU,&'IyZ {Yu>k?͑L3&pс=Pԓ4Eg̑FS$e E=|P0SFAIj= 4%gYeeW15?gW.|E" }' vmٙe V,oٮf6r?fr_x{ h~ g6fVۑ~ U,Ö-<mf =uN@Q;|ܸgCl@@B)/q>CzX5 ¼H! S7q#Rm@ l Yr/c1y#%#“EX[ә߭jROH9D#b:\n$/ m[aPsN*'yz ]v]Gv6sA:Tʺ};zQ=ycQ-^F#h@ ȿU~X9Y9{Axgu Fiv1 Gj=ѲԎlo:c c^zLydL]JޠCP,⬦3b36 b> MYV}]$_R|1PX<8y&eYP^%<(bp,O'+3͖6n^;h1(RNQ/GzHr͘ǯ3ۄGFPYT`~d(mK8!PzwWV_iԅU$ڎv+|0 1Eiom-(h:1}ֻ@hn *4q1H"Q,M˨rl8 |DfnmB$_:Jq1.I<2 EQ[OǡAkEՀKVd(cGkkuKHj0+0'TUv~zk)F=VE Klw`w5:S?<ͅwz'<`Ο<3/[@"P"&Ɇy既gW(o PY<@5,_8,53|p uUu>aTVP,k|.eiHgɴ0':4t_=B~Y*Ԍu?iސ <Ȁ<{{$m?t4ҌM0J0XY8˂Y8H9tkYq!9T{ka^E4@lh3ӎF ~ "՗FٲT*Q+ueBٝY3m,{W;%X%1 LDqs;uUr/Lh  trYG!<}(2zoFXpbz^'i8LGxhE(ƽSJť ~ GP3!S},6&YvQ:jt5!`b]{;*[cQY%Yz>4lISD|N'Qq_UL@I%lڎTu(X,K߾aO2ԍFdYad Iogg `pN{kW(EY^=]DQ,Ϛnj|{<2%\&}@Jp~=!a8BK/Ey#nT'B |YFX7]]dTGҠE,JLϡϭR,ζ,t/z'9s5PNafi蹊UvQĝtkyk²Iv':h q,R*e#3n^:GEιOl5'ItL}FnJn!:q|'&>xIoqΐ=D JC.C~@.mR[c'j!BHwpj40`3⹗) zbDpcV(Jʶ?MNTntY *qwg Yyj3`=OcRSXڃ w2KIb#Ui_١ӣ:ui}#xtȊ^y`4VhvqN%}mhp̚/bdRgXpA962w+z޶IźSs$K i FR|H03|i %A{+HxaY7$CM,|WN^t"b:g"74^maij|66ZG<a;x|[?/B\KL -8\F7Bf`cW#Rgc\Հ%ѹFd ҙߍt_EM8a$ϬdhUQs+A?S*?ZW C?)mOz~e6*46ވ~͠tS3|l̺ϣn <ڛҥngܙLQEˣȒPQ>p9-,)S7MTkJg"WM W73WxW37Myݾq2zI t:;FoS 2<쓴HdV0i%ɧ9FIKhhC[κl)W4>r{v t~Lp ~| %_5hiT[NRR0JkI˔ZP zŌ]y$~2d}F'\,`NozX,uM$[aG7E@4]TNcA^D.Mg%94fϳQi^`yp./*"Н,zKqUOԺHah F qYe -am%G"maxe_ːk1 -L')ppzgzU=փeSAB\KjH@o '[ 7KՆy.V`ֶ-+Q;h~E5&]X~Ln}M~E2 /#|SfbiK#]!d>%K)!|fbqAҠOuXz< ly\ҡJ:%7CPďnqeKW -nڄ HDsž~`W] !>rԀ67H֕31 CxuiP N`қ~\)g-g~5X0-8I pe)v(us&>a  ¶7T5:7UK~鲳a,DG^}ӹG9/bYgzSero@OBg5*?0Ծ>ГH}"rWT҂ J9 àrOwc& ` &5uo$[G` lY{Al "7ddg YI<"^) Dls,Z%c\_t\\I3l𷚊Y 4kMhLNj.aĽ E} 8>N j`nT?]EE}Qfq-jouvNlӳdX @z1rUs\[b[Bt)VX;%§x^Azz?IDh,bQ8U2垼C {}ʈ_PΟ8n4;o璙egWNf╢h&ez퉿)-A\GGb ]a#x'9!l *NDiyV\*iYkx1u0lKj˽qYZ"SF׏umcSL~\#g[?aB}wWIQUPU=95?gqB/XQK~ق1 ˴'~ t_ϒZ#޶D#_y>L'-PJ > l?BAjH0&.2U(Α in)6?_B rry$df5үm憜5]A[ 0&ᤞF.^y DwzJ9Is!LZC#7vmMl~늎d&쉻|jm8Z ^_S\Ĩ ү&]5b罼p>.Rv2&/ĉYǚiP?DȲui V(V?\t&Uոy.&kWڏlCxc] ;U<*K`2h *cSQ'[ľ@"&Y;jz<1(Ȩx}z7n0]>dAaMK9d8ZUؑ`Y:ܶ_hmeQ*nwk2 ЃBՐ#sУ:,cy~1"LmU?LdgtEjHt LoTd&~sJ)ws7vizz]o9p-$u]?$"->bfOA{ʠf5ûHRtZFB>+ӈn0VtkVdTȕ33aГmH.3/Qa_0klg{¥\ƭGT'|k4F)!dAG꣢=?#;;Rn8!02c=@?kDV>- 9ba|Sƙ QͫeWYw̓pR!EK*N[1E*Αîi#$v_ik%x DBR/ -s:9=}DlJSRW qU?iQxtݢ+ibiP)9Qd{pfw#GO/48Y90RŶ!NeRXOYF0ĝP{$Y"Gsw(V@ٹ:@ .&Ԇ쟃 S -v$$߈NfTGQZ%~c]d<6!%LBEV %p#(}g Mt$#3, 938`O6r*@)yKKV4]z)Ҏi2ӄɼx3k;X q.auf(2 c>}FI:$u$fB8Q,WG.DG<࿤)?4/;dE:{xl^!NƗPpRf}>\*1ͼx?Qg[cKk`O~CI+(˱MJ !@헥}]NNcBͰEf=L_8)V( TΟ zadx`z6YWDA~(Z U0|g sl%gWD:Th=ֿo>~qlIXǟxDX )5uQ曧xKXR8`v@.v0#TOv76V8G*+Jh8Z~B!!v(m\>6Pai#7Ov$6cήR֖Xxqnp}# A3)qz 6<-qquOa:DP1ʍ>H(5 :UGGLT]2#01Qtک>oBEKEUƘTB]M6/65[\MIX+DUVYM5}ǘG5?8odv$,KoGPSpPKRRu0]oV3^e$k뭨zn =MHZ݈7+M|K DRCr4+WXbu\ӓ$HV0d3' {ʱ/ A3B4qkvczz``kfa/[KHlL=a;xPs9WMhn@(8ZZ< vré O[BnQc?`k⾍w![2xP>RfvX#QxLف)lY uDN2MKDboႾYGH4#2̚¶t8CxmSF΋W$RRԞΡc C.[6ҹ9V g0%ESI\folK cz. O\qr_穆e0_֐`g8+g[%tIgJ'݌W:t ARzP?|]_c#=046O7hӾd-lȮ3v+1emuk6Gy034K)!Q/5^Au20Rmv3b b5~7 - ~2Ԣߓj"hWYLZ̀&2" ǀvu'k*/?C91c胛cvЪBbNZV{et{44" ^æyٲ 9.%ptvSF9GqP:I0=E,PskUm$Kg$\ൂL!ѽf-~W~6+_ %3aTrM[T< -~n;Sd"wVj-XԠHeQB#>a٘Yl/WX"S:o-b ,cڐr*MNy^z#!˗WY>{bUWg#"! >dX3Rnz~^Ϳ_`]oߵ7HΏ>ŕR73YE.1f>"=Vc^1P[؃}!"gdϚ6] Pw>͈_FϨ<@aހ)>P]^?x\&AunpK剧 )lKhN?'rn0T:6OLh5dXp+U|7_MOkѭZctЅE^V!=u" M5^8?6 / n4kgu%%O/^3GQ]R{ 4ޛIATLٻY1J`_;8<G7dvjDO dO1z S]Z Awv[-(hA{Qjo2RD{Q)N79: %Q^FEm8b0s|ƕwR@wHM_‰}2:SڨWFyz$J{8s[A]9 `WsTR`cJ#kYwY?*rTEz.s9l8ME{u@k1zv$I%.w?(% q]%N`}99*Պ@lRݴ%~7blwl wD[193ɭ2F*R#BIAU㔹$tbwFՅ`hn_+2W^!7#Rᖫ!ƒƽYKh)-7MPTfO͗r~z!{^OwE_0f"ϊ+b{,OPD0vŻi0K m #2u_Hv)ą.wd/T-FoHX\"U}^GٳX4MEp`1vتi nEox8XNmA=X8}L|*G) ZO:61e=EbGCUwmz79Mvr!iDUWu=:pJ(_**kJ4Fa(2a= qSWJ4MIܰՕt@eRkL.CgB'D$<60"YK#I Lg>.Euŧ*tÐ ;#=5FTuDEopNavFp`_uzBRdx|lD.65CL'gmzmp 2os,CNsg쇍oH4W*pR k?.xj*ZOɻQqG>. ίPI0y%/'OmUtR>&yI$DiuKJEaҒuX(L_ =࿺c7IP56n ^=CZ_'DgSt]{!=oGX4c2t@Vi~,@6^=T 'a}k\D'l KHK_ J>6QJ!. iAŅ{j`u$gkꟖ'`Tpb-V"<+{{-_bWK,k>p^ 8'amc#QB⍃(8~QA"&q(6 V5#9G1Qz&%2߉mhSԑVbi?mb?ւXs"ǖ}㎑Pİ+e\h{F>6n|Ƀ{af;jע6ɐ^U|)g`O:嘼v?jōB)Աo{.)`Ļ `KCKGC~1W[Sp] AE+:{@a3dza-F"h4;Ǥ>hqs3<OD+$"(Ѿ{a\D9@nh,c楨 Fb4<1U˔z(݉O{3d+ +X>]Ds{`X&ңz* yߦגb`=* U J՜a`ϭj<ԧ+uBVQSqYY{ ;0_ ͠?( ҍ>?u>y`CD:,|?|99}p\56b A0Hud@ݿz1Hx'M.4O8)EQZ.A`΃ߣ/7x[%Y*|/Ћ/ƏUҕrb{ 1.rЗyH14N &}Y8FvZ8yA8ωw+FBR _\BX c7JWNj dHv!z' Kbw9}dɳV N=3nWT>!p:^AL~|Pl -uV抰3RGQUX}.z;qn=xNM*pVRp=p ʩ . z Ƀs>a>d7F҈ /JTDLDY# L7ն`mcxgv8A$$8/5蓭wt\%.H /.,z+֝;mUpH@lW>O]DnƼ^[H-vAFoj51d(E#ze4 R \凓pf*5$x-Dd#gD>~GD;̴un8@x%*j>!ġ[زv}쿊󲊟$J%F*+S~f}EufE3 6N80?"?ˁ[dV^pNj4M%"SM=lTZP fF-ʪqWȀ.s=fx~2xS<bA[FqYB6vq{74Ϙ?t~|mHT\Uh1N\7˞Gyhp/jk䤲2. Vt;NyE,Ƒ=!ӻ:6_BWp@[gs/a:MFYG8$ 3IF|S'k ҝ1)V =ĘD_S(rOGsgNWL< 3F0>JŰ#DnID2n`80T ՠz\/X>-:~e*,mʗgusّ[l]r4mm~pfvp[4WpO 9$=顣Ŕ"Q}2`ײrf,EHDׂ~MrP=/|MEG*r0$4D:@BxCp0_+ hJ落/,Rk:4`[W;lz2ge iKk4f+xf}'-RM>eڼ;lM\$Ո5vIa;vyr]Im oߘ[ FS u4~a4 C rd-D-U5Ȕۖli& psYaHScox(~ pn="N;pΎ/iS'gy6^; &vI`g+T k^sS$ӵ%O2۰ NpI$Zmβb f[?͜㽈zmFS3D,d,u͆ YE]jyU(``9O֎#s@jp.KhܾϵTz_DHNSD) 'Ĺb^'FU8g]#ȳ4UV؂f:#Jr%{i4Fen7]VyAST\' (u#5 I. @O;"0I gbT =Jrޢ9Ô{'ŤspVJԤdJ u3q4@/GR}=6sO%d"[ބ| IFYg b8wԯK|^m.ݦm*Q Hk`i#zs{󦁀O KlHoY`X]o%x)ɜ쇙p)j%w6qĠs_5wJI8`ъ>Y7)Ƞ~n~聜Ԏh8dž^A}nTfյ]z%T4k]# ΣkO$ۃ^|,WtW? E~|b'Gg߈-#ԪZVc,/TڨO Cτ%k U uY ia'^Q˴z`8JBHH+va\x$fl8.d;o}AB`"u9g|GwZ R٢cUBd»!b +ig/cG ]GŒqK=BIfqh:.j"߽ɿU1r?xGkUFQͨԅs;XfF @ٸ#"`ڀu.dZe@󿣤ffcُMAJF_0 \BG+^r\⛺;\` =~C6jhETY6O~LJ%Gu > Ge[a<î&ZVϩXk]UIkn_Q!f7~ˆcx7Y~FL9lSMlcaNxǬKŵq?1&޶R4W#1L` z+kbX'zQ+qzYCu{iM>,%ݙAS'A0x$p||Dq x\pk#Ѫ 3 >Si#~)f`X[U(|8 f#NuBO ϻ4ziݾRtc՟v/3Ed zO# 8 /M'&(`pUjlQr;J^kMٹn0sfC0yT}AB$1[XlTfƩ]wZv",KСk=B֔,G ]ci~'^TұfGqOe]SӖ\ύKE;NttNr$Zye6Q=b@?X84Xlj>*7J Y.r0ŚZKmh>By$+.!ן.*'W kܦMg2BF105% t䨰{'Rm-f.9,i&pD;d: T3I&qud3p G>}Two+ɰ)uv7>нh™Q|f$DR`+ʣi f /Vot \{`s%{<(eI^:y{#28rw}L ބHW pb*I Ou>x| SxNU~"j"Eo U10AAAJhi)Z.^39'Yo6ȏAN'c1'G~^E2pTd6Ԩ@%)r0g}LjBqFLE{xkI~kȋMn(@n2QbUJ>8 ҠeN6Qx'YZz&Xu+etTHqLFF pw; -УOD:7!TDBvKwq:g2,N+9N¶-cgTY<Z:6_} BںK 0mjVn "黬ǚyzR߰(>sP;jSbԶ"*t2 J`iRwpۈª_phF=^vm*6qǒF<̄e /،qj~_5lK6Ⱦz1?;A+,9?Ms Jfl,#}L"L?RY;2PiӔ;.76JJ+. E{NS'#pxܝNg"`+n 5W-6[UKa"OުVתG AQPh`^ ry{bQ}=r>tDaHgDC{c fpV2QL:4%L8 TvzNj xA?4V֬Ox+·\k`I]`%^nEtBYYE/(B~)UPOwdGm>PG|o1rE]][G1J!PF*>#2KdyP aqu(E}ab=RXԬUl< -,OTwJMeYvH,KWsu' 6W]p0UQ8* /;9ycnUEmBt |e&LXO'IKHZK G<ЦoOe|4))w*D"tc[H;074i/;IйQXvq.btQ0$l]I&1UYCOGu 9EK衖g6v[s%o4K9@,iqy|X'&m2/^=~"6Py븙zX@t1AlG9O!]@ ^8QǥTh؝(_yӴnhm|ORC0Z 2qj,xse?ฒ(ecG|x{ OրHi̯p; $ $ pO@7[ksNƅ^p8c/cQWpVÁRPD W Sڻ@5;^4'-7݁$Nˎ?>ΎP{0y4j۷za͖y`MXP ei\ ,X#cS)i8Z7P̛uxT@w3L~Gbuշǡ]B2j5dr&=sĄdBUKԫ~zuMjo'Q9^.Z%yZ(OO&v%5F=+*&K}o1 vkh9yeEN![VGdEV' JsN7Csfaa ECL JD 4]0|^rgGO9WKP)}H|V˙"UHM$@CVk[ly8XKol*1@k6htiGh]ncIMt; H1ѫ`>֌9KZmf$Q_dh'EHXy6 -F$~CǖsÃAK,n胻[ 'b rA;bN7סKLdcu0irhQ ]-lތzmn]I3ڲMΥ%s[L*P-G'y~4}Ҫ^BT/ \ZG%fOC !&M&|)ڇq XnJ G-:;tʼ |g1CWȭnP}p,],W)5´lU]`^(WK=yol+rץU V4- nXqkn Arh蜏S^idl_8NMdYg)C5869+P;qͨp3F ڎ#~Tu# ٞ~|J࿸ߐ]a~/;ٸ˕(Ɵ+DTx?S^]Ӷ5JJciT]8/wrF͈ O#4sYM3B{i_ L^cPPʚ9@b\ڴԣnDQʄLh r|ZVz·-P-7QLu!9MN/KNȩ q)T ܟ)C4570H?nNApPzf*^X -vSUMƢvNhIbuBX_IsXk ./PzeN߻0Ogp}&"2TwJ(QIA" CYH~kxT쑷jAA+̂j2/jT* ʽIr٤^{xctZ5~2IޏOgԾgXOճ @݀ݿx/!<U|Zw@y$ԡ$)}8gܖ{& @)]z9YhwCL>"sD𩖛d4D;Pρ m)aͣk4w4{u k-U -?%8D1W(Fġ_3顧ZZ'uf?)Ax?}]fg[xQ#]2 s(jG ḩ* Hlz%Wd] Na`HES O% +7ᑉ3,eKtNXRG(Py=qA9bчѯIMOEfj OK7iht`6yj:I^,VI?Ԝd׳rrA`١MKU?Olgexz҂j Bh+ x@òJ6"_rVul ȒJPocpRV`pjҖ ۶!kˀBm7r[W`3v|PбIR"Q޽K;d,ITֆzh3d1nyȗ.r R]b[a <8)-w0Wh Q3 =)!>qE;ܔvM7Tu@k9#ʲXJA;{|~Q){ [ ݰvFmgMkA4y V`F7`$*~݆8LT4$xݐAIPZ>D|ztw-yJz2:X?`oX'65ϖVΒ(e)}6u?S3 +7Wk{0`1V)E\̈.c zV$g)QW].wI #mVu-I1K&1?(;)E7R7 ?*c&4< &w\\d'8֤SJPh so]q9ic&VDQj J--I NPIjs,ړ>T$'ؽMRw9KGbCqܤ0IKVݹZ at ǀMsmg\h"fm%f/6Nю/K28GPsi)& /| |H$oW E]|E3 L-?7j&sa:ZuP`1 e4Є:Df@wSV5eށvFd"_aY90\Rl@kк E-TȏaÖe2qϢru`&UuLڄY|z9zuDNweXkJО\H3&ʁ2=J+7B^Rن?ݣ^pk="5Jp@H,֧8`#ÎSw8mgZ~WkpT .bnOT@Bk 3.LŦٌƘe &ʰt]^||wVƮ?9f@:j#Vqm KRKQE/dz& jxwCl%/R*tr]6 g\֮e^KThaQ{:xzz4)G$HnDwx `M]"P?([x5&H4ذt pZ4l;*qXr0NX? y9xo{ n=L =^/s/~6T)]y>\t) *qŴCXМ!K62&;#"Uj@38tfe_\P7`߀?R0MH>r?V4Kɕ"Nj=dV֠W2p&5̮ x3kW?)cF>> @ #31X/Z(Wɞ"Ycj#uu۲h&4 Psu%>+9+P8;IޖP:8д gg#Du#V(p5!1֪eN.z¶bll2)SHPpŀM{ vvW2=g5d7;@U uڰWdyG@8`H5*SeL{  K&-odc:pi@ ig{fB58Q  co5_~ KYF#U2k\n 5^}DqFB_ĺlgfa>|!<rTHe` 4PyRAD'5ح``鬫 a8X)$o\'j9#d(%'O{Y|-4UP1z~[*>UL/Зe.ϙ? 櫾w3@̷yXwk۟imF*yhk9`ڄlcjX9Q 9 I7ix+AB{EW[7 -?^B uO[( h EBʹjt(MRYm遡U&hClG Fq>M/&p}a$>z8i/8GWձmM V=B"$VTG Q- G$GFx-x-*U4Z4!a|,1YkptΜ^eM c-ړu>vI.Y3TkH{Uy_IeG/3t#j=T8P2}[YNNյ'qƁיCfF+xwO^uMK$/ 6X M>/9shvIZ2>ˊ_&~0|Rmȃl'_Q: [vhAE5cIL*m!"m;e@}T=ξ &p6TI !1⁄G!L;6E^NwMݽ RrDQdxϹc %Pjӽ!_I3*[ 59FlFs*q>osՆ\i;%ukht!TN LVqx3ݸحĹ(-sxdM o(nqdM-7s5+|ɦ誦dsG|:Dk|CarT"\_w]2/f'/Dw"ɸpM4̕շE$lpvX{װ58蒴ݜm:Ri+2iز(}>nο2Jq9pZ"kZː5]5H1 QN@;/Q;nR>[R*h!΋`fL51jM[өʊON,+B~pxU 2M̸S8Rqͮ6~XN֟37nGݍTU@0ſE(f9:pRť{ޱmnK( %tTbN7YKh.CZnjdJqew>C&X8 HL8~#oj ؛dcUz[_VFS(/.yA@(Qmfxf6i_ ,th0s/CNFN6ĵ䷍stztk*ݝV΃ k+v F:Y%DDZk.!iJhbXOW|T/9.ѭ F@&ś8 .'b$e[4+]gQÐV&JL1dػպ5i{&t`8 1F@4XUl~J<9쳻QiŽ^s [X_ B-ݔ2pRRU]'{1?W1јlPk݄p.\VA6G+=~t_wҥ =2p yGOo40axH]6ryI6fy -0 k eI;ZA_ڈP%R`o\sVQvEslW fh K57r 1=)-LŌOf |7oۿ^4ZH8O>9Hf.'5VSVdq`.i亘5&PI ʳ6ՌVC>-2^8ЀӺ}ɞ^>0DlZ mΣ@ӋuÛ|-`A* bȩ捓o'awT_?xTObpKbO#Iu- wFف1`fƅHDdP6i4!lAR|e?a.!z3t$v%iKlns};"j)";Sez9: '{sO)Sg3||B]ۻ8=KPuH=o[ %Nȓ9'$̸yEʞMu%GUBr$C68NFP 0HbvO]Tkn.k"م[1+rEU9ӼtUd]x$kH$r<տͶ Ji-2=ACg/ݷGHhHӜn*8f~騥~M{F+u fQjM.[fZ6 ^ABQKG\Huh֎P\A46v(fw-!o.HԸN7u- e">mv,ևiOξ:e7@2^7ݱAsIqx%`Z#z wɏ^);"6zkgpDhèHD`6UG(1|HT>iXl9AC IYXFV.1$7h,@V^OA JO8,oT/Nu_5{̜%1^V$dfV> NipjuBb'3E[*l Q1G]B0bE]}fXsNJ_y*O h+56<@Oq(Yr2{{Õ?-hĿ@CG Ρ{lx_r8n) iJC|[K»9EQ5W0lz8i'Q;ޏ݁Ya"jf]ߖhw)G\d=p5nCڧX״">]4@A4dh-vΖ8H[J' %r,c*҃dҧ̇C[=/i]_&,g1Y,w۾tD4qڀP/S0%S0AHUMPHk6I(5IxS Np}&fiTts{y.'IQWz[lhm ) f)ѣ<)F-z($A7BkޡZw[۾uWH9}0`4C: MG.ځ4{=19"=g}ጆP}Q ߂>!9Lk1V^4 !u@W f0ݥ.p[e45@frnflH} ]Ḱ ѷ%\ecld׵ILRw|57ƤooyCrsiE͸ ިK-@ic"ȸv'ZMȉ! ;;M z(+D +1oI> /BpiPx'Pٮ` Ga!ĮSG D>!`W`F`VХDd/nڒ$=*L}ʳ_*1eB[#g4Cb_4_,zV癵=-ؿE'E;&|]#^/mvffGB!|J.=<uRBOfn@nM+x qz z-C>-And+( +'bMP{P<Dk$ƇKKdAyj7^59֕ sSh屦҄{ IonQ'ݧLuL[ez8A'1$)aE; ͪ;8#7j9?ĒD"oo|ܲ.⬅'FZNn׃`ڷ[A)^X Fza'"S9C.kABY^ a6 zEHx̀Gc\C[eX) 'l.3 k f3kH1,7.s9 X6Q&l)b}u[Φ8"-I.{&oO(W7Xתum~Y?7Ãzr#p- 30)u _g`dx3 ?5~Iޅq:a7DeΜWy e^rG 飬X ӽ pH_GB/k_` B]OS82Zm(dZE6 x e*ɶ nκK)՝ Z9UM=d^Ôe;LFg9m֝}fhL|xH oߧ* 3%G`-w/@eKZ{*-ZK:hOGq̯+~9E0=0&f['<& #1 gGyN@&U?Nt`B.;vvT=5C"Rr^KVŀhSrlC]^\! pAO*xfЭ:L@.tqOyfx0;to_*.Yxz,Ev{KI5r@ `W͈r<뙰% 65b&77*+6.zD!аEr @&測xFw-(/!,ͪ>=!47c ƛa w.+\Sјt-? ssE'F*>+}h}H#BAd}C Mqqh%%- J D2FfD̃Svz3XOwaw].]qt:DIݟDR bZIDH:РTP9j%l&AoCeϻ$(7A; LeVϺC/{)sp6~$/2$.ڶǬ,UA:!'5BG|ǜa#1]Ú@eݨ]BH"b-$r-siNN<'y/FLQvH;D~4W9KGwt-fe:+Kٱ;6m]gaU=|ad͍3%!C-b9nlcd4ꤠlR՛[4 ; (L$TJbbMϿjK2C`̌@LJ̠'/\}@IP6->QZ9ūl>&ɃӲ":G&T\ݘbhi+jeɞ̡ QFbU4k?W;m5ٲgS%is4?o\=A*V+F\r)BEM~1)7s6 0!=]Ok(}}3a2o}EAO6ȲIڛ-~|LǏXfz̓sa/L~!1~-HP4AWKk'8#t'] $фxZ=])z94K@֌g{+X@)4DJ|:>T/,NhЍGj(I[51kczSDMU"ރAq[_A֘)fSոP5ۃ)=ch+PYgWcg s.|@6*s%| vĎrޭBܡ8FSss1ٞ,odjn#q^dᅖϊ QWQCP'e~P}.~f .m97>^"ӆV3=r&Cw2u{&[s=2-x ^{zy𐖊8_7)#iFD tpW[Q9}uZJJmEÅ'Av&,uOi 2 @( RH]*1|xb.j)G!`[nwDD޴[0z+zSZ+R5ubatl!s-_xi0K&|#KEtzEO:T v~ |i!C$!&DIGmf$Tu2MfHۀ#xOdQDGStKZsP]9/,$,8ՊMzAe{N)Gn̷ƛ1xi1GG#l\Kf]F Gtn(tc`2[p/Hضʓ@h[&!Vsd"Of U?br ,o*g_%Gi`-P2ݔ#aOIK^廈ͼa8^f+3j]Dher[%v7Ѝ':L9ż=TkhFUVMsܡvI=;_F*Q{J+8?p@~Z/u;0*|0jâa*]YsZ?D;_x1es<ӑ֜һX+Z^*ci57MO]gl {vqsȺh \hz7`Ŗ=T22F@2f|4VѐډtH2<K/zW|L^R_Tu#ց 0CB޾ W ˋ.T^b_O  /{Xܪ*Nφ 9PF)33"aurrl%/* Z$'Ԥ@1n Lؘ1Ua^[<jfz]nِC^EJ38ރ[gQ)Mv>OB/]ٰvk :mL`<=Ȣu/QC2XL:O/4؅eĿ >mh!^LXNɍPǽe¶-)9b- @XDR|_qt5(W鈦5ݳ:wKN- ND^&q>qp B9[+%y:40_T*Cu40{Jf[z|pS8{qv 1 4&#?FMYաl"EටyN~-Ab Kk'hlR/]N-Rr6$rSM'?:Op7IR_UmXrSj9QhCH~C7.2pi87 ^"=Xy;Y pXiBq ֢\?8[9[cԷW UKuaKf&\W\ЮmOZ{x H_˻ZK@fGvE\ה,8&Df#o:oWɯ%f=[sfYmw(T--D^lx#C5w~V!ۗ~ϑ,M S SЬ;JH32EXڤΙ] **X%]#%t!l+?QZ`.1_C ju>ɁjExj.w8obp|@y#ޏT%] go.@k^K-Tu /g.+Uw]D[2)_J S!ڈ[{y٦3p \ܡӵ[WH[? 5 9oKu2.TeHw*F2:BGD>E 17\_P/G}{CXK!%1WvB1ߺs砓/rTi5'Kq! F.\D˩]_R~Ԕ>-xߒlA_;h$* N!U^3y/?p^wN#V[+*Os"Rz+VO2\W}_1቏үysr'r 1rq".cЙ -3gq%߾r`[ncDž%ʅʄdĊ "BA 7P7ƲEzXq m3#bp%]lg+G!;s9,"ai,1;T) *E-W-pvlv86m{9 BKrc8q2ڎi`X)9܆+HقF:L%w5TNY4EkAfek ;E) x3F#Da_zʎ0 3ߟZ"Z_C`>5< 5i>&/BLl ];x%+?"k-tj:dg"p4l;RU.e# Bax;Xz ISmDs %m"&4=(WQ^D l$]FC @qAfWP硙zwKfcvc5 u$fQI:e;9‡0Qr: R[l3蕞@\ e$:hT? tt0,z(5rF Y@T%% lxAn^X`NovgE{zv;=]]g8k-l6HJ5x6p>:L5~{qsp[6kZ=Dr`(`ӴG8M7hL)1:** PChnWo\KRd=iƈKWoidhRN} \W#D'qaߏ0y@n ?#fy{;Uff &KR+n4IȢ6P*2b-$u2ML4`raY:2,5!vP'C/2_}_pV@mP;H=[cq5ɳH[9H̾גR ٘ȸg4;o[!Ȳ8p6GIjayܦҷ֦aL82I!4*ٖenb2 $HD! Bv9=r)9U,a[Eҥ1r5"׉O{BHB}I_ {^* 85VQ1ȭq}α׉֩zjM-^ c)$81 ԑCx֍|lJqdD@ksm,A=zIVIOPM cZ»[ ]S6+ 7,&М 뛂n(Qy4duݴm&5[6MW0^KfcΨxLii`.TyI:]hYx*7n`$&"o3ȼ_U6 9W͎ \i{̛&m\+_.?/.X^?jzpz҆mnknr_|Hסԥ}̊r4j}vz|'$:FPCtӕ4anl^X n;?&(})(W)92|-#7r&EקW`1ձlْtB5{D Γ3Z yzEDngnhK.t1&ÂBqy7q\UX6xoja… DuCP?2k/X N19Ru)̀ҡPe*wMA!TIsfO kvV%ţ*T*j1}iz*h״(ò.#K(?0/+8X fEԉH=󷳔AyQ! _M4r.<1bE l ޙ?f 6{#97>VIg>ݮ" F\<ƉE+'GXq\pThdDpOxez؈ %"}[L7Nש6髠JƁEoU>h;pgW90ЍL  j[yP` 0B0n|1,ki0u': SN|EdJ'nVSVӐM y `ŝ߯*utH E #$b j Ҥh둊?3cY$_Hx.PZQN[j6*N-t߄m(aVEHm wX7kϽhFӻVuM½sgG| m!}e-jit`'ڢڛlHd0RZ8 x)gȨʪYTõ_g !IښVw{hp(8&p =Zj6A0d6K~%gAL C):4FFqCX.TA=5f&n&y\AwyJ|EW ߲AAnQϏ*4 /lf$Tn1d*Fc9(4ؓZX$i2ӎl+ʷ E;f Mi!$m#-CoyOnRJ[N9+llsVWg;Cظ 73Y^ 1Jɺ³T5=8QapU7ӏᡘғD% FYRe5 VUa Rdu6*wF#]2ωT=nj#yʛ'R:-t4uch/-S/OC=D638qՖYt( fK/0#_1`$)H8uBvxNBeB II>eMB$Kenf:G*;`E͒+4 Omjo6X@ru( Ⱥcz7VM֡[o vB|]gxq ߒ MX%W~VW|rdcB] Xj-T`.N -e]zB u!*Oݐs4w@QU{K;011Bz P _OWVqM D>ËcV/=^g}d ǟtD,iU_;"/hۺ}TO ghnƋޙ/eߎ"62l.@`a.&wbW:DqاI$ M^)BMrC' Qخ)U}Ō{Ni; UQĆXʴ+SqV>qmб MSbIUqR3.ŀvd'WbjHU Z ߷rA#%OrY0OR!Yĝ5p4Ke{+CL0`ۗejrvybkuCCs8(4T!1{G^jiBR "\c ;AJ쬟;SAގ %wVG iVgU50ӂ6Tܗm¾"RDRb_]7>dܘb~ow' ҆Q+}I4mU6|k1M+^Fjb=BSenB*X`!eI2A`V I$o[znzMɌ8ĩٞ*صA SI)VAz'ޅB?W;EÛjbQa!ERК&6Db@wu}&M&E23|E  IXo<,7vl葼 ٬TyԵ"E4bzA]g\^ѥ C]0XIM{|${l.29Wu?(hTY-!nl^\̪iMLɨ{WSS-}XZx:S &Irh-&u٩SA@y.$҄B1q:8b.ԏ λ/ jKle7@} Q݁I'{?X l[?V ,[)5Gc zTEdN>H nGsI}yhHn-}^pRYFق1(3Q|橕)"Q E#xp}M - 2&eV|Ų^Ie$?ɪ%.u59]OtQ5uZr>[2B6xvJ׶}mJ&wU5Ϙo\wf')pY>OYZ )X6O .2lp)T# MfƐr<E$ w,f+G|:V}~'T v zZHg9yc2%JEQ[SS`]ʮ"`Mv"dX]d5_x]E+ 'Jў:(qIq`7Dñon[# J6)`^$;C5iJx]L(_W,Zdyj.&ox1b8s<^ x:yt0>,UŶ[A8s>IMfMOŚX,}QQn߁9VjX 2$An|ևQ*N[ J3Ƶ0ފ=߮[oQEE[8H#$*fpG"X4pZ%g̽sΧiuJ vFgr^ߏ]CJPI.m fuO\Q^!YIIe~PO*Rr'qT?]㰕{ M< B"\/[@R%렼7p9)FqOn%~A@#(Qqy eɱYRP/\p`NCM5g[Z@]OE?ETJcI&6cm98 {28+kԲR d3EVAvRs/wkR CuEu rBUf:֑-PNg9x9)ѱƺҷفlpRQ7^e2-|a 뺃X;_aHZh&yK8u9Y;-fnCAYh1w~6H/Af!V1z3 b(EMLQh nQk0Z\xj 㙜Է7& G c/:)r$3, tlu>ꩀ>Mm?Q5 Uf!}"ua4YzzdiJ՛'CR@[w5 i~iXEJ0@DSNp׏?kt<^]!oMڲ#'a_KVin'$tݖJz%i?"1lA'"9L셈k+2QnIӕDLd8F4Fn5zd_Ci7ӹB}ŌLhHaW73u •;ZCajmv#SoGgS[{! ݜ$=4C96q/GIYYAܗJ 5kx'*=eib[:Rѻ]'G"λ6BiO]3+9f1M)Jp_ѻЎ&L|xS<㇦8C*W$PWu q.pVbm5wԢ@v|ӄ,f!9<̲^cm{[őw%VeD20¨49.U4͝b9mTwMyu;g\ w!v3J{ޤSVq쥽m E]7 ~ێPX2:'?hRY=!FH -bEIB2K-U^Eոį_']5Z#BϦnoPb E|B&9$-k]V6XcЄ _>s{b57?q)vot]*:} $Ah :nZ+ZÃ0a]^ឺIsZ/ (Zs~P`o>rtԙumJTē\=>U`OBNk$Ph2鋪L2-ʫwr/'Qz#{ZdZw Hu雥i > _?Q˰" r ~qE V]7{Kky1AYyo 7Z9;0Lzw%Cn^NZތDJMY&h%\4Ok O3M^uV"L҉[ {BW0}k?@Nxbrw/uߖs bLt}2B@Kt!1ʴm-IG0;R4tZ?4拕1"SAEw><;wle 0 vPl~9H$8ΏxCN`0;S-U2(o{~g3uhL\F޷z݆Xl<ي5FL4Zo.x;94πrDBjKv 蔶Cau !"I[\,X}G@Q $ӵrád]kڒ Y&c-54-q b(1=;~!ڵA̜x1E7g;^#AU?~(; [՗_5sFu7n9LErr/-زxWy1}%p룷 12 +vJ$[mNCf==h st@KgV_EVhT`" 5*BWd`^[!ޣ~FJpwآ$tc׈x9?[?ۓ(pc9lhx}Ubјan_#|Ңm3yq!+*ߟ9D'Ћ2=EI/J'#Z(!Zԗ!}dWL7ߤo*UjԃGBmUaj-/.Krls;, IPA sU%\w+Ӵ_ 8Mg[ ř?+6{$:E\~R6P#&P.W1Ŭ!GV9P}]@[uTc+*?\xO^K3Htsc02EG)r0?s-IjxiAI2D9ў`t=剖zVCڬĨLeP<*\#| ,ݞ8U%v Goț yxƹ'^)TЗFmf{T3uR2֩Angݬpj=z%-و}klfnV|]ϳkY(O$gقFHА yjN)ryL݁F\]: Rl3$\'1r@O)Qve,E:_o`75(%lpD3w<^9"zŬP7V4ʅ6o)#:O]/7`k8H3vNWxɭ<!X:Wl}^[Hv2lhhq;?=E}6n3ԛrH,2^/{dg8A'KcJiqw(?>߬qQVQ(/z C]ZpϲEaxh'A#Q =ĔXg{Z@M_9Msp3{.mW >o:[FzoGEg:̿2amp0>yùEԤ ;яTbZ͊WIn2:<)|W=h~JZq ndb-S4g[sw(TΏ 'ʉ'ׄ`nBP4"=X&.ЩA]ǧZZC 2CgFm492/cf?`z^^gAޛp7iN;f̒25u =`ڪlwbר/խ?Oy '+\U29!B_0 !71-o8O\85|zJJn@+̰)b Mo'-H%L*UՁ/8@\ S6f['Fxg8B,4_0K N:L/ R.6hV:x9‘Epb_lLib0)RAhwrYKw 0rC4.vJiKÑ_N=㯕tnIUJH R6 ^~e(j( ffŀP?E`lwBO' ,IJ2@3y w%/ЯD#czjtMݰӗ֌ DfɃI2^ƚf)`TO\L;:kذmf(x`?*(sQ&/;yLA\lrW[ oc'L:PӕCpZᾆG)5VЕEףٞaM.MѫՈgk{O94A9sٚ%F咮n"Ẽ*y;Ŵw[119]O:o0pVIRb6/8[\"@MxzD #Ҕ+-ǻ8 Yzй/y/ <6GTqTf>+< 6M) r VOˁ w_њJ7v,yL4\1v,n\qš,foH2R0<`A8Hm2vVgun O 3vLn3>-(CX#`K1=OYޘMa{!W@Zk>M ,l5#v >\d(xrH ?rEPrxQ1IɪQɰa }l(k.8(erɳDOLMg2>M|D{1!>d{u" ShZW2@#&w빛R7mXAjwB:[Tp8d/LPzbK%`w3@qr:ۘe Nڟ(XksKAe{2]ɹ]rNseuVZE9iц[GP:mF׷ Ǿ:!}uc:tau&Rq|ggSfbt a0IU)spXy9h$&eHfa$lNKU Yyڐ(cf3ŭ_>:hs ev;( ﵻo<Gۡ &x*˘wa Nj;#CmۡޮhT>nB19w2x\w꽠nL6RE>2OHm6b 2jGƜM?w(mNɈY`W3ғfbx a?4I'hofWT{!>f+.Ȧǃ+}Ϭ"??s -9T}ډС/OůS3>L t  +g"5~S'ڙLMӮ4 P7552ޛjﳆBopIȟd^S`(6h48u/oCPx1;օYl쒽5ď7},z !(S_ӡ6 A q=BU<~0YPz9x`!G̰S Poarrξ Ht[e1 )WX1N$*DGWSGR+ QBj)p)}ٟ 5 eGb >k&39mnPڒW +`.NC(Bc^g:Rc|"GHb/|\KSY(ŭH n@G\lb\&$vaLJJaS:Js-đrW"6O/ S˨:#@L6:Ѧڮ=K$g_9ܐ^4Wqnen+g8Z" +vA -R'48V`dR+ U:kCnX!a7u+3Ӈ4&.h8Pl. 2 4va)ir| o+s;\k9[sڀHh81[Y WNET< >S.Q !; ຠs)7Ƥ 9L%Q}' :|sAcԫa _hj k7[]8 Wv@rM9E4![J4i\ϸ:tP@OYJ|Zˣ*]DWbUp;gfD{>ZJJ$+}eVpia9Fq ٍ鎮n9Q.2Ǩ&Tɩr:#0/sۛ av'C5ZN[# <h#NoDɵm޿ɫ n`jFs|s'|+uWH'YP TH`GifQ2ܔt&9ue/xN%H7xWZ.*pUOqF٬+P {0xƍ-ʠy- i:S"BX۵W@rg'2KZ3hα& y\nAR}c=6 `T?=#2ɸ8tvǓ/qSfϞ;'iFȕiDj@'z/,$xU EZ6 wf)Lr8Y9mKBX9IbA)9o4 +*J}Sd ïWiE1YΑaV&G  *kp. „֝yq0A_Kp*μwL(Ҕ+?Xp -lIsBk!#3l3Bn(9}1a+U2kB]f( :z)gUɛ &ܪG- 2EךAS&bBOwq5cGuTC,jzQd~!yuIPɯ Cy{(:5L-}PUɓl귑GA}Jx&(9tDb|=Jbrbb.uΤʛ076'k 񛎄CtK縢_QwVۦLhr 7 -|`f5h& HDTzt=PWdr3"Q p:yj{$Z~b}C'@:Ljoc8.f0[fW8I5H8͐_صw1 Y)Ptֆfё+_U$)^w4/k1P4ye ]bS{ c3'CrIJr[R t\omx׿tNwJ:"Iy ~m[f7b:g|<AR6@OUTثLZʣ TrМ)M[IHFLKmOTRK nvhw(\\R~{)b^Px&^ _v#wWIaZ)gvP3Ө\dI7Чq 3,\Xr͉H!= v=4UsڈӢM1LrU`ͩ~Q@Q.4`sCע#i'{ڔOcy*a`%_Oy[a,p~}73jR!=[&}whI5Dy4럪FZZuXCoAw̚s $gKO^^[ޞ*p n`lW! QÑ8K d;w)cphCI/]R-:M%ݫ-}ީQ s` NwGS\ڮ;o"ۯV10ݟ}8+~4+Ĵ?yQ;Ћ ̏~%&v' iY$h0L?GaPe>=6!9s<%$T_sgm`B#@5_@e B>i;!v9zl(A9\,\[%FMi@䋡{Da˒GshdŮǞc]gl D$̒)?Zwh$N`53qdnLps j1 [n s,"/4Ο$glՒܭu"ՉV)fͫr<ٗ#h^73P SdwvsWKr־.͏@yֻ &j\g"e:s8ۙ-}eE>z1ĽIt+xC&]fC`9ZEӢP |4Ii&םQײBF0Qsu[IZF>nMEϛI#d>LAU&;"!NWǑؔ}ٲ. ZrF $Mg7RRwFV;PH1Npc*TuF|ԉtGYM Y.c4NcMgmΛH3T}b3ct֨?M{yl. ɜu3lzi9)M%)h~2fTk3oD#(׾!b4hn9b|.T.IB@L%,\Esŭzȹ=b^7)|43Mq.b Cd!m3A\aG~HTUOqR%28^Up3dR(O~Ub6?oڴP 39*B)^ibQ AlR9bīX+F)R$cc"d7:sjBd9x'TyVF=?͒ʩ5B Z næ$r=׈=mAV[2q& ZzT[Mӫ7}e\xLڦUx& }!o?yDlG9>x.Ųj͠n_2 %wЍsQ%MS}U! Ocx:GV;:T9jj"m΂|gܿf F1Ö*#˵r77j8ry 5웖gd_lIo8 +LK6_JhGk#Ӱ](d`HGj#ǯd6}D$ҩpdu=<džt<"oc)bX7~JA\b8Ē.Z$["\ z["nJ$T* ++' BG#ĶZdE!4 cH"7xWkns,XxX8X.įF`g2}xή.{-2ۤϸ)8Uk.RȀBj 3֒\y`U ;+MCTHwLSǹi˜^ZչI3pʙnDElŽJh1V^f3lBo/ɇ9s8z#]^X|z)+K3 O>$Wt=S]51jW^Mr#y@ ;6{nڇп%dsAPQd" us:v *$0QAptTi&]I%pC?l9~pJ(_m:)3LEs9IDp[g}Ţ 0{[B]DoZvH{7/P(q=hRO^ȖPCP g }B-b c=z s![mwi1D-RNo~ KG`8)fryz?ݱiU!N- izk˂jYa+ZjJ,`u>H O?.g .\JMޢehȺiDFMddp[AFtoO,|f+a0hFQP oϲiʊA–J1֏ "W f1͗N=ܷKTE!iCi̥fGh*{ 2Uz{_IN5^4{K$m-4w OO[ɰ0XFfcNAfqDi5бcK}WB.4#ӟ0>\P2>񷀌\}vЊo7^|<B)3JO$wW9?+x zaA: Id D/Y 3R1xv?i˘LتapKWtˏ |+6//'7j:LcpՑlj39p™gUmfalr$΀a˫h+*s#*)V`v)bhj,rsKؓxޘƷ,IS`RT~] +A G˱lT+ l&4^)s^;RһY+̛ _)>\p#ڗ@5bLt=>ՑC=86)c!5XWY|u=-*$^BK@'?"yxbBU$? eಝe@ຳ0U3 lKS]\!-LMc 'kѿoOGIJ!,N& qH+m( ^,Wǯ4-\>ń4] V,ta~,} aqn5"lTccb+&ccY?|Փ)b"Ct\ :̈́wsS&w!v캹՞MZ(t-}*A=caMÐݕOȭ |ٳ SYlEdnZeYQa9o1=YU/mxKO(U{jfzICӫVdP_ykABti,]ڇ @7Ng\C"{.7${G(iִv)>1lGwIo\D>/x7rS qT5<@yσ9k=Kd0"fqP)cP 6K8KbwTsXgVQ'[c?ةRhQw  lB6LأW:7 &'Ѵp&FV/cf[TZA_> :?^Cܼ@yWbx /Jn}Z*\i~i r$`?!.Dq7l}IEK'0&e9T7,oV<0 lrg;9fu@0k* -“|wePu"(79uT_x0 J䜥{?:%Kht]/n$@ALlwR;33Hx1,B0H["!pFEhAn.};ĜNq$3)xO-qNƢMWC X&lr2QE-]12R 0v,7Tì'QufZTgAݰyTkF8I@C0RO-bD0ʵuQ؉]xغ,LU<ͬꇗ"2CFYp*3xFZ )S Z޷oii}ϖlTnl%ɴ}`qQJCq{/|*"h i ~/Nc1]AYML"@SxhLQ!B_,n!iVe6Lz%2ZC"pX.yMs ĚWDKC41~@,(C4ܮE?7@}Myϯ612exUBf{/63}e0ZP>ʐECA^!6";|i*Bo-Rعs._( 쫢iy>BbӇ3Ҭ腎rZMkF}Q a# @~#62 |h h5C0BmQF%qQb8IEhUs6Y :sUtCG#BħZ&q*R[X@Ss(S<}0ڒ!Q[ ]#+&= ]s v!4? ߿YRSi/k=)tڷ:M`trs' ᇬ(Fh˰wKWgX%vES)PKaCJnXavN6F?J4Fԑ6*sP_(e_oπMm7}P,cJF_C\IP#Y i<(F+Cx J`f~,zco*}AG/c< ?^O ?a>]Q">Yѵg+*R# @$$Q{/Sp!,Jׅcu {8ܜrbIZ:?X2eXf~oB~PWJ%9pOvWhj):͛%ѾD45zRnW3l)"QXoyew /QlF$]bUԙ+Ch]+^- ;` v+u䦐ȘUbwܲ/k-K B([Zc;8Y{p3 Aˋ,_>İ/B|rޗnnJ\u G8g{&ܥRKx272Z7%sߠMuhWB˽GD|uy<*_c -p W0"*!&HyNb)FZ+uOZOsSM͑!)smz9sFQD;-V4&ޛAkq$05^PcJ#`׬C%GOFPnAx[JilW`\;^\ef*Q DC An'hOW ru )CEg$}e;w)"TC?ÛԻTq4vsΉWOb\NnbKPRvַj0Yzy%8J1+1 :;_G 'ahjz7|_o&ڽ ʃs |Ӝ+̐YEZM;cʰgሺuセқc0ios[0+3>#()E~w`I&l¬-{z/g8SME@)@ -\f|ha5q۸ '膄 чOoސED$Cd) YI'&c E~{2BE&R∹6,;Mr6—gL]al}>rUsoD`Eyi CʂZ69ŹHKРM~k>SRCNHgSm|;0v@W"};f!YXQ6V)o|Dꊼt=^ڶ.>i+: t q`bg=L#x_ }ѡzgT5j v%6y6;⡪yrOj X;"?qFl0ȁ<>DA,-C6t\̲zJT!yοRnon.| A[l"e YqP 1b!'zaQ_6N?K$^H)Ko-&E_7nix8TZGPC ?ϫݍkc)>3Ϡ!`]I7I%PRZNi?NxףyZ7 >sV=Ce}@Ke(+.YN](*co^gb#XAjQ/2wc/WS,5 1w$6t@C`ꇭML5 ʻ <)@rE:/ՀHe=sEL[E{bJQδ?#`Uwy"w@7NhgPzV['m@2u|oGA <學JQDS-Ӏa1ݑ%a|^/<8t1f.T9M{yoQ|p K| ?]]Lup1O|UZ G2|ꂴE?s OSL0\hJA"22x# - Us`te_l#{$̀VG$1M"%?ͪ9~5CR_9U׻LxȖHP74NYĵե5H*̖PEjjD Vs`[fv4[5w7yxJ|\Q)J.ձ.ו)KzClUhq5{Ǻr a/e+ee:|>בf"rk|XʼnLtCS~SC Qc׿W${0[qͱچ_8; ii Qu37hv ݯHEE˃E~ְe(Ύ,m4H~7ݪ1yRu3%B @utgtH;˸Vv O]I>NwralďѤC?'11ƫHGNͦp>kV0(OԁK=OWf3ϣ ;ŭQ+3>0g~ TtRc8#W#o.7Kߒ eQ/L N {q0}?3O~[#aS2zClZj+;S=]×X# #9:9i`s1?ĺ&O;S܀љxnCA} ]xzԹ _ew;[ 9!j pr[9UU^6TƣbihmM{bM4~ֿbJ &pA81HgS}mbim@>TN8!…!#vq0XGW~GBV|hvX@҆gmvuZKU|h.3 O2q+|nӜz=MyCOL&|q=_3)/'9{dM*t饌ewy&6`)$R'ui4z3֙YT_4I[Jt}m Ni=$9sơG[I g΍@6KiڏeLLࢍj|n Y[̑DOJka!ٖɔLLMG~CvL^ 9ΕKpLwZc)0xS>#q/4C%M.XQz$9"4ógG#װ H~W;Vͤ(dw6h{Ugr^ř~/*?{kyZle?hɇMnٌaߥ7FdR; 4/U@6jc#۹XuXˈ&qQ\RZPjM/,>E(|3ZQw͞yy'?b72ٍ;%"ٰхUց;`*HԁrZj,j j R{1z7u넼"W 7bh$e^t h6ʄ)u@E=L̊(,3=QfS?P[ӌQ&07fgL=%[S%cc͙*ywcWn2t/oR2ZHB}X/fA9a}_ '`N٭דM ߑ)KfO#uT5O\f90SVcA=9!h=Ͱ 8oʋw8=DR2&v9VR_i7ܾƖO<5F;%lT{(߸}U ndn*{dpNY!REמe}x2Ib=w{: tF<~O-{dB[.~Xް7@eP=ijRlzW}ItV*^N[ `&8ɈԹV2jNu_Ǘk_;+aUU(<'UrΗꐺr)E"eU2hszOuiXt3OzWh3d nn襉:."dr:%fNQ1G y񐇯_F_T%4{Q+="済drgnXz?v&p/ B҉TȧCckj|R;J3$,X$Yd~@]’SO^i)ܾx|t}~ E;'-/x^7㙪 J@|z=:ֲ0Iʹv\k @XӞB%εWeIzn=/ukZ+%F˩K%1}o"z9S$,A%mdjy6m-L%8]6ۑ_ͦ۝&h8"U}M@g9⒊Q={B1JWr aVM>&MDjihq "I^Ϝ1ɸvb\v(Zk Sr,hsN|Ң+Wg%[U de-=LP{w&Sk^qm,"R:_!j`~8 na-,`wt{XcY܍+jۃh:hB=2H2qK@1td6Q7f(3gճB[qJl֨xmѵqAgCzwrcM dVKP{Pkv e;a`}.Xe-Q#͊9rsmNtFZ%"T(m,WBEyKrZjG-cpF+>ں:2 ڏ=e+BcS U"g BX~a\ֻi󥩀diges끸bY#F* w>fi^y`ŴQph^K\677L׈,-sH~IJu䷗9ϗI*W UޞjXm|ǐcdG1얳.N۳̾zc P<|e1)ʓ hr Kw Emp~0z5 PfΨCԉB4gzZzIE#e&BX#66:0\zF'3 t$u/P"8JCJq![[XM$#&T:6MF['Etj:2ѓ)ZשD4qFƍ'sI,I:Aw0a $jk,8Mqҿ 0Ub\]Sej';G|J g[1L ܰ+ ć"fQEbL7"y8\XoNǓTȯ Q!mXslZ_moSk*r#һ sJrKuaG{h& P+}JdN ~ͮ\OBc&UX}4 vzƈzUً$$I*"ݐR8LF oZU׏2tZ z+  |ΆWbo dGgpfVj+OJTb('+8FfL4MBqxS6 C\7YRLhq#.KVTK8֊&+&0[E͝љ-ݣo1/q BGMKHH$Ehgd߸<ǓKpL;# w$D$ǔL Sbw'΁;M[X!.b8+ASQmaլ1ˈ&Ⱦbin@3#;Fj Hq"yTT^܎X;/@c-H2 LħWd[€;k ^,Uh9|0Y¬_V#$|8!EAKw7ڣb+5y?د20o6h1P`_z}nu#>N5W]RZ^AM(GzV9)}GXF ] ϐ.޻toVT H1A1o6+P$w#,y,RH2󽺬Vuò)N*,+BD[W mPpQ9[fIlplRKkc%\gI[h^[x TnvKtw)L`'2L@li>XZ?bQ|$r;\X?+0Jwa{x#J @R2 3d2\ 0Q+Miه(كDko@lS奣惌꩕2" 䦔Ǡ~ ׶84PN 0#i L{Ee5{١?NyCY! F".ΥW.10{GD9Dkya((@6!{|ypkH15Ch\B a3d+B%~٘L;_\٬0U2z~&mk,Pm.8ia׏[ŏ?Bw7@F]#qˈZYk[2gE0$khʦؒ*{ݷ\ȔXJ!!/ҿ#o)?T '/$ $ܹ $^3h]>ڒ aZ: M 3(LTd%I f?Il(/%R2A'Ҵ^*t&1Pb) 8ZR2I1{,34ZXCBϫ[7^x|I[nL#[d [r3GS( k}+_<H2#u l EVR],z\N\2GuJ`Ocf-]44f6MVڷJUDz++ "M^Md:W@ DE\p]Ћ/l7,_`O:RtgaaY?@vښ2iZJ#׭^uo90VZ+ ^y \Pv^&UAaD+OX,Zqsʵ2b۫+ίIkɢOl>x+&g@qJPwC7uHhfObMI,5>!ǰL"]qRE=LxP'pA#5'M< uc75 -jHE5̪ ks XD^I<*?A1p<`GIl/VTD#ڄ%KVo\BJg0DbxcfM4iu ,R[G`VL!ZjW:3V0T3`~)t0%",hadۓVcVgp]{QW;6!oukͩŒ}3[;rG0t>jO*jMڪWBu[)WMr/t^Z>]ez)62ht)"b{e]oTznoNzRjPt2 Lpb?Ry.j|/sڞo^^ufj: p s(u}8i@YD3n>LbshB'R^pKE܌ 3E,I>*'!4'K^&{K1:Qynǭt^MLE~{O3nz`>Kri0u%kc=,x}LRZOn[{MJ qhObAV'O魘.瘬<5\bJ=NA!U6^M^$Wf*wˎhKGe;;:&T_q =Γ=yA}4VZ(*qPpnjz64Vx#!=}g/E mB^ʠnu.y8JEN  m:G &-Φ^ge *~7a@ml`U,_vT( o@S0`k5I5h8xgi>z1[PtctkK0tfl;rl>FuM]ooÝ HRD$:tQMƁ .#O ed/ n,4 kP7!Ř`7Sfs/*7nD3/ 0'Eү֬- ݩ6.ᷠd[5e|ccLqhRfFZ@Kz;r5U}!Ĉ ȷSh,$<;-Do08bxRon V{CIcb<Pvn!+"*kU$w S$+Ge$XTH7K"D!$Ciq??BrO5ѐ<( Pu9AHrv^~c|wmQj̸~aӉ׸vc pYʦ%ֿFF2؞WFC0JkW'bO&J=cUqO/J^YD=رq'fg.G6y8DB_;k/|+]"Tw/4}sԶ͹7)ukg gRyլ%{Bc&25tCЊJV؛ײ=_ݪ_P^Xxi0 oQ{NF8d'Em 7+/`z*芮%t%fdEzݡAz=-u%iH_ ֎ U1An J#B1 i G U v!@ـdH *AbVE|SWZoqԶfOj4y:0'o*iv_rY;ts$iZu'P6칄 \8i< ?i6c#ffj 56?s"!~8VǏcJZ[MqW'9X0@i elQ#+p]cϲ871M=szN[ڇ"e ӡךa .ý"Iͯ[4x,k "豶߹ykGHD;JQnA}+VFF>}&*h#''x`S.06IdI^!odW],*>r sVr^KĜ|ddrVC?d.Gȇ x^ct%M:ôtNʠ=䅙/%UwH6U(Mvc8 At0?~.Wň )݊FǷc3=Ni+Kgܘ ^olm29,|SN(/y;4kNlS>k_nOj^ea!w3R]^=r8s y֪ϰZV$CZˍ.1Bܿ)_%!#Rs>x~*v$+: !+ x悜\W0#LhG<~H,V9xd~:/Pʉ)/ InK~^ f0n5ҷ!$#5e*TX.f_1Y$.if엦O?B6JKq!_gZ<7Fòft?[|N9f|N&f&4dq!+M}]r 3׭?1 /~eSn#Iq'wS \C_{Y֦ 4.N2֝ fFY~͌¾ x>n`ok ]HϢcIi)g'7aOwe[B\ӟڞ)O~#LmN$(O]YhD[#e>ݩ{mð~~[8]]j ouT)gˌba};FLqS@@Hi .t۞Ѝ]-^*rl"/@xMWe+jx$T`P"Sk!w8k+C4tm%3|kay(¢dɜ`vűn/_ ,kğ{o29%a 3Fɣx9>g0$/19 Qn01^GxlwK*aKeooy_Ȥ5_fʨغ ;#MƮ+o 2QeMfǫ^Mũ8)Q7\>{SX9 ֚_V‚KV*IjkV!C,eG/S9dh:U5 tlZrHD}Tr=b;~GOޜjU-yL kU 8PQ0Y"o }f*Y=uTC1 _G0*ݺLd<2\,j]Xۃzb K;+9`1$CJ8ůj%U75FH}]at1/x,#$s8Q/ɴ a7|rUjxZG.$ .u./a~9?9aG!pV)I n1"+dI\>[Uy,YyPqEtPX^ŀjz }Yp5 9 +s<;=?A>("~yp)%VWF )׻E vdK`ΔvڹlAyjo +I-Z=')Wd!qLgJ1c}F<@i#MMTQXˆSdRoRcsO+'F!fy"wъ=]la<AW'\zF?thQFB[2(I0W:fo:^Ґ'^67F$A@(.v~dp*$eFGvT6+%21asI5/RSqHJ߬ 4\S13cp6l#6җ%yh^) \[Ԓԕ=/2Y5S)iq;Ofi5oqq3ҐUUAhB5v.kgEO}۔1D~0!w8*MzЩYK^mG;=i|?8_E#:pT,Coorsl-R:\mnzÏoPP =.WT$%=ൊF}txlJzm`nYcɷ[c =! TuzLuIo9r99rfe73L~}Z-i㉯rzCӣxɪ~vǀ8uo$ƐD$6EӵՖ*EcGw@nR5Z*8Gیngg|,L{7,e[1NoF-/6z:VU>ַ`x}W;-~l.&a=u8Dr9Zdgw%p=4~-]Rn 7xB6m܂9 9tjPXw숰wҰ+T\k=k>;>Ok2 s1c0>sv7U`G{:dKЯ&x̉[Nqr'尕^BU"̏ð.LC XgJN|=,9 p{–9.)"Dg؋` ,LාQx$\j-}J k0A%gldk 樊n2>6._ `O:$vk'{\8wca5'douI MϦx+^8]B0d+W)7ܹ:PL}ot[X.|JL5>˥ejI@7bQ>h LG/261ۗжC&VeJ'ױ7r y{\:$<&$MbN4@uD#=&h {(_N-xt M)ɤY2ݱ=cǬPpub*w ց۵27gdfNdWrmtN-_i{";:>`jpCsۖA|JW~q4گ80>{mv尽P`c} 8u1ȋ6K蚌hx/ޫP< ";Jk+ Գ@}ihh>%4!2G0y7^=N0dВѼͿn38bϫGwd&,|zwva?Sz>X x +T!ﵡR*i}gJैI^h*芗=43j>伣k({暣0B}`aݸZsJIzzP o;#d ]CN1vQ=j h3Q^kSDW :۬TPVU n%ڲ9ף^,D)D0KXa`ɍ%=8ߚ#(5L8\~T)&O覷ӿufsGxuX l).aV&.s=`. 8ReNgFYE탼+54T lԐՀ~7tgZ,pr/Z+/y׊%3GXymz*0'vD}gOzW> $0Kxu@Ƞ[Oࠫl~ȟ=-l,zlg~vy)5tƅy )4rJg /+;ζ_oԄޢx1X-)z}'mi!j YAjƥML$>dP/ jߡvtlz<1_7YGy4ߋS0#F Fh﵂eG0PT:DN-8hX۱ι#;-uCg㘵]+ ܖ=oqY"f)xOUʥD{(SiS1r0\*k{Α%)qB~^'Hڠ9`[bbL}KGv3Cg[~Sa1MCyp;綞D . ܈ PG@]H8F[hp6ndyN~qk#v^9趮;#gjxlWl;}}"'~1?(ϲ+G'~ú=C.i 8[Rj5~>cӼaFEjQ}[,Y}Qlm_K[X uCc)/[}|agQLѷL~#{|JA9#d%k-2GAWXUJ]ؿbLo}XǛK'`#N +Lp),zEzx8ATƊw[K ^UM0KsHN@}qEYg/z*+: ~WT\@@5]ʾ w`r9uG2I)( +Q+xHlY.| ul\Rؿ=Q S7n%ic}Nқ\v+5 ĪSJz穼\#[ ԣ'|5*n65 q*wu[㫙gi%r_O:0n% BnqGjo  @\UI7qVR̺31Iȃ=*O~gډ?_&".,HNa4sa ?$IU;un!0&ӃȢ̍葓Uj~㴒gx7[R0u9 `tV=9bU@NR0wF@,+[4Y LWtKɞ"FCo/w\%=f ufR>\7ً9>:$ɪH&++\rVI5h8{!zTvaF ^_bOIKQZլi5$BɶpGպ5rW&5&B)x\1mm9xՆxZ2ʣǑ*F1X6j!lϭ{$l_"|?ֹd둣h/>1}&(7syPvDn&y2Cmԃܲ-2gi/Ġ$D^U#b!Bg@#/P+ʖ@}(pF\'P(Օ\~ $&`6z:Doe Fږ/33-@+s N~+F*T+x|.MM؍#ȋJB?TC{.Xb6bk=;("]gM<aNsʯ4-+ -v+ (w|c-:qb? ] {5^hp9+ǡNFvN/wցN94- 7l&U>|btNBId\| ܀XVVi#B_0MuYo oa}<|~uSBE0I;q?TȰjM趯?]>|c,HPߏZqڳS }gAkpֶ KӨxkLYuS7 T)n<=e~F\6Dzp@*6ɛHq~8oTN)o[b;Q$qPNrc7Lmj@#9RSuA5$ۏwV$Kpe_*{ +7==:ٜM\\zf.gyzKqk\>ڸS39Fdv;7n픁 zzt1~X4-EӀۥyHS 7Lϲf?>98vP_ [-Wm7> jXDkD~آ @Q/CNB>ìjLڴ7gCgj\je{͟l4|j]8ܧ5d?\`P2O[._34{ u]hÏ1]4V#\Tr#8a,a-PU c?Z6Ljd6)r>rdmOɅ\Stfse=^]v kpA0?08EnCȍU y@cJĶяWiG,(6Ҕ~HڅF2{ϱŝ5p*N+5lj9pE!(gƫ p &H5);.X5/0\gd%27C%Jc`J_= rŞr h9!Ӕ=ҔT؆b@@(m S`]C--y͆bKUd/sxU]bv-FplZ4FCI6M3lޮ}4g*h__& 娭?rB VHigH|U1Y=V ݛ)Ia բc<؞`$8,~{DfT r")xO\tO T\c|@hhBٵ*1;K6S%ɒ|pK`ۆzL vqн笜!/>VHW+<5;utD䲎'H%N&}P 3 ꍍa0;eEόGQw;- vx"Ԡ2+7gYVb12->f9Wh}n!t\Im4Aw1 ?3ԡEgɎ@騎ʤo_EꯆV^g~0` C<b | 3U[ּ MV߷S^zT\@z,*vM4Y8X 2O >{C랃ezH9ΐ[_i vE\TC%zsK j}tv W]{҈"ÎWL<Λ[!qLtdUgR*=pݦxȻUV">ֽ^v,+hZL;lڜ)ot!${QuZLabwah뾼̺dZYĉ3T#hb>R4fng9Ÿ.bx;-KOVң1+*J<=# S~^/ش1̠<$5|Jvp 1R8:Z:"ѧ] c(AQfjiWg(k2iCx$CcM-mnD #uCSiAT1N@kxhb3XS/W"uTr4䆧 T* 4 Z@Jyh75rPlc5z#BK8mlU$7jpIqZ=Y30 ?k蹘'mR,FU\;B3Nyj{j w@0'h>l)A2X@]+08IP;?/N)x8/鳁$w(̤4So0L9,ÏYp`<{KU$WL5;~ &Ѽ9KsҢG}inkf(sBgQ Eޘw.$ c~+c_0x" %h8ƘSXRT3G#_)OB^hj:5"3lD14vfF͛‡vٹܽw;N70K&گYܼ88~QtPQL<B_b1/uT԰wzkimje3(uˋ_wz(8<ܕ(9*8&ѫφM41ں7ltSvc꺄j ݱ?"ͼ黎TyvI  b#q^<5;QosM⧢`SQY,w,ʙ?Qƥ I|MlEuDQ`V9;fJQO)7.c߾`Ə8m|VWQgoahcypr+MO)-`LY7#9xDFOuZ6RcPmY7Lp֭>SfR5+hkrx,fsċY "%*Eqeֽv8>NuvGZѠɉO0yAwiH.W6;*|gTEUTۛ)%y~-?uOtzUI;aY"lT֋Q W!$Pb{AwٌN^ISٷ?4M3p,OGAz7pc9uӢ2! 8DVM.Jk We:msb~' k}E>_*`7~` _arY?|s=Y,9Q -:HtE `d#I&ckdY,n4Tb9H_AQArc_0ZɊa"k̻K\ش#v^;7kDǕ@0\{+!>6  QdD:8xl]i}Hil*gbkJ43.Փ*uMFwgSa-t_ΆQ"'@pR~d2]#fAZxш{l fpf͐6Lǒ1u6CL@~,YeW֛PL۠}ؘ] `ɨp(Nx]*a7/ &Qiz lXylUpgfK"e :Ɍ?;]a| DgT!!?(r :s]pJ_-kLVmR90F1ɇ2~`[p t6 8FAM}6i]#۶"+r!Zc\yfrFIKm z,f.y(7֓H$>JСg@ԢU*"n,A|x]+q\Xa8U6`Ui.kC.|!71Q"XQr3 ~\ЍRg, wQc0OyMlGUAAōbҐMsm'qH~Bv#e[ oħI=6^Vzؼ. %5مBB}3r6)>qΘ;!AZR}IQh ܏!.>DmW3䏬ZzѲ{ ULp^t؀ɤoU*s),uP抪3@l`G'\yD-&(U螔d[e<}Ċ)) ЇXVLDOwM0@셀<%y-FI n( xfr$|gTNQ: юj_B0+@)TT~J/QuS 4Eq-M?.Ez}TJF qt\f'U(op=t~M `OE  ՂS1I^ 2\[GI0A#Y(w;[CV9̥_v9,3 ysGpս~|QlVv٨3#3|Fo%,B8&aԊ'Zhcg fPH܌TPٰ|e=!Ҁ\a$M3lq!dӁ9 ?NXx=zQHAm*fqEt/<}îFh`}4[XyEZq)ge P9#bх0x%ǁ07-HktWa. Oʭz opmC\y lGX?1ght\6Oѿ>sJWYXqtsz\ ʝ%+7e`i%#"j*gOJRG5"Xhm娄,S2,=z VSblj8d_6l\1>~K??Ki=B4M$s2X+8,`nىQ0%}|- #ݨay+$|?sxci"#|۸OaI+{BEb1KɘųU<29=A6 3ͪ@8?:PuDhϧ0@SFz=azXxq[S+0c *TC[[F {HꙊm1V!l\ƥ)V2`r9w r(Mty\e1Q;dDݑ94ۚHmq@1**>9o)n>Y^ KCWߐ3 ht$^2\ 6Lu]}O %1Ͷ<QLfOʟ2=Iı^6׀.4B-ަJ6l=?dG2F4`Mߙi)}F6rpC 9b nQ+- I )sf8Ocon摍녎b(Ήr7WMѼzm]S`2^`ϯ䦓_- fJƀB.=1Lfc[.[U6X9q{2pR:0SI9+&HW¼c|V_#ʭ #Jm&+N^Jt._7gD[]6}ok#]%>uB_z'ԟ'VSrdΣm1+}jVEǢ÷ɇN/5{H& F|YMxk8/AoQ&*`YrkQ5`z 6LC']f\1J11?j% Z5gO},)h[`:nHR+gMa+sKwesx{\H_a`%ϱ(|Y`BjKڻ9FcA{8V5xYm*QJ HYf1ƿB. J10[`UB4C"bT1P \?c|s169bn*&sYB 9pvbeɝJܽ* u*,;rUL^vݿ;Z1(>tM q2[q(Oζ9@O2P|OH ߦ^ci:Bܳ^V/"4T%%UgDU:%Mow}烼,ƳφUKu}Ք9Od3YtØ 3  I RZ24ۤHP r3C8AڗWC&Ƣ;l} DZz B7B?]mwn dJ 6z#lғ?-n" F1'0+`z<tHl,wbP̃g+yLwEsHetsY@cKrAT(B_C& LlH'ʑNاԿmA$6iU!1/ܗ4I"ÇY:_]սOD(NwS?*w+uqPЦ,ɭm!+|H%q8X^Y".-7Y0V~ua-oZmegTҍz\gi/jѨ,D@UWY2W,8;HvrN=f t+{4kDof˦SLډ:,* r30X-f Yo⧳O^d8|aܴd 7ݞzr[3~AAɎ"h|UgDo:E_jtfi]o_"w1t,rPe=.|ohd}D$ VFmL|[parz|0Uoo19pvX'S ;[nﺸPH^`ЈǼh_KUϘhkZ!RQV 0kDT7 ]G%ȚqV3LTbsS EOŶ/|,_dxql#1J鐑iC Ug\R/n;[AYN_'B:1cȦt)o*wU _LamID_9h1S4ψɍź,.@'[N{dk뿎r~D_@dݡ5JN򊤋wKOv^aP|;_*)V.}T%Y324IY8=xw{V)u&;m%׻4~MnB‡_va&,@:V`|;=p'"H^*+Q|)r7\k4J- %=K YI['(W)aѾ#@>$ `LN yR=`cr[-/ \e(j4GN5)굀 !<ʫ9|ޖ6"U&\t'e{vY"7<1_p:}.kV_<`aYx_S`"综fNï W8 +,1)vmG*n,n?91,H* j2G` g:!mP_[(w[FdSE <;"x[X@;UL&.ޝU^FV9\FrdX(*dHP"% GoN%մsT:!ad! a3/V:_N+wkWA3!Nã;aF"z "B40ʿ ḿ`f\ɻopS>b0a86M!uAu⥐g=6UG\򶤛Y/>W:mr71 ǛBKYwf];ъ'3+h{FKyUi2.| 4~—eA :~83@ .rUz7W#$%ΤPZ:T:x;1T&MxLl{Am-\Zre]S,Z%Hl, P+ftKB \ ;^~fuR~tĈ:$.&Q}fE>PG!iJƒa6o-_$zհt|ڸV-V( I!C?qAXIi^om`$O.c ,@ T &nbo29: TF2 ݃g[ӓ،AOuY|UN>|?&U}J M&{0`YcZX˪Ɋ-~=+ l+K`Y#} Ri}ȖAMOm5zq86Z@Z*zc%l*4pˉRqWp—J*5+Y@򅠽`<6:wT׫\ŞnPD]qIMDZ hBnmz-V^+nj@zHSh~0! Ex4Pèg_cugͮ QYӞjue£o?!D ]31ѪB'W"jGn`jla5jj0yuHCWf)bniL'o+ BYUOb!X)T|",YP~#&ֳoPTK1mh#3dךNeCo¥bȗz_WE 1fBGBt]" IU噋1uvP%Zm\x^MaE?6 ~Ɣ W2aR`Fq14>E{z3MdW]Z_}'r1Mu7ܳ-a4`ל~?[CGsf,\{!LUr'>W3m:0',.;\B'&BOQ9 ֬/B]G/J*g<A[Q"T~U?! wH2MfP5+ 1o\HtQ*JdE= E7\ס@ath|]AFU~@z)YMKAhOS,Ǒ+<+P?E`e+^K<9IࣽŲ g\y-wXȬU)w*.hl=@1+Ez6"TK 1/ژ9Id{] ` 47jotkjoVAdrLqQԫ@y3kxo5ƍee}Kݍiy*? 'Æb]{3##ˁjGnңnlx,Ǭd`ujSf3(;UgJ:þb<2A1;PmmT5CI;$ 8 7|LL˨u"5SҦ3,dԑ8)i4R5.(B_5V7P*WX+1YjFϐ@8׻DhVՕ9C:פ=SԎ?VI]=qjP5dC%%%^3ޢ OfoGz>y@w=SiM >SK2ko mDEvݭaɾ6gLT^3 İ3u0,;?sNϼ%&?)xV"z~՞F*` ^QhT;Q8{8 s-6&PCCMx43x jeH߉d#†iHU7~.nau}gd& iR(؃W> %TQ[QnBhvIC%PMĀmб(M@OsLa;!=r[d^lWǕムΪg ሶU~|L>Y |gAd\|c3jwP3UrcjYR-qىI(U=5?ԯ C*ޡ;i9;8no2daXD2Cw>–4B~LDfAþ(>FUh2#3FYO!4ɼPg}I_o?nOp44d,?'xzp-̚h|>yMeNGϳ#$ԣ Dn*gC8Nn>'*GќE=7‘ofG9'gRTY9cI S#1]өy_8 MHwfԚ;tBfؔjH?Y V "ӊ{M1B/~^V3kv,BuOsSAg"p}ByBlvv/_ Fe/ 9T?/Q1$0T 5ӸG6;jZ+$+>#L[0y0oYn ~V1ᠴqd;z+z꧇LqhQ|-.`E,ޒzW/He^?ɃoghE3JכxeoǶ!Ï:@EprmzILXKd}. pnۯrp޹Cjj}Q;q+j`J#ۖY9jmZJbu&Y4=lLD^g-'۱83wH_J@!̞ WXio:t](p,<b ^r#*E%8u˩ o^Sp-<\;BPj'G׭M+xKSFv \ Uo n*' 6`kؾ }RCl҈4 oLJKHd럷9]O4|d,-jpCҜۯ<9M,i5qFb$X=1|b>r~N)qJJN#Gs%ӕȮ'@*l6`Ac{?y[biIRAԍ*O6NcY*A dr.̻-iqr16 :L`~6qH淕=W1tlj!!-t_iu3p>:<23ӵUXGB=|\Vsdp/$zlQ:d{g׏Hxr  .{L $K+W*j _}^Fw.LϘ/]D2L9)ga = ֗<(Nݯ_F5"QQp`MfM-3K+QD >TyDZ/[0TM7RGo~:L}.gYzIbYϔAT y UBB76"װ.᫐17= jzik*"YH+8_ `^lS"o:َqNѝ<!vgTFg1}Z? 7qbmƿٗ} րhyY`y+g;.TY$~Iz' *Gٙb`j E? ސ]dm@ e#Xm7S3޵BJFHH$ ,6HP#׋cN+4l^g?gp]t"bۆ{mpyrv]*)'%s}Oz ßJ88y  _񻻵lGq*gю=6k:ngZbC,EšVQT%2pIR'B} ~\Уx!Wxe8}Ӛ,V@a@ ;7Hb-PY_zYPFUO-%52.m9X`RԍWFzG`orrUEr|5ϷnE:}H`sI2fGV~4G5꾾fV%Ӯam[16=lƼ#Yr^񼈃ЅiWrNLP[G)0Hu~)6Ov(t"M)_h 𙇪~fPO0H5B7$,GNbgRBRIױi"BQ,Q)9L] j*IT|S;J0apJ}Vu+* Z]/T%87]mfSPVj]{_"@l*hDaT'fC'T^ב=wgSk3F`I㋊nsJQJZ{7m,&K< endstream endobj 5 0 obj 146154 endobj 6 0 obj<> endobj 7 0 obj<>stream x]n8߃"$1` e b~0i/@#ݏJ1M#2Va8]_px苧4,U]OguY.Voax>rQn]ǏK:؏ygע\.?O5_ܿJ+N׏\5_Tv8Џ_.6e-6]].hUL{z>؏Lv c 5Vp ^A!B]Vk{FF!)dBVhŽFw -#BG8y'qx<qH x<q8> endobj 9 0 obj<> endobj 10 0 obj<> endobj 11 0 obj<> endobj 12 0 obj<> endobj 13 0 obj<> endobj 14 0 obj null endobj 15 0 obj<> endobj 16 0 obj[15 0 R] endobj 17 0 obj 70 endobj 18 0 obj<>/Subtype/Form/FormType 1>>stream 0 0 1 rg 0 0 9.2 12.4 re f BT 1 g /LABELFONT 12 Tf 1 2.32 TD (1)Tj ET endstream endobj 19 0 obj<> endobj 20 0 obj<> endobj 21 0 obj<>stream endstream endobj xref 0 22 0000000000 65535 f 0000000016 00000 n 0000000283 00000 n 0000000302 00000 n 0000000392 00000 n 0000146654 00000 n 0000146676 00000 n 0000146861 00000 n 0000147810 00000 n 0000148766 00000 n 0000148794 00000 n 0000148839 00000 n 0000148950 00000 n 0000149011 00000 n 0000149149 00000 n 0000149170 00000 n 0000149319 00000 n 0000149343 00000 n 0000149362 00000 n 0000149600 00000 n 0000149637 00000 n 0000149706 00000 n trailer <]>> startxref 152937 %%EOF 12 0 obj<> endobj 13 0 obj<> endobj 15 0 obj<> endobj 22 0 obj null endobj 23 0 obj<>stream endstream endobj xref 12 2 0000153535 00000 n 0000153596 00000 n 15 1 0000153734 00000 n 22 2 0000153883 00000 n 0000153904 00000 n trailer <<4ccad5f373230046aace4454fd81708b>]/Prev 152937 >> startxref 157135 %%EOF qpdf-8.0.2/examples/qtest/mod-info/files/1.qdf0000644000064100006410000001527213247541377017201 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /Metadata 3 0 R /Pages 5 0 R /Type /Catalog >> endobj 2 0 obj << /Author (Yours Truly) /ContentTemperature (100F) /CreationDate (D:20040212104653-05'00') /Creator (Adobe Acrobat 6.0) /FormerlyKnownAs (target/branch/leaf/leaf.pdf) /Keywords (40, 128, public, encryption, ignition, primarily prime) /ModDate (D:20040212112832-05'00') /Producer (Adobe Acrobat 6.0 Image Conversion Plug-in) /Subject (Export Business) /Title (My New Car Title) /VeryImportantNote (pordofor stands for portable document format) >> endobj 3 0 obj << /Subtype /XML /Type /Metadata /Length 4 0 R >> stream 40, 128, public, encryption, ignition, primarily prime My New Car TitleOf The MatterYours Truly endstream endobj %QDF: ignore_newline 4 0 obj 3731 endobj 5 0 obj << /Count 1 /Kids [ 6 0 R ] /Type /Pages >> endobj %% Page 1 6 0 obj << /Contents 7 0 R /CropBox [ 0.0 0.0 72.0 72.0 ] /MediaBox [ 0.0 0.0 72.0 72.0 ] /Parent 5 0 R /Resources << /ColorSpace << /CS0 9 0 R >> /ProcSet [ /PDF /ImageC /ImageI ] /XObject << /Im0 10 0 R >> >> /Rotate 0 /Type /Page >> endobj %% Contents for page 1 7 0 obj << /Length 8 0 R >> stream q 12 0 0 12 30 30 cm /Im0 Do Q endstream endobj 8 0 obj 31 endobj 9 0 obj [ /Indexed /DeviceRGB 255 12 0 R ] endobj 10 0 obj << /BitsPerComponent 8 /ColorSpace 9 0 R /Height 16 /Name /X /Subtype /Image /Type /XObject /Width 16 /Length 11 0 R >> stream  endstream endobj %QDF: ignore_newline 11 0 obj 256 endobj 12 0 obj << /Length 13 0 R >> stream  """)))UUUMMMBBB999|PP֭3f333f3333f3ffffff3f̙3ff333f333333333f33333333f33f3ff3f3f3f3333f33̙33333f333333f3333f3ffffff3f33ff3f3f3f3fff3ffffffffff3ffff̙fff3fffff3fff333f3f3ff3ff33f̙̙3̙ff̙̙̙3f̙3f̙333f3̙333f3ffffff3f̙̙3f̙3f3f333f3333f3fff̙fff3f̙3f3f̙fffffffff!___www˲:n endstream endobj %QDF: ignore_newline 13 0 obj 768 endobj xref 0 14 0000000000 65535 f 0000000025 00000 n 0000000097 00000 n 0000000582 00000 n 0000004424 00000 n 0000004445 00000 n 0000004527 00000 n 0000004900 00000 n 0000004986 00000 n 0000005005 00000 n 0000005064 00000 n 0000005512 00000 n 0000005533 00000 n 0000006380 00000 n trailer << /Info 2 0 R /Root 1 0 R /Size 14 /ID [<4ccc11a4a9c8b04da971e7f2621e1c62><31415926535897932384626433832795>] >> startxref 6401 %%EOF qpdf-8.0.2/examples/qtest/create/0000755000064100006410000000000013247541377014767 5ustar ejbejbqpdf-8.0.2/examples/qtest/create/create.out0000644000064100006410000000002213247541377016755 0ustar ejbejball checks passed qpdf-8.0.2/examples/qtest/npages/0000755000064100006410000000000013247541377015001 5ustar ejbejbqpdf-8.0.2/examples/qtest/npages/minimal.pdf0000644000064100006410000000137313247541377017126 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R >> startxref 556 %%EOF qpdf-8.0.2/examples/qtest/npages/bad0000644000064100006410000000000513247541377015445 0ustar ejbejbtest qpdf-8.0.2/examples/qtest/parse-content/0000755000064100006410000000000013247541377016306 5ustar ejbejbqpdf-8.0.2/examples/qtest/parse-content/input.pdf0000644000064100006410000000143713247541377020145 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet 6 0 R >> /Type /Page >> endobj 4 0 obj << /Length 48 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 5 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 6 0 obj [ /PDF /Text ] endobj xref 0 7 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000266 00000 n 0000000384 00000 n 0000000491 00000 n trailer << /Root 1 0 R /Size 7 /ID [<5230bac2ea9ae642589c0d0f44e12023><5230bac2ea9ae642589c0d0f44e12023>] >> startxref 521 %%EOF qpdf-8.0.2/examples/qtest/parse-content/content.out0000644000064100006410000000020713247541377020510 0ustar ejbejboperator: BT name: /F1 integer: 24 operator: Tf integer: 72 integer: 720 operator: Td string: (Potato) operator: Tj operator: ET -EOF- qpdf-8.0.2/examples/qtest/bookmarks.test0000644000064100006410000000316513247541377016422 0ustar ejbejb#!/usr/bin/env perl require 5.008; BEGIN { $^W = 1; } use strict; chdir("bookmarks"); require TestDriver; my $td = new TestDriver('pdf-bookmarks'); foreach my $show ("", " -show-open") { foreach my $style ("", " -lines", " -numbers") { my $xshow = $show ? $show : "x"; my $xstyle = $style ? $style : "x"; my $out = "test.$xshow.$xstyle.out"; $out =~ s/ //g; $td->runtest("show:$show, style:$style", {$td->COMMAND => "pdf-bookmarks $show $style 1.pdf"}, {$td->FILE => $out, $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); } } $td->runtest("no bookmarks", {$td->COMMAND => "pdf-bookmarks 2.pdf"}, {$td->STRING => "2.pdf has no bookmarks\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("bad", {$td->COMMAND => "pdf-bookmarks 3.pdf"}, {$td->REGEXP => "pdf-bookmarks processing file 3.pdf: " . ".*unable to find trailer.*", $td->EXIT_STATUS => 2}, $td->NORMALIZE_NEWLINES); $td->runtest("encrypted, targets", {$td->COMMAND => "pdf-bookmarks -show-targets 4.pdf user"}, {$td->FILE => "encrypted.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("bookmarks deleted", {$td->COMMAND => "pdf-bookmarks 5.pdf user"}, {$td->STRING => "5.pdf has no bookmarks\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("non-trivial pdf doc to unicode", {$td->COMMAND => "pdf-bookmarks issue-179.pdf"}, {$td->FILE => "issue-179.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->report(11); qpdf-8.0.2/examples/qtest/create.test0000644000064100006410000000065413247541377015675 0ustar ejbejb#!/usr/bin/env perl require 5.008; use warnings; use strict; chdir("create") or die "chdir testdir failed: $!\n"; require TestDriver; cleanup(); my $td = new TestDriver('create'); $td->runtest("create a simple PDF", {$td->COMMAND => "pdf-create a.pdf"}, {$td->FILE => "create.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); cleanup(); $td->report(1); sub cleanup { unlink "a.pdf"; } qpdf-8.0.2/examples/qtest/invert-images.test0000644000064100006410000000121013247541377017171 0ustar ejbejb#!/usr/bin/env perl require 5.008; BEGIN { $^W = 1; } use strict; chdir("invert-images") or die "chdir testdir failed: $!\n"; require TestDriver; my $td = new TestDriver('invert-images'); cleanup(); $td->runtest("double page size", {$td->COMMAND => ['pdf-invert-images', ' --static-id', 'in.pdf', 'a.pdf']}, {$td->STRING => "pdf-invert-images: new file written to a.pdf\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "out.pdf"}); cleanup(); $td->report(2); sub cleanup { unlink 'a.pdf'; } qpdf-8.0.2/examples/qtest/linearize.test0000644000064100006410000000112313247541377016404 0ustar ejbejb#!/usr/bin/env perl require 5.008; BEGIN { $^W = 1; } use strict; chdir("linearize") or die "chdir testdir failed: $!\n"; require TestDriver; cleanup(); my $td = new TestDriver('linearize'); my $qpdf = $ENV{'QPDF_BIN'} or die; $td->runtest("linearize", {$td->COMMAND => "pdf-linearize input.pdf '' a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check", {$td->COMMAND => "$qpdf --check a.pdf"}, {$td->FILE => "check.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); cleanup(); $td->report(2); sub cleanup { unlink "a.pdf"; } qpdf-8.0.2/examples/qtest/npages.test0000644000064100006410000000100413247541377015675 0ustar ejbejb#!/usr/bin/env perl require 5.008; BEGIN { $^W = 1; } use strict; chdir("npages"); require TestDriver; my $td = new TestDriver('pdf-npages'); $td->runtest("normal", {$td->COMMAND => "pdf-npages minimal.pdf"}, {$td->STRING => "1\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("error", {$td->COMMAND => "pdf-npages bad"}, {$td->REGEXP => "pdf-npages: bad: unable to find trailer.*", $td->EXIT_STATUS => 2}, $td->NORMALIZE_NEWLINES); $td->report(2); qpdf-8.0.2/examples/qtest/pdf-split-pages/0000755000064100006410000000000013247541377016523 5ustar ejbejbqpdf-8.0.2/examples/qtest/pdf-split-pages/in.pdf0000644000064100006410000000240713247541377017627 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 2 /Kids [ 3 0 R 4 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj 4 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 9 0 R >> /ProcSet 10 0 R >> /Type /Page >> endobj 5 0 obj << /Length 48 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$HLOU0Tr e endstream endobj 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 7 0 obj [ /PDF /Text ] endobj 8 0 obj << /Length 48 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$HLOU0Tr n endstream endobj 9 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 10 0 obj [ /PDF /Text ] endobj xref 0 11 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000129 00000 n 0000000272 00000 n 0000000416 00000 n 0000000534 00000 n 0000000641 00000 n 0000000671 00000 n 0000000789 00000 n 0000000896 00000 n trailer << /Root 1 0 R /Size 11 /ID [<8207578b4c7e5a12646112c25a2e5fb6>] >> startxref 927 %%EOF qpdf-8.0.2/examples/qtest/pdf-split-pages/exp2.pdf0000644000064100006410000000140613247541377020075 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet 6 0 R >> /Type /Page >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Page 2) Tj ET endstream endobj 5 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 6 0 obj [ /PDF /Text ] endobj xref 0 7 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000266 00000 n 0000000359 00000 n 0000000466 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 496 %%EOF qpdf-8.0.2/examples/qtest/pdf-split-pages/exp1.pdf0000644000064100006410000000140613247541377020074 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet 6 0 R >> /Type /Page >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Page 1) Tj ET endstream endobj 5 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 6 0 obj [ /PDF /Text ] endobj xref 0 7 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000266 00000 n 0000000359 00000 n 0000000466 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 496 %%EOF qpdf-8.0.2/examples/qtest/filter-tokens/0000755000064100006410000000000013247541377016312 5ustar ejbejbqpdf-8.0.2/examples/qtest/filter-tokens/out.pdf0000644000064100006410000015041613247541377017623 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 2 /Kids [ 3 0 R 4 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj 4 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /ExtGState 9 0 R /ProcSet [ /PDF ] >> /Rotate 0 /Type /Page >> endobj 5 0 obj << /Length 75 /Filter /FlateDecode >> stream xs RP0371PH LBҀls# 2PI5KK4B\C ,̱2JII ibendstream endobj 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 7 0 obj [ /PDF /Text ] endobj 8 0 obj << /Length 52300 /Filter /FlateDecode >> stream x[:$ޣX#(~`b??+@_$~'o{Z>53'dBRJ~z?`B ?͞ t1?;pO/xFO}LOf~Z<ܪ珂qIeNOG QؖK= ކP;fjCĕxk>`ObJ:$y`  _F_=.3J}i0 8㦼+j,;E<~x'_BAQ2<ۢ nƕ̵nxxίf+։Hi-%.ic0xlڄx g"P6,j9k㰍*/tNM=K` #6*L_\AW_ox%bSlG u%+A6Qٸql(gMo۵i' &Y~ {h/=qI_&CI*Mh<6ѿDcKV Q™l7 CgvFm{RLSۦ4SC3{hmҵI9SEU!?&. K0k©H"Mdmidq%-{ʳVh?Ўrpg`d[7:jH>)q^Iѯ !QJVF]xGz\ )R1^_?TDAO"Di [xxj&}n' af,女җ&ݟ3$YzYK<٧yA(CE@ A^^/ 蘟$bυ2 )lx4pK!pKPلDxI4۸4E`mS%cezZ  [\mm_CvI28Y*Nxyp66]p* v^S寀/>a -%$EO(3qp,aW #w9&]2%ajnQ3%#K8<8Z;4^nDžԘcmtSs|K@7Dړ2V[b|.4xGj'I{g WmU c'Gp YG!v 3zWs|MvRcN!Ά%I0lOR'S0' :_| i4XR }D-É]{`ow*ExD14qTe}Gz{Alfp8Qp·*x'3e'Q*{MDi9l2KtYH(Q~D6 ^Q(x`IȄR@j}y0 ݹkO;m堷' F"<9&pCTOm '|9K<(HIK=K A3}/(0 D́LIRl~]'O=xՌ$і>؈b&ϗĻ/Ц$)ZM,XxWs|c^}d+*MT=aȶr+t^F_{UZ39o :;e|lD* Vs|qHuDvۓdҗ5f-NAdpsS%us%}l:A(>ˎ*#&6{g *$gF7ؘ{>i6^9u>I2'ˌIU: o xx|aɞd > LYkK<>tIItY)(&L]xTk5 ]GH[G aX7 <<7@cfVwљFD\;ֆ%:>/m# H9J!lhrC҇vJa="!IRQ| I5Qo۞$Ӷrlʾ)OZ,}\G&&NWEgWs|+g`u׃D0^GbxGsW~m0gIcZaS C)?5@ۼ+Xm2!+  ''rSszCr1I2d񔋐K8煿o'IײV&cWB`pǂ{X o*87ӛhl8#6oU/#Z;v3NZ\LyМCY$EA+jl;wP Y*؞s$:/^@Pic(ʹF&j{T}*J[Hq=4O*C%W#@2@ FK8 j0'I[V<+ObuOR} 2ASN2Egsz Yu%U"ӹ+6Lަ $IHYQ-v^a>$*OJrvld.ez;wO1(VguF$V K0Y=Z}Iܠ:n0Y0ˉH .:a/uģ/2ř3JΖ5%OMwxPFo=ۗL{X^+л'ì "H"m~(T,;3P6xb|vQsx\I">T,at*X+m,1bSո` m4_*V:P.ܔ*4X\t=oT̻D&vTB )%YLg+)ʢE T]wxA2W2Y*MCs|сxy,C2E\SvMOq)цSbbܾ%')WDYb"( f7C,<6EpS1HMPܘM:$Qf!"y-~v ^a3|4}&8L%Auk9!x652̑ |PE$t#{D%x 'C] Dq!j7ɭlWquv'by*s[Gi9l+f45cwU.rdщ!uTz g^E/DUM*z]w<d$:]#;n+!`]pXmV 4q햠Tn60pYv_9{ftNÞ-*hJR&o jNuW%&VPܥ$Qgyw1?3 6I 8كDt Tm }`W'EKq$;EImU{`Hx'*d i T5‘-v+X;4zoTP YTduc$.75xGR] IDjxJw5xm'9֞j |Ws|Cy= I]M\ WITgd";<w]'  ѩ+̆ڳ=`.Pr xp/+C~$YsA6kPUFP+iӅ,vz[7<چ<ෂ'lFG*I xp/5 bTe9xڱbSa[6>;`dA@-OΣ-&VG)s|9=e[aW¤,8#y/Z/(q< Ldul5xLUв@qWqRGX{X⮏;z#$4 bzG .+(cu$LԬ5hJtz;wxqxcO̚7qAL´]e!2V#A>&Mxtq'.ۭ2+}D*w <<Ƿ;8?X kiUf$ ӄ}W'Ejّ L1Sw/Ѱ\~{v%EfqUǧ]C</*)YM;0ʉ#VbS0"` K(, A+aN_%5-4;pJ8h"|H,epÝ"{d).;4e[vKJ$QUMM O<~h{hy%,bu%VYiء +TH>psSi78qUC#'ZEւ< +{b;{r*tMaEG|4CsUz&Ks|E6$N_ JZE!$տ[4Y|9QTmMN,']wpOw@wo$46 Cz9{*|6^ҞdE\e |6=*W"$lOE{p{9*:e{Q ΣXlzgMxcO'CσD,>H] !wƒ^8Y[D D,GHD2AyKw<8Opf+̓,":3'w仲jI8yK "һl#ПkS$Cbh79i9 bqu%3Ĺ>rx'ۦ;b$b0SY y6r<&# ا 7x|M9AMg}$K0sQ!PB\Jƻ#۳^D| \AY_}(n$HE(F8&п[OaGnվ$AE]r_ҪB]w8/&WĹ= QsP.\8UM{.?`qp xiSV#A3J A .$B s{ԎXQL<.O¦6kW|$_t[gP#I v _d ؜I"5r**lk95\p$s+Qq HK#OQtWsj3~Q$mNtNSsA WzUG"Y3;|̩EF/Md&R/n=8F9c:@y^] KkV9ȅOh=8VٮPt?CpEɕe6.,{5hߡ;HYK3(\SuLOO͓-S$7sUM9l_M0ؤ2j[n=<9x& D:Cslqg7R/3a8ry2' Q+̜ nӮS%^5*Ɠ2DDrcs=_}gO |[Dy}wk9}ll'gx[ Hٜ~!96 }(ߕȝ3{`l|̱);:Td~=I1(_g]ށsP)5 8zە(x5Uю߃sl`t]qMx=`!zv<<\+O:`Й i9)=\ tT${#vF2e8)9vc泮#Pchq:Rvs*LIoS裍b9HJ0kBJu$HlLR'QwI\ @(JÝ8Ϯ(wYS''ee$vcLhz9CI?5a榀{F]ŋG5gt'8w43egWsl/;&F\=s=yIpFF8roxx2C _vع~L_dMϱY 5 McNNc쌹] Mag?N} c @.iI2{M~LzSsnSeAAƤ `!;z̹a7RWJ+2̉/!^ + .Pk!9d7ĥ*) LfE|s#zh xw|lA|g`D6.m=4fxϹ-Sl4;37*l=06Rt'iڳ2 l@_C ;~αIFk{ \nX÷+96 iЍr I %w/|x]w<86h.\ }Ɣ 5#nwSslvkjt$lA bo k96YL[yz6$avY >~c N!\VPWғϡ$Йﮀ8V[i۞(,IW]Ϲuƾ4[}= j%C;~ͱmFweM̱.d"KC[Tk縘/=vhI&) ,DZl<(xxmsߺ= >a*c4g0pWV')H١8cئ6q{T\sO րT17<<Ƕ>zxy Q78o=4ǖ9iVƑԠ27!(La xp s=(AIehJJW .1{|218F]αYN)/ՋFA22|͹Yue E4+9Kk(W'Q  SL:bDE6<]ϱq0{闃Хa*{`M3OrӕIf\Wsпw%0 < \.sym{h2IbWAWBJ" Į}E>l?epJr%J`h9`4X-$j+@k͐㮁,a+Ik ڸC"#c<~S;V|ܕ\<&R܏5e6xД"6=]Ϲ]Fn_r'?(mw{h sX+ĕ̕\4Y |q%_Bg^#GҔ$GPUJ{x sMXyKDJ]W"Ѯ0kJr%*^Tz0jWslJr OX+hcܑg@W2WfUUϕk9l*ZYKTw <<ǖUtejq& ^c+֕TO6ʱqW`w<<džcS_Iɮ~'t7MxslAds,V~Өw HQ8a9hGi E\Ij3l*GQ[f6h<\+ D**,l{h2#ORߺ:~6cܚR DߜCc "=}xUNvߐH`Wsl tp%em?B.Dlc d1~f"D_+|vc o"O7xI 2| $$\)-s~(Zcpw$~2UUo-B.2Q$EۃmI&›]ϱ= kAޓ$M"I&`'MϱE ]2$> 8Aܧw<8YQ`2?_'Ia-6mؤv<<9LY\^$.2 ibmMc.s|II.aGCLdc oV8Oдvf{xvc {e'X"J24QUm0u|Yp zEgCmCslKڌ.EW r٘'p96˥%ݶ/2JW*Eh-MMϱY.U_NWXDi1Ik96E+${ $ 뮀,{Kѫ#(Jl =slKKQqzB6^ IẕA.)rg:Cz{p 22E/dWeW@=89,vZڕ(-\={p|SYy%!!YȮiTaxx2HGxyLI4D% W8gteF}IV):&)R>{"ոgi#5 +9Ͷ` JNl);zw<8^_(C ljQ}h96i_NJїԀ͗lGLv<8ǖ9`_,Whՙv?m\fP󫋘+j~]6j ^cÜɚ+a,%lsl]rAJOw}K`I)j +9 7՟ϓ4Ɛx6.jyc˜j^wXV/CF@lW/îs 9K?a;ҫ+iZ]_ː1|̱E ;] /]\&3slmʾ^ A=nQW BUZخ&7lJ^-Jm2鮀&9_7YO+վƫ٭ڻ=4&NT|u%6n xp-2N8/6Ď.\k㌤7𮀇"GګGaVKN%rLޱ{Hq4Ώ~uv%ulfڻG-o=0ǖ8QJNwꤍc;|8~ea7'A=fYLmw<<,]I"Bv|ե}WslrIv5zpmja+96Qyy6="</D»)96 b.U{@5pyc "TR#:FMϹMNKTVѓ\g\BsATFkڤ'n6enŹ=ka bВ7"S6 rnC l[P߃sl}=b?5?$L_2 ApMϱ]+jbd Csl{~+\Nw8hn =&;o xpM/bvIR8Wmkb\A]ϱF$~䕔IXoe*" dmxxmqPjHYO**;F@ȬMy!= %MNLNbLb4d%c!.9=IlPBD(}뮁0R$]˫]!eϏw <<90յۓ$xW57Kh)4p波* \IhlFqfk95NΈ߮]Bj~TىWIk95yvfӓty,S 6&Ecیgj bds%>D̢V\ xxm퇠7"E{Vn:dv&o *$LqPX6 u֒n4$rN `rj=g'%kю<3Sv^?l}L\IA>NEi ɢ]W{SX I˜Ix82]Wg!FUIjXx \ë |vch;:2u;xVJy(rEۘg]WW-lyة{Jt%ΜST8W I֛6&>v ޸2VX'uORy5y 6quvUk)s"P$&0I~TM7~ˆ QJ+TJlkȎwWW7beEOP `DnVTd;7U|Wl٠y4Sg&$i̚ FP +^K/s&pa<'JqcgW7D"l ).IBk{^۔+&V9SaV/9LcOXΈG,nq.'Lwᲀwob/:wIGE,nn`WѿIH`⚉+HIPdE n6gWMPܰ=4e@cTx=iWMWo9I97wuMIɋhp IMDLawo'zfA–CVi e;7yoӢٖT(߫ G^ngG&'9;#P ) #J H'%MUj$Gvb$>28"?İܱ)ˈ <-_RkW Ύ _7@ LEl#:LѿwMաROWn<6xGz! []7idIcIac B+M7ՄSA=Uh*l̲)l3 I1LLM"B] Uk#)L$?/RԣT/75Ց Y9/'aIhlv2 pwԿǖ6MiLS'CV`,+Y͍< X X&?!g'[ybWksѿa hNz%*pF/foZ"ٺSrmyv+q|S ,R$trU0g1s< h<dM6,,qj{p'Uz*~S:O"-Q\W4+92V;KA戗&`9v>YvWЯu|ܔ;tȱ\apԾ^]b˭dQB`q{`*}A$%Nx`>Wl2[_3GSSYSuX!#i;V߁sR,=jXF\"+ jdx6k5fHiO$g܉ICx2 'A]SŜemo9HxVT]%i x1v<<瓹8T)(E({ 28xZ)E^ ]ULfp#JC죛\T9QۓdyxPdH 4O9cOx.:t6WOgy%:ƍ4啁AW,b{h'6W#-"6Βy+ꮀ縞;o%$ݩTDϱ+7<w!QdוJ&uf1)AmToyxiIxgIx2+ g|6RHOyC|< w;~E#&^ ;UަxRqݰ;HK*8V>xzR {PΧoQ;W'ao\{8>^ī=$lYb4P7MM~ׄoِ&u5O3tM$Kmmw#OJyv0Ie%R+Ǥ{x; DAXH H4;Aʉ*k$]fGNHWQ]ϱgt8Ҧ(21O@eDE@+ |"G.:(W҉&(+fSAspSl {rep;~L?,Oqu{$g5s/&]D\A+Is"N pt=q$"},fOb_`sMWcI|u$*f/XV <qT_u:13Cs>:Kv'HcV5}/-wRl=4w1 a!vD.;~~폤 J#icmU2)9Y!I*\Em xo箑 ï+Q$*9*~Ws>jzdH&5ɜ[ $"G.E$gƐhv '+Q#`Ӑ ]Cs>3ADh玗 ]~;~q N]$ju&Mϱ++^SAS<%v<80hl+' IXdMX 7#,X v$y 581FgWs>O {$&WdGk9͝k3σـ1{lҩcSs> 3(5O"xtFDhS+jf!OA<=ry]A+ 4pGA}nW2OD~vgSAuSs>}Z@瓤b*9 s}<8N Mt.UA1] ymo={#us> fٮ'#mC_<<ֈ6ʢR_§ 4$m{hg3Bx;*ZB[g %u8ij{I&lA$Ըwk)ʻa9j'S@O &Av 6l= u d_ת ']|6 ڔ(ݓ4 $mWԿo<8 _y.BqM1[Oqѷ:PSB7wd 49;~=yoپƠ`{N87Ӊw-IH7Ik؞M>:>;~Tfہy%7 Z}4fzwsj 7ⷐ,$db+$A!8R+dWkFGb&` pA@hiv<L$6m֘ 83/l~;~αUƂ.[?oH|fXpCd߮;pG;ĠRLv;~qq ITI-(+]w]ϱ-$)mp]W8VAh$_@ t~TF -BºPԹ :w +a 0\6h[SO 47y|v_ "1 =c6;z8 {Y@K'kzMbSs:T04톾$ A>)<%m6;~}g&|zdXas'Ԃ{!9ld@O‹Smt:r<#>HdhO"XPzރszBgWN?c4O,3&3wѮ .Sv$!jYm- em}{pN0:Vh@ʚOb /2~.٘n]ϱ)F lȠͮܤ3aZ<s9u«q)OC2hbS x>̮t hpHgvDp*ӥ==xIP G 8Olsk96ƕuL]ZMY[WMDž|7\Q[Ůƞ{Ǎ3߃slǝ:8=JNp1eO)VG=|lyAg;~q߂Hy0$C7H0mL#`6{h1v ACn"6r|<$s'+tg)Ƴ=7c \I}I KN`lmc9Ġ#_2%Pc3 +9/0f35S ( [{h1Y: lSFysc |^ /A+cLlN4Cυ㹜e>J!_xx'3R)z\ۓ#:o26P{/|<ѲiccM';uek98xÑ W,7$C 1-5 gsS8-A<5dvJ2\:#ʉkCsЎ;~qa9DTGIԵ$d 60+9>6!/`cʯ#"2L礽]%pnhݐW@ n/CslCYFOΉG6=4VsA&%}IVAD=6foSs_D Վ; HWpTGp]DD~X{I|I`Uәc1Ο$E9U[L)`@.0W$3"$EwȱM]K(ۼk !ZU>@Z Sxo 73F!6>x>00Ͷ]ΩUFCH"R~4h@7MY| xxg3g%E.mPp,5ZfdK ˃ 4"@hmW/k97v,QW~%@Nf|=0?cӌj }PtI0[oQ~09|+9pnGҹ(zK;JRUOg\paXpXyJPL,n`| ͟t܀v0ٜ;h\#vԚ2fH[@.f[Ʀx* ^sHCd[}v㩌ZpJ;0/C;~LF vIJd߃s8Ryٷ{hw <z.F=IV4JJ(\IC[D _^W@_ALU6+|x;~Lګl4%Gƌ?{h-2bcu#2?bs{` 28p0v,Ah IIo2M5"^ %RJY1@B?i9\IRG@}0hQO.5g0zƣs1#]q]aG)-#a}/8"خ |4^EhOQҸ61 -vi&BF;K} 2h$84o xp12LՌ Y$2aulɴϮ< iO(|guc3g9.d|׉˕ xbc܅3H+9IA`ymQ2ʘ::cy*sWs|OM_WR:T>qLn xpre%V7sW28wq(|>g2jw9p!S?s-lOσ^Oe4(~v <<糹>EK:Oc!0]P> i*<($I/EFcă`F5&Iu~sӜQңU+Qgs>WGo_0@^Q7?;|y Ѩ O\63܃3ڱ{`NόBXHI(Ղ VgԐ!^|G9`/<긒Ǐ)vʨCs>AD$EfM y=' 7~ϱ떳EzQb?ƅ;h;M8Ƒw5I"DF9OddKW4L„ PIHuF~;.\~_߃s~PACr;CLLC"hG9Á<yH'ݞ 'dR f`3F[tV^ˌo Csn + 8?|O0u r~#aX{pMq74q%yߕBq8_[E^t}z?2VWF~|~!~ִ](>o6D,|`"90CUl\]{w/' Y=b3k})M8CQB^-5[>opymg E^,I[sǭ++dPЯgMY"0'RI 2ka}Ɔ(I,,Ǔhvғ:R7AG sTVÆuh#ߓK YWKL]{]xKf%/xdf\0yWm۟$S>φuo$0hMa 3_f72/'W"teIJ2Zl-.&Z_c 8 QBZUffR?neBnG< r#$Ƭ C*Oѓpl1_m `XPteϮ;<+tQmCZ;' J(pHUk]wxVd|hP,]yaj\ eȟ`ZQ;<+,% %}k'+<+lǣ$ aRaEb+8g#Qe~ %s<FA]ͦ[T6oU#)C=ۼR3S꿔Kwxm #p4g$NGǕ2xSȺwO:47WUQ}UkdPx f t%VvY2Sg4xG99ۮ4⃄<''wh*cݗdK*(zo5jku$딕J,-~\ Zļ1`G JMª8U}tΪ]ՏՒ63\|AYkxA\6N86 Q-l VB%r>Qh5xgUW\U"H >6rtXl[`+%pMuq};Lώh眮+A]IUF2gS˧:/;ocW#RT筲Vx˗UeIx71 Od$6Iw ᙺ d%L0I^l7_@HrvvY~Va_;M5XOwt RU~mO~i$H~i,2'%R*iGƅ J$ݔS~$u#V\ MQeSߪ%#=%s B;%T"@L좎JsѨump\DFӺ$HFTPR0M4Y݀w|%GA?v4x?n$OmT)QN$uæf;:hGG4V득,JNKWYƗʆ'i1Q8FSK|ԗRJ|"kN$L@y|L0.JA8 -9ɌMˇͱv7*{lr>BʉTһL0Sb(Y&+B]5> T5𹬵Ln;: 0MJuRQZWju"ǥZ8^,IRG60ʟv,Y,I]Lqi;Hj3.Tz/tݶI8åOQz6SbN7t`i;MT3Aq!Y df?*yǧI?-b]چ/{,v TǙ9Z.!V]-r) xE'ʃ#c A@3tD"۳~vdܵ\Iv9W5{t{=d}D?tSCμj'GgXB< ݮ.VY]UmۀW|ݐ]5['tQN+"~vo`ՙы$B!(GFtћ6@:(4Sȍ;2+ʫC(A-~5Qc=tCG'۹RJ,tT!S,= U2΅_=~v<>mLo|>}i;H2N5g7h[$OZ~@]w">ַ :W#dem@F*"2?+u4pQXp'KW8hY0dDF\fANWd<8dM2)R3*rѐP[ã329&B,EL(3ǣjDdM$)!5Cbc<BIH׎ soC]̗o$IUoai[fǡkn;>EBr<ĊXZuNW:@STtkm[VۍMX{ȵ>`v`| xG'+B/)I |JE/KfԩzzJeN*1+"jq5e""q!kqbLRnB?K E~ˑ~㳓w.Y9`C(tYE&3ۊ >]EPoX 9M%HPRkķOܺ_t,&od" &B> #=5ש<ߎߑ5|v<>Ǽ4 6XԸ; X"݂w|+l$oɶ\s8Ĥq,x;h FNL%|vݠ[c7i7&8x J Y4kYHYS$J꩔CQ>u$5݀w|n:e>9CÅ:Eo3 9=nJ=NZekPm kw܇)CiKZѓbcsz4wKpT ecEc?2S#!Aəbjz\W-xǚ.FY𐢋θNqQO) fD^1U1zHW@6-57_y/On sDI]De*Q.#wy~]TdA,C16kȩHiyo["YHG1m4~"Y[%F*!Q#2s%@3R.,xǧn"2? UP#zfORnn:dpR( E{getFYQ<}X,$1{hFSHYt>v9|]ܿٳ؜E9YNGz@4&BNgtxȔ_n;:U,9x4#:] :c\uf<]Y6J x'|>]>4m"4]n|݂w|L!֖מAAjgDC׿Pn,ygӁE.vJ?eva9.`',9\UyDK=@t2nvӓhLo>v]JOD ۪&}6^bQO9UsL=(Dn;>apaGQөLy6O-Iר Id{?Qis2{ݤtƹZX6{JXYw<>p8h>ElNLI'"Әw/ypW/L9nqIoḐ'DQ$@$"n{tNQD`ME2ff < ͞׮G sTyRT ȩMdDFćj9=gUYc'ޞA=^ ;Rye3l^ɿOdؗNހnK> Xyv'$s>|=|YLyvszKy&KE:X90-xǧg\'$+]v ^QPlO}QY DM)4C˶pL@&SF')vۗK%!|6:ǝ j\p" HzCݚ_RQs>9,wC!Yn#_Tn73++ǧ@SOd>&5FvH眇j!#$\`nEGk6,IZ-3/(F!|t`q3 $>7K)1MO CR,f.W Nߣs|ҋd"ɵT֜"suKin;>SpI(ti̧_QsLJɋR sN;m r+k7VvHz$"E$;rbw:>$ I+> q˵b܀JX?n'>#-Si~@(Q8%tLޮf9 y}nRwٿ瘬3mE,z꩹?cӜ#\D Q렚03rrz3 -QI4ٝ<=\%bWp?Nω]>7/4bb^VyHE2l0k"zg?ӝ;>M]"r`5=!x~s <#{7:zN ߬67xPτhX$ {P2ӜK.v_r|A7^$4#[2A/JK;hR7/ r\|OHqaة!Q.tKs-xDzBVk":G"p}-yP)IlR<$jp$WtOn;>scGqbIx>K6#Ɣ4NղCм<\揤d$FayGBr\,,5y$'cnK:K]Ou'÷$WUY [weHo a)]\au^3 ygqfR i #ʽY.2p*cX/4N~*졐۫>pٮ'Xs9:C$S i%{HQz6\b7 SXri[A7{a;/E&Rm*_%u)w7-HZ *6!a=]qKyVXHT$%'K!kydڄ>(sF.y:wi;2"DYs$EfX䮞84o_ў)}D%vAEIgdQ[=ĒfGaRdll̀w| UiWED6;/]~G&#K:y~zJ^Ej.c\l[Oup!ٞP elx|d!ݣhѥbPBf$wbzCs7%%eFcByBI j7"itY 5ٲ!UDҬB,/y Ԋ:N x'*w#Rf:bW`W\"i\lx|Og}׎ 0Q}0~v/(W?.T9|ST[R~1w\G>'cX?>j`IFy~ID7=dSqLDs,0ԇscLWV;?H510lWL8P=-s'9>vҬ.'2IvgEw/h'J/¥T64 Fv*vmGIIwvHi,w҃$!摳WK:JC(XVXycl@bͤw|4J+kr: G}o[x|O=뛰)Ԧ eqXJ R6UdQ OH6Rc kȸBbS^<_jsly%ݥd,C,l$eͱHU&l^8#wKCGw{&BGm=A,qDds8kI_Uĥl"UQ^[!?\l uݝye"oXfe/Os< |Ѽ߀v5A92/7q;4M"^a5xH$"YE@)f;>MO ҋ-P4gY>+~% ~mO!V_ ]~fhmx|xgzx&v,b&ݮw()>Wm.&I^p2kBUɣx~BDՏ2/杺Gٮ'"0J;?JYl$V̌/߮mH:e/ Q{>;leu)HQ-(:mH09/2{n :ISm|dAPn&o=ݷ=:=ٓwSx@~%RRTϺ<ĤFe^Df;:%Zb* t"mI{w<>g>Z˭$k=NRۡ iNwlTQY;8ôjWI߱i*ExT+kNr"+cóA%gX z~3!S[OdP$9W"MhsyiSzwMkms|*-AC{n8PֽB?Z I6=.Skѿ I#|Vj ^ Dǵ2و@OlJw6K4CzU5y{Y)~ICX KeR=f{H\wn4X:l԰ֵ\Ba+V. gB+STzUv:Nڄ顕Q7 iHbDVпPf;>4;u:2̴b?zh}ϝeM1x}Uܓٖ݉[ؖ V+J;MDL\V JŠq鄞Ok{e0i%3[NG/b'ٳN}l7 ^-4p)iQڴd<7 ^]KtkQoxSΣ ;>]O/+C-WQց6+]̀W=41Y'$!'Z,B*V5Q\z'$6ٮsB4Nw׆cA8.txxWP;Oֵ= bV̀W]~d %Vk0eF-.OVUGb>$wdC6Z t}g9w]-XH#nkB?s7s,4t̲?-ktCG+w19ws!$_`zKItduN"_ = TߣsQAUX#3.p1Y`=9vH5+?̗2F"x9٩Vo[t1s9vJU*4-=d4#j#ɀ{t]1r[ROZO$=ƴ6 pw|%WszY)@}) cT<5*vSh7P[G#7h.b)l,TN aW %׵lil:7 <>nyovKFn1It׊ J?",ep~nRMG)';}@X:CDJNMtߣsh$>_RЏJs $S_=:~9G4Ǯ9Z+$%kЮLtsf6d BZ}s:؍Fsqje߹ %IMX H {e 25<a9n{=6>kxGfҥve4 VaGh떫Rߣs&ܦb9)e\ߣs4l O"tW[hcTlx|2J.X?ID^Zf-k#ݿao.r2QY1Cc~!od Cy@e3' !Ʃ}v <>Ǟ,> {bXy)f]xt3d-$!Y{K[|gd%vsǾh0CMKҘMcsCզ%B P]nO\αcC&aT_ɝ9m=6~y]8^.c_l}=6^yeyXkbH(!"l*\w؜cDY  mX[b$c<M,C !a }v<>Nwj!t@:#Xyc.6 <>NYifL:}}NΩ/NRzӣMTg! Qu1x|N}7.+1sWsce:Dž| ![;H|bKڣqu0)&Ԥ`"CNwsK @}3֪ikUZn._/2WQH>cw /76{t=p3K%bʟG$%B~QZ97cwj"3~>cMõsgǗ˚ϱhۯii?[9.Ok.֖O9^ [-{PoEi_ 3he~ҕ\ZR)ڹ[nG3lkroRIP~n5\\n.dVB*-~lx6 <>Ǯ9z߆X Ǥw-?ssS5dI)e'&RtXP {TW7EJFV,M{tsbQÃu!tl%q_W9w,JsVlYWUb~uIvmY 唴ܰx|}s^u?y,uIEq*ϱkV KLp|z!Š~v<:Ǯ0+0U?ߊD@aϱofѲOs\a 6V1[9$[r]sIkD|+v >}Oo򭐓mbkwsFTzH[u,m}ބ-3n9-ogL#YQӪnzUox|ν\;|߆w7s응QtFi{kе`?۝+#cѫE"i% =]wfq9RZ%p0V|oՈyvc숶 Kb[d$ " Fcs%#"eA0!Cbtڵ{c$GL6c [31ĝUU|I2t?<`Mb6 Hc9vh1b ):tH:$&"G#9`T FKBDp{t1#y[L&CZ {RzC.l4ɵ$u,{aդ?zL.$nH )+$xt2#~./5Dn+?"=LGb h%z2H!v <>~3)&w~&أϱgF$v$hӗ:[2| )-<X:&+# Fgc9vt,JzHRJKuln=6^rR>a{BhaRgfc~;}αW{h֨E5Gi&ټϱW΃,Hf Ԉex|2 GKQL&`45ιWj4տ/1T6L;ιS&y{K2٤nGv9wɣWE{mPn=6Iwm΢N0V?_❹r/5jxM9!" ^"s{˱3n+#!a&Kܑj &s쎑|jU|.l&[9-J_vI&l $}ϱ?ny51*ػH0YWR&;+six|q+Z:}= !ԟjY{,;Vw"v[=x5o Sq^jCۇ6Oyi1zs^ۉRXn==F#̾y3s\]jծc5`n$I'E9w [eX?v,JL褨F{-N?5z@qIEnG;w4X)_UuΙt7~Ccܣ~0LL:ݦVcϱw4~ZcHV֌j_x|3*(:Eb*֫k-MucW*Oc5,!є>7߶s.btj677J+s9v͝c܅U% FxRl}vn 5Zh{dNtu{ZezuEN7swL=!,#n5{|ןw$JPM~:Y[Ϲ?^``4=!uMzBnGwdT9"NcsQ7 :~ /ϱ7F$չ7= mslڼn8VSj\,Hٝy`+Wj1!vZ4+F!s^7iM]boI;}ϱC)n]Dd١8csbZRu^,J=y7wc8_8RFk8 퍷+c !9\soz32+X EʶlrN᝻kqt'D=BVF:F@]w<:8_V%ؚ#Hdum5 ̝˪C7Iրͱxo0nxtN|uN߭ģSDOWtz|a( /vaFϩ'WMW5`E|Z &>/ox|2R0RF]q)jYFF~gn&*|x|rT<{sU=slZgonsC0ZgH#ѾaB %F| ekMudlt'M;0DnrfR xt2Z5\+"&G.[z.x|=s0nqY}~*Q] x|]s`M?[#Y9yݦ z?-{PM \$c}esl*-h8|wUio}@}5$!0x|ν\!ַ,X"=/*Rkl[9.zI(iբ[qeuJ-{Rq%{@3$"6v=6y,Bh3|1oxt}sŎ$ ;PIבT9vRB /bچyJ*-;g$sЕ~\2P4Aktiαo}at"HƤ>A 3c5PIvOgH:?TQ͌! z5ݹ;L+Mwdx̱%4p{#G.~@b1W3,r7KqlcI"2Y T| ;:xHQqng4TejUy')'D򁔦̩JԬ2w7{:fΦvq/{_{ru˗#j54{5;%(Fևul:i35> vs"V!jŧv7A4]*ƛO_EH ϱ9z-xHKVQE]sc]qQkU)q;*]bBo4[@Zr 5meUHj4⚏6]< o&BW` n3H迊uSo!iJFq$}*.1H&@3єބ룔MH;蹈%tnb7w|9+IDZ;= 2=ms?4H vۈ9V$?;7w]a)daTn8lMzyHRg%ͱ^ݞ7 )%}/Yz0>ȅjiY݂7L%b.,''1MeadT6݂7^9b/bSCJ.f7orT4z *j3gfd%ݠ7YX̊Xb"j]cۉ-=ŸNa@EaghDۇmߨdNk;Z,v@3Iѹ#Q7`a1ی0 R7 5W" d+5p! xג%ş*a%xy. A7dU󬲴\tI&\X{d7T@sOȥy\Hz=:mp!%}{WJ_:"chNJ+5I:6]gj兪v<>DZ@ꒋV^d#'i N' %x|Χr111>!vM?u*-{>VHCf}zx|z#]0Ov9RI,#-<&NL8Vw']?ޝ9u>!۬; yE7<:s4?]^f*7 ;c =&>yH=T2.ĉD99ErVjRb4">7 <>dzZ2niԽN$)Gq) nx|rUI'Zec~ޔɼY9Zs_#\|aA%èαGl$.[(6SbDKhI p_6R#QV' )z=/k9yأ2C|K`Xx;n=:瓙LeC^/Sccf|2`3r2lhΧnG|2a]\ط ϯ厴e p_9R ?JB.4R*QUCdlx|g[GX)xJ7}Ht&zw $[Ov׍Z/Սxﮬ91)z^D !VG 9ƿ D?|T75iQ*+1h8t7s\cck= #e E6.Y9ʢǺ+ =R1gK31HqteD5OoLT&6\ه\cv <>~yIF.@I0/L6i 2dBsö[B /EpR!;rLw9UQݚUė&Ru@rQnG'5M{^iR,L e,KQ onx,=9j7ǺT7 <>SٺbGjS,C.[%7w`6Y9 R'68BD,ye-cslBTbПupq2#-56y|PђOԒ#=)q&Q5xt3ٳ?M}\|BP/e|ͱv/iχU!] E\(P頨Pf]&%3%NDaew<:Ǔ[m NiM.yY㵢nOL<4fޣ1sx|gs2mѾe]erps?EF#r>ɀQȉI_C3K_>m)Ci;Nu,Ew'i]!㎨4g5ٌTpoGwGc+A"Źt|؜Ob!z!T{~l~XsYG'X'C Dw4ew;wyegw;*T7؍R\;,7yʹ斘!_&b፽G|7eGZ@M>'PlnjJ8I}qP $b~tI 1=fGZw&bb"Wɮ[ 2w$ yuhc)=>x()  i:t t\'h3s =T"}/=$ap`s\^9v(U@h-RV4 s$HYQ=.ǎ5V=$MG3!:{lh=OClYLs"4z9s"ap9eD1KTʿhNX"s|)Y9v#vsl8`FbN%f)ds2[7C"1uy~Ϲ@Ȳ)R;d9f1Fjx[ws\?3?^5k+|)ȜOo`=\|<\ 91rFcrU3R3*2b2)k(G~98b H!b_\P;lίGSUP?S"1H!\LGJ~؜Oa _A,B!eQEs@Cl"Gb=#D,9Bι?v=$yvJ!9yL6HݐU;H-gas DF8[_LB+6<`sS| pdq=6 ¬gwӎ?Esro9#F#s: zњX)Qt}rW FcsBSЁ'Į˨-^pA~;|;ͿݩkVP!V-NB>->&*tF5c6wse2#qsxB'}̱t"E]h!-/9ڤ{}Du.RdU/ehcDu)8te쑎pgu oFဋ#Msߣs>M5R}_$kJfrJiT9 ji[Śq< R4J3>WY9wBSn-_\$lE$05Rw <>6)>!D |ig'SoE'Bj@ɱZܶ͑Ws9Qb42 f*s[^G|*GjeXh)L2*#Sߣs>~7PO\㣡Ie7s>-:R{66h; }Hժv:Ƿk{"A"|Nrʯu7s瓙SD:R§E=exTo=6S9<=(j}Bt1E)6󹼮5!%Ew<>9Wq"'IJh EyBZY~v:]j = (} 0r$ ȍ~9.M0"b%FThxF[9>b;J}Bx)y C \:>w <>@Zb]}9bJv;BVVH(u"n/<4{|/pBn'ԡΦD,ǹUnR8H6-mmӃ%~|Y9F'l= λj>;{Dnzc ).-*@as|X('<ʙ4#Ul]=>3tH;! $n$[=69nD;{'D't˽ [ Oc$m>eom5@ZAu[$SOb:ΗLzOHƓy+^;dj|rnʫHDŽe#\l=638rm`"^ht,xRW)aIgoAe:p!F#rYAuӜCFi6<^OifKNߡs~a$7'HE̜H*2kf|&'BB#ߗh|d'\^u$ /*6-:I؜$1k|,KZ*8w9y +=}GBȴG~cqV_$uZI6/c;yߣs>Hnq +~le9DR&C:) *27 ude)z;_'^,Rn=6XFqU.N6cDJHwB1$Gm!"Ht%9R-ot\:AfG|"Ww.BH"uw4{tΧrUz"'DZGlZ]in7s>dz'D{4A0gY9f+$&AT$Hh:V%.fl˹I$Y$Cc+x~S9n|:!giOe`ekss>j[i< m,<^sXu8 O"nb|aYm9h]!t,m:5BSO>JMt6DZ\$WZf~>BٟlBBERu[WС7<>y~ <50%3$.t&+R i\aQ!,p5I$ j9+Sm: )Yx|s2Db-E2N0"o8N-]Xrsd:g9E?U.񁋙A(t ߪ2RO\V(x7s>=W")H\v=7坿C]bA@7~vC°ɤxEXSngw<>ǁd E->k59Q9Im QUjG{|Bd~x)'hr{wSPK\1=6A$+\èTÓBJ({B;8<ƜI !'>O7'x3s~߈^FoŰ <`SG#h2;}q|0YD'&2v<C%N=:U|B MD0%Yf|&'iW&B!Me/DYK\ΗJ' )SԖFH&}s~ PV{?o#Øs)A}kw <>9묟X\biklkt~ k#ds=TuG"x|Χs#8g)sӧ[pY+G<>;H|9L_${^gsL89=Cr#6x2G|.S7 t<#bmbot~؜FA]Lyl4q}Ir^;{<.,k {\ĦBSF!r~~p+z}D A{~N#s>}w_!'ڦx/=>3% ψu(cN8[9UTMO$&% Y -w <>糘Vz9s&r>kQ/t^`N=7aVJ e-+=>0-JRbRގQ>^~W=_9s-n&f[;#5d ^EfG|.7$䟬CEGWfƘZA@[-f<0J*sl;TtF9l:oEx\*vK@mw`SBBr)'>Q˖ջ`4z畮!U&Cc3cj_$?Ebk1lxta2t2}\N57>Z,q7s>ZBh-.B)iS1]ZffG|6wɤ~v w$BFOlў>ZH)!ޔMUxʏv~C"~3Vpn|:w%]mu!CZqNh -W"AAϴw<:0mSUb[r>ւf!%GRns"W!:$:>lm6p7=9]Mb*֋/<],R+Y"Cd?Lfd'zp3C?qm瘭Fn|6˞e_W5iq>vdvܖ!6.o˒O'x]Th,7k;d>$'3BeWPkR 塋~V8/Ҍ R0ׇ%i$N[w<:0귏R!XV蝚UQVwƉ  1Lu13%8+YQDk^\z; m%>g؜G]gu@o'5⤐ӝGaFlϰm?LegBfex@rٙV'l=60ua50nv- ѝG匣3'R ;cd{da+jhxg=+ǡDxZ:/8.z8}i,7_?C[ qu|QG!q~9 WY;4]{,oemw?endstream endobj 9 0 obj << /R7 10 0 R >> endobj 10 0 obj << /OPM 1 /Type /ExtGState >> endobj xref 0 11 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000129 00000 n 0000000272 00000 n 0000000423 00000 n 0000000568 00000 n 0000000675 00000 n 0000000705 00000 n 0000053078 00000 n 0000053110 00000 n trailer << /Root 1 0 R /Size 11 /ID [<7de599e695679e73d96eb3ce0b0ca560><31415926535897932384626433832795>] >> startxref 53156 %%EOF qpdf-8.0.2/examples/qtest/filter-tokens/in.pdf0000644000064100006410000015751513247541377017431 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 2 /Kids [ 3 0 R 4 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj 4 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /ExtGState 9 0 R /ProcSet [ /PDF ] >> /Rotate 0 /Type /Page >> endobj 5 0 obj << /Length 80 /Filter /FlateDecode >> stream xs RP03U0P0T(Jr LBҀls# 2PI5KK5B\C j4k NIL-Hendstream endobj 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 7 0 obj [ /PDF /Text ] endobj 8 0 obj << /Filter /FlateDecode /Length 55942 >> stream x}K-ۼWQ+(ن @YREuE:`R(?_;~?49__^s`8c/,]W-r%[@ņ}_X,3|#k0/G(hȀ5CqaAC"ϖT爏^=;\ ~lw^'>0{]+4J;- ]+像hq;l}o x$f h )WXo1R}s-Ϧ0sZ [ən|t>"`ֳk+w j񻵳qձ>9n#횋˾T>^Iݒip\`=VG[2l #] v0]1=FlR#3onwW|`.oq%洷ϖ 31ȶѿvO|\ƻ/a3~XϫL1g]'Ie-<-0>8w~{⪶CUmq1 cXڊl0liցN/`)b=֊=lb,2, ;%ǘQ3q]qfT͒S>1+'zna{QPeNF|LX $׵7v-bQ!a4~ÄqpQ[%"çi{߬%3z8c}a]9gK#йopa;Wa&,GG R۝pE<>u|y;`1O4X)j ŃkvW|`9x; u]`vQ!mXGLPm}h(x>ccv T4văuɛ21G Sl,ZAԯh9軖KŇ/w7|\wcC1ʵi0#gvG\X1p7K e`nN`ը 툏+~$9êbg~XUwl1U4Yύke #;)-oG|Xט5ofy8DqčgLo?|Tv{RB4, G/5q_D~~zW.-8p Pz;j^:¥8c፰Y*Wuvć5ݺN GKMi8 8d[ 7#.qyQ+PJc)eie6&` V-fVI%=IØᚈ8ӷo>9UQ T:("Rū?_KD,uyz9j_ JMeM&2lk _nWKo3t@kh"}@-θU4s&t,x]8*bq B3—><4sX Ã4tbaՒv‡5g{t(N!+ .=vG\\vDK\3"T9Z9dQG ysg=qZ-lXʵf8x0S憯*􄢞a5bflS*?z[ 9e A@" Cbt! \KM&ؓ|j_0Wmg[kyA@  \<Qͻ\MX{8dc"(<٘o:K ^$ aɒ#%Ɲx{L0CrLZ2bGe퉋*J$ .3^ExxGH/'|H5]Ȕz)}GS0vƁ`Dāo/|PΫg'da?s-8ΗBe1JҼqa {7a 5,J”ƫBO6\#>K"N1vdiHY|.q.oxy| W~4xqzZzUطUCV7uPه[7_?X2o+j _qn, { X4fBYH$&pi#>֮RHQX<28*be.¸$-90Ph㫳0늺~ჺ Jwtv,$hQ3F6"o/\X& r­# ׽XReLe@ %I8U<Փ%Y|O.o.OQ]rS}D/`b!2it# NֳTFmƍ{[Kp :R؞XX:j#ccz{⚗<ᄐ'aj7kf! @/lwtIϾ~0 +p* >.E|N_z֒Qgc"{nxJGz] y5 w+ 霛>KnpUu;C(3hg^T۟D; T0HQYl؈^>'^6egԍK@78_dAn.)JNo$01+f gz᣺>X / /糹Jw|`iBy,Qk#1~᣺G]`v[8NUn.,Kö7RE;nG手R%:, Ѣړ^n.qq!$ngQ gE퉏kb~qAEE#1YQy҉\9W$Z=Y Ax퉏 o DtKK{[k…t,"@ E'>KNp,-Q9 ^҂Qυ$TF?Y?*yhㄋ%58f.*U1,EBSpzuoG|X`Lt>lJln|oG\\xb` ǜV$$q~.1QQScY:s갈#>K^pC7dUr/NgY*OCl 3p/\oO|\h0h!`aUTFNm~1HbOEq^XSD.qI F8"N(fydΥy F50Tl.ab޳Lb8hgzdfߞ(m, _fE)U;šϾbR`5}o.p` *M$G1P@ RA5;6N\~w<8D7S?Yt43Bxg9ê*TvT(Vo'K%9dZ̀cX2#>ٯxM}W}vu%@-/̩CHկ'x5NbxV+铅 imvqaM%,?"%2E1툏ǫCr^|ϢB<38_lz^'my=xiwąUҼ:/9e0 ψSPaF !p_ݳdq*ID e{ªU1 Sy,$/]Cmnp]R{Z=Kպ$ )BS%+8^,8gD*۸nqq5{W){0`hzy*\@DkwuSH]l*k'k)z{j&lF&u8gQ]ϵ4mv $5%ȴ9궄\Pc'j]K&ɬȜY͔C,oMPk麹M86Z x U*4Eq 3HNT3( kт- O_dOeN~QoiQOh[ +8%Qay4h93e\uQCdI`$A޼A٣zV=OX fxz8YJ'o?\X3<b)\9"LC%0e qVPx[Q -u7 l7r|mϪX%l@0rC,hR=$`z]ȁєٜ`Gկ♻/gba\Y$[|\[au]Rpd㦅L;⺔fuԳ1TLCx~zf`ƚ7߳ܵT]Y!1dzkƛXm"˥v$)`ܻ:DXpanB傶#SE,%lk&7d=#>6o˴0(bN!ѺuEϢrjpAp5 YZ=YÊS _^3yRMg`9ܽU͋,=S˛ /P(G\K]J5fSte~}g&|Ժq몯W1 InzQag [j*TʽHT,CJTm {nSrWެ't@Q.PȨ֍\qI`egirbGu9J(„#hI@jȂv_xZ&5׬f,mQ нgq3~y*W[jQ?jcH "V)r1=UfV1\JD{D4-o?|Tw$aоҼQ:4vn\6.ǍPnˈÐF XӔ\烏^% wR+Lw%afN^~,o>ٮbt=}D8Y$) $r儋i:1#ε$GVٸHx)J;|uuDrgE;/ZPw>*;^-Qai`O []9*R pldizk Q=qtCr u}6ĒpX@w@\jPxoG|X. ?%Ztj$oQxrdv(=ɲ̪No WnL<=@},ʝޞbעkv DzQ:/|Xi\Ƭ bN3%(^ vud hq-]W^moW wYjUZ>'yRwO|\Peڒ+ײcKIhߧ'>;FphCZSʳ(E_;Xl_#.,nHՖ Iu0H6λHՋ ]35*4{,I%FWٮLdQy1_3+w6G\\%+*5{/-QQ2vBB4G|X.wۓ %gr,;PImG+Lhqp>lIσʟ,l__ډ剋*;y,ZRVFbqS APr we\ҏ¶Iң< .X!@XvG|Xwa*[p_kJ`:3RTB툋1KXk Xw&k9mKMBԵ᣺S⿥ xm,]!jic1ߎK^j;Yֲ޹G!*Ko~.Kkv-` # ih^ =VkQN# eW|'>;vM1|BϢ~@e#m=jN$e yE[cApH>BroO\\%l!Tky=*kfz* M١+~gaBW1懏)\gهSM)h.v\@"LVLun0/[lyT\;7= ZL}8`gdW+)c^X kSÛ_N.: *~2*MTڦT>.uEO&'hx"JHwq]R19c3kT>K>p-:UP3񋘸). RGbi{YZ ZȾ0 x;᣺$LZI@۞Eu6Icghb%#;Ml<+>BA fO3qaKJp{,cv\켈P`Gku^AcE,gQk9u톏 h4ݽk!"A ;cп=qq]JrvE,%i $8(rx{㺤 eN ̊`fc %s$4pZJPm-pQK:pVH^YH8A)JzZ>K:0BR k\SƢ9t h*}q]rٖOeZ%'Ur_wO|\`dX|)V0m'Eޞ%'thYr-[ʣ٘ 6fAk0"hoҪ@Ḫ%'=g`PE3)4&ؽ@)r dżkȪӆ9;C$%I!صr+5-]lܷ>˩Uke{Hf7a/_.xI .%vK,Q%|M}P /chx᣺K0HLX1ճH<+J/ FOY;ú 2 y쎥dyhm~%U>JUԃA2 `b=7(@J 9,+XA9ųPQ' L6'X˛>K0d OKg][*uֱ⺔ .uH|JOELAǏK0#KzVN tJa]φHu J,֦&ZAc.zIF/o$z}eK y@;|᣺$A5wq-WȵrUP ]sy$LU}x Kv.SjwuIF ިuH WA,?η'>K0"C3Ix( ZHR-V3? DB ~r#?vowG|\`{WW"2~7N^hKՅjuFP;6">EOZ'.qIF#Y#?ZV5΢1y㺤S KZh)\)m.9w0ˊ= @2(:U5Nso%Exs,}*">E)PmsuF8>qa253dgՐĔ,懏!r6EHRhQ'ہpNpE[G=Q  CqBy2WdF,lHetuC  (yt+ ȘDv(C)2?qz{wwn$p4T0͈b׾Aͬ H\MNɷ*2iPxlp4 SqLb~☭~EHG\=g*Z]ڤC) 1JZ^xкBe;H&ܶgq$#m`׿`lM,8;X+x<$PEh%.(qHjvʐ'|+\M'ƴEeVPWx^]Kӻ#,K`թ`i[I 5qp{K %P0@(̶ujwERJ"ײpop8%͗,`axr!kn3$)!C; To?*j]s_~xXs 7AuÑH3NFO-ܿq`V`!;Q̓Z˥vWf6>+@M8Y* } pkX8{ẝH^t9XT4o.3<KW@t ZD  QФUfxQ6V3- }b-AEܳT~dxkxVP.2){b,;)ZD@"<&}iK5WPD]ע D PŬ\f3w7J =KNchjA0kjtŪ;\QTZ%`L `Ob;+V\!(  \,Yt4EU 0yၢ ,Klm!,p $5yvۻ,BI] ˘hu!w=~_#.\Bnr5R ZI28SPlr/ӾN͞cN+84nlk k \/`鼦oHhW:cLGW,8qup,Oe$qzy ~Ԇޖղ!@`tE+\8pov]帖~q;79޾y(8vˎs%dp-\RRDz~oO\h•>ġ,WMIL}+zvwV&ۏ1iL~s Wlłw-U }C(4p\{T,|x qrEUJ=0~xm""G]Ai{h o?`X] ˬazʷ[vp!$up-yb=W>s憇$\K]2_a wGXk,zFm#=x.fȄ,ֺK:X>O '(ʻ[rp>k.p% YCTߒ ZGXdi]z ]?4D9gt(x+n'KU1Sf `pݲ3Ɏ,iB =san Zu JF>k:ұ n-?8:.J*| 7n[pv]q-L̞.Qcpnxn):p\.XRflܕl8-u]j`h\;dU  -Q8CٌjZ>. {᡺ o5VR˓l 5Q=KfRf5{dTkۏf Y&Ul(uռuuX.BN e-8BL'OR'Ϣc,(I ؒ6GX5 .n/ay-K  :+'"=xݒ*!v~su@y0( 疴8AcCuMN t'XjІhNXގ85y8ICIhL s憇:֭%@xpxocq r5s8EMckPc=̄憃]!ogkyPeH`]ʒ57TYt ⚨{ 5w8nkIC EgT!扃^#/8[:y%(Ca_zsăuVYӳ.a!5`]#׻g9bsb77T.#6Fya嚱GWK|9ެ,-|wVY0p`kp,JXj C< Sc\elxЧҒ=ZZƝwg_xCt 6X@y"#w?T7S]k\!g #/4 މ5oGuPsh0SZ/w78.oO<\(Vlz/˔%+v_gq`y +p ދҾ͛[bpBY3]8%"JA%"y;y\Mag3d]~[<?L,,FP"EnxrwC,kUt}(d#aͻ8/ϵ~QRr;e'0]HEbpa{ثE$u-sqpJ+t̳(zPZﱩ}Q`wO\ CCk, #8\0#``w {^Ev-U]lU&+1Z:;RtVZUY;ʩ^F>O2XH:[CTG*-785>O|Xj=hZpp-OdRUYY;A_hbƗ(1ߵS/4V aw $H Ig} *v :Bk{R'Ӿe 'H~]Z7cRK#tI[W:6 ku{(4 SRwעJ!A Z&xYy4µhY $䐸೿+^ӆsZ& eHP6 ReR;׭}CO҃.ԞY_ڗxyù-uɌkYGUsR_{{ ׼hRlRz~l{ MZqO#<I9f7lƻO'ϰC"$^>[pFu6N"dUEEW?b'`]sZO71גuq^#kpMukvꃆvā5YѲ/-N4`]d>Do!3;0iyniI"Z ^<m\O3 U CֈZ7ڂw8D `ӵ$L:9(vZO2ΠkUpZz Q:#9swXV[/ٸ]탇3 #~\]oyT 0bӧsk@E=51p]bt,:>=ę]<-a8'y՗۵p~Z`GOUf '4%38 jvk0$"˯ﮅ*O{u~}săudʻ1q9P/zgpϟ^#|M\ѫìϢ%dcUm>xihRTUWUၺf Ǿ:xԞe 4KgR$>gSv/=ǒut@+Di!ߛ'kHTֵgyph4A1JB<W 2z5RB;%~5EV 1> S;57\x"X؝XlUX_>,͔ͅ:FwX#g*!%lGkv Tz0 \~6^NxBy[0y؄to>ws-x+9%LRv,$Ā7t vuM &K@TO}'0h@&X' I $\GƳ|­ Nأ* P?UZPtM"a*+bY?"C#7ZPeHܞx+[ɓ'2uka5*Ȭ2_¸ĥYQG,,TS$oSc^wTW\q-lY!A5mLvW<`hsM֢i\HU;XXhbq<,]q%[^"Dy(Z~8^ NOwW<`mHPX__~,DScwC%7Wg~h'17- Ck銵c.EH=qp!ysWqz.tgI:%D#Pb}̾ɻSE3?f~l$qvW<`׉8%a?Zp]q4=X젋d4+ pqἎAe"Ojq~>ɻ$`E Fܐց ;"^ _A7T˜!#8 q lۋ?O*9"DɢdaP3H%ȈtE(XhQѳt6;7KE( -+'d>br,b}L\K_B&5^y Qr֯qUV@V~}a"U`PAyrfܛ9&=^caK\+'` \Aoq-uzlfC#|{rG3>EApzw Es`%b!k9w"z ֏IBi%a 6vWX:`4gL@6 1>kd.wq\95^|Ɲb>Y#1K׫J"З+'`~&$5O%}VX3 Gط#X:y {[ :" B݋([Y VJI ײV([&:U }7/M[B #?uKDfxںZ>1Kqε3umFjD 7ON?c\ UNѦV/95=9Sc`uhҦ\kP$H~P稢8W.ӳdM{͇B ۋ(%?UtZ`$5F *qbzq>>xpRjlCfvONtW94wMfע @, ^U~PȏQAg0@lă%~mm1yew*?X2Ȕ-F2X~`c\il+a+ո-0snP-R\)AR4!I߷#'\"P|fIH̓fy15 LnPh1A-M N3#İa{;cZ!u-8M @߲* U$dD'T.}*_d=2ɰMq(^t݋*һ>F%yP}kaP]vF*PvKlaU&j-s,Ef!-ƜbyX,6GNW$w`5(q\d`򆉵6:w/NX-9,oY3CE]TUk>V иRYgqBQ577iЀx}=A '@XU0kܵQRmM1P,SխWNͳt`%"_Vg݋,~LŦcA DRبS8bxGd0#`c*UPbc8сǵI?޵b^D)rBls%cF0k@,S@B% ?FȾP di`0wԴR3L悢p-I6[L ;'TlV1<4ciB7 ;8xՊ#'\l9.!CwZrm8@b=9R3qM謒R,* ,B<9vVk,LV< 6 {|+W1g 2` UX+>_p7؀b(,*<"''\Nウ|,8X,,$9ޞpXc|k|$2*&sߞVqqWiWZގ`b Y"n!1 }w䄋>ƅv5u)EA'|rcK>ŕ.h}Kt qe m ωNvONs\x;xΛisE]<_''\7EmiZҽ#m*rH-?GvyDRP61,WL7J;qC/7b(SsQs^M ^2~5+ylcnpncjkeQl= cPʯxYoN4FY2C=G0/Ou p?f,❚b@CHp#-R(*?/pω$6WR (< ۼ+ D4ѽ8j7SzPK' NWW@(zOv@qUXQ(meD= jO ,[NMjv{ruN#gvn0o7NhP{FZ,>γY*kD! ]9fݍ9.x~;EŶx@<9jW<`Ss⤰'n8p X3b!\U,M ˃+pDf1v 3tn;N='TWLXݣ,j5j@7ί͏xC~cy_Eqmpݍ+*0Qtn^.\*Ͷ1vs Dl,IQ萣=f]SOV%zעhH#U'XW`LYɮ6f0hO#'XW`#΅x'L A9jcȖcXW%c` r,1xܽ8"sh=X$F,JTۏ+j0&-I+YtgzЪH9qbbr〫\Q#ʀ$Z\ƞ% z 5fm{*7,*͆8Ġ<[)^ۓ+n0?'MM̓Emؒ⇠ވ+xu䀫^!Gɶm#pov9u>Y$t$GY!M2!jǀ\`]8s1Gz@U`\sYVv8ƘT1 ї--#,/7TA(C| W_Q4X˂ΐxkQ4cVpBg G;X @Ħ/$VIS>5l e<ˀ<^ceޓ`r9jCLv%Xyt.2c/|\Z '\FR, [{E52ѻ''\X>(=Zxǀ::|9`c~PjLA= 0{ﶧ՞ QͶ#X͎E`!؄28:xI=Ѐ}$ఠ'K9=UӴN)Cd ݋g-O&S9(n8ljh&|sy%:]A0|H谐O"ɻqUtG@u0hDo@ U8tP gAbqaմTi f6G A1mSFXX X쥡eWu#'\y~EcT+hQWP"EHCt!vGN#sXi= H,6mV!7:3 56Xw?Na}C2#l5 g&`Sc wxf ˜'TEgi oNCvɀC3vdPA - 'X|TAGƦfOguǒfu1qr.>f?\_\zL<X~c8#͍~!3zx!aұ`!NM 㘵ӻ'\Wb92AXHq{ru%o8صYԡ1t:A'T=~^Ҁ meq$#,bnZo/N|9)_ ggt¬Buzyq@rYx+E ̳T'}yqdS:g =)3ͤACo|N`|2sB<7$kÐʼ^ݽ8j i3ggvEu U{|q˝ϗP[x3u*Kz|u[jdyHIHUوR1ˋY."dy A-[JX"Ѐ,v(۠m/8 fS{x[&#رp9]y8xCFEۏyDر qVm1eඦL,d/BT;#S]x}[rd*".jR7GNs\+PPW^@2R"\wO@h|%{ǵ90¨Ѵۦ9힜pq.Lo 3Aƚnez{ruH vhRDZ$ƻno&rWEMwORߢ1P eag1iNmȹSL5힜pAs\z@$E[f%#52߆'T7=X WGA̞#Chc+9сWKٵ$!{%f9/՘PyϾW'`L onP!y9D?cт25%>yK=T%9#y~2tN$Dݠq{qBUnO#>%iAe1B01/[7GNZe=ZfyZ)pIk'\7 P,` ~_x>U4кkwkް{_YHGVߐuot`Z H'ڜ8I ۦt- +"xih{ѩ9"%8CÏacAw4\a 36:$e!T Hy bE/TR b*]~`jpG ŏ* ׀8c%gps[DžMgC!Dv fE-_ STw+Pu䬈a.CmQ1dm2!AiCAybT;9Ķ IU;!&c~m^@H' Na(~ ~/7Nf*ĄEGKWtA :Z87a-C\e~D2pE~s8334f9Xd;`Ѳ1pZݑ0P߀lɀC|T1=\C8aw\dWZ \lی1 H9J7a="Qhcо ><9akCWc 71vs:SVF-epSD:xG6G yFFZ<^"/<+L{ruq,.IDFph_''\7b??gߖ%:A--bM7P `rr3\Pi.xevp"b$;z3PPx PP>ۋ{gABZ%|[Fގ~ݸ0*m簿)mٛYa,FA-[~pEY~؎RP}:Q cN?P7qf,i79 P0ݸ T(g[&pU6bpF h/Gn"a$e*y[PPu[NF(+B;Hq4©D\8Ќ07?)oR*Gzupԓo'n"|a͔7$w Ǐ/ 1ԊЅ;A5>6ǂύ4SH|X~`EIL1?߂1Dr\oGnBA`?߸=e|s%T-#ph1??E$b`|{njwswQ}\9!\H#u` #17Nq>'>.~h!\tffDCzs.*I!T\wK"wDliaqغZ 9 s:n=Ǚ컼 GpvąSAQLS酳*}N?|XOxcnc'%]٠жlWDo?\XJI`1"et] s#4Jʕ0wY>#>.fpv^ve·E~~rMMOO|\xp4ZU=q1 6<7AԙWKҬ,N7H鉏"[< dP(vx"!)mŐ,.&;_n T͡c%?ևV\v‡DLH8yw̲D`fO^^x6(JtZZC%1l iXX59"aY@+M/a |hNG|\ɮ Sfۗ9qa5X>[;Z7,U|#~}q%=ےE_͟/@'>.HlY.ule/X_M/ߵ@YXAoykA5Y B}6ގHRTvj"QA_͟/ƃ ላK0 TvjAI(Y_وdž*:a%f}b,ā=~NG|\j:RWC?kn(PAjU |=qqlWnRXx(B̻'xnF,Լ\ r-<B?h|3HHͻ|'KJM_*k!F h 9qqXD!;} p\{} t\:(,CBƺ`Z, ?KkA9Ph\Ť c wXBRX~,,U-;=q8kT`uB-Uq~txRtKmZycH fa7EcUc]n(W=_Rw$!+ᇏT﷝ PqBszᢒnAJߤkY$P *4pćQ7&]X"2%?SE)Jln5zu, <+ E![OO\\ɭR޷H,Ux{a#>,3]7u{,dJfb<툏śMzЏ hix4HK|~xOJfΛAf>P/!GP] hQسH|ɀ2m& !'4% U "d2XFkʍRVݙSQ_?|\ LE+;Zm΍_㝞?PۉzxZȸm|R($UXW Өka`)Ha9Fʧ鈏v1A@[ cy%ć9=qQ0k򏆂c5KUzZo( KXKH-߀ PT)8Lv?efa\MHH=d[J5`bbm*KVط.$ 539\XpHiaX‡b\ڄH3c6Y$icG|\ ZU[U_ ߂nf Iŗb1zsx;2qI}in*Ŏ )I xS%ٶݱt I*_]hu:cqyP{j"[c=t+C?G;kWnX)q ;OG\\%F:gMipL1v1$4G e 482 >I; K9R @332ŕcdau4 {g:|hH`~c g| } pnڊbta˰xV1ƀeUԘh *-؉KY? 1U+Ff+I} _x7ew Ç sMb@ ]ߎ[~'{U]cHT=/8Bk量*f[$}C Gs@)Y[n+Ay#,QJ5/|P10m!ԭ(YPEO kb+Vw2Mr=ج룆gÅ5cLaur=!b)b ?G,8alzQ9.NR3GMn?>SX7Ӗ\w,ui%C `ltą5bLavSE^,IYh(43G~bDa\v ZujFe&LO'|L1tVIcn`6CDHNz"̖kƱ @13. uQDvFҿaiD<큏'F f\  E,3 ;0^<0 Ƭe(Cٛgc ^/\\-ĔFŸKsϒP,4m#/f?#>1Xݪzq<_,ko ؜?#>9X9Y=f`ẺV.cz~;X]iJгmj+FYpcO|t=%oHfJLP] yPV AHtXg^bC~oʎ%3h^>1XlcupGՙ)"R6|.CT LvLfLz|r8<5Ywzq!nm!DtdKkWq#UZRy{4O؀tć/۩Wh Ʒ3TχhpW}416B HgQ˲ >B,ٍlxمWy5 2?)#>Rh!JQ<.4Ǔ *HqćL4Ob IW-HlW\>W Ԍ!|$W]l O6j퇏*F^ehFjeP8e$~32W Pa`hϒHCbGW j2Kx0wK8M&՞O{ȠjVO|\120q{]g+"kK4oO\\=F^A'M] b)Qa7eD2jV}z& gÑVY2fT,B$ OX?|T1>0u',Q"26?\T5@\Ip\,mfAgM(@OV ~-ޫlgǁEP"9pa'xcm'xٟPMoidZ{w7OO|\1N02$<Q± Z2HEX'.#I-C9\lŵ;$#'N%˵Tp2Դ6 b`LCdhg]a2Ac<)~]Pcx#1J1.fb:n˒G1ˏCO\\Oꦯ7K$wˆ5Vl=UNZfdivWOf}+^_+.dsxd({!xhIvx^yל7 < QMIz5b !X m&5%dZ*H> C(?.iT+0$ɽxf0fTeO )2_n'Q/9FUkM e1Yd#>.npI.E9剋kΥ߉Y=8Cw't²+)ĭLYMM`;a5]WX(,KX`!9qqu;2vCn$Rv-Õ['477Igb`$- Z&BX% !.v9=qAs!kVMi$͒3%%N}NO\\bd[ s1WW'&Z],P`\*.~pJBX!`E* > +>>>jVDR < y;p{fDÇUJ Lj6|eHy$Ff*B @Unb$aIsM?o̱4o1\b:qq=Gp7% UãcRR0JݞZV0ku#>>Xd*},lic0^uM ƙaWP>8ij @5֨|ᇏ L!THr(f'8K>';9B&b;,z/tNO7\XH@P?S7,l!< 8P_4?#>#u )K:a33@(c(~\CȹRɕkTTl*EQAR@;|!% A;`:QB|MY\@FNG9a=)E!2%/-iOP5՞ZdFyT/T{(Hlڇ>C1\gY*e#UJ' ݹ'ک],U;ͣ78dV}nxq-ΐ!x:mO-bo?|X.{;PdHy9Ax 5ld |#zHQ]3 ԅ˳<|Ay2][%+OpA2Zpy7IYrh .̩: oz{`3{Y8O6,ZEߎbaI^tV?G<.bW'.C=l׺nZ0pA3?'|Hh¤i{9쌸{ܙM+Ccyb+bQJu͌[zxm7dH1F7%ڌؾR!t‡Uj(ZD|2,vƶ4mP/a>Dž \iƩ\W?ǒ8cad2z<a=O F=ϵ;x4](pf?`AK D+ɸrOxFfC鈏 mUBg0ofAZ<$ , "2~L7KBtkEB0_~fG;, BYˀ9{;[l2bo53MgpG*|9 3tljPٳbs SP(8cBmX,LK&Q.Yo'|TA*p'a>"f2%pkM_hOᇏ+n!@57:Mx ҀQ8!|D )P8.dySh&,C p?S# ‡I:I,H۞EЫEnc1T +F 1Da 8"ؚ CW ҀQp- _gq]>AsrdD~T=JjXB8dK|O7|\A0Jfebsk8(bc'.ZpA.}6!$)!kvdC{[;oYĎ*)G8'> pXy%rgxJdCR ܛ( fQ2V={z{ r!LčIY2X2 Й] P]$C Jb.A-4E2Ƭ9=qq=A2pGXq7>{PDqNx'> Ϫߘj.A2i*N4E#8A J\kDTR>6<<ϊ*&58#z,TI4ZqAz7Gp2HFbNxmQBo?|XvmHgX=f(6f $:`x;šѪ H,׾u]Kc;X{@ w9'5sLS) g羼Rϫx OC rʨ:HN٭ ՘?qq( XP\.whB5r&V.EASu?̯qRFmqftm  fСMzE~r,79E!,tY߳t{8ALUJoTcN^ jucxW}UkBۘ.,DB8>;X'yi1SpDϫt"Y޳)B݇+>0#㼛~ҫ,lbR:yoL[Rl*g11N5<=q zt2nN T"UD(^^ .z](F\6Zaw9R^P! Hmrd|RC{WRyB-Tp;lca鋇ljNEy/"Y-jlG:b/>u -TH=ʥ"+KN1`J=!0"^cxv ى*ژpy9Zgm*g 3:dqt?l# |]zY0еr)Joa &ϒtIKJ39ޮx3 \ i*(aWZ${K>$YT0jibLm*'wIy);MLjxlm/48,$&4aM1T ቃ.ڏ=.vEn=|T$OO<`>Y}Y M|OW<`'bdF:,y灲T1O)vlq-oRMfzzGX$.Z'QЊ5u]&ub#4&Xkvfk4'خrB"=O/of (l' b9[Fu ?]q|G kbPGi1tVZPeͣ . i!P6azU8˗| ,TKh/2uTqR3՛b&55/$(k*ClMxq-E+WSgݛFߞxք@,ͺ!'b9ԎDV&MD xD aB3RK5z_nx0:P(7lΆ2qUo':u 0 HY?} h2wҥ@qZ)?; Pu?7S٩퇃Jb!XoОe/hvDi0^VSb VQ Q7d)7m-ҷ BG\Y+MZ_j Jv/?T҄ B?³IY*xxo?*I=e]K0ryԗ.!\8#&XIw,& Ekmxa qF p,e1Z }PX1``9OhHcRө}8a00Jbi㣧%*'V%<',RIXju%Zct Cڅ/ ǢRqቃkic˃]8ԞEIaA7鴍ޞxdaH-!\m )xX=X!7NǷ'0_YiSdƳ  ƖN|;Za0%аqTCl~;W3 1(pݚX= U' i>K'|采*LF!z-g1FA|`ڸ~>Q0dzEAw'ld,gH ;+E"XP2tcK:tLg 㝰鈃k^5Iѵ4+[8+R yiW8(6q;wU(Z},|e6#~zq`(Uɺԇ eP0UnxT|dЗ2>-B~l%>yy}$ĵte+ݾ̗%'IbaI<)5酇+.=?Švєg;@ g>fy~>> ᆃjE :|ThmK|{0ގx aw{A@Ea<7Oߩci?! ^$OYO(9^ Tk8M)xڌGz}]%nvg12Ay_mo݃S~- oGXPl%}'-ЀJ"g }-Fq0jYW?b 8CNm)ȭpAKPZ@F;]ynr-Sĵ~>\/Gc"%M x9p`eIa*2"$T ,]AXswTϵc E{B|Ã%cԵ}Jg@i 96$yks):k+ޞxbt%[uH-ن$ܧ^,E,y5a1-pO0YXæC0'c̆؏a\KfސA %}NGH9d RxƱXP4|ؘÃ`1XC?ZP+"٥%!tJO4 ٠RYTH 1.2b}\K,Q5gg zy6Z~#_i6גBhjBOH;q`'хxNn?Jv\,͸.*#鈇 #1\I']+huC^ixྥ~d]K&Â~JsH8-*Ԩ t[1N7(Dbtjz*- ZKPzᠪOR :\m e2lv` `h4~iCki6i&9ӞoG<\ /ZKQI6k?' {g.52ylu* R9~gتϥo @1~xڒng_ {[ U6~l8w-gO j?pP0kxW aּ:ۮG|UOx|aM=˳_xsL;.>pp(ygZߖ,X/a#gѩ+ 9XҺMV'6`]` K]{۲ImImgn8Z0 m^onv9p Ð*iw/nROO<\a"Im& ·pYv~4xٜ)a#GnxDᵯhoPքL␫ZO|H0Qxn! ێ*UA+~8F' }̿7.O M=1uz ӄf&͏{!SmƉ<q`0Kx Udito,?4qtuV"ȗ0IjJ?u˱ #߄z0IjJ͒7?߳t!U(_<8V#v:u|aTC(JBW$\,Ie-~v=4Qnp}C&gyG".l6C>=s $;)ZZUqP W o볅{®+W ;`gy}TAB؍0{z&*E9Q_Yz;k9$мa`E)BM𺶌EjEexIV\Tn02 8LbpEx2!黳KSJV'U3Djbך|tI"݀СVl H-N)~`bw!.5 T \1XEԵtUl"4|(5M5vEN則+vz!X"'+Dj Ul(XoE j`cEЯȾWX.$nה-Y_n@".pOGBu׊҄+DB+54"7F81Évks:҄g躔q-'05y!E 툇+JؿF{7&ŹB 4@D|D[L~1TI6j wwE8, ܟP rb^`qBVK|mӘbjZXūm )ӏ,~~5Y*8>:sdK՟au7].7 9 "*o?g\#o(ڳq T}l\bpq3;w0Ű\kX Z1ϨPs0 r5y/֘?`gXDnN 8Cw 7hAħv䆋ҿ*kS Ů%5tY1gmoO.t;.jgn9m6fƃw÷.{ w赘͢N`)X ƅ$TߒTɎ#i:Mp8rkaa3K3ѧ=EKvPH{8VpㆊA?7xMH\2 I\ߎ\`)dgX8Gڟ[1rw%6R7Hnd^յ4q!aL?jO" ,MhP׷(_~\`)tgX] F\0ccF,szq5S[緷,mF,]N{}pCx1 Uvճf%/'axRo.3ZRɷ@H'ֲ[%8 =5],qQ <'7\̍j̒X +ZjEpJiĿ+q-g 5Hv/̔[~QVN?n34mE.B[jRM[+abFϰvulgI90"ЋB9"ﰠ̒ IJ ˋ&2E f\YzT[N`*c{qEb͟aսoı^tɉu@z Ú|AKb3tYvaE_ۍ*Q^&]"PtEL*@N/Gnb]A.t U{ =kA-" }sxqA%QMR@: t 4:3|qEAAbCW݉,m?]!b-hMiB^Y2Ţ{>IbŴ *3J&kAqh&WԴfbT +pC`3wX;?_!¼YH(NGnzg\r-i[2i0ގ\`I$ﰖ~Ӫ~4\jh0t=֟aw,wUZQ4qep䆋dՓfʨXYWۯ $kXckiW߱[pQϸF:4ۦyqFmOìX %kᆜ6 ޳}eszr% ?B wP3akdV3#=Ї7T#cfaM`zLj2jwp8:g u;rEUοâ䔌kE,svmbӑ .iP;MzYa7Qr˓ (yCFͦ!U#wGngX\̾fa4,Ԏ!e wpX2J Gr @E5KEqr(MH7QųiȢ~`#vwǐo55 5UasӍSFgъ'4Z忠V 1GeajNngkڷbҐl#7\!0 Z>F2`E_:jp[#P촡c ZQ8w*Ӎ " :*te,ءA$T<,~`` ZfΛ^)9= Aptug3KUXYg/VaJ!P2F ژl=~yr :JD ,%9h8˓Onp< '-ma,g D2jҼY4\ ͓qzv []/C,7 9Wltć[?8?2|nQJ hc=O?nBtA[SLn@y'!j9 񅧝|LABYx'Yq:r5C|aиsK",$V+#7\cRWF;go;g` Y2V$P+H-Bv2M,{;Y{yꔃ1#7T9/ v1Mlm\XpqCrj3C=KbJt&V J2t,z Rsд тA9F@o*γ2>Nït+ xaޔ,Ms2x*̗zÑ "tiSzϒbЬqc W iiY(w1 ޘQ9gmQ9>7L!f0d y\,+ZROo/.r ş{),}토~pFٚ%kRTW Q60[q27mp,=ܴxv OnBUU+cn,Bm( ^['7\!z*S_;8Nfapme{ 8>'\Oj[Y-S y*<< Wrbey6Ʌmȅ4O U l+qljpfTaO\CPFO'|Pm FJZ&6@UƇ 7D!fq{j;ķUE T#V?.onBs\Օ3 RS⡸ `[?Až(r\:{27T!VS(/̱(j9(=5 ~pXK)q9"یz9.x\oGn"*9VVVRBx}2= }!pX ߣ/#X޾X+sS(X~PNBݬ̢n MB/7\BpG ntY!Ե_$bcSe6`EQ6dK*g<ł(ї5aJ:#P*5N9֢v+B)B_S+22K$'7\FpuhN5r-YG8@ tg%|oO.#'(fTIFWC6T%<'7\Fp{@d4\b` v7qFoÌ Ul}t1y24EFn\@Ϣ: :UYZ7\& j3̪ >"D/f`/n%MҼYx˨X;m2-¤ WO`q?j *;v-3*agI\»D a/ Vo% ؄QTg(ac)l ʷ+)bV7<ޔћˎ6-I"'Z|N?. bvfոY2*VJ3ԇ7T>IP fFݦ2/GnJ9DnFw$ ]ˣ4#hF/O.ZǚICAF5D}I7To1Wn?,Agt.8;Q5_`2/q'Ic6w`Xџ\p!mx(-@IP7h]y3tx5'Qm9PAn7nJ QQzq^(G+BWOػߎ\`!xUUC,WST5ʁJ"oGn=iFnUСHGO W ls *rZYzQaB\oO.5A^,Zё {}lT<7PTF<.v-Tv6 ;\4T \:SݸᲗ Ԍm,9~>ƾcÑ V Q(3r,}i΋hcЁ!ήLpu8dͨ()XO~xv#;|{qTqot⟜ETwעH m=+TH>Ve0kїKPˎ=C31$ dE%P U3:ttn6bXSt,—TvKwQQ7b``:9.S D)EuQa*qˍY(zm ;4}mGQe51Lꘑ**>ۍHt0Q(.77P%(=KѼXjffTo~/?.﷛\F7 {4%:3vpa!̏?1TI@ /iq^^0g1<_p-G24qeWUH)$? ^ +{C1S]Bʘgo7nz;% &q{v t24ۘj%7XŞqui3Z .ߡd%)Wwr+RE38'pV&jS0FGYufGg>yӏ,p-| 5vVrr DV-v*9cahegNX@|=J=:k; ,lX,1ZƔ2;‹ x۲޵R@:e<^oOnt.͂k|!GC8̀2t 4TxyX~cf!6Q>7X%KB7<8~c"%mx?ܸz\,X2^abc6()\オ"8ժok!3 > sL +̏`Bk/KZ+NiJp0[]͒@I;P R-5\ ҖF:Uۍ9-Mj83jfd51~\P727r]& Jîecqs T  5b  2r+D Mix >eIdn\P1{aAE) Ķ0Nx{zqC"=} pp/Y2Bێk;#7\!bclac[=8 _+y M ԰{9NU6pxrCM [zm-8" ;~)?ͷ'7\!n0UeK|C ,yڥߎ\`=!j0dbZPC<Qv+ z!tt<=T0+.Bwd1| ҿ|m i|NG|X`C +..=iJT.Z}:rbS  Ȉ \a :ܸ Q QqBCݨ.eo7.f\!!/*8qb5B E̿ 1K۲;<P?q 2/n"`q>XjA /;hve ׅ_N\0oܱ &JK׉aW-o7nB|z"mlfK丒q WLYjN d?nz{"Oq/3m~o{ኰ!,Cݱt)(^LJU J DTt[ ]"ll W ]Fd--W2M9dGn"`.&`HeyJ[R5.j[ #+BUkcpx~7˳} r5NrS~x;rb Q Ʒ] ~4]mdr)?.J,[TrY~Hb9~w ˠh],kؐk˜ߦpei [Yv|`D #X9Ʀ(^BZꒄ7pގpjfZd6xGcJ UYp8rb c7ɥMULUޖ 1"av$G.R2 [XL5qQ@/nB2YtioHdI\kߞp(<|؍pM&+Jh܃ޞ\p=!pj@@l/%U8S#7X!p܏-8ѴL+aۑsgOҶtg Fǚ퇏Yk=NGnza Zpmcӆ>ϗ+7`dF,`]K[km_8lSNSt ‘zZiAb dxBk+VQVn}S=66v RoOnB$b@&fL/Ǹr4*j J ҷn[uZ]O #7XAb ^;`!khMӏPRsr-ur\0U_3Bm.Uw3BB8f V0c-oTYu \-G%Է%bV<=kk]C:*W T$8ÕS䊶P3K/ztLHE0ߞpY6`-|i9 ~cI{q͚ȝo~p1nP"[jQƛivy2.}M4-X3!!DmoGn 4ZBp_U Ž^M@,vA.}=÷ uBɍ>%xxrq[) Un*ޱ'3 2M xyra #81Y$•W*&̘-Ud4`VnRH`Y)·h,ݽ~4,-*}^d!#cYЬa7SXI`p2rTZV4HO݅ɮDhT~ݧ @ EҞ8p^/ZA(8oQY&0Az |iIJEM<TcvK|na)H'Oa%_&[XoG W/Gdx/meѵ-w`o~)uendstream endobj 9 0 obj << /R7 10 0 R >> endobj 10 0 obj << /OPM 1 /Type /ExtGState >> endobj xref 0 11 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000129 00000 n 0000000272 00000 n 0000000423 00000 n 0000000573 00000 n 0000000680 00000 n 0000000710 00000 n 0000056725 00000 n 0000056757 00000 n trailer << /Root 1 0 R /Size 11 /ID [<7de599e695679e73d96eb3ce0b0ca560>] >> startxref 56803 %%EOF qpdf-8.0.2/examples/qtest/filter-tokens/a.pdf0000644000064100006410000015041613247541377017234 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 2 /Kids [ 3 0 R 4 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj 4 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /ExtGState 9 0 R /ProcSet [ /PDF ] >> /Rotate 0 /Type /Page >> endobj 5 0 obj << /Length 75 /Filter /FlateDecode >> stream xs RP0371PH LBҀls# 2PI5KK4B\C ,̱2JII ibendstream endobj 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 7 0 obj [ /PDF /Text ] endobj 8 0 obj << /Length 52300 /Filter /FlateDecode >> stream x[:$ޣX#(~`b??+@_$~'o{Z>53'dBRJ~z?`B ?͞ t1?;pO/xFO}LOf~Z<ܪ珂qIeNOG QؖK= ކP;fjCĕxk>`ObJ:$y`  _F_=.3J}i0 8㦼+j,;E<~x'_BAQ2<ۢ nƕ̵nxxίf+։Hi-%.ic0xlڄx g"P6,j9k㰍*/tNM=K` #6*L_\AW_ox%bSlG u%+A6Qٸql(gMo۵i' &Y~ {h/=qI_&CI*Mh<6ѿDcKV Q™l7 CgvFm{RLSۦ4SC3{hmҵI9SEU!?&. K0k©H"Mdmidq%-{ʳVh?Ўrpg`d[7:jH>)q^Iѯ !QJVF]xGz\ )R1^_?TDAO"Di [xxj&}n' af,女җ&ݟ3$YzYK<٧yA(CE@ A^^/ 蘟$bυ2 )lx4pK!pKPلDxI4۸4E`mS%cezZ  [\mm_CvI28Y*Nxyp66]p* v^S寀/>a -%$EO(3qp,aW #w9&]2%ajnQ3%#K8<8Z;4^nDžԘcmtSs|K@7Dړ2V[b|.4xGj'I{g WmU c'Gp YG!v 3zWs|MvRcN!Ά%I0lOR'S0' :_| i4XR }D-É]{`ow*ExD14qTe}Gz{Alfp8Qp·*x'3e'Q*{MDi9l2KtYH(Q~D6 ^Q(x`IȄR@j}y0 ݹkO;m堷' F"<9&pCTOm '|9K<(HIK=K A3}/(0 D́LIRl~]'O=xՌ$і>؈b&ϗĻ/Ц$)ZM,XxWs|c^}d+*MT=aȶr+t^F_{UZ39o :;e|lD* Vs|qHuDvۓdҗ5f-NAdpsS%us%}l:A(>ˎ*#&6{g *$gF7ؘ{>i6^9u>I2'ˌIU: o xx|aɞd > LYkK<>tIItY)(&L]xTk5 ]GH[G aX7 <<7@cfVwљFD\;ֆ%:>/m# H9J!lhrC҇vJa="!IRQ| I5Qo۞$Ӷrlʾ)OZ,}\G&&NWEgWs|+g`u׃D0^GbxGsW~m0gIcZaS C)?5@ۼ+Xm2!+  ''rSszCr1I2d񔋐K8煿o'IײV&cWB`pǂ{X o*87ӛhl8#6oU/#Z;v3NZ\LyМCY$EA+jl;wP Y*؞s$:/^@Pic(ʹF&j{T}*J[Hq=4O*C%W#@2@ FK8 j0'I[V<+ObuOR} 2ASN2Egsz Yu%U"ӹ+6Lަ $IHYQ-v^a>$*OJrvld.ez;wO1(VguF$V K0Y=Z}Iܠ:n0Y0ˉH .:a/uģ/2ř3JΖ5%OMwxPFo=ۗL{X^+л'ì "H"m~(T,;3P6xb|vQsx\I">T,at*X+m,1bSո` m4_*V:P.ܔ*4X\t=oT̻D&vTB )%YLg+)ʢE T]wxA2W2Y*MCs|сxy,C2E\SvMOq)цSbbܾ%')WDYb"( f7C,<6EpS1HMPܘM:$Qf!"y-~v ^a3|4}&8L%Auk9!x652̑ |PE$t#{D%x 'C] Dq!j7ɭlWquv'by*s[Gi9l+f45cwU.rdщ!uTz g^E/DUM*z]w<d$:]#;n+!`]pXmV 4q햠Tn60pYv_9{ftNÞ-*hJR&o jNuW%&VPܥ$Qgyw1?3 6I 8كDt Tm }`W'EKq$;EImU{`Hx'*d i T5‘-v+X;4zoTP YTduc$.75xGR] IDjxJw5xm'9֞j |Ws|Cy= I]M\ WITgd";<w]'  ѩ+̆ڳ=`.Pr xp/+C~$YsA6kPUFP+iӅ,vz[7<چ<ෂ'lFG*I xp/5 bTe9xڱbSa[6>;`dA@-OΣ-&VG)s|9=e[aW¤,8#y/Z/(q< Ldul5xLUв@qWqRGX{X⮏;z#$4 bzG .+(cu$LԬ5hJtz;wxqxcO̚7qAL´]e!2V#A>&Mxtq'.ۭ2+}D*w <<Ƿ;8?X kiUf$ ӄ}W'Ejّ L1Sw/Ѱ\~{v%EfqUǧ]C</*)YM;0ʉ#VbS0"` K(, A+aN_%5-4;pJ8h"|H,epÝ"{d).;4e[vKJ$QUMM O<~h{hy%,bu%VYiء +TH>psSi78qUC#'ZEւ< +{b;{r*tMaEG|4CsUz&Ks|E6$N_ JZE!$տ[4Y|9QTmMN,']wpOw@wo$46 Cz9{*|6^ҞdE\e |6=*W"$lOE{p{9*:e{Q ΣXlzgMxcO'CσD,>H] !wƒ^8Y[D D,GHD2AyKw<8Opf+̓,":3'w仲jI8yK "һl#ПkS$Cbh79i9 bqu%3Ĺ>rx'ۦ;b$b0SY y6r<&# ا 7x|M9AMg}$K0sQ!PB\Jƻ#۳^D| \AY_}(n$HE(F8&п[OaGnվ$AE]r_ҪB]w8/&WĹ= QsP.\8UM{.?`qp xiSV#A3J A .$B s{ԎXQL<.O¦6kW|$_t[gP#I v _d ؜I"5r**lk95\p$s+Qq HK#OQtWsj3~Q$mNtNSsA WzUG"Y3;|̩EF/Md&R/n=8F9c:@y^] KkV9ȅOh=8VٮPt?CpEɕe6.,{5hߡ;HYK3(\SuLOO͓-S$7sUM9l_M0ؤ2j[n=<9x& D:Cslqg7R/3a8ry2' Q+̜ nӮS%^5*Ɠ2DDrcs=_}gO |[Dy}wk9}ll'gx[ Hٜ~!96 }(ߕȝ3{`l|̱);:Td~=I1(_g]ށsP)5 8zە(x5Uю߃sl`t]qMx=`!zv<<\+O:`Й i9)=\ tT${#vF2e8)9vc泮#Pchq:Rvs*LIoS裍b9HJ0kBJu$HlLR'QwI\ @(JÝ8Ϯ(wYS''ee$vcLhz9CI?5a榀{F]ŋG5gt'8w43egWsl/;&F\=s=yIpFF8roxx2C _vع~L_dMϱY 5 McNNc쌹] Mag?N} c @.iI2{M~LzSsnSeAAƤ `!;z̹a7RWJ+2̉/!^ + .Pk!9d7ĥ*) LfE|s#zh xw|lA|g`D6.m=4fxϹ-Sl4;37*l=06Rt'iڳ2 l@_C ;~αIFk{ \nX÷+96 iЍr I %w/|x]w<86h.\ }Ɣ 5#nwSslvkjt$lA bo k96YL[yz6$avY >~c N!\VPWғϡ$Йﮀ8V[i۞(,IW]Ϲuƾ4[}= j%C;~ͱmFweM̱.d"KC[Tk縘/=vhI&) ,DZl<(xxmsߺ= >a*c4g0pWV')H١8cئ6q{T\sO րT17<<Ƕ>zxy Q78o=4ǖ9iVƑԠ27!(La xp s=(AIehJJW .1{|218F]αYN)/ՋFA22|͹Yue E4+9Kk(W'Q  SL:bDE6<]ϱq0{闃Хa*{`M3OrӕIf\Wsпw%0 < \.sym{h2IbWAWBJ" Į}E>l?epJr%J`h9`4X-$j+@k͐㮁,a+Ik ڸC"#c<~S;V|ܕ\<&R܏5e6xД"6=]Ϲ]Fn_r'?(mw{h sX+ĕ̕\4Y |q%_Bg^#GҔ$GPUJ{x sMXyKDJ]W"Ѯ0kJr%*^Tz0jWslJr OX+hcܑg@W2WfUUϕk9l*ZYKTw <<ǖUtejq& ^c+֕TO6ʱqW`w<<džcS_Iɮ~'t7MxslAds,V~Өw HQ8a9hGi E\Ij3l*GQ[f6h<\+ D**,l{h2#ORߺ:~6cܚR DߜCc "=}xUNvߐH`Wsl tp%em?B.Dlc d1~f"D_+|vc o"O7xI 2| $$\)-s~(Zcpw$~2UUo-B.2Q$EۃmI&›]ϱ= kAޓ$M"I&`'MϱE ]2$> 8Aܧw<8YQ`2?_'Ia-6mؤv<<9LY\^$.2 ibmMc.s|II.aGCLdc oV8Oдvf{xvc {e'X"J24QUm0u|Yp zEgCmCslKڌ.EW r٘'p96˥%ݶ/2JW*Eh-MMϱY.U_NWXDi1Ik96E+${ $ 뮀,{Kѫ#(Jl =slKKQqzB6^ IẕA.)rg:Cz{p 22E/dWeW@=89,vZڕ(-\={p|SYy%!!YȮiTaxx2HGxyLI4D% W8gteF}IV):&)R>{"ոgi#5 +9Ͷ` JNl);zw<8^_(C ljQ}h96i_NJїԀ͗lGLv<8ǖ9`_,Whՙv?m\fP󫋘+j~]6j ^cÜɚ+a,%lsl]rAJOw}K`I)j +9 7՟ϓ4Ɛx6.jyc˜j^wXV/CF@lW/îs 9K?a;ҫ+iZ]_ː1|̱E ;] /]\&3slmʾ^ A=nQW BUZخ&7lJ^-Jm2鮀&9_7YO+վƫ٭ڻ=4&NT|u%6n xp-2N8/6Ď.\k㌤7𮀇"GګGaVKN%rLޱ{Hq4Ώ~uv%ulfڻG-o=0ǖ8QJNwꤍc;|8~ea7'A=fYLmw<<,]I"Bv|ե}WslrIv5zpmja+96Qyy6="</D»)96 b.U{@5pyc "TR#:FMϹMNKTVѓ\g\BsATFkڤ'n6enŹ=ka bВ7"S6 rnC l[P߃sl}=b?5?$L_2 ApMϱ]+jbd Csl{~+\Nw8hn =&;o xpM/bvIR8Wmkb\A]ϱF$~䕔IXoe*" dmxxmqPjHYO**;F@ȬMy!= %MNLNbLb4d%c!.9=IlPBD(}뮁0R$]˫]!eϏw <<90յۓ$xW57Kh)4p波* \IhlFqfk95NΈ߮]Bj~TىWIk95yvfӓty,S 6&Ecیgj bds%>D̢V\ xxm퇠7"E{Vn:dv&o *$LqPX6 u֒n4$rN `rj=g'%kю<3Sv^?l}L\IA>NEi ɢ]W{SX I˜Ix82]Wg!FUIjXx \ë |vch;:2u;xVJy(rEۘg]WW-lyة{Jt%ΜST8W I֛6&>v ޸2VX'uORy5y 6quvUk)s"P$&0I~TM7~ˆ QJ+TJlkȎwWW7beEOP `DnVTd;7U|Wl٠y4Sg&$i̚ FP +^K/s&pa<'JqcgW7D"l ).IBk{^۔+&V9SaV/9LcOXΈG,nq.'Lwᲀwob/:wIGE,nn`WѿIH`⚉+HIPdE n6gWMPܰ=4e@cTx=iWMWo9I97wuMIɋhp IMDLawo'zfA–CVi e;7yoӢٖT(߫ G^ngG&'9;#P ) #J H'%MUj$Gvb$>28"?İܱ)ˈ <-_RkW Ύ _7@ LEl#:LѿwMաROWn<6xGz! []7idIcIac B+M7ՄSA=Uh*l̲)l3 I1LLM"B] Uk#)L$?/RԣT/75Ց Y9/'aIhlv2 pwԿǖ6MiLS'CV`,+Y͍< X X&?!g'[ybWksѿa hNz%*pF/foZ"ٺSrmyv+q|S ,R$trU0g1s< h<dM6,,qj{p'Uz*~S:O"-Q\W4+92V;KA戗&`9v>YvWЯu|ܔ;tȱ\apԾ^]b˭dQB`q{`*}A$%Nx`>Wl2[_3GSSYSuX!#i;V߁sR,=jXF\"+ jdx6k5fHiO$g܉ICx2 'A]SŜemo9HxVT]%i x1v<<瓹8T)(E({ 28xZ)E^ ]ULfp#JC죛\T9QۓdyxPdH 4O9cOx.:t6WOgy%:ƍ4啁AW,b{h'6W#-"6Βy+ꮀ縞;o%$ݩTDϱ+7<w!QdוJ&uf1)AmToyxiIxgIx2+ g|6RHOyC|< w;~E#&^ ;UަxRqݰ;HK*8V>xzR {PΧoQ;W'ao\{8>^ī=$lYb4P7MM~ׄoِ&u5O3tM$Kmmw#OJyv0Ie%R+Ǥ{x; DAXH H4;Aʉ*k$]fGNHWQ]ϱgt8Ҧ(21O@eDE@+ |"G.:(W҉&(+fSAspSl {rep;~L?,Oqu{$g5s/&]D\A+Is"N pt=q$"},fOb_`sMWcI|u$*f/XV <qT_u:13Cs>:Kv'HcV5}/-wRl=4w1 a!vD.;~~폤 J#icmU2)9Y!I*\Em xo箑 ï+Q$*9*~Ws>jzdH&5ɜ[ $"G.E$gƐhv '+Q#`Ӑ ]Cs>3ADh玗 ]~;~q N]$ju&Mϱ++^SAS<%v<80hl+' IXdMX 7#,X v$y 581FgWs>O {$&WdGk9͝k3σـ1{lҩcSs> 3(5O"xtFDhS+jf!OA<=ry]A+ 4pGA}nW2OD~vgSAuSs>}Z@瓤b*9 s}<8N Mt.UA1] ymo={#us> fٮ'#mC_<<ֈ6ʢR_§ 4$m{hg3Bx;*ZB[g %u8ij{I&lA$Ըwk)ʻa9j'S@O &Av 6l= u d_ת ']|6 ڔ(ݓ4 $mWԿo<8 _y.BqM1[Oqѷ:PSB7wd 49;~=yoپƠ`{N87Ӊw-IH7Ik؞M>:>;~Tfہy%7 Z}4fzwsj 7ⷐ,$db+$A!8R+dWkFGb&` pA@hiv<L$6m֘ 83/l~;~αUƂ.[?oH|fXpCd߮;pG;ĠRLv;~qq ITI-(+]w]ϱ-$)mp]W8VAh$_@ t~TF -BºPԹ :w +a 0\6h[SO 47y|v_ "1 =c6;z8 {Y@K'kzMbSs:T04톾$ A>)<%m6;~}g&|zdXas'Ԃ{!9ld@O‹Smt:r<#>HdhO"XPzރszBgWN?c4O,3&3wѮ .Sv$!jYm- em}{pN0:Vh@ʚOb /2~.٘n]ϱ)F lȠͮܤ3aZ<s9u«q)OC2hbS x>̮t hpHgvDp*ӥ==xIP G 8Olsk96ƕuL]ZMY[WMDž|7\Q[Ůƞ{Ǎ3߃slǝ:8=JNp1eO)VG=|lyAg;~q߂Hy0$C7H0mL#`6{h1v ACn"6r|<$s'+tg)Ƴ=7c \I}I KN`lmc9Ġ#_2%Pc3 +9/0f35S ( [{h1Y: lSFysc |^ /A+cLlN4Cυ㹜e>J!_xx'3R)z\ۓ#:o26P{/|<ѲiccM';uek98xÑ W,7$C 1-5 gsS8-A<5dvJ2\:#ʉkCsЎ;~qa9DTGIԵ$d 60+9>6!/`cʯ#"2L礽]%pnhݐW@ n/CslCYFOΉG6=4VsA&%}IVAD=6foSs_D Վ; HWpTGp]DD~X{I|I`Uәc1Ο$E9U[L)`@.0W$3"$EwȱM]K(ۼk !ZU>@Z Sxo 73F!6>x>00Ͷ]ΩUFCH"R~4h@7MY| xxg3g%E.mPp,5ZfdK ˃ 4"@hmW/k97v,QW~%@Nf|=0?cӌj }PtI0[oQ~09|+9pnGҹ(zK;JRUOg\paXpXyJPL,n`| ͟t܀v0ٜ;h\#vԚ2fH[@.f[Ʀx* ^sHCd[}v㩌ZpJ;0/C;~LF vIJd߃s8Ryٷ{hw <z.F=IV4JJ(\IC[D _^W@_ALU6+|x;~Lګl4%Gƌ?{h-2bcu#2?bs{` 28p0v,Ah IIo2M5"^ %RJY1@B?i9\IRG@}0hQO.5g0zƣs1#]q]aG)-#a}/8"خ |4^EhOQҸ61 -vi&BF;K} 2h$84o xp12LՌ Y$2aulɴϮ< iO(|guc3g9.d|׉˕ xbc܅3H+9IA`ymQ2ʘ::cy*sWs|OM_WR:T>qLn xpre%V7sW28wq(|>g2jw9p!S?s-lOσ^Oe4(~v <<糹>EK:Oc!0]P> i*<($I/EFcă`F5&Iu~sӜQңU+Qgs>WGo_0@^Q7?;|y Ѩ O\63܃3ڱ{`NόBXHI(Ղ VgԐ!^|G9`/<긒Ǐ)vʨCs>AD$EfM y=' 7~ϱ떳EzQb?ƅ;h;M8Ƒw5I"DF9OddKW4L„ PIHuF~;.\~_߃s~PACr;CLLC"hG9Á<yH'ݞ 'dR f`3F[tV^ˌo Csn + 8?|O0u r~#aX{pMq74q%yߕBq8_[E^t}z?2VWF~|~!~ִ](>o6D,|`"90CUl\]{w/' Y=b3k})M8CQB^-5[>opymg E^,I[sǭ++dPЯgMY"0'RI 2ka}Ɔ(I,,Ǔhvғ:R7AG sTVÆuh#ߓK YWKL]{]xKf%/xdf\0yWm۟$S>φuo$0hMa 3_f72/'W"teIJ2Zl-.&Z_c 8 QBZUffR?neBnG< r#$Ƭ C*Oѓpl1_m `XPteϮ;<+tQmCZ;' J(pHUk]wxVd|hP,]yaj\ eȟ`ZQ;<+,% %}k'+<+lǣ$ aRaEb+8g#Qe~ %s<FA]ͦ[T6oU#)C=ۼR3S꿔Kwxm #p4g$NGǕ2xSȺwO:47WUQ}UkdPx f t%VvY2Sg4xG99ۮ4⃄<''wh*cݗdK*(zo5jku$딕J,-~\ Zļ1`G JMª8U}tΪ]ՏՒ63\|AYkxA\6N86 Q-l VB%r>Qh5xgUW\U"H >6rtXl[`+%pMuq};Lώh眮+A]IUF2gS˧:/;ocW#RT筲Vx˗UeIx71 Od$6Iw ᙺ d%L0I^l7_@HrvvY~Va_;M5XOwt RU~mO~i$H~i,2'%R*iGƅ J$ݔS~$u#V\ MQeSߪ%#=%s B;%T"@L좎JsѨump\DFӺ$HFTPR0M4Y݀w|%GA?v4x?n$OmT)QN$uæf;:hGG4V득,JNKWYƗʆ'i1Q8FSK|ԗRJ|"kN$L@y|L0.JA8 -9ɌMˇͱv7*{lr>BʉTһL0Sb(Y&+B]5> T5𹬵Ln;: 0MJuRQZWju"ǥZ8^,IRG60ʟv,Y,I]Lqi;Hj3.Tz/tݶI8åOQz6SbN7t`i;MT3Aq!Y df?*yǧI?-b]چ/{,v TǙ9Z.!V]-r) xE'ʃ#c A@3tD"۳~vdܵ\Iv9W5{t{=d}D?tSCμj'GgXB< ݮ.VY]UmۀW|ݐ]5['tQN+"~vo`ՙы$B!(GFtћ6@:(4Sȍ;2+ʫC(A-~5Qc=tCG'۹RJ,tT!S,= U2΅_=~v<>mLo|>}i;H2N5g7h[$OZ~@]w">ַ :W#dem@F*"2?+u4pQXp'KW8hY0dDF\fANWd<8dM2)R3*rѐP[ã329&B,EL(3ǣjDdM$)!5Cbc<BIH׎ soC]̗o$IUoai[fǡkn;>EBr<ĊXZuNW:@STtkm[VۍMX{ȵ>`v`| xG'+B/)I |JE/KfԩzzJeN*1+"jq5e""q!kqbLRnB?K E~ˑ~㳓w.Y9`C(tYE&3ۊ >]EPoX 9M%HPRkķOܺ_t,&od" &B> #=5ש<ߎߑ5|v<>Ǽ4 6XԸ; X"݂w|+l$oɶ\s8Ĥq,x;h FNL%|vݠ[c7i7&8x J Y4kYHYS$J꩔CQ>u$5݀w|n:e>9CÅ:Eo3 9=nJ=NZekPm kw܇)CiKZѓbcsz4wKpT ecEc?2S#!Aəbjz\W-xǚ.FY𐢋θNqQO) fD^1U1zHW@6-57_y/On sDI]De*Q.#wy~]TdA,C16kȩHiyo["YHG1m4~"Y[%F*!Q#2s%@3R.,xǧn"2? UP#zfORnn:dpR( E{getFYQ<}X,$1{hFSHYt>v9|]ܿٳ؜E9YNGz@4&BNgtxȔ_n;:U,9x4#:] :c\uf<]Y6J x'|>]>4m"4]n|݂w|L!֖מAAjgDC׿Pn,ygӁE.vJ?eva9.`',9\UyDK=@t2nvӓhLo>v]JOD ۪&}6^bQO9UsL=(Dn;>apaGQөLy6O-Iר Id{?Qis2{ݤtƹZX6{JXYw<>p8h>ElNLI'"Әw/ypW/L9nqIoḐ'DQ$@$"n{tNQD`ME2ff < ͞׮G sTyRT ȩMdDFćj9=gUYc'ޞA=^ ;Rye3l^ɿOdؗNހnK> Xyv'$s>|=|YLyvszKy&KE:X90-xǧg\'$+]v ^QPlO}QY DM)4C˶pL@&SF')vۗK%!|6:ǝ j\p" HzCݚ_RQs>9,wC!Yn#_Tn73++ǧ@SOd>&5FvH眇j!#$\`nEGk6,IZ-3/(F!|t`q3 $>7K)1MO CR,f.W Nߣs|ҋd"ɵT֜"suKin;>SpI(ti̧_QsLJɋR sN;m r+k7VvHz$"E$;rbw:>$ I+> q˵b܀JX?n'>#-Si~@(Q8%tLޮf9 y}nRwٿ瘬3mE,z꩹?cӜ#\D Q렚03rrz3 -QI4ٝ<=\%bWp?Nω]>7/4bb^VyHE2l0k"zg?ӝ;>M]"r`5=!x~s <#{7:zN ߬67xPτhX$ {P2ӜK.v_r|A7^$4#[2A/JK;hR7/ r\|OHqaة!Q.tKs-xDzBVk":G"p}-yP)IlR<$jp$WtOn;>scGqbIx>K6#Ɣ4NղCм<\揤d$FayGBr\,,5y$'cnK:K]Ou'÷$WUY [weHo a)]\au^3 ygqfR i #ʽY.2p*cX/4N~*졐۫>pٮ'Xs9:C$S i%{HQz6\b7 SXri[A7{a;/E&Rm*_%u)w7-HZ *6!a=]qKyVXHT$%'K!kydڄ>(sF.y:wi;2"DYs$EfX䮞84o_ў)}D%vAEIgdQ[=ĒfGaRdll̀w| UiWED6;/]~G&#K:y~zJ^Ej.c\l[Oup!ٞP elx|d!ݣhѥbPBf$wbzCs7%%eFcByBI j7"itY 5ٲ!UDҬB,/y Ԋ:N x'*w#Rf:bW`W\"i\lx|Og}׎ 0Q}0~v/(W?.T9|ST[R~1w\G>'cX?>j`IFy~ID7=dSqLDs,0ԇscLWV;?H510lWL8P=-s'9>vҬ.'2IvgEw/h'J/¥T64 Fv*vmGIIwvHi,w҃$!摳WK:JC(XVXycl@bͤw|4J+kr: G}o[x|O=뛰)Ԧ eqXJ R6UdQ OH6Rc kȸBbS^<_jsly%ݥd,C,l$eͱHU&l^8#wKCGw{&BGm=A,qDds8kI_Uĥl"UQ^[!?\l uݝye"oXfe/Os< |Ѽ߀v5A92/7q;4M"^a5xH$"YE@)f;>MO ҋ-P4gY>+~% ~mO!V_ ]~fhmx|xgzx&v,b&ݮw()>Wm.&I^p2kBUɣx~BDՏ2/杺Gٮ'"0J;?JYl$V̌/߮mH:e/ Q{>;leu)HQ-(:mH09/2{n :ISm|dAPn&o=ݷ=:=ٓwSx@~%RRTϺ<ĤFe^Df;:%Zb* t"mI{w<>g>Z˭$k=NRۡ iNwlTQY;8ôjWI߱i*ExT+kNr"+cóA%gX z~3!S[OdP$9W"MhsyiSzwMkms|*-AC{n8PֽB?Z I6=.Skѿ I#|Vj ^ Dǵ2و@OlJw6K4CzU5y{Y)~ICX KeR=f{H\wn4X:l԰ֵ\Ba+V. gB+STzUv:Nڄ顕Q7 iHbDVпPf;>4;u:2̴b?zh}ϝeM1x}Uܓٖ݉[ؖ V+J;MDL\V JŠq鄞Ok{e0i%3[NG/b'ٳN}l7 ^-4p)iQڴd<7 ^]KtkQoxSΣ ;>]O/+C-WQց6+]̀W=41Y'$!'Z,B*V5Q\z'$6ٮsB4Nw׆cA8.txxWP;Oֵ= bV̀W]~d %Vk0eF-.OVUGb>$wdC6Z t}g9w]-XH#nkB?s7s,4t̲?-ktCG+w19ws!$_`zKItduN"_ = TߣsQAUX#3.p1Y`=9vH5+?̗2F"x9٩Vo[t1s9vJU*4-=d4#j#ɀ{t]1r[ROZO$=ƴ6 pw|%WszY)@}) cT<5*vSh7P[G#7h.b)l,TN aW %׵lil:7 <>nyovKFn1It׊ J?",ep~nRMG)';}@X:CDJNMtߣsh$>_RЏJs $S_=:~9G4Ǯ9Z+$%kЮLtsf6d BZ}s:؍Fsqje߹ %IMX H {e 25<a9n{=6>kxGfҥve4 VaGh떫Rߣs&ܦb9)e\ߣs4l O"tW[hcTlx|2J.X?ID^Zf-k#ݿao.r2QY1Cc~!od Cy@e3' !Ʃ}v <>Ǟ,> {bXy)f]xt3d-$!Y{K[|gd%vsǾh0CMKҘMcsCզ%B P]nO\αcC&aT_ɝ9m=6~y]8^.c_l}=6^yeyXkbH(!"l*\w؜cDY  mX[b$c<M,C !a }v<>Nwj!t@:#Xyc.6 <>NYifL:}}NΩ/NRzӣMTg! Qu1x|N}7.+1sWsce:Dž| ![;H|bKڣqu0)&Ԥ`"CNwsK @}3֪ikUZn._/2WQH>cw /76{t=p3K%bʟG$%B~QZ97cwj"3~>cMõsgǗ˚ϱhۯii?[9.Ok.֖O9^ [-{PoEi_ 3he~ҕ\ZR)ڹ[nG3lkroRIP~n5\\n.dVB*-~lx6 <>Ǯ9z߆X Ǥw-?ssS5dI)e'&RtXP {TW7EJFV,M{tsbQÃu!tl%q_W9w,JsVlYWUb~uIvmY 唴ܰx|}s^u?y,uIEq*ϱkV KLp|z!Š~v<:Ǯ0+0U?ߊD@aϱofѲOs\a 6V1[9$[r]sIkD|+v >}Oo򭐓mbkwsFTzH[u,m}ބ-3n9-ogL#YQӪnzUox|ν\;|߆w7s응QtFi{kе`?۝+#cѫE"i% =]wfq9RZ%p0V|oՈyvc숶 Kb[d$ " Fcs%#"eA0!Cbtڵ{c$GL6c [31ĝUU|I2t?<`Mb6 Hc9vh1b ):tH:$&"G#9`T FKBDp{t1#y[L&CZ {RzC.l4ɵ$u,{aդ?zL.$nH )+$xt2#~./5Dn+?"=LGb h%z2H!v <>~3)&w~&أϱgF$v$hӗ:[2| )-<X:&+# Fgc9vt,JzHRJKuln=6^rR>a{BhaRgfc~;}αW{h֨E5Gi&ټϱW΃,Hf Ԉex|2 GKQL&`45ιWj4տ/1T6L;ιS&y{K2٤nGv9wɣWE{mPn=6Iwm΢N0V?_❹r/5jxM9!" ^"s{˱3n+#!a&Kܑj &s쎑|jU|.l&[9-J_vI&l $}ϱ?ny51*ػH0YWR&;+six|q+Z:}= !ԟjY{,;Vw"v[=x5o Sq^jCۇ6Oyi1zs^ۉRXn==F#̾y3s\]jծc5`n$I'E9w [eX?v,JL褨F{-N?5z@qIEnG;w4X)_UuΙt7~Ccܣ~0LL:ݦVcϱw4~ZcHV֌j_x|3*(:Eb*֫k-MucW*Oc5,!є>7߶s.btj677J+s9v͝c܅U% FxRl}vn 5Zh{dNtu{ZezuEN7swL=!,#n5{|ןw$JPM~:Y[Ϲ?^``4=!uMzBnGwdT9"NcsQ7 :~ /ϱ7F$չ7= mslڼn8VSj\,Hٝy`+Wj1!vZ4+F!s^7iM]boI;}ϱC)n]Dd١8csbZRu^,J=y7wc8_8RFk8 퍷+c !9\soz32+X EʶlrN᝻kqt'D=BVF:F@]w<:8_V%ؚ#Hdum5 ̝˪C7Iրͱxo0nxtN|uN߭ģSDOWtz|a( /vaFϩ'WMW5`E|Z &>/ox|2R0RF]q)jYFF~gn&*|x|rT<{sU=slZgonsC0ZgH#ѾaB %F| ekMudlt'M;0DnrfR xt2Z5\+"&G.[z.x|=s0nqY}~*Q] x|]s`M?[#Y9yݦ z?-{PM \$c}esl*-h8|wUio}@}5$!0x|ν\!ַ,X"=/*Rkl[9.zI(iբ[qeuJ-{Rq%{@3$"6v=6y,Bh3|1oxt}sŎ$ ;PIבT9vRB /bچyJ*-;g$sЕ~\2P4Aktiαo}at"HƤ>A 3c5PIvOgH:?TQ͌! z5ݹ;L+Mwdx̱%4p{#G.~@b1W3,r7KqlcI"2Y T| ;:xHQqng4TejUy')'D򁔦̩JԬ2w7{:fΦvq/{_{ru˗#j54{5;%(Fևul:i35> vs"V!jŧv7A4]*ƛO_EH ϱ9z-xHKVQE]sc]qQkU)q;*]bBo4[@Zr 5meUHj4⚏6]< o&BW` n3H迊uSo!iJFq$}*.1H&@3єބ룔MH;蹈%tnb7w|9+IDZ;= 2=ms?4H vۈ9V$?;7w]a)daTn8lMzyHRg%ͱ^ݞ7 )%}/Yz0>ȅjiY݂7L%b.,''1MeadT6݂7^9b/bSCJ.f7orT4z *j3gfd%ݠ7YX̊Xb"j]cۉ-=ŸNa@EaghDۇmߨdNk;Z,v@3Iѹ#Q7`a1ی0 R7 5W" d+5p! xג%ş*a%xy. A7dU󬲴\tI&\X{d7T@sOȥy\Hz=:mp!%}{WJ_:"chNJ+5I:6]gj兪v<>DZ@ꒋV^d#'i N' %x|Χr111>!vM?u*-{>VHCf}zx|z#]0Ov9RI,#-<&NL8Vw']?ޝ9u>!۬; yE7<:s4?]^f*7 ;c =&>yH=T2.ĉD99ErVjRb4">7 <>dzZ2niԽN$)Gq) nx|rUI'Zec~ޔɼY9Zs_#\|aA%èαGl$.[(6SbDKhI p_6R#QV' )z=/k9yأ2C|K`Xx;n=:瓙LeC^/Sccf|2`3r2lhΧnG|2a]\ط ϯ厴e p_9R ?JB.4R*QUCdlx|g[GX)xJ7}Ht&zw $[Ov׍Z/Սxﮬ91)z^D !VG 9ƿ D?|T75iQ*+1h8t7s\cck= #e E6.Y9ʢǺ+ =R1gK31HqteD5OoLT&6\ه\cv <>~yIF.@I0/L6i 2dBsö[B /EpR!;rLw9UQݚUė&Ru@rQnG'5M{^iR,L e,KQ onx,=9j7ǺT7 <>SٺbGjS,C.[%7w`6Y9 R'68BD,ye-cslBTbПupq2#-56y|PђOԒ#=)q&Q5xt3ٳ?M}\|BP/e|ͱv/iχU!] E\(P頨Pf]&%3%NDaew<:Ǔ[m NiM.yY㵢nOL<4fޣ1sx|gs2mѾe]erps?EF#r>ɀQȉI_C3K_>m)Ci;Nu,Ew'i]!㎨4g5ٌTpoGwGc+A"Źt|؜Ob!z!T{~l~XsYG'X'C Dw4ew;wyegw;*T7؍R\;,7yʹ斘!_&b፽G|7eGZ@M>'PlnjJ8I}qP $b~tI 1=fGZw&bb"Wɮ[ 2w$ yuhc)=>x()  i:t t\'h3s =T"}/=$ap`s\^9v(U@h-RV4 s$HYQ=.ǎ5V=$MG3!:{lh=OClYLs"4z9s"ap9eD1KTʿhNX"s|)Y9v#vsl8`FbN%f)ds2[7C"1uy~Ϲ@Ȳ)R;d9f1Fjx[ws\?3?^5k+|)ȜOo`=\|<\ 91rFcrU3R3*2b2)k(G~98b H!b_\P;lίGSUP?S"1H!\LGJ~؜Oa _A,B!eQEs@Cl"Gb=#D,9Bι?v=$yvJ!9yL6HݐU;H-gas DF8[_LB+6<`sS| pdq=6 ¬gwӎ?Esro9#F#s: zњX)Qt}rW FcsBSЁ'Į˨-^pA~;|;ͿݩkVP!V-NB>->&*tF5c6wse2#qsxB'}̱t"E]h!-/9ڤ{}Du.RdU/ehcDu)8te쑎pgu oFဋ#Msߣs>M5R}_$kJfrJiT9 ji[Śq< R4J3>WY9wBSn-_\$lE$05Rw <>6)>!D |ig'SoE'Bj@ɱZܶ͑Ws9Qb42 f*s[^G|*GjeXh)L2*#Sߣs>~7PO\㣡Ie7s>-:R{66h; }Hժv:Ƿk{"A"|Nrʯu7s瓙SD:R§E=exTo=6S9<=(j}Bt1E)6󹼮5!%Ew<>9Wq"'IJh EyBZY~v:]j = (} 0r$ ȍ~9.M0"b%FThxF[9>b;J}Bx)y C \:>w <>@Zb]}9bJv;BVVH(u"n/<4{|/pBn'ԡΦD,ǹUnR8H6-mmӃ%~|Y9F'l= λj>;{Dnzc ).-*@as|X('<ʙ4#Ul]=>3tH;! $n$[=69nD;{'D't˽ [ Oc$m>eom5@ZAu[$SOb:ΗLzOHƓy+^;dj|rnʫHDŽe#\l=638rm`"^ht,xRW)aIgoAe:p!F#rYAuӜCFi6<^OifKNߡs~a$7'HE̜H*2kf|&'BB#ߗh|d'\^u$ /*6-:I؜$1k|,KZ*8w9y +=}GBȴG~cqV_$uZI6/c;yߣs>Hnq +~le9DR&C:) *27 ude)z;_'^,Rn=6XFqU.N6cDJHwB1$Gm!"Ht%9R-ot\:AfG|"Ww.BH"uw4{tΧrUz"'DZGlZ]in7s>dz'D{4A0gY9f+$&AT$Hh:V%.fl˹I$Y$Cc+x~S9n|:!giOe`ekss>j[i< m,<^sXu8 O"nb|aYm9h]!t,m:5BSO>JMt6DZ\$WZf~>BٟlBBERu[WС7<>y~ <50%3$.t&+R i\aQ!,p5I$ j9+Sm: )Yx|s2Db-E2N0"o8N-]Xrsd:g9E?U.񁋙A(t ߪ2RO\V(x7s>=W")H\v=7坿C]bA@7~vC°ɤxEXSngw<>ǁd E->k59Q9Im QUjG{|Bd~x)'hr{wSPK\1=6A$+\èTÓBJ({B;8<ƜI !'>O7'x3s~߈^FoŰ <`SG#h2;}q|0YD'&2v<C%N=:U|B MD0%Yf|&'iW&B!Me/DYK\ΗJ' )SԖFH&}s~ PV{?o#Øs)A}kw <>9묟X\biklkt~ k#ds=TuG"x|Χs#8g)sӧ[pY+G<>;H|9L_${^gsL89=Cr#6x2G|.S7 t<#bmbot~؜FA]Lyl4q}Ir^;{<.,k {\ĦBSF!r~~p+z}D A{~N#s>}w_!'ڦx/=>3% ψu(cN8[9UTMO$&% Y -w <>糘Vz9s&r>kQ/t^`N=7aVJ e-+=>0-JRbRގQ>^~W=_9s-n&f[;#5d ^EfG|.7$䟬CEGWfƘZA@[-f<0J*sl;TtF9l:oEx\*vK@mw`SBBr)'>Q˖ջ`4z畮!U&Cc3cj_$?Ebk1lxta2t2}\N57>Z,q7s>ZBh-.B)iS1]ZffG|6wɤ~v w$BFOlў>ZH)!ޔMUxʏv~C"~3Vpn|:w%]mu!CZqNh -W"AAϴw<:0mSUb[r>ւf!%GRns"W!:$:>lm6p7=9]Mb*֋/<],R+Y"Cd?Lfd'zp3C?qm瘭Fn|6˞e_W5iq>vdvܖ!6.o˒O'x]Th,7k;d>$'3BeWPkR 塋~V8/Ҍ R0ׇ%i$N[w<:0귏R!XV蝚UQVwƉ  1Lu13%8+YQDk^\z; m%>g؜G]gu@o'5⤐ӝGaFlϰm?LegBfex@rٙV'l=60ua50nv- ѝG匣3'R ;cd{da+jhxg=+ǡDxZ:/8.z8}i,7_?C[ qu|QG!q~9 WY;4]{,oemw?endstream endobj 9 0 obj << /R7 10 0 R >> endobj 10 0 obj << /OPM 1 /Type /ExtGState >> endobj xref 0 11 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000129 00000 n 0000000272 00000 n 0000000423 00000 n 0000000568 00000 n 0000000675 00000 n 0000000705 00000 n 0000053078 00000 n 0000053110 00000 n trailer << /Root 1 0 R /Size 11 /ID [<7de599e695679e73d96eb3ce0b0ca560><31415926535897932384626433832795>] >> startxref 53156 %%EOF qpdf-8.0.2/examples/qtest/filter-tokens.test0000644000064100006410000000063113247541377017213 0ustar ejbejb#!/usr/bin/env perl require 5.008; BEGIN { $^W = 1; } use strict; chdir("filter-tokens"); require TestDriver; my $td = new TestDriver('pdf-filter-tokens'); $td->runtest("filter tokens", {$td->COMMAND => "pdf-filter-tokens in.pdf a.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "out.pdf"}); $td->report(2); qpdf-8.0.2/examples/qtest/double-page-size/0000755000064100006410000000000013247541377016660 5ustar ejbejbqpdf-8.0.2/examples/qtest/double-page-size/out.pdf0000644000064100006410000000237313247541377020167 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 2 /Kids [ 3 0 R 4 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents [ 5 0 R 6 0 R ] /MediaBox [ 0.00 0.00 1224.00 1584.00 ] /Parent 2 0 R /Resources << /Font << /F1 7 0 R >> /ProcSet 8 0 R >> /Type /Page >> endobj 4 0 obj << /Contents [ 9 0 R 10 0 R ] /MediaBox [ 0.00 0.00 1224.00 1584.00 ] /Parent 2 0 R /Resources << /Font << /F1 7 0 R >> /ProcSet 8 0 R >> /Type /Page >> endobj 5 0 obj << /Length 15 >> stream 2 0 0 2 0 0 cm endstream endobj 6 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 7 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 8 0 obj [ /PDF /Text ] endobj 9 0 obj << /Length 15 >> stream 2 0 0 2 0 0 cm endstream endobj 10 0 obj << /Length 43 >> stream BT /F1 24 Tf 72 720 Td (Salad) Tj ET endstream endobj xref 0 11 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000129 00000 n 0000000296 00000 n 0000000464 00000 n 0000000528 00000 n 0000000621 00000 n 0000000728 00000 n 0000000758 00000 n 0000000822 00000 n trailer << /Root 1 0 R /Size 11 /ID [<071a6499182be9cfc990b11d0c4e5bc0><31415926535897932384626433832795>] >> startxref 915 %%EOF qpdf-8.0.2/examples/qtest/double-page-size/in.pdf0000644000064100006410000000203713247541377017763 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 2 /Kids [ 3 0 R 4 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj 4 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj 5 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 7 0 obj [ /PDF /Text ] endobj 8 0 obj << /Length 43 >> stream BT /F1 24 Tf 72 720 Td (Salad) Tj ET endstream endobj xref 0 9 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000129 00000 n 0000000272 00000 n 0000000415 00000 n 0000000508 00000 n 0000000615 00000 n 0000000645 00000 n trailer << /Root 1 0 R /Size 9 /ID [<071a6499182be9cfc990b11d0c4e5bc0><90dbb2f2f000af76d1107187b0e00349>] >> startxref 737 %%EOF qpdf-8.0.2/examples/qtest/invert-images/0000755000064100006410000000000013247541377016276 5ustar ejbejbqpdf-8.0.2/examples/qtest/invert-images/out.pdf0000644000064100006410000001035013247541377017577 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 2 /Kids [ 3 0 R 4 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /ProcSet [ /PDF /ImageB ] /XObject << /Im1 6 0 R /Im2 7 0 R >> >> /Type /Page >> endobj 4 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /ProcSet [ /PDF /ImageB ] /XObject << /Im2 7 0 R >> >> /Type /Page >> endobj 5 0 obj << /Filter /FlateDecode /Length 63 >> stream x+226T0B#c3CK=S ;9K3P%+\  endstream endobj 6 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /Height 236 /Subtype /Image /Type /XObject /Width 231 /Length 1759 /Filter /FlateDecode >> stream xky0 G!B!BBL!B!BBӮ*}M7lٲ,?> 0 0 0 0 0 0 0 0jg[t϶;C|%ݧlq,XchuJE"2usO7>JKgۏ~E^]_:bF"]LIK1õ~;3P]ОQ!tYޏTԲHTDTJ%RP+vЁry,?P,!u2XJFgEۑ!:b}J"z&f G[:{R_U豈G[Q3A.P/Mh (B8(} eb6 d') L\mIZ q⦙f ;; l O iF9'lJYP9F$dfAG&3^A0(UK]P]L|@f?/q@ v%n2Mf"Lɬ;0H d }(+̸6[+Ei Y0sI 6QJΥ"AMC XTZ˺o~Zͻ %WDًιcE6#@ZAۉuZt`s+:#3\em\P +QU?ỶEWuA1Vh_{emV6/lí/f60K\/u)8s9m;0b0W 'Ѵ؅l'Ozpi Ktvu_`Oh]JF_N΍ԡ~+d\*QrIPc UBGG`jO rWFmRQ˭bs}a]/пJ[B^ƽ6 p/{Mm5^*"8]4V]NNAPaB#1[?DeIVSճƞxxRI0Z&؃ܫ4ϖc[n\n>:˿Rνsj`{vNp'zD6[^)ƕW<ܻy*uܵj_uvWi cJ9:!/Txub.JK7M-/ o%wK r7xc6۳Tatn]gػ_~q=1 0 0 0 0 0 wɂeendstream endobj 7 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /Height 227 /Subtype /Image /Type /XObject /Width 205 /Length 1207 /Filter /FlateDecode >> stream xy0i--ZZP @ nh-p|%g$Fw0xڕVf2c1c1c1c1'LJJi阶"<7;S1WZ=84sޣ-Mg/|6]:+:sZ?ٰ;{׮˗ġm3-)\Yc- \*~rpX4?j85T0US+fY 0O P=0B׋AHTAN-@ 22Quk"1T&Bqbp-k"HCBB& =4"1OVEYZI#D LEL$4bh7gȱ;Ͳl[>3.4=L"\=2wZ7cv5$˳ݳ1p Pli̲m1IFS/vhŀvVAhS+fl?F0HԊ3Z-ube-.U 3g_ո*3'a21]9+g?dYo* Nxea`} %&9u:/9Ϛ#}F؝N2 ĤiesǟKd |fl`~0ϖn tnMsZ =>Y3eYtRNQPFs3*[sPFqf͔d[K[e_M_|\KMz%b(*Բ)Yh}|1Ѻ$ Ѻj%zj%b8uE3@fe4}V&3<>iRF ZfV^6Soj}t mV@M+:4(I h\DMYՈ&,Ԫ^hudN g4YV٣MUvrFjZO;9 8IshB i/g4Eϋ(g4A|C}"r3ZB ~x=֭ 5R_לgp5y/n0.\i@h;,4ZLUӨh'q>y5Ҙi\9]~> stream x+220U0B##s#c=S# # ˥kendstream endobj xref 0 9 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000129 00000 n 0000000298 00000 n 0000000456 00000 n 0000000589 00000 n 0000002518 00000 n 0000003895 00000 n trailer << /Root 1 0 R /Size 9 /ID [<6ba5c36b990a39d8c874ad97a7028eb4><31415926535897932384626433832795>] >> startxref 4009 %%EOF qpdf-8.0.2/examples/qtest/invert-images/in.pdf0000644000064100006410000001035013247541377017376 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 2 /Kids [ 3 0 R 4 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /ProcSet [ /PDF /ImageB ] /XObject << /Im1 6 0 R /Im2 7 0 R >> >> /Type /Page >> endobj 4 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /ProcSet [ /PDF /ImageB ] /XObject << /Im2 7 0 R >> >> /Type /Page >> endobj 5 0 obj << /Length 63 /Filter /FlateDecode >> stream x+226T0B#c3CK=S ;9K3P%+\  endstream endobj 6 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /Height 236 /Subtype /Image /Type /XObject /Width 231 /Length 1759 /Filter /FlateDecode >> stream xky0 K!J!B!BJ!J!B!BaӮ*}M7lٲ,?> 0 0 0 0 0 0 0 0jgYxO? ;-k|%c_ܧi)XchuJQ"8s>>JKgۏmE^V:b"]4LIKá~;R]ЍS!tYNlTԲBTLTJ%RP++vЕr,?S,!uv2XJFgE!:b}J"z&&G}:7R_NU\鱈G}Q<6Sc[73VR'r B.{ly nȧwJ gNqD6O17W]8. +ҭ v@d:Kk bFO+6[~ Y0]AlYWI[zYO2cJQ,Z ~ U;O.= z ,u*2@WNTt)M_ pѥQق>3A.P/Mh (B8(} eb6 d') L\mIZ q⦙f ;; l O iF9'lJYP9F$dfAG&3^A0(UK]P]L|@f?/q@ v%n2Mf"Lɬ;0H d }(+̸6[+Ei Y0sI 6QJΥ"AMC XTZ˺o~Zͻ %WDًιcE6#@ZAۉuZt`s+:#3\em\P +QU?ỶEWuA1Vh_{emV6/lí/f60K\/u)8s9m;0b0W 'Ѵ؅l'Ozpi Ktvu_`Oh]JF_N΍ԡ~+d+QrIPcUBGG`ٹjO~ ;rWmRQ˾bs}ea.пJ[B^ƽ04 &{Mm5^*"8]4V]NNAPaB#1[?DeIVSճƞxxRI0Z&؃ܫ4ϖc[nn>:˿Rήsj`{v]p'zD6[^)ƕW<ܻi*uݵj_arWi cJ9:!/TxubJK7M-/ n%wKi Vr7rc6[ڳTuqng]~i=1 0 0 0 0 0 wl6endstream endobj 7 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /Height 227 /Subtype /Image /Type /XObject /Width 205 /Length 1207 /Filter /FlateDecode >> stream xy0i--Z@ @ nh-p|%g$Fw0xڕVr1c1c1c1c1'JJiq"07;c:1WZ=48ӳ9vޣ-k/|NawCڠ+:sZv?|{מw˗mġr3 -)\9c- \*~rpX4?j8L5T 0US+fZ 07 P=0B׋AHTAN-@ 22Quk"1T&Bbp-k"HCBB& =4"1OVEYZI#D LEL$4bh7gȶ;ͲY[>3.4=L"\=2wZ7cv5$˳ݳ1p Ppli m1IFS/vhŀvVAhS+fl?F0HԊ3Z-ube-.K 3g_x)3'a21]Y+g?d9* Ntn`} %&!u:/fϚ#}F؝N2 ĤiesǟKd |f`l`~0ϖn tnMsZ =>Y3eYtRNQPFs3*[sPFqf͔d[K[e_M_|\KMz%b(*Բ)mYh}|1Ѻ$ Ѻj%zj%b8uE3@fe4}V&3<>iRF ZfV^6Soj}t mV@M+:4(I h\DMYՈ&,Ԫ^hudN g4YV٣MUvrFjZO;9 8IshB i/g4Eϋ(g4A|C}"r3ZB ~x=֭ 5R_Ϝgp5y/n0.\i@h;,4ZLUӨh'v>y5wiZ:]~> stream x+220U0B##s#c=S# # ˥kendstream endobj xref 0 9 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000129 00000 n 0000000298 00000 n 0000000456 00000 n 0000000589 00000 n 0000002518 00000 n 0000003895 00000 n trailer << /Root 1 0 R /Size 9 /ID [<6ba5c36b990a39d8c874ad97a7028eb4>] >> startxref 4009 %%EOF qpdf-8.0.2/examples/qtest/mod-info.test0000644000064100006410000000521413247541377016137 0ustar ejbejb#!/usr/bin/env perl require 5.008; BEGIN { $^W = 1; } use strict; use File::Copy; chdir("mod-info"); require TestDriver; my $td = new TestDriver('pdf-mod-info'); my $prg = "pdf-mod-info"; my $qpdf = $ENV{'QPDF_BIN'} or die; cleanup(); $td->runtest("usage #1", {$td->COMMAND => "$prg -in target.pdf"}, {$td->FILE => "usage.out", $td->EXIT_STATUS => 2}, $td->NORMALIZE_NEWLINES); $td->runtest("usage #2", {$td->COMMAND => "$prg -key abc -val def"}, {$td->FILE => "usage.out", $td->EXIT_STATUS => 2}, $td->NORMALIZE_NEWLINES); $td->runtest("usage #3", {$td->COMMAND => "$prg -key abc -val def abc"}, {$td->FILE => "usage.out", $td->EXIT_STATUS => 2}, $td->NORMALIZE_NEWLINES); $td->runtest("usage #4", {$td->COMMAND => "$prg -in source1.pdf -key date -val 01/01/01 -val 12/12/12"}, {$td->FILE => "usage.out", $td->EXIT_STATUS => 2}, $td->NORMALIZE_NEWLINES); $td->runtest("dump #1", {$td->COMMAND => "$prg --dump -in files/source1.pdf"}, {$td->FILE => "dump.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("dump #2", {$td->COMMAND => "$prg --dump -in files/no-info.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("dump #3", {$td->COMMAND => "$prg --dump -in files/empty-info.pdf"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); run_and_cmp("modify Subject", "$prg -in files/source1.pdf -out out.pdf -key Subject " . "-val \"Export Business\"", "", "out.pdf", "files/1.qdf"); run_and_cmp("add Subject, remove Producer, modify CreationDate", "$prg -in files/source2.pdf -out out.pdf -key Subject " . "-val \"Tammlin\" -key Producer -key CreationDate -val 12/12", "", "out.pdf", "files/2.qdf"); run_and_cmp("add Subject (empty-info file)", "$prg -in files/empty-info.pdf -out out.pdf -key Subject " . "-val Tammlin", "", "out.pdf", "files/3.qdf"); copy("files/no-info.pdf", "no-info.pdf") or die "can't copy no-info: $!"; run_and_cmp("in-place Producer added (no-info file)", "$prg -in no-info.pdf -key Producer -val \"Obivan Kinobi\"", "", "no-info.pdf", "files/4.qdf"); cleanup(); $td->report(15); sub cleanup { unlink (<*.pdf>); } sub run_and_cmp { my ($dsc, $cmd, $out, $fout, $fexp) = @_; $td->runtest($dsc, {$td->COMMAND => "$cmd --static-id"}, {$td->STRING => $out, $td->EXIT_STATUS => 0}); $td->runtest("$dsc output", {$td->COMMAND => "$qpdf --static-id" . " --no-original-object-ids -qdf $fout -"}, {$td->FILE => $fexp, $td->EXIT_STATUS => 0}); } qpdf-8.0.2/examples/qtest/parse-content.test0000644000064100006410000000054313247541377017211 0ustar ejbejb#!/usr/bin/env perl require 5.008; BEGIN { $^W = 1; } use strict; chdir("parse-content"); require TestDriver; my $td = new TestDriver('pdf-parse-content'); $td->runtest("parse content", {$td->COMMAND => "pdf-parse-content input.pdf 1"}, {$td->FILE => "content.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->report(1); qpdf-8.0.2/examples/qtest/linearize/0000755000064100006410000000000013247541377015506 5ustar ejbejbqpdf-8.0.2/examples/qtest/linearize/input.pdf0000644000064100006410000000137313247541377017344 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R >> startxref 556 %%EOF qpdf-8.0.2/examples/qtest/linearize/check.out0000644000064100006410000000025613247541377017317 0ustar ejbejbchecking a.pdf PDF Version: 1.3 File is not encrypted File is linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/examples/qtest/count-strings.test0000644000064100006410000000053513247541377017247 0ustar ejbejb#!/usr/bin/env perl require 5.008; BEGIN { $^W = 1; } use strict; chdir("count-strings"); require TestDriver; my $td = new TestDriver('pdf-count-strings'); $td->runtest("filter tokens", {$td->COMMAND => "pdf-count-strings in.pdf"}, {$td->FILE => "out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->report(1); qpdf-8.0.2/examples/qtest/pdf-split-pages.test0000644000064100006410000000107613247541377017430 0ustar ejbejb#!/usr/bin/env perl require 5.008; use warnings; use strict; chdir("pdf-split-pages"); require TestDriver; my $td = new TestDriver('pdf-split-pages'); cleanup(); $td->runtest("split", {$td->COMMAND => "pdf-split-pages ' --static-id' in.pdf out"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check page 1", {$td->FILE => "out1.pdf"}, {$td->FILE => "exp1.pdf"}); $td->runtest("check page 2", {$td->FILE => "out2.pdf"}, {$td->FILE => "exp2.pdf"}); cleanup(); $td->report(3); sub cleanup { unlink (); } qpdf-8.0.2/examples/qtest/bookmarks/0000755000064100006410000000000013247541377015514 5ustar ejbejbqpdf-8.0.2/examples/qtest/bookmarks/test.x.-lines.out0000644000064100006410000000104413247541377020657 0ustar ejbejb| +-+ Trepak 2 -> 15: /XYZ 66 756 3 | +-+ Isis 1 -> 5: /XYZ null null null | +-+ Amanda 1.1 -> 11: /Fit | | | +-+ Isosicle 1.1.1 -> 12: /FitV 100 | | | | | +-+ Isosicle 1.1.1.1 -> 18: /XYZ null null null | | | | | +-+ Isosicle 1.1.1.2 -> 19: /XYZ null null null | | | +-+ Isosicle 1.1.2 -> 12: /XYZ null null null | | | +-+ Isosicle 1.1.2.1 -> 22: /XYZ null null null | +-+ Sandy 1.2 -> 13: /FitH 792 | +-+ Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770 | +-+ Trepsicle 1.2.2 -> 0: /XYZ null null null qpdf-8.0.2/examples/qtest/bookmarks/test.-show-open.x.out0000644000064100006410000000070213247541377021464 0ustar ejbejb( ) Trepak 2 -> 15: /XYZ 66 756 3 (v) Isis 1 -> 5: /XYZ null null null (>) Amanda 1.1 -> 11: /Fit (>) Isosicle 1.1.1 -> 12: /FitV 100 ( ) Isosicle 1.1.1.1 -> 18: /XYZ null null null ( ) Isosicle 1.1.1.2 -> 19: /XYZ null null null (v) Isosicle 1.1.2 -> 12: /XYZ null null null ( ) Isosicle 1.1.2.1 -> 22: /XYZ null null null (v) Sandy 1.2 -> 13: /FitH 792 ( ) Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770 ( ) Trepsicle 1.2.2 -> 0: /XYZ null null null qpdf-8.0.2/examples/qtest/bookmarks/5.pdf0000644000064100006410000004140113247541377016353 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /PageLabels 107 0 R /Pages 2 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 95 0 R >> endobj 2 0 obj << /Count 30 /Kids [ 3 0 R 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R ] /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents 33 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 2 4 0 obj << /Contents 37 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 3 5 0 obj << /Contents 39 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 4 6 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 5 7 0 obj << /Contents 43 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 6 8 0 obj << /Contents 45 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 7 9 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 8 10 0 obj << /Contents 49 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 9 11 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 10 12 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 11 13 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 12 14 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 13 15 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 14 16 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 15 17 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 16 18 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 17 19 0 obj << /Contents 67 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 18 20 0 obj << /Contents 69 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 19 21 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 20 22 0 obj << /Contents 73 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 21 23 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 22 24 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 23 25 0 obj << /Contents 79 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 24 26 0 obj << /Contents 81 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 25 27 0 obj << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 26 28 0 obj << /Contents 85 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 27 29 0 obj << /Contents 87 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 28 30 0 obj << /Contents 89 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 29 31 0 obj << /Contents 91 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 30 32 0 obj << /Contents 93 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Contents for page 1 33 0 obj << /Length 34 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 0) Tj ET endstream endobj 34 0 obj 46 endobj 35 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 36 0 obj [ /PDF /Text ] endobj %% Contents for page 2 37 0 obj << /Length 38 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 38 0 obj 46 endobj %% Contents for page 3 39 0 obj << /Length 40 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 40 0 obj 46 endobj %% Contents for page 4 41 0 obj << /Length 42 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 42 0 obj 46 endobj %% Contents for page 5 43 0 obj << /Length 44 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 44 0 obj 46 endobj %% Contents for page 6 45 0 obj << /Length 46 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 46 0 obj 46 endobj %% Contents for page 7 47 0 obj << /Length 48 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 48 0 obj 46 endobj %% Contents for page 8 49 0 obj << /Length 50 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 50 0 obj 46 endobj %% Contents for page 9 51 0 obj << /Length 52 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 52 0 obj 46 endobj %% Contents for page 10 53 0 obj << /Length 54 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 54 0 obj 46 endobj %% Contents for page 11 55 0 obj << /Length 56 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 56 0 obj 47 endobj %% Contents for page 12 57 0 obj << /Length 58 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 58 0 obj 47 endobj %% Contents for page 13 59 0 obj << /Length 60 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 60 0 obj 47 endobj %% Contents for page 14 61 0 obj << /Length 62 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 62 0 obj 47 endobj %% Contents for page 15 63 0 obj << /Length 64 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 64 0 obj 47 endobj %% Contents for page 16 65 0 obj << /Length 66 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 66 0 obj 47 endobj %% Contents for page 17 67 0 obj << /Length 68 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 68 0 obj 47 endobj %% Contents for page 18 69 0 obj << /Length 70 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 70 0 obj 47 endobj %% Contents for page 19 71 0 obj << /Length 72 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 72 0 obj 47 endobj %% Contents for page 20 73 0 obj << /Length 74 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 74 0 obj 47 endobj %% Contents for page 21 75 0 obj << /Length 76 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 76 0 obj 47 endobj %% Contents for page 22 77 0 obj << /Length 78 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 78 0 obj 47 endobj %% Contents for page 23 79 0 obj << /Length 80 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 80 0 obj 47 endobj %% Contents for page 24 81 0 obj << /Length 82 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 82 0 obj 47 endobj %% Contents for page 25 83 0 obj << /Length 84 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 84 0 obj 47 endobj %% Contents for page 26 85 0 obj << /Length 86 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 86 0 obj 47 endobj %% Contents for page 27 87 0 obj << /Length 88 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 88 0 obj 47 endobj %% Contents for page 28 89 0 obj << /Length 90 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 90 0 obj 47 endobj %% Contents for page 29 91 0 obj << /Length 92 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 92 0 obj 47 endobj %% Contents for page 30 93 0 obj << /Length 94 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 94 0 obj 47 endobj 95 0 obj << /Type /Outlines /First 96 0 R /Last 97 0 R /Count 6 >> endobj 96 0 obj << /Type /Outline /Title (Iss 1 -> 5: /XYZ null null null) /Parent 95 0 R /Count 4 /Next 97 0 R /First 98 0 R /Last 99 0 R /Dest [ 8 0 R /XYZ null null null ] >> endobj 97 0 obj << /Type /Outline /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Parent 95 0 R /Prev 96 0 R /Dest [ 18 0 R /XYZ 66 756 3 ] >> endobj 98 0 obj << /Type /Outline /Title (Amanda 1.1 -> 11: /Fit) /Parent 96 0 R /Next 99 0 R /First 100 0 R /Last 101 0 R /Count -3 /Dest [ 14 0 R /Fit ] >> endobj 99 0 obj << /Type /Outline % /Title (Sandy (Sandy [Greek]) 1.2 -> 13: /FitH 792) /Title /Parent 96 0 R /Prev 98 0 R /First 105 0 R /Last 106 0 R /Count 2 /Dest [ 16 0 R /FitH 792 ] >> endobj 100 0 obj << /Type /Outline /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Parent 98 0 R /Next 101 0 R /First 102 0 R /Last 103 0 R /Count -2 /Dest [ 15 0 R /FitV 100 ] >> endobj 101 0 obj << /Type /Outline /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Parent 98 0 R /Prev 100 0 R /First 104 0 R /Last 104 0 R /Count 1 /Dest [ 15 0 R /XYZ null null null ] >> endobj 102 0 obj << /Type /Outline /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Parent 100 0 R /Next 103 0 R /Dest [ 21 0 R /XYZ null null null ] >> endobj 103 0 obj << /Type /Outline /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Parent 100 0 R /Prev 102 0 R /Dest [ 22 0 R /XYZ null null null ] >> endobj 104 0 obj << /Type /Outline /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Parent 101 0 R /Dest [ 25 0 R /XYZ null null null ] >> endobj 105 0 obj << /Type /Outline /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Parent 99 0 R /Next 106 0 R /Dest [ 4 0 R /FitR 66 714 180 770 ] >> endobj 106 0 obj << /Type /Outline /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Parent 99 0 R /Prev 105 0 R /Dest [ 3 0 R /XYZ null null null ] >> endobj 107 0 obj << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> endobj xref 0 108 0000000000 65535 f 0000000025 00000 n 0000000145 00000 n 0000000541 00000 n 0000000746 00000 n 0000000951 00000 n 0000001156 00000 n 0000001361 00000 n 0000001566 00000 n 0000001771 00000 n 0000001976 00000 n 0000002182 00000 n 0000002389 00000 n 0000002596 00000 n 0000002803 00000 n 0000003010 00000 n 0000003217 00000 n 0000003424 00000 n 0000003631 00000 n 0000003838 00000 n 0000004045 00000 n 0000004252 00000 n 0000004459 00000 n 0000004666 00000 n 0000004873 00000 n 0000005080 00000 n 0000005287 00000 n 0000005494 00000 n 0000005701 00000 n 0000005908 00000 n 0000006115 00000 n 0000006322 00000 n 0000006529 00000 n 0000006748 00000 n 0000006851 00000 n 0000006871 00000 n 0000006990 00000 n 0000007049 00000 n 0000007152 00000 n 0000007195 00000 n 0000007298 00000 n 0000007341 00000 n 0000007444 00000 n 0000007487 00000 n 0000007590 00000 n 0000007633 00000 n 0000007736 00000 n 0000007779 00000 n 0000007882 00000 n 0000007925 00000 n 0000008028 00000 n 0000008071 00000 n 0000008174 00000 n 0000008218 00000 n 0000008321 00000 n 0000008365 00000 n 0000008469 00000 n 0000008513 00000 n 0000008617 00000 n 0000008661 00000 n 0000008765 00000 n 0000008809 00000 n 0000008913 00000 n 0000008957 00000 n 0000009061 00000 n 0000009105 00000 n 0000009209 00000 n 0000009253 00000 n 0000009357 00000 n 0000009401 00000 n 0000009505 00000 n 0000009549 00000 n 0000009653 00000 n 0000009697 00000 n 0000009801 00000 n 0000009845 00000 n 0000009949 00000 n 0000009993 00000 n 0000010097 00000 n 0000010141 00000 n 0000010245 00000 n 0000010289 00000 n 0000010393 00000 n 0000010437 00000 n 0000010541 00000 n 0000010585 00000 n 0000010689 00000 n 0000010733 00000 n 0000010837 00000 n 0000010881 00000 n 0000010985 00000 n 0000011029 00000 n 0000011133 00000 n 0000011177 00000 n 0000011281 00000 n 0000011301 00000 n 0000011388 00000 n 0000011584 00000 n 0000011730 00000 n 0000011905 00000 n 0000012258 00000 n 0000012449 00000 n 0000012659 00000 n 0000012828 00000 n 0000012997 00000 n 0000013150 00000 n 0000013319 00000 n 0000013484 00000 n trailer << /Root 1 0 R /Size 108 >> startxref 13801 %%EOF % 1. Delete page labels xref 0 1 0000000107 65535 f 107 1 0000000000 00001 f trailer << /Root 1 0 R /Size 108 /Prev 13801 >> startxref 16059 %%EOF % 2. Delete outlines, reuse page labels. 107 1 obj << /Nums [ 0 << /P () >> 2 << /S /D /St 1 >> 7 << /P () >> 9 << /S /R /St 6 >> 11 << /P () >> 12 << /S /r /St 2 >> 15 << /S /r /St 6 >> 19 << /P () >> 20 << /S /R /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> endobj % Reuse object 1 with the same generation number. Leave outlines % there pointing to a deleted object. 1 0 obj << /PageLabels 107 1 R /Pages 2 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 95 0 R >> endobj xref 0 2 0000000095 65535 f 0000016648 00000 n 95 13 0000000096 00001 f 0000000097 00001 f 0000000098 00001 f 0000000099 00001 f 0000000100 00001 f 0000000101 00001 f 0000000102 00001 f 0000000103 00001 f 0000000104 00001 f 0000000105 00001 f 0000000106 00001 f 0000000000 00001 f 0000016227 00001 n trailer << /Size 108 /Prev 16059 /Root 1 0 R >> startxref 16768 %%EOF qpdf-8.0.2/examples/qtest/bookmarks/issue-179.pdf0000644000064100006410000000344013247541377017656 0ustar ejbejb%PDF-1.7 %MPE4.3 1 0 obj <> endobj 4 0 obj <>>> endobj 84 0 obj <>stream xXnFO9(8À!E9%$:$q|`,D:9OOS+= I*%93=U=5Ȓ m)f\niEi҆L0ø#0œKS:Miɳ%(`u$cU6dX FJ&\j喬B$k܁.kA"fs m=LctdH1rc00Xm4ѴR {3ց @x&KEQL8; &A(T\H#nF !Ja= Q2P-xzPP(4**b}D*߃A,H#$[C9\l!5"#4G@)EQTHQ[E)ETÇٛ}s=r |8_?!aѪόJh}^C|'՛%ٲ9o~'\D:[ TsIBӮѤ}]3\cJڻ csHyv˕y^ ~ݜ,V!?Ux 7;9?Hi@&?9{9!C3IB{9?$M L;?GwY1ak0d3(X&넑mG|Mڧn  endstream endobj 85 0 obj <>/Length 123 /Root 1 0 R /Info 3 0 R /ID[<1AE51C4D8C743A9369DD0590C0E4DDC7><1AE51C4D8C743A9369DD0590C0E4DDC7>]>>stream xcb0##vd``302  LLL ! P_("*'DC}!ZwPd/E~̿5_F_o@uM_ *!@ endstream endobj startxref 1421 %%EOF qpdf-8.0.2/examples/qtest/bookmarks/test.-show-open.-lines.out0000644000064100006410000000112013247541377022377 0ustar ejbejb| +-+ ( ) Trepak 2 -> 15: /XYZ 66 756 3 | +-+ (v) Isis 1 -> 5: /XYZ null null null | +-+ (>) Amanda 1.1 -> 11: /Fit | | | +-+ (>) Isosicle 1.1.1 -> 12: /FitV 100 | | | | | +-+ ( ) Isosicle 1.1.1.1 -> 18: /XYZ null null null | | | | | +-+ ( ) Isosicle 1.1.1.2 -> 19: /XYZ null null null | | | +-+ (v) Isosicle 1.1.2 -> 12: /XYZ null null null | | | +-+ ( ) Isosicle 1.1.2.1 -> 22: /XYZ null null null | +-+ (v) Sandy 1.2 -> 13: /FitH 792 | +-+ ( ) Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770 | +-+ ( ) Trepsicle 1.2.2 -> 0: /XYZ null null null qpdf-8.0.2/examples/qtest/bookmarks/test.x.x.out0000644000064100006410000000062613247541377017744 0ustar ejbejbTrepak 2 -> 15: /XYZ 66 756 3 Isis 1 -> 5: /XYZ null null null Amanda 1.1 -> 11: /Fit Isosicle 1.1.1 -> 12: /FitV 100 Isosicle 1.1.1.1 -> 18: /XYZ null null null Isosicle 1.1.1.2 -> 19: /XYZ null null null Isosicle 1.1.2 -> 12: /XYZ null null null Isosicle 1.1.2.1 -> 22: /XYZ null null null Sandy 1.2 -> 13: /FitH 792 Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770 Trepsicle 1.2.2 -> 0: /XYZ null null null qpdf-8.0.2/examples/qtest/bookmarks/issue-179.out0000644000064100006410000000015213247541377017711 0ustar ejbejbž žč žđ žć žš ž ajklyghvbnmxcseqwuioprtzdf š šč šđ šć šž š ajklyghvbnmxcseqwuioprtzdf qpdf-8.0.2/examples/qtest/bookmarks/test.-show-open.-numbers.out0000644000064100006410000000101113247541377022737 0ustar ejbejb1. ( ) Trepak 2 -> 15: /XYZ 66 756 3 2. (v) Isis 1 -> 5: /XYZ null null null 2.1. (>) Amanda 1.1 -> 11: /Fit 2.1.1. (>) Isosicle 1.1.1 -> 12: /FitV 100 2.1.1.1. ( ) Isosicle 1.1.1.1 -> 18: /XYZ null null null 2.1.1.2. ( ) Isosicle 1.1.1.2 -> 19: /XYZ null null null 2.1.2. (v) Isosicle 1.1.2 -> 12: /XYZ null null null 2.1.2.1. ( ) Isosicle 1.1.2.1 -> 22: /XYZ null null null 2.2. (v) Sandy 1.2 -> 13: /FitH 792 2.2.1. ( ) Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770 2.2.2. ( ) Trepsicle 1.2.2 -> 0: /XYZ null null null qpdf-8.0.2/examples/qtest/bookmarks/test.x.-numbers.out0000644000064100006410000000073513247541377021226 0ustar ejbejb1. Trepak 2 -> 15: /XYZ 66 756 3 2. Isis 1 -> 5: /XYZ null null null 2.1. Amanda 1.1 -> 11: /Fit 2.1.1. Isosicle 1.1.1 -> 12: /FitV 100 2.1.1.1. Isosicle 1.1.1.1 -> 18: /XYZ null null null 2.1.1.2. Isosicle 1.1.1.2 -> 19: /XYZ null null null 2.1.2. Isosicle 1.1.2 -> 12: /XYZ null null null 2.1.2.1. Isosicle 1.1.2.1 -> 22: /XYZ null null null 2.2. Sandy 1.2 -> 13: /FitH 792 2.2.1. Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770 2.2.2. Trepsicle 1.2.2 -> 0: /XYZ null null null qpdf-8.0.2/examples/qtest/bookmarks/2.pdf0000644000064100006410000000137313247541377016354 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R >> startxref 556 %%EOF qpdf-8.0.2/examples/qtest/bookmarks/4.pdf0000644000064100006410000002645113247541377016362 0ustar ejbejb%PDF-1.4 % 1 0 obj <> 2 <> 7 <

> 9 <> 11 <

> 12 <> 15 <> 19 <

> 20 <> 22 <> 23 <> 29 <>]>>/PageMode /UseOutlines/Pages 3 0 R/Type /Catalog>> endobj 2 0 obj <> endobj 3 0 obj <> endobj 4 0 obj <\237RU~\b\232bX'{)/Type /Outline>> endobj 5 0 obj </Type /Outline>> endobj 6 0 obj <>/ProcSet 40 0 R>>/Type /Page>> endobj 7 0 obj <>/ProcSet 40 0 R>>/Type /Page>> endobj 8 0 obj <>/ProcSet 40 0 R>>/Type /Page>> endobj 9 0 obj <>/ProcSet 40 0 R>>/Type /Page>> endobj 10 0 obj <>/ProcSet 40 0 R>>/Type /Page>> endobj 11 0 obj <>/ProcSet 40 0 R>>/Type /Page>> endobj 12 0 obj <>/ProcSet 40 0 R>>/Type /Page>> endobj 13 0 obj <>/ProcSet 40 0 R>>/Type /Page>> endobj 14 0 obj <>/ProcSet 40 0 R>>/Type /Page>> endobj 15 0 obj <>/ProcSet 40 0 R>>/Type /Page>> endobj 16 0 obj <>/ProcSet 40 0 R>>/Type /Page>> endobj 17 0 obj <>/ProcSet 40 0 R>>/Type /Page>> endobj 18 0 obj <>/ProcSet 40 0 R>>/Type /Page>> endobj 19 0 obj <>/ProcSet 40 0 R>>/Type /Page>> endobj 20 0 obj <>/ProcSet 40 0 R>>/Type /Page>> endobj 21 0 obj <>/ProcSet 40 0 R>>/Type /Page>> endobj 22 0 obj <>/ProcSet 40 0 R>>/Type /Page>> endobj 23 0 obj <>/ProcSet 40 0 R>>/Type /Page>> endobj 24 0 obj <>/ProcSet 40 0 R>>/Type /Page>> endobj 25 0 obj <>/ProcSet 40 0 R>>/Type /Page>> endobj 26 0 obj <>/ProcSet 40 0 R>>/Type /Page>> endobj 27 0 obj <>/ProcSet 40 0 R>>/Type /Page>> endobj 28 0 obj <>/ProcSet 40 0 R>>/Type /Page>> endobj 29 0 obj <>/ProcSet 40 0 R>>/Type /Page>> endobj 30 0 obj <>/ProcSet 40 0 R>>/Type /Page>> endobj 31 0 obj <>/ProcSet 40 0 R>>/Type /Page>> endobj 32 0 obj <>/ProcSet 40 0 R>>/Type /Page>> endobj 33 0 obj <>/ProcSet 40 0 R>>/Type /Page>> endobj 34 0 obj <>/ProcSet 40 0 R>>/Type /Page>> endobj 35 0 obj <>/ProcSet 40 0 R>>/Type /Page>> endobj 36 0 obj <> endobj 37 0 obj <> endobj 38 0 obj <> stream d罅ƞ?|`FC]?^0=$fː, +endstream endobj 39 0 obj <> endobj 40 0 obj [/PDF /Text] endobj 41 0 obj <> stream 6 rv3OB'}%\ wɋxd_ CWendstream endobj 42 0 obj <> stream +.r(ǟcz[QTTWU~~=tGendstream endobj 43 0 obj <> stream T&', zaCޘ^6D}&OB}B=endstream endobj 44 0 obj <> stream =O I#ysWۈn`S@诣',s'jTSendstream endobj 45 0 obj <> stream p· y¾Qm-2.a_8ovսg xĆ endstream endobj 46 0 obj <> stream :涺 Emҏ> stream `%gEW .G2pCZtPt&:@ 6$ endstream endobj 48 0 obj <> stream yDt̨<'rБub5T5q&h=9#* ?P+endstream endobj 49 0 obj <> stream `vD>{C2m15XRűޙHmendstream endobj 50 0 obj <> stream 9밞dqKE4\Vkg mi-^w_#ֈd'iF?I{|endstream endobj 51 0 obj <> stream A8" yU-cnxT?QU{'V%endstream endobj 52 0 obj <> stream Gܒfꐸkt~*9.L!i̿j#gZ"GCendstream endobj 53 0 obj <> stream ?twwk1#WB}’@lU endstream endobj 54 0 obj <> stream 9iNHyTU3&ѳ~=B݌݅{endstream endobj 55 0 obj <> stream ߔ~l6#:9L,%\:ema^8Ժz?"endstream endobj 56 0 obj <> stream TB[pȵ\rZ-8]Ñ~AP@Jd(endstream endobj 57 0 obj <> stream @?iy_dA{JbMtCE mB)5 ZABOendstream endobj 58 0 obj <> stream @q S3|~)+6JڿV-1]P5endstream endobj 59 0 obj <> stream OƠ [?y@7^`cf/]FeZ<ĝ]mDBendstream endobj 60 0 obj <> stream O I y[L7)O~&g 紃D?O$*2jendstream endobj 61 0 obj <> stream :kL1ڊ\F2rz,0y3 yCH-endstream endobj 62 0 obj <> stream #9&۶A=%:BРiT,Jiwz!h+endstream endobj 63 0 obj <> stream Vޥ&K[ȃTtTvZ'f+7(ۙX VŸendstream endobj 64 0 obj <> stream (<$>,%ŀ>#.vjtN9:l>lH=Iendstream endobj 65 0 obj <> stream j77cւ{R7 4a,)N}mq$@ؽ*rSJwhoendstream endobj 66 0 obj <> stream `ӍULD`l3LI `O1lendstream endobj 67 0 obj <> stream 4ؕ23l8P*@ewѕ0L 4C &]ap"endstream endobj 68 0 obj <> stream W?", AގoNOcٖpOVH~jj endstream endobj 69 0 obj <> stream Q6 {܁N[$|ij5d;&M$`xa;endstream endobj 70 0 obj <> endobj 71 0 obj <> endobj 72 0 obj <\220\\\034\006\231\(j#\033iKvx+V9\230:\032\206\t\213&\206?)/Type /Outline>> endobj 73 0 obj <> endobj 74 0 obj <> endobj 75 0 obj <> endobj 76 0 obj <lH)/Type /Outline>> endobj 77 0 obj </P -4/R 3/U <58d9ec2434b465115bfd981d6f05fed80122456a91bae5134273a6db134c87c4>/V 2>> endobj xref 0 78 0000000000 65535 f 0000000015 00000 n 0000000320 00000 n 0000000386 00000 n 0000000640 00000 n 0000000816 00000 n 0000000969 00000 n 0000001102 00000 n 0000001235 00000 n 0000001368 00000 n 0000001501 00000 n 0000001635 00000 n 0000001769 00000 n 0000001903 00000 n 0000002037 00000 n 0000002171 00000 n 0000002305 00000 n 0000002439 00000 n 0000002573 00000 n 0000002707 00000 n 0000002841 00000 n 0000002975 00000 n 0000003109 00000 n 0000003243 00000 n 0000003377 00000 n 0000003511 00000 n 0000003645 00000 n 0000003779 00000 n 0000003913 00000 n 0000004047 00000 n 0000004181 00000 n 0000004315 00000 n 0000004449 00000 n 0000004583 00000 n 0000004717 00000 n 0000004851 00000 n 0000004985 00000 n 0000005147 00000 n 0000005388 00000 n 0000005482 00000 n 0000005584 00000 n 0000005613 00000 n 0000005707 00000 n 0000005801 00000 n 0000005895 00000 n 0000005989 00000 n 0000006083 00000 n 0000006177 00000 n 0000006271 00000 n 0000006365 00000 n 0000006459 00000 n 0000006554 00000 n 0000006649 00000 n 0000006744 00000 n 0000006839 00000 n 0000006934 00000 n 0000007029 00000 n 0000007124 00000 n 0000007219 00000 n 0000007314 00000 n 0000007409 00000 n 0000007504 00000 n 0000007599 00000 n 0000007694 00000 n 0000007789 00000 n 0000007884 00000 n 0000007979 00000 n 0000008074 00000 n 0000008169 00000 n 0000008264 00000 n 0000008359 00000 n 0000008536 00000 n 0000008747 00000 n 0000008932 00000 n 0000009104 00000 n 0000009297 00000 n 0000009488 00000 n 0000009650 00000 n trailer <<40ddfb795186d6d7f43f397ccc8ffb17>]/Encrypt 77 0 R>> startxref 9850 %%EOF qpdf-8.0.2/examples/qtest/bookmarks/1.pdf0000644000064100006410000003671013247541377016356 0ustar ejbejb%PDF-1.3 % %QDF-1.0 1 0 obj << /PageLabels << /Nums [ 0 << /P () >> 2 << /S /r /St 1 >> 7 << /P () >> 9 << /S /r /St 6 >> 11 << /P () >> 12 << /S /D /St 2 >> 15 << /S /D /St 6 >> 19 << /P () >> 20 << /S /D /St 12 >> 22 << /S /D /St 16059 >> 23 << /S /r /St 50 >> 29 << /S /r /St 54 >> ] >> /Pages 2 0 R /Type /Catalog /PageMode /UseOutlines /Outlines 95 0 R >> endobj 2 0 obj << /Count 30 /Kids [ 3 0 R 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R ] /Type /Pages >> endobj %% Page 1 3 0 obj << /Contents 33 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 2 4 0 obj << /Contents 37 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 3 5 0 obj << /Contents 39 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 4 6 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 5 7 0 obj << /Contents 43 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 6 8 0 obj << /Contents 45 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 7 9 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 8 10 0 obj << /Contents 49 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 9 11 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 10 12 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 11 13 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 12 14 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 13 15 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 14 16 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 15 17 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 16 18 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 17 19 0 obj << /Contents 67 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 18 20 0 obj << /Contents 69 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 19 21 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 20 22 0 obj << /Contents 73 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 21 23 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 22 24 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 23 25 0 obj << /Contents 79 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 24 26 0 obj << /Contents 81 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 25 27 0 obj << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 26 28 0 obj << /Contents 85 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 27 29 0 obj << /Contents 87 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 28 30 0 obj << /Contents 89 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 29 31 0 obj << /Contents 91 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Page 30 32 0 obj << /Contents 93 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 35 0 R >> /ProcSet 36 0 R >> /Type /Page >> endobj %% Contents for page 1 33 0 obj << /Length 34 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 0) Tj ET endstream endobj 34 0 obj 46 endobj 35 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 36 0 obj [ /PDF /Text ] endobj %% Contents for page 2 37 0 obj << /Length 38 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 1) Tj ET endstream endobj 38 0 obj 46 endobj %% Contents for page 3 39 0 obj << /Length 40 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 2) Tj ET endstream endobj 40 0 obj 46 endobj %% Contents for page 4 41 0 obj << /Length 42 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 3) Tj ET endstream endobj 42 0 obj 46 endobj %% Contents for page 5 43 0 obj << /Length 44 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 4) Tj ET endstream endobj 44 0 obj 46 endobj %% Contents for page 6 45 0 obj << /Length 46 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 5) Tj ET endstream endobj 46 0 obj 46 endobj %% Contents for page 7 47 0 obj << /Length 48 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 6) Tj ET endstream endobj 48 0 obj 46 endobj %% Contents for page 8 49 0 obj << /Length 50 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 7) Tj ET endstream endobj 50 0 obj 46 endobj %% Contents for page 9 51 0 obj << /Length 52 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 8) Tj ET endstream endobj 52 0 obj 46 endobj %% Contents for page 10 53 0 obj << /Length 54 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 9) Tj ET endstream endobj 54 0 obj 46 endobj %% Contents for page 11 55 0 obj << /Length 56 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 10) Tj ET endstream endobj 56 0 obj 47 endobj %% Contents for page 12 57 0 obj << /Length 58 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 11) Tj ET endstream endobj 58 0 obj 47 endobj %% Contents for page 13 59 0 obj << /Length 60 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 12) Tj ET endstream endobj 60 0 obj 47 endobj %% Contents for page 14 61 0 obj << /Length 62 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 13) Tj ET endstream endobj 62 0 obj 47 endobj %% Contents for page 15 63 0 obj << /Length 64 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 14) Tj ET endstream endobj 64 0 obj 47 endobj %% Contents for page 16 65 0 obj << /Length 66 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 15) Tj ET endstream endobj 66 0 obj 47 endobj %% Contents for page 17 67 0 obj << /Length 68 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 16) Tj ET endstream endobj 68 0 obj 47 endobj %% Contents for page 18 69 0 obj << /Length 70 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 17) Tj ET endstream endobj 70 0 obj 47 endobj %% Contents for page 19 71 0 obj << /Length 72 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 18) Tj ET endstream endobj 72 0 obj 47 endobj %% Contents for page 20 73 0 obj << /Length 74 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 19) Tj ET endstream endobj 74 0 obj 47 endobj %% Contents for page 21 75 0 obj << /Length 76 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 20) Tj ET endstream endobj 76 0 obj 47 endobj %% Contents for page 22 77 0 obj << /Length 78 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 21) Tj ET endstream endobj 78 0 obj 47 endobj %% Contents for page 23 79 0 obj << /Length 80 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 22) Tj ET endstream endobj 80 0 obj 47 endobj %% Contents for page 24 81 0 obj << /Length 82 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 23) Tj ET endstream endobj 82 0 obj 47 endobj %% Contents for page 25 83 0 obj << /Length 84 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 24) Tj ET endstream endobj 84 0 obj 47 endobj %% Contents for page 26 85 0 obj << /Length 86 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 25) Tj ET endstream endobj 86 0 obj 47 endobj %% Contents for page 27 87 0 obj << /Length 88 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 26) Tj ET endstream endobj 88 0 obj 47 endobj %% Contents for page 28 89 0 obj << /Length 90 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 27) Tj ET endstream endobj 90 0 obj 47 endobj %% Contents for page 29 91 0 obj << /Length 92 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 28) Tj ET endstream endobj 92 0 obj 47 endobj %% Contents for page 30 93 0 obj << /Length 94 0 R >> stream BT /F1 24 Tf 72 720 Td (Potato 29) Tj ET endstream endobj 94 0 obj 47 endobj 95 0 obj << /Type /Outlines /First 97 0 R /Last 96 0 R /Count 6 >> endobj 96 0 obj << /Type /Outline /Title (Isis 1 -> 5: /XYZ null null null) /Parent 95 0 R /Count 4 /Prev 97 0 R /First 98 0 R /Last 99 0 R /Dest [ 8 0 R /XYZ null null null ] >> endobj 97 0 obj << /Type /Outline /Title (Trepak 2 -> 15: /XYZ 66 756 3) /Parent 95 0 R /Next 96 0 R /Dest [ 18 0 R /XYZ 66 756 3 ] >> endobj 98 0 obj << /Type /Outline /Title (Amanda 1.1 -> 11: /Fit) /Parent 96 0 R /Next 99 0 R /First 100 0 R /Last 101 0 R /Count -3 /Dest [ 14 0 R /Fit ] >> endobj 99 0 obj << /Type /Outline /Title (Sandy 1.2 -> 13: /FitH 792) /Parent 96 0 R /Prev 98 0 R /First 105 0 R /Last 106 0 R /Count 2 /Dest [ 16 0 R /FitH 792 ] >> endobj 100 0 obj << /Type /Outline /Title (Isosicle 1.1.1 -> 12: /FitV 100) /Parent 98 0 R /Next 101 0 R /First 102 0 R /Last 103 0 R /Count -2 /Dest [ 15 0 R /FitV 100 ] >> endobj 101 0 obj << /Type /Outline /Title (Isosicle 1.1.2 -> 12: /XYZ null null null) /Parent 98 0 R /Prev 100 0 R /First 104 0 R /Last 104 0 R /Count 1 /Dest [ 15 0 R /XYZ null null null ] >> endobj 102 0 obj << /Type /Outline /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null) /Parent 100 0 R /Next 103 0 R /Dest [ 21 0 R /XYZ null null null ] >> endobj 103 0 obj << /Type /Outline /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null) /Parent 100 0 R /Prev 102 0 R /Dest [ 22 0 R /XYZ null null null ] >> endobj 104 0 obj << /Type /Outline /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null) /Parent 101 0 R /Dest [ 25 0 R /XYZ null null null ] >> endobj 105 0 obj << /Type /Outline /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770) /Parent 99 0 R /Next 106 0 R /Dest [ 4 0 R /FitR 66 714 180 770 ] >> endobj 106 0 obj << /Type /Outline /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null) /Parent 99 0 R /Prev 105 0 R /Dest [ 3 0 R /XYZ null null null ] >> endobj xref 0 107 0000000000 65535 f 0000000025 00000 n 0000000434 00000 n 0000000830 00000 n 0000001035 00000 n 0000001240 00000 n 0000001445 00000 n 0000001650 00000 n 0000001855 00000 n 0000002060 00000 n 0000002265 00000 n 0000002471 00000 n 0000002678 00000 n 0000002885 00000 n 0000003092 00000 n 0000003299 00000 n 0000003506 00000 n 0000003713 00000 n 0000003920 00000 n 0000004127 00000 n 0000004334 00000 n 0000004541 00000 n 0000004748 00000 n 0000004955 00000 n 0000005162 00000 n 0000005369 00000 n 0000005576 00000 n 0000005783 00000 n 0000005990 00000 n 0000006197 00000 n 0000006404 00000 n 0000006611 00000 n 0000006818 00000 n 0000007037 00000 n 0000007140 00000 n 0000007160 00000 n 0000007279 00000 n 0000007338 00000 n 0000007441 00000 n 0000007484 00000 n 0000007587 00000 n 0000007630 00000 n 0000007733 00000 n 0000007776 00000 n 0000007879 00000 n 0000007922 00000 n 0000008025 00000 n 0000008068 00000 n 0000008171 00000 n 0000008214 00000 n 0000008317 00000 n 0000008360 00000 n 0000008463 00000 n 0000008507 00000 n 0000008610 00000 n 0000008654 00000 n 0000008758 00000 n 0000008802 00000 n 0000008906 00000 n 0000008950 00000 n 0000009054 00000 n 0000009098 00000 n 0000009202 00000 n 0000009246 00000 n 0000009350 00000 n 0000009394 00000 n 0000009498 00000 n 0000009542 00000 n 0000009646 00000 n 0000009690 00000 n 0000009794 00000 n 0000009838 00000 n 0000009942 00000 n 0000009986 00000 n 0000010090 00000 n 0000010134 00000 n 0000010238 00000 n 0000010282 00000 n 0000010386 00000 n 0000010430 00000 n 0000010534 00000 n 0000010578 00000 n 0000010682 00000 n 0000010726 00000 n 0000010830 00000 n 0000010874 00000 n 0000010978 00000 n 0000011022 00000 n 0000011126 00000 n 0000011170 00000 n 0000011274 00000 n 0000011318 00000 n 0000011422 00000 n 0000011466 00000 n 0000011570 00000 n 0000011590 00000 n 0000011677 00000 n 0000011873 00000 n 0000012019 00000 n 0000012194 00000 n 0000012377 00000 n 0000012568 00000 n 0000012778 00000 n 0000012947 00000 n 0000013116 00000 n 0000013269 00000 n 0000013438 00000 n trailer << /Root 1 0 R /Size 107 >> startxref 13603 %%EOF qpdf-8.0.2/examples/qtest/bookmarks/3.pdf0000644000064100006410000000001513247541377016345 0ustar ejbejbpotato salad qpdf-8.0.2/examples/qtest/bookmarks/encrypted.out0000644000064100006410000000102113247541377020234 0ustar ejbejb[ -> 6 ] Isís 1 -> 5: /XYZ null null null [ -> 12 ] Amanda 1.1 -> 11: /Fit [ -> 13 ] Isosicle 1.1.1 -> 12: /FitV 100 [ -> 19 ] Isosicle 1.1.1.1 -> 18: /XYZ null null null [ -> 20 ] Isosicle 1.1.1.2 -> 19: /XYZ null null null [ -> 13 ] Isosicle 1.1.2 -> 12: /XYZ null null null [ -> 23 ] Isosicle 1.1.2.1 -> 22: /XYZ null null null [ -> 14 ] Sandy ÷Σανδι÷ 1.2 -> 13: /FitH 792 [ -> 2 ] Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770 [ -> 1 ] Trepsicle 1.2.2 -> 0: /XYZ null null null [ -> 16 ] Trepak 2 -> 15: /XYZ 66 756 3 qpdf-8.0.2/examples/qtest/double-page-size.test0000644000064100006410000000122413247541377017560 0ustar ejbejb#!/usr/bin/env perl require 5.008; BEGIN { $^W = 1; } use strict; chdir("double-page-size") or die "chdir testdir failed: $!\n"; require TestDriver; my $td = new TestDriver('double-page-size'); cleanup(); $td->runtest("double page size", {$td->COMMAND => ['pdf-double-page-size', ' --static-id', 'in.pdf', 'a.pdf']}, {$td->STRING => "pdf-double-page-size: new file written to a.pdf\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "out.pdf"}); cleanup(); $td->report(2); sub cleanup { unlink 'a.pdf'; } qpdf-8.0.2/examples/qtest/count-strings/0000755000064100006410000000000013247541377016343 5ustar ejbejbqpdf-8.0.2/examples/qtest/count-strings/in.pdf0000644000064100006410000000250413247541377017445 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 2 /Kids [ 3 0 R 4 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj 4 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 9 0 R >> /ProcSet 10 0 R >> /Type /Page >> endobj 5 0 obj << /Length 76 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$KUTC쌢TҒ̴⒢̼bEkS(endstream endobj 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 7 0 obj [ /PDF /Text ] endobj 8 0 obj << /Length 81 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$p/-RTs2R M#)5$34.U\R^ *!\!endstream endobj 9 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 10 0 obj [ /PDF /Text ] endobj xref 0 11 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000129 00000 n 0000000272 00000 n 0000000416 00000 n 0000000562 00000 n 0000000669 00000 n 0000000699 00000 n 0000000850 00000 n 0000000957 00000 n trailer << /Root 1 0 R /Size 11 /ID [<992acb7135b9649f614cd256c1b99cd2><36222348557078c867db0cdfc859b4d1>] >> startxref 988 %%EOF qpdf-8.0.2/examples/qtest/count-strings/out0000644000064100006410000000030413247541377017072 0ustar ejbejbPage 1: strings = 3 % Contents of page 2 BT /F1 24 Tf 72 720 Td (Four ) Tj (Five ) Tj (Six ) (beautiful ) Tj (strings) Tj (!) Tj ET % strings found: 6 % end 2 Page 2: strings = 6 qpdf-8.0.2/examples/examples.testcov0000644000064100006410000000070313247541377015613 0ustar ejbejbpdf-bookmarks lines 0 pdf-bookmarks numbers 0 pdf-bookmarks none 0 pdf-bookmarks has count 0 pdf-bookmarks no count 0 pdf-bookmarks open 0 pdf-bookmarks closed 0 pdf-bookmarks dest 0 pdf-bookmarks targets 0 pdf-mod-info --dump 0 pdf-mod-info no in file 0 pdf-mod-info in-place 0 pdf-mod-info -key 0 pdf-mod-info usage wrong val 0 pdf-mod-info -val 0 pdf-mod-info usage junk 0 pdf-mod-info no keys 0 pdf-mod-info has info 0 pdf-mod-info file no info 0 qpdf-8.0.2/examples/pdf-create.cc0000644000064100006410000003451313247541377014713 0ustar ejbejb// // This is an example of creating a PDF file from scratch. It // illustrates use of several QPDF operations for creating objects and // streams. It also serves as an illustration of how to use // StreamDataProvider with different types of filters. // #include #include #include #include #include #include #include #include #include #include static char const* whoami = 0; // This is a simple StreamDataProvider that writes image data for an // orange square of the given width and height. class ImageProvider: public QPDFObjectHandle::StreamDataProvider { public: ImageProvider(std::string const& color_space, std::string const& filter); virtual ~ImageProvider(); virtual void provideStreamData(int objid, int generation, Pipeline* pipeline); int getWidth() const; int getHeight() const; private: int width; int stripe_height; std::string color_space; std::string filter; int n_stripes; std::vector stripes; J_COLOR_SPACE j_color_space; }; ImageProvider::ImageProvider(std::string const& color_space, std::string const& filter) : width(400), stripe_height(80), color_space(color_space), filter(filter), n_stripes(6), j_color_space(JCS_UNKNOWN) { if (color_space == "/DeviceCMYK") { j_color_space = JCS_CMYK; stripes.push_back(std::string("\xff\x00\x00\x00", 4)); stripes.push_back(std::string("\x00\xff\x00\x00", 4)); stripes.push_back(std::string("\x00\x00\xff\x00", 4)); stripes.push_back(std::string("\xff\x00\xff\x00", 4)); stripes.push_back(std::string("\xff\xff\x00\x00", 4)); stripes.push_back(std::string("\x00\x00\x00\xff", 4)); } else if (color_space == "/DeviceRGB") { j_color_space = JCS_RGB; stripes.push_back(std::string("\xff\x00\x00", 3)); stripes.push_back(std::string("\x00\xff\x00", 3)); stripes.push_back(std::string("\x00\x00\xff", 3)); stripes.push_back(std::string("\xff\x00\xff", 3)); stripes.push_back(std::string("\xff\xff\x00", 3)); stripes.push_back(std::string("\x00\x00\x00", 3)); } else if (color_space == "/DeviceGray") { j_color_space = JCS_GRAYSCALE; stripes.push_back(std::string("\xee", 1)); stripes.push_back(std::string("\xcc", 1)); stripes.push_back(std::string("\x99", 1)); stripes.push_back(std::string("\x66", 1)); stripes.push_back(std::string("\x33", 1)); stripes.push_back(std::string("\x00", 1)); } } ImageProvider::~ImageProvider() { } int ImageProvider::getWidth() const { return width; } int ImageProvider::getHeight() const { return stripe_height * n_stripes; } void ImageProvider::provideStreamData(int objid, int generation, Pipeline* pipeline) { std::vector > to_delete; Pipeline* p = pipeline; if (filter == "/DCTDecode") { p = new Pl_DCT( "image encoder", pipeline, width, getHeight(), stripes[0].length(), j_color_space); to_delete.push_back(p); } else if (filter == "/RunLengthDecode") { p = new Pl_RunLength( "image encoder", pipeline, Pl_RunLength::a_encode); to_delete.push_back(p); } for (int i = 0; i < n_stripes; ++i) { for (int j = 0; j < width * stripe_height; ++j) { p->write( QUtil::unsigned_char_pointer(stripes[i].c_str()), stripes[i].length()); } } p->finish(); } void usage() { std::cerr << "Usage: " << whoami << " filename" << std::endl << "Creates a simple PDF and writes it to filename" << std::endl; exit(2); } static QPDFObjectHandle createPageContents(QPDF& pdf, std::string const& text) { // Create a stream that displays our image and the given text in // our font. std::string contents = "BT /F1 24 Tf 72 320 Td (" + text + ") Tj ET\n" "q 244 0 0 144 184 100 cm /Im1 Do Q\n"; return QPDFObjectHandle::newStream(&pdf, contents); } QPDFObjectHandle newName(std::string const& name) { return QPDFObjectHandle::newName(name); } QPDFObjectHandle newInteger(int val) { return QPDFObjectHandle::newInteger(val); } void add_page(QPDF& pdf, QPDFObjectHandle font, std::string const& color_space, std::string const& filter) { // Create a stream to encode our image. QPDFWriter will fill in // the length and will respect our filters based on stream data // mode. Since we are not specifying, QPDFWriter will compress // with /FlateDecode if we don't provide any other form of // compression. ImageProvider* p = new ImageProvider(color_space, filter); PointerHolder provider(p); int width = p->getWidth(); int height = p->getHeight(); QPDFObjectHandle image = QPDFObjectHandle::newStream(&pdf); image.replaceDict(QPDFObjectHandle::parse( "<<" " /Type /XObject" " /Subtype /Image" " /BitsPerComponent 8" ">>")); QPDFObjectHandle image_dict = image.getDict(); image_dict.replaceKey("/ColorSpace", newName(color_space)); image_dict.replaceKey("/Width", newInteger(width)); image_dict.replaceKey("/Height", newInteger(height)); // Provide the stream data. image.replaceStreamData(provider, QPDFObjectHandle::parse(filter), QPDFObjectHandle::newNull()); // Create direct objects as needed by the page dictionary. QPDFObjectHandle procset = QPDFObjectHandle::parse( "[/PDF /Text /ImageC]"); QPDFObjectHandle rfont = QPDFObjectHandle::newDictionary(); rfont.replaceKey("/F1", font); QPDFObjectHandle xobject = QPDFObjectHandle::newDictionary(); xobject.replaceKey("/Im1", image); QPDFObjectHandle resources = QPDFObjectHandle::newDictionary(); resources.replaceKey("/ProcSet", procset); resources.replaceKey("/Font", rfont); resources.replaceKey("/XObject", xobject); QPDFObjectHandle mediabox = QPDFObjectHandle::newArray(); mediabox.appendItem(newInteger(0)); mediabox.appendItem(newInteger(0)); mediabox.appendItem(newInteger(612)); mediabox.appendItem(newInteger(392)); // Create the page content stream QPDFObjectHandle contents = createPageContents( pdf, color_space + " with filter " + filter); // Create the page dictionary QPDFObjectHandle page = pdf.makeIndirectObject( QPDFObjectHandle::newDictionary()); page.replaceKey("/Type", newName("/Page")); page.replaceKey("/MediaBox", mediabox); page.replaceKey("/Contents", contents); page.replaceKey("/Resources", resources); // Add the page to the PDF file pdf.addPage(page, false); } static void check(char const* filename, std::vector const& color_spaces, std::vector const& filters) { // Each stream is compressed the way it is supposed to be. We will // add additional tests in qpdf.test to exercise QPDFWriter more // fully. In this case, we want to make sure that we actually have // RunLengthDecode and DCTDecode where we are supposed to and // FlateDecode where we provided no filters. // Each image is correct. For non-lossy image compression, the // uncompressed image data should exactly match what ImageProvider // provided. For the DCTDecode data, allow for some fuzz to handle // jpeg compression as well as its variance on different systems. // These tests should use QPDFObjectHandle's stream data retrieval // methods, but don't try to fully exercise them here. That is // done elsewhere. size_t n_color_spaces = color_spaces.size(); size_t n_filters = filters.size(); QPDF pdf; pdf.processFile(filename); std::vector const& pages = pdf.getAllPages(); if (n_color_spaces * n_filters != pages.size()) { throw std::logic_error("incorrect number of pages"); } size_t pageno = 1; bool errors = false; for (std::vector::const_iterator page_iter = pages.begin(); page_iter != pages.end(); ++page_iter) { QPDFObjectHandle page = *page_iter; std::map images = page.getPageImages(); if (images.size() != 1) { throw std::logic_error("incorrect number of images on page"); } // Check filter and color space. std::string desired_color_space = color_spaces[(pageno - 1) / n_color_spaces]; std::string desired_filter = filters[(pageno - 1) % n_filters]; // In the default mode, QPDFWriter will compress with // /FlateDecode if no filters are provided. if (desired_filter == "null") { desired_filter = "/FlateDecode"; } QPDFObjectHandle image = images.begin()->second; QPDFObjectHandle image_dict = image.getDict(); QPDFObjectHandle color_space = image_dict.getKey("/ColorSpace"); QPDFObjectHandle filter = image_dict.getKey("/Filter"); bool this_errors = false; if (! (filter.isName() && (filter.getName() == desired_filter))) { this_errors = errors = true; std::cout << "page " << pageno << ": expected filter " << desired_filter << "; actual filter = " << filter.unparse() << std::endl; } if (! (color_space.isName() && (color_space.getName() == desired_color_space))) { this_errors = errors = true; std::cout << "page " << pageno << ": expected color space " << desired_color_space << "; actual color space = " << color_space.unparse() << std::endl; } if (! this_errors) { // Check image data PointerHolder actual_data = image.getStreamData(qpdf_dl_all); ImageProvider* p = new ImageProvider(desired_color_space, "null"); PointerHolder provider(p); Pl_Buffer b_p("get image data"); provider->provideStreamData(0, 0, &b_p); PointerHolder desired_data(b_p.getBuffer()); if (desired_data->getSize() != actual_data->getSize()) { std::cout << "page " << pageno << ": image data length mismatch" << std::endl; this_errors = errors = true; } else { // Compare bytes. For JPEG, allow a certain number of // the bytes to be off desired by more than a given // tolerance. Any of the samples may be a little off // because of lossy compression, and around sharp // edges, things can be quite off. For non-lossy // compression, do not allow any tolerance. unsigned char const* actual_bytes = actual_data->getBuffer(); unsigned char const* desired_bytes = desired_data->getBuffer(); size_t len = actual_data->getSize(); unsigned int mismatches = 0; int tolerance = ( desired_filter == "/DCTDecode" ? 10 : 0); unsigned int threshold = ( desired_filter == "/DCTDecode" ? len / 40 : 0); for (size_t i = 0; i < len; ++i) { int delta = actual_bytes[i] - desired_bytes[i]; if ((delta > tolerance) || (delta < -tolerance)) { ++mismatches; } } if (mismatches > threshold) { std::cout << "page " << pageno << ": " << desired_color_space << ", " << desired_filter << ": mismatches: " << mismatches << " of " << len << std::endl; this_errors = errors = true; } } } ++pageno; } if (errors) { throw std::logic_error("errors found"); } else { std::cout << "all checks passed" << std::endl; } } static void create_pdf(char const* filename) { QPDF pdf; // Start with an empty PDF that has no pages or non-required objects. pdf.emptyPDF(); // Add an indirect object to contain a font descriptor for the // built-in Helvetica font. QPDFObjectHandle font = pdf.makeIndirectObject( QPDFObjectHandle::parse( "<<" " /Type /Font" " /Subtype /Type1" " /Name /F1" " /BaseFont /Helvetica" " /Encoding /WinAnsiEncoding" ">>")); std::vector color_spaces; color_spaces.push_back("/DeviceCMYK"); color_spaces.push_back("/DeviceRGB"); color_spaces.push_back("/DeviceGray"); std::vector filters; filters.push_back("null"); filters.push_back("/DCTDecode"); filters.push_back("/RunLengthDecode"); for (std::vector::iterator c_iter = color_spaces.begin(); c_iter != color_spaces.end(); ++c_iter) { for (std::vector::iterator f_iter = filters.begin(); f_iter != filters.end(); ++f_iter) { add_page(pdf, font, *c_iter, *f_iter); } } QPDFWriter w(pdf, filename); w.write(); // For test suite, verify that everything is the way it is // supposed to be. check(filename, color_spaces, filters); } int main(int argc, char* argv[]) { whoami = QUtil::getWhoami(argv[0]); // For libtool's sake.... if (strncmp(whoami, "lt-", 3) == 0) { whoami += 3; } if (argc != 2) { usage(); } char const* filename = argv[1]; try { create_pdf(filename); } catch (std::exception& e) { std::cerr << e.what() << std::endl; exit(2); } return 0; } qpdf-8.0.2/examples/pdf-mod-info.cc0000644000064100006410000001160713247541377015157 0ustar ejbejb// Author: Vitaliy Pavlyuk #include #include #include #include #include #include #include #include #include #ifdef _WIN32 #include #include #include #else #include #endif static char const* version = "1.1"; static char const* whoami = 0; void usage() { std::cerr << "Usage: " << whoami << " -in in_file [-out out_file] [-key key [-val val]?]+\n" << "Modifies/Adds/Removes PDF /Info entries in the in_file\n" << "and stores the result in out_file\n" << "Special mode: " << whoami << " --dump file\n" << "dumps all /Info entries to stdout\n"; exit(2); } void dumpInfoDict(QPDF& pdf, std::ostream& os = std::cout, std::string const& sep = ":\t") { QPDFObjectHandle trailer = pdf.getTrailer(); if (trailer.hasKey("/Info")) { QPDFObjectHandle info = trailer.getKey("/Info"); std::set keys = info.getKeys(); for (std::set::const_iterator it = keys.begin(); keys.end() != it; ++it) { QPDFObjectHandle elt = info.getKey(*it); std::string val; if (false) {} else if (elt.isString()) { val = elt.getStringValue(); } else if (elt.isName()) { val = elt.getName(); } else // according to PDF Spec 1.5, shouldn't happen { val = elt.unparseResolved(); } os << it->substr(1) << sep << val << std::endl; // skip '/' } } } void pdfDumpInfoDict(char const* fname) { try { QPDF pdf; pdf.processFile(fname); dumpInfoDict(pdf); } catch (std::exception& e) { std::cerr << e.what() << std::endl; exit(2); } } int main(int argc, char* argv[]) { bool static_id = false; std::map Keys; whoami = QUtil::getWhoami(argv[0]); // For libtool's sake.... if (strncmp(whoami, "lt-", 3) == 0) { whoami += 3; } if ((argc == 2) && (! strcmp(argv[1], "--version")) ) { std::cout << whoami << " version " << version << std::endl; exit(0); } if ((argc == 4) && (! strcmp(argv[1], "--dump")) && (strcmp(argv[2], "-in") == 0) ) { QTC::TC("examples", "pdf-mod-info --dump"); pdfDumpInfoDict(argv[3]); exit(0); } char* fl_in = 0; char* fl_out = 0; std::string cur_key; for (int i = 1; i < argc; ++i) { if ((! strcmp(argv[i], "-in")) && (++i < argc)) { fl_in = argv[i]; } else if ((! strcmp(argv[i], "-out")) && (++i < argc)) { fl_out = argv[i]; } else if (! strcmp(argv[i], "--static-id")) // don't document { static_id = true; // this should be used in test suites only } else if ((! strcmp(argv[i], "-key")) && (++i < argc)) { QTC::TC("examples", "pdf-mod-info -key"); cur_key = argv[i]; if (! ((cur_key.length() > 0) && (cur_key.at(0) == '/'))) { cur_key = "/" + cur_key; } Keys[cur_key] = ""; } else if ((! strcmp(argv[i], "-val")) && (++i < argc)) { if (cur_key.empty()) { QTC::TC("examples", "pdf-mod-info usage wrong val"); usage(); } QTC::TC("examples", "pdf-mod-info -val"); Keys[cur_key] = argv[i]; cur_key.clear(); } else { QTC::TC("examples", "pdf-mod-info usage junk"); usage(); } } if (! fl_in) { QTC::TC("examples", "pdf-mod-info no in file"); usage(); } if (! fl_out) { QTC::TC("examples", "pdf-mod-info in-place"); fl_out = fl_in; } if (Keys.size() == 0) { QTC::TC("examples", "pdf-mod-info no keys"); usage(); } std::string fl_tmp = fl_out; fl_tmp += ".tmp"; try { QPDF file; file.processFile(fl_in); QPDFObjectHandle filetrailer = file.getTrailer(); QPDFObjectHandle fileinfo; for (std::map::const_iterator it = Keys.begin(); Keys.end() != it; ++it) { if (! fileinfo.isInitialized()) { if (filetrailer.hasKey("/Info")) { QTC::TC("examples", "pdf-mod-info has info"); fileinfo = filetrailer.getKey("/Info"); } else { QTC::TC("examples", "pdf-mod-info file no info"); fileinfo = QPDFObjectHandle::newDictionary(); filetrailer.replaceKey("/Info", fileinfo); } } if (it->second == "") { fileinfo.removeKey(it->first); } else { QPDFObjectHandle elt = fileinfo.newString(it->second); elt.makeDirect(); fileinfo.replaceKey(it->first, elt); } } QPDFWriter w(file, fl_tmp.c_str()); w.setStreamDataMode(qpdf_s_preserve); w.setLinearization(true); w.setStaticID(static_id); // for testing only w.write(); } catch (std::exception& e) { std::cerr << e.what() << std::endl; exit(2); } try { (void) remove(fl_out); QUtil::os_wrapper("rename " + fl_tmp + " " + std::string(fl_out), rename(fl_tmp.c_str(), fl_out)); } catch (std::exception& e) { std::cerr << e.what() << std::endl; exit(2); } return 0; } qpdf-8.0.2/examples/pdf-npages.cc0000644000064100006410000000204513247541377014720 0ustar ejbejb#include #include #include #include #include static char const* whoami = 0; void usage() { std::cerr << "Usage: " << whoami << " filename" << std::endl << "Prints the number of pages in filename" << std::endl; exit(2); } int main(int argc, char* argv[]) { whoami = QUtil::getWhoami(argv[0]); // For libtool's sake.... if (strncmp(whoami, "lt-", 3) == 0) { whoami += 3; } if ((argc == 2) && (strcmp(argv[1], "--version") == 0)) { std::cout << whoami << " version 1.3" << std::endl; exit(0); } if (argc != 2) { usage(); } char const* filename = argv[1]; try { QPDF pdf; pdf.processFile(filename); QPDFObjectHandle root = pdf.getRoot(); QPDFObjectHandle pages = root.getKey("/Pages"); QPDFObjectHandle count = pages.getKey("/Count"); std::cout << count.getIntValue() << std::endl; } catch (std::exception& e) { std::cerr << whoami << ": " << e.what() << std::endl; exit(2); } return 0; } qpdf-8.0.2/examples/pdf-count-strings.cc0000644000064100006410000000611513247541377016264 0ustar ejbejb// // This example illustrates the use of QPDFObjectHandle::TokenFilter // with filterPageContents. See also pdf-filter-tokens.cc for an // example that uses QPDFObjectHandle::TokenFilter with // addContentTokenFilter. // #include #include #include #include #include #include #include static char const* whoami = 0; void usage() { std::cerr << "Usage: " << whoami << " infile" << std::endl << "Applies token filters to infile" << std::endl; exit(2); } class StringCounter: public QPDFObjectHandle::TokenFilter { public: StringCounter() : count(0) { } virtual ~StringCounter() { } virtual void handleToken(QPDFTokenizer::Token const&); virtual void handleEOF(); int getCount() const; private: int count; }; void StringCounter::handleToken(QPDFTokenizer::Token const& token) { // Count string tokens if (token.getType() == QPDFTokenizer::tt_string) { ++this->count; } // Preserve input verbatim by passing each token to any specified // downstream filter. writeToken(token); } void StringCounter::handleEOF() { // Write a comment at the end of the stream just to show how we // can enhance the output if we want. write("\n% strings found: "); write(QUtil::int_to_string(this->count)); } int StringCounter::getCount() const { return this->count; } int main(int argc, char* argv[]) { whoami = QUtil::getWhoami(argv[0]); // For libtool's sake.... if (strncmp(whoami, "lt-", 3) == 0) { whoami += 3; } if (argc != 2) { usage(); } char const* infilename = argv[1]; try { QPDF pdf; pdf.processFile(infilename); std::vector pages = pdf.getAllPages(); int pageno = 0; for (std::vector::iterator iter = pages.begin(); iter != pages.end(); ++iter) { QPDFObjectHandle page = *iter; ++pageno; // Pass the contents of a page through our string counter. // If it's an even page, capture the output. This // illustrates that you may capture any output generated // by the filter, or you may ignore it. StringCounter counter; if (pageno % 2) { // Ignore output for odd pages. page.filterPageContents(&counter); } else { // Write output to stdout for even pages. Pl_StdioFile out("stdout", stdout); std::cout << "% Contents of page " << pageno << std::endl; page.filterPageContents(&counter, &out); std::cout << "\n% end " << pageno << std::endl; } std::cout << "Page " << pageno << ": strings = " << counter.getCount() << std::endl; } } catch (std::exception& e) { std::cerr << whoami << ": " << e.what() << std::endl; exit(2); } return 0; } qpdf-8.0.2/examples/pdf-linearize.c0000644000064100006410000000316113247541377015262 0ustar ejbejb/* * This is an example program to linearize a PDF file using the C API. */ #include #include #include #include static char const* whoami = 0; static void usage() { fprintf(stderr, "Usage: %s infile infile-password outfile\n", whoami); exit(2); } int main(int argc, char* argv[]) { char* infile = NULL; char* password = NULL; char* outfile = NULL; qpdf_data qpdf = qpdf_init(); int warnings = 0; int errors = 0; char* p = 0; if ((p = strrchr(argv[0], '/')) != NULL) { whoami = p + 1; } else if ((p = strrchr(argv[0], '\\')) != NULL) { whoami = p + 1; } else { whoami = argv[0]; } if (argc != 4) { usage(); } infile = argv[1]; password = argv[2]; outfile = argv[3]; if (((qpdf_read(qpdf, infile, password) & QPDF_ERRORS) == 0) && ((qpdf_init_write(qpdf, outfile) & QPDF_ERRORS) == 0)) { /* Use static ID for testing only. For production, a * non-static ID is used. See also * qpdf_set_deterministic_ID. */ qpdf_set_static_ID(qpdf, QPDF_TRUE); /* for testing only */ qpdf_set_linearization(qpdf, QPDF_TRUE); qpdf_write(qpdf); } while (qpdf_more_warnings(qpdf)) { warnings = 1; printf("warning: %s\n", qpdf_get_error_full_text(qpdf, qpdf_next_warning(qpdf))); } if (qpdf_has_error(qpdf)) { errors = 1; printf("error: %s\n", qpdf_get_error_full_text(qpdf, qpdf_get_error(qpdf))); } qpdf_cleanup(&qpdf); if (errors) { return 2; } else if (warnings) { return 3; } return 0; } qpdf-8.0.2/examples/pdf-double-page-size.cc0000644000064100006410000000570513247541377016605 0ustar ejbejb#include #include #include #include #include #include #include static char const* whoami = 0; void usage() { std::cerr << "Usage: " << whoami << " infile.pdf outfile.pdf [in-password]" << std::endl << "Double size of all pages in infile.pdf;" << " write output to outfile.pdf" << std::endl; exit(2); } static void doubleBoxSize(QPDFObjectHandle& page, char const* box_name) { // If there is a box of this name, replace it with a new box whose // elements are double the values of the original box. QPDFObjectHandle box = page.getKey(box_name); if (box.isNull()) { return; } if (! (box.isArray() && (box.getArrayNItems() == 4))) { throw std::runtime_error(std::string("box ") + box_name + " is not an array of four elements"); } std::vector doubled; for (unsigned int i = 0; i < 4; ++i) { doubled.push_back( QPDFObjectHandle::newReal( box.getArrayItem(i).getNumericValue() * 2.0, 2)); } page.replaceKey(box_name, QPDFObjectHandle::newArray(doubled)); } int main(int argc, char* argv[]) { whoami = QUtil::getWhoami(argv[0]); // For libtool's sake.... if (strncmp(whoami, "lt-", 3) == 0) { whoami += 3; } // For test suite bool static_id = false; if ((argc > 1) && (strcmp(argv[1], " --static-id") == 0)) { static_id = true; --argc; ++argv; } if (! ((argc == 3) || (argc == 4))) { usage(); } char const* infilename = argv[1]; char const* outfilename = argv[2]; char const* password = (argc == 4) ? argv[3] : ""; // Text to prepend to each page's contents std::string content = "2 0 0 2 0 0 cm\n"; try { QPDF qpdf; qpdf.processFile(infilename, password); std::vector pages = qpdf.getAllPages(); for (std::vector::iterator iter = pages.begin(); iter != pages.end(); ++iter) { QPDFObjectHandle& page = *iter; // Prepend the buffer to the page's contents page.addPageContents( QPDFObjectHandle::newStream(&qpdf, content), true); // Double the size of each of the content boxes doubleBoxSize(page, "/MediaBox"); doubleBoxSize(page, "/CropBox"); doubleBoxSize(page, "/BleedBox"); doubleBoxSize(page, "/TrimBox"); doubleBoxSize(page, "/ArtBox"); } // Write out a new file QPDFWriter w(qpdf, outfilename); if (static_id) { // For the test suite, uncompress streams and use static // IDs. w.setStaticID(true); // for testing only w.setStreamDataMode(qpdf_s_uncompress); } w.write(); std::cout << whoami << ": new file written to " << outfilename << std::endl; } catch (std::exception &e) { std::cerr << whoami << " processing file " << infilename << ": " << e.what() << std::endl; exit(2); } return 0; } qpdf-8.0.2/examples/pdf-split-pages.cc0000644000064100006410000000373313247541377015700 0ustar ejbejb// // This is a stand-alone example of splitting a PDF into individual // pages. It does essentially the same thing that qpdf --split-pages // does. // #include #include #include #include #include #include static char const* whoami = 0; static bool static_id = false; static void process(char const* whoami, char const* infile, std::string outprefix) { QPDF inpdf; inpdf.processFile(infile); std::vector const& pages = inpdf.getAllPages(); int pageno_len = QUtil::int_to_string(pages.size()).length(); int pageno = 0; for (std::vector::const_iterator iter = pages.begin(); iter != pages.end(); ++iter) { QPDFObjectHandle page = *iter; std::string outfile = outprefix + QUtil::int_to_string(++pageno, pageno_len) + ".pdf"; QPDF outpdf; outpdf.emptyPDF(); outpdf.addPage(page, false); QPDFWriter outpdfw(outpdf, outfile.c_str()); if (static_id) { // For the test suite, uncompress streams and use static // IDs. outpdfw.setStaticID(true); // for testing only outpdfw.setStreamDataMode(qpdf_s_uncompress); } outpdfw.write(); } } void usage() { std::cerr << "Usage: " << whoami << " infile outprefix" << std::endl; exit(2); } int main(int argc, char* argv[]) { whoami = QUtil::getWhoami(argv[0]); // For libtool's sake.... if (strncmp(whoami, "lt-", 3) == 0) { whoami += 3; } // For test suite if ((argc > 1) && (strcmp(argv[1], " --static-id") == 0)) { static_id = true; --argc; ++argv; } if (argc != 3) { usage(); } try { process(whoami, argv[1], argv[2]); } catch (std::exception e) { std::cerr << whoami << ": exception: " << e.what() << std::endl; return 2; } return 0; } qpdf-8.0.2/examples/pdf-bookmarks.cc0000644000064100006410000001221313247541377015431 0ustar ejbejb#include #include #include #include #include #include static char const* whoami = 0; static enum { st_none, st_numbers, st_lines } style = st_none; static bool show_open = false; static bool show_targets = false; static std::map page_map; void usage() { std::cerr << "Usage: " << whoami << " [options] file.pdf [password]" << std::endl << "Options:" << std::endl << " -numbers give bookmarks outline-style numbers" << std::endl << " -lines draw lines to show bookmark hierarchy" << std::endl << " -show-open indicate whether a bookmark is initially open" << std::endl << " -show-targets show target if possible" << std::endl; exit(2); } void print_lines(std::vector& numbers) { for (unsigned int i = 0; i < numbers.size() - 1; ++i) { if (numbers.at(i)) { std::cout << "| "; } else { std::cout << " "; } } } void generate_page_map(QPDF& qpdf) { std::vector pages = qpdf.getAllPages(); int n = 0; for (std::vector::iterator iter = pages.begin(); iter != pages.end(); ++iter) { QPDFObjectHandle& oh = *iter; page_map[oh.getObjGen()] = ++n; } } void extract_bookmarks(QPDFObjectHandle outlines, std::vector& numbers) { if (outlines.hasKey("/Title")) { // No default so gcc will warn on missing tag switch (style) { case st_none: QTC::TC("examples", "pdf-bookmarks none"); break; case st_numbers: QTC::TC("examples", "pdf-bookmarks numbers"); for (std::vector::iterator iter = numbers.begin(); iter != numbers.end(); ++iter) { std::cout << *iter << "."; } std::cout << " "; break; case st_lines: QTC::TC("examples", "pdf-bookmarks lines"); print_lines(numbers); std::cout << "|" << std::endl; print_lines(numbers); std::cout << "+-+ "; break; } if (show_open) { if (outlines.hasKey("/Count")) { QTC::TC("examples", "pdf-bookmarks has count"); int count = outlines.getKey("/Count").getIntValue(); if (count > 0) { // hierarchy is open at this point QTC::TC("examples", "pdf-bookmarks open"); std::cout << "(v) "; } else { QTC::TC("examples", "pdf-bookmarks closed"); std::cout << "(>) "; } } else { QTC::TC("examples", "pdf-bookmarks no count"); std::cout << "( ) "; } } if (show_targets) { QTC::TC("examples", "pdf-bookmarks targets"); std::string target = "unknown"; // Only explicit destinations supported for now if (outlines.hasKey("/Dest")) { QTC::TC("examples", "pdf-bookmarks dest"); QPDFObjectHandle dest = outlines.getKey("/Dest"); if ((dest.isArray()) && (dest.getArrayNItems() > 0)) { QPDFObjectHandle first = dest.getArrayItem(0); QPDFObjGen og = first.getObjGen(); if (page_map.count(og)) { target = QUtil::int_to_string(page_map[og]); } } std::cout << "[ -> " << target << " ] "; } } std::cout << outlines.getKey("/Title").getUTF8Value() << std::endl; } if (outlines.hasKey("/First")) { numbers.push_back(0); QPDFObjectHandle child = outlines.getKey("/First"); while (1) { ++(numbers.back()); bool has_next = child.hasKey("/Next"); if ((style == st_lines) && (! has_next)) { numbers.back() = 0; } extract_bookmarks(child, numbers); if (has_next) { child = child.getKey("/Next"); } else { break; } } numbers.pop_back(); } } int main(int argc, char* argv[]) { whoami = QUtil::getWhoami(argv[0]); // For libtool's sake.... if (strncmp(whoami, "lt-", 3) == 0) { whoami += 3; } if ((argc == 2) && (strcmp(argv[1], "--version") == 0)) { std::cout << whoami << " version 1.5" << std::endl; exit(0); } int arg; for (arg = 1; arg < argc; ++arg) { if (argv[arg][0] == '-') { if (strcmp(argv[arg], "-numbers") == 0) { style = st_numbers; } else if (strcmp(argv[arg], "-lines") == 0) { style = st_lines; } else if (strcmp(argv[arg], "-show-open") == 0) { show_open = true; } else if (strcmp(argv[arg], "-show-targets") == 0) { show_targets = true; } else { usage(); } } else { break; } } if (arg >= argc) { usage(); } char const* filename = argv[arg++]; char const* password = ""; if (arg < argc) { password = argv[arg++]; } if (arg != argc) { usage(); } try { QPDF qpdf; qpdf.processFile(filename, password); QPDFObjectHandle root = qpdf.getRoot(); if (root.hasKey("/Outlines")) { std::vector numbers; if (show_targets) { generate_page_map(qpdf); } extract_bookmarks(root.getKey("/Outlines"), numbers); } else { std::cout << filename << " has no bookmarks" << std::endl; } } catch (std::exception &e) { std::cerr << whoami << " processing file " << filename << ": " << e.what() << std::endl; exit(2); } return 0; } qpdf-8.0.2/INSTALL0000644000064100006410000002070613247541377011604 0ustar ejbejbThese instructions based on the generic INSTALL file from automake 1.10. However, qpdf does not use automake, so not all of that file applies. Basic Installation ================== Briefly, the shell commands `./configure; make; make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. Running `configure' might take a while. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c99 CFLAGS=-g LIBS=-lposix Installation Names ================== By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PREFIX'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option `--exec-prefix=PREFIX' to `configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. You can also define the variable DESTDIR when you run make install to install the package in a separate subdirectory. This is useful for packaging. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to an Autoconf bug. Until the bug is fixed you can use this workaround: CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of the options to `configure', and exit. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. qpdf-8.0.2/include/0000755000064100006410000000000013247541377012171 5ustar ejbejbqpdf-8.0.2/include/qpdf/0000755000064100006410000000000013247541377013123 5ustar ejbejbqpdf-8.0.2/include/qpdf/Constants.h0000644000064100006410000000616313247541377015256 0ustar ejbejb/* Copyright (c) 2005-2018 Jay Berkenbilt * * This file is part of qpdf. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Versions of qpdf prior to version 7 were released under the terms * of version 2.0 of the Artistic License. At your option, you may * continue to consider qpdf to be licensed under those terms. Please * see the manual for additional information. */ #ifndef __QPDFCONSTANTS_H__ #define __QPDFCONSTANTS_H__ /* Keep this file 'C' compatible so it can be used from the C and C++ * interfaces. */ /* Error Codes */ enum qpdf_error_code_e { qpdf_e_success = 0, qpdf_e_internal, /* logic/programming error -- indicates bug */ qpdf_e_system, /* I/O error, memory error, etc. */ qpdf_e_unsupported, /* PDF feature not (yet) supported by qpdf */ qpdf_e_password, /* incorrect password for encrypted file */ qpdf_e_damaged_pdf, /* syntax errors or other damage in PDF */ qpdf_e_pages, /* erroneous or unsupported pages structure */ }; /* Write Parameters. See QPDFWriter.hh for details. */ enum qpdf_object_stream_e { qpdf_o_disable = 0, /* disable object streams */ qpdf_o_preserve, /* preserve object streams */ qpdf_o_generate /* generate object streams */ }; enum qpdf_stream_data_e { qpdf_s_uncompress = 0, /* uncompress stream data */ qpdf_s_preserve, /* preserve stream data compression */ qpdf_s_compress /* compress stream data */ }; /* Stream data flags */ /* See pipeStreamData in QPDFObjectHandle.hh for details on these flags. */ enum qpdf_stream_encode_flags_e { qpdf_ef_compress = 1 << 0, /* compress uncompressed streams */ qpdf_ef_normalize = 1 << 1, /* normalize content stream */ }; enum qpdf_stream_decode_level_e { /* These must be in order from less to more decoding. */ qpdf_dl_none = 0, /* preserve all stream filters */ qpdf_dl_generalized, /* decode general-purpose filters */ qpdf_dl_specialized, /* also decode other non-lossy filters */ qpdf_dl_all /* also decode loss filters */ }; /* R3 Encryption Parameters */ enum qpdf_r3_print_e { qpdf_r3p_full = 0, /* allow all printing */ qpdf_r3p_low, /* allow only low-resolution printing */ qpdf_r3p_none /* allow no printing */ }; enum qpdf_r3_modify_e /* Allowed changes: */ { qpdf_r3m_all = 0, /* General editing, comments, forms */ qpdf_r3m_annotate, /* Comments, form field fill-in, and signing */ qpdf_r3m_form, /* form field fill-in and signing */ qpdf_r3m_assembly, /* only document assembly */ qpdf_r3m_none /* no modifications */ }; #endif /* __QPDFCONSTANTS_H__ */ qpdf-8.0.2/include/qpdf/QPDFObjGen.hh0000644000064100006410000000264313247541377015270 0ustar ejbejb// Copyright (c) 2005-2018 Jay Berkenbilt // // This file is part of qpdf. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Versions of qpdf prior to version 7 were released under the terms // of version 2.0 of the Artistic License. At your option, you may // continue to consider qpdf to be licensed under those terms. Please // see the manual for additional information. #ifndef __QPDFOBJGEN_HH__ #define __QPDFOBJGEN_HH__ #include // This class represents an object ID and generation pair. It is // suitable to use as a key in a map or set. class QPDFObjGen { public: QPDF_DLL QPDFObjGen(); QPDF_DLL QPDFObjGen(int obj, int gen); QPDF_DLL bool operator<(QPDFObjGen const&) const; QPDF_DLL bool operator==(QPDFObjGen const&) const; QPDF_DLL int getObj() const; QPDF_DLL int getGen() const; private: int obj; int gen; }; #endif // __QPDFOBJGEN_HH__ qpdf-8.0.2/include/qpdf/QPDF.hh0000644000064100006410000012425413247541377014206 0ustar ejbejb// Copyright (c) 2005-2018 Jay Berkenbilt // // This file is part of qpdf. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Versions of qpdf prior to version 7 were released under the terms // of version 2.0 of the Artistic License. At your option, you may // continue to consider qpdf to be licensed under those terms. Please // see the manual for additional information. #ifndef __QPDF_HH__ #define __QPDF_HH__ #include #include #include #include #include #include #include #include #include #include #include #include #include #include class QPDF_Stream; class BitStream; class BitWriter; class QPDF { public: // Get the current version of the QPDF software QPDF_DLL static std::string const& QPDFVersion(); QPDF_DLL QPDF(); QPDF_DLL ~QPDF(); // Associate a file with a QPDF object and do initial parsing of // the file. PDF objects are not read until they are needed. A // QPDF object may be associated with only one file in its // lifetime. This method must be called before any methods that // potentially ask for information about the PDF file are called. // Prior to calling this, the only methods that are allowed are // those that set parameters. If the input file is not // encrypted,either a null password or an empty password can be // used. If the file is encrypted, either the user password or // the owner password may be supplied. The method // setPasswordIsHexKey may be called prior to calling this method // or any of the other process methods to force the password to be // interpreted as a raw encryption key. See comments on // setPasswordIsHexKey for more information. QPDF_DLL void processFile(char const* filename, char const* password = 0); // Parse a PDF from a stdio FILE*. The FILE must be open in // binary mode and must be seekable. It may be open read only. // This works exactly like processFile except that the PDF file is // read from an already opened FILE*. If close_file is true, the // file will be closed at the end. Otherwise, the caller is // responsible for closing the file. QPDF_DLL void processFile(char const* description, FILE* file, bool close_file, char const* password = 0); // Parse a PDF file loaded into a memory buffer. This works // exactly like processFile except that the PDF file is in memory // instead of on disk. The description appears in any warning or // error message in place of the file name. QPDF_DLL void processMemoryFile(char const* description, char const* buf, size_t length, char const* password = 0); // Parse a PDF file loaded from a custom InputSource. If you have // your own method of retrieving a PDF file, you can subclass // InputSource and use this method. QPDF_DLL void processInputSource(PointerHolder, char const* password = 0); // For certain forensic or investigatory purposes, it may // sometimes be useful to specify the encryption key directly, // even though regular PDF applications do not provide a way to do // this. calling setPasswordIsHexKey(true) before calling any of // the process methods will bypass the normal encryption key // computation or recovery mechanisms and interpret the bytes in // the password as a hex-encoded encryption key. Note that we // hex-encode the key because it may contain null bytes and // therefore can't be represented in a char const*. QPDF_DLL void setPasswordIsHexKey(bool); // Create a QPDF object for an empty PDF. This PDF has no pages // or objects other than a minimal trailer, a document catalog, // and a /Pages tree containing zero pages. Pages and other // objects can be added to the file in the normal way, and the // trailer and document catalog can be mutated. Calling this // method is equivalent to calling processFile on an equivalent // PDF file. See the pdf-create.cc example for a demonstration of // how to use this method to create a PDF file from scratch. QPDF_DLL void emptyPDF(); // Parameter settings // By default, warning messages are issued to std::cerr and output // messages printed by certain check calls are issued to // std::cout. This method allows you to specify alternative // streams for this purpose. Note that no normal QPDF operations // generate output to std::cout, so for applications that just // wish to avoid creating output and don't call any check // functions, calling setSuppressWarnings(true) is sufficient. // Applications that wish to present check or warning information // to users may replace the output and error streams to capture // the output and errors for other use. A null value for either // stream will cause QPDF to use std::cout or std::cerr as // appropriate. QPDF_DLL void setOutputStreams(std::ostream* out_stream, std::ostream* err_stream); // If true, ignore any cross-reference streams in a hybrid file // (one that contains both cross-reference streams and // cross-reference tables). This can be useful for testing to // ensure that a hybrid file would work with an older reader. QPDF_DLL void setIgnoreXRefStreams(bool); // By default, any warnings are issued to std::cerr or the error // stream specified in a call to setOutputStreams as they are // encountered. If this is called with a true value, reporting of // warnings is suppressed. You may still retrieve warnings by // calling getWarnings. QPDF_DLL void setSuppressWarnings(bool); // By default, QPDF will try to recover if it finds certain types // of errors in PDF files. If turned off, it will throw an // exception on the first such problem it finds without attempting // recovery. QPDF_DLL void setAttemptRecovery(bool); // Other public methods // Return the list of warnings that have been issued so far and // clear the list. This method may be called even if processFile // throws an exception. Note that if setSuppressWarnings was not // called or was called with a false value, any warnings retrieved // here will have already been output. QPDF_DLL std::vector getWarnings(); QPDF_DLL std::string getFilename() const; QPDF_DLL std::string getPDFVersion() const; QPDF_DLL int getExtensionLevel(); QPDF_DLL QPDFObjectHandle getTrailer(); QPDF_DLL QPDFObjectHandle getRoot(); // Install this object handle as an indirect object and return an // indirect reference to it. QPDF_DLL QPDFObjectHandle makeIndirectObject(QPDFObjectHandle); // Retrieve an object by object ID and generation. Returns an // indirect reference to it. QPDF_DLL QPDFObjectHandle getObjectByObjGen(QPDFObjGen const&); QPDF_DLL QPDFObjectHandle getObjectByID(int objid, int generation); // Replace the object with the given object id with the given // object. The object handle passed in must be a direct object, // though it may contain references to other indirect objects // within it. Calling this method can have somewhat confusing // results. Any existing QPDFObjectHandle instances that point to // the old object and that have been resolved (which happens // automatically if you access them in any way) will continue to // point to the old object even though that object will no longer // be associated with the PDF file. Note that replacing an object // with QPDFObjectHandle::newNull() effectively removes the object // from the file since a non-existent object is treated as a null // object. To replace a reserved object, call replaceReserved // instead. QPDF_DLL void replaceObject(QPDFObjGen const& og, QPDFObjectHandle); QPDF_DLL void replaceObject(int objid, int generation, QPDFObjectHandle); // Swap two objects given by ID. Calling this method can have // confusing results. After swapping two objects, existing // QPDFObjectHandle instances that reference them will still // reference the same underlying objects, at which point those // existing QPDFObjectHandle instances will have incorrect // information about the object and generation number of those // objects. While this does not necessarily cause a problem, it // can certainly be confusing. It is therefore recommended that // you replace any existing QPDFObjectHandle instances that point // to the swapped objects with new ones, possibly by calling // getObjectByID. QPDF_DLL void swapObjects(QPDFObjGen const& og1, QPDFObjGen const& og2); QPDF_DLL void swapObjects(int objid1, int generation1, int objid2, int generation2); // Replace a reserved object. This is a wrapper around // replaceObject but it guarantees that the underlying object is a // reserved object. After this call, reserved will be a reference // to replacement. QPDF_DLL void replaceReserved(QPDFObjectHandle reserved, QPDFObjectHandle replacement); // Copy an object from another QPDF to this one. Please note that // the QPDF object containing the object being copied must stick // around because it is still used to retrieve any stream data // referenced by the copied objects. // // The return value is an indirect reference to the copied object // in this file. This method is intended to be used to copy // non-page objects and will not copy page objects. To copy page // objects, pass the foreign page object directly to addPage (or // addPageAt). If you copy objects that contain references to // pages, you should copy the pages first using addPage(At). // Otherwise references to the pages that have not been copied // will be replaced with nulls. // When copying objects with this method, object structure will be // preserved, so all indirectly referenced indirect objects will // be copied as well. This includes any circular references that // may exist. The QPDF object keeps a record of what has already // been copied, so shared objects will not be copied multiple // times. This also means that if you mutate an object that has // already been copied and try to copy it again, it won't work // since the modified object will not be recopied. Therefore, you // should do all mutation on the original file that you are going // to do before you start copying its objects to a new file. QPDF_DLL QPDFObjectHandle copyForeignObject(QPDFObjectHandle foreign); // Encryption support enum encryption_method_e { e_none, e_unknown, e_rc4, e_aes, e_aesv3 }; class EncryptionData { public: // This class holds data read from the encryption dictionary. EncryptionData(int V, int R, int Length_bytes, int P, std::string const& O, std::string const& U, std::string const& OE, std::string const& UE, std::string const& Perms, std::string const& id1, bool encrypt_metadata) : V(V), R(R), Length_bytes(Length_bytes), P(P), O(O), U(U), OE(OE), UE(UE), Perms(Perms), id1(id1), encrypt_metadata(encrypt_metadata) { } int getV() const; int getR() const; int getLengthBytes() const; int getP() const; std::string const& getO() const; std::string const& getU() const; std::string const& getOE() const; std::string const& getUE() const; std::string const& getPerms() const; std::string const& getId1() const; bool getEncryptMetadata() const; void setO(std::string const&); void setU(std::string const&); void setV5EncryptionParameters(std::string const& O, std::string const& OE, std::string const& U, std::string const& UE, std::string const& Perms); private: EncryptionData(EncryptionData const&); EncryptionData& operator=(EncryptionData const&); int V; int R; int Length_bytes; int P; std::string O; std::string U; std::string OE; std::string UE; std::string Perms; std::string id1; bool encrypt_metadata; }; QPDF_DLL bool isEncrypted() const; QPDF_DLL bool isEncrypted(int& R, int& P); QPDF_DLL bool isEncrypted(int& R, int& P, int& V, encryption_method_e& stream_method, encryption_method_e& string_method, encryption_method_e& file_method); // Encryption permissions -- not enforced by QPDF QPDF_DLL bool allowAccessibility(); QPDF_DLL bool allowExtractAll(); QPDF_DLL bool allowPrintLowRes(); QPDF_DLL bool allowPrintHighRes(); QPDF_DLL bool allowModifyAssembly(); QPDF_DLL bool allowModifyForm(); QPDF_DLL bool allowModifyAnnotation(); QPDF_DLL bool allowModifyOther(); QPDF_DLL bool allowModifyAll(); // Helper function to trim padding from user password. Calling // trim_user_password on the result of getPaddedUserPassword gives // getTrimmedUserPassword's result. QPDF_DLL static void trim_user_password(std::string& user_password); QPDF_DLL static std::string compute_data_key( std::string const& encryption_key, int objid, int generation, bool use_aes, int encryption_V, int encryption_R); QPDF_DLL static std::string compute_encryption_key( std::string const& password, EncryptionData const& data); QPDF_DLL static void compute_encryption_O_U( char const* user_password, char const* owner_password, int V, int R, int key_len, int P, bool encrypt_metadata, std::string const& id1, std::string& O, std::string& U); QPDF_DLL static void compute_encryption_parameters_V5( char const* user_password, char const* owner_password, int V, int R, int key_len, int P, bool encrypt_metadata, std::string const& id1, std::string& encryption_key, std::string& O, std::string& U, std::string& OE, std::string& UE, std::string& Perms); // Return the full user password as stored in the PDF file. For // files encrypted with 40-bit or 128-bit keys, the user password // can be recovered when the file is opened using the owner // password. This is not possible with newer encryption formats. // If you are attempting to recover the user password in a // user-presentable form, call getTrimmedUserPassword() instead. QPDF_DLL std::string const& getPaddedUserPassword() const; // Return human-readable form of user password subject to same // limitations as getPaddedUserPassword(). QPDF_DLL std::string getTrimmedUserPassword() const; // Return the previously computed or retrieved encryption key for // this file QPDF_DLL std::string getEncryptionKey() const; // Linearization support // Returns true iff the file starts with a linearization parameter // dictionary. Does no additional validation. QPDF_DLL bool isLinearized(); // Performs various sanity checks on a linearized file. Return // true if no errors or warnings. Otherwise, return false and // output errors and warnings to std::cout or the output stream // specified in a call to setOutputStreams. QPDF_DLL bool checkLinearization(); // Calls checkLinearization() and, if possible, prints normalized // contents of some of the hints tables to std::cout or the output // stream specified in a call to setOutputStreams. Normalization // includes adding min values to delta values and adjusting // offsets based on the location and size of the primary hint // stream. QPDF_DLL void showLinearizationData(); // Shows the contents of the cross-reference table QPDF_DLL void showXRefTable(); // Returns a list of indirect objects for every object in the xref // table. Useful for discovering objects that are not otherwise // referenced. QPDF_DLL std::vector getAllObjects(); // Optimization support -- see doc/optimization. Implemented in // QPDF_optimization.cc // The object_stream_data map maps from a "compressed" object to // the object stream that contains it. This enables optimize to // populate the object <-> user maps with only uncompressed // objects. If allow_changes is false, an exception will be // thrown if any changes are made during the optimization process. // This is available so that the test suite can make sure that a // linearized file is already optimized. When called in this way, // optimize() still populates the object <-> user maps QPDF_DLL void optimize(std::map const& object_stream_data, bool allow_changes = true); // Convenience routines for common functions. See also // QPDFObjectHandle.hh for additional convenience routines. // Page handling API // Traverse page tree return all /Page objects. Note that calls // to page manipulation APIs will change the internal vector that // this routine returns a pointer to. If you don't want that, // assign this to a regular vector rather than a const reference. QPDF_DLL std::vector const& getAllPages(); // This method synchronizes QPDF's cache of the page structure // with the actual /Pages tree. If you restrict changes to the // /Pages tree, including addition, removal, or replacement of // pages or changes to any /Pages objects, to calls to these page // handling APIs, you never need to call this method. If you // modify /Pages structures directly, you must call this method // afterwards. This method updates the internal list of pages, so // after calling this method, any previous references returned by // getAllPages() will be valid again. It also resets any state // about having pushed inherited attributes in /Pages objects down // to the pages, so if you add any inheritable attributes to a // /Pages object, you should also call this method. QPDF_DLL void updateAllPagesCache(); // The PDF /Pages tree allows inherited values. Working with // the pages of a pdf is much easier when the inheritance is // resolved by explicitly setting the values in each /Page. QPDF_DLL void pushInheritedAttributesToPage(); // Add new page at the beginning or the end of the current pdf. // The newpage parameter may be either a direct object, an // indirect object from this QPDF, or an indirect object from // another QPDF. If it is a direct object, it will be made // indirect. If it is an indirect object from another QPDF, this // method will call pushInheritedAttributesToPage on the other // file and then copy the page to this QPDF using the same // underlying code as copyForeignObject. QPDF_DLL void addPage(QPDFObjectHandle newpage, bool first); // Add new page before or after refpage. See comments for addPage // for details about what newpage should be. QPDF_DLL void addPageAt(QPDFObjectHandle newpage, bool before, QPDFObjectHandle refpage); // Remove page from the pdf. QPDF_DLL void removePage(QPDFObjectHandle page); // Writer class is restricted to QPDFWriter so that only it can // call certain methods. class Writer { friend class QPDFWriter; private: static void getLinearizedParts( QPDF& qpdf, std::map const& object_stream_data, std::vector& part4, std::vector& part6, std::vector& part7, std::vector& part8, std::vector& part9) { qpdf.getLinearizedParts(object_stream_data, part4, part6, part7, part8, part9); } static void generateHintStream( QPDF& qpdf, std::map const& xref, std::map const& lengths, std::map const& obj_renumber, PointerHolder& hint_stream, int& S, int& O) { return qpdf.generateHintStream(xref, lengths, obj_renumber, hint_stream, S, O); } static void getObjectStreamData(QPDF& qpdf, std::map& omap) { qpdf.getObjectStreamData(omap); } static std::vector getCompressibleObjGens(QPDF& qpdf) { return qpdf.getCompressibleObjGens(); } }; // Resolver class is restricted to QPDFObjectHandle so that only // it can resolve indirect references. class Resolver { friend class QPDFObjectHandle; private: static PointerHolder resolve( QPDF* qpdf, int objid, int generation) { return qpdf->resolve(objid, generation); } }; friend class Resolver; // Warner class allows QPDFObjectHandle to create warnings class Warner { friend class QPDFObjectHandle; friend class QPDF_Stream; private: static void warn(QPDF* qpdf, QPDFExc const& e) { qpdf->warn(e); } }; friend class Warner; // Pipe class is restricted to QPDF_Stream class Pipe { friend class QPDF_Stream; private: static bool pipeStreamData(QPDF* qpdf, int objid, int generation, qpdf_offset_t offset, size_t length, QPDFObjectHandle dict, Pipeline* pipeline, bool suppress_warnings, bool will_retry) { return qpdf->pipeStreamData( objid, generation, offset, length, dict, pipeline, suppress_warnings, will_retry); } }; friend class Pipe; private: static std::string qpdf_version; class ObjCache { public: ObjCache() : end_before_space(0), end_after_space(0) { } ObjCache(PointerHolder object, qpdf_offset_t end_before_space, qpdf_offset_t end_after_space) : object(object), end_before_space(end_before_space), end_after_space(end_after_space) { } PointerHolder object; qpdf_offset_t end_before_space; qpdf_offset_t end_after_space; }; class ObjCopier { public: std::map object_map; std::vector to_copy; std::set visiting; }; class CopiedStreamDataProvider: public QPDFObjectHandle::StreamDataProvider { public: virtual ~CopiedStreamDataProvider() { } virtual void provideStreamData(int objid, int generation, Pipeline* pipeline); void registerForeignStream(QPDFObjGen const& local_og, QPDFObjectHandle foreign_stream); private: std::map foreign_streams; }; class StringDecrypter: public QPDFObjectHandle::StringDecrypter { friend class QPDF; public: StringDecrypter(QPDF* qpdf, int objid, int gen); virtual ~StringDecrypter() { } virtual void decryptString(std::string& val); private: QPDF* qpdf; int objid; int gen; }; class ResolveRecorder { public: ResolveRecorder(QPDF* qpdf, QPDFObjGen const& og) : qpdf(qpdf), og(og) { qpdf->m->resolving.insert(og); } virtual ~ResolveRecorder() { this->qpdf->m->resolving.erase(og); } private: QPDF* qpdf; QPDFObjGen og; }; friend class ResolveRecorder; void parse(char const* password); void warn(QPDFExc const& e); void setTrailer(QPDFObjectHandle obj); void read_xref(qpdf_offset_t offset); void reconstruct_xref(QPDFExc& e); bool parse_xrefFirst(std::string const& line, int& obj, int& num, int& bytes); bool parse_xrefEntry(std::string const& line, qpdf_offset_t& f1, int& f2, char& type); qpdf_offset_t read_xrefTable(qpdf_offset_t offset); qpdf_offset_t read_xrefStream(qpdf_offset_t offset); qpdf_offset_t processXRefStream( qpdf_offset_t offset, QPDFObjectHandle& xref_stream); void insertXrefEntry(int obj, int f0, qpdf_offset_t f1, int f2, bool overwrite = false); void setLastObjectDescription(std::string const& description, int objid, int generation); QPDFObjectHandle readObject( PointerHolder, std::string const& description, int objid, int generation, bool in_object_stream); size_t recoverStreamLength( PointerHolder input, int objid, int generation, qpdf_offset_t stream_offset); QPDFTokenizer::Token readToken(PointerHolder, size_t max_len = 0); QPDFObjectHandle readObjectAtOffset( bool attempt_recovery, qpdf_offset_t offset, std::string const& description, int exp_objid, int exp_generation, int& act_objid, int& act_generation); PointerHolder resolve(int objid, int generation); void resolveObjectsInStream(int obj_stream_number); void findAttachmentStreams(); // Calls finish() on the pipeline when done but does not delete it bool pipeStreamData(int objid, int generation, qpdf_offset_t offset, size_t length, QPDFObjectHandle dict, Pipeline* pipeline, bool suppress_warnings, bool will_retry); // For QPDFWriter: // Get lists of all objects in order according to the part of a // linearized file that they belong to. void getLinearizedParts( std::map const& object_stream_data, std::vector& part4, std::vector& part6, std::vector& part7, std::vector& part8, std::vector& part9); void generateHintStream(std::map const& xref, std::map const& lengths, std::map const& obj_renumber, PointerHolder& hint_stream, int& S, int& O); // Map object to object stream that contains it void getObjectStreamData(std::map&); // Get a list of objects that would be permitted in an object // stream. std::vector getCompressibleObjGens(); // methods to support page handling void getAllPagesInternal(QPDFObjectHandle cur_pages, std::vector& result); void getAllPagesInternal2(QPDFObjectHandle cur_pages, std::vector& result, std::set& visited); void insertPage(QPDFObjectHandle newpage, int pos); int findPage(QPDFObjGen const& og); int findPage(QPDFObjectHandle& page); void flattenPagesTree(); void insertPageobjToPage(QPDFObjectHandle const& obj, int pos, bool check_duplicate); // methods to support encryption -- implemented in QPDF_encryption.cc encryption_method_e interpretCF(QPDFObjectHandle); void initializeEncryption(); std::string getKeyForObject(int objid, int generation, bool use_aes); void decryptString(std::string&, int objid, int generation); static std::string compute_encryption_key_from_password( std::string const& password, EncryptionData const& data); static std::string recover_encryption_key_with_password( std::string const& password, EncryptionData const& data); static std::string recover_encryption_key_with_password( std::string const& password, EncryptionData const& data, bool& perms_valid); void decryptStream( Pipeline*& pipeline, int objid, int generation, QPDFObjectHandle& stream_dict, std::vector >& heap); // Methods to support object copying QPDFObjectHandle copyForeignObject( QPDFObjectHandle foreign, bool allow_page); void reserveObjects(QPDFObjectHandle foreign, ObjCopier& obj_copier, bool top); QPDFObjectHandle replaceForeignIndirectObjects( QPDFObjectHandle foreign, ObjCopier& obj_copier, bool top); // Linearization Hint table structures. // Naming conventions: // HSomething is the Something Hint Table or table header // HSomethingEntry is an entry in the Something table // delta_something + min_something = something // nbits_something = number of bits required for something // something_offset is the pre-adjusted offset in the file. If >= // H0_offset, H0_length must be added to get an actual file // offset. // PDF 1.4: Table F.4 struct HPageOffsetEntry { HPageOffsetEntry() : delta_nobjects(0), delta_page_length(0), nshared_objects(0), delta_content_offset(0), delta_content_length(0) { } int delta_nobjects; // 1 qpdf_offset_t delta_page_length; // 2 int nshared_objects; // 3 // vectors' sizes = nshared_objects std::vector shared_identifiers; // 4 std::vector shared_numerators; // 5 qpdf_offset_t delta_content_offset; // 6 qpdf_offset_t delta_content_length; // 7 }; // PDF 1.4: Table F.3 struct HPageOffset { HPageOffset() : min_nobjects(0), first_page_offset(0), nbits_delta_nobjects(0), min_page_length(0), nbits_delta_page_length(0), min_content_offset(0), nbits_delta_content_offset(0), min_content_length(0), nbits_delta_content_length(0), nbits_nshared_objects(0), nbits_shared_identifier(0), nbits_shared_numerator(0), shared_denominator(0) { } int min_nobjects; // 1 qpdf_offset_t first_page_offset; // 2 int nbits_delta_nobjects; // 3 int min_page_length; // 4 int nbits_delta_page_length; // 5 int min_content_offset; // 6 int nbits_delta_content_offset; // 7 int min_content_length; // 8 int nbits_delta_content_length; // 9 int nbits_nshared_objects; // 10 int nbits_shared_identifier; // 11 int nbits_shared_numerator; // 12 int shared_denominator; // 13 // vector size is npages std::vector entries; }; // PDF 1.4: Table F.6 struct HSharedObjectEntry { HSharedObjectEntry() : delta_group_length(0), signature_present(0), nobjects_minus_one(0) { } // Item 3 is a 128-bit signature (unsupported by Acrobat) int delta_group_length; // 1 int signature_present; // 2 -- always 0 int nobjects_minus_one; // 4 -- always 0 }; // PDF 1.4: Table F.5 struct HSharedObject { HSharedObject() : first_shared_obj(0), first_shared_offset(0), nshared_first_page(0), nshared_total(0), nbits_nobjects(0), min_group_length(0), nbits_delta_group_length(0) { } int first_shared_obj; // 1 qpdf_offset_t first_shared_offset; // 2 int nshared_first_page; // 3 int nshared_total; // 4 int nbits_nobjects; // 5 int min_group_length; // 6 int nbits_delta_group_length; // 7 // vector size is nshared_total std::vector entries; }; // PDF 1.4: Table F.9 struct HGeneric { HGeneric() : first_object(0), first_object_offset(0), nobjects(0), group_length(0) { } int first_object; // 1 qpdf_offset_t first_object_offset; // 2 int nobjects; // 3 int group_length; // 4 }; // Other linearization data structures // Initialized from Linearization Parameter dictionary struct LinParameters { LinParameters() : file_size(0), first_page_object(0), first_page_end(0), npages(0), xref_zero_offset(0), first_page(0), H_offset(0), H_length(0) { } qpdf_offset_t file_size; // /L int first_page_object; // /O qpdf_offset_t first_page_end; // /E int npages; // /N qpdf_offset_t xref_zero_offset; // /T int first_page; // /P qpdf_offset_t H_offset; // offset of primary hint stream qpdf_offset_t H_length; // length of primary hint stream }; // Computed hint table value data structures. These tables // contain the computed values on which the hint table values are // based. They exclude things like number of bits and store // actual values instead of mins and deltas. File offsets are // also absolute rather than being offset by the size of the // primary hint table. We populate the hint table structures from // these during writing and compare the hint table values with // these during validation. We ignore some values for various // reasons described in the code. Those values are omitted from // these structures. Note also that object numbers are object // numbers from the input file, not the output file. // Naming convention: CHSomething is analogous to HSomething // above. "CH" is computed hint. struct CHPageOffsetEntry { CHPageOffsetEntry() : nobjects(0), nshared_objects(0) { } int nobjects; int nshared_objects; // vectors' sizes = nshared_objects std::vector shared_identifiers; }; struct CHPageOffset { // vector size is npages std::vector entries; }; struct CHSharedObjectEntry { CHSharedObjectEntry(int object) : object(object) { } int object; }; // PDF 1.4: Table F.5 struct CHSharedObject { CHSharedObject() : first_shared_obj(0), nshared_first_page(0), nshared_total(0) { } int first_shared_obj; int nshared_first_page; int nshared_total; // vector size is nshared_total std::vector entries; }; // No need for CHGeneric -- HGeneric is fine as is. // Data structures to support optimization -- implemented in // QPDF_optimization.cc class ObjUser { public: enum user_e { ou_bad, ou_page, ou_thumb, ou_trailer_key, ou_root_key, ou_root }; // type is set to ou_bad ObjUser(); // type must be ou_root ObjUser(user_e type); // type must be one of ou_page or ou_thumb ObjUser(user_e type, int pageno); // type must be one of ou_trailer_key or ou_root_key ObjUser(user_e type, std::string const& key); bool operator<(ObjUser const&) const; user_e ou_type; int pageno; // if ou_page; std::string key; // if ou_trailer_key or ou_root_key }; class PatternFinder: public InputSource::Finder { public: PatternFinder(QPDF& qpdf, bool (QPDF::*checker)()) : qpdf(qpdf), checker(checker) { } virtual ~PatternFinder() { } virtual bool check() { return (this->qpdf.*checker)(); } private: QPDF& qpdf; bool (QPDF::*checker)(); }; // Methods to support pattern finding bool findHeader(); bool findStartxref(); bool findEndstream(); // methods to support linearization checking -- implemented in // QPDF_linearization.cc void readLinearizationData(); bool checkLinearizationInternal(); void dumpLinearizationDataInternal(); QPDFObjectHandle readHintStream( Pipeline&, qpdf_offset_t offset, size_t length); void readHPageOffset(BitStream); void readHSharedObject(BitStream); void readHGeneric(BitStream, HGeneric&); qpdf_offset_t maxEnd(ObjUser const& ou); qpdf_offset_t getLinearizationOffset(QPDFObjGen const&); QPDFObjectHandle getUncompressedObject( QPDFObjectHandle&, std::map const& object_stream_data); int lengthNextN(int first_object, int n, std::list& errors); void checkHPageOffset(std::list& errors, std::list& warnings, std::vector const& pages, std::map& idx_to_obj); void checkHSharedObject(std::list& warnings, std::list& errors, std::vector const& pages, std::map& idx_to_obj); void checkHOutlines(std::list& warnings); void dumpHPageOffset(); void dumpHSharedObject(); void dumpHGeneric(HGeneric&); int adjusted_offset(int offset); QPDFObjectHandle objGenToIndirect(QPDFObjGen const&); void calculateLinearizationData( std::map const& object_stream_data); void pushOutlinesToPart( std::vector& part, std::set& lc_outlines, std::map const& object_stream_data); int outputLengthNextN( int in_object, int n, std::map const& lengths, std::map const& obj_renumber); void calculateHPageOffset( std::map const& xref, std::map const& lengths, std::map const& obj_renumber); void calculateHSharedObject( std::map const& xref, std::map const& lengths, std::map const& obj_renumber); void calculateHOutline( std::map const& xref, std::map const& lengths, std::map const& obj_renumber); void writeHPageOffset(BitWriter&); void writeHSharedObject(BitWriter&); void writeHGeneric(BitWriter&, HGeneric&); // Methods to support optimization void pushInheritedAttributesToPage(bool allow_changes, bool warn_skipped_keys); void pushInheritedAttributesToPageInternal( QPDFObjectHandle, std::map >&, std::vector& all_pages, bool allow_changes, bool warn_skipped_keys); void pushInheritedAttributesToPageInternal2( QPDFObjectHandle, std::map >&, std::vector& all_pages, bool allow_changes, bool warn_skipped_keys, std::set& visited); void updateObjectMaps(ObjUser const& ou, QPDFObjectHandle oh); void updateObjectMapsInternal(ObjUser const& ou, QPDFObjectHandle oh, std::set& visited, bool top); void filterCompressedObjects(std::map const& object_stream_data); class Members { friend class QPDF; public: ~Members(); private: Members(); Members(Members const&); QPDFTokenizer tokenizer; PointerHolder file; std::string last_object_description; bool provided_password_is_hex_key; bool encrypted; bool encryption_initialized; bool ignore_xref_streams; bool suppress_warnings; std::ostream* out_stream; std::ostream* err_stream; bool attempt_recovery; int encryption_V; int encryption_R; bool encrypt_metadata; std::map crypt_filters; encryption_method_e cf_stream; encryption_method_e cf_string; encryption_method_e cf_file; std::string provided_password; std::string user_password; std::string encryption_key; std::string cached_object_encryption_key; int cached_key_objid; int cached_key_generation; std::string pdf_version; std::map xref_table; std::set deleted_objects; std::map obj_cache; std::set resolving; QPDFObjectHandle trailer; std::vector all_pages; std::map pageobj_to_pages_pos; bool pushed_inherited_attributes_to_pages; std::vector warnings; std::map object_copiers; PointerHolder copied_streams; // copied_stream_data_provider is owned by copied_streams CopiedStreamDataProvider* copied_stream_data_provider; std::set attachment_streams; bool reconstructed_xref; // Linearization data qpdf_offset_t first_xref_item_offset; // actual value from file bool uncompressed_after_compressed; // Linearization parameter dictionary and hint table data: may be // read from file or computed prior to writing a linearized file QPDFObjectHandle lindict; LinParameters linp; HPageOffset page_offset_hints; HSharedObject shared_object_hints; HGeneric outline_hints; // Computed linearization data: used to populate above tables // during writing and to compare with them during validation. // c_ means computed. LinParameters c_linp; CHPageOffset c_page_offset_data; CHSharedObject c_shared_object_data; HGeneric c_outline_data; // Object ordering data for linearized files: initialized by // calculateLinearizationData(). Part numbers refer to the PDF // 1.4 specification. std::vector part4; std::vector part6; std::vector part7; std::vector part8; std::vector part9; // Optimization data std::map > obj_user_to_objects; std::map > object_to_obj_users; }; // Keep all member variables inside the Members object, which we // dynamically allocate. This makes it possible to add new private // members without breaking binary compatibility. PointerHolder m; }; #endif // __QPDF_HH__ qpdf-8.0.2/include/qpdf/Types.h0000644000064100006410000000230413247541377014377 0ustar ejbejb/* Copyright (c) 2005-2018 Jay Berkenbilt * * This file is part of qpdf. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Versions of qpdf prior to version 7 were released under the terms * of version 2.0 of the Artistic License. At your option, you may * continue to consider qpdf to be licensed under those terms. Please * see the manual for additional information. */ #ifndef __QPDFTYPES_H__ #define __QPDFTYPES_H__ /* Provide an offset type that should be as big as off_t on just about * any system. If your compiler doesn't support C99 (or at least the * "long long" type), then you may have to modify this definition. */ typedef long long int qpdf_offset_t; #endif /* __QPDFTYPES_H__ */ qpdf-8.0.2/include/qpdf/Pl_StdioFile.hh0000644000064100006410000000300513247541377015757 0ustar ejbejb// Copyright (c) 2005-2018 Jay Berkenbilt // // This file is part of qpdf. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Versions of qpdf prior to version 7 were released under the terms // of version 2.0 of the Artistic License. At your option, you may // continue to consider qpdf to be licensed under those terms. Please // see the manual for additional information. // End-of-line pipeline that simply writes its data to a stdio FILE* object. #ifndef __PL_STDIOFILE_HH__ #define __PL_STDIOFILE_HH__ #include #include // // This pipeline is reusable. // class Pl_StdioFile: public Pipeline { public: // f is externally maintained; this class just writes to and // flushes it. It does not close it. QPDF_DLL Pl_StdioFile(char const* identifier, FILE* f); QPDF_DLL virtual ~Pl_StdioFile(); QPDF_DLL virtual void write(unsigned char* buf, size_t len); QPDF_DLL virtual void finish(); private: FILE* file; }; #endif // __PL_STDIOFILE_HH__ qpdf-8.0.2/include/qpdf/FileInputSource.hh0000644000064100006410000000356113247541377016531 0ustar ejbejb// Copyright (c) 2005-2018 Jay Berkenbilt // // This file is part of qpdf. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Versions of qpdf prior to version 7 were released under the terms // of version 2.0 of the Artistic License. At your option, you may // continue to consider qpdf to be licensed under those terms. Please // see the manual for additional information. #ifndef __QPDF_FILEINPUTSOURCE_HH__ #define __QPDF_FILEINPUTSOURCE_HH__ #include class FileInputSource: public InputSource { public: QPDF_DLL FileInputSource(); QPDF_DLL void setFilename(char const* filename); QPDF_DLL void setFile(char const* description, FILE* filep, bool close_file); QPDF_DLL virtual ~FileInputSource(); QPDF_DLL virtual qpdf_offset_t findAndSkipNextEOL(); QPDF_DLL virtual std::string const& getName() const; QPDF_DLL virtual qpdf_offset_t tell(); QPDF_DLL virtual void seek(qpdf_offset_t offset, int whence); QPDF_DLL virtual void rewind(); QPDF_DLL virtual size_t read(char* buffer, size_t length); QPDF_DLL virtual void unreadCh(char ch); private: FileInputSource(FileInputSource const&); FileInputSource& operator=(FileInputSource const&); void destroy(); bool close_file; std::string filename; FILE* file; }; #endif // __QPDF_FILEINPUTSOURCE_HH__ qpdf-8.0.2/include/qpdf/Pl_Buffer.hh0000644000064100006410000000420013247541377015304 0ustar ejbejb// Copyright (c) 2005-2018 Jay Berkenbilt // // This file is part of qpdf. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Versions of qpdf prior to version 7 were released under the terms // of version 2.0 of the Artistic License. At your option, you may // continue to consider qpdf to be licensed under those terms. Please // see the manual for additional information. #ifndef __PL_BUFFER_HH__ #define __PL_BUFFER_HH__ // This pipeline accumulates the data passed to it into a memory // buffer. Each subsequent use of this buffer appends to the data // accumulated so far. getBuffer() may be called only after calling // finish() and before calling any subsequent write(). At that point, // a dynamically allocated Buffer object is returned and the internal // buffer is reset. The caller is responsible for deleting the // returned Buffer. // // For this pipeline, "next" may be null. If a next pointer is // provided, this pipeline will also pass the data through to it. #include #include #include #include class Pl_Buffer: public Pipeline { public: QPDF_DLL Pl_Buffer(char const* identifier, Pipeline* next = 0); QPDF_DLL virtual ~Pl_Buffer(); QPDF_DLL virtual void write(unsigned char*, size_t); QPDF_DLL virtual void finish(); // Each call to getBuffer() resets this object -- see notes above. // The caller is responsible for deleting the returned Buffer // object. QPDF_DLL Buffer* getBuffer(); private: bool ready; std::list > data; size_t total_size; }; #endif // __PL_BUFFER_HH__ qpdf-8.0.2/include/qpdf/PointerHolder.hh0000644000064100006410000001110513247541377016220 0ustar ejbejb// Copyright (c) 2005-2018 Jay Berkenbilt // // This file is part of qpdf. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Versions of qpdf prior to version 7 were released under the terms // of version 2.0 of the Artistic License. At your option, you may // continue to consider qpdf to be licensed under those terms. Please // see the manual for additional information. #ifndef __POINTERHOLDER_HH__ #define __POINTERHOLDER_HH__ // This class is basically boost::shared_pointer but predates that by // several years. // This class expects to be initialized with a dynamically allocated // object pointer. It keeps a reference count and deletes this once // the reference count goes to zero. PointerHolder objects are // explicitly safe for use in STL containers. // It is very important that a client who pulls the pointer out of // this holder does not let the holder go out of scope until it is // finished with the pointer. It is also important that exactly one // instance of this object ever gets initialized with a given pointer. // Otherwise, the pointer will be deleted twice, and before that, some // objects will be left with a pointer to a deleted object. In other // words, the only legitimate way for two PointerHolder objects to // contain the same pointer is for one to be a copy of the other. // Copy and assignment semantics are well-defined and essentially // allow you to use PointerHolder as a means to get pass-by-reference // semantics in a pass-by-value environment without having to worry // about memory management details. // Comparison (== and <) are defined and operate on the internally // stored pointers, not on the data. This makes it possible to store // PointerHolder objects in sorted lists or to find them in STL // containers just as one would be able to store pointers. Comparing // the underlying pointers provides a well-defined, if not // particularly meaningful, ordering. template class PointerHolder { private: class Data { public: Data(T* pointer, bool array) : pointer(pointer), array(array), refcount(0) { } ~Data() { if (array) { delete [] this->pointer; } else { delete this->pointer; } } T* pointer; bool array; int refcount; private: Data(Data const&); Data& operator=(Data const&); }; public: PointerHolder(T* pointer = 0) { this->init(new Data(pointer, false)); } // Special constructor indicating to free memory with delete [] // instead of delete PointerHolder(bool, T* pointer) { this->init(new Data(pointer, true)); } PointerHolder(PointerHolder const& rhs) { this->copy(rhs); } PointerHolder& operator=(PointerHolder const& rhs) { if (this != &rhs) { this->destroy(); this->copy(rhs); } return *this; } ~PointerHolder() { this->destroy(); } bool operator==(PointerHolder const& rhs) const { return this->data->pointer == rhs.data->pointer; } bool operator<(PointerHolder const& rhs) const { return this->data->pointer < rhs.data->pointer; } // NOTE: The pointer returned by getPointer turns into a pumpkin // when the last PointerHolder that contains it disappears. T* getPointer() { return this->data->pointer; } T const* getPointer() const { return this->data->pointer; } int getRefcount() const { return this->data->refcount; } T const& operator*() const { return *this->data->pointer; } T& operator*() { return *this->data->pointer; } T const* operator->() const { return this->data->pointer; } T* operator->() { return this->data->pointer; } private: void init(Data* data) { this->data = data; { ++this->data->refcount; } } void copy(PointerHolder const& rhs) { this->init(rhs.data); } void destroy() { bool gone = false; { if (--this->data->refcount == 0) { gone = true; } } if (gone) { delete this->data; } } Data* data; }; #endif // __POINTERHOLDER_HH__ qpdf-8.0.2/include/qpdf/DLL.h0000644000064100006410000000207413247541377013712 0ustar ejbejb/* Copyright (c) 2005-2018 Jay Berkenbilt * * This file is part of qpdf. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Versions of qpdf prior to version 7 were released under the terms * of version 2.0 of the Artistic License. At your option, you may * continue to consider qpdf to be licensed under those terms. Please * see the manual for additional information. */ #ifndef __QPDF_DLL_HH__ #define __QPDF_DLL_HH__ #if defined(_WIN32) && defined(DLL_EXPORT) # define QPDF_DLL __declspec(dllexport) #else # define QPDF_DLL #endif #endif /* __QPDF_DLL_HH__ */ qpdf-8.0.2/include/qpdf/QPDFObject.hh0000644000064100006410000000600213247541377015323 0ustar ejbejb// Copyright (c) 2005-2018 Jay Berkenbilt // // This file is part of qpdf. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Versions of qpdf prior to version 7 were released under the terms // of version 2.0 of the Artistic License. At your option, you may // continue to consider qpdf to be licensed under those terms. Please // see the manual for additional information. #ifndef __QPDFOBJECT_HH__ #define __QPDFOBJECT_HH__ #include #include #include class QPDF; class QPDFObjectHandle; class QPDFObject { public: QPDFObject(); // Objects derived from QPDFObject are accessible through // QPDFObjectHandle. Each object returns a unique type code that // has one of the values in the list below. As new object types // are added to qpdf, additional items may be added to the list, // so code that switches on these values should take that into // consideration. enum object_type_e { // Object types internal to qpdf ot_uninitialized, ot_reserved, // Object types that can occur in the main document ot_null, ot_boolean, ot_integer, ot_real, ot_string, ot_name, ot_array, ot_dictionary, ot_stream, // Additional object types that can occur in content streams ot_operator, ot_inlineimage, }; virtual ~QPDFObject() {} virtual std::string unparse() = 0; // Return a unique type code for the object virtual object_type_e getTypeCode() const = 0; // Return a string literal that describes the type, useful for // debugging and testing virtual char const* getTypeName() const = 0; // Accessor to give specific access to non-public methods class ObjAccessor { friend class QPDF; friend class QPDFObjectHandle; private: static void releaseResolved(QPDFObject* o) { if (o) { o->releaseResolved(); } } }; friend class ObjAccessor; virtual void setDescription(QPDF*, std::string const&); bool getDescription(QPDF*&, std::string&); bool hasDescription(); protected: virtual void releaseResolved() {} private: QPDFObject(QPDFObject const&); QPDFObject& operator=(QPDFObject const&); class Members { friend class QPDFObject; public: ~Members(); private: Members(); QPDF* owning_qpdf; std::string object_description; }; PointerHolder m; }; #endif // __QPDFOBJECT_HH__ qpdf-8.0.2/include/qpdf/Pl_Count.hh0000644000064100006410000000324413247541377015172 0ustar ejbejb// Copyright (c) 2005-2018 Jay Berkenbilt // // This file is part of qpdf. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Versions of qpdf prior to version 7 were released under the terms // of version 2.0 of the Artistic License. At your option, you may // continue to consider qpdf to be licensed under those terms. Please // see the manual for additional information. #ifndef __PL_COUNT_HH__ #define __PL_COUNT_HH__ // This pipeline is reusable; i.e., it is safe to call write() after // calling finish(). #include #include class Pl_Count: public Pipeline { public: QPDF_DLL Pl_Count(char const* identifier, Pipeline* next); QPDF_DLL virtual ~Pl_Count(); QPDF_DLL virtual void write(unsigned char*, size_t); QPDF_DLL virtual void finish(); // Returns the number of bytes written QPDF_DLL qpdf_offset_t getCount() const; // Returns the last character written, or '\0' if no characters // have been written (in which case getCount() returns 0) QPDF_DLL unsigned char getLastChar() const; private: qpdf_offset_t count; unsigned char last_char; }; #endif // __PL_COUNT_HH__ qpdf-8.0.2/include/qpdf/Pl_QPDFTokenizer.hh0000644000064100006410000000472213247541377016531 0ustar ejbejb// Copyright (c) 2005-2018 Jay Berkenbilt // // This file is part of qpdf. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Versions of qpdf prior to version 7 were released under the terms // of version 2.0 of the Artistic License. At your option, you may // continue to consider qpdf to be licensed under those terms. Please // see the manual for additional information. #ifndef __PL_QPDFTOKENIZER_HH__ #define __PL_QPDFTOKENIZER_HH__ #include #include #include #include // Tokenize the incoming text using QPDFTokenizer and pass the tokens // in turn to a QPDFObjectHandle::TokenFilter object. All bytes of // incoming content will be included in exactly one token and passed // downstream. // This is a very low-level interface for working with token filters. // Most code will want to use QPDFObjectHandle::filterPageContents or // QPDFObjectHandle::addTokenFilter. See QPDFObjectHandle.hh for // details. class Pl_QPDFTokenizer: public Pipeline { public: // Whatever pipeline is provided as "next" will be set as the // pipeline that the token filter writes to. If next is not // provided, any output written by the filter will be discarded. Pl_QPDFTokenizer(char const* identifier, QPDFObjectHandle::TokenFilter* filter, Pipeline* next = 0); virtual ~Pl_QPDFTokenizer(); virtual void write(unsigned char* buf, size_t len); virtual void finish(); private: void processChar(char ch); void checkUnread(); class Members { friend class Pl_QPDFTokenizer; public: ~Members(); private: Members(); Members(Members const&); QPDFObjectHandle::TokenFilter* filter; QPDFTokenizer tokenizer; bool last_char_was_cr; bool unread_char; char char_to_unread; }; PointerHolder m; }; #endif // __PL_QPDFTOKENIZER_HH__ qpdf-8.0.2/include/qpdf/QTC.hh0000644000064100006410000000206513247541377014076 0ustar ejbejb// Copyright (c) 2005-2018 Jay Berkenbilt // // This file is part of qpdf. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Versions of qpdf prior to version 7 were released under the terms // of version 2.0 of the Artistic License. At your option, you may // continue to consider qpdf to be licensed under those terms. Please // see the manual for additional information. #ifndef __QTC_HH__ #define __QTC_HH__ #include namespace QTC { QPDF_DLL void TC(char const* const scope, char const* const ccase, int n = 0); }; #endif // __QTC_HH__ qpdf-8.0.2/include/qpdf/Pl_RunLength.hh0000644000064100006410000000314513247541377016010 0ustar ejbejb// Copyright (c) 2005-2018 Jay Berkenbilt // // This file is part of qpdf. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Versions of qpdf prior to version 7 were released under the terms // of version 2.0 of the Artistic License. At your option, you may // continue to consider qpdf to be licensed under those terms. Please // see the manual for additional information. #ifndef __PL_RUNLENGTH_HH__ #define __PL_RUNLENGTH_HH__ #include class Pl_RunLength: public Pipeline { public: enum action_e { a_encode, a_decode }; QPDF_DLL Pl_RunLength(char const* identifier, Pipeline* next, action_e action); QPDF_DLL virtual ~Pl_RunLength(); QPDF_DLL virtual void write(unsigned char* data, size_t len); QPDF_DLL virtual void finish(); private: void encode(unsigned char* data, size_t len); void decode(unsigned char* data, size_t len); void flush_encode(); enum state_e { st_top, st_copying, st_run }; action_e action; state_e state; unsigned char buf[128]; unsigned int length; }; #endif // __PL_RUNLENGTH_HH__ qpdf-8.0.2/include/qpdf/RandomDataProvider.hh0000644000064100006410000000252313247541377017173 0ustar ejbejb// Copyright (c) 2005-2018 Jay Berkenbilt // // This file is part of qpdf. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Versions of qpdf prior to version 7 were released under the terms // of version 2.0 of the Artistic License. At your option, you may // continue to consider qpdf to be licensed under those terms. Please // see the manual for additional information. #ifndef __RANDOMDATAPROVIDER_HH__ #define __RANDOMDATAPROVIDER_HH__ #include // for size_t class RandomDataProvider { public: virtual ~RandomDataProvider() { } virtual void provideRandomData(unsigned char* data, size_t len) = 0; protected: RandomDataProvider() { } private: RandomDataProvider(RandomDataProvider const&); RandomDataProvider& operator=(RandomDataProvider const&); }; #endif // __RANDOMDATAPROVIDER_HH__ qpdf-8.0.2/include/qpdf/Pl_Discard.hh0000644000064100006410000000256713247541377015462 0ustar ejbejb// Copyright (c) 2005-2018 Jay Berkenbilt // // This file is part of qpdf. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Versions of qpdf prior to version 7 were released under the terms // of version 2.0 of the Artistic License. At your option, you may // continue to consider qpdf to be licensed under those terms. Please // see the manual for additional information. #ifndef __PL_DISCARD_HH__ #define __PL_DISCARD_HH__ // This pipeline discards its output. It is an end-of-line pipeline // (with no next). // This pipeline is reusable; i.e., it is safe to call write() after // calling finish(). #include class Pl_Discard: public Pipeline { public: QPDF_DLL Pl_Discard(); QPDF_DLL virtual ~Pl_Discard(); QPDF_DLL virtual void write(unsigned char*, size_t); QPDF_DLL virtual void finish(); }; #endif // __PL_DISCARD_HH__ qpdf-8.0.2/include/qpdf/QPDFTokenizer.hh0000644000064100006410000001532013247541377016072 0ustar ejbejb// Copyright (c) 2005-2018 Jay Berkenbilt // // This file is part of qpdf. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Versions of qpdf prior to version 7 were released under the terms // of version 2.0 of the Artistic License. At your option, you may // continue to consider qpdf to be licensed under those terms. Please // see the manual for additional information. #ifndef __QPDFTOKENIZER_HH__ #define __QPDFTOKENIZER_HH__ #include #include #include #include #include class QPDFTokenizer { public: // Token type tt_eof is only returned of allowEOF() is called on // the tokenizer. tt_eof was introduced in QPDF version 4.1. // tt_space, tt_comment, and tt_inline_image were added in QPDF // version 8. enum token_type_e { tt_bad, tt_array_close, tt_array_open, tt_brace_close, tt_brace_open, tt_dict_close, tt_dict_open, tt_integer, tt_name, tt_real, tt_string, tt_null, tt_bool, tt_word, tt_eof, tt_space, tt_comment, tt_inline_image, }; class Token { public: Token() : type(tt_bad) {} QPDF_DLL Token(token_type_e type, std::string const& value); Token(token_type_e type, std::string const& value, std::string raw_value, std::string error_message) : type(type), value(value), raw_value(raw_value), error_message(error_message) { } token_type_e getType() const { return this->type; } std::string const& getValue() const { return this->value; } std::string const& getRawValue() const { return this->raw_value; } std::string const& getErrorMessage() const { return this->error_message; } bool operator==(Token const& rhs) const { // Ignore fields other than type and value return ((this->type != tt_bad) && (this->type == rhs.type) && (this->value == rhs.value)); } private: token_type_e type; std::string value; std::string raw_value; std::string error_message; }; QPDF_DLL QPDFTokenizer(); // PDF files with version < 1.2 allowed the pound character // anywhere in a name. Starting with version 1.2, the pound // character was allowed only when followed by two hexadecimal // digits. This method should be called when parsing a PDF file // whose version is older than 1.2. QPDF_DLL void allowPoundAnywhereInName(); // If called, treat EOF as a separate token type instead of an // error. This was introduced in QPDF 4.1 to facilitate // tokenizing content streams. QPDF_DLL void allowEOF(); // If called, readToken will return "ignorable" tokens for space // and comments. This was added in QPDF 8. QPDF_DLL void includeIgnorable(); // There are two modes of operation: push and pull. The pull // method is easier but requires an input source. The push method // is more complicated but can be used to tokenize a stream of // incoming characters in a pipeline. // Push mode: // Keep presenting characters with presentCharacter() and // presentEOF() and calling getToken() until getToken() returns // true. When it does, be sure to check unread_ch and to unread ch // if it is true. // It these are called when a token is available, an exception // will be thrown. QPDF_DLL void presentCharacter(char ch); QPDF_DLL void presentEOF(); // If a token is available, return true and initialize token with // the token, unread_char with whether or not we have to unread // the last character, and if unread_char, ch with the character // to unread. QPDF_DLL bool getToken(Token& token, bool& unread_char, char& ch); // This function returns true of the current character is between // tokens (i.e., white space that is not part of a string) or is // part of a comment. A tokenizing filter can call this to // determine whether to output the character. QPDF_DLL bool betweenTokens(); // Pull mode: // Read a token from an input source. Context describes the // context in which the token is being read and is used in the // exception thrown if there is an error. After a token is read, // the position of the input source returned by input->tell() // points to just after the token, and the input source's "last // offset" as returned by input->getLastOffset() points to the // beginning of the token. QPDF_DLL Token readToken(PointerHolder input, std::string const& context, bool allow_bad = false, size_t max_len = 0); // Calling this method puts the tokenizer in a state for reading // inline images. In that state, it will return all data up to and // including the next EI token. After you call this method, the // next call to readToken (or the token created next time getToken // returns true) will either be tt_inline_image or tt_bad. This is // the only way readToken returns a tt_inline_image token. QPDF_DLL void expectInlineImage(); private: // Do not implement copy or assignment QPDFTokenizer(QPDFTokenizer const&); QPDFTokenizer& operator=(QPDFTokenizer const&); void resolveLiteral(); bool isSpace(char); bool isDelimiter(char); enum state_e { st_top, st_in_space, st_in_comment, st_in_string, st_lt, st_gt, st_literal, st_in_hexstring, st_inline_image, st_token_ready }; class Members { friend class QPDFTokenizer; public: QPDF_DLL ~Members(); private: Members(); Members(Members const&); void reset(); // Lexer state state_e state; bool pound_special_in_name; bool allow_eof; bool include_ignorable; // Current token accumulation token_type_e type; std::string val; std::string raw_val; std::string error_message; bool unread_char; char char_to_unread; // State for strings int string_depth; bool string_ignoring_newline; char bs_num_register[4]; bool last_char_was_bs; }; PointerHolder m; }; #endif // __QPDFTOKENIZER_HH__ qpdf-8.0.2/include/qpdf/qpdf-c.h0000644000064100006410000004000313247541377014443 0ustar ejbejb/* Copyright (c) 2005-2018 Jay Berkenbilt * * This file is part of qpdf. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Versions of qpdf prior to version 7 were released under the terms * of version 2.0 of the Artistic License. At your option, you may * continue to consider qpdf to be licensed under those terms. Please * see the manual for additional information. */ #ifndef __QPDF_C_H__ #define __QPDF_C_H__ /* * This file defines a basic "C" API for qpdf. It provides access to * a subset of the QPDF library's capabilities to make them accessible * to callers who can't handle calling C++ functions or working with * C++ classes. This may be especially useful to Windows users who * are accessing the qpdf DLL directly or to other people programming * in non-C/C++ languages that can call C code but not C++ code. * * There are several things to keep in mind when using the C API. * * The C API is not as rich as the C++ API. For any operations * that involve actually manipulating PDF objects, you must use * the C++ API. The C API is primarily useful for doing basic * transformations on PDF files similar to what you might do with * the qpdf command-line tool. * * These functions store their state in a qpdf_data object. * Individual instances of qpdf_data are not thread-safe: although * you may access different qpdf_data objects from different * threads, you may not access one qpdf_data simultaneously from * multiple threads. * * All dynamic memory, except for that of the qpdf_data object * itself, is managed by the library. You must create a qpdf_data * object using qpdf_init and free it using qpdf_cleanup. * * Many functions return char*. In all cases, the char* values * returned are pointers to data inside the qpdf_data object. As * such, they are always freed by qpdf_cleanup. In most cases, * strings returned by functions here may be invalidated by * subsequent function calls, sometimes even to different * functions. If you want a string to last past the next qpdf * call or after a call to qpdf_cleanup, you should make a copy of * it. * * Many functions defined here merely set parameters and therefore * never return error conditions. Functions that may cause PDF * files to be read or written may return error conditions. Such * functions return an error code. If there were no errors or * warnings, they return QPDF_SUCCESS. If there were warnings, * the return value has the QPDF_WARNINGS bit set. If there * errors, the QPDF_ERRORS bit is set. In other words, if there * are both warnings and errors, then the return status will be * QPDF_WARNINGS | QPDF_ERRORS. You may also call the * qpdf_more_warnings and qpdf_more_errors functions to test * whether there are unseen warning or error conditions. By * default, warnings are written to stderr when detected, but this * behavior can be suppressed. In all cases, errors and warnings * may be retrieved by calling qpdf_next_warning and * qpdf_next_error. All exceptions thrown by the C++ interface * are caught and converted into error messages by the C * interface. * * Most functions defined here have obvious counterparts that are * methods to either QPDF or QPDFWriter. Please see comments in * QPDF.hh and QPDFWriter.hh for details on their use. In order * to avoid duplication of information, comments here focus * primarily on differences between the C and C++ API. */ #include #include #include #include #ifdef __cplusplus extern "C" { #endif typedef struct _qpdf_data* qpdf_data; typedef struct _qpdf_error* qpdf_error; /* Many functions return an integer error code. Codes are defined * below. See comments at the top of the file for details. Note * that the values below can be logically orred together. */ typedef int QPDF_ERROR_CODE; # define QPDF_SUCCESS 0 # define QPDF_WARNINGS 1 << 0 # define QPDF_ERRORS 1 << 1 typedef int QPDF_BOOL; # define QPDF_TRUE 1 # define QPDF_FALSE 0 /* Returns the version of the qpdf software */ QPDF_DLL char const* qpdf_get_qpdf_version(); /* Returns dynamically allocated qpdf_data pointer; must be freed * by calling qpdf_cleanup. */ QPDF_DLL qpdf_data qpdf_init(); /* Pass a pointer to the qpdf_data pointer created by qpdf_init to * clean up resources. */ QPDF_DLL void qpdf_cleanup(qpdf_data* qpdf); /* ERROR REPORTING */ /* Returns 1 if there is an error condition. The error condition * can be retrieved by a single call to qpdf_get_error. */ QPDF_DLL QPDF_BOOL qpdf_has_error(qpdf_data qpdf); /* Returns the error condition, if any. The return value is a * pointer to data that will become invalid after the next call to * this function, qpdf_next_warning, or qpdf_destroy. After this * function is called, qpdf_has_error will return QPDF_FALSE until * the next error condition occurs. If there is no error * condition, this function returns a null pointer. */ QPDF_DLL qpdf_error qpdf_get_error(qpdf_data qpdf); /* Returns 1 if there are any unretrieved warnings, and zero * otherwise. */ QPDF_DLL QPDF_BOOL qpdf_more_warnings(qpdf_data qpdf); /* If there are any warnings, returns a pointer to the next * warning. Otherwise returns a null pointer. */ QPDF_DLL qpdf_error qpdf_next_warning(qpdf_data qpdf); /* Extract fields of the error. */ /* Use this function to get a full error message suitable for * showing to the user. */ QPDF_DLL char const* qpdf_get_error_full_text(qpdf_data q, qpdf_error e); /* Use these functions to extract individual fields from the * error; see QPDFExc.hh for details. */ QPDF_DLL enum qpdf_error_code_e qpdf_get_error_code(qpdf_data q, qpdf_error e); QPDF_DLL char const* qpdf_get_error_filename(qpdf_data q, qpdf_error e); QPDF_DLL unsigned long long qpdf_get_error_file_position(qpdf_data q, qpdf_error e); QPDF_DLL char const* qpdf_get_error_message_detail(qpdf_data q, qpdf_error e); /* By default, warnings are written to stderr. Passing true to * this function will prevent warnings from being written to * stderr. They will still be available by calls to * qpdf_next_warning. */ QPDF_DLL void qpdf_set_suppress_warnings(qpdf_data qpdf, QPDF_BOOL value); /* CHECK FUNCTIONS */ /* Attempt to read the entire PDF file to see if there are any * errors qpdf can detect. */ QPDF_DLL QPDF_ERROR_CODE qpdf_check_pdf(qpdf_data qpdf); /* READ FUNCTIONS */ /* READ PARAMETER FUNCTIONS -- must be called before qpdf_read */ QPDF_DLL void qpdf_set_ignore_xref_streams(qpdf_data qpdf, QPDF_BOOL value); QPDF_DLL void qpdf_set_attempt_recovery(qpdf_data qpdf, QPDF_BOOL value); /* Calling qpdf_read causes processFile to be called in the C++ * API. Basic parsing is performed, but data from the file is * only read as needed. For files without passwords, pass a null * pointer as the password. */ QPDF_DLL QPDF_ERROR_CODE qpdf_read(qpdf_data qpdf, char const* filename, char const* password); /* Calling qpdf_read_memory causes processMemoryFile to be called * in the C++ API. Otherwise, it behaves in the same way as * qpdf_read. The description argument will be used in place of * the file name in any error or warning messages generated by the * library. */ QPDF_DLL QPDF_ERROR_CODE qpdf_read_memory(qpdf_data qpdf, char const* description, char const* buffer, unsigned long long size, char const* password); /* Read functions below must be called after qpdf_read or * qpdf_read_memory. */ /* * NOTE: Functions that return char* are returning a pointer to an * internal buffer that will be reused for each call to a function * that returns a char*. You must use or copy the value before * calling any other qpdf library functions. */ /* Return the version of the PDF file. See warning above about * functions that return char*. */ QPDF_DLL char const* qpdf_get_pdf_version(qpdf_data qpdf); /* Return the extension level of the PDF file. */ QPDF_DLL int qpdf_get_pdf_extension_level(qpdf_data qpdf); /* Return the user password. If the file is opened using the * owner password, the user password may be retrieved using this * function. If the file is opened using the user password, this * function will return that user password. See warning above * about functions that return char*. */ QPDF_DLL char const* qpdf_get_user_password(qpdf_data qpdf); /* Return the string value of a key in the document's Info * dictionary. The key parameter should include the leading * slash, e.g. "/Author". If the key is not present or has a * non-string value, a null pointer is returned. Otherwise, a * pointer to an internal buffer is returned. See warning above * about functions that return char*. */ QPDF_DLL char const* qpdf_get_info_key(qpdf_data qpdf, char const* key); /* Set a value in the info dictionary, possibly replacing an * existing value. The key must include the leading slash * (e.g. "/Author"). Passing a null pointer as a value will * remove the key from the info dictionary. Otherwise, a copy * will be made of the string that is passed in. */ QPDF_DLL void qpdf_set_info_key(qpdf_data qpdf, char const* key, char const* value); /* Indicate whether the input file is linearized. */ QPDF_DLL QPDF_BOOL qpdf_is_linearized(qpdf_data qpdf); /* Indicate whether the input file is encrypted. */ QPDF_DLL QPDF_BOOL qpdf_is_encrypted(qpdf_data qpdf); QPDF_DLL QPDF_BOOL qpdf_allow_accessibility(qpdf_data qpdf); QPDF_DLL QPDF_BOOL qpdf_allow_extract_all(qpdf_data qpdf); QPDF_DLL QPDF_BOOL qpdf_allow_print_low_res(qpdf_data qpdf); QPDF_DLL QPDF_BOOL qpdf_allow_print_high_res(qpdf_data qpdf); QPDF_DLL QPDF_BOOL qpdf_allow_modify_assembly(qpdf_data qpdf); QPDF_DLL QPDF_BOOL qpdf_allow_modify_form(qpdf_data qpdf); QPDF_DLL QPDF_BOOL qpdf_allow_modify_annotation(qpdf_data qpdf); QPDF_DLL QPDF_BOOL qpdf_allow_modify_other(qpdf_data qpdf); QPDF_DLL QPDF_BOOL qpdf_allow_modify_all(qpdf_data qpdf); /* WRITE FUNCTIONS */ /* Set up for writing. No writing is actually performed until the * call to qpdf_write(). */ /* Supply the name of the file to be written and initialize the * qpdf_data object to handle writing operations. This function * also attempts to create the file. The PDF data is not written * until the call to qpdf_write. qpdf_init_write may be called * multiple times for the same qpdf_data object. When * qpdf_init_write is called, all information from previous calls * to functions that set write parameters (qpdf_set_linearization, * etc.) is lost, so any write parameter functions must be called * again. */ QPDF_DLL QPDF_ERROR_CODE qpdf_init_write(qpdf_data qpdf, char const* filename); /* Initialize for writing but indicate that the PDF file should be * written to memory. Call qpdf_get_buffer_length and * qpdf_get_buffer to retrieve the resulting buffer. The memory * containing the PDF file will be destroyed when qpdf_cleanup is * called. */ QPDF_DLL QPDF_ERROR_CODE qpdf_init_write_memory(qpdf_data qpdf); /* Retrieve the buffer used if the file was written to memory. * qpdf_get_buffer returns a null pointer if data was not written * to memory. The memory is freed when qpdf_cleanup is called or * if a subsequent call to qpdf_init_write or * qpdf_init_write_memory is called. */ QPDF_DLL size_t qpdf_get_buffer_length(qpdf_data qpdf); QPDF_DLL unsigned char const* qpdf_get_buffer(qpdf_data qpdf); QPDF_DLL void qpdf_set_object_stream_mode(qpdf_data qpdf, enum qpdf_object_stream_e mode); QPDF_DLL void qpdf_set_stream_data_mode(qpdf_data qpdf, enum qpdf_stream_data_e mode); QPDF_DLL void qpdf_set_compress_streams(qpdf_data qpdf, QPDF_BOOL value); QPDF_DLL void qpdf_set_decode_level(qpdf_data qpdf, enum qpdf_stream_decode_level_e level); QPDF_DLL void qpdf_set_preserve_unreferenced_objects( qpdf_data qpdf, QPDF_BOOL value); QPDF_DLL void qpdf_set_newline_before_endstream(qpdf_data qpdf, QPDF_BOOL value); QPDF_DLL void qpdf_set_content_normalization(qpdf_data qpdf, QPDF_BOOL value); QPDF_DLL void qpdf_set_qdf_mode(qpdf_data qpdf, QPDF_BOOL value); QPDF_DLL void qpdf_set_deterministic_ID(qpdf_data qpdf, QPDF_BOOL value); /* Never use qpdf_set_static_ID except in test suites to suppress * generation of a random /ID. See also qpdf_set_deterministic_ID. */ QPDF_DLL void qpdf_set_static_ID(qpdf_data qpdf, QPDF_BOOL value); /* Never use qpdf_set_static_aes_IV except in test suites to * create predictable AES encrypted output. */ QPDF_DLL void qpdf_set_static_aes_IV(qpdf_data qpdf, QPDF_BOOL value); QPDF_DLL void qpdf_set_suppress_original_object_IDs( qpdf_data qpdf, QPDF_BOOL value); QPDF_DLL void qpdf_set_preserve_encryption(qpdf_data qpdf, QPDF_BOOL value); QPDF_DLL void qpdf_set_r2_encryption_parameters( qpdf_data qpdf, char const* user_password, char const* owner_password, QPDF_BOOL allow_print, QPDF_BOOL allow_modify, QPDF_BOOL allow_extract, QPDF_BOOL allow_annotate); QPDF_DLL void qpdf_set_r3_encryption_parameters( qpdf_data qpdf, char const* user_password, char const* owner_password, QPDF_BOOL allow_accessibility, QPDF_BOOL allow_extract, enum qpdf_r3_print_e print, enum qpdf_r3_modify_e modify); QPDF_DLL void qpdf_set_r4_encryption_parameters( qpdf_data qpdf, char const* user_password, char const* owner_password, QPDF_BOOL allow_accessibility, QPDF_BOOL allow_extract, enum qpdf_r3_print_e print, enum qpdf_r3_modify_e modify, QPDF_BOOL encrypt_metadata, QPDF_BOOL use_aes); QPDF_DLL void qpdf_set_r5_encryption_parameters( qpdf_data qpdf, char const* user_password, char const* owner_password, QPDF_BOOL allow_accessibility, QPDF_BOOL allow_extract, enum qpdf_r3_print_e print, enum qpdf_r3_modify_e modify, QPDF_BOOL encrypt_metadata); QPDF_DLL void qpdf_set_r6_encryption_parameters( qpdf_data qpdf, char const* user_password, char const* owner_password, QPDF_BOOL allow_accessibility, QPDF_BOOL allow_extract, enum qpdf_r3_print_e print, enum qpdf_r3_modify_e modify, QPDF_BOOL encrypt_metadata); QPDF_DLL void qpdf_set_linearization(qpdf_data qpdf, QPDF_BOOL value); QPDF_DLL void qpdf_set_minimum_pdf_version(qpdf_data qpdf, char const* version); QPDF_DLL void qpdf_set_minimum_pdf_version_and_extension( qpdf_data qpdf, char const* version, int extension_level); QPDF_DLL void qpdf_force_pdf_version(qpdf_data qpdf, char const* version); QPDF_DLL void qpdf_force_pdf_version_and_extension( qpdf_data qpdf, char const* version, int extension_level); /* Do actual write operation. */ QPDF_DLL QPDF_ERROR_CODE qpdf_write(qpdf_data qpdf); #ifdef __cplusplus } #endif #endif /* __QPDF_C_H__ */ qpdf-8.0.2/include/qpdf/Pipeline.hh0000644000064100006410000000612513247541377015215 0ustar ejbejb// Copyright (c) 2005-2018 Jay Berkenbilt // // This file is part of qpdf. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Versions of qpdf prior to version 7 were released under the terms // of version 2.0 of the Artistic License. At your option, you may // continue to consider qpdf to be licensed under those terms. Please // see the manual for additional information. // Generalized Pipeline interface. By convention, subclasses of // Pipeline are called Pl_Something. // // When an instance of Pipeline is created with a pointer to a next // pipeline, that pipeline writes its data to the next one when it // finishes with it. In order to make possible a usage style in which // a pipeline may be passed to a function which may stick other // pipelines in front of it, the allocator of a pipeline is // responsible for its destruction. In other words, one pipeline // object does not attempt to manage the memory of its successor. // // The client is required to call finish() before destroying a // Pipeline in order to avoid loss of data. A Pipeline class should // not throw an exception in the destructor if this hasn't been done // though since doing so causes too much trouble when deleting // pipelines during error conditions. // // Some pipelines are reusable (i.e., you can call write() after // calling finish() and can call finish() multiple times) while others // are not. It is up to the caller to use a pipeline according to its // own restrictions. #ifndef __PIPELINE_HH__ #define __PIPELINE_HH__ #include #include class Pipeline { public: QPDF_DLL Pipeline(char const* identifier, Pipeline* next); QPDF_DLL virtual ~Pipeline(); // Subclasses should implement write and finish to do their jobs // and then, if they are not end-of-line pipelines, call // getNext()->write or getNext()->finish. It would be really nice // if write could take unsigned char const*, but this would make // it much more difficult to write pipelines around legacy // interfaces whose calls don't want pointers to const data. As a // rule, pipelines should generally not be modifying the data // passed to them. They should, instead, create new data to pass // downstream. QPDF_DLL virtual void write(unsigned char* data, size_t len) = 0; QPDF_DLL virtual void finish() = 0; protected: Pipeline* getNext(bool allow_null = false); std::string identifier; private: // Do not implement copy or assign Pipeline(Pipeline const&); Pipeline& operator=(Pipeline const&); Pipeline* next; }; #endif // __PIPELINE_HH__ qpdf-8.0.2/include/qpdf/QUtil.hh0000644000064100006410000001712113247541377014504 0ustar ejbejb// Copyright (c) 2005-2018 Jay Berkenbilt // // This file is part of qpdf. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Versions of qpdf prior to version 7 were released under the terms // of version 2.0 of the Artistic License. At your option, you may // continue to consider qpdf to be licensed under those terms. Please // see the manual for additional information. #ifndef __QUTIL_HH__ #define __QUTIL_HH__ #include #include #include #include #include #include #include class RandomDataProvider; namespace QUtil { // This is a collection of useful utility functions that don't // really go anywhere else. QPDF_DLL std::string int_to_string(long long, int length = 0); QPDF_DLL std::string int_to_string_base(long long, int base, int length = 0); QPDF_DLL std::string double_to_string(double, int decimal_places = 0); // These string to number methods throw std::runtime_error on // underflow/overflow. QPDF_DLL long long string_to_ll(char const* str); QPDF_DLL int string_to_int(char const* str); // Pipeline's write method wants unsigned char*, but we often have // some other type of string. These methods do combinations of // const_cast and reinterpret_cast to give us an unsigned char*. // They should only be used when it is known that it is safe. // None of the pipelines in qpdf modify the data passed to them, // so within qpdf, it should always be safe. QPDF_DLL unsigned char* unsigned_char_pointer(std::string const& str); QPDF_DLL unsigned char* unsigned_char_pointer(char const* str); // Throw std::runtime_error with a string formed by appending to // "description: " the standard string corresponding to the // current value of errno. QPDF_DLL void throw_system_error(std::string const& description); // The status argument is assumed to be the return value of a // standard library call that sets errno when it fails. If status // is -1, convert the current value of errno to a // std::runtime_error that includes the standard error string. // Otherwise, return status. QPDF_DLL int os_wrapper(std::string const& description, int status); // If the open fails, throws std::runtime_error. Otherwise, the // FILE* is returned. QPDF_DLL FILE* safe_fopen(char const* filename, char const* mode); // The FILE* argument is assumed to be the return of fopen. If // null, throw std::runtime_error. Otherwise, return the FILE* // argument. QPDF_DLL FILE* fopen_wrapper(std::string const&, FILE*); // Wrap around off_t versions of fseek and ftell if available QPDF_DLL int seek(FILE* stream, qpdf_offset_t offset, int whence); QPDF_DLL qpdf_offset_t tell(FILE* stream); QPDF_DLL bool same_file(char const* name1, char const* name2); QPDF_DLL char* copy_string(std::string const&); // Returns lower-case hex-encoded version of the string, treating // each character in the input string as unsigned. The output // string will be twice as long as the input string. QPDF_DLL std::string hex_encode(std::string const&); // Returns a string that is the result of decoding the input // string. The input string may consist of mixed case hexadecimal // digits. Any characters that are not hexadecimal digits will be // silently ignored. If there are an odd number of hexadecimal // digits, a trailing 0 will be assumed. QPDF_DLL std::string hex_decode(std::string const&); // Set stdin, stdout to binary mode QPDF_DLL void binary_stdout(); QPDF_DLL void binary_stdin(); // Set stdout to line buffered QPDF_DLL void setLineBuf(FILE*); // May modify argv0 QPDF_DLL char* getWhoami(char* argv0); // Get the value of an environment variable in a portable fashion. // Returns true iff the variable is defined. If `value' is // non-null, initializes it with the value of the variable. QPDF_DLL bool get_env(std::string const& var, std::string* value = 0); QPDF_DLL time_t get_current_time(); // Return a string containing the byte representation of the UTF-8 // encoding for the unicode value passed in. QPDF_DLL std::string toUTF8(unsigned long uval); // If secure random number generation is supported on your // platform and qpdf was not compiled with insecure random number // generation, this returns a cryptographically secure random // number. Otherwise it falls back to random from stdlib and // calls srandom automatically the first time it is called. QPDF_DLL long random(); // Wrapper around srandom from stdlib. Seeds the standard library // weak random number generator, which is not used if secure // random number generation is being used. You never need to call // this method as it is called automatically if needed. QPDF_DLL void srandom(unsigned int seed); // Initialize a buffer with random bytes. By default, qpdf tries // to use a secure random number source. It can be configured at // compile time to use an insecure random number source (from // stdlib). You can also call setRandomDataProvider with a // RandomDataProvider, in which case this method will get its // random bytes from that. QPDF_DLL void initializeWithRandomBytes(unsigned char* data, size_t len); // Supply a random data provider. If not supplied, depending on // compile time options, qpdf will either use the operating // system's secure random number source or an insecure random // source from stdlib. The caller is responsible for managing the // memory for the RandomDataProvider. This method modifies a // static variable. If you are providing your own random data // provider, you should call this at the beginning of your program // before creating any QPDF objects. Passing a null to this // method will reset the library back to whichever of the built-in // random data handlers is appropriate based on how qpdf was // compiled. QPDF_DLL void setRandomDataProvider(RandomDataProvider*); // This returns the random data provider that would be used the // next time qpdf needs random data. It will never return null. // If no random data provider has been provided and the library // was not compiled with any random data provider available, an // exception will be thrown. QPDF_DLL RandomDataProvider* getRandomDataProvider(); QPDF_DLL std::list read_lines_from_file(char const* filename); QPDF_DLL std::list read_lines_from_file(std::istream&); QPDF_DLL int strcasecmp(char const *, char const *); // These routines help the tokenizer recognize certain character // classes without using ctype, which we avoid because of locale // considerations. QPDF_DLL bool is_hex_digit(char); QPDF_DLL bool is_space(char); QPDF_DLL bool is_digit(char); QPDF_DLL bool is_number(char const*); }; #endif // __QUTIL_HH__ qpdf-8.0.2/include/qpdf/Pl_DCT.hh0000644000064100006410000000423713247541377014517 0ustar ejbejb// Copyright (c) 2005-2018 Jay Berkenbilt // // This file is part of qpdf. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Versions of qpdf prior to version 7 were released under the terms // of version 2.0 of the Artistic License. At your option, you may // continue to consider qpdf to be licensed under those terms. Please // see the manual for additional information. #ifndef __PL_DCT_HH__ #define __PL_DCT_HH__ #include #include #include class Pl_DCT: public Pipeline { public: // Constructor for decompressing image data QPDF_DLL Pl_DCT(char const* identifier, Pipeline* next); class CompressConfig { public: CompressConfig() { } virtual ~CompressConfig() { } virtual void apply(jpeg_compress_struct*) = 0; }; // Constructor for compressing image data QPDF_DLL Pl_DCT(char const* identifier, Pipeline* next, JDIMENSION image_width, JDIMENSION image_height, int components, J_COLOR_SPACE color_space, CompressConfig* config_callback = 0); QPDF_DLL virtual ~Pl_DCT(); QPDF_DLL virtual void write(unsigned char* data, size_t len); QPDF_DLL virtual void finish(); private: void compress(void* cinfo, Buffer*); void decompress(void* cinfo, Buffer*); enum action_e { a_compress, a_decompress }; action_e action; Pl_Buffer buf; // Used for compression JDIMENSION image_width; JDIMENSION image_height; int components; J_COLOR_SPACE color_space; CompressConfig* config_callback; }; #endif // __PL_DCT_HH__ qpdf-8.0.2/include/qpdf/QPDFExc.hh0000644000064100006410000000465613247541377014651 0ustar ejbejb// Copyright (c) 2005-2018 Jay Berkenbilt // // This file is part of qpdf. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Versions of qpdf prior to version 7 were released under the terms // of version 2.0 of the Artistic License. At your option, you may // continue to consider qpdf to be licensed under those terms. Please // see the manual for additional information. #ifndef __QPDFEXC_HH__ #define __QPDFEXC_HH__ #include #include #include #include #include class QPDFExc: public std::runtime_error { public: QPDF_DLL QPDFExc(qpdf_error_code_e error_code, std::string const& filename, std::string const& object, qpdf_offset_t offset, std::string const& message); QPDF_DLL virtual ~QPDFExc() throw (); // To get a complete error string, call what(), provided by // std::exception. The accessors below return the original values // used to create the exception. Only the error code and message // are guaranteed to have non-zero/empty values. // There is no lookup code that maps numeric error codes into // strings. The numeric error code is just another way to get at // the underlying issue, but it is more programmer-friendly than // trying to parse a string that is subject to change. QPDF_DLL qpdf_error_code_e getErrorCode() const; QPDF_DLL std::string const& getFilename() const; QPDF_DLL std::string const& getObject() const; QPDF_DLL qpdf_offset_t getFilePosition() const; QPDF_DLL std::string const& getMessageDetail() const; private: static std::string createWhat(std::string const& filename, std::string const& object, qpdf_offset_t offset, std::string const& message); qpdf_error_code_e error_code; std::string filename; std::string object; qpdf_offset_t offset; std::string message; }; #endif // __QPDFEXC_HH__ qpdf-8.0.2/include/qpdf/InputSource.hh0000644000064100006410000000521213247541377015724 0ustar ejbejb// Copyright (c) 2005-2018 Jay Berkenbilt // // This file is part of qpdf. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Versions of qpdf prior to version 7 were released under the terms // of version 2.0 of the Artistic License. At your option, you may // continue to consider qpdf to be licensed under those terms. Please // see the manual for additional information. #ifndef __QPDF_INPUTSOURCE_HH__ #define __QPDF_INPUTSOURCE_HH__ #include #include #include #include class InputSource { public: QPDF_DLL InputSource() : last_offset(0) { } QPDF_DLL virtual ~InputSource() { } class Finder { public: Finder() { } virtual ~Finder() { } virtual bool check() = 0; }; QPDF_DLL void setLastOffset(qpdf_offset_t); QPDF_DLL qpdf_offset_t getLastOffset() const; QPDF_DLL std::string readLine(size_t max_line_length); // Find first or last occurrence of a sequence of characters // starting within the range defined by offset and len such that, // when the input source is positioned at the beginning of that // sequence, finder.check() returns true. If len is 0, the search // proceeds until EOF. If a qualifying pattern is found, these // methods return true and leave the input source positioned // wherever check() left it at the end of the matching pattern. QPDF_DLL bool findFirst(char const* start_chars, qpdf_offset_t offset, size_t len, Finder& finder); QPDF_DLL bool findLast(char const* start_chars, qpdf_offset_t offset, size_t len, Finder& finder); virtual qpdf_offset_t findAndSkipNextEOL() = 0; virtual std::string const& getName() const = 0; virtual qpdf_offset_t tell() = 0; virtual void seek(qpdf_offset_t offset, int whence) = 0; virtual void rewind() = 0; virtual size_t read(char* buffer, size_t length) = 0; virtual void unreadCh(char ch) = 0; protected: qpdf_offset_t last_offset; }; #endif // __QPDF_INPUTSOURCE_HH__ qpdf-8.0.2/include/qpdf/Buffer.hh0000644000064100006410000000353413247541377014662 0ustar ejbejb// Copyright (c) 2005-2018 Jay Berkenbilt // // This file is part of qpdf. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Versions of qpdf prior to version 7 were released under the terms // of version 2.0 of the Artistic License. At your option, you may // continue to consider qpdf to be licensed under those terms. Please // see the manual for additional information. #ifndef __BUFFER_HH__ #define __BUFFER_HH__ #include #include // for size_t class Buffer { public: QPDF_DLL Buffer(); // Create a Buffer object whose memory is owned by the class and // will be freed when the Buffer object is destroyed. QPDF_DLL Buffer(size_t size); // Create a Buffer object whose memory is owned by the caller and // will not be freed when the Buffer is destroyed. QPDF_DLL Buffer(unsigned char* buf, size_t size); QPDF_DLL Buffer(Buffer const&); QPDF_DLL Buffer& operator=(Buffer const&); QPDF_DLL ~Buffer(); QPDF_DLL size_t getSize() const; QPDF_DLL unsigned char const* getBuffer() const; QPDF_DLL unsigned char* getBuffer(); private: void init(size_t size, unsigned char* buf, bool own_memory); void copy(Buffer const&); void destroy(); bool own_memory; size_t size; unsigned char* buf; }; #endif // __BUFFER_HH__ qpdf-8.0.2/include/qpdf/QPDFXRefEntry.hh0000644000064100006410000000327413247541377016013 0ustar ejbejb// Copyright (c) 2005-2018 Jay Berkenbilt // // This file is part of qpdf. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Versions of qpdf prior to version 7 were released under the terms // of version 2.0 of the Artistic License. At your option, you may // continue to consider qpdf to be licensed under those terms. Please // see the manual for additional information. #ifndef __QPDFXREFENTRY_HH__ #define __QPDFXREFENTRY_HH__ #include #include class QPDFXRefEntry { public: // Type constants are from the PDF spec section // "Cross-Reference Streams": // 0 = free entry; not used // 1 = "uncompressed"; field 1 = offset // 2 = "compressed"; field 1 = object stream number, field 2 = index QPDF_DLL QPDFXRefEntry(); QPDF_DLL QPDFXRefEntry(int type, qpdf_offset_t field1, int field2); QPDF_DLL int getType() const; QPDF_DLL qpdf_offset_t getOffset() const; // only for type 1 QPDF_DLL int getObjStreamNumber() const; // only for type 2 QPDF_DLL int getObjStreamIndex() const; // only for type 2 private: int type; qpdf_offset_t field1; int field2; }; #endif // __QPDFXREFENTRY_HH__ qpdf-8.0.2/include/qpdf/Pl_Concatenate.hh0000644000064100006410000000332413247541377016325 0ustar ejbejb// Copyright (c) 2005-2018 Jay Berkenbilt // // This file is part of qpdf. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Versions of qpdf prior to version 7 were released under the terms // of version 2.0 of the Artistic License. At your option, you may // continue to consider qpdf to be licensed under those terms. Please // see the manual for additional information. #ifndef __PL_CONCATENATE_HH__ #define __PL_CONCATENATE_HH__ // This pipeline will drop all regular finished calls rather than // passing them onto next. To finish downstream streams, call // manualFinish. This makes it possible to pipe multiple streams // (e.g. with QPDFObjectHandle::pipeStreamData) to a downstream like // Pl_Flate that can't handle multiple calls to finish(). #include class Pl_Concatenate: public Pipeline { public: QPDF_DLL Pl_Concatenate(char const* identifier, Pipeline* next); QPDF_DLL virtual ~Pl_Concatenate(); QPDF_DLL virtual void write(unsigned char* data, size_t len); QPDF_DLL virtual void finish(); // At the very end, call manualFinish to actually finish the rest of // the pipeline. QPDF_DLL void manualFinish(); }; #endif // __PL_CONCATENATE_HH__ qpdf-8.0.2/include/qpdf/QPDFWriter.hh0000644000064100006410000006037713247541377015410 0ustar ejbejb// Copyright (c) 2005-2018 Jay Berkenbilt // // This file is part of qpdf. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Versions of qpdf prior to version 7 were released under the terms // of version 2.0 of the Artistic License. At your option, you may // continue to consider qpdf to be licensed under those terms. Please // see the manual for additional information. // This class implements a simple writer for saving QPDF objects to // new PDF files. See comments through the header file for additional // details. #ifndef __QPDFWRITER_HH__ #define __QPDFWRITER_HH__ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include class QPDF; class Pl_Count; class Pl_MD5; class QPDFWriter { public: // Construct a QPDFWriter object without specifying output. You // must call one of the output setting routines defined below. QPDF_DLL QPDFWriter(QPDF& pdf); // Create a QPDFWriter object that writes its output to a file or // to stdout. This is equivalent to using the previous // constructor and then calling setOutputFilename(). See // setOutputFilename() for details. QPDF_DLL QPDFWriter(QPDF& pdf, char const* filename); // Create a QPDFWriter object that writes its output to an already // open FILE*. This is equivalent to calling the first // constructor and then calling setOutputFile(). See // setOutputFile() for details. QPDF_DLL QPDFWriter(QPDF& pdf, char const* description, FILE* file, bool close_file); QPDF_DLL ~QPDFWriter(); // Setting Output. Output may be set only one time. If you don't // use the filename version of the QPDFWriter constructor, you // must call exactly one of these methods. // Passing null as filename means write to stdout. QPDFWriter // will create a zero-length output file upon construction. If // write fails, the empty or partially written file will not be // deleted. This is by design: sometimes the partial file may be // useful for tracking down problems. If your application doesn't // want the partially written file to be left behind, you should // delete it the eventual call to write fails. QPDF_DLL void setOutputFilename(char const* filename); // Write to the given FILE*, which must be opened by the caller. // If close_file is true, QPDFWriter will close the file. // Otherwise, the caller must close the file. The file does not // need to be seekable; it will be written to in a single pass. // It must be open in binary mode. QPDF_DLL void setOutputFile(char const* description, FILE* file, bool close_file); // Indicate that QPDFWriter should create a memory buffer to // contain the final PDF file. Obtain the memory by calling // getBuffer(). QPDF_DLL void setOutputMemory(); // Return the buffer object containing the PDF file. If // setOutputMemory() has been called, this method may be called // exactly one time after write() has returned. The caller is // responsible for deleting the buffer when done. QPDF_DLL Buffer* getBuffer(); // Supply your own pipeline object. Output will be written to // this pipeline, and QPDFWriter will call finish() on the // pipeline. It is the caller's responsibility to manage the // memory for the pipeline. The pipeline is never deleted by // QPDFWriter, which makes it possible for you to call additional // methods on the pipeline after the writing is finished. QPDF_DLL void setOutputPipeline(Pipeline*); // Setting Parameters // Set the value of object stream mode. In disable mode, we never // generate any object streams. In preserve mode, we preserve // object stream structure from the original file. In generate // mode, we generate our own object streams. In all cases, we // generate a conventional cross-reference table if there are no // object streams and a cross-reference stream if there are object // streams. The default is o_preserve. QPDF_DLL void setObjectStreamMode(qpdf_object_stream_e); // Set value of stream data mode. This is an older interface. // Instead of using this, prefer setCompressStreams() and // setDecodeLevel(). This method is retained for compatibility, // but it does not cover the full range of available // configurations. The mapping between this and the new methods is // as follows: // // qpdf_s_uncompress: // setCompressStreams(false) // setDecodeLevel(qpdf_dl_generalized) // qpdf_s_preserve: // setCompressStreams(false) // setDecodeLevel(qpdf_dl_none) // qpdf_s_compress: // setCompressStreams(true) // setDecodeLevel(qpdf_dl_generalized) // // The default is qpdf_s_compress. QPDF_DLL void setStreamDataMode(qpdf_stream_data_e); // If true, compress any uncompressed streams when writing them. // Metadata streams are a special case and are not compressed even // if this is true. This is true by default for QPDFWriter. If you // want QPDFWriter to leave uncompressed streams uncompressed, // pass false to this method. QPDF_DLL void setCompressStreams(bool); // When QPDFWriter encounters streams, this parameter controls the // behavior with respect to attempting to apply any filters to the // streams when copying to the output. The decode levels are as // follows: // // qpdf_dl_none: Do not attempt to apply any filters. Streams // remain as they appear in the original file. Note that // uncompressed streams may still be compressed on output. You can // disable that by calling setCompressStreams(false). // // qpdf_dl_generalized: This is the default. QPDFWriter will apply // LZWDecode, ASCII85Decode, ASCIIHexDecode, and FlateDecode // filters on the input. When combined with // setCompressStreams(true), which the default, the effect of this // is that streams filtered with these older and less efficient // filters will be recompressed with the Flate filter. As a // special case, if a stream is already compressed with // FlateDecode and setCompressStreams is enabled, the original // compressed data will be preserved. // // qpdf_dl_specialized: In addition to uncompressing the // generalized compression formats, supported non-lossy // compression will also be be decoded. At present, this includes // the RunLengthDecode filter. // // qpdf_dl_all: In addition to generalized and non-lossy // specialized filters, supported lossy compression filters will // be applied. At present, this includes DCTDecode (JPEG) // compression. Note that compressing the resulting data with // DCTDecode again will accumulate loss, so avoid multiple // compression and decompression cycles. This is mostly useful for // retrieving image data. QPDF_DLL void setDecodeLevel(qpdf_stream_decode_level_e); // Set value of content stream normalization. The default is // "false". If true, we attempt to normalize newlines inside of // content streams. Some constructs such as inline images may // thwart our efforts. There may be some cases where this can // damage the content stream. This flag should be used only for // debugging and experimenting with PDF content streams. Never // use it for production files. QPDF_DLL void setContentNormalization(bool); // Set QDF mode. QDF mode causes special "pretty printing" of // PDF objects, adds comments for easier perusing of files. // Resulting PDF files can be edited in a text editor and then run // through fix-qdf to update cross reference tables and stream // lengths. QPDF_DLL void setQDFMode(bool); // Preserve unreferenced objects. The default behavior is to // discard any object that is not visited during a traversal of // the object structure from the trailer. QPDF_DLL void setPreserveUnreferencedObjects(bool); // Always write a newline before the endstream keyword. This helps // with PDF/A compliance, though it is not sufficient for it. QPDF_DLL void setNewlineBeforeEndstream(bool); // Set the minimum PDF version. If the PDF version of the input // file (or previously set minimum version) is less than the // version passed to this method, the PDF version of the output // file will be set to this value. If the original PDF file's // version or previously set minimum version is already this // version or later, the original file's version will be used. // QPDFWriter automatically sets the minimum version to 1.4 when // R3 encryption parameters are used, and to 1.5 when object // streams are used. QPDF_DLL void setMinimumPDFVersion(std::string const&); QPDF_DLL void setMinimumPDFVersion(std::string const&, int extension_level); // Force the PDF version of the output file to be a given version. // Use of this function may create PDF files that will not work // properly with older PDF viewers. When a PDF version is set // using this function, qpdf will use this version even if the // file contains features that are not supported in that version // of PDF. In other words, you should only use this function if // you are sure the PDF file in question has no features of newer // versions of PDF or if you are willing to create files that old // viewers may try to open but not be able to properly interpret. // If any encryption has been applied to the document either // explicitly or by preserving the encryption of the source // document, forcing the PDF version to a value too low to support // that type of encryption will explicitly disable decryption. // Additionally, forcing to a version below 1.5 will disable // object streams. QPDF_DLL void forcePDFVersion(std::string const&); QPDF_DLL void forcePDFVersion(std::string const&, int extension_level); // Provide additional text to insert in the PDF file somewhere // near the beginning of the file. This can be used to add // comments to the beginning of a PDF file, for example, if those // comments are to be consumed by some other application. No // checks are performed to ensure that the text inserted here is // valid PDF. If you want to insert multiline comments, you will // need to include \n in the string yourself and start each line // with %. An extra newline will be appended if one is not // already present at the end of your text. QPDF_DLL void setExtraHeaderText(std::string const&); // Causes a deterministic /ID value to be generated. When this is // set, the current time and output file name are not used as part // of /ID generation. Instead, a digest of all significant parts // of the output file's contents is included in the /ID // calculation. Use of a deterministic /ID can be handy when it is // desirable for a repeat of the same qpdf operation on the same // inputs being written to the same outputs with the same // parameters to generate exactly the same results. This feature // is incompatible with encrypted files because, for encrypted // files, the /ID is generated before any part of the file is // written since it is an input to the encryption process. QPDF_DLL void setDeterministicID(bool); // Cause a static /ID value to be generated. Use only in test // suites. See also setDeterministicID. QPDF_DLL void setStaticID(bool); // Use a fixed initialization vector for AES-CBC encryption. This // is not secure. It should be used only in test suites for // creating predictable encrypted output. QPDF_DLL void setStaticAesIV(bool); // Suppress inclusion of comments indicating original object IDs // when writing QDF files. This can also be useful for testing, // particularly when using comparison of two qdf files to // determine whether two PDF files have identical content. QPDF_DLL void setSuppressOriginalObjectIDs(bool); // Preserve encryption. The default is true unless prefilering, // content normalization, or qdf mode has been selected in which // case encryption is never preserved. Encryption is also not // preserved if we explicitly set encryption parameters. QPDF_DLL void setPreserveEncryption(bool); // Copy encryption parameters from another QPDF object. If you // want to copy encryption from the object you are writing, call // setPreserveEncryption(true) instead. QPDF_DLL void copyEncryptionParameters(QPDF&); // Set up for encrypted output. User and owner password both must // be specified. Either or both may be the empty string. Note // that qpdf does not apply any special treatment to the empty // string, which makes it possible to create encrypted files with // empty owner passwords and non-empty user passwords or with the // same password for both user and owner. Some PDF reading // products don't handle such files very well. Enabling // encryption disables stream prefiltering and content // normalization. Note that setting R2 encryption parameters sets // the PDF version to at least 1.3, setting R3 encryption // parameters pushes the PDF version number to at least 1.4, // setting R4 parameters pushes the version to at least 1.5, or if // AES is used, 1.6, and setting R5 or R6 parameters pushes the // version to at least 1.7 with extension level 3. QPDF_DLL void setR2EncryptionParameters( char const* user_password, char const* owner_password, bool allow_print, bool allow_modify, bool allow_extract, bool allow_annotate); QPDF_DLL void setR3EncryptionParameters( char const* user_password, char const* owner_password, bool allow_accessibility, bool allow_extract, qpdf_r3_print_e print, qpdf_r3_modify_e modify); QPDF_DLL void setR4EncryptionParameters( char const* user_password, char const* owner_password, bool allow_accessibility, bool allow_extract, qpdf_r3_print_e print, qpdf_r3_modify_e modify, bool encrypt_metadata, bool use_aes); // R5 is deprecated. Do not use it for production use. Writing // R5 is supported by qpdf primarily to generate test files for // applications that may need to test R5 support. QPDF_DLL void setR5EncryptionParameters( char const* user_password, char const* owner_password, bool allow_accessibility, bool allow_extract, qpdf_r3_print_e print, qpdf_r3_modify_e modify, bool encrypt_metadata); QPDF_DLL void setR6EncryptionParameters( char const* user_password, char const* owner_password, bool allow_accessibility, bool allow_extract, qpdf_r3_print_e print, qpdf_r3_modify_e modify, bool encrypt_metadata_aes); // Create linearized output. Disables qdf mode, content // normalization, and stream prefiltering. QPDF_DLL void setLinearization(bool); // For debugging QPDF: provide the name of a file to write pass1 // of linearization to. The only reason to use this is to debug // QPDF. To linearize, QPDF writes out the file in two passes. // Usually the first pass is discarded, but lots of computations // are made in pass 1. If a linearized file comes out wrong, it // can be helpful to look at the first pass. QPDF_DLL void setLinearizationPass1Filename(std::string const&); // Create PCLm output. This is only useful for clients that know // how to create PCLm files. If a file is structured exactly as // PCLm requires, this call will tell QPDFWriter to write the PCLm // header, create certain unreferenced streams required by the // standard, and write the objects in the required order. Calling // this on an ordinary PDF serves no purpose. There is no // command-line argument that causes this method to be called. QPDF_DLL void setPCLm(bool); QPDF_DLL void write(); private: // flags used by unparseObject static int const f_stream = 1 << 0; static int const f_filtered = 1 << 1; static int const f_in_ostream = 1 << 2; enum trailer_e { t_normal, t_lin_first, t_lin_second }; int bytesNeeded(unsigned long long n); void writeBinary(unsigned long long val, unsigned int bytes); void writeString(std::string const& str); void writeBuffer(PointerHolder&); void writeStringQDF(std::string const& str); void writeStringNoQDF(std::string const& str); void writePad(int nspaces); void assignCompressedObjectNumbers(QPDFObjGen const& og); void enqueueObject(QPDFObjectHandle object); void writeObjectStreamOffsets( std::vector& offsets, int first_obj); void writeObjectStream(QPDFObjectHandle object); void writeObject(QPDFObjectHandle object, int object_stream_index = -1); void writeTrailer(trailer_e which, int size, bool xref_stream, qpdf_offset_t prev, int linearization_pass); void unparseObject(QPDFObjectHandle object, int level, unsigned int flags); void unparseObject(QPDFObjectHandle object, int level, unsigned int flags, // for stream dictionaries size_t stream_length, bool compress); void unparseChild(QPDFObjectHandle child, int level, int flags); void initializeSpecialStreams(); void preserveObjectStreams(); void generateObjectStreams(); std::string getOriginalID1(); void generateID(); void interpretR3EncryptionParameters( std::set& bits_to_clear, char const* user_password, char const* owner_password, bool allow_accessibility, bool allow_extract, qpdf_r3_print_e print, qpdf_r3_modify_e modify); void disableIncompatibleEncryption(int major, int minor, int extension_level); void parseVersion(std::string const& version, int& major, int& minor) const; int compareVersions(int major1, int minor1, int major2, int minor2) const; void setEncryptionParameters( char const* user_password, char const* owner_password, int V, int R, int key_len, std::set& bits_to_clear); void setEncryptionParametersInternal( int V, int R, int key_len, long P, std::string const& O, std::string const& U, std::string const& OE, std::string const& UE, std::string const& Perms, std::string const& id1, std::string const& user_password, std::string const& encryption_key); void setDataKey(int objid); int openObject(int objid = 0); void closeObject(int objid); QPDFObjectHandle getTrimmedTrailer(); void prepareFileForWrite(); void enqueueObjectsStandard(); void enqueueObjectsPCLm(); void writeStandard(); void writeLinearized(); void enqueuePart(std::vector& part); void writeEncryptionDictionary(); void writeHeader(); void writeHintStream(int hint_id); qpdf_offset_t writeXRefTable( trailer_e which, int first, int last, int size); qpdf_offset_t writeXRefTable( trailer_e which, int first, int last, int size, // for linearization qpdf_offset_t prev, bool suppress_offsets, int hint_id, qpdf_offset_t hint_offset, qpdf_offset_t hint_length, int linearization_pass); qpdf_offset_t writeXRefStream( int objid, int max_id, qpdf_offset_t max_offset, trailer_e which, int first, int last, int size); qpdf_offset_t writeXRefStream( int objid, int max_id, qpdf_offset_t max_offset, trailer_e which, int first, int last, int size, // for linearization qpdf_offset_t prev, int hint_id, qpdf_offset_t hint_offset, qpdf_offset_t hint_length, bool skip_compression, int linearization_pass); int calculateXrefStreamPadding(int xref_bytes); // When filtering subsections, push additional pipelines to the // stack. When ready to switch, activate the pipeline stack. // Pipelines passed to pushPipeline are deleted when // clearPipelineStack is called. Pipeline* pushPipeline(Pipeline*); void activatePipelineStack(); void initializePipelineStack(Pipeline *); // Calls finish on the current pipeline and pops the pipeline // stack until the top of stack is a previous active top of stack, // and restores the pipeline to that point. Deletes any pipelines // that it pops. If the bp argument is non-null and any of the // stack items are of type Pl_Buffer, the buffer is retrieved. void popPipelineStack(PointerHolder* bp = 0); void adjustAESStreamLength(size_t& length); void pushEncryptionFilter(); void pushDiscardFilter(); void pushMD5Pipeline(); void computeDeterministicIDData(); void discardGeneration(std::map const& in, std::map& out); class Members { friend class QPDFWriter; public: ~Members(); private: Members(QPDF& pdf); Members(Members const&); QPDF& pdf; char const* filename; FILE* file; bool close_file; Pl_Buffer* buffer_pipeline; Buffer* output_buffer; bool normalize_content_set; bool normalize_content; bool compress_streams; bool compress_streams_set; qpdf_stream_decode_level_e stream_decode_level; bool stream_decode_level_set; bool qdf_mode; bool preserve_unreferenced_objects; bool newline_before_endstream; bool static_id; bool suppress_original_object_ids; bool direct_stream_lengths; bool encrypted; bool preserve_encryption; bool linearized; bool pclm; qpdf_object_stream_e object_stream_mode; std::string encryption_key; bool encrypt_metadata; bool encrypt_use_aes; std::map encryption_dictionary; int encryption_V; int encryption_R; std::string id1; // for /ID key of std::string id2; // trailer dictionary std::string final_pdf_version; int final_extension_level; std::string min_pdf_version; int min_extension_level; std::string forced_pdf_version; int forced_extension_level; std::string extra_header_text; int encryption_dict_objid; std::string cur_data_key; std::list > to_delete; Pl_Count* pipeline; std::list object_queue; std::map obj_renumber; std::map xref; std::map lengths; int next_objid; int cur_stream_length_id; size_t cur_stream_length; bool added_newline; int max_ostream_index; std::set normalized_streams; std::map page_object_to_seq; std::map contents_to_page_seq; std::map object_to_object_stream; std::map > object_stream_to_objects; std::list pipeline_stack; bool deterministic_id; Pl_MD5* md5_pipeline; std::string deterministic_id_data; // For linearization only std::string lin_pass1_filename; std::map obj_renumber_no_gen; std::map object_to_object_stream_no_gen; }; // Keep all member variables inside the Members object, which we // dynamically allocate. This makes it possible to add new private // members without breaking binary compatibility. PointerHolder m; }; #endif // __QPDFWRITER_HH__ qpdf-8.0.2/include/qpdf/BufferInputSource.hh0000644000064100006410000000401413247541377017055 0ustar ejbejb// Copyright (c) 2005-2018 Jay Berkenbilt // // This file is part of qpdf. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Versions of qpdf prior to version 7 were released under the terms // of version 2.0 of the Artistic License. At your option, you may // continue to consider qpdf to be licensed under those terms. Please // see the manual for additional information. #ifndef __QPDF_BUFFERINPUTSOURCE_HH__ #define __QPDF_BUFFERINPUTSOURCE_HH__ #include #include class BufferInputSource: public InputSource { public: // If own_memory is true, BufferInputSource will delete the buffer // when finished with it. Otherwise, the caller owns the memory. QPDF_DLL BufferInputSource(std::string const& description, Buffer* buf, bool own_memory = false); QPDF_DLL BufferInputSource(std::string const& description, std::string const& contents); QPDF_DLL virtual ~BufferInputSource(); QPDF_DLL virtual qpdf_offset_t findAndSkipNextEOL(); QPDF_DLL virtual std::string const& getName() const; QPDF_DLL virtual qpdf_offset_t tell(); QPDF_DLL virtual void seek(qpdf_offset_t offset, int whence); QPDF_DLL virtual void rewind(); QPDF_DLL virtual size_t read(char* buffer, size_t length); QPDF_DLL virtual void unreadCh(char ch); private: bool own_memory; std::string description; Buffer* buf; qpdf_offset_t cur_offset; }; #endif // __QPDF_BUFFERINPUTSOURCE_HH__ qpdf-8.0.2/include/qpdf/Pl_Flate.hh0000644000064100006410000000314513247541377015135 0ustar ejbejb// Copyright (c) 2005-2018 Jay Berkenbilt // // This file is part of qpdf. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Versions of qpdf prior to version 7 were released under the terms // of version 2.0 of the Artistic License. At your option, you may // continue to consider qpdf to be licensed under those terms. Please // see the manual for additional information. #ifndef __PL_FLATE_HH__ #define __PL_FLATE_HH__ #include class Pl_Flate: public Pipeline { public: static int const def_bufsize = 65536; enum action_e { a_inflate, a_deflate }; QPDF_DLL Pl_Flate(char const* identifier, Pipeline* next, action_e action, int out_bufsize = def_bufsize); QPDF_DLL virtual ~Pl_Flate(); QPDF_DLL virtual void write(unsigned char* data, size_t len); QPDF_DLL virtual void finish(); private: void handleData(unsigned char* data, int len, int flush); void checkError(char const* prefix, int error_code); unsigned char* outbuf; int out_bufsize; action_e action; bool initialized; void* zdata; }; #endif // __PL_FLATE_HH__ qpdf-8.0.2/include/qpdf/QPDFObjectHandle.hh0000644000064100006410000010241013247541377016437 0ustar ejbejb// Copyright (c) 2005-2018 Jay Berkenbilt // // This file is part of qpdf. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Versions of qpdf prior to version 7 were released under the terms // of version 2.0 of the Artistic License. At your option, you may // continue to consider qpdf to be licensed under those terms. Please // see the manual for additional information. #ifndef __QPDFOBJECTHANDLE_HH__ #define __QPDFOBJECTHANDLE_HH__ #include #include #include #include #include #include #include #include #include #include #include #include #include class Pipeline; class QPDF; class QPDF_Dictionary; class QPDF_Array; class QPDFTokenizer; class QPDFExc; class Pl_QPDFTokenizer; class QPDFObjectHandle { public: // This class is used by replaceStreamData. It provides an // alternative way of associating stream data with a stream. See // comments on replaceStreamData and newStream for additional // details. class StreamDataProvider { public: QPDF_DLL virtual ~StreamDataProvider() { } // The implementation of this function must write stream data // to the given pipeline. The stream data must conform to // whatever filters are explicitly associated with the stream. // QPDFWriter may, in some cases, add compression, but if it // does, it will update the filters as needed. Every call to // provideStreamData for a given stream must write the same // data. The object ID and generation passed to this method // are those that belong to the stream on behalf of which the // provider is called. They may be ignored or used by the // implementation for indexing or other purposes. This // information is made available just to make it more // convenient to use a single StreamDataProvider object to // provide data for multiple streams. virtual void provideStreamData(int objid, int generation, Pipeline* pipeline) = 0; }; // The TokenFilter class provides a way to filter content streams // in a lexically aware fashion. TokenFilters can be attached to // streams using the addTokenFilter or addContentTokenFilter // methods or can be applied on the spot by filterPageContents. // You may also use Pl_QPDFTokenizer directly if you need full // control. // // The handleToken method is called for each token, including the // eof token, and then handleEOF is called at the very end. // Handlers may call write (or writeToken) to pass data // downstream. Please see examples/pdf-filter-tokens.cc and // examples/pdf-count-strings.cc for examples of using // TokenFilters. // // Please note that when you call token.getValue() on a token of // type tt_string, you get the string value without any // delimiters. token.getRawValue() will return something suitable // for being written to output, or calling writeToken with a // string token will also work. The correct way to construct a // string token that would write the literal value (str) is // QPDFTokenizer::Token(QPDFTokenizer::tt_string, "str"). class TokenFilter { public: QPDF_DLL TokenFilter() { } QPDF_DLL virtual ~TokenFilter() { } virtual void handleToken(QPDFTokenizer::Token const&) = 0; QPDF_DLL virtual void handleEOF(); class PipelineAccessor { friend class Pl_QPDFTokenizer; private: static void setPipeline(TokenFilter* f, Pipeline* p) { f->setPipeline(p); } }; protected: QPDF_DLL void write(char const* data, size_t len); QPDF_DLL void write(std::string const& str); QPDF_DLL void writeToken(QPDFTokenizer::Token const&); private: void setPipeline(Pipeline*); Pipeline* pipeline; }; // This class is used by parse to decrypt strings when reading an // object that contains encrypted strings. class StringDecrypter { public: QPDF_DLL virtual ~StringDecrypter() { } virtual void decryptString(std::string& val) = 0; }; // This class is used by parsePageContents. Callers must // instantiate a subclass of this with handlers defined to accept // QPDFObjectHandles that are parsed from the stream. class ParserCallbacks { public: QPDF_DLL virtual ~ParserCallbacks() { } virtual void handleObject(QPDFObjectHandle) = 0; virtual void handleEOF() = 0; protected: // Implementors may call this method during parsing to // terminate parsing early. This method throws an exception // that is caught by parsePageContents, so its effect is // immediate. QPDF_DLL void terminateParsing(); }; QPDF_DLL QPDFObjectHandle(); QPDF_DLL QPDFObjectHandle(QPDFObjectHandle const&); QPDF_DLL QPDFObjectHandle& operator=(QPDFObjectHandle const&); QPDF_DLL bool isInitialized() const; // Return type code and type name of underlying object. These are // useful for doing rapid type tests (like switch statements) or // for testing and debugging. QPDF_DLL QPDFObject::object_type_e getTypeCode(); QPDF_DLL char const* getTypeName(); // Exactly one of these will return true for any object. Operator // and InlineImage are only allowed in content streams. QPDF_DLL bool isBool(); QPDF_DLL bool isNull(); QPDF_DLL bool isInteger(); QPDF_DLL bool isReal(); QPDF_DLL bool isName(); QPDF_DLL bool isString(); QPDF_DLL bool isOperator(); QPDF_DLL bool isInlineImage(); QPDF_DLL bool isArray(); QPDF_DLL bool isDictionary(); QPDF_DLL bool isStream(); QPDF_DLL bool isReserved(); // This returns true in addition to the query for the specific // type for indirect objects. QPDF_DLL bool isIndirect(); // True for everything except array, dictionary, stream, word, and // inline image. QPDF_DLL bool isScalar(); // Public factory methods // Construct an object of any type from a string representation of // the object. Throws QPDFExc with an empty filename and an // offset into the string if there is an error. Any indirect // object syntax (obj gen R) will cause a logic_error exception to // be thrown. If object_description is provided, it will appear // in the message of any QPDFExc exception thrown for invalid // syntax. QPDF_DLL static QPDFObjectHandle parse(std::string const& object_str, std::string const& object_description = ""); // Construct an object as above by reading from the given // InputSource at its current position and using the tokenizer you // supply. Indirect objects and encrypted strings are permitted. // This method is intended to be called by QPDF for parsing // objects that are ready from the object's input stream. QPDF_DLL static QPDFObjectHandle parse(PointerHolder input, std::string const& object_description, QPDFTokenizer&, bool& empty, StringDecrypter* decrypter, QPDF* context); // Helpers for parsing content streams // Parse a page's contents through ParserCallbacks, described // above. This method works whether the contents are a single // stream or an array of streams. Call on a page object. QPDF_DLL void parsePageContents(ParserCallbacks* callbacks); // Pass a page's contents through the given TokenFilter. If a // pipeline is also provided, it will be the target of the write // methods from the token filter. If a pipeline is not specified, // any output generated by the token filter will be discarded. Use // this interface if you need to pass a page's contents through // filter for work purposes without having that filter // automatically applied to the page's contents, as happens with // addContentTokenFilter. See examples/pdf-count-strings.cc for an // example. QPDF_DLL void filterPageContents(TokenFilter* filter, Pipeline* next = 0); // Pipe a page's contents through the given pipeline. This method // works whether the contents are a single stream or an array of // streams. Call on a page object. QPDF_DLL void pipePageContents(Pipeline* p); // When called on a stream or stream array that is some page's // content streams, do the same as pipePageContents. This method // is a lower level way to do what pipePageContents does, but it // allows you to perform this operation on a contents object that // is disconnected from a page object. The description argument // should describe the containing page and is used in error // messages. The all_description argument is initialized to // something that could be used to describe the result of the // pipeline. It is the description amended with the identifiers of // the underlying objects. QPDF_DLL void pipeContentStreams(Pipeline* p, std::string const& description, std::string& all_description); // Older method: stream_or_array should be the value of /Contents // from a page object. It's more convenient to just call // parsePageContents on the page object, and error messages will // also be more useful because the page object information will be // known. QPDF_DLL static void parseContentStream(QPDFObjectHandle stream_or_array, ParserCallbacks* callbacks); // Attach a token filter to a page's contents. If the page's // contents is an array of streams, it is automatically coalesced. // The token filter is applied to the page's contents as a single // stream. QPDF_DLL void addContentTokenFilter(PointerHolder token_filter); // As of qpdf 8, it is possible to add custom token filters to a // stream. The tokenized stream data is passed through the token // filter after all original filters but before content stream // normalization if requested. This is a low-level interface to // add it to a stream. You will usually want to call // addContentTokenFilter instead, which can be applied to a page // object, and which will automatically handle the case of pages // whose contents are split across multiple streams. void addTokenFilter(PointerHolder token_filter); // Type-specific factories QPDF_DLL static QPDFObjectHandle newNull(); QPDF_DLL static QPDFObjectHandle newBool(bool value); QPDF_DLL static QPDFObjectHandle newInteger(long long value); QPDF_DLL static QPDFObjectHandle newReal(std::string const& value); QPDF_DLL static QPDFObjectHandle newReal(double value, int decimal_places = 0); QPDF_DLL static QPDFObjectHandle newName(std::string const& name); QPDF_DLL static QPDFObjectHandle newString(std::string const& str); QPDF_DLL static QPDFObjectHandle newOperator(std::string const&); QPDF_DLL static QPDFObjectHandle newInlineImage(std::string const&); QPDF_DLL static QPDFObjectHandle newArray(); QPDF_DLL static QPDFObjectHandle newArray( std::vector const& items); QPDF_DLL static QPDFObjectHandle newDictionary(); QPDF_DLL static QPDFObjectHandle newDictionary( std::map const& items); // Create a new stream and associate it with the given qpdf // object. A subsequent call must be made to replaceStreamData() // to provide data for the stream. The stream's dictionary may be // retrieved by calling getDict(), and the resulting dictionary // may be modified. Alternatively, you can create a new // dictionary and call replaceDict to install it. QPDF_DLL static QPDFObjectHandle newStream(QPDF* qpdf); // Create a new stream and associate it with the given qpdf // object. Use the given buffer as the stream data. The stream // dictionary's /Length key will automatically be set to the size // of the data buffer. If additional keys are required, the // stream's dictionary may be retrieved by calling getDict(), and // the resulting dictionary may be modified. This method is just // a convenient wrapper around the newStream() and // replaceStreamData(). It is a convenience methods for streams // that require no parameters beyond the stream length. Note that // you don't have to deal with compression yourself if you use // QPDFWriter. By default, QPDFWriter will automatically compress // uncompressed stream data. Example programs are provided that // illustrate this. QPDF_DLL static QPDFObjectHandle newStream(QPDF* qpdf, PointerHolder data); // Create new stream with data from string. This method will // create a copy of the data rather than using the user-provided // buffer as in the PointerHolder version of newStream. QPDF_DLL static QPDFObjectHandle newStream(QPDF* qpdf, std::string const& data); // A reserved object is a special sentinel used for qpdf to // reserve a spot for an object that is going to be added to the // QPDF object. Normally you don't have to use this type since // you can just call QPDF::makeIndirectObject. However, in some // cases, if you have to create objects with circular references, // you may need to create a reserved object so that you can have a // reference to it and then replace the object later. Reserved // objects have the special property that they can't be resolved // to direct objects. This makes it possible to replace a // reserved object with a new object while preserving existing // references to them. When you are ready to replace a reserved // object with its replacement, use QPDF::replaceReserved for this // purpose rather than the more general QPDF::replaceObject. It // is an error to try to write a QPDF with QPDFWriter if it has // any reserved objects in it. QPDF_DLL static QPDFObjectHandle newReserved(QPDF* qpdf); // Provide an owning qpdf and object description. The library does // this automatically with objects that are read from from the // input PDF and with objects that are created programmatically // and inserted into the QPDF by adding them to an array or a // dictionary or creating a new indirect object. Most end user // code will not need to call this. If an object has an owning // qpdf and object description, it enables qpdf to give warnings // with proper context in some cases where it would otherwise // raise exceptions. QPDF_DLL void setObjectDescription(QPDF* owning_qpdf, std::string const& object_description); QPDF_DLL bool hasObjectDescription(); // Accessor methods. If an accessor method that is valid for only // a particular object type is called on an object of the wrong // type, an exception is thrown. // Methods for bool objects QPDF_DLL bool getBoolValue(); // Methods for integer objects QPDF_DLL long long getIntValue(); // Methods for real objects QPDF_DLL std::string getRealValue(); // Methods that work for both integer and real objects QPDF_DLL bool isNumber(); QPDF_DLL double getNumericValue(); // Methods for name objects; see also name and array objects QPDF_DLL std::string getName(); // Methods for string objects QPDF_DLL std::string getStringValue(); // If a string starts with the UTF-16 marker, it is converted from // UTF-16 to UTF-8. Otherwise, it is treated as a string encoded // with PDF Doc Encoding. PDF Doc Encoding is identical to // ISO-8859-1 except in the range from 0200 through 0240, where // there is a mapping of characters to Unicode. QPDF versions // prior to version erroneously left characters in that range // unmapped. QPDF_DLL std::string getUTF8Value(); // Methods for content stream objects QPDF_DLL std::string getOperatorValue(); QPDF_DLL std::string getInlineImageValue(); // Methods for array objects; see also name and array objects QPDF_DLL int getArrayNItems(); QPDF_DLL QPDFObjectHandle getArrayItem(int n); QPDF_DLL std::vector getArrayAsVector(); // Methods for dictionary objects QPDF_DLL bool hasKey(std::string const&); QPDF_DLL QPDFObjectHandle getKey(std::string const&); QPDF_DLL std::set getKeys(); QPDF_DLL std::map getDictAsMap(); // Methods for name and array objects QPDF_DLL bool isOrHasName(std::string const&); // Return the QPDF object that owns an indirect object. Returns // null for a direct object. QPDF_DLL QPDF* getOwningQPDF(); // Create a shallow copy of an object as a direct object. Since // this is a shallow copy, for dictionaries and arrays, any keys // or items that were indirect objects will still be indirect // objects that point to the same place. QPDF_DLL QPDFObjectHandle shallowCopy(); // Mutator methods. Use with caution. // Recursively copy this object, making it direct. Throws an // exception if a loop is detected or any sub-object is a stream. QPDF_DLL void makeDirect(); // Mutator methods for array objects QPDF_DLL void setArrayItem(int, QPDFObjectHandle const&); QPDF_DLL void setArrayFromVector(std::vector const& items); // Insert an item before the item at the given position ("at") so // that it has that position after insertion. If "at" is equal to // the size of the array, insert the item at the end. QPDF_DLL void insertItem(int at, QPDFObjectHandle const& item); QPDF_DLL void appendItem(QPDFObjectHandle const& item); // Remove the item at that position, reducing the size of the // array by one. QPDF_DLL void eraseItem(int at); // Mutator methods for dictionary objects // Replace value of key, adding it if it does not exist QPDF_DLL void replaceKey(std::string const& key, QPDFObjectHandle); // Remove key, doing nothing if key does not exist QPDF_DLL void removeKey(std::string const& key); // If the object is null, remove the key. Otherwise, replace it. QPDF_DLL void replaceOrRemoveKey(std::string const& key, QPDFObjectHandle); // Methods for stream objects QPDF_DLL QPDFObjectHandle getDict(); // If addTokenFilter has been called for this stream, then the // original data should be considered to be modified. This means we // should avoid optimizations such as not filtering a stream that // is already compressed. QPDF_DLL bool isDataModified(); // Returns filtered (uncompressed) stream data. Throws an // exception if the stream is filtered and we can't decode it. QPDF_DLL PointerHolder getStreamData( qpdf_stream_decode_level_e level = qpdf_dl_generalized); // Returns unfiltered (raw) stream data. QPDF_DLL PointerHolder getRawStreamData(); // Write stream data through the given pipeline. A null pipeline // value may be used if all you want to do is determine whether a // stream is filterable and would be filtered based on the // provided flags. If flags is 0, write raw stream data and return // false. Otherwise, the flags alter the behavior in the following // way: // // encode_flags: // // qpdf_sf_compress -- compress data with /FlateDecode if no other // compression filters are applied. // // qpdf_sf_normalize -- tokenize as content stream and normalize tokens // // decode_level: // // qpdf_dl_none -- do not decode any streams. // // qpdf_dl_generalized -- decode supported general-purpose // filters. This includes /ASCIIHexDecode, /ASCII85Decode, // /LZWDecode, and /FlateDecode. // // qpdf_dl_specialized -- in addition to generalized filters, also // decode supported non-lossy specialized filters. This includes // /RunLengthDecode. // // qpdf_dl_all -- in addition to generalized and non-lossy // specialized filters, decode supported lossy filters. This // includes /DCTDecode. // // If, based on the flags and the filters and decode parameters, // we determine that we know how to apply all requested filters, // do so and return true if we are successful. // // In all cases, a return value of true means that filtered data // has been written successfully. If filtering is requested but // this method returns false, it means there was some error in the // filtering, in which case the resulting data is likely partially // filtered and/or incomplete and may not be consistent with the // configured filters. QPDFWriter handles this by attempting to // get the stream data without filtering, but callers should // consider a false return value when decode_level is not // qpdf_dl_none to be a potential loss of data. If you intend to // retry in that case, pass true as the value of will_retry. This // changes the warning issued by the library to indicate that the // operation will be retried without filtering to avoid data loss. QPDF_DLL bool pipeStreamData(Pipeline*, unsigned long encode_flags, qpdf_stream_decode_level_e decode_level, bool suppress_warnings = false, bool will_retry = false); // Legacy pipeStreamData. This maps to the the flags-based // pipeStreamData as follows: // filter = false -> encode_flags = 0 // filter = true -> decode_level = qpdf_dl_generalized // normalize = true -> encode_flags |= qpdf_sf_normalize // compress = true -> encode_flags |= qpdf_sf_compress QPDF_DLL bool pipeStreamData(Pipeline*, bool filter, bool normalize, bool compress); // Replace a stream's dictionary. The new dictionary must be // consistent with the stream's data. This is most appropriately // used when creating streams from scratch that will use a stream // data provider and therefore start with an empty dictionary. It // may be more convenient in this case than calling getDict and // modifying it for each key. The pdf-create example does this. QPDF_DLL void replaceDict(QPDFObjectHandle); // Replace this stream's stream data with the given data buffer, // and replace the /Filter and /DecodeParms keys in the stream // dictionary with the given values. (If either value is empty, // the corresponding key is removed.) The stream's /Length key is // replaced with the length of the data buffer. The stream is // interpreted as if the data read from the file, after any // decryption filters have been applied, is as presented. QPDF_DLL void replaceStreamData(PointerHolder data, QPDFObjectHandle const& filter, QPDFObjectHandle const& decode_parms); // Replace the stream's stream data with the given string. // This method will create a copy of the data rather than using // the user-provided buffer as in the PointerHolder version // of replaceStreamData. QPDF_DLL void replaceStreamData(std::string const& data, QPDFObjectHandle const& filter, QPDFObjectHandle const& decode_parms); // As above, replace this stream's stream data. Instead of // directly providing a buffer with the stream data, call the // given provider's provideStreamData method. See comments on the // StreamDataProvider class (defined above) for details on the // method. The data must be consistent with filter and // decode_parms as provided. Although it is more complex to use // this form of replaceStreamData than the one that takes a // buffer, it makes it possible to avoid allocating memory for the // stream data. Example programs are provided that use both forms // of replaceStreamData. // Note about stream length: for any given stream, the provider // must provide the same amount of data each time it is called. // This is critical for making linearization work properly. // Versions of qpdf before 3.0.0 required a length to be specified // here. Starting with version 3.0.0, this is no longer necessary // (or permitted). The first time the stream data provider is // invoked for a given stream, the actual length is stored. // Subsequent times, it is enforced that the length be the same as // the first time. // If you have gotten a compile error here while building code // that worked with older versions of qpdf, just omit the length // parameter. You can also simplify your code by not having to // compute the length in advance. QPDF_DLL void replaceStreamData(PointerHolder provider, QPDFObjectHandle const& filter, QPDFObjectHandle const& decode_parms); // Access object ID and generation. For direct objects, return // object ID 0. // NOTE: Be careful about calling getObjectID() and // getGeneration() directly as this can lead to the pattern of // depending on object ID or generation without the other. In // general, when keeping track of object IDs, it's better to use // QPDFObjGen instead. QPDF_DLL QPDFObjGen getObjGen() const; QPDF_DLL int getObjectID() const; QPDF_DLL int getGeneration() const; QPDF_DLL std::string unparse(); QPDF_DLL std::string unparseResolved(); // Convenience routines for commonly performed functions // Returns an empty map if there are no images or no resources. // This function does not presently support inherited resources. // If this is a significant concern, call // pushInheritedAttributesToPage() on the QPDF object that owns // this page. See comment in the source for details. Return value // is a map from XObject name to the image object, which is always // a stream. QPDF_DLL std::map getPageImages(); // Returns a vector of stream objects representing the content // streams for the given page. This routine allows the caller to // not care whether there are one or more than one content streams // for a page. QPDF_DLL std::vector getPageContents(); // Add the given object as a new content stream for this page. If // parameter 'first' is true, add to the beginning. Otherwise, add // to the end. This routine automatically converts the page // contents to an array if it is a scalar, allowing the caller not // to care what the initial structure is. You can call // coalesceContentStreams() afterwards if you want to force it to // be a single stream. QPDF_DLL void addPageContents(QPDFObjectHandle contents, bool first); // Rotate a page. If relative is false, set the rotation of the // page to angle. Otherwise, add angle to the rotation of the // page. Angle must be a multiple of 90. Adding 90 to the rotation // rotates clockwise by 90 degrees. QPDF_DLL void rotatePage(int angle, bool relative); // Coalesce a page's content streams. A page's content may be a // stream or an array of streams. If this page's content is an // array, concatenate the streams into a single stream. This can // be useful when working with files that split content streams in // arbitrary spots, such as in the middle of a token, as that can // confuse some software. You could also call this after calling // addPageContents. QPDF_DLL void coalesceContentStreams(); // Initializers for objects. This Factory class gives the QPDF // class specific permission to call factory methods without // making it a friend of the whole QPDFObjectHandle class. class Factory { friend class QPDF; private: static QPDFObjectHandle newIndirect(QPDF* qpdf, int objid, int generation) { return QPDFObjectHandle::newIndirect(qpdf, objid, generation); } // object must be dictionary object static QPDFObjectHandle newStream( QPDF* qpdf, int objid, int generation, QPDFObjectHandle stream_dict, qpdf_offset_t offset, size_t length) { return QPDFObjectHandle::newStream( qpdf, objid, generation, stream_dict, offset, length); } }; friend class Factory; // Accessor for raw underlying object -- only QPDF is allowed to // call this. class ObjAccessor { friend class QPDF; private: static PointerHolder getObject(QPDFObjectHandle& o) { o.dereference(); return o.m->obj; } }; friend class ObjAccessor; // Provide access to specific classes for recursive // releaseResolved(). class ReleaseResolver { friend class QPDF_Dictionary; friend class QPDF_Array; friend class QPDF_Stream; private: static void releaseResolved(QPDFObjectHandle& o) { o.releaseResolved(); } }; friend class ReleaseResolver; // Convenience routine: Throws if the assumption is violated. Your // code will be better if you call one of the isType methods and // handle the case of the type being wrong, but these can be // convenient if you have already verified the type. QPDF_DLL void assertInitialized() const; QPDF_DLL void assertNull(); QPDF_DLL void assertBool(); QPDF_DLL void assertInteger(); QPDF_DLL void assertReal(); QPDF_DLL void assertName(); QPDF_DLL void assertString(); QPDF_DLL void assertOperator(); QPDF_DLL void assertInlineImage(); QPDF_DLL void assertArray(); QPDF_DLL void assertDictionary(); QPDF_DLL void assertStream(); QPDF_DLL void assertReserved(); QPDF_DLL void assertIndirect(); QPDF_DLL void assertScalar(); QPDF_DLL void assertNumber(); // The isPageObject method checks the /Type key of the object. // This is not completely reliable as there are some otherwise // valid files whose /Type is wrong for page objects. qpdf is // slightly more accepting but may still return false here when // treating the object as a page would work. Use this sparingly. QPDF_DLL bool isPageObject(); QPDF_DLL bool isPagesObject(); QPDF_DLL void assertPageObject(); private: QPDFObjectHandle(QPDF*, int objid, int generation); QPDFObjectHandle(QPDFObject*); enum parser_state_e { st_top, st_start, st_stop, st_eof, st_dictionary, st_array }; // Private object factory methods static QPDFObjectHandle newIndirect(QPDF*, int objid, int generation); static QPDFObjectHandle newStream( QPDF* qpdf, int objid, int generation, QPDFObjectHandle stream_dict, qpdf_offset_t offset, size_t length); void typeWarning(char const* expected_type, std::string const& warning); void objectWarning(std::string const& warning); void assertType(char const* type_name, bool istype); void dereference(); void makeDirectInternal(std::set& visited); void releaseResolved(); static void setObjectDescriptionFromInput( QPDFObjectHandle, QPDF*, std::string const&, PointerHolder, qpdf_offset_t); static QPDFObjectHandle parseInternal( PointerHolder input, std::string const& object_description, QPDFTokenizer& tokenizer, bool& empty, StringDecrypter* decrypter, QPDF* context, bool content_stream); void parseContentStream_internal( std::string const& description, ParserCallbacks* callbacks); static void parseContentStream_data( PointerHolder, std::string const& description, ParserCallbacks* callbacks); std::vector arrayOrStreamToStreamArray( std::string const& description, std::string& all_description); static void warn(QPDF*, QPDFExc const&); class Members { friend class QPDFObjectHandle; public: QPDF_DLL ~Members(); private: Members(); Members(QPDF* qpdf, int objid, int generation); Members(QPDFObject* data); bool initialized; QPDF* qpdf; int objid; // 0 for direct object int generation; PointerHolder obj; bool reserved; }; PointerHolder m; }; #endif // __QPDFOBJECTHANDLE_HH__ qpdf-8.0.2/README-windows-install.txt0000644000064100006410000000103413247541377015376 0ustar ejbejbThis file is README-windows-install.txt in the source distribution and README.txt in the Windows binary distribution. QPDF is completely relocatable. To use qpdf.exe or the qpdf DLL, just have the bin directory in your path. To compile with qpdf, just add the lib directory to your library path and the include directory to your include path. If you are going to use Pl_DCT in your code, you will also need to have jpeg library development files in your build environment. Detailed documentation may be found in the doc directory. Enjoy! qpdf-8.0.2/config.sub0000755000064100006410000010517613247541377012543 0ustar ejbejb#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011, 2012 Free Software Foundation, Inc. timestamp='2012-02-10' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file 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, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted GNU ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; android-linux) os=-linux-android basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | be32 | be64 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | epiphany \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ | nios | nios2 \ | ns16k | ns32k \ | open8 \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu \ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; c54x) basic_machine=tic54x-unknown ;; c55x) basic_machine=tic55x-unknown ;; c6x) basic_machine=tic6x-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; strongarm | thumb | xscale) basic_machine=arm-unknown ;; xgate) basic_machine=$basic_machine-unknown os=-none ;; xscaleeb) basic_machine=armeb-unknown ;; xscaleel) basic_machine=armel-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c54x-*) basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c55x-*) basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c6x-*) basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze) basic_machine=microblaze-xilinx ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i386-pc os=-msys ;; mvs) basic_machine=i370-ibm os=-mvs ;; nacl) basic_machine=le32-unknown os=-nacl ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; neo-tandem) basic_machine=neo-tandem ;; nse-tandem) basic_machine=nse-tandem ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; strongarm-* | thumb-*) basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tile*) basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -nacl*) ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; tic54x-*) os=-coff ;; tic55x-*) os=-coff ;; tic6x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: qpdf-8.0.2/libqpdf/0000755000064100006410000000000013247543020012152 5ustar ejbejbqpdf-8.0.2/libqpdf/QPDFTokenizer.cc0000644000064100006410000004113013247541377015122 0ustar ejbejb#include // DO NOT USE ctype -- it is locale dependent for some things, and // it's not worth the risk of including it in case it may accidentally // be used. #include #include #include #include #include #include #include QPDFTokenizer::Members::Members() : pound_special_in_name(true), allow_eof(false), include_ignorable(false) { reset(); } void QPDFTokenizer::Members::reset() { state = st_top; type = tt_bad; val = ""; raw_val = ""; error_message = ""; unread_char = false; char_to_unread = '\0'; string_depth = 0; string_ignoring_newline = false; last_char_was_bs = false; } QPDFTokenizer::Members::~Members() { } QPDFTokenizer::Token::Token(token_type_e type, std::string const& value) : type(type), value(value), raw_value(value) { if (type == tt_string) { raw_value = QPDFObjectHandle::newString(value).unparse(); } else if (type == tt_string) { raw_value = QPDFObjectHandle::newName(value).unparse(); } } QPDFTokenizer::QPDFTokenizer() : m(new Members()) { } void QPDFTokenizer::allowPoundAnywhereInName() { QTC::TC("qpdf", "QPDFTokenizer allow pound anywhere in name"); this->m->pound_special_in_name = false; } void QPDFTokenizer::allowEOF() { this->m->allow_eof = true; } void QPDFTokenizer::includeIgnorable() { this->m->include_ignorable = true; } bool QPDFTokenizer::isSpace(char ch) { return ((ch == '\0') || QUtil::is_space(ch)); } bool QPDFTokenizer::isDelimiter(char ch) { return (strchr(" \t\n\v\f\r()<>[]{}/%", ch) != 0); } void QPDFTokenizer::resolveLiteral() { if ((this->m->val.length() > 0) && (this->m->val.at(0) == '/')) { this->m->type = tt_name; // Deal with # in name token. Note: '/' by itself is a // valid name, so don't strip leading /. That way we // don't have to deal with the empty string as a name. std::string nval = "/"; char const* valstr = this->m->val.c_str() + 1; for (char const* p = valstr; *p; ++p) { if ((*p == '#') && this->m->pound_special_in_name) { if (p[1] && p[2] && QUtil::is_hex_digit(p[1]) && QUtil::is_hex_digit(p[2])) { char num[3]; num[0] = p[1]; num[1] = p[2]; num[2] = '\0'; char ch = static_cast(strtol(num, 0, 16)); if (ch == '\0') { this->m->type = tt_bad; QTC::TC("qpdf", "QPDFTokenizer null in name"); this->m->error_message = "null character not allowed in name token"; nval += "#00"; } else { nval += ch; } p += 2; } else { QTC::TC("qpdf", "QPDFTokenizer bad name"); this->m->type = tt_bad; this->m->error_message = "invalid name token"; nval += *p; } } else { nval += *p; } } this->m->val = nval; } else if (QUtil::is_number(this->m->val.c_str())) { if (this->m->val.find('.') != std::string::npos) { this->m->type = tt_real; } else { this->m->type = tt_integer; } } else if ((this->m->val == "true") || (this->m->val == "false")) { this->m->type = tt_bool; } else if (this->m->val == "null") { this->m->type = tt_null; } else { // I don't really know what it is, so leave it as tt_word. // Lots of cases ($, #, etc.) other than actual words fall // into this category, but that's okay at least for now. this->m->type = tt_word; } } void QPDFTokenizer::presentCharacter(char ch) { if (this->m->state == st_token_ready) { throw std::logic_error( "INTERNAL ERROR: QPDF tokenizer presented character " "while token is waiting"); } char orig_ch = ch; // State machine is implemented such that some characters may be // handled more than once. This happens whenever you have to use // the character that caused a state change in the new state. bool handled = true; if (this->m->state == st_top) { // Note: we specifically do not use ctype here. It is // locale-dependent. if (isSpace(ch)) { if (this->m->include_ignorable) { this->m->state = st_in_space; this->m->val += ch; } } else if (ch == '%') { this->m->state = st_in_comment; if (this->m->include_ignorable) { this->m->val += ch; } } else if (ch == '(') { this->m->string_depth = 1; this->m->string_ignoring_newline = false; memset(this->m->bs_num_register, '\0', sizeof(this->m->bs_num_register)); this->m->last_char_was_bs = false; this->m->state = st_in_string; } else if (ch == '<') { this->m->state = st_lt; } else if (ch == '>') { this->m->state = st_gt; } else { this->m->val += ch; if (ch == ')') { this->m->type = tt_bad; QTC::TC("qpdf", "QPDFTokenizer bad )"); this->m->error_message = "unexpected )"; this->m->state = st_token_ready; } else if (ch == '[') { this->m->type = tt_array_open; this->m->state = st_token_ready; } else if (ch == ']') { this->m->type = tt_array_close; this->m->state = st_token_ready; } else if (ch == '{') { this->m->type = tt_brace_open; this->m->state = st_token_ready; } else if (ch == '}') { this->m->type = tt_brace_close; this->m->state = st_token_ready; } else { this->m->state = st_literal; } } } else if (this->m->state == st_in_space) { // We only enter this state if include_ignorable is true. if (! isSpace(ch)) { this->m->type = tt_space; this->m->unread_char = true; this->m->char_to_unread = ch; this->m->state = st_token_ready; } else { this->m->val += ch; } } else if (this->m->state == st_in_comment) { if ((ch == '\r') || (ch == '\n')) { if (this->m->include_ignorable) { this->m->type = tt_comment; this->m->unread_char = true; this->m->char_to_unread = ch; this->m->state = st_token_ready; } else { this->m->state = st_top; } } else if (this->m->include_ignorable) { this->m->val += ch; } } else if (this->m->state == st_lt) { if (ch == '<') { this->m->val = "<<"; this->m->type = tt_dict_open; this->m->state = st_token_ready; } else { handled = false; this->m->state = st_in_hexstring; } } else if (this->m->state == st_gt) { if (ch == '>') { this->m->val = ">>"; this->m->type = tt_dict_close; this->m->state = st_token_ready; } else { this->m->val = ">"; this->m->type = tt_bad; QTC::TC("qpdf", "QPDFTokenizer bad >"); this->m->error_message = "unexpected >"; this->m->unread_char = true; this->m->char_to_unread = ch; this->m->state = st_token_ready; } } else if (this->m->state == st_in_string) { if (this->m->string_ignoring_newline && (! ((ch == '\r') || (ch == '\n')))) { this->m->string_ignoring_newline = false; } size_t bs_num_count = strlen(this->m->bs_num_register); bool ch_is_octal = ((ch >= '0') && (ch <= '7')); if ((bs_num_count == 3) || ((bs_num_count > 0) && (! ch_is_octal))) { // We've accumulated \ddd. PDF Spec says to ignore // high-order overflow. this->m->val += static_cast( strtol(this->m->bs_num_register, 0, 8)); memset(this->m->bs_num_register, '\0', sizeof(this->m->bs_num_register)); bs_num_count = 0; } if (this->m->string_ignoring_newline && ((ch == '\r') || (ch == '\n'))) { // ignore } else if (ch_is_octal && (this->m->last_char_was_bs || (bs_num_count > 0))) { this->m->bs_num_register[bs_num_count++] = ch; } else if (this->m->last_char_was_bs) { switch (ch) { case 'n': this->m->val += '\n'; break; case 'r': this->m->val += '\r'; break; case 't': this->m->val += '\t'; break; case 'b': this->m->val += '\b'; break; case 'f': this->m->val += '\f'; break; case '\r': case '\n': this->m->string_ignoring_newline = true; break; default: // PDF spec says backslash is ignored before anything else this->m->val += ch; break; } } else if (ch == '\\') { // last_char_was_bs is set/cleared below as appropriate if (bs_num_count) { throw std::logic_error( "INTERNAL ERROR: QPDFTokenizer: bs_num_count != 0 " "when ch == '\\'"); } } else if (ch == '(') { this->m->val += ch; ++this->m->string_depth; } else if ((ch == ')') && (--this->m->string_depth == 0)) { this->m->type = tt_string; this->m->state = st_token_ready; } else { this->m->val += ch; } this->m->last_char_was_bs = ((! this->m->last_char_was_bs) && (ch == '\\')); } else if (this->m->state == st_literal) { if (isDelimiter(ch)) { // A C-locale whitespace character or delimiter terminates // token. It is important to unread the whitespace // character even though it is ignored since it may be the // newline after a stream keyword. Removing it here could // make the stream-reading code break on some files, // though not on any files in the test suite as of this // writing. this->m->type = tt_word; this->m->unread_char = true; this->m->char_to_unread = ch; this->m->state = st_token_ready; } else { this->m->val += ch; } } else if (this->m->state == st_inline_image) { size_t len = this->m->val.length(); if ((len >= 4) && isDelimiter(this->m->val.at(len-4)) && (this->m->val.at(len-3) == 'E') && (this->m->val.at(len-2) == 'I') && isDelimiter(this->m->val.at(len-1))) { this->m->type = tt_inline_image; this->m->unread_char = true; this->m->char_to_unread = ch; this->m->state = st_token_ready; } else { this->m->val += ch; } } else { handled = false; } if (handled) { // okay } else if (this->m->state == st_in_hexstring) { if (ch == '>') { this->m->type = tt_string; this->m->state = st_token_ready; if (this->m->val.length() % 2) { // PDF spec says odd hexstrings have implicit // trailing 0. this->m->val += '0'; } char num[3]; num[2] = '\0'; std::string nval; for (unsigned int i = 0; i < this->m->val.length(); i += 2) { num[0] = this->m->val.at(i); num[1] = this->m->val.at(i+1); char nch = static_cast(strtol(num, 0, 16)); nval += nch; } this->m->val = nval; } else if (QUtil::is_hex_digit(ch)) { this->m->val += ch; } else if (isSpace(ch)) { // ignore } else { this->m->type = tt_bad; QTC::TC("qpdf", "QPDFTokenizer bad hexstring character"); this->m->error_message = std::string("invalid character (") + ch + ") in hexstring"; this->m->state = st_token_ready; } } else { throw std::logic_error( "INTERNAL ERROR: invalid state while reading token"); } if ((this->m->state == st_token_ready) && (this->m->type == tt_word)) { resolveLiteral(); } if (! (betweenTokens() || ((this->m->state == st_token_ready) && this->m->unread_char))) { this->m->raw_val += orig_ch; } } void QPDFTokenizer::presentEOF() { if (this->m->state == st_inline_image) { size_t len = this->m->val.length(); if ((len >= 3) && isDelimiter(this->m->val.at(len-3)) && (this->m->val.at(len-2) == 'E') && (this->m->val.at(len-1) == 'I')) { QTC::TC("qpdf", "QPDFTokenizer inline image at EOF"); this->m->type = tt_inline_image; this->m->state = st_token_ready; } } if (this->m->state == st_literal) { QTC::TC("qpdf", "QPDFTokenizer EOF reading appendable token"); resolveLiteral(); } else if ((this->m->include_ignorable) && (this->m->state == st_in_space)) { this->m->type = tt_space; } else if ((this->m->include_ignorable) && (this->m->state == st_in_comment)) { this->m->type = tt_comment; } else if (betweenTokens()) { this->m->type = tt_eof; } else if (this->m->state != st_token_ready) { QTC::TC("qpdf", "QPDFTokenizer EOF reading token"); this->m->type = tt_bad; this->m->error_message = "EOF while reading token"; } this->m->state = st_token_ready; } void QPDFTokenizer::expectInlineImage() { if (this->m->state != st_top) { throw std::logic_error("QPDFTokenizer::expectInlineImage called" " when tokenizer is in improper state"); } this->m->state = st_inline_image; } bool QPDFTokenizer::getToken(Token& token, bool& unread_char, char& ch) { bool ready = (this->m->state == st_token_ready); unread_char = this->m->unread_char; ch = this->m->char_to_unread; if (ready) { if (this->m->type == tt_bad) { this->m->val = this->m->raw_val; } token = Token(this->m->type, this->m->val, this->m->raw_val, this->m->error_message); this->m->reset(); } return ready; } bool QPDFTokenizer::betweenTokens() { return ((this->m->state == st_top) || ((! this->m->include_ignorable) && ((this->m->state == st_in_comment) || (this->m->state == st_in_space)))); } QPDFTokenizer::Token QPDFTokenizer::readToken(PointerHolder input, std::string const& context, bool allow_bad, size_t max_len) { qpdf_offset_t offset = input->tell(); Token token; bool unread_char; char char_to_unread; bool presented_eof = false; while (! getToken(token, unread_char, char_to_unread)) { char ch; if (input->read(&ch, 1) == 0) { if (! presented_eof) { presentEOF(); presented_eof = true; if ((this->m->type == tt_eof) && (! this->m->allow_eof)) { // Nothing in the qpdf library calls readToken // without allowEOF anymore, so this case is not // exercised. this->m->type = tt_bad; this->m->error_message = "unexpected EOF"; offset = input->getLastOffset(); } } else { throw std::logic_error( "getToken returned false after presenting EOF"); } } else { presentCharacter(ch); if (betweenTokens() && (input->getLastOffset() == offset)) { ++offset; } if (max_len && (this->m->raw_val.length() >= max_len) && (this->m->state != st_token_ready)) { // terminate this token now QTC::TC("qpdf", "QPDFTokenizer block long token"); this->m->type = tt_bad; this->m->state = st_token_ready; this->m->error_message = "exceeded allowable length while reading token"; } } } if (unread_char) { input->unreadCh(char_to_unread); } if (token.getType() != tt_eof) { input->setLastOffset(offset); } if (token.getType() == tt_bad) { if (allow_bad) { QTC::TC("qpdf", "QPDFTokenizer allowing bad token"); } else { throw QPDFExc(qpdf_e_damaged_pdf, input->getName(), context, offset, token.getErrorMessage()); } } return token; } qpdf-8.0.2/libqpdf/sha2.c0000644000064100006410000005613313247541377013200 0ustar ejbejb/* $Id: sha2.c 227 2010-06-16 17:28:38Z tp $ */ /* * SHA-224 / SHA-256 implementation. * * ==========================(LICENSE BEGIN)============================ * * Copyright (c) 2007-2010 Projet RNRT SAPHIR * * 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. * * ===========================(LICENSE END)============================= * * @author Thomas Pornin */ #include #include #include "sph/sph_sha2.h" #if SPH_SMALL_FOOTPRINT && !defined SPH_SMALL_FOOTPRINT_SHA2 #define SPH_SMALL_FOOTPRINT_SHA2 1 #endif #define CH(X, Y, Z) ((((Y) ^ (Z)) & (X)) ^ (Z)) #define MAJ(X, Y, Z) (((Y) & (Z)) | (((Y) | (Z)) & (X))) #define ROTR SPH_ROTR32 #define BSG2_0(x) (ROTR(x, 2) ^ ROTR(x, 13) ^ ROTR(x, 22)) #define BSG2_1(x) (ROTR(x, 6) ^ ROTR(x, 11) ^ ROTR(x, 25)) #define SSG2_0(x) (ROTR(x, 7) ^ ROTR(x, 18) ^ SPH_T32((x) >> 3)) #define SSG2_1(x) (ROTR(x, 17) ^ ROTR(x, 19) ^ SPH_T32((x) >> 10)) static const sph_u32 H224[8] = { SPH_C32(0xC1059ED8), SPH_C32(0x367CD507), SPH_C32(0x3070DD17), SPH_C32(0xF70E5939), SPH_C32(0xFFC00B31), SPH_C32(0x68581511), SPH_C32(0x64F98FA7), SPH_C32(0xBEFA4FA4) }; static const sph_u32 H256[8] = { SPH_C32(0x6A09E667), SPH_C32(0xBB67AE85), SPH_C32(0x3C6EF372), SPH_C32(0xA54FF53A), SPH_C32(0x510E527F), SPH_C32(0x9B05688C), SPH_C32(0x1F83D9AB), SPH_C32(0x5BE0CD19) }; /* * The SHA2_ROUND_BODY defines the body for a SHA-224 / SHA-256 * compression function implementation. The "in" parameter should * evaluate, when applied to a numerical input parameter from 0 to 15, * to an expression which yields the corresponding input block. The "r" * parameter should evaluate to an array or pointer expression * designating the array of 8 words which contains the input and output * of the compression function. */ #if SPH_SMALL_FOOTPRINT_SHA2 static const sph_u32 K[64] = { SPH_C32(0x428A2F98), SPH_C32(0x71374491), SPH_C32(0xB5C0FBCF), SPH_C32(0xE9B5DBA5), SPH_C32(0x3956C25B), SPH_C32(0x59F111F1), SPH_C32(0x923F82A4), SPH_C32(0xAB1C5ED5), SPH_C32(0xD807AA98), SPH_C32(0x12835B01), SPH_C32(0x243185BE), SPH_C32(0x550C7DC3), SPH_C32(0x72BE5D74), SPH_C32(0x80DEB1FE), SPH_C32(0x9BDC06A7), SPH_C32(0xC19BF174), SPH_C32(0xE49B69C1), SPH_C32(0xEFBE4786), SPH_C32(0x0FC19DC6), SPH_C32(0x240CA1CC), SPH_C32(0x2DE92C6F), SPH_C32(0x4A7484AA), SPH_C32(0x5CB0A9DC), SPH_C32(0x76F988DA), SPH_C32(0x983E5152), SPH_C32(0xA831C66D), SPH_C32(0xB00327C8), SPH_C32(0xBF597FC7), SPH_C32(0xC6E00BF3), SPH_C32(0xD5A79147), SPH_C32(0x06CA6351), SPH_C32(0x14292967), SPH_C32(0x27B70A85), SPH_C32(0x2E1B2138), SPH_C32(0x4D2C6DFC), SPH_C32(0x53380D13), SPH_C32(0x650A7354), SPH_C32(0x766A0ABB), SPH_C32(0x81C2C92E), SPH_C32(0x92722C85), SPH_C32(0xA2BFE8A1), SPH_C32(0xA81A664B), SPH_C32(0xC24B8B70), SPH_C32(0xC76C51A3), SPH_C32(0xD192E819), SPH_C32(0xD6990624), SPH_C32(0xF40E3585), SPH_C32(0x106AA070), SPH_C32(0x19A4C116), SPH_C32(0x1E376C08), SPH_C32(0x2748774C), SPH_C32(0x34B0BCB5), SPH_C32(0x391C0CB3), SPH_C32(0x4ED8AA4A), SPH_C32(0x5B9CCA4F), SPH_C32(0x682E6FF3), SPH_C32(0x748F82EE), SPH_C32(0x78A5636F), SPH_C32(0x84C87814), SPH_C32(0x8CC70208), SPH_C32(0x90BEFFFA), SPH_C32(0xA4506CEB), SPH_C32(0xBEF9A3F7), SPH_C32(0xC67178F2) }; #define SHA2_MEXP1(in, pc) do { \ W[pc] = in(pc); \ } while (0) #define SHA2_MEXP2(in, pc) do { \ W[(pc) & 0x0F] = SPH_T32(SSG2_1(W[((pc) - 2) & 0x0F]) \ + W[((pc) - 7) & 0x0F] \ + SSG2_0(W[((pc) - 15) & 0x0F]) + W[(pc) & 0x0F]); \ } while (0) #define SHA2_STEPn(n, a, b, c, d, e, f, g, h, in, pc) do { \ sph_u32 t1, t2; \ SHA2_MEXP ## n(in, pc); \ t1 = SPH_T32(h + BSG2_1(e) + CH(e, f, g) \ + K[pcount + (pc)] + W[(pc) & 0x0F]); \ t2 = SPH_T32(BSG2_0(a) + MAJ(a, b, c)); \ d = SPH_T32(d + t1); \ h = SPH_T32(t1 + t2); \ } while (0) #define SHA2_STEP1(a, b, c, d, e, f, g, h, in, pc) \ SHA2_STEPn(1, a, b, c, d, e, f, g, h, in, pc) #define SHA2_STEP2(a, b, c, d, e, f, g, h, in, pc) \ SHA2_STEPn(2, a, b, c, d, e, f, g, h, in, pc) #define SHA2_ROUND_BODY(in, r) do { \ sph_u32 A, B, C, D, E, F, G, H; \ sph_u32 W[16]; \ unsigned pcount; \ \ A = (r)[0]; \ B = (r)[1]; \ C = (r)[2]; \ D = (r)[3]; \ E = (r)[4]; \ F = (r)[5]; \ G = (r)[6]; \ H = (r)[7]; \ pcount = 0; \ SHA2_STEP1(A, B, C, D, E, F, G, H, in, 0); \ SHA2_STEP1(H, A, B, C, D, E, F, G, in, 1); \ SHA2_STEP1(G, H, A, B, C, D, E, F, in, 2); \ SHA2_STEP1(F, G, H, A, B, C, D, E, in, 3); \ SHA2_STEP1(E, F, G, H, A, B, C, D, in, 4); \ SHA2_STEP1(D, E, F, G, H, A, B, C, in, 5); \ SHA2_STEP1(C, D, E, F, G, H, A, B, in, 6); \ SHA2_STEP1(B, C, D, E, F, G, H, A, in, 7); \ SHA2_STEP1(A, B, C, D, E, F, G, H, in, 8); \ SHA2_STEP1(H, A, B, C, D, E, F, G, in, 9); \ SHA2_STEP1(G, H, A, B, C, D, E, F, in, 10); \ SHA2_STEP1(F, G, H, A, B, C, D, E, in, 11); \ SHA2_STEP1(E, F, G, H, A, B, C, D, in, 12); \ SHA2_STEP1(D, E, F, G, H, A, B, C, in, 13); \ SHA2_STEP1(C, D, E, F, G, H, A, B, in, 14); \ SHA2_STEP1(B, C, D, E, F, G, H, A, in, 15); \ for (pcount = 16; pcount < 64; pcount += 16) { \ SHA2_STEP2(A, B, C, D, E, F, G, H, in, 0); \ SHA2_STEP2(H, A, B, C, D, E, F, G, in, 1); \ SHA2_STEP2(G, H, A, B, C, D, E, F, in, 2); \ SHA2_STEP2(F, G, H, A, B, C, D, E, in, 3); \ SHA2_STEP2(E, F, G, H, A, B, C, D, in, 4); \ SHA2_STEP2(D, E, F, G, H, A, B, C, in, 5); \ SHA2_STEP2(C, D, E, F, G, H, A, B, in, 6); \ SHA2_STEP2(B, C, D, E, F, G, H, A, in, 7); \ SHA2_STEP2(A, B, C, D, E, F, G, H, in, 8); \ SHA2_STEP2(H, A, B, C, D, E, F, G, in, 9); \ SHA2_STEP2(G, H, A, B, C, D, E, F, in, 10); \ SHA2_STEP2(F, G, H, A, B, C, D, E, in, 11); \ SHA2_STEP2(E, F, G, H, A, B, C, D, in, 12); \ SHA2_STEP2(D, E, F, G, H, A, B, C, in, 13); \ SHA2_STEP2(C, D, E, F, G, H, A, B, in, 14); \ SHA2_STEP2(B, C, D, E, F, G, H, A, in, 15); \ } \ (r)[0] = SPH_T32((r)[0] + A); \ (r)[1] = SPH_T32((r)[1] + B); \ (r)[2] = SPH_T32((r)[2] + C); \ (r)[3] = SPH_T32((r)[3] + D); \ (r)[4] = SPH_T32((r)[4] + E); \ (r)[5] = SPH_T32((r)[5] + F); \ (r)[6] = SPH_T32((r)[6] + G); \ (r)[7] = SPH_T32((r)[7] + H); \ } while (0) #else #define SHA2_ROUND_BODY(in, r) do { \ sph_u32 A, B, C, D, E, F, G, H, T1, T2; \ sph_u32 W00, W01, W02, W03, W04, W05, W06, W07; \ sph_u32 W08, W09, W10, W11, W12, W13, W14, W15; \ \ A = (r)[0]; \ B = (r)[1]; \ C = (r)[2]; \ D = (r)[3]; \ E = (r)[4]; \ F = (r)[5]; \ G = (r)[6]; \ H = (r)[7]; \ W00 = in(0); \ T1 = SPH_T32(H + BSG2_1(E) + CH(E, F, G) \ + SPH_C32(0x428A2F98) + W00); \ T2 = SPH_T32(BSG2_0(A) + MAJ(A, B, C)); \ D = SPH_T32(D + T1); \ H = SPH_T32(T1 + T2); \ W01 = in(1); \ T1 = SPH_T32(G + BSG2_1(D) + CH(D, E, F) \ + SPH_C32(0x71374491) + W01); \ T2 = SPH_T32(BSG2_0(H) + MAJ(H, A, B)); \ C = SPH_T32(C + T1); \ G = SPH_T32(T1 + T2); \ W02 = in(2); \ T1 = SPH_T32(F + BSG2_1(C) + CH(C, D, E) \ + SPH_C32(0xB5C0FBCF) + W02); \ T2 = SPH_T32(BSG2_0(G) + MAJ(G, H, A)); \ B = SPH_T32(B + T1); \ F = SPH_T32(T1 + T2); \ W03 = in(3); \ T1 = SPH_T32(E + BSG2_1(B) + CH(B, C, D) \ + SPH_C32(0xE9B5DBA5) + W03); \ T2 = SPH_T32(BSG2_0(F) + MAJ(F, G, H)); \ A = SPH_T32(A + T1); \ E = SPH_T32(T1 + T2); \ W04 = in(4); \ T1 = SPH_T32(D + BSG2_1(A) + CH(A, B, C) \ + SPH_C32(0x3956C25B) + W04); \ T2 = SPH_T32(BSG2_0(E) + MAJ(E, F, G)); \ H = SPH_T32(H + T1); \ D = SPH_T32(T1 + T2); \ W05 = in(5); \ T1 = SPH_T32(C + BSG2_1(H) + CH(H, A, B) \ + SPH_C32(0x59F111F1) + W05); \ T2 = SPH_T32(BSG2_0(D) + MAJ(D, E, F)); \ G = SPH_T32(G + T1); \ C = SPH_T32(T1 + T2); \ W06 = in(6); \ T1 = SPH_T32(B + BSG2_1(G) + CH(G, H, A) \ + SPH_C32(0x923F82A4) + W06); \ T2 = SPH_T32(BSG2_0(C) + MAJ(C, D, E)); \ F = SPH_T32(F + T1); \ B = SPH_T32(T1 + T2); \ W07 = in(7); \ T1 = SPH_T32(A + BSG2_1(F) + CH(F, G, H) \ + SPH_C32(0xAB1C5ED5) + W07); \ T2 = SPH_T32(BSG2_0(B) + MAJ(B, C, D)); \ E = SPH_T32(E + T1); \ A = SPH_T32(T1 + T2); \ W08 = in(8); \ T1 = SPH_T32(H + BSG2_1(E) + CH(E, F, G) \ + SPH_C32(0xD807AA98) + W08); \ T2 = SPH_T32(BSG2_0(A) + MAJ(A, B, C)); \ D = SPH_T32(D + T1); \ H = SPH_T32(T1 + T2); \ W09 = in(9); \ T1 = SPH_T32(G + BSG2_1(D) + CH(D, E, F) \ + SPH_C32(0x12835B01) + W09); \ T2 = SPH_T32(BSG2_0(H) + MAJ(H, A, B)); \ C = SPH_T32(C + T1); \ G = SPH_T32(T1 + T2); \ W10 = in(10); \ T1 = SPH_T32(F + BSG2_1(C) + CH(C, D, E) \ + SPH_C32(0x243185BE) + W10); \ T2 = SPH_T32(BSG2_0(G) + MAJ(G, H, A)); \ B = SPH_T32(B + T1); \ F = SPH_T32(T1 + T2); \ W11 = in(11); \ T1 = SPH_T32(E + BSG2_1(B) + CH(B, C, D) \ + SPH_C32(0x550C7DC3) + W11); \ T2 = SPH_T32(BSG2_0(F) + MAJ(F, G, H)); \ A = SPH_T32(A + T1); \ E = SPH_T32(T1 + T2); \ W12 = in(12); \ T1 = SPH_T32(D + BSG2_1(A) + CH(A, B, C) \ + SPH_C32(0x72BE5D74) + W12); \ T2 = SPH_T32(BSG2_0(E) + MAJ(E, F, G)); \ H = SPH_T32(H + T1); \ D = SPH_T32(T1 + T2); \ W13 = in(13); \ T1 = SPH_T32(C + BSG2_1(H) + CH(H, A, B) \ + SPH_C32(0x80DEB1FE) + W13); \ T2 = SPH_T32(BSG2_0(D) + MAJ(D, E, F)); \ G = SPH_T32(G + T1); \ C = SPH_T32(T1 + T2); \ W14 = in(14); \ T1 = SPH_T32(B + BSG2_1(G) + CH(G, H, A) \ + SPH_C32(0x9BDC06A7) + W14); \ T2 = SPH_T32(BSG2_0(C) + MAJ(C, D, E)); \ F = SPH_T32(F + T1); \ B = SPH_T32(T1 + T2); \ W15 = in(15); \ T1 = SPH_T32(A + BSG2_1(F) + CH(F, G, H) \ + SPH_C32(0xC19BF174) + W15); \ T2 = SPH_T32(BSG2_0(B) + MAJ(B, C, D)); \ E = SPH_T32(E + T1); \ A = SPH_T32(T1 + T2); \ W00 = SPH_T32(SSG2_1(W14) + W09 + SSG2_0(W01) + W00); \ T1 = SPH_T32(H + BSG2_1(E) + CH(E, F, G) \ + SPH_C32(0xE49B69C1) + W00); \ T2 = SPH_T32(BSG2_0(A) + MAJ(A, B, C)); \ D = SPH_T32(D + T1); \ H = SPH_T32(T1 + T2); \ W01 = SPH_T32(SSG2_1(W15) + W10 + SSG2_0(W02) + W01); \ T1 = SPH_T32(G + BSG2_1(D) + CH(D, E, F) \ + SPH_C32(0xEFBE4786) + W01); \ T2 = SPH_T32(BSG2_0(H) + MAJ(H, A, B)); \ C = SPH_T32(C + T1); \ G = SPH_T32(T1 + T2); \ W02 = SPH_T32(SSG2_1(W00) + W11 + SSG2_0(W03) + W02); \ T1 = SPH_T32(F + BSG2_1(C) + CH(C, D, E) \ + SPH_C32(0x0FC19DC6) + W02); \ T2 = SPH_T32(BSG2_0(G) + MAJ(G, H, A)); \ B = SPH_T32(B + T1); \ F = SPH_T32(T1 + T2); \ W03 = SPH_T32(SSG2_1(W01) + W12 + SSG2_0(W04) + W03); \ T1 = SPH_T32(E + BSG2_1(B) + CH(B, C, D) \ + SPH_C32(0x240CA1CC) + W03); \ T2 = SPH_T32(BSG2_0(F) + MAJ(F, G, H)); \ A = SPH_T32(A + T1); \ E = SPH_T32(T1 + T2); \ W04 = SPH_T32(SSG2_1(W02) + W13 + SSG2_0(W05) + W04); \ T1 = SPH_T32(D + BSG2_1(A) + CH(A, B, C) \ + SPH_C32(0x2DE92C6F) + W04); \ T2 = SPH_T32(BSG2_0(E) + MAJ(E, F, G)); \ H = SPH_T32(H + T1); \ D = SPH_T32(T1 + T2); \ W05 = SPH_T32(SSG2_1(W03) + W14 + SSG2_0(W06) + W05); \ T1 = SPH_T32(C + BSG2_1(H) + CH(H, A, B) \ + SPH_C32(0x4A7484AA) + W05); \ T2 = SPH_T32(BSG2_0(D) + MAJ(D, E, F)); \ G = SPH_T32(G + T1); \ C = SPH_T32(T1 + T2); \ W06 = SPH_T32(SSG2_1(W04) + W15 + SSG2_0(W07) + W06); \ T1 = SPH_T32(B + BSG2_1(G) + CH(G, H, A) \ + SPH_C32(0x5CB0A9DC) + W06); \ T2 = SPH_T32(BSG2_0(C) + MAJ(C, D, E)); \ F = SPH_T32(F + T1); \ B = SPH_T32(T1 + T2); \ W07 = SPH_T32(SSG2_1(W05) + W00 + SSG2_0(W08) + W07); \ T1 = SPH_T32(A + BSG2_1(F) + CH(F, G, H) \ + SPH_C32(0x76F988DA) + W07); \ T2 = SPH_T32(BSG2_0(B) + MAJ(B, C, D)); \ E = SPH_T32(E + T1); \ A = SPH_T32(T1 + T2); \ W08 = SPH_T32(SSG2_1(W06) + W01 + SSG2_0(W09) + W08); \ T1 = SPH_T32(H + BSG2_1(E) + CH(E, F, G) \ + SPH_C32(0x983E5152) + W08); \ T2 = SPH_T32(BSG2_0(A) + MAJ(A, B, C)); \ D = SPH_T32(D + T1); \ H = SPH_T32(T1 + T2); \ W09 = SPH_T32(SSG2_1(W07) + W02 + SSG2_0(W10) + W09); \ T1 = SPH_T32(G + BSG2_1(D) + CH(D, E, F) \ + SPH_C32(0xA831C66D) + W09); \ T2 = SPH_T32(BSG2_0(H) + MAJ(H, A, B)); \ C = SPH_T32(C + T1); \ G = SPH_T32(T1 + T2); \ W10 = SPH_T32(SSG2_1(W08) + W03 + SSG2_0(W11) + W10); \ T1 = SPH_T32(F + BSG2_1(C) + CH(C, D, E) \ + SPH_C32(0xB00327C8) + W10); \ T2 = SPH_T32(BSG2_0(G) + MAJ(G, H, A)); \ B = SPH_T32(B + T1); \ F = SPH_T32(T1 + T2); \ W11 = SPH_T32(SSG2_1(W09) + W04 + SSG2_0(W12) + W11); \ T1 = SPH_T32(E + BSG2_1(B) + CH(B, C, D) \ + SPH_C32(0xBF597FC7) + W11); \ T2 = SPH_T32(BSG2_0(F) + MAJ(F, G, H)); \ A = SPH_T32(A + T1); \ E = SPH_T32(T1 + T2); \ W12 = SPH_T32(SSG2_1(W10) + W05 + SSG2_0(W13) + W12); \ T1 = SPH_T32(D + BSG2_1(A) + CH(A, B, C) \ + SPH_C32(0xC6E00BF3) + W12); \ T2 = SPH_T32(BSG2_0(E) + MAJ(E, F, G)); \ H = SPH_T32(H + T1); \ D = SPH_T32(T1 + T2); \ W13 = SPH_T32(SSG2_1(W11) + W06 + SSG2_0(W14) + W13); \ T1 = SPH_T32(C + BSG2_1(H) + CH(H, A, B) \ + SPH_C32(0xD5A79147) + W13); \ T2 = SPH_T32(BSG2_0(D) + MAJ(D, E, F)); \ G = SPH_T32(G + T1); \ C = SPH_T32(T1 + T2); \ W14 = SPH_T32(SSG2_1(W12) + W07 + SSG2_0(W15) + W14); \ T1 = SPH_T32(B + BSG2_1(G) + CH(G, H, A) \ + SPH_C32(0x06CA6351) + W14); \ T2 = SPH_T32(BSG2_0(C) + MAJ(C, D, E)); \ F = SPH_T32(F + T1); \ B = SPH_T32(T1 + T2); \ W15 = SPH_T32(SSG2_1(W13) + W08 + SSG2_0(W00) + W15); \ T1 = SPH_T32(A + BSG2_1(F) + CH(F, G, H) \ + SPH_C32(0x14292967) + W15); \ T2 = SPH_T32(BSG2_0(B) + MAJ(B, C, D)); \ E = SPH_T32(E + T1); \ A = SPH_T32(T1 + T2); \ W00 = SPH_T32(SSG2_1(W14) + W09 + SSG2_0(W01) + W00); \ T1 = SPH_T32(H + BSG2_1(E) + CH(E, F, G) \ + SPH_C32(0x27B70A85) + W00); \ T2 = SPH_T32(BSG2_0(A) + MAJ(A, B, C)); \ D = SPH_T32(D + T1); \ H = SPH_T32(T1 + T2); \ W01 = SPH_T32(SSG2_1(W15) + W10 + SSG2_0(W02) + W01); \ T1 = SPH_T32(G + BSG2_1(D) + CH(D, E, F) \ + SPH_C32(0x2E1B2138) + W01); \ T2 = SPH_T32(BSG2_0(H) + MAJ(H, A, B)); \ C = SPH_T32(C + T1); \ G = SPH_T32(T1 + T2); \ W02 = SPH_T32(SSG2_1(W00) + W11 + SSG2_0(W03) + W02); \ T1 = SPH_T32(F + BSG2_1(C) + CH(C, D, E) \ + SPH_C32(0x4D2C6DFC) + W02); \ T2 = SPH_T32(BSG2_0(G) + MAJ(G, H, A)); \ B = SPH_T32(B + T1); \ F = SPH_T32(T1 + T2); \ W03 = SPH_T32(SSG2_1(W01) + W12 + SSG2_0(W04) + W03); \ T1 = SPH_T32(E + BSG2_1(B) + CH(B, C, D) \ + SPH_C32(0x53380D13) + W03); \ T2 = SPH_T32(BSG2_0(F) + MAJ(F, G, H)); \ A = SPH_T32(A + T1); \ E = SPH_T32(T1 + T2); \ W04 = SPH_T32(SSG2_1(W02) + W13 + SSG2_0(W05) + W04); \ T1 = SPH_T32(D + BSG2_1(A) + CH(A, B, C) \ + SPH_C32(0x650A7354) + W04); \ T2 = SPH_T32(BSG2_0(E) + MAJ(E, F, G)); \ H = SPH_T32(H + T1); \ D = SPH_T32(T1 + T2); \ W05 = SPH_T32(SSG2_1(W03) + W14 + SSG2_0(W06) + W05); \ T1 = SPH_T32(C + BSG2_1(H) + CH(H, A, B) \ + SPH_C32(0x766A0ABB) + W05); \ T2 = SPH_T32(BSG2_0(D) + MAJ(D, E, F)); \ G = SPH_T32(G + T1); \ C = SPH_T32(T1 + T2); \ W06 = SPH_T32(SSG2_1(W04) + W15 + SSG2_0(W07) + W06); \ T1 = SPH_T32(B + BSG2_1(G) + CH(G, H, A) \ + SPH_C32(0x81C2C92E) + W06); \ T2 = SPH_T32(BSG2_0(C) + MAJ(C, D, E)); \ F = SPH_T32(F + T1); \ B = SPH_T32(T1 + T2); \ W07 = SPH_T32(SSG2_1(W05) + W00 + SSG2_0(W08) + W07); \ T1 = SPH_T32(A + BSG2_1(F) + CH(F, G, H) \ + SPH_C32(0x92722C85) + W07); \ T2 = SPH_T32(BSG2_0(B) + MAJ(B, C, D)); \ E = SPH_T32(E + T1); \ A = SPH_T32(T1 + T2); \ W08 = SPH_T32(SSG2_1(W06) + W01 + SSG2_0(W09) + W08); \ T1 = SPH_T32(H + BSG2_1(E) + CH(E, F, G) \ + SPH_C32(0xA2BFE8A1) + W08); \ T2 = SPH_T32(BSG2_0(A) + MAJ(A, B, C)); \ D = SPH_T32(D + T1); \ H = SPH_T32(T1 + T2); \ W09 = SPH_T32(SSG2_1(W07) + W02 + SSG2_0(W10) + W09); \ T1 = SPH_T32(G + BSG2_1(D) + CH(D, E, F) \ + SPH_C32(0xA81A664B) + W09); \ T2 = SPH_T32(BSG2_0(H) + MAJ(H, A, B)); \ C = SPH_T32(C + T1); \ G = SPH_T32(T1 + T2); \ W10 = SPH_T32(SSG2_1(W08) + W03 + SSG2_0(W11) + W10); \ T1 = SPH_T32(F + BSG2_1(C) + CH(C, D, E) \ + SPH_C32(0xC24B8B70) + W10); \ T2 = SPH_T32(BSG2_0(G) + MAJ(G, H, A)); \ B = SPH_T32(B + T1); \ F = SPH_T32(T1 + T2); \ W11 = SPH_T32(SSG2_1(W09) + W04 + SSG2_0(W12) + W11); \ T1 = SPH_T32(E + BSG2_1(B) + CH(B, C, D) \ + SPH_C32(0xC76C51A3) + W11); \ T2 = SPH_T32(BSG2_0(F) + MAJ(F, G, H)); \ A = SPH_T32(A + T1); \ E = SPH_T32(T1 + T2); \ W12 = SPH_T32(SSG2_1(W10) + W05 + SSG2_0(W13) + W12); \ T1 = SPH_T32(D + BSG2_1(A) + CH(A, B, C) \ + SPH_C32(0xD192E819) + W12); \ T2 = SPH_T32(BSG2_0(E) + MAJ(E, F, G)); \ H = SPH_T32(H + T1); \ D = SPH_T32(T1 + T2); \ W13 = SPH_T32(SSG2_1(W11) + W06 + SSG2_0(W14) + W13); \ T1 = SPH_T32(C + BSG2_1(H) + CH(H, A, B) \ + SPH_C32(0xD6990624) + W13); \ T2 = SPH_T32(BSG2_0(D) + MAJ(D, E, F)); \ G = SPH_T32(G + T1); \ C = SPH_T32(T1 + T2); \ W14 = SPH_T32(SSG2_1(W12) + W07 + SSG2_0(W15) + W14); \ T1 = SPH_T32(B + BSG2_1(G) + CH(G, H, A) \ + SPH_C32(0xF40E3585) + W14); \ T2 = SPH_T32(BSG2_0(C) + MAJ(C, D, E)); \ F = SPH_T32(F + T1); \ B = SPH_T32(T1 + T2); \ W15 = SPH_T32(SSG2_1(W13) + W08 + SSG2_0(W00) + W15); \ T1 = SPH_T32(A + BSG2_1(F) + CH(F, G, H) \ + SPH_C32(0x106AA070) + W15); \ T2 = SPH_T32(BSG2_0(B) + MAJ(B, C, D)); \ E = SPH_T32(E + T1); \ A = SPH_T32(T1 + T2); \ W00 = SPH_T32(SSG2_1(W14) + W09 + SSG2_0(W01) + W00); \ T1 = SPH_T32(H + BSG2_1(E) + CH(E, F, G) \ + SPH_C32(0x19A4C116) + W00); \ T2 = SPH_T32(BSG2_0(A) + MAJ(A, B, C)); \ D = SPH_T32(D + T1); \ H = SPH_T32(T1 + T2); \ W01 = SPH_T32(SSG2_1(W15) + W10 + SSG2_0(W02) + W01); \ T1 = SPH_T32(G + BSG2_1(D) + CH(D, E, F) \ + SPH_C32(0x1E376C08) + W01); \ T2 = SPH_T32(BSG2_0(H) + MAJ(H, A, B)); \ C = SPH_T32(C + T1); \ G = SPH_T32(T1 + T2); \ W02 = SPH_T32(SSG2_1(W00) + W11 + SSG2_0(W03) + W02); \ T1 = SPH_T32(F + BSG2_1(C) + CH(C, D, E) \ + SPH_C32(0x2748774C) + W02); \ T2 = SPH_T32(BSG2_0(G) + MAJ(G, H, A)); \ B = SPH_T32(B + T1); \ F = SPH_T32(T1 + T2); \ W03 = SPH_T32(SSG2_1(W01) + W12 + SSG2_0(W04) + W03); \ T1 = SPH_T32(E + BSG2_1(B) + CH(B, C, D) \ + SPH_C32(0x34B0BCB5) + W03); \ T2 = SPH_T32(BSG2_0(F) + MAJ(F, G, H)); \ A = SPH_T32(A + T1); \ E = SPH_T32(T1 + T2); \ W04 = SPH_T32(SSG2_1(W02) + W13 + SSG2_0(W05) + W04); \ T1 = SPH_T32(D + BSG2_1(A) + CH(A, B, C) \ + SPH_C32(0x391C0CB3) + W04); \ T2 = SPH_T32(BSG2_0(E) + MAJ(E, F, G)); \ H = SPH_T32(H + T1); \ D = SPH_T32(T1 + T2); \ W05 = SPH_T32(SSG2_1(W03) + W14 + SSG2_0(W06) + W05); \ T1 = SPH_T32(C + BSG2_1(H) + CH(H, A, B) \ + SPH_C32(0x4ED8AA4A) + W05); \ T2 = SPH_T32(BSG2_0(D) + MAJ(D, E, F)); \ G = SPH_T32(G + T1); \ C = SPH_T32(T1 + T2); \ W06 = SPH_T32(SSG2_1(W04) + W15 + SSG2_0(W07) + W06); \ T1 = SPH_T32(B + BSG2_1(G) + CH(G, H, A) \ + SPH_C32(0x5B9CCA4F) + W06); \ T2 = SPH_T32(BSG2_0(C) + MAJ(C, D, E)); \ F = SPH_T32(F + T1); \ B = SPH_T32(T1 + T2); \ W07 = SPH_T32(SSG2_1(W05) + W00 + SSG2_0(W08) + W07); \ T1 = SPH_T32(A + BSG2_1(F) + CH(F, G, H) \ + SPH_C32(0x682E6FF3) + W07); \ T2 = SPH_T32(BSG2_0(B) + MAJ(B, C, D)); \ E = SPH_T32(E + T1); \ A = SPH_T32(T1 + T2); \ W08 = SPH_T32(SSG2_1(W06) + W01 + SSG2_0(W09) + W08); \ T1 = SPH_T32(H + BSG2_1(E) + CH(E, F, G) \ + SPH_C32(0x748F82EE) + W08); \ T2 = SPH_T32(BSG2_0(A) + MAJ(A, B, C)); \ D = SPH_T32(D + T1); \ H = SPH_T32(T1 + T2); \ W09 = SPH_T32(SSG2_1(W07) + W02 + SSG2_0(W10) + W09); \ T1 = SPH_T32(G + BSG2_1(D) + CH(D, E, F) \ + SPH_C32(0x78A5636F) + W09); \ T2 = SPH_T32(BSG2_0(H) + MAJ(H, A, B)); \ C = SPH_T32(C + T1); \ G = SPH_T32(T1 + T2); \ W10 = SPH_T32(SSG2_1(W08) + W03 + SSG2_0(W11) + W10); \ T1 = SPH_T32(F + BSG2_1(C) + CH(C, D, E) \ + SPH_C32(0x84C87814) + W10); \ T2 = SPH_T32(BSG2_0(G) + MAJ(G, H, A)); \ B = SPH_T32(B + T1); \ F = SPH_T32(T1 + T2); \ W11 = SPH_T32(SSG2_1(W09) + W04 + SSG2_0(W12) + W11); \ T1 = SPH_T32(E + BSG2_1(B) + CH(B, C, D) \ + SPH_C32(0x8CC70208) + W11); \ T2 = SPH_T32(BSG2_0(F) + MAJ(F, G, H)); \ A = SPH_T32(A + T1); \ E = SPH_T32(T1 + T2); \ W12 = SPH_T32(SSG2_1(W10) + W05 + SSG2_0(W13) + W12); \ T1 = SPH_T32(D + BSG2_1(A) + CH(A, B, C) \ + SPH_C32(0x90BEFFFA) + W12); \ T2 = SPH_T32(BSG2_0(E) + MAJ(E, F, G)); \ H = SPH_T32(H + T1); \ D = SPH_T32(T1 + T2); \ W13 = SPH_T32(SSG2_1(W11) + W06 + SSG2_0(W14) + W13); \ T1 = SPH_T32(C + BSG2_1(H) + CH(H, A, B) \ + SPH_C32(0xA4506CEB) + W13); \ T2 = SPH_T32(BSG2_0(D) + MAJ(D, E, F)); \ G = SPH_T32(G + T1); \ C = SPH_T32(T1 + T2); \ W14 = SPH_T32(SSG2_1(W12) + W07 + SSG2_0(W15) + W14); \ T1 = SPH_T32(B + BSG2_1(G) + CH(G, H, A) \ + SPH_C32(0xBEF9A3F7) + W14); \ T2 = SPH_T32(BSG2_0(C) + MAJ(C, D, E)); \ F = SPH_T32(F + T1); \ B = SPH_T32(T1 + T2); \ W15 = SPH_T32(SSG2_1(W13) + W08 + SSG2_0(W00) + W15); \ T1 = SPH_T32(A + BSG2_1(F) + CH(F, G, H) \ + SPH_C32(0xC67178F2) + W15); \ T2 = SPH_T32(BSG2_0(B) + MAJ(B, C, D)); \ E = SPH_T32(E + T1); \ A = SPH_T32(T1 + T2); \ (r)[0] = SPH_T32((r)[0] + A); \ (r)[1] = SPH_T32((r)[1] + B); \ (r)[2] = SPH_T32((r)[2] + C); \ (r)[3] = SPH_T32((r)[3] + D); \ (r)[4] = SPH_T32((r)[4] + E); \ (r)[5] = SPH_T32((r)[5] + F); \ (r)[6] = SPH_T32((r)[6] + G); \ (r)[7] = SPH_T32((r)[7] + H); \ } while (0) #endif /* * One round of SHA-224 / SHA-256. The data must be aligned for 32-bit access. */ static void sha2_round(const unsigned char *data, sph_u32 r[8]) { #define SHA2_IN(x) sph_dec32be_aligned(data + (4 * (x))) SHA2_ROUND_BODY(SHA2_IN, r); #undef SHA2_IN } /* see sph_sha2.h */ void sph_sha224_init(void *cc) { sph_sha224_context *sc; sc = cc; memcpy(sc->val, H224, sizeof H224); #if SPH_64 sc->count = 0; #else sc->count_high = sc->count_low = 0; #endif } /* see sph_sha2.h */ void sph_sha256_init(void *cc) { sph_sha256_context *sc; sc = cc; memcpy(sc->val, H256, sizeof H256); #if SPH_64 sc->count = 0; #else sc->count_high = sc->count_low = 0; #endif } #define RFUN sha2_round #define HASH sha224 #define BE32 1 #include "sph/md_helper.c" /* see sph_sha2.h */ void sph_sha224_close(void *cc, void *dst) { sha224_close(cc, dst, 7); sph_sha224_init(cc); } /* see sph_sha2.h */ void sph_sha224_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst) { sha224_addbits_and_close(cc, ub, n, dst, 7); sph_sha224_init(cc); } /* see sph_sha2.h */ void sph_sha256_close(void *cc, void *dst) { sha224_close(cc, dst, 8); sph_sha256_init(cc); } /* see sph_sha2.h */ void sph_sha256_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst) { sha224_addbits_and_close(cc, ub, n, dst, 8); sph_sha256_init(cc); } /* see sph_sha2.h */ void sph_sha224_comp(const sph_u32 msg[16], sph_u32 val[8]) { #define SHA2_IN(x) msg[x] SHA2_ROUND_BODY(SHA2_IN, val); #undef SHA2_IN } qpdf-8.0.2/libqpdf/sha2big.c0000644000064100006410000002031413247541377013652 0ustar ejbejb/* $Id: sha2big.c 216 2010-06-08 09:46:57Z tp $ */ /* * SHA-384 / SHA-512 implementation. * * ==========================(LICENSE BEGIN)============================ * * Copyright (c) 2007-2010 Projet RNRT SAPHIR * * 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. * * ===========================(LICENSE END)============================= * * @author Thomas Pornin */ #include #include #include "sph/sph_sha2.h" #if SPH_64 #define CH(X, Y, Z) ((((Y) ^ (Z)) & (X)) ^ (Z)) #define MAJ(X, Y, Z) (((X) & (Y)) | (((X) | (Y)) & (Z))) #define ROTR64 SPH_ROTR64 #define BSG5_0(x) (ROTR64(x, 28) ^ ROTR64(x, 34) ^ ROTR64(x, 39)) #define BSG5_1(x) (ROTR64(x, 14) ^ ROTR64(x, 18) ^ ROTR64(x, 41)) #define SSG5_0(x) (ROTR64(x, 1) ^ ROTR64(x, 8) ^ SPH_T64((x) >> 7)) #define SSG5_1(x) (ROTR64(x, 19) ^ ROTR64(x, 61) ^ SPH_T64((x) >> 6)) static const sph_u64 K512[80] = { SPH_C64(0x428A2F98D728AE22), SPH_C64(0x7137449123EF65CD), SPH_C64(0xB5C0FBCFEC4D3B2F), SPH_C64(0xE9B5DBA58189DBBC), SPH_C64(0x3956C25BF348B538), SPH_C64(0x59F111F1B605D019), SPH_C64(0x923F82A4AF194F9B), SPH_C64(0xAB1C5ED5DA6D8118), SPH_C64(0xD807AA98A3030242), SPH_C64(0x12835B0145706FBE), SPH_C64(0x243185BE4EE4B28C), SPH_C64(0x550C7DC3D5FFB4E2), SPH_C64(0x72BE5D74F27B896F), SPH_C64(0x80DEB1FE3B1696B1), SPH_C64(0x9BDC06A725C71235), SPH_C64(0xC19BF174CF692694), SPH_C64(0xE49B69C19EF14AD2), SPH_C64(0xEFBE4786384F25E3), SPH_C64(0x0FC19DC68B8CD5B5), SPH_C64(0x240CA1CC77AC9C65), SPH_C64(0x2DE92C6F592B0275), SPH_C64(0x4A7484AA6EA6E483), SPH_C64(0x5CB0A9DCBD41FBD4), SPH_C64(0x76F988DA831153B5), SPH_C64(0x983E5152EE66DFAB), SPH_C64(0xA831C66D2DB43210), SPH_C64(0xB00327C898FB213F), SPH_C64(0xBF597FC7BEEF0EE4), SPH_C64(0xC6E00BF33DA88FC2), SPH_C64(0xD5A79147930AA725), SPH_C64(0x06CA6351E003826F), SPH_C64(0x142929670A0E6E70), SPH_C64(0x27B70A8546D22FFC), SPH_C64(0x2E1B21385C26C926), SPH_C64(0x4D2C6DFC5AC42AED), SPH_C64(0x53380D139D95B3DF), SPH_C64(0x650A73548BAF63DE), SPH_C64(0x766A0ABB3C77B2A8), SPH_C64(0x81C2C92E47EDAEE6), SPH_C64(0x92722C851482353B), SPH_C64(0xA2BFE8A14CF10364), SPH_C64(0xA81A664BBC423001), SPH_C64(0xC24B8B70D0F89791), SPH_C64(0xC76C51A30654BE30), SPH_C64(0xD192E819D6EF5218), SPH_C64(0xD69906245565A910), SPH_C64(0xF40E35855771202A), SPH_C64(0x106AA07032BBD1B8), SPH_C64(0x19A4C116B8D2D0C8), SPH_C64(0x1E376C085141AB53), SPH_C64(0x2748774CDF8EEB99), SPH_C64(0x34B0BCB5E19B48A8), SPH_C64(0x391C0CB3C5C95A63), SPH_C64(0x4ED8AA4AE3418ACB), SPH_C64(0x5B9CCA4F7763E373), SPH_C64(0x682E6FF3D6B2B8A3), SPH_C64(0x748F82EE5DEFB2FC), SPH_C64(0x78A5636F43172F60), SPH_C64(0x84C87814A1F0AB72), SPH_C64(0x8CC702081A6439EC), SPH_C64(0x90BEFFFA23631E28), SPH_C64(0xA4506CEBDE82BDE9), SPH_C64(0xBEF9A3F7B2C67915), SPH_C64(0xC67178F2E372532B), SPH_C64(0xCA273ECEEA26619C), SPH_C64(0xD186B8C721C0C207), SPH_C64(0xEADA7DD6CDE0EB1E), SPH_C64(0xF57D4F7FEE6ED178), SPH_C64(0x06F067AA72176FBA), SPH_C64(0x0A637DC5A2C898A6), SPH_C64(0x113F9804BEF90DAE), SPH_C64(0x1B710B35131C471B), SPH_C64(0x28DB77F523047D84), SPH_C64(0x32CAAB7B40C72493), SPH_C64(0x3C9EBE0A15C9BEBC), SPH_C64(0x431D67C49C100D4C), SPH_C64(0x4CC5D4BECB3E42B6), SPH_C64(0x597F299CFC657E2A), SPH_C64(0x5FCB6FAB3AD6FAEC), SPH_C64(0x6C44198C4A475817) }; static const sph_u64 H384[8] = { SPH_C64(0xCBBB9D5DC1059ED8), SPH_C64(0x629A292A367CD507), SPH_C64(0x9159015A3070DD17), SPH_C64(0x152FECD8F70E5939), SPH_C64(0x67332667FFC00B31), SPH_C64(0x8EB44A8768581511), SPH_C64(0xDB0C2E0D64F98FA7), SPH_C64(0x47B5481DBEFA4FA4) }; static const sph_u64 H512[8] = { SPH_C64(0x6A09E667F3BCC908), SPH_C64(0xBB67AE8584CAA73B), SPH_C64(0x3C6EF372FE94F82B), SPH_C64(0xA54FF53A5F1D36F1), SPH_C64(0x510E527FADE682D1), SPH_C64(0x9B05688C2B3E6C1F), SPH_C64(0x1F83D9ABFB41BD6B), SPH_C64(0x5BE0CD19137E2179) }; /* * This macro defines the body for a SHA-384 / SHA-512 compression function * implementation. The "in" parameter should evaluate, when applied to a * numerical input parameter from 0 to 15, to an expression which yields * the corresponding input block. The "r" parameter should evaluate to * an array or pointer expression designating the array of 8 words which * contains the input and output of the compression function. * * SHA-512 is hard for the compiler. If the loop is completely unrolled, * then the code will be quite huge (possibly more than 100 kB), and the * performance will be degraded due to cache misses on the code. We * unroll only eight steps, which avoids all needless copies when * 64-bit registers are swapped. */ #define SHA3_STEP(A, B, C, D, E, F, G, H, i) do { \ sph_u64 T1, T2; \ T1 = SPH_T64(H + BSG5_1(E) + CH(E, F, G) + K512[i] + W[i]); \ T2 = SPH_T64(BSG5_0(A) + MAJ(A, B, C)); \ D = SPH_T64(D + T1); \ H = SPH_T64(T1 + T2); \ } while (0) #define SHA3_ROUND_BODY(in, r) do { \ int i; \ sph_u64 A, B, C, D, E, F, G, H; \ sph_u64 W[80]; \ \ for (i = 0; i < 16; i ++) \ W[i] = in(i); \ for (i = 16; i < 80; i ++) \ W[i] = SPH_T64(SSG5_1(W[i - 2]) + W[i - 7] \ + SSG5_0(W[i - 15]) + W[i - 16]); \ A = (r)[0]; \ B = (r)[1]; \ C = (r)[2]; \ D = (r)[3]; \ E = (r)[4]; \ F = (r)[5]; \ G = (r)[6]; \ H = (r)[7]; \ for (i = 0; i < 80; i += 8) { \ SHA3_STEP(A, B, C, D, E, F, G, H, i + 0); \ SHA3_STEP(H, A, B, C, D, E, F, G, i + 1); \ SHA3_STEP(G, H, A, B, C, D, E, F, i + 2); \ SHA3_STEP(F, G, H, A, B, C, D, E, i + 3); \ SHA3_STEP(E, F, G, H, A, B, C, D, i + 4); \ SHA3_STEP(D, E, F, G, H, A, B, C, i + 5); \ SHA3_STEP(C, D, E, F, G, H, A, B, i + 6); \ SHA3_STEP(B, C, D, E, F, G, H, A, i + 7); \ } \ (r)[0] = SPH_T64((r)[0] + A); \ (r)[1] = SPH_T64((r)[1] + B); \ (r)[2] = SPH_T64((r)[2] + C); \ (r)[3] = SPH_T64((r)[3] + D); \ (r)[4] = SPH_T64((r)[4] + E); \ (r)[5] = SPH_T64((r)[5] + F); \ (r)[6] = SPH_T64((r)[6] + G); \ (r)[7] = SPH_T64((r)[7] + H); \ } while (0) /* * One round of SHA-384 / SHA-512. The data must be aligned for 64-bit access. */ static void sha3_round(const unsigned char *data, sph_u64 r[8]) { #define SHA3_IN(x) sph_dec64be_aligned(data + (8 * (x))) SHA3_ROUND_BODY(SHA3_IN, r); #undef SHA3_IN } /* see sph_sha3.h */ void sph_sha384_init(void *cc) { sph_sha384_context *sc; sc = cc; memcpy(sc->val, H384, sizeof H384); sc->count = 0; } /* see sph_sha3.h */ void sph_sha512_init(void *cc) { sph_sha512_context *sc; sc = cc; memcpy(sc->val, H512, sizeof H512); sc->count = 0; } #define RFUN sha3_round #define HASH sha384 #define BE64 1 #include "sph/md_helper.c" /* see sph_sha3.h */ void sph_sha384_close(void *cc, void *dst) { sha384_close(cc, dst, 6); sph_sha384_init(cc); } /* see sph_sha3.h */ void sph_sha384_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst) { sha384_addbits_and_close(cc, ub, n, dst, 6); sph_sha384_init(cc); } /* see sph_sha3.h */ void sph_sha512_close(void *cc, void *dst) { sha384_close(cc, dst, 8); sph_sha512_init(cc); } /* see sph_sha3.h */ void sph_sha512_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst) { sha384_addbits_and_close(cc, ub, n, dst, 8); sph_sha512_init(cc); } /* see sph_sha3.h */ void sph_sha384_comp(const sph_u64 msg[16], sph_u64 val[8]) { #define SHA3_IN(x) msg[x] SHA3_ROUND_BODY(SHA3_IN, val); #undef SHA3_IN } #endif qpdf-8.0.2/libqpdf/Pl_DCT.cc0000644000064100006410000002335413247541377013552 0ustar ejbejb#include #include #include #include #include #include #include #if BITS_IN_JSAMPLE != 8 # error "qpdf does not support libjpeg built with BITS_IN_JSAMPLE != 8" #endif struct qpdf_jpeg_error_mgr { struct jpeg_error_mgr pub; jmp_buf jmpbuf; std::string msg; }; static void error_handler(j_common_ptr cinfo) { qpdf_jpeg_error_mgr* jerr = reinterpret_cast(cinfo->err); char buf[JMSG_LENGTH_MAX]; (*cinfo->err->format_message)(cinfo, buf); jerr->msg = buf; longjmp(jerr->jmpbuf, 1); } Pl_DCT::Pl_DCT(char const* identifier, Pipeline* next) : Pipeline(identifier, next), action(a_decompress), buf("DCT compressed image") { } Pl_DCT::Pl_DCT(char const* identifier, Pipeline* next, JDIMENSION image_width, JDIMENSION image_height, int components, J_COLOR_SPACE color_space, CompressConfig* config_callback) : Pipeline(identifier, next), action(a_compress), buf("DCT uncompressed image"), image_width(image_width), image_height(image_height), components(components), color_space(color_space), config_callback(config_callback) { } Pl_DCT::~Pl_DCT() { } void Pl_DCT::write(unsigned char* data, size_t len) { this->buf.write(data, len); } void Pl_DCT::finish() { this->buf.finish(); // Using a PointerHolder here and passing it into compress // and decompress causes a memory leak with setjmp/longjmp. Just // use a pointer and delete it. Buffer* b = this->buf.getBuffer(); if (b->getSize() == 0) { // Special case: empty data will never succeed and probably // means we're calling finish a second time from an exception // handler. delete b; this->getNext()->finish(); return; } struct jpeg_compress_struct cinfo_compress; struct jpeg_decompress_struct cinfo_decompress; struct qpdf_jpeg_error_mgr jerr; cinfo_compress.err = jpeg_std_error(&(jerr.pub)); cinfo_decompress.err = jpeg_std_error(&(jerr.pub)); jerr.pub.error_exit = error_handler; bool error = false; // The jpeg library is a "C" library, so we use setjmp and longjmp // for exception handling. if (setjmp(jerr.jmpbuf) == 0) { try { if (this->action == a_compress) { compress(reinterpret_cast(&cinfo_compress), b); } else { decompress(reinterpret_cast(&cinfo_decompress), b); } } catch (std::exception& e) { // Convert an exception back to a longjmp so we can ensure // that the right cleanup happens. This will get converted // back to an exception. jerr.msg = e.what(); longjmp(jerr.jmpbuf, 1); } } else { error = true; } delete b; if (this->action == a_compress) { jpeg_destroy_compress(&cinfo_compress); } if (this->action == a_decompress) { jpeg_destroy_decompress(&cinfo_decompress); } if (error) { throw std::runtime_error(jerr.msg); } } struct dct_pipeline_dest { struct jpeg_destination_mgr pub; /* public fields */ unsigned char* buffer; size_t size; Pipeline* next; }; static void init_pipeline_destination(j_compress_ptr) { } static boolean empty_pipeline_output_buffer(j_compress_ptr cinfo) { QTC::TC("libtests", "Pl_DCT empty_pipeline_output_buffer"); dct_pipeline_dest* dest = reinterpret_cast(cinfo->dest); dest->next->write(dest->buffer, dest->size); dest->pub.next_output_byte = dest->buffer; dest->pub.free_in_buffer = dest->size; return TRUE; } static void term_pipeline_destination(j_compress_ptr cinfo) { QTC::TC("libtests", "Pl_DCT term_pipeline_destination"); dct_pipeline_dest* dest = reinterpret_cast(cinfo->dest); dest->next->write(dest->buffer, dest->size - dest->pub.free_in_buffer); } static void jpeg_pipeline_dest(j_compress_ptr cinfo, unsigned char* outbuffer, size_t size, Pipeline* next) { cinfo->dest = static_cast( (*cinfo->mem->alloc_small)(reinterpret_cast(cinfo), JPOOL_PERMANENT, sizeof(dct_pipeline_dest))); dct_pipeline_dest* dest = reinterpret_cast(cinfo->dest); dest->pub.init_destination = init_pipeline_destination; dest->pub.empty_output_buffer = empty_pipeline_output_buffer; dest->pub.term_destination = term_pipeline_destination; dest->pub.next_output_byte = dest->buffer = outbuffer; dest->pub.free_in_buffer = dest->size = size; dest->next = next; } static void init_buffer_source(j_decompress_ptr) { } static boolean fill_buffer_input_buffer(j_decompress_ptr) { // The whole JPEG data is expected to reside in the supplied memory // buffer, so any request for more data beyond the given buffer size // is treated as an error. throw std::runtime_error("invalid jpeg data reading from buffer"); return TRUE; } static void skip_buffer_input_data(j_decompress_ptr cinfo, long num_bytes) { if (num_bytes < 0) { throw std::runtime_error( "reading jpeg: jpeg library requested" " skipping a negative number of bytes"); } size_t to_skip = static_cast(num_bytes); if ((to_skip > 0) && (to_skip <= cinfo->src->bytes_in_buffer)) { cinfo->src->next_input_byte += to_skip; cinfo->src->bytes_in_buffer -= to_skip; } else if (to_skip != 0) { cinfo->src->next_input_byte += cinfo->src->bytes_in_buffer; cinfo->src->bytes_in_buffer = 0; } } static void term_buffer_source(j_decompress_ptr) { } static void jpeg_buffer_src(j_decompress_ptr cinfo, Buffer* buffer) { cinfo->src = reinterpret_cast( (*cinfo->mem->alloc_small)(reinterpret_cast(cinfo), JPOOL_PERMANENT, sizeof(jpeg_source_mgr))); jpeg_source_mgr* src = cinfo->src; src->init_source = init_buffer_source; src->fill_input_buffer = fill_buffer_input_buffer; src->skip_input_data = skip_buffer_input_data; src->resync_to_restart = jpeg_resync_to_restart; /* use default method */ src->term_source = term_buffer_source; src->bytes_in_buffer = buffer->getSize(); src->next_input_byte = buffer->getBuffer(); } void Pl_DCT::compress(void* cinfo_p, Buffer* b) { struct jpeg_compress_struct* cinfo = reinterpret_cast(cinfo_p); #if ((defined(__GNUC__) && ((__GNUC__ * 100) + __GNUC_MINOR__) >= 406) || \ defined(__clang__)) # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Wold-style-cast" #endif jpeg_create_compress(cinfo); #if ((defined(__GNUC__) && ((__GNUC__ * 100) + __GNUC_MINOR__) >= 406) || \ defined(__clang__)) # pragma GCC diagnostic pop #endif static int const BUF_SIZE = 65536; PointerHolder outbuffer_ph( true, new unsigned char[BUF_SIZE]); unsigned char* outbuffer = outbuffer_ph.getPointer(); jpeg_pipeline_dest(cinfo, outbuffer, BUF_SIZE, this->getNext()); cinfo->image_width = this->image_width; cinfo->image_height = this->image_height; cinfo->input_components = this->components; cinfo->in_color_space = this->color_space; jpeg_set_defaults(cinfo); if (this->config_callback) { this->config_callback->apply(cinfo); } jpeg_start_compress(cinfo, TRUE); int width = cinfo->image_width * cinfo->input_components; size_t expected_size = cinfo->image_height * cinfo->image_width * cinfo->input_components; if (b->getSize() != expected_size) { throw std::runtime_error( "Pl_DCT: image buffer size = " + QUtil::int_to_string(b->getSize()) + "; expected size = " + QUtil::int_to_string(expected_size)); } JSAMPROW row_pointer[1]; unsigned char* buffer = b->getBuffer(); while (cinfo->next_scanline < cinfo->image_height) { // We already verified that the buffer is big enough. row_pointer[0] = &buffer[cinfo->next_scanline * width]; (void) jpeg_write_scanlines(cinfo, row_pointer, 1); } jpeg_finish_compress(cinfo); this->getNext()->finish(); } void Pl_DCT::decompress(void* cinfo_p, Buffer* b) { struct jpeg_decompress_struct* cinfo = reinterpret_cast(cinfo_p); #if ((defined(__GNUC__) && ((__GNUC__ * 100) + __GNUC_MINOR__) >= 406) || \ defined(__clang__)) # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Wold-style-cast" #endif jpeg_create_decompress(cinfo); #if ((defined(__GNUC__) && ((__GNUC__ * 100) + __GNUC_MINOR__) >= 406) || \ defined(__clang__)) # pragma GCC diagnostic pop #endif jpeg_buffer_src(cinfo, b); (void) jpeg_read_header(cinfo, TRUE); (void) jpeg_calc_output_dimensions(cinfo); int width = cinfo->output_width * cinfo->output_components; JSAMPARRAY buffer = (*cinfo->mem->alloc_sarray) (reinterpret_cast(cinfo), JPOOL_IMAGE, width, 1); (void) jpeg_start_decompress(cinfo); while (cinfo->output_scanline < cinfo->output_height) { (void) jpeg_read_scanlines(cinfo, buffer, 1); this->getNext()->write(reinterpret_cast(buffer[0]), width * sizeof(buffer[0][0])); } (void) jpeg_finish_decompress(cinfo); this->getNext()->finish(); } qpdf-8.0.2/libqpdf/QPDF_Name.cc0000644000064100006410000000174013247541377014172 0ustar ejbejb#include #include #include #include QPDF_Name::QPDF_Name(std::string const& name) : name(name) { } QPDF_Name::~QPDF_Name() { } std::string QPDF_Name::normalizeName(std::string const& name) { if (name.empty()) { return name; } std::string result; result += name.at(0); for (unsigned int i = 1; i < name.length(); ++i) { char ch = name.at(i); // Don't use locale/ctype here; follow PDF spec guidelines. if (strchr("#()<>[]{}/%", ch) || (ch < 33) || (ch > 126)) { result += "#" + QUtil::hex_encode(std::string(&ch, 1)); } else { result += ch; } } return result; } std::string QPDF_Name::unparse() { return normalizeName(this->name); } QPDFObject::object_type_e QPDF_Name::getTypeCode() const { return QPDFObject::ot_name; } char const* QPDF_Name::getTypeName() const { return "name"; } std::string QPDF_Name::getName() const { return this->name; } qpdf-8.0.2/libqpdf/QPDFObjGen.cc0000644000064100006410000000104413247541377014314 0ustar ejbejb#include QPDFObjGen::QPDFObjGen() : obj(0), gen(0) { } QPDFObjGen::QPDFObjGen(int o, int g) : obj(o), gen(g) { } bool QPDFObjGen::operator<(QPDFObjGen const& rhs) const { return ((this->obj < rhs.obj) || ((this->obj == rhs.obj) && (this->gen < rhs.gen))); } bool QPDFObjGen::operator==(QPDFObjGen const& rhs) const { return ((this->obj == rhs.obj) && (this->gen == rhs.gen)); } int QPDFObjGen::getObj() const { return this->obj; } int QPDFObjGen::getGen() const { return this->gen; } qpdf-8.0.2/libqpdf/InsecureRandomDataProvider.cc0000644000064100006410000000206213247541377017721 0ustar ejbejb#include #include #include #include InsecureRandomDataProvider::InsecureRandomDataProvider() : seeded_random(false) { } InsecureRandomDataProvider::~InsecureRandomDataProvider() { } void InsecureRandomDataProvider::provideRandomData(unsigned char* data, size_t len) { for (size_t i = 0; i < len; ++i) { data[i] = static_cast((this->random() & 0xff0) >> 4); } } long InsecureRandomDataProvider::random() { if (! this->seeded_random) { // Seed the random number generator with something simple, but // just to be interesting, don't use the unmodified current // time. It would be better if this were a more secure seed. QUtil::srandom(QUtil::get_current_time() ^ 0xcccc); this->seeded_random = true; } # ifdef HAVE_RANDOM return ::random(); # else return rand(); # endif } RandomDataProvider* InsecureRandomDataProvider::getInstance() { static InsecureRandomDataProvider instance; return &instance; } qpdf-8.0.2/libqpdf/Pl_Discard.cc0000644000064100006410000000036313247541377014504 0ustar ejbejb#include // Exercised in md5 test suite Pl_Discard::Pl_Discard() : Pipeline("discard", 0) { } Pl_Discard::~Pl_Discard() { } void Pl_Discard::write(unsigned char* buf, size_t len) { } void Pl_Discard::finish() { } qpdf-8.0.2/libqpdf/QPDF_Dictionary.cc0000644000064100006410000000543313247541377015422 0ustar ejbejb#include #include #include QPDF_Dictionary::QPDF_Dictionary( std::map const& items) : items(items) { } QPDF_Dictionary::~QPDF_Dictionary() { } void QPDF_Dictionary::releaseResolved() { for (std::map::iterator iter = this->items.begin(); iter != this->items.end(); ++iter) { QPDFObjectHandle::ReleaseResolver::releaseResolved((*iter).second); } } std::string QPDF_Dictionary::unparse() { std::string result = "<< "; for (std::map::iterator iter = this->items.begin(); iter != this->items.end(); ++iter) { result += QPDF_Name::normalizeName((*iter).first) + " " + (*iter).second.unparse() + " "; } result += ">>"; return result; } QPDFObject::object_type_e QPDF_Dictionary::getTypeCode() const { return QPDFObject::ot_dictionary; } char const* QPDF_Dictionary::getTypeName() const { return "dictionary"; } void QPDF_Dictionary::setDescription(QPDF* qpdf, std::string const& description) { this->QPDFObject::setDescription(qpdf, description); } bool QPDF_Dictionary::hasKey(std::string const& key) { return ((this->items.count(key) > 0) && (! this->items[key].isNull())); } QPDFObjectHandle QPDF_Dictionary::getKey(std::string const& key) { // PDF spec says fetching a non-existent key from a dictionary // returns the null object. if (this->items.count(key)) { // May be a null object return (*(this->items.find(key))).second; } else { QPDFObjectHandle null = QPDFObjectHandle::newNull(); QPDF* qpdf = 0; std::string description; if (getDescription(qpdf, description)) { null.setObjectDescription( qpdf, description + " -> dictionary key " + key); } return null; } } std::set QPDF_Dictionary::getKeys() { std::set result; for (std::map::const_iterator iter = this->items.begin(); iter != this->items.end(); ++iter) { if (hasKey((*iter).first)) { result.insert((*iter).first); } } return result; } std::map const& QPDF_Dictionary::getAsMap() const { return this->items; } void QPDF_Dictionary::replaceKey(std::string const& key, QPDFObjectHandle value) { // add or replace value this->items[key] = value; } void QPDF_Dictionary::removeKey(std::string const& key) { // no-op if key does not exist this->items.erase(key); } void QPDF_Dictionary::replaceOrRemoveKey(std::string const& key, QPDFObjectHandle value) { if (value.isNull()) { removeKey(key); } else { replaceKey(key, value); } } qpdf-8.0.2/libqpdf/build.mk0000644000064100006410000000462513247541377013626 0ustar ejbejbTARGETS_libqpdf = libqpdf/$(OUTPUT_DIR)/$(call libname,qpdf) INCLUDES_libqpdf = include libqpdf LDFLAGS_libqpdf = -Llibqpdf/$(OUTPUT_DIR) LIBS_libqpdf = -lqpdf SRCS_libqpdf = \ libqpdf/BitStream.cc \ libqpdf/BitWriter.cc \ libqpdf/Buffer.cc \ libqpdf/BufferInputSource.cc \ libqpdf/ContentNormalizer.cc \ libqpdf/FileInputSource.cc \ libqpdf/InputSource.cc \ libqpdf/InsecureRandomDataProvider.cc \ libqpdf/MD5.cc \ libqpdf/OffsetInputSource.cc \ libqpdf/Pipeline.cc \ libqpdf/Pl_AES_PDF.cc \ libqpdf/Pl_ASCII85Decoder.cc \ libqpdf/Pl_ASCIIHexDecoder.cc \ libqpdf/Pl_Buffer.cc \ libqpdf/Pl_Concatenate.cc \ libqpdf/Pl_Count.cc \ libqpdf/Pl_DCT.cc \ libqpdf/Pl_Discard.cc \ libqpdf/Pl_Flate.cc \ libqpdf/Pl_LZWDecoder.cc \ libqpdf/Pl_MD5.cc \ libqpdf/Pl_PNGFilter.cc \ libqpdf/Pl_QPDFTokenizer.cc \ libqpdf/Pl_RC4.cc \ libqpdf/Pl_RunLength.cc \ libqpdf/Pl_SHA2.cc \ libqpdf/Pl_StdioFile.cc \ libqpdf/Pl_TIFFPredictor.cc \ libqpdf/QPDF.cc \ libqpdf/QPDFExc.cc \ libqpdf/QPDFObjGen.cc \ libqpdf/QPDFObject.cc \ libqpdf/QPDFObjectHandle.cc \ libqpdf/QPDFTokenizer.cc \ libqpdf/QPDFWriter.cc \ libqpdf/QPDFXRefEntry.cc \ libqpdf/QPDF_Array.cc \ libqpdf/QPDF_Bool.cc \ libqpdf/QPDF_Dictionary.cc \ libqpdf/QPDF_InlineImage.cc \ libqpdf/QPDF_Integer.cc \ libqpdf/QPDF_Name.cc \ libqpdf/QPDF_Null.cc \ libqpdf/QPDF_Operator.cc \ libqpdf/QPDF_Real.cc \ libqpdf/QPDF_Reserved.cc \ libqpdf/QPDF_Stream.cc \ libqpdf/QPDF_String.cc \ libqpdf/QPDF_encryption.cc \ libqpdf/QPDF_linearization.cc \ libqpdf/QPDF_optimization.cc \ libqpdf/QPDF_pages.cc \ libqpdf/QTC.cc \ libqpdf/QUtil.cc \ libqpdf/RC4.cc \ libqpdf/SecureRandomDataProvider.cc \ libqpdf/qpdf-c.cc \ libqpdf/rijndael.cc \ libqpdf/sha2.c \ libqpdf/sha2big.c # ----- CCSRCS_libqpdf = $(filter %.cc,$(SRCS_libqpdf)) CSRCS_libqpdf = $(filter %.c,$(SRCS_libqpdf)) CCOBJS_libqpdf = $(call src_to_lobj,$(CCSRCS_libqpdf)) COBJS_libqpdf = $(call c_src_to_lobj,$(CSRCS_libqpdf)) OBJS_libqpdf = $(CCOBJS_libqpdf) $(COBJS_libqpdf) ifeq ($(GENDEPS),1) -include $(call lobj_to_dep,$(OBJS_libqpdf)) endif $(CCOBJS_libqpdf): libqpdf/$(OUTPUT_DIR)/%.$(LOBJ): libqpdf/%.cc $(call libcompile,$<,$(INCLUDES_libqpdf)) $(COBJS_libqpdf): libqpdf/$(OUTPUT_DIR)/%.$(LOBJ): libqpdf/%.c $(call c_libcompile,$<,$(INCLUDES_libqpdf)) $(TARGETS_libqpdf): $(OBJS_libqpdf) $(call makelib,$(OBJS_libqpdf),$@,$(LDFLAGS),$(LIBS),$(LT_CURRENT),$(LT_REVISION),$(LT_AGE)) qpdf-8.0.2/libqpdf/SecureRandomDataProvider.cc0000644000064100006410000000662413247541377017402 0ustar ejbejb#include #include #include #ifdef _WIN32 # include # include # include # ifndef SKIP_OS_SECURE_RANDOM # include # endif #endif SecureRandomDataProvider::SecureRandomDataProvider() { } SecureRandomDataProvider::~SecureRandomDataProvider() { } #ifdef SKIP_OS_SECURE_RANDOM void SecureRandomDataProvider::provideRandomData(unsigned char* data, size_t len) { throw std::logic_error("SecureRandomDataProvider::provideRandomData called when support was not compiled in"); } RandomDataProvider* SecureRandomDataProvider::getInstance() { return 0; } #else #ifdef _WIN32 class WindowsCryptProvider { public: WindowsCryptProvider() { if (!CryptAcquireContext(&crypt_prov, "Container", NULL, PROV_RSA_FULL, 0)) { #if ((defined(__GNUC__) && ((__GNUC__ * 100) + __GNUC_MINOR__) >= 406) || \ defined(__clang__)) # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Wold-style-cast" # pragma GCC diagnostic ignored "-Wsign-compare" #endif if (GetLastError() == NTE_BAD_KEYSET) #if ((defined(__GNUC__) && ((__GNUC__ * 100) + __GNUC_MINOR__) >= 406) || \ defined(__clang__)) # pragma GCC diagnostic pop #endif { if (! CryptAcquireContext(&crypt_prov, "Container", NULL, PROV_RSA_FULL, CRYPT_NEWKEYSET)) { throw std::runtime_error( "unable to acquire crypt context with new keyset"); } } else { throw std::runtime_error("unable to acquire crypt context"); } } } ~WindowsCryptProvider() { // Ignore error CryptReleaseContext(crypt_prov, 0); } HCRYPTPROV crypt_prov; }; #endif void SecureRandomDataProvider::provideRandomData(unsigned char* data, size_t len) { #if defined(_WIN32) // Optimization: make the WindowsCryptProvider static as long as // it can be done in a thread-safe fashion. WindowsCryptProvider c; if (! CryptGenRandom(c.crypt_prov, len, reinterpret_cast(data))) { throw std::runtime_error("unable to generate secure random data"); } #elif defined(RANDOM_DEVICE) // Optimization: wrap the file open and close in a class so that // the file is closed in a destructor, then make this static to // keep the file handle open. Only do this if it can be done in a // thread-safe fashion. FILE* f = QUtil::safe_fopen(RANDOM_DEVICE, "rb"); size_t fr = fread(data, 1, len, f); fclose(f); if (fr != len) { throw std::runtime_error( "unable to read " + QUtil::int_to_string(len) + " bytes from " + std::string(RANDOM_DEVICE)); } #else # error "Don't know how to generate secure random numbers on this platform. See random number generation in the top-level README.md" #endif } RandomDataProvider* SecureRandomDataProvider::getInstance() { static SecureRandomDataProvider instance; return &instance; } #endif qpdf-8.0.2/libqpdf/QPDF_Array.cc0000644000064100006410000000436313247541377014374 0ustar ejbejb#include #include #include QPDF_Array::QPDF_Array(std::vector const& items) : items(items) { } QPDF_Array::~QPDF_Array() { } void QPDF_Array::releaseResolved() { for (std::vector::iterator iter = this->items.begin(); iter != this->items.end(); ++iter) { QPDFObjectHandle::ReleaseResolver::releaseResolved(*iter); } } std::string QPDF_Array::unparse() { std::string result = "[ "; for (std::vector::iterator iter = this->items.begin(); iter != this->items.end(); ++iter) { result += (*iter).unparse(); result += " "; } result += "]"; return result; } QPDFObject::object_type_e QPDF_Array::getTypeCode() const { return QPDFObject::ot_array; } char const* QPDF_Array::getTypeName() const { return "array"; } void QPDF_Array::setDescription(QPDF* qpdf, std::string const& description) { this->QPDFObject::setDescription(qpdf, description); } int QPDF_Array::getNItems() const { return this->items.size(); } QPDFObjectHandle QPDF_Array::getItem(int n) const { if ((n < 0) || (n >= static_cast(this->items.size()))) { throw std::logic_error( "INTERNAL ERROR: bounds error accessing QPDF_Array element"); } return this->items.at(n); } std::vector const& QPDF_Array::getAsVector() const { return this->items; } void QPDF_Array::setItem(int n, QPDFObjectHandle const& oh) { // Call getItem for bounds checking (void) getItem(n); this->items.at(n) = oh; } void QPDF_Array::setFromVector(std::vector const& items) { this->items = items; } void QPDF_Array::insertItem(int at, QPDFObjectHandle const& item) { // As special case, also allow insert beyond the end if ((at < 0) || (at > static_cast(this->items.size()))) { throw std::logic_error( "INTERNAL ERROR: bounds error accessing QPDF_Array element"); } this->items.insert(this->items.begin() + at, item); } void QPDF_Array::appendItem(QPDFObjectHandle const& item) { this->items.push_back(item); } void QPDF_Array::eraseItem(int at) { // Call getItem for bounds checking (void) getItem(at); this->items.erase(this->items.begin() + at); } qpdf-8.0.2/libqpdf/Pl_TIFFPredictor.cc0000644000064100006410000000640513247541377015542 0ustar ejbejb#include #include #include #include #include #include #include #include Pl_TIFFPredictor::Pl_TIFFPredictor(char const* identifier, Pipeline* next, action_e action, unsigned int columns, unsigned int samples_per_pixel, unsigned int bits_per_sample) : Pipeline(identifier, next), action(action), columns(columns), samples_per_pixel(samples_per_pixel), bits_per_sample(bits_per_sample), cur_row(0), pos(0) { if (samples_per_pixel < 1) { throw std::runtime_error( "TIFFPredictor created with invalid samples_per_pixel"); } if ((bits_per_sample < 1) || (bits_per_sample > (8 * (sizeof(unsigned long long))))) { throw std::runtime_error( "TIFFPredictor created with invalid bits_per_sample"); } unsigned long long bpr = ((columns * bits_per_sample * samples_per_pixel) + 7) / 8; if ((bpr == 0) || (bpr > (UINT_MAX - 1))) { throw std::runtime_error( "TIFFPredictor created with invalid columns value"); } this->bytes_per_row = bpr & UINT_MAX; this->cur_row = new unsigned char[this->bytes_per_row]; memset(this->cur_row, 0, this->bytes_per_row); } Pl_TIFFPredictor::~Pl_TIFFPredictor() { delete [] cur_row; } void Pl_TIFFPredictor::write(unsigned char* data, size_t len) { size_t left = this->bytes_per_row - this->pos; size_t offset = 0; while (len >= left) { // finish off current row memcpy(this->cur_row + this->pos, data + offset, left); offset += left; len -= left; processRow(); // Prepare for next row memset(this->cur_row, 0, this->bytes_per_row); left = this->bytes_per_row; this->pos = 0; } if (len) { memcpy(this->cur_row + this->pos, data + offset, len); } this->pos += len; } void Pl_TIFFPredictor::processRow() { QTC::TC("libtests", "Pl_TIFFPredictor processRow", (action == a_decode ? 0 : 1)); BitWriter bw(this->getNext()); BitStream in(this->cur_row, this->bytes_per_row); std::vector prev; for (unsigned int i = 0; i < this->samples_per_pixel; ++i) { long long sample = in.getBitsSigned(this->bits_per_sample); bw.writeBitsSigned(sample, this->bits_per_sample); prev.push_back(sample); } for (unsigned int col = 1; col < this->columns; ++col) { for (unsigned int i = 0; i < this->samples_per_pixel; ++i) { long long sample = in.getBitsSigned(this->bits_per_sample); long long new_sample = sample; if (action == a_encode) { new_sample -= prev[i]; prev[i] = sample; } else { new_sample += prev[i]; prev[i] = new_sample; } bw.writeBitsSigned(new_sample, this->bits_per_sample); } } bw.flush(); } void Pl_TIFFPredictor::finish() { if (this->pos) { // write partial row processRow(); } this->pos = 0; memset(this->cur_row, 0, this->bytes_per_row); getNext()->finish(); } qpdf-8.0.2/libqpdf/Makefile0000644000064100006410000000003113247541377013621 0ustar ejbejbinclude ../make/proxy.mk qpdf-8.0.2/libqpdf/QPDFObjectHandle.cc0000644000064100006410000016455113247541377015507 0ustar ejbejb#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include class TerminateParsing { }; class CoalesceProvider: public QPDFObjectHandle::StreamDataProvider { public: CoalesceProvider(QPDFObjectHandle containing_page, QPDFObjectHandle old_contents) : containing_page(containing_page), old_contents(old_contents) { } virtual ~CoalesceProvider() { } virtual void provideStreamData(int objid, int generation, Pipeline* pipeline); private: QPDFObjectHandle containing_page; QPDFObjectHandle old_contents; }; void CoalesceProvider::provideStreamData(int, int, Pipeline* p) { QTC::TC("qpdf", "QPDFObjectHandle coalesce provide stream data"); Pl_Concatenate concat("concatenate", p); std::string description = "page object " + QUtil::int_to_string(containing_page.getObjectID()) + " " + QUtil::int_to_string(containing_page.getGeneration()); std::string all_description; old_contents.pipeContentStreams(&concat, description, all_description); concat.manualFinish(); } void QPDFObjectHandle::TokenFilter::handleEOF() { } void QPDFObjectHandle::TokenFilter::setPipeline(Pipeline* p) { this->pipeline = p; } void QPDFObjectHandle::TokenFilter::write(char const* data, size_t len) { if (! this->pipeline) { return; } if (len) { this->pipeline->write(QUtil::unsigned_char_pointer(data), len); } } void QPDFObjectHandle::TokenFilter::write(std::string const& str) { write(str.c_str(), str.length()); } void QPDFObjectHandle::TokenFilter::writeToken(QPDFTokenizer::Token const& token) { std::string value = token.getRawValue(); write(value.c_str(), value.length()); } void QPDFObjectHandle::ParserCallbacks::terminateParsing() { throw TerminateParsing(); } QPDFObjectHandle::Members::~Members() { } QPDFObjectHandle::Members::Members() : initialized(false), qpdf(0), objid(0), generation(0), reserved(false) { } QPDFObjectHandle::Members::Members(QPDF* qpdf, int objid, int generation) : initialized(true), qpdf(qpdf), objid(objid), generation(generation), reserved(false) { } QPDFObjectHandle::Members::Members(QPDFObject* data) : initialized(true), qpdf(0), objid(0), generation(0), obj(data), reserved(false) { } QPDFObjectHandle::QPDFObjectHandle() : m(new Members) { } QPDFObjectHandle::QPDFObjectHandle(QPDFObjectHandle const& rhs) : m(new Members) { *m = *rhs.m; } QPDFObjectHandle& QPDFObjectHandle::operator=(QPDFObjectHandle const& rhs) { if (this != &rhs) { *m = *rhs.m; } return *this; } QPDFObjectHandle::QPDFObjectHandle(QPDF* qpdf, int objid, int generation) : m(new Members(qpdf, objid, generation)) { } QPDFObjectHandle::QPDFObjectHandle(QPDFObject* data) : m(new Members(data)) { } void QPDFObjectHandle::releaseResolved() { // Recursively break any resolved references to indirect objects. // Do not cross over indirect object boundaries to avoid an // infinite loop. This method may only be called during final // destruction. See comments in QPDF::~QPDF(). if (isIndirect()) { if (this->m->obj.getPointer()) { this->m->obj = 0; } } else { QPDFObject::ObjAccessor::releaseResolved(this->m->obj.getPointer()); } } void QPDFObjectHandle::setObjectDescriptionFromInput( QPDFObjectHandle object, QPDF* context, std::string const& description, PointerHolder input, qpdf_offset_t offset) { object.setObjectDescription( context, input->getName() + ", " + description + " at offset " + QUtil::int_to_string(offset)); } bool QPDFObjectHandle::isInitialized() const { return this->m->initialized; } QPDFObject::object_type_e QPDFObjectHandle::getTypeCode() { if (this->m->initialized) { dereference(); return this->m->obj->getTypeCode(); } else { return QPDFObject::ot_uninitialized; } } char const* QPDFObjectHandle::getTypeName() { if (this->m->initialized) { dereference(); return this->m->obj->getTypeName(); } else { return "uninitialized"; } } template class QPDFObjectTypeAccessor { public: static bool check(QPDFObject* o) { return (o && dynamic_cast(o)); } }; bool QPDFObjectHandle::isBool() { dereference(); return QPDFObjectTypeAccessor::check(m->obj.getPointer()); } bool QPDFObjectHandle::isNull() { dereference(); return QPDFObjectTypeAccessor::check(m->obj.getPointer()); } bool QPDFObjectHandle::isInteger() { dereference(); return QPDFObjectTypeAccessor::check(m->obj.getPointer()); } bool QPDFObjectHandle::isReal() { dereference(); return QPDFObjectTypeAccessor::check(m->obj.getPointer()); } bool QPDFObjectHandle::isNumber() { return (isInteger() || isReal()); } double QPDFObjectHandle::getNumericValue() { double result = 0.0; if (isInteger()) { result = static_cast(getIntValue()); } else if (isReal()) { result = atof(getRealValue().c_str()); } else { typeWarning("number", "returning 0"); QTC::TC("qpdf", "QPDFObjectHandle numeric non-numeric"); } return result; } bool QPDFObjectHandle::isName() { dereference(); return QPDFObjectTypeAccessor::check(m->obj.getPointer()); } bool QPDFObjectHandle::isString() { dereference(); return QPDFObjectTypeAccessor::check(m->obj.getPointer()); } bool QPDFObjectHandle::isOperator() { dereference(); return QPDFObjectTypeAccessor::check(m->obj.getPointer()); } bool QPDFObjectHandle::isInlineImage() { dereference(); return QPDFObjectTypeAccessor::check(m->obj.getPointer()); } bool QPDFObjectHandle::isArray() { dereference(); return QPDFObjectTypeAccessor::check(m->obj.getPointer()); } bool QPDFObjectHandle::isDictionary() { dereference(); return QPDFObjectTypeAccessor::check(m->obj.getPointer()); } bool QPDFObjectHandle::isStream() { dereference(); return QPDFObjectTypeAccessor::check(m->obj.getPointer()); } bool QPDFObjectHandle::isReserved() { // dereference will clear reserved if this has been replaced dereference(); return this->m->reserved; } bool QPDFObjectHandle::isIndirect() { assertInitialized(); return (this->m->objid != 0); } bool QPDFObjectHandle::isScalar() { return (! (isArray() || isDictionary() || isStream() || isOperator() || isInlineImage())); } // Bool accessors bool QPDFObjectHandle::getBoolValue() { if (isBool()) { return dynamic_cast(m->obj.getPointer())->getVal(); } else { typeWarning("boolean", "returning false"); QTC::TC("qpdf", "QPDFObjectHandle boolean returning false"); return false; } } // Integer accessors long long QPDFObjectHandle::getIntValue() { if (isInteger()) { return dynamic_cast(m->obj.getPointer())->getVal(); } else { typeWarning("integer", "returning 0"); QTC::TC("qpdf", "QPDFObjectHandle integer returning 0"); return 0; } } // Real accessors std::string QPDFObjectHandle::getRealValue() { if (isReal()) { return dynamic_cast(m->obj.getPointer())->getVal(); } else { typeWarning("real", "returning 0.0"); QTC::TC("qpdf", "QPDFObjectHandle real returning 0.0"); return "0.0"; } } // Name accessors std::string QPDFObjectHandle::getName() { if (isName()) { return dynamic_cast(m->obj.getPointer())->getName(); } else { typeWarning("name", "returning dummy name"); QTC::TC("qpdf", "QPDFObjectHandle name returning dummy name"); return "/QPDFFakeName"; } } // String accessors std::string QPDFObjectHandle::getStringValue() { if (isString()) { return dynamic_cast(m->obj.getPointer())->getVal(); } else { typeWarning("string", "returning empty string"); QTC::TC("qpdf", "QPDFObjectHandle string returning empty string"); return ""; } } std::string QPDFObjectHandle::getUTF8Value() { if (isString()) { return dynamic_cast(m->obj.getPointer())->getUTF8Val(); } else { typeWarning("string", "returning empty string"); QTC::TC("qpdf", "QPDFObjectHandle string returning empty utf8"); return ""; } } // Operator and Inline Image accessors std::string QPDFObjectHandle::getOperatorValue() { if (isOperator()) { return dynamic_cast(m->obj.getPointer())->getVal(); } else { typeWarning("operator", "returning fake value"); QTC::TC("qpdf", "QPDFObjectHandle operator returning fake value"); return "QPDFFAKE"; } } std::string QPDFObjectHandle::getInlineImageValue() { if (isInlineImage()) { return dynamic_cast(m->obj.getPointer())->getVal(); } else { typeWarning("inlineimage", "returning empty data"); QTC::TC("qpdf", "QPDFObjectHandle inlineimage returning empty data"); return ""; } } // Array accessors int QPDFObjectHandle::getArrayNItems() { if (isArray()) { return dynamic_cast(m->obj.getPointer())->getNItems(); } else { typeWarning("array", "treating as empty"); QTC::TC("qpdf", "QPDFObjectHandle array treating as empty"); return 0; } } QPDFObjectHandle QPDFObjectHandle::getArrayItem(int n) { QPDFObjectHandle result; if (isArray() && (n < getArrayNItems()) && (n >= 0)) { result = dynamic_cast(m->obj.getPointer())->getItem(n); } else { result = newNull(); if (isArray()) { objectWarning("returning null for out of bounds array access"); QTC::TC("qpdf", "QPDFObjectHandle array bounds"); } else { typeWarning("array", "returning null"); QTC::TC("qpdf", "QPDFObjectHandle array null for non-array"); } QPDF* context = 0; std::string description; if (this->m->obj->getDescription(context, description)) { result.setObjectDescription( context, description + " -> null returned from invalid array access"); } } return result; } std::vector QPDFObjectHandle::getArrayAsVector() { std::vector result; if (isArray()) { result = dynamic_cast(m->obj.getPointer())->getAsVector(); } else { typeWarning("array", "treating as empty"); QTC::TC("qpdf", "QPDFObjectHandle array treating as empty vector"); } return result; } // Array mutators void QPDFObjectHandle::setArrayItem(int n, QPDFObjectHandle const& item) { if (isArray()) { dynamic_cast(m->obj.getPointer())->setItem(n, item); } else { typeWarning("array", "ignoring attempt to set item"); QTC::TC("qpdf", "QPDFObjectHandle array ignoring set item"); } } void QPDFObjectHandle::setArrayFromVector(std::vector const& items) { if (isArray()) { dynamic_cast(m->obj.getPointer())->setFromVector(items); } else { typeWarning("array", "ignoring attempt to replace items"); QTC::TC("qpdf", "QPDFObjectHandle array ignoring replace items"); } } void QPDFObjectHandle::insertItem(int at, QPDFObjectHandle const& item) { if (isArray()) { dynamic_cast(m->obj.getPointer())->insertItem(at, item); } else { typeWarning("array", "ignoring attempt to insert item"); QTC::TC("qpdf", "QPDFObjectHandle array ignoring insert item"); } } void QPDFObjectHandle::appendItem(QPDFObjectHandle const& item) { if (isArray()) { dynamic_cast(m->obj.getPointer())->appendItem(item); } else { typeWarning("array", "ignoring attempt to append item"); QTC::TC("qpdf", "QPDFObjectHandle array ignoring append item"); } } void QPDFObjectHandle::eraseItem(int at) { if (isArray() && (at < getArrayNItems()) && (at >= 0)) { dynamic_cast(m->obj.getPointer())->eraseItem(at); } else { if (isArray()) { objectWarning("ignoring attempt to erase out of bounds array item"); QTC::TC("qpdf", "QPDFObjectHandle erase array bounds"); } else { typeWarning("array", "ignoring attempt to erase item"); QTC::TC("qpdf", "QPDFObjectHandle array ignoring erase item"); } } } // Dictionary accessors bool QPDFObjectHandle::hasKey(std::string const& key) { if (isDictionary()) { return dynamic_cast(m->obj.getPointer())->hasKey(key); } else { typeWarning("dictionary", "returning false for a key containment request"); QTC::TC("qpdf", "QPDFObjectHandle dictionary false for hasKey"); return false; } } QPDFObjectHandle QPDFObjectHandle::getKey(std::string const& key) { QPDFObjectHandle result; if (isDictionary()) { result = dynamic_cast( m->obj.getPointer())->getKey(key); } else { typeWarning( "dictionary", "returning null for attempted key retrieval"); QTC::TC("qpdf", "QPDFObjectHandle dictionary null for getKey"); result = newNull(); QPDF* qpdf = 0; std::string description; if (this->m->obj->getDescription(qpdf, description)) { result.setObjectDescription( qpdf, description + " -> null returned from getting key " + key + " from non-Dictionary"); } } return result; } std::set QPDFObjectHandle::getKeys() { std::set result; if (isDictionary()) { result = dynamic_cast(m->obj.getPointer())->getKeys(); } else { typeWarning("dictionary", "treating as empty"); QTC::TC("qpdf", "QPDFObjectHandle dictionary empty set for getKeys"); } return result; } std::map QPDFObjectHandle::getDictAsMap() { std::map result; if (isDictionary()) { result = dynamic_cast( m->obj.getPointer())->getAsMap(); } else { typeWarning("dictionary", "treating as empty"); QTC::TC("qpdf", "QPDFObjectHandle dictionary empty map for asMap"); } return result; } // Array and Name accessors bool QPDFObjectHandle::isOrHasName(std::string const& value) { if (isName() && (getName() == value)) { return true; } else if (isArray()) { int n = getArrayNItems(); for (int i = 0; i < n; ++i) { QPDFObjectHandle item = getArrayItem(0); if (item.isName() && (item.getName() == value)) { return true; } } } return false; } // Indirect object accessors QPDF* QPDFObjectHandle::getOwningQPDF() { // Will be null for direct objects return this->m->qpdf; } // Dictionary mutators void QPDFObjectHandle::replaceKey(std::string const& key, QPDFObjectHandle value) { if (isDictionary()) { dynamic_cast( m->obj.getPointer())->replaceKey(key, value); } else { typeWarning("dictionary", "ignoring key replacement request"); QTC::TC("qpdf", "QPDFObjectHandle dictionary ignoring replaceKey"); } } void QPDFObjectHandle::removeKey(std::string const& key) { if (isDictionary()) { dynamic_cast(m->obj.getPointer())->removeKey(key); } else { typeWarning("dictionary", "ignoring key removal request"); QTC::TC("qpdf", "QPDFObjectHandle dictionary ignoring removeKey"); } } void QPDFObjectHandle::replaceOrRemoveKey(std::string const& key, QPDFObjectHandle value) { if (isDictionary()) { dynamic_cast( m->obj.getPointer())->replaceOrRemoveKey(key, value); } else { typeWarning("dictionary", "ignoring key removal/replacement request"); QTC::TC("qpdf", "QPDFObjectHandle dictionary ignoring removereplace"); } } // Stream accessors QPDFObjectHandle QPDFObjectHandle::getDict() { assertStream(); return dynamic_cast(m->obj.getPointer())->getDict(); } bool QPDFObjectHandle::isDataModified() { assertStream(); return dynamic_cast(m->obj.getPointer())->isDataModified(); } void QPDFObjectHandle::replaceDict(QPDFObjectHandle new_dict) { assertStream(); dynamic_cast(m->obj.getPointer())->replaceDict(new_dict); } PointerHolder QPDFObjectHandle::getStreamData(qpdf_stream_decode_level_e level) { assertStream(); return dynamic_cast( m->obj.getPointer())->getStreamData(level); } PointerHolder QPDFObjectHandle::getRawStreamData() { assertStream(); return dynamic_cast(m->obj.getPointer())->getRawStreamData(); } bool QPDFObjectHandle::pipeStreamData(Pipeline* p, unsigned long encode_flags, qpdf_stream_decode_level_e decode_level, bool suppress_warnings, bool will_retry) { assertStream(); return dynamic_cast(m->obj.getPointer())->pipeStreamData( p, encode_flags, decode_level, suppress_warnings, will_retry); } bool QPDFObjectHandle::pipeStreamData(Pipeline* p, bool filter, bool normalize, bool compress) { unsigned long encode_flags = 0; qpdf_stream_decode_level_e decode_level = qpdf_dl_none; if (filter) { decode_level = qpdf_dl_generalized; if (normalize) { encode_flags |= qpdf_ef_normalize; } if (compress) { encode_flags |= qpdf_ef_compress; } } return pipeStreamData(p, encode_flags, decode_level, false); } void QPDFObjectHandle::replaceStreamData(PointerHolder data, QPDFObjectHandle const& filter, QPDFObjectHandle const& decode_parms) { assertStream(); dynamic_cast(m->obj.getPointer())->replaceStreamData( data, filter, decode_parms); } void QPDFObjectHandle::replaceStreamData(std::string const& data, QPDFObjectHandle const& filter, QPDFObjectHandle const& decode_parms) { assertStream(); PointerHolder b = new Buffer(data.length()); unsigned char* bp = b->getBuffer(); memcpy(bp, data.c_str(), data.length()); dynamic_cast(m->obj.getPointer())->replaceStreamData( b, filter, decode_parms); } void QPDFObjectHandle::replaceStreamData(PointerHolder provider, QPDFObjectHandle const& filter, QPDFObjectHandle const& decode_parms) { assertStream(); dynamic_cast(m->obj.getPointer())->replaceStreamData( provider, filter, decode_parms); } QPDFObjGen QPDFObjectHandle::getObjGen() const { return QPDFObjGen(this->m->objid, this->m->generation); } int QPDFObjectHandle::getObjectID() const { return this->m->objid; } int QPDFObjectHandle::getGeneration() const { return this->m->generation; } std::map QPDFObjectHandle::getPageImages() { // Note: this code doesn't handle inherited resources. If this // page dictionary doesn't have a /Resources key or has one whose // value is null or an empty dictionary, you are supposed to walk // up the page tree until you find a /Resources dictionary. As of // this writing, I don't have any test files that use inherited // resources, and hand-generating one won't be a good test because // any mistakes in my understanding would be present in both the // code and the test file. // NOTE: If support of inherited resources (see above comment) is // implemented, edit comment in QPDFObjectHandle.hh for this // function. Also remove call to pushInheritedAttributesToPage // from qpdf.cc when show_page_images is true. std::map result; if (this->hasKey("/Resources")) { QPDFObjectHandle resources = this->getKey("/Resources"); if (resources.hasKey("/XObject")) { QPDFObjectHandle xobject = resources.getKey("/XObject"); std::set keys = xobject.getKeys(); for (std::set::iterator iter = keys.begin(); iter != keys.end(); ++iter) { std::string key = (*iter); QPDFObjectHandle value = xobject.getKey(key); if (value.isStream()) { QPDFObjectHandle dict = value.getDict(); if (dict.hasKey("/Subtype") && (dict.getKey("/Subtype").getName() == "/Image") && (! dict.hasKey("/ImageMask"))) { result[key] = value; } } } } } return result; } std::vector QPDFObjectHandle::arrayOrStreamToStreamArray( std::string const& description, std::string& all_description) { all_description = description; std::vector result; if (isArray()) { int n_items = getArrayNItems(); for (int i = 0; i < n_items; ++i) { QPDFObjectHandle item = getArrayItem(i); if (item.isStream()) { result.push_back(item); } else { QTC::TC("qpdf", "QPDFObjectHandle non-stream in stream array"); warn(item.getOwningQPDF(), QPDFExc(qpdf_e_damaged_pdf, description, "item index " + QUtil::int_to_string(i) + " (from 0)", 0, "ignoring non-stream in an array of streams")); } } } else if (isStream()) { result.push_back(*this); } else if (! isNull()) { warn(getOwningQPDF(), QPDFExc(qpdf_e_damaged_pdf, "", description, 0, " object is supposed to be a stream or an" " array of streams but is neither")); } bool first = true; for (std::vector::iterator iter = result.begin(); iter != result.end(); ++iter) { QPDFObjectHandle item = *iter; std::string og = QUtil::int_to_string(item.getObjectID()) + " " + QUtil::int_to_string(item.getGeneration()); if (first) { first = false; } else { all_description += ","; } all_description += " stream " + og; } return result; } std::vector QPDFObjectHandle::getPageContents() { std::string description = "page object " + QUtil::int_to_string(this->m->objid) + " " + QUtil::int_to_string(this->m->generation); std::string all_description; return this->getKey("/Contents").arrayOrStreamToStreamArray( description, all_description); } void QPDFObjectHandle::addPageContents(QPDFObjectHandle new_contents, bool first) { new_contents.assertStream(); std::vector orig_contents = getPageContents(); std::vector content_streams; if (first) { QTC::TC("qpdf", "QPDFObjectHandle prepend page contents"); content_streams.push_back(new_contents); } for (std::vector::iterator iter = orig_contents.begin(); iter != orig_contents.end(); ++iter) { QTC::TC("qpdf", "QPDFObjectHandle append page contents"); content_streams.push_back(*iter); } if (! first) { content_streams.push_back(new_contents); } QPDFObjectHandle contents = QPDFObjectHandle::newArray(content_streams); this->replaceKey("/Contents", contents); } void QPDFObjectHandle::rotatePage(int angle, bool relative) { if ((angle % 90) != 0) { throw std::runtime_error( "QPDF::rotatePage called with an" " angle that is not a multiple of 90"); } int new_angle = angle; if (relative) { int old_angle = 0; bool found_rotate = false; QPDFObjectHandle cur_obj = *this; bool searched_parent = false; std::set visited; while (! found_rotate) { if (visited.count(cur_obj.getObjGen())) { // Don't get stuck in an infinite loop break; } if (! visited.empty()) { searched_parent = true; } visited.insert(cur_obj.getObjGen()); if (cur_obj.getKey("/Rotate").isInteger()) { found_rotate = true; old_angle = cur_obj.getKey("/Rotate").getIntValue(); } else if (cur_obj.getKey("/Parent").isDictionary()) { cur_obj = cur_obj.getKey("/Parent"); } else { break; } } QTC::TC("qpdf", "QPDFObjectHandle found old angle", searched_parent ? 0 : 1); if ((old_angle % 90) != 0) { old_angle = 0; } new_angle += old_angle; } new_angle = (new_angle + 360) % 360; replaceKey("/Rotate", QPDFObjectHandle::newInteger(new_angle)); } void QPDFObjectHandle::coalesceContentStreams() { QPDFObjectHandle contents = this->getKey("/Contents"); if (contents.isStream()) { QTC::TC("qpdf", "QPDFObjectHandle coalesce called on stream"); return; } QPDF* qpdf = getOwningQPDF(); if (qpdf == 0) { // Should not be possible for a page object to not have an // owning PDF unless it was manually constructed in some // incorrect way. throw std::logic_error("coalesceContentStreams called on object" " with no associated PDF file"); } QPDFObjectHandle new_contents = newStream(qpdf); this->replaceKey("/Contents", new_contents); PointerHolder provider = new CoalesceProvider(*this, contents); new_contents.replaceStreamData(provider, newNull(), newNull()); } std::string QPDFObjectHandle::unparse() { std::string result; if (this->isIndirect()) { result = QUtil::int_to_string(this->m->objid) + " " + QUtil::int_to_string(this->m->generation) + " R"; } else { result = unparseResolved(); } return result; } std::string QPDFObjectHandle::unparseResolved() { if (this->m->reserved) { throw std::logic_error( "QPDFObjectHandle: attempting to unparse a reserved object"); } dereference(); return this->m->obj->unparse(); } QPDFObjectHandle QPDFObjectHandle::parse(std::string const& object_str, std::string const& object_description) { PointerHolder input = new BufferInputSource("parsed object", object_str); QPDFTokenizer tokenizer; bool empty = false; QPDFObjectHandle result = parse(input, object_description, tokenizer, empty, 0, 0); size_t offset = input->tell(); while (offset < object_str.length()) { if (! isspace(object_str.at(offset))) { QTC::TC("qpdf", "QPDFObjectHandle trailing data in parse"); throw QPDFExc(qpdf_e_damaged_pdf, input->getName(), object_description, input->getLastOffset(), "trailing data found parsing object from string"); } ++offset; } return result; } void QPDFObjectHandle::pipePageContents(Pipeline* p) { std::string description = "page object " + QUtil::int_to_string(this->m->objid) + " " + QUtil::int_to_string(this->m->generation); std::string all_description; this->getKey("/Contents").pipeContentStreams( p, description, all_description); } void QPDFObjectHandle::pipeContentStreams( Pipeline* p, std::string const& description, std::string& all_description) { std::vector streams = arrayOrStreamToStreamArray( description, all_description); for (std::vector::iterator iter = streams.begin(); iter != streams.end(); ++iter) { QPDFObjectHandle stream = *iter; std::string og = QUtil::int_to_string(stream.getObjectID()) + " " + QUtil::int_to_string(stream.getGeneration()); std::string description = "content stream object " + og; if (! stream.pipeStreamData(p, 0, qpdf_dl_specialized)) { QTC::TC("qpdf", "QPDFObjectHandle errors in parsecontent"); warn(stream.getOwningQPDF(), QPDFExc(qpdf_e_damaged_pdf, "content stream", description, 0, "errors while decoding content stream")); } } } void QPDFObjectHandle::parsePageContents(ParserCallbacks* callbacks) { std::string description = "page object " + QUtil::int_to_string(this->m->objid) + " " + QUtil::int_to_string(this->m->generation); this->getKey("/Contents").parseContentStream_internal( description, callbacks); } void QPDFObjectHandle::filterPageContents(TokenFilter* filter, Pipeline* next) { std::string description = "token filter for page object " + QUtil::int_to_string(this->m->objid) + " " + QUtil::int_to_string(this->m->generation); Pl_QPDFTokenizer token_pipeline(description.c_str(), filter, next); this->pipePageContents(&token_pipeline); } void QPDFObjectHandle::parseContentStream(QPDFObjectHandle stream_or_array, ParserCallbacks* callbacks) { stream_or_array.parseContentStream_internal( "content stream objects", callbacks); } void QPDFObjectHandle::parseContentStream_internal( std::string const& description, ParserCallbacks* callbacks) { Pl_Buffer buf("concatenated stream data buffer"); std::string all_description; pipeContentStreams(&buf, description, all_description); PointerHolder stream_data = buf.getBuffer(); try { parseContentStream_data(stream_data, all_description, callbacks); } catch (TerminateParsing&) { return; } callbacks->handleEOF(); } void QPDFObjectHandle::parseContentStream_data( PointerHolder stream_data, std::string const& description, ParserCallbacks* callbacks) { size_t length = stream_data->getSize(); PointerHolder input = new BufferInputSource(description, stream_data.getPointer()); QPDFTokenizer tokenizer; tokenizer.allowEOF(); bool empty = false; while (static_cast(input->tell()) < length) { QPDFObjectHandle obj = parseInternal(input, "content", tokenizer, empty, 0, 0, true); if (! obj.isInitialized()) { // EOF break; } callbacks->handleObject(obj); if (obj.isOperator() && (obj.getOperatorValue() == "ID")) { // Discard next character; it is the space after ID that // terminated the token. Read until end of inline image. char ch; input->read(&ch, 1); tokenizer.expectInlineImage(); QPDFTokenizer::Token t = tokenizer.readToken(input, description, true); if (t.getType() == QPDFTokenizer::tt_bad) { QTC::TC("qpdf", "QPDFObjectHandle EOF in inline image"); throw QPDFExc(qpdf_e_damaged_pdf, input->getName(), "stream data", input->tell(), "EOF found while reading inline image"); } else { // Skip back over EI input->seek(-3, SEEK_CUR); std::string inline_image = t.getRawValue(); for (int i = 0; i < 4; ++i) { if (inline_image.length() > 0) { inline_image.erase(inline_image.length() - 1); } } QTC::TC("qpdf", "QPDFObjectHandle inline image token"); callbacks->handleObject( QPDFObjectHandle::newInlineImage(inline_image)); } } } } void QPDFObjectHandle::addContentTokenFilter(PointerHolder filter) { coalesceContentStreams(); this->getKey("/Contents").addTokenFilter(filter); } void QPDFObjectHandle::addTokenFilter(PointerHolder filter) { assertStream(); return dynamic_cast( m->obj.getPointer())->addTokenFilter(filter); } QPDFObjectHandle QPDFObjectHandle::parse(PointerHolder input, std::string const& object_description, QPDFTokenizer& tokenizer, bool& empty, StringDecrypter* decrypter, QPDF* context) { return parseInternal(input, object_description, tokenizer, empty, decrypter, context, false); } QPDFObjectHandle QPDFObjectHandle::parseInternal(PointerHolder input, std::string const& object_description, QPDFTokenizer& tokenizer, bool& empty, StringDecrypter* decrypter, QPDF* context, bool content_stream) { // This method must take care not to resolve any objects. Don't // check the type of any object without first ensuring that it is // a direct object. Otherwise, doing so may have the side effect // of reading the object and changing the file pointer. empty = false; QPDFObjectHandle object; std::vector > olist_stack; olist_stack.push_back(std::vector()); std::vector state_stack; state_stack.push_back(st_top); std::vector offset_stack; qpdf_offset_t offset = input->tell(); offset_stack.push_back(offset); bool done = false; while (! done) { std::vector& olist = olist_stack.back(); parser_state_e state = state_stack.back(); offset = offset_stack.back(); object = QPDFObjectHandle(); QPDFTokenizer::Token token = tokenizer.readToken(input, object_description, true); switch (token.getType()) { case QPDFTokenizer::tt_eof: if (! content_stream) { QTC::TC("qpdf", "QPDFObjectHandle eof in parseInternal"); warn(context, QPDFExc(qpdf_e_damaged_pdf, input->getName(), object_description, input->getLastOffset(), "unexpected EOF")); } state = st_eof; break; case QPDFTokenizer::tt_bad: QTC::TC("qpdf", "QPDFObjectHandle bad token in parse"); warn(context, QPDFExc(qpdf_e_damaged_pdf, input->getName(), object_description, input->getLastOffset(), token.getErrorMessage())); object = newNull(); break; case QPDFTokenizer::tt_brace_open: case QPDFTokenizer::tt_brace_close: QTC::TC("qpdf", "QPDFObjectHandle bad brace"); warn(context, QPDFExc(qpdf_e_damaged_pdf, input->getName(), object_description, input->getLastOffset(), "treating unexpected brace token as null")); object = newNull(); break; case QPDFTokenizer::tt_array_close: if (state == st_array) { state = st_stop; } else { QTC::TC("qpdf", "QPDFObjectHandle bad array close"); warn(context, QPDFExc(qpdf_e_damaged_pdf, input->getName(), object_description, input->getLastOffset(), "treating unexpected array close token as null")); object = newNull(); } break; case QPDFTokenizer::tt_dict_close: if (state == st_dictionary) { state = st_stop; } else { QTC::TC("qpdf", "QPDFObjectHandle bad dictionary close"); warn(context, QPDFExc(qpdf_e_damaged_pdf, input->getName(), object_description, input->getLastOffset(), "unexpected dictionary close token")); object = newNull(); } break; case QPDFTokenizer::tt_array_open: case QPDFTokenizer::tt_dict_open: olist_stack.push_back(std::vector()); state = st_start; offset_stack.push_back(input->tell()); state_stack.push_back( (token.getType() == QPDFTokenizer::tt_array_open) ? st_array : st_dictionary); break; case QPDFTokenizer::tt_bool: object = newBool((token.getValue() == "true")); break; case QPDFTokenizer::tt_null: object = newNull(); break; case QPDFTokenizer::tt_integer: object = newInteger(QUtil::string_to_ll(token.getValue().c_str())); break; case QPDFTokenizer::tt_real: object = newReal(token.getValue()); break; case QPDFTokenizer::tt_name: object = newName(token.getValue()); break; case QPDFTokenizer::tt_word: { std::string const& value = token.getValue(); if (content_stream) { object = QPDFObjectHandle::newOperator(value); } else if ((value == "R") && (state != st_top) && (olist.size() >= 2) && (! olist.at(olist.size() - 1).isIndirect()) && (olist.at(olist.size() - 1).isInteger()) && (! olist.at(olist.size() - 2).isIndirect()) && (olist.at(olist.size() - 2).isInteger())) { if (context == 0) { QTC::TC("qpdf", "QPDFObjectHandle indirect without context"); throw std::logic_error( "QPDFObjectHandle::parse called without context" " on an object with indirect references"); } // Try to resolve indirect objects object = newIndirect( context, olist.at(olist.size() - 2).getIntValue(), olist.at(olist.size() - 1).getIntValue()); olist.pop_back(); olist.pop_back(); } else if ((value == "endobj") && (state == st_top)) { // We just saw endobj without having read // anything. Treat this as a null and do not move // the input source's offset. object = newNull(); input->seek(input->getLastOffset(), SEEK_SET); empty = true; } else { QTC::TC("qpdf", "QPDFObjectHandle treat word as string"); warn(context, QPDFExc(qpdf_e_damaged_pdf, input->getName(), object_description, input->getLastOffset(), "unknown token while reading object;" " treating as string")); object = newString(value); } } break; case QPDFTokenizer::tt_string: { std::string val = token.getValue(); if (decrypter) { decrypter->decryptString(val); } object = QPDFObjectHandle::newString(val); } break; default: warn(context, QPDFExc(qpdf_e_damaged_pdf, input->getName(), object_description, input->getLastOffset(), "treating unknown token type as null while " "reading object")); object = newNull(); break; } if ((! object.isInitialized()) && (! ((state == st_start) || (state == st_stop) || (state == st_eof)))) { throw std::logic_error( "QPDFObjectHandle::parseInternal: " "unexpected uninitialized object"); object = newNull(); } switch (state) { case st_eof: if (state_stack.size() > 1) { warn(context, QPDFExc(qpdf_e_damaged_pdf, input->getName(), object_description, input->getLastOffset(), "parse error while reading object")); } done = true; // In content stream mode, leave object uninitialized to // indicate EOF if (! content_stream) { object = newNull(); } break; case st_dictionary: case st_array: setObjectDescriptionFromInput( object, context, object_description, input, input->getLastOffset()); olist.push_back(object); break; case st_top: done = true; break; case st_start: break; case st_stop: if ((state_stack.size() < 2) || (olist_stack.size() < 2)) { throw std::logic_error( "QPDFObjectHandle::parseInternal: st_stop encountered" " with insufficient elements in stack"); } parser_state_e old_state = state_stack.back(); state_stack.pop_back(); if (old_state == st_array) { object = newArray(olist); setObjectDescriptionFromInput( object, context, object_description, input, offset); } else if (old_state == st_dictionary) { // Convert list to map. Alternating elements are keys. // Attempt to recover more or less gracefully from // invalid dictionaries. std::set names; for (std::vector::iterator iter = olist.begin(); iter != olist.end(); ++iter) { if ((! (*iter).isIndirect()) && (*iter).isName()) { names.insert((*iter).getName()); } } std::map dict; int next_fake_key = 1; for (unsigned int i = 0; i < olist.size(); ++i) { QPDFObjectHandle key_obj = olist.at(i); QPDFObjectHandle val; if (key_obj.isIndirect() || (! key_obj.isName())) { bool found_fake = false; std::string candidate; while (! found_fake) { candidate = "/QPDFFake" + QUtil::int_to_string(next_fake_key++); found_fake = (names.count(candidate) == 0); QTC::TC("qpdf", "QPDFObjectHandle found fake", (found_fake ? 0 : 1)); } warn(context, QPDFExc( qpdf_e_damaged_pdf, input->getName(), object_description, offset, "expected dictionary key but found" " non-name object; inserting key " + candidate)); val = key_obj; key_obj = newName(candidate); } else if (i + 1 >= olist.size()) { QTC::TC("qpdf", "QPDFObjectHandle no val for last key"); warn(context, QPDFExc( qpdf_e_damaged_pdf, input->getName(), object_description, offset, "dictionary ended prematurely; " "using null as value for last key")); val = newNull(); setObjectDescriptionFromInput( val, context, object_description, input, offset); } else { val = olist.at(++i); } dict[key_obj.getName()] = val; } object = newDictionary(dict); setObjectDescriptionFromInput( object, context, object_description, input, offset); } olist_stack.pop_back(); offset_stack.pop_back(); if (state_stack.back() == st_top) { done = true; } else { olist_stack.back().push_back(object); } } } setObjectDescriptionFromInput( object, context, object_description, input, offset); return object; } QPDFObjectHandle QPDFObjectHandle::newIndirect(QPDF* qpdf, int objid, int generation) { if (objid == 0) { // Special case: QPDF uses objid 0 as a sentinel for direct // objects, and the PDF specification doesn't allow for object // 0. Treat indirect references to object 0 as null so that we // never create an indirect object with objid 0. QTC::TC("qpdf", "QPDFObjectHandle indirect with 0 objid"); return newNull(); } return QPDFObjectHandle(qpdf, objid, generation); } QPDFObjectHandle QPDFObjectHandle::newBool(bool value) { return QPDFObjectHandle(new QPDF_Bool(value)); } QPDFObjectHandle QPDFObjectHandle::newNull() { return QPDFObjectHandle(new QPDF_Null()); } QPDFObjectHandle QPDFObjectHandle::newInteger(long long value) { return QPDFObjectHandle(new QPDF_Integer(value)); } QPDFObjectHandle QPDFObjectHandle::newReal(std::string const& value) { return QPDFObjectHandle(new QPDF_Real(value)); } QPDFObjectHandle QPDFObjectHandle::newReal(double value, int decimal_places) { return QPDFObjectHandle(new QPDF_Real(value, decimal_places)); } QPDFObjectHandle QPDFObjectHandle::newName(std::string const& name) { return QPDFObjectHandle(new QPDF_Name(name)); } QPDFObjectHandle QPDFObjectHandle::newString(std::string const& str) { return QPDFObjectHandle(new QPDF_String(str)); } QPDFObjectHandle QPDFObjectHandle::newOperator(std::string const& value) { return QPDFObjectHandle(new QPDF_Operator(value)); } QPDFObjectHandle QPDFObjectHandle::newInlineImage(std::string const& value) { return QPDFObjectHandle(new QPDF_InlineImage(value)); } QPDFObjectHandle QPDFObjectHandle::newArray() { return newArray(std::vector()); } QPDFObjectHandle QPDFObjectHandle::newArray(std::vector const& items) { return QPDFObjectHandle(new QPDF_Array(items)); } QPDFObjectHandle QPDFObjectHandle::newDictionary() { return newDictionary(std::map()); } QPDFObjectHandle QPDFObjectHandle::newDictionary( std::map const& items) { return QPDFObjectHandle(new QPDF_Dictionary(items)); } QPDFObjectHandle QPDFObjectHandle::newStream(QPDF* qpdf, int objid, int generation, QPDFObjectHandle stream_dict, qpdf_offset_t offset, size_t length) { return QPDFObjectHandle(new QPDF_Stream( qpdf, objid, generation, stream_dict, offset, length)); } QPDFObjectHandle QPDFObjectHandle::newStream(QPDF* qpdf) { QTC::TC("qpdf", "QPDFObjectHandle newStream"); QPDFObjectHandle stream_dict = newDictionary(); QPDFObjectHandle result = qpdf->makeIndirectObject( QPDFObjectHandle( new QPDF_Stream(qpdf, 0, 0, stream_dict, 0, 0))); result.dereference(); QPDF_Stream* stream = dynamic_cast(result.m->obj.getPointer()); stream->setObjGen(result.getObjectID(), result.getGeneration()); return result; } QPDFObjectHandle QPDFObjectHandle::newStream(QPDF* qpdf, PointerHolder data) { QTC::TC("qpdf", "QPDFObjectHandle newStream with data"); QPDFObjectHandle result = newStream(qpdf); result.replaceStreamData(data, newNull(), newNull()); return result; } QPDFObjectHandle QPDFObjectHandle::newStream(QPDF* qpdf, std::string const& data) { QTC::TC("qpdf", "QPDFObjectHandle newStream with string"); QPDFObjectHandle result = newStream(qpdf); result.replaceStreamData(data, newNull(), newNull()); return result; } QPDFObjectHandle QPDFObjectHandle::newReserved(QPDF* qpdf) { // Reserve a spot for this object by assigning it an object // number, but then return an unresolved handle to the object. QPDFObjectHandle reserved = qpdf->makeIndirectObject( QPDFObjectHandle(new QPDF_Reserved())); QPDFObjectHandle result = newIndirect(qpdf, reserved.m->objid, reserved.m->generation); result.m->reserved = true; return result; } void QPDFObjectHandle::setObjectDescription(QPDF* owning_qpdf, std::string const& object_description) { if (isInitialized() && this->m->obj.getPointer()) { this->m->obj->setDescription(owning_qpdf, object_description); } } bool QPDFObjectHandle::hasObjectDescription() { if (isInitialized() && this->m->obj.getPointer()) { return this->m->obj->hasDescription(); } return false; } QPDFObjectHandle QPDFObjectHandle::shallowCopy() { assertInitialized(); if (isStream()) { QTC::TC("qpdf", "QPDFObjectHandle ERR shallow copy stream"); throw std::runtime_error( "attempt to make a shallow copy of a stream"); } QPDFObjectHandle new_obj; if (isArray()) { QTC::TC("qpdf", "QPDFObjectHandle shallow copy array"); new_obj = newArray(getArrayAsVector()); } else if (isDictionary()) { QTC::TC("qpdf", "QPDFObjectHandle shallow copy dictionary"); new_obj = newDictionary(getDictAsMap()); } else { QTC::TC("qpdf", "QPDFObjectHandle shallow copy scalar"); new_obj = *this; } return new_obj; } void QPDFObjectHandle::makeDirectInternal(std::set& visited) { assertInitialized(); if (isStream()) { QTC::TC("qpdf", "QPDFObjectHandle ERR clone stream"); throw std::runtime_error( "attempt to make a stream into a direct object"); } int cur_objid = this->m->objid; if (cur_objid != 0) { if (visited.count(cur_objid)) { QTC::TC("qpdf", "QPDFObjectHandle makeDirect loop"); throw std::runtime_error( "loop detected while converting object from " "indirect to direct"); } visited.insert(cur_objid); } if (isReserved()) { throw std::logic_error( "QPDFObjectHandle: attempting to make a" " reserved object handle direct"); } dereference(); this->m->qpdf = 0; this->m->objid = 0; this->m->generation = 0; PointerHolder new_obj; if (isBool()) { QTC::TC("qpdf", "QPDFObjectHandle clone bool"); new_obj = new QPDF_Bool(getBoolValue()); } else if (isNull()) { QTC::TC("qpdf", "QPDFObjectHandle clone null"); new_obj = new QPDF_Null(); } else if (isInteger()) { QTC::TC("qpdf", "QPDFObjectHandle clone integer"); new_obj = new QPDF_Integer(getIntValue()); } else if (isReal()) { QTC::TC("qpdf", "QPDFObjectHandle clone real"); new_obj = new QPDF_Real(getRealValue()); } else if (isName()) { QTC::TC("qpdf", "QPDFObjectHandle clone name"); new_obj = new QPDF_Name(getName()); } else if (isString()) { QTC::TC("qpdf", "QPDFObjectHandle clone string"); new_obj = new QPDF_String(getStringValue()); } else if (isArray()) { QTC::TC("qpdf", "QPDFObjectHandle clone array"); std::vector items; int n = getArrayNItems(); for (int i = 0; i < n; ++i) { items.push_back(getArrayItem(i)); items.back().makeDirectInternal(visited); } new_obj = new QPDF_Array(items); } else if (isDictionary()) { QTC::TC("qpdf", "QPDFObjectHandle clone dictionary"); std::set keys = getKeys(); std::map items; for (std::set::iterator iter = keys.begin(); iter != keys.end(); ++iter) { items[*iter] = getKey(*iter); items[*iter].makeDirectInternal(visited); } new_obj = new QPDF_Dictionary(items); } else { throw std::logic_error("QPDFObjectHandle::makeDirectInternal: " "unknown object type"); } this->m->obj = new_obj; if (cur_objid) { visited.erase(cur_objid); } } void QPDFObjectHandle::makeDirect() { std::set visited; makeDirectInternal(visited); } void QPDFObjectHandle::assertInitialized() const { if (! this->m->initialized) { throw std::logic_error("operation attempted on uninitialized " "QPDFObjectHandle"); } } void QPDFObjectHandle::typeWarning(char const* expected_type, std::string const& warning) { QPDF* context = 0; std::string description; if (this->m->obj->getDescription(context, description)) { warn(context, QPDFExc( qpdf_e_damaged_pdf, "", description, 0, std::string("operation for ") + expected_type + " attempted on object of type " + getTypeName() + ": " + warning)); } else { assertType(expected_type, false); } } void QPDFObjectHandle::objectWarning(std::string const& warning) { QPDF* context = 0; std::string description; if (this->m->obj->getDescription(context, description)) { warn(context, QPDFExc( qpdf_e_damaged_pdf, "", description, 0, warning)); } else { throw std::logic_error(warning); } } void QPDFObjectHandle::assertType(char const* type_name, bool istype) { if (! istype) { throw std::logic_error(std::string("operation for ") + type_name + " attempted on object of type " + getTypeName()); } } void QPDFObjectHandle::assertNull() { assertType("null", isNull()); } void QPDFObjectHandle::assertBool() { assertType("boolean", isBool()); } void QPDFObjectHandle::assertInteger() { assertType("integer", isInteger()); } void QPDFObjectHandle::assertReal() { assertType("real", isReal()); } void QPDFObjectHandle::assertName() { assertType("name", isName()); } void QPDFObjectHandle::assertString() { assertType("string", isString()); } void QPDFObjectHandle::assertOperator() { assertType("operator", isOperator()); } void QPDFObjectHandle::assertInlineImage() { assertType("inlineimage", isInlineImage()); } void QPDFObjectHandle::assertArray() { assertType("array", isArray()); } void QPDFObjectHandle::assertDictionary() { assertType("dictionary", isDictionary()); } void QPDFObjectHandle::assertStream() { assertType("stream", isStream()); } void QPDFObjectHandle::assertReserved() { assertType("reserved", isReserved()); } void QPDFObjectHandle::assertIndirect() { if (! isIndirect()) { throw std::logic_error( "operation for indirect object attempted on direct object"); } } void QPDFObjectHandle::assertScalar() { assertType("scalar", isScalar()); } void QPDFObjectHandle::assertNumber() { assertType("number", isNumber()); } bool QPDFObjectHandle::isPageObject() { // See comments in QPDFObjectHandle.hh. if (! this->isDictionary()) { return false; } if (this->hasKey("/Type")) { QPDFObjectHandle type = this->getKey("/Type"); if (type.isName() && (type.getName() == "/Page")) { return true; } // Files have been seen in the wild that have /Type (Page) if (type.isString() && (type.getStringValue() == "Page")) { return true; } } if (this->hasKey("/Contents")) { return true; } return false; } bool QPDFObjectHandle::isPagesObject() { // Some PDF files have /Type broken on pages. return (this->isDictionary() && this->hasKey("/Kids")); } void QPDFObjectHandle::assertPageObject() { if (! isPageObject()) { throw std::logic_error("page operation called on non-Page object"); } } void QPDFObjectHandle::dereference() { if (this->m->obj.getPointer() == 0) { PointerHolder obj = QPDF::Resolver::resolve( this->m->qpdf, this->m->objid, this->m->generation); if (obj.getPointer() == 0) { // QPDF::resolve never returns an uninitialized object, but // check just in case. this->m->obj = new QPDF_Null(); } else if (dynamic_cast(obj.getPointer())) { // Do not resolve } else { this->m->reserved = false; this->m->obj = obj; } } } void QPDFObjectHandle::warn(QPDF* qpdf, QPDFExc const& e) { // If parsing on behalf of a QPDF object and want to give a // warning, we can warn through the object. If parsing for some // other reason, such as an explicit creation of an object from a // string, then just throw the exception. if (qpdf) { QPDF::Warner::warn(qpdf, e); } else { throw e; } } qpdf-8.0.2/libqpdf/QPDF.cc0000644000064100006410000022040513247541377013233 0ustar ejbejb#include // include first for large file support #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include std::string QPDF::qpdf_version = "8.0.2"; static char const* EMPTY_PDF = "%PDF-1.3\n" "1 0 obj\n" "<< /Type /Catalog /Pages 2 0 R >>\n" "endobj\n" "2 0 obj\n" "<< /Type /Pages /Kids [] /Count 0 >>\n" "endobj\n" "xref\n" "0 3\n" "0000000000 65535 f \n" "0000000009 00000 n \n" "0000000058 00000 n \n" "trailer << /Size 3 /Root 1 0 R >>\n" "startxref\n" "110\n" "%%EOF\n"; void QPDF::CopiedStreamDataProvider::provideStreamData( int objid, int generation, Pipeline* pipeline) { QPDFObjectHandle foreign_stream = this->foreign_streams[QPDFObjGen(objid, generation)]; foreign_stream.pipeStreamData(pipeline, 0, qpdf_dl_none); } void QPDF::CopiedStreamDataProvider::registerForeignStream( QPDFObjGen const& local_og, QPDFObjectHandle foreign_stream) { this->foreign_streams[local_og] = foreign_stream; } QPDF::StringDecrypter::StringDecrypter(QPDF* qpdf, int objid, int gen) : qpdf(qpdf), objid(objid), gen(gen) { } void QPDF::StringDecrypter::decryptString(std::string& val) { qpdf->decryptString(val, objid, gen); } std::string const& QPDF::QPDFVersion() { return QPDF::qpdf_version; } QPDF::Members::Members() : provided_password_is_hex_key(false), encrypted(false), encryption_initialized(false), ignore_xref_streams(false), suppress_warnings(false), out_stream(&std::cout), err_stream(&std::cerr), attempt_recovery(true), encryption_V(0), encryption_R(0), encrypt_metadata(true), cf_stream(e_none), cf_string(e_none), cf_file(e_none), cached_key_objid(0), cached_key_generation(0), pushed_inherited_attributes_to_pages(false), copied_stream_data_provider(0), reconstructed_xref(false), first_xref_item_offset(0), uncompressed_after_compressed(false) { } QPDF::Members::~Members() { } QPDF::QPDF() : m(new Members()) { m->tokenizer.allowEOF(); } QPDF::~QPDF() { // If two objects are mutually referential (through each object // having an array or dictionary that contains an indirect // reference to the other), the circular references in the // PointerHolder objects will prevent the objects from being // deleted. Walk through all objects in the object cache, which // is those objects that we read from the file, and break all // resolved references. At this point, obviously no one is still // using the QPDF object, but we'll explicitly clear the xref // table anyway just to prevent any possibility of resolve() // succeeding. Note that we can't break references like this at // any time when the QPDF object is active. If we do, the next // reference will reread the object from the file, which would // have the effect of undoing any modifications that may have been // made to any of the objects. this->m->xref_table.clear(); for (std::map::iterator iter = this->m->obj_cache.begin(); iter != this->m->obj_cache.end(); ++iter) { QPDFObject::ObjAccessor::releaseResolved( (*iter).second.object.getPointer()); } } void QPDF::processFile(char const* filename, char const* password) { FileInputSource* fi = new FileInputSource(); fi->setFilename(filename); processInputSource(fi, password); } void QPDF::processFile(char const* description, FILE* filep, bool close_file, char const* password) { FileInputSource* fi = new FileInputSource(); fi->setFile(description, filep, close_file); processInputSource(fi, password); } void QPDF::processMemoryFile(char const* description, char const* buf, size_t length, char const* password) { processInputSource( new BufferInputSource( description, new Buffer(QUtil::unsigned_char_pointer(buf), length), true), password); } void QPDF::processInputSource(PointerHolder source, char const* password) { this->m->file = source; parse(password); } void QPDF::setPasswordIsHexKey(bool val) { this->m->provided_password_is_hex_key = val; } void QPDF::emptyPDF() { processMemoryFile("empty PDF", EMPTY_PDF, strlen(EMPTY_PDF)); } void QPDF::setIgnoreXRefStreams(bool val) { this->m->ignore_xref_streams = val; } void QPDF::setOutputStreams(std::ostream* out, std::ostream* err) { this->m->out_stream = out ? out : &std::cout; this->m->err_stream = err ? err : &std::cerr; } void QPDF::setSuppressWarnings(bool val) { this->m->suppress_warnings = val; } void QPDF::setAttemptRecovery(bool val) { this->m->attempt_recovery = val; } std::vector QPDF::getWarnings() { std::vector result = this->m->warnings; this->m->warnings.clear(); return result; } bool QPDF::findHeader() { qpdf_offset_t global_offset = this->m->file->tell(); std::string line = this->m->file->readLine(1024); char const* p = line.c_str(); if (strncmp(p, "%PDF-", 5) != 0) { throw std::logic_error("findHeader is not looking at %PDF-"); } p += 5; std::string version; // Note: The string returned by line.c_str() is always // null-terminated. The code below never overruns the buffer // because a null character always short-circuits further // advancement. bool valid = QUtil::is_digit(*p); if (valid) { while (QUtil::is_digit(*p)) { version.append(1, *p++); } if ((*p == '.') && QUtil::is_digit(*(p+1))) { version.append(1, *p++); while (QUtil::is_digit(*p)) { version.append(1, *p++); } } else { valid = false; } } if (valid) { this->m->pdf_version = version; if (global_offset != 0) { // Empirical evidence strongly suggests that when there is // leading material prior to the PDF header, all explicit // offsets in the file are such that 0 points to the // beginning of the header. QTC::TC("qpdf", "QPDF global offset"); this->m->file = new OffsetInputSource(this->m->file, global_offset); } } return valid; } bool QPDF::findStartxref() { QPDFTokenizer::Token t = readToken(this->m->file); if (t == QPDFTokenizer::Token(QPDFTokenizer::tt_word, "startxref")) { t = readToken(this->m->file); if (t.getType() == QPDFTokenizer::tt_integer) { // Position in front of offset token this->m->file->seek(this->m->file->getLastOffset(), SEEK_SET); return true; } } return false; } void QPDF::parse(char const* password) { if (password) { this->m->provided_password = password; } // Find the header anywhere in the first 1024 bytes of the file. PatternFinder hf(*this, &QPDF::findHeader); if (! this->m->file->findFirst("%PDF-", 0, 1024, hf)) { QTC::TC("qpdf", "QPDF not a pdf file"); warn(QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "", 0, "can't find PDF header")); // QPDFWriter writes files that usually require at least // version 1.2 for /FlateDecode this->m->pdf_version = "1.2"; } if (atof(this->m->pdf_version.c_str()) < 1.2) { this->m->tokenizer.allowPoundAnywhereInName(); } // PDF spec says %%EOF must be found within the last 1024 bytes of // the file. We add an extra 30 characters to leave room for the // startxref stuff. this->m->file->seek(0, SEEK_END); qpdf_offset_t end_offset = this->m->file->tell(); qpdf_offset_t start_offset = (end_offset > 1054 ? end_offset - 1054 : 0); PatternFinder sf(*this, &QPDF::findStartxref); qpdf_offset_t xref_offset = 0; if (this->m->file->findLast("startxref", start_offset, 0, sf)) { xref_offset = QUtil::string_to_ll( readToken(this->m->file).getValue().c_str()); } try { if (xref_offset == 0) { QTC::TC("qpdf", "QPDF can't find startxref"); throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "", 0, "can't find startxref"); } read_xref(xref_offset); } catch (QPDFExc& e) { if (this->m->attempt_recovery) { reconstruct_xref(e); QTC::TC("qpdf", "QPDF reconstructed xref table"); } else { throw e; } } initializeEncryption(); findAttachmentStreams(); } void QPDF::warn(QPDFExc const& e) { this->m->warnings.push_back(e); if (! this->m->suppress_warnings) { *this->m->err_stream << "WARNING: " << this->m->warnings.back().what() << std::endl; } } void QPDF::setTrailer(QPDFObjectHandle obj) { if (this->m->trailer.isInitialized()) { return; } this->m->trailer = obj; } void QPDF::reconstruct_xref(QPDFExc& e) { if (this->m->reconstructed_xref) { // Avoid xref reconstruction infinite loops. This is getting // very hard to reproduce because qpdf is throwing many fewer // exceptions while parsing. Most situations are warnings now. throw e; } this->m->reconstructed_xref = true; warn(QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "", 0, "file is damaged")); warn(e); warn(QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "", 0, "Attempting to reconstruct cross-reference table")); // Delete all references to type 1 (uncompressed) objects std::set to_delete; for (std::map::iterator iter = this->m->xref_table.begin(); iter != this->m->xref_table.end(); ++iter) { if (((*iter).second).getType() == 1) { to_delete.insert((*iter).first); } } for (std::set::iterator iter = to_delete.begin(); iter != to_delete.end(); ++iter) { this->m->xref_table.erase(*iter); } this->m->file->seek(0, SEEK_END); qpdf_offset_t eof = this->m->file->tell(); this->m->file->seek(0, SEEK_SET); bool in_obj = false; qpdf_offset_t line_start = 0; // Don't allow very long tokens here during recovery. static size_t const MAX_LEN = 100; while (this->m->file->tell() < eof) { this->m->file->findAndSkipNextEOL(); qpdf_offset_t next_line_start = this->m->file->tell(); this->m->file->seek(line_start, SEEK_SET); QPDFTokenizer::Token t1 = readToken(this->m->file, MAX_LEN); qpdf_offset_t token_start = this->m->file->tell() - t1.getValue().length(); if (token_start >= next_line_start) { // don't process yet } else if (in_obj) { if (t1 == QPDFTokenizer::Token(QPDFTokenizer::tt_word, "endobj")) { in_obj = false; } } else { if (t1.getType() == QPDFTokenizer::tt_integer) { QPDFTokenizer::Token t2 = readToken(this->m->file, MAX_LEN); QPDFTokenizer::Token t3 = readToken(this->m->file, MAX_LEN); if ((t2.getType() == QPDFTokenizer::tt_integer) && (t3 == QPDFTokenizer::Token(QPDFTokenizer::tt_word, "obj"))) { in_obj = true; int obj = QUtil::string_to_int(t1.getValue().c_str()); int gen = QUtil::string_to_int(t2.getValue().c_str()); insertXrefEntry(obj, 1, token_start, gen, true); } } else if ((! this->m->trailer.isInitialized()) && (t1 == QPDFTokenizer::Token( QPDFTokenizer::tt_word, "trailer"))) { QPDFObjectHandle t = readObject(this->m->file, "trailer", 0, 0, false); if (! t.isDictionary()) { // Oh well. It was worth a try. } else { setTrailer(t); } } } this->m->file->seek(next_line_start, SEEK_SET); line_start = next_line_start; } if (! this->m->trailer.isInitialized()) { // We could check the last encountered object to see if it was // an xref stream. If so, we could try to get the trailer // from there. This may make it possible to recover files // with bad startxref pointers even when they have object // streams. throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "", 0, "unable to find trailer " "dictionary while recovering damaged file"); } // We could iterate through the objects looking for streams and // try to find objects inside of them, but it's probably not worth // the trouble. Acrobat can't recover files with any errors in an // xref stream, and this would be a real long shot anyway. If we // wanted to do anything that involved looking at stream contents, // we'd also have to call initializeEncryption() here. It's safe // to call it more than once. } void QPDF::read_xref(qpdf_offset_t xref_offset) { std::map free_table; std::set visited; while (xref_offset) { visited.insert(xref_offset); char buf[7]; memset(buf, 0, sizeof(buf)); this->m->file->seek(xref_offset, SEEK_SET); this->m->file->read(buf, sizeof(buf) - 1); // The PDF spec says xref must be followed by a line // terminator, but files exist in the wild where it is // terminated by arbitrary whitespace. if ((strncmp(buf, "xref", 4) == 0) && QUtil::is_space(buf[4])) { QTC::TC("qpdf", "QPDF xref space", ((buf[4] == '\n') ? 0 : (buf[4] == '\r') ? 1 : (buf[4] == ' ') ? 2 : 9999)); int skip = 4; // buf is null-terminated, and QUtil::is_space('\0') is // false, so this won't overrun. while (QUtil::is_space(buf[skip])) { ++skip; } xref_offset = read_xrefTable(xref_offset + skip); } else { xref_offset = read_xrefStream(xref_offset); } if (visited.count(xref_offset) != 0) { QTC::TC("qpdf", "QPDF xref loop"); throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "", 0, "loop detected following xref tables"); } } if (! this->m->trailer.isInitialized()) { throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "", 0, "unable to find trailer while reading xref"); } int size = this->m->trailer.getKey("/Size").getIntValue(); int max_obj = 0; if (! this->m->xref_table.empty()) { max_obj = (*(this->m->xref_table.rbegin())).first.getObj(); } if (! this->m->deleted_objects.empty()) { max_obj = std::max(max_obj, *(this->m->deleted_objects.rbegin())); } if (size != max_obj + 1) { QTC::TC("qpdf", "QPDF xref size mismatch"); warn(QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "", 0, std::string("reported number of objects (") + QUtil::int_to_string(size) + ") inconsistent with actual number of objects (" + QUtil::int_to_string(max_obj + 1) + ")")); } // We no longer need the deleted_objects table, so go ahead and // clear it out to make sure we never depend on its being set. this->m->deleted_objects.clear(); } bool QPDF::parse_xrefFirst(std::string const& line, int& obj, int& num, int& bytes) { // is_space and is_digit both return false on '\0', so this will // not overrun the null-terminated buffer. char const* p = line.c_str(); char const* start = line.c_str(); // Skip zero or more spaces while (QUtil::is_space(*p)) { ++p; } // Require digit if (! QUtil::is_digit(*p)) { return false; } // Gather digits std::string obj_str; while (QUtil::is_digit(*p)) { obj_str.append(1, *p++); } // Require space if (! QUtil::is_space(*p)) { return false; } // Skip spaces while (QUtil::is_space(*p)) { ++p; } // Require digit if (! QUtil::is_digit(*p)) { return false; } // Gather digits std::string num_str; while (QUtil::is_digit(*p)) { num_str.append(1, *p++); } // Skip any space including line terminators while (QUtil::is_space(*p)) { ++p; } bytes = p - start; obj = QUtil::string_to_int(obj_str.c_str()); num = QUtil::string_to_int(num_str.c_str()); return true; } bool QPDF::parse_xrefEntry(std::string const& line, qpdf_offset_t& f1, int& f2, char& type) { // is_space and is_digit both return false on '\0', so this will // not overrun the null-terminated buffer. char const* p = line.c_str(); // Skip zero or more spaces. There aren't supposed to be any. bool invalid = false; while (QUtil::is_space(*p)) { ++p; QTC::TC("qpdf", "QPDF ignore first space in xref entry"); invalid = true; } // Require digit if (! QUtil::is_digit(*p)) { return false; } // Gather digits std::string f1_str; while (QUtil::is_digit(*p)) { f1_str.append(1, *p++); } // Require space if (! QUtil::is_space(*p)) { return false; } if (QUtil::is_space(*(p+1))) { QTC::TC("qpdf", "QPDF ignore first extra space in xref entry"); invalid = true; } // Skip spaces while (QUtil::is_space(*p)) { ++p; } // Require digit if (! QUtil::is_digit(*p)) { return false; } // Gather digits std::string f2_str; while (QUtil::is_digit(*p)) { f2_str.append(1, *p++); } // Require space if (! QUtil::is_space(*p)) { return false; } if (QUtil::is_space(*(p+1))) { QTC::TC("qpdf", "QPDF ignore second extra space in xref entry"); invalid = true; } // Skip spaces while (QUtil::is_space(*p)) { ++p; } if ((*p == 'f') || (*p == 'n')) { type = *p; } else { return false; } if ((f1_str.length() != 10) || (f2_str.length() != 5)) { QTC::TC("qpdf", "QPDF ignore length error xref entry"); invalid = true; } if (invalid) { warn(QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "xref table", this->m->file->getLastOffset(), "accepting invalid xref table entry")); } f1 = QUtil::string_to_ll(f1_str.c_str()); f2 = QUtil::string_to_int(f2_str.c_str()); return true; } qpdf_offset_t QPDF::read_xrefTable(qpdf_offset_t xref_offset) { std::vector deleted_items; this->m->file->seek(xref_offset, SEEK_SET); bool done = false; while (! done) { char linebuf[51]; memset(linebuf, 0, sizeof(linebuf)); this->m->file->read(linebuf, sizeof(linebuf) - 1); std::string line = linebuf; int obj = 0; int num = 0; int bytes = 0; if (! parse_xrefFirst(line, obj, num, bytes)) { QTC::TC("qpdf", "QPDF invalid xref"); throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "xref table", this->m->file->getLastOffset(), "xref syntax invalid"); } this->m->file->seek(this->m->file->getLastOffset() + bytes, SEEK_SET); for (int i = obj; i < obj + num; ++i) { if (i == 0) { // This is needed by checkLinearization() this->m->first_xref_item_offset = this->m->file->tell(); } std::string xref_entry = this->m->file->readLine(30); // For xref_table, these will always be small enough to be ints qpdf_offset_t f1 = 0; int f2 = 0; char type = '\0'; if (! parse_xrefEntry(xref_entry, f1, f2, type)) { QTC::TC("qpdf", "QPDF invalid xref entry"); throw QPDFExc( qpdf_e_damaged_pdf, this->m->file->getName(), "xref table", this->m->file->getLastOffset(), "invalid xref entry (obj=" + QUtil::int_to_string(i) + ")"); } if (type == 'f') { // Save deleted items until after we've checked the // XRefStm, if any. deleted_items.push_back(QPDFObjGen(i, f2)); } else { insertXrefEntry(i, 1, f1, f2); } } qpdf_offset_t pos = this->m->file->tell(); QPDFTokenizer::Token t = readToken(this->m->file); if (t == QPDFTokenizer::Token(QPDFTokenizer::tt_word, "trailer")) { done = true; } else { this->m->file->seek(pos, SEEK_SET); } } // Set offset to previous xref table if any QPDFObjectHandle cur_trailer = readObject(this->m->file, "trailer", 0, 0, false); if (! cur_trailer.isDictionary()) { QTC::TC("qpdf", "QPDF missing trailer"); throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "", this->m->file->getLastOffset(), "expected trailer dictionary"); } if (! this->m->trailer.isInitialized()) { setTrailer(cur_trailer); if (! this->m->trailer.hasKey("/Size")) { QTC::TC("qpdf", "QPDF trailer lacks size"); throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "trailer", this->m->file->getLastOffset(), "trailer dictionary lacks /Size key"); } if (! this->m->trailer.getKey("/Size").isInteger()) { QTC::TC("qpdf", "QPDF trailer size not integer"); throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "trailer", this->m->file->getLastOffset(), "/Size key in trailer dictionary is not " "an integer"); } } if (cur_trailer.hasKey("/XRefStm")) { if (this->m->ignore_xref_streams) { QTC::TC("qpdf", "QPDF ignoring XRefStm in trailer"); } else { if (cur_trailer.getKey("/XRefStm").isInteger()) { // Read the xref stream but disregard any return value // -- we'll use our trailer's /Prev key instead of the // xref stream's. (void) read_xrefStream( cur_trailer.getKey("/XRefStm").getIntValue()); } else { throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "xref stream", xref_offset, "invalid /XRefStm"); } } } // Handle any deleted items now that we've read the /XRefStm. for (std::vector::iterator iter = deleted_items.begin(); iter != deleted_items.end(); ++iter) { QPDFObjGen& og = *iter; insertXrefEntry(og.getObj(), 0, 0, og.getGen()); } if (cur_trailer.hasKey("/Prev")) { if (! cur_trailer.getKey("/Prev").isInteger()) { QTC::TC("qpdf", "QPDF trailer prev not integer"); throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "trailer", this->m->file->getLastOffset(), "/Prev key in trailer dictionary is not " "an integer"); } QTC::TC("qpdf", "QPDF prev key in trailer dictionary"); xref_offset = cur_trailer.getKey("/Prev").getIntValue(); } else { xref_offset = 0; } return xref_offset; } qpdf_offset_t QPDF::read_xrefStream(qpdf_offset_t xref_offset) { bool found = false; if (! this->m->ignore_xref_streams) { int xobj; int xgen; QPDFObjectHandle xref_obj; try { xref_obj = readObjectAtOffset( false, xref_offset, "xref stream", -1, 0, xobj, xgen); } catch (QPDFExc&) { // ignore -- report error below } if (xref_obj.isInitialized() && xref_obj.isStream() && xref_obj.getDict().getKey("/Type").isName() && xref_obj.getDict().getKey("/Type").getName() == "/XRef") { QTC::TC("qpdf", "QPDF found xref stream"); found = true; xref_offset = processXRefStream(xref_offset, xref_obj); } } if (! found) { QTC::TC("qpdf", "QPDF can't find xref"); throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "", xref_offset, "xref not found"); } return xref_offset; } qpdf_offset_t QPDF::processXRefStream(qpdf_offset_t xref_offset, QPDFObjectHandle& xref_obj) { QPDFObjectHandle dict = xref_obj.getDict(); QPDFObjectHandle W_obj = dict.getKey("/W"); QPDFObjectHandle Index_obj = dict.getKey("/Index"); if (! (W_obj.isArray() && (W_obj.getArrayNItems() >= 3) && W_obj.getArrayItem(0).isInteger() && W_obj.getArrayItem(1).isInteger() && W_obj.getArrayItem(2).isInteger() && dict.getKey("/Size").isInteger() && (Index_obj.isArray() || Index_obj.isNull()))) { throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "xref stream", xref_offset, "Cross-reference stream does not have" " proper /W and /Index keys"); } int W[3]; size_t entry_size = 0; int max_bytes = sizeof(qpdf_offset_t); for (int i = 0; i < 3; ++i) { W[i] = W_obj.getArrayItem(i).getIntValue(); if (W[i] > max_bytes) { throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "xref stream", xref_offset, "Cross-reference stream's /W contains" " impossibly large values"); } entry_size += W[i]; } if (entry_size == 0) { throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "xref stream", xref_offset, "Cross-reference stream's /W indicates" " entry size of 0"); } long long max_num_entries = static_cast(-1) / entry_size; std::vector indx; if (Index_obj.isArray()) { int n_index = Index_obj.getArrayNItems(); if ((n_index % 2) || (n_index < 2)) { throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "xref stream", xref_offset, "Cross-reference stream's /Index has an" " invalid number of values"); } for (int i = 0; i < n_index; ++i) { if (Index_obj.getArrayItem(i).isInteger()) { indx.push_back(Index_obj.getArrayItem(i).getIntValue()); } else { throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "xref stream", xref_offset, "Cross-reference stream's /Index's item " + QUtil::int_to_string(i) + " is not an integer"); } } QTC::TC("qpdf", "QPDF xref /Index is array", n_index == 2 ? 0 : 1); } else { QTC::TC("qpdf", "QPDF xref /Index is null"); long long size = dict.getKey("/Size").getIntValue(); indx.push_back(0); indx.push_back(size); } long long num_entries = 0; for (unsigned int i = 1; i < indx.size(); i += 2) { if (indx.at(i) > max_num_entries - num_entries) { throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "xref stream", xref_offset, "Cross-reference stream claims to contain" " too many entries: " + QUtil::int_to_string(indx.at(i)) + " " + QUtil::int_to_string(max_num_entries) + " " + QUtil::int_to_string(num_entries)); } num_entries += indx.at(i); } // entry_size and num_entries have both been validated to ensure // that this multiplication does not cause an overflow. size_t expected_size = entry_size * num_entries; PointerHolder bp = xref_obj.getStreamData(qpdf_dl_specialized); size_t actual_size = bp->getSize(); if (expected_size != actual_size) { QPDFExc x(qpdf_e_damaged_pdf, this->m->file->getName(), "xref stream", xref_offset, "Cross-reference stream data has the wrong size;" " expected = " + QUtil::int_to_string(expected_size) + "; actual = " + QUtil::int_to_string(actual_size)); if (expected_size > actual_size) { throw x; } else { warn(x); } } int cur_chunk = 0; int chunk_count = 0; bool saw_first_compressed_object = false; // Actual size vs. expected size check above ensures that we will // not overflow any buffers here. We know that entry_size * // num_entries is equal to the size of the buffer. unsigned char const* data = bp->getBuffer(); for (int i = 0; i < num_entries; ++i) { // Read this entry unsigned char const* entry = data + (entry_size * i); qpdf_offset_t fields[3]; unsigned char const* p = entry; for (int j = 0; j < 3; ++j) { fields[j] = 0; if ((j == 0) && (W[0] == 0)) { QTC::TC("qpdf", "QPDF default for xref stream field 0"); fields[0] = 1; } for (int k = 0; k < W[j]; ++k) { fields[j] <<= 8; fields[j] += static_cast(*p++); } } // Get the object and generation number. The object number is // based on /Index. The generation number is 0 unless this is // an uncompressed object record, in which case the generation // number appears as the third field. int obj = indx.at(cur_chunk) + chunk_count; ++chunk_count; if (chunk_count >= indx.at(cur_chunk + 1)) { cur_chunk += 2; chunk_count = 0; } if (saw_first_compressed_object) { if (fields[0] != 2) { this->m->uncompressed_after_compressed = true; } } else if (fields[0] == 2) { saw_first_compressed_object = true; } if (obj == 0) { // This is needed by checkLinearization() this->m->first_xref_item_offset = xref_offset; } insertXrefEntry(obj, static_cast(fields[0]), fields[1], static_cast(fields[2])); } if (! this->m->trailer.isInitialized()) { setTrailer(dict); } if (dict.hasKey("/Prev")) { if (! dict.getKey("/Prev").isInteger()) { throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "xref stream", this->m->file->getLastOffset(), "/Prev key in xref stream dictionary is not " "an integer"); } QTC::TC("qpdf", "QPDF prev key in xref stream dictionary"); xref_offset = dict.getKey("/Prev").getIntValue(); } else { xref_offset = 0; } return xref_offset; } void QPDF::insertXrefEntry(int obj, int f0, qpdf_offset_t f1, int f2, bool overwrite) { // Populate the xref table in such a way that the first reference // to an object that we see, which is the one in the latest xref // table in which it appears, is the one that gets stored. This // works because we are reading more recent appends before older // ones. Exception: if overwrite is true, then replace any // existing object. This is used in xref recovery mode, which // reads the file from beginning to end. // If there is already an entry for this object and generation in // the table, it means that a later xref table has registered this // object. Disregard this one. { // private scope int gen = (f0 == 2 ? 0 : f2); QPDFObjGen og(obj, gen); if (this->m->xref_table.count(og)) { if (overwrite) { QTC::TC("qpdf", "QPDF xref overwrite object"); this->m->xref_table.erase(og); } else { QTC::TC("qpdf", "QPDF xref reused object"); return; } } if (this->m->deleted_objects.count(obj)) { QTC::TC("qpdf", "QPDF xref deleted object"); return; } } switch (f0) { case 0: this->m->deleted_objects.insert(obj); break; case 1: // f2 is generation QTC::TC("qpdf", "QPDF xref gen > 0", ((f2 > 0) ? 1 : 0)); this->m->xref_table[QPDFObjGen(obj, f2)] = QPDFXRefEntry(f0, f1, f2); break; case 2: this->m->xref_table[QPDFObjGen(obj, 0)] = QPDFXRefEntry(f0, f1, f2); break; default: throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "xref stream", this->m->file->getLastOffset(), "unknown xref stream entry type " + QUtil::int_to_string(f0)); break; } } void QPDF::showXRefTable() { for (std::map::iterator iter = this->m->xref_table.begin(); iter != this->m->xref_table.end(); ++iter) { QPDFObjGen const& og = (*iter).first; QPDFXRefEntry const& entry = (*iter).second; *this->m->out_stream << og.getObj() << "/" << og.getGen() << ": "; switch (entry.getType()) { case 1: *this->m->out_stream << "uncompressed; offset = " << entry.getOffset(); break; case 2: *this->m->out_stream << "compressed; stream = " << entry.getObjStreamNumber() << ", index = " << entry.getObjStreamIndex(); break; default: throw std::logic_error("unknown cross-reference table type while" " showing xref_table"); break; } *this->m->out_stream << std::endl; } } std::vector QPDF::getAllObjects() { std::vector result; for (std::map::iterator iter = this->m->xref_table.begin(); iter != this->m->xref_table.end(); ++iter) { QPDFObjGen const& og = (*iter).first; result.push_back(QPDFObjectHandle::Factory::newIndirect( this, og.getObj(), og.getGen())); } return result; } void QPDF::setLastObjectDescription(std::string const& description, int objid, int generation) { this->m->last_object_description.clear(); if (! description.empty()) { this->m->last_object_description += description; if (objid > 0) { this->m->last_object_description += ": "; } } if (objid > 0) { this->m->last_object_description += "object " + QUtil::int_to_string(objid) + " " + QUtil::int_to_string(generation); } } QPDFObjectHandle QPDF::readObject(PointerHolder input, std::string const& description, int objid, int generation, bool in_object_stream) { setLastObjectDescription(description, objid, generation); qpdf_offset_t offset = input->tell(); bool empty = false; PointerHolder decrypter_ph; StringDecrypter* decrypter = 0; if (this->m->encrypted && (! in_object_stream)) { decrypter_ph = new StringDecrypter(this, objid, generation); decrypter = decrypter_ph.getPointer(); } QPDFObjectHandle object = QPDFObjectHandle::parse( input, this->m->last_object_description, this->m->tokenizer, empty, decrypter, this); if (empty) { // Nothing in the PDF spec appears to allow empty objects, but // they have been encountered in actual PDF files and Adobe // Reader appears to ignore them. warn(QPDFExc(qpdf_e_damaged_pdf, input->getName(), this->m->last_object_description, input->getLastOffset(), "empty object treated as null")); } else if (object.isDictionary() && (! in_object_stream)) { // check for stream qpdf_offset_t cur_offset = input->tell(); if (readToken(input) == QPDFTokenizer::Token(QPDFTokenizer::tt_word, "stream")) { // The PDF specification states that the word "stream" // should be followed by either a carriage return and // a newline or by a newline alone. It specifically // disallowed following it by a carriage return alone // since, in that case, there would be no way to tell // whether the NL in a CR NL sequence was part of the // stream data. However, some readers, including // Adobe reader, accept a carriage return by itself // when followed by a non-newline character, so that's // what we do here. { char ch; if (input->read(&ch, 1) == 0) { // A premature EOF here will result in some // other problem that will get reported at // another time. } else if (ch == '\n') { // ready to read stream data QTC::TC("qpdf", "QPDF stream with NL only"); } else if (ch == '\r') { // Read another character if (input->read(&ch, 1) != 0) { if (ch == '\n') { // Ready to read stream data QTC::TC("qpdf", "QPDF stream with CRNL"); } else { // Treat the \r by itself as the // whitespace after endstream and // start reading stream data in spite // of not having seen a newline. QTC::TC("qpdf", "QPDF stream with CR only"); input->unreadCh(ch); warn(QPDFExc( qpdf_e_damaged_pdf, input->getName(), this->m->last_object_description, input->tell(), "stream keyword followed" " by carriage return only")); } } } else { QTC::TC("qpdf", "QPDF stream without newline"); if (! QUtil::is_space(ch)) { QTC::TC("qpdf", "QPDF stream with non-space"); input->unreadCh(ch); } warn(QPDFExc(qpdf_e_damaged_pdf, input->getName(), this->m->last_object_description, input->tell(), "stream keyword not followed" " by proper line terminator")); } } // Must get offset before accessing any additional // objects since resolving a previously unresolved // indirect object will change file position. qpdf_offset_t stream_offset = input->tell(); size_t length = 0; try { std::map dict = object.getDictAsMap(); if (dict.count("/Length") == 0) { QTC::TC("qpdf", "QPDF stream without length"); throw QPDFExc(qpdf_e_damaged_pdf, input->getName(), this->m->last_object_description, offset, "stream dictionary lacks /Length key"); } QPDFObjectHandle length_obj = dict["/Length"]; if (! length_obj.isInteger()) { QTC::TC("qpdf", "QPDF stream length not integer"); throw QPDFExc(qpdf_e_damaged_pdf, input->getName(), this->m->last_object_description, offset, "/Length key in stream dictionary is not " "an integer"); } length = length_obj.getIntValue(); input->seek(stream_offset + length, SEEK_SET); if (! (readToken(input) == QPDFTokenizer::Token( QPDFTokenizer::tt_word, "endstream"))) { QTC::TC("qpdf", "QPDF missing endstream"); throw QPDFExc(qpdf_e_damaged_pdf, input->getName(), this->m->last_object_description, input->getLastOffset(), "expected endstream"); } } catch (QPDFExc& e) { if (this->m->attempt_recovery) { warn(e); length = recoverStreamLength( input, objid, generation, stream_offset); } else { throw e; } } object = QPDFObjectHandle::Factory::newStream( this, objid, generation, object, stream_offset, length); } else { input->seek(cur_offset, SEEK_SET); } } // Override last_offset so that it points to the beginning of the // object we just read input->setLastOffset(offset); return object; } bool QPDF::findEndstream() { // Find endstream or endobj. Position the input at that token. QPDFTokenizer::Token t = readToken(this->m->file, 20); if ((t.getType() == QPDFTokenizer::tt_word) && ((t.getValue() == "endobj") || (t.getValue() == "endstream"))) { this->m->file->seek(this->m->file->getLastOffset(), SEEK_SET); return true; } return false; } size_t QPDF::recoverStreamLength(PointerHolder input, int objid, int generation, qpdf_offset_t stream_offset) { // Try to reconstruct stream length by looking for // endstream or endobj warn(QPDFExc(qpdf_e_damaged_pdf, input->getName(), this->m->last_object_description, stream_offset, "attempting to recover stream length")); PatternFinder ef(*this, &QPDF::findEndstream); size_t length = 0; if (this->m->file->findFirst("end", stream_offset, 0, ef)) { length = this->m->file->tell() - stream_offset; // Reread endstream but, if it was endobj, don't skip that. QPDFTokenizer::Token t = readToken(this->m->file); if (t.getValue() == "endobj") { this->m->file->seek(this->m->file->getLastOffset(), SEEK_SET); } } if (length) { int this_obj_offset = 0; QPDFObjGen this_obj(0, 0); // Make sure this is inside this object for (std::map::iterator iter = this->m->xref_table.begin(); iter != this->m->xref_table.end(); ++iter) { QPDFObjGen const& og = (*iter).first; QPDFXRefEntry const& entry = (*iter).second; if (entry.getType() == 1) { qpdf_offset_t obj_offset = entry.getOffset(); if ((obj_offset > stream_offset) && ((this_obj_offset == 0) || (this_obj_offset > obj_offset))) { this_obj_offset = obj_offset; this_obj = og; } } } if (this_obj_offset && (this_obj.getObj() == objid) && (this_obj.getGen() == generation)) { // Well, we found endstream\nendobj within the space // allowed for this object, so we're probably in good // shape. } else { QTC::TC("qpdf", "QPDF found wrong endstream in recovery"); } } if (length == 0) { warn(QPDFExc(qpdf_e_damaged_pdf, input->getName(), this->m->last_object_description, stream_offset, "unable to recover stream data;" " treating stream as empty")); } else { warn(QPDFExc(qpdf_e_damaged_pdf, input->getName(), this->m->last_object_description, stream_offset, "recovered stream length: " + QUtil::int_to_string(length))); } QTC::TC("qpdf", "QPDF recovered stream length"); return length; } QPDFTokenizer::Token QPDF::readToken(PointerHolder input, size_t max_len) { return this->m->tokenizer.readToken( input, this->m->last_object_description, true, max_len); } QPDFObjectHandle QPDF::readObjectAtOffset(bool try_recovery, qpdf_offset_t offset, std::string const& description, int exp_objid, int exp_generation, int& objid, int& generation) { if (! this->m->attempt_recovery) { try_recovery = false; } setLastObjectDescription(description, exp_objid, exp_generation); // Special case: if offset is 0, just return null. Some PDF // writers, in particular "Mac OS X 10.7.5 Quartz PDFContext", may // store deleted objects in the xref table as "0000000000 00000 // n", which is not correct, but it won't hurt anything for to // ignore these. if (offset == 0) { QTC::TC("qpdf", "QPDF bogus 0 offset", 0); warn(QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), this->m->last_object_description, 0, "object has offset 0")); return QPDFObjectHandle::newNull(); } this->m->file->seek(offset, SEEK_SET); QPDFTokenizer::Token tobjid = readToken(this->m->file); QPDFTokenizer::Token tgen = readToken(this->m->file); QPDFTokenizer::Token tobj = readToken(this->m->file); bool objidok = (tobjid.getType() == QPDFTokenizer::tt_integer); int genok = (tgen.getType() == QPDFTokenizer::tt_integer); int objok = (tobj == QPDFTokenizer::Token(QPDFTokenizer::tt_word, "obj")); QTC::TC("qpdf", "QPDF check objid", objidok ? 1 : 0); QTC::TC("qpdf", "QPDF check generation", genok ? 1 : 0); QTC::TC("qpdf", "QPDF check obj", objok ? 1 : 0); try { if (! (objidok && genok && objok)) { QTC::TC("qpdf", "QPDF expected n n obj"); throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), this->m->last_object_description, offset, "expected n n obj"); } objid = QUtil::string_to_int(tobjid.getValue().c_str()); generation = QUtil::string_to_int(tgen.getValue().c_str()); if (objid == 0) { QTC::TC("qpdf", "QPDF object id 0"); throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), this->m->last_object_description, offset, "object with ID 0"); } if ((exp_objid >= 0) && (! ((objid == exp_objid) && (generation == exp_generation)))) { QTC::TC("qpdf", "QPDF err wrong objid/generation"); QPDFExc e(qpdf_e_damaged_pdf, this->m->file->getName(), this->m->last_object_description, offset, std::string("expected ") + QUtil::int_to_string(exp_objid) + " " + QUtil::int_to_string(exp_generation) + " obj"); if (try_recovery) { // Will be retried below throw e; } else { // We can try reading the object anyway even if the ID // doesn't match. warn(e); } } } catch (QPDFExc& e) { if ((exp_objid >= 0) && try_recovery) { // Try again after reconstructing xref table reconstruct_xref(e); QPDFObjGen og(exp_objid, exp_generation); if (this->m->xref_table.count(og) && (this->m->xref_table[og].getType() == 1)) { qpdf_offset_t new_offset = this->m->xref_table[og].getOffset(); QPDFObjectHandle result = readObjectAtOffset( false, new_offset, description, exp_objid, exp_generation, objid, generation); QTC::TC("qpdf", "QPDF recovered in readObjectAtOffset"); return result; } else { QTC::TC("qpdf", "QPDF object gone after xref reconstruction"); warn(QPDFExc( qpdf_e_damaged_pdf, this->m->file->getName(), "", 0, std::string( "object " + QUtil::int_to_string(exp_objid) + " " + QUtil::int_to_string(exp_generation) + " not found in file after regenerating" " cross reference table"))); return QPDFObjectHandle::newNull(); } } else { throw e; } } QPDFObjectHandle oh = readObject( this->m->file, description, objid, generation, false); if (! (readToken(this->m->file) == QPDFTokenizer::Token(QPDFTokenizer::tt_word, "endobj"))) { QTC::TC("qpdf", "QPDF err expected endobj"); warn(QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), this->m->last_object_description, this->m->file->getLastOffset(), "expected endobj")); } QPDFObjGen og(objid, generation); if (! this->m->obj_cache.count(og)) { // Store the object in the cache here so it gets cached // whether we first know the offset or whether we first know // the object ID and generation (in which we case we would get // here through resolve). // Determine the end offset of this object before and after // white space. We use these numbers to validate // linearization hint tables. Offsets and lengths of objects // may imply the end of an object to be anywhere between these // values. qpdf_offset_t end_before_space = this->m->file->tell(); // skip over spaces while (true) { char ch; if (this->m->file->read(&ch, 1)) { if (! isspace(static_cast(ch))) { this->m->file->seek(-1, SEEK_CUR); break; } } else { throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), this->m->last_object_description, this->m->file->tell(), "EOF after endobj"); } } qpdf_offset_t end_after_space = this->m->file->tell(); this->m->obj_cache[og] = ObjCache(QPDFObjectHandle::ObjAccessor::getObject(oh), end_before_space, end_after_space); } return oh; } PointerHolder QPDF::resolve(int objid, int generation) { // Check object cache before checking xref table. This allows us // to insert things into the object cache that don't actually // exist in the file. QPDFObjGen og(objid, generation); if (this->m->resolving.count(og)) { // This can happen if an object references itself directly or // indirectly in some key that has to be resolved during // object parsing, such as stream length. QTC::TC("qpdf", "QPDF recursion loop in resolve"); warn(QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "", this->m->file->getLastOffset(), "loop detected resolving object " + QUtil::int_to_string(objid) + " " + QUtil::int_to_string(generation))); return new QPDF_Null; } ResolveRecorder rr(this, og); // PDF spec says unknown objects resolve to the null object. if ((! this->m->obj_cache.count(og)) && this->m->xref_table.count(og)) { QPDFXRefEntry const& entry = this->m->xref_table[og]; try { switch (entry.getType()) { case 1: { qpdf_offset_t offset = entry.getOffset(); // Object stored in cache by readObjectAtOffset int aobjid; int ageneration; QPDFObjectHandle oh = readObjectAtOffset(true, offset, "", objid, generation, aobjid, ageneration); } break; case 2: resolveObjectsInStream(entry.getObjStreamNumber()); break; default: throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "", 0, "object " + QUtil::int_to_string(objid) + "/" + QUtil::int_to_string(generation) + " has unexpected xref entry type"); } } catch (QPDFExc& e) { warn(e); } catch (std::exception& e) { warn(QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "", 0, "object " + QUtil::int_to_string(objid) + "/" + QUtil::int_to_string(generation) + ": error reading object: " + e.what())); } } if (this->m->obj_cache.count(og) == 0) { QTC::TC("qpdf", "QPDF resolve failure to null"); QPDFObjectHandle oh = QPDFObjectHandle::newNull(); this->m->obj_cache[og] = ObjCache(QPDFObjectHandle::ObjAccessor::getObject(oh), -1, -1); } PointerHolder result(this->m->obj_cache[og].object); if (! result->hasDescription()) { result->setDescription( this, "object " + QUtil::int_to_string(objid) + " " + QUtil::int_to_string(generation)); } return result; } void QPDF::resolveObjectsInStream(int obj_stream_number) { // Force resolution of object stream QPDFObjectHandle obj_stream = getObjectByID(obj_stream_number, 0); if (! obj_stream.isStream()) { throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), this->m->last_object_description, this->m->file->getLastOffset(), "supposed object stream " + QUtil::int_to_string(obj_stream_number) + " is not a stream"); } // For linearization data in the object, use the data from the // object stream for the objects in the stream. QPDFObjGen stream_og(obj_stream_number, 0); qpdf_offset_t end_before_space = this->m->obj_cache[stream_og].end_before_space; qpdf_offset_t end_after_space = this->m->obj_cache[stream_og].end_after_space; QPDFObjectHandle dict = obj_stream.getDict(); if (! (dict.getKey("/Type").isName() && dict.getKey("/Type").getName() == "/ObjStm")) { QTC::TC("qpdf", "QPDF ERR object stream with wrong type"); throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), this->m->last_object_description, this->m->file->getLastOffset(), "supposed object stream " + QUtil::int_to_string(obj_stream_number) + " has wrong type"); } if (! (dict.getKey("/N").isInteger() && dict.getKey("/First").isInteger())) { throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), this->m->last_object_description, this->m->file->getLastOffset(), "object stream " + QUtil::int_to_string(obj_stream_number) + " has incorrect keys"); } int n = dict.getKey("/N").getIntValue(); int first = dict.getKey("/First").getIntValue(); std::map offsets; PointerHolder bp = obj_stream.getStreamData(qpdf_dl_specialized); PointerHolder input = new BufferInputSource( this->m->file->getName() + " object stream " + QUtil::int_to_string(obj_stream_number), bp.getPointer()); for (int i = 0; i < n; ++i) { QPDFTokenizer::Token tnum = readToken(input); QPDFTokenizer::Token toffset = readToken(input); if (! ((tnum.getType() == QPDFTokenizer::tt_integer) && (toffset.getType() == QPDFTokenizer::tt_integer))) { throw QPDFExc(qpdf_e_damaged_pdf, input->getName(), this->m->last_object_description, input->getLastOffset(), "expected integer in object stream header"); } int num = QUtil::string_to_int(tnum.getValue().c_str()); int offset = QUtil::string_to_ll(toffset.getValue().c_str()); offsets[num] = offset + first; } // To avoid having to read the object stream multiple times, store // all objects that would be found here in the cache. Remember // that some objects stored here might have been overridden by new // objects appended to the file, so it is necessary to recheck the // xref table and only cache what would actually be resolved here. for (std::map::iterator iter = offsets.begin(); iter != offsets.end(); ++iter) { int obj = (*iter).first; QPDFObjGen og(obj, 0); QPDFXRefEntry const& entry = this->m->xref_table[og]; if ((entry.getType() == 2) && (entry.getObjStreamNumber() == obj_stream_number)) { int offset = (*iter).second; input->seek(offset, SEEK_SET); QPDFObjectHandle oh = readObject(input, "", obj, 0, true); this->m->obj_cache[og] = ObjCache(QPDFObjectHandle::ObjAccessor::getObject(oh), end_before_space, end_after_space); } else { QTC::TC("qpdf", "QPDF not caching overridden objstm object"); } } } QPDFObjectHandle QPDF::makeIndirectObject(QPDFObjectHandle oh) { QPDFObjGen o1(0, 0); if (! this->m->obj_cache.empty()) { o1 = (*(this->m->obj_cache.rbegin())).first; } QPDFObjGen o2 = (*(this->m->xref_table.rbegin())).first; QTC::TC("qpdf", "QPDF indirect last obj from xref", (o2.getObj() > o1.getObj()) ? 1 : 0); int max_objid = std::max(o1.getObj(), o2.getObj()); QPDFObjGen next(max_objid + 1, 0); this->m->obj_cache[next] = ObjCache(QPDFObjectHandle::ObjAccessor::getObject(oh), -1, -1); return QPDFObjectHandle::Factory::newIndirect( this, next.getObj(), next.getGen()); } QPDFObjectHandle QPDF::getObjectByObjGen(QPDFObjGen const& og) { return getObjectByID(og.getObj(), og.getGen()); } QPDFObjectHandle QPDF::getObjectByID(int objid, int generation) { return QPDFObjectHandle::Factory::newIndirect(this, objid, generation); } void QPDF::replaceObject(QPDFObjGen const& og, QPDFObjectHandle oh) { replaceObject(og.getObj(), og.getGen(), oh); } void QPDF::replaceObject(int objid, int generation, QPDFObjectHandle oh) { if (oh.isIndirect()) { QTC::TC("qpdf", "QPDF replaceObject called with indirect object"); throw std::logic_error( "QPDF::replaceObject called with indirect object handle"); } // Force new object to appear in the cache resolve(objid, generation); // Replace the object in the object cache QPDFObjGen og(objid, generation); this->m->obj_cache[og] = ObjCache(QPDFObjectHandle::ObjAccessor::getObject(oh), -1, -1); } void QPDF::replaceReserved(QPDFObjectHandle reserved, QPDFObjectHandle replacement) { QTC::TC("qpdf", "QPDF replaceReserved"); reserved.assertReserved(); replaceObject(reserved.getObjGen(), replacement); } QPDFObjectHandle QPDF::copyForeignObject(QPDFObjectHandle foreign) { return copyForeignObject(foreign, false); } QPDFObjectHandle QPDF::copyForeignObject(QPDFObjectHandle foreign, bool allow_page) { if (! foreign.isIndirect()) { QTC::TC("qpdf", "QPDF copyForeign direct"); throw std::logic_error( "QPDF::copyForeign called with direct object handle"); } QPDF* other = foreign.getOwningQPDF(); if (other == this) { QTC::TC("qpdf", "QPDF copyForeign not foreign"); throw std::logic_error( "QPDF::copyForeign called with object from this QPDF"); } ObjCopier& obj_copier = this->m->object_copiers[other]; if (! obj_copier.visiting.empty()) { throw std::logic_error("obj_copier.visiting is not empty" " at the beginning of copyForeignObject"); } // Make sure we have an object in this file for every referenced // object in the old file. obj_copier.object_map maps foreign // QPDFObjGen to local objects. For everything new that we have // to copy, the local object will be a reservation, unless it is a // stream, in which case the local object will already be a // stream. reserveObjects(foreign, obj_copier, true); if (! obj_copier.visiting.empty()) { throw std::logic_error("obj_copier.visiting is not empty" " after reserving objects"); } // Copy any new objects and replace the reservations. for (std::vector::iterator iter = obj_copier.to_copy.begin(); iter != obj_copier.to_copy.end(); ++iter) { QPDFObjectHandle& to_copy = *iter; QPDFObjectHandle copy = replaceForeignIndirectObjects(to_copy, obj_copier, true); if (! to_copy.isStream()) { QPDFObjGen og(to_copy.getObjGen()); replaceReserved(obj_copier.object_map[og], copy); } } obj_copier.to_copy.clear(); return obj_copier.object_map[foreign.getObjGen()]; } void QPDF::reserveObjects(QPDFObjectHandle foreign, ObjCopier& obj_copier, bool top) { if (foreign.isReserved()) { throw std::logic_error( "QPDF: attempting to copy a foreign reserved object"); } if (foreign.isPagesObject()) { QTC::TC("qpdf", "QPDF not copying pages object"); return; } if ((! top) && foreign.isPageObject()) { QTC::TC("qpdf", "QPDF not crossing page boundary"); return; } if (foreign.isIndirect()) { QPDFObjGen foreign_og(foreign.getObjGen()); if (obj_copier.visiting.find(foreign_og) != obj_copier.visiting.end()) { QTC::TC("qpdf", "QPDF loop reserving objects"); return; } if (obj_copier.object_map.find(foreign_og) != obj_copier.object_map.end()) { QTC::TC("qpdf", "QPDF already reserved object"); return; } QTC::TC("qpdf", "QPDF copy indirect"); obj_copier.visiting.insert(foreign_og); std::map::iterator mapping = obj_copier.object_map.find(foreign_og); if (mapping == obj_copier.object_map.end()) { obj_copier.to_copy.push_back(foreign); QPDFObjectHandle reservation; if (foreign.isStream()) { reservation = QPDFObjectHandle::newStream(this); } else { reservation = QPDFObjectHandle::newReserved(this); } obj_copier.object_map[foreign_og] = reservation; } } if (foreign.isArray()) { QTC::TC("qpdf", "QPDF reserve array"); int n = foreign.getArrayNItems(); for (int i = 0; i < n; ++i) { reserveObjects(foreign.getArrayItem(i), obj_copier, false); } } else if (foreign.isDictionary()) { QTC::TC("qpdf", "QPDF reserve dictionary"); std::set keys = foreign.getKeys(); for (std::set::iterator iter = keys.begin(); iter != keys.end(); ++iter) { reserveObjects(foreign.getKey(*iter), obj_copier, false); } } else if (foreign.isStream()) { QTC::TC("qpdf", "QPDF reserve stream"); reserveObjects(foreign.getDict(), obj_copier, false); } if (foreign.isIndirect()) { QPDFObjGen foreign_og(foreign.getObjGen()); obj_copier.visiting.erase(foreign_og); } } QPDFObjectHandle QPDF::replaceForeignIndirectObjects( QPDFObjectHandle foreign, ObjCopier& obj_copier, bool top) { QPDFObjectHandle result; if ((! top) && foreign.isIndirect()) { QTC::TC("qpdf", "QPDF replace indirect"); QPDFObjGen foreign_og(foreign.getObjGen()); std::map::iterator mapping = obj_copier.object_map.find(foreign_og); if (mapping == obj_copier.object_map.end()) { // This case would occur if this is a reference to a Page // or Pages object that we didn't traverse into. QTC::TC("qpdf", "QPDF replace foreign indirect with null"); result = QPDFObjectHandle::newNull(); } else { result = obj_copier.object_map[foreign_og]; } } else if (foreign.isArray()) { QTC::TC("qpdf", "QPDF replace array"); result = QPDFObjectHandle::newArray(); int n = foreign.getArrayNItems(); for (int i = 0; i < n; ++i) { result.appendItem( replaceForeignIndirectObjects( foreign.getArrayItem(i), obj_copier, false)); } } else if (foreign.isDictionary()) { QTC::TC("qpdf", "QPDF replace dictionary"); result = QPDFObjectHandle::newDictionary(); std::set keys = foreign.getKeys(); for (std::set::iterator iter = keys.begin(); iter != keys.end(); ++iter) { result.replaceKey( *iter, replaceForeignIndirectObjects( foreign.getKey(*iter), obj_copier, false)); } } else if (foreign.isStream()) { QTC::TC("qpdf", "QPDF replace stream"); QPDFObjGen foreign_og(foreign.getObjGen()); result = obj_copier.object_map[foreign_og]; result.assertStream(); QPDFObjectHandle dict = result.getDict(); QPDFObjectHandle old_dict = foreign.getDict(); std::set keys = old_dict.getKeys(); for (std::set::iterator iter = keys.begin(); iter != keys.end(); ++iter) { dict.replaceKey( *iter, replaceForeignIndirectObjects( old_dict.getKey(*iter), obj_copier, false)); } if (this->m->copied_stream_data_provider == 0) { this->m->copied_stream_data_provider = new CopiedStreamDataProvider(); this->m->copied_streams = this->m->copied_stream_data_provider; } QPDFObjGen local_og(result.getObjGen()); this->m->copied_stream_data_provider->registerForeignStream( local_og, foreign); result.replaceStreamData(this->m->copied_streams, dict.getKey("/Filter"), dict.getKey("/DecodeParms")); } else { foreign.assertScalar(); result = foreign; result.makeDirect(); } if (top && (! result.isStream()) && result.isIndirect()) { throw std::logic_error("replacement for foreign object is indirect"); } return result; } void QPDF::swapObjects(QPDFObjGen const& og1, QPDFObjGen const& og2) { swapObjects(og1.getObj(), og1.getGen(), og2.getObj(), og2.getGen()); } void QPDF::swapObjects(int objid1, int generation1, int objid2, int generation2) { // Force objects to be loaded into cache; then swap them in the // cache. resolve(objid1, generation1); resolve(objid2, generation2); QPDFObjGen og1(objid1, generation1); QPDFObjGen og2(objid2, generation2); ObjCache t = this->m->obj_cache[og1]; this->m->obj_cache[og1] = this->m->obj_cache[og2]; this->m->obj_cache[og2] = t; } std::string QPDF::getFilename() const { return this->m->file->getName(); } std::string QPDF::getPDFVersion() const { return this->m->pdf_version; } int QPDF::getExtensionLevel() { int result = 0; QPDFObjectHandle obj = getRoot(); if (obj.hasKey("/Extensions")) { obj = obj.getKey("/Extensions"); if (obj.isDictionary() && obj.hasKey("/ADBE")) { obj = obj.getKey("/ADBE"); if (obj.isDictionary() && obj.hasKey("/ExtensionLevel")) { obj = obj.getKey("/ExtensionLevel"); if (obj.isInteger()) { result = obj.getIntValue(); } } } } return result; } QPDFObjectHandle QPDF::getTrailer() { return this->m->trailer; } QPDFObjectHandle QPDF::getRoot() { QPDFObjectHandle root = this->m->trailer.getKey("/Root"); if (! root.isDictionary()) { throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "", this->m->file->getLastOffset(), "unable to find /Root dictionary"); } return root; } void QPDF::getObjectStreamData(std::map& omap) { for (std::map::iterator iter = this->m->xref_table.begin(); iter != this->m->xref_table.end(); ++iter) { QPDFObjGen const& og = (*iter).first; QPDFXRefEntry const& entry = (*iter).second; if (entry.getType() == 2) { omap[og.getObj()] = entry.getObjStreamNumber(); } } } std::vector QPDF::getCompressibleObjGens() { // Return a list of objects that are allowed to be in object // streams. Walk through the objects by traversing the document // from the root, including a traversal of the pages tree. This // makes that objects that are on the same page are more likely to // be in the same object stream, which is slightly more efficient, // particularly with linearized files. This is better than // iterating through the xref table since it avoids preserving // orphaned items. // Exclude encryption dictionary, if any QPDFObjectHandle encryption_dict = this->m->trailer.getKey("/Encrypt"); QPDFObjGen encryption_dict_og = encryption_dict.getObjGen(); std::set visited; std::list queue; queue.push_front(this->m->trailer); std::vector result; while (! queue.empty()) { QPDFObjectHandle obj = queue.front(); queue.pop_front(); if (obj.isIndirect()) { QPDFObjGen og = obj.getObjGen(); if (visited.count(og)) { QTC::TC("qpdf", "QPDF loop detected traversing objects"); continue; } if (og == encryption_dict_og) { QTC::TC("qpdf", "QPDF exclude encryption dictionary"); } else if (! obj.isStream()) { result.push_back(og); } visited.insert(og); } if (obj.isStream()) { QPDFObjectHandle dict = obj.getDict(); std::set keys = dict.getKeys(); for (std::set::reverse_iterator iter = keys.rbegin(); iter != keys.rend(); ++iter) { std::string const& key = *iter; QPDFObjectHandle value = dict.getKey(key); if (key == "/Length") { // omit stream lengths if (value.isIndirect()) { QTC::TC("qpdf", "QPDF exclude indirect length"); } } else { queue.push_front(value); } } } else if (obj.isDictionary()) { std::set keys = obj.getKeys(); for (std::set::reverse_iterator iter = keys.rbegin(); iter != keys.rend(); ++iter) { queue.push_front(obj.getKey(*iter)); } } else if (obj.isArray()) { int n = obj.getArrayNItems(); for (int i = 1; i <= n; ++i) { queue.push_front(obj.getArrayItem(n - i)); } } } return result; } bool QPDF::pipeStreamData(int objid, int generation, qpdf_offset_t offset, size_t length, QPDFObjectHandle stream_dict, Pipeline* pipeline, bool suppress_warnings, bool will_retry) { bool success = false; std::vector > to_delete; if (this->m->encrypted) { decryptStream(pipeline, objid, generation, stream_dict, to_delete); } try { this->m->file->seek(offset, SEEK_SET); char buf[10240]; while (length > 0) { size_t to_read = (sizeof(buf) < length ? sizeof(buf) : length); size_t len = this->m->file->read(buf, to_read); if (len == 0) { throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), this->m->last_object_description, this->m->file->getLastOffset(), "unexpected EOF reading stream data"); } length -= len; pipeline->write(QUtil::unsigned_char_pointer(buf), len); } pipeline->finish(); success = true; } catch (QPDFExc& e) { if (! suppress_warnings) { warn(e); } } catch (std::exception& e) { if (! suppress_warnings) { QTC::TC("qpdf", "QPDF decoding error warning"); warn(QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "", this->m->file->getLastOffset(), "error decoding stream data for object " + QUtil::int_to_string(objid) + " " + QUtil::int_to_string(generation) + ": " + e.what())); if (will_retry) { warn(QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "", this->m->file->getLastOffset(), "stream will be re-processed without" " filtering to avoid data loss")); } } } if (! success) { try { pipeline->finish(); } catch (std::exception&) { // ignore } } return success; } void QPDF::findAttachmentStreams() { QPDFObjectHandle root = getRoot(); QPDFObjectHandle names = root.getKey("/Names"); if (! names.isDictionary()) { return; } QPDFObjectHandle embeddedFiles = names.getKey("/EmbeddedFiles"); if (! embeddedFiles.isDictionary()) { return; } names = embeddedFiles.getKey("/Names"); if (! names.isArray()) { return; } for (int i = 0; i < names.getArrayNItems(); ++i) { QPDFObjectHandle item = names.getArrayItem(i); if (item.isDictionary() && item.getKey("/Type").isName() && (item.getKey("/Type").getName() == "/Filespec") && item.getKey("/EF").isDictionary() && item.getKey("/EF").getKey("/F").isStream()) { QPDFObjectHandle stream = item.getKey("/EF").getKey("/F"); this->m->attachment_streams.insert(stream.getObjGen()); } } } qpdf-8.0.2/libqpdf/QPDFObject.cc0000644000064100006410000000112513247541377014356 0ustar ejbejb#include QPDFObject::Members::Members() : owning_qpdf(0) { } QPDFObject::Members::~Members() { } QPDFObject::QPDFObject() : m(new Members) { } void QPDFObject::setDescription(QPDF* qpdf, std::string const& description) { this->m->owning_qpdf = qpdf; this->m->object_description = description; } bool QPDFObject::getDescription(QPDF*& qpdf, std::string& description) { qpdf = this->m->owning_qpdf; description = this->m->object_description; return this->m->owning_qpdf; } bool QPDFObject::hasDescription() { return this->m->owning_qpdf; } qpdf-8.0.2/libqpdf/BufferInputSource.cc0000644000064100006410000000654613247541377016123 0ustar ejbejb#include #include #include #include BufferInputSource::BufferInputSource(std::string const& description, Buffer* buf, bool own_memory) : own_memory(own_memory), description(description), buf(buf), cur_offset(0) { } BufferInputSource::BufferInputSource(std::string const& description, std::string const& contents) : own_memory(true), description(description), buf(0), cur_offset(0) { this->buf = new Buffer(contents.length()); unsigned char* bp = buf->getBuffer(); memcpy(bp, contents.c_str(), contents.length()); } BufferInputSource::~BufferInputSource() { if (own_memory) { delete this->buf; } } qpdf_offset_t BufferInputSource::findAndSkipNextEOL() { if (this->cur_offset < 0) { throw std::logic_error("INTERNAL ERROR: BufferInputSource offset < 0"); } qpdf_offset_t end_pos = this->buf->getSize(); if (this->cur_offset >= end_pos) { this->last_offset = end_pos; this->cur_offset = end_pos; return end_pos; } qpdf_offset_t result = 0; size_t len = end_pos - this->cur_offset; unsigned char const* buffer = this->buf->getBuffer(); void* start = const_cast(buffer) + this->cur_offset; unsigned char* p1 = static_cast(memchr(start, '\r', len)); unsigned char* p2 = static_cast(memchr(start, '\n', len)); unsigned char* p = (p1 && p2) ? std::min(p1, p2) : p1 ? p1 : p2; if (p) { result = p - buffer; this->cur_offset = result + 1; ++p; while ((this->cur_offset < end_pos) && ((*p == '\r') || (*p == '\n'))) { ++p; ++this->cur_offset; } } else { this->cur_offset = end_pos; result = end_pos; } return result; } std::string const& BufferInputSource::getName() const { return this->description; } qpdf_offset_t BufferInputSource::tell() { return this->cur_offset; } void BufferInputSource::seek(qpdf_offset_t offset, int whence) { switch (whence) { case SEEK_SET: this->cur_offset = offset; break; case SEEK_END: this->cur_offset = this->buf->getSize() + offset; break; case SEEK_CUR: this->cur_offset += offset; break; default: throw std::logic_error( "INTERNAL ERROR: invalid argument to BufferInputSource::seek"); break; } if (this->cur_offset < 0) { throw std::runtime_error( this->description + ": seek before beginning of buffer"); } } void BufferInputSource::rewind() { this->cur_offset = 0; } size_t BufferInputSource::read(char* buffer, size_t length) { if (this->cur_offset < 0) { throw std::logic_error("INTERNAL ERROR: BufferInputSource offset < 0"); } qpdf_offset_t end_pos = this->buf->getSize(); if (this->cur_offset >= end_pos) { this->last_offset = end_pos; return 0; } this->last_offset = this->cur_offset; size_t len = std::min( static_cast(end_pos - this->cur_offset), length); memcpy(buffer, buf->getBuffer() + this->cur_offset, len); this->cur_offset += len; return len; } void BufferInputSource::unreadCh(char ch) { if (this->cur_offset > 0) { --this->cur_offset; } } qpdf-8.0.2/libqpdf/QPDFWriter.cc0000644000064100006410000027337413247541377014445 0ustar ejbejb#include // include first for large file support #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include QPDFWriter::Members::Members(QPDF& pdf) : pdf(pdf), filename(0), file(0), close_file(false), buffer_pipeline(0), output_buffer(0), normalize_content_set(false), normalize_content(false), compress_streams(true), compress_streams_set(false), stream_decode_level(qpdf_dl_none), stream_decode_level_set(false), qdf_mode(false), preserve_unreferenced_objects(false), newline_before_endstream(false), static_id(false), suppress_original_object_ids(false), direct_stream_lengths(true), encrypted(false), preserve_encryption(true), linearized(false), pclm(false), object_stream_mode(qpdf_o_preserve), encrypt_metadata(true), encrypt_use_aes(false), encryption_V(0), encryption_R(0), final_extension_level(0), min_extension_level(0), forced_extension_level(0), encryption_dict_objid(0), pipeline(0), next_objid(1), cur_stream_length_id(0), cur_stream_length(0), added_newline(false), max_ostream_index(0), deterministic_id(false), md5_pipeline(0) { } QPDFWriter::Members::~Members() { if (file && close_file) { fclose(file); } if (output_buffer) { delete output_buffer; } } QPDFWriter::QPDFWriter(QPDF& pdf) : m(new Members(pdf)) { } QPDFWriter::QPDFWriter(QPDF& pdf, char const* filename) : m(new Members(pdf)) { setOutputFilename(filename); } QPDFWriter::QPDFWriter(QPDF& pdf, char const* description, FILE *file, bool close_file) : m(new Members(pdf)) { setOutputFile(description, file, close_file); } QPDFWriter::~QPDFWriter() { } void QPDFWriter::setOutputFilename(char const* filename) { char const* description = filename; FILE* f = 0; bool close_file = false; if (filename == 0) { description = "standard output"; QTC::TC("qpdf", "QPDFWriter write to stdout"); f = stdout; QUtil::binary_stdout(); } else { QTC::TC("qpdf", "QPDFWriter write to file"); f = QUtil::safe_fopen(filename, "wb+"); close_file = true; } setOutputFile(description, f, close_file); } void QPDFWriter::setOutputFile(char const* description, FILE* file, bool close_file) { this->m->filename = description; this->m->file = file; this->m->close_file = close_file; Pipeline* p = new Pl_StdioFile("qpdf output", file); this->m->to_delete.push_back(p); initializePipelineStack(p); } void QPDFWriter::setOutputMemory() { this->m->filename = "memory buffer"; this->m->buffer_pipeline = new Pl_Buffer("qpdf output"); this->m->to_delete.push_back(this->m->buffer_pipeline); initializePipelineStack(this->m->buffer_pipeline); } Buffer* QPDFWriter::getBuffer() { Buffer* result = this->m->output_buffer; this->m->output_buffer = 0; return result; } void QPDFWriter::setOutputPipeline(Pipeline* p) { this->m->filename = "custom pipeline"; initializePipelineStack(p); } void QPDFWriter::setObjectStreamMode(qpdf_object_stream_e mode) { this->m->object_stream_mode = mode; } void QPDFWriter::setStreamDataMode(qpdf_stream_data_e mode) { switch (mode) { case qpdf_s_uncompress: this->m->stream_decode_level = std::max(qpdf_dl_generalized, this->m->stream_decode_level); this->m->compress_streams = false; break; case qpdf_s_preserve: this->m->stream_decode_level = qpdf_dl_none; this->m->compress_streams = false; break; case qpdf_s_compress: this->m->stream_decode_level = std::max(qpdf_dl_generalized, this->m->stream_decode_level); this->m->compress_streams = true; break; } this->m->stream_decode_level_set = true; this->m->compress_streams_set = true; } void QPDFWriter::setCompressStreams(bool val) { this->m->compress_streams = val; this->m->compress_streams_set = true; } void QPDFWriter::setDecodeLevel(qpdf_stream_decode_level_e val) { this->m->stream_decode_level = val; this->m->stream_decode_level_set = true; } void QPDFWriter::setContentNormalization(bool val) { this->m->normalize_content_set = true; this->m->normalize_content = val; } void QPDFWriter::setQDFMode(bool val) { this->m->qdf_mode = val; } void QPDFWriter::setPreserveUnreferencedObjects(bool val) { this->m->preserve_unreferenced_objects = val; } void QPDFWriter::setNewlineBeforeEndstream(bool val) { this->m->newline_before_endstream = val; } void QPDFWriter::setMinimumPDFVersion(std::string const& version) { setMinimumPDFVersion(version, 0); } void QPDFWriter::setMinimumPDFVersion(std::string const& version, int extension_level) { bool set_version = false; bool set_extension_level = false; if (this->m->min_pdf_version.empty()) { set_version = true; set_extension_level = true; } else { int old_major = 0; int old_minor = 0; int min_major = 0; int min_minor = 0; parseVersion(version, old_major, old_minor); parseVersion(this->m->min_pdf_version, min_major, min_minor); int compare = compareVersions( old_major, old_minor, min_major, min_minor); if (compare > 0) { QTC::TC("qpdf", "QPDFWriter increasing minimum version", extension_level == 0 ? 0 : 1); set_version = true; set_extension_level = true; } else if (compare == 0) { if (extension_level > this->m->min_extension_level) { QTC::TC("qpdf", "QPDFWriter increasing extension level"); set_extension_level = true; } } } if (set_version) { this->m->min_pdf_version = version; } if (set_extension_level) { this->m->min_extension_level = extension_level; } } void QPDFWriter::forcePDFVersion(std::string const& version) { forcePDFVersion(version, 0); } void QPDFWriter::forcePDFVersion(std::string const& version, int extension_level) { this->m->forced_pdf_version = version; this->m->forced_extension_level = extension_level; } void QPDFWriter::setExtraHeaderText(std::string const& text) { this->m->extra_header_text = text; if ((this->m->extra_header_text.length() > 0) && (*(this->m->extra_header_text.rbegin()) != '\n')) { QTC::TC("qpdf", "QPDFWriter extra header text add newline"); this->m->extra_header_text += "\n"; } else { QTC::TC("qpdf", "QPDFWriter extra header text no newline"); } } void QPDFWriter::setStaticID(bool val) { this->m->static_id = val; } void QPDFWriter::setDeterministicID(bool val) { this->m->deterministic_id = val; } void QPDFWriter::setStaticAesIV(bool val) { if (val) { Pl_AES_PDF::useStaticIV(); } } void QPDFWriter::setSuppressOriginalObjectIDs(bool val) { this->m->suppress_original_object_ids = val; } void QPDFWriter::setPreserveEncryption(bool val) { this->m->preserve_encryption = val; } void QPDFWriter::setLinearization(bool val) { this->m->linearized = val; if (val) { this->m->pclm = false; } } void QPDFWriter::setLinearizationPass1Filename(std::string const& filename) { this->m->lin_pass1_filename = filename; } void QPDFWriter::setPCLm(bool val) { this->m->pclm = val; if (val) { this->m->linearized = false; } } void QPDFWriter::setR2EncryptionParameters( char const* user_password, char const* owner_password, bool allow_print, bool allow_modify, bool allow_extract, bool allow_annotate) { std::set clear; if (! allow_print) { clear.insert(3); } if (! allow_modify) { clear.insert(4); } if (! allow_extract) { clear.insert(5); } if (! allow_annotate) { clear.insert(6); } setEncryptionParameters(user_password, owner_password, 1, 2, 5, clear); } void QPDFWriter::setR3EncryptionParameters( char const* user_password, char const* owner_password, bool allow_accessibility, bool allow_extract, qpdf_r3_print_e print, qpdf_r3_modify_e modify) { std::set clear; interpretR3EncryptionParameters( clear, user_password, owner_password, allow_accessibility, allow_extract, print, modify); setEncryptionParameters(user_password, owner_password, 2, 3, 16, clear); } void QPDFWriter::setR4EncryptionParameters( char const* user_password, char const* owner_password, bool allow_accessibility, bool allow_extract, qpdf_r3_print_e print, qpdf_r3_modify_e modify, bool encrypt_metadata, bool use_aes) { std::set clear; interpretR3EncryptionParameters( clear, user_password, owner_password, allow_accessibility, allow_extract, print, modify); this->m->encrypt_use_aes = use_aes; this->m->encrypt_metadata = encrypt_metadata; setEncryptionParameters(user_password, owner_password, 4, 4, 16, clear); } void QPDFWriter::setR5EncryptionParameters( char const* user_password, char const* owner_password, bool allow_accessibility, bool allow_extract, qpdf_r3_print_e print, qpdf_r3_modify_e modify, bool encrypt_metadata) { std::set clear; interpretR3EncryptionParameters( clear, user_password, owner_password, allow_accessibility, allow_extract, print, modify); this->m->encrypt_use_aes = true; this->m->encrypt_metadata = encrypt_metadata; setEncryptionParameters(user_password, owner_password, 5, 5, 32, clear); } void QPDFWriter::setR6EncryptionParameters( char const* user_password, char const* owner_password, bool allow_accessibility, bool allow_extract, qpdf_r3_print_e print, qpdf_r3_modify_e modify, bool encrypt_metadata) { std::set clear; interpretR3EncryptionParameters( clear, user_password, owner_password, allow_accessibility, allow_extract, print, modify); this->m->encrypt_use_aes = true; this->m->encrypt_metadata = encrypt_metadata; setEncryptionParameters(user_password, owner_password, 5, 6, 32, clear); } void QPDFWriter::interpretR3EncryptionParameters( std::set& clear, char const* user_password, char const* owner_password, bool allow_accessibility, bool allow_extract, qpdf_r3_print_e print, qpdf_r3_modify_e modify) { // Acrobat 5 security options: // Checkboxes: // Enable Content Access for the Visually Impaired // Allow Content Copying and Extraction // Allowed changes menu: // None // Only Document Assembly // Only Form Field Fill-in or Signing // Comment Authoring, Form Field Fill-in or Signing // General Editing, Comment and Form Field Authoring // Allowed printing menu: // None // Low Resolution // Full printing if (! allow_accessibility) { clear.insert(10); } if (! allow_extract) { clear.insert(5); } // Note: these switch statements all "fall through" (no break // statements). Each option clears successively more access bits. switch (print) { case qpdf_r3p_none: clear.insert(3); // any printing case qpdf_r3p_low: clear.insert(12); // high resolution printing case qpdf_r3p_full: break; // no default so gcc warns for missing cases } switch (modify) { case qpdf_r3m_none: clear.insert(11); // document assembly case qpdf_r3m_assembly: clear.insert(9); // filling in form fields case qpdf_r3m_form: clear.insert(6); // modify annotations, fill in form fields case qpdf_r3m_annotate: clear.insert(4); // other modifications case qpdf_r3m_all: break; // no default so gcc warns for missing cases } } void QPDFWriter::setEncryptionParameters( char const* user_password, char const* owner_password, int V, int R, int key_len, std::set& bits_to_clear) { // PDF specification refers to bits with the low bit numbered 1. // We have to convert this into a bit field. // Specification always requires bits 1 and 2 to be cleared. bits_to_clear.insert(1); bits_to_clear.insert(2); if (R > 3) { // Bit 10 is deprecated and should always be set. This used // to mean accessibility. There is no way to disable // accessibility with R > 3. bits_to_clear.erase(10); } int P = 0; // Create the complement of P, then invert. for (std::set::iterator iter = bits_to_clear.begin(); iter != bits_to_clear.end(); ++iter) { P |= (1 << ((*iter) - 1)); } P = ~P; generateID(); std::string O; std::string U; std::string OE; std::string UE; std::string Perms; std::string encryption_key; if (V < 5) { QPDF::compute_encryption_O_U( user_password, owner_password, V, R, key_len, P, this->m->encrypt_metadata, this->m->id1, O, U); } else { QPDF::compute_encryption_parameters_V5( user_password, owner_password, V, R, key_len, P, this->m->encrypt_metadata, this->m->id1, encryption_key, O, U, OE, UE, Perms); } setEncryptionParametersInternal( V, R, key_len, P, O, U, OE, UE, Perms, this->m->id1, user_password, encryption_key); } void QPDFWriter::copyEncryptionParameters(QPDF& qpdf) { this->m->preserve_encryption = false; QPDFObjectHandle trailer = qpdf.getTrailer(); if (trailer.hasKey("/Encrypt")) { generateID(); this->m->id1 = trailer.getKey("/ID").getArrayItem(0).getStringValue(); QPDFObjectHandle encrypt = trailer.getKey("/Encrypt"); int V = encrypt.getKey("/V").getIntValue(); int key_len = 5; if (V > 1) { key_len = encrypt.getKey("/Length").getIntValue() / 8; } if (encrypt.hasKey("/EncryptMetadata") && encrypt.getKey("/EncryptMetadata").isBool()) { this->m->encrypt_metadata = encrypt.getKey("/EncryptMetadata").getBoolValue(); } if (V >= 4) { // When copying encryption parameters, use AES even if the // original file did not. Acrobat doesn't create files // with V >= 4 that don't use AES, and the logic of // figuring out whether AES is used or not is complicated // with /StmF, /StrF, and /EFF all potentially having // different values. this->m->encrypt_use_aes = true; } QTC::TC("qpdf", "QPDFWriter copy encrypt metadata", this->m->encrypt_metadata ? 0 : 1); QTC::TC("qpdf", "QPDFWriter copy use_aes", this->m->encrypt_use_aes ? 0 : 1); std::string OE; std::string UE; std::string Perms; std::string encryption_key; if (V >= 5) { QTC::TC("qpdf", "QPDFWriter copy V5"); OE = encrypt.getKey("/OE").getStringValue(); UE = encrypt.getKey("/UE").getStringValue(); Perms = encrypt.getKey("/Perms").getStringValue(); encryption_key = qpdf.getEncryptionKey(); } setEncryptionParametersInternal( V, encrypt.getKey("/R").getIntValue(), key_len, encrypt.getKey("/P").getIntValue(), encrypt.getKey("/O").getStringValue(), encrypt.getKey("/U").getStringValue(), OE, UE, Perms, this->m->id1, // this->m->id1 == the other file's id1 qpdf.getPaddedUserPassword(), encryption_key); } } void QPDFWriter::disableIncompatibleEncryption(int major, int minor, int extension_level) { if (! this->m->encrypted) { return; } bool disable = false; if (compareVersions(major, minor, 1, 3) < 0) { disable = true; } else { int V = QUtil::string_to_int( this->m->encryption_dictionary["/V"].c_str()); int R = QUtil::string_to_int( this->m->encryption_dictionary["/R"].c_str()); if (compareVersions(major, minor, 1, 4) < 0) { if ((V > 1) || (R > 2)) { disable = true; } } else if (compareVersions(major, minor, 1, 5) < 0) { if ((V > 2) || (R > 3)) { disable = true; } } else if (compareVersions(major, minor, 1, 6) < 0) { if (this->m->encrypt_use_aes) { disable = true; } } else if ((compareVersions(major, minor, 1, 7) < 0) || ((compareVersions(major, minor, 1, 7) == 0) && extension_level < 3)) { if ((V >= 5) || (R >= 5)) { disable = true; } } } if (disable) { QTC::TC("qpdf", "QPDFWriter forced version disabled encryption"); this->m->encrypted = false; } } void QPDFWriter::parseVersion(std::string const& version, int& major, int& minor) const { major = QUtil::string_to_int(version.c_str()); minor = 0; size_t p = version.find('.'); if ((p != std::string::npos) && (version.length() > p)) { minor = QUtil::string_to_int(version.substr(p + 1).c_str()); } std::string tmp = QUtil::int_to_string(major) + "." + QUtil::int_to_string(minor); if (tmp != version) { throw std::logic_error( "INTERNAL ERROR: QPDFWriter::parseVersion" " called with invalid version number " + version); } } int QPDFWriter::compareVersions(int major1, int minor1, int major2, int minor2) const { if (major1 < major2) { return -1; } else if (major1 > major2) { return 1; } else if (minor1 < minor2) { return -1; } else if (minor1 > minor2) { return 1; } else { return 0; } } void QPDFWriter::setEncryptionParametersInternal( int V, int R, int key_len, long P, std::string const& O, std::string const& U, std::string const& OE, std::string const& UE, std::string const& Perms, std::string const& id1, std::string const& user_password, std::string const& encryption_key) { this->m->encryption_V = V; this->m->encryption_R = R; this->m->encryption_dictionary["/Filter"] = "/Standard"; this->m->encryption_dictionary["/V"] = QUtil::int_to_string(V); this->m->encryption_dictionary["/Length"] = QUtil::int_to_string(key_len * 8); this->m->encryption_dictionary["/R"] = QUtil::int_to_string(R); this->m->encryption_dictionary["/P"] = QUtil::int_to_string(P); this->m->encryption_dictionary["/O"] = QPDF_String(O).unparse(true); this->m->encryption_dictionary["/U"] = QPDF_String(U).unparse(true); if (V >= 5) { this->m->encryption_dictionary["/OE"] = QPDF_String(OE).unparse(true); this->m->encryption_dictionary["/UE"] = QPDF_String(UE).unparse(true); this->m->encryption_dictionary["/Perms"] = QPDF_String(Perms).unparse(true); } if (R >= 6) { setMinimumPDFVersion("1.7", 8); } else if (R == 5) { setMinimumPDFVersion("1.7", 3); } else if (R == 4) { setMinimumPDFVersion(this->m->encrypt_use_aes ? "1.6" : "1.5"); } else if (R == 3) { setMinimumPDFVersion("1.4"); } else { setMinimumPDFVersion("1.3"); } if ((R >= 4) && (! this->m->encrypt_metadata)) { this->m->encryption_dictionary["/EncryptMetadata"] = "false"; } if ((V == 4) || (V == 5)) { // The spec says the value for the crypt filter key can be // anything, and xpdf seems to agree. However, Adobe Reader // won't open our files unless we use /StdCF. this->m->encryption_dictionary["/StmF"] = "/StdCF"; this->m->encryption_dictionary["/StrF"] = "/StdCF"; std::string method = (this->m->encrypt_use_aes ? ((V < 5) ? "/AESV2" : "/AESV3") : "/V2"); // The PDF spec says the /Length key is optional, but the PDF // previewer on some versions of MacOS won't open encrypted // files without it. this->m->encryption_dictionary["/CF"] = "<< /StdCF << /AuthEvent /DocOpen /CFM " + method + " /Length " + std::string((V < 5) ? "16" : "32") + " >> >>"; } this->m->encrypted = true; QPDF::EncryptionData encryption_data( V, R, key_len, P, O, U, OE, UE, Perms, id1, this->m->encrypt_metadata); if (V < 5) { this->m->encryption_key = QPDF::compute_encryption_key( user_password, encryption_data); } else { this->m->encryption_key = encryption_key; } } void QPDFWriter::setDataKey(int objid) { this->m->cur_data_key = QPDF::compute_data_key( this->m->encryption_key, objid, 0, this->m->encrypt_use_aes, this->m->encryption_V, this->m->encryption_R); } int QPDFWriter::bytesNeeded(unsigned long long n) { int bytes = 0; while (n) { ++bytes; n >>= 8; } return bytes; } void QPDFWriter::writeBinary(unsigned long long val, unsigned int bytes) { if (bytes > sizeof(unsigned long long)) { throw std::logic_error( "QPDFWriter::writeBinary called with too many bytes"); } unsigned char data[sizeof(unsigned long long)]; for (unsigned int i = 0; i < bytes; ++i) { data[bytes - i - 1] = static_cast(val & 0xff); val >>= 8; } this->m->pipeline->write(data, bytes); } void QPDFWriter::writeString(std::string const& str) { this->m->pipeline->write(QUtil::unsigned_char_pointer(str), str.length()); } void QPDFWriter::writeBuffer(PointerHolder& b) { this->m->pipeline->write(b->getBuffer(), b->getSize()); } void QPDFWriter::writeStringQDF(std::string const& str) { if (this->m->qdf_mode) { writeString(str); } } void QPDFWriter::writeStringNoQDF(std::string const& str) { if (! this->m->qdf_mode) { writeString(str); } } void QPDFWriter::writePad(int nspaces) { for (int i = 0; i < nspaces; ++i) { writeString(" "); } } Pipeline* QPDFWriter::pushPipeline(Pipeline* p) { assert(dynamic_cast(p) == 0); this->m->pipeline_stack.push_back(p); return p; } void QPDFWriter::initializePipelineStack(Pipeline *p) { this->m->pipeline = new Pl_Count("qpdf count", p); this->m->to_delete.push_back(this->m->pipeline); this->m->pipeline_stack.push_back(this->m->pipeline); } void QPDFWriter::activatePipelineStack() { Pl_Count* c = new Pl_Count("count", this->m->pipeline_stack.back()); this->m->pipeline_stack.push_back(c); this->m->pipeline = c; } void QPDFWriter::popPipelineStack(PointerHolder* bp) { assert(this->m->pipeline_stack.size() >= 2); this->m->pipeline->finish(); assert(dynamic_cast(this->m->pipeline_stack.back()) == this->m->pipeline); delete this->m->pipeline_stack.back(); this->m->pipeline_stack.pop_back(); while (dynamic_cast(this->m->pipeline_stack.back()) == 0) { Pipeline* p = this->m->pipeline_stack.back(); if (dynamic_cast(p) == this->m->md5_pipeline) { this->m->md5_pipeline = 0; } this->m->pipeline_stack.pop_back(); Pl_Buffer* buf = dynamic_cast(p); if (bp && buf) { *bp = buf->getBuffer(); } delete p; } this->m->pipeline = dynamic_cast(this->m->pipeline_stack.back()); } void QPDFWriter::adjustAESStreamLength(size_t& length) { if (this->m->encrypted && (! this->m->cur_data_key.empty()) && this->m->encrypt_use_aes) { // Stream length will be padded with 1 to 16 bytes to end up // as a multiple of 16. It will also be prepended by 16 bits // of random data. length += 32 - (length & 0xf); } } void QPDFWriter::pushEncryptionFilter() { if (this->m->encrypted && (! this->m->cur_data_key.empty())) { Pipeline* p = 0; if (this->m->encrypt_use_aes) { p = new Pl_AES_PDF( "aes stream encryption", this->m->pipeline, true, QUtil::unsigned_char_pointer(this->m->cur_data_key), this->m->cur_data_key.length()); } else { p = new Pl_RC4("rc4 stream encryption", this->m->pipeline, QUtil::unsigned_char_pointer(this->m->cur_data_key), this->m->cur_data_key.length()); } pushPipeline(p); } // Must call this unconditionally so we can call popPipelineStack // to balance pushEncryptionFilter(). activatePipelineStack(); } void QPDFWriter::pushDiscardFilter() { pushPipeline(new Pl_Discard()); activatePipelineStack(); } void QPDFWriter::pushMD5Pipeline() { if (! this->m->id2.empty()) { // Can't happen in the code throw std::logic_error( "Deterministic ID computation enabled after ID" " generation has already occurred."); } assert(this->m->deterministic_id); assert(this->m->md5_pipeline == 0); assert(this->m->pipeline->getCount() == 0); this->m->md5_pipeline = new Pl_MD5("qpdf md5", this->m->pipeline); this->m->md5_pipeline->persistAcrossFinish(true); // Special case code in popPipelineStack clears this->m->md5_pipeline // upon deletion. pushPipeline(this->m->md5_pipeline); activatePipelineStack(); } void QPDFWriter::computeDeterministicIDData() { assert(this->m->md5_pipeline != 0); assert(this->m->deterministic_id_data.empty()); this->m->deterministic_id_data = this->m->md5_pipeline->getHexDigest(); this->m->md5_pipeline->enable(false); } int QPDFWriter::openObject(int objid) { if (objid == 0) { objid = this->m->next_objid++; } this->m->xref[objid] = QPDFXRefEntry(1, this->m->pipeline->getCount(), 0); writeString(QUtil::int_to_string(objid)); writeString(" 0 obj\n"); return objid; } void QPDFWriter::closeObject(int objid) { // Write a newline before endobj as it makes the file easier to // repair. writeString("\nendobj\n"); writeStringQDF("\n"); this->m->lengths[objid] = this->m->pipeline->getCount() - this->m->xref[objid].getOffset(); } void QPDFWriter::assignCompressedObjectNumbers(QPDFObjGen const& og) { int objid = og.getObj(); if ((og.getGen() != 0) || (this->m->object_stream_to_objects.count(objid) == 0)) { // This is not an object stream. return; } // Reserve numbers for the objects that belong to this object // stream. for (std::set::iterator iter = this->m->object_stream_to_objects[objid].begin(); iter != this->m->object_stream_to_objects[objid].end(); ++iter) { this->m->obj_renumber[*iter] = this->m->next_objid++; } } void QPDFWriter::enqueueObject(QPDFObjectHandle object) { if (object.isIndirect()) { if (object.getOwningQPDF() != &(this->m->pdf)) { QTC::TC("qpdf", "QPDFWriter foreign object"); throw std::logic_error( "QPDFObjectHandle from different QPDF found while writing." " Use QPDF::copyForeignObject to add objects from" " another file."); } QPDFObjGen og = object.getObjGen(); if (this->m->obj_renumber.count(og) == 0) { if (this->m->object_to_object_stream.count(og)) { // This is in an object stream. Don't process it // here. Instead, enqueue the object stream. Object // streams always have generation 0. int stream_id = this->m->object_to_object_stream[og]; // Detect loops by storing invalid object ID 0, which // will get overwritten later. this->m->obj_renumber[og] = 0; enqueueObject(this->m->pdf.getObjectByID(stream_id, 0)); } else { this->m->object_queue.push_back(object); this->m->obj_renumber[og] = this->m->next_objid++; if ((og.getGen() == 0) && this->m->object_stream_to_objects.count(og.getObj())) { // For linearized files, uncompressed objects go // at end, and we take care of assigning numbers // to them elsewhere. if (! this->m->linearized) { assignCompressedObjectNumbers(og); } } else if ((! this->m->direct_stream_lengths) && object.isStream()) { // reserve next object ID for length ++this->m->next_objid; } } } else if (this->m->obj_renumber[og] == 0) { // This can happen if a specially constructed file // indicates that an object stream is inside itself. QTC::TC("qpdf", "QPDFWriter ignore self-referential object stream"); } } else if (object.isArray()) { int n = object.getArrayNItems(); for (int i = 0; i < n; ++i) { if (! this->m->linearized) { enqueueObject(object.getArrayItem(i)); } } } else if (object.isDictionary()) { std::set keys = object.getKeys(); for (std::set::iterator iter = keys.begin(); iter != keys.end(); ++iter) { if (! this->m->linearized) { enqueueObject(object.getKey(*iter)); } } } else { // ignore } } void QPDFWriter::unparseChild(QPDFObjectHandle child, int level, int flags) { if (! this->m->linearized) { enqueueObject(child); } if (child.isIndirect()) { QPDFObjGen old_og = child.getObjGen(); int new_id = this->m->obj_renumber[old_og]; writeString(QUtil::int_to_string(new_id)); writeString(" 0 R"); } else { unparseObject(child, level, flags); } } void QPDFWriter::writeTrailer(trailer_e which, int size, bool xref_stream, qpdf_offset_t prev, int linearization_pass) { QPDFObjectHandle trailer = getTrimmedTrailer(); if (! xref_stream) { writeString("trailer <<"); } writeStringQDF("\n"); if (which == t_lin_second) { writeString(" /Size "); writeString(QUtil::int_to_string(size)); } else { std::set keys = trailer.getKeys(); for (std::set::iterator iter = keys.begin(); iter != keys.end(); ++iter) { std::string const& key = *iter; writeStringQDF(" "); writeStringNoQDF(" "); writeString(QPDF_Name::normalizeName(key)); writeString(" "); if (key == "/Size") { writeString(QUtil::int_to_string(size)); if (which == t_lin_first) { writeString(" /Prev "); qpdf_offset_t pos = this->m->pipeline->getCount(); writeString(QUtil::int_to_string(prev)); int nspaces = pos - this->m->pipeline->getCount() + 21; if (nspaces < 0) { throw std::logic_error( "QPDFWriter: no padding required in trailer"); } writePad(nspaces); } } else { unparseChild(trailer.getKey(key), 1, 0); } writeStringQDF("\n"); } } // Write ID writeStringQDF(" "); writeString(" /ID ["); if (linearization_pass == 1) { std::string original_id1 = getOriginalID1(); if (original_id1.empty()) { writeString("<00000000000000000000000000000000>"); } else { // Write a string of zeroes equal in length to the // representation of the original ID. While writing the // original ID would have the same number of bytes, it // would cause a change to the deterministic ID generated // by older versions of the software that hard-coded the // length of the ID to 16 bytes. writeString("<"); size_t len = QPDF_String(original_id1).unparse(true).length() - 2; for (size_t i = 0; i < len; ++i) { writeString("0"); } writeString(">"); } writeString("<00000000000000000000000000000000>"); } else { if ((linearization_pass == 0) && (this->m->deterministic_id)) { computeDeterministicIDData(); } generateID(); writeString(QPDF_String(this->m->id1).unparse(true)); writeString(QPDF_String(this->m->id2).unparse(true)); } writeString("]"); if (which != t_lin_second) { // Write reference to encryption dictionary if (this->m->encrypted) { writeString(" /Encrypt "); writeString(QUtil::int_to_string(this->m->encryption_dict_objid)); writeString(" 0 R"); } } writeStringQDF("\n"); writeStringNoQDF(" "); writeString(">>"); } void QPDFWriter::unparseObject(QPDFObjectHandle object, int level, unsigned int flags) { unparseObject(object, level, flags, 0, false); } void QPDFWriter::unparseObject(QPDFObjectHandle object, int level, unsigned int flags, size_t stream_length, bool compress) { QPDFObjGen old_og = object.getObjGen(); unsigned int child_flags = flags & ~f_stream; std::string indent; for (int i = 0; i < level; ++i) { indent += " "; } if (object.isArray()) { // Note: PDF spec 1.4 implementation note 121 states that // Acrobat requires a space after the [ in the /H key of the // linearization parameter dictionary. We'll do this // unconditionally for all arrays because it looks nicer and // doesn't make the files that much bigger. writeString("["); writeStringQDF("\n"); int n = object.getArrayNItems(); for (int i = 0; i < n; ++i) { writeStringQDF(indent); writeStringQDF(" "); writeStringNoQDF(" "); unparseChild(object.getArrayItem(i), level + 1, child_flags); writeStringQDF("\n"); } writeStringQDF(indent); writeStringNoQDF(" "); writeString("]"); } else if (object.isDictionary()) { // Make a shallow copy of this object so we can modify it // safely without affecting the original. This code makes // assumptions about things that are made true in // prepareFileForWrite, such as that certain things are direct // objects so that replacing them doesn't leave unreferenced // objects in the output. object = object.shallowCopy(); // Handle special cases for specific dictionaries. // Extensions dictionaries. // We have one of several cases: // // * We need ADBE // - We already have Extensions // - If it has the right ADBE, preserve it // - Otherwise, replace ADBE // - We don't have Extensions: create one from scratch // * We don't want ADBE // - We already have Extensions // - If it only has ADBE, remove it // - If it has other things, keep those and remove ADBE // - We have no extensions: no action required // // Before writing, we guarantee that /Extensions, if present, // is direct through the ADBE dictionary, so we can modify in // place. bool is_root = false; bool have_extensions_other = false; bool have_extensions_adbe = false; QPDFObjectHandle extensions; if (old_og == this->m->pdf.getRoot().getObjGen()) { is_root = true; if (object.hasKey("/Extensions") && object.getKey("/Extensions").isDictionary()) { extensions = object.getKey("/Extensions"); } } if (extensions.isInitialized()) { std::set keys = extensions.getKeys(); if (keys.count("/ADBE") > 0) { have_extensions_adbe = true; keys.erase("/ADBE"); } if (keys.size() > 0) { have_extensions_other = true; } } bool need_extensions_adbe = (this->m->final_extension_level > 0); if (is_root) { if (need_extensions_adbe) { if (! (have_extensions_other || have_extensions_adbe)) { // We need Extensions and don't have it. Create // it here. QTC::TC("qpdf", "QPDFWriter create Extensions", this->m->qdf_mode ? 0 : 1); extensions = QPDFObjectHandle::newDictionary(); object.replaceKey("/Extensions", extensions); } } else if (! have_extensions_other) { // We have Extensions dictionary and don't want one. if (have_extensions_adbe) { QTC::TC("qpdf", "QPDFWriter remove existing Extensions"); object.removeKey("/Extensions"); extensions = QPDFObjectHandle(); // uninitialized } } } if (extensions.isInitialized()) { QTC::TC("qpdf", "QPDFWriter preserve Extensions"); QPDFObjectHandle adbe = extensions.getKey("/ADBE"); if (adbe.isDictionary() && adbe.hasKey("/BaseVersion") && adbe.getKey("/BaseVersion").isName() && (adbe.getKey("/BaseVersion").getName() == "/" + this->m->final_pdf_version) && adbe.hasKey("/ExtensionLevel") && adbe.getKey("/ExtensionLevel").isInteger() && (adbe.getKey("/ExtensionLevel").getIntValue() == this->m->final_extension_level)) { QTC::TC("qpdf", "QPDFWriter preserve ADBE"); } else { if (need_extensions_adbe) { extensions.replaceKey( "/ADBE", QPDFObjectHandle::parse( "<< /BaseVersion /" + this->m->final_pdf_version + " /ExtensionLevel " + QUtil::int_to_string( this->m->final_extension_level) + " >>")); } else { QTC::TC("qpdf", "QPDFWriter remove ADBE"); extensions.removeKey("/ADBE"); } } } // Stream dictionaries. if (flags & f_stream) { // Suppress /Length since we will write it manually object.removeKey("/Length"); if (flags & f_filtered) { // We will supply our own filter and decode // parameters. object.removeKey("/Filter"); object.removeKey("/DecodeParms"); } else { // Make sure, no matter what else we have, that we // don't have /Crypt in the output filters. QPDFObjectHandle filter = object.getKey("/Filter"); QPDFObjectHandle decode_parms = object.getKey("/DecodeParms"); if (filter.isOrHasName("/Crypt")) { if (filter.isName()) { object.removeKey("/Filter"); object.removeKey("/DecodeParms"); } else { int idx = -1; for (int i = 0; i < filter.getArrayNItems(); ++i) { QPDFObjectHandle item = filter.getArrayItem(i); if (item.isName() && item.getName() == "/Crypt") { idx = i; break; } } if (idx >= 0) { // If filter is an array, then the code in // QPDF_Stream has already verified that // DecodeParms and Filters are arrays of // the same length, but if they weren't // for some reason, eraseItem does type // and bounds checking. QTC::TC("qpdf", "QPDFWriter remove Crypt"); filter.eraseItem(idx); decode_parms.eraseItem(idx); } } } } } writeString("<<"); writeStringQDF("\n"); std::set keys = object.getKeys(); for (std::set::iterator iter = keys.begin(); iter != keys.end(); ++iter) { std::string const& key = *iter; writeStringQDF(indent); writeStringQDF(" "); writeStringNoQDF(" "); writeString(QPDF_Name::normalizeName(key)); writeString(" "); unparseChild(object.getKey(key), level + 1, child_flags); writeStringQDF("\n"); } if (flags & f_stream) { writeStringQDF(indent); writeStringQDF(" "); writeString(" /Length "); if (this->m->direct_stream_lengths) { writeString(QUtil::int_to_string(stream_length)); } else { writeString( QUtil::int_to_string(this->m->cur_stream_length_id)); writeString(" 0 R"); } writeStringQDF("\n"); if (compress && (flags & f_filtered)) { writeStringQDF(indent); writeStringQDF(" "); writeString(" /Filter /FlateDecode"); writeStringQDF("\n"); } } writeStringQDF(indent); writeStringNoQDF(" "); writeString(">>"); } else if (object.isStream()) { // Write stream data to a buffer. int new_id = this->m->obj_renumber[old_og]; if (! this->m->direct_stream_lengths) { this->m->cur_stream_length_id = new_id + 1; } QPDFObjectHandle stream_dict = object.getDict(); bool is_metadata = false; if (stream_dict.getKey("/Type").isName() && (stream_dict.getKey("/Type").getName() == "/Metadata")) { is_metadata = true; } bool filter = (object.isDataModified() || this->m->compress_streams || this->m->stream_decode_level); if (this->m->compress_streams) { // Don't filter if the stream is already compressed with // FlateDecode. We don't want to make it worse by getting // rid of a predictor or otherwise messing with it. We // should also avoid messing with anything that's // compressed with a lossy compression scheme, but we // don't support any of those right now. QPDFObjectHandle filter_obj = stream_dict.getKey("/Filter"); if ((! object.isDataModified()) && filter_obj.isName() && ((filter_obj.getName() == "/FlateDecode") || (filter_obj.getName() == "/Fl"))) { QTC::TC("qpdf", "QPDFWriter not recompressing /FlateDecode"); filter = false; } } bool normalize = false; bool compress = false; bool uncompress = false; if (is_metadata && ((! this->m->encrypted) || (this->m->encrypt_metadata == false))) { QTC::TC("qpdf", "QPDFWriter not compressing metadata"); filter = true; compress = false; uncompress = true; } else if (this->m->normalize_content && this->m->normalized_streams.count(old_og)) { normalize = true; filter = true; } else if (filter && this->m->compress_streams) { compress = true; QTC::TC("qpdf", "QPDFWriter compressing uncompressed stream"); } flags |= f_stream; PointerHolder stream_data; bool filtered = false; for (int attempt = 1; attempt <= 2; ++attempt) { pushPipeline(new Pl_Buffer("stream data")); activatePipelineStack(); filtered = object.pipeStreamData( this->m->pipeline, (((filter && normalize) ? qpdf_ef_normalize : 0) | ((filter && compress) ? qpdf_ef_compress : 0)), (filter ? (uncompress ? qpdf_dl_all : this->m->stream_decode_level) : qpdf_dl_none), false, (attempt == 1)); popPipelineStack(&stream_data); if (filter && (! filtered)) { // Try again filter = false; } else { break; } } if (filtered) { flags |= f_filtered; } else { compress = false; } this->m->cur_stream_length = stream_data->getSize(); if (is_metadata && this->m->encrypted && (! this->m->encrypt_metadata)) { // Don't encrypt stream data for the metadata stream this->m->cur_data_key.clear(); } adjustAESStreamLength(this->m->cur_stream_length); unparseObject(stream_dict, 0, flags, this->m->cur_stream_length, compress); writeString("\nstream\n"); pushEncryptionFilter(); writeBuffer(stream_data); char last_char = this->m->pipeline->getLastChar(); popPipelineStack(); if (this->m->newline_before_endstream || (this->m->qdf_mode && (last_char != '\n'))) { writeString("\n"); this->m->added_newline = true; } else { this->m->added_newline = false; } writeString("endstream"); } else if (object.isString()) { std::string val; if (this->m->encrypted && (! (flags & f_in_ostream)) && (! this->m->cur_data_key.empty())) { val = object.getStringValue(); if (this->m->encrypt_use_aes) { Pl_Buffer bufpl("encrypted string"); Pl_AES_PDF pl( "aes encrypt string", &bufpl, true, QUtil::unsigned_char_pointer(this->m->cur_data_key), this->m->cur_data_key.length()); pl.write(QUtil::unsigned_char_pointer(val), val.length()); pl.finish(); Buffer* buf = bufpl.getBuffer(); val = QPDF_String( std::string(reinterpret_cast(buf->getBuffer()), buf->getSize())).unparse(true); delete buf; } else { char* tmp = QUtil::copy_string(val); size_t vlen = val.length(); RC4 rc4(QUtil::unsigned_char_pointer(this->m->cur_data_key), this->m->cur_data_key.length()); rc4.process(QUtil::unsigned_char_pointer(tmp), vlen); val = QPDF_String(std::string(tmp, vlen)).unparse(); delete [] tmp; } } else { val = object.unparseResolved(); } writeString(val); } else { writeString(object.unparseResolved()); } } void QPDFWriter::writeObjectStreamOffsets(std::vector& offsets, int first_obj) { for (unsigned int i = 0; i < offsets.size(); ++i) { if (i != 0) { writeStringQDF("\n"); writeStringNoQDF(" "); } writeString(QUtil::int_to_string(i + first_obj)); writeString(" "); writeString(QUtil::int_to_string(offsets.at(i))); } writeString("\n"); } void QPDFWriter::writeObjectStream(QPDFObjectHandle object) { // Note: object might be null if this is a place-holder for an // object stream that we are generating from scratch. QPDFObjGen old_og = object.getObjGen(); assert(old_og.getGen() == 0); int old_id = old_og.getObj(); int new_id = this->m->obj_renumber[old_og]; std::vector offsets; qpdf_offset_t first = 0; // Generate stream itself. We have to do this in two passes so we // can calculate offsets in the first pass. PointerHolder stream_buffer; int first_obj = -1; bool compressed = false; for (int pass = 1; pass <= 2; ++pass) { if (pass == 1) { pushDiscardFilter(); } else { // Adjust offsets to skip over comment before first object first = offsets.at(0); for (std::vector::iterator iter = offsets.begin(); iter != offsets.end(); ++iter) { *iter -= first; } // Take one pass at writing pairs of numbers so we can get // their size information pushDiscardFilter(); writeObjectStreamOffsets(offsets, first_obj); first += this->m->pipeline->getCount(); popPipelineStack(); // Set up a stream to write the stream data into a buffer. Pipeline* next = pushPipeline(new Pl_Buffer("object stream")); if (! (this->m->stream_decode_level || this->m->qdf_mode)) { compressed = true; next = pushPipeline( new Pl_Flate("compress object stream", next, Pl_Flate::a_deflate)); } activatePipelineStack(); writeObjectStreamOffsets(offsets, first_obj); } int count = 0; for (std::set::iterator iter = this->m->object_stream_to_objects[old_id].begin(); iter != this->m->object_stream_to_objects[old_id].end(); ++iter, ++count) { QPDFObjGen obj = *iter; int new_obj = this->m->obj_renumber[obj]; if (first_obj == -1) { first_obj = new_obj; } if (this->m->qdf_mode) { writeString("%% Object stream: object " + QUtil::int_to_string(new_obj) + ", index " + QUtil::int_to_string(count)); if (! this->m->suppress_original_object_ids) { writeString("; original object ID: " + QUtil::int_to_string(obj.getObj())); // For compatibility, only write the generation if // non-zero. While object streams only allow // objects with generation 0, if we are generating // object streams, the old object could have a // non-zero generation. if (obj.getGen() != 0) { QTC::TC("qpdf", "QPDFWriter original obj non-zero gen"); writeString(" " + QUtil::int_to_string(obj.getGen())); } } writeString("\n"); } if (pass == 1) { offsets.push_back(this->m->pipeline->getCount()); } writeObject(this->m->pdf.getObjectByObjGen(obj), count); this->m->xref[new_obj] = QPDFXRefEntry(2, new_id, count); } // stream_buffer will be initialized only for pass 2 popPipelineStack(&stream_buffer); } // Write the object openObject(new_id); setDataKey(new_id); writeString("<<"); writeStringQDF("\n "); writeString(" /Type /ObjStm"); writeStringQDF("\n "); size_t length = stream_buffer->getSize(); adjustAESStreamLength(length); writeString(" /Length " + QUtil::int_to_string(length)); writeStringQDF("\n "); if (compressed) { writeString(" /Filter /FlateDecode"); } writeString(" /N " + QUtil::int_to_string(offsets.size())); writeStringQDF("\n "); writeString(" /First " + QUtil::int_to_string(first)); if (! object.isNull()) { // If the original object has an /Extends key, preserve it. QPDFObjectHandle dict = object.getDict(); QPDFObjectHandle extends = dict.getKey("/Extends"); if (extends.isIndirect()) { QTC::TC("qpdf", "QPDFWriter copy Extends"); writeStringQDF("\n "); writeString(" /Extends "); unparseChild(extends, 1, f_in_ostream); } } writeStringQDF("\n"); writeStringNoQDF(" "); writeString(">>\nstream\n"); if (this->m->encrypted) { QTC::TC("qpdf", "QPDFWriter encrypt object stream"); } pushEncryptionFilter(); writeBuffer(stream_buffer); popPipelineStack(); writeString("endstream"); this->m->cur_data_key.clear(); closeObject(new_id); } void QPDFWriter::writeObject(QPDFObjectHandle object, int object_stream_index) { QPDFObjGen old_og = object.getObjGen(); if ((object_stream_index == -1) && (old_og.getGen() == 0) && (this->m->object_stream_to_objects.count(old_og.getObj()))) { writeObjectStream(object); return; } int new_id = this->m->obj_renumber[old_og]; if (this->m->qdf_mode) { if (this->m->page_object_to_seq.count(old_og)) { writeString("%% Page "); writeString( QUtil::int_to_string( this->m->page_object_to_seq[old_og])); writeString("\n"); } if (this->m->contents_to_page_seq.count(old_og)) { writeString("%% Contents for page "); writeString( QUtil::int_to_string( this->m->contents_to_page_seq[old_og])); writeString("\n"); } } if (object_stream_index == -1) { if (this->m->qdf_mode && (! this->m->suppress_original_object_ids)) { writeString("%% Original object ID: " + QUtil::int_to_string(object.getObjectID()) + " " + QUtil::int_to_string(object.getGeneration()) + "\n"); } openObject(new_id); setDataKey(new_id); unparseObject(object, 0, 0); this->m->cur_data_key.clear(); closeObject(new_id); } else { unparseObject(object, 0, f_in_ostream); writeString("\n"); } if ((! this->m->direct_stream_lengths) && object.isStream()) { if (this->m->qdf_mode) { if (this->m->added_newline) { writeString("%QDF: ignore_newline\n"); } } openObject(new_id + 1); writeString(QUtil::int_to_string(this->m->cur_stream_length)); closeObject(new_id + 1); } } std::string QPDFWriter::getOriginalID1() { QPDFObjectHandle trailer = this->m->pdf.getTrailer(); if (trailer.hasKey("/ID")) { return trailer.getKey("/ID").getArrayItem(0).getStringValue(); } else { return ""; } } void QPDFWriter::generateID() { // Generate the ID lazily so that we can handle the user's // preference to use static or deterministic ID generation. if (! this->m->id2.empty()) { return; } QPDFObjectHandle trailer = this->m->pdf.getTrailer(); std::string result; if (this->m->static_id) { // For test suite use only... static unsigned char tmp[] = {0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93, 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95, 0x00}; result = reinterpret_cast(tmp); } else { // The PDF specification has guidelines for creating IDs, but // it states clearly that the only thing that's really // important is that it is very likely to be unique. We can't // really follow the guidelines in the spec exactly because we // haven't written the file yet. This scheme should be fine // though. The deterministic ID case uses a digest of a // sufficient portion of the file's contents such no two // non-matching files would match in the subsets used for this // computation. Note that we explicitly omit the filename from // the digest calculation for deterministic ID so that the same // file converted with qpdf, in that case, would have the same // ID regardless of the output file's name. std::string seed; if (this->m->deterministic_id) { if (this->m->deterministic_id_data.empty()) { QTC::TC("qpdf", "QPDFWriter deterministic with no data"); throw std::logic_error( "INTERNAL ERROR: QPDFWriter::generateID has no" " data for deterministic ID. This may happen if" " deterministic ID and file encryption are requested" " together."); } seed += this->m->deterministic_id_data; } else { seed += QUtil::int_to_string(QUtil::get_current_time()); seed += this->m->filename; seed += " "; } seed += " QPDF "; if (trailer.hasKey("/Info")) { QPDFObjectHandle info = trailer.getKey("/Info"); std::set keys = info.getKeys(); for (std::set::iterator iter = keys.begin(); iter != keys.end(); ++iter) { QPDFObjectHandle obj = info.getKey(*iter); if (obj.isString()) { seed += " "; seed += obj.getStringValue(); } } } MD5 m; m.encodeString(seed.c_str()); MD5::Digest digest; m.digest(digest); result = std::string(reinterpret_cast(digest), sizeof(MD5::Digest)); } // If /ID already exists, follow the spec: use the original first // word and generate a new second word. Otherwise, we'll use the // generated ID for both. this->m->id2 = result; // Note: keep /ID from old file even if --static-id was given. this->m->id1 = getOriginalID1(); if (this->m->id1.empty()) { this->m->id1 = this->m->id2; } } void QPDFWriter::initializeSpecialStreams() { // Mark all page content streams in case we are filtering or // normalizing. std::vector pages = this->m->pdf.getAllPages(); int num = 0; for (std::vector::iterator iter = pages.begin(); iter != pages.end(); ++iter) { QPDFObjectHandle& page = *iter; this->m->page_object_to_seq[page.getObjGen()] = ++num; QPDFObjectHandle contents = page.getKey("/Contents"); std::vector contents_objects; if (contents.isArray()) { int n = contents.getArrayNItems(); for (int i = 0; i < n; ++i) { contents_objects.push_back( contents.getArrayItem(i).getObjGen()); } } else if (contents.isStream()) { contents_objects.push_back(contents.getObjGen()); } for (std::vector::iterator iter = contents_objects.begin(); iter != contents_objects.end(); ++iter) { this->m->contents_to_page_seq[*iter] = num; this->m->normalized_streams.insert(*iter); } } } void QPDFWriter::preserveObjectStreams() { // Our object_to_object_stream map has to map ObjGen -> ObjGen // since we may be generating object streams out of old objects // that have generation numbers greater than zero. However in an // existing PDF, all object stream objects and all objects in them // must have generation 0 because the PDF spec does not provide // any way to do otherwise. std::map omap; QPDF::Writer::getObjectStreamData(this->m->pdf, omap); for (std::map::iterator iter = omap.begin(); iter != omap.end(); ++iter) { this->m->object_to_object_stream[QPDFObjGen((*iter).first, 0)] = (*iter).second; } } void QPDFWriter::generateObjectStreams() { // Basic strategy: make a list of objects that can go into an // object stream. Then figure out how many object streams are // needed so that we can distribute objects approximately evenly // without having any object stream exceed 100 members. We don't // have to worry about linearized files here -- if the file is // linearized, we take care of excluding things that aren't // allowed here later. // This code doesn't do anything with /Extends. std::vector const& eligible = QPDF::Writer::getCompressibleObjGens(this->m->pdf); unsigned int n_object_streams = (eligible.size() + 99) / 100; if (n_object_streams == 0) { throw std::logic_error("n_object_streams == 0"); } unsigned int n_per = eligible.size() / n_object_streams; if (n_per * n_object_streams < eligible.size()) { ++n_per; } unsigned int n = 0; int cur_ostream = 0; for (std::vector::const_iterator iter = eligible.begin(); iter != eligible.end(); ++iter) { if ((n % n_per) == 0) { if (n > 0) { QTC::TC("qpdf", "QPDFWriter generate >1 ostream"); } n = 0; } if (n == 0) { // Construct a new null object as the "original" object // stream. The rest of the code knows that this means // we're creating the object stream from scratch. cur_ostream = this->m->pdf.makeIndirectObject( QPDFObjectHandle::newNull()).getObjectID(); } this->m->object_to_object_stream[*iter] = cur_ostream; ++n; } } QPDFObjectHandle QPDFWriter::getTrimmedTrailer() { // Remove keys from the trailer that necessarily have to be // replaced when writing the file. QPDFObjectHandle trailer = this->m->pdf.getTrailer().shallowCopy(); // Remove encryption keys trailer.removeKey("/ID"); trailer.removeKey("/Encrypt"); // Remove modification information trailer.removeKey("/Prev"); // Remove all trailer keys that potentially come from a // cross-reference stream trailer.removeKey("/Index"); trailer.removeKey("/W"); trailer.removeKey("/Length"); trailer.removeKey("/Filter"); trailer.removeKey("/DecodeParms"); trailer.removeKey("/Type"); trailer.removeKey("/XRefStm"); return trailer; } void QPDFWriter::prepareFileForWrite() { // Do a traversal of the entire PDF file structure replacing all // indirect objects that QPDFWriter wants to be direct. This // includes stream lengths, stream filtering parameters, and // document extension level information. std::list queue; queue.push_back(getTrimmedTrailer()); std::set visited; while (! queue.empty()) { QPDFObjectHandle node = queue.front(); queue.pop_front(); if (node.isIndirect()) { if (visited.count(node.getObjectID()) > 0) { continue; } visited.insert(node.getObjectID()); } if (node.isArray()) { int nitems = node.getArrayNItems(); for (int i = 0; i < nitems; ++i) { QPDFObjectHandle oh = node.getArrayItem(i); if (oh.isIndirect() && oh.isNull()) { QTC::TC("qpdf", "QPDFWriter flatten array null"); oh.makeDirect(); node.setArrayItem(i, oh); } else if (! oh.isScalar()) { queue.push_back(oh); } } } else if (node.isDictionary() || node.isStream()) { bool is_stream = false; bool is_root = false; bool filterable = false; QPDFObjectHandle dict = node; if (node.isStream()) { is_stream = true; dict = node.getDict(); // See whether we are able to filter this stream. filterable = node.pipeStreamData( 0, 0, this->m->stream_decode_level, true); } else if (this->m->pdf.getRoot().getObjectID() == node.getObjectID()) { is_root = true; } std::set keys = dict.getKeys(); for (std::set::iterator iter = keys.begin(); iter != keys.end(); ++iter) { std::string const& key = *iter; QPDFObjectHandle oh = dict.getKey(key); bool add_to_queue = true; if (is_stream) { if (oh.isIndirect() && ((key == "/Length") || (filterable && ((key == "/Filter") || (key == "/DecodeParms"))))) { QTC::TC("qpdf", "QPDFWriter make stream key direct"); add_to_queue = false; oh.makeDirect(); dict.replaceKey(key, oh); } } else if (is_root) { if ((key == "/Extensions") && (oh.isDictionary())) { bool extensions_indirect = false; if (oh.isIndirect()) { QTC::TC("qpdf", "QPDFWriter make Extensions direct"); extensions_indirect = true; add_to_queue = false; oh = oh.shallowCopy(); dict.replaceKey(key, oh); } if (oh.hasKey("/ADBE")) { QPDFObjectHandle adbe = oh.getKey("/ADBE"); if (adbe.isIndirect()) { QTC::TC("qpdf", "QPDFWriter make ADBE direct", extensions_indirect ? 0 : 1); adbe.makeDirect(); oh.replaceKey("/ADBE", adbe); } } } } if (add_to_queue) { queue.push_back(oh); } } } } } void QPDFWriter::write() { // Do preliminary setup if (this->m->linearized) { this->m->qdf_mode = false; } if (this->m->pclm) { this->m->stream_decode_level = qpdf_dl_none; this->m->compress_streams = false; this->m->encrypted = false; } if (this->m->qdf_mode) { if (! this->m->normalize_content_set) { this->m->normalize_content = true; } if (! this->m->compress_streams_set) { this->m->compress_streams = false; } if (! this->m->stream_decode_level_set) { this->m->stream_decode_level = qpdf_dl_generalized; } } if (this->m->encrypted) { // Encryption has been explicitly set this->m->preserve_encryption = false; } else if (this->m->normalize_content || this->m->stream_decode_level || this->m->pclm || this->m->qdf_mode) { // Encryption makes looking at contents pretty useless. If // the user explicitly encrypted though, we still obey that. this->m->preserve_encryption = false; } if (this->m->preserve_encryption) { copyEncryptionParameters(this->m->pdf); } if (! this->m->forced_pdf_version.empty()) { int major = 0; int minor = 0; parseVersion(this->m->forced_pdf_version, major, minor); disableIncompatibleEncryption(major, minor, this->m->forced_extension_level); if (compareVersions(major, minor, 1, 5) < 0) { QTC::TC("qpdf", "QPDFWriter forcing object stream disable"); this->m->object_stream_mode = qpdf_o_disable; } } if (this->m->qdf_mode || this->m->normalize_content || this->m->stream_decode_level) { initializeSpecialStreams(); } if (this->m->qdf_mode) { // Generate indirect stream lengths for qdf mode since fix-qdf // uses them for storing recomputed stream length data. // Certain streams such as object streams, xref streams, and // hint streams always get direct stream lengths. this->m->direct_stream_lengths = false; } switch (this->m->object_stream_mode) { case qpdf_o_disable: // no action required break; case qpdf_o_preserve: preserveObjectStreams(); break; case qpdf_o_generate: generateObjectStreams(); break; // no default so gcc will warn for missing case tag } if (this->m->linearized) { // Page dictionaries are not allowed to be compressed objects. std::vector pages = this->m->pdf.getAllPages(); for (std::vector::iterator iter = pages.begin(); iter != pages.end(); ++iter) { QPDFObjectHandle& page = *iter; QPDFObjGen og = page.getObjGen(); if (this->m->object_to_object_stream.count(og)) { QTC::TC("qpdf", "QPDFWriter uncompressing page dictionary"); this->m->object_to_object_stream.erase(og); } } } if (this->m->linearized || this->m->encrypted) { // The document catalog is not allowed to be compressed in // linearized files either. It also appears that Adobe Reader // 8.0.0 has a bug that prevents it from being able to handle // encrypted files with compressed document catalogs, so we // disable them in that case as well. QPDFObjGen og = this->m->pdf.getRoot().getObjGen(); if (this->m->object_to_object_stream.count(og)) { QTC::TC("qpdf", "QPDFWriter uncompressing root"); this->m->object_to_object_stream.erase(og); } } // Generate reverse mapping from object stream to objects for (std::map::iterator iter = this->m->object_to_object_stream.begin(); iter != this->m->object_to_object_stream.end(); ++iter) { QPDFObjGen obj = (*iter).first; int stream = (*iter).second; this->m->object_stream_to_objects[stream].insert(obj); this->m->max_ostream_index = std::max(this->m->max_ostream_index, static_cast( this->m->object_stream_to_objects[stream].size()) - 1); } if (! this->m->object_stream_to_objects.empty()) { setMinimumPDFVersion("1.5"); } prepareFileForWrite(); if (this->m->linearized) { writeLinearized(); } else { writeStandard(); } this->m->pipeline->finish(); if (this->m->close_file) { fclose(this->m->file); } this->m->file = 0; if (this->m->buffer_pipeline) { this->m->output_buffer = this->m->buffer_pipeline->getBuffer(); this->m->buffer_pipeline = 0; } } void QPDFWriter::enqueuePart(std::vector& part) { for (std::vector::iterator iter = part.begin(); iter != part.end(); ++iter) { enqueueObject(*iter); } } void QPDFWriter::writeEncryptionDictionary() { this->m->encryption_dict_objid = openObject(this->m->encryption_dict_objid); writeString("<<"); for (std::map::iterator iter = this->m->encryption_dictionary.begin(); iter != this->m->encryption_dictionary.end(); ++iter) { writeString(" "); writeString((*iter).first); writeString(" "); writeString((*iter).second); } writeString(" >>"); closeObject(this->m->encryption_dict_objid); } void QPDFWriter::writeHeader() { setMinimumPDFVersion(this->m->pdf.getPDFVersion(), this->m->pdf.getExtensionLevel()); this->m->final_pdf_version = this->m->min_pdf_version; this->m->final_extension_level = this->m->min_extension_level; if (! this->m->forced_pdf_version.empty()) { QTC::TC("qpdf", "QPDFWriter using forced PDF version"); this->m->final_pdf_version = this->m->forced_pdf_version; this->m->final_extension_level = this->m->forced_extension_level; } writeString("%PDF-"); writeString(this->m->final_pdf_version); if (this->m->pclm) { // PCLm version writeString("\n%PCLm 1.0\n"); } else { // This string of binary characters would not be valid UTF-8, so // it really should be treated as binary. writeString("\n%\xbf\xf7\xa2\xfe\n"); } writeStringQDF("%QDF-1.0\n\n"); // Note: do not write extra header text here. Linearized PDFs // must include the entire linearization parameter dictionary // within the first 1024 characters of the PDF file, so for // linearized files, we have to write extra header text after the // linearization parameter dictionary. } void QPDFWriter::writeHintStream(int hint_id) { PointerHolder hint_buffer; int S = 0; int O = 0; QPDF::Writer::generateHintStream( this->m->pdf, this->m->xref, this->m->lengths, this->m->obj_renumber_no_gen, hint_buffer, S, O); openObject(hint_id); setDataKey(hint_id); size_t hlen = hint_buffer->getSize(); writeString("<< /Filter /FlateDecode /S "); writeString(QUtil::int_to_string(S)); if (O) { writeString(" /O "); writeString(QUtil::int_to_string(O)); } writeString(" /Length "); adjustAESStreamLength(hlen); writeString(QUtil::int_to_string(hlen)); writeString(" >>\nstream\n"); if (this->m->encrypted) { QTC::TC("qpdf", "QPDFWriter encrypted hint stream"); } pushEncryptionFilter(); writeBuffer(hint_buffer); char last_char = this->m->pipeline->getLastChar(); popPipelineStack(); if (last_char != '\n') { writeString("\n"); } writeString("endstream"); closeObject(hint_id); } qpdf_offset_t QPDFWriter::writeXRefTable(trailer_e which, int first, int last, int size) { return writeXRefTable(which, first, last, size, 0, false, 0, 0, 0, 0); } qpdf_offset_t QPDFWriter::writeXRefTable(trailer_e which, int first, int last, int size, qpdf_offset_t prev, bool suppress_offsets, int hint_id, qpdf_offset_t hint_offset, qpdf_offset_t hint_length, int linearization_pass) { writeString("xref\n"); writeString(QUtil::int_to_string(first)); writeString(" "); writeString(QUtil::int_to_string(last - first + 1)); qpdf_offset_t space_before_zero = this->m->pipeline->getCount(); writeString("\n"); for (int i = first; i <= last; ++i) { if (i == 0) { writeString("0000000000 65535 f \n"); } else { qpdf_offset_t offset = 0; if (! suppress_offsets) { offset = this->m->xref[i].getOffset(); if ((hint_id != 0) && (i != hint_id) && (offset >= hint_offset)) { offset += hint_length; } } writeString(QUtil::int_to_string(offset, 10)); writeString(" 00000 n \n"); } } writeTrailer(which, size, false, prev, linearization_pass); writeString("\n"); return space_before_zero; } qpdf_offset_t QPDFWriter::writeXRefStream(int objid, int max_id, qpdf_offset_t max_offset, trailer_e which, int first, int last, int size) { return writeXRefStream(objid, max_id, max_offset, which, first, last, size, 0, 0, 0, 0, false, 0); } qpdf_offset_t QPDFWriter::writeXRefStream(int xref_id, int max_id, qpdf_offset_t max_offset, trailer_e which, int first, int last, int size, qpdf_offset_t prev, int hint_id, qpdf_offset_t hint_offset, qpdf_offset_t hint_length, bool skip_compression, int linearization_pass) { qpdf_offset_t xref_offset = this->m->pipeline->getCount(); qpdf_offset_t space_before_zero = xref_offset - 1; // field 1 contains offsets and object stream identifiers int f1_size = std::max(bytesNeeded(max_offset + hint_length), bytesNeeded(max_id)); // field 2 contains object stream indices int f2_size = bytesNeeded(this->m->max_ostream_index); unsigned int esize = 1 + f1_size + f2_size; // Must store in xref table in advance of writing the actual data // rather than waiting for openObject to do it. this->m->xref[xref_id] = QPDFXRefEntry(1, this->m->pipeline->getCount(), 0); Pipeline* p = pushPipeline(new Pl_Buffer("xref stream")); bool compressed = false; if (! (this->m->stream_decode_level || this->m->qdf_mode)) { compressed = true; if (! skip_compression) { // Write the stream dictionary for compression but don't // actually compress. This helps us with computation of // padding for pass 1 of linearization. p = pushPipeline( new Pl_Flate("compress xref", p, Pl_Flate::a_deflate)); } p = pushPipeline( new Pl_PNGFilter( "pngify xref", p, Pl_PNGFilter::a_encode, esize)); } activatePipelineStack(); for (int i = first; i <= last; ++i) { QPDFXRefEntry& e = this->m->xref[i]; switch (e.getType()) { case 0: writeBinary(0, 1); writeBinary(0, f1_size); writeBinary(0, f2_size); break; case 1: { qpdf_offset_t offset = e.getOffset(); if ((hint_id != 0) && (i != hint_id) && (offset >= hint_offset)) { offset += hint_length; } writeBinary(1, 1); writeBinary(offset, f1_size); writeBinary(0, f2_size); } break; case 2: writeBinary(2, 1); writeBinary(e.getObjStreamNumber(), f1_size); writeBinary(e.getObjStreamIndex(), f2_size); break; default: throw std::logic_error("invalid type writing xref stream"); break; } } PointerHolder xref_data; popPipelineStack(&xref_data); openObject(xref_id); writeString("<<"); writeStringQDF("\n "); writeString(" /Type /XRef"); writeStringQDF("\n "); writeString(" /Length " + QUtil::int_to_string(xref_data->getSize())); if (compressed) { writeStringQDF("\n "); writeString(" /Filter /FlateDecode"); writeStringQDF("\n "); writeString(" /DecodeParms << /Columns " + QUtil::int_to_string(esize) + " /Predictor 12 >>"); } writeStringQDF("\n "); writeString(" /W [ 1 " + QUtil::int_to_string(f1_size) + " " + QUtil::int_to_string(f2_size) + " ]"); if (! ((first == 0) && (last == size - 1))) { writeString(" /Index [ " + QUtil::int_to_string(first) + " " + QUtil::int_to_string(last - first + 1) + " ]"); } writeTrailer(which, size, true, prev, linearization_pass); writeString("\nstream\n"); writeBuffer(xref_data); writeString("\nendstream"); closeObject(xref_id); return space_before_zero; } int QPDFWriter::calculateXrefStreamPadding(int xref_bytes) { // This routine is called right after a linearization first pass // xref stream has been written without compression. Calculate // the amount of padding that would be required in the worst case, // assuming the number of uncompressed bytes remains the same. // The worst case for zlib is that the output is larger than the // input by 6 bytes plus 5 bytes per 16K, and then we'll add 10 // extra bytes for number length increases. return 16 + (5 * ((xref_bytes + 16383) / 16384)); } void QPDFWriter::discardGeneration(std::map const& in, std::map& out) { // There are deep assumptions in the linearization code in QPDF // that there is only one object with each object number; i.e., // you can't have two objects with the same object number and // different generations. This is a pretty safe assumption // because Adobe Reader and Acrobat can't actually handle this // case. There is not much if any code in QPDF outside // linearization that assumes this, but the linearization code as // currently implemented would do weird things if we found such a // case. In order to avoid breaking ABI changes in QPDF, we will // first assert that this condition holds. Then we can create new // maps for QPDF that throw away generation numbers. out.clear(); for (std::map::const_iterator iter = in.begin(); iter != in.end(); ++iter) { if (out.count((*iter).first.getObj())) { throw std::logic_error( "QPDF cannot currently linearize files that contain" " multiple objects with the same object ID and different" " generations. If you see this error message, please file" " a bug report and attach the file if possible. As a" " workaround, first convert the file with qpdf without" " linearizing, and then linearize the result of that" " conversion."); } out[(*iter).first.getObj()] = (*iter).second; } } void QPDFWriter::writeLinearized() { // Optimize file and enqueue objects in order discardGeneration(this->m->object_to_object_stream, this->m->object_to_object_stream_no_gen); bool need_xref_stream = (! this->m->object_to_object_stream.empty()); this->m->pdf.optimize(this->m->object_to_object_stream_no_gen); std::vector part4; std::vector part6; std::vector part7; std::vector part8; std::vector part9; QPDF::Writer::getLinearizedParts( this->m->pdf, this->m->object_to_object_stream_no_gen, part4, part6, part7, part8, part9); // Object number sequence: // // second half // second half uncompressed objects // second half xref stream, if any // second half compressed objects // first half // linearization dictionary // first half xref stream, if any // part 4 uncompresesd objects // encryption dictionary, if any // hint stream // part 6 uncompressed objects // first half compressed objects // // Second half objects int second_half_uncompressed = part7.size() + part8.size() + part9.size(); int second_half_first_obj = 1; int after_second_half = 1 + second_half_uncompressed; this->m->next_objid = after_second_half; int second_half_xref = 0; if (need_xref_stream) { second_half_xref = this->m->next_objid++; } // Assign numbers to all compressed objects in the second half. std::vector* vecs2[] = {&part7, &part8, &part9}; for (int i = 0; i < 3; ++i) { for (std::vector::iterator iter = (*vecs2[i]).begin(); iter != (*vecs2[i]).end(); ++iter) { assignCompressedObjectNumbers((*iter).getObjGen()); } } int second_half_end = this->m->next_objid - 1; int second_trailer_size = this->m->next_objid; // First half objects int first_half_start = this->m->next_objid; int lindict_id = this->m->next_objid++; int first_half_xref = 0; if (need_xref_stream) { first_half_xref = this->m->next_objid++; } int part4_first_obj = this->m->next_objid; this->m->next_objid += part4.size(); int after_part4 = this->m->next_objid; if (this->m->encrypted) { this->m->encryption_dict_objid = this->m->next_objid++; } int hint_id = this->m->next_objid++; int part6_first_obj = this->m->next_objid; this->m->next_objid += part6.size(); int after_part6 = this->m->next_objid; // Assign numbers to all compressed objects in the first half std::vector* vecs1[] = {&part4, &part6}; for (int i = 0; i < 2; ++i) { for (std::vector::iterator iter = (*vecs1[i]).begin(); iter != (*vecs1[i]).end(); ++iter) { assignCompressedObjectNumbers((*iter).getObjGen()); } } int first_half_end = this->m->next_objid - 1; int first_trailer_size = this->m->next_objid; int part4_end_marker = part4.back().getObjectID(); int part6_end_marker = part6.back().getObjectID(); qpdf_offset_t space_before_zero = 0; qpdf_offset_t file_size = 0; qpdf_offset_t part6_end_offset = 0; qpdf_offset_t first_half_max_obj_offset = 0; qpdf_offset_t second_xref_offset = 0; qpdf_offset_t first_xref_end = 0; qpdf_offset_t second_xref_end = 0; this->m->next_objid = part4_first_obj; enqueuePart(part4); assert(this->m->next_objid == after_part4); this->m->next_objid = part6_first_obj; enqueuePart(part6); assert(this->m->next_objid == after_part6); this->m->next_objid = second_half_first_obj; enqueuePart(part7); enqueuePart(part8); enqueuePart(part9); assert(this->m->next_objid == after_second_half); qpdf_offset_t hint_length = 0; PointerHolder hint_buffer; // Write file in two passes. Part numbers refer to PDF spec 1.4. FILE* lin_pass1_file = 0; for (int pass = 1; pass <= 2; ++pass) { if (pass == 1) { if (! this->m->lin_pass1_filename.empty()) { lin_pass1_file = QUtil::safe_fopen( this->m->lin_pass1_filename.c_str(), "wb"); pushPipeline( new Pl_StdioFile("linearization pass1", lin_pass1_file)); activatePipelineStack(); } else { pushDiscardFilter(); } if (this->m->deterministic_id) { pushMD5Pipeline(); } } // Part 1: header writeHeader(); // Part 2: linearization parameter dictionary. Save enough // space to write real dictionary. 200 characters is enough // space if all numerical values in the parameter dictionary // that contain offsets are 20 digits long plus a few extra // characters for safety. The entire linearization parameter // dictionary must appear within the first 1024 characters of // the file. qpdf_offset_t pos = this->m->pipeline->getCount(); openObject(lindict_id); writeString("<<"); if (pass == 2) { std::vector const& pages = this->m->pdf.getAllPages(); int first_page_object = this->m->obj_renumber[pages.at(0).getObjGen()]; int npages = pages.size(); writeString(" /Linearized 1 /L "); writeString(QUtil::int_to_string(file_size + hint_length)); // Implementation note 121 states that a space is // mandatory after this open bracket. writeString(" /H [ "); writeString(QUtil::int_to_string( this->m->xref[hint_id].getOffset())); writeString(" "); writeString(QUtil::int_to_string(hint_length)); writeString(" ] /O "); writeString(QUtil::int_to_string(first_page_object)); writeString(" /E "); writeString(QUtil::int_to_string(part6_end_offset + hint_length)); writeString(" /N "); writeString(QUtil::int_to_string(npages)); writeString(" /T "); writeString(QUtil::int_to_string(space_before_zero + hint_length)); } writeString(" >>"); closeObject(lindict_id); static int const pad = 200; int spaces = (pos - this->m->pipeline->getCount() + pad); assert(spaces >= 0); writePad(spaces); writeString("\n"); // If the user supplied any additional header text, write it // here after the linearization parameter dictionary. writeString(this->m->extra_header_text); // Part 3: first page cross reference table and trailer. qpdf_offset_t first_xref_offset = this->m->pipeline->getCount(); qpdf_offset_t hint_offset = 0; if (pass == 2) { hint_offset = this->m->xref[hint_id].getOffset(); } if (need_xref_stream) { // Must pad here too. if (pass == 1) { // Set first_half_max_obj_offset to a value large // enough to force four bytes to be reserved for each // file offset. This would provide adequate space for // the xref stream as long as the last object in page // 1 starts with in the first 4 GB of the file, which // is extremely likely. In the second pass, we will // know the actual value for this, but it's okay if // it's smaller. first_half_max_obj_offset = 1 << 25; } pos = this->m->pipeline->getCount(); writeXRefStream(first_half_xref, first_half_end, first_half_max_obj_offset, t_lin_first, first_half_start, first_half_end, first_trailer_size, hint_length + second_xref_offset, hint_id, hint_offset, hint_length, (pass == 1), pass); qpdf_offset_t endpos = this->m->pipeline->getCount(); if (pass == 1) { // Pad so we have enough room for the real xref // stream. writePad(calculateXrefStreamPadding(endpos - pos)); first_xref_end = this->m->pipeline->getCount(); } else { // Pad so that the next object starts at the same // place as in pass 1. writePad(first_xref_end - endpos); if (this->m->pipeline->getCount() != first_xref_end) { throw std::logic_error( "insufficient padding for first pass xref stream"); } } writeString("\n"); } else { writeXRefTable(t_lin_first, first_half_start, first_half_end, first_trailer_size, hint_length + second_xref_offset, (pass == 1), hint_id, hint_offset, hint_length, pass); writeString("startxref\n0\n%%EOF\n"); } // Parts 4 through 9 for (std::list::iterator iter = this->m->object_queue.begin(); iter != this->m->object_queue.end(); ++iter) { QPDFObjectHandle cur_object = (*iter); if (cur_object.getObjectID() == part6_end_marker) { first_half_max_obj_offset = this->m->pipeline->getCount(); } writeObject(cur_object); if (cur_object.getObjectID() == part4_end_marker) { if (this->m->encrypted) { writeEncryptionDictionary(); } if (pass == 1) { this->m->xref[hint_id] = QPDFXRefEntry(1, this->m->pipeline->getCount(), 0); } else { // Part 5: hint stream writeBuffer(hint_buffer); } } if (cur_object.getObjectID() == part6_end_marker) { part6_end_offset = this->m->pipeline->getCount(); } } // Part 10: overflow hint stream -- not used // Part 11: main cross reference table and trailer second_xref_offset = this->m->pipeline->getCount(); if (need_xref_stream) { pos = this->m->pipeline->getCount(); space_before_zero = writeXRefStream(second_half_xref, second_half_end, second_xref_offset, t_lin_second, 0, second_half_end, second_trailer_size, 0, 0, 0, 0, (pass == 1), pass); qpdf_offset_t endpos = this->m->pipeline->getCount(); if (pass == 1) { // Pad so we have enough room for the real xref // stream. See comments for previous xref stream on // how we calculate the padding. writePad(calculateXrefStreamPadding(endpos - pos)); writeString("\n"); second_xref_end = this->m->pipeline->getCount(); } else { // Make the file size the same. qpdf_offset_t pos = this->m->pipeline->getCount(); writePad(second_xref_end + hint_length - 1 - pos); writeString("\n"); // If this assertion fails, maybe we didn't have // enough padding above. if (this->m->pipeline->getCount() != second_xref_end + hint_length) { throw std::logic_error( "count mismatch after xref stream;" " possible insufficient padding?"); } } } else { space_before_zero = writeXRefTable(t_lin_second, 0, second_half_end, second_trailer_size, 0, false, 0, 0, 0, pass); } writeString("startxref\n"); writeString(QUtil::int_to_string(first_xref_offset)); writeString("\n%%EOF\n"); discardGeneration(this->m->obj_renumber, this->m->obj_renumber_no_gen); if (pass == 1) { if (this->m->deterministic_id) { QTC::TC("qpdf", "QPDFWriter linearized deterministic ID", need_xref_stream ? 0 : 1); computeDeterministicIDData(); popPipelineStack(); assert(this->m->md5_pipeline == 0); } // Close first pass pipeline file_size = this->m->pipeline->getCount(); popPipelineStack(); // Save hint offset since it will be set to zero by // calling openObject. qpdf_offset_t hint_offset = this->m->xref[hint_id].getOffset(); // Write hint stream to a buffer pushPipeline(new Pl_Buffer("hint buffer")); activatePipelineStack(); writeHintStream(hint_id); popPipelineStack(&hint_buffer); hint_length = hint_buffer->getSize(); // Restore hint offset this->m->xref[hint_id] = QPDFXRefEntry(1, hint_offset, 0); if (lin_pass1_file) { // Write some debugging information fprintf(lin_pass1_file, "%% hint_offset=%s\n", QUtil::int_to_string(hint_offset).c_str()); fprintf(lin_pass1_file, "%% hint_length=%s\n", QUtil::int_to_string(hint_length).c_str()); fprintf(lin_pass1_file, "%% second_xref_offset=%s\n", QUtil::int_to_string(second_xref_offset).c_str()); fprintf(lin_pass1_file, "%% second_xref_end=%s\n", QUtil::int_to_string(second_xref_end).c_str()); fclose(lin_pass1_file); lin_pass1_file = 0; } } } } void QPDFWriter::enqueueObjectsStandard() { if (this->m->preserve_unreferenced_objects) { QTC::TC("qpdf", "QPDFWriter preserve unreferenced standard"); std::vector all = this->m->pdf.getAllObjects(); for (std::vector::iterator iter = all.begin(); iter != all.end(); ++iter) { enqueueObject(*iter); } } // Put root first on queue. QPDFObjectHandle trailer = getTrimmedTrailer(); enqueueObject(trailer.getKey("/Root")); // Next place any other objects referenced from the trailer // dictionary into the queue, handling direct objects recursively. // Root is already there, so enqueuing it a second time is a // no-op. std::set keys = trailer.getKeys(); for (std::set::iterator iter = keys.begin(); iter != keys.end(); ++iter) { enqueueObject(trailer.getKey(*iter)); } } void QPDFWriter::enqueueObjectsPCLm() { // Image transform stream content for page strip images. // Each of this new stream has to come after every page image // strip written in the pclm file. std::string image_transform_content = "q /image Do Q\n"; // enqueue all pages first std::vector all = this->m->pdf.getAllPages(); for (std::vector::iterator iter = all.begin(); iter != all.end(); ++iter) { // enqueue page enqueueObject(*iter); // enqueue page contents stream enqueueObject((*iter).getKey("/Contents")); // enqueue all the strips for each page QPDFObjectHandle strips = (*iter).getKey("/Resources").getKey("/XObject"); std::set keys = strips.getKeys(); for (std::set::iterator image = keys.begin(); image != keys.end(); ++image) { enqueueObject(strips.getKey(*image)); enqueueObject(QPDFObjectHandle::newStream( &this->m->pdf, image_transform_content)); } } // Put root in queue. QPDFObjectHandle trailer = getTrimmedTrailer(); enqueueObject(trailer.getKey("/Root")); } void QPDFWriter::writeStandard() { if (this->m->deterministic_id) { pushMD5Pipeline(); } // Start writing writeHeader(); writeString(this->m->extra_header_text); if (this->m->pclm) { enqueueObjectsPCLm(); } else { enqueueObjectsStandard(); } // Now start walking queue, outputting each object. There shouldn't // really be any here, but this will catch anything that somehow // got missed. while (this->m->object_queue.size()) { QPDFObjectHandle cur_object = this->m->object_queue.front(); this->m->object_queue.pop_front(); writeObject(cur_object); } // Write out the encryption dictionary, if any if (this->m->encrypted) { writeEncryptionDictionary(); } // Now write out xref. next_objid is now the number of objects. qpdf_offset_t xref_offset = this->m->pipeline->getCount(); if (this->m->object_stream_to_objects.empty()) { // Write regular cross-reference table writeXRefTable(t_normal, 0, this->m->next_objid - 1, this->m->next_objid); } else { // Write cross-reference stream. int xref_id = this->m->next_objid++; writeXRefStream(xref_id, xref_id, xref_offset, t_normal, 0, this->m->next_objid - 1, this->m->next_objid); } writeString("startxref\n"); writeString(QUtil::int_to_string(xref_offset)); writeString("\n%%EOF\n"); if (this->m->deterministic_id) { QTC::TC("qpdf", "QPDFWriter standard deterministic ID", this->m->object_stream_to_objects.empty() ? 0 : 1); popPipelineStack(); assert(this->m->md5_pipeline == 0); } } qpdf-8.0.2/libqpdf/Pl_Flate.cc0000644000064100006410000001421313247541377014165 0ustar ejbejb#include #include #include #include Pl_Flate::Pl_Flate(char const* identifier, Pipeline* next, action_e action, int out_bufsize) : Pipeline(identifier, next), out_bufsize(out_bufsize), action(action), initialized(false) { this->outbuf = new unsigned char[out_bufsize]; // Indirect through zdata to reach the z_stream so we don't have // to include zlib.h in Pl_Flate.hh. This means people using // shared library versions of qpdf don't have to have zlib // development files available, which particularly helps in a // Windows environment. this->zdata = new z_stream; z_stream& zstream = *(static_cast(this->zdata)); zstream.zalloc = 0; zstream.zfree = 0; zstream.opaque = 0; zstream.next_in = 0; zstream.avail_in = 0; zstream.next_out = this->outbuf; zstream.avail_out = out_bufsize; } Pl_Flate::~Pl_Flate() { if (this->outbuf) { delete [] this->outbuf; this->outbuf = 0; } if (this->initialized) { z_stream& zstream = *(static_cast(this->zdata)); if (action == a_deflate) { deflateEnd(&zstream); } else { inflateEnd(&zstream); } } delete static_cast(this->zdata); this->zdata = 0; } void Pl_Flate::write(unsigned char* data, size_t len) { if (this->outbuf == 0) { throw std::logic_error( this->identifier + ": Pl_Flate: write() called after finish() called"); } // Write in chunks in case len is too big to fit in an int. // Assume int is at least 32 bits. static size_t const max_bytes = 1 << 30; size_t bytes_left = len; unsigned char* buf = data; while (bytes_left > 0) { size_t bytes = (bytes_left >= max_bytes ? max_bytes : bytes_left); handleData(buf, bytes, (action == a_inflate ? Z_SYNC_FLUSH : Z_NO_FLUSH)); bytes_left -= bytes; buf += bytes; } } void Pl_Flate::handleData(unsigned char* data, int len, int flush) { z_stream& zstream = *(static_cast(this->zdata)); zstream.next_in = data; zstream.avail_in = len; if (! this->initialized) { int err = Z_OK; // deflateInit and inflateInit are macros that use old-style // casts. #if ((defined(__GNUC__) && ((__GNUC__ * 100) + __GNUC_MINOR__) >= 406) || \ defined(__clang__)) # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Wold-style-cast" #endif if (this->action == a_deflate) { err = deflateInit(&zstream, Z_DEFAULT_COMPRESSION); } else { err = inflateInit(&zstream); } #if ((defined(__GNUC__) && ((__GNUC__ * 100) + __GNUC_MINOR__) >= 406) || \ defined(__clang__)) # pragma GCC diagnostic pop #endif checkError("Init", err); this->initialized = true; } int err = Z_OK; bool done = false; while (! done) { if (action == a_deflate) { err = deflate(&zstream, flush); } else { err = inflate(&zstream, flush); } if ((action == a_inflate) && (err != Z_OK) && zstream.msg && (strcmp(zstream.msg, "incorrect data check") == 0)) { // Other PDF readers ignore this specific error. Combining // this with Z_SYNC_FLUSH enables qpdf to handle some // broken zlib streams without losing data. err = Z_STREAM_END; } switch (err) { case Z_BUF_ERROR: // Probably shouldn't be able to happen, but possible as a // boundary condition: if the last call to inflate exactly // filled the output buffer, it's possible that the next // call to inflate could have nothing to do. done = true; break; case Z_STREAM_END: done = true; // fall through case Z_OK: { if ((zstream.avail_in == 0) && (zstream.avail_out > 0)) { // There is nothing left to read, and there was // sufficient buffer space to write everything we // needed, so we're done for now. done = true; } uLong ready = (this->out_bufsize - zstream.avail_out); if (ready > 0) { this->getNext()->write(this->outbuf, ready); zstream.next_out = this->outbuf; zstream.avail_out = this->out_bufsize; } } break; default: this->checkError("data", err); break; } } } void Pl_Flate::finish() { try { if (this->outbuf) { if (this->initialized) { z_stream& zstream = *(static_cast(this->zdata)); unsigned char buf[1]; buf[0] = '\0'; handleData(buf, 0, Z_FINISH); int err = Z_OK; if (action == a_deflate) { err = deflateEnd(&zstream); } else { err = inflateEnd(&zstream); } this->initialized = false; checkError("End", err); } delete [] this->outbuf; this->outbuf = 0; } } catch (std::exception& e) { this->getNext()->finish(); throw e; } this->getNext()->finish(); } void Pl_Flate::checkError(char const* prefix, int error_code) { z_stream& zstream = *(static_cast(this->zdata)); if (error_code != Z_OK) { char const* action_str = (action == a_deflate ? "deflate" : "inflate"); std::string msg = this->identifier + ": " + action_str + ": " + prefix + ": "; if (zstream.msg) { msg += zstream.msg; } else { switch (error_code) { case Z_ERRNO: msg += "zlib system error"; break; case Z_STREAM_ERROR: msg += "zlib stream error"; break; case Z_DATA_ERROR: msg += "zlib data error"; break; case Z_MEM_ERROR: msg += "zlib memory error"; break; case Z_BUF_ERROR: msg += "zlib buffer error"; break; case Z_VERSION_ERROR: msg += "zlib version error"; break; default: msg += std::string("zlib unknown error (") + QUtil::int_to_string(error_code) + ")"; break; } } throw std::runtime_error(msg); } } qpdf-8.0.2/libqpdf/QPDF_Real.cc0000644000064100006410000000104313247541377014171 0ustar ejbejb#include #include QPDF_Real::QPDF_Real(std::string const& val) : val(val) { } QPDF_Real::QPDF_Real(double value, int decimal_places) : val(QUtil::double_to_string(value, decimal_places)) { } QPDF_Real::~QPDF_Real() { } std::string QPDF_Real::unparse() { return this->val; } QPDFObject::object_type_e QPDF_Real::getTypeCode() const { return QPDFObject::ot_real; } char const* QPDF_Real::getTypeName() const { return "real"; } std::string QPDF_Real::getVal() { return this->val; } qpdf-8.0.2/libqpdf/BitWriter.cc0000644000064100006410000000143013247541377014407 0ustar ejbejb#include // See comments in bits.cc #define BITS_WRITE 1 #include "bits.icc" BitWriter::BitWriter(Pipeline* pl) : pl(pl), ch(0), bit_offset(7) { } void BitWriter::writeBits(unsigned long long val, unsigned int bits) { write_bits(this->ch, this->bit_offset, val, bits, this->pl); } void BitWriter::writeBitsSigned(long long val, unsigned int bits) { unsigned long long uval = 0; if (val < 0) { uval = static_cast((1 << bits) + val); } else { uval = static_cast(val); } writeBits(uval, bits); } void BitWriter::flush() { if (bit_offset < 7) { int bits_to_write = bit_offset + 1; write_bits(this->ch, this->bit_offset, 0, bits_to_write, this->pl); } } qpdf-8.0.2/libqpdf/FileInputSource.cc0000644000064100006410000000654613247541377015571 0ustar ejbejb#include #include #include #include #include FileInputSource::FileInputSource() : close_file(false), file(0) { } void FileInputSource::setFilename(char const* filename) { destroy(); this->filename = filename; this->close_file = true; this->file = QUtil::safe_fopen(this->filename.c_str(), "rb"); } void FileInputSource::setFile( char const* description, FILE* filep, bool close_file) { destroy(); this->filename = description; this->close_file = close_file; this->file = filep; this->seek(0, SEEK_SET); } FileInputSource::~FileInputSource() { destroy(); } void FileInputSource::destroy() { if (this->file && this->close_file) { fclose(this->file); this->file = 0; } } qpdf_offset_t FileInputSource::findAndSkipNextEOL() { qpdf_offset_t result = 0; bool done = false; char buf[10240]; while (! done) { qpdf_offset_t cur_offset = QUtil::tell(this->file); size_t len = this->read(buf, sizeof(buf)); if (len == 0) { done = true; result = this->tell(); } else { char* p1 = static_cast(memchr(buf, '\r', len)); char* p2 = static_cast(memchr(buf, '\n', len)); char* p = (p1 && p2) ? std::min(p1, p2) : p1 ? p1 : p2; if (p) { result = cur_offset + (p - buf); // We found \r or \n. Keep reading until we get past // \r and \n characters. this->seek(result + 1, SEEK_SET); char ch; while (! done) { if (this->read(&ch, 1) == 0) { done = true; } else if (! ((ch == '\r') || (ch == '\n'))) { this->unreadCh(ch); done = true; } } } } } return result; } std::string const& FileInputSource::getName() const { return this->filename; } qpdf_offset_t FileInputSource::tell() { return QUtil::tell(this->file); } void FileInputSource::seek(qpdf_offset_t offset, int whence) { QUtil::os_wrapper(std::string("seek to ") + this->filename + ", offset " + QUtil::int_to_string(offset) + " (" + QUtil::int_to_string(whence) + ")", QUtil::seek(this->file, offset, whence)); } void FileInputSource::rewind() { ::rewind(this->file); } size_t FileInputSource::read(char* buffer, size_t length) { this->last_offset = this->tell(); size_t len = fread(buffer, 1, length, this->file); if (len == 0) { if (ferror(this->file)) { throw QPDFExc(qpdf_e_system, this->filename, "", this->last_offset, std::string("read ") + QUtil::int_to_string(length) + " bytes"); } else if (length > 0) { this->seek(0, SEEK_END); this->last_offset = this->tell(); } } return len; } void FileInputSource::unreadCh(char ch) { QUtil::os_wrapper(this->filename + ": unread character", ungetc(static_cast(ch), this->file)); } qpdf-8.0.2/libqpdf/QPDF_String.cc0000644000064100006410000001472613247541377014570 0ustar ejbejb#include #include #include // DO NOT USE ctype -- it is locale dependent for some things, and // it's not worth the risk of including it in case it may accidentally // be used. #include // First element is 128 static unsigned short pdf_doc_to_unicode[] = { 0x2022, // 0x80 BULLET 0x2020, // 0x81 DAGGER 0x2021, // 0x82 DOUBLE DAGGER 0x2026, // 0x83 HORIZONTAL ELLIPSIS 0x2014, // 0x84 EM DASH 0x2013, // 0x85 EN DASH 0x0192, // 0x86 SMALL LETTER F WITH HOOK 0x2044, // 0x87 FRACTION SLASH (solidus) 0x2039, // 0x88 SINGLE LEFT-POINTING ANGLE QUOTATION MARK 0x203a, // 0x89 SINGLE RIGHT-POINTING ANGLE QUOTATION MARK 0x2212, // 0x8a MINUS SIGN 0x2030, // 0x8b PER MILLE SIGN 0x201e, // 0x8c DOUBLE LOW-9 QUOTATION MARK (quotedblbase) 0x201c, // 0x8d LEFT DOUBLE QUOTATION MARK (double quote left) 0x201d, // 0x8e RIGHT DOUBLE QUOTATION MARK (quotedblright) 0x2018, // 0x8f LEFT SINGLE QUOTATION MARK (quoteleft) 0x2019, // 0x90 RIGHT SINGLE QUOTATION MARK (quoteright) 0x201a, // 0x91 SINGLE LOW-9 QUOTATION MARK (quotesinglbase) 0x2122, // 0x92 TRADE MARK SIGN 0xfb01, // 0x93 LATIN SMALL LIGATURE FI 0xfb02, // 0x94 LATIN SMALL LIGATURE FL 0x0141, // 0x95 LATIN CAPITAL LETTER L WITH STROKE 0x0152, // 0x96 LATIN CAPITAL LIGATURE OE 0x0160, // 0x97 LATIN CAPITAL LETTER S WITH CARON 0x0178, // 0x98 LATIN CAPITAL LETTER Y WITH DIAERESIS 0x017d, // 0x99 LATIN CAPITAL LETTER Z WITH CARON 0x0131, // 0x9a LATIN SMALL LETTER DOTLESS I 0x0142, // 0x9b LATIN SMALL LETTER L WITH STROKE 0x0153, // 0x9c LATIN SMALL LIGATURE OE 0x0161, // 0x9d LATIN SMALL LETTER S WITH CARON 0x017e, // 0x9e LATIN SMALL LETTER Z WITH CARON 0xfffd, // 0x9f UNDEFINED 0x20ac, // 0xa0 EURO SIGN }; // See above about ctype. static bool is_ascii_printable(unsigned char ch) { return ((ch >= 32) && (ch <= 126)); } static bool is_iso_latin1_printable(unsigned char ch) { return (((ch >= 32) && (ch <= 126)) || (ch >= 160)); } QPDF_String::QPDF_String(std::string const& val) : val(val) { } QPDF_String::~QPDF_String() { } std::string QPDF_String::unparse() { return unparse(false); } QPDFObject::object_type_e QPDF_String::getTypeCode() const { return QPDFObject::ot_string; } char const* QPDF_String::getTypeName() const { return "string"; } std::string QPDF_String::unparse(bool force_binary) { bool use_hexstring = force_binary; if (! use_hexstring) { unsigned int nonprintable = 0; int consecutive_printable = 0; for (unsigned int i = 0; i < this->val.length(); ++i) { char ch = this->val.at(i); // Note: do not use locale to determine printability. The // PDF specification accepts arbitrary binary data. Some // locales imply multibyte characters. We'll consider // something printable if it is printable in 7-bit ASCII. // We'll code this manually rather than being rude and // setting locale. if ((ch == 0) || (! (is_ascii_printable(ch) || strchr("\n\r\t\b\f", ch)))) { ++nonprintable; consecutive_printable = 0; } else { if (++consecutive_printable > 5) { // If there are more than 5 consecutive printable // characters, I want to see them as such. nonprintable = 0; break; } } } // Use hex notation if more than 20% of the characters are not // printable in plain ASCII. if (5 * nonprintable > val.length()) { use_hexstring = true; } } std::string result; if (use_hexstring) { result += "<" + QUtil::hex_encode(this->val) + ">"; } else { result += "("; for (unsigned int i = 0; i < this->val.length(); ++i) { char ch = this->val.at(i); switch (ch) { case '\n': result += "\\n"; break; case '\r': result += "\\r"; break; case '\t': result += "\\t"; break; case '\b': result += "\\b"; break; case '\f': result += "\\f"; break; case '(': result += "\\("; break; case ')': result += "\\)"; break; case '\\': result += "\\\\"; break; default: if (is_iso_latin1_printable(ch)) { result += this->val.at(i); } else { result += "\\" + QUtil::int_to_string_base( static_cast(static_cast(ch)), 8, 3); } break; } } result += ")"; } return result; } std::string QPDF_String::getVal() const { return this->val; } std::string QPDF_String::getUTF8Val() const { std::string result; size_t len = this->val.length(); if ((len >= 2) && (len % 2 == 0) && (this->val.at(0) == '\xfe') && (this->val.at(1) == '\xff')) { // This is a Unicode string using big-endian UTF-16. This // code uses unsigned long and unsigned short to hold // codepoint values. It requires unsigned long to be at least // 32 bits and unsigned short to be at least 16 bits, but it // will work fine if they are larger. unsigned long codepoint = 0L; for (unsigned int i = 2; i < len; i += 2) { // Convert from UTF16-BE. If we get a malformed // codepoint, this code will generate incorrect output // without giving a warning. Specifically, a high // codepoint not followed by a low codepoint will be // discarded, and a low codepoint not preceded by a high // codepoint will just get its low 10 bits output. unsigned short bits = (static_cast(this->val.at(i)) << 8) + static_cast(this->val.at(i+1)); if ((bits & 0xFC00) == 0xD800) { codepoint = 0x10000 + ((bits & 0x3FF) << 10); continue; } else if ((bits & 0xFC00) == 0xDC00) { if (codepoint != 0) { QTC::TC("qpdf", "QPDF_String non-trivial UTF-16"); } codepoint += bits & 0x3FF; } else { codepoint = bits; } result += QUtil::toUTF8(codepoint); codepoint = 0; } } else { for (unsigned int i = 0; i < len; ++i) { unsigned char ch = static_cast(this->val.at(i)); unsigned short val = ch; if ((ch >= 128) && (ch <= 160)) { val = pdf_doc_to_unicode[ch - 128]; } result += QUtil::toUTF8(val); } } return result; } qpdf-8.0.2/libqpdf/QPDF_pages.cc0000644000064100006410000002346613247541377014422 0ustar ejbejb#include #include #include #include #include // In support of page manipulation APIs, these methods internally // maintain state about pages in a pair of data structures: all_pages, // which is a vector of page objects, and pageobj_to_pages_pos, which // maps a page object to its position in the all_pages array. // Unfortunately, the getAllPages() method returns a const reference // to all_pages and has been in the public API long before the // introduction of mutation APIs, so we're pretty much stuck with it. // Anyway, there are lots of calls to it in the library, so the // efficiency of having it cached is probably worth keeping it. // The goal of this code is to ensure that the all_pages vector, which // users may have a reference to, and the pageobj_to_pages_pos map, // which users will not have access to, remain consistent outside of // any call to the library. As long as users only touch the /Pages // structure through page-specific API calls, they never have to worry // about anything, and this will also stay consistent. If a user // touches anything about the /Pages structure outside of these calls // (such as by directly looking up and manipulating the underlying // objects), they can call updatePagesCache() to bring things back in // sync. // If the user doesn't ever use the page manipulation APIs, then qpdf // leaves the /Pages structure alone. If the user does use the APIs, // then we push all inheritable objects down and flatten the /Pages // tree. This makes it easier for us to keep /Pages, all_pages, and // pageobj_to_pages_pos internally consistent at all times. // Responsibility for keeping all_pages, pageobj_to_pages_pos, and the // Pages structure consistent should remain in as few places as // possible. As of initial writing, only flattenPagesTree, // insertPage, and removePage, along with methods they call, are // concerned with it. Everything else goes through one of those // methods. std::vector const& QPDF::getAllPages() { // Note that pushInheritedAttributesToPage may also be used to // initialize this->m->all_pages. if (this->m->all_pages.empty()) { getAllPagesInternal(getRoot().getKey("/Pages"), this->m->all_pages); } return this->m->all_pages; } void QPDF::getAllPagesInternal(QPDFObjectHandle cur_pages, std::vector& result) { std::set visited; getAllPagesInternal2(cur_pages, result, visited); } void QPDF::getAllPagesInternal2(QPDFObjectHandle cur_pages, std::vector& result, std::set& visited) { QPDFObjGen this_og = cur_pages.getObjGen(); if (visited.count(this_og) > 0) { throw QPDFExc( qpdf_e_pages, this->m->file->getName(), this->m->last_object_description, 0, "Loop detected in /Pages structure (getAllPages)"); } visited.insert(this_og); std::string type; QPDFObjectHandle type_key = cur_pages.getKey("/Type"); if (type_key.isName()) { type = type_key.getName(); } else if (cur_pages.hasKey("/Kids")) { type = "/Pages"; } else { type = "/Page"; } if (type == "/Pages") { QPDFObjectHandle kids = cur_pages.getKey("/Kids"); int n = kids.getArrayNItems(); for (int i = 0; i < n; ++i) { getAllPagesInternal2(kids.getArrayItem(i), result, visited); } } else if (type == "/Page") { result.push_back(cur_pages); } else { throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), this->m->last_object_description, this->m->file->getLastOffset(), "invalid Type " + type + " in page tree"); } visited.erase(this_og); } void QPDF::updateAllPagesCache() { // Force regeneration of the pages cache. We force immediate // recalculation of all_pages since users may have references to // it that they got from calls to getAllPages(). We can defer // recalculation of pageobj_to_pages_pos until needed. QTC::TC("qpdf", "QPDF updateAllPagesCache"); this->m->all_pages.clear(); this->m->pageobj_to_pages_pos.clear(); this->m->pushed_inherited_attributes_to_pages = false; getAllPages(); } void QPDF::flattenPagesTree() { // If not already done, flatten the /Pages structure and // initialize pageobj_to_pages_pos. if (! this->m->pageobj_to_pages_pos.empty()) { return; } // Push inherited objects down to the /Page level. As a side // effect this->m->all_pages will also be generated. pushInheritedAttributesToPage(true, true); QPDFObjectHandle pages = getRoot().getKey("/Pages"); int const len = this->m->all_pages.size(); for (int pos = 0; pos < len; ++pos) { // populate pageobj_to_pages_pos and fix parent pointer insertPageobjToPage(this->m->all_pages.at(pos), pos, true); this->m->all_pages.at(pos).replaceKey("/Parent", pages); } pages.replaceKey("/Kids", QPDFObjectHandle::newArray(this->m->all_pages)); // /Count has not changed if (pages.getKey("/Count").getIntValue() != len) { throw std::logic_error("/Count is wrong after flattening pages tree"); } } void QPDF::insertPageobjToPage(QPDFObjectHandle const& obj, int pos, bool check_duplicate) { QPDFObjGen og(obj.getObjGen()); if (check_duplicate) { if (! this->m->pageobj_to_pages_pos.insert( std::make_pair(og, pos)).second) { QTC::TC("qpdf", "QPDF duplicate page reference"); setLastObjectDescription("page " + QUtil::int_to_string(pos) + " (numbered from zero)", og.getObj(), og.getGen()); throw QPDFExc(qpdf_e_pages, this->m->file->getName(), this->m->last_object_description, 0, "duplicate page reference found;" " this would cause loss of data"); } } else { this->m->pageobj_to_pages_pos[og] = pos; } } void QPDF::insertPage(QPDFObjectHandle newpage, int pos) { // pos is numbered from 0, so pos = 0 inserts at the beginning and // pos = npages adds to the end. flattenPagesTree(); if (! newpage.isIndirect()) { QTC::TC("qpdf", "QPDF insert non-indirect page"); newpage = makeIndirectObject(newpage); } else if (newpage.getOwningQPDF() != this) { QTC::TC("qpdf", "QPDF insert foreign page"); newpage.getOwningQPDF()->pushInheritedAttributesToPage(); newpage = copyForeignObject(newpage, true); } else { QTC::TC("qpdf", "QPDF insert indirect page"); } QTC::TC("qpdf", "QPDF insert page", (pos == 0) ? 0 : // insert at beginning (pos == static_cast(this->m->all_pages.size())) ? 1 : // at end 2); // insert in middle QPDFObjectHandle pages = getRoot().getKey("/Pages"); QPDFObjectHandle kids = pages.getKey("/Kids"); assert ((pos >= 0) && (static_cast(pos) <= this->m->all_pages.size())); newpage.replaceKey("/Parent", pages); kids.insertItem(pos, newpage); int npages = kids.getArrayNItems(); pages.replaceKey("/Count", QPDFObjectHandle::newInteger(npages)); this->m->all_pages.insert(this->m->all_pages.begin() + pos, newpage); assert(this->m->all_pages.size() == static_cast(npages)); for (int i = pos + 1; i < npages; ++i) { insertPageobjToPage(this->m->all_pages.at(i), i, false); } insertPageobjToPage(newpage, pos, true); assert(this->m->pageobj_to_pages_pos.size() == static_cast(npages)); } void QPDF::removePage(QPDFObjectHandle page) { int pos = findPage(page); // also ensures flat /Pages QTC::TC("qpdf", "QPDF remove page", (pos == 0) ? 0 : // remove at beginning (pos == static_cast( this->m->all_pages.size() - 1)) ? 1 : // end 2); // remove in middle QPDFObjectHandle pages = getRoot().getKey("/Pages"); QPDFObjectHandle kids = pages.getKey("/Kids"); kids.eraseItem(pos); int npages = kids.getArrayNItems(); pages.replaceKey("/Count", QPDFObjectHandle::newInteger(npages)); this->m->all_pages.erase(this->m->all_pages.begin() + pos); assert(this->m->all_pages.size() == static_cast(npages)); this->m->pageobj_to_pages_pos.erase(page.getObjGen()); assert(this->m->pageobj_to_pages_pos.size() == static_cast(npages)); for (int i = pos; i < npages; ++i) { insertPageobjToPage(this->m->all_pages.at(i), i, false); } } void QPDF::addPageAt(QPDFObjectHandle newpage, bool before, QPDFObjectHandle refpage) { int refpos = findPage(refpage); if (! before) { ++refpos; } insertPage(newpage, refpos); } void QPDF::addPage(QPDFObjectHandle newpage, bool first) { if (first) { insertPage(newpage, 0); } else { insertPage(newpage, getRoot().getKey("/Pages").getKey("/Count").getIntValue()); } } int QPDF::findPage(QPDFObjectHandle& page) { return findPage(page.getObjGen()); } int QPDF::findPage(QPDFObjGen const& og) { flattenPagesTree(); std::map::iterator it = this->m->pageobj_to_pages_pos.find(og); if (it == this->m->pageobj_to_pages_pos.end()) { setLastObjectDescription("page object", og.getObj(), og.getGen()); throw QPDFExc(qpdf_e_pages, this->m->file->getName(), this->m->last_object_description, 0, "page object not referenced in /Pages tree"); } return (*it).second; } qpdf-8.0.2/libqpdf/qpdf/0000755000064100006410000000000013247543020013104 5ustar ejbejbqpdf-8.0.2/libqpdf/qpdf/qpdf-config.h.in0000644000064100006410000000603613247542730016073 0ustar ejbejb/* libqpdf/qpdf/qpdf-config.h.in. Generated from configure.ac by autoheader. */ /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ #undef HAVE_FSEEKO /* Define to 1 if you have the `fseeko64' function. */ #undef HAVE_FSEEKO64 /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `random' function. */ #undef HAVE_RANDOM /* Define to 1 (and set RANDOM_DEVICE) if a random device is available */ #undef HAVE_RANDOM_DEVICE /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to the sub-directory where libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to the filename of the random device (and set HAVE_RANDOM_DEVICE) */ #undef RANDOM_DEVICE /* Whether to suppres use of OS-provided secure random numbers */ #undef SKIP_OS_SECURE_RANDOM /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Whether to use insecure random numbers */ #undef USE_INSECURE_RANDOM /* Enable large inode numbers on Mac OS X 10.5. */ #ifndef _DARWIN_USE_64_BIT_INODE # define _DARWIN_USE_64_BIT_INODE 1 #endif /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS /* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ #undef _LARGEFILE_SOURCE /* Define for large files, on AIX-style hosts. */ #undef _LARGE_FILES /* Define for Solaris 2.5.1 so the uint32_t typedef from , , or is not used. If the typedef were allowed, the #define below would cause a syntax error. */ #undef _UINT32_T /* Define to the type of an unsigned integer type of width exactly 16 bits if such a type exists and the standard includes do not define it. */ #undef uint16_t /* Define to the type of an unsigned integer type of width exactly 32 bits if such a type exists and the standard includes do not define it. */ #undef uint32_t qpdf-8.0.2/libqpdf/qpdf/QPDF_Stream.hh0000644000064100006410000000554413247541377015517 0ustar ejbejb#ifndef __QPDF_STREAM_HH__ #define __QPDF_STREAM_HH__ #include #include #include class Pipeline; class QPDF; class QPDF_Stream: public QPDFObject { public: QPDF_Stream(QPDF*, int objid, int generation, QPDFObjectHandle stream_dict, qpdf_offset_t offset, size_t length); virtual ~QPDF_Stream(); virtual std::string unparse(); virtual QPDFObject::object_type_e getTypeCode() const; virtual char const* getTypeName() const; virtual void setDescription(QPDF*, std::string const&); QPDFObjectHandle getDict() const; bool isDataModified() const; // See comments in QPDFObjectHandle.hh for these methods. bool pipeStreamData(Pipeline*, unsigned long encode_flags, qpdf_stream_decode_level_e decode_level, bool suppress_warnings, bool will_retry); PointerHolder getStreamData(qpdf_stream_decode_level_e); PointerHolder getRawStreamData(); void replaceStreamData(PointerHolder data, QPDFObjectHandle const& filter, QPDFObjectHandle const& decode_parms); void replaceStreamData( PointerHolder provider, QPDFObjectHandle const& filter, QPDFObjectHandle const& decode_parms); void addTokenFilter( PointerHolder token_filter); void replaceDict(QPDFObjectHandle new_dict); // Replace object ID and generation. This may only be called if // object ID and generation are 0. It is used by QPDFObjectHandle // when adding streams to files. void setObjGen(int objid, int generation); protected: virtual void releaseResolved(); private: static std::map filter_abbreviations; void replaceFilterData(QPDFObjectHandle const& filter, QPDFObjectHandle const& decode_parms, size_t length); bool understandDecodeParams( std::string const& filter, QPDFObjectHandle decode_params, int& predictor, int& columns, int& colors, int& bits_per_component, bool& early_code_change); bool filterable(std::vector& filters, bool& specialized_compression, bool& lossy_compression, int& predictor, int& columns, int& colors, int& bits_per_component, bool& early_code_change); void warn(QPDFExc const& e); void setDictDescription(); void setStreamDescription(); QPDF* qpdf; int objid; int generation; QPDFObjectHandle stream_dict; qpdf_offset_t offset; size_t length; PointerHolder stream_data; PointerHolder stream_provider; std::vector< PointerHolder > token_filters; }; #endif // __QPDF_STREAM_HH__ qpdf-8.0.2/libqpdf/qpdf/ContentNormalizer.hh0000644000064100006410000000072313247541377017121 0ustar ejbejb#ifndef __CONTENTNORMALIZER_HH__ #define __CONTENTNORMALIZER_HH__ #include class ContentNormalizer: public QPDFObjectHandle::TokenFilter { public: ContentNormalizer(); virtual ~ContentNormalizer(); virtual void handleToken(QPDFTokenizer::Token const&); bool anyBadTokens() const; bool lastTokenWasBad() const; private: bool any_bad_tokens; bool last_token_was_bad; }; #endif // __CONTENTNORMALIZER_HH__ qpdf-8.0.2/libqpdf/qpdf/Pl_ASCII85Decoder.hh0000644000064100006410000000076613247541377016401 0ustar ejbejb#ifndef __PL_ASCII85DECODER_HH__ #define __PL_ASCII85DECODER_HH__ #include class Pl_ASCII85Decoder: public Pipeline { public: QPDF_DLL Pl_ASCII85Decoder(char const* identifier, Pipeline* next); QPDF_DLL virtual ~Pl_ASCII85Decoder(); QPDF_DLL virtual void write(unsigned char* buf, size_t len); QPDF_DLL virtual void finish(); private: void flush(); char inbuf[5]; size_t pos; size_t eod; }; #endif // __PL_ASCII85DECODER_HH__ qpdf-8.0.2/libqpdf/qpdf/Pl_SHA2.hh0000644000064100006410000000260713247541377014577 0ustar ejbejb#ifndef __PL_SHA2_HH__ #define __PL_SHA2_HH__ // Bits must be a supported number of bits, currently only 256, 384, // or 512. Passing 0 as bits leaves the pipeline uncommitted, in // which case resetBits must be called before the pipeline is used. // If a next is provided, this pipeline sends its output to its // successor unmodified. After calling finish, the SHA2 checksum of // the data that passed through the pipeline is available. // This pipeline is reusable; i.e., it is safe to call write() after // calling finish(). The first call to write() after a call to // finish() initializes a new SHA2 object. resetBits may also be // called between finish and the next call to write. #include #include class Pl_SHA2: public Pipeline { public: QPDF_DLL Pl_SHA2(int bits = 0, Pipeline* next = 0); QPDF_DLL virtual ~Pl_SHA2(); QPDF_DLL virtual void write(unsigned char*, size_t); QPDF_DLL virtual void finish(); QPDF_DLL void resetBits(int bits); QPDF_DLL std::string getHexDigest(); QPDF_DLL std::string getRawDigest(); private: void badBits(); bool in_progress; int bits; sph_sha256_context ctx256; sph_sha384_context ctx384; sph_sha512_context ctx512; unsigned char sha256sum[32]; unsigned char sha384sum[48]; unsigned char sha512sum[64]; }; #endif // __PL_SHA2_HH__ qpdf-8.0.2/libqpdf/qpdf/Pl_MD5.hh0000644000064100006410000000263213247541377014465 0ustar ejbejb#ifndef __PL_MD5_HH__ #define __PL_MD5_HH__ // This pipeline sends its output to its successor unmodified. After // calling finish, the MD5 checksum of the data that passed through // the pipeline is available. // This pipeline is reusable; i.e., it is safe to call write() after // calling finish(). The first call to write() after a call to // finish() initializes a new MD5 object. #include #include class Pl_MD5: public Pipeline { public: QPDF_DLL Pl_MD5(char const* identifier, Pipeline* next); QPDF_DLL virtual ~Pl_MD5(); QPDF_DLL virtual void write(unsigned char*, size_t); QPDF_DLL virtual void finish(); QPDF_DLL std::string getHexDigest(); // Enable/disable. Disabling the pipeline causes it to become a // pass-through. This makes it possible to stick an MD5 pipeline // in a pipeline when it may or may not be required. Disabling it // avoids incurring the runtime overhead of doing needless // digest computation. QPDF_DLL void enable(bool enabled); // If persistAcrossFinish is called, calls to finish do not // finalize the underlying md5 object. In this case, the object is // not finalized until getHexDigest() is called. QPDF_DLL void persistAcrossFinish(bool); private: bool in_progress; MD5 md5; bool enabled; bool persist_across_finish; }; #endif // __PL_MD5_HH__ qpdf-8.0.2/libqpdf/qpdf/Pl_TIFFPredictor.hh0000644000064100006410000000170613247541377016505 0ustar ejbejb#ifndef __PL_TIFFPREDICTOR_HH__ #define __PL_TIFFPREDICTOR_HH__ // This pipeline reverses the application of a TIFF predictor as // described in the TIFF specification. #include class Pl_TIFFPredictor: public Pipeline { public: enum action_e { a_encode, a_decode }; QPDF_DLL Pl_TIFFPredictor(char const* identifier, Pipeline* next, action_e action, unsigned int columns, unsigned int samples_per_pixel = 1, unsigned int bits_per_sample = 8); QPDF_DLL virtual ~Pl_TIFFPredictor(); QPDF_DLL virtual void write(unsigned char* data, size_t len); QPDF_DLL virtual void finish(); private: void processRow(); action_e action; unsigned int columns; unsigned int bytes_per_row; unsigned int samples_per_pixel; unsigned int bits_per_sample; unsigned char* cur_row; size_t pos; }; #endif // __PL_TIFFPREDICTOR_HH__ qpdf-8.0.2/libqpdf/qpdf/QPDF_Null.hh0000644000064100006410000000050513247541377015166 0ustar ejbejb#ifndef __QPDF_NULL_HH__ #define __QPDF_NULL_HH__ #include class QPDF_Null: public QPDFObject { public: virtual ~QPDF_Null(); virtual std::string unparse(); virtual QPDFObject::object_type_e getTypeCode() const; virtual char const* getTypeName() const; }; #endif // __QPDF_NULL_HH__ qpdf-8.0.2/libqpdf/qpdf/Pl_LZWDecoder.hh0000644000064100006410000000167613247541377016051 0ustar ejbejb#ifndef __PL_LZWDECODER_HH__ #define __PL_LZWDECODER_HH__ #include #include #include class Pl_LZWDecoder: public Pipeline { public: QPDF_DLL Pl_LZWDecoder(char const* identifier, Pipeline* next, bool early_code_change); QPDF_DLL virtual ~Pl_LZWDecoder(); QPDF_DLL virtual void write(unsigned char* buf, size_t len); QPDF_DLL virtual void finish(); private: void sendNextCode(); void handleCode(int code); unsigned char getFirstChar(int code); void addToTable(unsigned char next); // members used for converting bits to codes unsigned char buf[3]; int code_size; int next; int byte_pos; int bit_pos; // left to right: 01234567 int bits_available; // members used for handle LZW decompression bool code_change_delta; bool eod; std::vector table; int last_code; }; #endif // __PL_LZWDECODER_HH__ qpdf-8.0.2/libqpdf/qpdf/QPDF_Array.hh0000644000064100006410000000174413247541377015340 0ustar ejbejb#ifndef __QPDF_ARRAY_HH__ #define __QPDF_ARRAY_HH__ #include #include #include class QPDF_Array: public QPDFObject { public: QPDF_Array(std::vector const& items); virtual ~QPDF_Array(); virtual std::string unparse(); virtual QPDFObject::object_type_e getTypeCode() const; virtual char const* getTypeName() const; virtual void setDescription(QPDF*, std::string const&); int getNItems() const; QPDFObjectHandle getItem(int n) const; std::vector const& getAsVector() const; void setItem(int, QPDFObjectHandle const&); void setFromVector(std::vector const& items); void insertItem(int at, QPDFObjectHandle const& item); void appendItem(QPDFObjectHandle const& item); void eraseItem(int at); protected: virtual void releaseResolved(); private: std::vector items; }; #endif // __QPDF_ARRAY_HH__ qpdf-8.0.2/libqpdf/qpdf/QPDF_InlineImage.hh0000644000064100006410000000072713247541377016443 0ustar ejbejb#ifndef __QPDF_INLINEIMAGE_HH__ #define __QPDF_INLINEIMAGE_HH__ #include class QPDF_InlineImage: public QPDFObject { public: QPDF_InlineImage(std::string const& val); virtual ~QPDF_InlineImage(); virtual std::string unparse(); virtual QPDFObject::object_type_e getTypeCode() const; virtual char const* getTypeName() const; std::string getVal() const; private: std::string val; }; #endif // __QPDF_INLINEIMAGE_HH__ qpdf-8.0.2/libqpdf/qpdf/rijndael.h0000644000064100006410000000131613247541377015063 0ustar ejbejb#ifndef H__RIJNDAEL #define H__RIJNDAEL #include #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif int rijndaelSetupEncrypt(uint32_t *rk, const unsigned char *key, int keybits); int rijndaelSetupDecrypt(uint32_t *rk, const unsigned char *key, int keybits); void rijndaelEncrypt(const uint32_t *rk, int nrounds, const unsigned char plaintext[16], unsigned char ciphertext[16]); void rijndaelDecrypt(const uint32_t *rk, int nrounds, const unsigned char ciphertext[16], unsigned char plaintext[16]); #define KEYLENGTH(keybits) ((keybits)/8) #define RKLENGTH(keybits) ((keybits)/8+28) #define NROUNDS(keybits) ((keybits)/32+6) #endif qpdf-8.0.2/libqpdf/qpdf/Pl_ASCIIHexDecoder.hh0000644000064100006410000000077213247541377016666 0ustar ejbejb#ifndef __PL_ASCIIHEXDECODER_HH__ #define __PL_ASCIIHEXDECODER_HH__ #include class Pl_ASCIIHexDecoder: public Pipeline { public: QPDF_DLL Pl_ASCIIHexDecoder(char const* identifier, Pipeline* next); QPDF_DLL virtual ~Pl_ASCIIHexDecoder(); QPDF_DLL virtual void write(unsigned char* buf, size_t len); QPDF_DLL virtual void finish(); private: void flush(); char inbuf[3]; size_t pos; bool eod; }; #endif // __PL_ASCIIHEXDECODER_HH__ qpdf-8.0.2/libqpdf/qpdf/QPDF_Integer.hh0000644000064100006410000000066213247541377015655 0ustar ejbejb#ifndef __QPDF_INTEGER_HH__ #define __QPDF_INTEGER_HH__ #include class QPDF_Integer: public QPDFObject { public: QPDF_Integer(long long val); virtual ~QPDF_Integer(); virtual std::string unparse(); virtual QPDFObject::object_type_e getTypeCode() const; virtual char const* getTypeName() const; long long getVal() const; private: long long val; }; #endif // __QPDF_INTEGER_HH__ qpdf-8.0.2/libqpdf/qpdf/OffsetInputSource.hh0000644000064100006410000000155113247541377017073 0ustar ejbejb#ifndef __QPDF_OFFSETINPUTSOURCE_HH__ #define __QPDF_OFFSETINPUTSOURCE_HH__ // This class implements an InputSource that proxies for an underlying // input source but offset a specific number of bytes. #include #include class OffsetInputSource: public InputSource { public: OffsetInputSource(PointerHolder, qpdf_offset_t global_offset); virtual ~OffsetInputSource(); virtual qpdf_offset_t findAndSkipNextEOL(); virtual std::string const& getName() const; virtual qpdf_offset_t tell(); virtual void seek(qpdf_offset_t offset, int whence); virtual void rewind(); virtual size_t read(char* buffer, size_t length); virtual void unreadCh(char ch); private: PointerHolder proxied; qpdf_offset_t global_offset; }; #endif // __QPDF_OFFSETINPUTSOURCE_HH__ qpdf-8.0.2/libqpdf/qpdf/Pl_RC4.hh0000644000064100006410000000122413247541377014464 0ustar ejbejb#ifndef __PL_RC4_HH__ #define __PL_RC4_HH__ #include #include class Pl_RC4: public Pipeline { public: static int const def_bufsize = 65536; // key_len of -1 means treat key_data as a null-terminated string QPDF_DLL Pl_RC4(char const* identifier, Pipeline* next, unsigned char const* key_data, int key_len = -1, size_t out_bufsize = def_bufsize); QPDF_DLL virtual ~Pl_RC4(); QPDF_DLL virtual void write(unsigned char* data, size_t len); QPDF_DLL virtual void finish(); private: unsigned char* outbuf; size_t out_bufsize; RC4 rc4; }; #endif // __PL_RC4_HH__ qpdf-8.0.2/libqpdf/qpdf/QPDF_Reserved.hh0000644000064100006410000000053113247541377016032 0ustar ejbejb#ifndef __QPDF_RESERVED_HH__ #define __QPDF_RESERVED_HH__ #include class QPDF_Reserved: public QPDFObject { public: virtual ~QPDF_Reserved(); virtual std::string unparse(); virtual QPDFObject::object_type_e getTypeCode() const; virtual char const* getTypeName() const; }; #endif // __QPDF_RESERVED_HH__ qpdf-8.0.2/libqpdf/qpdf/RC4.hh0000644000064100006410000000077213247541377014040 0ustar ejbejb#ifndef __RC4_HH__ #define __RC4_HH__ class RC4 { public: // key_len of -1 means treat key_data as a null-terminated string RC4(unsigned char const* key_data, int key_len = -1); // out_data = 0 means to encrypt/decrypt in place void process(unsigned char* in_data, int len, unsigned char* out_data = 0); private: class RC4Key { public: unsigned char state[256]; unsigned char x; unsigned char y; }; RC4Key key; }; #endif // __RC4_HH__ qpdf-8.0.2/libqpdf/qpdf/QPDF_Real.hh0000644000064100006410000000102413247541377015134 0ustar ejbejb#ifndef __QPDF_REAL_HH__ #define __QPDF_REAL_HH__ #include class QPDF_Real: public QPDFObject { public: QPDF_Real(std::string const& val); QPDF_Real(double value, int decimal_places = 0); virtual ~QPDF_Real(); virtual std::string unparse(); virtual QPDFObject::object_type_e getTypeCode() const; virtual char const* getTypeName() const; std::string getVal(); private: // Store reals as strings to avoid roundoff errors. std::string val; }; #endif // __QPDF_REAL_HH__ qpdf-8.0.2/libqpdf/qpdf/Pl_PNGFilter.hh0000644000064100006410000000244013247541377015667 0ustar ejbejb#ifndef __PL_PNGFILTER_HH__ #define __PL_PNGFILTER_HH__ // This pipeline applies or reverses the application of a PNG filter // as described in the PNG specification. // NOTE: In its current implementation, this filter always encodes // using the "up" filter, but it decodes all the filters. #include class Pl_PNGFilter: public Pipeline { public: // Encoding is only partially supported enum action_e { a_encode, a_decode }; QPDF_DLL Pl_PNGFilter(char const* identifier, Pipeline* next, action_e action, unsigned int columns, unsigned int samples_per_pixel = 1, unsigned int bits_per_sample = 8); QPDF_DLL virtual ~Pl_PNGFilter(); QPDF_DLL virtual void write(unsigned char* data, size_t len); QPDF_DLL virtual void finish(); private: void decodeSub(); void decodeUp(); void decodeAverage(); void decodePaeth(); void processRow(); void encodeRow(); void decodeRow(); int PaethPredictor(int a, int b, int c); action_e action; unsigned int bytes_per_row; unsigned int bytes_per_pixel; unsigned char* cur_row; unsigned char* prev_row; unsigned char* buf1; unsigned char* buf2; size_t pos; size_t incoming; }; #endif // __PL_PNGFILTER_HH__ qpdf-8.0.2/libqpdf/qpdf/SecureRandomDataProvider.hh0000644000064100006410000000076413247541377020345 0ustar ejbejb#ifndef __SECURERANDOMDATAPROVIDER_HH__ #define __SECURERANDOMDATAPROVIDER_HH__ #include #include class SecureRandomDataProvider: public RandomDataProvider { public: QPDF_DLL SecureRandomDataProvider(); QPDF_DLL virtual ~SecureRandomDataProvider(); QPDF_DLL virtual void provideRandomData(unsigned char* data, size_t len); QPDF_DLL static RandomDataProvider* getInstance(); }; #endif // __SECURERANDOMDATAPROVIDER_HH__ qpdf-8.0.2/libqpdf/qpdf/BitStream.hh0000644000064100006410000000111513247541377015332 0ustar ejbejb// Read bits from a bit stream. See BitWriter for writing. #ifndef __BITSTREAM_HH__ #define __BITSTREAM_HH__ #include class BitStream { public: QPDF_DLL BitStream(unsigned char const* p, int nbytes); QPDF_DLL void reset(); QPDF_DLL unsigned long long getBits(int nbits); QPDF_DLL long long getBitsSigned(int nbits); QPDF_DLL void skipToNextByte(); private: unsigned char const* start; int nbytes; unsigned char const* p; unsigned int bit_offset; unsigned int bits_available; }; #endif // __BITSTREAM_HH__ qpdf-8.0.2/libqpdf/qpdf/InsecureRandomDataProvider.hh0000644000064100006410000000107013247541377020663 0ustar ejbejb#ifndef __INSECURERANDOMDATAPROVIDER_HH__ #define __INSECURERANDOMDATAPROVIDER_HH__ #include #include class InsecureRandomDataProvider: public RandomDataProvider { public: QPDF_DLL InsecureRandomDataProvider(); QPDF_DLL virtual ~InsecureRandomDataProvider(); QPDF_DLL virtual void provideRandomData(unsigned char* data, size_t len); QPDF_DLL static RandomDataProvider* getInstance(); private: long random(); bool seeded_random; }; #endif // __INSECURERANDOMDATAPROVIDER_HH__ qpdf-8.0.2/libqpdf/qpdf/Pl_AES_PDF.hh0000644000064100006410000000340513247541377015200 0ustar ejbejb#ifndef __PL_AES_PDF_HH__ #define __PL_AES_PDF_HH__ #include #include #ifdef HAVE_STDINT_H # include #endif // This pipeline implements AES-128 and AES-256 with CBC and block // padding as specified in the PDF specification. class Pl_AES_PDF: public Pipeline { public: QPDF_DLL // key should be a pointer to key_bytes bytes of data Pl_AES_PDF(char const* identifier, Pipeline* next, bool encrypt, unsigned char const* key, unsigned int key_bytes); QPDF_DLL virtual ~Pl_AES_PDF(); QPDF_DLL virtual void write(unsigned char* data, size_t len); QPDF_DLL virtual void finish(); // Use zero initialization vector; needed for AESV3 QPDF_DLL void useZeroIV(); // Disable padding; needed for AESV3 QPDF_DLL void disablePadding(); // Specify an initialization vector, which will not be included in // the output. QPDF_DLL void setIV(unsigned char const* iv, size_t bytes); // For testing only; PDF always uses CBC QPDF_DLL void disableCBC(); // For testing only: use a fixed initialization vector for CBC QPDF_DLL static void useStaticIV(); private: void flush(bool discard_padding); void initializeVector(); static unsigned int const buf_size = 16; static bool use_static_iv; bool encrypt; bool cbc_mode; bool first; size_t offset; // offset into memory buffer unsigned char* key; uint32_t* rk; unsigned char inbuf[buf_size]; unsigned char outbuf[buf_size]; unsigned char cbc_block[buf_size]; unsigned char specified_iv[buf_size]; unsigned int nrounds; bool use_zero_iv; bool use_specified_iv; bool disable_padding; }; #endif // __PL_AES_PDF_HH__ qpdf-8.0.2/libqpdf/qpdf/QPDF_String.hh0000644000064100006410000000110113247541377015513 0ustar ejbejb#ifndef __QPDF_STRING_HH__ #define __QPDF_STRING_HH__ #include // QPDF_Strings may included embedded null characters. class QPDF_String: public QPDFObject { public: QPDF_String(std::string const& val); virtual ~QPDF_String(); virtual std::string unparse(); virtual QPDFObject::object_type_e getTypeCode() const; virtual char const* getTypeName() const; std::string unparse(bool force_binary); std::string getVal() const; std::string getUTF8Val() const; private: std::string val; }; #endif // __QPDF_STRING_HH__ qpdf-8.0.2/libqpdf/qpdf/QPDF_Name.hh0000644000064100006410000000106413247541377015135 0ustar ejbejb#ifndef __QPDF_NAME_HH__ #define __QPDF_NAME_HH__ #include class QPDF_Name: public QPDFObject { public: QPDF_Name(std::string const& name); virtual ~QPDF_Name(); virtual std::string unparse(); virtual QPDFObject::object_type_e getTypeCode() const; virtual char const* getTypeName() const; std::string getName() const; // Put # into strings with characters unsuitable for name token static std::string normalizeName(std::string const& name); private: std::string name; }; #endif // __QPDF_NAME_HH__ qpdf-8.0.2/libqpdf/qpdf/BitWriter.hh0000644000064100006410000000127013247541377015355 0ustar ejbejb// Write bits into a bit stream. See BitStream for reading. #ifndef __BITWRITER_HH__ #define __BITWRITER_HH__ #include class Pipeline; class BitWriter { public: // Write bits to the pipeline. It is the caller's responsibility // to eventually call finish on the pipeline. QPDF_DLL BitWriter(Pipeline* pl); QPDF_DLL void writeBits(unsigned long long val, unsigned int bits); QPDF_DLL void writeBitsSigned(long long val, unsigned int bits); // Force any partial byte to be written to the pipeline. QPDF_DLL void flush(); private: Pipeline* pl; unsigned char ch; unsigned int bit_offset; }; #endif // __BITWRITER_HH__ qpdf-8.0.2/libqpdf/qpdf/QPDF_Dictionary.hh0000644000064100006410000000257613247541377016373 0ustar ejbejb#ifndef __QPDF_DICTIONARY_HH__ #define __QPDF_DICTIONARY_HH__ #include #include #include #include class QPDF_Dictionary: public QPDFObject { public: QPDF_Dictionary(std::map const& items); virtual ~QPDF_Dictionary(); virtual std::string unparse(); virtual QPDFObject::object_type_e getTypeCode() const; virtual char const* getTypeName() const; virtual void setDescription(QPDF*, std::string const&); // hasKey() and getKeys() treat keys with null values as if they // aren't there. getKey() returns null for the value of a // non-existent key. This is as per the PDF spec. bool hasKey(std::string const&); QPDFObjectHandle getKey(std::string const&); std::set getKeys(); std::map const& getAsMap() const; // Replace value of key, adding it if it does not exist void replaceKey(std::string const& key, QPDFObjectHandle); // Remove key, doing nothing if key does not exist void removeKey(std::string const& key); // If object is null, replace key; otherwise, remove key void replaceOrRemoveKey(std::string const& key, QPDFObjectHandle); protected: virtual void releaseResolved(); private: std::map items; }; #endif // __QPDF_DICTIONARY_HH__ qpdf-8.0.2/libqpdf/qpdf/MD5.hh0000644000064100006410000000424413247541377014033 0ustar ejbejb#ifndef __MD5_HH__ #define __MD5_HH__ #include #include #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #include class MD5 { public: typedef unsigned char Digest[16]; QPDF_DLL MD5(); QPDF_DLL void reset(); // encodes string and finalizes QPDF_DLL void encodeString(char const* input_string); // encodes file and finalizes QPDF_DLL void encodeFile(char const* filename, int up_to_size = -1); // appends string to current md5 object QPDF_DLL void appendString(char const* input_string); // appends arbitrary data to current md5 object QPDF_DLL void encodeDataIncrementally(char const* input_data, int len); // computes a raw digest QPDF_DLL void digest(Digest); // prints the digest to stdout terminated with \r\n (primarily for // testing) QPDF_DLL void print(); // returns the digest as a hexadecimal string QPDF_DLL std::string unparse(); // Convenience functions QPDF_DLL static std::string getDataChecksum(char const* buf, int len); QPDF_DLL static std::string getFileChecksum(char const* filename, int up_to_size = -1); QPDF_DLL static bool checkDataChecksum(char const* const checksum, char const* buf, int len); QPDF_DLL static bool checkFileChecksum(char const* const checksum, char const* filename, int up_to_size = -1); private: // POINTER defines a generic pointer type typedef void *POINTER; // UINT2 defines a two byte word typedef uint16_t UINT2; // UINT4 defines a four byte word typedef uint32_t UINT4; void init(); void update(unsigned char *, unsigned int); void final(); static void transform(UINT4 [4], unsigned char [64]); static void encode(unsigned char *, UINT4 *, unsigned int); static void decode(UINT4 *, unsigned char *, unsigned int); UINT4 state[4]; // state (ABCD) UINT4 count[2]; // number of bits, modulo 2^64 (lsb first) unsigned char buffer[64]; // input buffer bool finalized; Digest digest_val; }; #endif // __MD5_HH__ qpdf-8.0.2/libqpdf/qpdf/QPDF_Bool.hh0000644000064100006410000000062113247541377015146 0ustar ejbejb#ifndef __QPDF_BOOL_HH__ #define __QPDF_BOOL_HH__ #include class QPDF_Bool: public QPDFObject { public: QPDF_Bool(bool val); virtual ~QPDF_Bool(); virtual std::string unparse(); virtual QPDFObject::object_type_e getTypeCode() const; virtual char const* getTypeName() const; bool getVal() const; private: bool val; }; #endif // __QPDF_BOOL_HH__ qpdf-8.0.2/libqpdf/qpdf/QPDF_Operator.hh0000644000064100006410000000070513247541377016051 0ustar ejbejb#ifndef __QPDF_OPERATOR_HH__ #define __QPDF_OPERATOR_HH__ #include class QPDF_Operator: public QPDFObject { public: QPDF_Operator(std::string const& val); virtual ~QPDF_Operator(); virtual std::string unparse(); virtual QPDFObject::object_type_e getTypeCode() const; virtual char const* getTypeName() const; std::string getVal() const; private: std::string val; }; #endif // __QPDF_OPERATOR_HH__ qpdf-8.0.2/libqpdf/QPDF_Integer.cc0000644000064100006410000000073713247541377014714 0ustar ejbejb#include #include QPDF_Integer::QPDF_Integer(long long val) : val(val) { } QPDF_Integer::~QPDF_Integer() { } std::string QPDF_Integer::unparse() { return QUtil::int_to_string(this->val); } QPDFObject::object_type_e QPDF_Integer::getTypeCode() const { return QPDFObject::ot_integer; } char const* QPDF_Integer::getTypeName() const { return "integer"; } long long QPDF_Integer::getVal() const { return this->val; } qpdf-8.0.2/libqpdf/Pl_LZWDecoder.cc0000644000064100006410000001241213247541377015073 0ustar ejbejb#include #include #include #include #include #include Pl_LZWDecoder::Pl_LZWDecoder(char const* identifier, Pipeline* next, bool early_code_change) : Pipeline(identifier, next), code_size(9), next(0), byte_pos(0), bit_pos(0), bits_available(0), code_change_delta(early_code_change ? 1 : 0), eod(false), last_code(256) { memset(buf, 0, 3); } Pl_LZWDecoder::~Pl_LZWDecoder() { } void Pl_LZWDecoder::write(unsigned char* bytes, size_t len) { for (size_t i = 0; i < len; ++i) { this->buf[next++] = bytes[i]; if (this->next == 3) { this->next = 0; } this->bits_available += 8; if (this->bits_available >= this->code_size) { sendNextCode(); } } } void Pl_LZWDecoder::finish() { getNext()->finish(); } void Pl_LZWDecoder::sendNextCode() { int high = this->byte_pos; int med = (this->byte_pos + 1) % 3; int low = (this->byte_pos + 2) % 3; int bits_from_high = 8 - this->bit_pos; int bits_from_med = this->code_size - bits_from_high; int bits_from_low = 0; if (bits_from_med > 8) { bits_from_low = bits_from_med - 8; bits_from_med = 8; } int high_mask = (1 << bits_from_high) - 1; int med_mask = 0xff - ((1 << (8 - bits_from_med)) - 1); int low_mask = 0xff - ((1 << (8 - bits_from_low)) - 1); int code = 0; code += (this->buf[high] & high_mask) << bits_from_med; code += ((this->buf[med] & med_mask) >> (8 - bits_from_med)); if (bits_from_low) { code <<= bits_from_low; code += ((this->buf[low] & low_mask) >> (8 - bits_from_low)); this->byte_pos = low; this->bit_pos = bits_from_low; } else { this->byte_pos = med; this->bit_pos = bits_from_med; } if (this->bit_pos == 8) { this->bit_pos = 0; ++this->byte_pos; this->byte_pos %= 3; } this->bits_available -= this->code_size; handleCode(code); } unsigned char Pl_LZWDecoder::getFirstChar(int code) { unsigned char result = '\0'; if (code < 256) { result = static_cast(code); } else if (code > 257) { unsigned int idx = code - 258; if (idx >= table.size()) { throw std::logic_error( "Pl_LZWDecoder::getFirstChar: table overflow"); } Buffer& b = table.at(idx); result = b.getBuffer()[0]; } else { throw std::logic_error( "Pl_LZWDecoder::getFirstChar called with invalid code (" + QUtil::int_to_string(code) + ")"); } return result; } void Pl_LZWDecoder::addToTable(unsigned char next) { unsigned int last_size = 0; unsigned char const* last_data = 0; unsigned char tmp[1]; if (this->last_code < 256) { tmp[0] = this->last_code; last_data = tmp; last_size = 1; } else if (this->last_code > 257) { unsigned int idx = this->last_code - 258; if (idx >= table.size()) { throw std::logic_error( "Pl_LZWDecoder::addToTable: table overflow"); } Buffer& b = table.at(idx); last_data = b.getBuffer(); last_size = b.getSize(); } else { throw std::logic_error( "Pl_LZWDecoder::addToTable called with invalid code (" + QUtil::int_to_string(this->last_code) + ")"); } Buffer entry(1 + last_size); unsigned char* new_data = entry.getBuffer(); memcpy(new_data, last_data, last_size); new_data[last_size] = next; this->table.push_back(entry); } void Pl_LZWDecoder::handleCode(int code) { if (this->eod) { return; } if (code == 256) { if (! this->table.empty()) { QTC::TC("libtests", "Pl_LZWDecoder intermediate reset"); } this->table.clear(); this->code_size = 9; } else if (code == 257) { this->eod = true; } else { if (this->last_code != 256) { // Add to the table from last time. New table entry would // be what we read last plus the first character of what // we're reading now. unsigned char next = '\0'; unsigned int table_size = table.size(); if (code < 256) { // just read < 256; last time's next was code next = code; } else if (code > 257) { size_t idx = code - 258; if (idx > table_size) { throw std::runtime_error("LZWDecoder: bad code received"); } else if (idx == table_size) { // The encoder would have just created this entry, // so the first character of this entry would have // been the same as the first character of the // last entry. QTC::TC("libtests", "Pl_LZWDecoder last was table size"); next = getFirstChar(this->last_code); } else { next = getFirstChar(code); } } unsigned int new_idx = 258 + table_size; if (new_idx == 4096) { throw std::runtime_error("LZWDecoder: table full"); } addToTable(next); unsigned int change_idx = new_idx + code_change_delta; if ((change_idx == 511) || (change_idx == 1023) || (change_idx == 2047)) { ++this->code_size; } } if (code < 256) { unsigned char ch = static_cast(code); getNext()->write(&ch, 1); } else { Buffer& b = table.at(code - 258); getNext()->write(b.getBuffer(), b.getSize()); } } this->last_code = code; } qpdf-8.0.2/libqpdf/Buffer.cc0000644000064100006410000000225413247541377013712 0ustar ejbejb#include #include Buffer::Buffer() { init(0, 0, true); } Buffer::Buffer(size_t size) { init(size, 0, true); } Buffer::Buffer(unsigned char* buf, size_t size) { init(size, buf, false); } Buffer::Buffer(Buffer const& rhs) { init(0, 0, true); copy(rhs); } Buffer& Buffer::operator=(Buffer const& rhs) { copy(rhs); return *this; } Buffer::~Buffer() { destroy(); } void Buffer::init(size_t size, unsigned char* buf, bool own_memory) { this->own_memory = own_memory; this->size = size; if (own_memory) { this->buf = (size ? new unsigned char[size] : 0); } else { this->buf = buf; } } void Buffer::copy(Buffer const& rhs) { if (this != &rhs) { this->destroy(); this->init(rhs.size, 0, true); if (this->size) { memcpy(this->buf, rhs.buf, this->size); } } } void Buffer::destroy() { if (this->own_memory) { delete [] this->buf; } this->size = 0; this->buf = 0; } size_t Buffer::getSize() const { return this->size; } unsigned char const* Buffer::getBuffer() const { return this->buf; } unsigned char* Buffer::getBuffer() { return this->buf; } qpdf-8.0.2/libqpdf/Pl_PNGFilter.cc0000644000064100006410000001356513247541377014735 0ustar ejbejb#include #include #include #include #include static int abs_diff(int a, int b) { return a > b ? a - b : b - a; } Pl_PNGFilter::Pl_PNGFilter(char const* identifier, Pipeline* next, action_e action, unsigned int columns, unsigned int samples_per_pixel, unsigned int bits_per_sample) : Pipeline(identifier, next), action(action), cur_row(0), prev_row(0), buf1(0), buf2(0), pos(0) { if (samples_per_pixel < 1) { throw std::runtime_error( "PNGFilter created with invalid samples_per_pixel"); } if (! ((bits_per_sample == 1) || (bits_per_sample == 2) || (bits_per_sample == 4) || (bits_per_sample == 8) || (bits_per_sample == 16))) { throw std::runtime_error( "PNGFilter created with invalid bits_per_sample not" " 1, 2, 4, 8, or 16"); } this->bytes_per_pixel = ((bits_per_sample * samples_per_pixel) + 7) / 8; unsigned long long bpr = ((columns * bits_per_sample * samples_per_pixel) + 7) / 8; if ((bpr == 0) || (bpr > (UINT_MAX - 1))) { throw std::runtime_error( "PNGFilter created with invalid columns value"); } this->bytes_per_row = bpr & UINT_MAX; this->buf1 = new unsigned char[this->bytes_per_row + 1]; this->buf2 = new unsigned char[this->bytes_per_row + 1]; memset(this->buf1, 0, this->bytes_per_row + 1); memset(this->buf2, 0, this->bytes_per_row + 1); this->cur_row = this->buf1; this->prev_row = this->buf2; // number of bytes per incoming row this->incoming = (action == a_encode ? this->bytes_per_row : this->bytes_per_row + 1); } Pl_PNGFilter::~Pl_PNGFilter() { delete [] buf1; delete [] buf2; } void Pl_PNGFilter::write(unsigned char* data, size_t len) { size_t left = this->incoming - this->pos; size_t offset = 0; while (len >= left) { // finish off current row memcpy(this->cur_row + this->pos, data + offset, left); offset += left; len -= left; processRow(); // Swap rows unsigned char* t = this->prev_row; this->prev_row = this->cur_row; this->cur_row = t ? t : this->buf2; memset(this->cur_row, 0, this->bytes_per_row + 1); left = this->incoming; this->pos = 0; } if (len) { memcpy(this->cur_row + this->pos, data + offset, len); } this->pos += len; } void Pl_PNGFilter::processRow() { if (this->action == a_encode) { encodeRow(); } else { decodeRow(); } } void Pl_PNGFilter::decodeRow() { int filter = this->cur_row[0]; if (this->prev_row) { switch (filter) { case 0: break; case 1: this->decodeSub(); break; case 2: this->decodeUp(); break; case 3: this->decodeAverage(); break; case 4: this->decodePaeth(); break; default: // ignore break; } } getNext()->write(this->cur_row + 1, this->bytes_per_row); } void Pl_PNGFilter::decodeSub() { QTC::TC("libtests", "Pl_PNGFilter decodeSub"); unsigned char* buffer = this->cur_row + 1; unsigned int bpp = this->bytes_per_pixel; for (unsigned int i = 0; i < this->bytes_per_row; ++i) { unsigned char left = 0; if (i >= bpp) { left = buffer[i - bpp]; } buffer[i] += left; } } void Pl_PNGFilter::decodeUp() { QTC::TC("libtests", "Pl_PNGFilter decodeUp"); unsigned char* buffer = this->cur_row + 1; unsigned char* above_buffer = this->prev_row + 1; for (unsigned int i = 0; i < this->bytes_per_row; ++i) { unsigned char up = above_buffer[i]; buffer[i] += up; } } void Pl_PNGFilter::decodeAverage() { QTC::TC("libtests", "Pl_PNGFilter decodeAverage"); unsigned char* buffer = this->cur_row + 1; unsigned char* above_buffer = this->prev_row + 1; unsigned int bpp = this->bytes_per_pixel; for (unsigned int i = 0; i < this->bytes_per_row; ++i) { int left = 0; int up = 0; if (i >= bpp) { left = buffer[i - bpp]; } up = above_buffer[i]; buffer[i] += (left+up) / 2; } } void Pl_PNGFilter::decodePaeth() { QTC::TC("libtests", "Pl_PNGFilter decodePaeth"); unsigned char* buffer = this->cur_row + 1; unsigned char* above_buffer = this->prev_row + 1; unsigned int bpp = this->bytes_per_pixel; for (unsigned int i = 0; i < this->bytes_per_row; ++i) { int left = 0; int up = above_buffer[i]; int upper_left = 0; if (i >= bpp) { left = buffer[i - bpp]; upper_left = above_buffer[i - bpp]; } buffer[i] += this->PaethPredictor(left, up, upper_left); } } int Pl_PNGFilter::PaethPredictor(int a, int b, int c) { int p = a + b - c; int pa = abs_diff(p, a); int pb = abs_diff(p, b); int pc = abs_diff(p, c); if (pa <= pb && pa <= pc) { return a; } if (pb <= pc) { return b; } return c; } void Pl_PNGFilter::encodeRow() { // For now, hard-code to using UP filter. unsigned char ch = 2; getNext()->write(&ch, 1); if (this->prev_row) { for (unsigned int i = 0; i < this->bytes_per_row; ++i) { ch = this->cur_row[i] - this->prev_row[i]; getNext()->write(&ch, 1); } } else { getNext()->write(this->cur_row, this->bytes_per_row); } } void Pl_PNGFilter::finish() { if (this->pos) { // write partial row processRow(); } this->prev_row = 0; this->cur_row = buf1; this->pos = 0; memset(this->cur_row, 0, this->bytes_per_row + 1); getNext()->finish(); } qpdf-8.0.2/libqpdf/QPDFExc.cc0000644000064100006410000000305713247541377013675 0ustar ejbejb#include #include QPDFExc::QPDFExc(qpdf_error_code_e error_code, std::string const& filename, std::string const& object, qpdf_offset_t offset, std::string const& message) : std::runtime_error(createWhat(filename, object, offset, message)), error_code(error_code), filename(filename), object(object), offset(offset), message(message) { } QPDFExc::~QPDFExc() throw () { } std::string QPDFExc::createWhat(std::string const& filename, std::string const& object, qpdf_offset_t offset, std::string const& message) { std::string result; if (! filename.empty()) { result += filename; } if (! (object.empty() && offset == 0)) { if (! filename.empty()) { result += " ("; } if (! object.empty()) { result += object; if (offset > 0) { result += ", "; } } if (offset > 0) { result += "offset " + QUtil::int_to_string(offset); } if (! filename.empty()) { result += ")"; } } if (! result.empty()) { result += ": "; } result += message; return result; } qpdf_error_code_e QPDFExc::getErrorCode() const { return this->error_code; } std::string const& QPDFExc::getFilename() const { return this->filename; } std::string const& QPDFExc::getObject() const { return this->object; } qpdf_offset_t QPDFExc::getFilePosition() const { return this->offset; } std::string const& QPDFExc::getMessageDetail() const { return this->message; } qpdf-8.0.2/libqpdf/MD5.cc0000644000064100006410000002767213247541377013101 0ustar ejbejb// This file implements a class for computation of MD5 checksums. // It is derived from the reference algorithm for MD5 as given in // RFC 1321. The original copyright notice is as follows: // ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All // rights reserved. // // License to copy and use this software is granted provided that it // is identified as the "RSA Data Security, Inc. MD5 Message-Digest // Algorithm" in all material mentioning or referencing this software // or this function. // // License is also granted to make and use derivative works provided // that such works are identified as "derived from the RSA Data // Security, Inc. MD5 Message-Digest Algorithm" in all material // mentioning or referencing the derived work. // // RSA Data Security, Inc. makes no representations concerning either // the merchantability of this software or the suitability of this // software for any particular purpose. It is provided "as is" // without express or implied warranty of any kind. // // These notices must be retained in any copies of any part of this // documentation and/or software. // ///////////////////////////////////////////////////////////////////////// #include #include #include #include #include #include #include int const S11 = 7; int const S12 = 12; int const S13 = 17; int const S14 = 22; int const S21 = 5; int const S22 = 9; int const S23 = 14; int const S24 = 20; int const S31 = 4; int const S32 = 11; int const S33 = 16; int const S34 = 23; int const S41 = 6; int const S42 = 10; int const S43 = 15; int const S44 = 21; static unsigned char PADDING[64] = { 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; // F, G, H and I are basic MD5 functions. #define F(x, y, z) (((x) & (y)) | ((~x) & (z))) #define G(x, y, z) (((x) & (z)) | ((y) & (~z))) #define H(x, y, z) ((x) ^ (y) ^ (z)) #define I(x, y, z) ((y) ^ ((x) | (~z))) // ROTATE_LEFT rotates x left n bits. #define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n)))) // FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4. // Rotation is separate from addition to prevent recomputation. #define FF(a, b, c, d, x, s, ac) { \ (a) += F ((b), (c), (d)) + (x) + static_cast(ac); \ (a) = ROTATE_LEFT ((a), (s)); \ (a) += (b); \ } #define GG(a, b, c, d, x, s, ac) { \ (a) += G ((b), (c), (d)) + (x) + static_cast(ac); \ (a) = ROTATE_LEFT ((a), (s)); \ (a) += (b); \ } #define HH(a, b, c, d, x, s, ac) { \ (a) += H ((b), (c), (d)) + (x) + static_cast(ac); \ (a) = ROTATE_LEFT ((a), (s)); \ (a) += (b); \ } #define II(a, b, c, d, x, s, ac) { \ (a) += I ((b), (c), (d)) + (x) + static_cast(ac); \ (a) = ROTATE_LEFT ((a), (s)); \ (a) += (b); \ } // MD5 initialization. Begins an MD5 operation, writing a new context. void MD5::init() { count[0] = count[1] = 0; // Load magic initialization constants. state[0] = 0x67452301; state[1] = 0xefcdab89; state[2] = 0x98badcfe; state[3] = 0x10325476; finalized = false; memset(digest_val, 0, sizeof(digest_val)); } // MD5 block update operation. Continues an MD5 message-digest // operation, processing another message block, and updating the // context. void MD5::update(unsigned char *input, unsigned int inputLen) { unsigned int i, index, partLen; // Compute number of bytes mod 64 index = static_cast((count[0] >> 3) & 0x3f); // Update number of bits if ((count[0] += (static_cast(inputLen) << 3)) < (static_cast(inputLen) << 3)) count[1]++; count[1] += (static_cast(inputLen) >> 29); partLen = 64 - index; // Transform as many times as possible. if (inputLen >= partLen) { memcpy(&buffer[index], input, partLen); transform(state, buffer); for (i = partLen; i + 63 < inputLen; i += 64) transform(state, &input[i]); index = 0; } else i = 0; // Buffer remaining input memcpy(&buffer[index], &input[i], inputLen-i); } // MD5 finalization. Ends an MD5 message-digest operation, writing the // the message digest and zeroizing the context. void MD5::final() { if (finalized) { return; } unsigned char bits[8]; unsigned int index, padLen; // Save number of bits encode(bits, count, 8); // Pad out to 56 mod 64. index = static_cast((count[0] >> 3) & 0x3f); padLen = (index < 56) ? (56 - index) : (120 - index); update(PADDING, padLen); // Append length (before padding) update(bits, 8); // Store state in digest_val encode(digest_val, state, 16); // Zeroize sensitive information. memset(state, 0, sizeof(state)); memset(count, 0, sizeof(count)); memset(buffer, 0, sizeof(buffer)); finalized = true; } // MD5 basic transformation. Transforms state based on block. void MD5::transform(UINT4 state[4], unsigned char block[64]) { UINT4 a = state[0], b = state[1], c = state[2], d = state[3], x[16]; decode(x, block, 64); // Round 1 FF (a, b, c, d, x[ 0], S11, 0xd76aa478); // 1 FF (d, a, b, c, x[ 1], S12, 0xe8c7b756); // 2 FF (c, d, a, b, x[ 2], S13, 0x242070db); // 3 FF (b, c, d, a, x[ 3], S14, 0xc1bdceee); // 4 FF (a, b, c, d, x[ 4], S11, 0xf57c0faf); // 5 FF (d, a, b, c, x[ 5], S12, 0x4787c62a); // 6 FF (c, d, a, b, x[ 6], S13, 0xa8304613); // 7 FF (b, c, d, a, x[ 7], S14, 0xfd469501); // 8 FF (a, b, c, d, x[ 8], S11, 0x698098d8); // 9 FF (d, a, b, c, x[ 9], S12, 0x8b44f7af); // 10 FF (c, d, a, b, x[10], S13, 0xffff5bb1); // 11 FF (b, c, d, a, x[11], S14, 0x895cd7be); // 12 FF (a, b, c, d, x[12], S11, 0x6b901122); // 13 FF (d, a, b, c, x[13], S12, 0xfd987193); // 14 FF (c, d, a, b, x[14], S13, 0xa679438e); // 15 FF (b, c, d, a, x[15], S14, 0x49b40821); // 16 // Round 2 GG (a, b, c, d, x[ 1], S21, 0xf61e2562); // 17 GG (d, a, b, c, x[ 6], S22, 0xc040b340); // 18 GG (c, d, a, b, x[11], S23, 0x265e5a51); // 19 GG (b, c, d, a, x[ 0], S24, 0xe9b6c7aa); // 20 GG (a, b, c, d, x[ 5], S21, 0xd62f105d); // 21 GG (d, a, b, c, x[10], S22, 0x2441453); // 22 GG (c, d, a, b, x[15], S23, 0xd8a1e681); // 23 GG (b, c, d, a, x[ 4], S24, 0xe7d3fbc8); // 24 GG (a, b, c, d, x[ 9], S21, 0x21e1cde6); // 25 GG (d, a, b, c, x[14], S22, 0xc33707d6); // 26 GG (c, d, a, b, x[ 3], S23, 0xf4d50d87); // 27 GG (b, c, d, a, x[ 8], S24, 0x455a14ed); // 28 GG (a, b, c, d, x[13], S21, 0xa9e3e905); // 29 GG (d, a, b, c, x[ 2], S22, 0xfcefa3f8); // 30 GG (c, d, a, b, x[ 7], S23, 0x676f02d9); // 31 GG (b, c, d, a, x[12], S24, 0x8d2a4c8a); // 32 // Round 3 HH (a, b, c, d, x[ 5], S31, 0xfffa3942); // 33 HH (d, a, b, c, x[ 8], S32, 0x8771f681); // 34 HH (c, d, a, b, x[11], S33, 0x6d9d6122); // 35 HH (b, c, d, a, x[14], S34, 0xfde5380c); // 36 HH (a, b, c, d, x[ 1], S31, 0xa4beea44); // 37 HH (d, a, b, c, x[ 4], S32, 0x4bdecfa9); // 38 HH (c, d, a, b, x[ 7], S33, 0xf6bb4b60); // 39 HH (b, c, d, a, x[10], S34, 0xbebfbc70); // 40 HH (a, b, c, d, x[13], S31, 0x289b7ec6); // 41 HH (d, a, b, c, x[ 0], S32, 0xeaa127fa); // 42 HH (c, d, a, b, x[ 3], S33, 0xd4ef3085); // 43 HH (b, c, d, a, x[ 6], S34, 0x4881d05); // 44 HH (a, b, c, d, x[ 9], S31, 0xd9d4d039); // 45 HH (d, a, b, c, x[12], S32, 0xe6db99e5); // 46 HH (c, d, a, b, x[15], S33, 0x1fa27cf8); // 47 HH (b, c, d, a, x[ 2], S34, 0xc4ac5665); // 48 // Round 4 II (a, b, c, d, x[ 0], S41, 0xf4292244); // 49 II (d, a, b, c, x[ 7], S42, 0x432aff97); // 50 II (c, d, a, b, x[14], S43, 0xab9423a7); // 51 II (b, c, d, a, x[ 5], S44, 0xfc93a039); // 52 II (a, b, c, d, x[12], S41, 0x655b59c3); // 53 II (d, a, b, c, x[ 3], S42, 0x8f0ccc92); // 54 II (c, d, a, b, x[10], S43, 0xffeff47d); // 55 II (b, c, d, a, x[ 1], S44, 0x85845dd1); // 56 II (a, b, c, d, x[ 8], S41, 0x6fa87e4f); // 57 II (d, a, b, c, x[15], S42, 0xfe2ce6e0); // 58 II (c, d, a, b, x[ 6], S43, 0xa3014314); // 59 II (b, c, d, a, x[13], S44, 0x4e0811a1); // 60 II (a, b, c, d, x[ 4], S41, 0xf7537e82); // 61 II (d, a, b, c, x[11], S42, 0xbd3af235); // 62 II (c, d, a, b, x[ 2], S43, 0x2ad7d2bb); // 63 II (b, c, d, a, x[ 9], S44, 0xeb86d391); // 64 state[0] += a; state[1] += b; state[2] += c; state[3] += d; // Zeroize sensitive information. memset (x, 0, sizeof (x)); } // Encodes input (UINT4) into output (unsigned char). Assumes len is a // multiple of 4. void MD5::encode(unsigned char *output, UINT4 *input, unsigned int len) { unsigned int i, j; for (i = 0, j = 0; j < len; i++, j += 4) { output[j] = static_cast(input[i] & 0xff); output[j+1] = static_cast((input[i] >> 8) & 0xff); output[j+2] = static_cast((input[i] >> 16) & 0xff); output[j+3] = static_cast((input[i] >> 24) & 0xff); } } // Decodes input (unsigned char) into output (UINT4). Assumes len is a // multiple of 4. void MD5::decode(UINT4 *output, unsigned char *input, unsigned int len) { unsigned int i, j; for (i = 0, j = 0; j < len; i++, j += 4) output[i] = static_cast(input[j]) | (static_cast(input[j+1]) << 8) | (static_cast(input[j+2]) << 16) | (static_cast(input[j+3]) << 24); } // Public functions MD5::MD5() { init(); } void MD5::reset() { init(); } void MD5::encodeString(char const* str) { unsigned int len = strlen(str); update(QUtil::unsigned_char_pointer(str), len); final(); } void MD5::appendString(char const* input_string) { update(QUtil::unsigned_char_pointer(input_string), strlen(input_string)); } void MD5::encodeDataIncrementally(char const* data, int len) { update(QUtil::unsigned_char_pointer(data), len); } void MD5::encodeFile(char const *filename, int up_to_size) { unsigned char buffer[1024]; FILE *file = QUtil::safe_fopen(filename, "rb"); size_t len; int so_far = 0; int to_try = 1024; do { if ((up_to_size >= 0) && ((so_far + to_try) > up_to_size)) { to_try = up_to_size - so_far; } len = fread(buffer, 1, to_try, file); if (len > 0) { update(buffer, len); so_far += len; if ((up_to_size >= 0) && (so_far >= up_to_size)) { break; } } } while (len > 0); if (ferror(file)) { // Assume, perhaps incorrectly, that errno was set by the // underlying call to read.... (void) fclose(file); QUtil::throw_system_error( std::string("MD5: read error on ") + filename); } (void) fclose(file); final(); } void MD5::digest(Digest result) { final(); memcpy(result, digest_val, sizeof(digest_val)); } void MD5::print() { final(); unsigned int i; for (i = 0; i < 16; ++i) { printf("%02x", digest_val[i]); } printf("\n"); } std::string MD5::unparse() { final(); return QUtil::hex_encode( std::string(reinterpret_cast(digest_val), 16)); } std::string MD5::getDataChecksum(char const* buf, int len) { MD5 m; m.encodeDataIncrementally(buf, len); return m.unparse(); } std::string MD5::getFileChecksum(char const* filename, int up_to_size) { MD5 m; m.encodeFile(filename, up_to_size); return m.unparse(); } bool MD5::checkDataChecksum(char const* const checksum, char const* buf, int len) { std::string actual_checksum = getDataChecksum(buf, len); return (checksum == actual_checksum); } bool MD5::checkFileChecksum(char const* const checksum, char const* filename, int up_to_size) { bool result = false; try { std::string actual_checksum = getFileChecksum(filename, up_to_size); result = (checksum == actual_checksum); } catch (std::runtime_error) { // Ignore -- return false } return result; } qpdf-8.0.2/libqpdf/Pl_AES_PDF.cc0000644000064100006410000001405313247541377014235 0ustar ejbejb#include #include #include #include #include #include #include #include bool Pl_AES_PDF::use_static_iv = false; Pl_AES_PDF::Pl_AES_PDF(char const* identifier, Pipeline* next, bool encrypt, unsigned char const* key, unsigned int key_bytes) : Pipeline(identifier, next), encrypt(encrypt), cbc_mode(true), first(true), offset(0), nrounds(0), use_zero_iv(false), use_specified_iv(false), disable_padding(false) { unsigned int keybits = 8 * key_bytes; assert(key_bytes == KEYLENGTH(keybits)); this->key = new unsigned char[key_bytes]; this->rk = new uint32_t[RKLENGTH(keybits)]; unsigned int rk_bytes = RKLENGTH(keybits) * sizeof(uint32_t); std::memcpy(this->key, key, key_bytes); std::memset(this->rk, 0, rk_bytes); std::memset(this->inbuf, 0, this->buf_size); std::memset(this->outbuf, 0, this->buf_size); std::memset(this->cbc_block, 0, this->buf_size); if (encrypt) { this->nrounds = rijndaelSetupEncrypt(this->rk, this->key, keybits); } else { this->nrounds = rijndaelSetupDecrypt(this->rk, this->key, keybits); } assert(this->nrounds == NROUNDS(keybits)); } Pl_AES_PDF::~Pl_AES_PDF() { delete [] this->key; delete [] this->rk; } void Pl_AES_PDF::useZeroIV() { this->use_zero_iv = true; } void Pl_AES_PDF::disablePadding() { this->disable_padding = true; } void Pl_AES_PDF::setIV(unsigned char const* iv, size_t bytes) { if (bytes != this->buf_size) { throw std::logic_error( "Pl_AES_PDF: specified initialization vector" " size in bytes must be " + QUtil::int_to_string(bytes)); } this->use_specified_iv = true; memcpy(this->specified_iv, iv, bytes); } void Pl_AES_PDF::disableCBC() { this->cbc_mode = false; } void Pl_AES_PDF::useStaticIV() { use_static_iv = true; } void Pl_AES_PDF::write(unsigned char* data, size_t len) { size_t bytes_left = len; unsigned char* p = data; while (bytes_left > 0) { if (this->offset == this->buf_size) { flush(false); } size_t available = this->buf_size - this->offset; size_t bytes = (bytes_left < available ? bytes_left : available); bytes_left -= bytes; std::memcpy(this->inbuf + this->offset, p, bytes); this->offset += bytes; p += bytes; } } void Pl_AES_PDF::finish() { if (this->encrypt) { if (this->offset == this->buf_size) { flush(false); } if (! this->disable_padding) { // Pad as described in section 3.5.1 of version 1.7 of the PDF // specification, including providing an entire block of padding // if the input was a multiple of 16 bytes. unsigned char pad = static_cast(this->buf_size - this->offset); memset(this->inbuf + this->offset, pad, pad); this->offset = this->buf_size; flush(false); } } else { if (this->offset != this->buf_size) { // This is never supposed to happen as the output is // always supposed to be padded. However, we have // encountered files for which the output is not a // multiple of the block size. In this case, pad with // zeroes and hope for the best. assert(this->buf_size > this->offset); std::memset(this->inbuf + this->offset, 0, this->buf_size - this->offset); this->offset = this->buf_size; } flush(! this->disable_padding); } getNext()->finish(); } void Pl_AES_PDF::initializeVector() { if (use_zero_iv) { for (unsigned int i = 0; i < this->buf_size; ++i) { this->cbc_block[i] = 0; } } else if (use_specified_iv) { std::memcpy(this->cbc_block, this->specified_iv, this->buf_size); } else if (use_static_iv) { for (unsigned int i = 0; i < this->buf_size; ++i) { this->cbc_block[i] = 14 * (1 + i); } } else { QUtil::initializeWithRandomBytes(this->cbc_block, this->buf_size); } } void Pl_AES_PDF::flush(bool strip_padding) { assert(this->offset == this->buf_size); if (first) { first = false; if (this->cbc_mode) { if (encrypt) { // Set cbc_block to the initialization vector, and if // not zero, write it to the output stream. initializeVector(); if (! (this->use_zero_iv || this->use_specified_iv)) { getNext()->write(this->cbc_block, this->buf_size); } } else if (this->use_zero_iv || this->use_specified_iv) { // Initialize vector with zeroes; zero vector was not // written to the beginning of the input file. initializeVector(); } else { // Take the first block of input as the initialization // vector. There's nothing to write at this time. memcpy(this->cbc_block, this->inbuf, this->buf_size); this->offset = 0; return; } } } if (this->encrypt) { if (this->cbc_mode) { for (unsigned int i = 0; i < this->buf_size; ++i) { this->inbuf[i] ^= this->cbc_block[i]; } } rijndaelEncrypt(this->rk, this->nrounds, this->inbuf, this->outbuf); if (this->cbc_mode) { memcpy(this->cbc_block, this->outbuf, this->buf_size); } } else { rijndaelDecrypt(this->rk, this->nrounds, this->inbuf, this->outbuf); if (this->cbc_mode) { for (unsigned int i = 0; i < this->buf_size; ++i) { this->outbuf[i] ^= this->cbc_block[i]; } memcpy(this->cbc_block, this->inbuf, this->buf_size); } } unsigned int bytes = this->buf_size; if (strip_padding) { unsigned char last = this->outbuf[this->buf_size - 1]; if (last <= this->buf_size) { bool strip = true; for (unsigned int i = 1; i <= last; ++i) { if (this->outbuf[this->buf_size - i] != last) { strip = false; break; } } if (strip) { bytes -= last; } } } getNext()->write(this->outbuf, bytes); this->offset = 0; } qpdf-8.0.2/libqpdf/Pl_ASCIIHexDecoder.cc0000644000064100006410000000360313247541377015716 0ustar ejbejb#include #include #include #include #include Pl_ASCIIHexDecoder::Pl_ASCIIHexDecoder(char const* identifier, Pipeline* next) : Pipeline(identifier, next), pos(0), eod(false) { this->inbuf[0] = '0'; this->inbuf[1] = '0'; this->inbuf[2] = '\0'; } Pl_ASCIIHexDecoder::~Pl_ASCIIHexDecoder() { } void Pl_ASCIIHexDecoder::write(unsigned char* buf, size_t len) { if (this->eod) { return; } for (size_t i = 0; i < len; ++i) { char ch = toupper(buf[i]); switch (ch) { case ' ': case '\f': case '\v': case '\t': case '\r': case '\n': QTC::TC("libtests", "Pl_ASCIIHexDecoder ignore space"); // ignore whitespace break; case '>': this->eod = true; flush(); break; default: if (((ch >= '0') && (ch <= '9')) || ((ch >= 'A') && (ch <= 'F'))) { this->inbuf[this->pos++] = ch; if (this->pos == 2) { flush(); } } else { char t[2]; t[0] = ch; t[1] = 0; throw std::runtime_error( std::string("character out of range" " during base Hex decode: ") + t); } break; } if (this->eod) { break; } } } void Pl_ASCIIHexDecoder::flush() { if (this->pos == 0) { QTC::TC("libtests", "Pl_ASCIIHexDecoder no-op flush"); return; } int b[2]; for (int i = 0; i < 2; ++i) { if (this->inbuf[i] >= 'A') { b[i] = this->inbuf[i] - 'A' + 10; } else { b[i] = this->inbuf[i] - '0'; } } unsigned char ch = static_cast((b[0] << 4) + b[1]); QTC::TC("libtests", "Pl_ASCIIHexDecoder partial flush", (this->pos == 2) ? 0 : 1); getNext()->write(&ch, 1); this->pos = 0; this->inbuf[0] = '0'; this->inbuf[1] = '0'; this->inbuf[2] = '\0'; } void Pl_ASCIIHexDecoder::finish() { flush(); getNext()->finish(); } qpdf-8.0.2/libqpdf/Pl_ASCII85Decoder.cc0000644000064100006410000000425213247541377015427 0ustar ejbejb#include #include #include #include Pl_ASCII85Decoder::Pl_ASCII85Decoder(char const* identifier, Pipeline* next) : Pipeline(identifier, next), pos(0), eod(0) { memset(this->inbuf, 117, 5); } Pl_ASCII85Decoder::~Pl_ASCII85Decoder() { } void Pl_ASCII85Decoder::write(unsigned char* buf, size_t len) { if (eod > 1) { return; } for (size_t i = 0; i < len; ++i) { if (eod > 1) { break; } else if (eod == 1) { if (buf[i] == '>') { flush(); eod = 2; } else { throw std::runtime_error( "broken end-of-data sequence in base 85 data"); } } else { switch (buf[i]) { case ' ': case '\f': case '\v': case '\t': case '\r': case '\n': QTC::TC("libtests", "Pl_ASCII85Decoder ignore space"); // ignore whitespace break; case '~': eod = 1; break; case 'z': if (pos != 0) { throw std::runtime_error( "unexpected z during base 85 decode"); } else { QTC::TC("libtests", "Pl_ASCII85Decoder read z"); unsigned char zeroes[4]; memset(zeroes, '\0', 4); getNext()->write(zeroes, 4); } break; default: if ((buf[i] < 33) || (buf[i] > 117)) { throw std::runtime_error( "character out of range during base 85 decode"); } else { this->inbuf[this->pos++] = buf[i]; if (pos == 5) { flush(); } } break; } } } } void Pl_ASCII85Decoder::flush() { if (this->pos == 0) { QTC::TC("libtests", "Pl_ASCII85Decoder no-op flush"); return; } unsigned long lval = 0; for (int i = 0; i < 5; ++i) { lval *= 85; lval += (this->inbuf[i] - 33); } unsigned char outbuf[4]; memset(outbuf, 0, 4); for (int i = 3; i >= 0; --i) { outbuf[i] = lval & 0xff; lval >>= 8; } QTC::TC("libtests", "Pl_ASCII85Decoder partial flush", (this->pos == 5) ? 0 : 1); getNext()->write(outbuf, this->pos - 1); this->pos = 0; memset(this->inbuf, 117, 5); } void Pl_ASCII85Decoder::finish() { flush(); getNext()->finish(); } qpdf-8.0.2/libqpdf/Pl_Concatenate.cc0000644000064100006410000000057613247541377015365 0ustar ejbejb#include Pl_Concatenate::Pl_Concatenate(char const* identifier, Pipeline* next) : Pipeline(identifier, next) { } Pl_Concatenate::~Pl_Concatenate() { } void Pl_Concatenate::write(unsigned char* data, size_t len) { getNext()->write(data, len); } void Pl_Concatenate::finish() { } void Pl_Concatenate::manualFinish() { getNext()->finish(); } qpdf-8.0.2/libqpdf/QPDF_Null.cc0000644000064100006410000000042413247541377014222 0ustar ejbejb#include QPDF_Null::~QPDF_Null() { } std::string QPDF_Null::unparse() { return "null"; } QPDFObject::object_type_e QPDF_Null::getTypeCode() const { return QPDFObject::ot_null; } char const* QPDF_Null::getTypeName() const { return "null"; } qpdf-8.0.2/libqpdf/QPDF_linearization.cc0000644000064100006410000021045713247541377016171 0ustar ejbejb// See doc/linearization. #include #include #include #include #include #include #include #include #include #include #include #include #include #include template static void load_vector_int(BitStream& bit_stream, int nitems, std::vector& vec, int bits_wanted, int_type T::*field) { bool append = vec.empty(); // nitems times, read bits_wanted from the given bit stream, // storing results in the ith vector entry. for (int i = 0; i < nitems; ++i) { if (append) { vec.push_back(T()); } vec.at(i).*field = bit_stream.getBits(bits_wanted); } if (static_cast(vec.size()) != nitems) { throw std::logic_error("vector has wrong size in load_vector_int"); } // The PDF spec says that each hint table starts at a byte // boundary. Each "row" actually must start on a byte boundary. bit_stream.skipToNextByte(); } template static void load_vector_vector(BitStream& bit_stream, int nitems1, std::vector& vec1, int T::*nitems2, int bits_wanted, std::vector T::*vec2) { // nitems1 times, read nitems2 (from the ith element of vec1) items // into the vec2 vector field of the ith item of vec1. for (int i1 = 0; i1 < nitems1; ++i1) { for (int i2 = 0; i2 < vec1.at(i1).*nitems2; ++i2) { (vec1.at(i1).*vec2).push_back(bit_stream.getBits(bits_wanted)); } } bit_stream.skipToNextByte(); } bool QPDF::checkLinearization() { bool result = false; try { readLinearizationData(); result = checkLinearizationInternal(); } catch (QPDFExc& e) { *this->m->out_stream << e.what() << std::endl; } return result; } bool QPDF::isLinearized() { // If the first object in the file is a dictionary with a suitable // /Linearized key and has an /L key that accurately indicates the // file size, initialize this->m->lindict and return true. // A linearized PDF spec's first object will be contained within // the first 1024 bytes of the file and will be a dictionary with // a valid /Linearized key. This routine looks for that and does // no additional validation. // The PDF spec says the linearization dictionary must be // completely contained within the first 1024 bytes of the file. // Add a byte for a null terminator. static int const tbuf_size = 1025; char* buf = new char[tbuf_size]; this->m->file->seek(0, SEEK_SET); PointerHolder b(true, buf); memset(buf, '\0', tbuf_size); this->m->file->read(buf, tbuf_size - 1); int lindict_obj = -1; char* p = buf; while (lindict_obj == -1) { // Find a digit or end of buffer while (((p - buf) < tbuf_size) && (! QUtil::is_digit(*p))) { ++p; } if (p - buf == tbuf_size) { break; } // Seek to the digit. Then skip over digits for a potential // next iteration. this->m->file->seek(p - buf, SEEK_SET); while (((p - buf) < tbuf_size) && QUtil::is_digit(*p)) { ++p; } QPDFTokenizer::Token t1 = readToken(this->m->file); QPDFTokenizer::Token t2 = readToken(this->m->file); QPDFTokenizer::Token t3 = readToken(this->m->file); QPDFTokenizer::Token t4 = readToken(this->m->file); if ((t1.getType() == QPDFTokenizer::tt_integer) && (t2.getType() == QPDFTokenizer::tt_integer) && (t3 == QPDFTokenizer::Token(QPDFTokenizer::tt_word, "obj")) && (t4.getType() == QPDFTokenizer::tt_dict_open)) { lindict_obj = static_cast(QUtil::string_to_ll(t1.getValue().c_str())); } } if (lindict_obj <= 0) { return false; } QPDFObjectHandle candidate = QPDFObjectHandle::Factory::newIndirect( this, lindict_obj, 0); if (! candidate.isDictionary()) { return false; } QPDFObjectHandle linkey = candidate.getKey("/Linearized"); if (! (linkey.isNumber() && (static_cast(floor(linkey.getNumericValue())) == 1))) { return false; } QPDFObjectHandle L = candidate.getKey("/L"); if (L.isInteger()) { qpdf_offset_t Li = L.getIntValue(); this->m->file->seek(0, SEEK_END); if (Li != this->m->file->tell()) { QTC::TC("qpdf", "QPDF /L mismatch"); return false; } else { this->m->linp.file_size = Li; } } this->m->lindict = candidate; return true; } void QPDF::readLinearizationData() { // This function throws an exception (which is trapped by // checkLinearization()) for any errors that prevent loading. // Hint table parsing code needs at least 32 bits in a long. assert(sizeof(long) >= 4); if (! isLinearized()) { throw std::logic_error("called readLinearizationData for file" " that is not linearized"); } // /L is read and stored in linp by isLinearized() QPDFObjectHandle H = this->m->lindict.getKey("/H"); QPDFObjectHandle O = this->m->lindict.getKey("/O"); QPDFObjectHandle E = this->m->lindict.getKey("/E"); QPDFObjectHandle N = this->m->lindict.getKey("/N"); QPDFObjectHandle T = this->m->lindict.getKey("/T"); QPDFObjectHandle P = this->m->lindict.getKey("/P"); if (! (H.isArray() && O.isInteger() && E.isInteger() && N.isInteger() && T.isInteger() && (P.isInteger() || P.isNull()))) { throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "linearization dictionary", this->m->file->getLastOffset(), "some keys in linearization dictionary are of " "the wrong type"); } // Hint table array: offset length [ offset length ] unsigned int n_H_items = H.getArrayNItems(); if (! ((n_H_items == 2) || (n_H_items == 4))) { throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "linearization dictionary", this->m->file->getLastOffset(), "H has the wrong number of items"); } std::vector H_items; for (unsigned int i = 0; i < n_H_items; ++i) { QPDFObjectHandle oh(H.getArrayItem(i)); if (oh.isInteger()) { H_items.push_back(oh.getIntValue()); } else { throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "linearization dictionary", this->m->file->getLastOffset(), "some H items are of the wrong type"); } } // H: hint table offset/length for primary and overflow hint tables int H0_offset = H_items.at(0); int H0_length = H_items.at(1); int H1_offset = 0; int H1_length = 0; if (H_items.size() == 4) { // Acrobat doesn't read or write these (as PDF 1.4), so we // don't have a way to generate a test case. // QTC::TC("qpdf", "QPDF overflow hint table"); H1_offset = H_items.at(2); H1_length = H_items.at(3); } // P: first page number int first_page = 0; if (P.isInteger()) { QTC::TC("qpdf", "QPDF P present in lindict"); first_page = P.getIntValue(); } else { QTC::TC("qpdf", "QPDF P absent in lindict"); } // Store linearization parameter data // Various places in the code use linp.npages, which is // initialized from N, to pre-allocate memory, so make sure it's // accurate and bail right now if it's not. if (N.getIntValue() != static_cast(getAllPages().size())) { throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "linearization hint table", this->m->file->getLastOffset(), "/N does not match number of pages"); } // file_size initialized by isLinearized() this->m->linp.first_page_object = O.getIntValue(); this->m->linp.first_page_end = E.getIntValue(); this->m->linp.npages = N.getIntValue(); this->m->linp.xref_zero_offset = T.getIntValue(); this->m->linp.first_page = first_page; this->m->linp.H_offset = H0_offset; this->m->linp.H_length = H0_length; // Read hint streams Pl_Buffer pb("hint buffer"); QPDFObjectHandle H0 = readHintStream(pb, H0_offset, H0_length); if (H1_offset) { (void) readHintStream(pb, H1_offset, H1_length); } // PDF 1.4 hint tables that we ignore: // /T thumbnail // /A thread information // /E named destination // /V interactive form // /I information dictionary // /C logical structure // /L page label // Individual hint table offsets QPDFObjectHandle HS = H0.getKey("/S"); // shared object QPDFObjectHandle HO = H0.getKey("/O"); // outline PointerHolder hbp = pb.getBuffer(); Buffer* hb = hbp.getPointer(); unsigned char const* h_buf = hb->getBuffer(); int h_size = hb->getSize(); readHPageOffset(BitStream(h_buf, h_size)); int HSi = HS.getIntValue(); if ((HSi < 0) || (HSi >= h_size)) { throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "linearization hint table", this->m->file->getLastOffset(), "/S (shared object) offset is out of bounds"); } readHSharedObject(BitStream(h_buf + HSi, h_size - HSi)); if (HO.isInteger()) { int HOi = HO.getIntValue(); if ((HOi < 0) || (HOi >= h_size)) { throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "linearization hint table", this->m->file->getLastOffset(), "/O (outline) offset is out of bounds"); } readHGeneric(BitStream(h_buf + HOi, h_size - HOi), this->m->outline_hints); } } QPDFObjectHandle QPDF::readHintStream(Pipeline& pl, qpdf_offset_t offset, size_t length) { int obj; int gen; QPDFObjectHandle H = readObjectAtOffset( false, offset, "linearization hint stream", -1, 0, obj, gen); ObjCache& oc = this->m->obj_cache[QPDFObjGen(obj, gen)]; qpdf_offset_t min_end_offset = oc.end_before_space; qpdf_offset_t max_end_offset = oc.end_after_space; if (! H.isStream()) { throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "linearization dictionary", this->m->file->getLastOffset(), "hint table is not a stream"); } QPDFObjectHandle Hdict = H.getDict(); // Some versions of Acrobat make /Length indirect and place it // immediately after the stream, increasing length to cover it, // even though the specification says all objects in the // linearization parameter dictionary must be direct. We have to // get the file position of the end of length in this case. QPDFObjectHandle length_obj = Hdict.getKey("/Length"); if (length_obj.isIndirect()) { QTC::TC("qpdf", "QPDF hint table length indirect"); // Force resolution (void) length_obj.getIntValue(); ObjCache& oc = this->m->obj_cache[length_obj.getObjGen()]; min_end_offset = oc.end_before_space; max_end_offset = oc.end_after_space; } else { QTC::TC("qpdf", "QPDF hint table length direct"); } qpdf_offset_t computed_end = offset + length; if ((computed_end < min_end_offset) || (computed_end > max_end_offset)) { *this->m->out_stream << "expected = " << computed_end << "; actual = " << min_end_offset << ".." << max_end_offset << std::endl; throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "linearization dictionary", this->m->file->getLastOffset(), "hint table length mismatch"); } H.pipeStreamData(&pl, 0, qpdf_dl_specialized); return Hdict; } void QPDF::readHPageOffset(BitStream h) { // All comments referring to the PDF spec refer to the spec for // version 1.4. HPageOffset& t = this->m->page_offset_hints; t.min_nobjects = h.getBits(32); // 1 t.first_page_offset = h.getBits(32); // 2 t.nbits_delta_nobjects = h.getBits(16); // 3 t.min_page_length = h.getBits(32); // 4 t.nbits_delta_page_length = h.getBits(16); // 5 t.min_content_offset = h.getBits(32); // 6 t.nbits_delta_content_offset = h.getBits(16); // 7 t.min_content_length = h.getBits(32); // 8 t.nbits_delta_content_length = h.getBits(16); // 9 t.nbits_nshared_objects = h.getBits(16); // 10 t.nbits_shared_identifier = h.getBits(16); // 11 t.nbits_shared_numerator = h.getBits(16); // 12 t.shared_denominator = h.getBits(16); // 13 std::vector& entries = t.entries; entries.clear(); unsigned int nitems = this->m->linp.npages; load_vector_int(h, nitems, entries, t.nbits_delta_nobjects, &HPageOffsetEntry::delta_nobjects); load_vector_int(h, nitems, entries, t.nbits_delta_page_length, &HPageOffsetEntry::delta_page_length); load_vector_int(h, nitems, entries, t.nbits_nshared_objects, &HPageOffsetEntry::nshared_objects); load_vector_vector(h, nitems, entries, &HPageOffsetEntry::nshared_objects, t.nbits_shared_identifier, &HPageOffsetEntry::shared_identifiers); load_vector_vector(h, nitems, entries, &HPageOffsetEntry::nshared_objects, t.nbits_shared_numerator, &HPageOffsetEntry::shared_numerators); load_vector_int(h, nitems, entries, t.nbits_delta_content_offset, &HPageOffsetEntry::delta_content_offset); load_vector_int(h, nitems, entries, t.nbits_delta_content_length, &HPageOffsetEntry::delta_content_length); } void QPDF::readHSharedObject(BitStream h) { HSharedObject& t = this->m->shared_object_hints; t.first_shared_obj = h.getBits(32); // 1 t.first_shared_offset = h.getBits(32); // 2 t.nshared_first_page = h.getBits(32); // 3 t.nshared_total = h.getBits(32); // 4 t.nbits_nobjects = h.getBits(16); // 5 t.min_group_length = h.getBits(32); // 6 t.nbits_delta_group_length = h.getBits(16); // 7 QTC::TC("qpdf", "QPDF lin nshared_total > nshared_first_page", (t.nshared_total > t.nshared_first_page) ? 1 : 0); std::vector& entries = t.entries; entries.clear(); int nitems = t.nshared_total; load_vector_int(h, nitems, entries, t.nbits_delta_group_length, &HSharedObjectEntry::delta_group_length); load_vector_int(h, nitems, entries, 1, &HSharedObjectEntry::signature_present); for (int i = 0; i < nitems; ++i) { if (entries.at(i).signature_present) { // Skip 128-bit MD5 hash. These are not supported by // acrobat, so they should probably never be there. We // have no test case for this. for (int j = 0; j < 4; ++j) { (void) h.getBits(32); } } } load_vector_int(h, nitems, entries, t.nbits_nobjects, &HSharedObjectEntry::nobjects_minus_one); } void QPDF::readHGeneric(BitStream h, HGeneric& t) { t.first_object = h.getBits(32); // 1 t.first_object_offset = h.getBits(32); // 2 t.nobjects = h.getBits(32); // 3 t.group_length = h.getBits(32); // 4 } bool QPDF::checkLinearizationInternal() { // All comments referring to the PDF spec refer to the spec for // version 1.4. std::list errors; std::list warnings; // Check all values in linearization parameter dictionary LinParameters& p = this->m->linp; // L: file size in bytes -- checked by isLinearized // O: object number of first page std::vector const& pages = getAllPages(); if (p.first_page_object != pages.at(0).getObjectID()) { QTC::TC("qpdf", "QPDF err /O mismatch"); errors.push_back("first page object (/O) mismatch"); } // N: number of pages int npages = pages.size(); if (p.npages != npages) { // Not tested in the test suite errors.push_back("page count (/N) mismatch"); } for (int i = 0; i < npages; ++i) { QPDFObjectHandle const& page = pages.at(i); QPDFObjGen og(page.getObjGen()); if (this->m->xref_table[og].getType() == 2) { errors.push_back("page dictionary for page " + QUtil::int_to_string(i) + " is compressed"); } } // T: offset of whitespace character preceding xref entry for object 0 this->m->file->seek(p.xref_zero_offset, SEEK_SET); while (1) { char ch; this->m->file->read(&ch, 1); if (! ((ch == ' ') || (ch == '\r') || (ch == '\n'))) { this->m->file->seek(-1, SEEK_CUR); break; } } if (this->m->file->tell() != this->m->first_xref_item_offset) { QTC::TC("qpdf", "QPDF err /T mismatch"); errors.push_back("space before first xref item (/T) mismatch " "(computed = " + QUtil::int_to_string(this->m->first_xref_item_offset) + "; file = " + QUtil::int_to_string(this->m->file->tell())); } // P: first page number -- Implementation note 124 says Acrobat // ignores this value, so we will too. // Check numbering of compressed objects in each xref section. // For linearized files, all compressed objects are supposed to be // at the end of the containing xref section if any object streams // are in use. if (this->m->uncompressed_after_compressed) { errors.push_back("linearized file contains an uncompressed object" " after a compressed one in a cross-reference stream"); } // Further checking requires optimization and order calculation. // Don't allow optimization to make changes. If it has to, then // the file is not properly linearized. We use the xref table to // figure out which objects are compressed and which are // uncompressed. { // local scope std::map object_stream_data; for (std::map::const_iterator iter = this->m->xref_table.begin(); iter != this->m->xref_table.end(); ++iter) { QPDFObjGen const& og = (*iter).first; QPDFXRefEntry const& entry = (*iter).second; if (entry.getType() == 2) { object_stream_data[og.getObj()] = entry.getObjStreamNumber(); } } optimize(object_stream_data, false); calculateLinearizationData(object_stream_data); } // E: offset of end of first page -- Implementation note 123 says // Acrobat includes on extra object here by mistake. pdlin fails // to place thumbnail images in section 9, so when thumbnails are // present, it also gets the wrong value for /E. It also doesn't // count outlines here when it should even though it places them // in part 6. This code fails to put thread information // dictionaries in part 9, so it actually gets the wrong value for // E when threads are present. In that case, it would probably // agree with pdlin. As of this writing, the test suite doesn't // contain any files with threads. if (this->m->part6.empty()) { throw std::logic_error("linearization part 6 unexpectedly empty"); } qpdf_offset_t min_E = -1; qpdf_offset_t max_E = -1; for (std::vector::iterator iter = this->m->part6.begin(); iter != this->m->part6.end(); ++iter) { QPDFObjGen og((*iter).getObjGen()); if (this->m->obj_cache.count(og) == 0) { // All objects have to have been dereferenced to be classified. throw std::logic_error("linearization part6 object not in cache"); } ObjCache const& oc = this->m->obj_cache[og]; min_E = std::max(min_E, oc.end_before_space); max_E = std::max(max_E, oc.end_after_space); } if ((p.first_page_end < min_E) || (p.first_page_end > max_E)) { QTC::TC("qpdf", "QPDF warn /E mismatch"); warnings.push_back("end of first page section (/E) mismatch: /E = " + QUtil::int_to_string(p.first_page_end) + "; computed = " + QUtil::int_to_string(min_E) + ".." + QUtil::int_to_string(max_E)); } // Check hint tables std::map shared_idx_to_obj; checkHSharedObject(errors, warnings, pages, shared_idx_to_obj); checkHPageOffset(errors, warnings, pages, shared_idx_to_obj); checkHOutlines(warnings); // Report errors bool result = true; if (! errors.empty()) { result = false; for (std::list::iterator iter = errors.begin(); iter != errors.end(); ++iter) { *this->m->out_stream << "ERROR: " << (*iter) << std::endl; } } if (! warnings.empty()) { result = false; for (std::list::iterator iter = warnings.begin(); iter != warnings.end(); ++iter) { *this->m->out_stream << "WARNING: " << (*iter) << std::endl; } } return result; } qpdf_offset_t QPDF::maxEnd(ObjUser const& ou) { assert(this->m->obj_user_to_objects.count(ou) > 0); std::set const& ogs = this->m->obj_user_to_objects[ou]; qpdf_offset_t end = 0; for (std::set::const_iterator iter = ogs.begin(); iter != ogs.end(); ++iter) { QPDFObjGen const& og = *iter; assert(this->m->obj_cache.count(og) > 0); end = std::max(end, this->m->obj_cache[og].end_after_space); } return end; } qpdf_offset_t QPDF::getLinearizationOffset(QPDFObjGen const& og) { QPDFXRefEntry entry = this->m->xref_table[og]; qpdf_offset_t result = 0; switch (entry.getType()) { case 1: result = entry.getOffset(); break; case 2: // For compressed objects, return the offset of the object // stream that contains them. result = getLinearizationOffset( QPDFObjGen(entry.getObjStreamNumber(), 0)); break; default: throw std::logic_error( "getLinearizationOffset called for xref entry not of type 1 or 2"); break; } return result; } QPDFObjectHandle QPDF::getUncompressedObject(QPDFObjectHandle& obj, std::map const& object_stream_data) { if (obj.isNull() || (object_stream_data.count(obj.getObjectID()) == 0)) { return obj; } else { int repl = (*(object_stream_data.find(obj.getObjectID()))).second; return objGenToIndirect(QPDFObjGen(repl, 0)); } } int QPDF::lengthNextN(int first_object, int n, std::list& errors) { int length = 0; for (int i = 0; i < n; ++i) { QPDFObjGen og(first_object + i, 0); if (this->m->xref_table.count(og) == 0) { errors.push_back( "no xref table entry for " + QUtil::int_to_string(first_object + i) + " 0"); } else { assert(this->m->obj_cache.count(og) > 0); length += this->m->obj_cache[og].end_after_space - getLinearizationOffset(og); } } return length; } void QPDF::checkHPageOffset(std::list& errors, std::list& warnings, std::vector const& pages, std::map& shared_idx_to_obj) { // Implementation note 126 says Acrobat always sets // delta_content_offset and delta_content_length in the page // offset header dictionary to 0. It also states that // min_content_offset in the per-page information is always 0, // which is an incorrect value. // Implementation note 127 explains that Acrobat always sets item // 8 (min_content_length) to zero, item 9 // (nbits_delta_content_length) to the value of item 5 // (nbits_delta_page_length), and item 7 of each per-page hint // table (delta_content_length) to item 2 (delta_page_length) of // that entry. Acrobat ignores these values when reading files. // Empirically, it also seems that Acrobat sometimes puts items // under a page's /Resources dictionary in with shared objects // even when they are private. unsigned int npages = pages.size(); int table_offset = adjusted_offset( this->m->page_offset_hints.first_page_offset); QPDFObjGen first_page_og(pages.at(0).getObjGen()); assert(this->m->xref_table.count(first_page_og) > 0); int offset = getLinearizationOffset(first_page_og); if (table_offset != offset) { warnings.push_back("first page object offset mismatch"); } for (unsigned int pageno = 0; pageno < npages; ++pageno) { QPDFObjGen page_og(pages.at(pageno).getObjGen()); int first_object = page_og.getObj(); assert(this->m->xref_table.count(page_og) > 0); offset = getLinearizationOffset(page_og); HPageOffsetEntry& he = this->m->page_offset_hints.entries.at(pageno); CHPageOffsetEntry& ce = this->m->c_page_offset_data.entries.at(pageno); int h_nobjects = he.delta_nobjects + this->m->page_offset_hints.min_nobjects; if (h_nobjects != ce.nobjects) { // This happens with pdlin when there are thumbnails. warnings.push_back( "object count mismatch for page " + QUtil::int_to_string(pageno) + ": hint table = " + QUtil::int_to_string(h_nobjects) + "; computed = " + QUtil::int_to_string(ce.nobjects)); } // Use value for number of objects in hint table rather than // computed value if there is a discrepancy. int length = lengthNextN(first_object, h_nobjects, errors); int h_length = he.delta_page_length + this->m->page_offset_hints.min_page_length; if (length != h_length) { // This condition almost certainly indicates a bad hint // table or a bug in this code. errors.push_back( "page length mismatch for page " + QUtil::int_to_string(pageno) + ": hint table = " + QUtil::int_to_string(h_length) + "; computed length = " + QUtil::int_to_string(length) + " (offset = " + QUtil::int_to_string(offset) + ")"); } offset += h_length; // Translate shared object indexes to object numbers. std::set hint_shared; std::set computed_shared; if ((pageno == 0) && (he.nshared_objects > 0)) { // pdlin and Acrobat both do this even though the spec // states clearly and unambiguously that they should not. warnings.push_back("page 0 has shared identifier entries"); } for (int i = 0; i < he.nshared_objects; ++i) { int idx = he.shared_identifiers.at(i); if (shared_idx_to_obj.count(idx) == 0) { throw std::logic_error( "unable to get object for item in" " shared objects hint table"); } hint_shared.insert(shared_idx_to_obj[idx]); } for (int i = 0; i < ce.nshared_objects; ++i) { int idx = ce.shared_identifiers.at(i); if (idx >= this->m->c_shared_object_data.nshared_total) { throw std::logic_error( "index out of bounds for shared object hint table"); } int obj = this->m->c_shared_object_data.entries.at(idx).object; computed_shared.insert(obj); } for (std::set::iterator iter = hint_shared.begin(); iter != hint_shared.end(); ++iter) { if (! computed_shared.count(*iter)) { // pdlin puts thumbnails here even though it shouldn't warnings.push_back( "page " + QUtil::int_to_string(pageno) + ": shared object " + QUtil::int_to_string(*iter) + ": in hint table but not computed list"); } } for (std::set::iterator iter = computed_shared.begin(); iter != computed_shared.end(); ++iter) { if (! hint_shared.count(*iter)) { // Acrobat does not put some things including at least // built-in fonts and procsets here, at least in some // cases. warnings.push_back( "page " + QUtil::int_to_string(pageno) + ": shared object " + QUtil::int_to_string(*iter) + ": in computed list but not hint table"); } } } } void QPDF::checkHSharedObject(std::list& errors, std::list& warnings, std::vector const& pages, std::map& idx_to_obj) { // Implementation note 125 says shared object groups always // contain only one object. Implementation note 128 says that // Acrobat always nbits_nobjects to zero. Implementation note 130 // says that Acrobat does not support more than one shared object // per group. These are all consistent. // Implementation note 129 states that MD5 signatures are not // implemented in Acrobat, so signature_present must always be // zero. // Implementation note 131 states that first_shared_obj and // first_shared_offset have meaningless values for single-page // files. // Empirically, Acrobat and pdlin generate incorrect values for // these whenever there are no shared objects not referenced by // the first page (i.e., nshared_total == nshared_first_page). HSharedObject& so = this->m->shared_object_hints; if (so.nshared_total < so.nshared_first_page) { errors.push_back("shared object hint table: ntotal < nfirst_page"); } else { // The first nshared_first_page objects are consecutive // objects starting with the first page object. The rest are // consecutive starting from the first_shared_obj object. int cur_object = pages.at(0).getObjectID(); for (int i = 0; i < so.nshared_total; ++i) { if (i == so.nshared_first_page) { QTC::TC("qpdf", "QPDF lin check shared past first page"); if (this->m->part8.empty()) { errors.push_back( "part 8 is empty but nshared_total > " "nshared_first_page"); } else { int obj = this->m->part8.at(0).getObjectID(); if (obj != so.first_shared_obj) { errors.push_back( "first shared object number mismatch: " "hint table = " + QUtil::int_to_string(so.first_shared_obj) + "; computed = " + QUtil::int_to_string(obj)); } } cur_object = so.first_shared_obj; QPDFObjGen og(cur_object, 0); assert(this->m->xref_table.count(og) > 0); int offset = getLinearizationOffset(og); int h_offset = adjusted_offset(so.first_shared_offset); if (offset != h_offset) { errors.push_back( "first shared object offset mismatch: hint table = " + QUtil::int_to_string(h_offset) + "; computed = " + QUtil::int_to_string(offset)); } } idx_to_obj[i] = cur_object; HSharedObjectEntry& se = so.entries.at(i); int nobjects = se.nobjects_minus_one + 1; int length = lengthNextN(cur_object, nobjects, errors); int h_length = so.min_group_length + se.delta_group_length; if (length != h_length) { errors.push_back( "shared object " + QUtil::int_to_string(i) + " length mismatch: hint table = " + QUtil::int_to_string(h_length) + "; computed = " + QUtil::int_to_string(length)); } cur_object += nobjects; } } } void QPDF::checkHOutlines(std::list& warnings) { // Empirically, Acrobat generates the correct value for the object // number but incorrectly stores the next object number's offset // as the offset, at least when outlines appear in part 6. It // also generates an incorrect value for length (specifically, the // length that would cover the correct number of objects from the // wrong starting place). pdlin appears to generate correct // values in those cases. if (this->m->c_outline_data.nobjects == this->m->outline_hints.nobjects) { if (this->m->c_outline_data.nobjects == 0) { return; } if (this->m->c_outline_data.first_object == this->m->outline_hints.first_object) { // Check length and offset. Acrobat gets these wrong. QPDFObjectHandle outlines = getRoot().getKey("/Outlines"); if (! outlines.isIndirect()) { // This case is not exercised in test suite since not // permitted by the spec, but if this does occur, the // code below would fail. warnings.push_back( "/Outlines key of root dictionary is not indirect"); return; } QPDFObjGen og(outlines.getObjGen()); assert(this->m->xref_table.count(og) > 0); int offset = getLinearizationOffset(og); ObjUser ou(ObjUser::ou_root_key, "/Outlines"); int length = maxEnd(ou) - offset; int table_offset = adjusted_offset(this->m->outline_hints.first_object_offset); if (offset != table_offset) { warnings.push_back( "incorrect offset in outlines table: hint table = " + QUtil::int_to_string(table_offset) + "; computed = " + QUtil::int_to_string(offset)); } int table_length = this->m->outline_hints.group_length; if (length != table_length) { warnings.push_back( "incorrect length in outlines table: hint table = " + QUtil::int_to_string(table_length) + "; computed = " + QUtil::int_to_string(length)); } } else { warnings.push_back("incorrect first object number in outline " "hints table."); } } else { warnings.push_back("incorrect object count in outline hint table"); } } void QPDF::showLinearizationData() { try { readLinearizationData(); checkLinearizationInternal(); dumpLinearizationDataInternal(); } catch (QPDFExc& e) { *this->m->out_stream << e.what() << std::endl; } } void QPDF::dumpLinearizationDataInternal() { *this->m->out_stream << this->m->file->getName() << ": linearization data:" << std::endl << std::endl; *this->m->out_stream << "file_size: " << this->m->linp.file_size << std::endl << "first_page_object: " << this->m->linp.first_page_object << std::endl << "first_page_end: " << this->m->linp.first_page_end << std::endl << "npages: " << this->m->linp.npages << std::endl << "xref_zero_offset: " << this->m->linp.xref_zero_offset << std::endl << "first_page: " << this->m->linp.first_page << std::endl << "H_offset: " << this->m->linp.H_offset << std::endl << "H_length: " << this->m->linp.H_length << std::endl << std::endl; *this->m->out_stream << "Page Offsets Hint Table" << std::endl << std::endl; dumpHPageOffset(); *this->m->out_stream << std::endl << "Shared Objects Hint Table" << std::endl << std::endl; dumpHSharedObject(); if (this->m->outline_hints.nobjects > 0) { *this->m->out_stream << std::endl << "Outlines Hint Table" << std::endl << std::endl; dumpHGeneric(this->m->outline_hints); } } int QPDF::adjusted_offset(int offset) { // All offsets >= H_offset have to be increased by H_length // since all hint table location values disregard the hint table // itself. if (offset >= this->m->linp.H_offset) { return offset + this->m->linp.H_length; } return offset; } void QPDF::dumpHPageOffset() { HPageOffset& t = this->m->page_offset_hints; *this->m->out_stream << "min_nobjects: " << t.min_nobjects << std::endl << "first_page_offset: " << adjusted_offset(t.first_page_offset) << std::endl << "nbits_delta_nobjects: " << t.nbits_delta_nobjects << std::endl << "min_page_length: " << t.min_page_length << std::endl << "nbits_delta_page_length: " << t.nbits_delta_page_length << std::endl << "min_content_offset: " << t.min_content_offset << std::endl << "nbits_delta_content_offset: " << t.nbits_delta_content_offset << std::endl << "min_content_length: " << t.min_content_length << std::endl << "nbits_delta_content_length: " << t.nbits_delta_content_length << std::endl << "nbits_nshared_objects: " << t.nbits_nshared_objects << std::endl << "nbits_shared_identifier: " << t.nbits_shared_identifier << std::endl << "nbits_shared_numerator: " << t.nbits_shared_numerator << std::endl << "shared_denominator: " << t.shared_denominator << std::endl; for (int i1 = 0; i1 < this->m->linp.npages; ++i1) { HPageOffsetEntry& pe = t.entries.at(i1); *this->m->out_stream << "Page " << i1 << ":" << std::endl << " nobjects: " << pe.delta_nobjects + t.min_nobjects << std::endl << " length: " << pe.delta_page_length + t.min_page_length << std::endl // content offset is relative to page, not file << " content_offset: " << pe.delta_content_offset + t.min_content_offset << std::endl << " content_length: " << pe.delta_content_length + t.min_content_length << std::endl << " nshared_objects: " << pe.nshared_objects << std::endl; for (int i2 = 0; i2 < pe.nshared_objects; ++i2) { *this->m->out_stream << " identifier " << i2 << ": " << pe.shared_identifiers.at(i2) << std::endl; *this->m->out_stream << " numerator " << i2 << ": " << pe.shared_numerators.at(i2) << std::endl; } } } void QPDF::dumpHSharedObject() { HSharedObject& t = this->m->shared_object_hints; *this->m->out_stream << "first_shared_obj: " << t.first_shared_obj << std::endl << "first_shared_offset: " << adjusted_offset(t.first_shared_offset) << std::endl << "nshared_first_page: " << t.nshared_first_page << std::endl << "nshared_total: " << t.nshared_total << std::endl << "nbits_nobjects: " << t.nbits_nobjects << std::endl << "min_group_length: " << t.min_group_length << std::endl << "nbits_delta_group_length: " << t.nbits_delta_group_length << std::endl; for (int i = 0; i < t.nshared_total; ++i) { HSharedObjectEntry& se = t.entries.at(i); *this->m->out_stream << "Shared Object " << i << ":" << std::endl << " group length: " << se.delta_group_length + t.min_group_length << std::endl; // PDF spec says signature present nobjects_minus_one are // always 0, so print them only if they have a non-zero value. if (se.signature_present) { *this->m->out_stream << " signature present" << std::endl; } if (se.nobjects_minus_one != 0) { *this->m->out_stream << " nobjects: " << se.nobjects_minus_one + 1 << std::endl; } } } void QPDF::dumpHGeneric(HGeneric& t) { *this->m->out_stream << "first_object: " << t.first_object << std::endl << "first_object_offset: " << adjusted_offset(t.first_object_offset) << std::endl << "nobjects: " << t.nobjects << std::endl << "group_length: " << t.group_length << std::endl; } QPDFObjectHandle QPDF::objGenToIndirect(QPDFObjGen const& og) { return getObjectByID(og.getObj(), og.getGen()); } void QPDF::calculateLinearizationData(std::map const& object_stream_data) { // This function calculates the ordering of objects, divides them // into the appropriate parts, and computes some values for the // linearization parameter dictionary and hint tables. The file // must be optimized (via calling optimize()) prior to calling // this function. Note that actual offsets and lengths are not // computed here, but anything related to object ordering is. if (this->m->object_to_obj_users.empty()) { // Note that we can't call optimize here because we don't know // whether it should be called with or without allow changes. throw std::logic_error( "INTERNAL ERROR: QPDF::calculateLinearizationData " "called before optimize()"); } // Separate objects into the categories sufficient for us to // determine which part of the linearized file should contain the // object. This categorization is useful for other purposes as // well. Part numbers refer to version 1.4 of the PDF spec. // Parts 1, 3, 5, 10, and 11 don't contain any objects from the // original file (except the trailer dictionary in part 11). // Part 4 is the document catalog (root) and the following root // keys: /ViewerPreferences, /PageMode, /Threads, /OpenAction, // /AcroForm, /Encrypt. Note that Thread information dictionaries // are supposed to appear in part 9, but we are disregarding that // recommendation for now. // Part 6 is the first page section. It includes all remaining // objects referenced by the first page including shared objects // but not including thumbnails. Additionally, if /PageMode is // /Outlines, then information from /Outlines also appears here. // Part 7 contains remaining objects private to pages other than // the first page. // Part 8 contains all remaining shared objects except those that // are shared only within thumbnails. // Part 9 contains all remaining objects. // We sort objects into the following categories: // * open_document: part 4 // * first_page_private: part 6 // * first_page_shared: part 6 // * other_page_private: part 7 // * other_page_shared: part 8 // * thumbnail_private: part 9 // * thumbnail_shared: part 9 // * other: part 9 // * outlines: part 6 or 9 this->m->part4.clear(); this->m->part6.clear(); this->m->part7.clear(); this->m->part8.clear(); this->m->part9.clear(); this->m->c_linp = LinParameters(); this->m->c_page_offset_data = CHPageOffset(); this->m->c_shared_object_data = CHSharedObject(); this->m->c_outline_data = HGeneric(); QPDFObjectHandle root = getRoot(); bool outlines_in_first_page = false; QPDFObjectHandle pagemode = root.getKey("/PageMode"); QTC::TC("qpdf", "QPDF categorize pagemode present", pagemode.isName() ? 1 : 0); if (pagemode.isName()) { if (pagemode.getName() == "/UseOutlines") { if (root.hasKey("/Outlines")) { outlines_in_first_page = true; } else { QTC::TC("qpdf", "QPDF UseOutlines but no Outlines"); } } QTC::TC("qpdf", "QPDF categorize pagemode outlines", outlines_in_first_page ? 1 : 0); } std::set open_document_keys; open_document_keys.insert("/ViewerPreferences"); open_document_keys.insert("/PageMode"); open_document_keys.insert("/Threads"); open_document_keys.insert("/OpenAction"); open_document_keys.insert("/AcroForm"); std::set lc_open_document; std::set lc_first_page_private; std::set lc_first_page_shared; std::set lc_other_page_private; std::set lc_other_page_shared; std::set lc_thumbnail_private; std::set lc_thumbnail_shared; std::set lc_other; std::set lc_outlines; std::set lc_root; for (std::map >::iterator oiter = this->m->object_to_obj_users.begin(); oiter != this->m->object_to_obj_users.end(); ++oiter) { QPDFObjGen const& og = (*oiter).first; std::set& ous = (*oiter).second; bool in_open_document = false; bool in_first_page = false; int other_pages = 0; int thumbs = 0; int others = 0; bool in_outlines = false; bool is_root = false; for (std::set::iterator uiter = ous.begin(); uiter != ous.end(); ++uiter) { ObjUser const& ou = *uiter; switch (ou.ou_type) { case ObjUser::ou_trailer_key: if (ou.key == "/Encrypt") { in_open_document = true; } else { ++others; } break; case ObjUser::ou_thumb: ++thumbs; break; case ObjUser::ou_root_key: if (open_document_keys.count(ou.key) > 0) { in_open_document = true; } else if (ou.key == "/Outlines") { in_outlines = true; } else { ++others; } break; case ObjUser::ou_page: if (ou.pageno == 0) { in_first_page = true; } else { ++other_pages; } break; case ObjUser::ou_root: is_root = true; break; case ObjUser::ou_bad: throw std::logic_error( "INTERNAL ERROR: QPDF::calculateLinearizationData: " "invalid user type"); break; } } if (is_root) { lc_root.insert(og); } else if (in_outlines) { lc_outlines.insert(og); } else if (in_open_document) { lc_open_document.insert(og); } else if ((in_first_page) && (others == 0) && (other_pages == 0) && (thumbs == 0)) { lc_first_page_private.insert(og); } else if (in_first_page) { lc_first_page_shared.insert(og); } else if ((other_pages == 1) && (others == 0) && (thumbs == 0)) { lc_other_page_private.insert(og); } else if (other_pages > 1) { lc_other_page_shared.insert(og); } else if ((thumbs == 1) && (others == 0)) { lc_thumbnail_private.insert(og); } else if (thumbs > 1) { lc_thumbnail_shared.insert(og); } else { lc_other.insert(og); } } // Generate ordering for objects in the output file. Sometimes we // just dump right from a set into a vector. Rather than // optimizing this by going straight into the vector, we'll leave // these phases separate for now. That way, this section can be // concerned only with ordering, and the above section can be // considered only with categorization. Note that sets of // QPDFObjGens are sorted by QPDFObjGen. In a linearized file, // objects appear in sequence with the possible exception of hints // tables which we won't see here anyway. That means that running // calculateLinearizationData() on a linearized file should give // results identical to the original file ordering. // We seem to traverse the page tree a lot in this code, but we // can address this for a future code optimization if necessary. // Premature optimization is the root of all evil. std::vector pages; { // local scope // Map all page objects to the containing object stream. This // should be a no-op in a properly linearized file. std::vector t = getAllPages(); for (std::vector::iterator iter = t.begin(); iter != t.end(); ++iter) { pages.push_back(getUncompressedObject(*iter, object_stream_data)); } } unsigned int npages = pages.size(); // We will be initializing some values of the computed hint // tables. Specifically, we can initialize any items that deal // with object numbers or counts but not any items that deal with // lengths or offsets. The code that writes linearized files will // have to fill in these values during the first pass. The // validation code can compute them relatively easily given the // rest of the information. // npages is the size of the existing pages vector, which has been // created by traversing the pages tree, and as such is a // reasonable size. this->m->c_linp.npages = npages; this->m->c_page_offset_data.entries = std::vector(npages); // Part 4: open document objects. We don't care about the order. assert(lc_root.size() == 1); this->m->part4.push_back(objGenToIndirect(*(lc_root.begin()))); for (std::set::iterator iter = lc_open_document.begin(); iter != lc_open_document.end(); ++iter) { this->m->part4.push_back(objGenToIndirect(*iter)); } // Part 6: first page objects. Note: implementation note 124 // states that Acrobat always treats page 0 as the first page for // linearization regardless of /OpenAction. pdlin doesn't provide // any option to set this and also disregards /OpenAction. We // will do the same. // First, place the actual first page object itself. QPDFObjGen first_page_og(pages.at(0).getObjGen()); if (! lc_first_page_private.count(first_page_og)) { throw std::logic_error( "INTERNAL ERROR: QPDF::calculateLinearizationData: first page " "object not in lc_first_page_private"); } lc_first_page_private.erase(first_page_og); this->m->c_linp.first_page_object = pages.at(0).getObjectID(); this->m->part6.push_back(pages.at(0)); // The PDF spec "recommends" an order for the rest of the objects, // but we are going to disregard it except to the extent that it // groups private and shared objects contiguously for the sake of // hint tables. for (std::set::iterator iter = lc_first_page_private.begin(); iter != lc_first_page_private.end(); ++iter) { this->m->part6.push_back(objGenToIndirect(*iter)); } for (std::set::iterator iter = lc_first_page_shared.begin(); iter != lc_first_page_shared.end(); ++iter) { this->m->part6.push_back(objGenToIndirect(*iter)); } // Place the outline dictionary if it goes in the first page section. if (outlines_in_first_page) { pushOutlinesToPart(this->m->part6, lc_outlines, object_stream_data); } // Fill in page offset hint table information for the first page. // The PDF spec says that nshared_objects should be zero for the // first page. pdlin does not appear to obey this, but it fills // in garbage values for all the shared object identifiers on the // first page. this->m->c_page_offset_data.entries.at(0).nobjects = this->m->part6.size(); // Part 7: other pages' private objects // For each page in order: for (unsigned int i = 1; i < npages; ++i) { // Place this page's page object QPDFObjGen page_og(pages.at(i).getObjGen()); if (! lc_other_page_private.count(page_og)) { throw std::logic_error( "INTERNAL ERROR: " "QPDF::calculateLinearizationData: page object for page " + QUtil::int_to_string(i) + " not in lc_other_page_private"); } lc_other_page_private.erase(page_og); this->m->part7.push_back(pages.at(i)); // Place all non-shared objects referenced by this page, // updating the page object count for the hint table. this->m->c_page_offset_data.entries.at(i).nobjects = 1; ObjUser ou(ObjUser::ou_page, i); assert(this->m->obj_user_to_objects.count(ou) > 0); std::set ogs = this->m->obj_user_to_objects[ou]; for (std::set::iterator iter = ogs.begin(); iter != ogs.end(); ++iter) { QPDFObjGen const& og = (*iter); if (lc_other_page_private.count(og)) { lc_other_page_private.erase(og); this->m->part7.push_back(objGenToIndirect(og)); ++this->m->c_page_offset_data.entries.at(i).nobjects; } } } // That should have covered all part7 objects. if (! lc_other_page_private.empty()) { throw std::logic_error( "INTERNAL ERROR:" " QPDF::calculateLinearizationData: lc_other_page_private is " "not empty after generation of part7"); } // Part 8: other pages' shared objects // Order is unimportant. for (std::set::iterator iter = lc_other_page_shared.begin(); iter != lc_other_page_shared.end(); ++iter) { this->m->part8.push_back(objGenToIndirect(*iter)); } // Part 9: other objects // The PDF specification makes recommendations on ordering here. // We follow them only to a limited extent. Specifically, we put // the pages tree first, then private thumbnail objects in page // order, then shared thumbnail objects, and then outlines (unless // in part 6). After that, we throw all remaining objects in // arbitrary order. // Place the pages tree. std::set pages_ogs = this->m->obj_user_to_objects[ObjUser(ObjUser::ou_root_key, "/Pages")]; assert(! pages_ogs.empty()); for (std::set::iterator iter = pages_ogs.begin(); iter != pages_ogs.end(); ++iter) { QPDFObjGen const& og = *iter; if (lc_other.count(og)) { lc_other.erase(og); this->m->part9.push_back(objGenToIndirect(og)); } } // Place private thumbnail images in page order. Slightly more // information would be required if we were going to bother with // thumbnail hint tables. for (unsigned int i = 0; i < npages; ++i) { QPDFObjectHandle thumb = pages.at(i).getKey("/Thumb"); thumb = getUncompressedObject(thumb, object_stream_data); if (! thumb.isNull()) { // Output the thumbnail itself QPDFObjGen thumb_og(thumb.getObjGen()); if (lc_thumbnail_private.count(thumb_og)) { lc_thumbnail_private.erase(thumb_og); this->m->part9.push_back(thumb); } else { // No internal error this time...there's nothing to // stop this object from having been referred to // somewhere else outside of a page's /Thumb, and if // it had been, there's nothing to prevent it from // having been in some set other than // lc_thumbnail_private. } std::set& ogs = this->m->obj_user_to_objects[ObjUser(ObjUser::ou_thumb, i)]; for (std::set::iterator iter = ogs.begin(); iter != ogs.end(); ++iter) { QPDFObjGen const& og = *iter; if (lc_thumbnail_private.count(og)) { lc_thumbnail_private.erase(og); this->m->part9.push_back(objGenToIndirect(og)); } } } } if (! lc_thumbnail_private.empty()) { throw std::logic_error( "INTERNAL ERROR: " "QPDF::calculateLinearizationData: lc_thumbnail_private " "not empty after placing thumbnails"); } // Place shared thumbnail objects for (std::set::iterator iter = lc_thumbnail_shared.begin(); iter != lc_thumbnail_shared.end(); ++iter) { this->m->part9.push_back(objGenToIndirect(*iter)); } // Place outlines unless in first page if (! outlines_in_first_page) { pushOutlinesToPart(this->m->part9, lc_outlines, object_stream_data); } // Place all remaining objects for (std::set::iterator iter = lc_other.begin(); iter != lc_other.end(); ++iter) { this->m->part9.push_back(objGenToIndirect(*iter)); } // Make sure we got everything exactly once. unsigned int num_placed = this->m->part4.size() + this->m->part6.size() + this->m->part7.size() + this->m->part8.size() + this->m->part9.size(); unsigned int num_wanted = this->m->object_to_obj_users.size(); if (num_placed != num_wanted) { throw std::logic_error( "INTERNAL ERROR: QPDF::calculateLinearizationData: wrong " "number of objects placed (num_placed = " + QUtil::int_to_string(num_placed) + "; number of objects: " + QUtil::int_to_string(num_wanted)); } // Calculate shared object hint table information including // references to shared objects from page offset hint data. // The shared object hint table consists of all part 6 (whether // shared or not) in order followed by all part 8 objects in // order. Add the objects to shared object data keeping a map of // object number to index. Then populate the shared object // information for the pages. // Note that two objects never have the same object number, so we // can map from object number only without regards to generation. std::map obj_to_index; this->m->c_shared_object_data.nshared_first_page = this->m->part6.size(); this->m->c_shared_object_data.nshared_total = this->m->c_shared_object_data.nshared_first_page + this->m->part8.size(); std::vector& shared = this->m->c_shared_object_data.entries; for (std::vector::iterator iter = this->m->part6.begin(); iter != this->m->part6.end(); ++iter) { QPDFObjectHandle& oh = *iter; int obj = oh.getObjectID(); obj_to_index[obj] = shared.size(); shared.push_back(CHSharedObjectEntry(obj)); } QTC::TC("qpdf", "QPDF lin part 8 empty", this->m->part8.empty() ? 1 : 0); if (! this->m->part8.empty()) { this->m->c_shared_object_data.first_shared_obj = this->m->part8.at(0).getObjectID(); for (std::vector::iterator iter = this->m->part8.begin(); iter != this->m->part8.end(); ++iter) { QPDFObjectHandle& oh = *iter; int obj = oh.getObjectID(); obj_to_index[obj] = shared.size(); shared.push_back(CHSharedObjectEntry(obj)); } } if (static_cast(this->m->c_shared_object_data.nshared_total) != this->m->c_shared_object_data.entries.size()) { throw std::logic_error( "shared object hint table has wrong number of entries"); } // Now compute the list of shared objects for each page after the // first page. for (unsigned int i = 1; i < npages; ++i) { CHPageOffsetEntry& pe = this->m->c_page_offset_data.entries.at(i); ObjUser ou(ObjUser::ou_page, i); assert(this->m->obj_user_to_objects.count(ou) > 0); std::set const& ogs = this->m->obj_user_to_objects[ou]; for (std::set::const_iterator iter = ogs.begin(); iter != ogs.end(); ++iter) { QPDFObjGen const& og = *iter; if ((this->m->object_to_obj_users[og].size() > 1) && (obj_to_index.count(og.getObj()) > 0)) { int idx = obj_to_index[og.getObj()]; ++pe.nshared_objects; pe.shared_identifiers.push_back(idx); } } } } void QPDF::pushOutlinesToPart( std::vector& part, std::set& lc_outlines, std::map const& object_stream_data) { QPDFObjectHandle root = getRoot(); QPDFObjectHandle outlines = root.getKey("/Outlines"); if (outlines.isNull()) { return; } outlines = getUncompressedObject(outlines, object_stream_data); QPDFObjGen outlines_og(outlines.getObjGen()); QTC::TC("qpdf", "QPDF lin outlines in part", ((&part == (&this->m->part6)) ? 0 : (&part == (&this->m->part9)) ? 1 : 9999)); // can't happen this->m->c_outline_data.first_object = outlines_og.getObj(); this->m->c_outline_data.nobjects = 1; lc_outlines.erase(outlines_og); part.push_back(outlines); for (std::set::iterator iter = lc_outlines.begin(); iter != lc_outlines.end(); ++iter) { part.push_back(objGenToIndirect(*iter)); ++this->m->c_outline_data.nobjects; } } void QPDF::getLinearizedParts( std::map const& object_stream_data, std::vector& part4, std::vector& part6, std::vector& part7, std::vector& part8, std::vector& part9) { calculateLinearizationData(object_stream_data); part4 = this->m->part4; part6 = this->m->part6; part7 = this->m->part7; part8 = this->m->part8; part9 = this->m->part9; } static inline int nbits(int val) { return (val == 0 ? 0 : (1 + nbits(val >> 1))); } int QPDF::outputLengthNextN( int in_object, int n, std::map const& lengths, std::map const& obj_renumber) { // Figure out the length of a series of n consecutive objects in // the output file starting with whatever object in_object from // the input file mapped to. assert(obj_renumber.count(in_object) > 0); int first = (*(obj_renumber.find(in_object))).second; int length = 0; for (int i = 0; i < n; ++i) { assert(lengths.count(first + i) > 0); length += (*(lengths.find(first + i))).second; } return length; } void QPDF::calculateHPageOffset( std::map const& xref, std::map const& lengths, std::map const& obj_renumber) { // Page Offset Hint Table // We are purposely leaving some values set to their initial zero // values. std::vector const& pages = getAllPages(); unsigned int npages = pages.size(); CHPageOffset& cph = this->m->c_page_offset_data; std::vector& cphe = cph.entries; // Calculate minimum and maximum values for number of objects per // page and page length. int min_nobjects = cphe.at(0).nobjects; int max_nobjects = min_nobjects; int min_length = outputLengthNextN( pages.at(0).getObjectID(), min_nobjects, lengths, obj_renumber); int max_length = min_length; int max_shared = cphe.at(0).nshared_objects; HPageOffset& ph = this->m->page_offset_hints; std::vector& phe = ph.entries; // npages is the size of the existing pages array. phe = std::vector(npages); for (unsigned int i = 0; i < npages; ++i) { // Calculate values for each page, assigning full values to // the delta items. They will be adjusted later. // Repeat calculations for page 0 so we can assign to phe[i] // without duplicating those assignments. int nobjects = cphe.at(i).nobjects; int length = outputLengthNextN( pages.at(i).getObjectID(), nobjects, lengths, obj_renumber); int nshared = cphe.at(i).nshared_objects; min_nobjects = std::min(min_nobjects, nobjects); max_nobjects = std::max(max_nobjects, nobjects); min_length = std::min(min_length, length); max_length = std::max(max_length, length); max_shared = std::max(max_shared, nshared); phe.at(i).delta_nobjects = nobjects; phe.at(i).delta_page_length = length; phe.at(i).nshared_objects = nshared; } ph.min_nobjects = min_nobjects; int in_page0_id = pages.at(0).getObjectID(); int out_page0_id = (*(obj_renumber.find(in_page0_id))).second; ph.first_page_offset = (*(xref.find(out_page0_id))).second.getOffset(); ph.nbits_delta_nobjects = nbits(max_nobjects - min_nobjects); ph.min_page_length = min_length; ph.nbits_delta_page_length = nbits(max_length - min_length); ph.nbits_nshared_objects = nbits(max_shared); ph.nbits_shared_identifier = nbits(this->m->c_shared_object_data.nshared_total); ph.shared_denominator = 4; // doesn't matter // It isn't clear how to compute content offset and content // length. Since we are not interleaving page objects with the // content stream, we'll use the same values for content length as // page length. We will use 0 as content offset because this is // what Adobe does (implementation note 127) and pdlin as well. ph.nbits_delta_content_length = ph.nbits_delta_page_length; ph.min_content_length = ph.min_page_length; for (unsigned int i = 0; i < npages; ++i) { // Adjust delta entries assert(phe.at(i).delta_nobjects >= min_nobjects); assert(phe.at(i).delta_page_length >= min_length); phe.at(i).delta_nobjects -= min_nobjects; phe.at(i).delta_page_length -= min_length; phe.at(i).delta_content_length = phe.at(i).delta_page_length; for (int j = 0; j < cphe.at(i).nshared_objects; ++j) { phe.at(i).shared_identifiers.push_back( cphe.at(i).shared_identifiers.at(j)); phe.at(i).shared_numerators.push_back(0); } } } void QPDF::calculateHSharedObject( std::map const& xref, std::map const& lengths, std::map const& obj_renumber) { CHSharedObject& cso = this->m->c_shared_object_data; std::vector& csoe = cso.entries; HSharedObject& so = this->m->shared_object_hints; std::vector& soe = so.entries; soe.clear(); int min_length = outputLengthNextN( csoe.at(0).object, 1, lengths, obj_renumber); int max_length = min_length; for (int i = 0; i < cso.nshared_total; ++i) { // Assign absolute numbers to deltas; adjust later int length = outputLengthNextN( csoe.at(i).object, 1, lengths, obj_renumber); min_length = std::min(min_length, length); max_length = std::max(max_length, length); soe.push_back(HSharedObjectEntry()); soe.at(i).delta_group_length = length; } if (soe.size() != static_cast(cso.nshared_total)) { throw std::logic_error("soe has wrong size after initialization"); } so.nshared_total = cso.nshared_total; so.nshared_first_page = cso.nshared_first_page; if (so.nshared_total > so.nshared_first_page) { so.first_shared_obj = (*(obj_renumber.find(cso.first_shared_obj))).second; so.first_shared_offset = (*(xref.find(so.first_shared_obj))).second.getOffset(); } so.min_group_length = min_length; so.nbits_delta_group_length = nbits(max_length - min_length); for (int i = 0; i < cso.nshared_total; ++i) { // Adjust deltas assert(soe.at(i).delta_group_length >= min_length); soe.at(i).delta_group_length -= min_length; } } void QPDF::calculateHOutline( std::map const& xref, std::map const& lengths, std::map const& obj_renumber) { HGeneric& cho = this->m->c_outline_data; if (cho.nobjects == 0) { return; } HGeneric& ho = this->m->outline_hints; ho.first_object = (*(obj_renumber.find(cho.first_object))).second; ho.first_object_offset = (*(xref.find(ho.first_object))).second.getOffset(); ho.nobjects = cho.nobjects; ho.group_length = outputLengthNextN( cho.first_object, ho.nobjects, lengths, obj_renumber); } template static void write_vector_int(BitWriter& w, int nitems, std::vector& vec, int bits, int_type T::*field) { // nitems times, write bits bits from the given field of the ith // vector to the given bit writer. for (int i = 0; i < nitems; ++i) { w.writeBits(vec.at(i).*field, bits); } // The PDF spec says that each hint table starts at a byte // boundary. Each "row" actually must start on a byte boundary. w.flush(); } template static void write_vector_vector(BitWriter& w, int nitems1, std::vector& vec1, int T::*nitems2, int bits, std::vector T::*vec2) { // nitems1 times, write nitems2 (from the ith element of vec1) items // from the vec2 vector field of the ith item of vec1. for (int i1 = 0; i1 < nitems1; ++i1) { for (int i2 = 0; i2 < vec1.at(i1).*nitems2; ++i2) { w.writeBits((vec1.at(i1).*vec2).at(i2), bits); } } w.flush(); } void QPDF::writeHPageOffset(BitWriter& w) { HPageOffset& t = this->m->page_offset_hints; w.writeBits(t.min_nobjects, 32); // 1 w.writeBits(t.first_page_offset, 32); // 2 w.writeBits(t.nbits_delta_nobjects, 16); // 3 w.writeBits(t.min_page_length, 32); // 4 w.writeBits(t.nbits_delta_page_length, 16); // 5 w.writeBits(t.min_content_offset, 32); // 6 w.writeBits(t.nbits_delta_content_offset, 16); // 7 w.writeBits(t.min_content_length, 32); // 8 w.writeBits(t.nbits_delta_content_length, 16); // 9 w.writeBits(t.nbits_nshared_objects, 16); // 10 w.writeBits(t.nbits_shared_identifier, 16); // 11 w.writeBits(t.nbits_shared_numerator, 16); // 12 w.writeBits(t.shared_denominator, 16); // 13 unsigned int nitems = getAllPages().size(); std::vector& entries = t.entries; write_vector_int(w, nitems, entries, t.nbits_delta_nobjects, &HPageOffsetEntry::delta_nobjects); write_vector_int(w, nitems, entries, t.nbits_delta_page_length, &HPageOffsetEntry::delta_page_length); write_vector_int(w, nitems, entries, t.nbits_nshared_objects, &HPageOffsetEntry::nshared_objects); write_vector_vector(w, nitems, entries, &HPageOffsetEntry::nshared_objects, t.nbits_shared_identifier, &HPageOffsetEntry::shared_identifiers); write_vector_vector(w, nitems, entries, &HPageOffsetEntry::nshared_objects, t.nbits_shared_numerator, &HPageOffsetEntry::shared_numerators); write_vector_int(w, nitems, entries, t.nbits_delta_content_offset, &HPageOffsetEntry::delta_content_offset); write_vector_int(w, nitems, entries, t.nbits_delta_content_length, &HPageOffsetEntry::delta_content_length); } void QPDF::writeHSharedObject(BitWriter& w) { HSharedObject& t = this->m->shared_object_hints; w.writeBits(t.first_shared_obj, 32); // 1 w.writeBits(t.first_shared_offset, 32); // 2 w.writeBits(t.nshared_first_page, 32); // 3 w.writeBits(t.nshared_total, 32); // 4 w.writeBits(t.nbits_nobjects, 16); // 5 w.writeBits(t.min_group_length, 32); // 6 w.writeBits(t.nbits_delta_group_length, 16); // 7 QTC::TC("qpdf", "QPDF lin write nshared_total > nshared_first_page", (t.nshared_total > t.nshared_first_page) ? 1 : 0); int nitems = t.nshared_total; std::vector& entries = t.entries; write_vector_int(w, nitems, entries, t.nbits_delta_group_length, &HSharedObjectEntry::delta_group_length); write_vector_int(w, nitems, entries, 1, &HSharedObjectEntry::signature_present); for (int i = 0; i < nitems; ++i) { // If signature were present, we'd have to write a 128-bit hash. assert(entries.at(i).signature_present == 0); } write_vector_int(w, nitems, entries, t.nbits_nobjects, &HSharedObjectEntry::nobjects_minus_one); } void QPDF::writeHGeneric(BitWriter& w, HGeneric& t) { w.writeBits(t.first_object, 32); // 1 w.writeBits(t.first_object_offset, 32); // 2 w.writeBits(t.nobjects, 32); // 3 w.writeBits(t.group_length, 32); // 4 } void QPDF::generateHintStream(std::map const& xref, std::map const& lengths, std::map const& obj_renumber, PointerHolder& hint_buffer, int& S, int& O) { // Populate actual hint table values calculateHPageOffset(xref, lengths, obj_renumber); calculateHSharedObject(xref, lengths, obj_renumber); calculateHOutline(xref, lengths, obj_renumber); // Write the hint stream itself into a compressed memory buffer. // Write through a counter so we can get offsets. Pl_Buffer hint_stream("hint stream"); Pl_Flate f("compress hint stream", &hint_stream, Pl_Flate::a_deflate); Pl_Count c("count", &f); BitWriter w(&c); writeHPageOffset(w); S = c.getCount(); writeHSharedObject(w); O = 0; if (this->m->outline_hints.nobjects > 0) { O = c.getCount(); writeHGeneric(w, this->m->outline_hints); } c.finish(); hint_buffer = hint_stream.getBuffer(); } qpdf-8.0.2/libqpdf/Pl_RunLength.cc0000644000064100006410000001042313247541377015037 0ustar ejbejb#include #include #include Pl_RunLength::Pl_RunLength(char const* identifier, Pipeline* next, action_e action) : Pipeline(identifier, next), action(action), state(st_top), length(0) { } Pl_RunLength::~Pl_RunLength() { } void Pl_RunLength::write(unsigned char* data, size_t len) { if (this->action == a_encode) { encode(data, len); } else { decode(data, len); } } void Pl_RunLength::encode(unsigned char* data, size_t len) { for (size_t i = 0; i < len; ++i) { if ((this->state == st_top) != (this->length <= 1)) { throw std::logic_error( "Pl_RunLength::encode: state/length inconsistency"); } unsigned char ch = data[i]; if ((this->length > 0) && ((this->state == st_copying) || (this->length < 128)) && (ch == this->buf[this->length-1])) { QTC::TC("libtests", "Pl_RunLength: switch to run", (this->length == 128) ? 0 : 1); if (this->state == st_copying) { --this->length; flush_encode(); this->buf[0] = ch; this->length = 1; } this->state = st_run; this->buf[this->length] = ch; ++this->length; } else { if ((this->length == 128) || (this->state == st_run)) { flush_encode(); } else if (this->length > 0) { this->state = st_copying; } this->buf[this->length] = ch; ++this->length; } } } void Pl_RunLength::decode(unsigned char* data, size_t len) { for (size_t i = 0; i < len; ++i) { unsigned char ch = data[i]; switch (this->state) { case st_top: if (ch < 128) { // length represents remaining number of bytes to copy this->length = 1 + ch; this->state = st_copying; } else if (ch > 128) { // length represents number of copies of next byte this->length = 257 - ch; this->state = st_run; } else // ch == 128 { // EOD; stay in this state } break; case st_copying: this->getNext()->write(&ch, 1); if (--this->length == 0) { this->state = st_top; } break; case st_run: for (unsigned int j = 0; j < this->length; ++j) { this->getNext()->write(&ch, 1); } this->state = st_top; break; } } } void Pl_RunLength::flush_encode() { if (this->length == 128) { QTC::TC("libtests", "Pl_RunLength flush full buffer", (this->state == st_copying ? 0 : this->state == st_run ? 1 : -1)); } if (this->length == 0) { QTC::TC("libtests", "Pl_RunLength flush empty buffer"); } if (this->state == st_run) { if ((this->length < 2) || (this->length > 128)) { throw std::logic_error( "Pl_RunLength: invalid length in flush_encode for run"); } unsigned char ch = static_cast(257 - this->length); this->getNext()->write(&ch, 1); this->getNext()->write(&this->buf[0], 1); } else if (this->length > 0) { unsigned char ch = static_cast(this->length - 1); this->getNext()->write(&ch, 1); this->getNext()->write(this->buf, this->length); } this->state = st_top; this->length = 0; } void Pl_RunLength::finish() { // When decoding, we might have read a length byte not followed by // data, which means the stream was terminated early, but we will // just ignore this case since this is the only sensible thing to // do. if (this->action == a_encode) { flush_encode(); unsigned char ch = 128; this->getNext()->write(&ch, 1); } this->getNext()->finish(); } qpdf-8.0.2/libqpdf/rijndael.cc0000644000064100006410000015657013247541377014304 0ustar ejbejb#define FULL_UNROLL #include "qpdf/rijndael.h" typedef uint32_t u32; typedef unsigned char u8; static const u32 Te0[256] = { 0xc66363a5U, 0xf87c7c84U, 0xee777799U, 0xf67b7b8dU, 0xfff2f20dU, 0xd66b6bbdU, 0xde6f6fb1U, 0x91c5c554U, 0x60303050U, 0x02010103U, 0xce6767a9U, 0x562b2b7dU, 0xe7fefe19U, 0xb5d7d762U, 0x4dababe6U, 0xec76769aU, 0x8fcaca45U, 0x1f82829dU, 0x89c9c940U, 0xfa7d7d87U, 0xeffafa15U, 0xb25959ebU, 0x8e4747c9U, 0xfbf0f00bU, 0x41adadecU, 0xb3d4d467U, 0x5fa2a2fdU, 0x45afafeaU, 0x239c9cbfU, 0x53a4a4f7U, 0xe4727296U, 0x9bc0c05bU, 0x75b7b7c2U, 0xe1fdfd1cU, 0x3d9393aeU, 0x4c26266aU, 0x6c36365aU, 0x7e3f3f41U, 0xf5f7f702U, 0x83cccc4fU, 0x6834345cU, 0x51a5a5f4U, 0xd1e5e534U, 0xf9f1f108U, 0xe2717193U, 0xabd8d873U, 0x62313153U, 0x2a15153fU, 0x0804040cU, 0x95c7c752U, 0x46232365U, 0x9dc3c35eU, 0x30181828U, 0x379696a1U, 0x0a05050fU, 0x2f9a9ab5U, 0x0e070709U, 0x24121236U, 0x1b80809bU, 0xdfe2e23dU, 0xcdebeb26U, 0x4e272769U, 0x7fb2b2cdU, 0xea75759fU, 0x1209091bU, 0x1d83839eU, 0x582c2c74U, 0x341a1a2eU, 0x361b1b2dU, 0xdc6e6eb2U, 0xb45a5aeeU, 0x5ba0a0fbU, 0xa45252f6U, 0x763b3b4dU, 0xb7d6d661U, 0x7db3b3ceU, 0x5229297bU, 0xdde3e33eU, 0x5e2f2f71U, 0x13848497U, 0xa65353f5U, 0xb9d1d168U, 0x00000000U, 0xc1eded2cU, 0x40202060U, 0xe3fcfc1fU, 0x79b1b1c8U, 0xb65b5bedU, 0xd46a6abeU, 0x8dcbcb46U, 0x67bebed9U, 0x7239394bU, 0x944a4adeU, 0x984c4cd4U, 0xb05858e8U, 0x85cfcf4aU, 0xbbd0d06bU, 0xc5efef2aU, 0x4faaaae5U, 0xedfbfb16U, 0x864343c5U, 0x9a4d4dd7U, 0x66333355U, 0x11858594U, 0x8a4545cfU, 0xe9f9f910U, 0x04020206U, 0xfe7f7f81U, 0xa05050f0U, 0x783c3c44U, 0x259f9fbaU, 0x4ba8a8e3U, 0xa25151f3U, 0x5da3a3feU, 0x804040c0U, 0x058f8f8aU, 0x3f9292adU, 0x219d9dbcU, 0x70383848U, 0xf1f5f504U, 0x63bcbcdfU, 0x77b6b6c1U, 0xafdada75U, 0x42212163U, 0x20101030U, 0xe5ffff1aU, 0xfdf3f30eU, 0xbfd2d26dU, 0x81cdcd4cU, 0x180c0c14U, 0x26131335U, 0xc3ecec2fU, 0xbe5f5fe1U, 0x359797a2U, 0x884444ccU, 0x2e171739U, 0x93c4c457U, 0x55a7a7f2U, 0xfc7e7e82U, 0x7a3d3d47U, 0xc86464acU, 0xba5d5de7U, 0x3219192bU, 0xe6737395U, 0xc06060a0U, 0x19818198U, 0x9e4f4fd1U, 0xa3dcdc7fU, 0x44222266U, 0x542a2a7eU, 0x3b9090abU, 0x0b888883U, 0x8c4646caU, 0xc7eeee29U, 0x6bb8b8d3U, 0x2814143cU, 0xa7dede79U, 0xbc5e5ee2U, 0x160b0b1dU, 0xaddbdb76U, 0xdbe0e03bU, 0x64323256U, 0x743a3a4eU, 0x140a0a1eU, 0x924949dbU, 0x0c06060aU, 0x4824246cU, 0xb85c5ce4U, 0x9fc2c25dU, 0xbdd3d36eU, 0x43acacefU, 0xc46262a6U, 0x399191a8U, 0x319595a4U, 0xd3e4e437U, 0xf279798bU, 0xd5e7e732U, 0x8bc8c843U, 0x6e373759U, 0xda6d6db7U, 0x018d8d8cU, 0xb1d5d564U, 0x9c4e4ed2U, 0x49a9a9e0U, 0xd86c6cb4U, 0xac5656faU, 0xf3f4f407U, 0xcfeaea25U, 0xca6565afU, 0xf47a7a8eU, 0x47aeaee9U, 0x10080818U, 0x6fbabad5U, 0xf0787888U, 0x4a25256fU, 0x5c2e2e72U, 0x381c1c24U, 0x57a6a6f1U, 0x73b4b4c7U, 0x97c6c651U, 0xcbe8e823U, 0xa1dddd7cU, 0xe874749cU, 0x3e1f1f21U, 0x964b4bddU, 0x61bdbddcU, 0x0d8b8b86U, 0x0f8a8a85U, 0xe0707090U, 0x7c3e3e42U, 0x71b5b5c4U, 0xcc6666aaU, 0x904848d8U, 0x06030305U, 0xf7f6f601U, 0x1c0e0e12U, 0xc26161a3U, 0x6a35355fU, 0xae5757f9U, 0x69b9b9d0U, 0x17868691U, 0x99c1c158U, 0x3a1d1d27U, 0x279e9eb9U, 0xd9e1e138U, 0xebf8f813U, 0x2b9898b3U, 0x22111133U, 0xd26969bbU, 0xa9d9d970U, 0x078e8e89U, 0x339494a7U, 0x2d9b9bb6U, 0x3c1e1e22U, 0x15878792U, 0xc9e9e920U, 0x87cece49U, 0xaa5555ffU, 0x50282878U, 0xa5dfdf7aU, 0x038c8c8fU, 0x59a1a1f8U, 0x09898980U, 0x1a0d0d17U, 0x65bfbfdaU, 0xd7e6e631U, 0x844242c6U, 0xd06868b8U, 0x824141c3U, 0x299999b0U, 0x5a2d2d77U, 0x1e0f0f11U, 0x7bb0b0cbU, 0xa85454fcU, 0x6dbbbbd6U, 0x2c16163aU, }; static const u32 Te1[256] = { 0xa5c66363U, 0x84f87c7cU, 0x99ee7777U, 0x8df67b7bU, 0x0dfff2f2U, 0xbdd66b6bU, 0xb1de6f6fU, 0x5491c5c5U, 0x50603030U, 0x03020101U, 0xa9ce6767U, 0x7d562b2bU, 0x19e7fefeU, 0x62b5d7d7U, 0xe64dababU, 0x9aec7676U, 0x458fcacaU, 0x9d1f8282U, 0x4089c9c9U, 0x87fa7d7dU, 0x15effafaU, 0xebb25959U, 0xc98e4747U, 0x0bfbf0f0U, 0xec41adadU, 0x67b3d4d4U, 0xfd5fa2a2U, 0xea45afafU, 0xbf239c9cU, 0xf753a4a4U, 0x96e47272U, 0x5b9bc0c0U, 0xc275b7b7U, 0x1ce1fdfdU, 0xae3d9393U, 0x6a4c2626U, 0x5a6c3636U, 0x417e3f3fU, 0x02f5f7f7U, 0x4f83ccccU, 0x5c683434U, 0xf451a5a5U, 0x34d1e5e5U, 0x08f9f1f1U, 0x93e27171U, 0x73abd8d8U, 0x53623131U, 0x3f2a1515U, 0x0c080404U, 0x5295c7c7U, 0x65462323U, 0x5e9dc3c3U, 0x28301818U, 0xa1379696U, 0x0f0a0505U, 0xb52f9a9aU, 0x090e0707U, 0x36241212U, 0x9b1b8080U, 0x3ddfe2e2U, 0x26cdebebU, 0x694e2727U, 0xcd7fb2b2U, 0x9fea7575U, 0x1b120909U, 0x9e1d8383U, 0x74582c2cU, 0x2e341a1aU, 0x2d361b1bU, 0xb2dc6e6eU, 0xeeb45a5aU, 0xfb5ba0a0U, 0xf6a45252U, 0x4d763b3bU, 0x61b7d6d6U, 0xce7db3b3U, 0x7b522929U, 0x3edde3e3U, 0x715e2f2fU, 0x97138484U, 0xf5a65353U, 0x68b9d1d1U, 0x00000000U, 0x2cc1ededU, 0x60402020U, 0x1fe3fcfcU, 0xc879b1b1U, 0xedb65b5bU, 0xbed46a6aU, 0x468dcbcbU, 0xd967bebeU, 0x4b723939U, 0xde944a4aU, 0xd4984c4cU, 0xe8b05858U, 0x4a85cfcfU, 0x6bbbd0d0U, 0x2ac5efefU, 0xe54faaaaU, 0x16edfbfbU, 0xc5864343U, 0xd79a4d4dU, 0x55663333U, 0x94118585U, 0xcf8a4545U, 0x10e9f9f9U, 0x06040202U, 0x81fe7f7fU, 0xf0a05050U, 0x44783c3cU, 0xba259f9fU, 0xe34ba8a8U, 0xf3a25151U, 0xfe5da3a3U, 0xc0804040U, 0x8a058f8fU, 0xad3f9292U, 0xbc219d9dU, 0x48703838U, 0x04f1f5f5U, 0xdf63bcbcU, 0xc177b6b6U, 0x75afdadaU, 0x63422121U, 0x30201010U, 0x1ae5ffffU, 0x0efdf3f3U, 0x6dbfd2d2U, 0x4c81cdcdU, 0x14180c0cU, 0x35261313U, 0x2fc3ececU, 0xe1be5f5fU, 0xa2359797U, 0xcc884444U, 0x392e1717U, 0x5793c4c4U, 0xf255a7a7U, 0x82fc7e7eU, 0x477a3d3dU, 0xacc86464U, 0xe7ba5d5dU, 0x2b321919U, 0x95e67373U, 0xa0c06060U, 0x98198181U, 0xd19e4f4fU, 0x7fa3dcdcU, 0x66442222U, 0x7e542a2aU, 0xab3b9090U, 0x830b8888U, 0xca8c4646U, 0x29c7eeeeU, 0xd36bb8b8U, 0x3c281414U, 0x79a7dedeU, 0xe2bc5e5eU, 0x1d160b0bU, 0x76addbdbU, 0x3bdbe0e0U, 0x56643232U, 0x4e743a3aU, 0x1e140a0aU, 0xdb924949U, 0x0a0c0606U, 0x6c482424U, 0xe4b85c5cU, 0x5d9fc2c2U, 0x6ebdd3d3U, 0xef43acacU, 0xa6c46262U, 0xa8399191U, 0xa4319595U, 0x37d3e4e4U, 0x8bf27979U, 0x32d5e7e7U, 0x438bc8c8U, 0x596e3737U, 0xb7da6d6dU, 0x8c018d8dU, 0x64b1d5d5U, 0xd29c4e4eU, 0xe049a9a9U, 0xb4d86c6cU, 0xfaac5656U, 0x07f3f4f4U, 0x25cfeaeaU, 0xafca6565U, 0x8ef47a7aU, 0xe947aeaeU, 0x18100808U, 0xd56fbabaU, 0x88f07878U, 0x6f4a2525U, 0x725c2e2eU, 0x24381c1cU, 0xf157a6a6U, 0xc773b4b4U, 0x5197c6c6U, 0x23cbe8e8U, 0x7ca1ddddU, 0x9ce87474U, 0x213e1f1fU, 0xdd964b4bU, 0xdc61bdbdU, 0x860d8b8bU, 0x850f8a8aU, 0x90e07070U, 0x427c3e3eU, 0xc471b5b5U, 0xaacc6666U, 0xd8904848U, 0x05060303U, 0x01f7f6f6U, 0x121c0e0eU, 0xa3c26161U, 0x5f6a3535U, 0xf9ae5757U, 0xd069b9b9U, 0x91178686U, 0x5899c1c1U, 0x273a1d1dU, 0xb9279e9eU, 0x38d9e1e1U, 0x13ebf8f8U, 0xb32b9898U, 0x33221111U, 0xbbd26969U, 0x70a9d9d9U, 0x89078e8eU, 0xa7339494U, 0xb62d9b9bU, 0x223c1e1eU, 0x92158787U, 0x20c9e9e9U, 0x4987ceceU, 0xffaa5555U, 0x78502828U, 0x7aa5dfdfU, 0x8f038c8cU, 0xf859a1a1U, 0x80098989U, 0x171a0d0dU, 0xda65bfbfU, 0x31d7e6e6U, 0xc6844242U, 0xb8d06868U, 0xc3824141U, 0xb0299999U, 0x775a2d2dU, 0x111e0f0fU, 0xcb7bb0b0U, 0xfca85454U, 0xd66dbbbbU, 0x3a2c1616U, }; static const u32 Te2[256] = { 0x63a5c663U, 0x7c84f87cU, 0x7799ee77U, 0x7b8df67bU, 0xf20dfff2U, 0x6bbdd66bU, 0x6fb1de6fU, 0xc55491c5U, 0x30506030U, 0x01030201U, 0x67a9ce67U, 0x2b7d562bU, 0xfe19e7feU, 0xd762b5d7U, 0xabe64dabU, 0x769aec76U, 0xca458fcaU, 0x829d1f82U, 0xc94089c9U, 0x7d87fa7dU, 0xfa15effaU, 0x59ebb259U, 0x47c98e47U, 0xf00bfbf0U, 0xadec41adU, 0xd467b3d4U, 0xa2fd5fa2U, 0xafea45afU, 0x9cbf239cU, 0xa4f753a4U, 0x7296e472U, 0xc05b9bc0U, 0xb7c275b7U, 0xfd1ce1fdU, 0x93ae3d93U, 0x266a4c26U, 0x365a6c36U, 0x3f417e3fU, 0xf702f5f7U, 0xcc4f83ccU, 0x345c6834U, 0xa5f451a5U, 0xe534d1e5U, 0xf108f9f1U, 0x7193e271U, 0xd873abd8U, 0x31536231U, 0x153f2a15U, 0x040c0804U, 0xc75295c7U, 0x23654623U, 0xc35e9dc3U, 0x18283018U, 0x96a13796U, 0x050f0a05U, 0x9ab52f9aU, 0x07090e07U, 0x12362412U, 0x809b1b80U, 0xe23ddfe2U, 0xeb26cdebU, 0x27694e27U, 0xb2cd7fb2U, 0x759fea75U, 0x091b1209U, 0x839e1d83U, 0x2c74582cU, 0x1a2e341aU, 0x1b2d361bU, 0x6eb2dc6eU, 0x5aeeb45aU, 0xa0fb5ba0U, 0x52f6a452U, 0x3b4d763bU, 0xd661b7d6U, 0xb3ce7db3U, 0x297b5229U, 0xe33edde3U, 0x2f715e2fU, 0x84971384U, 0x53f5a653U, 0xd168b9d1U, 0x00000000U, 0xed2cc1edU, 0x20604020U, 0xfc1fe3fcU, 0xb1c879b1U, 0x5bedb65bU, 0x6abed46aU, 0xcb468dcbU, 0xbed967beU, 0x394b7239U, 0x4ade944aU, 0x4cd4984cU, 0x58e8b058U, 0xcf4a85cfU, 0xd06bbbd0U, 0xef2ac5efU, 0xaae54faaU, 0xfb16edfbU, 0x43c58643U, 0x4dd79a4dU, 0x33556633U, 0x85941185U, 0x45cf8a45U, 0xf910e9f9U, 0x02060402U, 0x7f81fe7fU, 0x50f0a050U, 0x3c44783cU, 0x9fba259fU, 0xa8e34ba8U, 0x51f3a251U, 0xa3fe5da3U, 0x40c08040U, 0x8f8a058fU, 0x92ad3f92U, 0x9dbc219dU, 0x38487038U, 0xf504f1f5U, 0xbcdf63bcU, 0xb6c177b6U, 0xda75afdaU, 0x21634221U, 0x10302010U, 0xff1ae5ffU, 0xf30efdf3U, 0xd26dbfd2U, 0xcd4c81cdU, 0x0c14180cU, 0x13352613U, 0xec2fc3ecU, 0x5fe1be5fU, 0x97a23597U, 0x44cc8844U, 0x17392e17U, 0xc45793c4U, 0xa7f255a7U, 0x7e82fc7eU, 0x3d477a3dU, 0x64acc864U, 0x5de7ba5dU, 0x192b3219U, 0x7395e673U, 0x60a0c060U, 0x81981981U, 0x4fd19e4fU, 0xdc7fa3dcU, 0x22664422U, 0x2a7e542aU, 0x90ab3b90U, 0x88830b88U, 0x46ca8c46U, 0xee29c7eeU, 0xb8d36bb8U, 0x143c2814U, 0xde79a7deU, 0x5ee2bc5eU, 0x0b1d160bU, 0xdb76addbU, 0xe03bdbe0U, 0x32566432U, 0x3a4e743aU, 0x0a1e140aU, 0x49db9249U, 0x060a0c06U, 0x246c4824U, 0x5ce4b85cU, 0xc25d9fc2U, 0xd36ebdd3U, 0xacef43acU, 0x62a6c462U, 0x91a83991U, 0x95a43195U, 0xe437d3e4U, 0x798bf279U, 0xe732d5e7U, 0xc8438bc8U, 0x37596e37U, 0x6db7da6dU, 0x8d8c018dU, 0xd564b1d5U, 0x4ed29c4eU, 0xa9e049a9U, 0x6cb4d86cU, 0x56faac56U, 0xf407f3f4U, 0xea25cfeaU, 0x65afca65U, 0x7a8ef47aU, 0xaee947aeU, 0x08181008U, 0xbad56fbaU, 0x7888f078U, 0x256f4a25U, 0x2e725c2eU, 0x1c24381cU, 0xa6f157a6U, 0xb4c773b4U, 0xc65197c6U, 0xe823cbe8U, 0xdd7ca1ddU, 0x749ce874U, 0x1f213e1fU, 0x4bdd964bU, 0xbddc61bdU, 0x8b860d8bU, 0x8a850f8aU, 0x7090e070U, 0x3e427c3eU, 0xb5c471b5U, 0x66aacc66U, 0x48d89048U, 0x03050603U, 0xf601f7f6U, 0x0e121c0eU, 0x61a3c261U, 0x355f6a35U, 0x57f9ae57U, 0xb9d069b9U, 0x86911786U, 0xc15899c1U, 0x1d273a1dU, 0x9eb9279eU, 0xe138d9e1U, 0xf813ebf8U, 0x98b32b98U, 0x11332211U, 0x69bbd269U, 0xd970a9d9U, 0x8e89078eU, 0x94a73394U, 0x9bb62d9bU, 0x1e223c1eU, 0x87921587U, 0xe920c9e9U, 0xce4987ceU, 0x55ffaa55U, 0x28785028U, 0xdf7aa5dfU, 0x8c8f038cU, 0xa1f859a1U, 0x89800989U, 0x0d171a0dU, 0xbfda65bfU, 0xe631d7e6U, 0x42c68442U, 0x68b8d068U, 0x41c38241U, 0x99b02999U, 0x2d775a2dU, 0x0f111e0fU, 0xb0cb7bb0U, 0x54fca854U, 0xbbd66dbbU, 0x163a2c16U, }; static const u32 Te3[256] = { 0x6363a5c6U, 0x7c7c84f8U, 0x777799eeU, 0x7b7b8df6U, 0xf2f20dffU, 0x6b6bbdd6U, 0x6f6fb1deU, 0xc5c55491U, 0x30305060U, 0x01010302U, 0x6767a9ceU, 0x2b2b7d56U, 0xfefe19e7U, 0xd7d762b5U, 0xababe64dU, 0x76769aecU, 0xcaca458fU, 0x82829d1fU, 0xc9c94089U, 0x7d7d87faU, 0xfafa15efU, 0x5959ebb2U, 0x4747c98eU, 0xf0f00bfbU, 0xadadec41U, 0xd4d467b3U, 0xa2a2fd5fU, 0xafafea45U, 0x9c9cbf23U, 0xa4a4f753U, 0x727296e4U, 0xc0c05b9bU, 0xb7b7c275U, 0xfdfd1ce1U, 0x9393ae3dU, 0x26266a4cU, 0x36365a6cU, 0x3f3f417eU, 0xf7f702f5U, 0xcccc4f83U, 0x34345c68U, 0xa5a5f451U, 0xe5e534d1U, 0xf1f108f9U, 0x717193e2U, 0xd8d873abU, 0x31315362U, 0x15153f2aU, 0x04040c08U, 0xc7c75295U, 0x23236546U, 0xc3c35e9dU, 0x18182830U, 0x9696a137U, 0x05050f0aU, 0x9a9ab52fU, 0x0707090eU, 0x12123624U, 0x80809b1bU, 0xe2e23ddfU, 0xebeb26cdU, 0x2727694eU, 0xb2b2cd7fU, 0x75759feaU, 0x09091b12U, 0x83839e1dU, 0x2c2c7458U, 0x1a1a2e34U, 0x1b1b2d36U, 0x6e6eb2dcU, 0x5a5aeeb4U, 0xa0a0fb5bU, 0x5252f6a4U, 0x3b3b4d76U, 0xd6d661b7U, 0xb3b3ce7dU, 0x29297b52U, 0xe3e33eddU, 0x2f2f715eU, 0x84849713U, 0x5353f5a6U, 0xd1d168b9U, 0x00000000U, 0xeded2cc1U, 0x20206040U, 0xfcfc1fe3U, 0xb1b1c879U, 0x5b5bedb6U, 0x6a6abed4U, 0xcbcb468dU, 0xbebed967U, 0x39394b72U, 0x4a4ade94U, 0x4c4cd498U, 0x5858e8b0U, 0xcfcf4a85U, 0xd0d06bbbU, 0xefef2ac5U, 0xaaaae54fU, 0xfbfb16edU, 0x4343c586U, 0x4d4dd79aU, 0x33335566U, 0x85859411U, 0x4545cf8aU, 0xf9f910e9U, 0x02020604U, 0x7f7f81feU, 0x5050f0a0U, 0x3c3c4478U, 0x9f9fba25U, 0xa8a8e34bU, 0x5151f3a2U, 0xa3a3fe5dU, 0x4040c080U, 0x8f8f8a05U, 0x9292ad3fU, 0x9d9dbc21U, 0x38384870U, 0xf5f504f1U, 0xbcbcdf63U, 0xb6b6c177U, 0xdada75afU, 0x21216342U, 0x10103020U, 0xffff1ae5U, 0xf3f30efdU, 0xd2d26dbfU, 0xcdcd4c81U, 0x0c0c1418U, 0x13133526U, 0xecec2fc3U, 0x5f5fe1beU, 0x9797a235U, 0x4444cc88U, 0x1717392eU, 0xc4c45793U, 0xa7a7f255U, 0x7e7e82fcU, 0x3d3d477aU, 0x6464acc8U, 0x5d5de7baU, 0x19192b32U, 0x737395e6U, 0x6060a0c0U, 0x81819819U, 0x4f4fd19eU, 0xdcdc7fa3U, 0x22226644U, 0x2a2a7e54U, 0x9090ab3bU, 0x8888830bU, 0x4646ca8cU, 0xeeee29c7U, 0xb8b8d36bU, 0x14143c28U, 0xdede79a7U, 0x5e5ee2bcU, 0x0b0b1d16U, 0xdbdb76adU, 0xe0e03bdbU, 0x32325664U, 0x3a3a4e74U, 0x0a0a1e14U, 0x4949db92U, 0x06060a0cU, 0x24246c48U, 0x5c5ce4b8U, 0xc2c25d9fU, 0xd3d36ebdU, 0xacacef43U, 0x6262a6c4U, 0x9191a839U, 0x9595a431U, 0xe4e437d3U, 0x79798bf2U, 0xe7e732d5U, 0xc8c8438bU, 0x3737596eU, 0x6d6db7daU, 0x8d8d8c01U, 0xd5d564b1U, 0x4e4ed29cU, 0xa9a9e049U, 0x6c6cb4d8U, 0x5656faacU, 0xf4f407f3U, 0xeaea25cfU, 0x6565afcaU, 0x7a7a8ef4U, 0xaeaee947U, 0x08081810U, 0xbabad56fU, 0x787888f0U, 0x25256f4aU, 0x2e2e725cU, 0x1c1c2438U, 0xa6a6f157U, 0xb4b4c773U, 0xc6c65197U, 0xe8e823cbU, 0xdddd7ca1U, 0x74749ce8U, 0x1f1f213eU, 0x4b4bdd96U, 0xbdbddc61U, 0x8b8b860dU, 0x8a8a850fU, 0x707090e0U, 0x3e3e427cU, 0xb5b5c471U, 0x6666aaccU, 0x4848d890U, 0x03030506U, 0xf6f601f7U, 0x0e0e121cU, 0x6161a3c2U, 0x35355f6aU, 0x5757f9aeU, 0xb9b9d069U, 0x86869117U, 0xc1c15899U, 0x1d1d273aU, 0x9e9eb927U, 0xe1e138d9U, 0xf8f813ebU, 0x9898b32bU, 0x11113322U, 0x6969bbd2U, 0xd9d970a9U, 0x8e8e8907U, 0x9494a733U, 0x9b9bb62dU, 0x1e1e223cU, 0x87879215U, 0xe9e920c9U, 0xcece4987U, 0x5555ffaaU, 0x28287850U, 0xdfdf7aa5U, 0x8c8c8f03U, 0xa1a1f859U, 0x89898009U, 0x0d0d171aU, 0xbfbfda65U, 0xe6e631d7U, 0x4242c684U, 0x6868b8d0U, 0x4141c382U, 0x9999b029U, 0x2d2d775aU, 0x0f0f111eU, 0xb0b0cb7bU, 0x5454fca8U, 0xbbbbd66dU, 0x16163a2cU, }; static const u32 Te4[256] = { 0x63636363U, 0x7c7c7c7cU, 0x77777777U, 0x7b7b7b7bU, 0xf2f2f2f2U, 0x6b6b6b6bU, 0x6f6f6f6fU, 0xc5c5c5c5U, 0x30303030U, 0x01010101U, 0x67676767U, 0x2b2b2b2bU, 0xfefefefeU, 0xd7d7d7d7U, 0xababababU, 0x76767676U, 0xcacacacaU, 0x82828282U, 0xc9c9c9c9U, 0x7d7d7d7dU, 0xfafafafaU, 0x59595959U, 0x47474747U, 0xf0f0f0f0U, 0xadadadadU, 0xd4d4d4d4U, 0xa2a2a2a2U, 0xafafafafU, 0x9c9c9c9cU, 0xa4a4a4a4U, 0x72727272U, 0xc0c0c0c0U, 0xb7b7b7b7U, 0xfdfdfdfdU, 0x93939393U, 0x26262626U, 0x36363636U, 0x3f3f3f3fU, 0xf7f7f7f7U, 0xccccccccU, 0x34343434U, 0xa5a5a5a5U, 0xe5e5e5e5U, 0xf1f1f1f1U, 0x71717171U, 0xd8d8d8d8U, 0x31313131U, 0x15151515U, 0x04040404U, 0xc7c7c7c7U, 0x23232323U, 0xc3c3c3c3U, 0x18181818U, 0x96969696U, 0x05050505U, 0x9a9a9a9aU, 0x07070707U, 0x12121212U, 0x80808080U, 0xe2e2e2e2U, 0xebebebebU, 0x27272727U, 0xb2b2b2b2U, 0x75757575U, 0x09090909U, 0x83838383U, 0x2c2c2c2cU, 0x1a1a1a1aU, 0x1b1b1b1bU, 0x6e6e6e6eU, 0x5a5a5a5aU, 0xa0a0a0a0U, 0x52525252U, 0x3b3b3b3bU, 0xd6d6d6d6U, 0xb3b3b3b3U, 0x29292929U, 0xe3e3e3e3U, 0x2f2f2f2fU, 0x84848484U, 0x53535353U, 0xd1d1d1d1U, 0x00000000U, 0xededededU, 0x20202020U, 0xfcfcfcfcU, 0xb1b1b1b1U, 0x5b5b5b5bU, 0x6a6a6a6aU, 0xcbcbcbcbU, 0xbebebebeU, 0x39393939U, 0x4a4a4a4aU, 0x4c4c4c4cU, 0x58585858U, 0xcfcfcfcfU, 0xd0d0d0d0U, 0xefefefefU, 0xaaaaaaaaU, 0xfbfbfbfbU, 0x43434343U, 0x4d4d4d4dU, 0x33333333U, 0x85858585U, 0x45454545U, 0xf9f9f9f9U, 0x02020202U, 0x7f7f7f7fU, 0x50505050U, 0x3c3c3c3cU, 0x9f9f9f9fU, 0xa8a8a8a8U, 0x51515151U, 0xa3a3a3a3U, 0x40404040U, 0x8f8f8f8fU, 0x92929292U, 0x9d9d9d9dU, 0x38383838U, 0xf5f5f5f5U, 0xbcbcbcbcU, 0xb6b6b6b6U, 0xdadadadaU, 0x21212121U, 0x10101010U, 0xffffffffU, 0xf3f3f3f3U, 0xd2d2d2d2U, 0xcdcdcdcdU, 0x0c0c0c0cU, 0x13131313U, 0xececececU, 0x5f5f5f5fU, 0x97979797U, 0x44444444U, 0x17171717U, 0xc4c4c4c4U, 0xa7a7a7a7U, 0x7e7e7e7eU, 0x3d3d3d3dU, 0x64646464U, 0x5d5d5d5dU, 0x19191919U, 0x73737373U, 0x60606060U, 0x81818181U, 0x4f4f4f4fU, 0xdcdcdcdcU, 0x22222222U, 0x2a2a2a2aU, 0x90909090U, 0x88888888U, 0x46464646U, 0xeeeeeeeeU, 0xb8b8b8b8U, 0x14141414U, 0xdedededeU, 0x5e5e5e5eU, 0x0b0b0b0bU, 0xdbdbdbdbU, 0xe0e0e0e0U, 0x32323232U, 0x3a3a3a3aU, 0x0a0a0a0aU, 0x49494949U, 0x06060606U, 0x24242424U, 0x5c5c5c5cU, 0xc2c2c2c2U, 0xd3d3d3d3U, 0xacacacacU, 0x62626262U, 0x91919191U, 0x95959595U, 0xe4e4e4e4U, 0x79797979U, 0xe7e7e7e7U, 0xc8c8c8c8U, 0x37373737U, 0x6d6d6d6dU, 0x8d8d8d8dU, 0xd5d5d5d5U, 0x4e4e4e4eU, 0xa9a9a9a9U, 0x6c6c6c6cU, 0x56565656U, 0xf4f4f4f4U, 0xeaeaeaeaU, 0x65656565U, 0x7a7a7a7aU, 0xaeaeaeaeU, 0x08080808U, 0xbabababaU, 0x78787878U, 0x25252525U, 0x2e2e2e2eU, 0x1c1c1c1cU, 0xa6a6a6a6U, 0xb4b4b4b4U, 0xc6c6c6c6U, 0xe8e8e8e8U, 0xddddddddU, 0x74747474U, 0x1f1f1f1fU, 0x4b4b4b4bU, 0xbdbdbdbdU, 0x8b8b8b8bU, 0x8a8a8a8aU, 0x70707070U, 0x3e3e3e3eU, 0xb5b5b5b5U, 0x66666666U, 0x48484848U, 0x03030303U, 0xf6f6f6f6U, 0x0e0e0e0eU, 0x61616161U, 0x35353535U, 0x57575757U, 0xb9b9b9b9U, 0x86868686U, 0xc1c1c1c1U, 0x1d1d1d1dU, 0x9e9e9e9eU, 0xe1e1e1e1U, 0xf8f8f8f8U, 0x98989898U, 0x11111111U, 0x69696969U, 0xd9d9d9d9U, 0x8e8e8e8eU, 0x94949494U, 0x9b9b9b9bU, 0x1e1e1e1eU, 0x87878787U, 0xe9e9e9e9U, 0xcecececeU, 0x55555555U, 0x28282828U, 0xdfdfdfdfU, 0x8c8c8c8cU, 0xa1a1a1a1U, 0x89898989U, 0x0d0d0d0dU, 0xbfbfbfbfU, 0xe6e6e6e6U, 0x42424242U, 0x68686868U, 0x41414141U, 0x99999999U, 0x2d2d2d2dU, 0x0f0f0f0fU, 0xb0b0b0b0U, 0x54545454U, 0xbbbbbbbbU, 0x16161616U, }; static const u32 Td0[256] = { 0x51f4a750U, 0x7e416553U, 0x1a17a4c3U, 0x3a275e96U, 0x3bab6bcbU, 0x1f9d45f1U, 0xacfa58abU, 0x4be30393U, 0x2030fa55U, 0xad766df6U, 0x88cc7691U, 0xf5024c25U, 0x4fe5d7fcU, 0xc52acbd7U, 0x26354480U, 0xb562a38fU, 0xdeb15a49U, 0x25ba1b67U, 0x45ea0e98U, 0x5dfec0e1U, 0xc32f7502U, 0x814cf012U, 0x8d4697a3U, 0x6bd3f9c6U, 0x038f5fe7U, 0x15929c95U, 0xbf6d7aebU, 0x955259daU, 0xd4be832dU, 0x587421d3U, 0x49e06929U, 0x8ec9c844U, 0x75c2896aU, 0xf48e7978U, 0x99583e6bU, 0x27b971ddU, 0xbee14fb6U, 0xf088ad17U, 0xc920ac66U, 0x7dce3ab4U, 0x63df4a18U, 0xe51a3182U, 0x97513360U, 0x62537f45U, 0xb16477e0U, 0xbb6bae84U, 0xfe81a01cU, 0xf9082b94U, 0x70486858U, 0x8f45fd19U, 0x94de6c87U, 0x527bf8b7U, 0xab73d323U, 0x724b02e2U, 0xe31f8f57U, 0x6655ab2aU, 0xb2eb2807U, 0x2fb5c203U, 0x86c57b9aU, 0xd33708a5U, 0x302887f2U, 0x23bfa5b2U, 0x02036abaU, 0xed16825cU, 0x8acf1c2bU, 0xa779b492U, 0xf307f2f0U, 0x4e69e2a1U, 0x65daf4cdU, 0x0605bed5U, 0xd134621fU, 0xc4a6fe8aU, 0x342e539dU, 0xa2f355a0U, 0x058ae132U, 0xa4f6eb75U, 0x0b83ec39U, 0x4060efaaU, 0x5e719f06U, 0xbd6e1051U, 0x3e218af9U, 0x96dd063dU, 0xdd3e05aeU, 0x4de6bd46U, 0x91548db5U, 0x71c45d05U, 0x0406d46fU, 0x605015ffU, 0x1998fb24U, 0xd6bde997U, 0x894043ccU, 0x67d99e77U, 0xb0e842bdU, 0x07898b88U, 0xe7195b38U, 0x79c8eedbU, 0xa17c0a47U, 0x7c420fe9U, 0xf8841ec9U, 0x00000000U, 0x09808683U, 0x322bed48U, 0x1e1170acU, 0x6c5a724eU, 0xfd0efffbU, 0x0f853856U, 0x3daed51eU, 0x362d3927U, 0x0a0fd964U, 0x685ca621U, 0x9b5b54d1U, 0x24362e3aU, 0x0c0a67b1U, 0x9357e70fU, 0xb4ee96d2U, 0x1b9b919eU, 0x80c0c54fU, 0x61dc20a2U, 0x5a774b69U, 0x1c121a16U, 0xe293ba0aU, 0xc0a02ae5U, 0x3c22e043U, 0x121b171dU, 0x0e090d0bU, 0xf28bc7adU, 0x2db6a8b9U, 0x141ea9c8U, 0x57f11985U, 0xaf75074cU, 0xee99ddbbU, 0xa37f60fdU, 0xf701269fU, 0x5c72f5bcU, 0x44663bc5U, 0x5bfb7e34U, 0x8b432976U, 0xcb23c6dcU, 0xb6edfc68U, 0xb8e4f163U, 0xd731dccaU, 0x42638510U, 0x13972240U, 0x84c61120U, 0x854a247dU, 0xd2bb3df8U, 0xaef93211U, 0xc729a16dU, 0x1d9e2f4bU, 0xdcb230f3U, 0x0d8652ecU, 0x77c1e3d0U, 0x2bb3166cU, 0xa970b999U, 0x119448faU, 0x47e96422U, 0xa8fc8cc4U, 0xa0f03f1aU, 0x567d2cd8U, 0x223390efU, 0x87494ec7U, 0xd938d1c1U, 0x8ccaa2feU, 0x98d40b36U, 0xa6f581cfU, 0xa57ade28U, 0xdab78e26U, 0x3fadbfa4U, 0x2c3a9de4U, 0x5078920dU, 0x6a5fcc9bU, 0x547e4662U, 0xf68d13c2U, 0x90d8b8e8U, 0x2e39f75eU, 0x82c3aff5U, 0x9f5d80beU, 0x69d0937cU, 0x6fd52da9U, 0xcf2512b3U, 0xc8ac993bU, 0x10187da7U, 0xe89c636eU, 0xdb3bbb7bU, 0xcd267809U, 0x6e5918f4U, 0xec9ab701U, 0x834f9aa8U, 0xe6956e65U, 0xaaffe67eU, 0x21bccf08U, 0xef15e8e6U, 0xbae79bd9U, 0x4a6f36ceU, 0xea9f09d4U, 0x29b07cd6U, 0x31a4b2afU, 0x2a3f2331U, 0xc6a59430U, 0x35a266c0U, 0x744ebc37U, 0xfc82caa6U, 0xe090d0b0U, 0x33a7d815U, 0xf104984aU, 0x41ecdaf7U, 0x7fcd500eU, 0x1791f62fU, 0x764dd68dU, 0x43efb04dU, 0xccaa4d54U, 0xe49604dfU, 0x9ed1b5e3U, 0x4c6a881bU, 0xc12c1fb8U, 0x4665517fU, 0x9d5eea04U, 0x018c355dU, 0xfa877473U, 0xfb0b412eU, 0xb3671d5aU, 0x92dbd252U, 0xe9105633U, 0x6dd64713U, 0x9ad7618cU, 0x37a10c7aU, 0x59f8148eU, 0xeb133c89U, 0xcea927eeU, 0xb761c935U, 0xe11ce5edU, 0x7a47b13cU, 0x9cd2df59U, 0x55f2733fU, 0x1814ce79U, 0x73c737bfU, 0x53f7cdeaU, 0x5ffdaa5bU, 0xdf3d6f14U, 0x7844db86U, 0xcaaff381U, 0xb968c43eU, 0x3824342cU, 0xc2a3405fU, 0x161dc372U, 0xbce2250cU, 0x283c498bU, 0xff0d9541U, 0x39a80171U, 0x080cb3deU, 0xd8b4e49cU, 0x6456c190U, 0x7bcb8461U, 0xd532b670U, 0x486c5c74U, 0xd0b85742U, }; static const u32 Td1[256] = { 0x5051f4a7U, 0x537e4165U, 0xc31a17a4U, 0x963a275eU, 0xcb3bab6bU, 0xf11f9d45U, 0xabacfa58U, 0x934be303U, 0x552030faU, 0xf6ad766dU, 0x9188cc76U, 0x25f5024cU, 0xfc4fe5d7U, 0xd7c52acbU, 0x80263544U, 0x8fb562a3U, 0x49deb15aU, 0x6725ba1bU, 0x9845ea0eU, 0xe15dfec0U, 0x02c32f75U, 0x12814cf0U, 0xa38d4697U, 0xc66bd3f9U, 0xe7038f5fU, 0x9515929cU, 0xebbf6d7aU, 0xda955259U, 0x2dd4be83U, 0xd3587421U, 0x2949e069U, 0x448ec9c8U, 0x6a75c289U, 0x78f48e79U, 0x6b99583eU, 0xdd27b971U, 0xb6bee14fU, 0x17f088adU, 0x66c920acU, 0xb47dce3aU, 0x1863df4aU, 0x82e51a31U, 0x60975133U, 0x4562537fU, 0xe0b16477U, 0x84bb6baeU, 0x1cfe81a0U, 0x94f9082bU, 0x58704868U, 0x198f45fdU, 0x8794de6cU, 0xb7527bf8U, 0x23ab73d3U, 0xe2724b02U, 0x57e31f8fU, 0x2a6655abU, 0x07b2eb28U, 0x032fb5c2U, 0x9a86c57bU, 0xa5d33708U, 0xf2302887U, 0xb223bfa5U, 0xba02036aU, 0x5ced1682U, 0x2b8acf1cU, 0x92a779b4U, 0xf0f307f2U, 0xa14e69e2U, 0xcd65daf4U, 0xd50605beU, 0x1fd13462U, 0x8ac4a6feU, 0x9d342e53U, 0xa0a2f355U, 0x32058ae1U, 0x75a4f6ebU, 0x390b83ecU, 0xaa4060efU, 0x065e719fU, 0x51bd6e10U, 0xf93e218aU, 0x3d96dd06U, 0xaedd3e05U, 0x464de6bdU, 0xb591548dU, 0x0571c45dU, 0x6f0406d4U, 0xff605015U, 0x241998fbU, 0x97d6bde9U, 0xcc894043U, 0x7767d99eU, 0xbdb0e842U, 0x8807898bU, 0x38e7195bU, 0xdb79c8eeU, 0x47a17c0aU, 0xe97c420fU, 0xc9f8841eU, 0x00000000U, 0x83098086U, 0x48322bedU, 0xac1e1170U, 0x4e6c5a72U, 0xfbfd0effU, 0x560f8538U, 0x1e3daed5U, 0x27362d39U, 0x640a0fd9U, 0x21685ca6U, 0xd19b5b54U, 0x3a24362eU, 0xb10c0a67U, 0x0f9357e7U, 0xd2b4ee96U, 0x9e1b9b91U, 0x4f80c0c5U, 0xa261dc20U, 0x695a774bU, 0x161c121aU, 0x0ae293baU, 0xe5c0a02aU, 0x433c22e0U, 0x1d121b17U, 0x0b0e090dU, 0xadf28bc7U, 0xb92db6a8U, 0xc8141ea9U, 0x8557f119U, 0x4caf7507U, 0xbbee99ddU, 0xfda37f60U, 0x9ff70126U, 0xbc5c72f5U, 0xc544663bU, 0x345bfb7eU, 0x768b4329U, 0xdccb23c6U, 0x68b6edfcU, 0x63b8e4f1U, 0xcad731dcU, 0x10426385U, 0x40139722U, 0x2084c611U, 0x7d854a24U, 0xf8d2bb3dU, 0x11aef932U, 0x6dc729a1U, 0x4b1d9e2fU, 0xf3dcb230U, 0xec0d8652U, 0xd077c1e3U, 0x6c2bb316U, 0x99a970b9U, 0xfa119448U, 0x2247e964U, 0xc4a8fc8cU, 0x1aa0f03fU, 0xd8567d2cU, 0xef223390U, 0xc787494eU, 0xc1d938d1U, 0xfe8ccaa2U, 0x3698d40bU, 0xcfa6f581U, 0x28a57adeU, 0x26dab78eU, 0xa43fadbfU, 0xe42c3a9dU, 0x0d507892U, 0x9b6a5fccU, 0x62547e46U, 0xc2f68d13U, 0xe890d8b8U, 0x5e2e39f7U, 0xf582c3afU, 0xbe9f5d80U, 0x7c69d093U, 0xa96fd52dU, 0xb3cf2512U, 0x3bc8ac99U, 0xa710187dU, 0x6ee89c63U, 0x7bdb3bbbU, 0x09cd2678U, 0xf46e5918U, 0x01ec9ab7U, 0xa8834f9aU, 0x65e6956eU, 0x7eaaffe6U, 0x0821bccfU, 0xe6ef15e8U, 0xd9bae79bU, 0xce4a6f36U, 0xd4ea9f09U, 0xd629b07cU, 0xaf31a4b2U, 0x312a3f23U, 0x30c6a594U, 0xc035a266U, 0x37744ebcU, 0xa6fc82caU, 0xb0e090d0U, 0x1533a7d8U, 0x4af10498U, 0xf741ecdaU, 0x0e7fcd50U, 0x2f1791f6U, 0x8d764dd6U, 0x4d43efb0U, 0x54ccaa4dU, 0xdfe49604U, 0xe39ed1b5U, 0x1b4c6a88U, 0xb8c12c1fU, 0x7f466551U, 0x049d5eeaU, 0x5d018c35U, 0x73fa8774U, 0x2efb0b41U, 0x5ab3671dU, 0x5292dbd2U, 0x33e91056U, 0x136dd647U, 0x8c9ad761U, 0x7a37a10cU, 0x8e59f814U, 0x89eb133cU, 0xeecea927U, 0x35b761c9U, 0xede11ce5U, 0x3c7a47b1U, 0x599cd2dfU, 0x3f55f273U, 0x791814ceU, 0xbf73c737U, 0xea53f7cdU, 0x5b5ffdaaU, 0x14df3d6fU, 0x867844dbU, 0x81caaff3U, 0x3eb968c4U, 0x2c382434U, 0x5fc2a340U, 0x72161dc3U, 0x0cbce225U, 0x8b283c49U, 0x41ff0d95U, 0x7139a801U, 0xde080cb3U, 0x9cd8b4e4U, 0x906456c1U, 0x617bcb84U, 0x70d532b6U, 0x74486c5cU, 0x42d0b857U, }; static const u32 Td2[256] = { 0xa75051f4U, 0x65537e41U, 0xa4c31a17U, 0x5e963a27U, 0x6bcb3babU, 0x45f11f9dU, 0x58abacfaU, 0x03934be3U, 0xfa552030U, 0x6df6ad76U, 0x769188ccU, 0x4c25f502U, 0xd7fc4fe5U, 0xcbd7c52aU, 0x44802635U, 0xa38fb562U, 0x5a49deb1U, 0x1b6725baU, 0x0e9845eaU, 0xc0e15dfeU, 0x7502c32fU, 0xf012814cU, 0x97a38d46U, 0xf9c66bd3U, 0x5fe7038fU, 0x9c951592U, 0x7aebbf6dU, 0x59da9552U, 0x832dd4beU, 0x21d35874U, 0x692949e0U, 0xc8448ec9U, 0x896a75c2U, 0x7978f48eU, 0x3e6b9958U, 0x71dd27b9U, 0x4fb6bee1U, 0xad17f088U, 0xac66c920U, 0x3ab47dceU, 0x4a1863dfU, 0x3182e51aU, 0x33609751U, 0x7f456253U, 0x77e0b164U, 0xae84bb6bU, 0xa01cfe81U, 0x2b94f908U, 0x68587048U, 0xfd198f45U, 0x6c8794deU, 0xf8b7527bU, 0xd323ab73U, 0x02e2724bU, 0x8f57e31fU, 0xab2a6655U, 0x2807b2ebU, 0xc2032fb5U, 0x7b9a86c5U, 0x08a5d337U, 0x87f23028U, 0xa5b223bfU, 0x6aba0203U, 0x825ced16U, 0x1c2b8acfU, 0xb492a779U, 0xf2f0f307U, 0xe2a14e69U, 0xf4cd65daU, 0xbed50605U, 0x621fd134U, 0xfe8ac4a6U, 0x539d342eU, 0x55a0a2f3U, 0xe132058aU, 0xeb75a4f6U, 0xec390b83U, 0xefaa4060U, 0x9f065e71U, 0x1051bd6eU, 0x8af93e21U, 0x063d96ddU, 0x05aedd3eU, 0xbd464de6U, 0x8db59154U, 0x5d0571c4U, 0xd46f0406U, 0x15ff6050U, 0xfb241998U, 0xe997d6bdU, 0x43cc8940U, 0x9e7767d9U, 0x42bdb0e8U, 0x8b880789U, 0x5b38e719U, 0xeedb79c8U, 0x0a47a17cU, 0x0fe97c42U, 0x1ec9f884U, 0x00000000U, 0x86830980U, 0xed48322bU, 0x70ac1e11U, 0x724e6c5aU, 0xfffbfd0eU, 0x38560f85U, 0xd51e3daeU, 0x3927362dU, 0xd9640a0fU, 0xa621685cU, 0x54d19b5bU, 0x2e3a2436U, 0x67b10c0aU, 0xe70f9357U, 0x96d2b4eeU, 0x919e1b9bU, 0xc54f80c0U, 0x20a261dcU, 0x4b695a77U, 0x1a161c12U, 0xba0ae293U, 0x2ae5c0a0U, 0xe0433c22U, 0x171d121bU, 0x0d0b0e09U, 0xc7adf28bU, 0xa8b92db6U, 0xa9c8141eU, 0x198557f1U, 0x074caf75U, 0xddbbee99U, 0x60fda37fU, 0x269ff701U, 0xf5bc5c72U, 0x3bc54466U, 0x7e345bfbU, 0x29768b43U, 0xc6dccb23U, 0xfc68b6edU, 0xf163b8e4U, 0xdccad731U, 0x85104263U, 0x22401397U, 0x112084c6U, 0x247d854aU, 0x3df8d2bbU, 0x3211aef9U, 0xa16dc729U, 0x2f4b1d9eU, 0x30f3dcb2U, 0x52ec0d86U, 0xe3d077c1U, 0x166c2bb3U, 0xb999a970U, 0x48fa1194U, 0x642247e9U, 0x8cc4a8fcU, 0x3f1aa0f0U, 0x2cd8567dU, 0x90ef2233U, 0x4ec78749U, 0xd1c1d938U, 0xa2fe8ccaU, 0x0b3698d4U, 0x81cfa6f5U, 0xde28a57aU, 0x8e26dab7U, 0xbfa43fadU, 0x9de42c3aU, 0x920d5078U, 0xcc9b6a5fU, 0x4662547eU, 0x13c2f68dU, 0xb8e890d8U, 0xf75e2e39U, 0xaff582c3U, 0x80be9f5dU, 0x937c69d0U, 0x2da96fd5U, 0x12b3cf25U, 0x993bc8acU, 0x7da71018U, 0x636ee89cU, 0xbb7bdb3bU, 0x7809cd26U, 0x18f46e59U, 0xb701ec9aU, 0x9aa8834fU, 0x6e65e695U, 0xe67eaaffU, 0xcf0821bcU, 0xe8e6ef15U, 0x9bd9bae7U, 0x36ce4a6fU, 0x09d4ea9fU, 0x7cd629b0U, 0xb2af31a4U, 0x23312a3fU, 0x9430c6a5U, 0x66c035a2U, 0xbc37744eU, 0xcaa6fc82U, 0xd0b0e090U, 0xd81533a7U, 0x984af104U, 0xdaf741ecU, 0x500e7fcdU, 0xf62f1791U, 0xd68d764dU, 0xb04d43efU, 0x4d54ccaaU, 0x04dfe496U, 0xb5e39ed1U, 0x881b4c6aU, 0x1fb8c12cU, 0x517f4665U, 0xea049d5eU, 0x355d018cU, 0x7473fa87U, 0x412efb0bU, 0x1d5ab367U, 0xd25292dbU, 0x5633e910U, 0x47136dd6U, 0x618c9ad7U, 0x0c7a37a1U, 0x148e59f8U, 0x3c89eb13U, 0x27eecea9U, 0xc935b761U, 0xe5ede11cU, 0xb13c7a47U, 0xdf599cd2U, 0x733f55f2U, 0xce791814U, 0x37bf73c7U, 0xcdea53f7U, 0xaa5b5ffdU, 0x6f14df3dU, 0xdb867844U, 0xf381caafU, 0xc43eb968U, 0x342c3824U, 0x405fc2a3U, 0xc372161dU, 0x250cbce2U, 0x498b283cU, 0x9541ff0dU, 0x017139a8U, 0xb3de080cU, 0xe49cd8b4U, 0xc1906456U, 0x84617bcbU, 0xb670d532U, 0x5c74486cU, 0x5742d0b8U, }; static const u32 Td3[256] = { 0xf4a75051U, 0x4165537eU, 0x17a4c31aU, 0x275e963aU, 0xab6bcb3bU, 0x9d45f11fU, 0xfa58abacU, 0xe303934bU, 0x30fa5520U, 0x766df6adU, 0xcc769188U, 0x024c25f5U, 0xe5d7fc4fU, 0x2acbd7c5U, 0x35448026U, 0x62a38fb5U, 0xb15a49deU, 0xba1b6725U, 0xea0e9845U, 0xfec0e15dU, 0x2f7502c3U, 0x4cf01281U, 0x4697a38dU, 0xd3f9c66bU, 0x8f5fe703U, 0x929c9515U, 0x6d7aebbfU, 0x5259da95U, 0xbe832dd4U, 0x7421d358U, 0xe0692949U, 0xc9c8448eU, 0xc2896a75U, 0x8e7978f4U, 0x583e6b99U, 0xb971dd27U, 0xe14fb6beU, 0x88ad17f0U, 0x20ac66c9U, 0xce3ab47dU, 0xdf4a1863U, 0x1a3182e5U, 0x51336097U, 0x537f4562U, 0x6477e0b1U, 0x6bae84bbU, 0x81a01cfeU, 0x082b94f9U, 0x48685870U, 0x45fd198fU, 0xde6c8794U, 0x7bf8b752U, 0x73d323abU, 0x4b02e272U, 0x1f8f57e3U, 0x55ab2a66U, 0xeb2807b2U, 0xb5c2032fU, 0xc57b9a86U, 0x3708a5d3U, 0x2887f230U, 0xbfa5b223U, 0x036aba02U, 0x16825cedU, 0xcf1c2b8aU, 0x79b492a7U, 0x07f2f0f3U, 0x69e2a14eU, 0xdaf4cd65U, 0x05bed506U, 0x34621fd1U, 0xa6fe8ac4U, 0x2e539d34U, 0xf355a0a2U, 0x8ae13205U, 0xf6eb75a4U, 0x83ec390bU, 0x60efaa40U, 0x719f065eU, 0x6e1051bdU, 0x218af93eU, 0xdd063d96U, 0x3e05aeddU, 0xe6bd464dU, 0x548db591U, 0xc45d0571U, 0x06d46f04U, 0x5015ff60U, 0x98fb2419U, 0xbde997d6U, 0x4043cc89U, 0xd99e7767U, 0xe842bdb0U, 0x898b8807U, 0x195b38e7U, 0xc8eedb79U, 0x7c0a47a1U, 0x420fe97cU, 0x841ec9f8U, 0x00000000U, 0x80868309U, 0x2bed4832U, 0x1170ac1eU, 0x5a724e6cU, 0x0efffbfdU, 0x8538560fU, 0xaed51e3dU, 0x2d392736U, 0x0fd9640aU, 0x5ca62168U, 0x5b54d19bU, 0x362e3a24U, 0x0a67b10cU, 0x57e70f93U, 0xee96d2b4U, 0x9b919e1bU, 0xc0c54f80U, 0xdc20a261U, 0x774b695aU, 0x121a161cU, 0x93ba0ae2U, 0xa02ae5c0U, 0x22e0433cU, 0x1b171d12U, 0x090d0b0eU, 0x8bc7adf2U, 0xb6a8b92dU, 0x1ea9c814U, 0xf1198557U, 0x75074cafU, 0x99ddbbeeU, 0x7f60fda3U, 0x01269ff7U, 0x72f5bc5cU, 0x663bc544U, 0xfb7e345bU, 0x4329768bU, 0x23c6dccbU, 0xedfc68b6U, 0xe4f163b8U, 0x31dccad7U, 0x63851042U, 0x97224013U, 0xc6112084U, 0x4a247d85U, 0xbb3df8d2U, 0xf93211aeU, 0x29a16dc7U, 0x9e2f4b1dU, 0xb230f3dcU, 0x8652ec0dU, 0xc1e3d077U, 0xb3166c2bU, 0x70b999a9U, 0x9448fa11U, 0xe9642247U, 0xfc8cc4a8U, 0xf03f1aa0U, 0x7d2cd856U, 0x3390ef22U, 0x494ec787U, 0x38d1c1d9U, 0xcaa2fe8cU, 0xd40b3698U, 0xf581cfa6U, 0x7ade28a5U, 0xb78e26daU, 0xadbfa43fU, 0x3a9de42cU, 0x78920d50U, 0x5fcc9b6aU, 0x7e466254U, 0x8d13c2f6U, 0xd8b8e890U, 0x39f75e2eU, 0xc3aff582U, 0x5d80be9fU, 0xd0937c69U, 0xd52da96fU, 0x2512b3cfU, 0xac993bc8U, 0x187da710U, 0x9c636ee8U, 0x3bbb7bdbU, 0x267809cdU, 0x5918f46eU, 0x9ab701ecU, 0x4f9aa883U, 0x956e65e6U, 0xffe67eaaU, 0xbccf0821U, 0x15e8e6efU, 0xe79bd9baU, 0x6f36ce4aU, 0x9f09d4eaU, 0xb07cd629U, 0xa4b2af31U, 0x3f23312aU, 0xa59430c6U, 0xa266c035U, 0x4ebc3774U, 0x82caa6fcU, 0x90d0b0e0U, 0xa7d81533U, 0x04984af1U, 0xecdaf741U, 0xcd500e7fU, 0x91f62f17U, 0x4dd68d76U, 0xefb04d43U, 0xaa4d54ccU, 0x9604dfe4U, 0xd1b5e39eU, 0x6a881b4cU, 0x2c1fb8c1U, 0x65517f46U, 0x5eea049dU, 0x8c355d01U, 0x877473faU, 0x0b412efbU, 0x671d5ab3U, 0xdbd25292U, 0x105633e9U, 0xd647136dU, 0xd7618c9aU, 0xa10c7a37U, 0xf8148e59U, 0x133c89ebU, 0xa927eeceU, 0x61c935b7U, 0x1ce5ede1U, 0x47b13c7aU, 0xd2df599cU, 0xf2733f55U, 0x14ce7918U, 0xc737bf73U, 0xf7cdea53U, 0xfdaa5b5fU, 0x3d6f14dfU, 0x44db8678U, 0xaff381caU, 0x68c43eb9U, 0x24342c38U, 0xa3405fc2U, 0x1dc37216U, 0xe2250cbcU, 0x3c498b28U, 0x0d9541ffU, 0xa8017139U, 0x0cb3de08U, 0xb4e49cd8U, 0x56c19064U, 0xcb84617bU, 0x32b670d5U, 0x6c5c7448U, 0xb85742d0U, }; static const u32 Td4[256] = { 0x52525252U, 0x09090909U, 0x6a6a6a6aU, 0xd5d5d5d5U, 0x30303030U, 0x36363636U, 0xa5a5a5a5U, 0x38383838U, 0xbfbfbfbfU, 0x40404040U, 0xa3a3a3a3U, 0x9e9e9e9eU, 0x81818181U, 0xf3f3f3f3U, 0xd7d7d7d7U, 0xfbfbfbfbU, 0x7c7c7c7cU, 0xe3e3e3e3U, 0x39393939U, 0x82828282U, 0x9b9b9b9bU, 0x2f2f2f2fU, 0xffffffffU, 0x87878787U, 0x34343434U, 0x8e8e8e8eU, 0x43434343U, 0x44444444U, 0xc4c4c4c4U, 0xdedededeU, 0xe9e9e9e9U, 0xcbcbcbcbU, 0x54545454U, 0x7b7b7b7bU, 0x94949494U, 0x32323232U, 0xa6a6a6a6U, 0xc2c2c2c2U, 0x23232323U, 0x3d3d3d3dU, 0xeeeeeeeeU, 0x4c4c4c4cU, 0x95959595U, 0x0b0b0b0bU, 0x42424242U, 0xfafafafaU, 0xc3c3c3c3U, 0x4e4e4e4eU, 0x08080808U, 0x2e2e2e2eU, 0xa1a1a1a1U, 0x66666666U, 0x28282828U, 0xd9d9d9d9U, 0x24242424U, 0xb2b2b2b2U, 0x76767676U, 0x5b5b5b5bU, 0xa2a2a2a2U, 0x49494949U, 0x6d6d6d6dU, 0x8b8b8b8bU, 0xd1d1d1d1U, 0x25252525U, 0x72727272U, 0xf8f8f8f8U, 0xf6f6f6f6U, 0x64646464U, 0x86868686U, 0x68686868U, 0x98989898U, 0x16161616U, 0xd4d4d4d4U, 0xa4a4a4a4U, 0x5c5c5c5cU, 0xccccccccU, 0x5d5d5d5dU, 0x65656565U, 0xb6b6b6b6U, 0x92929292U, 0x6c6c6c6cU, 0x70707070U, 0x48484848U, 0x50505050U, 0xfdfdfdfdU, 0xededededU, 0xb9b9b9b9U, 0xdadadadaU, 0x5e5e5e5eU, 0x15151515U, 0x46464646U, 0x57575757U, 0xa7a7a7a7U, 0x8d8d8d8dU, 0x9d9d9d9dU, 0x84848484U, 0x90909090U, 0xd8d8d8d8U, 0xababababU, 0x00000000U, 0x8c8c8c8cU, 0xbcbcbcbcU, 0xd3d3d3d3U, 0x0a0a0a0aU, 0xf7f7f7f7U, 0xe4e4e4e4U, 0x58585858U, 0x05050505U, 0xb8b8b8b8U, 0xb3b3b3b3U, 0x45454545U, 0x06060606U, 0xd0d0d0d0U, 0x2c2c2c2cU, 0x1e1e1e1eU, 0x8f8f8f8fU, 0xcacacacaU, 0x3f3f3f3fU, 0x0f0f0f0fU, 0x02020202U, 0xc1c1c1c1U, 0xafafafafU, 0xbdbdbdbdU, 0x03030303U, 0x01010101U, 0x13131313U, 0x8a8a8a8aU, 0x6b6b6b6bU, 0x3a3a3a3aU, 0x91919191U, 0x11111111U, 0x41414141U, 0x4f4f4f4fU, 0x67676767U, 0xdcdcdcdcU, 0xeaeaeaeaU, 0x97979797U, 0xf2f2f2f2U, 0xcfcfcfcfU, 0xcecececeU, 0xf0f0f0f0U, 0xb4b4b4b4U, 0xe6e6e6e6U, 0x73737373U, 0x96969696U, 0xacacacacU, 0x74747474U, 0x22222222U, 0xe7e7e7e7U, 0xadadadadU, 0x35353535U, 0x85858585U, 0xe2e2e2e2U, 0xf9f9f9f9U, 0x37373737U, 0xe8e8e8e8U, 0x1c1c1c1cU, 0x75757575U, 0xdfdfdfdfU, 0x6e6e6e6eU, 0x47474747U, 0xf1f1f1f1U, 0x1a1a1a1aU, 0x71717171U, 0x1d1d1d1dU, 0x29292929U, 0xc5c5c5c5U, 0x89898989U, 0x6f6f6f6fU, 0xb7b7b7b7U, 0x62626262U, 0x0e0e0e0eU, 0xaaaaaaaaU, 0x18181818U, 0xbebebebeU, 0x1b1b1b1bU, 0xfcfcfcfcU, 0x56565656U, 0x3e3e3e3eU, 0x4b4b4b4bU, 0xc6c6c6c6U, 0xd2d2d2d2U, 0x79797979U, 0x20202020U, 0x9a9a9a9aU, 0xdbdbdbdbU, 0xc0c0c0c0U, 0xfefefefeU, 0x78787878U, 0xcdcdcdcdU, 0x5a5a5a5aU, 0xf4f4f4f4U, 0x1f1f1f1fU, 0xddddddddU, 0xa8a8a8a8U, 0x33333333U, 0x88888888U, 0x07070707U, 0xc7c7c7c7U, 0x31313131U, 0xb1b1b1b1U, 0x12121212U, 0x10101010U, 0x59595959U, 0x27272727U, 0x80808080U, 0xececececU, 0x5f5f5f5fU, 0x60606060U, 0x51515151U, 0x7f7f7f7fU, 0xa9a9a9a9U, 0x19191919U, 0xb5b5b5b5U, 0x4a4a4a4aU, 0x0d0d0d0dU, 0x2d2d2d2dU, 0xe5e5e5e5U, 0x7a7a7a7aU, 0x9f9f9f9fU, 0x93939393U, 0xc9c9c9c9U, 0x9c9c9c9cU, 0xefefefefU, 0xa0a0a0a0U, 0xe0e0e0e0U, 0x3b3b3b3bU, 0x4d4d4d4dU, 0xaeaeaeaeU, 0x2a2a2a2aU, 0xf5f5f5f5U, 0xb0b0b0b0U, 0xc8c8c8c8U, 0xebebebebU, 0xbbbbbbbbU, 0x3c3c3c3cU, 0x83838383U, 0x53535353U, 0x99999999U, 0x61616161U, 0x17171717U, 0x2b2b2b2bU, 0x04040404U, 0x7e7e7e7eU, 0xbabababaU, 0x77777777U, 0xd6d6d6d6U, 0x26262626U, 0xe1e1e1e1U, 0x69696969U, 0x14141414U, 0x63636363U, 0x55555555U, 0x21212121U, 0x0c0c0c0cU, 0x7d7d7d7dU, }; static const u32 rcon[] = { 0x01000000, 0x02000000, 0x04000000, 0x08000000, 0x10000000, 0x20000000, 0x40000000, 0x80000000, 0x1B000000, 0x36000000, /* for 128-bit blocks, Rijndael never uses more than 10 rcon values */ }; #define GETU32(plaintext) \ ((static_cast((plaintext)[0]) << 24) ^ \ (static_cast((plaintext)[1]) << 16) ^ \ (static_cast((plaintext)[2]) << 8) ^ \ (static_cast((plaintext)[3]))) #define PUTU32(ciphertext, st) { \ (ciphertext)[0] = static_cast((st) >> 24); \ (ciphertext)[1] = static_cast((st) >> 16); \ (ciphertext)[2] = static_cast((st) >> 8); \ (ciphertext)[3] = static_cast(st); } /** * Expand the cipher key into the encryption key schedule. * * @return the number of rounds for the given cipher key size. */ int rijndaelSetupEncrypt(u32 *rk, const u8 *key, int keybits) { int i = 0; u32 temp; rk[0] = GETU32(key ); rk[1] = GETU32(key + 4); rk[2] = GETU32(key + 8); rk[3] = GETU32(key + 12); if (keybits == 128) { for (;;) { temp = rk[3]; rk[4] = rk[0] ^ (Te4[(temp >> 16) & 0xff] & 0xff000000) ^ (Te4[(temp >> 8) & 0xff] & 0x00ff0000) ^ (Te4[(temp ) & 0xff] & 0x0000ff00) ^ (Te4[(temp >> 24) ] & 0x000000ff) ^ rcon[i]; rk[5] = rk[1] ^ rk[4]; rk[6] = rk[2] ^ rk[5]; rk[7] = rk[3] ^ rk[6]; if (++i == 10) return 10; rk += 4; } } rk[4] = GETU32(key + 16); rk[5] = GETU32(key + 20); if (keybits == 192) { for (;;) { temp = rk[ 5]; rk[ 6] = rk[ 0] ^ (Te4[(temp >> 16) & 0xff] & 0xff000000) ^ (Te4[(temp >> 8) & 0xff] & 0x00ff0000) ^ (Te4[(temp ) & 0xff] & 0x0000ff00) ^ (Te4[(temp >> 24) ] & 0x000000ff) ^ rcon[i]; rk[ 7] = rk[ 1] ^ rk[ 6]; rk[ 8] = rk[ 2] ^ rk[ 7]; rk[ 9] = rk[ 3] ^ rk[ 8]; if (++i == 8) return 12; rk[10] = rk[ 4] ^ rk[ 9]; rk[11] = rk[ 5] ^ rk[10]; rk += 6; } } rk[6] = GETU32(key + 24); rk[7] = GETU32(key + 28); if (keybits == 256) { for (;;) { temp = rk[ 7]; rk[ 8] = rk[ 0] ^ (Te4[(temp >> 16) & 0xff] & 0xff000000) ^ (Te4[(temp >> 8) & 0xff] & 0x00ff0000) ^ (Te4[(temp ) & 0xff] & 0x0000ff00) ^ (Te4[(temp >> 24) ] & 0x000000ff) ^ rcon[i]; rk[ 9] = rk[ 1] ^ rk[ 8]; rk[10] = rk[ 2] ^ rk[ 9]; rk[11] = rk[ 3] ^ rk[10]; if (++i == 7) return 14; temp = rk[11]; rk[12] = rk[ 4] ^ (Te4[(temp >> 24) ] & 0xff000000) ^ (Te4[(temp >> 16) & 0xff] & 0x00ff0000) ^ (Te4[(temp >> 8) & 0xff] & 0x0000ff00) ^ (Te4[(temp ) & 0xff] & 0x000000ff); rk[13] = rk[ 5] ^ rk[12]; rk[14] = rk[ 6] ^ rk[13]; rk[15] = rk[ 7] ^ rk[14]; rk += 8; } } return 0; } /** * Expand the cipher key into the decryption key schedule. * * @return the number of rounds for the given cipher key size. */ int rijndaelSetupDecrypt(u32 *rk, const u8 *key, int keybits) { int nrounds, i, j; u32 temp; /* expand the cipher key: */ nrounds = rijndaelSetupEncrypt(rk, key, keybits); /* invert the order of the round keys: */ for (i = 0, j = 4*nrounds; i < j; i += 4, j -= 4) { temp = rk[i ]; rk[i ] = rk[j ]; rk[j ] = temp; temp = rk[i + 1]; rk[i + 1] = rk[j + 1]; rk[j + 1] = temp; temp = rk[i + 2]; rk[i + 2] = rk[j + 2]; rk[j + 2] = temp; temp = rk[i + 3]; rk[i + 3] = rk[j + 3]; rk[j + 3] = temp; } /* apply the inverse MixColumn transform to all round keys but the first and the last: */ for (i = 1; i < nrounds; i++) { rk += 4; rk[0] = Td0[Te4[(rk[0] >> 24) ] & 0xff] ^ Td1[Te4[(rk[0] >> 16) & 0xff] & 0xff] ^ Td2[Te4[(rk[0] >> 8) & 0xff] & 0xff] ^ Td3[Te4[(rk[0] ) & 0xff] & 0xff]; rk[1] = Td0[Te4[(rk[1] >> 24) ] & 0xff] ^ Td1[Te4[(rk[1] >> 16) & 0xff] & 0xff] ^ Td2[Te4[(rk[1] >> 8) & 0xff] & 0xff] ^ Td3[Te4[(rk[1] ) & 0xff] & 0xff]; rk[2] = Td0[Te4[(rk[2] >> 24) ] & 0xff] ^ Td1[Te4[(rk[2] >> 16) & 0xff] & 0xff] ^ Td2[Te4[(rk[2] >> 8) & 0xff] & 0xff] ^ Td3[Te4[(rk[2] ) & 0xff] & 0xff]; rk[3] = Td0[Te4[(rk[3] >> 24) ] & 0xff] ^ Td1[Te4[(rk[3] >> 16) & 0xff] & 0xff] ^ Td2[Te4[(rk[3] >> 8) & 0xff] & 0xff] ^ Td3[Te4[(rk[3] ) & 0xff] & 0xff]; } return nrounds; } void rijndaelEncrypt(const u32 *rk, int nrounds, const u8 plaintext[16], u8 ciphertext[16]) { u32 s0, s1, s2, s3, t0, t1, t2, t3; #ifndef FULL_UNROLL int r; #endif /* ?FULL_UNROLL */ /* * map byte array block to cipher state * and add initial round key: */ s0 = GETU32(plaintext ) ^ rk[0]; s1 = GETU32(plaintext + 4) ^ rk[1]; s2 = GETU32(plaintext + 8) ^ rk[2]; s3 = GETU32(plaintext + 12) ^ rk[3]; #ifdef FULL_UNROLL /* round 1: */ t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[ 4]; t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[ 5]; t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[ 6]; t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[ 7]; /* round 2: */ s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[ 8]; s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[ 9]; s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[10]; s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[11]; /* round 3: */ t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[12]; t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[13]; t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[14]; t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[15]; /* round 4: */ s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[16]; s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[17]; s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[18]; s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[19]; /* round 5: */ t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[20]; t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[21]; t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[22]; t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[23]; /* round 6: */ s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[24]; s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[25]; s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[26]; s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[27]; /* round 7: */ t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[28]; t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[29]; t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[30]; t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[31]; /* round 8: */ s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[32]; s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[33]; s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[34]; s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[35]; /* round 9: */ t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[36]; t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[37]; t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[38]; t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[39]; if (nrounds > 10) { /* round 10: */ s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[40]; s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[41]; s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[42]; s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[43]; /* round 11: */ t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[44]; t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[45]; t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[46]; t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[47]; if (nrounds > 12) { /* round 12: */ s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[48]; s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[49]; s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[50]; s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[51]; /* round 13: */ t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[52]; t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[53]; t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[54]; t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[55]; } } rk += nrounds << 2; #else /* !FULL_UNROLL */ /* * nrounds - 1 full rounds: */ r = nrounds >> 1; for (;;) { t0 = Te0[(s0 >> 24) ] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[(s3 ) & 0xff] ^ rk[4]; t1 = Te0[(s1 >> 24) ] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[(s0 ) & 0xff] ^ rk[5]; t2 = Te0[(s2 >> 24) ] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[(s1 ) & 0xff] ^ rk[6]; t3 = Te0[(s3 >> 24) ] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[(s2 ) & 0xff] ^ rk[7]; rk += 8; if (--r == 0) break; s0 = Te0[(t0 >> 24) ] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[(t3 ) & 0xff] ^ rk[0]; s1 = Te0[(t1 >> 24) ] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[(t0 ) & 0xff] ^ rk[1]; s2 = Te0[(t2 >> 24) ] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[(t1 ) & 0xff] ^ rk[2]; s3 = Te0[(t3 >> 24) ] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[(t2 ) & 0xff] ^ rk[3]; } #endif /* ?FULL_UNROLL */ /* * apply last round and * map cipher state to byte array block: */ s0 = (Te4[(t0 >> 24) ] & 0xff000000) ^ (Te4[(t1 >> 16) & 0xff] & 0x00ff0000) ^ (Te4[(t2 >> 8) & 0xff] & 0x0000ff00) ^ (Te4[(t3 ) & 0xff] & 0x000000ff) ^ rk[0]; PUTU32(ciphertext , s0); s1 = (Te4[(t1 >> 24) ] & 0xff000000) ^ (Te4[(t2 >> 16) & 0xff] & 0x00ff0000) ^ (Te4[(t3 >> 8) & 0xff] & 0x0000ff00) ^ (Te4[(t0 ) & 0xff] & 0x000000ff) ^ rk[1]; PUTU32(ciphertext + 4, s1); s2 = (Te4[(t2 >> 24) ] & 0xff000000) ^ (Te4[(t3 >> 16) & 0xff] & 0x00ff0000) ^ (Te4[(t0 >> 8) & 0xff] & 0x0000ff00) ^ (Te4[(t1 ) & 0xff] & 0x000000ff) ^ rk[2]; PUTU32(ciphertext + 8, s2); s3 = (Te4[(t3 >> 24) ] & 0xff000000) ^ (Te4[(t0 >> 16) & 0xff] & 0x00ff0000) ^ (Te4[(t1 >> 8) & 0xff] & 0x0000ff00) ^ (Te4[(t2 ) & 0xff] & 0x000000ff) ^ rk[3]; PUTU32(ciphertext + 12, s3); } void rijndaelDecrypt(const u32 *rk, int nrounds, const u8 ciphertext[16], u8 plaintext[16]) { u32 s0, s1, s2, s3, t0, t1, t2, t3; #ifndef FULL_UNROLL int r; #endif /* ?FULL_UNROLL */ /* * map byte array block to cipher state * and add initial round key: */ s0 = GETU32(ciphertext ) ^ rk[0]; s1 = GETU32(ciphertext + 4) ^ rk[1]; s2 = GETU32(ciphertext + 8) ^ rk[2]; s3 = GETU32(ciphertext + 12) ^ rk[3]; #ifdef FULL_UNROLL /* round 1: */ t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[ 4]; t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[ 5]; t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[ 6]; t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[ 7]; /* round 2: */ s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[ 8]; s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[ 9]; s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[10]; s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[11]; /* round 3: */ t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[12]; t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[13]; t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[14]; t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[15]; /* round 4: */ s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[16]; s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[17]; s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[18]; s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[19]; /* round 5: */ t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[20]; t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[21]; t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[22]; t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[23]; /* round 6: */ s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[24]; s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[25]; s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[26]; s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[27]; /* round 7: */ t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[28]; t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[29]; t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[30]; t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[31]; /* round 8: */ s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[32]; s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[33]; s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[34]; s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[35]; /* round 9: */ t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[36]; t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[37]; t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[38]; t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[39]; if (nrounds > 10) { /* round 10: */ s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[40]; s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[41]; s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[42]; s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[43]; /* round 11: */ t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[44]; t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[45]; t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[46]; t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[47]; if (nrounds > 12) { /* round 12: */ s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[48]; s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[49]; s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[50]; s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[51]; /* round 13: */ t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[52]; t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[53]; t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[54]; t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[55]; } } rk += nrounds << 2; #else /* !FULL_UNROLL */ /* * nrounds - 1 full rounds: */ r = nrounds >> 1; for (;;) { t0 = Td0[(s0 >> 24) ] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[(s1 ) & 0xff] ^ rk[4]; t1 = Td0[(s1 >> 24) ] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[(s2 ) & 0xff] ^ rk[5]; t2 = Td0[(s2 >> 24) ] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[(s3 ) & 0xff] ^ rk[6]; t3 = Td0[(s3 >> 24) ] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[(s0 ) & 0xff] ^ rk[7]; rk += 8; if (--r == 0) break; s0 = Td0[(t0 >> 24) ] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff] ^ Td3[(t1 ) & 0xff] ^ rk[0]; s1 = Td0[(t1 >> 24) ] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff] ^ Td3[(t2 ) & 0xff] ^ rk[1]; s2 = Td0[(t2 >> 24) ] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff] ^ Td3[(t3 ) & 0xff] ^ rk[2]; s3 = Td0[(t3 >> 24) ] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff] ^ Td3[(t0 ) & 0xff] ^ rk[3]; } #endif /* ?FULL_UNROLL */ /* * apply last round and * map cipher state to byte array block: */ s0 = (Td4[(t0 >> 24) ] & 0xff000000) ^ (Td4[(t3 >> 16) & 0xff] & 0x00ff0000) ^ (Td4[(t2 >> 8) & 0xff] & 0x0000ff00) ^ (Td4[(t1 ) & 0xff] & 0x000000ff) ^ rk[0]; PUTU32(plaintext , s0); s1 = (Td4[(t1 >> 24) ] & 0xff000000) ^ (Td4[(t0 >> 16) & 0xff] & 0x00ff0000) ^ (Td4[(t3 >> 8) & 0xff] & 0x0000ff00) ^ (Td4[(t2 ) & 0xff] & 0x000000ff) ^ rk[1]; PUTU32(plaintext + 4, s1); s2 = (Td4[(t2 >> 24) ] & 0xff000000) ^ (Td4[(t1 >> 16) & 0xff] & 0x00ff0000) ^ (Td4[(t0 >> 8) & 0xff] & 0x0000ff00) ^ (Td4[(t3 ) & 0xff] & 0x000000ff) ^ rk[2]; PUTU32(plaintext + 8, s2); s3 = (Td4[(t3 >> 24) ] & 0xff000000) ^ (Td4[(t2 >> 16) & 0xff] & 0x00ff0000) ^ (Td4[(t1 >> 8) & 0xff] & 0x0000ff00) ^ (Td4[(t0 ) & 0xff] & 0x000000ff) ^ rk[3]; PUTU32(plaintext + 12, s3); } qpdf-8.0.2/libqpdf/QPDF_Reserved.cc0000644000064100006410000000060513247541377015070 0ustar ejbejb#include #include QPDF_Reserved::~QPDF_Reserved() { } std::string QPDF_Reserved::unparse() { throw std::logic_error("attempt to unparse QPDF_Reserved"); return ""; } QPDFObject::object_type_e QPDF_Reserved::getTypeCode() const { return QPDFObject::ot_reserved; } char const* QPDF_Reserved::getTypeName() const { return "reserved"; } qpdf-8.0.2/libqpdf/Pl_RC4.cc0000644000064100006410000000204413247541377013521 0ustar ejbejb#include #include Pl_RC4::Pl_RC4(char const* identifier, Pipeline* next, unsigned char const* key_data, int key_len, size_t out_bufsize) : Pipeline(identifier, next), out_bufsize(out_bufsize), rc4(key_data, key_len) { this->outbuf = new unsigned char[out_bufsize]; } Pl_RC4::~Pl_RC4() { if (this->outbuf) { delete [] this->outbuf; this->outbuf = 0; } } void Pl_RC4::write(unsigned char* data, size_t len) { if (this->outbuf == 0) { throw std::logic_error( this->identifier + ": Pl_RC4: write() called after finish() called"); } size_t bytes_left = len; unsigned char* p = data; while (bytes_left > 0) { size_t bytes = (bytes_left < this->out_bufsize ? bytes_left : out_bufsize); bytes_left -= bytes; rc4.process(p, bytes, outbuf); p += bytes; getNext()->write(outbuf, bytes); } } void Pl_RC4::finish() { if (this->outbuf) { delete [] this->outbuf; this->outbuf = 0; } this->getNext()->finish(); } qpdf-8.0.2/libqpdf/QTC.cc0000644000064100006410000000150113247541377013122 0ustar ejbejb#include #include #include #include static bool tc_active(char const* const scope) { std::string value; return (QUtil::get_env("TC_SCOPE", &value) && (value == scope)); } void QTC::TC(char const* const scope, char const* const ccase, int n) { static std::set > cache; if (! tc_active(scope)) { return; } std::string filename; #ifdef _WIN32 # define TC_ENV "TC_WIN_FILENAME" #else # define TC_ENV "TC_FILENAME" #endif if (! QUtil::get_env(TC_ENV, &filename)) { return; } #undef TC_ENV if (cache.count(std::make_pair(ccase, n))) { return; } cache.insert(std::make_pair(ccase, n)); FILE* tc = QUtil::safe_fopen(filename.c_str(), "ab"); fprintf(tc, "%s %d\n", ccase, n); fclose(tc); } qpdf-8.0.2/libqpdf/RC4.cc0000644000064100006410000000203013247541377013061 0ustar ejbejb#include #include static void swap_byte(unsigned char &a, unsigned char &b) { unsigned char t; t = a; a = b; b = t; } RC4::RC4(unsigned char const* key_data, int key_len) { if (key_len == -1) { key_len = strlen(reinterpret_cast(key_data)); } for (int i = 0; i < 256; ++i) { key.state[i] = i; } key.x = 0; key.y = 0; int i1 = 0; int i2 = 0; for (int i = 0; i < 256; ++i) { i2 = (key_data[i1] + key.state[i] + i2) % 256; swap_byte(key.state[i], key.state[i2]); i1 = (i1 + 1) % key_len; } } void RC4::process(unsigned char *in_data, int len, unsigned char* out_data) { if (out_data == 0) { // Convert in place out_data = in_data; } for (int i = 0; i < len; ++i) { key.x = (key.x + 1) % 256; key.y = (key.state[key.x] + key.y) % 256; swap_byte(key.state[key.x], key.state[key.y]); int xor_index = (key.state[key.x] + key.state[key.y]) % 256; out_data[i] = in_data[i] ^ key.state[xor_index]; } } qpdf-8.0.2/libqpdf/QPDF_encryption.cc0000644000064100006410000012702613247541377015512 0ustar ejbejb// This file implements methods from the QPDF class that involve // encryption. #include #include #include #include #include #include #include #include #include #include #include #include #include static unsigned char const padding_string[] = { 0x28, 0xbf, 0x4e, 0x5e, 0x4e, 0x75, 0x8a, 0x41, 0x64, 0x00, 0x4e, 0x56, 0xff, 0xfa, 0x01, 0x08, 0x2e, 0x2e, 0x00, 0xb6, 0xd0, 0x68, 0x3e, 0x80, 0x2f, 0x0c, 0xa9, 0xfe, 0x64, 0x53, 0x69, 0x7a }; static unsigned int const key_bytes = 32; // V4 key lengths apply to V <= 4 static unsigned int const OU_key_bytes_V4 = sizeof(MD5::Digest); static unsigned int const OU_key_bytes_V5 = 48; static unsigned int const OUE_key_bytes_V5 = 32; static unsigned int const Perms_key_bytes_V5 = 16; int QPDF::EncryptionData::getV() const { return this->V; } int QPDF::EncryptionData::getR() const { return this->R; } int QPDF::EncryptionData::getLengthBytes() const { return this->Length_bytes; } int QPDF::EncryptionData::getP() const { return this->P; } std::string const& QPDF::EncryptionData::getO() const { return this->O; } std::string const& QPDF::EncryptionData::getU() const { return this->U; } std::string const& QPDF::EncryptionData::getOE() const { return this->OE; } std::string const& QPDF::EncryptionData::getUE() const { return this->UE; } std::string const& QPDF::EncryptionData::getPerms() const { return this->Perms; } std::string const& QPDF::EncryptionData::getId1() const { return this->id1; } bool QPDF::EncryptionData::getEncryptMetadata() const { return this->encrypt_metadata; } void QPDF::EncryptionData::setO(std::string const& O) { this->O = O; } void QPDF::EncryptionData::setU(std::string const& U) { this->U = U; } void QPDF::EncryptionData::setV5EncryptionParameters( std::string const& O, std::string const& OE, std::string const& U, std::string const& UE, std::string const& Perms) { this->O = O; this->OE = OE; this->U = U; this->UE = UE; this->Perms = Perms; } static void pad_or_truncate_password_V4(std::string const& password, char k1[key_bytes]) { int password_bytes = std::min(static_cast(key_bytes), password.length()); int pad_bytes = key_bytes - password_bytes; memcpy(k1, password.c_str(), password_bytes); memcpy(k1 + password_bytes, padding_string, pad_bytes); } void QPDF::trim_user_password(std::string& user_password) { // Although unnecessary, this routine trims the padding string // from the end of a user password. Its only purpose is for // recovery of user passwords which is done in the test suite. char const* cstr = user_password.c_str(); size_t len = user_password.length(); if (len < key_bytes) { return; } char const* p1 = cstr; char const* p2 = 0; while ((p2 = strchr(p1, '\x28')) != 0) { if (memcmp(p2, padding_string, len - (p2 - cstr)) == 0) { user_password = user_password.substr(0, p2 - cstr); return; } else { QTC::TC("qpdf", "QPDF_encryption skip 0x28"); p1 = p2 + 1; } } } static std::string pad_or_truncate_password_V4(std::string const& password) { char k1[key_bytes]; pad_or_truncate_password_V4(password, k1); return std::string(k1, key_bytes); } static std::string truncate_password_V5(std::string const& password) { return password.substr( 0, std::min(static_cast(127), password.length())); } static void iterate_md5_digest(MD5& md5, MD5::Digest& digest, int iterations) { md5.digest(digest); for (int i = 0; i < iterations; ++i) { MD5 m; m.encodeDataIncrementally(reinterpret_cast(digest), sizeof(digest)); m.digest(digest); } } static void iterate_rc4(unsigned char* data, int data_len, unsigned char* okey, int key_len, int iterations, bool reverse) { unsigned char* key = new unsigned char[key_len]; for (int i = 0; i < iterations; ++i) { int const xor_value = (reverse ? iterations - 1 - i : i); for (int j = 0; j < key_len; ++j) { key[j] = okey[j] ^ xor_value; } RC4 rc4(key, key_len); rc4.process(data, data_len); } delete [] key; } static std::string process_with_aes(std::string const& key, bool encrypt, std::string const& data, size_t outlength = 0, unsigned int repetitions = 1, unsigned char const* iv = 0, size_t iv_length = 0) { Pl_Buffer buffer("buffer"); Pl_AES_PDF aes("aes", &buffer, encrypt, QUtil::unsigned_char_pointer(key), key.length()); if (iv) { aes.setIV(iv, iv_length); } else { aes.useZeroIV(); } aes.disablePadding(); for (unsigned int i = 0; i < repetitions; ++i) { aes.write(QUtil::unsigned_char_pointer(data), data.length()); } aes.finish(); PointerHolder bufp = buffer.getBuffer(); if (outlength == 0) { outlength = bufp->getSize(); } else { outlength = std::min(outlength, bufp->getSize()); } return std::string(reinterpret_cast(bufp->getBuffer()), outlength); } static std::string hash_V5(std::string const& password, std::string const& salt, std::string const& udata, QPDF::EncryptionData const& data) { Pl_SHA2 hash(256); hash.write(QUtil::unsigned_char_pointer(password), password.length()); hash.write(QUtil::unsigned_char_pointer(salt), salt.length()); hash.write(QUtil::unsigned_char_pointer(udata), udata.length()); hash.finish(); std::string K = hash.getRawDigest(); std::string result; if (data.getR() < 6) { result = K; } else { // Algorithm 2.B from ISO 32000-1 chapter 7: Computing a hash int round_number = 0; bool done = false; while (! done) { // The hash algorithm has us setting K initially to the R5 // value and then repeating a series of steps 64 times // before starting with the termination case testing. The // wording of the specification is very unclear as to the // exact number of times it should be run since the // wording about whether the initial setup counts as round // 0 or not is ambiguous. This code counts the initial // setup (R5) value as round 0, which appears to be // correct. This was determined to be correct by // increasing or decreasing the number of rounds by 1 or 2 // from this value and generating 20 test files. In this // interpretation, all the test files worked with Adobe // Reader X. In the other configurations, many of the // files did not work, and we were accurately able to // predict which files didn't work by looking at the // conditions under which we terminated repetition. ++round_number; std::string K1 = password + K + udata; assert(K.length() >= 32); std::string E = process_with_aes( K.substr(0, 16), true, K1, 0, 64, QUtil::unsigned_char_pointer(K.substr(16, 16)), 16); // E_mod_3 is supposed to be mod 3 of the first 16 bytes // of E taken as as a (128-bit) big-endian number. Since // (xy mod n) is equal to ((x mod n) + (y mod n)) mod n // and since 256 mod n is 1, we can just take the sums of // the the mod 3s of each byte to get the same result. int E_mod_3 = 0; for (unsigned int i = 0; i < 16; ++i) { E_mod_3 += static_cast(E.at(i)); } E_mod_3 %= 3; int next_hash = ((E_mod_3 == 0) ? 256 : (E_mod_3 == 1) ? 384 : 512); Pl_SHA2 hash(next_hash); hash.write(QUtil::unsigned_char_pointer(E), E.length()); hash.finish(); K = hash.getRawDigest(); if (round_number >= 64) { unsigned int ch = static_cast(*(E.rbegin())); if (ch <= static_cast(round_number - 32)) { done = true; } } } result = K.substr(0, 32); } return result; } static void pad_short_parameter(std::string& param, unsigned int max_len) { if (param.length() < max_len) { QTC::TC("qpdf", "QPDF_encryption pad short parameter"); param.append(max_len - param.length(), '\0'); } } std::string QPDF::compute_data_key(std::string const& encryption_key, int objid, int generation, bool use_aes, int encryption_V, int encryption_R) { // Algorithm 3.1 from the PDF 1.7 Reference Manual std::string result = encryption_key; if (encryption_V >= 5) { // Algorithm 3.1a (PDF 1.7 extension level 3): just use // encryption key straight. return result; } // Append low three bytes of object ID and low two bytes of generation result += static_cast(objid & 0xff); result += static_cast((objid >> 8) & 0xff); result += static_cast((objid >> 16) & 0xff); result += static_cast(generation & 0xff); result += static_cast((generation >> 8) & 0xff); if (use_aes) { result += "sAlT"; } MD5 md5; md5.encodeDataIncrementally(result.c_str(), result.length()); MD5::Digest digest; md5.digest(digest); return std::string(reinterpret_cast(digest), std::min(result.length(), static_cast(16))); } std::string QPDF::compute_encryption_key( std::string const& password, EncryptionData const& data) { if (data.getV() >= 5) { // For V >= 5, the encryption key is generated and stored in // the file, encrypted separately with both user and owner // passwords. return recover_encryption_key_with_password(password, data); } else { // For V < 5, the encryption key is derived from the user // password. return compute_encryption_key_from_password(password, data); } } std::string QPDF::compute_encryption_key_from_password( std::string const& password, EncryptionData const& data) { // Algorithm 3.2 from the PDF 1.7 Reference Manual // This code does not properly handle Unicode passwords. // Passwords are supposed to be converted from OS codepage // characters to PDFDocEncoding. Unicode passwords are supposed // to be converted to OS codepage before converting to // PDFDocEncoding. We instead require the password to be // presented in its final form. MD5 md5; md5.encodeDataIncrementally( pad_or_truncate_password_V4(password).c_str(), key_bytes); md5.encodeDataIncrementally(data.getO().c_str(), key_bytes); char pbytes[4]; int P = data.getP(); pbytes[0] = static_cast(P & 0xff); pbytes[1] = static_cast((P >> 8) & 0xff); pbytes[2] = static_cast((P >> 16) & 0xff); pbytes[3] = static_cast((P >> 24) & 0xff); md5.encodeDataIncrementally(pbytes, 4); md5.encodeDataIncrementally(data.getId1().c_str(), data.getId1().length()); if ((data.getR() >= 4) && (! data.getEncryptMetadata())) { char bytes[4]; memset(bytes, 0xff, 4); md5.encodeDataIncrementally(bytes, 4); } MD5::Digest digest; iterate_md5_digest(md5, digest, ((data.getR() >= 3) ? 50 : 0)); return std::string(reinterpret_cast(digest), std::min(static_cast(sizeof(digest)), data.getLengthBytes())); } static void compute_O_rc4_key(std::string const& user_password, std::string const& owner_password, QPDF::EncryptionData const& data, unsigned char key[OU_key_bytes_V4]) { if (data.getV() >= 5) { throw std::logic_error( "compute_O_rc4_key called for file with V >= 5"); } std::string password = owner_password; if (password.empty()) { password = user_password; } MD5 md5; md5.encodeDataIncrementally( pad_or_truncate_password_V4(password).c_str(), key_bytes); MD5::Digest digest; iterate_md5_digest(md5, digest, ((data.getR() >= 3) ? 50 : 0)); memcpy(key, digest, OU_key_bytes_V4); } static std::string compute_O_value(std::string const& user_password, std::string const& owner_password, QPDF::EncryptionData const& data) { // Algorithm 3.3 from the PDF 1.7 Reference Manual unsigned char O_key[OU_key_bytes_V4]; compute_O_rc4_key(user_password, owner_password, data, O_key); char upass[key_bytes]; pad_or_truncate_password_V4(user_password, upass); std::string k1(reinterpret_cast(O_key), OU_key_bytes_V4); pad_short_parameter(k1, data.getLengthBytes()); iterate_rc4(QUtil::unsigned_char_pointer(upass), key_bytes, O_key, data.getLengthBytes(), (data.getR() >= 3) ? 20 : 1, false); return std::string(upass, key_bytes); } static std::string compute_U_value_R2(std::string const& user_password, QPDF::EncryptionData const& data) { // Algorithm 3.4 from the PDF 1.7 Reference Manual std::string k1 = QPDF::compute_encryption_key(user_password, data); char udata[key_bytes]; pad_or_truncate_password_V4("", udata); pad_short_parameter(k1, data.getLengthBytes()); iterate_rc4(QUtil::unsigned_char_pointer(udata), key_bytes, QUtil::unsigned_char_pointer(k1), data.getLengthBytes(), 1, false); return std::string(udata, key_bytes); } static std::string compute_U_value_R3(std::string const& user_password, QPDF::EncryptionData const& data) { // Algorithm 3.5 from the PDF 1.7 Reference Manual std::string k1 = QPDF::compute_encryption_key(user_password, data); MD5 md5; md5.encodeDataIncrementally( pad_or_truncate_password_V4("").c_str(), key_bytes); md5.encodeDataIncrementally(data.getId1().c_str(), data.getId1().length()); MD5::Digest digest; md5.digest(digest); pad_short_parameter(k1, data.getLengthBytes()); iterate_rc4(digest, sizeof(MD5::Digest), QUtil::unsigned_char_pointer(k1), data.getLengthBytes(), 20, false); char result[key_bytes]; memcpy(result, digest, sizeof(MD5::Digest)); // pad with arbitrary data -- make it consistent for the sake of // testing for (unsigned int i = sizeof(MD5::Digest); i < key_bytes; ++i) { result[i] = static_cast((i * i) % 0xff); } return std::string(result, key_bytes); } static std::string compute_U_value(std::string const& user_password, QPDF::EncryptionData const& data) { if (data.getR() >= 3) { return compute_U_value_R3(user_password, data); } return compute_U_value_R2(user_password, data); } static bool check_user_password_V4(std::string const& user_password, QPDF::EncryptionData const& data) { // Algorithm 3.6 from the PDF 1.7 Reference Manual std::string u_value = compute_U_value(user_password, data); int to_compare = ((data.getR() >= 3) ? sizeof(MD5::Digest) : key_bytes); return (memcmp(data.getU().c_str(), u_value.c_str(), to_compare) == 0); } static bool check_user_password_V5(std::string const& user_password, QPDF::EncryptionData const& data) { // Algorithm 3.11 from the PDF 1.7 extension level 3 std::string user_data = data.getU().substr(0, 32); std::string validation_salt = data.getU().substr(32, 8); std::string password = truncate_password_V5(user_password); return (hash_V5(password, validation_salt, "", data) == user_data); } static bool check_user_password(std::string const& user_password, QPDF::EncryptionData const& data) { if (data.getV() < 5) { return check_user_password_V4(user_password, data); } else { return check_user_password_V5(user_password, data); } } static bool check_owner_password_V4(std::string& user_password, std::string const& owner_password, QPDF::EncryptionData const& data) { // Algorithm 3.7 from the PDF 1.7 Reference Manual unsigned char key[OU_key_bytes_V4]; compute_O_rc4_key(user_password, owner_password, data, key); unsigned char O_data[key_bytes]; memcpy(O_data, QUtil::unsigned_char_pointer(data.getO()), key_bytes); std::string k1(reinterpret_cast(key), OU_key_bytes_V4); pad_short_parameter(k1, data.getLengthBytes()); iterate_rc4(O_data, key_bytes, QUtil::unsigned_char_pointer(k1), data.getLengthBytes(), (data.getR() >= 3) ? 20 : 1, true); std::string new_user_password = std::string(reinterpret_cast(O_data), key_bytes); bool result = false; if (check_user_password(new_user_password, data)) { result = true; user_password = new_user_password; } return result; } static bool check_owner_password_V5(std::string const& owner_password, QPDF::EncryptionData const& data) { // Algorithm 3.12 from the PDF 1.7 extension level 3 std::string user_data = data.getU().substr(0, 48); std::string owner_data = data.getO().substr(0, 32); std::string validation_salt = data.getO().substr(32, 8); std::string password = truncate_password_V5(owner_password); return (hash_V5(password, validation_salt, user_data, data) == owner_data); } static bool check_owner_password(std::string& user_password, std::string const& owner_password, QPDF::EncryptionData const& data) { if (data.getV() < 5) { return check_owner_password_V4(user_password, owner_password, data); } else { return check_owner_password_V5(owner_password, data); } } std::string QPDF::recover_encryption_key_with_password( std::string const& password, EncryptionData const& data) { // Disregard whether Perms is valid. bool disregard; return recover_encryption_key_with_password(password, data, disregard); } static void compute_U_UE_value_V5(std::string const& user_password, std::string const& encryption_key, QPDF::EncryptionData const& data, std::string& U, std::string& UE) { // Algorithm 3.8 from the PDF 1.7 extension level 3 char k[16]; QUtil::initializeWithRandomBytes( QUtil::unsigned_char_pointer(k), sizeof(k)); std::string validation_salt(k, 8); std::string key_salt(k + 8, 8); U = hash_V5(user_password, validation_salt, "", data) + validation_salt + key_salt; std::string intermediate_key = hash_V5(user_password, key_salt, "", data); UE = process_with_aes(intermediate_key, true, encryption_key); } static void compute_O_OE_value_V5(std::string const& owner_password, std::string const& encryption_key, QPDF::EncryptionData const& data, std::string const& U, std::string& O, std::string& OE) { // Algorithm 3.9 from the PDF 1.7 extension level 3 char k[16]; QUtil::initializeWithRandomBytes( QUtil::unsigned_char_pointer(k), sizeof(k)); std::string validation_salt(k, 8); std::string key_salt(k + 8, 8); O = hash_V5(owner_password, validation_salt, U, data) + validation_salt + key_salt; std::string intermediate_key = hash_V5(owner_password, key_salt, U, data); OE = process_with_aes(intermediate_key, true, encryption_key); } void compute_Perms_value_V5_clear(std::string const& encryption_key, QPDF::EncryptionData const& data, unsigned char k[16]) { // From algorithm 3.10 from the PDF 1.7 extension level 3 unsigned long long extended_perms = 0xffffffff00000000LL | data.getP(); for (int i = 0; i < 8; ++i) { k[i] = static_cast(extended_perms & 0xff); extended_perms >>= 8; } k[8] = data.getEncryptMetadata() ? 'T' : 'F'; k[9] = 'a'; k[10] = 'd'; k[11] = 'b'; QUtil::initializeWithRandomBytes(k + 12, 4); } static std::string compute_Perms_value_V5(std::string const& encryption_key, QPDF::EncryptionData const& data) { // Algorithm 3.10 from the PDF 1.7 extension level 3 unsigned char k[16]; compute_Perms_value_V5_clear(encryption_key, data, k); return process_with_aes( encryption_key, true, std::string(reinterpret_cast(k), sizeof(k))); } std::string QPDF::recover_encryption_key_with_password( std::string const& password, EncryptionData const& data, bool& perms_valid) { // Algorithm 3.2a from the PDF 1.7 extension level 3 // This code does not handle Unicode passwords correctly. // Empirical evidence suggests that most viewers don't. We are // supposed to process the input string with the SASLprep (RFC // 4013) profile of stringprep (RFC 3454) and then convert the // result to UTF-8. perms_valid = false; std::string key_password = truncate_password_V5(password); std::string key_salt; std::string user_data; std::string encrypted_file_key; if (check_owner_password_V5(key_password, data)) { key_salt = data.getO().substr(40, 8); user_data = data.getU().substr(0, 48); encrypted_file_key = data.getOE().substr(0, 32); } else if (check_user_password_V5(key_password, data)) { key_salt = data.getU().substr(40, 8); encrypted_file_key = data.getUE().substr(0, 32); } std::string intermediate_key = hash_V5(key_password, key_salt, user_data, data); std::string file_key = process_with_aes(intermediate_key, false, encrypted_file_key); // Decrypt Perms and check against expected value std::string perms_check = process_with_aes(file_key, false, data.getPerms(), 12); unsigned char k[16]; compute_Perms_value_V5_clear(file_key, data, k); perms_valid = (memcmp(perms_check.c_str(), k, 12) == 0); return file_key; } QPDF::encryption_method_e QPDF::interpretCF(QPDFObjectHandle cf) { if (cf.isName()) { std::string filter = cf.getName(); if (this->m->crypt_filters.count(filter) != 0) { return this->m->crypt_filters[filter]; } else if (filter == "/Identity") { return e_none; } else { return e_unknown; } } else { // Default: /Identity return e_none; } } void QPDF::initializeEncryption() { if (this->m->encryption_initialized) { return; } this->m->encryption_initialized = true; // After we initialize encryption parameters, we must used stored // key information and never look at /Encrypt again. Otherwise, // things could go wrong if someone mutates the encryption // dictionary. if (! this->m->trailer.hasKey("/Encrypt")) { return; } // Go ahead and set this->m->encrypted here. That way, isEncrypted // will return true even if there were errors reading the // encryption dictionary. this->m->encrypted = true; std::string id1; QPDFObjectHandle id_obj = this->m->trailer.getKey("/ID"); if ((id_obj.isArray() && (id_obj.getArrayNItems() == 2) && id_obj.getArrayItem(0).isString())) { id1 = id_obj.getArrayItem(0).getStringValue(); } else { // Treating a missing ID as the empty string enables qpdf to // decrypt some invalid encrypted files with no /ID that // poppler can read but Adobe Reader can't. warn(QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "trailer", this->m->file->getLastOffset(), "invalid /ID in trailer dictionary")); } QPDFObjectHandle encryption_dict = this->m->trailer.getKey("/Encrypt"); if (! encryption_dict.isDictionary()) { throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), this->m->last_object_description, this->m->file->getLastOffset(), "/Encrypt in trailer dictionary is not a dictionary"); } if (! (encryption_dict.getKey("/Filter").isName() && (encryption_dict.getKey("/Filter").getName() == "/Standard"))) { throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "encryption dictionary", this->m->file->getLastOffset(), "unsupported encryption filter"); } if (! encryption_dict.getKey("/SubFilter").isNull()) { warn(QPDFExc(qpdf_e_unsupported, this->m->file->getName(), "encryption dictionary", this->m->file->getLastOffset(), "file uses encryption SubFilters," " which qpdf does not support")); } if (! (encryption_dict.getKey("/V").isInteger() && encryption_dict.getKey("/R").isInteger() && encryption_dict.getKey("/O").isString() && encryption_dict.getKey("/U").isString() && encryption_dict.getKey("/P").isInteger())) { throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "encryption dictionary", this->m->file->getLastOffset(), "some encryption dictionary parameters are missing " "or the wrong type"); } int V = encryption_dict.getKey("/V").getIntValue(); int R = encryption_dict.getKey("/R").getIntValue(); std::string O = encryption_dict.getKey("/O").getStringValue(); std::string U = encryption_dict.getKey("/U").getStringValue(); unsigned int P = encryption_dict.getKey("/P").getIntValue(); // If supporting new encryption R/V values, remember to update // error message inside this if statement. if (! (((R >= 2) && (R <= 6)) && ((V == 1) || (V == 2) || (V == 4) || (V == 5)))) { throw QPDFExc(qpdf_e_unsupported, this->m->file->getName(), "encryption dictionary", this->m->file->getLastOffset(), "Unsupported /R or /V in encryption dictionary; R = " + QUtil::int_to_string(R) + " (max 6), V = " + QUtil::int_to_string(V) + " (max 5)"); } this->m->encryption_V = V; this->m->encryption_R = R; // OE, UE, and Perms are only present if V >= 5. std::string OE; std::string UE; std::string Perms; if (V < 5) { // These must be exactly the right number of bytes. pad_short_parameter(O, key_bytes); pad_short_parameter(U, key_bytes); if (! ((O.length() == key_bytes) && (U.length() == key_bytes))) { throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "encryption dictionary", this->m->file->getLastOffset(), "incorrect length for /O and/or /U in " "encryption dictionary"); } } else { if (! (encryption_dict.getKey("/OE").isString() && encryption_dict.getKey("/UE").isString() && encryption_dict.getKey("/Perms").isString())) { throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "encryption dictionary", this->m->file->getLastOffset(), "some V=5 encryption dictionary parameters are " "missing or the wrong type"); } OE = encryption_dict.getKey("/OE").getStringValue(); UE = encryption_dict.getKey("/UE").getStringValue(); Perms = encryption_dict.getKey("/Perms").getStringValue(); // These may be longer than the minimum number of bytes. pad_short_parameter(O, OU_key_bytes_V5); pad_short_parameter(U, OU_key_bytes_V5); pad_short_parameter(OE, OUE_key_bytes_V5); pad_short_parameter(UE, OUE_key_bytes_V5); pad_short_parameter(Perms, Perms_key_bytes_V5); } int Length = 40; if (encryption_dict.getKey("/Length").isInteger()) { Length = encryption_dict.getKey("/Length").getIntValue(); if ((Length % 8) || (Length < 40) || (Length > 256)) { throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "encryption dictionary", this->m->file->getLastOffset(), "invalid /Length value in encryption dictionary"); } } this->m->encrypt_metadata = true; if ((V >= 4) && (encryption_dict.getKey("/EncryptMetadata").isBool())) { this->m->encrypt_metadata = encryption_dict.getKey("/EncryptMetadata").getBoolValue(); } if ((V == 4) || (V == 5)) { QPDFObjectHandle CF = encryption_dict.getKey("/CF"); std::set keys = CF.getKeys(); for (std::set::iterator iter = keys.begin(); iter != keys.end(); ++iter) { std::string const& filter = *iter; QPDFObjectHandle cdict = CF.getKey(filter); if (cdict.isDictionary()) { encryption_method_e method = e_none; if (cdict.getKey("/CFM").isName()) { std::string method_name = cdict.getKey("/CFM").getName(); if (method_name == "/V2") { QTC::TC("qpdf", "QPDF_encryption CFM V2"); method = e_rc4; } else if (method_name == "/AESV2") { QTC::TC("qpdf", "QPDF_encryption CFM AESV2"); method = e_aes; } else if (method_name == "/AESV3") { QTC::TC("qpdf", "QPDF_encryption CFM AESV3"); method = e_aesv3; } else { // Don't complain now -- maybe we won't need // to reference this type. method = e_unknown; } } this->m->crypt_filters[filter] = method; } } QPDFObjectHandle StmF = encryption_dict.getKey("/StmF"); QPDFObjectHandle StrF = encryption_dict.getKey("/StrF"); QPDFObjectHandle EFF = encryption_dict.getKey("/EFF"); this->m->cf_stream = interpretCF(StmF); this->m->cf_string = interpretCF(StrF); if (EFF.isName()) { this->m->cf_file = interpretCF(EFF); } else { this->m->cf_file = this->m->cf_stream; } } EncryptionData data(V, R, Length / 8, P, O, U, OE, UE, Perms, id1, this->m->encrypt_metadata); if (this->m->provided_password_is_hex_key) { // ignore passwords in file } else if (check_owner_password( this->m->user_password, this->m->provided_password, data)) { // password supplied was owner password; user_password has // been initialized for V < 5 } else if (check_user_password(this->m->provided_password, data)) { this->m->user_password = this->m->provided_password; } else { throw QPDFExc(qpdf_e_password, this->m->file->getName(), "", 0, "invalid password"); } if (this->m->provided_password_is_hex_key) { this->m->encryption_key = QUtil::hex_decode(this->m->provided_password); } else if (V < 5) { // For V < 5, the user password is encrypted with the owner // password, and the user password is always used for // computing the encryption key. this->m->encryption_key = compute_encryption_key( this->m->user_password, data); } else { // For V >= 5, either password can be used independently to // compute the encryption key, and neither password can be // used to recover the other. bool perms_valid; this->m->encryption_key = recover_encryption_key_with_password( this->m->provided_password, data, perms_valid); if (! perms_valid) { warn(QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), "encryption dictionary", this->m->file->getLastOffset(), "/Perms field in encryption dictionary" " doesn't match expected value")); } } } std::string QPDF::getKeyForObject(int objid, int generation, bool use_aes) { if (! this->m->encrypted) { throw std::logic_error( "request for encryption key in non-encrypted PDF"); } if (! ((objid == this->m->cached_key_objid) && (generation == this->m->cached_key_generation))) { this->m->cached_object_encryption_key = compute_data_key(this->m->encryption_key, objid, generation, use_aes, this->m->encryption_V, this->m->encryption_R); this->m->cached_key_objid = objid; this->m->cached_key_generation = generation; } return this->m->cached_object_encryption_key; } void QPDF::decryptString(std::string& str, int objid, int generation) { if (objid == 0) { return; } bool use_aes = false; if (this->m->encryption_V >= 4) { switch (this->m->cf_string) { case e_none: return; case e_aes: use_aes = true; break; case e_aesv3: use_aes = true; break; case e_rc4: break; default: warn(QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), this->m->last_object_description, this->m->file->getLastOffset(), "unknown encryption filter for strings" " (check /StrF in /Encrypt dictionary);" " strings may be decrypted improperly")); // To avoid repeated warnings, reset cf_string. Assume // we'd want to use AES if V == 4. this->m->cf_string = e_aes; break; } } std::string key = getKeyForObject(objid, generation, use_aes); try { if (use_aes) { QTC::TC("qpdf", "QPDF_encryption aes decode string"); Pl_Buffer bufpl("decrypted string"); Pl_AES_PDF pl("aes decrypt string", &bufpl, false, QUtil::unsigned_char_pointer(key), key.length()); pl.write(QUtil::unsigned_char_pointer(str), str.length()); pl.finish(); PointerHolder buf = bufpl.getBuffer(); str = std::string(reinterpret_cast(buf->getBuffer()), buf->getSize()); } else { QTC::TC("qpdf", "QPDF_encryption rc4 decode string"); unsigned int vlen = str.length(); // Using PointerHolder guarantees that tmp will // be freed even if rc4.process throws an exception. PointerHolder tmp(true, QUtil::copy_string(str)); RC4 rc4(QUtil::unsigned_char_pointer(key), key.length()); rc4.process(QUtil::unsigned_char_pointer(tmp.getPointer()), vlen); str = std::string(tmp.getPointer(), vlen); } } catch (QPDFExc&) { throw; } catch (std::runtime_error& e) { throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), this->m->last_object_description, this->m->file->getLastOffset(), "error decrypting string for object " + QUtil::int_to_string(objid) + " " + QUtil::int_to_string(generation) + ": " + e.what()); } } void QPDF::decryptStream(Pipeline*& pipeline, int objid, int generation, QPDFObjectHandle& stream_dict, std::vector >& heap) { std::string type; if (stream_dict.getKey("/Type").isName()) { type = stream_dict.getKey("/Type").getName(); } if (type == "/XRef") { QTC::TC("qpdf", "QPDF_encryption xref stream from encrypted file"); return; } bool use_aes = false; if (this->m->encryption_V >= 4) { encryption_method_e method = e_unknown; std::string method_source = "/StmF from /Encrypt dictionary"; if (stream_dict.getKey("/Filter").isOrHasName("/Crypt")) { if (stream_dict.getKey("/DecodeParms").isDictionary()) { QPDFObjectHandle decode_parms = stream_dict.getKey("/DecodeParms"); if (decode_parms.getKey("/Type").isName() && (decode_parms.getKey("/Type").getName() == "/CryptFilterDecodeParms")) { QTC::TC("qpdf", "QPDF_encryption stream crypt filter"); method = interpretCF(decode_parms.getKey("/Name")); method_source = "stream's Crypt decode parameters"; } } else if (stream_dict.getKey("/DecodeParms").isArray() && stream_dict.getKey("/Filter").isArray()) { QPDFObjectHandle filter = stream_dict.getKey("/Filter"); QPDFObjectHandle decode = stream_dict.getKey("/DecodeParms"); if (filter.getArrayNItems() == decode.getArrayNItems()) { for (int i = 0; i < filter.getArrayNItems(); ++i) { if (filter.getArrayItem(i).isName() && (filter.getArrayItem(i).getName() == "/Crypt")) { QPDFObjectHandle crypt_params = decode.getArrayItem(i); if (crypt_params.isDictionary() && crypt_params.getKey("/Name").isName()) { QTC::TC("qpdf", "QPDF_encrypt crypt array"); method = interpretCF( crypt_params.getKey("/Name")); method_source = "stream's Crypt " "decode parameters (array)"; } } } } } } if (method == e_unknown) { if ((! this->m->encrypt_metadata) && (type == "/Metadata")) { QTC::TC("qpdf", "QPDF_encryption cleartext metadata"); method = e_none; } else { if (this->m->attachment_streams.count( QPDFObjGen(objid, generation)) > 0) { method = this->m->cf_file; } else { method = this->m->cf_stream; } } } use_aes = false; switch (method) { case e_none: return; break; case e_aes: use_aes = true; break; case e_aesv3: use_aes = true; break; case e_rc4: break; default: // filter local to this stream. warn(QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), this->m->last_object_description, this->m->file->getLastOffset(), "unknown encryption filter for streams" " (check " + method_source + ");" " streams may be decrypted improperly")); // To avoid repeated warnings, reset cf_stream. Assume // we'd want to use AES if V == 4. this->m->cf_stream = e_aes; break; } } std::string key = getKeyForObject(objid, generation, use_aes); if (use_aes) { QTC::TC("qpdf", "QPDF_encryption aes decode stream"); pipeline = new Pl_AES_PDF("AES stream decryption", pipeline, false, QUtil::unsigned_char_pointer(key), key.length()); } else { QTC::TC("qpdf", "QPDF_encryption rc4 decode stream"); pipeline = new Pl_RC4("RC4 stream decryption", pipeline, QUtil::unsigned_char_pointer(key), key.length()); } heap.push_back(pipeline); } void QPDF::compute_encryption_O_U( char const* user_password, char const* owner_password, int V, int R, int key_len, int P, bool encrypt_metadata, std::string const& id1, std::string& O, std::string& U) { if (V >= 5) { throw std::logic_error( "compute_encryption_O_U called for file with V >= 5"); } EncryptionData data(V, R, key_len, P, "", "", "", "", "", id1, encrypt_metadata); data.setO(compute_O_value(user_password, owner_password, data)); O = data.getO(); data.setU(compute_U_value(user_password, data)); U = data.getU(); } void QPDF::compute_encryption_parameters_V5( char const* user_password, char const* owner_password, int V, int R, int key_len, int P, bool encrypt_metadata, std::string const& id1, std::string& encryption_key, std::string& O, std::string& U, std::string& OE, std::string& UE, std::string& Perms) { EncryptionData data(V, R, key_len, P, "", "", "", "", "", id1, encrypt_metadata); unsigned char k[key_bytes]; QUtil::initializeWithRandomBytes(k, key_bytes); encryption_key = std::string(reinterpret_cast(k), key_bytes); compute_U_UE_value_V5(user_password, encryption_key, data, U, UE); compute_O_OE_value_V5(owner_password, encryption_key, data, U, O, OE); Perms = compute_Perms_value_V5(encryption_key, data); data.setV5EncryptionParameters(O, OE, U, UE, Perms); } std::string const& QPDF::getPaddedUserPassword() const { return this->m->user_password; } std::string QPDF::getTrimmedUserPassword() const { std::string result = this->m->user_password; trim_user_password(result); return result; } std::string QPDF::getEncryptionKey() const { return this->m->encryption_key; } bool QPDF::isEncrypted() const { return this->m->encrypted; } bool QPDF::isEncrypted(int& R, int& P) { int V; encryption_method_e stream, string, file; return isEncrypted(R, P, V, stream, string, file); } bool QPDF::isEncrypted(int& R, int& P, int& V, encryption_method_e& stream_method, encryption_method_e& string_method, encryption_method_e& file_method) { if (this->m->encrypted) { QPDFObjectHandle trailer = getTrailer(); QPDFObjectHandle encrypt = trailer.getKey("/Encrypt"); QPDFObjectHandle Pkey = encrypt.getKey("/P"); QPDFObjectHandle Rkey = encrypt.getKey("/R"); QPDFObjectHandle Vkey = encrypt.getKey("/V"); P = Pkey.getIntValue(); R = Rkey.getIntValue(); V = Vkey.getIntValue(); stream_method = this->m->cf_stream; string_method = this->m->cf_stream; file_method = this->m->cf_file; return true; } else { return false; } } static bool is_bit_set(int P, int bit) { // Bits in P are numbered from 1 in the spec return (P & (1 << (bit - 1))); } bool QPDF::allowAccessibility() { int R = 0; int P = 0; bool status = true; if (isEncrypted(R, P)) { if (R < 3) { status = is_bit_set(P, 5); } else { status = is_bit_set(P, 10); } } return status; } bool QPDF::allowExtractAll() { int R = 0; int P = 0; bool status = true; if (isEncrypted(R, P)) { status = is_bit_set(P, 5); } return status; } bool QPDF::allowPrintLowRes() { int R = 0; int P = 0; bool status = true; if (isEncrypted(R, P)) { status = is_bit_set(P, 3); } return status; } bool QPDF::allowPrintHighRes() { int R = 0; int P = 0; bool status = true; if (isEncrypted(R, P)) { status = is_bit_set(P, 3); if ((R >= 3) && (! is_bit_set(P, 12))) { status = false; } } return status; } bool QPDF::allowModifyAssembly() { int R = 0; int P = 0; bool status = true; if (isEncrypted(R, P)) { if (R < 3) { status = is_bit_set(P, 4); } else { status = is_bit_set(P, 11); } } return status; } bool QPDF::allowModifyForm() { int R = 0; int P = 0; bool status = true; if (isEncrypted(R, P)) { if (R < 3) { status = is_bit_set(P, 6); } else { status = is_bit_set(P, 9); } } return status; } bool QPDF::allowModifyAnnotation() { int R = 0; int P = 0; bool status = true; if (isEncrypted(R, P)) { status = is_bit_set(P, 6); } return status; } bool QPDF::allowModifyOther() { int R = 0; int P = 0; bool status = true; if (isEncrypted(R, P)) { status = is_bit_set(P, 4); } return status; } bool QPDF::allowModifyAll() { int R = 0; int P = 0; bool status = true; if (isEncrypted(R, P)) { status = (is_bit_set(P, 4) && is_bit_set(P, 6)); if (R >= 3) { status = status && (is_bit_set(P, 9) && is_bit_set(P, 11)); } } return status; } qpdf-8.0.2/libqpdf/InputSource.cc0000644000064100006410000001627013247541377014764 0ustar ejbejb#include #include #include #include #include void InputSource::setLastOffset(qpdf_offset_t offset) { this->last_offset = offset; } qpdf_offset_t InputSource::getLastOffset() const { return this->last_offset; } std::string InputSource::readLine(size_t max_line_length) { // Return at most max_line_length characters from the next line. // Lines are terminated by one or more \r or \n characters. // Consume the trailing newline characters but don't return them. // After this is called, the file will be positioned after a line // terminator or at the end of the file, and last_offset will // point to position the file had when this method was called. qpdf_offset_t offset = this->tell(); char* buf = new char[max_line_length + 1]; PointerHolder bp(true, buf); memset(buf, '\0', max_line_length + 1); this->read(buf, max_line_length); this->seek(offset, SEEK_SET); qpdf_offset_t eol = this->findAndSkipNextEOL(); this->last_offset = offset; size_t line_length = eol - offset; if (line_length < max_line_length) { buf[line_length] = '\0'; } return std::string(buf); } bool InputSource::findFirst(char const* start_chars, qpdf_offset_t offset, size_t len, Finder& finder) { // Basic approach: search for the first character of start_chars // starting from offset but not going past len (if len != 0). Once // the first character is found, see if it is the beginning of a // sequence of characters matching start_chars. If so, call // finder.check() to do caller-specific additional checks. If not, // keep searching. // This code is tricky and highly subject to off-by-one or other // edge case logic errors. See comments throughout that explain // how we're not missing any edge cases. There are also tests // specifically constructed to make sure we caught the edge cases // in testing. char buf[1025]; // size known to input_source.cc in libtests // To enable us to guarantee null-termination, save an extra byte // so that buf[size] is valid memory. size_t size = sizeof(buf) - 1; if ((strlen(start_chars) < 1) || (strlen(start_chars) > size)) { throw std::logic_error( "InputSource::findSource called with" " too small or too large of a character sequence"); } char* p = 0; qpdf_offset_t buf_offset = offset; size_t bytes_read = 0; // Guarantee that we return from this loop. Each time through, we // either return, advance p, or restart the loop with a condition // that will cause return on the next pass. Eventually we will // either be out of range or hit EOF, either of which forces us to // return. while (true) { // Do we need to read more data? Pretend size = 5, buf starts // at 0, and start_chars has 3 characters. buf[5] is valid and // null. If p == 2, start_chars could be buf[2] through // buf[4], so p + strlen(start_chars) == buf + size is okay. // If p points to buf[size], since strlen(start_chars) is // always >= 1, this overflow test will be correct for that // case regardless of start_chars. if ((p == 0) || ((p + strlen(start_chars)) > (buf + bytes_read))) { if (p) { QTC::TC("libtests", "InputSource read next block", ((p == buf + bytes_read) ? 0 : 1)); buf_offset += (p - buf); } this->seek(buf_offset, SEEK_SET); // Read into buffer and zero out the rest of the buffer // including buf[size]. We allocated an extra byte so that // we could guarantee null termination as an extra // protection against overrun when using string functions. bytes_read = this->read(buf, size); if (bytes_read < strlen(start_chars)) { QTC::TC("libtests", "InputSource find EOF", bytes_read == 0 ? 0 : 1); return false; } memset(buf + bytes_read, '\0', 1 + (size - bytes_read)); p = buf; } // Search for the first character. if ((p = static_cast( memchr(p, start_chars[0], bytes_read - (p - buf)))) != 0) { if (p == buf) { QTC::TC("libtests", "InputSource found match at buf[0]"); } // Found first letter. if (len != 0) { // Make sure it's in range. size_t p_relative_offset = (p - buf) + (buf_offset - offset); if (p_relative_offset >= len) { // out of range QTC::TC("libtests", "InputSource out of range"); return false; } } if ((p + strlen(start_chars)) > (buf + bytes_read)) { // If there are not enough bytes left in the file for // start_chars, we will detect this on the next pass // as EOF and return. QTC::TC("libtests", "InputSource not enough bytes"); continue; } // See if p points to a sequence matching start_chars. We // already checked above to make sure we are not going to // overrun memory. if (strncmp(p, start_chars, strlen(start_chars)) == 0) { // Call finder.check() with the input source // positioned to the point of the match. this->seek(buf_offset + (p - buf), SEEK_SET); if (finder.check()) { return true; } else { QTC::TC("libtests", "InputSource start_chars matched but not check"); } } else { QTC::TC("libtests", "InputSource first char matched but not string"); } // This occurrence of the first character wasn't a match. // Skip over it and keep searching. ++p; } else { // Trigger reading the next block p = buf + bytes_read; } } throw std::logic_error("InputSource after while (true)"); } bool InputSource::findLast(char const* start_chars, qpdf_offset_t offset, size_t len, Finder& finder) { bool found = false; qpdf_offset_t after_found_offset = 0; qpdf_offset_t cur_offset = offset; size_t cur_len = len; while (this->findFirst(start_chars, cur_offset, cur_len, finder)) { if (found) { QTC::TC("libtests", "InputSource findLast found more than one"); } else { found = true; } after_found_offset = this->tell(); cur_offset = after_found_offset; cur_len = len - (cur_offset - offset); } if (found) { this->seek(after_found_offset, SEEK_SET); } return found; } qpdf-8.0.2/libqpdf/QPDF_optimization.cc0000644000064100006410000003371413247541377016046 0ustar ejbejb// See the "Optimization" section of the manual. #include #include #include #include #include #include QPDF::ObjUser::ObjUser() : ou_type(ou_bad), pageno(0) { } QPDF::ObjUser::ObjUser(user_e type) : ou_type(type), pageno(0) { assert(type == ou_root); } QPDF::ObjUser::ObjUser(user_e type, int pageno) : ou_type(type), pageno(pageno) { assert((type == ou_page) || (type == ou_thumb)); } QPDF::ObjUser::ObjUser(user_e type, std::string const& key) : ou_type(type), pageno(0), key(key) { assert((type == ou_trailer_key) || (type == ou_root_key)); } bool QPDF::ObjUser::operator<(ObjUser const& rhs) const { if (this->ou_type < rhs.ou_type) { return true; } else if (this->ou_type == rhs.ou_type) { if (this->pageno < rhs.pageno) { return true; } else if (this->pageno == rhs.pageno) { return (this->key < rhs.key); } } return false; } void QPDF::optimize(std::map const& object_stream_data, bool allow_changes) { if (! this->m->obj_user_to_objects.empty()) { // already optimized return; } // The PDF specification indicates that /Outlines is supposed to // be an indirect reference. Force it to be so if it exists and // is direct. (This has been seen in the wild.) QPDFObjectHandle root = getRoot(); if (root.getKey("/Outlines").isDictionary()) { QPDFObjectHandle outlines = root.getKey("/Outlines"); if (! outlines.isIndirect()) { QTC::TC("qpdf", "QPDF_optimization indirect outlines"); root.replaceKey("/Outlines", makeIndirectObject(outlines)); } } // Traverse pages tree pushing all inherited resources down to the // page level. This also initializes this->m->all_pages. pushInheritedAttributesToPage(allow_changes, false); // Traverse pages int n = this->m->all_pages.size(); for (int pageno = 0; pageno < n; ++pageno) { updateObjectMaps(ObjUser(ObjUser::ou_page, pageno), this->m->all_pages.at(pageno)); } // Traverse document-level items std::set keys = this->m->trailer.getKeys(); for (std::set::iterator iter = keys.begin(); iter != keys.end(); ++iter) { std::string const& key = *iter; if (key == "/Root") { // handled separately } else { updateObjectMaps(ObjUser(ObjUser::ou_trailer_key, key), this->m->trailer.getKey(key)); } } keys = root.getKeys(); for (std::set::iterator iter = keys.begin(); iter != keys.end(); ++iter) { // Technically, /I keys from /Thread dictionaries are supposed // to be handled separately, but we are going to disregard // that specification for now. There is loads of evidence // that pdlin and Acrobat both disregard things like this from // time to time, so this is almost certain not to cause any // problems. std::string const& key = *iter; updateObjectMaps(ObjUser(ObjUser::ou_root_key, key), root.getKey(key)); } ObjUser root_ou = ObjUser(ObjUser::ou_root); QPDFObjGen root_og = QPDFObjGen(root.getObjGen()); this->m->obj_user_to_objects[root_ou].insert(root_og); this->m->object_to_obj_users[root_og].insert(root_ou); filterCompressedObjects(object_stream_data); } void QPDF::pushInheritedAttributesToPage() { // Public API should not have access to allow_changes. pushInheritedAttributesToPage(true, false); } void QPDF::pushInheritedAttributesToPage(bool allow_changes, bool warn_skipped_keys) { // Traverse pages tree pushing all inherited resources down to the // page level. // The record of whether we've done this is cleared by // updateAllPagesCache(). If we're warning for skipped keys, // re-traverse unconditionally. if (this->m->pushed_inherited_attributes_to_pages && (! warn_skipped_keys)) { return; } // key_ancestors is a mapping of page attribute keys to a stack of // Pages nodes that contain values for them. std::map > key_ancestors; this->m->all_pages.clear(); pushInheritedAttributesToPageInternal( this->m->trailer.getKey("/Root").getKey("/Pages"), key_ancestors, this->m->all_pages, allow_changes, warn_skipped_keys); assert(key_ancestors.empty()); this->m->pushed_inherited_attributes_to_pages = true; } void QPDF::pushInheritedAttributesToPageInternal( QPDFObjectHandle cur_pages, std::map >& key_ancestors, std::vector& pages, bool allow_changes, bool warn_skipped_keys) { std::set visited; pushInheritedAttributesToPageInternal2( cur_pages, key_ancestors, pages, allow_changes, warn_skipped_keys, visited); } void QPDF::pushInheritedAttributesToPageInternal2( QPDFObjectHandle cur_pages, std::map >& key_ancestors, std::vector& pages, bool allow_changes, bool warn_skipped_keys, std::set& visited) { QPDFObjGen this_og = cur_pages.getObjGen(); if (visited.count(this_og) > 0) { throw QPDFExc( qpdf_e_pages, this->m->file->getName(), this->m->last_object_description, 0, "Loop detected in /Pages structure (inherited attributes)"); } visited.insert(this_og); // Extract the underlying dictionary object std::string type = cur_pages.getKey("/Type").getName(); if (type == "/Pages") { // Make a list of inheritable keys. Any key other than /Type, // /Parent, Kids, or /Count is an inheritable attribute. Push // this object onto the stack of pages nodes that have values // for this attribute. std::set inheritable_keys; std::set keys = cur_pages.getKeys(); for (std::set::iterator iter = keys.begin(); iter != keys.end(); ++iter) { std::string const& key = *iter; if ( (key == "/MediaBox") || (key == "/CropBox") || (key == "/Resources") || (key == "/Rotate") ) { if (! allow_changes) { throw QPDFExc(qpdf_e_internal, this->m->file->getName(), this->m->last_object_description, this->m->file->getLastOffset(), "optimize detected an " "inheritable attribute when called " "in no-change mode"); } // This is an inheritable resource inheritable_keys.insert(key); QPDFObjectHandle oh = cur_pages.getKey(key); QTC::TC("qpdf", "QPDF opt direct pages resource", oh.isIndirect() ? 0 : 1); if (! oh.isIndirect()) { if (! oh.isScalar()) { // Replace shared direct object non-scalar // resources with indirect objects to avoid // copying large structures around. cur_pages.replaceKey(key, makeIndirectObject(oh)); oh = cur_pages.getKey(key); } else { // It's okay to copy scalars. QTC::TC("qpdf", "QPDF opt inherited scalar"); } } key_ancestors[key].push_back(oh); if (key_ancestors[key].size() > 1) { QTC::TC("qpdf", "QPDF opt key ancestors depth > 1"); } // Remove this resource from this node. It will be // reattached at the page level. cur_pages.removeKey(key); } else if (! ((key == "/Type") || (key == "/Parent") || (key == "/Kids") || (key == "/Count"))) { // Warn when flattening, but not if the key is at the top // level (i.e. "/Parent" not set), as we don't change these; // but flattening removes intermediate /Pages nodes. if ( (warn_skipped_keys) && (cur_pages.hasKey("/Parent")) ) { QTC::TC("qpdf", "QPDF unknown key not inherited"); setLastObjectDescription("Pages object", cur_pages.getObjectID(), cur_pages.getGeneration()); warn(QPDFExc(qpdf_e_pages, this->m->file->getName(), this->m->last_object_description, 0, "Unknown key " + key + " in /Pages object" " is being discarded as a result of" " flattening the /Pages tree")); } } } // Visit descendant nodes. QPDFObjectHandle kids = cur_pages.getKey("/Kids"); int n = kids.getArrayNItems(); for (int i = 0; i < n; ++i) { pushInheritedAttributesToPageInternal2( kids.getArrayItem(i), key_ancestors, pages, allow_changes, warn_skipped_keys, visited); } // For each inheritable key, pop the stack. If the stack // becomes empty, remove it from the map. That way, the // invariant that the list of keys in key_ancestors is exactly // those keys for which inheritable attributes are available. if (! inheritable_keys.empty()) { QTC::TC("qpdf", "QPDF opt inheritable keys"); for (std::set::iterator iter = inheritable_keys.begin(); iter != inheritable_keys.end(); ++iter) { std::string const& key = (*iter); key_ancestors[key].pop_back(); if (key_ancestors[key].empty()) { QTC::TC("qpdf", "QPDF opt erase empty key ancestor"); key_ancestors.erase(key); } } } else { QTC::TC("qpdf", "QPDF opt no inheritable keys"); } } else if (type == "/Page") { // Add all available inheritable attributes not present in // this object to this object. for (std::map >::iterator iter = key_ancestors.begin(); iter != key_ancestors.end(); ++iter) { std::string const& key = (*iter).first; if (! cur_pages.hasKey(key)) { QTC::TC("qpdf", "QPDF opt resource inherited"); cur_pages.replaceKey(key, (*iter).second.back()); } else { QTC::TC("qpdf", "QPDF opt page resource hides ancestor"); } } pages.push_back(cur_pages); } else { throw QPDFExc(qpdf_e_damaged_pdf, this->m->file->getName(), this->m->last_object_description, this->m->file->getLastOffset(), "invalid Type " + type + " in page tree"); } visited.erase(this_og); } void QPDF::updateObjectMaps(ObjUser const& ou, QPDFObjectHandle oh) { std::set visited; updateObjectMapsInternal(ou, oh, visited, true); } void QPDF::updateObjectMapsInternal(ObjUser const& ou, QPDFObjectHandle oh, std::set& visited, bool top) { // Traverse the object tree from this point taking care to avoid // crossing page boundaries. bool is_page_node = false; if (oh.isDictionary() && oh.hasKey("/Type")) { std::string type = oh.getKey("/Type").getName(); if (type == "/Page") { is_page_node = true; if (! top) { return; } } } if (oh.isIndirect()) { QPDFObjGen og(oh.getObjGen()); if (visited.count(og)) { QTC::TC("qpdf", "QPDF opt loop detected"); return; } this->m->obj_user_to_objects[ou].insert(og); this->m->object_to_obj_users[og].insert(ou); visited.insert(og); } if (oh.isArray()) { int n = oh.getArrayNItems(); for (int i = 0; i < n; ++i) { updateObjectMapsInternal(ou, oh.getArrayItem(i), visited, false); } } else if (oh.isDictionary() || oh.isStream()) { QPDFObjectHandle dict = oh; if (oh.isStream()) { dict = oh.getDict(); } std::set keys = dict.getKeys(); for (std::set::iterator iter = keys.begin(); iter != keys.end(); ++iter) { std::string const& key = *iter; if (is_page_node && (key == "/Thumb")) { // Traverse page thumbnail dictionaries as a special // case. updateObjectMaps(ObjUser(ObjUser::ou_thumb, ou.pageno), dict.getKey(key)); } else if (is_page_node && (key == "/Parent")) { // Don't traverse back up the page tree } else { updateObjectMapsInternal(ou, dict.getKey(key), visited, false); } } } } void QPDF::filterCompressedObjects(std::map const& object_stream_data) { if (object_stream_data.empty()) { return; } // Transform object_to_obj_users and obj_user_to_objects so that // they refer only to uncompressed objects. If something is a // user of a compressed object, then it is really a user of the // object stream that contains it. std::map > t_obj_user_to_objects; std::map > t_object_to_obj_users; for (std::map >::iterator i1 = this->m->obj_user_to_objects.begin(); i1 != this->m->obj_user_to_objects.end(); ++i1) { ObjUser const& ou = (*i1).first; std::set const& objects = (*i1).second; for (std::set::const_iterator i2 = objects.begin(); i2 != objects.end(); ++i2) { QPDFObjGen const& og = (*i2); std::map::const_iterator i3 = object_stream_data.find(og.getObj()); if (i3 == object_stream_data.end()) { t_obj_user_to_objects[ou].insert(og); } else { t_obj_user_to_objects[ou].insert(QPDFObjGen((*i3).second, 0)); } } } for (std::map >::iterator i1 = this->m->object_to_obj_users.begin(); i1 != this->m->object_to_obj_users.end(); ++i1) { QPDFObjGen const& og = (*i1).first; std::set const& objusers = (*i1).second; for (std::set::const_iterator i2 = objusers.begin(); i2 != objusers.end(); ++i2) { ObjUser const& ou = (*i2); std::map::const_iterator i3 = object_stream_data.find(og.getObj()); if (i3 == object_stream_data.end()) { t_object_to_obj_users[og].insert(ou); } else { t_object_to_obj_users[QPDFObjGen((*i3).second, 0)].insert(ou); } } } this->m->obj_user_to_objects = t_obj_user_to_objects; this->m->object_to_obj_users = t_object_to_obj_users; } qpdf-8.0.2/libqpdf/QPDF_Stream.cc0000644000064100006410000005147313247541377014555 0ustar ejbejb#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include std::map QPDF_Stream::filter_abbreviations; QPDF_Stream::QPDF_Stream(QPDF* qpdf, int objid, int generation, QPDFObjectHandle stream_dict, qpdf_offset_t offset, size_t length) : qpdf(qpdf), objid(objid), generation(generation), stream_dict(stream_dict), offset(offset), length(length) { if (! stream_dict.isDictionary()) { throw std::logic_error( "stream object instantiated with non-dictionary " "object for dictionary"); } setStreamDescription(); } QPDF_Stream::~QPDF_Stream() { } void QPDF_Stream::releaseResolved() { this->stream_provider = 0; QPDFObjectHandle::ReleaseResolver::releaseResolved(this->stream_dict); } void QPDF_Stream::setObjGen(int objid, int generation) { if (! ((this->objid == 0) && (this->generation == 0))) { throw std::logic_error( "attempt to set object ID and generation of a stream" " that already has them"); } this->objid = objid; this->generation = generation; } std::string QPDF_Stream::unparse() { // Unparse stream objects as indirect references return QUtil::int_to_string(this->objid) + " " + QUtil::int_to_string(this->generation) + " R"; } QPDFObject::object_type_e QPDF_Stream::getTypeCode() const { return QPDFObject::ot_stream; } char const* QPDF_Stream::getTypeName() const { return "stream"; } void QPDF_Stream::setDescription(QPDF* qpdf, std::string const& description) { this->QPDFObject::setDescription(qpdf, description); setDictDescription(); } void QPDF_Stream::setStreamDescription() { setDescription( this->qpdf, "stream object " + QUtil::int_to_string(this->objid) + " " + QUtil::int_to_string(this->generation)); } void QPDF_Stream::setDictDescription() { QPDF* qpdf = 0; std::string description; if ((! this->stream_dict.hasObjectDescription()) && getDescription(qpdf, description)) { this->stream_dict.setObjectDescription( qpdf, description + " -> stream dictionary"); } } QPDFObjectHandle QPDF_Stream::getDict() const { return this->stream_dict; } bool QPDF_Stream::isDataModified() const { return (! this->token_filters.empty()); } PointerHolder QPDF_Stream::getStreamData(qpdf_stream_decode_level_e decode_level) { Pl_Buffer buf("stream data buffer"); if (! pipeStreamData(&buf, 0, decode_level, false, false)) { throw QPDFExc(qpdf_e_unsupported, qpdf->getFilename(), "", this->offset, "getStreamData called on unfilterable stream"); } QTC::TC("qpdf", "QPDF_Stream getStreamData"); return buf.getBuffer(); } PointerHolder QPDF_Stream::getRawStreamData() { Pl_Buffer buf("stream data buffer"); pipeStreamData(&buf, 0, qpdf_dl_none, false, false); QTC::TC("qpdf", "QPDF_Stream getRawStreamData"); return buf.getBuffer(); } bool QPDF_Stream::understandDecodeParams( std::string const& filter, QPDFObjectHandle decode_obj, int& predictor, int& columns, int& colors, int& bits_per_component, bool& early_code_change) { bool filterable = true; std::set keys = decode_obj.getKeys(); for (std::set::iterator iter = keys.begin(); iter != keys.end(); ++iter) { std::string const& key = *iter; if (((filter == "/FlateDecode") || (filter == "/LZWDecode")) && (key == "/Predictor")) { QPDFObjectHandle predictor_obj = decode_obj.getKey(key); if (predictor_obj.isInteger()) { predictor = predictor_obj.getIntValue(); if (! ((predictor == 1) || (predictor == 2) || ((predictor >= 10) && (predictor <= 15)))) { filterable = false; } } else { filterable = false; } } else if ((filter == "/LZWDecode") && (key == "/EarlyChange")) { QPDFObjectHandle earlychange_obj = decode_obj.getKey(key); if (earlychange_obj.isInteger()) { int earlychange = earlychange_obj.getIntValue(); early_code_change = (earlychange == 1); if (! ((earlychange == 0) || (earlychange == 1))) { filterable = false; } } else { filterable = false; } } else if ((key == "/Columns") || (key == "/Colors") || (key == "/BitsPerComponent")) { QPDFObjectHandle param_obj = decode_obj.getKey(key); if (param_obj.isInteger()) { int val = param_obj.getIntValue(); if (key == "/Columns") { columns = val; } else if (key == "/Colors") { colors = val; } else if (key == "/BitsPerComponent") { bits_per_component = val; } } else { filterable = false; } } else if ((filter == "/Crypt") && (((key == "/Type") || (key == "/Name")) && (decode_obj.getKey("/Type").isNull() || (decode_obj.getKey("/Type").isName() && (decode_obj.getKey("/Type").getName() == "/CryptFilterDecodeParms"))))) { // we handle this in decryptStream } else { filterable = false; } } return filterable; } bool QPDF_Stream::filterable(std::vector& filters, bool& specialized_compression, bool& lossy_compression, int& predictor, int& columns, int& colors, int& bits_per_component, bool& early_code_change) { if (filter_abbreviations.empty()) { // The PDF specification provides these filter abbreviations // for use in inline images, but according to table H.1 in the // pre-ISO versions of the PDF specification, Adobe Reader // also accepts them for stream filters. filter_abbreviations["/AHx"] = "/ASCIIHexDecode"; filter_abbreviations["/A85"] = "/ASCII85Decode"; filter_abbreviations["/LZW"] = "/LZWDecode"; filter_abbreviations["/Fl"] = "/FlateDecode"; filter_abbreviations["/RL"] = "/RunLengthDecode"; filter_abbreviations["/CCF"] = "/CCITTFaxDecode"; filter_abbreviations["/DCT"] = "/DCTDecode"; } // Check filters QPDFObjectHandle filter_obj = this->stream_dict.getKey("/Filter"); bool filters_okay = true; if (filter_obj.isNull()) { // No filters } else if (filter_obj.isName()) { // One filter filters.push_back(filter_obj.getName()); } else if (filter_obj.isArray()) { // Potentially multiple filters int n = filter_obj.getArrayNItems(); for (int i = 0; i < n; ++i) { QPDFObjectHandle item = filter_obj.getArrayItem(i); if (item.isName()) { filters.push_back(item.getName()); } else { filters_okay = false; } } } else { filters_okay = false; } if (! filters_okay) { QTC::TC("qpdf", "QPDF_Stream invalid filter"); warn(QPDFExc(qpdf_e_damaged_pdf, qpdf->getFilename(), "", this->offset, "stream filter type is not name or array")); return false; } bool filterable = true; for (std::vector::iterator iter = filters.begin(); iter != filters.end(); ++iter) { std::string& filter = *iter; if (filter_abbreviations.count(filter)) { QTC::TC("qpdf", "QPDF_Stream expand filter abbreviation"); filter = filter_abbreviations[filter]; } if (filter == "/RunLengthDecode") { specialized_compression = true; } else if (filter == "/DCTDecode") { specialized_compression = true; lossy_compression = true; } else if (! ((filter == "/Crypt") || (filter == "/FlateDecode") || (filter == "/LZWDecode") || (filter == "/ASCII85Decode") || (filter == "/ASCIIHexDecode"))) { filterable = false; } } if (! filterable) { return false; } // `filters' now contains a list of filters to be applied in // order. See which ones we can support. // Initialize values to their defaults as per the PDF spec predictor = 1; columns = 0; colors = 1; bits_per_component = 8; early_code_change = true; // See if we can support any decode parameters that are specified. QPDFObjectHandle decode_obj = this->stream_dict.getKey("/DecodeParms"); std::vector decode_parms; if (decode_obj.isArray()) { for (int i = 0; i < decode_obj.getArrayNItems(); ++i) { decode_parms.push_back(decode_obj.getArrayItem(i)); } } else { for (unsigned int i = 0; i < filters.size(); ++i) { decode_parms.push_back(decode_obj); } } // Ignore /DecodeParms entirely if /Filters is empty. At least // one case of a file whose /DecodeParms was [ << >> ] when // /Filters was empty has been seen in the wild. if ((filters.size() != 0) && (decode_parms.size() != filters.size())) { warn(QPDFExc(qpdf_e_damaged_pdf, qpdf->getFilename(), "", this->offset, "stream /DecodeParms length is" " inconsistent with filters")); filterable = false; } if (! filterable) { return false; } for (unsigned int i = 0; i < filters.size(); ++i) { QPDFObjectHandle decode_item = decode_parms.at(i); if (decode_item.isNull()) { // okay } else if (decode_item.isDictionary()) { if (! understandDecodeParams( filters.at(i), decode_item, predictor, columns, colors, bits_per_component, early_code_change)) { filterable = false; } } else { filterable = false; } } if ((predictor > 1) && (columns == 0)) { // invalid filterable = false; } if (! filterable) { return false; } return filterable; } bool QPDF_Stream::pipeStreamData(Pipeline* pipeline, unsigned long encode_flags, qpdf_stream_decode_level_e decode_level, bool suppress_warnings, bool will_retry) { std::vector filters; int predictor = 1; int columns = 0; int colors = 1; int bits_per_component = 8; bool early_code_change = true; bool specialized_compression = false; bool lossy_compression = false; bool filter = (! ((encode_flags == 0) && (decode_level == qpdf_dl_none))); if (filter) { filter = filterable(filters, specialized_compression, lossy_compression, predictor, columns, colors, bits_per_component, early_code_change); if ((decode_level < qpdf_dl_all) && lossy_compression) { filter = false; } if ((decode_level < qpdf_dl_specialized) && specialized_compression) { filter = false; } QTC::TC("qpdf", "QPDF_Stream special filters", (! filter) ? 0 : lossy_compression ? 1 : specialized_compression ? 2 : 3); } if (pipeline == 0) { QTC::TC("qpdf", "QPDF_Stream pipeStreamData with null pipeline"); return filter; } // Construct the pipeline in reverse order. Force pipelines we // create to be deleted when this function finishes. std::vector > to_delete; PointerHolder normalizer; if (filter) { if (encode_flags & qpdf_ef_compress) { pipeline = new Pl_Flate("compress stream", pipeline, Pl_Flate::a_deflate); to_delete.push_back(pipeline); } if (encode_flags & qpdf_ef_normalize) { normalizer = new ContentNormalizer(); pipeline = new Pl_QPDFTokenizer( "normalizer", normalizer.getPointer(), pipeline); to_delete.push_back(pipeline); } for (std::vector >::reverse_iterator iter = this->token_filters.rbegin(); iter != this->token_filters.rend(); ++iter) { pipeline = new Pl_QPDFTokenizer( "token filter", (*iter).getPointer(), pipeline); to_delete.push_back(pipeline); } for (std::vector::reverse_iterator iter = filters.rbegin(); iter != filters.rend(); ++iter) { std::string const& filter = *iter; if ((filter == "/FlateDecode") || (filter == "/LZWDecode")) { if ((predictor >= 10) && (predictor <= 15)) { QTC::TC("qpdf", "QPDF_Stream PNG filter"); pipeline = new Pl_PNGFilter( "png decode", pipeline, Pl_PNGFilter::a_decode, columns, colors, bits_per_component); to_delete.push_back(pipeline); } else if (predictor == 2) { QTC::TC("qpdf", "QPDF_Stream TIFF predictor"); pipeline = new Pl_TIFFPredictor( "tiff decode", pipeline, Pl_TIFFPredictor::a_decode, columns, colors, bits_per_component); to_delete.push_back(pipeline); } } if (filter == "/Crypt") { // Ignore -- handled by pipeStreamData } else if (filter == "/FlateDecode") { pipeline = new Pl_Flate("stream inflate", pipeline, Pl_Flate::a_inflate); to_delete.push_back(pipeline); } else if (filter == "/ASCII85Decode") { pipeline = new Pl_ASCII85Decoder("ascii85 decode", pipeline); to_delete.push_back(pipeline); } else if (filter == "/ASCIIHexDecode") { pipeline = new Pl_ASCIIHexDecoder("asciiHex decode", pipeline); to_delete.push_back(pipeline); } else if (filter == "/LZWDecode") { pipeline = new Pl_LZWDecoder("lzw decode", pipeline, early_code_change); to_delete.push_back(pipeline); } else if (filter == "/RunLengthDecode") { pipeline = new Pl_RunLength("runlength decode", pipeline, Pl_RunLength::a_decode); to_delete.push_back(pipeline); } else if (filter == "/DCTDecode") { pipeline = new Pl_DCT("DCT decode", pipeline); to_delete.push_back(pipeline); } else { throw std::logic_error( "INTERNAL ERROR: QPDFStream: unknown filter " "encountered after check"); } } } if (this->stream_data.getPointer()) { QTC::TC("qpdf", "QPDF_Stream pipe replaced stream data"); pipeline->write(this->stream_data->getBuffer(), this->stream_data->getSize()); pipeline->finish(); } else if (this->stream_provider.getPointer()) { Pl_Count count("stream provider count", pipeline); this->stream_provider->provideStreamData( this->objid, this->generation, &count); qpdf_offset_t actual_length = count.getCount(); qpdf_offset_t desired_length = 0; if (this->stream_dict.hasKey("/Length")) { desired_length = this->stream_dict.getKey("/Length").getIntValue(); if (actual_length == desired_length) { QTC::TC("qpdf", "QPDF_Stream pipe use stream provider"); } else { QTC::TC("qpdf", "QPDF_Stream provider length mismatch"); // This would be caused by programmer error on the // part of a library user, not by invalid input data. throw std::runtime_error( "stream data provider for " + QUtil::int_to_string(this->objid) + " " + QUtil::int_to_string(this->generation) + " provided " + QUtil::int_to_string(actual_length) + " bytes instead of expected " + QUtil::int_to_string(desired_length) + " bytes"); } } else { QTC::TC("qpdf", "QPDF_Stream provider length not provided"); this->stream_dict.replaceKey( "/Length", QPDFObjectHandle::newInteger(actual_length)); } } else if (this->offset == 0) { QTC::TC("qpdf", "QPDF_Stream pipe no stream data"); throw std::logic_error( "pipeStreamData called for stream with no data"); } else { QTC::TC("qpdf", "QPDF_Stream pipe original stream data"); if (! QPDF::Pipe::pipeStreamData(this->qpdf, this->objid, this->generation, this->offset, this->length, this->stream_dict, pipeline, suppress_warnings, will_retry)) { filter = false; } } if (filter && (! suppress_warnings) && normalizer.getPointer() && normalizer->anyBadTokens()) { warn(QPDFExc(qpdf_e_damaged_pdf, qpdf->getFilename(), "", this->offset, "content normalization encountered bad tokens")); if (normalizer->lastTokenWasBad()) { QTC::TC("qpdf", "QPDF_Stream bad token at end during normalize"); warn(QPDFExc(qpdf_e_damaged_pdf, qpdf->getFilename(), "", this->offset, "normalized content ended with a bad token;" " you may be able to resolve this by" " coalescing content streams in combination" " with normalizing content. From the command" " line, specify --coalesce-contents")); } warn(QPDFExc(qpdf_e_damaged_pdf, qpdf->getFilename(), "", this->offset, "Resulting stream data may be corrupted but is" " may still useful for manual inspection." " For more information on this warning, search" " for content normalization in the manual.")); } return filter; } void QPDF_Stream::replaceStreamData(PointerHolder data, QPDFObjectHandle const& filter, QPDFObjectHandle const& decode_parms) { this->stream_data = data; this->stream_provider = 0; replaceFilterData(filter, decode_parms, data->getSize()); } void QPDF_Stream::replaceStreamData( PointerHolder provider, QPDFObjectHandle const& filter, QPDFObjectHandle const& decode_parms) { this->stream_provider = provider; this->stream_data = 0; replaceFilterData(filter, decode_parms, 0); } void QPDF_Stream::addTokenFilter( PointerHolder token_filter) { this->token_filters.push_back(token_filter); } void QPDF_Stream::replaceFilterData(QPDFObjectHandle const& filter, QPDFObjectHandle const& decode_parms, size_t length) { this->stream_dict.replaceOrRemoveKey("/Filter", filter); this->stream_dict.replaceOrRemoveKey("/DecodeParms", decode_parms); if (length == 0) { QTC::TC("qpdf", "QPDF_Stream unknown stream length"); this->stream_dict.removeKey("/Length"); } else { this->stream_dict.replaceKey( "/Length", QPDFObjectHandle::newInteger(length)); } } void QPDF_Stream::replaceDict(QPDFObjectHandle new_dict) { this->stream_dict = new_dict; setDictDescription(); QPDFObjectHandle length_obj = new_dict.getKey("/Length"); if (length_obj.isInteger()) { this->length = length_obj.getIntValue(); } else { this->length = 0; } } void QPDF_Stream::warn(QPDFExc const& e) { QPDF::Warner::warn(this->qpdf, e); } qpdf-8.0.2/libqpdf/QPDF_InlineImage.cc0000644000064100006410000000100113247541377015461 0ustar ejbejb#include #include QPDF_InlineImage::QPDF_InlineImage(std::string const& val) : val(val) { } QPDF_InlineImage::~QPDF_InlineImage() { } std::string QPDF_InlineImage::unparse() { return this->val; } QPDFObject::object_type_e QPDF_InlineImage::getTypeCode() const { return QPDFObject::ot_inlineimage; } char const* QPDF_InlineImage::getTypeName() const { return "inline-image"; } std::string QPDF_InlineImage::getVal() const { return this->val; } qpdf-8.0.2/libqpdf/Pl_Count.cc0000644000064100006410000000105213247541377014217 0ustar ejbejb#include Pl_Count::Pl_Count(char const* identifier, Pipeline* next) : Pipeline(identifier, next), count(0), last_char('\0') { } Pl_Count::~Pl_Count() { } void Pl_Count::write(unsigned char* buf, size_t len) { if (len) { this->count += len; getNext()->write(buf, len); this->last_char = buf[len - 1]; } } void Pl_Count::finish() { getNext()->finish(); } qpdf_offset_t Pl_Count::getCount() const { return this->count; } unsigned char Pl_Count::getLastChar() const { return this->last_char; } qpdf-8.0.2/libqpdf/QPDF_Bool.cc0000644000064100006410000000063113247541377014203 0ustar ejbejb#include QPDF_Bool::QPDF_Bool(bool val) : val(val) { } QPDF_Bool::~QPDF_Bool() { } std::string QPDF_Bool::unparse() { return (val ? "true" : "false"); } QPDFObject::object_type_e QPDF_Bool::getTypeCode() const { return QPDFObject::ot_boolean; } char const* QPDF_Bool::getTypeName() const { return "boolean"; } bool QPDF_Bool::getVal() const { return this->val; } qpdf-8.0.2/libqpdf/BitStream.cc0000644000064100006410000000247313247541377014376 0ustar ejbejb#include // See comments in bits.cc #define BITS_READ 1 #include "bits.icc" BitStream::BitStream(unsigned char const* p, int nbytes) : start(p), nbytes(nbytes) { reset(); } void BitStream::reset() { p = start; bit_offset = 7; if (static_cast(nbytes) > static_cast(-1) / 8) { throw std::runtime_error("array too large for bitstream"); } bits_available = 8 * nbytes; } unsigned long long BitStream::getBits(int nbits) { return read_bits(this->p, this->bit_offset, this->bits_available, nbits); } long long BitStream::getBitsSigned(int nbits) { unsigned long long bits = read_bits(this->p, this->bit_offset, this->bits_available, nbits); long long result = 0; if (static_cast(bits) > 1 << (nbits - 1)) { result = static_cast(bits - (1 << nbits)); } else { result = static_cast(bits); } return result; } void BitStream::skipToNextByte() { if (bit_offset != 7) { unsigned int bits_to_skip = bit_offset + 1; if (bits_available < bits_to_skip) { throw std::logic_error( "INTERNAL ERROR: overflow skipping to next byte in bitstream"); } bit_offset = 7; ++p; bits_available -= bits_to_skip; } } qpdf-8.0.2/libqpdf/bits.icc0000644000064100006410000000651713247541377013621 0ustar ejbejb #ifndef __BITS_CC__ #define __BITS_CC__ #include #include #include #include // These functions may be run at places where the function call // overhead from test coverage testing would be too high. Therefore, // we make the test coverage cases conditional upon a preprocessor // symbol. BitStream.cc includes this file without defining the // symbol, and the specially designed test code that fully exercises // this code includes with the symbol defined. #ifdef BITS_READ static unsigned long long read_bits(unsigned char const*& p, unsigned int& bit_offset, unsigned int& bits_available, unsigned int bits_wanted) { // View p as a stream of bits: // 76543210 76543210 .... // bit_offset is the bit number within the first byte that marks // the first bit that we would read. if (bits_wanted > bits_available) { throw std::length_error("overflow reading bit stream"); } if (bits_wanted > 32) { throw std::out_of_range("read_bits: too many bits requested"); } unsigned long result = 0; #ifdef BITS_TESTING if (bits_wanted == 0) { QTC::TC("libtests", "bits zero bits wanted"); } #endif while (bits_wanted > 0) { // Grab bits from the first byte clearing anything before // bit_offset. unsigned char byte = *p & ((1 << (bit_offset + 1)) - 1); // There are bit_offset + 1 bits available in the first byte. unsigned int to_copy = std::min(bits_wanted, bit_offset + 1); unsigned int leftover = (bit_offset + 1) - to_copy; #ifdef BITS_TESTING QTC::TC("libtests", "bits bit_offset", ((bit_offset == 0) ? 0 : (bit_offset == 7) ? 1 : 2)); QTC::TC("libtests", "bits leftover", (leftover > 0) ? 1 : 0); #endif // Right shift so that all the bits we want are right justified. byte >>= leftover; // Copy the bits into result result <<= to_copy; result |= byte; // Update pointers if (leftover) { bit_offset = leftover - 1; } else { bit_offset = 7; ++p; } bits_wanted -= to_copy; bits_available -= to_copy; #ifdef BITS_TESTING QTC::TC("libtests", "bits iterations", ((bits_wanted > 8) ? 0 : (bits_wanted > 0) ? 1 : 2)); #endif } return result; } #endif #ifdef BITS_WRITE static void write_bits(unsigned char& ch, unsigned int& bit_offset, unsigned long long val, unsigned int bits, Pipeline* pipeline) { if (bits > 32) { throw std::out_of_range("write_bits: too many bits requested"); } // bit_offset + 1 is the number of bits left in ch #ifdef BITS_TESTING if (bits == 0) { QTC::TC("libtests", "bits write zero bits"); } #endif while (bits > 0) { int bits_to_write = std::min(bits, bit_offset + 1); unsigned char newval = (val >> (bits - bits_to_write)) & ((1 << bits_to_write) - 1); int bits_left_in_ch = bit_offset + 1 - bits_to_write; newval <<= bits_left_in_ch; ch |= newval; if (bits_left_in_ch == 0) { #ifdef BITS_TESTING QTC::TC("libtests", "bits write pipeline"); #endif pipeline->write(&ch, 1); bit_offset = 7; ch = 0; } else { #ifdef BITS_TESTING QTC::TC("libtests", "bits write leftover"); #endif bit_offset -= bits_to_write; } bits -= bits_to_write; #ifdef BITS_TESTING QTC::TC("libtests", "bits write iterations", ((bits > 8) ? 0 : (bits > 0) ? 1 : 2)); #endif } } #endif #endif // __BITS_CC__ qpdf-8.0.2/libqpdf/qpdf-c.cc0000644000064100006410000004306513247541377013660 0ustar ejbejb#include #include #include #include #include #include #include #include #include #include struct _qpdf_error { PointerHolder exc; }; struct _qpdf_data { _qpdf_data(); ~_qpdf_data(); QPDF* qpdf; QPDFWriter* qpdf_writer; PointerHolder error; _qpdf_error tmp_error; std::list warnings; std::string tmp_string; // Parameters for functions we call char const* filename; // or description char const* buffer; unsigned long long size; char const* password; bool write_memory; Buffer* output_buffer; }; _qpdf_data::_qpdf_data() : qpdf(0), qpdf_writer(0), write_memory(false), output_buffer(0) { } _qpdf_data::~_qpdf_data() { delete qpdf_writer; delete qpdf; delete output_buffer; } // must set qpdf->filename and qpdf->password static void call_read(qpdf_data qpdf) { qpdf->qpdf->processFile(qpdf->filename, qpdf->password); } // must set qpdf->filename, qpdf->buffer, qpdf->size, and qpdf->password static void call_read_memory(qpdf_data qpdf) { qpdf->qpdf->processMemoryFile(qpdf->filename, qpdf->buffer, qpdf->size, qpdf->password); } // must set qpdf->filename static void call_init_write(qpdf_data qpdf) { qpdf->qpdf_writer = new QPDFWriter(*(qpdf->qpdf), qpdf->filename); } static void call_init_write_memory(qpdf_data qpdf) { qpdf->qpdf_writer = new QPDFWriter(*(qpdf->qpdf)); qpdf->qpdf_writer->setOutputMemory(); } static void call_write(qpdf_data qpdf) { qpdf->qpdf_writer->write(); } static void call_check(qpdf_data qpdf) { QPDFWriter w(*qpdf->qpdf); Pl_Discard discard; w.setOutputPipeline(&discard); w.setDecodeLevel(qpdf_dl_all); w.write(); } static QPDF_ERROR_CODE trap_errors(qpdf_data qpdf, void (*fn)(qpdf_data)) { QPDF_ERROR_CODE status = QPDF_SUCCESS; try { fn(qpdf); } catch (QPDFExc& e) { qpdf->error = new QPDFExc(e); status |= QPDF_ERRORS; } catch (std::runtime_error& e) { qpdf->error = new QPDFExc(qpdf_e_system, "", "", 0, e.what()); status |= QPDF_ERRORS; } catch (std::exception& e) { qpdf->error = new QPDFExc(qpdf_e_internal, "", "", 0, e.what()); status |= QPDF_ERRORS; } if (qpdf_more_warnings(qpdf)) { status |= QPDF_WARNINGS; } return status; } char const* qpdf_get_qpdf_version() { QTC::TC("qpdf", "qpdf-c called qpdf_get_qpdf_version"); return QPDF::QPDFVersion().c_str(); } qpdf_data qpdf_init() { QTC::TC("qpdf", "qpdf-c called qpdf_init"); qpdf_data qpdf = new _qpdf_data(); qpdf->qpdf = new QPDF(); return qpdf; } void qpdf_cleanup(qpdf_data* qpdf) { QTC::TC("qpdf", "qpdf-c called qpdf_cleanup"); delete *qpdf; *qpdf = 0; } QPDF_BOOL qpdf_more_warnings(qpdf_data qpdf) { QTC::TC("qpdf", "qpdf-c called qpdf_more_warnings"); if (qpdf->warnings.empty()) { std::vector w = qpdf->qpdf->getWarnings(); if (! w.empty()) { qpdf->warnings.assign(w.begin(), w.end()); } } if (qpdf->warnings.empty()) { return QPDF_FALSE; } else { return QPDF_TRUE; } } QPDF_BOOL qpdf_has_error(qpdf_data qpdf) { QTC::TC("qpdf", "qpdf-c called qpdf_has_error"); return (qpdf->error.getPointer() ? QPDF_TRUE : QPDF_FALSE); } qpdf_error qpdf_get_error(qpdf_data qpdf) { if (qpdf->error.getPointer()) { qpdf->tmp_error.exc = qpdf->error; qpdf->error = 0; QTC::TC("qpdf", "qpdf-c qpdf_get_error returned error"); return &qpdf->tmp_error; } else { return 0; } } qpdf_error qpdf_next_warning(qpdf_data qpdf) { if (qpdf_more_warnings(qpdf)) { qpdf->tmp_error.exc = new QPDFExc(qpdf->warnings.front()); qpdf->warnings.pop_front(); QTC::TC("qpdf", "qpdf-c qpdf_next_warning returned warning"); return &qpdf->tmp_error; } else { return 0; } } char const* qpdf_get_error_full_text(qpdf_data qpdf, qpdf_error e) { if (e == 0) { return ""; } return e->exc->what(); } enum qpdf_error_code_e qpdf_get_error_code(qpdf_data qpdf, qpdf_error e) { if (e == 0) { return qpdf_e_success; } return e->exc->getErrorCode(); } char const* qpdf_get_error_filename(qpdf_data qpdf, qpdf_error e) { if (e == 0) { return ""; } return e->exc->getFilename().c_str(); } unsigned long long qpdf_get_error_file_position(qpdf_data qpdf, qpdf_error e) { if (e == 0) { return 0; } return e->exc->getFilePosition(); } char const* qpdf_get_error_message_detail(qpdf_data qpdf, qpdf_error e) { if (e == 0) { return ""; } return e->exc->getMessageDetail().c_str(); } QPDF_ERROR_CODE qpdf_check_pdf(qpdf_data qpdf) { QPDF_ERROR_CODE status = trap_errors(qpdf, &call_check); QTC::TC("qpdf", "qpdf-c called qpdf_check_pdf"); return status; } void qpdf_set_suppress_warnings(qpdf_data qpdf, QPDF_BOOL value) { QTC::TC("qpdf", "qpdf-c called qpdf_set_suppress_warnings"); qpdf->qpdf->setSuppressWarnings(value); } void qpdf_set_ignore_xref_streams(qpdf_data qpdf, QPDF_BOOL value) { QTC::TC("qpdf", "qpdf-c called qpdf_set_ignore_xref_streams"); qpdf->qpdf->setIgnoreXRefStreams(value); } void qpdf_set_attempt_recovery(qpdf_data qpdf, QPDF_BOOL value) { QTC::TC("qpdf", "qpdf-c called qpdf_set_attempt_recovery"); qpdf->qpdf->setAttemptRecovery(value); } QPDF_ERROR_CODE qpdf_read(qpdf_data qpdf, char const* filename, char const* password) { QPDF_ERROR_CODE status = QPDF_SUCCESS; qpdf->filename = filename; qpdf->password = password; status = trap_errors(qpdf, &call_read); // We no longer have a good way to exercise a file with both // warnings and errors because qpdf is getting much better at // recovering. QTC::TC("qpdf", "qpdf-c called qpdf_read", (status == 0) ? 0 : (status & QPDF_WARNINGS) ? 1 : (status & QPDF_ERRORS) ? 2 : -1 ); return status; } QPDF_ERROR_CODE qpdf_read_memory(qpdf_data qpdf, char const* description, char const* buffer, unsigned long long size, char const* password) { QPDF_ERROR_CODE status = QPDF_SUCCESS; qpdf->filename = description; qpdf->buffer = buffer; qpdf->size = size; qpdf->password = password; status = trap_errors(qpdf, &call_read_memory); QTC::TC("qpdf", "qpdf-c called qpdf_read_memory", status); return status; } char const* qpdf_get_pdf_version(qpdf_data qpdf) { QTC::TC("qpdf", "qpdf-c called qpdf_get_pdf_version"); qpdf->tmp_string = qpdf->qpdf->getPDFVersion(); return qpdf->tmp_string.c_str(); } int qpdf_get_pdf_extension_level(qpdf_data qpdf) { QTC::TC("qpdf", "qpdf-c called qpdf_get_pdf_extension_level"); return qpdf->qpdf->getExtensionLevel(); } char const* qpdf_get_user_password(qpdf_data qpdf) { QTC::TC("qpdf", "qpdf-c called qpdf_get_user_password"); qpdf->tmp_string = qpdf->qpdf->getTrimmedUserPassword(); return qpdf->tmp_string.c_str(); } char const* qpdf_get_info_key(qpdf_data qpdf, char const* key) { char const* result = 0; QPDFObjectHandle trailer = qpdf->qpdf->getTrailer(); if (trailer.hasKey("/Info")) { QPDFObjectHandle info = trailer.getKey("/Info"); if (info.hasKey(key)) { QPDFObjectHandle value = info.getKey(key); if (value.isString()) { qpdf->tmp_string = value.getStringValue(); result = qpdf->tmp_string.c_str(); } } } QTC::TC("qpdf", "qpdf-c get_info_key", (result == 0 ? 0 : 1)); return result; } void qpdf_set_info_key(qpdf_data qpdf, char const* key, char const* value) { if ((key == 0) || (std::strlen(key) == 0) || (key[0] != '/')) { return; } QPDFObjectHandle value_object; if (value) { QTC::TC("qpdf", "qpdf-c set_info_key to value"); value_object = QPDFObjectHandle::newString(value); } else { QTC::TC("qpdf", "qpdf-c set_info_key to null"); value_object = QPDFObjectHandle::newNull(); } QPDFObjectHandle trailer = qpdf->qpdf->getTrailer(); if (! trailer.hasKey("/Info")) { QTC::TC("qpdf", "qpdf-c add info to trailer"); trailer.replaceKey( "/Info", qpdf->qpdf->makeIndirectObject(QPDFObjectHandle::newDictionary())); } else { QTC::TC("qpdf", "qpdf-c set-info-key use existing info"); } QPDFObjectHandle info = trailer.getKey("/Info"); info.replaceOrRemoveKey(key, value_object); } QPDF_BOOL qpdf_is_linearized(qpdf_data qpdf) { QTC::TC("qpdf", "qpdf-c called qpdf_is_linearized"); return (qpdf->qpdf->isLinearized() ? QPDF_TRUE : QPDF_FALSE); } QPDF_BOOL qpdf_is_encrypted(qpdf_data qpdf) { QTC::TC("qpdf", "qpdf-c called qpdf_is_encrypted"); return (qpdf->qpdf->isEncrypted() ? QPDF_TRUE : QPDF_FALSE); } QPDF_BOOL qpdf_allow_accessibility(qpdf_data qpdf) { QTC::TC("qpdf", "qpdf-c called qpdf_allow_accessibility"); return qpdf->qpdf->allowAccessibility(); } QPDF_BOOL qpdf_allow_extract_all(qpdf_data qpdf) { QTC::TC("qpdf", "qpdf-c called qpdf_allow_extract_all"); return qpdf->qpdf->allowExtractAll(); } QPDF_BOOL qpdf_allow_print_low_res(qpdf_data qpdf) { QTC::TC("qpdf", "qpdf-c called qpdf_allow_print_low_res"); return qpdf->qpdf->allowPrintLowRes(); } QPDF_BOOL qpdf_allow_print_high_res(qpdf_data qpdf) { QTC::TC("qpdf", "qpdf-c called qpdf_allow_print_high_res"); return qpdf->qpdf->allowPrintHighRes(); } QPDF_BOOL qpdf_allow_modify_assembly(qpdf_data qpdf) { QTC::TC("qpdf", "qpdf-c called qpdf_allow_modify_assembly"); return qpdf->qpdf->allowModifyAssembly(); } QPDF_BOOL qpdf_allow_modify_form(qpdf_data qpdf) { QTC::TC("qpdf", "qpdf-c called qpdf_allow_modify_form"); return qpdf->qpdf->allowModifyForm(); } QPDF_BOOL qpdf_allow_modify_annotation(qpdf_data qpdf) { QTC::TC("qpdf", "qpdf-c called qpdf_allow_modify_annotation"); return qpdf->qpdf->allowModifyAnnotation(); } QPDF_BOOL qpdf_allow_modify_other(qpdf_data qpdf) { QTC::TC("qpdf", "qpdf-c called qpdf_allow_modify_other"); return qpdf->qpdf->allowModifyOther(); } QPDF_BOOL qpdf_allow_modify_all(qpdf_data qpdf) { QTC::TC("qpdf", "qpdf-c called qpdf_allow_modify_all"); return qpdf->qpdf->allowModifyAll(); } static void qpdf_init_write_internal(qpdf_data qpdf) { if (qpdf->qpdf_writer) { QTC::TC("qpdf", "qpdf-c called qpdf_init_write multiple times"); delete qpdf->qpdf_writer; qpdf->qpdf_writer = 0; if (qpdf->output_buffer) { delete qpdf->output_buffer; qpdf->output_buffer = 0; qpdf->write_memory = false; qpdf->filename = 0; } } } QPDF_ERROR_CODE qpdf_init_write(qpdf_data qpdf, char const* filename) { qpdf_init_write_internal(qpdf); qpdf->filename = filename; QPDF_ERROR_CODE status = trap_errors(qpdf, &call_init_write); QTC::TC("qpdf", "qpdf-c called qpdf_init_write", status); return status; } QPDF_ERROR_CODE qpdf_init_write_memory(qpdf_data qpdf) { qpdf_init_write_internal(qpdf); QPDF_ERROR_CODE status = trap_errors(qpdf, &call_init_write_memory); QTC::TC("qpdf", "qpdf-c called qpdf_init_write_memory"); qpdf->write_memory = true; return status; } static void qpdf_get_buffer_internal(qpdf_data qpdf) { if (qpdf->write_memory && (qpdf->output_buffer == 0)) { qpdf->output_buffer = qpdf->qpdf_writer->getBuffer(); } } size_t qpdf_get_buffer_length(qpdf_data qpdf) { qpdf_get_buffer_internal(qpdf); size_t result = 0; if (qpdf->output_buffer) { result = qpdf->output_buffer->getSize(); } return result; } unsigned char const* qpdf_get_buffer(qpdf_data qpdf) { unsigned char const* result = 0; qpdf_get_buffer_internal(qpdf); if (qpdf->output_buffer) { result = qpdf->output_buffer->getBuffer(); } return result; } void qpdf_set_object_stream_mode(qpdf_data qpdf, qpdf_object_stream_e mode) { QTC::TC("qpdf", "qpdf-c called qpdf_set_object_stream_mode"); qpdf->qpdf_writer->setObjectStreamMode(mode); } void qpdf_set_compress_streams(qpdf_data qpdf, QPDF_BOOL value) { QTC::TC("qpdf", "qpdf-c called qpdf_set_compress_streams"); qpdf->qpdf_writer->setCompressStreams(value); } void qpdf_set_decode_level(qpdf_data qpdf, qpdf_stream_decode_level_e level) { QTC::TC("qpdf", "qpdf-c called qpdf_set_decode_level"); qpdf->qpdf_writer->setDecodeLevel(level); } void qpdf_set_preserve_unreferenced_objects(qpdf_data qpdf, QPDF_BOOL value) { QTC::TC("qpdf", "qpdf-c called qpdf_set_preserve_unreferenced_objects"); qpdf->qpdf_writer->setPreserveUnreferencedObjects(value); } void qpdf_set_newline_before_endstream(qpdf_data qpdf, QPDF_BOOL value) { QTC::TC("qpdf", "qpdf-c called qpdf_set_newline_before_endstream"); qpdf->qpdf_writer->setNewlineBeforeEndstream(value); } void qpdf_set_stream_data_mode(qpdf_data qpdf, qpdf_stream_data_e mode) { QTC::TC("qpdf", "qpdf-c called qpdf_set_stream_data_mode"); qpdf->qpdf_writer->setStreamDataMode(mode); } void qpdf_set_content_normalization(qpdf_data qpdf, QPDF_BOOL value) { QTC::TC("qpdf", "qpdf-c called qpdf_set_content_normalization"); qpdf->qpdf_writer->setContentNormalization(value); } void qpdf_set_qdf_mode(qpdf_data qpdf, QPDF_BOOL value) { QTC::TC("qpdf", "qpdf-c called qpdf_set_qdf_mode"); qpdf->qpdf_writer->setQDFMode(value); } void qpdf_set_deterministic_ID(qpdf_data qpdf, QPDF_BOOL value) { QTC::TC("qpdf", "qpdf-c called qpdf_set_deterministic_ID"); qpdf->qpdf_writer->setDeterministicID(value); } void qpdf_set_static_ID(qpdf_data qpdf, QPDF_BOOL value) { QTC::TC("qpdf", "qpdf-c called qpdf_set_static_ID"); qpdf->qpdf_writer->setStaticID(value); } void qpdf_set_static_aes_IV(qpdf_data qpdf, QPDF_BOOL value) { QTC::TC("qpdf", "qpdf-c called qpdf_set_static_aes_IV"); qpdf->qpdf_writer->setStaticAesIV(value); } void qpdf_set_suppress_original_object_IDs( qpdf_data qpdf, QPDF_BOOL value) { QTC::TC("qpdf", "qpdf-c called qpdf_set_suppress_original_object_IDs"); qpdf->qpdf_writer->setSuppressOriginalObjectIDs(value); } void qpdf_set_preserve_encryption(qpdf_data qpdf, QPDF_BOOL value) { QTC::TC("qpdf", "qpdf-c called qpdf_set_preserve_encryption"); qpdf->qpdf_writer->setPreserveEncryption(value); } void qpdf_set_r2_encryption_parameters( qpdf_data qpdf, char const* user_password, char const* owner_password, QPDF_BOOL allow_print, QPDF_BOOL allow_modify, QPDF_BOOL allow_extract, QPDF_BOOL allow_annotate) { QTC::TC("qpdf", "qpdf-c called qpdf_set_r2_encryption_parameters"); qpdf->qpdf_writer->setR2EncryptionParameters( user_password, owner_password, allow_print, allow_modify, allow_extract, allow_annotate); } void qpdf_set_r3_encryption_parameters( qpdf_data qpdf, char const* user_password, char const* owner_password, QPDF_BOOL allow_accessibility, QPDF_BOOL allow_extract, qpdf_r3_print_e print, qpdf_r3_modify_e modify) { QTC::TC("qpdf", "qpdf-c called qpdf_set_r3_encryption_parameters"); qpdf->qpdf_writer->setR3EncryptionParameters( user_password, owner_password, allow_accessibility, allow_extract, print, modify); } void qpdf_set_r4_encryption_parameters( qpdf_data qpdf, char const* user_password, char const* owner_password, QPDF_BOOL allow_accessibility, QPDF_BOOL allow_extract, qpdf_r3_print_e print, qpdf_r3_modify_e modify, QPDF_BOOL encrypt_metadata, QPDF_BOOL use_aes) { QTC::TC("qpdf", "qpdf-c called qpdf_set_r4_encryption_parameters"); qpdf->qpdf_writer->setR4EncryptionParameters( user_password, owner_password, allow_accessibility, allow_extract, print, modify, encrypt_metadata, use_aes); } void qpdf_set_r5_encryption_parameters( qpdf_data qpdf, char const* user_password, char const* owner_password, QPDF_BOOL allow_accessibility, QPDF_BOOL allow_extract, qpdf_r3_print_e print, qpdf_r3_modify_e modify, QPDF_BOOL encrypt_metadata) { QTC::TC("qpdf", "qpdf-c called qpdf_set_r5_encryption_parameters"); qpdf->qpdf_writer->setR5EncryptionParameters( user_password, owner_password, allow_accessibility, allow_extract, print, modify, encrypt_metadata); } void qpdf_set_r6_encryption_parameters( qpdf_data qpdf, char const* user_password, char const* owner_password, QPDF_BOOL allow_accessibility, QPDF_BOOL allow_extract, qpdf_r3_print_e print, qpdf_r3_modify_e modify, QPDF_BOOL encrypt_metadata) { QTC::TC("qpdf", "qpdf-c called qpdf_set_r6_encryption_parameters"); qpdf->qpdf_writer->setR6EncryptionParameters( user_password, owner_password, allow_accessibility, allow_extract, print, modify, encrypt_metadata); } void qpdf_set_linearization(qpdf_data qpdf, QPDF_BOOL value) { QTC::TC("qpdf", "qpdf-c called qpdf_set_linearization"); qpdf->qpdf_writer->setLinearization(value); } void qpdf_set_minimum_pdf_version(qpdf_data qpdf, char const* version) { qpdf_set_minimum_pdf_version_and_extension(qpdf, version, 0); } void qpdf_set_minimum_pdf_version_and_extension( qpdf_data qpdf, char const* version, int extension_level) { QTC::TC("qpdf", "qpdf-c called qpdf_set_minimum_pdf_version"); qpdf->qpdf_writer->setMinimumPDFVersion(version, extension_level); } void qpdf_force_pdf_version(qpdf_data qpdf, char const* version) { qpdf_force_pdf_version_and_extension(qpdf, version, 0); } void qpdf_force_pdf_version_and_extension( qpdf_data qpdf, char const* version, int extension_level) { QTC::TC("qpdf", "qpdf-c called qpdf_force_pdf_version"); qpdf->qpdf_writer->forcePDFVersion(version, extension_level); } QPDF_ERROR_CODE qpdf_write(qpdf_data qpdf) { QPDF_ERROR_CODE status = QPDF_SUCCESS; status = trap_errors(qpdf, &call_write); QTC::TC("qpdf", "qpdf-c called qpdf_write", (status == 0) ? 0 : 1); return status; } qpdf-8.0.2/libqpdf/QPDFXRefEntry.cc0000644000064100006410000000207413247541377015042 0ustar ejbejb#include #include #include QPDFXRefEntry::QPDFXRefEntry() : type(0), field1(0), field2(0) { } QPDFXRefEntry::QPDFXRefEntry(int type, qpdf_offset_t field1, int field2) : type(type), field1(field1), field2(field2) { if ((type < 1) || (type > 2)) { throw std::logic_error( "invalid xref type " + QUtil::int_to_string(type)); } } int QPDFXRefEntry::getType() const { return this->type; } qpdf_offset_t QPDFXRefEntry::getOffset() const { if (this->type != 1) { throw std::logic_error( "getOffset called for xref entry of type != 1"); } return this->field1; } int QPDFXRefEntry::getObjStreamNumber() const { if (this->type != 2) { throw std::logic_error( "getObjStreamNumber called for xref entry of type != 2"); } return this->field1; } int QPDFXRefEntry::getObjStreamIndex() const { if (this->type != 2) { throw std::logic_error( "getObjStreamIndex called for xref entry of type != 2"); } return this->field2; } qpdf-8.0.2/libqpdf/Pl_MD5.cc0000644000064100006410000000300313247541377013512 0ustar ejbejb#include #include Pl_MD5::Pl_MD5(char const* identifier, Pipeline* next) : Pipeline(identifier, next), in_progress(false), enabled(true), persist_across_finish(false) { } Pl_MD5::~Pl_MD5() { } void Pl_MD5::write(unsigned char* buf, size_t len) { if (this->enabled) { if (! this->in_progress) { this->md5.reset(); this->in_progress = true; } // Write in chunks in case len is too big to fit in an int. // Assume int is at least 32 bits. static size_t const max_bytes = 1 << 30; size_t bytes_left = len; unsigned char* data = buf; while (bytes_left > 0) { size_t bytes = (bytes_left >= max_bytes ? max_bytes : bytes_left); this->md5.encodeDataIncrementally( reinterpret_cast(data), bytes); bytes_left -= bytes; data += bytes; } } this->getNext()->write(buf, len); } void Pl_MD5::finish() { this->getNext()->finish(); if (! this->persist_across_finish) { this->in_progress = false; } } void Pl_MD5::enable(bool enabled) { this->enabled = enabled; } void Pl_MD5::persistAcrossFinish(bool persist) { this->persist_across_finish = persist; } std::string Pl_MD5::getHexDigest() { if (! this->enabled) { throw std::logic_error( "digest requested for a disabled MD5 Pipeline"); } this->in_progress = false; return this->md5.unparse(); } qpdf-8.0.2/libqpdf/ContentNormalizer.cc0000644000064100006410000000437013247541377016157 0ustar ejbejb#include #include ContentNormalizer::ContentNormalizer() : any_bad_tokens(false), last_token_was_bad(false) { } ContentNormalizer::~ContentNormalizer() { } void ContentNormalizer::handleToken(QPDFTokenizer::Token const& token) { std::string value = token.getRawValue(); QPDFTokenizer::token_type_e token_type = token.getType(); if (token_type == QPDFTokenizer::tt_bad) { this->any_bad_tokens = true; this->last_token_was_bad = true; } else if (token_type != QPDFTokenizer::tt_eof) { this->last_token_was_bad = false; } switch (token_type) { case QPDFTokenizer::tt_space: { size_t len = value.length(); for (size_t i = 0; i < len; ++i) { char ch = value.at(i); if (ch == '\r') { if ((i + 1 < len) && (value.at(i + 1) == '\n')) { // ignore } else { write("\n"); } } else { write(&ch, 1); } } } break; case QPDFTokenizer::tt_string: // Replacing string and name tokens in this way normalizes // their representation as this will automatically handle // quoting of unprintable characters, etc. writeToken(QPDFTokenizer::Token( QPDFTokenizer::tt_string, token.getValue())); break; case QPDFTokenizer::tt_name: writeToken(QPDFTokenizer::Token( QPDFTokenizer::tt_name, token.getValue())); break; default: writeToken(token); break; } value = token.getRawValue(); if (((token_type == QPDFTokenizer::tt_string) || (token_type == QPDFTokenizer::tt_name)) && ((value.find('\r') != std::string::npos) || (value.find('\n') != std::string::npos))) { write("\n"); } } bool ContentNormalizer::anyBadTokens() const { return this->any_bad_tokens; } bool ContentNormalizer::lastTokenWasBad()const { return this->last_token_was_bad; } qpdf-8.0.2/libqpdf/Pl_SHA2.cc0000644000064100006410000000642113247541377013631 0ustar ejbejb#include #include #include #include #include Pl_SHA2::Pl_SHA2(int bits, Pipeline* next) : Pipeline("sha2", next), in_progress(false), bits(0) { if (bits) { resetBits(bits); } } Pl_SHA2::~Pl_SHA2() { } void Pl_SHA2::badBits() { throw std::logic_error("Pl_SHA2 has unexpected value for bits"); } void Pl_SHA2::write(unsigned char* buf, size_t len) { if (! this->in_progress) { switch (bits) { case 256: sph_sha256_init(&this->ctx256); break; case 384: sph_sha384_init(&this->ctx384); break; case 512: sph_sha512_init(&this->ctx512); break; default: badBits(); break; } this->in_progress = true; } // Write in chunks in case len is too big to fit in an int. // Assume int is at least 32 bits. static size_t const max_bytes = 1 << 30; size_t bytes_left = len; unsigned char* data = buf; while (bytes_left > 0) { size_t bytes = (bytes_left >= max_bytes ? max_bytes : bytes_left); switch (bits) { case 256: sph_sha256(&this->ctx256, data, bytes); break; case 384: sph_sha384(&this->ctx384, data, bytes); break; case 512: sph_sha512(&this->ctx512, data, bytes); break; default: badBits(); break; } bytes_left -= bytes; data += bytes; } if (this->getNext(true)) { this->getNext()->write(buf, len); } } void Pl_SHA2::finish() { if (this->getNext(true)) { this->getNext()->finish(); } switch (bits) { case 256: sph_sha256_close(&this->ctx256, sha256sum); break; case 384: sph_sha384_close(&this->ctx384, sha384sum); break; case 512: sph_sha512_close(&this->ctx512, sha512sum); break; default: badBits(); break; } this->in_progress = false; } void Pl_SHA2::resetBits(int bits) { if (this->in_progress) { throw std::logic_error( "bit reset requested for in-progress SHA2 Pipeline"); } if (! ((bits == 256) || (bits == 384) || (bits == 512))) { throw std::logic_error("Pl_SHA2 called with bits != 256, 384, or 512"); } this->bits = bits; } std::string Pl_SHA2::getRawDigest() { std::string result; switch (bits) { case 256: result = std::string(reinterpret_cast(this->sha256sum), sizeof(this->sha256sum)); break; case 384: result = std::string(reinterpret_cast(this->sha384sum), sizeof(this->sha384sum)); break; case 512: result = std::string(reinterpret_cast(this->sha512sum), sizeof(this->sha512sum)); break; default: badBits(); break; } return result; } std::string Pl_SHA2::getHexDigest() { if (this->in_progress) { throw std::logic_error( "digest requested for in-progress SHA2 Pipeline"); } return QUtil::hex_encode(getRawDigest()); } qpdf-8.0.2/libqpdf/OffsetInputSource.cc0000644000064100006410000000225713247541377016133 0ustar ejbejb#include OffsetInputSource::OffsetInputSource(PointerHolder proxied, qpdf_offset_t global_offset) : proxied(proxied), global_offset(global_offset) { } OffsetInputSource::~OffsetInputSource() { } qpdf_offset_t OffsetInputSource::findAndSkipNextEOL() { return this->proxied->findAndSkipNextEOL() - this->global_offset; } std::string const& OffsetInputSource::getName() const { return this->proxied->getName(); } qpdf_offset_t OffsetInputSource::tell() { return this->proxied->tell() - this->global_offset; } void OffsetInputSource::seek(qpdf_offset_t offset, int whence) { if (whence == SEEK_SET) { this->proxied->seek(offset + global_offset, whence); } else { this->proxied->seek(offset, whence); } } void OffsetInputSource::rewind() { seek(0, SEEK_SET); } size_t OffsetInputSource::read(char* buffer, size_t length) { size_t result = this->proxied->read(buffer, length); this->setLastOffset(this->proxied->getLastOffset() - global_offset); return result; } void OffsetInputSource::unreadCh(char ch) { this->proxied->unreadCh(ch); } qpdf-8.0.2/libqpdf/QPDF_Operator.cc0000644000064100006410000000073713247541377015112 0ustar ejbejb#include #include QPDF_Operator::QPDF_Operator(std::string const& val) : val(val) { } QPDF_Operator::~QPDF_Operator() { } std::string QPDF_Operator::unparse() { return this->val; } QPDFObject::object_type_e QPDF_Operator::getTypeCode() const { return QPDFObject::ot_operator; } char const* QPDF_Operator::getTypeName() const { return "operator"; } std::string QPDF_Operator::getVal() const { return this->val; } qpdf-8.0.2/libqpdf/Pipeline.cc0000644000064100006410000000064513247541377014250 0ustar ejbejb#include #include Pipeline::Pipeline(char const* identifier, Pipeline* next) : identifier(identifier), next(next) { } Pipeline::~Pipeline() { } Pipeline* Pipeline::getNext(bool allow_null) { if ((next == 0) && (! allow_null)) { throw std::logic_error( this->identifier + ": Pipeline::getNext() called on pipeline with no next"); } return this->next; } qpdf-8.0.2/libqpdf/QUtil.cc0000644000064100006410000003714513247541377013546 0ustar ejbejb// Include qpdf-config.h first so off_t is guaranteed to have the right size. #include #include #include #ifdef USE_INSECURE_RANDOM # include #endif #include #include #include #include #include #include #include #include #include #include #include #include #ifdef _WIN32 #include #include #include #else #include #include #endif std::string QUtil::int_to_string(long long num, int length) { return int_to_string_base(num, 10, length); } std::string QUtil::int_to_string_base(long long num, int base, int length) { // Backward compatibility -- int_to_string, which calls this // function, used to use sprintf with %0*d, so we interpret length // such that a negative value appends spaces and a positive value // prepends zeroes. if (! ((base == 8) || (base == 10) || (base == 16))) { throw std::logic_error( "int_to_string_base called with unsupported base"); } std::ostringstream buf; buf << std::setbase(base) << std::nouppercase << num; std::string result; if ((length > 0) && (buf.str().length() < static_cast(length))) { result.append(length - buf.str().length(), '0'); } result += buf.str(); if ((length < 0) && (buf.str().length() < static_cast(-length))) { result.append(-length - buf.str().length(), ' '); } return result; } std::string QUtil::double_to_string(double num, int decimal_places) { // Backward compatibility -- this code used to use sprintf and // treated decimal_places <= 0 to mean to use the default, which // was six decimal places. Also sprintf with %*.f interprets the // length as fixed point rather than significant figures. if (decimal_places <= 0) { decimal_places = 6; } std::ostringstream buf; buf << std::setprecision(decimal_places) << std::fixed << num; return buf.str(); } long long QUtil::string_to_ll(char const* str) { errno = 0; #ifdef _MSC_VER long long result = _strtoi64(str, 0, 10); #else long long result = strtoll(str, 0, 10); #endif if (errno == ERANGE) { throw std::runtime_error( std::string("overflow/underflow converting ") + str + " to 64-bit integer"); } return result; } int QUtil::string_to_int(char const* str) { errno = 0; long long_val = strtol(str, 0, 10); if (errno == ERANGE) { throw std::runtime_error( std::string("overflow/underflow converting ") + str + " to long integer"); } int result = static_cast(long_val); if (static_cast(result) != long_val) { throw std::runtime_error( std::string("overflow/underflow converting ") + str + " to integer"); } return result; } unsigned char* QUtil::unsigned_char_pointer(std::string const& str) { return reinterpret_cast(const_cast(str.c_str())); } unsigned char* QUtil::unsigned_char_pointer(char const* str) { return reinterpret_cast(const_cast(str)); } void QUtil::throw_system_error(std::string const& description) { #ifdef _MSC_VER // "94" is mentioned in the MSVC docs, but it's still safe if the // message is longer. strerror_s is a templated function that // knows the size of buf and truncates. char buf[94]; if (strerror_s(buf, errno) != 0) { throw std::runtime_error(description + ": failed with an unknown error"); } else { throw std::runtime_error(description + ": " + buf); } #else throw std::runtime_error(description + ": " + strerror(errno)); #endif } int QUtil::os_wrapper(std::string const& description, int status) { if (status == -1) { throw_system_error(description); } return status; } FILE* QUtil::safe_fopen(char const* filename, char const* mode) { FILE* f = 0; #ifdef _MSC_VER errno_t err = fopen_s(&f, filename, mode); if (err != 0) { errno = err; throw_system_error(std::string("open ") + filename); } #else f = fopen_wrapper(std::string("open ") + filename, fopen(filename, mode)); #endif return f; } FILE* QUtil::fopen_wrapper(std::string const& description, FILE* f) { if (f == 0) { throw_system_error(description); } return f; } int QUtil::seek(FILE* stream, qpdf_offset_t offset, int whence) { #if HAVE_FSEEKO return fseeko(stream, static_cast(offset), whence); #elif HAVE_FSEEKO64 return fseeko64(stream, offset, whence); #else # if defined _MSC_VER || defined __BORLANDC__ return _fseeki64(stream, offset, whence); # else return fseek(stream, static_cast(offset), whence); # endif #endif } qpdf_offset_t QUtil::tell(FILE* stream) { #if HAVE_FSEEKO return static_cast(ftello(stream)); #elif HAVE_FSEEKO64 return static_cast(ftello64(stream)); #else # if defined _MSC_VER || defined __BORLANDC__ return _ftelli64(stream); # else return static_cast(ftell(stream)); # endif #endif } bool QUtil::same_file(char const* name1, char const* name2) { if ((name1 == 0) || (strlen(name1) == 0) || (name2 == 0) || (strlen(name2) == 0)) { return false; } #ifdef _WIN32 HANDLE fh1 = CreateFile(name1, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); HANDLE fh2 = CreateFile(name2, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); BY_HANDLE_FILE_INFORMATION fi1; BY_HANDLE_FILE_INFORMATION fi2; bool same = false; if ((fh1 != INVALID_HANDLE_VALUE) && (fh2 != INVALID_HANDLE_VALUE) && GetFileInformationByHandle(fh1, &fi1) && GetFileInformationByHandle(fh2, &fi2) && (fi1.dwVolumeSerialNumber == fi2.dwVolumeSerialNumber) && (fi1.nFileIndexLow == fi2.nFileIndexLow) && (fi1.nFileIndexHigh == fi2.nFileIndexHigh)) { same = true; } if (fh1 != INVALID_HANDLE_VALUE) { CloseHandle(fh1); } if (fh2 != INVALID_HANDLE_VALUE) { CloseHandle(fh2); } return same; #else struct stat st1; struct stat st2; if ((stat(name1, &st1) == 0) && (stat(name2, &st2) == 0) && (st1.st_ino == st2.st_ino) && (st1.st_dev == st2.st_dev)) { return true; } #endif return false; } char* QUtil::copy_string(std::string const& str) { char* result = new char[str.length() + 1]; // Use memcpy in case string contains nulls result[str.length()] = '\0'; memcpy(result, str.c_str(), str.length()); return result; } std::string QUtil::hex_encode(std::string const& input) { std::string result; for (unsigned int i = 0; i < input.length(); ++i) { result += QUtil::int_to_string_base( static_cast(static_cast(input.at(i))), 16, 2); } return result; } std::string QUtil::hex_decode(std::string const& input) { std::string result; size_t pos = 0; for (std::string::const_iterator p = input.begin(); p != input.end(); ++p) { char ch = *p; bool skip = false; if ((*p >= 'A') && (*p <= 'F')) { ch -= 'A'; ch += 10; } else if ((*p >= 'a') && (*p <= 'f')) { ch -= 'a'; ch += 10; } else if ((*p >= '0') && (*p <= '9')) { ch -= '0'; } else { skip = true; } if (! skip) { if (pos == 0) { result.push_back(ch << 4); pos = 1; } else { result[result.length()-1] += ch; pos = 0; } } } return result; } void QUtil::binary_stdout() { #ifdef _WIN32 _setmode(_fileno(stdout), _O_BINARY); #endif } void QUtil::binary_stdin() { #ifdef _WIN32 _setmode(_fileno(stdin), _O_BINARY); #endif } void QUtil::setLineBuf(FILE* f) { #ifndef _WIN32 setvbuf(f, reinterpret_cast(0), _IOLBF, 0); #endif } char* QUtil::getWhoami(char* argv0) { char* whoami = 0; if (((whoami = strrchr(argv0, '/')) == NULL) && ((whoami = strrchr(argv0, '\\')) == NULL)) { whoami = argv0; } else { ++whoami; } if ((strlen(whoami) > 4) && (strcmp(whoami + strlen(whoami) - 4, ".exe") == 0)) { whoami[strlen(whoami) - 4] = '\0'; } return whoami; } bool QUtil::get_env(std::string const& var, std::string* value) { // This was basically ripped out of wxWindows. #ifdef _WIN32 # ifdef NO_GET_ENVIRONMENT return false; # else // first get the size of the buffer DWORD len = ::GetEnvironmentVariable(var.c_str(), NULL, 0); if (len == 0) { // this means that there is no such variable return false; } if (value) { char* t = new char[len + 1]; ::GetEnvironmentVariable(var.c_str(), t, len); *value = t; delete [] t; } return true; # endif #else char* p = getenv(var.c_str()); if (p == 0) { return false; } if (value) { *value = p; } return true; #endif } time_t QUtil::get_current_time() { #ifdef _WIN32 // The procedure to get local time at this resolution comes from // the Microsoft documentation. It says to convert a SYSTEMTIME // to a FILETIME, and to copy the FILETIME to a ULARGE_INTEGER. // The resulting number is the number of 100-nanosecond intervals // between January 1, 1601 and now. POSIX threads wants a time // based on January 1, 1970, so we adjust by subtracting the // number of seconds in that time period from the result we get // here. SYSTEMTIME sysnow; GetSystemTime(&sysnow); FILETIME filenow; SystemTimeToFileTime(&sysnow, &filenow); ULARGE_INTEGER uinow; uinow.LowPart = filenow.dwLowDateTime; uinow.HighPart = filenow.dwHighDateTime; ULONGLONG now = uinow.QuadPart; return ((now / 10000000LL) - 11644473600LL); #else return time(0); #endif } std::string QUtil::toUTF8(unsigned long uval) { std::string result; // A UTF-8 encoding of a Unicode value is a single byte for // Unicode values <= 127. For larger values, the first byte of // the UTF-8 encoding has '1' as each of its n highest bits and // '0' for its (n+1)th highest bit where n is the total number of // bytes required. Subsequent bytes start with '10' and have the // remaining 6 bits free for encoding. For example, an 11-bit // Unicode value can be stored in two bytes where the first is // 110zzzzz, the second is 10zzzzzz, and the z's represent the // remaining bits. if (uval > 0x7fffffff) { throw std::runtime_error("bounds error in QUtil::toUTF8"); } else if (uval < 128) { result += static_cast(uval); } else { unsigned char bytes[7]; bytes[6] = '\0'; unsigned char* cur_byte = &bytes[5]; // maximum value that will fit in the current number of bytes unsigned char maxval = 0x3f; // six bits while (uval > maxval) { // Assign low six bits plus 10000000 to lowest unused // byte position, then shift *cur_byte = static_cast(0x80 + (uval & 0x3f)); uval >>= 6; // Maximum that will fit in high byte now shrinks by one bit maxval >>= 1; // Slide to the left one byte if (cur_byte <= bytes) { throw std::logic_error("QUtil::toUTF8: overflow error"); } --cur_byte; } // If maxval is k bits long, the high (7 - k) bits of the // resulting byte must be high. *cur_byte = static_cast( (0xff - (1 + (maxval << 1))) + uval); result += reinterpret_cast(cur_byte); } return result; } // Random data support long QUtil::random() { long result = 0L; initializeWithRandomBytes( reinterpret_cast(&result), sizeof(result)); return result; } static RandomDataProvider* random_data_provider = 0; #ifdef USE_INSECURE_RANDOM static RandomDataProvider* insecure_random_data_provider = InsecureRandomDataProvider::getInstance(); #else static RandomDataProvider* insecure_random_data_provider = 0; #endif static RandomDataProvider* secure_random_data_provider = SecureRandomDataProvider::getInstance(); static void initialize_random_data_provider() { if (random_data_provider == 0) { if (secure_random_data_provider) { random_data_provider = secure_random_data_provider; } else if (insecure_random_data_provider) { random_data_provider = insecure_random_data_provider; } } // QUtil.hh has comments indicating that getRandomDataProvider(), // which calls this method, never returns null. if (random_data_provider == 0) { throw std::logic_error("QPDF has no random data provider"); } } void QUtil::setRandomDataProvider(RandomDataProvider* p) { random_data_provider = p; } RandomDataProvider* QUtil::getRandomDataProvider() { initialize_random_data_provider(); return random_data_provider; } void QUtil::initializeWithRandomBytes(unsigned char* data, size_t len) { initialize_random_data_provider(); random_data_provider->provideRandomData(data, len); } void QUtil::srandom(unsigned int seed) { #ifdef HAVE_RANDOM ::srandom(seed); #else srand(seed); #endif } bool QUtil::is_hex_digit(char ch) { return (ch && (strchr("0123456789abcdefABCDEF", ch) != 0)); } bool QUtil::is_space(char ch) { return (ch && (strchr(" \f\n\r\t\v", ch) != 0)); } bool QUtil::is_digit(char ch) { return ((ch >= '0') && (ch <= '9')); } bool QUtil::is_number(char const* p) { // ^[\+\-]?(\.\d*|\d+(\.\d*)?)$ if (! *p) { return false; } if ((*p == '-') || (*p == '+')) { ++p; } bool found_dot = false; bool found_digit = false; for (; *p; ++p) { if (*p == '.') { if (found_dot) { // only one dot return false; } found_dot = true; } else if (QUtil::is_digit(*p)) { found_digit = true; } else { return false; } } return found_digit; } std::list QUtil::read_lines_from_file(char const* filename) { std::ifstream in(filename, std::ios_base::binary); if (! in.is_open()) { throw_system_error(std::string("open ") + filename); } std::list lines = read_lines_from_file(in); in.close(); return lines; } std::list QUtil::read_lines_from_file(std::istream& in) { std::list result; std::string* buf = 0; char c; while (in.get(c)) { if (buf == 0) { result.push_back(""); buf = &(result.back()); buf->reserve(80); } if (buf->capacity() == buf->size()) { buf->reserve(buf->capacity() * 2); } if (c == '\n') { // Remove any carriage return that preceded the // newline and discard the newline if ((! buf->empty()) && ((*(buf->rbegin())) == '\r')) { buf->erase(buf->length() - 1); } buf = 0; } else { buf->append(1, c); } } return result; } int QUtil::strcasecmp(char const *s1, char const *s2) { #ifdef _WIN32 return _stricmp(s1, s2); #else return ::strcasecmp(s1, s2); #endif } qpdf-8.0.2/libqpdf/Pl_QPDFTokenizer.cc0000644000064100006410000000417613247541377015566 0ustar ejbejb#include #include #include #include Pl_QPDFTokenizer::Members::Members() : filter(0), last_char_was_cr(false), unread_char(false), char_to_unread('\0') { } Pl_QPDFTokenizer::Members::~Members() { } Pl_QPDFTokenizer::Pl_QPDFTokenizer(char const* identifier, QPDFObjectHandle::TokenFilter* filter, Pipeline* next) : Pipeline(identifier, next), m(new Members) { m->filter = filter; QPDFObjectHandle::TokenFilter::PipelineAccessor::setPipeline( m->filter, next); m->tokenizer.allowEOF(); m->tokenizer.includeIgnorable(); } Pl_QPDFTokenizer::~Pl_QPDFTokenizer() { } void Pl_QPDFTokenizer::processChar(char ch) { this->m->tokenizer.presentCharacter(ch); QPDFTokenizer::Token token; if (this->m->tokenizer.getToken( token, this->m->unread_char, this->m->char_to_unread)) { this->m->filter->handleToken(token); if ((token.getType() == QPDFTokenizer::tt_word) && (token.getValue() == "ID")) { QTC::TC("qpdf", "Pl_QPDFTokenizer found ID"); this->m->tokenizer.expectInlineImage(); } } } void Pl_QPDFTokenizer::checkUnread() { if (this->m->unread_char) { processChar(this->m->char_to_unread); if (this->m->unread_char) { throw std::logic_error( "INTERNAL ERROR: unread_char still true after processing " "unread character"); } } } void Pl_QPDFTokenizer::write(unsigned char* buf, size_t len) { checkUnread(); for (size_t i = 0; i < len; ++i) { processChar(buf[i]); checkUnread(); } } void Pl_QPDFTokenizer::finish() { this->m->tokenizer.presentEOF(); QPDFTokenizer::Token token; if (this->m->tokenizer.getToken( token, this->m->unread_char, this->m->char_to_unread)) { this->m->filter->handleToken(token); } this->m->filter->handleEOF(); QPDFObjectHandle::TokenFilter::PipelineAccessor::setPipeline( m->filter, 0); Pipeline* next = this->getNext(true); if (next) { next->finish(); } } qpdf-8.0.2/libqpdf/sph/0000755000064100006410000000000013247541377012761 5ustar ejbejbqpdf-8.0.2/libqpdf/sph/sph_sha2.h0000644000064100006410000002763013247541377014651 0ustar ejbejb/* $Id: sph_sha2.h 216 2010-06-08 09:46:57Z tp $ */ /** * SHA-224, SHA-256, SHA-384 and SHA-512 interface. * * SHA-256 has been published in FIPS 180-2, now amended with a change * notice to include SHA-224 as well (which is a simple variation on * SHA-256). SHA-384 and SHA-512 are also defined in FIPS 180-2. FIPS * standards can be found at: * http://csrc.nist.gov/publications/fips/ * * ==========================(LICENSE BEGIN)============================ * * Copyright (c) 2007-2010 Projet RNRT SAPHIR * * 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. * * ===========================(LICENSE END)============================= * * @file sph_sha2.h * @author Thomas Pornin */ #ifndef SPH_SHA2_H__ #define SPH_SHA2_H__ #ifdef __cplusplus extern "C" { #endif #include #include "sph_types.h" /** * Output size (in bits) for SHA-224. */ #define SPH_SIZE_sha224 224 /** * Output size (in bits) for SHA-256. */ #define SPH_SIZE_sha256 256 /** * This structure is a context for SHA-224 computations: it contains the * intermediate values and some data from the last entered block. Once * a SHA-224 computation has been performed, the context can be reused for * another computation. * * The contents of this structure are private. A running SHA-224 computation * can be cloned by copying the context (e.g. with a simple * memcpy()). */ typedef struct { #ifndef DOXYGEN_IGNORE unsigned char buf[64]; /* first field, for alignment */ sph_u32 val[8]; #if SPH_64 sph_u64 count; #else sph_u32 count_high, count_low; #endif #endif } sph_sha224_context; /** * This structure is a context for SHA-256 computations. It is identical * to the SHA-224 context. However, a context is initialized for SHA-224 * or SHA-256, but not both (the internal IV is not the * same). */ typedef sph_sha224_context sph_sha256_context; /** * Initialize a SHA-224 context. This process performs no memory allocation. * * @param cc the SHA-224 context (pointer to * a sph_sha224_context) */ void sph_sha224_init(void *cc); /** * Process some data bytes. It is acceptable that len is zero * (in which case this function does nothing). * * @param cc the SHA-224 context * @param data the input data * @param len the input data length (in bytes) */ void sph_sha224(void *cc, const void *data, size_t len); /** * Terminate the current SHA-224 computation and output the result into the * provided buffer. The destination buffer must be wide enough to * accomodate the result (28 bytes). The context is automatically * reinitialized. * * @param cc the SHA-224 context * @param dst the destination buffer */ void sph_sha224_close(void *cc, void *dst); /** * Add a few additional bits (0 to 7) to the current computation, then * terminate it and output the result in the provided buffer, which must * be wide enough to accomodate the result (28 bytes). If bit number i * in ub has value 2^i, then the extra bits are those * numbered 7 downto 8-n (this is the big-endian convention at the byte * level). The context is automatically reinitialized. * * @param cc the SHA-224 context * @param ub the extra bits * @param n the number of extra bits (0 to 7) * @param dst the destination buffer */ void sph_sha224_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst); /** * Apply the SHA-224 compression function on the provided data. The * msg parameter contains the 16 32-bit input blocks, * as numerical values (hence after the big-endian decoding). The * val parameter contains the 8 32-bit input blocks for * the compression function; the output is written in place in this * array. * * @param msg the message block (16 values) * @param val the function 256-bit input and output */ void sph_sha224_comp(const sph_u32 msg[16], sph_u32 val[8]); /** * Initialize a SHA-256 context. This process performs no memory allocation. * * @param cc the SHA-256 context (pointer to * a sph_sha256_context) */ void sph_sha256_init(void *cc); #ifdef DOXYGEN_IGNORE /** * Process some data bytes, for SHA-256. This function is identical to * sha_224() * * @param cc the SHA-224 context * @param data the input data * @param len the input data length (in bytes) */ void sph_sha256(void *cc, const void *data, size_t len); #endif #ifndef DOXYGEN_IGNORE #define sph_sha256 sph_sha224 #endif /** * Terminate the current SHA-256 computation and output the result into the * provided buffer. The destination buffer must be wide enough to * accomodate the result (32 bytes). The context is automatically * reinitialized. * * @param cc the SHA-256 context * @param dst the destination buffer */ void sph_sha256_close(void *cc, void *dst); /** * Add a few additional bits (0 to 7) to the current computation, then * terminate it and output the result in the provided buffer, which must * be wide enough to accomodate the result (32 bytes). If bit number i * in ub has value 2^i, then the extra bits are those * numbered 7 downto 8-n (this is the big-endian convention at the byte * level). The context is automatically reinitialized. * * @param cc the SHA-256 context * @param ub the extra bits * @param n the number of extra bits (0 to 7) * @param dst the destination buffer */ void sph_sha256_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst); #ifdef DOXYGEN_IGNORE /** * Apply the SHA-256 compression function on the provided data. This * function is identical to sha224_comp(). * * @param msg the message block (16 values) * @param val the function 256-bit input and output */ void sph_sha256_comp(const sph_u32 msg[16], sph_u32 val[8]); #endif #ifndef DOXYGEN_IGNORE #define sph_sha256_comp sph_sha224_comp #endif #if SPH_64 /** * Output size (in bits) for SHA-384. */ #define SPH_SIZE_sha384 384 /** * Output size (in bits) for SHA-512. */ #define SPH_SIZE_sha512 512 /** * This structure is a context for SHA-384 computations: it contains the * intermediate values and some data from the last entered block. Once * a SHA-384 computation has been performed, the context can be reused for * another computation. * * The contents of this structure are private. A running SHA-384 computation * can be cloned by copying the context (e.g. with a simple * memcpy()). */ typedef struct { #ifndef DOXYGEN_IGNORE unsigned char buf[128]; /* first field, for alignment */ sph_u64 val[8]; sph_u64 count; #endif } sph_sha384_context; /** * Initialize a SHA-384 context. This process performs no memory allocation. * * @param cc the SHA-384 context (pointer to * a sph_sha384_context) */ void sph_sha384_init(void *cc); /** * Process some data bytes. It is acceptable that len is zero * (in which case this function does nothing). * * @param cc the SHA-384 context * @param data the input data * @param len the input data length (in bytes) */ void sph_sha384(void *cc, const void *data, size_t len); /** * Terminate the current SHA-384 computation and output the result into the * provided buffer. The destination buffer must be wide enough to * accomodate the result (48 bytes). The context is automatically * reinitialized. * * @param cc the SHA-384 context * @param dst the destination buffer */ void sph_sha384_close(void *cc, void *dst); /** * Add a few additional bits (0 to 7) to the current computation, then * terminate it and output the result in the provided buffer, which must * be wide enough to accomodate the result (48 bytes). If bit number i * in ub has value 2^i, then the extra bits are those * numbered 7 downto 8-n (this is the big-endian convention at the byte * level). The context is automatically reinitialized. * * @param cc the SHA-384 context * @param ub the extra bits * @param n the number of extra bits (0 to 7) * @param dst the destination buffer */ void sph_sha384_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst); /** * Apply the SHA-384 compression function on the provided data. The * msg parameter contains the 16 64-bit input blocks, * as numerical values (hence after the big-endian decoding). The * val parameter contains the 8 64-bit input blocks for * the compression function; the output is written in place in this * array. * * @param msg the message block (16 values) * @param val the function 512-bit input and output */ void sph_sha384_comp(const sph_u64 msg[16], sph_u64 val[8]); /** * This structure is a context for SHA-512 computations. It is identical * to the SHA-384 context. However, a context is initialized for SHA-384 * or SHA-512, but not both (the internal IV is not the * same). */ typedef sph_sha384_context sph_sha512_context; /** * Initialize a SHA-512 context. This process performs no memory allocation. * * @param cc the SHA-512 context (pointer to * a sph_sha512_context) */ void sph_sha512_init(void *cc); #ifdef DOXYGEN_IGNORE /** * Process some data bytes, for SHA-512. This function is identical to * sph_sha384(). * * @param cc the SHA-384 context * @param data the input data * @param len the input data length (in bytes) */ void sph_sha512(void *cc, const void *data, size_t len); #endif #ifndef DOXYGEN_IGNORE #define sph_sha512 sph_sha384 #endif /** * Terminate the current SHA-512 computation and output the result into the * provided buffer. The destination buffer must be wide enough to * accomodate the result (64 bytes). The context is automatically * reinitialized. * * @param cc the SHA-512 context * @param dst the destination buffer */ void sph_sha512_close(void *cc, void *dst); /** * Add a few additional bits (0 to 7) to the current computation, then * terminate it and output the result in the provided buffer, which must * be wide enough to accomodate the result (64 bytes). If bit number i * in ub has value 2^i, then the extra bits are those * numbered 7 downto 8-n (this is the big-endian convention at the byte * level). The context is automatically reinitialized. * * @param cc the SHA-512 context * @param ub the extra bits * @param n the number of extra bits (0 to 7) * @param dst the destination buffer */ void sph_sha512_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst); #ifdef DOXYGEN_IGNORE /** * Apply the SHA-512 compression function. This function is identical to * sph_sha384_comp(). * * @param msg the message block (16 values) * @param val the function 512-bit input and output */ void sph_sha512_comp(const sph_u64 msg[16], sph_u64 val[8]); #endif #ifndef DOXYGEN_IGNORE #define sph_sha512_comp sph_sha384_comp #endif #endif #ifdef __cplusplus } #endif #endif qpdf-8.0.2/libqpdf/sph/md_helper.c0000644000064100006410000002405213247541377015067 0ustar ejbejb/* $Id: md_helper.c 216 2010-06-08 09:46:57Z tp $ */ /* * This file contains some functions which implement the external data * handling and padding for Merkle-Damgard hash functions which follow * the conventions set out by MD4 (little-endian) or SHA-1 (big-endian). * * API: this file is meant to be included, not compiled as a stand-alone * file. Some macros must be defined: * RFUN name for the round function * HASH "short name" for the hash function * BE32 defined for big-endian, 32-bit based (e.g. SHA-1) * LE32 defined for little-endian, 32-bit based (e.g. MD5) * BE64 defined for big-endian, 64-bit based (e.g. SHA-512) * LE64 defined for little-endian, 64-bit based (no example yet) * PW01 if defined, append 0x01 instead of 0x80 (for Tiger) * BLEN if defined, length of a message block (in bytes) * PLW1 if defined, length is defined on one 64-bit word only (for Tiger) * PLW4 if defined, length is defined on four 64-bit words (for WHIRLPOOL) * SVAL if defined, reference to the context state information * * BLEN is used when a message block is not 16 (32-bit or 64-bit) words: * this is used for instance for Tiger, which works on 64-bit words but * uses 512-bit message blocks (eight 64-bit words). PLW1 and PLW4 are * ignored if 32-bit words are used; if 64-bit words are used and PLW1 is * set, then only one word (64 bits) will be used to encode the input * message length (in bits), otherwise two words will be used (as in * SHA-384 and SHA-512). If 64-bit words are used and PLW4 is defined (but * not PLW1), four 64-bit words will be used to encode the message length * (in bits). Note that regardless of those settings, only 64-bit message * lengths are supported (in bits): messages longer than 2 Exabytes will be * improperly hashed (this is unlikely to happen soon: 2 Exabytes is about * 2 millions Terabytes, which is huge). * * If CLOSE_ONLY is defined, then this file defines only the sph_XXX_close() * function. This is used for Tiger2, which is identical to Tiger except * when it comes to the padding (Tiger2 uses the standard 0x80 byte instead * of the 0x01 from original Tiger). * * The RFUN function is invoked with two arguments, the first pointing to * aligned data (as a "const void *"), the second being state information * from the context structure. By default, this state information is the * "val" field from the context, and this field is assumed to be an array * of words ("sph_u32" or "sph_u64", depending on BE32/LE32/BE64/LE64). * from the context structure. The "val" field can have any type, except * for the output encoding which assumes that it is an array of "sph_u32" * values. By defining NO_OUTPUT, this last step is deactivated; the * includer code is then responsible for writing out the hash result. When * NO_OUTPUT is defined, the third parameter to the "close()" function is * ignored. * * ==========================(LICENSE BEGIN)============================ * * Copyright (c) 2007-2010 Projet RNRT SAPHIR * * 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. * * ===========================(LICENSE END)============================= * * @author Thomas Pornin */ #ifdef _MSC_VER #pragma warning (disable: 4146) #endif #undef SPH_XCAT #define SPH_XCAT(a, b) SPH_XCAT_(a, b) #undef SPH_XCAT_ #define SPH_XCAT_(a, b) a ## b #undef SPH_BLEN #undef SPH_WLEN #if defined BE64 || defined LE64 #define SPH_BLEN 128U #define SPH_WLEN 8U #else #define SPH_BLEN 64U #define SPH_WLEN 4U #endif #ifdef BLEN #undef SPH_BLEN #define SPH_BLEN BLEN #endif #undef SPH_MAXPAD #if defined PLW1 #define SPH_MAXPAD (SPH_BLEN - SPH_WLEN) #elif defined PLW4 #define SPH_MAXPAD (SPH_BLEN - (SPH_WLEN << 2)) #else #define SPH_MAXPAD (SPH_BLEN - (SPH_WLEN << 1)) #endif #undef SPH_VAL #undef SPH_NO_OUTPUT #ifdef SVAL #define SPH_VAL SVAL #define SPH_NO_OUTPUT 1 #else #define SPH_VAL sc->val #endif #ifndef CLOSE_ONLY #ifdef SPH_UPTR static void SPH_XCAT(HASH, _short)(void *cc, const void *data, size_t len) #else void SPH_XCAT(sph_, HASH)(void *cc, const void *data, size_t len) #endif { SPH_XCAT(sph_, SPH_XCAT(HASH, _context)) *sc; unsigned current; sc = cc; #if SPH_64 current = (unsigned)sc->count & (SPH_BLEN - 1U); #else current = (unsigned)sc->count_low & (SPH_BLEN - 1U); #endif while (len > 0) { unsigned clen; #if !SPH_64 sph_u32 clow, clow2; #endif clen = SPH_BLEN - current; if (clen > len) clen = len; memcpy(sc->buf + current, data, clen); data = (const unsigned char *)data + clen; current += clen; len -= clen; if (current == SPH_BLEN) { RFUN(sc->buf, SPH_VAL); current = 0; } #if SPH_64 sc->count += clen; #else clow = sc->count_low; clow2 = SPH_T32(clow + clen); sc->count_low = clow2; if (clow2 < clow) sc->count_high ++; #endif } } #ifdef SPH_UPTR void SPH_XCAT(sph_, HASH)(void *cc, const void *data, size_t len) { SPH_XCAT(sph_, SPH_XCAT(HASH, _context)) *sc; unsigned current; size_t orig_len; #if !SPH_64 sph_u32 clow, clow2; #endif if (len < (2 * SPH_BLEN)) { SPH_XCAT(HASH, _short)(cc, data, len); return; } sc = cc; #if SPH_64 current = (unsigned)sc->count & (SPH_BLEN - 1U); #else current = (unsigned)sc->count_low & (SPH_BLEN - 1U); #endif if (current > 0) { unsigned t; t = SPH_BLEN - current; SPH_XCAT(HASH, _short)(cc, data, t); data = (const unsigned char *)data + t; len -= t; } #if !SPH_UNALIGNED if (((SPH_UPTR)data & (SPH_WLEN - 1U)) != 0) { SPH_XCAT(HASH, _short)(cc, data, len); return; } #endif orig_len = len; while (len >= SPH_BLEN) { RFUN(data, SPH_VAL); len -= SPH_BLEN; data = (const unsigned char *)data + SPH_BLEN; } if (len > 0) memcpy(sc->buf, data, len); #if SPH_64 sc->count += (sph_u64)orig_len; #else clow = sc->count_low; clow2 = SPH_T32(clow + orig_len); sc->count_low = clow2; if (clow2 < clow) sc->count_high ++; /* * This code handles the improbable situation where "size_t" is * greater than 32 bits, and yet we do not have a 64-bit type. */ orig_len >>= 12; orig_len >>= 10; orig_len >>= 10; sc->count_high += orig_len; #endif } #endif #endif /* * Perform padding and produce result. The context is NOT reinitialized * by this function. */ static void SPH_XCAT(HASH, _addbits_and_close)(void *cc, unsigned ub, unsigned n, void *dst, unsigned rnum) { SPH_XCAT(sph_, SPH_XCAT(HASH, _context)) *sc; unsigned current, u; #if !SPH_64 sph_u32 low, high; #endif sc = cc; #if SPH_64 current = (unsigned)sc->count & (SPH_BLEN - 1U); #else current = (unsigned)sc->count_low & (SPH_BLEN - 1U); #endif #ifdef PW01 sc->buf[current ++] = (0x100 | (ub & 0xFF)) >> (8 - n); #else { unsigned z; z = 0x80 >> n; sc->buf[current ++] = ((ub & -z) | z) & 0xFF; } #endif if (current > SPH_MAXPAD) { memset(sc->buf + current, 0, SPH_BLEN - current); RFUN(sc->buf, SPH_VAL); memset(sc->buf, 0, SPH_MAXPAD); } else { memset(sc->buf + current, 0, SPH_MAXPAD - current); } #if defined BE64 #if defined PLW1 sph_enc64be_aligned(sc->buf + SPH_MAXPAD, SPH_T64(sc->count << 3) + (sph_u64)n); #elif defined PLW4 memset(sc->buf + SPH_MAXPAD, 0, 2 * SPH_WLEN); sph_enc64be_aligned(sc->buf + SPH_MAXPAD + 2 * SPH_WLEN, sc->count >> 61); sph_enc64be_aligned(sc->buf + SPH_MAXPAD + 3 * SPH_WLEN, SPH_T64(sc->count << 3) + (sph_u64)n); #else sph_enc64be_aligned(sc->buf + SPH_MAXPAD, sc->count >> 61); sph_enc64be_aligned(sc->buf + SPH_MAXPAD + SPH_WLEN, SPH_T64(sc->count << 3) + (sph_u64)n); #endif #elif defined LE64 #if defined PLW1 sph_enc64le_aligned(sc->buf + SPH_MAXPAD, SPH_T64(sc->count << 3) + (sph_u64)n); #elif defined PLW1 sph_enc64le_aligned(sc->buf + SPH_MAXPAD, SPH_T64(sc->count << 3) + (sph_u64)n); sph_enc64le_aligned(sc->buf + SPH_MAXPAD + SPH_WLEN, sc->count >> 61); memset(sc->buf + SPH_MAXPAD + 2 * SPH_WLEN, 0, 2 * SPH_WLEN); #else sph_enc64le_aligned(sc->buf + SPH_MAXPAD, SPH_T64(sc->count << 3) + (sph_u64)n); sph_enc64le_aligned(sc->buf + SPH_MAXPAD + SPH_WLEN, sc->count >> 61); #endif #else #if SPH_64 #ifdef BE32 sph_enc64be_aligned(sc->buf + SPH_MAXPAD, SPH_T64(sc->count << 3) + (sph_u64)n); #else sph_enc64le_aligned(sc->buf + SPH_MAXPAD, SPH_T64(sc->count << 3) + (sph_u64)n); #endif #else low = sc->count_low; high = SPH_T32((sc->count_high << 3) | (low >> 29)); low = SPH_T32(low << 3) + (sph_u32)n; #ifdef BE32 sph_enc32be(sc->buf + SPH_MAXPAD, high); sph_enc32be(sc->buf + SPH_MAXPAD + SPH_WLEN, low); #else sph_enc32le(sc->buf + SPH_MAXPAD, low); sph_enc32le(sc->buf + SPH_MAXPAD + SPH_WLEN, high); #endif #endif #endif RFUN(sc->buf, SPH_VAL); #ifdef SPH_NO_OUTPUT (void)dst; (void)rnum; (void)u; #else for (u = 0; u < rnum; u ++) { #if defined BE64 sph_enc64be((unsigned char *)dst + 8 * u, sc->val[u]); #elif defined LE64 sph_enc64le((unsigned char *)dst + 8 * u, sc->val[u]); #elif defined BE32 sph_enc32be((unsigned char *)dst + 4 * u, sc->val[u]); #else sph_enc32le((unsigned char *)dst + 4 * u, sc->val[u]); #endif } #endif } static void SPH_XCAT(HASH, _close)(void *cc, void *dst, unsigned rnum) { SPH_XCAT(HASH, _addbits_and_close)(cc, 0, 0, dst, rnum); } qpdf-8.0.2/libqpdf/sph/sph_types.h0000644000064100006410000020157013247541377015155 0ustar ejbejb/* $Id: sph_types.h 260 2011-07-21 01:02:38Z tp $ */ /** * Basic type definitions. * * This header file defines the generic integer types that will be used * for the implementation of hash functions; it also contains helper * functions which encode and decode multi-byte integer values, using * either little-endian or big-endian conventions. * * This file contains a compile-time test on the size of a byte * (the unsigned char C type). If bytes are not octets, * i.e. if they do not have a size of exactly 8 bits, then compilation * is aborted. Architectures where bytes are not octets are relatively * rare, even in the embedded devices market. We forbid non-octet bytes * because there is no clear convention on how octet streams are encoded * on such systems. * * ==========================(LICENSE BEGIN)============================ * * Copyright (c) 2007-2010 Projet RNRT SAPHIR * * 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. * * ===========================(LICENSE END)============================= * * @file sph_types.h * @author Thomas Pornin */ #ifndef SPH_TYPES_H__ #define SPH_TYPES_H__ #include /* * All our I/O functions are defined over octet streams. We do not know * how to handle input data if bytes are not octets. */ #if CHAR_BIT != 8 #error This code requires 8-bit bytes #endif /* ============= BEGIN documentation block for Doxygen ============ */ #ifdef DOXYGEN_IGNORE /** @mainpage sphlib C code documentation * * @section overview Overview * * sphlib is a library which contains implementations of * various cryptographic hash functions. These pages have been generated * with
doxygen and * document the API for the C implementations. * * The API is described in appropriate header files, which are available * in the "Files" section. Each hash function family has its own header, * whose name begins with "sph_" and contains the family * name. For instance, the API for the RIPEMD hash functions is available * in the header file sph_ripemd.h. * * @section principles API structure and conventions * * @subsection io Input/output conventions * * In all generality, hash functions operate over strings of bits. * Individual bits are rarely encountered in C programming or actual * communication protocols; most protocols converge on the ubiquitous * "octet" which is a group of eight bits. Data is thus expressed as a * stream of octets. The C programming language contains the notion of a * "byte", which is a data unit managed under the type "unsigned * char". The C standard prescribes that a byte should hold at * least eight bits, but possibly more. Most modern architectures, even * in the embedded world, feature eight-bit bytes, i.e. map bytes to * octets. * * Nevertheless, for some of the implemented hash functions, an extra * API has been added, which allows the input of arbitrary sequences of * bits: when the computation is about to be closed, 1 to 7 extra bits * can be added. The functions for which this API is implemented include * the SHA-2 functions and all SHA-3 candidates. * * sphlib defines hash function which may hash octet streams, * i.e. streams of bits where the number of bits is a multiple of eight. * The data input functions in the sphlib API expect data * as anonymous pointers ("const void *") with a length * (of type "size_t") which gives the input data chunk length * in bytes. A byte is assumed to be an octet; the sph_types.h * header contains a compile-time test which prevents compilation on * architectures where this property is not met. * * The hash function output is also converted into bytes. All currently * implemented hash functions have an output width which is a multiple of * eight, and this is likely to remain true for new designs. * * Most hash functions internally convert input data into 32-bit of 64-bit * words, using either little-endian or big-endian conversion. The hash * output also often consists of such words, which are encoded into output * bytes with a similar endianness convention. Some hash functions have * been only loosely specified on that subject; when necessary, * sphlib has been tested against published "reference" * implementations in order to use the same conventions. * * @subsection shortname Function short name * * Each implemented hash function has a "short name" which is used * internally to derive the identifiers for the functions and context * structures which the function uses. For instance, MD5 has the short * name "md5". Short names are listed in the next section, * for the implemented hash functions. In subsequent sections, the * short name will be assumed to be "XXX": replace with the * actual hash function name to get the C identifier. * * Note: some functions within the same family share the same core * elements, such as update function or context structure. Correspondingly, * some of the defined types or functions may actually be macros which * transparently evaluate to another type or function name. * * @subsection context Context structure * * Each implemented hash fonction has its own context structure, available * under the type name "sph_XXX_context" for the hash function * with short name "XXX". This structure holds all needed * state for a running hash computation. * * The contents of these structures are meant to be opaque, and private * to the implementation. However, these contents are specified in the * header files so that application code which uses sphlib * may access the size of those structures. * * The caller is responsible for allocating the context structure, * whether by dynamic allocation (malloc() or equivalent), * static allocation (a global permanent variable), as an automatic * variable ("on the stack"), or by any other mean which ensures proper * structure alignment. sphlib code performs no dynamic * allocation by itself. * * The context must be initialized before use, using the * sph_XXX_init() function. This function sets the context * state to proper initial values for hashing. * * Since all state data is contained within the context structure, * sphlib is thread-safe and reentrant: several hash * computations may be performed in parallel, provided that they do not * operate on the same context. Moreover, a running computation can be * cloned by copying the context (with a simple memcpy()): * the context and its clone are then independant and may be updated * with new data and/or closed without interfering with each other. * Similarly, a context structure can be moved in memory at will: * context structures contain no pointer, in particular no pointer to * themselves. * * @subsection dataio Data input * * Hashed data is input with the sph_XXX() fonction, which * takes as parameters a pointer to the context, a pointer to the data * to hash, and the number of data bytes to hash. The context is updated * with the new data. * * Data can be input in one or several calls, with arbitrary input lengths. * However, it is best, performance wise, to input data by relatively big * chunks (say a few kilobytes), because this allows sphlib to * optimize things and avoid internal copying. * * When all data has been input, the context can be closed with * sph_XXX_close(). The hash output is computed and written * into the provided buffer. The caller must take care to provide a * buffer of appropriate length; e.g., when using SHA-1, the output is * a 20-byte word, therefore the output buffer must be at least 20-byte * long. * * For some hash functions, the sph_XXX_addbits_and_close() * function can be used instead of sph_XXX_close(). This * function can take a few extra bits to be added at * the end of the input message. This allows hashing messages with a * bit length which is not a multiple of 8. The extra bits are provided * as an unsigned integer value, and a bit count. The bit count must be * between 0 and 7, inclusive. The extra bits are provided as bits 7 to * 0 (bits of numerical value 128, 64, 32... downto 0), in that order. * For instance, to add three bits of value 1, 1 and 0, the unsigned * integer will have value 192 (1*128 + 1*64 + 0*32) and the bit count * will be 3. * * The SPH_SIZE_XXX macro is defined for each hash function; * it evaluates to the function output size, expressed in bits. For instance, * SPH_SIZE_sha1 evaluates to 160. * * When closed, the context is automatically reinitialized and can be * immediately used for another computation. It is not necessary to call * sph_XXX_init() after a close. Note that * sph_XXX_init() can still be called to "reset" a context, * i.e. forget previously input data, and get back to the initial state. * * @subsection alignment Data alignment * * "Alignment" is a property of data, which is said to be "properly * aligned" when its emplacement in memory is such that the data can * be optimally read by full words. This depends on the type of access; * basically, some hash functions will read data by 32-bit or 64-bit * words. sphlib does not mandate such alignment for input * data, but using aligned data can substantially improve performance. * * As a rule, it is best to input data by chunks whose length (in bytes) * is a multiple of eight, and which begins at "generally aligned" * addresses, such as the base address returned by a call to * malloc(). * * @section functions Implemented functions * * We give here the list of implemented functions. They are grouped by * family; to each family corresponds a specific header file. Each * individual function has its associated "short name". Please refer to * the documentation for that header file to get details on the hash * function denomination and provenance. * * Note: the functions marked with a '(64)' in the list below are * available only if the C compiler provides an integer type of length * 64 bits or more. Such a type is mandatory in the latest C standard * (ISO 9899:1999, aka "C99") and is present in several older compilers * as well, so chances are that such a type is available. * * - HAVAL family: file sph_haval.h * - HAVAL-128/3 (128-bit, 3 passes): short name: haval128_3 * - HAVAL-128/4 (128-bit, 4 passes): short name: haval128_4 * - HAVAL-128/5 (128-bit, 5 passes): short name: haval128_5 * - HAVAL-160/3 (160-bit, 3 passes): short name: haval160_3 * - HAVAL-160/4 (160-bit, 4 passes): short name: haval160_4 * - HAVAL-160/5 (160-bit, 5 passes): short name: haval160_5 * - HAVAL-192/3 (192-bit, 3 passes): short name: haval192_3 * - HAVAL-192/4 (192-bit, 4 passes): short name: haval192_4 * - HAVAL-192/5 (192-bit, 5 passes): short name: haval192_5 * - HAVAL-224/3 (224-bit, 3 passes): short name: haval224_3 * - HAVAL-224/4 (224-bit, 4 passes): short name: haval224_4 * - HAVAL-224/5 (224-bit, 5 passes): short name: haval224_5 * - HAVAL-256/3 (256-bit, 3 passes): short name: haval256_3 * - HAVAL-256/4 (256-bit, 4 passes): short name: haval256_4 * - HAVAL-256/5 (256-bit, 5 passes): short name: haval256_5 * - MD2: file sph_md2.h, short name: md2 * - MD4: file sph_md4.h, short name: md4 * - MD5: file sph_md5.h, short name: md5 * - PANAMA: file sph_panama.h, short name: panama * - RadioGatun family: file sph_radiogatun.h * - RadioGatun[32]: short name: radiogatun32 * - RadioGatun[64]: short name: radiogatun64 (64) * - RIPEMD family: file sph_ripemd.h * - RIPEMD: short name: ripemd * - RIPEMD-128: short name: ripemd128 * - RIPEMD-160: short name: ripemd160 * - SHA-0: file sph_sha0.h, short name: sha0 * - SHA-1: file sph_sha1.h, short name: sha1 * - SHA-2 family, 32-bit hashes: file sph_sha2.h * - SHA-224: short name: sha224 * - SHA-256: short name: sha256 * - SHA-384: short name: sha384 (64) * - SHA-512: short name: sha512 (64) * - Tiger family: file sph_tiger.h * - Tiger: short name: tiger (64) * - Tiger2: short name: tiger2 (64) * - WHIRLPOOL family: file sph_whirlpool.h * - WHIRLPOOL-0: short name: whirlpool0 (64) * - WHIRLPOOL-1: short name: whirlpool1 (64) * - WHIRLPOOL: short name: whirlpool (64) * * The fourteen second-round SHA-3 candidates are also implemented; * when applicable, the implementations follow the "final" specifications * as published for the third round of the SHA-3 competition (BLAKE, * Groestl, JH, Keccak and Skein have been tweaked for third round). * * - BLAKE family: file sph_blake.h * - BLAKE-224: short name: blake224 * - BLAKE-256: short name: blake256 * - BLAKE-384: short name: blake384 * - BLAKE-512: short name: blake512 * - BMW (Blue Midnight Wish) family: file sph_bmw.h * - BMW-224: short name: bmw224 * - BMW-256: short name: bmw256 * - BMW-384: short name: bmw384 (64) * - BMW-512: short name: bmw512 (64) * - CubeHash family: file sph_cubehash.h (specified as * CubeHash16/32 in the CubeHash specification) * - CubeHash-224: short name: cubehash224 * - CubeHash-256: short name: cubehash256 * - CubeHash-384: short name: cubehash384 * - CubeHash-512: short name: cubehash512 * - ECHO family: file sph_echo.h * - ECHO-224: short name: echo224 * - ECHO-256: short name: echo256 * - ECHO-384: short name: echo384 * - ECHO-512: short name: echo512 * - Fugue family: file sph_fugue.h * - Fugue-224: short name: fugue224 * - Fugue-256: short name: fugue256 * - Fugue-384: short name: fugue384 * - Fugue-512: short name: fugue512 * - Groestl family: file sph_groestl.h * - Groestl-224: short name: groestl224 * - Groestl-256: short name: groestl256 * - Groestl-384: short name: groestl384 * - Groestl-512: short name: groestl512 * - Hamsi family: file sph_hamsi.h * - Hamsi-224: short name: hamsi224 * - Hamsi-256: short name: hamsi256 * - Hamsi-384: short name: hamsi384 * - Hamsi-512: short name: hamsi512 * - JH family: file sph_jh.h * - JH-224: short name: jh224 * - JH-256: short name: jh256 * - JH-384: short name: jh384 * - JH-512: short name: jh512 * - Keccak family: file sph_keccak.h * - Keccak-224: short name: keccak224 * - Keccak-256: short name: keccak256 * - Keccak-384: short name: keccak384 * - Keccak-512: short name: keccak512 * - Luffa family: file sph_luffa.h * - Luffa-224: short name: luffa224 * - Luffa-256: short name: luffa256 * - Luffa-384: short name: luffa384 * - Luffa-512: short name: luffa512 * - Shabal family: file sph_shabal.h * - Shabal-192: short name: shabal192 * - Shabal-224: short name: shabal224 * - Shabal-256: short name: shabal256 * - Shabal-384: short name: shabal384 * - Shabal-512: short name: shabal512 * - SHAvite-3 family: file sph_shavite.h * - SHAvite-224 (nominally "SHAvite-3 with 224-bit output"): * short name: shabal224 * - SHAvite-256 (nominally "SHAvite-3 with 256-bit output"): * short name: shabal256 * - SHAvite-384 (nominally "SHAvite-3 with 384-bit output"): * short name: shabal384 * - SHAvite-512 (nominally "SHAvite-3 with 512-bit output"): * short name: shabal512 * - SIMD family: file sph_simd.h * - SIMD-224: short name: simd224 * - SIMD-256: short name: simd256 * - SIMD-384: short name: simd384 * - SIMD-512: short name: simd512 * - Skein family: file sph_skein.h * - Skein-224 (nominally specified as Skein-512-224): short name: * skein224 (64) * - Skein-256 (nominally specified as Skein-512-256): short name: * skein256 (64) * - Skein-384 (nominally specified as Skein-512-384): short name: * skein384 (64) * - Skein-512 (nominally specified as Skein-512-512): short name: * skein512 (64) * * For the second-round SHA-3 candidates, the functions are as specified * for round 2, i.e. with the "tweaks" that some candidates added * between round 1 and round 2. Also, some of the submitted packages for * round 2 contained errors, in the specification, reference code, or * both. sphlib implements the corrected versions. */ /** @hideinitializer * Unsigned integer type whose length is at least 32 bits; on most * architectures, it will have a width of exactly 32 bits. Unsigned C * types implement arithmetics modulo a power of 2; use the * SPH_T32() macro to ensure that the value is truncated * to exactly 32 bits. Unless otherwise specified, all macros and * functions which accept sph_u32 values assume that these * values fit on 32 bits, i.e. do not exceed 2^32-1, even on architectures * where sph_u32 is larger than that. */ typedef __arch_dependant__ sph_u32; /** @hideinitializer * Signed integer type corresponding to sph_u32; it has * width 32 bits or more. */ typedef __arch_dependant__ sph_s32; /** @hideinitializer * Unsigned integer type whose length is at least 64 bits; on most * architectures which feature such a type, it will have a width of * exactly 64 bits. C99-compliant platform will have this type; it * is also defined when the GNU compiler (gcc) is used, and on * platforms where unsigned long is large enough. If this * type is not available, then some hash functions which depends on * a 64-bit type will not be available (most notably SHA-384, SHA-512, * Tiger and WHIRLPOOL). */ typedef __arch_dependant__ sph_u64; /** @hideinitializer * Signed integer type corresponding to sph_u64; it has * width 64 bits or more. */ typedef __arch_dependant__ sph_s64; /** * This macro expands the token x into a suitable * constant expression of type sph_u32. Depending on * how this type is defined, a suffix such as UL may * be appended to the argument. * * @param x the token to expand into a suitable constant expression */ #define SPH_C32(x) /** * Truncate a 32-bit value to exactly 32 bits. On most systems, this is * a no-op, recognized as such by the compiler. * * @param x the value to truncate (of type sph_u32) */ #define SPH_T32(x) /** * Rotate a 32-bit value by a number of bits to the left. The rotate * count must reside between 1 and 31. This macro assumes that its * first argument fits in 32 bits (no extra bit allowed on machines where * sph_u32 is wider); both arguments may be evaluated * several times. * * @param x the value to rotate (of type sph_u32) * @param n the rotation count (between 1 and 31, inclusive) */ #define SPH_ROTL32(x, n) /** * Rotate a 32-bit value by a number of bits to the left. The rotate * count must reside between 1 and 31. This macro assumes that its * first argument fits in 32 bits (no extra bit allowed on machines where * sph_u32 is wider); both arguments may be evaluated * several times. * * @param x the value to rotate (of type sph_u32) * @param n the rotation count (between 1 and 31, inclusive) */ #define SPH_ROTR32(x, n) /** * This macro is defined on systems for which a 64-bit type has been * detected, and is used for sph_u64. */ #define SPH_64 /** * This macro is defined on systems for the "native" integer size is * 64 bits (64-bit values fit in one register). */ #define SPH_64_TRUE /** * This macro expands the token x into a suitable * constant expression of type sph_u64. Depending on * how this type is defined, a suffix such as ULL may * be appended to the argument. This macro is defined only if a * 64-bit type was detected and used for sph_u64. * * @param x the token to expand into a suitable constant expression */ #define SPH_C64(x) /** * Truncate a 64-bit value to exactly 64 bits. On most systems, this is * a no-op, recognized as such by the compiler. This macro is defined only * if a 64-bit type was detected and used for sph_u64. * * @param x the value to truncate (of type sph_u64) */ #define SPH_T64(x) /** * Rotate a 64-bit value by a number of bits to the left. The rotate * count must reside between 1 and 63. This macro assumes that its * first argument fits in 64 bits (no extra bit allowed on machines where * sph_u64 is wider); both arguments may be evaluated * several times. This macro is defined only if a 64-bit type was detected * and used for sph_u64. * * @param x the value to rotate (of type sph_u64) * @param n the rotation count (between 1 and 63, inclusive) */ #define SPH_ROTL64(x, n) /** * Rotate a 64-bit value by a number of bits to the left. The rotate * count must reside between 1 and 63. This macro assumes that its * first argument fits in 64 bits (no extra bit allowed on machines where * sph_u64 is wider); both arguments may be evaluated * several times. This macro is defined only if a 64-bit type was detected * and used for sph_u64. * * @param x the value to rotate (of type sph_u64) * @param n the rotation count (between 1 and 63, inclusive) */ #define SPH_ROTR64(x, n) /** * This macro evaluates to inline or an equivalent construction, * if available on the compilation platform, or to nothing otherwise. This * is used to declare inline functions, for which the compiler should * endeavour to include the code directly in the caller. Inline functions * are typically defined in header files as replacement for macros. */ #define SPH_INLINE /** * This macro is defined if the platform has been detected as using * little-endian convention. This implies that the sph_u32 * type (and the sph_u64 type also, if it is defined) has * an exact width (i.e. exactly 32-bit, respectively 64-bit). */ #define SPH_LITTLE_ENDIAN /** * This macro is defined if the platform has been detected as using * big-endian convention. This implies that the sph_u32 * type (and the sph_u64 type also, if it is defined) has * an exact width (i.e. exactly 32-bit, respectively 64-bit). */ #define SPH_BIG_ENDIAN /** * This macro is defined if 32-bit words (and 64-bit words, if defined) * can be read from and written to memory efficiently in little-endian * convention. This is the case for little-endian platforms, and also * for the big-endian platforms which have special little-endian access * opcodes (e.g. Ultrasparc). */ #define SPH_LITTLE_FAST /** * This macro is defined if 32-bit words (and 64-bit words, if defined) * can be read from and written to memory efficiently in big-endian * convention. This is the case for little-endian platforms, and also * for the little-endian platforms which have special big-endian access * opcodes. */ #define SPH_BIG_FAST /** * On some platforms, this macro is defined to an unsigned integer type * into which pointer values may be cast. The resulting value can then * be tested for being a multiple of 2, 4 or 8, indicating an aligned * pointer for, respectively, 16-bit, 32-bit or 64-bit memory accesses. */ #define SPH_UPTR /** * When defined, this macro indicates that unaligned memory accesses * are possible with only a minor penalty, and thus should be prefered * over strategies which first copy data to an aligned buffer. */ #define SPH_UNALIGNED /** * Byte-swap a 32-bit word (i.e. 0x12345678 becomes * 0x78563412). This is an inline function which resorts * to inline assembly on some platforms, for better performance. * * @param x the 32-bit value to byte-swap * @return the byte-swapped value */ static inline sph_u32 sph_bswap32(sph_u32 x); /** * Byte-swap a 64-bit word. This is an inline function which resorts * to inline assembly on some platforms, for better performance. This * function is defined only if a suitable 64-bit type was found for * sph_u64 * * @param x the 64-bit value to byte-swap * @return the byte-swapped value */ static inline sph_u64 sph_bswap64(sph_u64 x); /** * Decode a 16-bit unsigned value from memory, in little-endian convention * (least significant byte comes first). * * @param src the source address * @return the decoded value */ static inline unsigned sph_dec16le(const void *src); /** * Encode a 16-bit unsigned value into memory, in little-endian convention * (least significant byte comes first). * * @param dst the destination buffer * @param val the value to encode */ static inline void sph_enc16le(void *dst, unsigned val); /** * Decode a 16-bit unsigned value from memory, in big-endian convention * (most significant byte comes first). * * @param src the source address * @return the decoded value */ static inline unsigned sph_dec16be(const void *src); /** * Encode a 16-bit unsigned value into memory, in big-endian convention * (most significant byte comes first). * * @param dst the destination buffer * @param val the value to encode */ static inline void sph_enc16be(void *dst, unsigned val); /** * Decode a 32-bit unsigned value from memory, in little-endian convention * (least significant byte comes first). * * @param src the source address * @return the decoded value */ static inline sph_u32 sph_dec32le(const void *src); /** * Decode a 32-bit unsigned value from memory, in little-endian convention * (least significant byte comes first). This function assumes that the * source address is suitably aligned for a direct access, if the platform * supports such things; it can thus be marginally faster than the generic * sph_dec32le() function. * * @param src the source address * @return the decoded value */ static inline sph_u32 sph_dec32le_aligned(const void *src); /** * Encode a 32-bit unsigned value into memory, in little-endian convention * (least significant byte comes first). * * @param dst the destination buffer * @param val the value to encode */ static inline void sph_enc32le(void *dst, sph_u32 val); /** * Encode a 32-bit unsigned value into memory, in little-endian convention * (least significant byte comes first). This function assumes that the * destination address is suitably aligned for a direct access, if the * platform supports such things; it can thus be marginally faster than * the generic sph_enc32le() function. * * @param dst the destination buffer * @param val the value to encode */ static inline void sph_enc32le_aligned(void *dst, sph_u32 val); /** * Decode a 32-bit unsigned value from memory, in big-endian convention * (most significant byte comes first). * * @param src the source address * @return the decoded value */ static inline sph_u32 sph_dec32be(const void *src); /** * Decode a 32-bit unsigned value from memory, in big-endian convention * (most significant byte comes first). This function assumes that the * source address is suitably aligned for a direct access, if the platform * supports such things; it can thus be marginally faster than the generic * sph_dec32be() function. * * @param src the source address * @return the decoded value */ static inline sph_u32 sph_dec32be_aligned(const void *src); /** * Encode a 32-bit unsigned value into memory, in big-endian convention * (most significant byte comes first). * * @param dst the destination buffer * @param val the value to encode */ static inline void sph_enc32be(void *dst, sph_u32 val); /** * Encode a 32-bit unsigned value into memory, in big-endian convention * (most significant byte comes first). This function assumes that the * destination address is suitably aligned for a direct access, if the * platform supports such things; it can thus be marginally faster than * the generic sph_enc32be() function. * * @param dst the destination buffer * @param val the value to encode */ static inline void sph_enc32be_aligned(void *dst, sph_u32 val); /** * Decode a 64-bit unsigned value from memory, in little-endian convention * (least significant byte comes first). This function is defined only * if a suitable 64-bit type was detected and used for sph_u64. * * @param src the source address * @return the decoded value */ static inline sph_u64 sph_dec64le(const void *src); /** * Decode a 64-bit unsigned value from memory, in little-endian convention * (least significant byte comes first). This function assumes that the * source address is suitably aligned for a direct access, if the platform * supports such things; it can thus be marginally faster than the generic * sph_dec64le() function. This function is defined only * if a suitable 64-bit type was detected and used for sph_u64. * * @param src the source address * @return the decoded value */ static inline sph_u64 sph_dec64le_aligned(const void *src); /** * Encode a 64-bit unsigned value into memory, in little-endian convention * (least significant byte comes first). This function is defined only * if a suitable 64-bit type was detected and used for sph_u64. * * @param dst the destination buffer * @param val the value to encode */ static inline void sph_enc64le(void *dst, sph_u64 val); /** * Encode a 64-bit unsigned value into memory, in little-endian convention * (least significant byte comes first). This function assumes that the * destination address is suitably aligned for a direct access, if the * platform supports such things; it can thus be marginally faster than * the generic sph_enc64le() function. This function is defined * only if a suitable 64-bit type was detected and used for * sph_u64. * * @param dst the destination buffer * @param val the value to encode */ static inline void sph_enc64le_aligned(void *dst, sph_u64 val); /** * Decode a 64-bit unsigned value from memory, in big-endian convention * (most significant byte comes first). This function is defined only * if a suitable 64-bit type was detected and used for sph_u64. * * @param src the source address * @return the decoded value */ static inline sph_u64 sph_dec64be(const void *src); /** * Decode a 64-bit unsigned value from memory, in big-endian convention * (most significant byte comes first). This function assumes that the * source address is suitably aligned for a direct access, if the platform * supports such things; it can thus be marginally faster than the generic * sph_dec64be() function. This function is defined only * if a suitable 64-bit type was detected and used for sph_u64. * * @param src the source address * @return the decoded value */ static inline sph_u64 sph_dec64be_aligned(const void *src); /** * Encode a 64-bit unsigned value into memory, in big-endian convention * (most significant byte comes first). This function is defined only * if a suitable 64-bit type was detected and used for sph_u64. * * @param dst the destination buffer * @param val the value to encode */ static inline void sph_enc64be(void *dst, sph_u64 val); /** * Encode a 64-bit unsigned value into memory, in big-endian convention * (most significant byte comes first). This function assumes that the * destination address is suitably aligned for a direct access, if the * platform supports such things; it can thus be marginally faster than * the generic sph_enc64be() function. This function is defined * only if a suitable 64-bit type was detected and used for * sph_u64. * * @param dst the destination buffer * @param val the value to encode */ static inline void sph_enc64be_aligned(void *dst, sph_u64 val); #endif /* ============== END documentation block for Doxygen ============= */ #if defined(__clang__) # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Wold-style-cast" #endif #ifndef DOXYGEN_IGNORE /* * We want to define the types "sph_u32" and "sph_u64" which hold * unsigned values of at least, respectively, 32 and 64 bits. These * tests should select appropriate types for most platforms. The * macro "SPH_64" is defined if the 64-bit is supported. */ #undef SPH_64 #undef SPH_64_TRUE #if defined __STDC__ && __STDC_VERSION__ >= 199901L /* * On C99 implementations, we can use to get an exact 64-bit * type, if any, or otherwise use a wider type (which must exist, for * C99 conformance). */ #include #ifdef UINT32_MAX typedef uint32_t sph_u32; typedef int32_t sph_s32; #else typedef uint_fast32_t sph_u32; typedef int_fast32_t sph_s32; #endif #if !SPH_NO_64 #ifdef UINT64_MAX typedef uint64_t sph_u64; typedef int64_t sph_s64; #else typedef uint_fast64_t sph_u64; typedef int_fast64_t sph_s64; #endif #endif #define SPH_C32(x) ((sph_u32)(x)) #if !SPH_NO_64 #define SPH_C64(x) ((sph_u64)(x)) #define SPH_64 1 #endif #else /* * On non-C99 systems, we use "unsigned int" if it is wide enough, * "unsigned long" otherwise. This supports all "reasonable" architectures. * We have to be cautious: pre-C99 preprocessors handle constants * differently in '#if' expressions. Hence the shifts to test UINT_MAX. */ #if ((UINT_MAX >> 11) >> 11) >= 0x3FF typedef unsigned int sph_u32; typedef int sph_s32; #define SPH_C32(x) ((sph_u32)(x ## U)) #else typedef unsigned long sph_u32; typedef long sph_s32; #define SPH_C32(x) ((sph_u32)(x ## UL)) #endif #if !SPH_NO_64 /* * We want a 64-bit type. We use "unsigned long" if it is wide enough (as * is common on 64-bit architectures such as AMD64, Alpha or Sparcv9), * "unsigned long long" otherwise, if available. We use ULLONG_MAX to * test whether "unsigned long long" is available; we also know that * gcc features this type, even if the libc header do not know it. */ #if ((ULONG_MAX >> 31) >> 31) >= 3 typedef unsigned long sph_u64; typedef long sph_s64; #define SPH_C64(x) ((sph_u64)(x ## UL)) #define SPH_64 1 #elif ((ULLONG_MAX >> 31) >> 31) >= 3 || defined __GNUC__ typedef unsigned long long sph_u64; typedef long long sph_s64; #define SPH_C64(x) ((sph_u64)(x ## ULL)) #define SPH_64 1 #else /* * No 64-bit type... */ #endif #endif #endif /* * If the "unsigned long" type has length 64 bits or more, then this is * a "true" 64-bit architectures. This is also true with Visual C on * amd64, even though the "long" type is limited to 32 bits. */ #if SPH_64 && (((ULONG_MAX >> 31) >> 31) >= 3 || defined _M_X64) #define SPH_64_TRUE 1 #endif /* * Implementation note: some processors have specific opcodes to perform * a rotation. Recent versions of gcc recognize the expression above and * use the relevant opcodes, when appropriate. */ #define SPH_T32(x) ((x) & SPH_C32(0xFFFFFFFF)) #define SPH_ROTL32(x, n) SPH_T32(((x) << (n)) | ((x) >> (32 - (n)))) #define SPH_ROTR32(x, n) SPH_ROTL32(x, (32 - (n))) #if SPH_64 #define SPH_T64(x) ((x) & SPH_C64(0xFFFFFFFFFFFFFFFF)) #define SPH_ROTL64(x, n) SPH_T64(((x) << (n)) | ((x) >> (64 - (n)))) #define SPH_ROTR64(x, n) SPH_ROTL64(x, (64 - (n))) #endif #ifndef DOXYGEN_IGNORE /* * Define SPH_INLINE to be an "inline" qualifier, if available. We define * some small macro-like functions which benefit greatly from being inlined. */ #if (defined __STDC__ && __STDC_VERSION__ >= 199901L) || defined __GNUC__ #define SPH_INLINE inline #elif defined _MSC_VER #define SPH_INLINE __inline #else #define SPH_INLINE #endif #endif /* * We define some macros which qualify the architecture. These macros * may be explicit set externally (e.g. as compiler parameters). The * code below sets those macros if they are not already defined. * * Most macros are boolean, thus evaluate to either zero or non-zero. * The SPH_UPTR macro is special, in that it evaluates to a C type, * or is not defined. * * SPH_UPTR if defined: unsigned type to cast pointers into * * SPH_UNALIGNED non-zero if unaligned accesses are efficient * SPH_LITTLE_ENDIAN non-zero if architecture is known to be little-endian * SPH_BIG_ENDIAN non-zero if architecture is known to be big-endian * SPH_LITTLE_FAST non-zero if little-endian decoding is fast * SPH_BIG_FAST non-zero if big-endian decoding is fast * * If SPH_UPTR is defined, then encoding and decoding of 32-bit and 64-bit * values will try to be "smart". Either SPH_LITTLE_ENDIAN or SPH_BIG_ENDIAN * _must_ be non-zero in those situations. The 32-bit and 64-bit types * _must_ also have an exact width. * * SPH_SPARCV9_GCC_32 UltraSPARC-compatible with gcc, 32-bit mode * SPH_SPARCV9_GCC_64 UltraSPARC-compatible with gcc, 64-bit mode * SPH_SPARCV9_GCC UltraSPARC-compatible with gcc * SPH_I386_GCC x86-compatible (32-bit) with gcc * SPH_I386_MSVC x86-compatible (32-bit) with Microsoft Visual C * SPH_AMD64_GCC x86-compatible (64-bit) with gcc * SPH_AMD64_MSVC x86-compatible (64-bit) with Microsoft Visual C * SPH_PPC32_GCC PowerPC, 32-bit, with gcc * SPH_PPC64_GCC PowerPC, 64-bit, with gcc * * TODO: enhance automatic detection, for more architectures and compilers. * Endianness is the most important. SPH_UNALIGNED and SPH_UPTR help with * some very fast functions (e.g. MD4) when using unaligned input data. * The CPU-specific-with-GCC macros are useful only for inline assembly, * normally restrained to this header file. */ /* * 32-bit x86, aka "i386 compatible". */ #if defined __i386__ || defined _M_IX86 #define SPH_DETECT_UNALIGNED 1 #define SPH_DETECT_LITTLE_ENDIAN 1 #define SPH_DETECT_UPTR sph_u32 #ifdef __GNUC__ #define SPH_DETECT_I386_GCC 1 #endif #ifdef _MSC_VER #define SPH_DETECT_I386_MSVC 1 #endif /* * 64-bit x86, hereafter known as "amd64". */ #elif defined __x86_64 || defined _M_X64 #define SPH_DETECT_UNALIGNED 1 #define SPH_DETECT_LITTLE_ENDIAN 1 #define SPH_DETECT_UPTR sph_u64 #ifdef __GNUC__ #define SPH_DETECT_AMD64_GCC 1 #endif #ifdef _MSC_VER #define SPH_DETECT_AMD64_MSVC 1 #endif /* * 64-bit Sparc architecture (implies v9). */ #elif ((defined __sparc__ || defined __sparc) && defined __arch64__) \ || defined __sparcv9 #define SPH_DETECT_BIG_ENDIAN 1 #define SPH_DETECT_UPTR sph_u64 #ifdef __GNUC__ #define SPH_DETECT_SPARCV9_GCC_64 1 #define SPH_DETECT_LITTLE_FAST 1 #endif /* * 32-bit Sparc. */ #elif (defined __sparc__ || defined __sparc) \ && !(defined __sparcv9 || defined __arch64__) #define SPH_DETECT_BIG_ENDIAN 1 #define SPH_DETECT_UPTR sph_u32 #if defined __GNUC__ && defined __sparc_v9__ #define SPH_DETECT_SPARCV9_GCC_32 1 #define SPH_DETECT_LITTLE_FAST 1 #endif /* * ARM, little-endian. */ #elif defined __arm__ && __ARMEL__ #define SPH_DETECT_LITTLE_ENDIAN 1 /* * MIPS, little-endian. */ #elif MIPSEL || _MIPSEL || __MIPSEL || __MIPSEL__ #define SPH_DETECT_LITTLE_ENDIAN 1 /* * MIPS, big-endian. */ #elif MIPSEB || _MIPSEB || __MIPSEB || __MIPSEB__ #define SPH_DETECT_BIG_ENDIAN 1 /* * PowerPC. */ #elif defined __powerpc__ || defined __POWERPC__ || defined __ppc__ \ || defined _ARCH_PPC /* * Note: we do not declare cross-endian access to be "fast": even if * using inline assembly, implementation should still assume that * keeping the decoded word in a temporary is faster than decoding * it again. */ #if defined __GNUC__ #if SPH_64_TRUE #define SPH_DETECT_PPC64_GCC 1 #else #define SPH_DETECT_PPC32_GCC 1 #endif #endif #if defined __BIG_ENDIAN__ || defined _BIG_ENDIAN #define SPH_DETECT_BIG_ENDIAN 1 #elif defined __LITTLE_ENDIAN__ || defined _LITTLE_ENDIAN #define SPH_DETECT_LITTLE_ENDIAN 1 #endif /* * Itanium, 64-bit. */ #elif defined __ia64 || defined __ia64__ \ || defined __itanium__ || defined _M_IA64 #if defined __BIG_ENDIAN__ || defined _BIG_ENDIAN #define SPH_DETECT_BIG_ENDIAN 1 #else #define SPH_DETECT_LITTLE_ENDIAN 1 #endif #if defined __LP64__ || defined _LP64 #define SPH_DETECT_UPTR sph_u64 #else #define SPH_DETECT_UPTR sph_u32 #endif #endif #if defined SPH_DETECT_SPARCV9_GCC_32 || defined SPH_DETECT_SPARCV9_GCC_64 #define SPH_DETECT_SPARCV9_GCC 1 #endif #if defined SPH_DETECT_UNALIGNED && !defined SPH_UNALIGNED #define SPH_UNALIGNED SPH_DETECT_UNALIGNED #endif #if defined SPH_DETECT_UPTR && !defined SPH_UPTR #define SPH_UPTR SPH_DETECT_UPTR #endif #if defined SPH_DETECT_LITTLE_ENDIAN && !defined SPH_LITTLE_ENDIAN #define SPH_LITTLE_ENDIAN SPH_DETECT_LITTLE_ENDIAN #endif #if defined SPH_DETECT_BIG_ENDIAN && !defined SPH_BIG_ENDIAN #define SPH_BIG_ENDIAN SPH_DETECT_BIG_ENDIAN #endif #if defined SPH_DETECT_LITTLE_FAST && !defined SPH_LITTLE_FAST #define SPH_LITTLE_FAST SPH_DETECT_LITTLE_FAST #endif #if defined SPH_DETECT_BIG_FAST && !defined SPH_BIG_FAST #define SPH_BIG_FAST SPH_DETECT_BIG_FAST #endif #if defined SPH_DETECT_SPARCV9_GCC_32 && !defined SPH_SPARCV9_GCC_32 #define SPH_SPARCV9_GCC_32 SPH_DETECT_SPARCV9_GCC_32 #endif #if defined SPH_DETECT_SPARCV9_GCC_64 && !defined SPH_SPARCV9_GCC_64 #define SPH_SPARCV9_GCC_64 SPH_DETECT_SPARCV9_GCC_64 #endif #if defined SPH_DETECT_SPARCV9_GCC && !defined SPH_SPARCV9_GCC #define SPH_SPARCV9_GCC SPH_DETECT_SPARCV9_GCC #endif #if defined SPH_DETECT_I386_GCC && !defined SPH_I386_GCC #define SPH_I386_GCC SPH_DETECT_I386_GCC #endif #if defined SPH_DETECT_I386_MSVC && !defined SPH_I386_MSVC #define SPH_I386_MSVC SPH_DETECT_I386_MSVC #endif #if defined SPH_DETECT_AMD64_GCC && !defined SPH_AMD64_GCC #define SPH_AMD64_GCC SPH_DETECT_AMD64_GCC #endif #if defined SPH_DETECT_AMD64_MSVC && !defined SPH_AMD64_MSVC #define SPH_AMD64_MSVC SPH_DETECT_AMD64_MSVC #endif #if defined SPH_DETECT_PPC32_GCC && !defined SPH_PPC32_GCC #define SPH_PPC32_GCC SPH_DETECT_PPC32_GCC #endif #if defined SPH_DETECT_PPC64_GCC && !defined SPH_PPC64_GCC #define SPH_PPC64_GCC SPH_DETECT_PPC64_GCC #endif #if SPH_LITTLE_ENDIAN && !defined SPH_LITTLE_FAST #define SPH_LITTLE_FAST 1 #endif #if SPH_BIG_ENDIAN && !defined SPH_BIG_FAST #define SPH_BIG_FAST 1 #endif #if defined SPH_UPTR && !(SPH_LITTLE_ENDIAN || SPH_BIG_ENDIAN) #error SPH_UPTR defined, but endianness is not known. #endif #if SPH_I386_GCC && !SPH_NO_ASM /* * On x86 32-bit, with gcc, we use the bswapl opcode to byte-swap 32-bit * values. */ static SPH_INLINE sph_u32 sph_bswap32(sph_u32 x) { __asm__ __volatile__ ("bswapl %0" : "=r" (x) : "0" (x)); return x; } #if SPH_64 static SPH_INLINE sph_u64 sph_bswap64(sph_u64 x) { return ((sph_u64)sph_bswap32((sph_u32)x) << 32) | (sph_u64)sph_bswap32((sph_u32)(x >> 32)); } #endif #elif SPH_AMD64_GCC && !SPH_NO_ASM /* * On x86 64-bit, with gcc, we use the bswapl opcode to byte-swap 32-bit * and 64-bit values. */ static SPH_INLINE sph_u32 sph_bswap32(sph_u32 x) { __asm__ __volatile__ ("bswapl %0" : "=r" (x) : "0" (x)); return x; } #if SPH_64 static SPH_INLINE sph_u64 sph_bswap64(sph_u64 x) { __asm__ __volatile__ ("bswapq %0" : "=r" (x) : "0" (x)); return x; } #endif /* * Disabled code. Apparently, Microsoft Visual C 2005 is smart enough * to generate proper opcodes for endianness swapping with the pure C * implementation below. * #elif SPH_I386_MSVC && !SPH_NO_ASM static __inline sph_u32 __declspec(naked) __fastcall sph_bswap32(sph_u32 x) { __asm { bswap ecx mov eax,ecx ret } } #if SPH_64 static SPH_INLINE sph_u64 sph_bswap64(sph_u64 x) { return ((sph_u64)sph_bswap32((sph_u32)x) << 32) | (sph_u64)sph_bswap32((sph_u32)(x >> 32)); } #endif * * [end of disabled code] */ #else static SPH_INLINE sph_u32 sph_bswap32(sph_u32 x) { x = SPH_T32((x << 16) | (x >> 16)); x = ((x & SPH_C32(0xFF00FF00)) >> 8) | ((x & SPH_C32(0x00FF00FF)) << 8); return x; } #if SPH_64 /** * Byte-swap a 64-bit value. * * @param x the input value * @return the byte-swapped value */ static SPH_INLINE sph_u64 sph_bswap64(sph_u64 x) { x = SPH_T64((x << 32) | (x >> 32)); x = ((x & SPH_C64(0xFFFF0000FFFF0000)) >> 16) | ((x & SPH_C64(0x0000FFFF0000FFFF)) << 16); x = ((x & SPH_C64(0xFF00FF00FF00FF00)) >> 8) | ((x & SPH_C64(0x00FF00FF00FF00FF)) << 8); return x; } #endif #endif #if SPH_SPARCV9_GCC && !SPH_NO_ASM /* * On UltraSPARC systems, native ordering is big-endian, but it is * possible to perform little-endian read accesses by specifying the * address space 0x88 (ASI_PRIMARY_LITTLE). Basically, either we use * the opcode "lda [%reg]0x88,%dst", where %reg is the register which * contains the source address and %dst is the destination register, * or we use "lda [%reg+imm]%asi,%dst", which uses the %asi register * to get the address space name. The latter format is better since it * combines an addition and the actual access in a single opcode; but * it requires the setting (and subsequent resetting) of %asi, which is * slow. Some operations (i.e. MD5 compression function) combine many * successive little-endian read accesses, which may share the same * %asi setting. The macros below contain the appropriate inline * assembly. */ #define SPH_SPARCV9_SET_ASI \ sph_u32 sph_sparcv9_asi; \ __asm__ __volatile__ ( \ "rd %%asi,%0\n\twr %%g0,0x88,%%asi" : "=r" (sph_sparcv9_asi)); #define SPH_SPARCV9_RESET_ASI \ __asm__ __volatile__ ("wr %%g0,%0,%%asi" : : "r" (sph_sparcv9_asi)); #define SPH_SPARCV9_DEC32LE(base, idx) ({ \ sph_u32 sph_sparcv9_tmp; \ __asm__ __volatile__ ("lda [%1+" #idx "*4]%%asi,%0" \ : "=r" (sph_sparcv9_tmp) : "r" (base)); \ sph_sparcv9_tmp; \ }) #endif static SPH_INLINE void sph_enc16be(void *dst, unsigned val) { ((unsigned char *)dst)[0] = (val >> 8); ((unsigned char *)dst)[1] = val; } static SPH_INLINE unsigned sph_dec16be(const void *src) { return ((unsigned)(((const unsigned char *)src)[0]) << 8) | (unsigned)(((const unsigned char *)src)[1]); } static SPH_INLINE void sph_enc16le(void *dst, unsigned val) { ((unsigned char *)dst)[0] = val; ((unsigned char *)dst)[1] = val >> 8; } static SPH_INLINE unsigned sph_dec16le(const void *src) { return (unsigned)(((const unsigned char *)src)[0]) | ((unsigned)(((const unsigned char *)src)[1]) << 8); } /** * Encode a 32-bit value into the provided buffer (big endian convention). * * @param dst the destination buffer * @param val the 32-bit value to encode */ static SPH_INLINE void sph_enc32be(void *dst, sph_u32 val) { #if defined SPH_UPTR #if SPH_UNALIGNED #if SPH_LITTLE_ENDIAN val = sph_bswap32(val); #endif *(sph_u32 *)dst = val; #else if (((SPH_UPTR)dst & 3) == 0) { #if SPH_LITTLE_ENDIAN val = sph_bswap32(val); #endif *(sph_u32 *)dst = val; } else { ((unsigned char *)dst)[0] = (val >> 24); ((unsigned char *)dst)[1] = (val >> 16); ((unsigned char *)dst)[2] = (val >> 8); ((unsigned char *)dst)[3] = val; } #endif #else ((unsigned char *)dst)[0] = (val >> 24); ((unsigned char *)dst)[1] = (val >> 16); ((unsigned char *)dst)[2] = (val >> 8); ((unsigned char *)dst)[3] = val; #endif } /** * Encode a 32-bit value into the provided buffer (big endian convention). * The destination buffer must be properly aligned. * * @param dst the destination buffer (32-bit aligned) * @param val the value to encode */ static SPH_INLINE void sph_enc32be_aligned(void *dst, sph_u32 val) { #if SPH_LITTLE_ENDIAN *(sph_u32 *)dst = sph_bswap32(val); #elif SPH_BIG_ENDIAN *(sph_u32 *)dst = val; #else ((unsigned char *)dst)[0] = (val >> 24); ((unsigned char *)dst)[1] = (val >> 16); ((unsigned char *)dst)[2] = (val >> 8); ((unsigned char *)dst)[3] = val; #endif } /** * Decode a 32-bit value from the provided buffer (big endian convention). * * @param src the source buffer * @return the decoded value */ static SPH_INLINE sph_u32 sph_dec32be(const void *src) { #if defined SPH_UPTR #if SPH_UNALIGNED #if SPH_LITTLE_ENDIAN return sph_bswap32(*(const sph_u32 *)src); #else return *(const sph_u32 *)src; #endif #else if (((SPH_UPTR)src & 3) == 0) { #if SPH_LITTLE_ENDIAN return sph_bswap32(*(const sph_u32 *)src); #else return *(const sph_u32 *)src; #endif } else { return ((sph_u32)(((const unsigned char *)src)[0]) << 24) | ((sph_u32)(((const unsigned char *)src)[1]) << 16) | ((sph_u32)(((const unsigned char *)src)[2]) << 8) | (sph_u32)(((const unsigned char *)src)[3]); } #endif #else return ((sph_u32)(((const unsigned char *)src)[0]) << 24) | ((sph_u32)(((const unsigned char *)src)[1]) << 16) | ((sph_u32)(((const unsigned char *)src)[2]) << 8) | (sph_u32)(((const unsigned char *)src)[3]); #endif } /** * Decode a 32-bit value from the provided buffer (big endian convention). * The source buffer must be properly aligned. * * @param src the source buffer (32-bit aligned) * @return the decoded value */ static SPH_INLINE sph_u32 sph_dec32be_aligned(const void *src) { #if SPH_LITTLE_ENDIAN return sph_bswap32(*(const sph_u32 *)src); #elif SPH_BIG_ENDIAN return *(const sph_u32 *)src; #else return ((sph_u32)(((const unsigned char *)src)[0]) << 24) | ((sph_u32)(((const unsigned char *)src)[1]) << 16) | ((sph_u32)(((const unsigned char *)src)[2]) << 8) | (sph_u32)(((const unsigned char *)src)[3]); #endif } /** * Encode a 32-bit value into the provided buffer (little endian convention). * * @param dst the destination buffer * @param val the 32-bit value to encode */ static SPH_INLINE void sph_enc32le(void *dst, sph_u32 val) { #if defined SPH_UPTR #if SPH_UNALIGNED #if SPH_BIG_ENDIAN val = sph_bswap32(val); #endif *(sph_u32 *)dst = val; #else if (((SPH_UPTR)dst & 3) == 0) { #if SPH_BIG_ENDIAN val = sph_bswap32(val); #endif *(sph_u32 *)dst = val; } else { ((unsigned char *)dst)[0] = val; ((unsigned char *)dst)[1] = (val >> 8); ((unsigned char *)dst)[2] = (val >> 16); ((unsigned char *)dst)[3] = (val >> 24); } #endif #else ((unsigned char *)dst)[0] = val; ((unsigned char *)dst)[1] = (val >> 8); ((unsigned char *)dst)[2] = (val >> 16); ((unsigned char *)dst)[3] = (val >> 24); #endif } /** * Encode a 32-bit value into the provided buffer (little endian convention). * The destination buffer must be properly aligned. * * @param dst the destination buffer (32-bit aligned) * @param val the value to encode */ static SPH_INLINE void sph_enc32le_aligned(void *dst, sph_u32 val) { #if SPH_LITTLE_ENDIAN *(sph_u32 *)dst = val; #elif SPH_BIG_ENDIAN *(sph_u32 *)dst = sph_bswap32(val); #else ((unsigned char *)dst)[0] = val; ((unsigned char *)dst)[1] = (val >> 8); ((unsigned char *)dst)[2] = (val >> 16); ((unsigned char *)dst)[3] = (val >> 24); #endif } /** * Decode a 32-bit value from the provided buffer (little endian convention). * * @param src the source buffer * @return the decoded value */ static SPH_INLINE sph_u32 sph_dec32le(const void *src) { #if defined SPH_UPTR #if SPH_UNALIGNED #if SPH_BIG_ENDIAN return sph_bswap32(*(const sph_u32 *)src); #else return *(const sph_u32 *)src; #endif #else if (((SPH_UPTR)src & 3) == 0) { #if SPH_BIG_ENDIAN #if SPH_SPARCV9_GCC && !SPH_NO_ASM sph_u32 tmp; /* * "__volatile__" is needed here because without it, * gcc-3.4.3 miscompiles the code and performs the * access before the test on the address, thus triggering * a bus error... */ __asm__ __volatile__ ( "lda [%1]0x88,%0" : "=r" (tmp) : "r" (src)); return tmp; /* * On PowerPC, this turns out not to be worth the effort: the inline * assembly makes GCC optimizer uncomfortable, which tends to nullify * the decoding gains. * * For most hash functions, using this inline assembly trick changes * hashing speed by less than 5% and often _reduces_ it. The biggest * gains are for MD4 (+11%) and CubeHash (+30%). For all others, it is * less then 10%. The speed gain on CubeHash is probably due to the * chronic shortage of registers that CubeHash endures; for the other * functions, the generic code appears to be efficient enough already. * #elif (SPH_PPC32_GCC || SPH_PPC64_GCC) && !SPH_NO_ASM sph_u32 tmp; __asm__ __volatile__ ( "lwbrx %0,0,%1" : "=r" (tmp) : "r" (src)); return tmp; */ #else return sph_bswap32(*(const sph_u32 *)src); #endif #else return *(const sph_u32 *)src; #endif } else { return (sph_u32)(((const unsigned char *)src)[0]) | ((sph_u32)(((const unsigned char *)src)[1]) << 8) | ((sph_u32)(((const unsigned char *)src)[2]) << 16) | ((sph_u32)(((const unsigned char *)src)[3]) << 24); } #endif #else return (sph_u32)(((const unsigned char *)src)[0]) | ((sph_u32)(((const unsigned char *)src)[1]) << 8) | ((sph_u32)(((const unsigned char *)src)[2]) << 16) | ((sph_u32)(((const unsigned char *)src)[3]) << 24); #endif } /** * Decode a 32-bit value from the provided buffer (little endian convention). * The source buffer must be properly aligned. * * @param src the source buffer (32-bit aligned) * @return the decoded value */ static SPH_INLINE sph_u32 sph_dec32le_aligned(const void *src) { #if SPH_LITTLE_ENDIAN return *(const sph_u32 *)src; #elif SPH_BIG_ENDIAN #if SPH_SPARCV9_GCC && !SPH_NO_ASM sph_u32 tmp; __asm__ __volatile__ ("lda [%1]0x88,%0" : "=r" (tmp) : "r" (src)); return tmp; /* * Not worth it generally. * #elif (SPH_PPC32_GCC || SPH_PPC64_GCC) && !SPH_NO_ASM sph_u32 tmp; __asm__ __volatile__ ("lwbrx %0,0,%1" : "=r" (tmp) : "r" (src)); return tmp; */ #else return sph_bswap32(*(const sph_u32 *)src); #endif #else return (sph_u32)(((const unsigned char *)src)[0]) | ((sph_u32)(((const unsigned char *)src)[1]) << 8) | ((sph_u32)(((const unsigned char *)src)[2]) << 16) | ((sph_u32)(((const unsigned char *)src)[3]) << 24); #endif } #if SPH_64 /** * Encode a 64-bit value into the provided buffer (big endian convention). * * @param dst the destination buffer * @param val the 64-bit value to encode */ static SPH_INLINE void sph_enc64be(void *dst, sph_u64 val) { #if defined SPH_UPTR #if SPH_UNALIGNED #if SPH_LITTLE_ENDIAN val = sph_bswap64(val); #endif *(sph_u64 *)dst = val; #else if (((SPH_UPTR)dst & 7) == 0) { #if SPH_LITTLE_ENDIAN val = sph_bswap64(val); #endif *(sph_u64 *)dst = val; } else { ((unsigned char *)dst)[0] = (val >> 56); ((unsigned char *)dst)[1] = (val >> 48); ((unsigned char *)dst)[2] = (val >> 40); ((unsigned char *)dst)[3] = (val >> 32); ((unsigned char *)dst)[4] = (val >> 24); ((unsigned char *)dst)[5] = (val >> 16); ((unsigned char *)dst)[6] = (val >> 8); ((unsigned char *)dst)[7] = val; } #endif #else ((unsigned char *)dst)[0] = (val >> 56); ((unsigned char *)dst)[1] = (val >> 48); ((unsigned char *)dst)[2] = (val >> 40); ((unsigned char *)dst)[3] = (val >> 32); ((unsigned char *)dst)[4] = (val >> 24); ((unsigned char *)dst)[5] = (val >> 16); ((unsigned char *)dst)[6] = (val >> 8); ((unsigned char *)dst)[7] = val; #endif } /** * Encode a 64-bit value into the provided buffer (big endian convention). * The destination buffer must be properly aligned. * * @param dst the destination buffer (64-bit aligned) * @param val the value to encode */ static SPH_INLINE void sph_enc64be_aligned(void *dst, sph_u64 val) { #if SPH_LITTLE_ENDIAN *(sph_u64 *)dst = sph_bswap64(val); #elif SPH_BIG_ENDIAN *(sph_u64 *)dst = val; #else ((unsigned char *)dst)[0] = (val >> 56); ((unsigned char *)dst)[1] = (val >> 48); ((unsigned char *)dst)[2] = (val >> 40); ((unsigned char *)dst)[3] = (val >> 32); ((unsigned char *)dst)[4] = (val >> 24); ((unsigned char *)dst)[5] = (val >> 16); ((unsigned char *)dst)[6] = (val >> 8); ((unsigned char *)dst)[7] = val; #endif } /** * Decode a 64-bit value from the provided buffer (big endian convention). * * @param src the source buffer * @return the decoded value */ static SPH_INLINE sph_u64 sph_dec64be(const void *src) { #if defined SPH_UPTR #if SPH_UNALIGNED #if SPH_LITTLE_ENDIAN return sph_bswap64(*(const sph_u64 *)src); #else return *(const sph_u64 *)src; #endif #else if (((SPH_UPTR)src & 7) == 0) { #if SPH_LITTLE_ENDIAN return sph_bswap64(*(const sph_u64 *)src); #else return *(const sph_u64 *)src; #endif } else { return ((sph_u64)(((const unsigned char *)src)[0]) << 56) | ((sph_u64)(((const unsigned char *)src)[1]) << 48) | ((sph_u64)(((const unsigned char *)src)[2]) << 40) | ((sph_u64)(((const unsigned char *)src)[3]) << 32) | ((sph_u64)(((const unsigned char *)src)[4]) << 24) | ((sph_u64)(((const unsigned char *)src)[5]) << 16) | ((sph_u64)(((const unsigned char *)src)[6]) << 8) | (sph_u64)(((const unsigned char *)src)[7]); } #endif #else return ((sph_u64)(((const unsigned char *)src)[0]) << 56) | ((sph_u64)(((const unsigned char *)src)[1]) << 48) | ((sph_u64)(((const unsigned char *)src)[2]) << 40) | ((sph_u64)(((const unsigned char *)src)[3]) << 32) | ((sph_u64)(((const unsigned char *)src)[4]) << 24) | ((sph_u64)(((const unsigned char *)src)[5]) << 16) | ((sph_u64)(((const unsigned char *)src)[6]) << 8) | (sph_u64)(((const unsigned char *)src)[7]); #endif } /** * Decode a 64-bit value from the provided buffer (big endian convention). * The source buffer must be properly aligned. * * @param src the source buffer (64-bit aligned) * @return the decoded value */ static SPH_INLINE sph_u64 sph_dec64be_aligned(const void *src) { #if SPH_LITTLE_ENDIAN return sph_bswap64(*(const sph_u64 *)src); #elif SPH_BIG_ENDIAN return *(const sph_u64 *)src; #else return ((sph_u64)(((const unsigned char *)src)[0]) << 56) | ((sph_u64)(((const unsigned char *)src)[1]) << 48) | ((sph_u64)(((const unsigned char *)src)[2]) << 40) | ((sph_u64)(((const unsigned char *)src)[3]) << 32) | ((sph_u64)(((const unsigned char *)src)[4]) << 24) | ((sph_u64)(((const unsigned char *)src)[5]) << 16) | ((sph_u64)(((const unsigned char *)src)[6]) << 8) | (sph_u64)(((const unsigned char *)src)[7]); #endif } /** * Encode a 64-bit value into the provided buffer (little endian convention). * * @param dst the destination buffer * @param val the 64-bit value to encode */ static SPH_INLINE void sph_enc64le(void *dst, sph_u64 val) { #if defined SPH_UPTR #if SPH_UNALIGNED #if SPH_BIG_ENDIAN val = sph_bswap64(val); #endif *(sph_u64 *)dst = val; #else if (((SPH_UPTR)dst & 7) == 0) { #if SPH_BIG_ENDIAN val = sph_bswap64(val); #endif *(sph_u64 *)dst = val; } else { ((unsigned char *)dst)[0] = val; ((unsigned char *)dst)[1] = (val >> 8); ((unsigned char *)dst)[2] = (val >> 16); ((unsigned char *)dst)[3] = (val >> 24); ((unsigned char *)dst)[4] = (val >> 32); ((unsigned char *)dst)[5] = (val >> 40); ((unsigned char *)dst)[6] = (val >> 48); ((unsigned char *)dst)[7] = (val >> 56); } #endif #else ((unsigned char *)dst)[0] = val; ((unsigned char *)dst)[1] = (val >> 8); ((unsigned char *)dst)[2] = (val >> 16); ((unsigned char *)dst)[3] = (val >> 24); ((unsigned char *)dst)[4] = (val >> 32); ((unsigned char *)dst)[5] = (val >> 40); ((unsigned char *)dst)[6] = (val >> 48); ((unsigned char *)dst)[7] = (val >> 56); #endif } /** * Encode a 64-bit value into the provided buffer (little endian convention). * The destination buffer must be properly aligned. * * @param dst the destination buffer (64-bit aligned) * @param val the value to encode */ static SPH_INLINE void sph_enc64le_aligned(void *dst, sph_u64 val) { #if SPH_LITTLE_ENDIAN *(sph_u64 *)dst = val; #elif SPH_BIG_ENDIAN *(sph_u64 *)dst = sph_bswap64(val); #else ((unsigned char *)dst)[0] = val; ((unsigned char *)dst)[1] = (val >> 8); ((unsigned char *)dst)[2] = (val >> 16); ((unsigned char *)dst)[3] = (val >> 24); ((unsigned char *)dst)[4] = (val >> 32); ((unsigned char *)dst)[5] = (val >> 40); ((unsigned char *)dst)[6] = (val >> 48); ((unsigned char *)dst)[7] = (val >> 56); #endif } /** * Decode a 64-bit value from the provided buffer (little endian convention). * * @param src the source buffer * @return the decoded value */ static SPH_INLINE sph_u64 sph_dec64le(const void *src) { #if defined SPH_UPTR #if SPH_UNALIGNED #if SPH_BIG_ENDIAN return sph_bswap64(*(const sph_u64 *)src); #else return *(const sph_u64 *)src; #endif #else if (((SPH_UPTR)src & 7) == 0) { #if SPH_BIG_ENDIAN #if SPH_SPARCV9_GCC_64 && !SPH_NO_ASM sph_u64 tmp; __asm__ __volatile__ ( "ldxa [%1]0x88,%0" : "=r" (tmp) : "r" (src)); return tmp; /* * Not worth it generally. * #elif SPH_PPC32_GCC && !SPH_NO_ASM return (sph_u64)sph_dec32le_aligned(src) | ((sph_u64)sph_dec32le_aligned( (const char *)src + 4) << 32); #elif SPH_PPC64_GCC && !SPH_NO_ASM sph_u64 tmp; __asm__ __volatile__ ( "ldbrx %0,0,%1" : "=r" (tmp) : "r" (src)); return tmp; */ #else return sph_bswap64(*(const sph_u64 *)src); #endif #else return *(const sph_u64 *)src; #endif } else { return (sph_u64)(((const unsigned char *)src)[0]) | ((sph_u64)(((const unsigned char *)src)[1]) << 8) | ((sph_u64)(((const unsigned char *)src)[2]) << 16) | ((sph_u64)(((const unsigned char *)src)[3]) << 24) | ((sph_u64)(((const unsigned char *)src)[4]) << 32) | ((sph_u64)(((const unsigned char *)src)[5]) << 40) | ((sph_u64)(((const unsigned char *)src)[6]) << 48) | ((sph_u64)(((const unsigned char *)src)[7]) << 56); } #endif #else return (sph_u64)(((const unsigned char *)src)[0]) | ((sph_u64)(((const unsigned char *)src)[1]) << 8) | ((sph_u64)(((const unsigned char *)src)[2]) << 16) | ((sph_u64)(((const unsigned char *)src)[3]) << 24) | ((sph_u64)(((const unsigned char *)src)[4]) << 32) | ((sph_u64)(((const unsigned char *)src)[5]) << 40) | ((sph_u64)(((const unsigned char *)src)[6]) << 48) | ((sph_u64)(((const unsigned char *)src)[7]) << 56); #endif } /** * Decode a 64-bit value from the provided buffer (little endian convention). * The source buffer must be properly aligned. * * @param src the source buffer (64-bit aligned) * @return the decoded value */ static SPH_INLINE sph_u64 sph_dec64le_aligned(const void *src) { #if SPH_LITTLE_ENDIAN return *(const sph_u64 *)src; #elif SPH_BIG_ENDIAN #if SPH_SPARCV9_GCC_64 && !SPH_NO_ASM sph_u64 tmp; __asm__ __volatile__ ("ldxa [%1]0x88,%0" : "=r" (tmp) : "r" (src)); return tmp; /* * Not worth it generally. * #elif SPH_PPC32_GCC && !SPH_NO_ASM return (sph_u64)sph_dec32le_aligned(src) | ((sph_u64)sph_dec32le_aligned((const char *)src + 4) << 32); #elif SPH_PPC64_GCC && !SPH_NO_ASM sph_u64 tmp; __asm__ __volatile__ ("ldbrx %0,0,%1" : "=r" (tmp) : "r" (src)); return tmp; */ #else return sph_bswap64(*(const sph_u64 *)src); #endif #else return (sph_u64)(((const unsigned char *)src)[0]) | ((sph_u64)(((const unsigned char *)src)[1]) << 8) | ((sph_u64)(((const unsigned char *)src)[2]) << 16) | ((sph_u64)(((const unsigned char *)src)[3]) << 24) | ((sph_u64)(((const unsigned char *)src)[4]) << 32) | ((sph_u64)(((const unsigned char *)src)[5]) << 40) | ((sph_u64)(((const unsigned char *)src)[6]) << 48) | ((sph_u64)(((const unsigned char *)src)[7]) << 56); #endif } #endif #if defined(__clang__) # pragma GCC diagnostic pop #endif #endif /* Doxygen excluded block */ #endif qpdf-8.0.2/libqpdf/Pl_StdioFile.cc0000644000064100006410000000150713247541377015016 0ustar ejbejb#include // include first for large file support #include #include #include #include Pl_StdioFile::Pl_StdioFile(char const* identifier, FILE* f) : Pipeline(identifier, 0), file(f) { } Pl_StdioFile::~Pl_StdioFile() { } void Pl_StdioFile::write(unsigned char* buf, size_t len) { size_t so_far = 0; while (len > 0) { so_far = fwrite(buf, 1, len, this->file); if (so_far == 0) { QUtil::throw_system_error( this->identifier + ": Pl_StdioFile::write"); } else { buf += so_far; len -= so_far; } } } void Pl_StdioFile::finish() { if ((fflush(this->file) == -1) && (errno == EBADF)) { throw std::logic_error( this->identifier + ": Pl_StdioFile::finish: stream already closed"); } } qpdf-8.0.2/libqpdf/Pl_Buffer.cc0000644000064100006410000000222713247541377014345 0ustar ejbejb#include #include #include #include Pl_Buffer::Pl_Buffer(char const* identifier, Pipeline* next) : Pipeline(identifier, next), ready(true), total_size(0) { } Pl_Buffer::~Pl_Buffer() { } void Pl_Buffer::write(unsigned char* buf, size_t len) { Buffer* b = new Buffer(len); memcpy(b->getBuffer(), buf, len); this->data.push_back(b); this->ready = false; this->total_size += len; if (getNext(true)) { getNext()->write(buf, len); } } void Pl_Buffer::finish() { this->ready = true; if (getNext(true)) { getNext()->finish(); } } Buffer* Pl_Buffer::getBuffer() { if (! this->ready) { throw std::logic_error("Pl_Buffer::getBuffer() called when not ready"); } Buffer* b = new Buffer(this->total_size); unsigned char* p = b->getBuffer(); while (! this->data.empty()) { PointerHolder bp = this->data.front(); this->data.pop_front(); size_t bytes = bp->getSize(); memcpy(p, bp->getBuffer(), bytes); p += bytes; this->total_size -= bytes; } assert(this->total_size == 0); this->ready = false; return b; } qpdf-8.0.2/NOTICE.md0000644000064100006410000000516613247541377012061 0ustar ejbejbQPDF is copyright (c) 2005-2018 Jay Berkenbilt Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Versions of qpdf prior to version 7 were released under the terms of version 2.0 of the Artistic License. At your option, you may continue to consider qpdf to be licensed under those terms. Please see the manual for additional information. The qpdf distribution includes a copy of [qtest](http://qtest.qbilt.org), which is released under the terms of the [version 2.0 of the Artistic license](https://opensource.org/licenses/Artistic-2.0), which can be found at https://opensource.org/licenses/Artistic-2.0. The Rijndael encryption implementation used as the basis for AES encryption and decryption support comes from Philip J. Erdelsky's public domain implementation. The files `libqpdf/rijndael.cc` and `libqpdf/qpdf/rijndael.h` remain in the public domain. They were obtained from * http://www.efgh.com/software/rijndael.htm * http://www.efgh.com/software/rijndael.txt The embedded sha2 code comes from sphlib 3.0 * http://www.saphir2.com/sphlib/ That code has the following license: ``` Copyright (c) 2007-2011 Projet RNRT SAPHIR 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. ``` qpdf-8.0.2/LICENSE.txt0000644000064100006410000002613613247541377012401 0ustar ejbejb Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. qpdf-8.0.2/copy_dlls0000644000064100006410000000621013247541377012460 0ustar ejbejb#!/usr/bin/env perl require 5.008; BEGIN { $^W = 1; } use strict; use File::Basename; my $whoami = basename($0); usage() unless @ARGV == 4; my ($file, $destdir, $objdump, $windows_wordsize) = @ARGV; my $filedir = dirname($file); my $sep = ($^O eq 'MSWin32' ? ';' : ':'); my @path = ($filedir, '.', split($sep, $ENV{'PATH'})); foreach my $var (qw(LIB)) { if (exists $ENV{$var}) { push(@path, split($sep, $ENV{$var})); } } my $redist_suffix = (($windows_wordsize eq '64') ? "x64" : "x86"); if (exists $ENV{'VCINSTALLDIR'}) { my $redist = $ENV{'VCINSTALLDIR'} . "/Redist/$redist_suffix"; if (opendir(D, $redist)) { my @entries = readdir(D); closedir(D); foreach my $e (@entries) { if ($e =~ m/\.CRT$/i) { unshift(@path, "$redist/$e"); } } } } if (exists $ENV{'UniversalCRTSdkDir'}) { my $redist = $ENV{'UniversalCRTSdkDir'} . "/Redist/ucrt/DLLs/$redist_suffix"; unshift(@path, $redist); } my $format = undef; my @to_find = get_dlls($file); my %final = (); my @notfound = (); while (@to_find) { my $dll = shift(@to_find); my $found = 0; foreach my $dir (@path) { if ((-f "$dir/$dll") && is_format("$dir/$dll", $format)) { if (! exists $final{$dll}) { $final{$dll} = "$dir/$dll"; push(@to_find, get_dlls("$dir/$dll")); } $found = 1; last; } } if (! $found) { push(@notfound, $dll); } } if (@notfound) { die "$whoami: can't find the following dlls: " . join(', ', @notfound), "\n"; } foreach my $dll (sort keys (%final)) { my $f = $final{$dll}; $f =~ s,\\,/,g; print "Copying $f to $destdir\n"; system("cp -p '$f' '$destdir'") == 0 or die "$whoami: copy $f to $destdir failed\n"; } sub get_dlls { my @result = (); my $exe = shift; open(O, "$objdump -p \"$exe\"|") or die "$whoami: can't run objdump\n"; while () { if (m/^\s+DLL Name:\s+(.+\.dll)/i) { my $dll = $1; $dll =~ tr/A-Z/a-z/; next if $dll =~ m/^(kernel32|user32|msvcrt|advapi32)\.dll$/; push(@result, $dll); } elsif (m/^Magic.*\((PE.+?)\)/) { $format = $1; } } close(O); if (! defined $format) { die "$whoami: can't determine format of $exe\n"; } @result; } sub is_format { my ($file, $format) = @_; $file =~ s,\\,/,g; # Special case: msvc*.dll seem to be able to behave both as 32-bit # and 64-bit DLLs. Either that, or this logic is wrong for those # DLLs and it doesn't matter because they're already installed on # my test system (which doesn't have msvc installed on it). if ($file =~ m,/msvc,i) { return 1; } my $result = 0; my $file_format = `file "$file"`; print "$file $format $file_format\n"; if ($? == 0) { if ($file_format =~ m/\Q${format}\E executable/) { $result = 1; } } $result; } sub usage { die "Usage: $whoami {exe|dll} destdir\n"; } qpdf-8.0.2/config.guess0000755000064100006410000012743213247541377013077 0ustar ejbejb#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011, 2012 Free Software Foundation, Inc. timestamp='2012-02-10' # This file 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, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner. Please send patches (context # diff format) to and include a ChangeLog # entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; aarch64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo ${UNAME_MACHINE}-unknown-linux-gnueabi else echo ${UNAME_MACHINE}-unknown-linux-gnueabihf fi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; hexagon:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) LIBC=gnu eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; tile*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in i386) eval $set_cc_for_build if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then UNAME_PROCESSOR="x86_64" fi fi ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: qpdf-8.0.2/configure0000755000064100006410000220446513247542730012464 0ustar ejbejb#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for qpdf 8.0.2. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1 test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" SHELL=${CONFIG_SHELL-/bin/sh} test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='qpdf' PACKAGE_TARNAME='qpdf' PACKAGE_VERSION='8.0.2' PACKAGE_STRING='qpdf 8.0.2' PACKAGE_BUGREPORT='' PACKAGE_URL='' # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='LTLIBOBJS LIBOBJS VALIDATE_DOC BUILD_PDF BUILD_HTML XMLLINT XSLTPROC FOP DOCBOOKX_DTD DOCBOOK_FO DOCBOOK_XHTML SHOW_FAILED_TEST_OUTPUT QPDF_SKIP_TEST_COMPARE_IMAGES CXXWFLAGS WFLAGS BUILDRULES GENDEPS HAVE_LD_VERSION_SCRIPT QPDF_LARGE_FILE_TEST_PATH WINDOWS_WORDSIZE RANDOM_DEVICE LT_SONAME LT_AGE LT_REVISION LT_CURRENT CXXCPP LT_SYS_LIBRARY_PATH OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL MANIFEST_TOOL AWK RANLIB STRIP ac_ct_AR AR LN_S NM ac_ct_DUMPBIN DUMPBIN LD FGREP SED host_os host_vendor host_cpu host build_os build_vendor build_cpu build LIBTOOL OBJDUMP DLLTOOL AS EGREP GREP CPP ac_ct_CXX CXXFLAGS CXX OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir runstatedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_shared enable_static with_pic enable_fast_install with_aix_soname with_gnu_ld with_sysroot enable_libtool_lock enable_insecure_random enable_os_secure_random with_random enable_external_libs with_windows_wordsize with_large_file_test_path enable_largefile enable_ld_version_script with_buildrules enable_werror enable_test_compare_images enable_show_failed_test_output with_docbook_xsl with_docbookx_dtd enable_doc_maintenance enable_html_doc enable_pdf_doc enable_validate_doc ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CXX CXXFLAGS CCC CPP LT_SYS_LIBRARY_PATH CXXCPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -runstatedir | --runstatedir | --runstatedi | --runstated \ | --runstate | --runstat | --runsta | --runst | --runs \ | --run | --ru | --r) ac_prev=runstatedir ;; -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ | --run=* | --ru=* | --r=*) runstatedir=$ac_optarg ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures qpdf 8.0.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/qpdf] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of qpdf 8.0.2:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --enable-insecure-random whether to use stdlib's random number generator (default is no) --enable-os-secure-random whether to try to use OS-provided secure random numbers (default is yes) --enable-external-libs whether to use external libraries distribution --disable-largefile omit support for large files --enable-ld-version-script enable linker version script (default is enabled) --enable-werror whether to treat warnings as errors (default is no) --enable-test-compare-images whether to compare images in test suite; disabled by default, enabling requires ghostscript and tiffcmp to be available --enable-show-failed-test-output if specified, write failed test output to the console; useful for building on build servers where you can't easily open the test output files --enable-doc-maintenance if set, enables all documentation options --enable-html-doc whether to build HTML documents --enable-pdf-doc whether to build PDF documents --enable-validate-doc whether to validate xml document source Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] --with-aix-soname=aix|svr4|both shared library versioning (aka "SONAME") variant to provide on AIX, [default=aix]. --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot[=DIR] Search for dependent libraries within DIR (or the compiler's sysroot if not specified). --with-random=FILE Use FILE as random number seed [auto-detected] --with-windows-wordsize={32,64} Windows only: whether this is a 32-bit or 64-bit build; required if external-libs are enabled --with-large-file-test-path=path To enable testing of files > 4GB, give the path to a directory with at least 11 GB free. The test suite will write temporary files to this directory. Alternatively, just set the QPDF_LARGE_FILE_TEST_PATH environment variable to the path before running the test suite. --with-buildrules=rules which build rules to use; see README.md --with-docbook-xsl=DIR location of docbook 4.x xml stylesheets --with-docbookx-dtd=FILE location of docbook 4.x xml DTD Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CXX C++ compiler command CXXFLAGS C++ compiler flags CPP C preprocessor LT_SYS_LIBRARY_PATH User-defined run-time library search path. CXXCPP C++ preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF qpdf configure 8.0.2 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_cxx_try_compile LINENO # ---------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_cxx_try_cpp LINENO # ------------------------ # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_cpp # ac_fn_cxx_try_link LINENO # ------------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_link # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_find_uintX_t LINENO BITS VAR # ------------------------------------ # Finds an unsigned integer type with width BITS, setting cache variable VAR # accordingly. ac_fn_c_find_uintX_t () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5 $as_echo_n "checking for uint$2_t... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" # Order is important - never check a type that is potentially smaller # than half of the expected target width. for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \ 'unsigned long long int' 'unsigned short int' 'unsigned char'; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { static int test_array [1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : case $ac_type in #( uint$2_t) : eval "$3=yes" ;; #( *) : eval "$3=\$ac_type" ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if eval test \"x\$"$3"\" = x"no"; then : else break fi done fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_find_uintX_t cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by qpdf $as_me 8.0.2, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_files="$ac_config_files autoconf.mk" ac_config_files="$ac_config_files manual/html.xsl manual/print.xsl" ac_config_files="$ac_config_files libqpdf.pc" ac_config_files="$ac_config_files libqpdf.map" ac_config_headers="$ac_config_headers libqpdf/qpdf/qpdf-config.h" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5 $as_echo_n "checking for $CC option to accept ISO C99... " >&6; } if ${ac_cv_prog_cc_c99+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c99=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #include // Check varargs macros. These examples are taken from C99 6.10.3.5. #define debug(...) fprintf (stderr, __VA_ARGS__) #define showlist(...) puts (#__VA_ARGS__) #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) static void test_varargs_macros (void) { int x = 1234; int y = 5678; debug ("Flag"); debug ("X = %d\n", x); showlist (The first, second, and third items.); report (x>y, "x is %d but y is %d", x, y); } // Check long long types. #define BIG64 18446744073709551615ull #define BIG32 4294967295ul #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) #if !BIG_OK your preprocessor is broken; #endif #if BIG_OK #else your preprocessor is broken; #endif static long long int bignum = -9223372036854775807LL; static unsigned long long int ubignum = BIG64; struct incomplete_array { int datasize; double data[]; }; struct named_init { int number; const wchar_t *name; double average; }; typedef const char *ccp; static inline int test_restrict (ccp restrict text) { // See if C++-style comments work. // Iterate through items via the restricted pointer. // Also check for declarations in for loops. for (unsigned int i = 0; *(text+i) != '\0'; ++i) continue; return 0; } // Check varargs and va_copy. static void test_varargs (const char *format, ...) { va_list args; va_start (args, format); va_list args_copy; va_copy (args_copy, args); const char *str; int number; float fnumber; while (*format) { switch (*format++) { case 's': // string str = va_arg (args_copy, const char *); break; case 'd': // int number = va_arg (args_copy, int); break; case 'f': // float fnumber = va_arg (args_copy, double); break; default: break; } } va_end (args_copy); va_end (args); } int main () { // Check bool. _Bool success = false; // Check restrict. if (test_restrict ("String literal") == 0) success = true; char *restrict newvar = "Another string"; // Check varargs. test_varargs ("s, d' f .", "string", 65, 34.234); test_varargs_macros (); // Check flexible array members. struct incomplete_array *ia = malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); ia->datasize = 10; for (int i = 0; i < ia->datasize; ++i) ia->data[i] = i * 1.234; // Check named initializers. struct named_init ni = { .number = 34, .name = L"Test wide string", .average = 543.34343, }; ni.number = 58; int dynamic_array[ni.number]; dynamic_array[ni.number - 1] = 543; // work around unused variable warnings return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' || dynamic_array[ni.number - 1] != 543); ; return 0; } _ACEOF for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc99 do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c99=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c99" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c99" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c99" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 $as_echo "$ac_cv_prog_cc_c99" >&6; } ;; esac if test "x$ac_cv_prog_cc_c99" != xno; then : fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if ${ac_cv_cxx_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if ${ac_cv_prog_cxx_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.4.6' macro_revision='2.4.6' ltmain=$ac_aux_dir/ltmain.sh # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac # Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 $as_echo_n "checking how to print strings... " >&6; } # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "" } case $ECHO in printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 $as_echo "printf" >&6; } ;; print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 $as_echo "print -r" >&6; } ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 $as_echo "cat" >&6; } ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if ${ac_cv_path_FGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_FGREP" || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test yes = "$GCC"; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return, which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD=$ac_prog ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test yes = "$with_gnu_ld"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD=$ac_dir/$ac_prog # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if ${lt_cv_path_NM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM=$NM else lt_nm_to_check=${ac_tool_prefix}nm if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. tmp_nm=$ac_dir/$lt_tmp_nm if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then # Check to see if the nm accepts a BSD-compat flag. # Adding the 'sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty case $build_os in mingw*) lt_bad_file=conftest.nm/nofile ;; *) lt_bad_file=/dev/null ;; esac case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break 2 ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break 2 ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS=$lt_save_ifs done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test no != "$lt_cv_path_NM"; then NM=$lt_cv_path_NM else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else if test -n "$ac_tool_prefix"; then for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols -headers" ;; *) DUMPBIN=: ;; esac fi if test : != "$DUMPBIN"; then NM=$DUMPBIN fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if ${lt_cv_nm_interface+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if ${lt_cv_sys_max_cmd_len+:} false; then : $as_echo_n "(cached) " >&6 else i=0 teststring=ABCD case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len" && \ test undefined != "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test X`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test 17 != "$i" # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n "$lt_cv_sys_max_cmd_len"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 $as_echo_n "checking how to convert $build file names to $host format... " >&6; } if ${lt_cv_to_host_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac fi to_host_file_cmd=$lt_cv_to_host_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 $as_echo "$lt_cv_to_host_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 $as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } if ${lt_cv_to_tool_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac fi to_tool_file_cmd=$lt_cv_to_tool_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 $as_echo "$lt_cv_to_tool_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if ${lt_cv_ld_reload_flag+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in cygwin* | mingw* | pw32* | cegcc*) if test yes != "$GCC"; then reload_cmds=false fi ;; darwin*) if test yes = "$GCC"; then reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if ${lt_cv_deplibs_check_method+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # 'unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # that responds to the $file_magic_cmd with a given extended regex. # If you have 'file' or equivalent on your system and you're not sure # whether 'pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd* | bitrig*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; os2*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi test -z "$DLLTOOL" && DLLTOOL=dlltool { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 $as_echo_n "checking how to associate runtime and link libraries... " >&6; } if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh; # decide which one to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd=$ECHO ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 $as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO if test -n "$ac_tool_prefix"; then for ac_prog in ar do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_AR" && break done if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi fi : ${AR=ar} : ${AR_FLAGS=cru} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 $as_echo_n "checking for archiver @FILE support... " >&6; } if ${lt_cv_ar_at_file+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test 0 -eq "$ac_status"; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test 0 -ne "$ac_status"; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 $as_echo "$lt_cv_ar_at_file" >&6; } if test no = "$lt_cv_ar_at_file"; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in bitrig* | openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if ${lt_cv_sys_global_symbol_pipe+:} false; then : $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test ia64 = "$host_cpu"; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Gets list of data symbols to import. lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" # Adjust the below global symbol transforms to fixup imported variables. lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" lt_c_name_lib_hook="\ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" else # Disable hooks by default. lt_cv_sys_global_symbol_to_import= lt_cdecl_hook= lt_c_name_hook= lt_c_name_lib_hook= fi # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n"\ $lt_cdecl_hook\ " -e 's/^T .* \(.*\)$/extern int \1();/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ $lt_c_name_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" # Transform an extracted symbol line into symbol name with lib prefix and # symbol address. lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ $lt_c_name_lib_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function, # D for any global variable and I for any imported variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ " /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ " /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ " {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ " s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS=conftstm.$ac_objext CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test yes = "$pipe_works"; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then nm_file_list_spec='@' fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 $as_echo_n "checking for sysroot... " >&6; } # Check whether --with-sysroot was given. if test "${with_sysroot+set}" = set; then : withval=$with_sysroot; else with_sysroot=no fi lt_sysroot= case $with_sysroot in #( yes) if test yes = "$GCC"; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 $as_echo "$with_sysroot" >&6; } as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 $as_echo "${lt_sysroot:-no}" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 $as_echo_n "checking for a working dd... " >&6; } if ${ac_cv_path_lt_DD+:} false; then : $as_echo_n "(cached) " >&6 else printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i : ${lt_DD:=$DD} if test -z "$lt_DD"; then ac_path_lt_DD_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in dd; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_lt_DD" || continue if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: fi $ac_path_lt_DD_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_lt_DD"; then : fi else ac_cv_path_lt_DD=$lt_DD fi rm -f conftest.i conftest2.i conftest.out fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 $as_echo "$ac_cv_path_lt_DD" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 $as_echo_n "checking how to truncate binary pipes... " >&6; } if ${lt_cv_truncate_bin+:} false; then : $as_echo_n "(cached) " >&6 else printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i lt_cv_truncate_bin= if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" fi rm -f conftest.i conftest2.i conftest.out test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 $as_echo "$lt_cv_truncate_bin" >&6; } # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in $*""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test no = "$enable_libtool_lock" || enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out what ABI is being produced by ac_compile, and set mode # options accordingly. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE=32 ;; *ELF-64*) HPUX_IA64_MODE=64 ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test yes = "$lt_cv_prog_gnu_ld"; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; mips64*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then emul=elf case `/usr/bin/file conftest.$ac_objext` in *32-bit*) emul="${emul}32" ;; *64-bit*) emul="${emul}64" ;; esac case `/usr/bin/file conftest.$ac_objext` in *MSB*) emul="${emul}btsmip" ;; *LSB*) emul="${emul}ltsmip" ;; esac case `/usr/bin/file conftest.$ac_objext` in *N32*) emul="${emul}n32" ;; esac LD="${LD-ld} -m $emul" fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. Note that the listed cases only cover the # situations where additional linker options are needed (such as when # doing 32-bit compilation for a host where ld defaults to 64-bit, or # vice versa); the common cases where no linker options are needed do # not appear in the list. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) case `/usr/bin/file conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; *) LD="${LD-ld} -m elf_i386" ;; esac ;; powerpc64le-*linux*) LD="${LD-ld} -m elf32lppclinux" ;; powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; powerpcle-*linux*) LD="${LD-ld} -m elf64lppc" ;; powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS=$CFLAGS CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if ${lt_cv_cc_needs_belf+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test yes != "$lt_cv_cc_needs_belf"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS=$SAVE_CFLAGS fi ;; *-*solaris*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*|x86_64-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD=${LD-ld}_sol2 fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks=$enable_libtool_lock if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. set dummy ${ac_tool_prefix}mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MANIFEST_TOOL"; then ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL if test -n "$MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 $as_echo "$MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL # Extract the first word of "mt", so it can be a program name with args. set dummy mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_MANIFEST_TOOL"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL if test -n "$ac_ct_MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 $as_echo "$ac_ct_MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_MANIFEST_TOOL" = x; then MANIFEST_TOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL fi else MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" fi test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 $as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } if ${lt_cv_path_mainfest_tool+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&5 if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 $as_echo "$lt_cv_path_mainfest_tool" >&6; } if test yes != "$lt_cv_path_mainfest_tool"; then MANIFEST_TOOL=: fi case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if ${lt_cv_apple_cc_single_mod+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "$LT_MULTI_MODULE"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&5 # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test 0 = "$_lt_result"; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if ${lt_cv_ld_exported_symbols_list+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 $as_echo_n "checking for -force_load linker flag... " >&6; } if ${lt_cv_ld_force_load+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 echo "$AR cru libconftest.a conftest.o" >&5 $AR cru libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&5 elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then lt_cv_ld_force_load=yes else cat conftest.err >&5 fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 $as_echo "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; 10.[012][,.]*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test yes = "$lt_cv_apple_cc_single_mod"; then _lt_dar_single_mod='$single_module' fi if test yes = "$lt_cv_ld_exported_symbols_list"; then _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' fi if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac # func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x$2 in x) ;; *:) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" ;; x:*) eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" ;; *::*) eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" ;; *) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" ;; esac } # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done func_stripname_cnf () { case $2 in .*) func_stripname_result=`$ECHO "$3" | $SED "s%^$1%%; s%\\\\$2\$%%"`;; *) func_stripname_result=`$ECHO "$3" | $SED "s%^$1%%; s%$2\$%%"`;; esac } # func_stripname_cnf # Set options enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AS"; then ac_cv_prog_AS="$AS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AS="${ac_tool_prefix}as" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AS=$ac_cv_prog_AS if test -n "$AS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 $as_echo "$AS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AS"; then ac_ct_AS=$AS # Extract the first word of "as", so it can be a program name with args. set dummy as; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AS"; then ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AS="as" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AS=$ac_cv_prog_ac_ct_AS if test -n "$ac_ct_AS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 $as_echo "$ac_ct_AS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AS" = x; then AS="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AS=$ac_ct_AS fi else AS="$ac_cv_prog_AS" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi ;; esac test -z "$AS" && AS=as test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$OBJDUMP" && OBJDUMP=objdump enable_dlopen=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS=$lt_save_ifs ;; esac else enable_shared=yes fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS=$lt_save_ifs ;; esac else enable_static=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for lt_pkg in $withval; do IFS=$lt_save_ifs if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS=$lt_save_ifs ;; esac else pic_mode=default fi # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS=$lt_save_ifs ;; esac else enable_fast_install=yes fi shared_archive_member_spec= case $host,$enable_shared in power*-*-aix[5-9]*,yes) { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 $as_echo_n "checking which variant of shared library versioning to provide... " >&6; } # Check whether --with-aix-soname was given. if test "${with_aix_soname+set}" = set; then : withval=$with_aix_soname; case $withval in aix|svr4|both) ;; *) as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 ;; esac lt_cv_with_aix_soname=$with_aix_soname else if ${lt_cv_with_aix_soname+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_with_aix_soname=aix fi with_aix_soname=$lt_cv_with_aix_soname fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 $as_echo "$with_aix_soname" >&6; } if test aix != "$with_aix_soname"; then # For the AIX way of multilib, we name the shared archive member # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, # the AIX toolchain works better with OBJECT_MODE set (default 32). if test 64 = "${OBJECT_MODE-32}"; then shared_archive_member_spec=shr_64 else shared_archive_member_spec=shr fi fi ;; *) with_aix_soname=aix ;; esac # This can be used to rebuild libtool when needed LIBTOOL_DEPS=$ltmain # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if ${lt_cv_objdir+:} false; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a '.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld=$lt_cv_prog_gnu_ld old_CC=$CC old_CFLAGS=$CFLAGS # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o func_cc_basename $compiler cc_basename=$func_cc_basename_result # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD=$MAGIC_CMD lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/${ac_tool_prefix}file"; then lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD=$lt_cv_path_MAGIC_CMD if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; esac fi MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD=$MAGIC_CMD lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/file"; then lt_cv_path_MAGIC_CMD=$ac_dir/"file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD=$lt_cv_path_MAGIC_CMD if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; esac fi MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC=$CC ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test yes = "$GCC"; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; *) lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= if test yes = "$GCC"; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi lt_prog_compiler_pic='-fPIC' ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the '-m68020' flag to GCC prevents building anything better, # like '-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' case $host_os in os2*) lt_prog_compiler_static='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' if test -n "$lt_prog_compiler_pic"; then lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' case $cc_basename in nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; esac ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' case $host_os in os2*) lt_prog_compiler_static='$wl-static' ;; esac ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='$wl-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in # old Intel for x86_64, which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; tcc*) # Fabrice Bellard et al's Tiny C Compiler lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; *Sun\ F* | *Sun*Fortran*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Intel*\ [CF]*Compiler*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; *Portland\ Group*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms that do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic=$lt_prog_compiler_pic fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 $as_echo "$lt_cv_prog_compiler_pic" >&6; } lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if ${lt_cv_prog_compiler_pic_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test yes = "$lt_cv_prog_compiler_pic_works"; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if ${lt_cv_prog_compiler_static_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test yes = "$lt_cv_prog_compiler_static_works"; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links=nottested if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test no = "$hard_links"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ' (' and ')$', so one must not match beginning or # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', # as well as any symbol that contains 'd'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd* | bitrig*) with_gnu_ld=no ;; linux* | k*bsd*-gnu | gnu*) link_all_deplibs=no ;; esac ld_shlibs=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test yes = "$with_gnu_ld"; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; *\ \(GNU\ Binutils\)\ [3-9]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test yes = "$lt_use_gnu_ld_interface"; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='$wl' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' export_dynamic_flag_spec='$wl--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test ia64 != "$host_cpu"; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' export_dynamic_flag_spec='$wl--export-all-symbols' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file, use it as # is; otherwise, prepend EXPORTS... archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; haiku*) archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' link_all_deplibs=yes ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported shrext_cmds=.dll archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='$wl-rpath,$libdir' export_dynamic_flag_spec='$wl-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test linux-dietlibc = "$host_os"; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test no = "$tmp_diet" then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; nagfor*) # NAGFOR 5.3 tmp_sharedflag='-Wl,-shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi case $cc_basename in tcc*) export_dynamic_flag_spec='-rdynamic' ;; xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test yes = "$supports_anon_versioning"; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test no = "$ld_shlibs"; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test ia64 = "$host_cpu"; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag= else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then aix_use_runtimelinking=yes break fi done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='$wl-f,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # traditional, no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. hardcode_direct=no hardcode_direct_absolute=no ;; esac if test yes = "$GCC"; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`$CC -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test yes = "$aix_use_runtimelinking"; then shared_flag="$shared_flag "'$wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' fi fi export_dynamic_flag_spec='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; then hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' $wl-bernotok' allow_undefined_flag=' $wl-berok' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi archive_cmds_need_lc=yes archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes file_list_spec='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' enable_shared_with_static_runtimes=yes exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' postlink_cmds='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' enable_shared_with_static_runtimes=yes ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported if test yes = "$lt_cv_ld_force_load"; then whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec='' fi link_all_deplibs=yes allow_undefined_flag=$_lt_dar_allow_undefined case $cc_basename in ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test yes = "$GCC"; then archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='$wl-E' ;; hpux10*) if test yes,no = "$GCC,$with_gnu_ld"; then archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test no = "$with_gnu_ld"; then hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test yes,no = "$GCC,$with_gnu_ld"; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 $as_echo_n "checking if $CC understands -b... " >&6; } if ${lt_cv_prog_compiler__b+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler__b=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -b" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler__b=yes fi else lt_cv_prog_compiler__b=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 $as_echo "$lt_cv_prog_compiler__b" >&6; } if test yes = "$lt_cv_prog_compiler__b"; then archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi ;; esac fi if test no = "$with_gnu_ld"; then hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test yes = "$GCC"; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } if ${lt_cv_irix_exported_symbol+:} false; then : $as_echo_n "(cached) " >&6 else save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo (void) { return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_irix_exported_symbol=yes else lt_cv_irix_exported_symbol=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 $as_echo "$lt_cv_irix_exported_symbol" >&6; } if test yes = "$lt_cv_irix_exported_symbol"; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi link_all_deplibs=no else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; linux*) case $cc_basename in tcc*) # Fabrice Bellard et al's Tiny C Compiler ld_shlibs=yes archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='$wl-rpath,$libdir' export_dynamic_flag_spec='$wl-E' else archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='$wl-rpath,$libdir' fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported shrext_cmds=.dll archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes ;; osf3*) if test yes = "$GCC"; then allow_undefined_flag=' $wl-expect_unresolved $wl\*' archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test yes = "$GCC"; then allow_undefined_flag=' $wl-expect_unresolved $wl\*' archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test yes = "$GCC"; then wlarc='$wl' archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='$wl' archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands '-z linker_flag'. GCC discards it without '$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test yes = "$GCC"; then whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test sequent = "$host_vendor"; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='$wl-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We CANNOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='$wl-z,text' allow_undefined_flag='$wl-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='$wl-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='$wl-Bexport' runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test sni = "$host_vendor"; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='$wl-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test no = "$ld_shlibs" && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test yes,yes = "$GCC,$enable_shared"; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } if ${lt_cv_archive_cmds_need_lc+:} false; then : $as_echo_n "(cached) " >&6 else $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 $as_echo "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test yes = "$GCC"; then case $host_os in darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; *) lt_awk_arg='/^libraries:/' ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; *) lt_sed_strip_eq='s|=/|/|g' ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary... lt_tmp_lt_search_path_spec= lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` # ...but if some path component already ends with the multilib dir we assume # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). case "$lt_multi_os_dir; $lt_search_path_spec " in "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) lt_multi_os_dir= ;; esac for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" elif test -n "$lt_multi_os_dir"; then test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS = " "; FS = "/|\n";} { lt_foo = ""; lt_count = 0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo = "/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's|/\([A-Za-z]:\)|\1|g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=.so postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='$libname$release$shared_ext$major' ;; aix[4-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test ia64 = "$host_cpu"; then # AIX 5 supports IA64 library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line '#! .'. This would cause the generated library to # depend on '.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # Using Import Files as archive members, it is possible to support # filename-based versioning of shared library archives on AIX. While # this would work for both with and without runtime linking, it will # prevent static linking of such archives. So we do filename-based # shared library versioning with .so extension only, which is used # when both runtime linking and shared linking is enabled. # Unfortunately, runtime linking may impact performance, so we do # not want this to be the default eventually. Also, we use the # versioned .so libs for executables only if there is the -brtl # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. # To allow for filename-based versioning support, we need to create # libNAME.so.V as an archive file, containing: # *) an Import File, referring to the versioned filename of the # archive as well as the shared archive member, telling the # bitwidth (32 or 64) of that shared object, and providing the # list of exported symbols of that shared object, eventually # decorated with the 'weak' keyword # *) the shared object with the F_LOADONLY flag set, to really avoid # it being seen by the linker. # At run time we better use the real file rather than another symlink, # but for link time we create the symlink libNAME.so -> libNAME.so.V case $with_aix_soname,$aix_use_runtimelinking in # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. aix,yes) # traditional libtool dynamic_linker='AIX unversionable lib.so' # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; aix,no) # traditional AIX only dynamic_linker='AIX lib.a(lib.so.V)' # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' ;; svr4,*) # full svr4 only dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,yes) # both, prefer svr4 dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # unpreferred sharedlib libNAME.a needs extra handling postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,no) # both, prefer aix dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' ;; esac shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='$libname$shared_ext' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec=$LIB if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' soname_spec='$libname$release$major$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=no sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' if test 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" sys_lib_dlsearch_path_spec=/usr/lib/hpux32 else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" sys_lib_dlsearch_path_spec=/usr/lib/hpux64 fi ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test yes = "$lt_cv_prog_gnu_ld"; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; linux*android*) version_type=none # Android doesn't support versioned libraries. need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext' soname_spec='$libname$release$shared_ext' finish_cmds= shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes dynamic_linker='Android linker' # Don't embed -rpath directories since the linker doesn't support them. hardcode_libdir_flag_spec='-L$libdir' ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Ideally, we could use ldconfig to report *all* directores which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, # even though it is searched at run-time. Try to do the best guess by # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd* | bitrig*) version_type=sunos sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then need_version=no else need_version=yes fi library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; os2*) libname_spec='$name' version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no # OS/2 can only load a DLL with a base name of 8 characters or less. soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; v=$($ECHO $release$versuffix | tr -d .-); n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); $ECHO $n$v`$shared_ext' library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' shlibpath_var=BEGINLIBPATH sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test yes = "$with_gnu_ld"; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec; then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' soname_spec='$libname$shared_ext.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=sco need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test yes = "$with_gnu_ld"; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test yes = "$GCC"; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi # remember unaugmented sys_lib_dlsearch_path content for libtool script decls... configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec # ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" # to be used as default LT_SYS_LIBRARY_PATH value in generated libtool configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test yes = "$hardcode_automatic"; then # We can hardcode non-existent directories. if test no != "$hardcode_direct" && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && test no != "$hardcode_minus_L"; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test relink = "$hardcode_action" || test yes = "$inherit_rpath"; then # Fast installation is not supported enable_fast_install=no elif test yes = "$shlibpath_overrides_runpath" || test no = "$enable_shared"; then # Fast installation is not necessary enable_fast_install=needless fi if test yes != "$enable_dlopen"; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen=load_add_on lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen=LoadLibrary lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen=dlopen lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl else lt_cv_dlopen=dyld lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; tpf*) # Don't try to run any link tests for TPF. We know it's impossible # because TPF is a cross-compiler, and we know how we open DSOs. lt_cv_dlopen=dlopen lt_cv_dlopen_libs= lt_cv_dlopen_self=no ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes; then : lt_cv_dlopen=shl_load else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if ${ac_cv_lib_dld_shl_load+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = xyes; then : lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = xyes; then : lt_cv_dlopen=dlopen else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if ${ac_cv_lib_svld_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = xyes; then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if ${ac_cv_lib_dld_dld_link+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = xyes; then : lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld fi fi fi fi fi fi ;; esac if test no = "$lt_cv_dlopen"; then enable_dlopen=no else enable_dlopen=yes fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS=$CPPFLAGS test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS=$LDFLAGS wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS=$LIBS LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else if test yes = "$cross_compiling"; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test yes = "$lt_cv_dlopen_self"; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else if test yes = "$cross_compiling"; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS=$save_CPPFLAGS LDFLAGS=$save_LDFLAGS LIBS=$save_LIBS ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP"; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report what library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC=$lt_save_CC if test -n "$CXX" && ( test no != "$CXX" && ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || (test g++ != "$CXX"))); then ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 $as_echo_n "checking how to run the C++ preprocessor... " >&6; } if test -z "$CXXCPP"; then if ${ac_cv_prog_CXXCPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 $as_echo "$CXXCPP" >&6; } ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu else _lt_caught_CXX_error=yes fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= compiler_needs_object_CXX=no export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_direct_absolute_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no inherit_rpath_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds reload_flag_CXX=$reload_flag reload_cmds_CXX=$reload_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test yes != "$_lt_caught_CXX_error"; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} CFLAGS=$CXXFLAGS compiler=$CC compiler_CXX=$CC func_cc_basename $compiler cc_basename=$func_cc_basename_result if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test yes = "$GXX"; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test yes = "$GXX"; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test yes = "$GCC"; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return, which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD=$ac_prog ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test yes = "$with_gnu_ld"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD=$ac_dir/$ac_prog # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test yes = "$with_gnu_ld"; then archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' export_dynamic_flag_spec_CXX='$wl--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='$wl' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_CXX=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else whole_archive_flag_spec_CXX= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix[4-9]*) if test ia64 = "$host_cpu"; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag= else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes file_list_spec_CXX='$wl-f,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. hardcode_direct_CXX=no hardcode_direct_absolute_CXX=no ;; esac if test yes = "$GXX"; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`$CC -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct_CXX=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi esac shared_flag='-shared' if test yes = "$aix_use_runtimelinking"; then shared_flag=$shared_flag' $wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' fi fi export_dynamic_flag_spec_CXX='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. always_export_symbols_CXX=yes if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. # The "-G" linker flag allows undefined symbols. no_undefined_flag_CXX='-bernotok' # Determine the default libpath from the value encoded in an empty # executable. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath__CXX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX=/usr/lib:/lib fi fi aix_libpath=$lt_cv_aix_libpath__CXX fi hardcode_libdir_flag_spec_CXX='$wl-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; then hardcode_libdir_flag_spec_CXX='$wl-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath__CXX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX=/usr/lib:/lib fi fi aix_libpath=$lt_cv_aix_libpath__CXX fi hardcode_libdir_flag_spec_CXX='$wl-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' $wl-bernotok' allow_undefined_flag_CXX=' $wl-berok' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec_CXX='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' fi archive_cmds_need_lc_CXX=yes archive_expsym_cmds_CXX='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$RM -r $output_objdir/$realname.d' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_CXX=' ' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=yes file_list_spec_CXX='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' archive_expsym_cmds_CXX='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true' enable_shared_with_static_runtimes_CXX=yes # Don't use ranlib old_postinstall_cmds_CXX='chmod 644 $oldlib' postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ func_to_tool_file "$lt_outputfile"~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' export_dynamic_flag_spec_CXX='$wl--export-all-symbols' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file, use it as # is; otherwise, prepend EXPORTS... archive_expsym_cmds_CXX='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported if test yes = "$lt_cv_ld_force_load"; then whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec_CXX='' fi link_all_deplibs_CXX=yes allow_undefined_flag_CXX=$_lt_dar_allow_undefined case $cc_basename in ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" archive_expsym_cmds_CXX="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" module_expsym_cmds_CXX="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" if test yes != "$lt_cv_apple_cc_single_mod"; then archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" archive_expsym_cmds_CXX="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" fi else ld_shlibs_CXX=no fi ;; os2*) hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_minus_L_CXX=yes allow_undefined_flag_CXX=unsupported shrext_cmds=.dll archive_cmds_CXX='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' archive_expsym_cmds_CXX='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds_CXX='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes_CXX=yes ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; haiku*) archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' link_all_deplibs_CXX=yes ;; hpux9*) hardcode_libdir_flag_spec_CXX='$wl+b $wl$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='$wl-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test no = "$with_gnu_ld"; then hardcode_libdir_flag_spec_CXX='$wl+b $wl$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) ;; *) export_dynamic_flag_spec_CXX='$wl-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then if test no = "$with_gnu_ld"; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; interix[3-9]*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' export_dynamic_flag_spec_CXX='$wl-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_CXX='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test yes = "$GXX"; then if test no = "$with_gnu_ld"; then archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' hardcode_libdir_separator_CXX=: inherit_rpath_CXX=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' export_dynamic_flag_spec_CXX='$wl--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' export_dynamic_flag_spec_CXX='$wl--export-dynamic' whole_archive_flag_spec_CXX='$wl--whole-archive$convenience $wl--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [1-5].* | *pgcpp\ [1-5].*) prelink_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' old_archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='$wl--rpath $wl$libdir' export_dynamic_flag_spec_CXX='$wl--export-dynamic' whole_archive_flag_spec_CXX='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' export_dynamic_flag_spec_CXX='$wl--export-dynamic' archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' hardcode_libdir_flag_spec_CXX='-R$libdir' whole_archive_flag_spec_CXX='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object_CXX=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) ld_shlibs_CXX=yes ;; openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no hardcode_direct_absolute_CXX=yes archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='$wl-E' whole_archive_flag_spec_CXX=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else ld_shlibs_CXX=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) case $host in osf3*) allow_undefined_flag_CXX=' $wl-expect_unresolved $wl\*' archive_cmds_CXX='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' ;; *) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~ $RM $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' ;; esac hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes,no = "$GXX,$with_gnu_ld"; then allow_undefined_flag_CXX=' $wl-expect_unresolved $wl\*' case $host in osf3*) archive_cmds_CXX='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ;; *) archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands '-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test yes,no = "$GXX,$with_gnu_ld"; then no_undefined_flag_CXX=' $wl-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require '-G' NOT '-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi hardcode_libdir_flag_spec_CXX='$wl-R $wl$libdir' case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) whole_archive_flag_spec_CXX='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='$wl-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We CANNOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_CXX='$wl-z,text' allow_undefined_flag_CXX='$wl-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='$wl-R,$libdir' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='$wl-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~ '"$old_archive_cmds_CXX" reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~ '"$reload_cmds_CXX" ;; *) archive_cmds_CXX='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test no = "$ld_shlibs_CXX" && can_build_shared=no GCC_CXX=$GXX LD_CXX=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $prev$p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test x-L = "$p" || test x-R = "$p"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test no = "$pre_test_object_deps_done"; then case $prev in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX=$prev$p else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} $prev$p" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_CXX"; then postdeps_CXX=$prev$p else postdeps_CXX="${postdeps_CXX} $prev$p" fi fi prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test no = "$pre_test_object_deps_done"; then if test -z "$predep_objects_CXX"; then predep_objects_CXX=$p else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX=$p else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $RM -f confest.$objext CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken case $host_os in interix[3-9]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac compiler_lib_search_dirs_CXX= if test -n "${compiler_lib_search_path_CXX}"; then compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | $SED -e 's! -L! !g' -e 's!^ !!'` fi lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= # C++ specific cases for pic, static, wl, etc. if test yes = "$GXX"; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi lt_prog_compiler_pic_CXX='-fPIC' ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic_CXX='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the '-m68020' flag to GCC prevents building anything better, # like '-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic_CXX='-DDLL_EXPORT' case $host_os in os2*) lt_prog_compiler_static_CXX='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static_CXX= ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix[4-9]*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; dgux*) case $cc_basename in ec++*) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='$wl-a ${wl}archive' if test ia64 != "$host_cpu"; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='$wl-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64, which still supported -KPIC. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; xlc* | xlC* | bgxl[cC]* | mpixl[cC]*) # IBM XL 8.0, 9.0 on PPC and BlueGene lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-qpic' lt_prog_compiler_static_CXX='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi case $host_os in # For platforms that do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5 $as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; } lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } if ${lt_cv_prog_compiler_pic_works_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works_CXX=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; } if test yes = "$lt_cv_prog_compiler_pic_works_CXX"; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if ${lt_cv_prog_compiler_static_works_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works_CXX=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works_CXX=yes fi else lt_cv_prog_compiler_static_works_CXX=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; } if test yes = "$lt_cv_prog_compiler_static_works_CXX"; then : else lt_prog_compiler_static_CXX= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } hard_links=nottested if test no = "$lt_cv_prog_compiler_c_o_CXX" && test no != "$need_locks"; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test no = "$hard_links"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' case $host_os in aix[4-9]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX=$ltdll_cmds ;; cygwin* | mingw* | cegcc*) case $cc_basename in cl*) exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' ;; esac ;; linux* | k*bsd*-gnu | gnu*) link_all_deplibs_CXX=no ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test no = "$ld_shlibs_CXX" && can_build_shared=no with_gnu_ld_CXX=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test yes,yes = "$GCC,$enable_shared"; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } if ${lt_cv_archive_cmds_need_lc_CXX+:} false; then : $as_echo_n "(cached) " >&6 else $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc_CXX=no else lt_cv_archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5 $as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; } archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=.so postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='$libname$release$shared_ext$major' ;; aix[4-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test ia64 = "$host_cpu"; then # AIX 5 supports IA64 library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line '#! .'. This would cause the generated library to # depend on '.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # Using Import Files as archive members, it is possible to support # filename-based versioning of shared library archives on AIX. While # this would work for both with and without runtime linking, it will # prevent static linking of such archives. So we do filename-based # shared library versioning with .so extension only, which is used # when both runtime linking and shared linking is enabled. # Unfortunately, runtime linking may impact performance, so we do # not want this to be the default eventually. Also, we use the # versioned .so libs for executables only if there is the -brtl # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. # To allow for filename-based versioning support, we need to create # libNAME.so.V as an archive file, containing: # *) an Import File, referring to the versioned filename of the # archive as well as the shared archive member, telling the # bitwidth (32 or 64) of that shared object, and providing the # list of exported symbols of that shared object, eventually # decorated with the 'weak' keyword # *) the shared object with the F_LOADONLY flag set, to really avoid # it being seen by the linker. # At run time we better use the real file rather than another symlink, # but for link time we create the symlink libNAME.so -> libNAME.so.V case $with_aix_soname,$aix_use_runtimelinking in # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. aix,yes) # traditional libtool dynamic_linker='AIX unversionable lib.so' # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; aix,no) # traditional AIX only dynamic_linker='AIX lib.a(lib.so.V)' # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' ;; svr4,*) # full svr4 only dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,yes) # both, prefer svr4 dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # unpreferred sharedlib libNAME.a needs extra handling postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,no) # both, prefer aix dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' ;; esac shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='$libname$shared_ext' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec=$LIB if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' soname_spec='$libname$release$major$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=no sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' if test 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" sys_lib_dlsearch_path_spec=/usr/lib/hpux32 else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" sys_lib_dlsearch_path_spec=/usr/lib/hpux64 fi ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test yes = "$lt_cv_prog_gnu_ld"; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; linux*android*) version_type=none # Android doesn't support versioned libraries. need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext' soname_spec='$libname$release$shared_ext' finish_cmds= shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes dynamic_linker='Android linker' # Don't embed -rpath directories since the linker doesn't support them. hardcode_libdir_flag_spec_CXX='-L$libdir' ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Ideally, we could use ldconfig to report *all* directores which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, # even though it is searched at run-time. Try to do the best guess by # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd* | bitrig*) version_type=sunos sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then need_version=no else need_version=yes fi library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; os2*) libname_spec='$name' version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no # OS/2 can only load a DLL with a base name of 8 characters or less. soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; v=$($ECHO $release$versuffix | tr -d .-); n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); $ECHO $n$v`$shared_ext' library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' shlibpath_var=BEGINLIBPATH sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test yes = "$with_gnu_ld"; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec; then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' soname_spec='$libname$shared_ext.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=sco need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test yes = "$with_gnu_ld"; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test yes = "$GCC"; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi # remember unaugmented sys_lib_dlsearch_path content for libtool script decls... configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec # ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" # to be used as default LT_SYS_LIBRARY_PATH value in generated libtool configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || test -n "$runpath_var_CXX" || test yes = "$hardcode_automatic_CXX"; then # We can hardcode non-existent directories. if test no != "$hardcode_direct_CXX" && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" && test no != "$hardcode_minus_L_CXX"; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5 $as_echo "$hardcode_action_CXX" >&6; } if test relink = "$hardcode_action_CXX" || test yes = "$inherit_rpath_CXX"; then # Fast installation is not supported enable_fast_install=no elif test yes = "$shlibpath_overrides_runpath" || test no = "$enable_shared"; then # Fast installation is not necessary enable_fast_install=needless fi fi # test -n "$compiler" CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test yes != "$_lt_caught_CXX_error" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_commands="$ac_config_commands libtool" # Only expand once: # * If any interfaces have been removed or changed, or if any private # member variables or virtual functions have been added to any # class, we are not binary compatible. Increment LT_CURRENT, and set # LT_AGE and LT_REVISION to 0. # # * Otherwise, if any interfaces have been added since the last public # release, then increment LT_CURRENT and LT_AGE, and set LT_REVISION # to 0. # # * Otherwise, increment LT_REVISION # LT = libtool LT_CURRENT=21 LT_AGE=0 LT_REVISION=2 LT_SONAME=$(expr $LT_CURRENT - $LT_AGE) # Check whether --enable-insecure-random was given. if test "${enable_insecure_random+set}" = set; then : enableval=$enable_insecure_random; if test "$enableval" = "yes"; then qpdf_INSECURE_RANDOM=1; else qpdf_INSECURE_RANDOM=0; fi else qpdf_INSECURE_RANDOM=0 fi if test "$qpdf_INSECURE_RANDOM" = "1"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define USE_INSECURE_RANDOM 1" >>confdefs.h else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Check whether --enable-os-secure-random was given. if test "${enable_os_secure_random+set}" = set; then : enableval=$enable_os_secure_random; if test "$enableval" = "yes"; then qpdf_OS_SECURE_RANDOM=1; else qpdf_OS_SECURE_RANDOM=0; fi else qpdf_OS_SECURE_RANDOM=1 fi if test "$qpdf_OS_SECURE_RANDOM" = "1"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "#define SKIP_OS_SECURE_RANDOM 1" >>confdefs.h fi # Check whether --with-random was given. if test "${with_random+set}" = set; then : withval=$with_random; RANDOM_DEVICE="$withval" else as_ac_File=`$as_echo "ac_cv_file_"/dev/urandom"" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for \"/dev/urandom\"" >&5 $as_echo_n "checking for \"/dev/urandom\"... " >&6; } if eval \${$as_ac_File+:} false; then : $as_echo_n "(cached) " >&6 else test "$cross_compiling" = yes && as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5 if test -r ""/dev/urandom""; then eval "$as_ac_File=yes" else eval "$as_ac_File=no" fi fi eval ac_res=\$$as_ac_File { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_ac_File"\" = x"yes"; then : RANDOM_DEVICE="/dev/urandom"; else as_ac_File=`$as_echo "ac_cv_file_"/dev/arandom"" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for \"/dev/arandom\"" >&5 $as_echo_n "checking for \"/dev/arandom\"... " >&6; } if eval \${$as_ac_File+:} false; then : $as_echo_n "(cached) " >&6 else test "$cross_compiling" = yes && as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5 if test -r ""/dev/arandom""; then eval "$as_ac_File=yes" else eval "$as_ac_File=no" fi fi eval ac_res=\$$as_ac_File { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_ac_File"\" = x"yes"; then : RANDOM_DEVICE="/dev/arandom"; else as_ac_File=`$as_echo "ac_cv_file_"/dev/random"" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for \"/dev/random\"" >&5 $as_echo_n "checking for \"/dev/random\"... " >&6; } if eval \${$as_ac_File+:} false; then : $as_echo_n "(cached) " >&6 else test "$cross_compiling" = yes && as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5 if test -r ""/dev/random""; then eval "$as_ac_File=yes" else eval "$as_ac_File=no" fi fi eval ac_res=\$$as_ac_File { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_ac_File"\" = x"yes"; then : RANDOM_DEVICE="/dev/random"; fi fi fi fi if test "x$RANDOM_DEVICE" != "x" ; then $as_echo "#define HAVE_RANDOM_DEVICE 1" >>confdefs.h cat >>confdefs.h <<_ACEOF #define RANDOM_DEVICE "$RANDOM_DEVICE" _ACEOF fi USE_EXTERNAL_LIBS=0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for whether to use external libraries distribution" >&5 $as_echo_n "checking for whether to use external libraries distribution... " >&6; } # Check whether --enable-external-libs was given. if test "${enable_external_libs+set}" = set; then : enableval=$enable_external_libs; if test "$enableval" = "yes"; then USE_EXTERNAL_LIBS=1; else USE_EXTERNAL_LIBS=0; fi else BUILD_INTERNAL_LIBS=0 fi if test "$BUILD_INTERNAL_LIBS" = "0"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi WINDOWS_WORDSIZE= # Check whether --with-windows-wordsize was given. if test "${with_windows_wordsize+set}" = set; then : withval=$with_windows_wordsize; WINDOWS_WORDSIZE=$withval else WINDOWS_WORDSIZE=none fi if test "$USE_EXTERNAL_LIBS" = "1"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for windows wordsize" >&5 $as_echo_n "checking for windows wordsize... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WINDOWS_WORDSIZE" >&5 $as_echo "$WINDOWS_WORDSIZE" >&6; } if ! test "$WINDOWS_WORDSIZE" = "32" -o "$WINDOWS_WORDSIZE" = "64"; then as_fn_error $? "Windows wordsize of 32 or 64 must be specified if external libs are being used." "$LINENO" 5 fi fi if test "$BUILD_INTERNAL_LIBS" = "0"; then ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" if test "x$ac_cv_header_zlib_h" = xyes; then : else MISSING_ZLIB_H=1; MISSING_ANY=1 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing deflate" >&5 $as_echo_n "checking for library containing deflate... " >&6; } if ${ac_cv_search_deflate+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char deflate (); int main () { return deflate (); ; return 0; } _ACEOF for ac_lib in '' z zlib; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_deflate=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_deflate+:} false; then : break fi done if ${ac_cv_search_deflate+:} false; then : else ac_cv_search_deflate=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_deflate" >&5 $as_echo "$ac_cv_search_deflate" >&6; } ac_res=$ac_cv_search_deflate if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else MISSING_ZLIB=1; MISSING_ANY=1 fi ac_fn_c_check_header_mongrel "$LINENO" "jpeglib.h" "ac_cv_header_jpeglib_h" "$ac_includes_default" if test "x$ac_cv_header_jpeglib_h" = xyes; then : else MISSING_JPEG_H=1; MISSING_ANY=1 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing jpeg_destroy" >&5 $as_echo_n "checking for library containing jpeg_destroy... " >&6; } if ${ac_cv_search_jpeg_destroy+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char jpeg_destroy (); int main () { return jpeg_destroy (); ; return 0; } _ACEOF for ac_lib in '' jpeg; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_jpeg_destroy=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_jpeg_destroy+:} false; then : break fi done if ${ac_cv_search_jpeg_destroy+:} false; then : else ac_cv_search_jpeg_destroy=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_jpeg_destroy" >&5 $as_echo "$ac_cv_search_jpeg_destroy" >&6; } ac_res=$ac_cv_search_jpeg_destroy if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else MISSING_JPEG=1; MISSING_ANY=1 fi fi if test "x$qpdf_OS_SECURE_RANDOM" = "x1"; then OLIBS=$LIBS LIBS="$LIBS Advapi32.lib" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Advapi32 library" >&5 $as_echo_n "checking for Advapi32 library... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #pragma comment(lib, "crypt32.lib") #include #include HCRYPTPROV cp; int main () { CryptAcquireContext(&cp, NULL, NULL, PROV_RSA_FULL, 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } LIBS="$OLIBS -lAdvapi32" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } LIBS=$OLIBS fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi QPDF_LARGE_FILE_TEST_PATH= # Check whether --with-large-file-test-path was given. if test "${with_large_file_test_path+set}" = set; then : withval=$with_large_file_test_path; QPDF_LARGE_FILE_TEST_PATH=$withval else QPDF_LARGE_FILE_TEST_PATH= fi # Check whether --enable-largefile was given. if test "${enable_largefile+set}" = set; then : enableval=$enable_largefile; fi if test "$enable_largefile" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 $as_echo_n "checking for special C compiler options needed for large files... " >&6; } if ${ac_cv_sys_largefile_CC+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_sys_largefile_CC=no if test "$GCC" != yes; then ac_save_CC=$CC while :; do # IRIX 6.2 and later do not support large files by default, # so use the C compiler's -n32 option if that helps. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : break fi rm -f core conftest.err conftest.$ac_objext CC="$CC -n32" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_largefile_CC=' -n32'; break fi rm -f core conftest.err conftest.$ac_objext break done CC=$ac_save_CC rm -f conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 $as_echo "$ac_cv_sys_largefile_CC" >&6; } if test "$ac_cv_sys_largefile_CC" != no; then CC=$CC$ac_cv_sys_largefile_CC fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 $as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } if ${ac_cv_sys_file_offset_bits+:} false; then : $as_echo_n "(cached) " >&6 else while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_file_offset_bits=no; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _FILE_OFFSET_BITS 64 #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_file_offset_bits=64; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_sys_file_offset_bits=unknown break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 $as_echo "$ac_cv_sys_file_offset_bits" >&6; } case $ac_cv_sys_file_offset_bits in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits _ACEOF ;; esac rm -rf conftest* if test $ac_cv_sys_file_offset_bits = unknown; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 $as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } if ${ac_cv_sys_large_files+:} false; then : $as_echo_n "(cached) " >&6 else while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_large_files=no; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _LARGE_FILES 1 #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_large_files=1; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_sys_large_files=unknown break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 $as_echo "$ac_cv_sys_large_files" >&6; } case $ac_cv_sys_large_files in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _LARGE_FILES $ac_cv_sys_large_files _ACEOF ;; esac rm -rf conftest* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5 $as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; } if ${ac_cv_sys_largefile_source+:} false; then : $as_echo_n "(cached) " >&6 else while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* for off_t */ #include int main () { int (*fp) (FILE *, off_t, int) = fseeko; return fseeko (stdin, 0, 0) && fp (stdin, 0, 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_sys_largefile_source=no; break fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _LARGEFILE_SOURCE 1 #include /* for off_t */ #include int main () { int (*fp) (FILE *, off_t, int) = fseeko; return fseeko (stdin, 0, 0) && fp (stdin, 0, 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_sys_largefile_source=1; break fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_cv_sys_largefile_source=unknown break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_source" >&5 $as_echo "$ac_cv_sys_largefile_source" >&6; } case $ac_cv_sys_largefile_source in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source _ACEOF ;; esac rm -rf conftest* # We used to try defining _XOPEN_SOURCE=500 too, to work around a bug # in glibc 2.1.3, but that breaks too many other things. # If you want fseeko and ftello with glibc, upgrade to a fixed glibc. if test $ac_cv_sys_largefile_source != unknown; then $as_echo "#define HAVE_FSEEKO 1" >>confdefs.h fi for ac_func in fseeko64 do : ac_fn_c_check_func "$LINENO" "fseeko64" "ac_cv_func_fseeko64" if test "x$ac_cv_func_fseeko64" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_FSEEKO64 1 _ACEOF fi done ac_fn_c_find_uintX_t "$LINENO" "16" "ac_cv_c_uint16_t" case $ac_cv_c_uint16_t in #( no|yes) ;; #( *) cat >>confdefs.h <<_ACEOF #define uint16_t $ac_cv_c_uint16_t _ACEOF ;; esac ac_fn_c_find_uintX_t "$LINENO" "32" "ac_cv_c_uint32_t" case $ac_cv_c_uint32_t in #( no|yes) ;; #( *) $as_echo "#define _UINT32_T 1" >>confdefs.h cat >>confdefs.h <<_ACEOF #define uint32_t $ac_cv_c_uint32_t _ACEOF ;; esac for ac_func in random do : ac_fn_c_check_func "$LINENO" "random" "ac_cv_func_random" if test "x$ac_cv_func_random" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_RANDOM 1 _ACEOF fi done # Check if LD supports linker scripts, and define conditional # HAVE_LD_VERSION_SCRIPT if so. This functionality is currently # constrained to compilers using GNU ld on ELF systems or systems # which provide an adequate emulation thereof. # Check whether --enable-ld-version-script was given. if test "${enable_ld_version_script+set}" = set; then : enableval=$enable_ld_version_script; have_ld_version_script=$enableval else have_ld_version_script=yes fi if test "$have_ld_version_script" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if LD -Wl,--version-script works" >&5 $as_echo_n "checking if LD -Wl,--version-script works... " >&6; } save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map" cat > conftest.map <conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : have_ld_version_script=yes else have_ld_version_script=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext rm -f conftest.map LDFLAGS="$save_LDFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_ld_version_script" >&5 $as_echo "$have_ld_version_script" >&6; } fi if test "$have_ld_version_script" = "yes"; then HAVE_LD_VERSION_SCRIPT=1 else HAVE_LD_VERSION_SCRIPT=0 fi make_okay=0 for make_prog in make gmake; do this_make_okay=0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnu make >= 3.81 ($make_prog)" >&5 $as_echo_n "checking for gnu make >= 3.81 ($make_prog)... " >&6; } if $make_prog --version >/dev/null 2>&1; then v=`$make_prog --version | grep 'GNU Make' | sed -e 's/.*Make //'` maj=`echo $v | cut -d. -f 1` min=`echo $v | cut -d. -f 2` if test $maj -gt 3 -o '(' $maj -eq 3 -a $min -ge 81 ')'; then this_make_okay=1 make_okay=1 fi fi if test "$this_make_okay" = "1"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi done if test "$make_okay" = "0"; then MISSING_MAKE_381=1 ISSUE_WARNINGS=1 fi GENDEPS=0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for whether $CC supports -MD -MF x.dep -MP" >&5 $as_echo_n "checking for whether $CC supports -MD -MF x.dep -MP... " >&6; } oCFLAGS=$CFLAGS rm -f x.dep CFLAGS="$CFLAGS -MD -MF x.dep -MP" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE* a = stdout ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : qpdf_DEPFLAGS=yes else qpdf_DEPFLAGS=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS=$oCFLAGS if test "$qpdf_DEPFLAGS" = "yes"; then if ! grep stdio.h x.dep >/dev/null 2>&1; then qpdf_DEPFLAGS=no fi fi rm -f x.dep if test "$qpdf_DEPFLAGS" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } GENDEPS=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking which build rules to use" >&5 $as_echo_n "checking which build rules to use... " >&6; } # Check whether --with-buildrules was given. if test "${with_buildrules+set}" = set; then : withval=$with_buildrules; BUILDRULES=$withval else BUILDRULES=libtool fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BUILDRULES" >&5 $as_echo "$BUILDRULES" >&6; } qpdf_USE_EXTRA_WARNINGS=0 if test "$BUILDRULES" = "msvc"; then try_flags="-w14996" else try_flags="-Wall" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for whether $CC supports $try_flags" >&5 $as_echo_n "checking for whether $CC supports $try_flags... " >&6; } oCFLAGS=$CFLAGS CFLAGS="$CFLAGS $try_flags" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { int a = 1; int b = a; a = b; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : qpdf_USE_EXTRA_WARNINGS=1 else qpdf_USE_EXTRA_WARNINGS=0 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS=$oCFLAGS if test "$qpdf_USE_EXTRA_WARNINGS" = "1"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } WFLAGS="$try_flags" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$BUILDRULES" != "msvc"; then qpdf_USE_EXTRA_WARNINGS=0 try_flags="-Wold-style-cast" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for whether $CXX supports $try_flags" >&5 $as_echo_n "checking for whether $CXX supports $try_flags... " >&6; } oCXXFLAGS=$CXXFLAGS CXXFLAGS="$CXXFLAGS $try_flags" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { int a = 1; int b = a; a = b; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : qpdf_USE_EXTRA_WARNINGS=1 else qpdf_USE_EXTRA_WARNINGS=0 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CXXFLAGS=$oCXXFLAGS if test "$qpdf_USE_EXTRA_WARNINGS" = "1"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } CXXWFLAGS="$try_flags" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test "$BUILDRULES" = "msvc"; then try_flags=-FS { $as_echo "$as_me:${as_lineno-$LINENO}: checking for whether $CC supports $try_flags" >&5 $as_echo_n "checking for whether $CC supports $try_flags... " >&6; } oCFLAGS=$CFLAGS CFLAGS="$CFLAGS $try_flags" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { int a = 1; int b = a; a = b; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : qpdf_USE_FS=1 else qpdf_USE_FS=0 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test "$qpdf_USE_FS" = "1"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } CXXFLAGS="$CXXFLAGS $try_flags" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } CFLAGS=$oCFLAGS fi fi if test "$BUILDRULES" = "msvc"; then try_flags="-WX" else try_flags="-Werror" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for whether to use $try_flags" >&5 $as_echo_n "checking for whether to use $try_flags... " >&6; } # Check whether --enable-werror was given. if test "${enable_werror+set}" = set; then : enableval=$enable_werror; if test "$enableval" = "yes"; then qpdf_USE_WERROR=1; else qpdf_USE_WERROR=0; fi else qpdf_USE_WERROR=0 fi if test "$qpdf_USE_WERROR" = "1"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } WFLAGS="$WFLAGS $try_flags" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Check whether --enable-test-compare-images was given. if test "${enable_test_compare_images+set}" = set; then : enableval=$enable_test_compare_images; if test "$enableval" = "no"; then QPDF_SKIP_TEST_COMPARE_IMAGES=1 else QPDF_SKIP_TEST_COMPARE_IMAGES=0 fi else QPDF_SKIP_TEST_COMPARE_IMAGES=1 fi # Check whether --enable-show-failed-test-output was given. if test "${enable_show_failed_test_output+set}" = set; then : enableval=$enable_show_failed_test_output; if test "$enableval" = "no"; then SHOW_FAILED_TEST_OUTPUT=0 else SHOW_FAILED_TEST_OUTPUT=1 fi else SHOW_FAILED_TEST_OUTPUT=0 fi # Check whether --with-docbook-xsl was given. if test "${with_docbook_xsl+set}" = set; then : withval=$with_docbook_xsl; DOCBOOK_XSL=$withval else DOCBOOK_XSL=/usr/share/xml/docbook/stylesheet/nwalsh fi DOCBOOK_XHTML= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xml to xhtml docbook stylesheets" >&5 $as_echo_n "checking for xml to xhtml docbook stylesheets... " >&6; } if test -f "$DOCBOOK_XSL/xhtml/docbook.xsl"; then DOCBOOK_XHTML="$DOCBOOK_XSL/xhtml/docbook.xsl" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOCBOOK_XHTML" >&5 $as_echo "$DOCBOOK_XHTML" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi DOCBOOK_FO= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xml to fo docbook stylesheets" >&5 $as_echo_n "checking for xml to fo docbook stylesheets... " >&6; } if test -f "$DOCBOOK_XSL/fo/docbook.xsl"; then DOCBOOK_FO="$DOCBOOK_XSL/fo/docbook.xsl" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOCBOOK_FO" >&5 $as_echo "$DOCBOOK_FO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi DOCBOOKX_DTD= # Check whether --with-docbookx-dtd was given. if test "${with_docbookx_dtd+set}" = set; then : withval=$with_docbookx_dtd; DOCBOOKX_DTD=$withval else DOCBOOKX_DTD=/usr/share/xml/docbook/schema/dtd/4/docbookx.dtd fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for docbook 4.x xml DTD" >&5 $as_echo_n "checking for docbook 4.x xml DTD... " >&6; } if test -f "$DOCBOOKX_DTD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOCBOOKX_DTD" >&5 $as_echo "$DOCBOOKX_DTD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "fop", so it can be a program name with args. set dummy fop; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_FOP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$FOP"; then ac_cv_prog_FOP="$FOP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_FOP="fop" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi FOP=$ac_cv_prog_FOP if test -n "$FOP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FOP" >&5 $as_echo "$FOP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "xsltproc", so it can be a program name with args. set dummy xsltproc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_XSLTPROC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$XSLTPROC"; then ac_cv_prog_XSLTPROC="$XSLTPROC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_XSLTPROC="xsltproc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi XSLTPROC=$ac_cv_prog_XSLTPROC if test -n "$XSLTPROC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XSLTPROC" >&5 $as_echo "$XSLTPROC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "xmllint", so it can be a program name with args. set dummy xmllint; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_XMLLINT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$XMLLINT"; then ac_cv_prog_XMLLINT="$XMLLINT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_XMLLINT="xmllint" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi XMLLINT=$ac_cv_prog_XMLLINT if test -n "$XMLLINT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XMLLINT" >&5 $as_echo "$XMLLINT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Check whether --enable-doc-maintenance was given. if test "${enable_doc_maintenance+set}" = set; then : enableval=$enable_doc_maintenance; if test "$enableval" = "yes"; then doc_default=1; else doc_default=0; fi else doc_default=0 fi BUILD_HTML=0 # Check whether --enable-html-doc was given. if test "${enable_html_doc+set}" = set; then : enableval=$enable_html_doc; if test "$enableval" = "yes"; then BUILD_HTML=1; else BUILD_HTML=0; fi else BUILD_HTML=$doc_default fi BUILD_PDF=0 # Check whether --enable-pdf-doc was given. if test "${enable_pdf_doc+set}" = set; then : enableval=$enable_pdf_doc; if test "$enableval" = "yes"; then BUILD_PDF=1; else BUILD_PDF=0; fi else BUILD_PDF=$doc_default fi VALIDATE_DOC=0 # Check whether --enable-validate-doc was given. if test "${enable_validate_doc+set}" = set; then : enableval=$enable_validate_doc; if test "$enableval" = "yes"; then VALIDATE_DOC=1; else VALIDATE_DOC=0; fi else VALIDATE_DOC=$doc_default fi if test "$VALIDATE_DOC" = "1"; then if test "$XMLLINT" = ""; then MISSING_XMLLINT=1 MISSING_ANY=1 fi fi if test "$BUILD_HTML" = "1"; then if test "$XSLTPROC" = ""; then MISSING_XSLTPROC=1 MISSING_ANY=1 fi if test "$DOCBOOK_XHTML" = ""; then MISSING_DOCBOOK_XHTML=1 MISSING_ANY=1 fi fi if test "$BUILD_PDF" = "1"; then if test "$XSLTPROC" = ""; then MISSING_XSLTPROC=1 MISSING_ANY=1 fi if test "$DOCBOOK_FO" = ""; then MISSING_DOCBOOK_FO=1 MISSING_ANY=1 fi if test "$FOP" = ""; then MISSING_FOP=1 MISSING_ANY=1 fi fi if test "$MISSING_ANY" = "1"; then ISSUE_WARNINGS=1 fi if test "$ISSUE_WARNINGS" = "1"; then echo "" echo "" fi if test "$MISSING_MAKE_381" = "1"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: gnu make >= 3.81 is required" >&5 $as_echo "$as_me: WARNING: gnu make >= 3.81 is required" >&2;} fi if test "$MISSING_ZLIB_H" = "1"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to find required header zlib.h" >&5 $as_echo "$as_me: WARNING: unable to find required header zlib.h" >&2;} fi if test "$MISSING_ZLIB" = "1"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to find required library z (or zlib)" >&5 $as_echo "$as_me: WARNING: unable to find required library z (or zlib)" >&2;} fi if test "$MISSING_JPEG_H" = "1"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to find required header jpeglib.h" >&5 $as_echo "$as_me: WARNING: unable to find required header jpeglib.h" >&2;} fi if test "$MISSING_JPEG" = "1"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to find required library jpeg" >&5 $as_echo "$as_me: WARNING: unable to find required library jpeg" >&2;} fi if test "$MISSING_DOCBOOK_FO" = "1"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: docbook fo stylesheets are required to build PDF documentation" >&5 $as_echo "$as_me: WARNING: docbook fo stylesheets are required to build PDF documentation" >&2;} fi if test "$MISSING_DOCBOOK_XHTML" = "1"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: docbook xhmtl stylesheets are required to build HTML documentation" >&5 $as_echo "$as_me: WARNING: docbook xhmtl stylesheets are required to build HTML documentation" >&2;} fi if test "$MISSING_FOP" = "1"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: apache fop is required to build PDF documentation" >&5 $as_echo "$as_me: WARNING: apache fop is required to build PDF documentation" >&2;} fi if test "$MISSING_XMLLINT" = "1"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: xmllint is required to validate documentation" >&5 $as_echo "$as_me: WARNING: xmllint is required to validate documentation" >&2;} fi if test "$MISSING_XSLTPROC" = "1"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: xsltproc is required to build documentation" >&5 $as_echo "$as_me: WARNING: xsltproc is required to build documentation" >&2;} fi if test "$ISSUE_WARNINGS" = "1"; then echo "" echo "" fi if test "$MISSING_ANY" = "1"; then as_fn_error $? "some required prerequisites were not found" "$LINENO" 5 fi # Do this last so it doesn't interfere with other tests. if test "$USE_EXTERNAL_LIBS" = "1"; then # Don't actually check for the presence of this -- we document that # the user can run this and then edit autoconf.mk if they have too # much trouble getting it to work with a different compiler. CPPFLAGS="$CPPFLAGS -Iexternal-libs/include" LDFLAGS="$LDFLAGS -Lexternal-libs/lib-$BUILDRULES$WINDOWS_WORDSIZE" LIBS="$LIBS -lz -ljpeg" fi cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by qpdf $as_me 8.0.2, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ qpdf config.status 8.0.2 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`' predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`' postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`' predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`' postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`' compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`' LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`' reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`' reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`' old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`' GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`' archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`' module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`' allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`' hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`' hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`' hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`' inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`' link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`' always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`' export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`' exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`' include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`' prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`' postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`' file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`' hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`' compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`' predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`' postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`' predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`' postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`' compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } # Quote evaled strings. for var in AS \ DLLTOOL \ OBJDUMP \ SHELL \ ECHO \ PATH_SEPARATOR \ SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ archiver_list_spec \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_import \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ lt_cv_nm_interface \ nm_file_list_spec \ lt_cv_truncate_bin \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ MANIFEST_TOOL \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_separator \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ install_override_mode \ finish_eval \ old_striplib \ striplib \ compiler_lib_search_dirs \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ LD_CXX \ reload_flag_CXX \ compiler_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_static_CXX \ lt_cv_prog_compiler_c_o_CXX \ export_dynamic_flag_spec_CXX \ whole_archive_flag_spec_CXX \ compiler_needs_object_CXX \ with_gnu_ld_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_separator_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX \ file_list_spec_CXX \ compiler_lib_search_dirs_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ configure_time_dlsearch_path \ configure_time_lt_sys_library_path \ reload_cmds_CXX \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ export_symbols_cmds_CXX \ prelink_cmds_CXX \ postlink_cmds_CXX; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done ac_aux_dir='$ac_aux_dir' # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' RM='$RM' ofile='$ofile' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "autoconf.mk") CONFIG_FILES="$CONFIG_FILES autoconf.mk" ;; "manual/html.xsl") CONFIG_FILES="$CONFIG_FILES manual/html.xsl" ;; "manual/print.xsl") CONFIG_FILES="$CONFIG_FILES manual/print.xsl" ;; "libqpdf.pc") CONFIG_FILES="$CONFIG_FILES libqpdf.pc" ;; "libqpdf.map") CONFIG_FILES="$CONFIG_FILES libqpdf.map" ;; "libqpdf/qpdf/qpdf-config.h") CONFIG_HEADERS="$CONFIG_HEADERS libqpdf/qpdf/qpdf-config.h" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "libtool":C) # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi cfgfile=${ofile}T trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # Generated automatically by $as_me ($PACKAGE) $VERSION # NOTE: Changes made to this file will be lost: look at ltmain.sh. # Provide generalized library-building support services. # Written by Gordon Matzigkeit, 1996 # Copyright (C) 2014 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool 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 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program or library that is built # using GNU Libtool, you may include this file under the same # distribution terms that you use for the rest of that program. # # GNU Libtool 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, see . # The names of the tagged configurations supported by this script. available_tags='CXX ' # Configured defaults for sys_lib_dlsearch_path munging. : \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} # ### BEGIN LIBTOOL CONFIG # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Assembler program. AS=$lt_AS # DLL creation program. DLLTOOL=$lt_DLLTOOL # Object dumper program. OBJDUMP=$lt_OBJDUMP # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # Shared archive member basename,for filename based shared library versioning on AIX. shared_archive_member_spec=$shared_archive_member_spec # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that protects backslashes. ECHO=$lt_ECHO # The PATH separator for the build system. PATH_SEPARATOR=$lt_PATH_SEPARATOR # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # convert \$build file names to \$host format. to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method = "file_magic". file_magic_cmd=$lt_file_magic_cmd # How to find potential files when deplibs_check_method = "file_magic". file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR # Flags to create an archive. AR_FLAGS=$lt_AR_FLAGS # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Whether to use a lock for old archive extraction. lock_old_archive_extraction=$lock_old_archive_extraction # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm into a list of symbols to manually relocate. global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # The name lister interface. nm_interface=$lt_lt_cv_nm_interface # Specify filename containing input files for \$NM. nm_file_list_spec=$lt_nm_file_list_spec # The root where to search for dependent libraries,and where our libraries should be installed. lt_sysroot=$lt_sysroot # Command to truncate a binary pipe. lt_truncate_bin=$lt_lt_cv_truncate_bin # The name of the directory that contains temporary libtool files. objdir=$objdir # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Manifest tool. MANIFEST_TOOL=$lt_MANIFEST_TOOL # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Permission mode override for installation of shared libraries. install_override_mode=$lt_install_override_mode # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Detected run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path # Explicit LT_SYS_LIBRARY_PATH set during ./configure time. configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \$shlibpath_var if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects postdep_objects=$lt_postdep_objects predeps=$lt_predeps postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # ### END LIBTOOL CONFIG _LT_EOF cat <<'_LT_EOF' >> "$cfgfile" # ### BEGIN FUNCTIONS SHARED WITH CONFIGURE # func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x$2 in x) ;; *:) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" ;; x:*) eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" ;; *::*) eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" ;; *) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" ;; esac } # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in $*""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } # ### END FUNCTIONS SHARED WITH CONFIGURE _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain=$ac_aux_dir/ltmain.sh # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" cat <<_LT_EOF >> "$ofile" # ### BEGIN LIBTOOL TAG CONFIG: CXX # The linker used to build libraries. LD=$lt_LD_CXX # How to create reloadable object files. reload_flag=$lt_reload_flag_CXX reload_cmds=$lt_reload_cmds_CXX # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds_CXX # A language specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU compiler? with_gcc=$GCC_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object_CXX # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld_CXX # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \$shlibpath_var if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute_CXX # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic_CXX # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath_CXX # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds_CXX # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds_CXX # Specify filename containing input files. file_list_spec=$lt_file_list_spec_CXX # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects_CXX postdep_objects=$lt_postdep_objects_CXX predeps=$lt_predeps_CXX postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # ### END LIBTOOL TAG CONFIG: CXX _LT_EOF ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi qpdf-8.0.2/libqpdf.pc.in0000644000064100006410000000036513247541377013124 0ustar ejbejbprefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ Name: libqpdf Description: PDF transformation library Version: @PACKAGE_VERSION@ Requires.private: zlib, libjpeg Libs: -L${libdir} -lqpdf Cflags: -I${includedir} qpdf-8.0.2/libtests/0000755000064100006410000000000013247543020012362 5ustar ejbejbqpdf-8.0.2/libtests/ascii85.cc0000644000064100006410000000107713247541377014160 0ustar ejbejb#include #include #include #include int main() { Pl_StdioFile out("stdout", stdout); Pl_ASCII85Decoder decode("decode", &out); try { unsigned char buf[10000]; bool done = false; while (! done) { size_t len = fread(buf, 1, sizeof(buf), stdin); if (len <= 0) { done = true; } else { decode.write(buf, len); } } decode.finish(); } catch (std::exception& e) { std::cerr << e.what() << std::endl; exit(2); } return 0; } qpdf-8.0.2/libtests/concatenate.cc0000644000064100006410000000226513247541377015177 0ustar ejbejb#include #include #include #include #include #include static void pipeStringAndFinish(Pipeline* p, std::string const& str) { p->write(QUtil::unsigned_char_pointer(str), str.length()); p->finish(); } int main(int argc, char* argv[]) { Pl_Buffer b1("compressed"); Pl_Flate deflate("compress", &b1, Pl_Flate::a_deflate); Pl_Concatenate concat("concat", &deflate); pipeStringAndFinish(&concat, "-one-"); pipeStringAndFinish(&concat, "-two-"); concat.manualFinish(); PointerHolder b1_buf = b1.getBuffer(); Pl_Buffer b2("uncompressed"); Pl_Flate inflate("uncompress", &b2, Pl_Flate::a_inflate); inflate.write(b1_buf->getBuffer(), b1_buf->getSize()); inflate.finish(); PointerHolder b2_buf = b2.getBuffer(); std::string result(reinterpret_cast(b2_buf->getBuffer()), b2_buf->getSize()); if (result == "-one--two-") { std::cout << "concatenate test passed" << std::endl; } else { std::cout << "concatenate test failed: " << result << std::endl; } return 0; } qpdf-8.0.2/libtests/build.mk0000644000064100006410000000202613247541377014027 0ustar ejbejbBINS_libtests = \ aes \ ascii85 \ bits \ buffer \ concatenate \ dct_compress \ dct_uncompress \ flate \ hex \ input_source \ lzw \ md5 \ pointer_holder \ predictors \ qutil \ random \ rc4 \ runlength \ sha2 TARGETS_libtests = $(foreach B,$(BINS_libtests),libtests/$(OUTPUT_DIR)/$(call binname,$(B))) $(TARGETS_libtests): $(TARGETS_libqpdf) INCLUDES_libtests = include libqpdf TC_SRCS_libtests = $(wildcard libqpdf/*.cc) $(wildcard libtests/*.cc) \ libqpdf/bits.icc # ----- $(foreach B,$(BINS_libtests),$(eval \ OBJS_$(B) = $(call src_to_obj,libtests/$(B).cc))) ifeq ($(GENDEPS),1) -include $(foreach B,$(BINS_libtests),$(call obj_to_dep,$(OBJS_$(B)))) endif $(foreach B,$(BINS_libtests),$(eval \ $(OBJS_$(B)): libtests/$(OUTPUT_DIR)/%.$(OBJ): libtests/$(B).cc ; \ $(call compile,libtests/$(B).cc,$(INCLUDES_libtests)))) $(foreach B,$(BINS_libtests),$(eval \ libtests/$(OUTPUT_DIR)/$(call binname,$(B)): $(OBJS_$(B)) ; \ $(call makebin,$(OBJS_$(B)),$$@,$(LDFLAGS_libqpdf) $(LDFLAGS),$(LIBS_libqpdf) $(LIBS)))) qpdf-8.0.2/libtests/buffer.cc0000644000064100006410000000354513247541377014166 0ustar ejbejb#include #include #include #include #include #include #include static unsigned char* uc(char const* s) { return QUtil::unsigned_char_pointer(s); } int main() { try { Pl_Discard discard; Pl_Count count("count", &discard); Pl_Buffer bp1("bp1", &count); bp1.write(uc("12345"), 5); bp1.write(uc("67890"), 5); bp1.finish(); std::cout << "count: " << count.getCount() << std::endl; bp1.write(uc("abcde"), 5); bp1.write(uc("fghij"), 6); bp1.finish(); std::cout << "count: " << count.getCount() << std::endl; Buffer* b = bp1.getBuffer(); std::cout << "size: " << b->getSize() << std::endl; std::cout << "data: " << b->getBuffer() << std::endl; delete b; bp1.write(uc("qwert"), 5); bp1.write(uc("yuiop"), 6); bp1.finish(); std::cout << "count: " << count.getCount() << std::endl; b = bp1.getBuffer(); std::cout << "size: " << b->getSize() << std::endl; std::cout << "data: " << b->getBuffer() << std::endl; delete b; Pl_Buffer bp2("bp2"); bp2.write(uc("moo"), 3); bp2.write(uc("quack"), 6); try { delete bp2.getBuffer(); } catch (std::exception& e) { std::cout << e.what() << std::endl; } bp2.finish(); b = bp2.getBuffer(); std::cout << "size: " << b->getSize() << std::endl; std::cout << "data: " << b->getBuffer() << std::endl; delete b; unsigned char lbuf[10]; Buffer b1(lbuf, 10); if (! ((b1.getBuffer() == lbuf) && (b1.getSize() == 10))) { throw std::logic_error("hand-created buffer is not as expected"); } Pl_Buffer bp3("bp3"); b = bp3.getBuffer(); std::cout << "size: " << b->getSize() << std::endl; } catch (std::exception& e) { std::cout << "unexpected exception: " << e.what() << std::endl; exit(2); } std::cout << "done" << std::endl; return 0; } qpdf-8.0.2/libtests/predictors.cc0000644000064100006410000000445613247541377015075 0ustar ejbejb#include #include #include #include #include #include #include #include #include void run(char const* filename, char const* filter, bool encode, unsigned int columns, int bits_per_sample, int samples_per_pixel) { FILE* in = QUtil::safe_fopen(filename, "rb"); FILE* o1 = QUtil::safe_fopen("out", "wb"); Pipeline* out = new Pl_StdioFile("out", o1); Pipeline* pl = 0; if (strcmp(filter, "png") == 0) { pl = new Pl_PNGFilter( "png", out, encode ? Pl_PNGFilter::a_encode : Pl_PNGFilter::a_decode, columns, samples_per_pixel, bits_per_sample); } else if (strcmp(filter, "tiff") == 0) { pl = new Pl_TIFFPredictor( "png", out, encode ? Pl_TIFFPredictor::a_encode : Pl_TIFFPredictor::a_decode, columns, samples_per_pixel, bits_per_sample); } else { std::cerr << "unknown filter " << filter << std::endl; exit(2); } assert((2 * (columns + 1)) < 1024); unsigned char buf[1024]; size_t len; while (true) { len = fread(buf, 1, (2 * columns) + 1, in); if (len == 0) { break; } pl->write(buf, len); len = fread(buf, 1, 1, in); if (len == 0) { break; } pl->write(buf, len); len = fread(buf, 1, 1, in); if (len == 0) { break; } pl->write(buf, len); } pl->finish(); delete pl; delete out; fclose(o1); fclose(in); std::cout << "done" << std::endl; } int main(int argc, char* argv[]) { if (argc != 7) { std::cerr << "Usage: predictor {png|tiff} {en,de}code filename" << " columns samples-per-pixel bits-per-sample" << std::endl; exit(2); } char* filter = argv[1]; bool encode = (strcmp(argv[2], "encode") == 0); char* filename = argv[3]; int columns = QUtil::string_to_int(argv[4]); int samples_per_pixel = QUtil::string_to_int(argv[5]); int bits_per_sample = QUtil::string_to_int(argv[6]); try { run(filename, filter, encode, columns, bits_per_sample, samples_per_pixel); } catch (std::exception& e) { std::cout << e.what() << std::endl; } return 0; } qpdf-8.0.2/libtests/Makefile0000644000064100006410000000003113247541377014031 0ustar ejbejbinclude ../make/proxy.mk qpdf-8.0.2/libtests/qutil.cc0000644000064100006410000002126613247541377014053 0ustar ejbejb#include #include #include #include #include #include #include #include #include #ifdef _WIN32 # include #else # include #endif template void test_to_number(char const* str, int_T wanted, bool error, int_T (*fn)(char const*)) { bool threw = false; bool worked = false; int_T result = 0; try { result = fn(str); worked = (wanted == result); } catch (std::runtime_error) { threw = true; } if (threw) { if (error) { std::cout << str << " to int threw: PASSED" << std::endl; } else { std::cout << str << " to int threw but wanted " << wanted << std::endl; } } else { if (worked) { std::cout << str << " to int: PASSED" << std::endl; } else { std::cout << str << " to int failed; got " << result << std::endl; } } } void test_to_int(char const* str, int wanted, bool error) { test_to_number(str, wanted, error, QUtil::string_to_int); } void test_to_ll(char const* str, long long wanted, bool error) { test_to_number(str, wanted, error, QUtil::string_to_ll); } void string_conversion_test() { std::cout << QUtil::int_to_string(16059) << std::endl << QUtil::int_to_string(16059, 7) << std::endl << QUtil::int_to_string(16059, -7) << std::endl << QUtil::double_to_string(3.14159) << std::endl << QUtil::double_to_string(3.14159, 3) << std::endl << QUtil::double_to_string(1000.123, -1024) << std::endl << QUtil::double_to_string(.1234, 5) << std::endl << QUtil::double_to_string(.0001234, 5) << std::endl << QUtil::double_to_string(.123456, 5) << std::endl << QUtil::double_to_string(.000123456, 5) << std::endl << QUtil::int_to_string_base(16059, 10) << std::endl << QUtil::int_to_string_base(16059, 8) << std::endl << QUtil::int_to_string_base(16059, 16) << std::endl; std::string embedded_null = "one"; embedded_null += '\0'; embedded_null += "two"; std::cout << embedded_null.c_str() << std::endl; std::cout << embedded_null.length() << std::endl; char* tmp = QUtil::copy_string(embedded_null); if (memcmp(tmp, embedded_null.c_str(), 7) == 0) { std::cout << "compare okay" << std::endl; } else { std::cout << "compare failed" << std::endl; } delete [] tmp; std::string int_max_str = QUtil::int_to_string(INT_MAX); std::string int_min_str = QUtil::int_to_string(INT_MIN); long long int_max_plus_1 = static_cast(INT_MAX) + 1; long long int_min_minus_1 = static_cast(INT_MIN) - 1; std::string int_max_plus_1_str = QUtil::int_to_string(int_max_plus_1); std::string int_min_minus_1_str = QUtil::int_to_string(int_min_minus_1); test_to_int(int_min_str.c_str(), INT_MIN, false); test_to_int(int_max_str.c_str(), INT_MAX, false); test_to_int(int_max_plus_1_str.c_str(), 0, true); test_to_int(int_min_minus_1_str.c_str(), 0, true); test_to_int("9999999999999999999999999", 0, true); test_to_ll(int_max_plus_1_str.c_str(), int_max_plus_1, false); test_to_ll(int_min_minus_1_str.c_str(), int_min_minus_1, false); test_to_ll("99999999999999999999999999999999999999999999999999", 0, true); } void os_wrapper_test() { try { std::cout << "before remove" << std::endl; QUtil::os_wrapper("remove file", remove("/this/file/does/not/exist")); std::cout << "after remove" << std::endl; } catch (std::runtime_error& s) { std::cout << "exception: " << s.what() << std::endl; } } void fopen_wrapper_test() { try { std::cout << "before fopen" << std::endl; FILE* f = QUtil::safe_fopen("/this/file/does/not/exist", "r"); std::cout << "after fopen" << std::endl; (void) fclose(f); } catch (std::runtime_error& s) { std::cout << "exception: " << s.what() << std::endl; } } void getenv_test() { std::string val; std::cout << "IN_TESTSUITE: " << QUtil::get_env("IN_TESTSUITE", &val) << ": " << val << std::endl; // Hopefully this environment variable is not defined. std::cout << "HAGOOGAMAGOOGLE: " << QUtil::get_env("HAGOOGAMAGOOGLE") << std::endl; } static void print_utf8(unsigned long val) { std::string result = QUtil::toUTF8(val); std::cout << "0x" << QUtil::int_to_string_base(val, 16) << " ->"; if (val < 0xfffe) { std::cout << " " << result; } else { // Emacs has trouble with utf-8 encoding files with characters // outside the 16-bit portion, so just show the character // values. for (std::string::iterator iter = result.begin(); iter != result.end(); ++iter) { std::cout << " " << QUtil::int_to_string_base( static_cast(static_cast(*iter)), 16, 2); } } std::cout << std::endl; } void to_utf8_test() { print_utf8(0x41UL); print_utf8(0xF7UL); print_utf8(0x3c0UL); print_utf8(0x16059UL); print_utf8(0x7fffffffUL); try { print_utf8(0x80000000UL); } catch (std::runtime_error& e) { std::cout << "0x80000000: " << e.what() << std::endl; } } void print_whoami(char const* str) { PointerHolder dup(true, QUtil::copy_string(str)); std::cout << QUtil::getWhoami(dup.getPointer()) << std::endl; } void get_whoami_test() { print_whoami("a/b/c/quack1"); print_whoami("a/b/c/quack2.exe"); print_whoami("a\\b\\c\\quack3"); print_whoami("a\\b\\c\\quack4.exe"); } void assert_same_file(char const* file1, char const* file2, bool expected) { bool actual = QUtil::same_file(file1, file2); std::cout << "file1: -" << (file1 ? file1 : "(null)") << "-, file2: -" << (file2 ? file2 : "(null)") << "-; same: " << actual << ": " << ((actual == expected) ? "PASS" : "FAIL") << std::endl; } void same_file_test() { try { fclose(QUtil::safe_fopen("qutil.out", "r")); fclose(QUtil::safe_fopen("other-file", "r")); } catch (std::exception) { std::cout << "same_file_test expects to have qutil.out and other-file" " exist in the current directory\n"; return; } assert_same_file("qutil.out", "./qutil.out", true); assert_same_file("qutil.out", "qutil.out", true); assert_same_file("qutil.out", "other-file", false); assert_same_file("qutil.out", "", false); assert_same_file("qutil.out", 0, false); assert_same_file("", "qutil.out", false); } void read_lines_from_file_test() { std::list lines = QUtil::read_lines_from_file("other-file"); for (std::list::iterator iter = lines.begin(); iter != lines.end(); ++iter) { std::cout << *iter << std::endl; } } void assert_hex_encode(std::string const& input, std::string const& expected) { std::string actual = QUtil::hex_encode(input); if (expected != actual) { std::cout << "hex encode " << input << ": expected = " << expected << "; actual = " << actual << std::endl; } } void assert_hex_decode(std::string const& input, std::string const& expected) { std::string actual = QUtil::hex_decode(input); if (expected != actual) { std::cout << "hex encode " << input << ": expected = " << expected << "; actual = " << actual << std::endl; } } void hex_encode_decode_test() { std::cout << "begin hex encode/decode\n"; assert_hex_encode("", ""); assert_hex_encode("Potato", "506f7461746f"); std::string with_null("a\367" "00w"); with_null[3] = '\0'; assert_hex_encode(with_null, "61f7300077"); assert_hex_decode("", ""); assert_hex_decode("61F7-3000-77", with_null); assert_hex_decode("41455", "AEP"); std::cout << "end hex encode/decode\n"; } int main(int argc, char* argv[]) { try { string_conversion_test(); std::cout << "----" << std::endl; os_wrapper_test(); std::cout << "----" << std::endl; fopen_wrapper_test(); std::cout << "----" << std::endl; getenv_test(); std::cout << "----" << std::endl; to_utf8_test(); std::cout << "----" << std::endl; get_whoami_test(); std::cout << "----" << std::endl; same_file_test(); std::cout << "----" << std::endl; read_lines_from_file_test(); std::cout << "----" << std::endl; hex_encode_decode_test(); } catch (std::exception& e) { std::cout << "unexpected exception: " << e.what() << std::endl; } return 0; } qpdf-8.0.2/libtests/libtests.testcov0000644000064100006410000000206513247541377015644 0ustar ejbejbignored-scope: qpdf Pl_LZWDecoder intermediate reset 0 Pl_LZWDecoder last was table size 0 Pl_ASCII85Decoder ignore space 0 Pl_ASCII85Decoder read z 0 Pl_ASCII85Decoder no-op flush 0 Pl_ASCII85Decoder partial flush 1 bits leftover 1 bits bit_offset 2 bits iterations 2 bits zero bits wanted 0 bits write iterations 2 bits write leftover 0 bits write pipeline 0 bits write zero bits 0 Pl_ASCIIHexDecoder ignore space 0 Pl_ASCIIHexDecoder no-op flush 0 Pl_ASCIIHexDecoder partial flush 1 InputSource read next block 1 InputSource find EOF 1 InputSource out of range 0 InputSource first char matched but not string 0 InputSource start_chars matched but not check 0 InputSource not enough bytes 0 InputSource findLast found more than one 0 InputSource found match at buf[0] 0 Pl_RunLength: switch to run 1 Pl_RunLength flush full buffer 1 Pl_RunLength flush empty buffer 0 Pl_DCT empty_pipeline_output_buffer 0 Pl_DCT term_pipeline_destination 0 Pl_PNGFilter decodeSub 0 Pl_PNGFilter decodeUp 0 Pl_PNGFilter decodeAverage 0 Pl_PNGFilter decodePaeth 0 Pl_TIFFPredictor processRow 1 qpdf-8.0.2/libtests/aes.cc0000644000064100006410000000707213247541377013464 0ustar ejbejb#include #include #include #include #include #include #include static void usage() { std::cerr << "Usage: aes options hex-key infile outfile" << std::endl << " -cbc -- disable CBC mode" << std::endl << " +cbc -- enable CBC mode" << std::endl << " -encrypt -- encrypt" << std::endl << " -decrypt -- decrypt CBC mode" << std::endl << " -zero-iv -- use zero initialization vector" << std::endl << " -static-iv -- use static initialization vector" << std::endl << " -no-padding -- disable padding" << std::endl << "Options must precede key and file names." << std::endl; exit(2); } int main(int argc, char* argv[]) { bool encrypt = true; bool cbc_mode = true; char* hexkey = 0; char* infilename = 0; char* outfilename = 0; bool zero_iv = false; bool static_iv = false; bool disable_padding = false; for (int i = 1; i < argc; ++i) { char* arg = argv[i]; if ((arg[0] == '-') || (arg[0] == '+')) { if (strcmp(arg, "-cbc") == 0) { cbc_mode = false; } else if (strcmp(arg, "+cbc") == 0) { cbc_mode = true; } else if (strcmp(arg, "-decrypt") == 0) { encrypt = false; } else if (strcmp(arg, "-encrypt") == 0) { encrypt = true; } else if (strcmp(arg, "-zero-iv") == 0) { zero_iv = true; } else if (strcmp(arg, "-static-iv") == 0) { static_iv = true; } else if (strcmp(arg, "-no-padding") == 0) { disable_padding = true; } else { usage(); } } else if (argc == i + 3) { hexkey = argv[i]; infilename = argv[i+1]; outfilename = argv[i+2]; break; } else { usage(); } } if (outfilename == 0) { usage(); } unsigned int hexkeylen = strlen(hexkey); unsigned int keylen = hexkeylen / 2; FILE* infile = QUtil::safe_fopen(infilename, "rb"); FILE* outfile = QUtil::safe_fopen(outfilename, "wb"); unsigned char* key = new unsigned char[keylen]; for (unsigned int i = 0; i < strlen(hexkey); i += 2) { char t[3]; t[0] = hexkey[i]; t[1] = hexkey[i + 1]; t[2] = '\0'; long val = strtol(t, 0, 16); key[i/2] = static_cast(val); } Pl_StdioFile* out = new Pl_StdioFile("stdout", outfile); Pl_AES_PDF* aes = new Pl_AES_PDF("aes_128_cbc", out, encrypt, key, keylen); delete [] key; key = 0; if (! cbc_mode) { aes->disableCBC(); } if (zero_iv) { aes->useZeroIV(); } else if (static_iv) { aes->useStaticIV(); } if (disable_padding) { aes->disablePadding(); } // 16 < buffer size, buffer_size is not a multiple of 8 for testing unsigned char buf[83]; bool done = false; while (! done) { size_t len = fread(buf, 1, sizeof(buf), infile); if (len <= 0) { done = true; } else { aes->write(buf, len); } } aes->finish(); delete aes; delete out; fclose(infile); fclose(outfile); return 0; } qpdf-8.0.2/libtests/dct_uncompress.cc0000644000064100006410000000153413247541377015741 0ustar ejbejb#include #include #include #include #include #include #include int main(int argc, char* argv[]) { if (argc != 3) { std::cerr << "Usage: dct_uncompress infile outfile" << std::endl; exit(2); } char* infilename = argv[1]; char* outfilename = argv[2]; FILE* infile = QUtil::safe_fopen(infilename, "rb"); FILE* outfile = QUtil::safe_fopen(outfilename, "wb"); Pl_StdioFile out("stdout", outfile); unsigned char buf[100]; bool done = false; Pl_DCT dct("dct", &out); while (! done) { size_t len = fread(buf, 1, sizeof(buf), infile); if (len <= 0) { done = true; } else { dct.write(buf, len); } } dct.finish(); fclose(infile); fclose(outfile); return 0; } qpdf-8.0.2/libtests/qtest/0000755000064100006410000000000013247541377013537 5ustar ejbejbqpdf-8.0.2/libtests/qtest/lzw.test0000644000064100006410000000135113247541377015254 0ustar ejbejb#!/usr/bin/env perl require 5.008; BEGIN { $^W = 1; } use strict; chdir("lzw") or die "chdir testdir failed: $!\n"; require TestDriver; my $td = new TestDriver('lzw'); cleanup(); $td->runtest("decode: early code change", {$td->COMMAND => "lzw lzw1.in tmp"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check output", {$td->FILE => "tmp"}, {$td->FILE => "lzw1.out"}); $td->runtest("decode: no early code change", {$td->COMMAND => "lzw lzw2.in tmp --no-early-code-change"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check output", {$td->FILE => "tmp"}, {$td->FILE => "lzw2.out"}); cleanup(); $td->report(4); sub cleanup { unlink "tmp"; } qpdf-8.0.2/libtests/qtest/random.test0000644000064100006410000000050413247541377015717 0ustar ejbejb#!/usr/bin/env perl require 5.008; BEGIN { $^W = 1; } use strict; require TestDriver; my $td = new TestDriver('random'); $td->runtest("Random Data Providers", {$td->COMMAND => "random"}, {$td->STRING => "random: end of tests\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->report(1); qpdf-8.0.2/libtests/qtest/md5.test0000644000064100006410000000051613247541377015127 0ustar ejbejb#!/usr/bin/env perl require 5.008; BEGIN { $^W = 1; } use strict; chdir("md5") or die "chdir testdir failed: $!\n"; require TestDriver; my $td = new TestDriver('md5'); $td->runtest("md5", {$td->COMMAND => "md5"}, {$td->FILE => "md5.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->report(1); qpdf-8.0.2/libtests/qtest/dct/0000755000064100006410000000000013247541377014311 5ustar ejbejbqpdf-8.0.2/libtests/qtest/dct/big-rawdata0000644000064100006410000660000013247541377016420 0ustar ejbejbĿƿƿſ¼ýľý¼½ɿŲ~=84                       !  !$! &"&%"**'/)(-$"("&!$%)427 $!  !#"&$!(%")%#*(','%*+%,+$,& ' # # !$"!' %$! & %! &"!'%$*'&,&%+#"(%$*&%+('-&%+)(.'&,"!'#"*%$++)0$#+'&-)(/+*1)(0+*2,+3)(0*)1118''/*)1108219.-5.-5--421987?98@2191/810821:0/70.7.+4-+4*)2+*232:/.6/.743;:8C86@10876>22:33;12:44<22:22://700822;33<00:22=11;--744>11;11;--7//988B))3**4))3(&0�#"/32?.,9)$$-''1(""*"76=!!+"!  $&&$' ,($*+$#")+%(*))()*!!-)*'%###! " $ "%%&(&( *"!+$"." -#!.##.%!!! #!   !%$# ""!*&!'%#.(%0!*'#  !#$! #!"#"#<;Cŝ>9?          !                   ( !+ "-!+                     $) ) )!) )* *!"+#"+""-$$.%%,#$,#$,#$.$%0%%6+)B50K>43=/.8.,7++5..81/:/.9//900://8))3*)4+)4('0%%." +!*"!,'$%$!%'#!  ##$) !-!!,*!-*)+)%##%'%&() ", !* )()&$$%'#"$  !!#!!!#&'''() *'( * ) ,+'!#""!!!$&( *'# #!, *%(($#.!*$" "$%"#" "##%$!GGOŽƈ !      $#-!                           &* !* !+!"+!"+!"* !+!"+"$+"#,#$,#$+"#+"#-#$-#$-#$1&&9.*E85ODBtjh~}{}{~¼þÿÿ»ž»þK:?%)&& & (' $ % % % & & & ' ( ) ) ) ) + ++ -37;$@+'F4.H95J?>OCCRGFUJHUIIUIHXIIVHGVIHVKIUIGUGGUGFUGFWJIWIHZLKZLKZLK[MLZLJZLIZLKYMKYNLZPM[PM[OLZLJYLIVKHUJHQFDRGERGEQFDRGEQFDNDBPFDQGERHFSJGSJGWMKZPNZPNZTQ]VUbXYdXZcYZbYXcYXaWVRLIK<7D%>?CGJ N%Q-[5!b?+eK=dUO`URaVTcXWcXVdZWcYWcYWeZYdZXf[ZdYWcYWaWUbUSdURcTRcTScSRcROaOKaOLƾĿ¼¼ý¼¼ýýƽŮzy!             """ %%"()%,'%*/+1.)/" &$!(*&-*&- !"""*$#+"!(&$%"!!  $" '!& $ %!&%")&#*%")%")(%+*'-$!( $ !"      $$"!# %#"# %#"(! &"!'"!'"!'#"*#"*'&.,+3)(/%$,('/&%-&%--+4,)2*(0!''$-,)2/,5)&/+)1219.-5*)152;.+442:3/973<.+530:31:209.,531;,+5.,70.931<1/:42<10920931:53=54=10932=11;=10854<20;64?..8++4--7,+5/.8/.8..611:10:10:21;23<11:0/:<;FFFQ22;,,5009--7,,6--7**4,,622<,,6++4))2'(2"&/"%. *$#-#"+%$, '&%## &&" ##""& ",!$-"+",!#.')5$)4#. ".!-*)(%###%$"%)!!+!"."#/#%2##0 ,)!!-%!  "&*!!-"". +()%%#$%&%##$%$ !#$&#  "%$($.51; !*$%'&3$#/('&&# !  "#"%$##%%%!!)!!)'&",-3@@I44>209429%$)      " !" $  !$%"!     --8               ") !) !) !*!","#,#$,#$,#$.%&-$%-$%.%&-$%-$%-$%,"#+"#+!!,""3))913KCCyx|}~þ¿¿¿Ŀ½½üž¾f^_$''% % % % $ $ % $ # % % & & % & ' ' ( * ) ( + - /04:@#B*'C2.K<8N@20;.,7+*4-,7.,742=/-842=76@00:00:,,6++5--732=;8D42=22=..822=//9--8-,70.900:22>((4&&1&&0!", ","","!) '! (%!  &$$  !$%$##$ )!*"+!-$&2')5$)4(.6!#. ,*&%###$''%)"","",)$%/()4!".'+#!#$#$#'&&1!!-"".$$0*&%" !$&$$&'%"# ! !%&&'&&$#'&1"!,(%'%01/:))4'"","",&#""#"!     ###%$%!!#% (&!!)$!MOLPQK          !!#$  !               #) !)!!( )!*!"*!!)! +"",#$,#$-$%,#$,#$-$&-$%+"$+!") ) !/%&4-0>89sed||~{|ý½¿þ¾»žĽ¾Q@?# &% % $ $ $ $ $ # # $ $ % % % $ & ' ' ' ( ( ) ) * , - /49;>%!F0*L82P@;RDAWJFXKFUJFWKHYLI[LJZLIXJGXIFXJGYKGXJG[MJ[MJ\NK[MJZLJZLJYKJYKJZLK]ON]OMZLIWIFYKJVJHVIHTHFPECODBPECNCANCAODBPECRGEVKITIGUJHXMK[PN\RQ]SR^VT^WR_VRZPNREAE0+<;?EJJ#M(V0_;&cF9eRMeYWe[Ye[ZeZYaWU`XUbYWaYWbZXc[Yd\Zf^[g_\g_]ia_ia_ia_kcaldbldbmecpgeogeǿýýľžŽ¼¼¼ƽpimC:>-#&        !!"# %&#**%,'#*# '%!(&#*%!)!%" ''$,(%,*'. $!  "$#+#"*%%.%&0'(1//;('1*'0'%,$#)# ! (! &$ %# ! $#&(#+*&-,(/,(/*%+&"(! ""#$## %  #"!"! & % %$#)#"(! &)'-+)/'%+&$+)'-+(/$#)&%,%$*)(/(&-)(01/752<42=32:?;D72=42>33=66@+*41/:-+642=64?)'2*'30.90.9,+620;-,711;00:00;,+6,+6+)6.,8.,8.-9,,6++6+*4**4,,8,+7*(4.,8-+8(%3$#.!!+##-$$. ' ' '##   %%#$#&%%''"+ + ,"$0!#/!#/!$/')5%'2$%1 !-%$%#"#(*&**'&)!!,*$#%&')!!, +( *$$0##/!!-*%#!!!''$$%&&#!   $(((('($&**5%%1%%0')3+.7,-6!!+(%$%$"!!!"#!$%%$%%! !# ''%$('*           #  !!  & agyjn|         %'( ) ( )!)!)!*!"*!"*!"+"#+#!*"!+#"+#!)!* ) ( ,"#1*,826YPQ|z}z~½ĿÿĿ¿½ľĽž~@+))'$ $ # $ $$ # ! " " # $ $ $ $ % ( ' % % ( ( ) ) * , - .04:?"F*&P30S<:TC?WJDYMIWLHWLHZLI[MJYJGZKH[LIXIGXJGYKIXJGXJGZLI\NKZLIYKI[MK[MK[MK\NK\NKYKHXJGWIFUHGRGEPECODBODBMB@LA?MB@PECPECSHFSHFTIGVKIZOL[PO[QQ\RQ]TP]SQUJHL=8D(!>>BFL N$P+Y4`?+eJ>;IIGV54?..8..8..821;10:/.9('2))3,,6**4--7))311;))311;++6--7++5((2--7-,700:++4&&0,,6**4()3**4#"+%#-+)5&%0( * )&$  #"$&'#% ,'%#%0%'3#%1 ".!-$&3"$1')6"$0#%1$&2!#/''$'*#"&&$!!!$&&)'($$0##/"",""-!!-!!-)(('"!! "#%''%$$$%! !"#%&%%$$.$$.)&)!!+""-""-!",##-&&/(&$%&##$! ""$$%$%$!   ""! )                 %"  !   '( ) !) (!)!) *!!*!") ") "*!!+#!*" *" *" )!) ) ')!1)*734ECCzvq~}~|½ÿÿ¿þÿüľ|km/)$ " # # # $ % # ! " # # $ % $ $ % % & % % ' ' ( * * + , , - 047:E$ L/)K8/QB66@00:*+4++5+)4*)4,-733=22<..8''1--722<**4))2''1,,6'(1**2))1$$-$#.*)3((2%%/$$-$$.%$."",&%#!'! +"!."$0"$0('++(!-$'3$&2".'*6#%3#%2%'4!".""/$%1!!- ,)(&%""" !() *('((*!!,"",!!-!!- + *$ !$(&%%#$%"!! !!#$$$%1%&1)$%##/$$0 *(''$#&$%('%#$$#$#!    %"$$#%&%#  #%"$#!(,1?                 !""         !'( *!"*" *" )!+! *" *" )! ( *" -%#-#",#"-$"-#"+""* !(*0&'621>??hee~~{||½Ŀÿþ½ĿĿ½¿^OO(&# $ # # $ % % " " # $ % % $ $ $ $ $ % % ' ( ( ) ) ) ) ) ) , - .18= @)!E3+M;5SB>WHHWIGWIFWIFXIFYJGYJGXIGYKIWIFXJGXJGWIGYJIYJJWIIVHGXJGYKHZLIXJGXJGTIEQFDODAPEBODBMB@NCAMB@LA?NCAPECRGESHFTIGTIGTIGWMK[QM_RN`SOVJGM>:D+$=;ADIP"T&Z1 ^>0aLCfVQh\[h]\g]\e[ZdZYbXV_US`VTaWUaYVc[Xc[Yd][f^\g`^iaaibbjddjddlffnhhpjjrllrmmƿ¼ýý¼ý¼ƿſſŽö\YWMJOUPWJEI$                "!$    !!!!#!#  !!!!" % !!! &$#+%$,%$,%$+.-5+*2&%-$"!(('/108&%-" '! &&%#"* &%%#"!("!'$! !  #&"*"&"&,)/0,3,'.-(/-)/+&,&")# %" &   ! "$#! & %! &"!'#"(! &$"!'('-#"*"!( '#"*%$,$#+#"*#!*$#,('0.,7&%.&%.('/&%.*)2))2..8,,6+*4-+61/:,+5--7--7**4''1&&0,,610:44>,,6 *"",&&0)(3''1%%.##,('1'&0"",!!,""*#$,''$#!!&$'2$$1('5#%2"%1#%1( + +*!- ".&(4#%2"&2!$1"$1#$2"$1)##/"".'$%!!"$&%'""-""."",##-''&&%&%%'$"!  #''$$&#%# "#&!!+($ +,6-0:!#, *"".!!,)$##$""%'%$%&%#"!## !"   $#  "$$$!!)%#!  $'! (! ($                 "              "'( ) !*!!+! ,"!+! +! * )!*" -$"/%$-#"-#","!-#"-"$+!") )-#"3.+;;=UOT~~~~xx|~þĿ¾ĿĿ½ľ½Ŀ@35# &# $ $ # # $ "  !  " $ # $ $ $ $ % & % ' ( ( ' ' ' ) ( ' ' ( ) + -18>&C-&K73P@=TGCTIESHEUHGXJGWIFVHEWIGVHEVHEXJGXJHUHGTHFUIGWIGUGDWIFWIFWIFUHEQGCQFCPEBQFBPECNCALA?LA?LA?MB@MB@PECQFDTIGUIHVKIXMKYMLZLJXKHPE@G70>$8 <@EI"Q%W+[7#^D3^NDbVTe[Zh^]g]\e[Zd\ZbYXbXWcYXcZYc[Yc[Yc\Yc^[c_[f`_hbbjddjddlffmhinjipklrmouqrû¼Ǿ¼¼ƿĽôhegLJPTQXQPR@A>              " %! $ "   !$" % #"! $!  !!! % #" %'&+! '$#+"!(%$*'&.('.('/&%.,-5*-4&(/('/$ % % % %"!' ! !"" '%")'$+&#*)$+.(/,&-($+(%,! &! &$ !!"""$$#)! &"!'#"(%$*#"(#"("!*%$ '$#+%$,#"* '%%,#"*%%-&&0%%.%$.(&1&$/%#.#!,(&1)'2*)4&&0**4)'2*)3((2((222<--7..8**5''4((4))5,,7.-:+)6"!,%%/&&1! +!!*' )&$! %(!#.%(3&'4),9)-:$&3"#/ *!* )) ,"$0#%1 "/(+7%'3')5,/: !-(('!"#&&&'( )!!-""-&$"$$#$##$$"     #%%#%''&&$## "",+,7"#.''"","",!!+%"  "#####%&'$#$&&"!!! !""  "" '# &##$""#"  !# '#"* '% ,8J%4                                         #'( (!) !* *! +! ) ))!+#!-%#,#!,"!,"!+! +! +!!+! )* +! /(&423E@Dyqo|{zyxx¿ļ½½ÿ¼žý~py0"%% # # # # $ # !     ! " $ $ $ % & & & ' ' ' ' & ' ' ( ' ' ( ' ' ( ( * .3; B)$H5.L;5NB=PEASGDVJFVHEWIFWIFXJGWIFWJFXJGVJFTIETIETHEUGDWIFWIFUGDTGDOD@OEAPEAPEANCAMB@K@>K@>LA?LA?MB@PECQFDRGEVHFXJGXJG[LJYKJUGDJ=7A-&;7 ;@E K$R'X0\<)^G8_NGbUTf\[g]\e][d\Ze][f^\d\Zd\Zd\Zc[Yc[Yc[Yc^[e_]f_`gaalfflffmghpjlplmrnotpqvrsû¼ǾĿ¼¼ƿƽøompKJPOMSOOQTRUC@A                 #!#$!&!    !""$!!$)'+! !#! & %!!!#"#!"!'! & %" %%$*('/01959@7:@227)(/('/,-1+-1,,1('-" & %$! !" $!&'$+)%,,(/.+2'&,%$*#"(%$*"!'#!'" ' !""##"($"!'#"(%$*#"(#"( '&! '#"*#"*&%-&$! ($#+ '!!)'! ($#+#"*!(#!,"",%%/##-"",#!,&$/)(2((2$$.,,6..8&&011;,,8++7--9..:*)5,+7&%1#$/#"/#!, (&$"   &!!+$%1 #.!#.%*6)-9"$1!#0!+'&' * !,"#.) !-)%'###$(%%"",""-!!+(!!+"",)($"!!!##!!  " !#"'&""$ *"",!!+!!,$$."",$#&%/&%0##-"",(%%&!! !""#$$#$$#$%%%$""" !! !   !"#' "%$#&#   """!"## ".$1"                                            &&'( ( ( )!*" ) )!)!*" +#!*" +#!*" *! * ,"!+! * * )!,$"5.1;6;a[Z|zwwyyĿþ¿ûĿ½ÿ¾þþſdS[((%" # # $ $ # !     ! ! " ! # % % % & & ' ' ' & ' ' ' & ' ' '' ' & ' ) -49=$D-%J70M>9SEBWIFYJGXJGXJGXJGYKHZKHYKHXKHWKGUIFUIFWJGXJGVHEUGDTFCOB?NC?PEAPEBOCBK@>K@>J?=LA?LA?LA?ODBRGEPDCSEBVGDSEBVHEWGEPA=G6.C%;9 @DI N%W,[5$_C4aKAaRNfZZf[Zh^]f]\f^\h`^ia_g_]g_]g_]e][d\Ze][d_\fa_hbbhbbkeenhhoijplmqmntpquqqvqtļüƿƿŽ÷uptUSWOMPPORVQXSOUC?A                        !"$%# %   ""!$"'%"'!!  #! &! &!!#"#! &"!'#"(! &$##"!'('/&&.,,287=208/,5328348-.2'&,(&/)&0)&021:,+3  " %$"($")%#**)/**/))-(%,*'.+(/+(/&#* $$" " !$##"%! &&%! (! (% '! (&"!)"!) '$$&#"*''% ((!!*""*" *"!,,,6))3$$.$$.((2''1++4%%.##,##-##-##-##,""*$$. * '&# "&)%&1!#.(+7')6&(4+.:%'2"$0(*7#$/#!$#!!"#"#&(&' *)"",$$."",$$.)##-"",%$!" $$$." !%#&!!+(((''1&'0##-%!!,**7('3##-##-#$-$$.(#$$$"####  ###"!!$%#&$"#"!"""! !  !!#!!   ##$&&#"!"""%#"!                                        )(*5                      '( ( ( ( )!*!+! * +"!*" *" +#!+#!,#"+#!,$".$#,"!,"","!+! +! -#"3),:28RJK}xzxxy|~Ŀÿ½ľ½ÿÿF6:%'&# # # # # " !      " # " # % % % % & ' & & % % & ' ' ' & & % % ' & & ) + /3< C)%G30L=:TEBZIF[LI[MJZKHZKH\MJ]NKYKHYKHZKJYKJYKIZLIWIFWIFVHESEBRC@PDBNDBNCAMB@NCAK@>K@>LA?MB@NCAQFDRFERDBUGDUGDTFCQB?K;5E/&B< = DJN#S(]1`<*`E;cQKbWUcYXcYXe[Zg^\h`_jabkbcja`ja`ia_h`^h`^ia_fa^gb`hbbjddlffnhhpjkplmqmntpqwrtyswûý¼ƿƿ¼ǿƽö~s{^T\SMQPMPRPUQOUQMRD;?#                      !$%$!&    #%  ""  !""!"#$" %"!'$"$$"!###%%$,&%-'&.('/**0**/-,3,+5++6**444<%$, "# %!!#!#('-++/,,1%")'&,&%+(%,-)1*&--(/&$*$#) %! !!  "&%% ""%! ( '! ("!)&% '$#+ ( !(' &##+ ( ("!)%$,%%-##+!!)!!)!!) (""* '%'##- )""#%"" "&"")$$-%%/()3*/6#&/$$/)"$-)%$" "!%&("",##-('#)##-"","",!!+!!+(&&%  #%"!"" !# $(##.$$/)(,.7*.6%&0$$0%%0''2$$.(&&&#$%$$###$$$ !#"  !###"#$$#%$"%"  "! !  !     ###$#"!#%$% '%!"  *&&0                                                                   !                       &( ( ( ( )!+" ,"!,"!+! +#!.&$.&$+#!+#!*" +#!-$#,! +! +! +! ,"!.$"4**<27HCDqlg}}{~y{ÿ¾¼þĿ½¿¾Ŀ¿u|/"$%$ # " $ % $ #       " % $ $ $ $ % & ' & & & % $ % & ' & & $ % & & % % ( + -2:?%$D/,L84S?=TFBVHEZKHZKH\MJ]NKZLIZLI[MK[LKYJIXJGZLIXJGVHEUGDSDAPDAMB@MB@MB@LA?K@>K@>K@>MB@ODBPECQFDSFETFCUGDVHEPA>H50A#<;?DJ!P&X-^8 aB.`JAcVRbYWbXVe[Ze[Zg^\i``iaajccjcckbcjccjabia_hbajdbjdckeemgglffoiiojjplmqmnsopwquysw»¼ƿ¼¼¼ƿƿŷu~g[eUNUMKNPOTTQXOLSQNSB=>$"!                   634.+,'#%    #"%" %!$  !  !! !#" !!$"   ! &!#""#$" !! '% '% %#! &&%*,,4..8.,7+(3-*3,+1&%+&#**'/1.5!!"    "#$ %$$#"(#"(! &$!(*'0'%-)&-*'.&#*-)04/5*&,#"(! & $! &" "!!"!! $$"#$%#$ ' '#"*"!) ' ( !)!!)&%-&&.&%&##+##,& (##+ (%&"$&%#! ""! $$"'%""+##,##-# ! "#!!%&()'')()"",&!"%)((('%#"  !#$! "#! ''"#!"!$..7--5**3#!,$$.)+6(,7()4&&1 *)"!!#&$%%&&%$!$$!  !"  "$#"""#%$$#!#"  #"          "####!!  % ''""  !                #                                                                                 #') !*!"+"#*!!*" +#!,#!,#!,$"0'&:2/2*(.&$.&$-%#,$",$"+! ) )+! ,"!.$#2(&902B?B[[Z~|~|}zywy¾¾Ŀ½ÿ¿þþ¾eX_&&%# # # $ % $ "       " # % & $ $ % % & & ' ' & & % & & % $ % % ' & % % & ( * - 26@#!H+(L50N<5QCMB@OEBQFDRGESFETECUFCTDBO=;G/(?:;?D I#R)Y0\;(^G8aQKcYWe[Zg]\g]\f\[g^]g_]g_]ia`ibcjddicciccidaicbjddkeelffmggnhhnhhniiokjplmrnouqrvrt¼¼¼Ǿ¼Ǻs|j_i[T\QOTPNTUSZONTMKPOLL>96$$                 856;8;VRWrpq   "!" %$"'!$"  !!    $" !###!  $"""" %# "##"!     $%$! & %"  "$#*$#*$")(%-,*1-,2+(0.*11,3$")! &$#)%$**).#"' !!"  ! " %"!'$$ %! &$#)! &" &&$*)'-(&,&%,,(0)(.'&,%$*$#)$#)'&,#"'$ $" !""$$##%$'""*##+""*&&! (""*%%-((1!!) ('""*#!"!"!!!!  !!$ !#&&)"",!!+(' *("",$$."",##- *(#"##$$%&!!!#$#  ! %&"#! %$!(##-*#%''1--731<0,8.,9,-:$%0)''$!!#)(''%%&'$""#"  #"!#$""#&$### !%#"!!"!   ! !"%%%#"##"$#$$#AHM           !$    %&+                                               %'( ) !*!"*!"+#"+#!*" *" +#!/'%6.,1)'.&$-%#,$"+#!*" * ) * * +! ,"!/%$5--D?BXTXyz|y|utz{¿¾¿Ŀþ¿¾þÿK:>$($ # # % % % $ "      ! ! ! $ % $ # % % & & & & & & ' & $ $ $ $ # % % & & & ' ( + - 09@C'#H0)L80R?:VEBZKH[LI[MJZLIYKHYKJ\NK[MJXJGVHETFCSEBQC@OB?OD@MB@NCANA?K@M@79   !"!%  !#$% &"$ ! !! "#  $ %## %! &#"( %! &#!# %"! %$* %" !   "!# !$&#*&#*#"(#"($#)'&,**/124,.1!!'! &$$$!#!!!"! &'&,&%+! &&%-'&.&%-((0('/'&-&%-*)1.+4*(0+*2,*2%$, '&%!#!!#!$&&&&% '#%"!!!#$ #$$%&! (! ('"!) '##%'& *$$.%%/ *($$.##-!!+!!+!!+)$++5%%/! $'$! !""##$$!!#$"!&$/'$/)#")"",##/$$/!!+!!+)! !$%%'#%&&''(&%%#"##$" !! ""$%$&&""%&$$###$""$#"#!!!"#$! ( '#""!#! $#"*&%!$               CHNMJL               "2#!4$$5""7%"8(#5#!4$#1!"!           $&(*!"-$$.&$-%#+" * * * *" +#!*" *" )!)!) * * * !* (&') /%%901JCEd[[~~yxvvþĿþ½ÿ¿½½¾t^c0&$%$ % $ &''$ # # !     ! " $ " # # $ $ $ ' % % & % % $ % $ $ $ $ $ $ %& % ' ( + - / 257<@'G/&L62N=;SCAUGDWIFXJGYKHVHEWIFWIFSEBVHETFCQDAOD@NCAL@>NA>N@=MA>LA?NC@PC@SEDTGFTHETFCQDAK84F(!=;?CF"M$T)Z1#_?2_J@dTNg[Xg`]i``ldckb`ka`ja_g_]f^\f^]kbckcdkeejedjddjddjddiccjddkeelffnhhnhipjlpjjpllpjlrmnûýľ¼¼¼ľľýľľſýýý¼ľ¼ȶ|kbec]``[`TOUUPVTPUUPVVQVVTUZVWHCE!            4*/mbhuko)&(   "" $"  #%#$!"$%!# " !! #!    $"& "!$ %$$"!'! &"!'"!'$ %"!'$! &!"  "$#""    !"##"# %"!'! &%#)-,0+)-(&,%$*'$+"!'$!$! "# $!!! '$#+&&.((0*)1('0#"*%$,)'0+(1'&.)(0('/('/$#++)20-6(%/$#,'&.%$,! ( '##%#! #!!%" !%% '%$,&%-$#+$#+$#,$#+%$,&%-&%-'&.))0+*2(&/""*!!)&!  #(( *!!+!!+)#$$ "$$.$"&#!    !! $#$&%"#%))3((3%  %$.&$.$"-!!+"",)''&#%%#!#'(((()'()''&&%%#&$#"""##"&'$%%&$%$#'(#$$####!"!!!!    """#"""!!"" $ '$">8D!'               -3;±HBD              !#%'$&             %&)!.$%5,+6.*0'&-$#,"!+! +! *" ( )!)!* * * +! * !+!"+!")) ) * ,"#3)-C<@[TWyw}z~wwxy½¿¼Ŀ½¾¿Ŀþ½ĿYDF%&$$% % &(*)'&% $ " " " ! ! ! " # $ # # $ & & % % % % % & % % % $ $ $ % %%& % & ( ) , . / / 247> F($I.,L62O?:QC?VHEWIFWIFWIFYKHUGDUGEVHESGCQGCQECODBQECOA?QC@PCAPCARDCRDCQECSGEWHHO??I2.B!==AEH O&T.Y9&^D6aNEeURf[Yg_]ja_kbalbaka`jb`h`^e][f^]i_akabkdelfflffkeejddiccicckeenhhoiioiinhinhhqklrkmsmoļľľſſľľ¼¼¼ýýýý̻~nfja[a^Y_\V]WSYSQVUQWYTZ[X]]Z]TNPAUGDWHEZJHYKHVIFUGFVGGSGDQGCSHFRGEQFESHESEBTFBRDBRDCTEDSGEUHGRDDK;;C-(=; > BH!O#R(W4!Z?*[G9cQKfWTg[Zh]\j`_lbblbalbakb`ia_h`]h`_i`akbcjddjddjddkeeicckeekeemggnhhnhhnhhmggmggoiipjkpjlľĿý¼ýſſľýľľ¼ľľľýþɽ}qjnb\a]X^ZU\ZV]TQXTPXVOY]X_`^bZVZHCIA5RE?WIDVHEVHEWIFTHDRGCSHDUJGUJFVKGXJGWIFXJGXJHYKJZLJXJHRBBI20B#;?EFI$P,V1!_=/cH;cQIcURaURdYVeZXf\Zg][j`_mcbndcldbldajbaj`bi`aiabiccicciccjddkeelfekeekeelfgmgikeglfgmgilfhlfhſſľý¼¼ľſſſſľľľľſľüįwmtg`fa\b[V]VSZXT[YU[XRZfaicag[Y^PMSFBGHAG/(.                  & #    " #mgoA@C  !$" %!%#!&"  !# $# '"" ! #" !!#"!"!" ! !$ % % %"$! &$#)"!' '$#+"!'! & %! &#! & % %  ""  "!!"! !"$!$#"#" %$#)%%*&%,,*0*).+*/++/#"(#!'-+357>:;B %#! %#"(!  " !  %! (#"*$#+"!)$",&$0%#.)(1$#+'" +)(&$%#      " "!$! "%$$%$-"",%%/#",("    !! ##')($&( *( *"&&099C&&0)&"",$$.!!+!!+"",##-!!+(& !#&$!"! "  %$"%%$"%('&&(''( *!!+))'&&$#$"!#%#"#%(##%$$%$##"#"!! "%%%&('&$#$$"#%% ($!!!  &""%                *anɺɻƳyuz!                                                            $&%'''( )!*" )!+" +! + ( * * +! -#"/%$-#"+! *!!,"#.$#-#"+! ))* -&(?:@RNSlhk}y|yw||¾¿ÿýĿ½Ŀ¿ĿþƿD26$ &%%# $ &*.465441/-+(''&% % % $ # " " " " " # $ $ % % $ % % & ' & & ( ( ( * , , , + , . - . 10- . 15:>&E1(K93PA>H*'@?BFI"O(V0\7$a@2bJ?aPIaSPdWSdXTdYWe[Yg][h^]ka`lbakcakcblcdkbckbcjabiabicciccjddjddjddicdiccjdejdfjdflfhlfhjdfjeg¼ſľýýľľľſſľľſſľǰypxg_g_Z`^Y`WT[WSZUPW[U]f_jgdl^ZaXRYSJRNCKJDJ+&+                      !" ! !" '!#      cdhnru0/4!$%$ &$!( #"! ! $#!$ #""  !!!#  "!"  %! %"!'!!##$! & #"!'! &$ %##"!'$! &$ %#"!$ "!" ! !#$!"$"!'! &$#(%$*"!'&%+&$+*(/-,247;027#"("!'&%+('.,+1# !" " %"!%$*"!'# "!   "#""$$##! ! ##&%)&/219%%-&%$!!#!"$$"""$%%)('##%%/$$. *)&((2009((1%%/%%/"", *&%'%"!#$#"!" !$$('&##$$%&)%%%))&'( *'&&&%$#$%%$%%"#&(&#$$%$#####"!"%%%% )" +(((!*!* )'$##%%%&! ($"""##%04!                '4n{ǸʹƬnlo                                                                     #%%&%&'(( ) )* * ( ')*! +! ,"!+! ))* +! * )('(+!"602HFIa\b~{}|wv¿ÿþ½½¾¿ÿþÿ{nt0 &% %%# # ',267555210/,))(('&% $ $ " " " " $ % $ $ % $ $ % & & & ' ) * ,-., + + , . . . . . , , . 0 26;!C,(G60K=6PC>SECVHFUGDTHDTIFUJGVKGYKH[MJZLIZLJ[MLXJISDCM66D#?ACGM$S*X2_;(_B5_KB`QJaRNdUPdWQeZVf\Zf\Zh^]j`_ka`kbakbalcdlcdkbcjabi`ahbbicckeelffjdehbdiccjdeiceicejegkegkegjffľſſ¼¼ľýýſſſſľýĿƯyryd^e^Y_^Y`XT[VT[UPW^V`jcngcl^ZaZU\ZS[KEMDCHFDI"!                                        "ONS~526  !#"$% &# & # #" "" #!$       ""$"! "$#$ ##"( % %!!"$""###$$#!" % #$!##!!"!!"#&%+&%+ %$""#"(&%+((.)(.)(.*)/,,1317$!($$"))'-'&, %#!##!"       !#! !"$& ' '$$,%#""!"##% *%##$))$"","",$$.$"%%/"","",##-$$.%%/$$.""-))(   $$  #" "!!!!""&&#&'&&&''(&')"",('&&'(&'($""#$$&&%#$''&%$#$#""###%$ $&!) )((!*&$/$"-$"-!*" + ) ('&%%&&&%%$#"$                  +4Cvʸ̹ŭkdg                                                     "$%%&''''()* * )(())'(('* * * )'''&+&'?:?SNVxru~}|{|{xwĿÿÿÿÿþº½½¾þ½Ŀ»dRW%'%%$$$ (/47877553120.-,)('&% $ # # $ # # % % % % $ $ % & & ' ( ) + ./..- , - , . . - - , , + + - 05;>(A1&H:1OA;TEAWHEVHEUGEUIGUIFXJF[LI\MK[LKZLKZLJRC@F0,?ADEL"R&W+\5#`?/bI@_LF`PI`QKaRMcUPeYVeZXf\Yh^]j`_j`_lbalcbkbclcdkbch_`g_`haajddlfflffjdeicehbbjdejdficeidfkefjdejeeſýý¼¼ýľýľýýľľľ¿Ŀľʿı|s|h`i_Z`^Y`ZV]ZW^YT\aYcohsjgn^Y`ZT[XT\IHPFGLCBG>:=                                                     ($(hik\]^  "!%!%! #!$!   # #!$" "!       #!  #""##$### ! % %"" $"  !    %$ %! &#"#"!    #"  %$#) !" "$")#"(&%+//5/06,,2+)1'%.('.('.+*0 &! &#")$#*((.'(-$  !#"&# !  "#"##%)%  !"''&&"))2((0&&/&#%%/((2))1&&.%%/''2&&0!!+)&'&$$!$#$$##%$##!!#$#"$##'%"&'&&()')(( *)%&&$%&%%'&$##%''%%$%'&('$$%#""##$'" !%()!*#!,# +!*" +%#.$"-$"-#!,!*('' ) )"!*"!)! (! ("!)%#! "!"$##+                -:I~ƱʸȺcZ`                                              !#%')!*" *#!+! * '') +! ,"!,"!) ((''('&))))'((( *!#:38LGNidg|{yyzzĿĿýĿ½þ¾¿þ½ĿC36$'%##%&+479 9;:875456342/,*(&&&&$ # & % % & % % & ' ' ' ' ) * ,--- - ../. . - - - - , * + + , 0 48;$A-!I6,N=7SD@THDUHEWIGXJFYLF\MJ[LI[MJYKJUFDM:6A(">ACGK$R*Y0]:&[A5^HB^LF\MH^OI_PJbSNcWTcXVdZWf\[i_^j`_ka`kb`ldblcdi`ah_`d]]d^^gaaiccjddjdeicehbbicchbdgachdegbbhbbiddľ¼ýýý¼ľý¼ýľľľĿ¿ſűwjaj`[a`[bYV]XU\XT]`\ejgplip^Z_ZV[\X_JHPHHMCCFLKJ41.                                                   $#%!"$")()/00   ! # #!$#!& # "!$"!$" #! #  "!   !  !#$! &" %$ %"!'""!# %#!" %! #$""!!!""!' % % %$#$"$! "#"  !! !##!"#"('&.((0--6('1**2,+3'%.%$,%$,%%.()202;34; '$% &!  ""!!#!!" %$#"       !&$"""$& *%"'''!!*##+008&&0##-(&**2,+3+*2##,$$.--7++5(*1'(0! *'%" $"$'"#%&$$$!#$#"!!!$#!"%&%#$#$&&( *))(('$$(&%$%%%#'&#$%(%$&'&%'(&#%%"!!""#!   !$%((* *&$/(&2$$/##-%#.%#.%#.$"- )' ) )!*" +&$/"!*% '! (&" !!"#                 5CUŵʻȼ¥RMP                                                           "$'*" ,$"-%#-%#.%$,#"%%()* * ('&'('''(* )(()) (* 4,0C@DYVZ|zz{~ľ¾¿ÿÿýÿ½Ŀý¾½Ŀ½Ŀ|r{.&$! ! " $&-8 <#<#<"=!< 97765555541.+)(((&$ $ % $ $ % % & ' ( ' ' ( * ,,..- ../ 0 / / / . - , + +* * - / 1 6; C(H2(J81OA=SFBUGDWKFWLE\NIZLHYLHWIHP?=F0*> <@DG"O*T/Z7"\>*\E;]JE]MH\MJ\MH]NH^OK^QN`UScYWcYXg]\i_^j`_ia_kc`ia`h_`h_`d]]b]\d^^e_^hbbicehbdf``f`af`beaafbaea`ea`gccý¼¼ýľľľľľ¼ýýľľľÿĿýŰxjbi^Y_^Z`\Y`[X_YV]a_gkhqliq[Y_WUZ[X_MIQIHNFGKFHIPOM"           '#&%!   "!#     ! #" $$!' # !!$$"'" #!  # &!$ # "##! ! !!"!#"#!$$$$#! ##!"$#" ""  !"!"#$# % %# !""! ""!   !#! !"#$ &$#*'&-! ("!($#+((1('1*,4++3*)1'&/&%-++3;:B$#)$$ %!!( '"!!"$$$#&&&$%"!  ! ! $%& ( ('&&. (&&0((2'"",##-((2&&1 !+'(1,,5))3+*3-+5++3&&.))2''0##,!!+)))"" ! %##&%!$&$$"!!$#$!!"$! !$%&$#&''&'!!+ *"",(&(&''(&%&%%&'%$$%%&&&''''&%'&#!  !#%' ,##/"","",$$/$$/!!+)!!+ *)!* )!*!* )&("!*&%$" #"! ",1<               @M]ȸͼʶNHM                                                                "%( )!)!)!*" +#!*" $$'('%&&&'(((( ) * ()+! +!!+!!) !) !.'(<:=ONRrno~}~vv¾¾¿ÿĽþÿ½Ŀ½ľfV_&%" ! " ! #(09TFCYKH[LG\MHZMHXJGSEBK96D)"=>ADI#P*T2Z<&^B3]HA]KG]MH[LHYLG[LG^NJ_PN_SQ`VTaWVcYXf\[g]\h_]h`^g_^h_`i_ad^^c]]c]]c]^f`bgace_af`ae_ae_ad^`d`aea`fbagcc¼¼ýľľľſý¼ýľľĽĿ¿ýɿİxlel_Z`\X__\c^[b[X_eajkhrkhp`]cXV[[W^RLSJGNNLSIIMTTW:5:            " '$$ # $(&)   !"$$ &#'!$" #" !$!$ #"$!&/+1$"'#!& # #""#""#!"!"!!   "! &$ % %$ %! &$ %#$"  !"!"# !$! &! &# %"!'!!  !"#" ! #$  !!"!'$$"! &#"($#*('/))1.-50/6**1**2219'%-**2&&.'&/=>C349$ '$#+%$,$$+ '& '%&%$$#""!!    #!$$$"!$# "#%&'!!)$$."",!!*' (-,5((2+,6"#,#$-''1$$.''1''0-.614=./9,+5,*3,)2'&.(((% "(%! !#!!$(&$"##$##"!#""#"$$#$%''&&&('(' *"",!!+"","",&& *"",')(')''('%#$('%&&%'&&%$#$"! "$$$&) -##/ +)!!+##-!!+) *''' )(!*(&&& '$! $! !+:!-               MYk˸λɸC?E                                                              !$'''&&&%%%$%'%%'('))* *!)!))+! * * ,"!+! * ( +"#614GGJ`^_}||zyxĿľ½½½½¿Ŀþ»I6<%%! " " " $-8B'!B(@( A&!A$ ?$;":!:!9 9 99 9 8 6640.-,,**)'& % $ $ % $ & ' ' ' ) * ,++ , - - - - . / 0/- - - , *) *+, , / 28; B(H3-N>;VFB[KFZLGZLHWJEQA>H3/>!<?BF L%R+U5"\A/\G>]KF]MH[MH\LG[MG]OI]NJ]PM]RP_TR_UTaWVaYWd\Zf^\g_]e][f]]g__e^_c]]c]]c]_d^`f`be_ae_ae_ad^`c_``^_c_`ea`eab¼¼ľľľýľý¼ýľľľ¼½ľ¼ȯlfl^Y__[a\Y`_\c^[bebjkhrkhqe`g]X__Y`XSYKHPQPXNLTVTZRNS("'                                               +**  !#%#($%'"(% '#%$%!# # ""#!&!$" %" %#!'&$)$"'"!  "#!% $! #"  !!" !$!!"#!!!$#! %$ %! & %! &###"#" % %  !"! "$!"$! %! &$" !  ! ! % %$##$$# &$#*"!'$#)&%,+*20-6.-5**2-,4117--30.5.-5-,4-,2;<>%%* '%$,$#+)(/,+2 '"!)%$,#"*! (%$!!  "##&$,%$, )##-&%#,#",',+5+)4$"-&$/"",**4%%/',,5**4%%/((2!!+',,6((2&&0$%/&'1'(2//9,-6+.7..8((2&&/&&/&&.,,3((1!!+" !"!#% "$&$"!"$$%$#%&&&$##"! $#$%$#'%%'%(((%)(&'(((( * *'&'((()''&&&$#%('(&&%' *('&#!  !"  !# *""-!!- ,"".!!-!!+!!+!!+(()('&'(!*(''&&$!" !%!&               )Watλмɶ636                                                                     %'''&'&%$$$%&'''()()+! ,! +"!)" ) )+! * +! -#"-#"* ),""5/1B@CVSW{|~{yyy|{þſýþ¾¿½Ŀy|2 $$" " " " &1;"@*#A-$B,$B*$C($@& =$>%<#:":#:!: 9 7!67 5021//--,++)) ( & % & & ' ( * ) * + * + , - + - - . 0 // / . - , **+++- . 28? F+%L72QADH!P'U/W;$]F9_MF_PL_PM`QL_PK_PK`QL`RN^SQaVT`VS^TRbXWbYWc[Yd\Zg_\e]\f]^h`^jbakbcg``e``d^`d^`e_af`bf`be_ad_ab`aeabc_`eab¼ýľſľýýľľýľſſľľþľýɶ~njo\X^[X_ZW^[X_`]dhemlirmjrdbh\X_]Y`WSZJIQPOWQNXVS[YT\HBI                                                    !!!!   "# %"&% '(#)& '!# ! # #!$ # $ $$"' #" %!$!""& $ $#!"" &!&#"#####" ""  "!$"! ! !!"$! & %$$$$# "#       !!!! %! & %"!##! !# ""####"($#)"!'! &$")'%-))1++3((//.4439007.-5.-3126./3**1,,4**221886=)(077?44<((0++3$$,! (%$,%%-! (% "' '% (!""*'&/#!#)(2/-8,,6((0;9?*(010<&&1$94?)&2&&1.-8!!+''1,,6''1))3$$.!!+-.8(*3)*3%%/##-%%/)*4)+4,.7)+4')2*-5()3%%/$$-!!*""*!!)"#$$!"%&"$#"#$#$$"$#$''&%%%&&$#!"""$$$&%&)(%%&''%)!!+'$'())'"", *(( * *"",)(&$$$$#"##&)(&%'(&&$!! #"!"%%% *##/%%1"".!!,!!+"",!!+(&'(''&%' )'& ('# !!" !( 86;%$)             (ai|˼νɷ402                         #&$                                   &'( ( ( )!( )!&$$&&%'( ( ( ( )!) +! +! *" +! *!*" ,#!-#".$#/%$-#"+! * 1(*>;=NKPohm{|{~}}wwž¿Ŀþ¾¿¿¾ĿĿÿm`b&%#"" " ! (4=%!B.(F2)D/&D-%C,%B+%@("?&?%=$;$;":!:"9!9!8!78 8 5322220/.--*' & ' ( ( * + + + * , , - , , - - . 000 0 / . - - , ++, - / 4>E$K1+P?9TFCZKHYKHQC@J7/A$;;@F M%S*Y4^@*bKAbQMbTQcTQdTRcTQbSOcSNbSP_SO_TQ`USaWUcYXcYXd\Zf]\h^]i`_h`_jb`kcanfdmdchabg`bgacf`bhbdiceicehbdfbcgccfbcgcdý¼ýľýýľſſſľſſľľľ¿Ŀžþɼ~nlr^[bYV]YV][X_a_fjgpmjsliredk^[bYV]SPXOMUPMXXT_RMWYS^QKT4/4                                                % $       "!%$'&!($!&" % ! #"!$ #" %" %"!" %" "!$!('$+$!(!%!%#$*(/'$+!%! &$$ % %"!##"$$! &! "#"# % %"  "!!"##! $ % !$$# ! #   "! !"#$"$ %#! "#  "$# $#"(! &! &"!'$ %"!("!(! (%$,&&.--4--3-.4++2,,465=55=//710854<22:009--5--5008..6**2''/''/((/%('/))3))4&%000:""-..8/.9#"-"",##-//9))3&&0--766=22:**4!!+*)4('2''1++5,,6./9((2++5++5((2,,6++5&&0''1((2((0##- )!!)""*&$%%%! "%$$"$%$##&$""%&$'#!""#&&%'')&&%$$$!!##'&%()&&%&"",)'%$()'' *)(( *"",)'))%&$$%$#$#!"##%'&&%%%$"#" !!"$&))))!!,##/$#."",""+"",!!+)'%''&&&'( )&&%#"  !               -hn˹ͺƷ.-*               &"% ''"                          #%( '( '( *" &%&''&&''''( ( ( ) )!*" )!( +#!+" ,"!-#"-#"* * /$%804GCIf^e}z~|||zyvuÿĿĽ¿ÿ¿¿ĿþýQAF$%#" " ! #,;C*%H2,I2*H1)F/)F/)E.(C+%B(!B' B' >%>#<#:!:!<":!:!9 9 76444320/221-** ) * * * + * + , , - - , - . / . . 0 / - . . - - - - - - / 3:A"J.&P<5TFAXIFUGDO?AG!N&U/^9$dF3dOFdUPdURdTQeVReVRbSO`RLaRO_SO^SObWTcYWdZYe[Zf\[g]\j`_lbaldbmecnfdofeogeofemcekcficejcdleemffnggiddicckeekefý¼¼ſľľýľľľýýſĿžľ¿Ŀƿþɻqmt\Y`]ZaYV][X_dajkitlismjsgdm`[c]X_WSZSOYRM[]VbWPZZS]RLSMGL                                                    &&(   #$% "" %$"'" #""!%" &" %!$ "! "#!'(%,'$+# '!% $$"))&-)%-" '"!'"!' %$! &$# %$! & % %"!'! & !$"""$$#)"!'! !!  !! $! &!# ! !$"#$"#! &"! %$#"" !  ## !$$$$$$$ '##+ '%$#++*2'&.*)1++3--5,,5,,5++4119//7,,4++444:77?,+400810922;,,6..8--7++5++5++5++5,,5&&/++5((2,,6,,6//9''1''1./9))3*,5')4'(2)+5+-6$$.*+4')2 ))##$%'#!$   #$"!#%$"&'&$#$%#""% ($##"!""&&#(&''%$#"##$%'''%'"",)( *%' *'%$&)) *(' *(((&#$&%#"##!!!" !$& *)!!+)'%$$#"   ! #$'(&' )#!-! +##.''2##,##-$$/%%/"",(&& *'' )" + ) ) ($#$  &$,-7 *          !-mt˵ȹŴ2..                                                                      !$''&&&&%%'')!'&( ( ( '&&''&'''( '))))),"#2).B;@XOTwz}{{uuvvÿľ½¿Ŀ¿¿Ŀ¼:'*%%#" " ! &1?#J/+L6/M6.K4-J3-J2-G0+D/'C-$F,%D)"A(!@' ?&<#<#<#:!:!:!9 9 5555442134442//.* + ,+ + + , - - , - . / /. / . - . - - . - , - . 0 37@!J,$N91SD>VGDSDBM:7A' ;??@H"Q'Z2"b?/dJ=fTMhZUeWTeWTeVRdVPbUOaTO`RO_SP^TPbWSdYWe[Yg]\f\[i_]j`_lbaoedqigqigskitljskiphgnefneglcdnefqhirijohhkeenhhnghľľýſſľľľľľýýýſ½ſ¼ǻ}qmtYW^ZW^\Y`YV]b_hljtlismjsjgob^e]X_]X`XR\UO[[U`[S^XPZUNVE?I84<                                                          #"$  ""#"# #!$! " #!$#!'!%" %!$" %!$ #"&#*(%,&#*# '# '$!($")*)/*'.&#*! &$"#" %('-"!'! &&%+&%+'&,#"(! & %! &$#$ % %"!'$"$! &!!"!  "!"! !!   $#!""! %! &# !     #%#%& '%$%"$' !)' ( ('&#! *##-&&.*(3&$/$$/-,6108'&0&&0))3**4&&0%%0%%/"",%%/$$."",$$- + *!!+ *%'##-!!+'$$-!!+$#&#!" "$#$#$!!"$#!###%%%% (""*&&&%%"$$###"!"##$%( *"",($$%&&$&&%&&'%''(($#&%&%%()!!+ * * *'&&&$$''$"""! !!"#'( * *!!+!!+!!+(%$#"!   "#$**(( +(&2$"-!!*%%0))5&&1%%.((3**5''1""-*"",! *'!*" +"!+" + )(%"!!&           (4m|ȷ˼Ȳ5./                                                                    "%&''%&&$$$%'( '&%( ( '&&'&&&&( ('()'((),#$=46PGIlef~xzruyzƿĿĿý¿¿¾¾¾½Ŀºxjp,'&#" ! " &2C+&N51O82N80O81N61L4-K4-I2+H1*H0)D,%D+$C*#A(!A' @'?&<#;"<#;"8 7766554554555531/-,,,+- - , - . / / // / / - - , - / / . - - / 26>I+%N81RB=SDAP@@D2/=";=@C!K$V*`7*fE;dOGgXRiZUfXUfXUeWTdVSdWQcVQaSPbURaWRbVRdZVe[Yg][g][f\Zlb`oedoedsihuljvmlxnmvnltljqihpghnefofgrijukmtkloiipiisklľľſſľſſľľýľľſ¼Ⱦĵ{qmt_\cVSZZW^[X_b_glirmjsmjrkhofcjZV][U^YS^XR_XR]`[eVPZWPZLGQFCK!!                                                       !""!$ $""  " %!$ #!#!$"!$$"'%#(" %  $$!($!(!%$!(%")$!((&,-)0*'.$#)"$$#"$#"(#"( %"!'$#"($#)"!' %$#)"!'# % % % %! & % %#"( %"!$#    %#  !!!! " " %$#! #$!!"&%!!#%$$%&""*'&##'&! (&$#.#"+'!!)#$%& )((%%!!*'' (#$'!!,""*&&' ( (%$%%!!##&" !!#& #%%!#!!) (""*""* ('&&$$&'#!#%$$####$"&)&!!+)(%(%'(&%&%%&(#$%%!!+(#&''%% *%%/"",) *(&(('$$#$#$$""!""#%&&(##-$#-"",!!+(()'%"!  %'((!!-""/##.$%1#%1**6)(5$$/**6..:,,6++5++7**6((3''3$$1##-$$.$$.%"." +$"-&$/#!-'&#  .26$            ,8l{ͻμǶ7/3                                 "          "#!#                     "(*)&%#$%###$&'&$%''( ( '''&&&( ((((()(),"!7./F>C^X\|~twtw}¾ſĿþ¿¿ƿþ¿¿þþ[MQ')%$# ! " &4E0*P:5P:3N;1P;3P93M71K7/J5.K4.J3-H1)F/'D-%D,%D*$E)#B("?&!=$<#:";":!9866677 666677 7 741/.../. . . - - . . / . / . - , , - / / . , / 26>G)%M4/O>8M>;K89A+)99=AH#N(Z1!aD                                                      ""#"!&! ! ! # #"!'!% #!$#!&" %#!&" # (# '##!&&$+,(/,'.)%,'%,! &! &"!'$! & %$#)$$#$$$#)#"(! & %#"( %$"! &%$*"!' %! &#"( %$$! &"!'! &# ! !#""!"! """"!!!#! ## !"  "# !!!!""#&&$#%'$#" ) )##$&!!( ($'!!)'#&!!)&&$$& *""+#!&&"###%! &"#$%$%%$%$$' (!!) (& (!!)'%#%!!)&$#$$$#$'&%% ("","",''*('(&$%&'(&#&&##%( *&'(''&&()(''&& *('%&##"""""$%$$'&&("",'%0(%0"",$$/"".##."",&# !$**+##/##/++700<*+7'(4((4)*6++733@33>66?11=..;--9**5()4&&2#"-%$/)'2&$/$"-%#/+)4'%0!*(! !*+%&             &0:s}˸˾ɸ816                           66ADGT                               %+* )'%%%#$$"$%%&%%( )!)!( '(&$%&( '')* * * )(* 1(+?:>PLPvot|svux¿ľ½ž¿¾¿½¾>02$'$%$ " $,7$G3-Q=6P=4P>3O<4M:3M:3L:0K9/K7.L5.K4,I2*H1)F/)F-)H,)E*%B(!?&=%;#<$=$;"9 8 9!:":#:"8!7 7 :"9":";$;#9"86300/ / / / . . . /0/ / / - - - - - . . - . 0 4:A#K1-L:3J94G10@#!;<@C J%R-\7'cE8cQFfWPjZTj[Uj[Vj[VhZUfZSfYSeXRdWQdWSeXUdYUf[Vh\Yj_]j_]ka_mcapfdrhfsihtjiwmlxnmxnmzpoxontkisjhrjhqjgskivnmvmnvnmvmmſľľýľſýýſýſſľľýÿľĿ˽Ż~xplr`]dWT[ZW^]Zac`hmjspmvmjsjgpebk[X_SPWVSZXT^]Xa`[ac_f[U]TMVQMWYW_0/3                                          # # ###!!!!#!'$"($"(#!& #" %#!&!$  !$!("&#"$$*&-/)3&"*&#*%$*"!'"!'! &$""!'! & %$#)"!' %! &#$! &! &" % %! & % %$ % %#$! &"!'$ % "! !  !#  #  !"!#!"##"   !!!! !!"#"!"%%%#%$!!"#%!!""&$# ($#%%&%$"#&#!#$#! !%" %%###&& (&&%%%$#$$%%$$!!) (%#'%&$$$'%%&'!!) ('"",((2&&0(('&&(&$%&( *&$''$$'&%%(&%%&&'(&$%$'($$&%&$#"!""#%%&&)!!+!!+!!+"",''1%$0((4**7""- )&#" "%)+!."#0('5)(5**7..:++7**6,,8--9--911=43>77@00<..:..:--9,,8+*7*'3(&1&$/%#.$"-&$0&$0!* ) )#           &0:rͽο̹=57                                                                            (** * &%%$#$%%$%$%&'+#!0(&,$")!( '&$&&%&(,"!.%$/%$.##*! )* -$(948GEGc`czzzqt~uwĿÿþľ¾Ŀþ¾¿½Ŀ½Ŀu|.%#" ## " %-9("I71R?7Q?5Q?6P>6N;3M:2M;1M:1L8/M6.O8/L5-L5/J3-J1+I0+G-'E*"B)?'?&A&?$;";";"<#=$=%=%=$<$<%=&=&<%>'!=' >'!>& ;%9$632110 120 // / 00 / . - . - . - - . 0 25;D("K4*K5/E+'<=?C I%M*S2$\>/bOAfXNhZRl]Vm^Wm^Yk]Xk]Xh[Ui\VhZUhYThZUh[Wg[Wg]Xi^Zj_]la_mb`ndbpfcrhfqgfsihvlkyonyonyonyonxnmukjsihrigqigtljxnmxnmxnnſſľýľſľľľſýþſĿʿǾĬzrmtc_fWT[[X_]Zadajjgproxnktjgpifob_f\X_ZT[WS[YV^^Y``[be`gWRYOISZU^YV]                                " #       !"" # $ #"""" % # $$"'#!&%#(#!&$"'!$"!  " &#*)&-!%$!("#'$+,)1&#+"!'! & %! &%$*#"(&%+)(.)(.! &%$*$#)&%+&%+! &! &$#"( %! %$#) % %! & % %$"!#" %!! !"!!   """!  ###! &  "!"!#$!" #%'!!"%%!!#$"!"% (#""$$"!#%$##"&%&#!!#"#$&$%% ) ($!!* )"$%##$&&'$%$!"$"$$#&&$!$#$%"&& ( ('""*##+"", (!!,!!+$$-)'')%' )$#'!!+!!+''(('$%%%'&$""$%%$%##$$%$$('%%! !!"%#$#&))' *&&2##/##/$$0 +)()'$!!$())* -%'4,+9-,:))6**6((4)+722?44A22>44@44@32?//<+*7--9,,8++7((4%%/##-"", *#!-'%2#!,('$!            $0DUTYz}xx~rsvvÿĿĿÿÿ¿ƿÿ¿¾¿þĿ¼ĿbVX%&" ! ! " #'0?,'O<4S@6TA7TA8R?6P=3N<2O=3P<3P;2P91O80N7/P91N7/M5-L3,I0(I0&F-#C+!E)"E)#B'>$>% =$=$>&=&?&A(!A)"@)!>'?(@)#A(#?'"@)#A)$?)#>*#<(!9#872/ 2310 0 0 0 0 0 . - . . - , - / 0 138A$G-$F.'@#9;>B L&S-!Z8-`H>dULk]Ul]Vn_Xo`Yn`[m`Zm`Zk_Yj]Wk^Xl]Xk]Wk^Xj\Yi]Zk`\ka\la]odaoecndbqgerhfsigukivlkxnlyonzpoyonwmlvlktjisihumkxnmyonzppſſſľľſſľľýľž½þžþȾŲwryc`gXU\ZW^^[bebklirroxnktifogdlb`f_\c_[b[V]YT[\X^[X__]c_]cOLTVRZ`]dB?D                         '#$,),$#      !$$"'!$!!"  '%*+).(%+# ' # #" %%#(#!&#!&" %!$""! !"&&#* $ $##%#))&-+*0#"(! & %$ %"!'$#)#!('&,*)/+*0'&,)(.*)/&%+ % %$#)"!'#"! &'&,'&,&%+"!'"!'! &#!##$&%+" !""! !   !"!$! &#"  !    "!"!#%##& (%$%'&$"#$#"#"$&%%"$$$#"'&%#%'%$$##'$""&%%''!!)!!)"$#"#!#$%$#&%&#"$$,'%$%&& (%%&$% (&'##+##,""+""+""* *' ) * (!!+)((&('%$())''(#$$""##$#$##"#&%""&&%&#%$""!!#!!$#$' *() *'&%%$%%'&$#!"%(+('((+#$1''4''4**6,+9+,9'*6,.;46B24B13@/1>-/<)*7''3''3''3((4&&2"#-##-%%/!!,!!-%$1#"-&$           #.5WB:VB9UA9S?8R>8Q?5Q?6R>7R>5R=4P;2P91Q:2N8/N7/M6.K3,K2+J2(G/%E,$F+$D)"D)"B)!?%>$@'@( @' C)"C*"B*"A)"A)"A(#C*%C*%C*#D+$C,%A,%@,%@*$A*%=&"854210110 0 / / . . - - , , - - . 04<B&B' = 67=E$P*V2#_@6eOHhXRm_XpaZpbZqb[oa[pb\ob\n`[n`Zpc]n_Zn_Zna[m`Yn`[nb^nc_nc_nc`pecoecrhfsigrhftjhukiwmkxnlxnmzpoyonxnlukktjitljuljynmzppſſľľľĿĿľýľľĽľÿĿ˿ǾŵuqxebiXU\YV]]Zagdmnktpmvpmvifogdka^e`]d_]c`\d]WaZV]ZW^[X_d`gVQ[XT_]ZdZV]%!                          -)*#!2,0'"#      " %!$#!&$!'"!)&+0*1)%+# & # #!$#!&$"'#!&" %" %" %!$ # !#"#! $!$$")#"("!'" '""!'$"!'"!'$"('&,$#) %$#)%$*%$*%$*('-'&,%$*%$*%$*('-#"('&,#"("!'"!'$#)! &$ % % %"!'# !!  ##!  "##"    !! ! !$$%$$'%%&& (%$#&&%#'""*$%$%&%!!)'''##+ (&&#"!$"!  %"!###! !!"""#$#"%%&%#&&&%%''%%##+%%- (""*""*''&'!!)$$-""* ( ( )"",!!+$$- *% * *%&$& *!!+!!+(%$#""!!! "#"#$$$(&$&'(&#!"""#  "#""$%$!!+"",')(&$###"!   "') ,*&(** !."$1"$0,-9.0<(*7*,823?56C13?02?-/;)+7%%1$$0##0&&2((4((4&&0''1&&0##-!!, -)%!!$          ).;t~ǽ̾ȹK@A                             '"&,%*!#($      "                                          &(()( ( ( '&&'&$&'''')!( ( '( )))!)!*!)(*+! /%#7*'6(&/%$+! )),#$715DAHa\b}}vuuvĽ¿ľ½¿Ŀþþz8$%& %$$" " " ->& J4*SA7XD;WE;UB;TA:TA:SA7S@8S?9S?6S?5Q=4Q<3P:2M:0N:2N81N7/L5,K4)L4*J2(G.%F-#E+"D* B'C(B'B) C)!E)!F,"E,"E*"C*"B(!D*#F,%E+$D+$E,%E-&D/)E1,D1-B.+>)%<% 952/110 0 / / / . . - , , - - - , .6="?$ 96:@ I'Q/"X;+dJ>iVMl]VpaZqb[sd]te^rc\sd^sd_rc^rc^qc]qb]qb]qc]qc^pc]qc`sebpeaodaodbpecrhfshftigujhwkiymkwmkyom{qpzpoyomwmlukjtkiskiulkyooľľſľýľſſĿÿſſĿÿ¿¿ÿþȺ~uryfcj[X_ZW]]Zadajnktpmvolukhqhdma]d_[ba]da^gc`i^\d]Zb\Y`aZc_WcRMY_]h^[cE?B                                  /()-&(3-0,''       ## '&"'"&!$ !&"(%"'" #!#!&#!&" %%#(%#(#!&$"'" %!$!!  $!%"!" $ $" &! &! & %! &$$! &#"($#)! &%$*'&,%$*#"($#)#"($#)%$*$#),+1,+1('-#"(#"(! &#"(('-&%+%$*#"(#"!'$!    !"!!! "!   !  "#  !!!"###$!##''$$!"$""!"$#"$$%#$&'## (%&&! !!    "& !#&#!"$"#'##$%$%&&%% (""*'&&.##+' (!!)$$,'!!)""*""* (&&& (""*""*!!) ( ( ( ( ('%(($&%&''&$"!! !" !""$#"%&%)(&%$&$"$$#%$!""#%%&'&' *)"",$$.!!+'&$"""%)+)*)*+!#/#%1$&2(*6&(4')5-.:11=43?55A./<(+7&'3%%1$$0&&2((4))5))6))4''1%#.%#.#!,)(%           '/C&($# " " # (3E2+TA8VD:VC:UC9VD:WE;TC8TB8VD:TB8UB8UA7SA5Q?4R@6T?6Q=3P<3P<3P;3N:0M7,N7,O5,M2)K1(J/&H,$H+#G*"F*"F*!H+"H,#G*"I,$J,%G+#F,#G,%I.&I-&I-&H-&I.(F.(G0*G1.G2.G2,D.'=)"9!420/00/ . . - - .- .. . -/7 :'!>*%C+&?'!A'!D(!M0)W<5dNFlZRtb[ud^sd]te^te^sd]uf_te^te^te`ufate`te`vgbte`tf`uhbuhbtfcsebqfbqfdshfrgerhfujhwljxmkynlzon|qq|rq{qp{qo{qpyonvlkrhgukjvllýýľýýýýľſÿýľ¿˽vt|dckZX_ZW^_\dfcllirspyroxmjsjhpecj`]d`]dc`idajc`ia^ga^fa^eb_hUNZ[S_cakbakIFK                               ,%(623$ #)%)    "!$# $! & %  #! #!$" %#!&$"'" %"!$ #"   ! $$$# %#"(('-%$*%$* %! &%$*&%+#"(#"(('-'&,&%+#"("!'#"($#)$#)#"($! &"!'#"(%$*"!'"!'$#)%$* %%$**)/('-%$*&%+""! &$! !    #"#""  $##! !  !"!!##$%$! !##   ! ! !"! "" "!  "#! ##%'$$ ( ) *&$##+!!)&!!)""*$$,$$,""*""*""*""*""*##+%%-%%-$$,""*&##%""*&&%&% ('&%$%& (&&&$"''"#"! !  !!!"$####%&#$%%&()%$##%'%$$$&&' * * *!!+' * *)('$" "'#&0#$0""/"#0#$1&'3%&2$&2$&2$&2')5+-9/0>43@//;)*6$&2%'3''3((4##/$$0&&2$$0##/%%/##,"","",(#      #)9u|ɼòkee                                                                            #%'((&')!)!'&%')!)!%&%%()&&'((( '( ())()+! ,"!,"!-#","!* +! /%';26C=BZUYwwvt~Ŀÿ¿ƿÿ¾¿Ŀ½þ4#%&% $ $" #$)3$F61UB;YG=UD:WF4R>3Q=3O;0P<1O<0O:/O9.N6,L4*J2(K1(K1'I-$I,$I,$G+"I.$H-$H,#G+!H+#H,#G+#H+#J,%H,$I.%H-%F-%F-&F-'F/)E0*?.'9)$5"1//022000/ / ../00/18#A/)J71O:4M84N95R=4[B8cLCiVOq`Yud]ve^ue^te^te^te^sd]sd]sd]uf_te_uf_vgaufaufavgbuhbuibtgbsecqfbrgcqfdrgeshfthftigxmkynlzon}rq|rq{qpzpn{qpzpoxnmvlktjivlkľýýýýýýľþ¿¿Ŀ¿̽®wv}edl][b[X_`]efclmjsqnwspymjsjgpfcj`]d_\e`]fb`hc`ib_hd_igakgbl^XcTNZb_j]\h][d)$%                                 +"&6/3-(*      !#!&$"( $$"!  #!$ #!$#!&" % #!$$"'! #!!! ##! &%$*$#)"!'! &$#))(.'&,#"("!' %#"(**/%$*#"($#)%$*"!'! &"!'$#)&%+#"($#)"!'#('-#"($ %! &$! &$#)$#! & %! &! &"!'#"("!"  ! $!#! !!# % %#   ! #$%#"!"$!"! !!!!"!!  $$$$% (&%&##,##,%'&""+//7%%-""*%%-""*""*##+##+""* ( (''!!)""*""*$$&&&&%&%$$#''$$&##+""*%#$$#  !!! !!""#%""#""#%&#$%'()($$%%''##$%'((( *!!+)())((&# #' +#%1%'4#%2"$1$$2&%2'(4')5%'3''3#%1$&2+.:/0=,,8**6$%1"$0%'3''3%%1&&2&&2$$0%%1%%0##-)'%!  $         $1jxú}w{# #                                                                         #%'''&')!)!&%%%&&%&&&&&%&'((&'''(())* +! -#","!* ((.$$6,/?9=RNR{tu{|wvwwĿþſþÿĿ½ýmbh'# # $ $" #&,9*$K<7VE=XF4Q=4P=3P>3O<1O;1P;1O9.M5+L5*L5+L3)J0&I-%I,$H,!I.#K0'I.$I."J-%I,$H+#H+#H+#H,#I.%F+"F+"D*#C*#C*$B,&=*$7($3$!/,-03321120. . .0224=)"J70UB;WF?XGBZID\LDaPFhVNo^Vud]ve^ve^ue^te^sd]rc\sd]rc\sd]te^uf_vg`vg`vgaufaufatfauhbvictgbugdrgdpecrgeshftigtigvkivkixmjzom{pozpn{pn{pnyomzpoxnmsihtjiľľý¼ýľžſǯwv}gem^[b\X``]efdlljrspyur{olujgpebkb_hc]gd^hc`ib_hc_hf`jkcnjcm`ZdNJUa_ka_leakPHK                 !!               #6/24//%      !'$+ $!!""!$ ##!&$"''%*!$$"'"!  !###$ % %$#),*0)'.&%+#"($#)('-)(..,3,)1)(/&%+%$*%$*#"($"(#"(('-$#)%$*#"("!'"!'"!'"!'! & %! &! &#"(#$"!' %#"!'#"("!'"""!"  "   !!! %&%+ %#$##" #%%%#"#$!!#!  ! #"!"""" ! !'!!)% (!!)%$&&%$&$$ (%$ (""*!!)'!!)'% (!!)%&'!!)''!!) (&%$#%'%!!)""*&%%$&%"  "!! !#$"#"!"$""""%'& *)&&( *'&%%$&&%#$%( *()) *!!+!!+"", *)'%"  %) , ".#%2%'4%(4')6'(5'(4&(4%&2((4%&2%'3*,8/1=,-9((4$$0"#/#%1%&2$$0%%1%%0"".$$0$$.##-!!+&#      )\kyƻž/*/                  >B@233                                                                ")+ ,! )(')!)!'&&&%&&&%$#&&&'&()'''()(* +! )+! ,"!+! )*(,"!3*)=69GAHg`eyzwxy{ſÿþ¿¿ſþ½¿ÿ¿½þÿODG!%# $ # ! " (1?/)TCZI>YG=XF0/8-,3--2++1'&,&%+#"('&,)(.#"("!'%$*#"(#"($#"($#)#"(&%+&%+"!'! &%$*'&,"!'#!  !!!## "#"! ! !" ! "#  ! !!!"#%$"!$" "#" """ " (#$!!! !   ##!"##!!""#"$$#&%&''&'&'&$%&'''&% (' (& ( (' (%%#!!!""  #" ""#%$" !!"#$#%%&%%%%%&'(('&&%%&&(##-!!+ *!!+!!+ * * * *##-$$.($#  ! !%*+!-#%1$&3&(5*,8+.:'*6')5()5)(4+,8+-9+-9/1=,-9%%1$$0#$0#%1$&2&&2&&2##/&&1$$0""-"",("     %VbtĹžþȼB;?                                                                          $,"!1'$2&%,!!(&''&&%&'%&&%#$%&&&&'()" +" ))* -#"2('.$#)* ,"!* )) )+! .%$901G=D]RZ}y{wz|ſľÿ¿ƿþ¿¿þ½þ7)*"%$ # # " #(5!G61XG?[J@ZI?YH>YH>[I?XF[J@ZI?[I?XG=ZH>[H>YG=YG=ZH>YG=YG=YG=XF5U?6U>4T>3T=4V<3R8.R6-Q4,P3+Q6-R6-Q4,Q4,O2*N1)M0(J.%H-$G,#H-$F,%D,%E,%C*#C+#=(!:'!:& 8&!5)%5,)9/,=3/B5.C2*?.&<*"7"411237B) N8.[HAfTOgWPgXQiZSj[Tl]Vm^Vn_Wo^Vp`XpaZqb[paZpaZqb[qb[qb[paZqb[rc\rc\rc\rc]sd_qb]qd^tfatgatgatfbrfbpebqfcsheqfdqfdshftigrgeshfrgetjhtjhsigukivlkvlkwmlxnmſľſ¿¿̽Ġ{zkjq_]e[X`a_egfmlksrqyus|ur{nksheliflfcjebigdkgdmiclkfmjgoifmcahTS]DBM_^ihhr`_i_[a1()                                 !        "# $!$" #!" # ##!&%#(#!&#!&"!$$"'$"'  """"! "!% $"!'$ $ %!%!% % %$"!'$#)"!''&,$#)&%+('-)(./-4/.4,+1+*0,+1/.40/5+*0-,3('-+*0)(.('-%$*$"!'%$*$#)! &"!'! &"!'$#)$#)$""#  ! &#!!" !      ""    !!!!!! "!%#!!!$#&'&'' ( (&&$%&$%%$$$#!!" ! !!   "#"! "#"#$$%(&'(!!+##- *'&&%%)&''%%%$'()!!+('1"","",$$.##/!!,(&%#!    $$"&+*##/#%1$&2&)6&(6$&2%'3()5((4((4.0JWźǿ̽ĽZSV                              &,,""$%'((), + $""                                        ."#4'&4(&/%#,"!) '%%%%&&&%##%&&'&((')* +#!-$#+! ()* * )()* +! +! *" )!)!)!.'$922LFJg_c|~xysutwĿŽüǾ¿¼¿ÿþĿþſXHK')$ # $ #$'.?+'M=5XG=[J@[I?\J@ZI?ZI?\J@[J@YG=[I?YG=[I?[I?\J@[I@\J@ZH>XFXF=WE;XE4T:0S8/S8/S90T90S9/T90S7.Q4,P4+O3*L1(K0'K0'I/'H/(H/(F.&G.'D+%A*$@+$@,%>-'<0,>41D74K;6J;3E6-D2+A.(>*%;'$9$ 9"<%@*#H7/RB8]KDdSLgXPgXPhYQiZRiZSk]Tl^Uk]Tl^Vn_XpaZo`YpaZpaZo`Zpa\pa\paZqb[rc\qb[rc]te`sd_qc^sf`tgatfbsebsebpd`peaqfbpebpecqfdqfdrgergeshfrgetigsigsjhtjiukjtjiukjͻ¢zzllt\[dZW`a^efemljspowtqzur{omufcigdlfckgdlhemjgokgnnippkrmjqdbhWV]GCNXVapoygenbahIFI              %# $$!!                        "!$ #!$" # #" %#!& # #" %#!&#!&" !!# $# !#$##"($#)$$$! &#"(! &"!' %+*0)(.#"(#"(%$*%$*&%+%$*&%+)(.('--,2)(.('--,2-,2)(.%$*,+1,+1-,2)(.('-#"($#)&%+'&,$#)! & %"!'"!'"!'"!'! & %$   !  ! !"!  ! "! !!"#" !   !! ! !!""#"!! #&''&!!)""*%####"! ! !!!"""!! ! !!!#%$#$###"&)"",%%/"",##-)()('&('( *) *"",&%('&)%'1')2$%/#$."#-"",!!+('%"!!  "%&'(*+ !- "."$0()6%'3#$0#%1"$0$$0((4+,8-/;)*6))5%%1%%1"$0#%1')5(*6))5%%1&&2$$0 ,)%!!        2;KƺʽľŶohj                           $(# #&()+ '"  !                                         $5'$;*'<-)5*'.$#(&$$$%&%$""$&%'((''')(( * )()'()((()('( )* ,#!6-/D<>[QXzovvxqswyľ¿þļ¼¿ǿþ½¿¿Ŀþ¼Ŀ9+,%$" $ %$$'2C0+SA9\JA[J@ZI?[I?ZI?[I?\J@\KA[J@[I?ZH>YG=\J?[I>ZH>[I>ZH>[I>YG4T<2T<2T<2U=2U>1U=1U:0V;2V;1T9/R7.R6-O5+M4+L3,L3,J1*L1)K0'H/'F/)E/)E1+D2-D50F62M:7M<6M;4N:4L:3L94H73G71G70K:3L<8PA?YJF`QKcTMeWNfXOfXOfXOeXNhZQhZQhZQj\Sk]Un_Xn_XpaYn_Yn_Zo`[qb]pa\m_XnaZqc[rc]rc^se_qd^pc]re_re_qc_qc`qc`ob_od`peaodbodbpebqfcpfcpebpecqfdshfrhfsigtjhrhfrhgƣ|{pow__g]Zcc`ggfnmktrqytr{tqzpmvhgngelheneblfckifmmjqpkrqlsnjqecj[X_QISKFPqownktihqbah.)*                 !"''#'," )#&* ##%                          "# ' # " # #""!$!$!$"""! #  # '# ' $"!!!"! &"!'! &! & %#"(#"("!'! &"!'#"(&%+#"(%$*('-('-#"(%$*#"(&%+)(.*)/('-*)/)(.('-'&,#"('&,*)/,+1-,2-,2*)/'&,('-)(.%$*! & %&%+#"( %! &$#)#"( %"!      !!"!""! %  !!!! !#%%$ !"#!"!"%$ !  !  ! " #  !""#!""!""$$$#!  ##  !!! """###!   !"$%#$&#$%(&(!!+ *"",##-'%%%& * *$$''"",!!+''$$.!",$'0'*3(*3$&/!#, "+!",)(('$!  !##$$)!!-!!-"".! ,"".%&2&&2"".$$0#$0#%1''3''3''3&(4'(4&&2&&2&'3&(4%'3')5()6''3%%1##/$$0 ,% !            !.,'7)&/%#)!&$#$$%$#!"$%%'('%%&(('))))()))))('((* -"!2&%=0.D9:RHOmemvw~qt}¿ÿþ¿ýûľ¾¿ÿĿþŽwlm(&$ # $ %%&(4!G5,WE;\JA[J@[J@[I?[J@[J@]KA\KA]KA[I?ZH>YG=[I<\J>[J=\L?]L@]K>[I=YG;YG;YG;WF9WE9XD9XD9[G3V>3YA5YA6X@5Z@5Y?5X>4X=4V<3Q9/Q81P70O6/P7.S8.S6,P7-M6.M4/L60L60K61J72M<7N=7P?8RA;P@:O@:PAQC;QC:TFA]MIbPLeTMeVNeWNeWNdVMeWNfXOfXOgYPhZPi[Sk\Tk\Ul]Vm^Wn_Xm^Yn_Zqb]qb]m`Znb\pb\rc^pa\pc]pc]ob\pc]ob\pb^qc`rdaqb_oc`nc_odaqfcpeaqfbpc`oc_peaqfbpecqfdqgerhfqgerge¾ȣ~{qoydbj^\cc`ggfnlksrqyur{tqzrpxkjqigmjgoebkdailippmtplsrmtojqiel^YbXOZJ@LdbjnnwnmxllvNLQ                 #!!#&""," 0%#(&**$!!                               "# &"$" !" %!$" %!$ # # #""! "!!"!% $  " "$# %$$#)$#)#"(#"(! & %&%+('-#"('&,+*0)(.%$*$#)('--,2*)/+*0%$*%$*)(.*)/&%+! &&%+)(.*)/"!'&%+%$*$#)('-%$*%$*%$*)(.$#)%$+$#"(&%+$#)#!"!   !  !! & %  ##!!#$#$$%#!"#"""##"%%      !    !  ! !! ""! ! #$$"#"#%" !%$$,%%-%$"!!##$"%'' *##-!!+))'(('&&$&("","",%#()((!!+""-()5+/:(,5$'0"", * *)(&')%"#!!"#%&)!!-+ ,"".##/"".!!-&&2%%1!!-&&2'(4&(4((4&&2%%1%&2#%1$$1))5-.:)+7&(4)+8**8++8((4%%1"".'!!           &.fsɼÿĻĜG>A                      !         !""!                                           1$!A,$H0&B.&<*&5'%-$"( &&#%%%%%$$%$&('%%%%'''())* )* )) ((')* /%$0%$6(%?-'E4-K>\J>[I=ZH6R?7TA:TB]K?\H=\H=\H=ZF;\H=YE:ZF;\G]G<\F;]G<\F;\F:[F:YA9]C<[B;ZA:ZA:Y@9Y@9Y?8Z?8Z@7V>6V?7XB:YD;[G>\H@^KD^ME]LE\LD^OGaQHcRJeTLfVMcULdVMeWNeWNgYPhZQgYQhZQhZQj[Sj[Tj[Tl]Vm^Wl]Vn_Xn_Zo`[na[na[na[m`Zna[na[pb]pc]ob\na[pc]qd^qc^qc`qc`rdardaqc`ob_od`rgcsgcsdardaqc`sfcpecqfdoecoecrgergeͯ}~st{jgn_\cbaghgnlkrmltpmvrpyqpxpownmtjhpgcldajlirqnvrowtqzvs{olta\dXQZVNYNJTjjtjlxkoznny\Ua            !##""!" ''#!%&#                              !  !$" %" %"!$#!&""!$!$" !!$$"' #!#$#   !"! &$# % % % %"!'&%+&%+&%+('-+*0*)/217)(.+*0'&,)(.)(.,+1'&,.-3('-+*0'&,&%+$#)*)0)(.)(.%$*('-,+1('-('-%$*&%+"!'"!'#"($ %$ %! &! & %$$#!"! !  %"!' %%#$$$ %"#!"' !& !& %$$#   !!# (" !" #"! !"!"$%## ($$,%"!"&$$, (#!!   #$%%$$&(&%''))(' *&%('%$(((!!+) * *(')"",$$.))3))4!!, * * *!!+(''&('$!!#())! ,"".##/"".##/%%1$$0##/('4))5**7))5#$0#$0''3''3--9+,8%'3''3'(3*)6+*8''5')5&'4&%3$$0+%"               O[iľżrlo                F>?*$$*            $ #&%*-          !! "&'%%*//-1!4!9!#6##)                            ')** * '%#$( *" ,$"-%#+#!)!''&''%$%$$%$&&%%')(') ' '((&$',"!/#!3% >+$I7/PC?]RSncgz{xzswy¾žĿĿþ»ž½¿¾þ½tko)&$" " ! " " &0C1)YF:]L@^MC^MC]LB^MC^MC]KA^LB^LA_MC_MC_MB_MA_MA_MB^LA\J>^L@`NC_MC^LB^LB]K@]K?]L?]J>\I>]I>]I>]I>[G<[G<]I=\H=\I>]I>]I>[F;ZD9[E:_H=aK@aK@_I>`K@^J?^H=^I>_I>^H>_H@^F>]F>`H@_F>]E=^E?^E=]D;]F=\F>]G?_I@_KB_LCaNE_MD`OEaPGaOHcQJcQJdULcVMdVMdVMeWNfXOgYPj[TiZShYRiZSj[Tj[Tl]Vn_Xo`Yn_Xo`Yn`[na[m_Zob\pc]na[ob\qd^re_re_re_qd^pc^pc]pc]qc`qc`rdardardapd`od`qfbsgcrdasdasfcrgergeqfdpecpfdqgergeγ}twjirb_gdbhjiplkrmltpowrqyqpxqpwpoulkqhfofclgdmqnvspwvszuryspvgcjUQWTOWJEPdconp{mqylmwuq{803       (&"! ""%!%# $# "#&(                               !  !" %" %!$" %$"'!$""!$ #"!!$!$!!"$" !!!$#$$! &! & % %! &! &#"($#)#"(&%+'&,*)/&$+/-4.-3.-3+*0&%+)(..-31/6+*0)(.%$+$#)*)/,+2*)/&%+&%+.-5('0$#)'&,&%,#")$#)$#) %$$"!'"!'$ %$$$#$""! "# " % %#" %!"'##$#"#(#$(!"'"#($%*#$*$%,'%# ( ($"& ("!  !"  "! "$%%!!'$%#''$& ( (%#$#$#! "&""*'%$!  ! !    "%(&$#$&&%&("",$$.)(#$ *&'((()(!!+##-))(&' *%%/''1$$.)( *"",!!+!!, *(&&###! !!&*"". ,*+!!-##/&&2((4''3''3&&2%%1! -+'&2&&2%&2&&2&&2((4')5')5**6,,8++7)(7'&3%&3"$1!-+*%              >HW¾ȽǼø2+*            !                                   !&C-*S95T<2eH?pLGpLGZ>:=*)                       !$''&%$%$$&*" -%#.&$,$")!*" )!')!)!'%$$%%&%$$%%&'&&&&&'$$$%&,"5&#=+&E71QIIcZ^wmp~ttsv~ÿþĿþļſþ¼¿¿½þ½ĿWOP"%$$ $ ! " $ )6#!F7.YI=_ND_ND_NDaOE_ND_ND`ND`ND`NC`ND`ND_MD`ND_MB_L@^L?]K?_MA`NC`ND^LB_MC_MA_MA^LA]K?]L@^L@^L@_L@]I>[G<]I>]K@]KA\K>]J?\I>ZF;[F;\F;_J?_K@_K@_K@_K@^J?^J?_K@`LA_LB^J@`LB_KA^J@aKA`JA`JA_JB`LC_LC_MC`NDaOEbQGbQGdRIdSKeTKbQIbRJeUMdULbTKcULdVMfWOfWPfWPiZShYRhYRj[Tj[Tj[Tl]Vn_Wn_Xo`Ypa\oa\pc]ob\ob\qd^re_sf`tgauhbtgaugbugdseard`rd`sebrdasebsebrebrgcrgcrgcsgdrfbrebsheshfrgeqfbpfbpedqgergf¿вtxjjtc_ic`hihplksmltpowpowpowpowpovlkshgojhpjiqqnvtqxwt{uszqowfdkSPWQNUJGOYWcqt~lqymoxqoz]Y\     !   !"#""!#&$!"$&"                                 #$"' "!$" %$"'$"'$"' #"" #" #""!"!"! & %"$###!$$#)#"( % %! &$#)! &! & %"!'"!'%$*#"()(.-,3+*1-,2&%+106=^L@^MA]K?^L@^LA^LB]KA]K?\J?^LA\J>[H<[G<^J?_K@_K@^M@`NB_MA^L@^L@_MB_MC`NDaOEaOEaOEbPFaOEaOEbPFaOEaOE_ND`NDdRHeTJeTLfUMeTLeTLeTLdTKeVMdVMdVMdVNeWNfWPfWPfWPgXQhYRiZSl]Vk\Uj[Tm^Wn_Yo_Ypa\pc]qd^qd^qd^qd^pc]uhbvicvicwjdwidugdxjgvhetectfcugdtfctgdsgdrhcshdrgctifujhshfsheujhujhujhsigrhfrhfsifshgйuzmmudbicajhgolksnmupowqpxpowonvnmvmltjiqjipmlsrpxxu|vs{vt}ts|ifnWT\RPWLKRMLVjozlr|mo{mnzrpv944  " #%%#!!!$&$##"&)                        !!"#!&%#($"'%#(#!&!$" % #!""! !#$#!#!" %$ !$#)"!' %$! &"!'#"!'"!'"!'"!'"!'#"(#"(#"(.-3)(.)(.&%+117./40/5+*0/.41060/5-,10/5.-3+*1-,2+*0+*0#"(++2*+0$$)"!'"!'$#)#"($"!'%$*"!'#$!"!   # %$!!' % !&!% !&"#(#$)"#(!"'"#($%*""( !&"#("#($%*$$+&&.$%+"")&#$'&""*'$$%&&$&&"!"$    #$!!!  """"!#%%'%'%"#"#%"!!#$"!#%&""*%%-!!)%%%&%$$"! # %##-( *( *!!+!!+//8""+))))&'&))('&))((!!+!!,##-))4++6&&/!!,) *##-!!+!!+ *!!+(%%"!"$" $$')!!-""."#/#%1$$0"".!!-!!-##/))5++7##/&&2,,8''3##/''3$$0$$0&&2&(4'*6'(4((5''4%%1%%3&%3%$1"#0 "/+$            $.an̿ϿTOL                                  '"              +!>+*$ 'Q63\Pye͙䭑أyyWJ                !( +!") &%%&&&( (!'( &$$$%%%$" #&( * ,"!)!&((((&&%$##$#$&'&%(0#)>2;LDKc\ayorvxľ¼¿¿ľ½¿ÿþſ|sz. "#"! " # # # &/B.(SD<`QHcRIdSKdSIcRHcRHaPF`OE`OE`OE^MC^MC_ND_ND_ND_ND^MC_ND\L@^MB^NC]LB]LB_ND^LA]L@^LA]K@]K@^LA]K?^L@_MB_MC^LB^LB_MC_MC_MC_MB]I>YE:\H=`LA`MBaOD`NC`NB_MB_MB`NCaOCbPEaOEcQGaOEbPFcQGbPFcQGbPFbPFcQGcQHeTKfULfUMfUMfUMfUMeULeUMeTLeVMeWNgXQgXRgXQgXQgXQhYRhYRhYRiZSk\UiZSm^Wna[pb]pb\pc]qd^qd^pc]pc]qd^re_tgavicxkfzlixjgxjgwifwifwifvhevieujftietieujfshdujgvkiwljvkiwljvkiujhvljvljukitjhukiĿˣ{~oqwddibbigfnljrnmupowsrzsrzqpxnmulksjirlkrontspxzx~yw~xu~srzkjqZX^PMTROWFEOfhsnr~oo}no|qt~Z[c!  !"'$$#!!#%%%+! ("!  %! !%"                           !   !!"!$#!&%#(%"(!$" %"!"!$"!!!!""" !  "$#! & %! &##$! &"!'! & %$,+1%$* %'&,('-#"( %#"(%$*&%+('-)'-*)/.-3&%,/.5.-4.-3'&,('.21977?229329)(/**1)*/&','&,"!'&'-&&,#"("!'%$*#"( %$$ % %!! ! #####$ !&!"' !& % %"#( !&$ % % !& &!"&$##$#"&&"#$&&"&$$""" "! !!" !!!$&%"%&""%&""*'#$$$!!$$#"#%%#!#&!!)!!)%$#"! !   !$#%%)##-##-"", )!!+$$.$$.&&0$$.!!+ *'&&%%'''!!+!!+& *&&1**6&&1&&1$$/"",!!+$$0()5#$/ * *&&$$%!"%   %))+##/#$0 ".#$0&'3$$0$$0((4++7..:**6"".$$0%%1&&2%%1((4$$0"".$$0#%1&(4)*6&(5%'4$&3$&3%&3!". -*(#                  $R]pȼºoih!                             !'C@L                     P;6S91$!<)(kLDiZuڢnmW`A2               #&( '%&&')!'( ) ( '%####$&$#""$%) .$#+#!)'&('&$$$####"#%#"%+#'6.5E;BYOYthryſþſþ½¾¿½þ½gZ`'$! ! " " # '2F4*[J@bQIcRKdSKdSIcRHcRHbQG`OE`OEaPF`OE_ND`OE_ND_ND`OE_ND_ND^MC_ND`OE_ND^MC_ND^MC]LB]KA_MC^LC_MC]K?\J>_MC`NE_ND_MC^LB`ND`ND_LB\I>ZG;]J>_LB`NDbPF_MDbPF`NE`MDaOE`NDcQGdRHcQGbQGdRHdRHcQGcRHcRHcRHcRHcRJdSKeTLfUMfUMfUMdULcULcULcULdVMeWNfWPhYRgXQgXQhZRgZRhZShYRhYRj[Tl]Uk\Una[ob\qd^re_re_tgare_ob\re_sf`sf`wjdwjfwifwifwifxjgxjgykhvievjgujfujfvkgujfwlixmjynlynlynlxmkynlxmkwmkxnlxnlxnlwmkϬtvzdcibagllrmltlksonvsrzts{poxnmtlkrkjronuqpvtqxzv~zxyvvt}nmt`_eQNUQNUGCLXWastrq~qp}orrv837#!"#$$&%#&*##%$#&" !(-+$                            !" !! # #!$"%)'-)(.#" #"" %""# !""#" !!!" %$$#$! &$#)'&,&%+"!'%$*'&,('-'&,&%+'&,%$*"!'#"('&,$#)+*0,+1-,2*)/,+1+*0.-4)(.('-#")%$*'&.&%-('/,+3,+2..4)*0)(0&&,++3))1((.**0$%*%',#$) %! &$ %$ !"!'""!  !   # %$" %#$)#!"!"'"#(!"$##%#$'&#%%%$' (&##$"""!!!"!"&& ($$-!!+((""*$#'!!+!!)%$''&$&%&!!)%%'&$!"#%!!)%"  !#!! !"$&#)!!+"",%%/'&1&&1%%/%%/&&0 *)(&$%$$&&!!+##-)!!+ )""-++8**5$$.##-"","",''4$%1(()(%%#! !! !!#)+*+ !-!-"$0''3))5**6((4))5++7''3%%1%%1((4((4$$0$$0%%1&&2$$0%&2(*6')5(*7(+7$&2%'4"$0 ,)&$                         BM\Ǿʿ~:04                                         ;>L]cv$                            *iOCT90#!)?,)dDC-%                            %%%&'() ( ( '( ) !*"!*" ( &$##$$$$$$#$',#!+#!+! '%&%&%$$#""#####"$("#3,.B9?NGQkak¼½ƿļľ½¾þĿþ»R@B'%! ! " ! " # (7"L70^LCcRHcRIbQIbQGdSIcRHbQGbQGbQGcRHbQGaPFcRHbQGaPFaPF_ND_ND_NDaPFbQGaPF`OE^MC\LA[J@\J@]KA^LB^LB^LA]K@_MC`ND_ND_MC_MC`ND_MC^LB\J?ZH=]K?\J?aOEcQGcPFcQGbPFbPFbPFbQGbQGbQGcRHcSIdSIeTJdSIdSIdSIeTJeTKeTLeULfUMfUMfVMeVMcULcULcULdVMdVMdVNeVOfWPgXQgZRh[SgZRh[Sh[Sj\Uk]Vk\Ul_Yna[ob\pc]re_sf`sf`re_pc]re_uhbuhbvhdsecugdwifxjgxjgzlizmjvkgvkgwlhujgujfujgxmkynlxmkynlzomynlzomynlyom{qo{qo{qozpoϵvw|hgmdahmlqpovonvpowqpxrqysrzmlsmlrnmusrytqxsovyv}{xzwxv~qpxeckPOUOLRPKROJTqo{tsrrpq~wxe`e'"!!!#'*%#%! ! !$'# )011*##                       !!#!&" %" %!$!$)(- #"" # !"!!!###   ""$###" %$#)('-('-$#)%$*('-('-'&,%$*'&,"!'"!'"!'"!'&%+*)/,+1('-'&-/.50/5*)/-,3/.6*)2! (%$,)(0"!)('/--5))1'&/)(0%%+&&--.4+,1''.%%+%%+##)%%+&', !&$ &"!##"( %" $" !  !$ !&"# %!"' "&$ %#$)&', !&"$!!)&#&% ($$,!!)'& ('""*!!)''$#%''#!"" (&%!!)& ( ( * *$$/$$-&$'%%/ )#&& ( (%'!!)&'&&&##"!% ( '$!"%%"%&#"#%&""-##- *$$.!!+!!+%%/('3$$/##- *'')(%$$%%& )!!+ *$$-)*4 *$% *$$."",!!+!!+ *))"","",)$#!!!! ####&)++!".#%1$&2((4*)5&&2%%1$$0%%1((4%%1##/%%1$%1$%1&&2##/$$0$$0((4-.:+,8()5()5'(4'(4$%1 +&                     +4Arƽÿƻ^OQ                                              %&53<                ?+#`OF.$!&6"H-'S50Y;6I0*-                 $&     #&&$%())( ( '') !*!"+#!+#!( %$%&$##%&%&')!*" +! * '%%'%%#"""##$#$$%' 2'*>5;E@H^X_ſƾļ¿ƿÿþ¼¿¿Ŀ½ľ8()#$# " " ! # $ +<&&P:5`MEcRHbQHbQIcRHdSIdSIbQGcRHbQGaPFbQGbQGcRHbQGbQGbQGaPFaPFaPFbQGbQGaPFaPF^MC^MC]KA\J@_MC`ND_MC^LB`ND^LB_MC_ND^MC`OE]LB_MC_ND^LB]KB]KA]KA`NDbQGcRHdRHdRIdSIcRHeTJdSIcRHeTJeTJeTJfUKfUKfUKdSIfULgVNgVNgUMfVMfVNfWOfXOdVMdVMdVMeVNdVNdUOfWPgXQhYRhZSh\Th[SgZRgZRk^Vm`Wm`Yna[na[pc]qd^qd^re_sf`sf`re_re_uhbvicvhevhevhexjgxjgxif{ljxmivlhwlhvkgwlhxmhwlixmlynlynlzom{pn{pnzomznlzpn}sq{qo{qoyonνƜy{jioecilkqpnupovrqyonvppwrqymlrontqpwsrxtrxuryxu|{x{ywv}qpxedlVU]QNUOKRJDP`_myxstpq~tsywA9:!   !  "%&#$""&#  &-10("!                           !! # #!$!$#"!$   #!&#"'# % % %!##$#"# %## %$#"($""!'#"(! &! &%$*'&,.-3)(.%$**)/-,2+*0)(.%$*,+1('-)(.*)/)(.*)/+*0)(.('-+*0+*2-,4&%-+*2&%-%$,&%-%$*%$,&%,#"(#"(().%&+!!&#"(" '! &"!'&%+#"( $ % & % %! & $! % $#  ##! !"#( "&$ %&',&&, !&#$$$*%&,$$!"'""*$$,'%&&&.''/!!) (!!)##+##*!!)""*!!)!!)&$'% (&%%'""*! (($%.$$-!!)##+&&/$$.**3((0$$,!!)##+((1##+##+' (""*!!)!!) ('&%%! !  ""#%%-&&.&$$"#$ )(()'() *!!+"",##- *)(&( * * *'()$$&'' ) )!+##.**5+-9 "."#/""-!",""+"",#".##."#, *() *$"#"#  "$$$#%) , ,##/$'3"$0"".$$0$$0##/$$0%%1%%1&&2##/"". ".$&2%%1$$0))5**6((4++7,+7))5''3%%1%$1##/&          "!        %2am}ut9,,                                             '                   jJ>jJ= "*+'"!                 !#      #%$%%%&%#$%') !*!"*"!*" ( &%''&%#$&&&&')!+" 1&%-#!'%%%$#"###$#"#$&%*!!7.1CFXX]ƿſƿŽ¿¿ľ¿»½¿¿Ŀþ:+.$%#" ! " # % ,7!I:2`RHeWNbTKbSJdSJeTJeTJdSIeTJeTJeTJfUKdSIcRHdSIeTJfUKfUMhWNeTKeTJgVMeTKcRHbQGbPFaPFaPF`OEaPFbQGbQGaPFaPFaPFaPFaPFbQHcRI`PF`OGbQIbQIbQIbQJaOG`OE_NDbQHfUMhWOhWOiXOiXOjYOjXPiXPiXPiWPhWOgVNgVNfUMeTLfTLfUMfVNgXOfYPfXOfXOgYPhYQhYRhYRiZSiZShYRhYRhZSh[Si\Vj]Wk^Xj]Wl_Ym`Zna[ob\ob\pc]re`re_rd_reatfbtfcufdugdvhevifwifwjgwlhvlhwlgwlhvkhvkiwlkwljwljxmkxmkxmkynl|qo}rq}qq}rp}rp}sq|rq|rq|rq{qp|rqθooskjpomsrqwutzusytryrpwrryrrxmlrnmtrqwrqwqnuuqx}z}{yx~vu}mkrTQXROX[YaWP\RJYYVcxxuwwxtuptggp           !#   &'                                      !#!$" %#!'$#("!&"!&!! %'&+$"'   $! & "## % % %#$ %"" %"!'"!'$# %'&,&%+$#)('-('-'&,*)/%$*'&,)(.)(.*)/&%+'&,217,+1+*0.-4,+3.-5108/.60/7-,4119,-5++2)(.'(-**/**/$#)#!($#)%&,$$*"!'''-%%*"#($""(%$*! & %#"(#"(! % $$# $! %! %!"# ! $#" %   $ !""!% % &""(!"'""(%%+%&,' ('(-++3&&-"#(!"'"#)&&.$$,""*$$,$$,$$,''/))1''0&&.((0&&.))1&&.%%/"",!!* ) ( ( '!!*"#-!!+"#,#$-!!+"",$$.%%/$$.##.&&0$$.&&0%%/##+!!)!!) ('%%&%##$$$%%$###'' (&&.&&.""*!!) (&#!"#'()%'!!+##-!!+ * * * *&%) * *!!+ * *("",!"+%(!-$$0%%1""."#- #,"%.$&1$$0$$0%%1''3$$/ *())('$! !!"!$()'(!!.##/!!- ,!!-##/!!-##/$$0""."".!!-!!-$$0$$0''3*)6*+7()5&&2((4++7((5&&2((4'&4""/ ,'!                              " % !% #!!!!        $&4ooȴxx1&%                                                                                   ! $ &*,/562. .$('$%    !' &&&&'%$##$%&'( '%&'&&&%%%&&%%$%*" 0%$5'&7'&1%%,#!%%%$$$$$$#!  &3+/:6?HFNſĿžļ¿ƾ¾¿»ÿ½þýpgj)%$#" ! ! " % -=(%QB9bTIgWMeVMeVMhWOhWMgVLfUKfUKgVLgVKfUKfUKeTLfULgVMgVMgVNhWOgVNfWNhWOfTLdSJdSJdSIcSJcSIdRIaPFcRGcRHbQGbQGcRHcRGbQGbQHdRKbQIaOGbQJeTLcRJbQIcRJaPG_NDaPFeTLgVNhWOhWOhWOiXPhXPgXOgWOfWNgWOgWNgVNgWNfVNfVNgXOgWOgXPgYPfXOeXNgYQhYRiZSj[Ti[ShZSgYQgZRh[Sh[Uk^Xl_Yl_Yl_Ym`Zm`Zm`Zna[ob\qd^re^qd_tfctgctgdtgdthdtgduietieujfvkgvkgvkhwliwliwljwljvkiwljxmkxmkxmkynlzom~rq}qr~rr~sr|rq~ts}sr|rq|rqzpozqpοǿưusxlkqqqvsrxvu{yw~vu|srzpoxpqxontomuqpwutzqnurnu{w~}{zwv}nns[Y_QNUYX_TP[XQ]UP[ssxzy|wyruz}CBD                                                ! # #&$*%$)#"' $ $#%$)"!&# #" !"!##! %! &#"! &$#)%$*##! &$#)"!'$""!')(.'&,#"(&%+%$*%$*&%+#"('&,)(.'&,('-$#)&%+*)/'&,+*0.-5-,4+*2,+3,+3-,4/.6--5008,,4,+3007209,,3((.('-'&,++3++3&%+$#)$#)%%+%%*&%+&%+#"(%$*$#)#"($#)"!'% %" "" !#! 1.zxOcuwQ,0""!" #! %"!&"!&$#($"!'"!)'%!"'##+!!("#(#$)"#(""*!!)$$,$$,$$,$$,&&.$$,$$,''/&&.%%-))1$$,""+##-$$.##,$$-""+""+##-$$.'(2&&0!",$$.))3**5((2''1))3++5,,7''2%%.##,!!) ('%&&'&$##"#"%&%'%&'& ($$,##+ ($" #''"", *(') * * *( *(&&'!!+!!+)'$%') )*"#0$&2#%1 !-!". #,!$-!#/!#/$#/##/##/##/""-)((''%! !!  !#&(!!+)*%%1%%1##/##/!!- ,!!-"".%%1%%1!!-##/$$0$$0&&2''3((4))5&&2''3,,8,,8))5&&2$$0&&3$$1,)                   !$ #'"$)%%+"!%        "NTeXGD                                                                       *?LW_bfig i#m"%p%*r"&k!%d$#]&"X'$P'"D"6$  "!&!&& '!&&%#"$'''''%$%%$$%%&&&'''&&( *! ,""/$$1&%/%$)!'$##$$###"!#-%(81:=8Be`hÿÿſžĽþſþ½ÿRHH"%##"  ! $ .F1,ZH?dUJiWMhXNiXPjYQiXPhWMhWMgVLgVLfUKfUKhWNhWOgVNgVNhWOgYPfXOeWNfXOfXOdUMdUMeVNcULcVMcULcTKcTJdSJdSJdTKdTKdSJdSJcRIbRJbRJbSJ`PH`RIaTJcSKdRKdSKbQI`OFaPEbQHeTLeTLfUMgVNfXOeXOeWNcULcULgYPfWNfTLgWOfYOfXOhZQeXOeXNgYPdWMfXOgXQgXQhZSi[Ti[Ti\Th[Sh[Si\Ui\Vk^Xm`Zm`Zm`Zm`Zna[na[pc]qd^re^qd_sebsgdshdshdtietieujftieujfujfwkhwliwljwlkvkiynlynlwljxmkynlynlynlzom|pp}rr~sr~rr~ss}ssutut}sr|rq|rq|rr˿ȿ̱|z}mmrqrwvv|xw}xw}vv}uu}rsypqwqpvpovpowutzrqwomtwu{~}{zwvtrx_[aPKSYW]URZUR[US\ggq}}wyvxvxz|rqx                                                     !!!"!&#"'"!&" $"!&#"'%$) $ % %$# ##!"!$ %#! %$#)"!'! &"!'$#)%$*"!'! &$#)"!'#"(&%+$#)%$*%$*)(.)(.$#)&%+*)/)(.&%+'&,('-)(.+*0-,2)(/'&/&%-)(0'&.'&.('/('/))/-.3*)/,+3,,3,-3328.-4/.4++2*)0)(.'&,+*0-,3)(.'&,'&,$#)('-%$*! &&%+%$)%$*###  #a׉ԁwtCO*  # !!!$%$+"!#!(%$*"#)$#)##)!"(!"(!"'"#(#$)"#)((0&&.%%-$$,''/''/$$,((0((0%%-&&.))2**2**2&&0''1&&0''1**4&&0&&0"",**4**4&&0&&/''2//;,,6&&0''1%%/((3''2%%0$$-"")""*!!)&%% ( (&$%#% (# ('! #%% (##+##+ ("!$%' *)((("",$$.!!+!!+&&0!!+()(&$'%%&$ ) * !+!,&(4(*6++"$/$'/!$-#%0%&2$$0$$0$$0##.!!, ) +!!,((%#""#%%()) +!!-!!-"".##/ ,!!-"".$$0%%1$$0$$0%%1((4''3((4((4++7**6''3((4))5''3&&2%%1%%1%%1!!,*)                            %"#&"$%!"% "!       6=L~įli-                                                                     !/IZclrwyz!} {"{$~%(!*#,",#,&-'.+/z,/t)+e !P>/&$!'('&%$#"%( *!"-$%+"#&$%$##$%'&%&'( ( '''(() ,$"+"!( &%#$%$#$###!' 5.2606LGMĿƿƾĽÿĿþ¿½¼?/2%#! " !  ! %/G5.\LAeWLhXNfWNiYPjYQiXPiXPhWMhWNiXPgVNgVNhYPhYPiYQhXPgXOgYPfXOfXOfXOgYPeWNeWNeWNdVMeWNeWNeWNeWNdULdTLdVMdVMdULcSKcSKcTKbTKbTKaSJaTJcULcTLeTLeTLdSKaPG^MC_NDbQHcRJdSKdVMdVMdVMdVMdVMdVMfXOgWOdTLeVMeWNfXOfXOfXOfXOeWNfWOhYRgYRhZRi\Tj]Uj]Uj]Uk^Wj]Wk^Xk^Xk^Xm`Zl_Yna[na[ob\pc]qd^rd`qd`qeargcrgcrgcshdujftietieshdvkgvkhwliwljxmkynlzomzomzomzomxmkynlznmxmkxmk{oo|rq}sr~ts}sr}sr}sr~ts~ts}sr}sr}sr¿ȼŽ˱w{ymnrstyxx~zyzywv}vv|vx|tuzmlrmlrqqwontrqwpnttsy~|{wv~spyf`kSMXXU\^[bTRZZYc^]h}zyysuuvwyHGJ                                                         ! ! %#"'"!&"! %"!& $#"! %$#)"!'$"" %#""#! & %$$ %"!'&%+$#)! & % %! &#"(%$*,+1('-#"(('-#"(*)/)(.$#)$#)('-*)/)(.*)/('-+*0)(.('-&%,-,4('/&%-('/%$,$#+**2*+/&&-*)/'(-)*/)*/&&+('-,+1*)/('-,+1'&,,,1)(.'&,&%+('-)(.)(.%$*"!'%$*%$)(',##'$#    $!lk;lۂރeYwXd<   #")DA2ijU79*!!( "'$#)''-$%*$%*"#( !&#$)%&+''/$$,""*&&.((0''/))1&&.&&.$$,%%---5''/++4**4&&/ *&&0..8--7))3##-%%/((2))3##-%%.''3++7,+6()3#$-'&2.-:++5$$-""+%%.!!) (!!) (##+'&#"!"  "!!%$$%& ( (#!$'&$("", *"",&&0"",%%/$$.$$.##-(&&&%%&'%'&(!",!%.&)3,.9(*6 "."$0#&1"%- "-$&2%%1!!- ,*!!+ *)!!, +'%#!"#%&*+'+ ,*+ ,!!-##/$$0##/$$0%%1$$0$$0$$0''3((4**6**6++7,,8&&2&&2++7((4&&2%%0##/ ,("                        # !% %       $0fkzB2.                                                                            *G\hsxzyz{} !!#%)))",%.&/'0(1&/&0,4.5,3x(.e#'N#"8' ** "'&%#$$&*!","#/%&+"#'&%$$%%')!( ''( ( )!( '''&&''%$%$$%$$$#$$!$1*+6/4:38`QGfYOeWNeWNdVMfXOfWNfVMgXOgXOgVNgVNhYPhZQgYPfXOgYPhZQfXOhYQhYRhYRgYQgYPfXOgYPhYQgXQgXQgXQfXQhYRiZShYSfWPeVOeVOdVMeVNeWOeVNdUNdUOeVOeVPeWPfXOeVMdTLcRJ`OF^MD^MEcSKeUMcTKcULcULdVNeVOeVOdUOeWOeXNdVMdVNdVNeWOfWOfXPgXQfWPgYRgZRi\Tj]Uj]Uk^Vj]Wk^Xna[na[pc]pc]pc]pd^pd^pc]qd^rfbrgcrgcshdshdqfbshdujftietiftietifvkivkivki{pn{pnzomynlzonynmynkynlznmzpoyonyonzon{qpyon{qp{qpzpo|rq|rq|rqutuuvw̿ǼĻпȮttvwv{|{~}~z{xx~wx}vv{vuzvuztsytrytqxrnvqnuxw}~}{yusyedjTSYTSZ_^eXU\[XaXT_ro|~x{x|w{ux~PPV                 $"                                          " %"! &$),)/%#("!&"!&%$)%#(#!""! &$"!""! & %""!'#"(#"($# %"!'! &! &! &#"("!'%$*#"(&%+-,2)(.('-)(.,+1-,2*)/*)132:..5-,4.-5&%,&%-%$,%$,54<.-5%$,*)1,,5==E,,4(&/,,4)*0%&+*)//.5//7-,5.-5108,+2'&,'&,'&-$#)$#)&%+"#( %!"'"#('',)(.#"(##)      Rpj{xfXYdkG    fa<ߓnURXd/4%#"&((-&',$%*"#(#$)().)*/&&.,,4))144<55=119++3,,454=54?--6,,4--511://9,,5//9..844>33=..8--7/1814<+-7./9/0:/.8+,5./9))3((2((1""+&&/##-!!*&%$ "!  !!!  ""$&&%$&&(()''()))"",)##-'%'&%&''&(#+!#,''157@/5;(-4$&2"$0"$0$&3%'2!$-!$,!* ) )(()'''%! !!"#%&&&') *!!,!!-$$0$$0&&2((4%%1%%1$$0''3++7,,8((4&&2&&2''3))5**6--9--9**6**6''3$$0*'(                                  !$!"%"    4=Iÿql2%!                                                                 3Rc r x xz|yy~")%5/>EROXP\Wf_p]nEVHWFTBP7B/8*3(1(1)2-6.8.8-9/817/1n+*S*$9)*' ''( * !(&%&''')(((')!)!+#!0'%0'%,#"*" )!( %"$###"#"####%'#$) !1(,4,1B>C¾Žþƿžºÿ¾Ŀ½ľ@49!%"" ! ! ! " %,@+%WC=cRJfXOfXOfXOfXOfXOgYPhZQgYPhZQgYPfXOhZQhZQhZQhZQgYPi[RhZQgYPgXQiZShZQgYPeWOeWNgXQhYRgXQgYRgYRgYRhZRi[ShYRgXQfWPfWOeVOfWPeWOcUMeVOgXQgXQeVOeWOeWNfXOeUMbQI_NF_NFaPHdRJcSKbTLcUMdUNeVOeVOfWPeVOdVNdVNfWPfWPfWPfWPgXQhYRgXQhZSgZRh[Sj]Uk^Vk^Vl_Yna[na[ob\qd^qd^oc]pd^pe`pe`qfaqgcshdtietieshdshdtidtifujfujfujgvkivkiujhvkixmkzomzomzomyonynmyomynmzonzpoxonypozpoyonyonzpozpo{qp{qp{qp}sr}sr~ttuvɿǼľӾǪz{y||~}}}~yzxy~wy}wx|uuzutzttzusyrpvpnuww|}|zywu{jhmWU\RQYZY`[Y_ZX_US\dbnzzwyx|vzvyxz|},)(                    """"                                     !$ " ##"''%*#!&!$&%*,*/(%+ $!!!!!"###"# %$$! &#"('&,"!'!# %#"(! &! &"!'"!'"!''&,#"("!''&,'&,! &&%+$#)&%+('---3,,3,+2*)0,+1/.60/743;.-6+*2*)2%%-*)322:118%%-++2,-3)*/'(-,,3**222:22:00766<1/5.-3+*1,+1#"($$)%&+&',$%*!"'&%+#$) &      Pqdorc\__jxW      2(lf`Qe]++1$%*((0&&-"#(#$)'(-*+1,,3,+3--5..6++3++3()0+*310:++4''/((0**2&&.&&...800:++5++5&&0%%/##,$$-%(1%(1%'0&&0$$.$$-''0!!)%% ( ''&%&#!!! !!$!"!"#%#$&$$#!"#&((( *"",$$. *!!+!!+ *(&'&''(!",$$."","%/#&068?;>C'*4!#/$&3%'3$&2$&2&(3$'0!$.!+**() *'$%$ """""##$&*!!,'##.%%1##/$$0''3**6((4((4''3((4''3&&2&&1&&2**6,,8++7+,7--9..:--9*)6%%1##/'#!                         %#") '#   (2gn~μUC?                                                                 "#R,3u&x!w!xyyz!~*%2/<1?2A3E4F7F8C7E5F8K*6(3(3'3+64=7,&SC/07-.4((-('-*)/('-,+3,,4*)/)*/*+/      6.ˊ|mbe`TPVueVVTZiglpl\a?wuyprvvwzᐥ~"()/!"'$%*%&,%&+%%,''/''/**2))1&&.$$,""*))1''/''/..6..6++3''///7//733;,,4%%-++40/:229+,3((2((0&&/$$-""*##,!!*&&%%""$" "%#! !$%"""!"""#$ (##+##+""*$$,!!*)) *&((('%$& )('( )!* "+#%."%.$'0%(3$'2 "-$$0%'3#%1$&2$&2$&2#%1 ". -!,"+(&'&""! #&&(!!-""/##/%%1$$0"". ,+!!-##/$$0''3&&2&&2&&2''3''3))5**6++7++7--9,,8++7--9**6))5''3!"/(%#                 *%(/)+0')2)(,$"$ $,8foο°xr<0-                                                                      B\h!t)}.:1?!.~"xwwxyyxx{|||}}   $#)!( '$*%+$,$-'//99B8B4?0;-8-8,7+7.<1@3C1D4MC_IePlF\*1H%'&&'$&&&)"'''' '%""####"!!!!  !#$$#""!) "+"%+"%,#%+#$,$%+#&2,3zt{¿ȾĽþüÿ¿þĿ½½L=C$'#   ! " " # %3N81`NDj[Rj\Sk]Tk]Tj\Sj\Sk]Tk]Tk]Tj\Sk]Tl^Ul^Ul^Ul^Ul^Uk\Ul]Vm^Wn_Xn_Xm^Wl]Vm^Wl]Vj[Tj]Ul_Wk]Vk^Vl_Wn_Xl^Wi[Sj]Uk^Vj]Uj]Vh[Th[Sh[Sh[ShYRgXQgXQgXQfWPfYQgZRi\Tk]Uj]Ui\ThYRfWPdUNdUNdUNfXQj\Uk]Vk]Ul]Vk]Vl_Yk_Xi\Uk^Xl_Xk]Wj]Wl_Ym`Zna[na[na[ob\na[na[na[la[nc^nd_mb^mb^nc_od`nc_peaqfbrgcujftifrgetigujhujhujhujhxmkxmkwmkvlkxnlwmlxnmxnmwmlwmlyonxnmyonzpoyoozpozpoyomvlktjjwmmxnnwmlyonxppypqzqr{rs{rszqr¿¿¿ɿǾ̴ºúù»ĺó}~}}{zyx~vu{wu|}||~nnt_^e\Zbkitnkwmjvb`nIFR_]e~~unv"                                            ! !!!!"!!"" " #"#$ %"!'%$*"!'$$"!'$#)#"("!'! & % %! & %$ %"!'"!'$#"(%$*&%+#"(('-*)/-,2&%+'&,('-,+1+*1)(.)(/+*2*)1+*2*)/)(.('/&%+++0++0('-&%**+0/16*)/('-&'.007218)*/-.30050/5,+1((/--5()/().''- #      $UQ2Vxyg^ZWW^ZWPTYTVW_birajh'" r~ځnp|sw}~ځEO5))0&',&','(-+,1))0##+''/''/''/''/$$,++3&&.$$,''/))1((0''/$$-$$,$$+%%-##+##+##,''/&&-""*##* (!!) ($#$$#"#$$! $'$""&'#"#"!#$%&% (!!*'& ()(((''))&&(&( )("+"+!$-$&1#&0!$,$&0')5&(4%(4%'3$&0"$0$&2"$0 ". ". , ,",!*(&$"  !$%((*"".!!, ,"".$$0 ,!!-"".##/$$0$$0$$0&&2((4((4))5((4))5))5**6**6++7,,8)*600<*+7''3%&2!-&!                )#'7.06/.3.*-($$$PSbͼt`[-                                                                *Obn&v&11>.<*} xwxyyyz{{{||~!%#($)#)$*$*$-&/%.%.'1.:4@7B3>/:.9,6,7)71A4I5QJkWzRtQrI\./E( &'&$$$$%%&'&%$#"#""###"!"!"#$$$%$! &,"$,#&+"%*!") !,$'.$(.$+[T\¿Ⱦľľû¿¿Ŀü»z2#(&$#   ! " # $ *;$"O<3aRGi[Rj\Sk]Tj\Sl]Ul^Ul^Ul]Tk]Tj\Sj\Sk]Tk]Tl^Um_Wm^Wk\Um^Wn_Xo`YpaZo`Ym^Wm^Wl]Vl^Vk^Vl_Wl_Wl_Wm`Xm`Xm`Xk^Vk^Vk^Xl_Yk^Xj]Vh[Sh[Ri\UhZTgWPgWQgYRfYQfYQfXQgZRj]Ui\Ti\Ti[ShZSgXQdWOdWOdXOj]Uj]Ul_Wl_Xk^Wk^Xk^Xk^Xl_Ym`Zl_Yk^Xl_Yna[ob\ob\ob\na[la[mb\la[mb^nc_nc_nc_nc_nc_od`peapeaqfbrgdqfdrgergetigvkivkivljukiukiukixnlyonzpoxnmyonyonyonyonyonxnmyonzpozpo|rq{qpyooxnnwmmxnozpqyoozppypqypq|st}tu}tu{rs¿¿¿ȿ¿̵Ļŵ}}|{xt|{x}}qrvaafZW^hfpnmwmlvggsMLUTPX~A;=                                                    !!!  !$" %!#"!"""!" %"" %"!' %"!'"!'$#)%$*#"(#"(! &! &! & %#! &! &"!'$ %#"($#)"!'$#)%$*#"(#"("!'$#)%$*&%+%$*,+2/.632:218*).-,3008..5'(.,,1*)/'&,'',0060/5,+1''/**2329+,1,,2.-30/5-,2006+,2)*/().!       癵nad`]`ZW^UV[\QU^Y_gliegfvvxكtvxkzxjxwٓw))/%&+$%*'(-)*/()/##*%%-##,!!)##+$$,$$,##+##+""*%%-%%-$$,!!)!!($$,""* (!!)'""*((0""* ('!!) ( (%$&"!###!#%&$#$%#!"$"#"$%""#' ()!!+ * *!!+(&"", *%$ )(!* #,"%. #,"%.),7(*7(*5#&1%'3&'4#%1&(4'*5%'1"$/%'3 "/ ".#%1"$0+ ((%#"#  $$&''''++ ,%%1&&2%%1$$0!!-"".$$0$$0&&2,,8**6++7**6,,8++7))5**622>,,8&&2))5**6+*7&&2!-'#                    ($$2--/+)&#" 01@ruοθ[PK                                                    4 Vhn$s+40:)6(~ yxyyzy{}}|} %#(!' )!*#,$-&/%.&/'0*3.72<2=/:1&;$9#6$5"0#.$.%/%.$-$.&0(2(3(3*5*7/>CQ7B*4'2(3(62B?TEbEfCeEgLkLjIdJXu/+6&$""###""#%%%$$$&') !'%#!!!!!!$+"%-$'-$'+"%) #)!$& "%!&!#)#&-)/ecj»»þ¾¾¿ÿþºĿÿþþžûMFJ"%"     ! " );%"VA;hUNn]Uo^Vp^Wp_Wo^Vo^Vo^Vn]Un]Ul]Uj\Sl^Un`Wm_Vn`Wm_Vn_Xl]Wn_Xqb[o`YpaZo`Yo`YpaZo`Yo`Yo`YpaZm^Wm^Wm^Wn_Xl]Vm_Wm`Xm`Ym`Zm`Zm`Zna[l_Yna[m`Zl_Ym`Zk^XnaZna[na[na[m`Zna[na[m`Zm`Zm`Zna[k^Xh[Ui\Vi\Vk^Xna[pc^tfbseardaqc_rdardardatfctfcsebrdardaugdtfctecsfcqfbpeaqfbshdshdrgcrgcqfdrgeshfujhvkiujhtigtjhvkiwlkvlkxllxmmxnmxnmxnmyonzpo{qpzpp|rs}st~tuuv~tuuvvwuvwxwxvwvw~uv}tu~uv~uvvwvyx{x{x{x|ξǷ¯v|`aeijomnslmtijpebiUO]xyTQW                                     !#"             !&%*'%* $!" # $#" "!')(.(',#"'"!&#"'"!'"!' $ %#"(! &$!!#"!'"#$ %"!'! &! &#"###$$$# %#"("!'#"(#"(&%+'&,$#) %$#)&%++*0('-%$*&%+'&+*)/)(.('-*)/*+0().,,2..3//7/.6*)0('.&%,)(.**0)'-     pi;KP¿cV6MeWd|u[Ua]NNY[XNLVPQXFMXXXbemrplotrwsl߀~|z|zsÄ2:- "(""'$#)''/((0%%-((0"")&',+,2%%-$$,''/''/""*""*$$,##,%!!)##+'$###!!!"!"""!"##$#$&$!  #$#$& ( (!!)!!)$$,$$, (!!) ('(&'&((&&() )( #,"%."+!*"+$'0!$- #, #,#&0*,8')5&(3%'2')4'(2'(2((2&&0 !+'$"$'!   ##$&'(**)"",##/!!-!".!"."!-$$0""."".''3%%1''3''3((4))5((4))5+,8..:,,8//;./;,,:-,:'&4"".'!                                +%(,&*% $*.?bf{ɿʽɵwtA3/                                                                  "D S]k)1zKUIX%5&|"{!z z z!|#&( ,.04!8%=$=%=%<'?)?%7%5&3&1%0$/$/&1'2)4*5*5(5'5)6&2$1(5+93E>VDcGjEjCeDcFdMhP_53@$$##""!"###$%$$$%%%%$"!!""" !'!",$'/&)-$'+"%*!$) #(!$& "%!(!#-%)DBH¾½¿Ŀüÿ¾ĿĿ¼ý=05#$"      #*:)'VD?iXPn]Un]Up_Wp_Wo^Vp_Wp_Wo^Vo^Vk]Tk]Tl^Un`Wn`Wn`Wn_Wm^Wn_XpaZpaZqb[paZo`Yo`Yo`Yn_Xn_Xo`Yo`Ym^Wl]Vl]Vl]Vm^Wm^Wm_Xm`Xl_Xl_Ym`Zna[na[m`Zl_Ym`Zl_Yl_Ym`Zm`Zna[ob\na[ob\pc]m`Zm`Zna[ob\m`Zl_Yj]Wh[Uk^Xm`Zpc]re^pd]ob\pc]pc]qd`tfctfctfctfcsebtfcugdtfcsfbtfcqeapeaqeapeatiergcpebshftigtigwljvkiujhtigtigtjitjiukjxmmxnmxnmxnmxnmxnmzpozpozpp|rs~tuuvwxvwwxyzwxwxxzvx~uxvwvw~uvvxxzwzvywzwzx}̼û~bejklqlmrlnsilpfel]Vclly{y.(*                              #&"                 &$)-*/&"("% ##!&$"'" % $ $#!"(','&,%$*&%*$#("!'"!'#"'! % % %$ %! &# %"!' %# %"!'$#)"!'! &! &! &##$#$##$$! &"!'"!'#"(&%+#"("!'&%+)(.('-'&,('-'&-+*1//6+,2'&,&%+((-116.-5((0&&.//7+*3+*2*)0/.4217%#)    `k]2Gupaqrj`TTTUR_d[`Q[NKVGO_[[dixzsknsuw⃹qzyu||{ĀBL:!%$)#"(%$+&&.&&.!!(!"'$%*$%*""*!!)""*##+"#)!"(&'$#&&$#$#! "###$#!!&%$$#$! "%&$&$' ( (!!)&%&&&$%&(' *'&'"+ )( )"+ #,"+(!$-%(1#&/"%.!$-*,801=*+7'(5#%1$%1&&2 , +""- ) )$!"$ !$%''( + !-!".!"-##.!!- , !-"".$$0##/&&2((4++7''3%%1((4//;+,7-,9*+7+-9,,8,-9++7'(4$%2%$3#"/ +$ !                           %"*&(($%'!"#!==Mu{ĽľǿȼɷDZp\V/!                                                                    ,IWb!o,4~_j|@L'|${"x!y y x(~-/-,.-04"9":";%>%?$=%?(=):&4&3%1%/(2+6,7,7+6'4$1%1%2*8-=1F//WHEk]Tm]Uo^Vp_Wq`Xp_Wq`Xo^Vn]Uo^Vm_Vn`Wm_Vm_Vn`Wn`Wn_Xo_Yo`Yo`Yo`Yrc\qb[paZn_Xm^Wn_Xo`Yo`Yn_Xm^Wm^Wn_Xm^Wm^Wn_Xo_Yn_Xl_Wl_Yl_Yna[m`Zl_Yl_Yk^Xk^Xl_Yl_Ym`Zna[na[na[na[na[na[m`Zna[ob\na[ob\m`Zi\Vj\Wl_Yob\pc]ob\ob\qc^pc]pc^rdbsebsebtfcugdtfctfctfcugdugdtfcqfbpearfbtidtieujhujhujhvkiwljujhujhwljwljvkjvlkwmlwmlxnmxnmxnmyonyonyop{qr}stvwvwwxwxvwwxxyxxxyy}wzwzxzxzwzx{x{x{x{y|y|z~ȿž½ûóikpnotmmrilolotjjp]Xa_\gRNR                $                "$#                  !&#(&"("%#!&)%*)%*&$)"!& $#!'" &$"(%#)"!&" %%$)#"'! &! ' %"!"## %"!'! &"!'# %! &! &"!' %! &&%+('-! &# #$"#$$ %"!'! & %"!'#"("!'"!'&%+&%+'&,('-*)1-,5.-5..6--4''.0/5217.-5,+3((0**2//7+*2-,2/.4-,2'%*    b]Bʉ:z&xseVWkgaYYULOX`Z[KTVSLMU\a^\o臿wqvttr~cq{w|z}ԌGO> &&%+$#)#!(##)$$+!!'!% %#$)$$,##+$$,&&.$$+%&+!"'#$&%$$'$ !#&##$&%$ (&&$$&#!"##""#&'&%%'##+&%%%%''))')#&/#&/"%.!#,#%/&'0#%.%(1%(1%(1%(1#&/"%.%'2''3%&/!$. , !-"".!!,!!- +&&" !#%((!,!-!, , ,+ ,!!- , ,!!-"".!!-%%1()6&(4&&2&&2**6--9..:*+7))5**6++7''3$$0%$1#"0*" ! !!#!                                $!!,(',((" "&CK]~žɻǴZF@&                   &                                           3MYd#p/7O\cqES"."w"s,x9"I'S$V'Y'U#N#MHA@> ? ? ==>?'E-G+B&8&3(3*5-8-9,8+8)6%2$0'2+7,=3J;YCiIpOsMnCb_Tr5;O"%###%&$!""$%%$#"""" !#"!!! !!#'!#*$&.%(1(+2),2),.%(,#&("' "& "%!*"%1+0]X`¾¿ÿÿýĿý¼Ŀý_RT'%"       !0J77`OHk]Tm]Uo]Vo^Vo^Vq`XraYo^Vo^Vp_Wp`XoaXo`Wn`Wm_Vn`Wl^Vm^Wo`Yo`YpaZpaZo`Yn_Xo`Ym^Wn_XpaZo`Ym^Wl]Vl]Vn_Xn_Xm^Wo`Yn_Xm_Xl_Yl_Yk^Xl_Yk^Xk^Xl_Yl_Yk^Xk^Xk^Xl_Ym`Zm`Zna[ob\na[m`Zm`Zm`Zna[na[m`Zna[k^Xj\Xk]YnaZob\qd^re_pc]pc]re`rdasebtfcugdugdsebtfcsebtfcwifvhetgctgdtfcrfctigvkiujhujhvkivkivkixmkxmkwljxlkznnxnmxnmxnmxnmyonzpoyoozpq}st}stvwwxvwwwvwxzyzyzz|x{y|z}z}z}x{y|z}z}y|z}||ɽ¿ſʽǯppunotnnspqumpwkmsa`dXU\nry!!                                                  ! % # #'#(2+/.',&"($"&%"(&#)#!'$!('$*'%*$"' $$# % $##!! %$$ %$!##"'! %! % %! %$#)'&,%$*$"#! & %$$! & %$"!'$#! &"!'! & %! &#"(#"($#*'&-('.,,3,,3&&,*+0117..5,,4++312:46>**2))0+*0,+1+*0     D>+ϖ}8lgum\`XWdeSU\UQORWSSJQRIOXZdncdxwupqvZkxvu|ciJ ().#$)"!'((-%'+#$)"")!"($$*&&.&&.$$,%%-$$,##*&#&""*!!)$##!  !"$'"$&%$$&$"""#"!! !$###$'$%&%$%('&') * *$$.'(2')2%'1+.8&(1&)2('1##-!#,"+!$-#&/!$-"%/$%1))5))5"$.!$- *') )'%# !"#&') ,*+!!- ,* , ,+"".!!-"".$$0()5+.:)+7''3&&2((4))5))5()5))5))5**6$$0"".!!.*$ $" "&%!                       $""-)*+'(" #1NUhĽɼIJupM;8                  '+                                                6O[d!n/:AQEX/@.{.t B-Z/j+r,v+x,{/{-x+v+t/u5u.m0l,f&a#]WO$K'L)P.O1G,=,8,6/=2B/?,:(4%0)2*6);7L@\GjPuRtPpIgA_>]Mk3};u0l3j@lHl>V9K6H4G4E0=)6(3)3)5/@9OB_KlPrUuTsKiC`D_FZ/3H"!""#""!""####!!$#"!"  ""##"!"$%)#%+%'-$&-$'.%'.%%,#$*!$) #' "(!#)!$& +"(408qpx¿ľ¼ĿĿþ¼ſſýǾ¼u|1"#%#     " *='$TA:eUKl[Sm\Tn]Uo^Vm^Up_Wo^Vo^Vp_WraYraYp_Wo^Vo^Vn`Wn_Wn_Xn_Xm^Wm^Wm^Wl]Vm^Wn_Xn_Xm^Wn_Xn_Xn_Xn_Xm^Wm^Wm^Wm^Wm^Wm^Wm_Yl^Yl_Ym`Zob\ob\l_Yna[m`Zl_Yk^Xk^Xl_Yl_Yl_Ym`Zl_Yl_Yk^Xl_Ym`Zl_Ym`Zl_Yna[ob\l_Yh[VgYVi[Yl_Zpc]re_qd^qd^sf`sfasebugdugdugdwifwifwifvhewifwifugdvheugevhguihtigujhvkixmkxmkzom{pnzomznm|pp}qq|rq}sr|rq{qp{qp~ttuuuvuvwxxyxyz~{~z}{|{z}z}|}~}}{~~~οƼɺũxx|uuzrpwts}qqzlmr^_djmx+(/                                                !,+/4/5'#) "&*&.-*1# '! %$#($"(&$*)&-#!(#"(#"(#"(#"( % %! &#"%# "##! %! %$"$$ %#"(&%+#"(#"($#)"!'## %#"($"! &&%+%$*"!'#"(&%+&%+('-'&,%%+!"' !&#$)$$*%&+%%,((0)*0'',&%+218.-5" %      {VžYxrKojab[cWFcWY`VOY\d[UTVY_Y[XNiwtscpusxp܊t}v߈ԇ՛9B4'&-*+1,-4--5''/&&.$%,'(-&&.&&.))1))1$$,##+%%-""*""*"#+!!)'&%$""!""!##  "" !"#""$&#"$&&%%'''!!)' ) *"",!!+) *!!+)!*!",$$.!* "+##-%$/%&/!$-$'1%(1 #-"$0#%0%&1#$0!#/ ".!*)&&%"!  #$#%%%) , , ,!-!-+ ,!-#%1$%1&&2$$0''3))5()5(*6(*6&&2%%0))5((4&&2()6')5('3$%1"$0 ,*"! !"$ !"&'%$!                    -%*/)+%$# 35@dgtupC42                                                                     HRYd*y7HFZ6U*V+f(o(v(z'z*|*~)**+.6<949;DKSX\RE<,:,:*5)6/@:QDaMnOqTuUtLiDaG`;Lp((:$#####!!"$#####&( %"!! !###%$  "%( -%'0(*.%',#&*!$+"#+"$) #' '!("("& '".(.UPY¾¿Ŀþ»Ŀÿýſſ¼ƾbY\%%!      #+>)%YE?gUPjYSm\Tm\Tm\To^Vo^Vm\Tn]Up_Wq`Xq`Xo^Vn]Um\Tn`Wo`Ym^Wl]Vm^Wn_Xn_Xm^Wl]Vm^Wm^Wl]Vl]Vl]Vn_Xo`Yn_Xm^Wn_Xl]Wm^Vn_Xn_Zl`Zl_Ym`Zna[na[na[ob\maZmaZm`Zk_Ym`Zm`Zk^Xm`Zl_Yj]Wj]Wl_Ym`Zk^Xk^Xm`Zob\na[m`[l_Yj\Wi\Wj]Xob\qd^re_sf`se`vhdvheugdtfcugdvhewifxjgxjgxjgwifxjgwifwifwihuihvkivkivkixmkynl{pn|qo}rp|qp}qq}qq}sr}tr~usutvuyyxyxyy{{|{|{|}}~~|{|~}}|~}~}~~Ͽź¿ʻë|}vv{ut|qqzoouigpecqhhs                                         !$"'" % "!%,*0$!'#$"()'-*'.'$*#!'%#)$#)"!'$#) %% &#"'#!$ $#"!! %$#)$"###"($#)%$*#"(%$*"!'#"("!'&%+$#)$ % %$#)&%+"!'$#)'&,&%+&%+#"(! &##)$$*$#)#!(&%+!!'&',((-%$*$#)%$,*'0($*     ncBԚvS@XUlbUvzQPTY^RA]^\UUSIO]_[Vexqzurnqz{zق~x{߈ьS\@'$((/%%,#$)"#)##+#"+'&/((1$$,##+!"(!"( !''%$ &"#$"  ###$""$#!!"$#"%%$$ (##+ (!!) (''%$#%&'& *"",##-"", $- "+$#-!"+!%.$'0%%0&'1#%. #,"$/%(3&(4$&2#%1#%1"$0 ","+ )%#" "#$&%%'!,!- ". ".!- , !- "."$0#%1$$0%%1%%1$$0%&2(*6&(4&'3,+8*,8,,9+*8-/=&)6''3%&2#$0!!-%      !%&(('#                    !#$$)! %  "0.                                                        "     +JS\g)v.D7W3b*m't(y*{)|'|(}(~'~(*,.37305;AHS[\RFCC939HVNr=V.A1B3@,8.>;REaMnOrUwTtJiGdJc6Dd%$$""$$##$#"$#&) !( $!!   "%$$#  #&*!#.%(0)+.&(,#&+"$+"$) #'!$$$$%%(!%95;½¿ſþ¹Ŀſþ¾¾ýſľýG<@'&        $ /H2.^KGlZUq^Xp^Vp_Wp_Wp_Wp_Wo^Vq`Xq`Xq`Xp_Wp_Wp_Wo^Vl^Un`Xn_Xl]Vn_Xn_Xm^Wm^Wm^Wm^Wl]Vl]Vk\Ul]Vm^Wn_Xn_Xm^Wl]Vn_Wn_Xo_Zo`[m`Zna[na[ob\na[o`[n`Zo`[oa\pb\qb]pa\n`Zk_Xm_Zl_Yk^Xj]Wk^Xl_Yj]Wj]Wob\na[na[ob\na[l_Yi]Vi\Vj^Wob\re_ugbwhcufcxjgwifwifwifwifxjgykhykhykhykhykhzliykhxjiwkjwljxmkxmkynl|qo}rp}rq}sp~sq~rrtttsuuuuuuwvxxyzy{{}}~}~}~~~|}}~~~~~~~~оŽ¿̺|wysu~rsynnw`^l                                    #" $'&*'&*! %#!&&$)(&+%#(%#(%#(&%+)(.%$*#"'"!'#"("!' $!! %"!&! %"! $! &$ #"(#$$$"$"!' %! &#"(! &$"!'$#)&%+&%+! & %"!'#"($#) % %"!'$#)#"(! &"!')(.*+0(*/&&,.,3.+1'&,+)/     :2̐u^Y~t%Ejb^݆ݎڍaJVUA8Qf^ZZSSRRdhrtvjuwzpvrpyhЅ߄~uz{߆{ojo9{}Jgl_cF #%"' &#$+!"(!!(%%,**1%&+"#(#$)!"' & & !&!#(## %$""#####  $%##%%% ( '& '%$ (""* ('$#$$#""&&!!+"",!!+"","",$%/%'0$$.##-#%.%(1),6+-9$'0%(1&)2&(4%'4$&3')5%'3 ",'%%# !#&&&&!* ".!#/"$0#%1!#/ ".$%1"$0#%1#%1%%1%%1&&2&'3$&2')5'*5+,9//=*,9/.<53D46E,/<')4$&3!#/*$"! "#"#"!" !%' *+)&"                      $#&$!& #0LTd{e`E4/                                               &3#$3&'#     6OS]b0r'P-g*p'v'z)},+~(~&}&}&~&*/0-1425?DNSXVOD@><953;GQzNh>O1=*6/A=UEcKoMsTwQqHgJgLf7Da$ ,$$########%$%%&&$"! !!!#$$# "%-$%1(+0(+0'),#%+"$*!$) #& " !"%!"-*/dcg¿ľ¸ſÿÿþÿþüľľýǿüx4%(*&        $ 6O94dSLp^VtaYub[tbZsbZsbZraYsbZsbZsbZq`Xq`XraYsbZsbZqaYrc[sd]qb[paZpaZo`Yo`Yn_Xm^Wl]Vk\Uk\UiZSk\Ul]Vl]Vm^Xl]Xm^Xn_Zm_Zl^Yl_Yna[na[ma[oa[oa\n`Zo`[pa\qb]qb]rb]pa\m`Zm_Yl_Yk^Xj]Wk^Xl_Yk^Xk^Xna[na[na[na[m`Zm_[j\Xh[Wj]Xna[se_vgbwhcxifyjgzli{lizliykhzlizliykhzmj|nk{mjzlizli{mlzmlzmlzmlymk{pn}rp}rptrtrsr~rsssuuttttuuvvxxzz|}}}}~}~}~~|||~~~~~~~~~~¿̻̿Dz{x|wzru}cdq,,0                                           #!%$)%$)! % %! %$"'%$)#"'! %$#('&+$#)! %"!&$#(-,1$#(&%*%$))(-&%*#!!! %! &$!$##$$!##  ""##"!'#"($#)! &&%+('-'&,'&,%$*! &##()*/%%*"!'%$*((.*+0%&+#$*++11.4*).! %     % ytpvG]s_]hV{nX`N]cNN`^ZTW]YIeye_eqpokf}獲iҁߑی؈ip؁{snuy{uV%(.#&*!$)'*0(*0&',*+/)*/%&+!"'"#(%&+%'+$%* !&"#'!"& %$$"##""""##$#"#!"(&%!!) !&" &%$$$%"#%%%&'&)(!!+!!+""+ *"",!#-'(2((2&&0$'0')4(+4'*3),5%)1'*3%'2"%/!$.!#- *$"  !  !! #!!+)( +"+#%0&(4$&2')5"$0 "."$0#%1#%1#$0%%1%%1&&2'(4#%1$&2*,8+-9/2>.0=43A65C..<(*6#$0 -)&(%"#" !! #$%$$$''&%&)!,*'#                           ("%'""-0ELUQPI@:666301>|Pu?T0=,9-@=WHgLqNtRuQqIgIgNh:Fa"'#"""#$#$#$&''&%%$"   !!"##" "%,#$2)+3*-2)+-$%+"#) ") #'!#!"##$ *%)GFKÿĿÿüľ¿ÿý¹ľľ¼ƾûf]a*)$       %;&$VB=iZQtbXvdZvd\ve]ve]ud\ud\ud\ud\ud\tc[ud\ud\wf^we^vf^uf_te^te^sd]qb[paZpaZo`Yn_Xk\Ul]Vk\Uk\Uj[Tl]Vm^Wn_Ym^Ym^Xl^Xk^Xi\Vk^Xl_Yk^Xl_Yna[l`Zk^Xl`Zn`[n_Zn_Zna[na[m`Zm`Zm`Zl_Yk^Xj]Wj]Wj]Wj]Wk^Xm`Zm`Zl_Yna[oa]m_\k^Zl_Yob\rd_vgbxiezkhzki{li|mj|mj~ol}nk}ol|nk|nk|nk{mjzli{mj|nl}nn}on}on}po~rp~sq~squs~tqsr~rrttvvttuuvvwwyxyz{||}}~~~|}~~~~~~~}~Ȼ}|z}qu~hkuuyLNV !'&"                                                "!&#"("!"" $! % $ $! %#" $&%))(-! %#"&%$)(',*).'&+"!&! %$#("!&$" !#""""!#"!##"($! &$#*$#)"!&&%+)(.,+1/.4+*0)(.&%+ % $"! %'%)(%))%#)"G:)n_JcVG8,"&3"(SrlqkC\gUl^[eX[baf`@OZSYZck\ddd`T_jlzzafڂ{ӄuvxwwڃ|vljp};F, ,.3+-2%(-$%,&&,&&+*+0#%)!!'$$* &&',%&+%&+#$) %$$##!"# %$"" %" #$%%$$##$%""# ($$, (& ( (!!)"",!!*!!*##,$$.&&/(*5,.;,.:((2))3-/9+.8'+3),5&)2!#,"+!$- )(('%"! !""###%('+!". ".%'3&(4$&2#%1#%1!- ,!#/#%1"$0"$0$&2''3()5')5')5(*6)+7-/00=//;**7((5%%1!!-)&('&'$  ##! !"%%%#$'! +#!-)#% ) *(&"                                  )##%!  27Aip~ŰëkYV(                        1--+('     )12"/"0$ 2&"2"01.+*%%!     #-Q!Y T5k$['p)z+*~**+)****)(~)(~&},01682x1|1?HC@?=:8211-,35t1^,E'8-@?VMgStVxTwOqGdHfPi:D_#($#""#$"""#$%&###"    !!!!"   !%*!"-$&0')/&',#$*!"+"#+"#) !&$"$$"$)"%427xx~Ŀþ¾»Ľü½¾¾ù¼¼ŽI@C))"        (=+*ZHCq_VubXwd[wd]ve]wf^xg_xg_yg_xg_xg_xg_xg_ve]xg_yh`yi`yiavg`uf_uf_te^rc\paZqb[qb[n_Xm^Wl]Vk\Uk\Um^Wo`Yo`Yo`Yn_Yl_Xl_Xk^Xl_Yl_Yk^Xl_Ym`Zl_Yk^Xm`Zl_Yl_Yk^Xk^Xk^Xk^Xl_Yk^Xk^Xj^Xh\Wh]Wh^Xi]Wk^Xl_Yk^Xm`Zob\pc\ob\m`Yl_Xl_Yqd^widyjezkf{lh|mj~ol~nkroqnpmpmpmpm~ol|nk|nk|nl}on}on}onqpsrsrtsusususutuuvvvvuuuuvvxyyzz|{|{|~~|}~~~~~~пѾ¸Īu|sxhltmr}ot}  $                                                 #"'" % "!"$$"""! & $# %! &#"'#"'$#(#"'#"'#"("!'$$###!  "! !#" $"!"# %"!'%$*&%+('-#"(! &   +"ҠĖ͞ż}ZՋ}_X]aeKb⌼wS_X\ba`dcTIR\cdecjf]^blejwzd`yxarxyjqrwplihmdoG.-.$!&$ ''*-/3((-)(-ebO||c35%().#$)#$)"#(!"'"#" " %# " &%##$#$% ("#( &%&&&%!!)""*""*""*##+##+$$,''/&&.""*))2++5+-6.1:/1=*-7&(2-,6,,6#&/%&0%&0#&/ !+( !+ *'&$$#"!!$$$&( !+*))+!-"$0"$0!#/$&2"$0!-!- ,"$0#%1&'3()5*+7++8*,8*,8')5)+7*+8)+8*+8((4)(6'&3&&2""/!!- ,+'&%  "!"" !!#%%%%& *%$.(&1!!,#"&!!+)'"                                    %! &!"  7;HhgzðaLM(                               ".3/,+)'&$     @ P=n/f'q&y&|(***+**--)'~)(~(~'~-36+i&T%P%V+^/f4m/i,o/|8983+*---+}/z-e#C-B?TLgStVwWyQqGdJiPj6@Z% *%$##""""!!"#$""!! !  !  %) !*!"*!"*!!) !( +"#,#$) !') !'!& $# % -)-]Z`¿ÿÿÿýĿžļ¼¼ºÿ¼Ľ}8*,,)#       !-H1-`MGs_VxdZwd\wd]we]wf^xg_xf_ziayh`xg_xg_ziayh`wf^xg_yh`wh`uf_uf_te^sd]rc\qb[sd]rc\qb[paZo`Ym^Wn_Xo`Yn_Xo`Yo`[o`[n`[m`Zm`Zl_Yna[m`Zl_Yl_Ym`Zm`Zna[m`Zl_Yn`Zna[k^Xk_Xl_Yl_Yl_Yk_Yj^Yk^Xj^Xk_Yl`Zm`Zk^Xm`Zob\pc]oc\m`Zk^Yk^Zqc^whcxidyje{lh}mj}nk}nk~nkpmqnpmpmqnqnqn~pm|nl~pn~po}onqpsrtstssrusutvtwwvvvvvvuuwwxzxzyz{|{|{|}}||||}~~~~}}~~}¿л¯ĩ~v|u|`enehr                                                !  !$#!! $! &! &! %"!& $"!&$#("!&! &"!'!"# % %! &$$$!!!!#!   !# $ %$&%+$#(      piIŅDŽ}Бˌyzw[TV_gUЀЄӎ͎VNSY`Y]adhX[_bgn__k|whidiptksvzjjeo|x|܃wkhdewxU WR8wuGʆڙz~X ""))*'&}S8@+$%* !'!"(%!# %!"!"!# !& !& &$&&$''##+"#( &&'!!)!!) (&""*##+!!)%%-%%-%%-''/&&.##+##,$$.%&0%&/!!*%&/''1((2((2''1%%/%%/ !+ !*!!+()(&$#!#" ###(&&) ,!".+)) !- ,!".!#/!- , "."$0"$0#%1#%1%'3))5'(4(*6*+7*,8(*6%'3&&2$$2')6)+7''4##1!"/!!-+('(&&!"$$"##$$%&')"",%%0(&1"",$!"%'#!'                                      )!0%(    6:Jhn}R?<                        "))+,'         " A S&]*t%w%}'&~'~)***+.-*))*,(~)|/x&]B<$D,N-S1].[)R&O%V,l=>6*))0,)~(,~-j/S>YHgNqRwVzPpFdKjOi4;S"$$$#!"""!!!!"#""!!!  !!   $') !) !) !*!",#$,#$+"#*!") !*!") #("%$!".%+HAJĿÿÿýÿľĽĽü¸ſümbh1!-("      !3O54hTNvcYxd\xe]xe^xf^xg_zh`yh`xg_xg_xg_wf^xg_yh`xg_xg_xg_vf^rc\qb[sb[td]td]sc\qb[sd]sc\qb[qb[paZpaZqb[paZn_Zo`[o`[n_Zn_Zn_Zm`Zob\pc]na[l_Ym`Zoc\ob\m`Zl_Yna[na[m`Zn`Zpa\pa\n`[pa\pb\na[na[n`[na[ob\pb]qb]rc^rd_se`qb]n`\n`\qb]sd_vgbwhcykhzkhzkhzkhzkh{mj|nk|nk}olpmqnroqn}on~po|nm~porqrqtstststruuwwwwvvvvvvuuwwy|yzxyyzyzz{z|z{z~{|}~~~}}}}~~λ±~qvadncbl969 !                                       !!!! ""  $&%*)(-(',%$)! %##! %$ %! & %#! &$ %"!'"!' %"  !#!!!$! &#     ~ԟ‚z{}u¿qhI}eXXYNbužzݟfVS`WYbd`M`a_aja`oxohm\`lr{p~|i\Tev~txsTdzMY'spGΐq$!# q؋͖҆*+$!#"  $ !&#""$ !& !&$#!% & &!!('!!)!"'!"(##+##+""*##+$$,%%-$$,##+""*##+""* ( ( ( (!!*!!+!!*$#-))2%%/((2((2##.'&1&&0$$.##- *))))'%" ! #&#%%$'++ ++&&2#$0 ".!#/#%1"$0"$0"$0$&2%'3')5&(4&(4%'3%'3%'3&'3%'3%'3')5)*6((5&(5&(4#%1+)*'" !#"!##   #$#&'()!!+"!+"","",'# #&##&                                        )?.)<,%0!'   &BCUij­ta[&#+%#)!#                      (A5a c#t%{()())**,,-...*,,+*~'hA?!?;#A)K(Q)Q(K%B(C"H3nC9.%}%{*}*~(~&~'~+|/s4fDlPwSyTyNpDcIiNf19P!"$$#!"#"!!! ! !""! "!  ! !$) !*!"*!"( +"#.%&.%&+"#*!"*!"( ' & ''$".#(718upwÿÿÿþ»ĿĿþþþļ»ƿĽRFJ++&        ! 5"Q>=jWSwe\xe[we\yf^wf^xg_zhayh`xg_xg_xg_ve]ve]ud\ud\ve]ve]ud\sb[raZraZsb[uc\tc\raZud]ud]rd]rc\rc\rc\sd]sd]pa[pa\o`[n_Zm^Yn_Zpa\qb]qb]qb]o`[o`[qc]qc^oa\oa[pb\pb]pa\rc^sd_rc^rc^te`sd_sd_se`rd^sd_se_sd_te`te`vfaufasd_rc^qb\pa\pa\sd_ufawhewhewheykhyjgykhykhzlizli{mj|nk}nk}ol|nm{ml|nm}on}poqptsts~rptrvuwvvvvvvvvvvvwxx{yzz{xyz{{|{~z~z~|}|}~|~~~~̹±®}lq}_al_^i{|__`  %)""'"                                           $!'!"" $$#($#($#("!&! %$#(#"'! &! &#"#"( $#! %! & %$ $##$!!"#" " $      MI;ØŇvvxjuLXmZUX]]Pg{uviMPWS[_e[NZa_\[Y_yۈzghgdj}ܚrՁwh\^mjtxtlw}UgkEՖz`j>t{Iی~Έƒ\TMIMkzzS!!'$##!"'"#(!"'$$))).*)/&%*"#( '%"#(#$) ''""*##+ (""*""*""*!!) (##+$$,""*##+!!)!!)!!*!!)$$+&&/&&0&&0$#-##,%%/$$.$$.)) *( *$"   ""##%)(++ , !-"$0%'3#%1#%1#%1#%1&(4$&2%'3&(4%'3#%1$&2&'3'(4))5''3"$0#&2(*6''3%%2%'3$&2 ,((%!!   !  "#%'(''($#.&$0%"-)%!!%'!                                     ->,';)#0!"        '@FXquǸı}xH98 & &,$%0''+" %$!                  )BEm%l(y(~)*,,,--/-...-,,,,+.|)i!R"H!?;'G*L&D,F$:$9%@*Q@{=(|#y(|*~(}(~&~'~'~'|-z%C$D)P5j3}'|)~,+**)'(+*~/?O}OvIlCdLlMb,/D! #""#$#" !""! "" !  !!  %) !+"#,#$,#$) !*!",#$,#$*!") !) !) !'&'('$&1)0?s`Vwe[xf\xf\zg_zg`xg_xg_wf^ve]ud\tc[tc[sbZraYsbZraYp_Wp_WraZsb[sb[sb[sb[raZsb[sb[qb[qb[rc\rb[qb[qb[qb[qb[sd]rc\qb[rc\rc\rc\rc\qb\qb]rc^sd^te_se_te`ugawhayhbzibwgawgbyhb{jd{jdzhczgdzgdygcxgcyhcyhcyhcyhdyhdygczidzjfvgbsd_rc^sd_ufaxifzkhzkh{lizkhyjgzkh{mj}ol{mjykhzli{mj{ml{ml{ml{ml|nm|nm{ml{mlzom{pn|pp}qqssssttuuuuuvuxwxxyz{yzz{y}z~||}~~}~}}|Ϩ~¯į­}}}{ms|imxfiufgpklvmqw"                                         "    )#+'"+ "##"$"  $%$)#"' $#"! % %####"""! # %"!'$%*!!'#    ?=.yƅo`p[hYIxb]lpaRa܍ɃÁZ_UWau݄׀瑯qPXdmܖ~ݕ{okbes`\nkmヿxsڊr~߈Z^STvlluollckxt^ ! &!")A>+\X-Sz~G"%!"'%# &!!)''!!)""*""*""*&&""*((0&&."!*&&.%'.&&.))3''1&(1-09/3<*-6$'0$$,##,!!*&$$!  !$%%)!- ,!!-$%1"$0##/$$0&&2%'3')5*,8)+7%'3%'3$&2"$0!#/"$0#%1%'3#$0$$0''3&&2((5))6#%1$&2&'3##/ +%!"  ""#$  !$'&%%&(! +#",%#/'&2"",%"!! !            "                           (-""$/,,423       &*2X]iöƵ¯to0&$                   /%O\+v+|/--./10//1/-//11/,,00/144|2w2s.n-m+k'g*l0r2x,~+~++,..+**/--7HMwJmDfMmLa*-? "!"#$$"!!#"!!###""!$"&*!",#$.%&,#$*!") !*!"*!"( ) !+"#+"#+"#) ''% !/&,209lkr½ü¾¿¿ÿü¾Ŀýýýýüº¿Ǿžļ\KR0)%#      +D/*dNDt_Wxe^yg_yf^zg`zg`xg_wf^tc[tc[ud\sbZraYraYsbZsbZtc[raYraYtc[tc[tc[sb[raZraZsb[raZpaZqb[sc\tc\sc\qb[qb[sc\sd]sd]rc\rd]sd]rc\rc\sd]sd^td^wf_vf_wg`xhbxg`zib|jc{jcyhbzic|kd}me|kdzibzhczhczhd{ie|jf|ie|jf|jf|if~lh|jfzjexidwhcte`rc^ufaxifzkh{li{li{li{lizkh|mj{mjzlizli{mj{mj|nm|nmzlk{ml{ml{ml|nm}on~po}po|pp|pp}qq~rrssuuuvtvtvvxwywxyyz|x|x|y}z~{}}~~}~}~~͕ë«­ì~}{}puipzhnxjmylnylnyUY`                                    ! %  "   !"#" "! %#"' $!#"!&### %! &! ##!!# !&$$      ^\E|wّmalTVeHTd_l\Sd}׋¸r¾qcZ_{݋ggjr߃kfाّݍ׈ͅՒtmmnlkkolooxڃۂېޙҀ}q]0%ML;H]quonleiy򣭾   &%)'"TO-_xm$*""") %!!(!!)!!)""*!!)!!)!!)##+!!)""*%%-((0))2%%/''1++3((0((0((1()3)+4+.7&)2"#,&&%!!# "  #$&'!+ ".!-#$0$$0((4$&2&&2&&2()5+-9+-9*,8%'3"$0$&2&(4&(4"$0#%1#%1#%1%'3&&2&&2''3((4))6&(4%'3&&3! ,$"!""! "&('%&')#"-$"-%#.##.)# !#                                      %!        9>Jps{A6/                                 3 0[ e'w01..000..-.0000100//22/01/11/210./2/-*+.-++-*,/-4z@iIlAY|"&; "!"#$%%#"""!!!!!!!$%*!"+"#*!"+"#,#$+"#,#$/%&2()2((3('4('3''3().$%* !) + !,!#0).=:B»½ÿþ½½¾ľĿŽþļ»º¿¿½þºqwA14+'%!       1!M=5kZOwd\wd]yf_yf_xe^vd\tc[raYp_Wn]Um\To^Vr`XraYtc[sbZsbZud\ve]tc[tc[ud\ud\ud[sbZraZud]ud]ud]tc\tc\tc\tb[rb[sc\tc\tc\ve^xg`xg`yhaxh`yha{jc{jc{jc}le~mf|le|kd|kd}le}le}le|kd{jc|jd}kelf~kf}jf~kg~kg~kglhlhmi}kg~lh}kg}kg~lh{kfxidxidwhcxid|mj|mj{li{lizkh|mj~ol}nk|mj|nk|mj}ol}on~poqpqp~po~poqp~po}onqpssssssuuuuuuvwtwuwvxvxyzyzz|z~{|}z~z~{}~}}~~~}|}}}|}մ­Įŭ¬«w~w~ryks}mt}mu|pxov}mt}ls~45:       !%(+)%$!                        "! !" ! !!  ##!""! & %  ## $! "!&!!'$#!     hbLϘeYl[G\Y^NpcWӍ֕qy5G^ZQEVObxdXRUUR[h}뛹srpntz{~s^`jxtxdc}x{ςڠjcN*crooei^Oppmpmorxߴ/;-  tn>si^_fgḿ.:'##$*%%,%%-$$,$$,''/))1&&."$,$%-$$,""*##,!!+""*""+!*"",##+""*&&/++5++5&&0!!(&%#""!!!  #&!*!"- #."$0"$0#%1&(4&(4#$0$%1%'3')5%'3%'3(*6#%1$&2&(4$&2"$0"$0"$0#%1%'3#%1$&2&(4$&2*+7++7((4''3%%1". ,&!!"&%$" %%$'))!!*"",)$$.++5$$.&"""#                                           #!+GHS|y\KE                                 ;Gs'r).1222/0///0110/1231011/000./,,0...0./-,,**,))*+*))+.9zEp>Tu#%9! #$#%%$$###"    "%%) !*!"*!",#$-$%,#$-#$1'(0&'1'':,)@.):*(0%%+!"(( * !) -#'2+2keq½ýÿÿü½þľĽþļ»ƾ¼l^c6%)*%%!       $7&!SC,%]KDsaWvc[vb\vc\taZs`Ys`Yq^Wp]Vp^Vo]Up^Wq`Xr`Xq`Xq`XsaYtaZvd\ve]ud\tc[sbZraYsbZsbZsc[tc\ud\ud]ud]ud]ud]ud]ve^xg`zib{jc|jc~jdlelflf~kelfmgmgmgmglf}jd|ic|jdlfmgmgnhnhmglfnhmglhlh~lh}kgmimimimimiokokmi~lh|lgzkfxiezkh}nj}nk~ol~ol~ol}nk}nk~olpmpmqppp~poqpsrsrrqqprqrqrrsssrssvvuuttuvvxwywy{}|~|}}}}}~~}}}}~~~~~~ϜªîĮííĩy}zwv|u|u|xw~v{sxtxnv{        !##                               WQD|wjʼIJ:OPB=" "&'+!"!#!""&"      ~S؇g[[KIOzkThT[QEbWSVRSrTVXTXa[W]ttiebipriqzՅܟט画ֆqupjՃz㜭džvc@[6r\ҿӥhv}vtiedZ\`c`fsr]]prju}ɄbZyzbgdakgnՄVe@((. !&$#)&%,##+!!)& (""*!!) (!!)%%-&&.&&.""*##+##+$$,!!) (%%-((1$$-'$""  #$$$$&(( ) )'(!!-"$0%'3"$0!#/ ". ". ".!#/#%1$&2$&2$&2"$0#%1%'3(*6')5%'3&(4$&2$&2"$0!#/!#/!#/"%1$&2%'3!#/ ". ".+%  "& +*%#"%)(#  "&'&&&') *!!+!!+!!+)'$#!                                                       "BEQ}{lYT$(                           //W)h.}2433221123322321421012210210110//0.00/-.-,,,,,+**+'$&)+;y)@X"!!!!!"      !  #'*!"+"#/&'0'(-$%,#$/%'3))7-,<21<008,,7++5))0%%.$%-##-#","", #* '."'5,2ebg½ýýýù¿Žþļº»¿ȿż»reiA/0.%!       -F51cQGq_Us`Xs_Yr_Xr`Ws`Wr`Vr`Vr_Wq^Wq^Wq^Ws`Yr_Xr_XtaZtaZtaZub[taZtaZub[ub[ub[ub[vc\wd]vc\vc\xe^yg`yf_|jc}jc}jcke~kdle~kelfmfnhnh~kflfmgmglflflf~kelf~kelfnhnhoiplplplplnjmimimimimiminjnjmi~lhmimkomonmj}khyifyjg{li~olpmpmqnroqnqnroppooqqrrtssrrqqp~po~pp~pp~pprrtttttttuvxvxvxxzz|y{|}}~}~}~ӹȈëìëêì¬èy{}zz{|KJR                                                            "[UYlfCȼx|o_iHepKrz{w~yjsgzx/13! ! $##' !A:(rrU``H#"       FF-vmcMZNNaWb]]Z4M_\WWdԄeTUWY`YVdpfc^ehjhffr؍ިإӏތۆu˄Јv{Łޜ竷Ңrg_kSӮܩzhr8|d]X^ZR[ids_[e_R^hًօ{|hgwjruqynzM!!"$$* &!!&%$,""* (&""*&&.%%-$$,%'.''.((0&&.$$,##+##+""*'%&""* ($## (" "''%&&&&&&' )!*!$-"#/&(4&(4!#/"$0$&2$&2&(4')5(*6$&2(*6-/;%'3&(4&(4#%1$&2!#/!- ".!#/ ".!#/#%1!$0#$0##/#$0 ".!-+&!   "%( , +'%$%('$"#&#&(&&&##-"", *( *(%%$!                                                     89BywŵİgUP                   1;c*o1355343234522343323321212220/./11/-.01/,-./-,+,+)**%%'('14\z"/   !!"$'*!"-$%.%&/&'-$%,#$1'(7-.:0/=35:/14)(2('2'&-#"+! -##/%$.$#."", "'(!2(,GCHýü½ü¸ÿŽýýü»ǿŻ`PX;',+$#       #2#J95gUKq^Tq_Wq^Xq^Wq_Ur`Ur`Vq_Ur`Vr`Vr_Wq^Wr_Xr_Xr_Xs`Ys`Yr_Xvc\ub[ub[vc\taZub[vc\xe^xe^wd]yf_yf_ye^{ha}jc~kdlelelelemfmfmfmfmflfmgnhmglfnhmglfmg~kelfoioinhpjpkokokoknjmimiokokplnjnjnjnjnjnkqopnpn~lj|jhzjg{lipmpmpmqnpmqnpmroppqqqqrqsrqp~poqp~po~ppqqqqqqrrttvvuuvxvxxzy{y{z{}~}}~մêëĬūíŬƫìë¥z~87=                                                             ,'%ÛmoHǽIJzmv $ tqTԝؒDž~lmL     gu^`dn\?XZa\MPQMQURbmohPQ^SOQ_g`cgagfokbenܒ洲זxτ⦷כʈҋ΅ٗٚBV6 "ϱۯ͐kmx{BPZ[؂haRJRMj\oqpuvWt݊z}lfpplil߃x#%###*$$-#$*%&-##+""*$$,))1''/$$,''/(,2%&.%%- '!!) '%$#$&$$,!!)$#$" "$'(($#$%''("*!*&(3$&1#%1')5#%1$&2#%1%'3)+7*,8*,8)+7)+7+-9)+7"$0$&2#%1 ".!#/"$0 ".!#/!#/!#/!#/!#/ ". ".!#/!#/ !-($ $))(%$#$%&%$$' ,)''%'("","", *()'&$!                                             !77@{vò¯^LI                      9Dm0s5~7553112333233332133114323410.01/.-020,+-//-+,+)+,+(''&',9s 0@! !! ""#&) !+"#.%&-$%/%&2()5++5+*6,+6,,2')0'&/%$,"!,"!+! +! .$#.$#.$"-#","!* 2(*;6<½ü½ûþľļ¼¼¼º¿ȽúRDI4%&&##        #7$$P>8hUNp]Up]Vp]Vp]Uo]Sq_Ur`Vr`Vr`Vr`Vq_Uq_Vr_Xq^Wq^Ws`Yr_Xs`YtaZs`YtaZub[taZub[wd]xe^xe^zg`{ha|ibzg`|ib|ib}jc~kdmfngngmfngnhnhnhmgnhoioioimgmgmgmglfmgoipjoipkpkokoknjnjnjnjnjokokoknjplnjoknkomqoqoommk{kh{li~olpm~olqnqnqnqnqopprrsssrtstsrqsrrrrrrrrrrrrruuxwvvvxy{xzy{z||}}{|||}~Ԝ¬ĮƮǯǯŬĬĬé}x~%#(                                                          [WJ²mtLǿǶ"     11%jfu盢k_Z=    tZalfRC_daXQPTSIlۂng|mhdcZYTw焯m[jbcbjjdfjӅ妸ܐوڏߞ⨹؞ާߥ͈՗  ͒fCb돷mfkhtj`eZ\J`Qijlpzm~݇zzyiiqdwvox䅣x!%'(,&'.$$)%%,##+"#)#"* !)!!)%%,'(/" )&&."#*'%%!!)&#'##+&""!! !""#($$."", *)'!*"+"+"$/ ,#%1#%1#%1$&2')5(*6)+7)+7,.:+-9+-9')5(*6(*6#%1')5#%1!#/#%1&(4"$0"$0#%1!#/"$0"$0"$0 ".!#/ ".)%  "&) *'%%%$%&$#&'*+&$$, ,(!!+"",!!+((&$!                  " #                                        ! <8C|x³O>:                          ;"Kp9oBx={2-,+/112356642112323433333421310/.00,+-/0-,..,*)('('%'*8}$?O  !  #"  ! ""#') !,#$.%&/&'1'(4*+4*+2('0&%0&%/%$.$#-#")* +! * .$#0&%/%$.$#2('4)(6,,3.3^[e¼¼»þľĽü»¿ƻummF;=- $#         #<*$TA9gTMn\To\Uo]To]Sn\Rp^Tq_Uq_Ur`Uq_Up^Tq_Ur`Wp_Wp^Wr_Xs`Ys`YtaZub[taZub[ub[wd]yf_|ib{ha{ha|ib{ha}jc~kdlele~kdlengohmfmgoinhngmgmgnhoinhmgmgmgnhoimgmgnhoiojnjmioknjmimioknjnjminjokplokplpnposqqopnom}mjzkh{li~ol~olqnspsprnrprrqqsstststsutssrrssttttssttwwwwvwxzy{xzxzz|z|{~{|z~z~||~~Ӱ¬ìįȱʱɯƫªªaks                                                     NJ@geSkmbĸ{Vƻž{       //vNdu}׃ІchD  @A.yxe^a(ZmbZSVV>a܈؇S[f_btЂπᒻلek锥`Z^^\Z^bkw׈ߍٌؚ;I2թFWux{`ArusdWcu]ttahbqsqt|jxz{itzonnnn}Xb> !%$+#$!!'""' & &&&-(%,VSJ++*#$* (! )&#%#!  !#'$'0&(1$%/! *)) !+"+"+"$0"$0$&2')5*,8%'3%'3')5')5')5(*6(*6')5&(4%'3&(4$&2&(4$&2!#/%'3%'3$&2"$0#%1"$0"$0$&2!#/!-+&#! ! $&'(''((''('%%('* ,%%(!".""/*) *('$$#                                                   ! 96>|yòů9+)                              % 85SX[zkku\~8{({%z({&y&z)})~-103463122134453344212110/20/,--0...,.+(*(*+('):,N_ ""!"#!! #" "$&) !,#$,#$+"#-$%-$%0&'1'(1''1'&.$#-#"-#"-#".$#,"!+! +! -#"0%$1%%1'&3)(4*)4+*6/3FAL¼¹¾Ľýþļ¼º¿ǿźe[XD44-$#!      (?.)YHAjWPn[Sn[To]Sp^Tp^Tp^Tp^Tp^To]Sp^Tq_Uq^Vo^Vp^Wq_Wq^Wr_Xs`YtaZvc\wd]wd]zg`{ha{ha|ib|ib}jc~kd{ha}jclengmflelengngnhmgnhngnhnhnhmgoinhnhnhnhnhoinhmgnhoiojnjnjminjnjnjokokokplokokplplqnpnrprprpqopn~nk{li{li}nkpmrourtqsqssttsssssrtsuttstsssttttvvvvwwvvxxxzz|y{wy{}{}z||~{{z~|{z~|~~θ¢«ĭïDz˱ʰɯȯǬĩHUY                                                        mjZ^\GŻVó}px|"      00Q4cwihvzދhi9-) ?D"ogj,Zida`Z^]cZLBiYXdhnzӂސwj꟫mSZYZU\Wqߕ܋ۏߛݟ߬ԡ%1Y^Nʴٲl<_fiqj~}dvqk[ZLQrj`peowvw኷nۆ}t~{qnpkl݃ꖝ|  ! & !$w# vqJ}yOFD+ $%* '$""! $'!!*#&/%(1#%/"",() * #,"%/&(4#%1%'3)+7-/;(*6$&2$&2%'3)+7(*6)+7)+7)+7&(4$&2%'3')5%'4!#/&(4(*6')5%'3!#/ ". ". ". ,)(""!  ## !""$''&&&' *(&&%%'()((&(##-$$/$$/!!-)((&"!                                                                  72>}x±ȴîpl!                           $)-cuFOU}uL:11/+(~%{)}(|)}*~+..-/01123445433321110110/0000/-..-,***((,*;3Yi!##%&%%#!#"!"$&( *!"+"#) !) !+"#,#$.$%0&&1'&/%$.$#-#"0&%6,+0&%* ,"!-#"/%$0%%1'&2('1'&1'&7.1=5>}uûľľĽýü¼»ƾĻ[NL?+,*#!         )C1-[JCjXPmZRn[To\Up^Vp^Tp^Tp^Tp^Tp^Tp^Tq^Vo]Vn]Up^Vr_Xr_Xr`XtaZub[wd]xe^yf_zg`|ib}jc}jc~kdle~kd}jc|ibkemfle~kdlengmemgninhnhnhpjoinhnhoioioinhnhoioipjmgoipjokokoknjoknjnjnjplplplplrnqnqoqorprpsqqopnpm}nk|mj|mj~oltqtqtqusttssssrrssututtsutttttttuuwwxxxwxxy{z|z|y{|~{}}|z~z~y}z~{{|ʸïǯŲʲ˲˳˰ɭƬĩ6;?                                                               96.tsY^]@ɹbdzy!$"    >5OY5es`Znሻ|{Ԇy}V  Y颔CLlf\XWfjRBXY^]X`g]UWeiힺum\Zfek؇ِ֋ה殶ͪ͝ޯQ=_\`h;,ppfcce[TZM[eXfwnsvن}ۉ{fsjtׁ{}~!&-*"OMD   $mnEv}]  &', %"$"!'# """$&&!")%'0')2%%/$$.$$.##- * #+%'2#%2#%1%'3&(4')5&(4#%1#%1%'3(*6)+7(*6')5*,8(*6%'3&(4$&3%'4%'3$&2')5#%1!- ,***+)(#"! ""!!$%#%(&&&&&)($%&&'(((( +#!.##.$$.$$.!!,))(&#                                                               @uބzveth^g|ޏʅЃ܃ߍ9B" '2<$13mb0eZVUX`ipj>JVYaWZ]ORZ`X_݄yvݑِЀ΂ԏߠ뺚vv/f_^`rd܃oVXg_`h`Ya`doopwscswޏ׉}U`wz܎Đ|z]||k  v\S]?;8:43764135241/.+,/11..//100101122110/10../0,),*&':5^w$!"$$$%##!  "&( ( ) !( '''( * !.$%/%%.$","!+! * * +! +! +! )* /%$0&%/%$0&%1'&0&$1'%;15JBIýþľĽü¼»¿ƽĺq`aO;:7%&&"        7# Q>6gSLkYQm[Ro]Ro\So\Up^Tr`Ur`Vr`Vr`VsaWr`Vs`Xq_Xp_Wo^Vq^Ws`Yxd]zf_zg`zg`zg`|ib}jc|ib|ib~kdkdkd~kdmf~kd~kdlemfmfmfngohngoiqkqknhnhnhpjqkqkqkoioioipjoiqkoioiqmqmqmrnqmploknjnjokplqmrnrorprprpsqrprprptqsoqn~ol}nkpmspvtuuuuttssttuuwuvutsssttvvwwvvwwxxwwzz{}z|z|y{{}|}||z~{{|{}~~ɺЪįȰdzʷζͳ˲ɯƮū¦Zdi                                                           mocmqPeh=oƾ̣f̻ʶ·jrw        #]܃xyrhvned{Ն~vwgrF  mjc`ZVV`\PRSQNHY]POVoXRxс׌Ї֌wۘ睰΁Ʉُ{lԈ켤‡C`]bN|"ztiZRLSgyj]lyahzinvps݀{чЃngw}vy{Ӄ䶀m   ԧxHK+{{b&!;3mzZNK1 #!#)#$-"$-"%. #-!*!#*!*!*"+ #, $- $- #, #,!$-"%."$0&(4')5(*6)+7')5&(4')5(*6(*6(*6(*6')5')5)+7+-9')6%'3 ,!-!#/!-****(%&$!      ##!!"!"&%$$$%%&**'&')) ,##/!!. +&%&%"                                             #$              !#ukxĶ̺Ϻwhc                                  [g2KLq^UUQLCAE@=><;2;;:78;996650+,,1,-/-*000/-.-//.-.//-*,)((:6^v#!!#"   !""  %*!",#$*!"*!"'( ( ) !,"".$#-#"* * +! -#","!-#","!+! /%$1'&6+)8-,1'&/%$0&%0&%/%$5,-:59sszúýþĽýýü¼¹ǽĻfTRJ741!!#"        "9(%SC:fVNkZRm[Qo]Rp^Up]Vr`Vr`Vq_Uq_Ur`Vr`VsaWr_Xs`Xs`Xs`Zub[xd]ze^yf_yf_zg`|ib}ib}ib~jc~jckdkdlekdle~kd~kdlemfohohohngmgnhpjoipjqkpjpjpjqkqknhnhnhpjqkqkrlqkqmqnsornplplqmplnjokplplqmroqprpsqrprpsqtrtqspropm|mj~oltqusuuttttuuvvwwwuwvuttsvvvvvvvvuuvvww{{{}z|z|y{z|{}|}|}|}~}|~̸¬ĭƭDZɳʷ͹϶Ͳɰǯū©}DLN                                                 zhnKkqD{`ȵ~a̰Žtz       i]0|ނusdwsklj܆uvj횘o   ZK4w·o܁da^UTWZNW[VTNPRUYQPa\`Ќܔ坿ی܌ِӔ뵧{xvs`mwvāڣnjx6]T`=/q؁i^cbXS^cXemokrzvtxzuxو|omnswst{؅ٗo  %$꺷~{塴}ۓpx稍e $')/"%-")")!*!*"+ #,$'0#&/"%.!$-#&.%'2&'4$&2)+7,.:)+7')5(*6')5+-9(*6(*6')5#%1"%1&'3&'3$'4#%1 ,+++((')%""     !!  !  "##!$$!#&&&'('%'!!-""/))+*&$$$#                                        !0%#*            <7A˻κ>42                                    p=VaۍŴsllka\WTQPMLF>DGEBCBE@<>>8..3603531573/+--/.//..-//,+*)}<5`w$!!!! !  $( ,#$,#$+"#*!") !*!"+!"+!!.$#-#","!,"!-#"-#"-#"-#"-#"-#"0&%3)(:0-:0.2('2('6,)<3.6-*4))814WU]Ľü¼¼»¹¿ƽĻ|XIDE21/%"        $=.+WH@gVNlZRo\Tn\Sp^Vp]Vq_Uq_Uq_Ur`Vr`Vr`Vs`Vt`XubXvbYxe]zf^{g`|h_{g_zf`{g`|ha}ib}ib}ib~jc~jckdkdlele~kdlemfngohpingmfngoioiqkrlrlrlrlqkqkqkoinhnhnhpjrlqkpjplqmqmrnrnqmplqmokplplqmplpmrorpsqsqsqtrsqtrtqropm|mj|mjpmspsrssttuuuuwvvuwvvuutuuttuuvvwwuuwwxxy{z|y{z|{}y{y{||||~~~~~йŮĮƯdz̵̴˶̸϶αɮƭũ¦~|*01                                           "         '&%otTfmAnuSϔŽľ¾|vuyA@E    :2YV4;;# }Hyuz܊ny}{~ymrw~mڈڇ̖_H0ƱrȽd_c^XXX_Q`i\XSU_[S]fSZd೫Ǐwҁҁ{ݕ֒ڟݤɂ|lmjmyly֖†~;Ip~aDuۃwwrge]`cReplRoyiO}xssЀƀԅ}n|ti\aivٜMXF   ʧ~p{ֆ׍ԂߋvYZ6^^@;=( !")((0$$.!"+"",$$.$%/#&0$'1$'1#&0')5*,8')5,.:22>22>,-9&(4&(4#%1#%1&(4$&2!#/ "."#/%%2"$1 , , ,)*))'&! ! "! !"%$!! "')'&$$$'!!-#!.*&%%"!"!                                                  &.%!            ^XbǷλͻws                                         '}@\z١ˍz}{vmkcZXMMX_b_XRPMIED@3057577535423400/1//-,+-,~*~,~-~,{A;cy$#!  "&+"#-$%-$%,#$*!"+"#,"","!/%$/%$.$#.$#0&%0&%.$#+! +! -#"/%$3)(6,*8.,8-+6+)90-=4/6-*5+*>47F?G¾ľĽýýýû¿ǿżºqhjQD=>.-,%!       )D42]KEjWPmZSn[Sn[Tp]Vp]Vp]Up^Tq_Ur`VsaWtaWuaXwcZye\zf]{g^|h_}i`|h_{g^{g`|ha|ha}ib~jc}ib~jc~jc~jclemfmfmfmfngpipiohngngoioioiqkqkrlrlrlqkpjqkrloimgoinhpjpjqkplplplrnrnqmplqmqmrnsoplplpmpnrptrsqtrtrsqsqsptqqn{lizkh}nkpprrttuuuuuuvuwvxvxxvvvvttssuuuuuuuuwwx{y{y{y{z|yzx{z~z~z~|}}}~¿ʶ¼¬įȯɴ̷Ϸθιϵ̳̮Ƭè~}js|                                 "%"          ,**{zdnqKs|VľxrξǼĹºĻèyv_ac'**   vjG߇xPM'mb2spxلyޕmlpo݆݋}Ջ60+b˺ilRaYZcYaKXe`YSRUXa]U^Xn٣ҧgfd`rҁӋߟ٠ᚭrw/Zxjosnmmd_epvnrЉhr1|}iaЀވjjk[kmkiYbbZjuha~}tgz׋sπـktvtuzx!  '/"֊Ձہր͎[_]=89,%%%.**5)(2##.$&2&(3')3%(2(+6(*6&(4,.:.0<,,8*+7&)5$&2"$0#%1!#/!-!#/ ". ".!"/!.!,+*)+,(%"  $" "! "" ##!!$')'&$#%')*&%#""                                                         "           ,)0~z˼B85                                          %-Z{ؾ{rq^Vahmsnmjc_WVP?9BE?BB><;54553+.6213782++058~RD_a !$!!!   #%) !,#$,#$,$%-#$+"#-##0&%1'&1'&.$#-#"2('4*)3('/$#-$"-#"-#"0&$5+):0.;0.2('0%$2('2(&2&%A68A:?smtþľļ¾Ľüº¿ƾĻeYYO@;<.+("      /L88dOKlYRn[Tn\Ro\Tn[Un[To\Up^Tr`Vr`VtaXwcZxd[ye\|h_}i`}i`}i`~j`|h_{g^{g_}ib~jckdkc~jc~jc~jclelemfmfmflemfohohpipiohohnipjpjpjpjpjrlrlrlpjoipjoinhnhoioipjplqmplqmplqmplqmqmrnrnqmqnqoqorpsqtrtrusvttqspspro}nkzkh{ljpqqqssttttuuxwwvxwyxwwvvuuuuttssvvvvwxy{z|y{z|z|{|z|z~z~||}}}~~̽ŷ¥ëįDzɳ˴Ͷϸйϸε˳˭ƫæQU\                              !!$)".%#-$"&         /-/hv~V~iw~j̝ʼƹûƺŹ®v||u}}ÕKVI  ]܆ipxmjfft|ڌ؎|jȇnNýgzy؈znԒƂviQд~Ԏ¼ZldQWVXY]OIf`]ZVRXm[XafӀԧclhbT_hg{nfK{Mjb_d[Wbo]fjgrtЀtBGvXՋDžގ߃{aSUegkd^gke`^hf\juҁ׊}rrqwuuprvtb   :<$ܙՈ؁~}~℻p{|{ބߋxnrDRQ4-+&)*2'*4'*3&)1$'0#&/"$/#%1$&2%'3')5')5%'3!#/ "."$0!#/ ". ". ". ". -!-!-+('&%#!    !""!  !  !# *%%&(%#$(((&$#""!                                                                   RS[ʿɼƴrq                                   !%R@Y]S[~yxhsqrtwxwpikd\NJUVPRSOQPIGB<7..59;;>?92269Epd]b6;:+' $) %"! ! !$%&) !+"#*!"+!"* !-##0&%3)(2('2('2('3('5+*5+)5)(2('-#","!,"!1(&3)'/%$)+"!-#"-# -" >33C;?SOUľľĽü¼»ǿŽº_PON@;6)(%!       1#"Q@:eRKjXPmZSn[Rn[Sn[To\Uo\Ur`Vr`VuaXwcZzf]{g^zf]|h_}i`}i`}i`}i`|h_|h_|h_}ia~jckckc~jc~jckdmemflengnglemfmfohqjqjpioiojpjpjpkojqkpjpjpjpjpjoipjoioimgmgmgpkokqmqmokokplplqmqmqmrnqoqorpsqqosqtrustrsqtproropm|llzjj~nnqqssttssvvwwwvyxxwwwwwwwwwvvvvwwwxuxwyy{y{z|z}{}{~{{|}}|~~˷½Ġĭǯɱɵ˵̵ͷϹϸ͵ʹ̳˭Ʃ9:?                                 !#  "#&' &            857|cix`oy_ȾȽtʸ¶}}pvlyeOU5>6n`B]ml|}eeo|؀ꕵcUcYgxρπۈj֖a^Ǫa̻ؖqCUQKXMDcfj^]_^\]]Y[Xfef،ӨYg[YPbp[`ju:{iXZYXV[_a`bddhkrNGꅷ`FښuulfiXPUfl`dfyk[cp`g`dp|klfptlmtpn{哋m    )&dő㙺Ȃމuw~{bwuuw{t|t؁v^JM0 (%(1!$- #,!%-"%0#%1"$0#%1&(4&(4#%1!#/ ".#%1$&2!#/!#/"$0!#/!#0!.+)#"! """"     "!     #''""$##!"(&$$!                                                                                        ('/ɼοǶ8++                    ,'Q3KjKdlLggEcaA[aEZO6IS;M>*8         -,_E_pMt\sm{gmn^duTrosjlkgXWdfbba_da[YRJ?316;ABDEA@<8;P}WRQOea4<7(!$* ($""$$$"!#$%'( ) !+!"* !+!".$#,"!.$#3)(2('/%$0&%2)'5+)2('0&%0&%1'&3)'0&%+! * * * -" ," 1'&@8:A>Cžļ¼¼¼¼¹¿ǿŻwilXKIM?;9+*&!       "7+)NCWS^{6NgᇾیΏ^ZbYW``W<|`eaAL?#t۪ۚx{Ղxosz}qlpkoonehdhX탆c&(2 $,$'1$&2#%1"$0#%1%'3%'3%'3#%1!#/"$/ "-)(**(&%%$"!"!!!!    !"" !"%%"   "$                                                                             -'0²ͽξȴy$              F,DwhpuvlgjooWkth{gaH] ' ('rQv|tux_kgdkyovlrotdrZ{wyu\TROPPPVVSONLPc}UYgmmlk\DEA%%"!"" "$%%$#%&( +!"* +! .$#/%$0&%/%$+! ,"!,"!,"!0&%2('2(&7.+?529.,5*)7-+7.,5,+3)(3)'5.,;9:MJQýþĽü¼¼»¿ƽùy`NO\IDQ@9=/,,%       '@21XJBfVLlZRn\Sn\Ro]So\To\Ur_Uu`WvbYxd[zf]|g^}g_h`h`~g_g`h`|h_}i`}i`}i`}i`~ja~ja~jakblclcmdnenflelemfmflekdmfngmfngpjpkojpkojoiqkoipjoipjpjqkrlqkoimiokokplqmqmplplplqmrnqmqnpnpnpnomrprpsqsqtrsqtruruqsqqqqqpp~nn}mm~nnpprrttttutwuvvwvwxwwwwwwvvxxyzw{wzxzvxxzy{z|z}{{{z~{|{|}~ÿ̾Ǧ§ëİƲȲʳʶ̺кѺй϶̶̲ɮƫĦv}ILR                           #*0$ /#*('%" "-$!1'%+!(,#-#($!                #~]xZť{iŹǼZg8E=ma1ynbid]lhorcdglr|[KN]]WPV[r딲b_\VMVRH@Zkffa__Zj{bl֎s]/7+~zapGexNX}ֆ|Pcg[ZV[WxVzYfIMKOKHS]^UbadaafQs)^7Z؉}͆ˊitҎࢺΆfrhchupjhavyswnkzuhpulyyj#*Ԙ̋ۜכˇژy~؟Ҥ鶻†mwxxuxyukkfiy^\m]ge[cl&0""$."%.$'2%'3$&2#%1$&2%'3"$0!#/ , ,++)')('$$#" !   "##!  "!                                                                              netǷͻN>9                +'d@_ntosjxroilhPvGwxPy~U}Xid_{sNmX5Tbev{otVmbYhg`lS[blkdrldޅh]d[][]^bggfadz´zQN]lrsnliVGD& ! !"!#$$$###$( * ) * .$#.$#.$#-#"+! +! * ,"!-#"1'&7-*=5.C94@518.+=2/;20;31:0/2(&/'$:65@>C½þĽû»¿ȿż¹telYEDXB=O<7>-,1 %       -#C55]NHfWNlZSn[To]Sp^Sp^Us_XuaXvbYwcZzf]{g^{g^}g_~g_~g_~g_h`~h`ia}i`}i`}i`|h_|h_}i`~jakb~jakblcmdognglelenglekdmfmfleleoioknininiojojojpjpjpjpjoipjpjpjplokplqmrnqmokplplrnrnrnrnqopnomomqorprpqosqrprpspspspsrttqq~nn~nn~nnoottttssutvuvuvvvvwwvvwwwwxxyzx{z}{}wyvxvxwyy|||z~{{{z|}~˿ަæ¥ĭƲȳʴδ̶̹ϺѺѺд̲ɱɬŨkp{57=                          &)+)'*0"2% 4)#5+%2-*.$ ('-" .#!)'')%#  $&"##             âyfv^ezv·YpG7: h`+ftu]^a[]]b`\^bcfbUSYLUZST]tچ\YPVUT2 Mhqmdc]YZ[j_n}Ē߷ᦴҗ{Oք؊ӄmRV[Z_\Y]"Y[XHESMLCPXZV[\\_ilIP_Vlv#o݉ҁ֒gkpeluafetjImtkdDkzpkow}nsvb\ŀ?L0QYF˥yדۓv~sxxwqjtggxueefhg\dbVYv1>. #-$'0$&1"$0 ".!#/ ".!#/ ".+)(+!-)((%%$#" !! !                                                                                           B>Jĵξ͹vr                  I1J{kz|l{enp~cN{Ez|Duj4dq>o|H{S_fl^Veggec_OMTRUbejhiomTjlbr܂܏~t~vjgmqquuzʴzRJ`pxwspnoJ,*#!!"! !#$%######%(((,"!* * )(((+! ,"!0&%6,*7.*9/,7-*3)'4*'3)'1'%1'%.$"'2+*<:=dbl¼¾Ļ¼º¿ȾĺgSWU;8T:6M84@-,1'"       7'+R?@cRLkZRn\Tp^Up^Tq_Us`WwcZxd[xd[ye\zf]zf]zg]}g_}f^}f^h`h`iaiaiaia}i`|h_|h_~i`jblclckbkckcmengmfmfmflekdlemflemfojojnimhnipkpkpjpjqkqkoioipjpjqkqmplqmrnrnrnqmqmplqmqmrnrnqonlomompnrpqorpsqqoqororoqosruurrppoooopprrssttvvwvuuvvvvwwwwwwvvvvyyy|y{xzwyvxvxxzz||}{z~|||¿ĿýƿdzéĨçêűɴ˳̴ʹͶ̸λҺѹϷͲɯǪå|[_f                             ,!-!(/!/!+1%5*#7.'A92B:29.(<4-<4+?5.C73;206-)1)",%+#0' 2+#/( ' $#"$)")$-%!3+()$         |z`bye~yyrZoM18UR#wۍcdg^Z^d[]ZTTVbbZ\Wd[G`a\bׅh]]UWSC FkijcgfbaY]aVhݥԮؼݹ罢Ïd`Ո}bZb[\`[[f,*ueTTORNFTTZ]SZ[PYkhEx``~<=_lpuہ᜻fjptsro|ߛࢨpNUqscawtoonE倸j|ъeSɍ'..1*Үxߖۉׂx~|Ԁ~~|ۀzaeebx{c]mwZeXf\mv%#&0"*!, ,)**)+)(&()''%$#""!                                                                                          #|ͽϼ<,.                V=\ujn~³|kŦonmbxC}}H^YUOFeazB{HV]aejj\KXUXzDvN[bn`emopTSea}}|`vwqwލȮځVMcxԄ|}|lgfEF!"   %( ( %$$$$$%'((*('&&&'+! +! ,"!/%#0&$0&$1'%.$".$"-#!+!-#!.$"&+#"=6:MIS»û»¿Ǿú|bHEW:2S81L5/C.+5!!.'$#  " %2""F56[GFhVOl[Sp^Ts`VuaXvbYwcZye\zf]ye\zf]ye\ye\yf]|f^~g_h`iah`iaiajbiaia~h`h`jbjbjbiah`iaibkcmemfmfmfmfmfmfngngmfniojojnipkpkpkpjpjqkpjpjpjpjpjqkqmqmqmsornrnqmrnrnqmrnsornqopnpnrprprptrsqtrvtururtrsrstuuuuttssrrppssuuuuwwwvvvwwxxxxvvwwwwvvuxwzxzwywyy{xzwyx|y}||{|~¼¾ľſſȾȭéūŬŭƱɴʴ̵Ͷ̶̷ͷ͹ѺһѸεˮƧms~RW[                          &,!5+#8.&6,#5( 4*!7/%;2(>4+?6.>5,=2*=4+@9/D;1G:4?6190);2*/'!&/(!4,$2)"*"$#"#&-%!+#)!7.+1(%'!"          {x}Ħʿv__v^əpzlÊvo5B42 }yHx[`^W\_^UYWUZ]MRSSZUW[RUJbvӅlPXSRV"aaaagehgfmddtެ߸巺֨˙f͈ߐOktbw+N[T\V_j+W`T`PKVR8Pac^cgbQXTRznN_7Bass`Q̊sþ^rqmrpmxɂwd}iqxuxtpj؀uXytҊzӆޛotžnڐۆہ~x{z}vpzwnnjkpcjiiddflMY>" )')()(''(&$$$%%#!                                                                                            ]YeȹɵgVU             Z>Xihiktrln_T{@VW`]YTUWYcu8w{=QgnbkWSm_b_\b^Txs^aafqlmZpuܹ˽≹ٚumбTJiiWl8CS&IZ.`r_sch7# #&%&%'$"##$$%&'&%$$%&()* +! /%#0&$/%$2(&3)'/%#.$"0%#0%#)(:05?:A}yľûǿž»ji^A:W9-U8-O5,G/*<&$1*))'*"0'+8++C1.I53YEBeRLkYRo]Ss_VwbYwcZxd[ye\ye\zf]zf]zf]ze]|e]}g^}f^h`k`i`h`kckckcjbkciaiajbjbiaia~g_h`jbkclengmfmfmflemfngngngpjpjojojqlpkpkpkqkpjpjpjpjoioipjqmrnrnsotpsornsosornrntornsqsqrprpsqtrussqustrururutuuttuuuuttttppoorrutvvwwwwwwxxxxwwwwvwwwwxvyx{x{xzvxxzy{y{w{x|z~zz~|}~ĿýĽžýÿþ¼ſýɿȻƩéĬưȴ˵Ͷ̶̷Ϲиζ̷͸ϺѻзͳɫĤ}ZcnZ`f! #                        #.%E:0K>5OETD@\HCeNHoYSq]Vs^UwaY{dZzd\zd\ze\ye\ye\ze]|f^|e]}e^~g_~g_iaiaiaiakcldldldldkcjbjbjbjbjbiajbkcldlfnhnglelekdlelelemfohoiojpkpkrmojpkqkojnhoipjoipjoiqmokrntprnsotptpsososotpsqrpsqtrtrsqtrtrustrtrvssrssttttttuuttttrrppqqrstuuuvvxxxxyyxxwwwwwwvwvyvyxzxzuwvxxzy{x|x|y}y}z~{{}¿ſÿʹƤĬůǶ̸͵ͷͷͶͺҺйϷ͸ιϺж̯ŨnwX^kdhq)).                         !)$1,#5,#9.&9.&;2*8-&7+#91&6-$.$3) :.$B3)E818.'2) 3* =3*<3,D:5@70=5-:3,:1*7.'6,)0%"(&$) 3*"2("/% 0% 0'"-$!#               NKRsTqNi{~¼[qL5=86 fwbZXZ[W`ROWWOQV\[FQVWJLUT\XnaZMPW;fs VWWmQ\fdegqns_tihڈԅ׉mIipwwqv1~ܓI|vip~~wrskTQk^GQWTa^Y=Pm}և_oKIumZfoVK`ihmks{uԕӅtنԆznf^yۏה؏ډ񸍠lkţĕїwǂ䃷fylywtwvwoqqinddmtfo}}μڻ'-2"!$.&((%#!   !                       $"$                          '('%"                             |*             V@Vif]kaflobPVnsUS`YS^UOS~ŜaOT_^\p[b]SZ\VSb_ahbZUbehjletda¾ȷÿɿýտ틺ۀ݀xiafi__]^nzzʝҝmHKI[+"" Inpu{> $ $&$##%%###%%$#%$%%%&'+!.%#.&$-#"-#"/%$1'&/%$,"!,"!.$#-#"1'&8.+4*)5+-=7;LIOǿǼúkQLhG=fD6]@5W=3X;1V90Q61M51H61F5.L83SA>UII\ONaRLhUMnWPs[Ut^Vv_WybZ{d\|e]|d]}e]{e]ze\|e]}f^}f^~g_|e]~g_h`hajbldldldmenfmeldkcjbkcjbiajbjbldkckclelfmflemfmflekdkdlemhmhpkpkpkojpknimhnhqkrmqkpjpjplplrnqmplrnsososouqsosptrtrtrtrususustrtrususutttssttttttuuuuttrrpppppqrsttvvxxvvwwxxxxzzwwwwvxtwwyxzvxvxvxvxx|y}y}z~{z{}ͻǠìƯȴ̷ι͹ιϸη͹ϻѹϸζ̷͸εˬ¦aht]`megr<>C                       " #.$6+&4*$*#%) ,#) (4("D80UJ@\ULNI@G?5C;292*;4.>83C>7:6.73+;4,:1,5))," ($&(!,$3)#2("2)#'"                     849{_kEyVmyӼzr}ĩRdB15JHxbVXVZYVQNGUgKPYVXNKNWTPU[cVH[XL^R=_nQ`YbHUcYb`dlknkyuއx|݆ޑRPق_soi^bhou_cYec^VM_cleVZepwvfe~|Fo_ifW\Oioqhs֞̑Ήӂzmp|reoڟʅvՋו֞}ŭŶ̬uȕzБ|{nq||uxvnljdmxpak}vn҂t֞ "-)&""  !                                    %& !!                          %(*+(#                               [WbɽC62           0.w}cYlogjn\UOgq]_daXZZ`URgcUP^TTTTNYWcaXKItj^jjja\^_X`acmVdúİŽĻĽɸüƽYRVUYZU\bǰbDKER, 15L^eW_1""%&$##$%$#$%$$$%$#$%&&* ,#!,%#+#!+! -#"-#"+! * ,"!-#","!.$"1(%/%#.$#;36F?E{u~ƾĻuuiQIkK@hH=bF;]D9`C8`C8`C;_C<]F<]G;aI?fPGgVOk[Tn]Tr^Uu_Uv`Uv`VxaWzdZ|e[|e\|e\|e]{d\|e]}f^~g`h`h`~g_h`h`iamememeognfnfogldldkcldjbiajbjbldldmenglfkelfmfmfmfmfkdkdlgmhpkniojojnininjojrlsmrlqjqlplsosornplqmtpsosouqtpsqusustrustrtrustrususttuuuuuuttttvvvvuussssqqooopqqssvvyyxxwwxxxxwwwwvyvyuyuxvxvywywyvzy}y}y}y}z~zz|~ͽɝ­ǯǰȴʶ̺λϸθθϸлѹϸθθε˯Ūqz\`pbeuhiuJHO                $/$!/%" ", -!4($/$!(+0% 0% -,;-&G91?4-<3+;2)=4-6.)+!2*%:6-4.'4,$6-&4*&.$"'() (!$%(!)!"           &$%}vjx[sT~_uзmk]{{èqd79*& flX[WUVYZVdKFRXSOWRMRUOOUXY\Y?LgNJ\DQc?fY^VMdd`iM`abpfsnopltވ㑵kFoolcheeXw|މragb\_c`QVZr}.HoxmYrxuv;^ytu`Utq[_wbΆ۝ԗ뵻jlyhmwrm}ˊt~tqnz֡޽շ~աˠ~zxisvz}jvrkfw|rmfj؊zpȱGIN $$##! !                                                            %-/,&"                               =9C÷ͺbQM         =.=Y}QbbfzhxaKWWbe`aeR]eeg{ŗWNX`VS[VM`ZWfUSPZZRdP}I_\XZUtNyoMsrMxf[acdfvS|ĸöĺƻúžƾ¸Ż¸ۡS@@FOJFIL]Y~@OTb;%!$ ?K&XTZ18#'&$$$$$%$#$##$$#!!!##&('( *" ,#!,"!,"!-#","!-#"-#"/%#.%"-%"-&"6/.B;@YU\ú¿Ǿļ»|idpVLnQDkMBgK@gK?gI>iK@jLAkODjPEmTHpWLrZPr]Rt`UwcXycX{dYycXycXzdY{eZ|fZ{fZ|e\|e]|e]|e]g_iaj`i`jbiaiaialdmenfogognfmemeldmekckckcldldmemeldmflfkelfngngngmflemflfninipkojmhnininiojpjqkqkqkqmsososotpqmqmsosotpsosptrtrussqusvtustrusvtutwwwwwwvvvvvvvvvvuuuuuurrppop}nosrwwxxyyyyyywwxxvvuxuwvyvyvxuwvxwzx|y}y}z~y}z~zz|}κɡŰDZɲɳɴʷ˺θθιиклѹη͵̲Ȭ§egtacuinlm{SPY               &)&*2% *%&+7.+C;6:1*5(#2#4%5&!7)%8.%4)"+!&!$%#"!"!                 #~ms|YwUeljkyck͵shmY~t08!ON%UQ_SNVZZPOZQ@SYAEGLYjZKWYUWT]lSLKUik%bk_\Xe[lhQ^MO`aueg]\jkem߅|qyvupeq\hԀ݄ىoc\]Y`g_^gRmclu}l||nck{^]f]Sntw†㮌fTyޟѓeY|cpmny톾sxuo|kuݘͥǪ˗ܢ͔zvnq}}}愼wpn}}nktn|ۆyrrhqoion#!                                                                                       !                          &#)÷ҽnh        P9PtdwGxZmdZ\UZccZ^ef_kME[dobwēO^\`faY\[WQRMtBug:fyL{g`ZWWX[]_XQX}UuNzuJ{Xd^b}da¶¸¹Ļżĺ½ĺ¿ǽȿſəS?@BDC@@>JemciKZUe@"!! &) dvI``_m6 %( ( ) !( '( %$$##"#%$"" !#$%')!,$"-%#,#","!-$",#",$"/'%2)&/&$+"0)$A<793+0)!*"$"#'!,$ "#!                         ;;'ioLt{U|^a{Yk|rwݿЫĮʴ}{cyxqwSs6E%0::;LRTZXXX_TNKHBIIJRHKW_RLVTQUZq҅hKN>e^p)EHf_N[YVZTdk[hgV\`icdggekt{lmronrf{gd܆څޒxa`rk^gMXkotpklm|rn|pd_y_`hqn`悩_s붥trݣߣȃ}amⅻdrmhwwx|gowy牾И|ڜט멽΁`xvpsn|₸o|~nm|}~{qvrzߌ΅{{yivi°͸Γ #                                        ?8(B>+$#                           2/$JG5]ZN}_[U51.         >:8WPLvmfpgZKB5E<2ne[?82#  $,%&-&' 423jffuumJD=                   {ͺǰyo        :*8aGczb~J^WZQU`ddsji`blX_^Mb_d[OKcJMcmXpQ_nON}G}}I~N{I|WSX^VV]Y^Q}LRSTd[q~]gfv¸øĹĹƻƻ·ĺźƻƻƻŻżżŻĽēL>?>>>==>FQPzYb}gP`@%!% $&n~Qgcz> )$( ) !,#$-$%,#$.%%+"#&&%$""###"!  !#$%( +#!.%$-#"+! ,#",$",#!.%#3)'8/,5,)3)%/&!>64E?Cmiq¿ƽźs]TrXNrWLtXMrVJpTHpTIsWNw[Rx]Tx]Ty_Ux`V{c[~d^|c\}d[~f\}f\~f\~f\~f\h^g]g]g]f^g`ibjcibiaj`jbjbiakcldldldldmenfmenfogogmemeldnfognfnfohoimgmgngohngngngohohniojniojojqlojniojnipjqkpjrlrnrntpuqtpsosornsotpsosqustrsqtrwuwuwuvtwuwvwwvvvvvvuuwwvvvvwwvvvvwwtututussqqssuuvvwwwwwxwzx{x{vyvxwxwyvxuxuyvzw{x|z~{z}{|{|~}|}~Աðȱȴ˶̷Ͷ̷͹λϹϹϷζ̷͸ηʹ˳ʰǧ}deupn~vusupq}nku,'*                  !$.$ 4*#,"".%B92D;2B90I?8H>7H?8NG?HC:C<2JB6H@5E>5D=3C:1=6-52)*(.' 0&#%#.'$/%#                   so]^Wajr|}īνغҶð̸ss}chM^Y)buހ撲lj8@=7~C`IV^e^TYZJSRGP[\UMUQLe]TTTh{lYJDFiq}?;8ehR\e^sjdqKU`NXe`c_jfjpoeXehmlrisq]xoxnlmovug`\chdigd]mvtxweWg^j}uvlwi|`ː઩w}ɍ泭|oklvkvwNdsouv~z{ӉzՋqхւہy{{rl߂ހpބpv~o|怵vؖ{huȻϹϡóν&.*!                '#  !jeN!                            01)x}k|dcH!                     SPFwͯ[XT     PMHȾݶİ̾˷Ӳql`QKB74.'#            zkwgZ'      B/Awkd]oVNh_Zjl\]tVUg]ehO[Qi^PVH|8H|=;:>FMCI}n{sFV;""$!%//)blJVf:'  "%&( +"#.%&2'(4))2()1().$%*!") !&##$$""! !#%%'+#!*" )!)!*!-#"+! .%#8-+8/,7/-<10<0.A53LAC\T[ƽĺsov^Uu[PuZOv[Pv[PuYNsXMsZPx_UzaWzaWzaW{cY}d[~f]}e[|dZ}e[~f\~f\h^h^j`j`i_h^h_ibibibibjbkcleldldkcjbjbkcmeldldnfphnfnfmeldmeognfmemfnhnhmgmgngmfohohohoimgniojojojojpkniojpkojpjpjqksnsornsotptptprnrnrnsososqsqpntrvtwuxvwuusvtwuwvvvvvuussttvvwwwwwwwwxyxyuvuurrrrttttuuwwxxwyw{x{x{x{xzxzxzwyvyuyuyvzy}{|z{|||}||~׸ŧ©Ĭųʴʶ̹ϸθζ̸ιϸθθз϶ͷ͵˲ȱǫkn~jl{{|yzxxrp~nn{>?E           !$&(,!-"0&8/&>4,;3)=6+JC8G>6C:4C:2HA9OF>G?4=7*>8,91&;1'<4)2-"/."60'/% %#"!                    VQA{||\xkeZmѴϽѻеįǹu{kCR)[X'þnoeeeyWvOՆPW\[_]ZQPZQEXX_WINRRh[Eh^\\_XNTXdrAA GoTW^Vd\Pe`OekYilgh`Ymeblj^qnmqeeo_rUyphm}ximjenhaoijbqmijllpiZqs|xttqdh~谺̒ۡ򽔤kg~horoTWjtsr{ox{s|}؄}{myy|݀srtoss}琝x~c{gzݴʙ˛ #                  )/ - &  .$]S8 a_J𬴌+0   `\CpAB)                   EKCk|mx~o;<.                     0-#tq_¹ɽǹþyxs40, $]ZVǮɲξȱŨec`       eS_skyifW4    9*>~^xF\jiX`{ldeaU`Z]Zeq]b]QZZYYWNKwén\V_eQURW[IDJEAJVP~GuBuj:kTLr>wgh`cW_zM~Z]W]d{sjxĶȻµ¸øµķȼĹ÷·ĸŸùH989=;:6:AIDButfj9I3  //,--""$$%) !+"#,#$-$%/%&1'(2()1'(.%&.$%.$%* ''%$$$! #%%%&%'') +! * ,"!6+(=3/A96E::A66E98OEFMHN¿Ⱦļ}iczaXw_Tw_Sx`Tx_Uv^Rt[Ot\Pw_Ux`Vx`VzbX{cY}e[~f\}e[}e[|dZ~f\~f\h^h^j`j`j`jakdkdiahakdkdkdldldnfldjbjbldmekckcmenfmeldmeldnfnfmeldmfmglfnhnhlepiqjohohoiojmhojojojojojpkpkpkpkpkqkrlsotprnrnrnsoqmrnqmrnrnrosqrpsqusvtwuwuususvtxwvvttttttttttuuwwwwxxvwwxxywxvvuussrrttvvvwxzx{x{x{wzy{xzxzxzxzx|w{vzw{y}z~{{|}||}~ͧ¬įǮdzɷ͹ϻѺйϸθζ͸ιϸйиε˴ʱǭĥ||hjynqtxy}np}OS[             "%'"%&&$'3*$6,#9/%6.#:3(C<5F>9E=5OHASLIE>881';3(8/$4'3(*%(#+$%                     >6)Ń}|ǁבԒ˰znY[;zUhB&*l}caY\[~⟊<ρw`[hUW\VHCGLIONGIHNUY[k蚰s[XUWSdsWy}LKQoea`YogYnp]cncdjgefZdf_]hasjgknpwҀ쐰W`rlhnv}qlqg^aGZYc_kuqllg|sy˫ؓfb_ȡw{ǴøǼɺŪɧкȾWWN         I8?oko^t\uajYF+$   ]?emNQghXifXlvca\dnd`X]adREW_QZ[SKWTVV_e^MRM]YUSS~Dn9qyF~T|FzF~|GMO}Gf6h{M[[wH~XPUiaTQ]hua~VzW}n̾µµöĶöķǻJ968988:8:AH*Xd82 '%!$ #!"&"#$!$%%') !+"#,#$+"#+"#,#$.$%0&'0&'/%&1''0&%-#"+! )&&'%"##$%%$&&&&)')1(&:30<63:31<63FA@HFIhfl¾ʿǼû{d\zbWx`Wy`U{bVzaVyaUw_Sv]Sv^Tw_UyaW|dZ|dZ}e[g]~f\}e[}e[}e[g]h^h^j`j`jakakcjchahajckdjcjckdldldkckcldmememekcldnfnfmenfnfmeldlcmfmgnhnhnhmgrkrkohpioiojnimhnipkpkojpkojpkpkqksmsmsosornplqmqmqmrnrnplqmrpsqrpsqtrusvtusususwvwwuvssssssuuvvvvwwwwvvuvwxyzwxvvuurrrrssuuwzx{x{y|y|x{wyxzy{wyx{x|w{w{x|y|y~z}}|}}}}~Ϫ©©©íƱɴ˻ϻμϽҼҺйϷͷ͸θη͸ζ̵˳ɱȩ©©ptko|ps|y{^_i               '"*%.)#+$' #"$*!.$4+#2)!*!-&!C;8LD@PJCRNGKD=:3+5,#1'/&.%,%(!%!                        ×ۖvwxօ؇у؂ބυ;8 cÁÿtĿtĀʓp@6}٠vh*+]߆gZTOTYloN|[~vq\S\TLJQXM?@FQDSZVW^ڈӃXUUSRYaPbņU_:fro[rfZ__^`ccPVaXlcYjied]aRDwstڅۋ`akipuvpېڂyreoskxbwnmjxco뒖S7{ywro|m̙ٯ㵺љ媷~gorڌÄQNmssu܂umvzgza`[wՏ܅{yxx֋ឳ̂qyz}}xƀц̊snzhzo{Ķл̍                      ǧĜ~vzt}{{maqL)1nu^ıĬ                                 AL?M\LQdUNbU[pfq~Ycbbed^ml\Y\Sa^[cZUOe\]ef]adecRPgUP^SXXSZMINQNz=}t;tvAwm;nvDvPLR~GxD|Nq=rxIzrDswFyp?t]N`\_QQ]}JXoui`g[zX}Ÿķµ÷µöȻK;46656879@N'K^&$ ")'-&!%!!$&'( ') !,#$,#$+"#*!"-#$/%&4)*3)*0&&/%$0&&/%$.$#,"$+"#,!#* !'&&$$&&&%&&((%',$".(%-(%/((945ECFQORɿƼzy|cZ{cXz`W{_U}aW|cYyaWx`Vw_Uw_Ux`V|dZ}e[}e[~f\g]~f\g]g]~f\h^h^i_j`i_j_i`jcibjckdkdjcibibkdkdldldldmeldkcldmeldmeogogognfmeldldlfmgmgmgnhoiqjpjpipiniojojniniojojniojpkojpkqlsmrmsosornqmplplrnsosoqmqmrprpqorpsqusustrutusutvvvuvvttttssuuuuuuwwvvwxxyxywxwwwwttsstttuvyx{x{y|y|x{wyxzxyvxw{y}x|y}y}y~z{}~}}~}~}ͪ¨ª«ĪĩĪƬDZʷξҿҾҼмѻѹϸθθηͷͷ͵˶̲ȭĦ¨ª©v{ouylmx'$'               #'!+"('&(+!-"&&*,#(1)'?53D>8GC:E>65.&-$) )!%"                  ##$((($#!"" #!!        1*tikwzxyws|UZ^mszx̀sۚƵxѐڝ{~t`JMFQ]aYh쎨[\o[]U\WCESRKPTYWHY[WVYyՉ]SOPVWTURely5IkdhfliaX_QDde^W[h|z\kpiall\NlwwӂKefbcopoi~qjXkWl\Xtsmoh]䐌KFr~upns͊œղŰșg}ܓ̆ۜzp퓶s|r]nt{smzvtjhXT̍ݨЄĂz~xtw뉴Սƒ™Ƭ}DZȶ               54$Ȯ̱~|ke}p}hr_:C1 IJٿӫ˶/7-    PRH*& !                       242N[NN_OQeTH]LKaPTi^eyu|{(2%            wuRj|Ծɯݺťūɷڐկþ̻ʼͻʢ̭DZƯĹ̯ĸɴűŤýǭine      $vTFiUo^qkv~YokC^mHhzTwvKtbv`[aahT`_fa\pcfbQNdekipiQbY_TWj^TWPSUVR_WLIPOMKFq8pq;qWTyB{q{fakmsleajVg{qciedje`olednpx~Մԋߝ|\lhelimt`tkk`ZZXi|r{q_|qknXhYfdonnoцإȯÆ|qk{ۣ͋٠ܘ垰vyꌷkv˅̇ۑ߃iysji^j]cљ|ߖٝύ׉y|{髗ûwh             WW@ÖwknVq^xk3>%Q^G¸޿Βtio{lǶ+% $                        @IAHZHAWBD[GD[GH_LLcSIbXs[jW              $ ~{WiѹýŸͺ˾ĻղѴÜԵǺͭĺ̴ʵ˟ʳŷȴĨ¼И`eb     ,kHEmhmv{zzyj{J}\nmdU`eceb[`a^c`ZfdUZ`cWWh~Ŝ_KXMVKU\TMNQWNOKSIV^QPADIn5hy?wQSg3dm9id0^k:dsDnvGvrAsxI{^b]}Li\`Zc`lnjku`b´¶Hz;757:<><>B_`fſǾƼ¼}f_}bWzaXybWzbWzaXzbW{cWyaWw^Ut\Rw_U{cY}e[}e[~f\g]h^i_i_h^h^h^h_jalbkdkdkdkdjckdlekdkdkdkdkdldldnfnfognfnfmemekckcmenfmemeldkemgnhnhnhnhohqjqjpiohoiojojojpkpkojniojojojojrmsornrntpsoqmqmrnsornrnqnqoqorprpsqsqtrusuststtttuuvvuuttttvvvvuuvvvvvwxyxyxyyyyyyywwuutwsvsvvyx{x{x{y|z|z|z~z~{{z~z~zyy{~}}~}~~~μǮ§ëĭƭƯȰɲʵ̾ؿԽӽӺйϸιϹϸκж̱ȮŪëªwz{~QQX               '2' 7*#:-%;0'>3-J??^UVg`ameiVLL@64;1/92-:2+4*$&#"                     "& 5011-.'$ $#)(&10/.-),+(00/.,)$,$"*!!     FI=}wcfE_lnu|zww|߀ކŸsρց~փфՇێޞщڒՊ~ackS\U]hiV]b_V㋽ugi\Ra`\MU^ZWOKTMN]MdqhZR[_YQW۝ܨYj%YɀnZtmidtWe]\qljglaahcqdkdoؖ䩿ܚڙÇ~~coaf^kdwxgۍ}rpxrewtcsވlfSfnqtnބ᰻Γfqtl|z̖汾Δĉupy~؊ؗ՚Ԍ{tnpopulrjْ͓鮽ٚҢȻŹǺTf_ "&$..               ҜuŞ~a]w}ӿȑh_~t`wSwt{º%(  &+ @K(zr{yBQ%Wi3nUn|[YcI(+                 JUKK_LF\GD\FI`MTiZ[rd`wlh~z|=<=K2Pc$/!'#$#)! %  !""#&') !) !) !*!") !+"#-#$.$%-#$+!","#-#$.$$/%$/&$1'&4*)3)(0&%/%$/%$+! ))'&%#""#%%&&!+*/>>CKLRɿǾƽúzy}e]|aXzaW|aX}bY|aX|bX|aX{`Wy^Uw\Sy^U{aXd[f\g]h^h^g]i_j`kaj`j`kalblcjbkelemflemfmflelekdkdkclcldnfogognfnfnfmememenfnglemengnhmgmglfmgogpipiqjqioiojojojqlpkpkojojniojpkqmqmrnrnrnsosornsotpsososprqrprpsqtrussqtrutttttssttuuttssuuttttuuvvvwwxxyyzzzxxxy{{yyvwvysvsvvywzy|z}{}z|{{|||{z~z{z|}}z|}}|~ͼʰĨ­ǮɭǮɲ̵̷ͼ־ԼһѺлѺиθζ̲Ȯĩĭê{z|vxtuefp              ( 1(#6,'8-'2)!.%!/&$3+*831<76;428/-6,+4*'4+&*!                        $ !!!#!%!" ,)$40)85/:8352,1)#1&!1&!-#  /*#~ǺktZMnfiu~u݅|vn~܅}ݑЊ։܋ևqs{ikb_chYSgTHroU^YHV]YRCMVTMEMMJFLcO`oXZBaS^ɂOadwvT`hbYg`h`bitaMnmqgx^EppܛuecZZkeydYqlqfߏxdim]Yx{쎹pilYӁtsfzv։ґrw^e|䃬nč沼ҕӑɇђljΉ}ԋ֚Ӥtxvxl}wnrmύܓߔݖ~їՠВ֕٠jhpt}Ƶͻ(/+                   rsp[ܹrjUSѸvwxx`{byžп>F5U\=lsvƟ\wDvEzSksf$)                     ;>:\g^N_PRdQWkY_ufbxlbxkcznh~zhvg$,#           "$" #eqصĿӲêr|eun~`r_pw̺prn|~Ѽ£¤ŸÿĴƺȸŴŽέ̲ǵʸͲǻϪ˽ҎĮī§ظ XE[bKiqyHĘbzhb[SY`YaYSdiueek^eVZ^YZgcbb_H^e[PWtT\_INP\\][QMG]dNFSSRSO~FJLJN}C}x@ql;b[.Tb5_n?nQWTS\bIewX]cbuqfkseivvo}F=898678:;b:ɨͮbX˕wwOiJefºִ˕åΜvǓϤͩЮϜ̎٣Ÿ/2'               R[WXg\O`PPaPZl_lwbvoZncQfZRheu~|LZJ      D@;yvpĻĬXI3_f׾ȕmzuethxxcv`SeLl}m¹bt_uve`sUm}jϾ~|ѫǰ¾ü¬ͯŪʱȰǨŪÙq}šƷָs`wazOZȣkr~ƚ^dc\dgY]WU]roeTJP\`U]T\\bgeY^[X]ZWkTU[TI[^aNMJN`Y]UPYQKZ|AzHQVJFIGt@s~L~LyH|}J]SMYi^O\`YW\ffdd}nklzM|NQT[bfp~n=<:679769:<>A@>>;8:<<:>BA>:?@P8O)')3''-" &  #$%#"#! !%&'( ( '( ''&&%'('&'') * !* !'%%%#!! ""%&&*#+BBJFEPur~mj|e[}bYzbX{cXzaWz`V{`WzaWx`Vx`VyaWx`Vu]St\Ru]Sx`V{cY|dZ|dZ~f\g]g]h^g]g^i_jbkdjcibibkdjckdognfmenfnfnfmenfnfogqiphohnhmgmgnhoirlqkqkrlqjqjohohpiqjpjqlrmsnqlojqlqlpkrmsnqlqlrmrlrmsosornrnsotpsorntptrtsususvtustrsqusvtusssuuuuvvvvrrttvvttvvvvxxuvuvwxxyxy{{zz{{||z{y}z}x{x{wzuxtwvyz|{|||{z~{{{||}~}||z{~~~ͳĩĭŭŲɶʷ˸θϸθιϻѼҾ׿սӼҼҺиεˮĨì­îĭííîĮİưƯůŰưƮĬë¬ê|ihxfdx|}qu|                                                                  #! '#!      aiK³ï]oOnu>ٌcz߈Ձщޠˊm_^ЋהӉߞȷndzg}ֈՋٌ΀|Єߎފۄ܇}dG_TXga\SLPcWS[TYa[KQNjҖ¿tЅ݆|ݎ׆p[Wbiل|cdj[|bhrihtrnm{͂oxjmoe`aqoohkqjekpv͌zۛ|qsy͑ϕdewZtrnjjimeoxtmjtwx˄㣻֐ښ笷{z헭t|r_f[mǐѭʱԙُÆmn~~àƨ{mrcgyi       /+$߽njȈ̈u]u̓ՒяmOb6e1b+`.S+P:VTitŭhfvmƢ{m\~~ȳ{}zs̸ij±ɹƬ|q        ;F:QbRThV]sc\rcTn]NiYLdUJ_SUh_\rjPfbYprz^i`/5/   %#twh԰sulf^DhmȯȮuusltjxqҤ}syswdz̧̬ٺЕճƹ͸ͧʸΠ~pĒŔmwmj`JVpldlhUbZPceq^alel^_lQ]jdh^qsiZaScSTZa]__]UdaZZBEX`YORUPOY\QQYPQQNK~Az=~CGXOyBPHz>MKTaUN|B~o6ln?sdfl^da`Ofz|r~|G;<=;;978;<:8:=:8:>@O7M*(&%-'%+ #$$#$#""##$%$$$&'$##%%') !' %&) !) !) !( &$#""! !  #&#!89BMOYYXega~c[~cZ~dZ|dZ~cZd[~e[{cY{cY{cY{cY|dZx`Vv^Tv^Tx`V|dZ}e[}e[}e[g]g]g]~f]~e^f_hahaf_f_f_g`g`f_hakdkckcldkcjbldldmemenfohnhnhmgnhoirlrlqkslrkrkqjpiqjtmslpkrmqlpkqlqlpkqlsntornsntmrmrnrnrnrnsotptpsosotptstsustrusustrtrusustsuuwwwwuuwwwwxxwwvvvvvwwxvwvwwxy{zz{{zz{{zzz}z}y|y|z}y|x{uxtww{{|y}z~y}z~z~y~zzz{}}|||}ξˬîűȳɵɸ˸ͷ͹ϽҽҼѽҾ׿ռҼҼҺж̱ǫ¬ĭŮƭƬİǰƯưƯůŰưưưƱǰǮŬîŭī©|{nj}d`solz-/4                                                                   # $        sgspUb5jzbez{sqqo}܈~w}eٔz؋܍yˁȽrt~҃݃|upqx}؂sXdX_ilg`]JLXOZZZdNDϊזǀxuօ鋷ox5ddb~g\]R^jbk]Zpkgekmqrowgk{m^ipkweomckVS{ؔ~ٝЎڜԙ˕Ē}ǂ΄tr|m~>i|lltpsmprȇxxyus|~⢭Ƃڠ҈ւxf}Ff}sÃӨɣʣĖΏۍpkys{zʴѾͿʳжθø̽ѾΨźɿ          #(ٹQVN|JpDjCpWј̇oHd)a_\!R$L)I/PFzuOv=pbΪѾĤ̨pYt^tlXB^EoZve͸̼¯ɵȶʹêȪ۷emR        ", GX@NbJShUYn]Ul[QkYTo^Rk[Vm`cwseyz]qoNe`Smn[dZ8?7 *& {ͯ«̼̺ǑTQ=xW{^÷Ū³іknb~]mm{ɳΤ´Υ½ɮĮǗҼֳdzʶ̫ШʰŔu}ƩʦoϞĒîovmV~mugYhqbfi{Ǚ`xŒ\am\aVjbgdTbc_[\lm_diaehch_SWh`\\WW^UFWUHIROBDOMFKRWSJLRNWXLKRWZS~GVIHCRb`WPNxAwb4e_XSRa^[X]^pgcuA;9::8779;:87;78><`Z.D#&5-,920=$"$##%&%#!"#$$"!"&&##$%%') %$((* !+"#*!") !&#"!  !!"/-5QQ[MNZ{{h_d[d[d[f\g]f\e\}e[}e[}e[}e[~f\{cYx`Vw_Ux`V|dZ}e[h^g]h^h^g]g^f_f_g`hag`g`hag`hahaiajckcjbkckcjbjbiakbjbjbjcicjdjdkekenhpjrloioiohohqjrkrkpjojojnipkrmrmrmrmsntoupupvormrnrnrnsosorntptqtosprrsrustrtrtrusvttrusvvwwyyxxyyxxxxwwvvvvuuvwwxwxwxxyz{yy{{zzyyxzx{z}y|y|z}|z}vyuxuyw{y}y}y}z~y}z}{y{{|}}}|}~жƩíĮƲɶʷ˷͸μоԿҿּһѻѸγɭġĩĬŭƯȮǭƯȲʱȲȱǯűDZǰƱǰƲȰǰǰȮǭƩ•{zmi{e`qhiv35>                                                                           !       16"zt=Q1m葜Ipΐqnxvրzid¾k~pbʿtא܋pylact݂ـ揺uakdRate`T:U^IUjcJJ·yѐ}ԑڊފԂ|}qt=]e"uj\zqsQXcbXTnqmmjfopne]lfb\iffcljfmwq؃؉rnҖːʑÙpkmjqـ~ދ{Vؒ܊Ҍislmv|ڠfitv{{חߤ霾ؖə᣾Օ͋ЋՍܗӓԚбrxgaݦɇܓsԈܗ}zѽ̽ٽϻ̹ʩɵ}µ޲ʦ#*(               6>4གྷer6ㄗTJ{If5kIɓݶЕ}Xj4^'^)UKQ$W8wp|wUoW|~mdS.fBgIlHc6f4e6f@{lŮȶνɴ}vv㿱gmP      9E5K_DMdIVmZYpaTk]Tn`\viazl]tj]rn]qp`tqK`[8KJLYY`e]Z`RBH>01-%#xwm޼˨ֺʷĥvy\\Sm~~dv~a¸ͻϺíûĿ̱Ď}bgmqФВܙθҲʸҴʬįʲϤ~Ũʟtͅ}hԻ̞jgjhcenw~ð{úʌVyåpkdiy§lYc^fd\XXae_knccaci[UWXUXF~?OQ^[^^[ICMP|>GUMTELROVVYTQ}AOVS|EGGRL|AIZ_[JULNuE{ZW[ceXV_[[gmc}]V989:8528=:87=:=?Mˁr"2H'(4,+8'%2 "$""#%%$! #$##"!""""###&(&'* !') * * !) '##"!    )"*HFQNNZqmypl}e[d[e\e\g^i^g\e[f]~f\}e[~f\~f\~f\{cYyaWyaW|dZh^kalblblbj`i_h_hahaibibjcjcjcibjckcldmemeognfldkckcldldkdjdkejdkejdkelflfmglfhb~hb~jckdlemfngnhmininipkqlsnqlrmsnsntntotptptptptprnrntpuqspsqsqtrtrusvtususvtusvuvvwwxxzzxxxxxxyywwvwwxwwxywxxyyz||{{{{z{x{x{vywzwzx{{~|z}vyuytxvzz~}{z~y}{zy{||}}}~~~}~ͼʵƨêíŮƱʴ˷ͷ͹ϼѿԿ־ԼһѺзͯŦªëĬĮƮŭƯȯȮDZɱȱƱDzȲȲȱDZDZDzȱǰưǯǮƜ|~rqhgufgt((1                                                                             KO=ȸTgTVЃbӚ֐znovt}krxoleZktwykǿsyjvoiwx~u菳bsthZde^BOce]GT?.ȿ}ޝ}dµjٚ|؎s֠Ka%Ot[{zcmXU]`inkefܝqxyrhnd_<\khehlj_{܋ي΅ǻs|Қ͡¤Ƶwrc^䖮ƃ_jދͯď{ofٙ˔Kx{Ճǃŕܪբۧ乺Ӭͱ|HpNxo᫘kYjUvju޿Խд¤ñ¨ʰȲt{kwx6SWSc]bULKZe\LcWWM@|@QVUTZQJLMMPTVONOba_Z{DUUOPe\dr_`_[[in}u~Y~`@:;A@@?<;:9WO>wviɾի{x~yowpmyrެٮűͿճţķοٳƳ~r|Ѳγ̳зӴЬȸҟǴݯČֶͶѳέdzϲвѥƖ‹gіȱeg}imslheiȫuikdɰ}ǥnqtfZTcce]e\[`diOSYUhcdVYVV\b_]beYXRddR^]`cXQYUNRTOSYJQTXWRWVU^RPKZHOZWS[VXZNRYQH^N\g`g`akcRegmns{yZ{Vyb|nhj~o_NHJDAA@=;9z?f9#&7'%2 #'+"#/%%5((4''-#$) ''&+!"5)):,,:+,6)*.##&"  #%%$#%&&%%$!$(%  ""!""23MYONWKEw=UWWS\RX][\[V[M]|JOjkbgcZjcdlkkhotv`uRggah}owc\OC76}3p8m9a.Bu'2_(1X*.P+,F..C*)<%!/%("#!'!' ("+!#0$%2%&0$%*!"(''2()?30I87K99F56;,+.#"(%%""%'%$##%&%##!$(%  !"! +)4DKXIR^fdpslg]e\d[e\e\e\d[g^f]e\g]f]f]h_i_h^}e[|dZ|dZg]kamcmcndndmdlfkdkdlelemflemfmflenfogqiqiqirjskqjpkrlrlrlrlsmrlsmtmsmrlpjrlrkrkqjpioinhpkpkpkqlplojpkpkpkqlqlqkqmplplqmqmplplplrnplplolnkmlnmonnlpnpnnlnlqqppnnpprrrrttuuvvxxxyxyyzyzxywxyzwxwxyyzyz|{~z}y|z}{~z}{~{~{~z{x|w{txw{z~{}}|{|~~~~~~ŭȮȰɰǴ˻ѼпӾԼӾԿֿռҶ̳ɩ¬Įűȳʳ˴˴ʵ˳ɵ˵˳˴˵˴ʴʴ˶͵˴˵͵˱DZǦ}|ol|[Zc                                                                               bk]ưxjxEH-vIkrgcZlrwnkqg^_\\rnpcl|ގxjkyrrimwznest:^e[__{{Ո[L[sun˂ʄۀyܕ|…ג|~qozmm^Slhceki膠bԌޛђ_~~prߠ{՗hOll؜ۤޭ߱ܬܥĄ}uώ³Ѧɏ{nprquxӎ\Цͪ˧ʛˌRy|wё׆ٌ؉岹ܾ֨ǰѿ~xbsiuvxźǽɬϵ՛Ƴ\g]aĴ̵ܾصͱȲʮǢ÷¶ዜ                  ۲ίյξűҵĠqr[TXKZMnķҺμӴҽϻҽȩxnvZQTD79.bhUtdi{]dv`O]P|GTPCRMFQO;??43044..1(/2%34%97)NI8up\v{}zo~fo`trsμȺڿɣŭǸŲƹոͼߺϟž̳ӯγзյӯΩɞξ֩ӻԮȰͰ̲ͩŨȣpvuw5QCxÈwȥƞīЍXYvƒ`jkVd[[gkoiikȡimseuuWm_edWk[Zc^ek]`i]U[QX\OLQMJENYh]Kb`V[R\hWQENKKV]LN[UWWTVXPIGIMRZXZMV_\_drPIZvCxDwCUT|I\^MtA|`emfno|mUOeRQYpuoth9b'V%L1N9R;Q@P>M;J=INVX^LS{AEp@?i?=d67Z33Q2.L2+D-'9%-## #&'&"&!' ( * !,!"* !)!+ #*"#.$%7+)A1.H54E45;,+2'%/%#.$$) ''* !* !'%%%$%%$""$#!  ""&)<<7=:116$0;!AJ(QX5iuSyg~˿оǒ~j|^|[m~{osɴïǿԡ֮ɿǻʱƿպѸ߿ڞǝֺӮŎŸֵԭʳҶױѫ˞߻՝̹ͨĩ˫ͮͤßsqnq+F?¬wdYujr`egibgqlkfnsojggƚb^Wfc]]^]gba`hhi]V^HaJHQmerb|Ax=`[X^^PQY\`TWZ~AFTUTPTZRIT\QOFHSRMJSLy@v:yI^U[\aJRQjRl4nWUTY\|IV]_WXXhvrlrjXX^^otqvqj8?/=2A2A3B5B5D6D8E;F>F?F>EB?E>EDH~??o74aA@m@@j<;^53U10N.,E-*@*&5& +%%'%&#&#&#+ %* #(* /##2%%6))4((/$#/#"0%%-#$) * !,"#+!"'''(%###  ""  !!"!  "!42@JLaNN]zwhaf\~d[~cZe\e\d[e\f]f]e\d[e\g^g^g^g^i_}e[{bX{cY~f\i_kamcndmdlemfnglelelemfngmflephogogqiphqirlsmrlqkrltntntnuotnuovotntmtmvnuotosnrmtotormsnsnsntoupvqupvrwsvruqvrvrvruqtptptqspsrqqqpqptrtrusustrsqsquussssttttttsssssssstutututuuvuvuvuvrsstsstvuytwvywzvyvyvywzy}y~}}{{y}w|w{y}{}{{~~~ǰɰɱdzɶ˵˵˸׽ӼҿؾԺж̱ƩƯǰdzɵ˶̷Ͷ̶̶̵˶̷͸ϸη͸ιϸζ̶̶Ͷ˲ȰǬØ{wkgu@=F                                                                     94%IF1?:)LD2+%  ѯzvb{n{r}tzwm{gQU1Ԓ{ኲ_Zlzolr{mh}pmjrτޙߙڏǿnx{vuys}vnl}sibcjvߌٓwՈ~ylO{*揽lWbrzjV]\Llzgi؈ݍszuvwoccXRoeou|x筲˘n͗qq^ٞ١ؚݣ߱o`Zьښ㫹ґi؊ޗ}wfdo{ݟυyނ`frxrnxˀqov|tځ܍ܕޠ٪׳qtzſ͘skqŪƛ¸ƫʰʱȵɺͰãĵ}l|         %#         Գݹؼ֮ŐɼӹҫƋdms}ǠogLy5P:WFurƯϺʵůʺȺͳƶʺ˽ǹʼվֳ˰~liV`lZcfSQU;33 12"5:&CM3`tSjVdVspŵѾԾ{edi|Ú¯̧ڴʼѸͱƲȸϲƭɾر͡׵԰̫ɶթǛoɭȈyŵΪéˬΞ̮ưvw[xc8SXNJyƨ_fztcgv\]m_^nWffgnjmipkrșҫuS_eay8XPQPiiVVhf_\GKd_oirhg{XE}ʭp\R]USLPKMZQH[eVXVTXPx=EFONMNY]WTHHx@Q{>BROU\SdTVTKPSheYeeYeZ]RVYbleb[WURlpqsCC5@4C.>,=+=->/=/;/91:3<6=5<6>6@4<^_~z?@k57kA?uDE|BF|BFz?Cve()M++P:9Z84S5-K2)B1'5* ''$$##%)* *)('&&&$$%'&#$"  "!!!!!!!!!   ,)6AEXFL\^bkts{b[d[cZd[d[e\e\e\e\f]e\e\f]f]h_h_g^g]}e[{bXzbX|dZg]j`lbmcmdlemfngngkdkdmfmfmfngqiqiqiqiqirlsmsmsmrlqksmsmtnuovowqvnvovovovpupvqupsnsnsntoupupupupupvsvsvrwswsuqwswsuquqvrvttsututsrsrtrusvtvtvtusvtwvvvuuttvvuuttvvttssvvwxwxtuvwvwuvuvvwuvttttuxuxuxtwuxvyvytwvyx}w|y}z~y}y}y}vztyt{w~z{}~~~~}~ȯǰDzƴȹ͹ͺϼҿֽӼҿ׽ӸβȪįǰȳʴɴʶηͷͷͶ̸θηθйѹййизε̶δ̲ȰƟ~{xgdq/,4                                                                    `{ryxqmtgrrHFA)1#KB%y~]iUnZtz}yp}ky}j񦾿lvvjeo{{zuoiilmdӀݑەܙrncvy}okqtyujljbgquޔ׌ǁזߛٗܘpVZ[⏯`QuրփԂsYP^ozwjqsln큕HKz̊w䆰XScsqrÎ٦Ԟ}љga{ևшܟ١yޘ坸ǁ{旼؅rЅԃфӎiRFXk|f̀́}tvxvupmrmv{{yyفmـ桼֘ଳ֥~j|ky{ǟ̤Ӱبɔzoxt̬ʠáŕ}yҰлŧ|                 ׹ڼнõńc^XGOz9_Uxzgjd\_~S}˿۹կȞm`R0dKg[y{ɷç˻ǷȺȸȹʽʼɽĸǸòõŹηɧʿ¨¦ɾǾֿسٵ|tδmubȱÆia[~X~ҧé­ձ˹ӹȤcdwŒͫɫ¦ɵٹвDzǻҼݤܶҨƙ˭̬˩ƣ{wϝn~jx̲ͥ«ʪɪðĵȰſ¶ɭùPfbZpzLJ߁ur|m]dg`bxh_eqrbdgjnkrķó|]ep˜ַ_XSj`b]^_\R_Glt~öz]`mwaHRnNg(df,i_oTQVVVOKLSVZVYOSKII}C^]WURUVSWOR]YL]]\VTUEEORI~H\i\ZWPQ_bVT^YUip`W^^^X|nq^>>7D.@+=)<)<+;,9(3".$.+3-5.7/;.8OVߡ}~`]HHw;=s9>|@G>d<:Z71F2)6) &&'%%#!"" "##$$"!  ! ! !"##""! !"&17BCOYIU]mee\d[dZd[e\f]e\f]f]e\e\f]e\f]h_h_h_f]}e[zbXzbX|dZh^kalbodpgmfmfohnglelelemfngphphqjrjqjrlsmrlsmrlrlsmrlsmtnunwpvovowpvqwrwrwrwrvquptouptovqvqupupwrwtwtxtwsuqvrwsvrvrvqwtvvvuvuvuvtutvtxvwuwuvtvtxvxxwwwwvvwwwwwwyyzzxxyyyzxywxxyvwvwvwwxvwwwwxvyvyvytwuxvyuxuxx|x}x}z~{y}y}z~x|t{ryu|w~y{{||{zz{~~~ƭıƸ˹ͷ̸λվԾԾ׾Իѷͮåʱɱɳʵ˶͸ιϹϹϸιϹϹйѺҹѺѹѷϸз϶γ˲ɪ}~ww[\g                                                                   ?8!̈aWZW\\omgptwr~cpJoRva~p{vzszxet_FBȒԙؚՌz_q{ʁbsslrmjkhSſjֆЃݗ~vVxwmddc~ywptlܔړ́ۛ؎ݘݚԍ^x~od||Q»nua¸qȾqr{r~qށnnlyc~#bގupf[\Wش䯱wٟ֙̑ޞ؜ԕؘ̌ՖuяtjԌ|vԈk܀W]oՇdas{<}>yفfhrTyvWaއ{cnlekxphqqmxswxzyݔޢ௬ЧǮ±ĻΜňbqjdwcxȞֶмœĻĹŸzƾƺزҹ~wowx|mnz|n{,19             25-׾YyR^?b:sWӥ{aQdTZEZ.@,>*=*<+:&4 +~&u's"(t"*w%/|19 +rtҮ\_:=x7<9C4>(22>A;ü˰”ƞzY;f:d6g:jHxiaU<`7oDgйʶȨɻijκĨθ;ò̾§˽Ƹ˽òŵʮǩşźùƾŸŸ´ؿݾɝøƾ}oY|HfTfZĕÌÕ۷̬Ʀ̺Ӡݷкӱɰ״Ϻ٪ŪȺٱϰϞ˔̬̞ǣˮ˳ϰ˜¨°ȴɺ̾нۻίŰÀBX^ˉHL`rinl_ikne`^f_YnilqlrtfhoSfs~ȷ˸ɫpcGMVNKOpfham[YabYB[Ga%Ww:sT]Jq:kq7kn4g`%Xv:wTTXbnLTHz>OWMQJW^[NYORROWgKVSX[W]V]WUYRPIJLe3i~PfW\j[iccbYSS_UV^bWIM\b\]cet~e:;0=1A+?+>*=':#2)w%l $g#d$h#(r+2|"*eovʺџge=@/7+82>6A9C9C9D:D9D;E>E?G@GGJ1/R!$#$$"#$$%$#!   !#"!!  !"!(EIWSXgdepvtf\dYdZf]e\e\e\f]g^h_g^g^g^h_h_h_h_g^h_h^~f\}e[{cY~f\h^mcpfrgsjrkqjqjohohpimgognfohoipjqkrlsmtnsmsmsmsmtntntnuounupvqupwrytwrwrwrxszuyvyvyvxuyvwtwsyuyuwswsvrvrwsxtyuxtwvxxwvwvxwyxzwxvxvwuywxvxvwwvvvvwwvvuuvvvvwwwwyyxyxyyzyzz{xyyzxyz{z{{}y|vywzx{wzy|y|x{y}{{}|{|||}{{{xx{~|}~~~}~}~~||}~|~̷˺̽μклѺм׿սؾԺбǦòʲɲ˴̶̹ϹϺйϺлѺмҼҼҽҼԻӺһӼѺѹѷͱǰƝ}x}pt),4                                                                   ccZcbcsotzfmzz{|sπ瘲ÆJ\JGO:Ʌހgzςބ}ԁqfvxulcfgnvdcԂ㖶cYijcjurryl|zxo~のaWzψֈӇlľzՅۂՃaypwzԀhҁXrp»jlgľmrr݈ۉwxwwsjmELryvep^ބՅΨ~ϕݝ]ٚqcҎ֘Вuwo]xtdjTjhʍˡݥrʃmOoteTYohSmWm~volbo}upφܑunm~{n{ugڃxƼʴƒps{kҐߘ饤p}zĶʿů͗Ⱥߧɫq}apʺus{{ln                    ˺õĿ¿ɱηaxSyTqϠ̬Ūvf\:_2k;lBx`ԾɵŪ˼ƵDZDZͼ¦˼Ƿ̾ɼ̿ʷ˲ǣȼȻƺȽ̺ؾ͵ƵƹijtucV\J[JqmϬոЪƕ–ѭ̬՚ڲ͹ԭƵο޾׻޻ԯͷֹ׮ͬέΚưѬ͢çɨʧɲӯЬΡ¨˭и׺՝ľԽϾֵcwwfzȤ\gyofvaschwjimrl^d__oxriвwaLchjqhk{¼ˤhVfhZd|̚[FfZOV]aSOCOaTHf)a_&Wh/_`&Wi0^e.Z`*Yq:pQWUtYw;JSV_Z~ATd\\UMNYRMWcOP]YYYZWYHW[TKGUIt>x{IeKW]XbZ[cRdXKNb[Ze\LZY[ki[keq\LG4<2@0B*?';%6!-{ %fQ !Z#^#`)(`53a32PɹĿѝSW's*48E6D4A2A5C5B7B9B8C8B9B5:n& 1#$#"#$%&%$#  !"""#$#    8;GOVeRVdnhe[~cZ~cY~c[~cZd[e\g^f]f]f]g^g^h_h_g^h_jai`i`h^~f\{cY}e[i_oeqgrhslslrkrkqjpingmgnfofohojpjqkqktntntntntntnuosmtnvptouptowrxsxsvqwrwrwryuyvzwxuxuxuxtxtxtyuzvyuwswswsyuyuxwxxyxxwxwxwxwywywzxzxzxzzxyyyyyyyzzxxxxyyyyxxxxxyxyxyyzyzxyxywxxyzzx{x{z}z}y|y|x{z}{~{~||}}~~||}~||{yy{~~~~~˻̽ϽѾҾӽӻѼѿֻѵ˩ʲʳʳ˵̷͹ϺкмҼһѼһҼҽӼҼӼԼԽռӻҸѴʮģ}~}}|`bn                                                             ysClddccmijlbnihmX\X^j{؄ci\~vwPA9kd¿gڈq½hzgig`jiqpptǾlٌȽrƸiaĻjoyvqxpiuycm}iX\ëٓӉotvւ܍҉¼vpoºiވ׆^}ocdqzſpxyu܄ߋwZՋԄtbRYkfbXPmzbg<^ҕɈąݢvhީਖ਼jЌzٮԛЗLJnntkŽjlacch޹ʙЗߚTkj]wPbr_}qtstnjVjtv章xn~wt}csu͊~۫לҚ٩٭˚੾ؖ﩯˜z}pwt{vͱ˯¸ǡĤq~fzFPQ   !              275kuqɽ˶оιԸɞƗճt|Xj7l1o4k=v]ØιǶȴǰ¡îĮͶ͹̼ͼñ¨ǹƸ˲Ȩ˿ķ÷ȼǺù¶ֻҵսжδϸԷñлӸ|شdZO@]OzzҸǿǪʢǗЪʩϽќֶϭʱιֿܽڱͯι׳ЮͬͮϠδԮʹТϞұ԰ը̟ìѭФØѿٷ]pskzmjorsdetvmgfelnjrw|ŷ{ährxyZh3wZmm~ªqW| fTkfflyVVćӲu[Y\`e\]^AYjI}@{g,^h1`q;j_)Sf3[^0UZ-SqAnwCzVYTWN^_OYbZFIJNNp7{u*0&*kV64T;2H (a`kĴΚhjHM3;)41>6C4B2A2A/?8H:F/81>6D4B/@9Kz$/%#$$$$&(((('&&$$'&(+ !,!") #  ! $'-EPXIRZ\]^vqg_dYdY~cYd[d[d[d[d[eZeZg\h^f]f^g^h_h_i`kbkblclckbh_~f\{cYg]k`neohohpipipiqjqjqjqirjrlsmtntnuouououovpuotnunvqwswrxswrwrwrytxsxsxsyuyvxuxuxuzwzw{w{w}y~z|{|{zy{zzyyxwvxwyxxwwuwuywzz||||||||||{{zzxxyyzzzzyyyz{||}{|z{yzz{|}z{{|{|{|{|{}{~{}y|wzwzx{z}z}z~|{||}~~~~~}}}~}z{{}мѾӿ׽ӯƧDẕ˱˲˸ϼҼҼҼҽӾԾԾԾԿ־ԿվԾսռԻӹѷϰǧŸͷεʹ̷̷̶̺гƻlov                                                            -vzɽm}ʁfwUya?F"bՄqU?d_ľ`DothnQ`fcbjdW[;HmkntqhSg{yxyiodnwlwnYN]szp_XżbZz{{lkyuts}|w{k[f|pj}҇ؐЉ͆ĀY⓾pmփlT]U脹V]pmdpnrنڅ{pntҁπrӁュQf|tpe|VbKYkš^fǒݥ\ޤ᯼~bsshrkbjw¿dxl`lܟѐ̉ķ̲z[\neRVtFUQQlsorsbgsq֊Ӗ⽊qw͍߆yԁȂɌΉځyrؤڨшkՁ᜻Ӓwex{ģúçǩʩˬʰɳȵݴԽz{mɵu+1:             ȹؽҷôĵ´׾ƯѾë˻̸̷˶Ͼѿ§мʳɵ˴ʧ˽ȵˮŬĨƹʼƸǹʻƶĴʿʿĸƵñİòDZɬǨØĴzzdgMEODhcksbtl|qšվͱ˵ì­ȴİ{ycdìϭʹѻѷٳʪŗس̾ڷҾګơԫɲШɭвӡ›ΪpͦɝѨͨϫϢó҂hqjo^TL^_uc\ZgrpeiƒδvegVfhUcjai]QbU^Zaiontr^]LH|4v/CfdimYNcfOF\[QWWNRIKSROYJMPXdNJSOMQMLGGRR[JWZYkUzAQWS~F{DSRNPu<~P[RzD{Ep8xKyCvA}RDPLNK[ˣŅj|Nael]\WUZYlPjoaA[rfhh[]bhfld8ǿhhhmfieue[kp}Ղuyk]_iyyNDg}mdg[lo΂۔ڕՋgiq`phqidWYzli߈|fp„sĿrلׁmcthĽg`_[sSTbnqojdӂkpo}woz~_{{pfof_n]aoȚƓurl>sseȒΒʊלɹ^omҌІqegmneil^䨯ćlhyp^VW\sY|lsipmw։؅֍߭үÓusшҀwوɋ؞~ߊu˄ݟݢהՉۑٓڈxsov㖷Ɇ~Ǿèƪɫʮ˲̴˶ۥư{t|ro]tmr                !/6-ѼٿƹȷøŴ©˶Ű׵Įѿ͵Ǭɮ̱Ͳʳͽ˶γʤɺ̿ͫĨ˿ȻʼȻ˽ʼŶķʿªϿĸʲôȭȄzsenfe^VL@]Zzj}yZjns_xɽѹܽ۾Աǭï̾vuѶùԸַ͵Ѧ¢ʬĮ˹ձΣ۬ɢ̦ŧȜƵֶՍ֬ΪΦ˦̤ʥɯ;ҁ~jok~khn`[~Ohlrhjcjor˭oE`u^h]jixrM]jngd^\^Yc[[\b[NPBWVLU^QKVJV[TNYdUXXWLFJLKYa_KURMLSVMMQELMKMPMSKRRIVKTI{BLk/rx>yBM\s=j4tIzA~m3mx@{GH~FJQHXvwQTjXWx@yR\UP^-^˯ʼп˾ʽͬhoJ_n /( "!#&,!!0"#0""/""-!!1$#3%#2$#0#"/""/#", ) ++ '(&"   36@NZcMSYaVVy_X~aWcXd[d[eZeZe\dZf[f[eZdYdYeZd[g^i`jalcnemdlcmdlci`~e[{cZ~f\i_ldngngngohpiohpipiohpjpkqkrlqkqksmuouovpwqwqwrvrvqvqvqvqvqwrxswrvrxuyvzwzwxuzv|w|x|x|x|x{y{zzyzyyxwvwvwvvuwuxvzyyy{{}}~~{{{{||||||{{zzzzyyz{yzyzz{{|z{z{{|z{z{z{z}{~|{~|{~{~z}z}|{{{zy~y~z{|}~}}||}}}|~~~zy|׾ԸϨõδʹδ̵̷ιмҾֿվԿֿ־ԾԾԽջӺҸбȬŪŴ>AK                                                               bȄ̅ڔEQzroXnEtSXc,NbTqrreWc~x^kiib\ƻh¸cgkppohmk]bfdS^{ilm\\bcmbiaq^s»ensh{uľl݃x`fr|q|rjpn{]~܏р߃svy|ɉnxspT_ys߂jyp`jjpajlxy}͆ߖ}~唌NʃڂVv{{onno]tygƝؼatqk_MDZͼn͒Εfeujla{wdllhjsϝۨکŚtsȎ~^ba`imMqRpbvq||v́фܝʽݾx{U}͑Ӓy⌻˂ɑ봸уי֌Ԍޑٕዾփއ{qw{w܇ˊçæĨǭɳ̳˶˵~yȬĚfuo}~ne~t               HTK˾̺ɫθ̳оջͳųĞŧϹη˷˳ȫʻì̮ȩ˿ΦʽĴµǾɳɲ˝ŵɪ‰|lqoscfc`]MR@QKaxf~^m\hTfjx~zܸܵԷд̯ʮo}|ǵٿһɺҵݾ׻ӻغ⟳ܣǼٟ˴ҝ˳׮ҦƂŰժϠȣˣɫлԀd`k{grpXuJ[ibcgp\gg_muB\dmɩks\agbl^pmdg[W]X^fbhnZLVOY`a__nj_USVa]_hUTTXJKOLUVWV^hHHMUPUgUOG~Es9NVOQWU^j]STx=q4|z>}?|?HKWMOTQ~C{@|s;tQSJLRb]}LM`_dUHE[^UO^U:QζúǴͭν͸ɽӠz%$. %'&(+*+,4%%<*';($8(#9*'<.)7)&2$$0""-!"(&%#"")'.DLSKR\ZRXw]Y~`V~bW~cZ~cZ}bYdZe\e[dYdYf[eZeZdZf]g^h_i`i`kblcmdlcjai`f^{b[|c\i_lcngohmfohohngohpiphpjojqlqkrlsmvpwqvpvpxrxrwruqvqvqwrvqvqvqvqvqwsxuyvzw{xzwzw{w{w{w{wzvywyxzy{z{zyxxwywxvywxwzzyyzz||}}{{{{}}}}||||{{zzzzz{z{z{{|{|z{{||}z{z{z|{~|~||{~{~{~{~{~{z|zzy~y~{{||}~||||}}}~||{׿նΩìĴ͵ζϷιλѻҺѼҽӾԾԿֿ׾ֿսջӸгˮDzɱǬ¨űɮũƵ-19                                                              iY<ăͽrw̻tC]oV^8}No`YOavjecsނuapykTgtN-wronoiikY_sibiVk}yyz_WT~wnYYglTYXWu؄fvyq|tz}wZـwχޝن܀xqoys_u߂qn¼eĽfļjU\Zqgzcgakvʁ~|΃҃|߅sPQpwPg~yvoulh[hiӲ᭥ipa^dsŵ{uhΉ|uwdPaljbgzܯ޶ÚrՉnYUPQsVTWO|ijߦڙՒh}Ʒձueu_|Nǎ։~݊ԗ̍ӏےۂ}vwށŜåħƬȰʱɵɼܱҽ}v|ǽǿyjr $                 %ȶ̹Ȱҽͺθ˱ª̹̲ɬͷ̴ǩνðƯŭ­ŸDZdzƬƧ˿ƹ®ƭīëš̵̰ˢμrZ\elØmzrrkjjc[MWFW@Ex9mymixcwWaO~XAoKPydii{ۖ˳ٺݯ֤̪9XPLt^˱ƾѻзڶ׼ػϦؐγҫɴӴӟԧɨʜԩ͡ȝƛįԽܞyjnReZtHci``mfsdkhd_YEr_X\o[Vf__gop`V`hZl^ka]bfcIYbjire\WWYZPYSXXeaVNLMXYTYRKyr`SYWXOVSO}FzBN\^LSV[PP]QJJO~A{>OPQVUaFIULFo5mKXOMNXhVwBX[Q[SQVkeRUcBbϿȱùùϹŹͿ̺ɼ˺ɳWVU.**')!&#&&+4%#9(#:*$?0*@0+;-)9*(3&%/##(#"##" !!:=DNR^SOYpZY~bY|aW}bY~cZ}bY~c[e[g\eZdYeZeZeZe[f]g^g^i`i`i`kbkbjajai`h_}e[{cYh^kcnhpingohohngohqjrjpjniojqkrlsmuowqwqwqxrwrvsvruqvqwrvqupxswrwryvwtxuzwzw{xzwyv{x|x{wzvyxyyzyzyzyzyyxxwywyyxxwwyyzz{{||}}}}}}}}||}}||zzz{z{z{z{{|{||}}~|}{|{|{}|{~}|z}z}{~z}y|y|{~y~z|{{zy~{{|~}}}}|}|}}}~{{{|׿ռҮǩĴζϷϸйϼҽӼҺѼֽӼӾԿֿֿ׿־ԼӹҲ˭ǷкҴͰȬĭì©ĩ©«èĬĬĭé9AH                                                           ^ЈԉkOkZ\2pc7¸|vwfZbmdhŽo}vsnibgad{{vHq~vpolcltfi^c`Zەvrobn^{ۂta[RĽc[olgli]om|掹hhp~xzsކtяۋ׀tmzmp»s]{ZXqmRgZPbR_o_aks~ly΁}x}݉q}x~]cce`UXcflpݱܭ̎RqYln^ˍvޝ̋_sUcw¼͢ޱ㶴УИΆaart[C^qXd〪]g}kڧ߫ƈٚ꿺شڮʒם񳐬h^ُ׆~{ӎăхj鎴wڄނ}u|~zꥅţäĩȪǬƬŮŷݶxr¯mlykň̑ĕ06&                        .4+ϼ˺˺ζ˵ʫͼμͻϯœ®˻ijDZǰƣɸ˹̾Ŭŧ˿˽Ǻ­ƭŬĢȺĶϧʸzUMK;igĤ{oje]ofQ9Q5Ex2Y^f~cxrczuqMuT^lmnչ៻ŏʤϫ*I6CjIǶƼ̽пֳٿ׹ռ޸ѱʌʣީȲҸ֣ŇӧȞΣǠţɥͰִڱַػܺݭsw}prZ]?uiCxYfnccilameʗXYuOHosbhi^VfqkcnTVkoee]Ye^h_nxõwP`ugZclW_`XLKVTY`[VIPUYUTLX^][UcQLTIzALHv>{BJU[FGPSZRZNPSMPMZNSRX[MPOBIIHS\KQel]RP\QPRMV^g^hW3WOIP˿ʳ¶;ȽǽƱ;ʽ;̺ƣȥtstC=>! )'$&*- 0"!5%#9'&:('8'$3%#."#($$%&$! -19FO[MPYbVUx_W{`W|aX~cZ}bY~cZdZdYeZdYdYdYdYeZf\e\f]h_i`jakbi`h_i`jbjaf\|dZ~d]ibmfngngngngmfngpipipjpkpkpkrmsmtnwqwqxrxrwrvrvrwswrwswrvqwrytxsxuxuxuzw{x{xzwzw|x}x|yzyzyyxzyzyyxyxyxxvxvwwxxyyzzzz{{||{{~~||{{||}}zzxxzzz{z{{|{|{||}}~~}~|}}{~{~{~|{~y|y|y|z}z}y|y~z{{||zz~{|}}||}~~}}}~~{{||}ֻѱȫŴηкмѺкнҽӹлҽֽֿԿտֿ־ԻҹѲ˭ưɴ̺ҷбʱʰȳ̰ɮǯȬŭūĩ®ǩê©.38                                                ,I5 yIƵq˽tgSlj/SHuHfsrenlpmi¹kj{mmzw]_t{ywZtwqtmjntjheeiߋ߆{umbupao^wbcihiiphwrz܀tmrfeq}oworqvw҄{{xUkwbXnagĽjavmilptxl~Ⓘxmڌzy~ރz䀲lwߚ^OOMlszhfŽϕibecij|sy譳ʁi}Pk˖Բᶹ֥դўΜީ᠈O_po]Y^IY䃫aẂЏۥޫ˰ϖƀ㤽ܩիzpȆ~փ؉ߖՎܒ|osݎ߅upi_~zyԈ}ƨǪȨĥǿٳâżav_bqy}}냬y                          NWNѼ̽Ѻ϶̲ĵȼϺͷ˰£ǵɹȳDzƮħ̽Ϳ̾Ȫ§˿;ñɾŬĮŮưʨĖw]UU>H4_Y~lpÙk^`KiUV9J2S~NrvypKo^^kcy]pKsaޠɈɧ֖Ƭٶ%?/o{ԾѺӾԯ׸޻ԸѷѰȸҋ֭˘֪jिǣȄѡƚȭӬөϪѬүհ׮կΈ{rT@!RjQboTguqjnq`RXuMh}ȳw¥d[Thlijdac`[l~Ķwui_irn[blnWSabc^gY`ahdL^QTU\LJFRX_XYTSTT_jeKs@$!) * !'&%()/!!7'&8)(/##(,!#,"#% .:?CRUMPSdZVyaY|aX~cZ}bY}bY}bY~cXdYeZdYeZf[g\g\g]h_g^i`jah_h_i`jajai`h_f\~e^halemfmfmfmfngohohpiqkqlqlqlsnsnsnuovpxrysxsxtwsvrxtvrwrytxtxuwtyvxuxuzw{xzw{x|y|z{z{z{zzyyxzy{z{z{zyxyx{z{{{{||||}}}}||||{{zzzzyyyyyyyywywyyzz{z{{||}}~~|}|~}|y|y|y|wzwzz}{~y|y|y}x}w|y~x}z{y~|z}~}|}~~~~~~}}}}}zz~ֽӷͬʵϷϸϻѿ׾ռӼӿ׿־ؽԽӼһҹҲ˭Ʊ˶иѼվ׼սָѭǭƮǰɰʯɰʰʯʰ˰˯ʬƫũ䩨ã„                                           -#ÿÿraacdnyjy|ʘſrxsrl[l|jt~sflkneJpʁzgZ~pplu\dډԂw`mjZmodiX]Yfhiyzsz{}ӀrӀkjv|gbwijrBق؊||yg\zca[n}mjvmN`h__xvojq{܄|قtlljqlzva[gg^SXrZgcz`U]o¶kjpmmmlՑ谽יcRcm^sꋧhk~kv㴧ÒvsӃXbybKysnޝ|gzLƒ֢ή̙{ߝћݪﴈrɡϟŒԆрކڃ؅z݈҃цړߖԀvpxnjumq|x߁揿шzf4+ڣſƽܖytƶ|w[qgkhhqoo                                          Ѹ̺ϼβé̹̹ijǬпƱ˲˥ʼ˷ɺƱɺΪrc^AXIpmn]^GxpmiP}Mboqr~~vƫϘ·[kHwMX]bnh~ΦѧӪۨڙɣӨ?QZ  2$׾ղʾޥ ͺׯζؑuK^[ЙͮԗɤΝŤΚǝɟʢͤΡ̣Ъְܻլ~vid]jv[SMO[hf|ʯpʰtl{Źvt~ƦhRobc_Lqmlvu_kkmosxá]Sigqij`Zm[JLZ`^OUX^Z[YJFE@USK|>FRXOSIL]ka`j^VNTxDrANPKGQRWYTORWYIv>NWqP[Z_UXRWOUN]KEDNOVQcjTVX^WUj\f;m8"<̿Ͻ÷ɺűúͿлѺĸ̸Ľ˵±wuuSKL%#-!#('&'.!7'&:*(1$%('&#!!! )-2@NQITXZXWs_W}cYe[dZ~cZ{`W}bXdXdYdYeZg\g\h]h]i_h_g^jai`i`jai`i`i`h_f]}c\f_jcmfmfmfmfngohmfmfpjokpkqlrmrmsnuovpxrztwsxtyuyuyuxtxtyuyvxuxuyvxuxuzw{x|y|y{y|{|{{zzy{zzy{zzy{z|{|{{z{{{{||||}}}}~~{{{{zzzzzzzzzz{{yyxzwyxyy{yzyz{||}}~|}{}||z}z}z}wzvyx{x{y|x{y}w|w|x}w|y~x}y~z|{}{}~}}~~~~~~y{ֽӹϯįǴεκкϻ׿տ־ԾؾվԼӹѴ̬Ų˷иѺӼռպӷخǭƬƭǯɯɰ˱̱˯ʮɭǭǯɯɫũêé¥s~                                                    w̒ȁ؍ւnpsjdpywŕwypy}rlhabnklyx`hecovfpp6o|ہpntbxqRi|wkd]TlzgjbV\fsijwx|؀uljpcckob]nmmiFo͉ҁsys`ccýgLqp]sns\EviJdڀ}sށ|{gv}xuyކt]ajĽome_zVjfmukr˿voƿ^^jqnύޭ̋tepjfnMngj]ڙÑ[xs}GeUjȌoÌԛଠzӑКգãqśΒߏ݃ցߊҀ阶˅ޟޜޓxhok[rhhqj؉_wt:TEȽ|ܰŵu{oijk_lr}                               s|rѢָ̧ɸƴů̻ݰîí°Ʊʑ{ȴ˼Ʒϵ˜ůǣurgNQ1e]˭jbeNVBhxtrko}–ǫΛ_tGQ=s:Cq;W|]Ѥ˫եҥӦٙˑi4!'=0ɹݳо۷ܽ׾ݸ׮Ɋѭε։ïwΙ̧ΊțŢ͕ŗǜɡ̤Ϡ͡ΦӪ٭ڸתpmrhRghjĵ|hd]PKXgmhd…ŏܴ߳wxĿ|ǺwòrVclbgQdtiqsdW`eqqmhHPod`hrbmg^\Jd``ZY\TQ\Fq+|YaNy:@TKEUUSKLUQQ[Ndw_F~GIJ[LPPWMQPNPORXOJOdewAXY[QNSXV]RG|?~IJHWcaT\WWZT`=hpV~}cɴƸŽ·ƹ³õʿʜҶζĴ¼ɼɾ;ʢ~~z;54%1$&, "((- 1##1##, !'#  !""!&!(=DNHS]TUXp]W}cXdY~dY~cZ}bY}bX~cXdYf[eZh]h]h]h]h]g]g^jajajajajajakbi`h_e\f^ibmfngngpiohohohogoipkpkrmrmrmtoupvqxryrxsxtyuyu{wzvxtzvzwxuyvxuyvzwzwzw{x|y|z|{{z{zzy{z|{}||{|{}|}||{||||||||}}||||{{{{||{{{{{{{{||z{yzxzxzwywyz{{||}}~}~~|||{~|{~y|x{x{x{x{w{w|w|v{x}x}w|x}z{|||{{|||}~}~~~}{|~׿վԹϮıǶζηϹϻѻѾֿտٿ׾սչѲˮǴͷеηкӻԸѹҹ诶ɱ˰ʪĪĭǮȮȰʰʯɭǭǬƭǭǮǭƫĩ¤cju                                          ;0!ûjfrrmgoe`oc|̏}sjpz{neieikltghtpq|wm{Ɉezjtr'F؊ے݆wupidlsl^`\ogVnieke;Ipywrv݁yxgaksk^frtdovq\WGqс{zülXhqrZTvxmLV[gX`i_c\Wrnqlvirz|}v욭i]icdýhicVtsbrzؘklŸpcbechi͍שsYgXeenbmkx{ֈƂv`їُ}LыӔޡz]`'o߆uˆ੝{מŗц߄ׂp荾рˊٝڕqjxibruyx~džǹgv]gwz|j{f`melory=D-                              hohкй̦ȴκȯɵȶȴɸͱǷͯÇȷʾǵ̪rn\?N2jkɭikcST;[Xvwy[sάգˠůԨ͔Xa@v:G<+]#PsTҠ˪ҭצԩ؟ГĘoKwZ^_:U/# !#8+֜p{Ϲ޺ӻٸطԫ­ƢݖɠΥ{s|qƠ̖ŔěɟˡΠΤѩը֥׮ٽٽ͔ztxorsmh|n]^VGZqĮpgXwö|ʮ|Ҫkfӏݪh^\`qrlee`norcfl[[fdk̯jWbcZV[_sŭcdXegxȥaXSCGT:~9PZZ~@NTONRWNXV\\_e^[dYOOJKFOSTPOMSXNLPJYVIzBNTPTPPORVV[NHH}@{=~OLWXM}LUn9sY,Xн©Ҽ®ýƽüøĿþжûпϿ˾˽ɻɼ̾Ϲůʫ924 #."$+ ), )%%"!! #"55DJQ_RT\k[Z{`X|bX}bY}bYd[dYdYeZf[g\h]h]i^i^h]h^h^jajakbjajajakbjajai`f]h`kdngpiqjpiohohpipjqlrmsntototoupupvqxrxszvyuzvzvxtxtyuzwzwzw{xzwzw{xzw{w{x{z|{}|}|{z{z{z~}}||{|{}|||{|||{{}}}}||||||}}}}~}}}zz{{}~z|xzz|y{xzxzy{}}}~}~~~}||}}|{~y|x{y|y|x}w|w|x}w|v{v{x}y~}|}||||{}}|}~}|}~ٿսӼӯȫƵηϸзϹϻѽӽӽӿֿֿٿپ׾ֻӳ̮ǷϹҴͶϺӸѹҺӼտಹ̵̲ϴΫŪĬƬƬƬDẕˮȭǫĬƫŬŪīĪĪOUc                                $%&! "         OE2r^bdfhao\`v{cjqsjszrplrdckbcipieo{~pzcY_Z3c҅ڀwtnmsTpsYr~tkYums؈pmTux|yy~zjtrqkYeq憳lgqZcvdtτr]djdms]WcZMK`ysUE\wzgYjifwstރx񛲾pc²vkogm^]fZobxuee`j}ec໹ӦhxUTnohz|riy~숷|pp͙ǑꌻsƂpvILN\Tj胷ix΍ڠvާܮwjؗy|Ձ܁߂ޏ΋b㚪ou~rpxsokbc|vtx}ʽ˾\xW=N⤭ivjmhcfgmegm^fG                                 $(!".m^ϲмϽ̪ϸŨ̸̻κѱǹήèǺȵ˳ȧ˽IJ§rj[>N8ZLX?XK~ƒtRzeȨдܮԤɩϝłMVFx=Cs3+Y$akť͔Ԫ֧ӣџНΜvTdR[]dloVvT(A "  xڝ¤úܷѽۺڸֹԮʫʴхĠ̲ҡêчOspR{p`~t{`z̘ǖŜʝ̛̜̤ѫةץֱ֨ՠoclp]|az_RKZkDUgr^cmqrqfbagryŴpjqiihwĴq`NZjmpfjgePD_`klgeuWWQLQRmt[P_nT>|7A_WfUJL|@TUWNu4|LXUMMGN[}AOaYPNVK~EJ~EFJNRUMPLVM~FQYHg1tTFV\_RJHPRKTRMMJRPQS]WTt?v> 7ȶ½ɺµƻ¸˷ɻõöƸʼǽĸȿļȾżŽſοϿЫѼƳzx~C]IՊ~RyfڴݵܱתҍrIUCu=7`+HhCӦ͚ĕğПϡПΤӛwYlN~XVb_jZd`i_hCbF /933C=ǧʴ¾ڽضѼٺ۶մѧķӛ½ȷ֥ƭd7\K?fNLu^YsYywvm˘ƗƙȜ˝͗ʣѫשئԦ֩׶ٶfnZrdj{U{xAvEep`ef€Ƽyuus}ɷtѓŅͤ_Wrnэܥd[fYjtwľzǧbeXddQgfcPCt]Wnejfhb[sV^fdqp_V]~MTQyA{EQF]d`XOLTRTI[RHKMyB~VX]n]V60ʶĽ»̿Ǽͺʾž¹ɼ͵ǹǹȹĵͨξʸþɿ̻̿̿ȻȻǺƽϭߔ604* ")!$$"!   %",=BMPWbWS\m\Z~c[cZd[e\dZf[h]g\i^i^h]i^i^i^j_k`kakckblcldpgpgpgqhnejaiakemfohohpipingpirlrmsnsntosnupupvqxsytyuxtxtxtxtyuzvzv|y|z|y}z}z{xzw{x{x|z{{|{}|}||{|{}|}||{{z|{|{|}}~||}}||~~~~~~}}~~~}~|~{}z||~{}xzy{{}|}|}~|}}||}}|{~y|z|z}y}x}y~zy~y~zz}~}}}}}}}}}}}}}~~|}|~׿ռӴˮǵлѺѹѺѽԿ־վԽӽԼӽԿ׿ؿٿؾ׼ջԳͫĦijͶϸѷйӹҺӻջ޴κԶиҸҹӲ̩ëūūŪĪĪĩêĬŬŬŨpw~                              !$""(,&%2"1#3(*          =4dlwjfrԀlgi~ywqdga^ahtiaafdiglmefhmdWfcfgehp[TWjqgisTs}stfZyymWYЄ_Fzyz݌σcog\glwkU[m,>m]smdjT~IHvzjovsTŻdehrXN\jybVhtw}{p߂݂twythx{gpܡɿmgk`Wv]``_ognlZXgXբИrgs~jk}owzv{xzwԂ䀤juғziw7ڝgq嫾rjjtzlr|dZVo3΅אԆޅ܅~~ӂeu~|vZrv{v~qkplpހ蚼Кõ̿×pftsyi؁jrlG`U\ceq߂с5:'                               jrl|~ưսӪxtVviзλμ̶̰йҶѱ˝ʽ;Ư˴|~YDQ2XRǦc_Nxjsؠ͞˙ȞϜ͟љ˥ԗktR\LyVN{\_nXdO[_kHkM óƹԽصлٺڶԭʯαϰʯ̦ƲҧnjQog4UA@eIFmPRyb_tP|hd`zÖŖǖǘɝ̜̖ǣѬج٦Ԥը״޸ɂgn^pbm^Nm|ǹyŢc|ȈϮlΌӽzøtnm{ȈҰn]knqsРێScnosmmNFU\edifX]lb`ŀЮgbanZ]ÄϷ|ínabbfZVMTaRUPH[SNEK}DMR]VJTKIOM|BF[NHTqQIIRTWSWOHQPJUPOYSRI|DW^^_b^XWSUXQOUWTNM]^VgnWo=j@&4ĶŸк¾ʸʽ°ʹɽ±ȵįİ̹İƲõ·ƹļƻǿп˷³ǹǿҾϾϾϽμι˺vt{%(##"!!    !57AMUaRU`aY^xbZ~dZf]g]f[g\g]g\i^i^h]i^h]j_j_j_kakckdldmenfqhriqhofmdkbkdmfohqjrkpiqjqjsmsnsnupsntotovqxsxsxsytxtyuzvzvzv|x{w{x{y|z}z}z|y{x|y}y|{zy{z~}~}|{z}|}||{{z{z|||}|}|}~|}~~~~}}}}~~}}|~|~|~|~|~{}z|z|{}|}}~{||}|~{~}||~}{~z}z}z}{~z}z}z|zzzz|{{}}}}}~}}}}|}}}}}|{|ؿֿջѵ̭ó˺һһҼӼӿֿ־սԾ־ֿٿؿؿؼպӴΫŧƮȲ̸ѸѶйӺԼֻս߾ַѵ϶зѵϯɪĩêīūūĪëīĩ¨š$&                        ")&%*(  !&%             g_7¿ufa[]yjo\Za]efmX`ddomimgigrlchtvpbYeqomfipt[?`Txzn]}nviOTUekev╤\Mv[_ljodltw{stծgRu|utwzddq`\kpxjTöUsvhaIflhowJ_nrpd\ll]ndeixuсu>Bû͓rdn`v\@_dlR|ܭϯΨϕДicjeqǼsy݁ovqs屹ҟxцՇq毃^Rғvù{»nrhulrvzޑŇ4Mu~Ȁz݃w؇ևy݃zrklsl~wvz߂ْɹô^_[uC֡ږxzkh`cecrcZdvwᚵĘ                                         ҲҼ7#/A.Ѳ֟~}XziҸwvĸ϶ѯɖIJϻʱoePb>;]@lxeufƞΚ̗ʞάڬۦ֡դפ԰Փo~ipjgn_eFuXZX\{¹zĭlikqȌԴuƌŏѤcmhmoroXffhueZie]^cicS^iih`aWTjldYdZbb_SJLZ`eWZRSO]MGRUDGzLxf@eWZ_w>qdHR}A\\VJUYe{GR[OOO|G|F{FJRGI{DwBq>GQWPfdTVXaP[g}DWSOVPSPKVyFvF]N|I~Hn@k-)пûɴƵȷijó˼Ƕ̽ʼȸ˾Ưȸ̽Ƕο¾ͶĸĨӽνξϼλι̵ᤦ!( !%7@LGS`SV_m]\~d\e\e[g[g\i^h]h]j_j_j_i^i^j_k`lambnclaldnfnfqhqiqiqhofkblepirkslqjslrksmtosntototovqvqwrwryt{vyv|x|x{w|x{{~{~~~|~|{|||}~}~}~}}|~}~~}}|}~}~~~}~|}|}|}~}~~~~~}}}~~}~}{}z|{}|~|~|~{||}}~|~{~}~|||y|{~|z}{~||{{}}z{|}~}|}}~}|~~~}~~~׿ֽԻһӷϬůȶйѻҼӽپֿտֿ׿ֽӸϬŦêĪīŬƮȱ˶лչҺһԼּҴͶϴβ̰ʰʫŨ¬ŬŭƬūĩ|                             !                 YQ= QF/cR`l]Uƹn¿abvW_ULig\q]ag\]]ahgbdqvr^PZ[bbbbgjV[χӉdikgj{uunilziwtptZ^vZiotokmmfsq]p4}x8Ǽs}y|fqT]~W[j_QV[KVVV_Z\fWLpelpvounbwqwqtrhnvPtʊlvˀgUZXXY[mw<⧬̐׾찰{bjorucm~xtvppqy诼֊qgЛost[:FpƁՔКŻiqb}`|r~݀xۋ꽶թΠ˲K\>AO#mَيщW~C犵w։с挸s{wv܅ېɔҷǵSrG\ޠ~[ԃutoM~vpageYeqpw=D3                                       ݷڲӮϹסR_Dڴĭĩϼſ׸Чзџij̼ϾumeJN9fw`g`jdVthiwky΀rcqGiWђԣϙʼn|Ϋ~;_[Cfg_}rY{gX~eMvXGsOQz[lwos$8 !BYBīԷԻٶӫìŭˣ¯ͱύUwj8^GNv`Zm_oPu\flJtJW}_sY~vĝΙ˘ȠϪ٬ڨأգԢЬּɉstpkhrVnelWiyD}2tFm{{±psyıpoaqrrāā˹x¶uT\hUUonjmȦcZ]j\\\]iajpmbPNSV][o[Y^NTL\nRcc?P^\bYRTK{BzwFtZxOwXXRlWRWKQQLNYVUKwCXRON|H[QLIZU~IwDuCfc~ENOLc]Y[^h^}DNIMTOOVVQY~Qf]X_k&$=C8Īɼþмñ³ƶɺȺɽʶǹǹú˾ξñı͢Ŷźȿ˯̰¾ǽϼʹĭҾѿнлϼ϶ب' #&!  03=IP]KQ\^X[{d\dYdYf[g\h]h^h]i^j_k`j_j_k`i^k`mcnbmcldmepfrfpgqiqiqhlcmeohpiqjqjsltmslrmsntoupupvqvqvqxsytzv{w|x|x}y~z|{~|}~~}}}~~~}~~}~~~~~~}}~~~~}~}~}~~~}~~~~}}~}|~|~|~z|z|{}{}}}|~}~}}~}}}}|{~z}z}{~{~|}|z|}}{}}}~}||}}~~~~~׿ֿ־ռӼӹѭŮȴ϶лӾֺѭǥéêĪĬƫŭǰʱ˴͹Ҿ׼չҼֻ滿ӷдβ̯ɯɯʭǬūīīĩ±ʔ!&                      '(                   .#c𷽼le?f\-NpiN^ghZf^Rnh_cf`X]WXY`_VfrmdlbUX\VYXZ`bbKf݊tr̃p[T[edijbgzonpwrbLaw}zqց܄dO^~A~:yڂu؂st_r]vfxĿhjxOd_fSNbcuogF\gnnnlck`kuvuzل~ohbwߜÂлȔƹz`üqۏǁݐx}nƘ࣪njol[^dÿ{ÿs~wpjٕtxԤ۠\n,mo-ɋą̃{|upiuhw}w|ߝݠᵽ٦ʑ·UMcƂږќ͛~ρ钷Ћ{W|ʃǂDž_opwrOEc̊âλXڅۉݑЇqZÀшWgbU^]piln]Yl[bnZbaPb]kwzd_R^efbU[ehb[etzmށҁyԄ׃ni^alşyW@qruxiWUԓۑَՊЉlsw<҂yրlpdabW\w{ogtenQNmµst|qlvEZgpslv~k_lmyvvم犿kbɷrҎݝɻ{ĸwòrfϚ˶ıwplqىؕ}YvF|ޕ᧳|]dRasp]Wmt|}n٦Ίpӗ涼֒}虨wOSdɍývawہsgypocr{l˃՘הԌܠ͇|w7o3Ռ܈̓njƖÏ̈́|zƉToP=U=œsrGeJzyh]9H%ov/' ! !8=FIRXQQRj[T}d[eZg\f[f[g[i^i^j_j_k`j_j_k`j_lalambneoengngogogphqhqhmelengpipislslslrnsowrwrwrxsvqvqytytzv{w~z}y}y|x~z{|~~~~|~}|~~~~~}~~~{}{}|~|~}~}{}{}{}{}~}}}|||}~|}}|~~}~~~}~~~~}|׿־ռӼӸϰȰȺӺӸѺӾؿؼֱ˥©ƭȩêëũĩĩéìƬƭǯɳ̴ͼվֽؽطдͲ̮ȭǮȭƬŪµs|                                           PI2xqHOb˅tqttqjމԁtbσv]ieľmtf}t`\pfWa\bWFLbfYitpdX\fb^a^dd`^cpiwtsn؇Ɔz<`npgd]SjЅؙДؖؔƍ׮jxOjܘ}Ղ׆ĻneakdiW}̅u|w_t|MPl}~pyx{mqaTkýnv^buwwyօtlκ~g˷rϽ|®qӕޣս̵~ϺȉƷpśjw}مpp猷҄rpr`VddbiumbVihpƒٰԪӝŐٔu|x䓬xlt#c|xoWtt~[u|zsuߌ榵Džhz3}ڨ᝸ԉݏ뙻܈ك|XHpf]rr{hltsw⨇u{~u.%* CZlYSolcwݓيtn}ۉzؚ訹ʂ|xwxtwplu|ً橙'3%                               ޯȾݻۼݼ޼޽ڼpot~_ѐumŸ˸ӺնЧ˻ĢʬxwjZP@ɲMxMU{WSvj9[DcsQsdzs[tlyWy`l۫ؤҞʑ|vyȘ ǣ̓Kmf>`MFjRGnS\n^rV}k^m?]NGfZZ}l]lm>fMeECkJ?hFAiGDjMzjWk`o^nrh}^~xÕĒȩ̌ժٲ߹޾ݼ׈UfKZ]Pu_qwKtMVwYPkdvgmogvssWl~̎ղqqwp{Ķvb_c[g`\clpfkk^ogcmNM`[dRMTrfTXXrk_KqV?QRM\[ANaUEVS]KMMNXQKNLOh`YVseZmtQ_eQk`@qe9{~KKXOs:RHMRNYWPLWx9`>fsg{KxXT}`^m~rgvØ˥ծܶ߸ܶճx{O^CRRHmUfqEkQbh{´qoigqcbht{ãabvvgkirhvrcUǐZy×W_gbhgjdT^bIOfjYeyȯh]eZURWUSQULK`MV_QNTLLnPWULHy>{@~B|@USSOWYblPUVPX`YYYUfqnmErBKOzDJDFQUWSOSV]VebIz:DzAi1q{EI}HTSPLOauSgId=sԽ˿ĸȽȾƠùҼżĶŽż»Ͽѻ˽ͼͺʾҼ͹ʻ˺ɾͰ_\a""&'/ELWMQ[XSVuaYh]i_kak_j^k_k`lamblalalambncncncodpepeqfphphphphphpgnelclemfqjrkqjslsltouqxsyswrytzuzuzu{w|x}x}y~z~z{|}}}}}}~~~~~}}|~}~~~~~}}}}}}|}~~~}~}}~xlvԼӸеͱɫ¹ѿٽּ׻өĢĬƪĨ¨©éèªīƬǮǮǰɱ̵ϸѽڼ᷾дͲ̰ʮȭǧw                             F=*}̉|nie_```\Zcj݃regaYbqugfunYWvoXJg{x.BЁ~p\_lrnamphi\hZH[`ilwyjwl\rvzrvofku]z}s[cfTɂ؎Մي܍ۊӅՏڜܡmPcf#׍Ÿz̈~ّەؑvwSmԋlj̆|{Հnyecǽoq{vkdhul^b[ccwn}|u[_bŬqiíuisª~ŅwgYd݆څ؂x}{yykYctk_lvxopnpy؂r̃ГnShqCjj$Ё}¾nރ∻eac{m߂vٙŏبɏĠKjAy\pzޒه{~yun^_\XRYdefrڑɗ̫C\F *Nih_XRT^]^pzZ{٨cuzkxv{e{g                                     зڟĽqd{ƺωbjL[Q"^M =8tڸ̻׸ոұÙ ʬɢƳRvXq}ӔNpcX}h~cwjzRp]Xz__klwu]{yot{ڠgNliSseGhXWvhJkYEgVBcVZ~uq\|nTuh]sQsfiSfd'#* Sa]ujwбσϵбΞol{KhU;VBTn^lxq~tVz^Vz]rkk_oXeOt^tRkmvƘʦ֯ݳ޹߼޷ߞ\q]PYGj_e}aydmti{Ģ`rv^Áǵsmmqy`bɉҲqpqoipnjbnkjv_j{lbigfb^a`ehgJ;cfa\J;KOMtaG[`odd\NGX][XYT~?~}>}GLJx?yUz@~CVNRYTYQGKOTOQW^W`RMcjvD|J{GGSX]XV[WLxD#AAfY*]N 21pйѺԺ͑ϽŦ}p`QèpyNnS[tMp]{`wboQp\kuQo]mfy]}rvmxreyt°ۛh^y}bn@_PHgYZ|pczh}Z{q]~sOobTxljTui~Qfd!.(%  cvpɈ{ɏ}}h_thzogwVcVjrThLuakȥӮܭڲݸ߶ܶp|I\KUWVway^jkhvhhlƹxly|÷utz|ƥcpnqqm_lrldqbyôuYMhqqjmqmW^lffg^HpebcG3u<|HRgXb\]e^]aUU^RNTFS\D|?||B}n8nq|w=đޢ͙qjۂ}~ؘ΁ɟädfVwSʞ槯uqsstha^uzq|p݉齾ߪ૲ѱwz!Wofef`\ZX\x{m쬬vj}~u|եղ|}.(浪m؎ߋ|vioF                     JUT,3og[T(XR+&)չʘŨǙĞg_EY~_eIpVm{pTzcrrqnv[}ofzyjsӎNp}ck`a~YzkKj[OrhlMpg`vPrcZ~mJn\Mn\?]PF\T&  %~u˅˒deWxrX{smrzrltjtczTyflrinS~^IvV^p^nRz`c|jģҬڬڬٮ٫ְ؏3C=9E@XSac^_SV]nrrrj`nȷvx³qpOWemrleksebZTSoSNXWdknkj`q`Mcdiid``eZP[RVNJadRNWXMafZG`ZJTQKr:rm6lyB||F~MLMRNKYNOKLVSaZ_]XNPahRMY]RJMPX]]TI}BW]IMEE^ps`\[Z][befSŞ~oYtT|L4I nwl˻ǻȾ̷ǿƿʰƻżĵŽþκϿμ˿λʾӿϿϺ˳ӹMGN  $"*?FPLYcQU[sd_kambmbj`k`mcmbmbncodqfqfqfrgshshshshthtjtlskskrjsksksjogohohrkunwpvowpvqyuzv{w|w{vzuytxtxuzv{w|x~z{}y|}}}~~~~~~~}~|}~~|rdnQCMг˫òɾ׾׿۾ղ͞äĪĦíǬƮǮƭŮǰɯȯDZɲʵͷмܫƍvv}!"'                QSX`dn       *"tq\[_^\VU^SU_Rr؁jlnbqxobV__rvlZReg\e39_`\ZZ`bizyytwރ|y݃{qlmmqrbmaMq釾c_ݗЈ́ȀЍÁّ͇ļpakאwj̀Ё|{}Ўؕ~jahûptszy{x}xˉmJWһʐƐřʼʟ{}Y^χ~sp|~uznngiۍ؏^WhqѾpb\²vĶqŹjtqlhRW^o||u|v~kdowwWeo`{|cmxыآڎs}r]gjm\X}r9ƅɋgq|z݅~ݞَ׈䡓vtCR1\oaۂuvm^qlyڈҁۈ᡾ߟ紊/<bpl^cymg[zgnd{枲ɋfi{~~xzуڭҲΰXf^h݉xnl}~|yei{㋓j                     AKKq/=C   ɴq6=hnSyevӱͺ¶ˠʣ{a]ExlziFmUOtYwHnRW|buonOo^vyeҌf_qMu_Pv`Y}gHk[^zWxpPqcUvhTxgPr_:WC9N?$gJJqUMsYEmWWq~buSxfmsh{Oz[LyYrQ`Mx]yo~Ҧըת֫ؤѯ!)$ $'aSidc`hYOPkke[opufjni^S˶snk]nlijmiVk]WMchaij`aodajhem_lgjjTYYZ\HhoPTDHO__a[^x^FZMs~|Cy@}C|A}CIbX|ALVI[YOIHKLM^VO~Hlg\|CNP[XSUe$t|>G|@\cT^][b``b[]hjXX`vkqB)C>6:¶ָ˻˺ʽŵǹĸ̿ϳºŹĴꏸͻƹļDZʺŸøοԾϲ·ȻʷȾѿϾڹɿgfo #17BIXbJW\e_]jal`mam`mbncncodncncpepeodpepeqfshshtitjtltltltlumumtlrknhpitmwpwpxqxqytzvzv{w|w{vytytxtyu{w}y|x{|{||~~~~~}}~~~|{}}}}t}dW_C9BΨĮɽֽ־عѥ¤ŭǪĪīŭưɭŮƯȮǯȯǯǰȲ˵͵ևnxfmxKPY                       PO5φVP_YXUK[WSfYq}bikgeef_Vƾpxac`_f_`XNU3x%Y[hhbgod_jf}muut{ykomwpm{YRԀyywgi̋yºpqƽxoywт|zþtw҂ЀӂքՇ~ٜݖgqznþa}i|}܀xjWkeXxy|xο˿ǎǍxդ˒eӍiqxzqe}~dՊzZ̑poiǶ}ƵzjimelgjzfhlZifhmzmeyxjjt|cl}uhrגȔԫ޶߹֛ut_=HYNy}~rtۋ܅|ي~؇ߟݕik亮ys4{hp܈ߌmxz^\F^spizܛٖ鮊shx1_`\cmepdi[yx~駌eRrxtutރֆՙװݽ$xӂyv~omvmqwytkmrux\                      ͤLL(@771RZ=ůȟˢnS^Lè^m÷wItZ>fFdszKoU_etxsf}ts}С^EkfGi^Eg_GkaBeR9_@;dDIoUaud]}uKk[UtfSwifx9Q@#&-$pv{͜џͪŸKiaXvs\zt\}oXzj\}nTydOx_PxbV~eLuSDlEElILwW\lbtvsk}^tugzQz\Mv]{o?iPkz|ĤҦԦէԨ֤ѝUff-+4oZxmeIj}^cpfhpmqqoefYVSqmjqhfZvİlTJ~Ǩji^La_WfbVRcmi\mi]Qgf][jbQZ^G]B|9sr5im1fPpgbmm^]VIJBr7wGEw=~LTVGy=s7ISLIKPWRNM}F~G|F~HzFOSY]Uf_w>uJv$$.                            bc@jX`XimUd\T_VXpjkhef^_]Tvwgi`Ripkb\RE7Ibhphj`kLjhxuju~wy~akx^%>{}z¾okidjƼy}oȀ֊z~҄҅s»sw|~w~ڠܟ}w~rvl}hۃ|}WRĀhT̳̹̼ǃΊÃ֎ЋǾsƾז̌ˇdՅq}rxys]VhNM^bʼnYkh\]i[iƿs[c\WFUQJY[`_iscayvjgudfvqc\rnƾ™ǝٮ˚ǁrhvnrrs${ɉԛߢߟΏ̓wvzӑziŸ́Ոڂ{/zvLΕ܂{midkdT^fpssjԊ몸ו娓oA[Kfsa_zaJZ`dٌޓؕ|jwuryviprwԌ׏Ëԧev`a`Aҝ߈p]gsnhljmliqztv{              7?8տeWL):2lqWԸź˫ժjLwczpNx\CkLfqTzYOqPs}scygtŨϧΓDeh3XM?fSDiUHmX;aH+P0,S,:`Bj|Ei\opXwgRrc;]O-J9&?+DZE{zɬ̔lxTog^yu`}wZ{lOqakmaqXzgRvcT{bLuVIqPEnL=kGAnJ[kauPvdkzw^osik~ʤЫؤӤӦՠϤWhh)%3^Fl[`faokiskyåcRechnhjYieg]`gkmmeSnmZkld]`iia]dcmhOVj>>ZR]b_SNcn`V=|z9om0c_&XVaa\Vg`ZTSZd~Bz@}ON_WZQ|A~BRLPYFMYHJLX}KvA|JuC|IN}GHORVWL}E}Dy@Lt~FOS^kffb\adWV_l]KVZjuha;ejWeưæ˳οҼ˿̿ĴöĴȼƩɽɿʏùùϺƹѴ~~˺Ⱥɼ˿οؿϴՋ $ *BCORZdRT[pa]mbobqbrergqfpeqepdpdqepepeodpergujtivkvmvnwowowovnwovmrkpjrkvoyryrzs{szt{w{wzv{w|x|w}y|x}y|~~}}~|~~~~~~}}~~~q{dW`C9B92:÷ҾٵѠ奤ǮȰɰɰʰʮǯȯʰʯɱʳ˭ƻф                                \]9d`]Z^EMPCJZP]lqk_SU\[>evmqjH_}kc_aT6L[QYopdowujwrm}|sq`gjProHѓؖ؊|~{Ǻxwsǽylʂȿwhт~ɀ»vyف{|ɀ֒Ҍcvsoj~groou㌲^KǻqQtϿ֍}Ԉʂ׉ɂ͎siu}uzvo֋݈uwucUXf|aRMoۋۛͿtѝƹ~fȿyRĹc鉾bx\qsfl`noechddgheeqpzlljϸʳȹÓΛҜzw߉ti}fekɂܗߨ½̘jzȍҔڋ`EC~2Ҫy3cX.ܜrVrrwpsi]_]`evzו{Hr|e_bYv]2a{`l~ŇqcoفyjyzlsЌ̀_xשd\vjhwobigitzlsy                 WZX̹ӡ>=YR-"!ӽ}`iPx{m{GoOBkEgrȹn{Z]VwWr|[}ghzɑg}ŔƦѦҫ֌7ZV8]NNt^CkRAiNCkO;dD5b;DnJ>cKZsj]v9TK+rzSxS^bn}õƿΥҞowtna{}d}`vBbUDcW`~uh}b~tfv[mQw]InPEjJ@hH:aDRvay{st~}̘¦՟ѢӤեԔ6AFCOWT[dkbo`Zhotgv|wwmnԊ܀πw1h` aЇׂ؁قԁy҂nuԆvzúmĺkzvotyۀЂz̀l[_x{ivxYuwuyd^`ko~~}}ԎƉؕ҇u{ʋgwՆ܍VIVqds2Qˑߛǽbe\a܏WV[}f^bf}hh~|hruzyg|pi{zshcռ̴ǝȜ³ö̟ʆqm^sgdoözry؆Ј᭯nҦߗ~bYalq$ab̥jbezJϕY|xՀvbut[eVSWYg}ޢﷺ֖x>نanVJZSHUQThtir{xzрxywnmك{w{|{nnsjkhihhmnsoɁua                        3<3͹ͼiD@VZ?ou[qpMsPNtNDiJvY~YSxOY_cqʃuplƔÜɨѬ֦ӣӟUoq,M:=aH7\B@hMBmNJtXNzZ1^7G=5=?9@ҺٴФâ¨Ŧ奤©êĪīĪëöεͰɰɳ̰ɪñ́                           ywZp`_Obe]K_befX`W]mWcrUFURbhfVYZRYeQNTdyn}lo恵\gwmpwxpkwԅst} YO]ٓֆ߉yvs݋ľpcրºibr~sjtsqvu˂nm¹q˾xԁmm_]jvv{}VDʺ~ͼ~؋ºm}rƼyxąƀƂόυۏي͏כɁpnjf6pڜؓؒږޠǗsõؕ__[^Z^_Vbd``puqu}towpvNȷtȲsĭt֦֨ҨʺޭŐzdzƻԍ܋xu~&SNvɃua·gwsoَݔ̇i̡ٞӁsbK4eHSI zϼ`d^ _uļoyup}݀nb\OPTYgpؠ밇RNr^TVU[YPFMYhTt}s~|haք߂tjqkromtjtohgrqrv}y",                          NVSr{eIK+DE![dFѽϯ̖ecSzO@e<5>>9@ռֿھشЧ죥젧Ĥ¤çå«īŪé¬ūøв˯ȯǪ                          esG8I\TDU_[^pyqdY_yqZdSWspjkXG[EARkYVgl|rtyibkonmuvhbsyx˂zFUNO͉~ۄۀ}yxýlӄkg·iVökƽpttsfpmfo}}̿xπ~wnd]ut뚞Y~u)iȴrŶuƁwֈh؎yĽtЃЀډ։{}܇چٛˌφmpUJqӌՅʀӐϙοfg[TǼ~~ihjgnZUkkmbt~ifwvPgՙѐ̻tЌަڪџџ֞»aʼnރyْ좠KDEbwf„gź_^T]yz{둵lĈՑl_c#omvSTʿ{n<}o}uqhmVeb`i^_]dmzդ~NJrLPPykSWhb_TpnxshyiSdՄy{}xwtplO]vkpqyz|∱|Ȇ:M0                       SYXܧ\iV78OT0ub䑪uyګTzOFkAfkkyX~S]LJoANobr͗sOmqazuv[}mKrZGpVZkTc,Y0(Q+AbRwb~9K9ţѴιʺS]Ħu~cx}unqw}{{ywxx|sro`~Pslgzw|œȘʯbpv"pe}{czce|Û`abua_c_eZoolu¥bRifhgZSt|TOPdaOJRIPVV}FzDRYPUXMRSRMR~Gu?{~JvBzs>ss?w~KUN_`WZV`TRbV][PXbkdga\bjgiYK[^\WUVYI}L<$6̺޻ʧǤŚ•ʬȡŜɤγͷμɼ³úļ̷Ⱦˬƹ˼IJŸųɼľȳĺǾϽɾп÷ȿ¿wocpdsirhrgqfpepepepeodrgujvltmumvnumtlumvnumuntnoipjsmuoyrzs|v{w{v|x}y~z}{~z{}y~z~z~z~z~z{{{}}~yj`fI=E=4><6@@;CؿܾٱΤĢ£åĦţ£Ħäçħħçäëūūƫṯ̌ˮdzͬȥń                          {Pz^=MWJK[aecotєңrdoio[Žnցsom_XjIfg$Wohd{wkſsil{|tqtsoqrniy|لxu^OIh\.j`tu݂|t~\ľm뎲VO΅uTZŽlz|wĽpkfirӀ~~~~|fthTedpv}t7zxŰy͌lkĺs´p}څӁuyԂ}q蝼~kugJ4|wAп˙ʇς͏Ɠ߯鹽MY~ùyψٌqslsajtpob]~ut`cypEĂҐ؏֍ܬڞږt{rӉܛvOYpf2hŰuӃtulgluuލڔl:MRr܉rrubzpΜʔЈrearw_hWfks|sם龯Ҟelܪˍg<ވx{NgkSM[q`gbnaqupYc|ӂ~~tpՋމnnw}hkules~{蘿ۓ٘^xO                           ||闩gpi?A0OR4{ڻŨ­}Wk[רVOEpBXW~gsZSGn>zg}ōHsezԢʒwcjhFm]Mqcbw^pGmX>cM0RAEkTAhH5[;EfWxv;N?̰ηɸW^~hkŬȾtw}yxuximulbpk`n{dY{tob~csf~|kƹ`wyÌƔ˰p~ utujzdxǡbm`mg_doljkzƸtZBXfcN݋jyBHPgh]H`aoijuihl=7_[\U[^gY^lhXTC9~=~TF~?zE_Y]JEEWXRUSRLH}G~GLQX^G}Ex@GOQMITv@{v?x~H~INcRPMSL`cPPMW`dTScdiZKOoq`ZKYcfUUUVeQ%R|quŰˤѫʡÙʣœČŎ~˳ǺοͿɿ̹ư½Ѿǻμį´ȸŲɻ¿ɿǴżԷº¹{nk_qfqethshqfrfrgshtiujulrjtlumskumvnumultmsmoinhqktnyr{tzuyv{w|x}y~z{{~z~z}y}y}y|x}y}y{~z||}}snqSMQ@8@;4>?9CAzo=uh^uktq}wrdnjfĶl_Ƽfpkpuruzl؅y{{~laeae{胷kR[}i̐ν}ǁĻws·wqƾzy¾wtoևl}gry=Tܕʙ٘}kѕ±ǺՙùzwՅǿvʆ̂ipvs̈́tqx݀oldUhɌ՗ڗ۪ڟ܏dx~yZږmN[ ]XyVakĺfxzmlpqxvڕPoILefׂvvpmn~lӊ|otyhzkY[cp~ƸסkDp{ڠc{0qRb]Wgreo[fj3Q`wp_ˋޓ؀mnz݅̄rw|ބnhtowuz}髂q 0                          8<3lvgE='J>"xzZԳμ٥ſÄRyMKyJ]\L~LnŽ]sahJvGY]ugJvas؝ǚƇ~g{lDbNQq\Llbowr{)72+4-ĵʱͷ«fg~{ʪŝh~{vzb|gvqofjYtwld~_wjkDgaa~{zv~x|zɢӄ %$ XGbyZkhvpz|Ǫji_[lahjhxĩib[N`e]Ut_dlNLjc[ǃвnZ\abdYfj]7ZUcc[WP]^QZXKC@Ex9ru6pIOy;wNLXONRTJSZOLHyCNXTRRC}CLFO{Dw@}w@zyB}zBt?6B@9FBHÄDŽƾlžmmЀҀĽklty{׆}z|wxtz֖tdn.43`Wg¹t\WԁvމooJ񓳥XNnmꈽgr{{~k}͂ʀȀstψvwwwhsk|˹lpؓǿ|strwr|ہҀuρ|\X-P۠ĺƻƈazړڜNjґɋϑЌܓޙՍх[y~}oڈpGB̷ǓԙۙےvЁ]ʆZWhk}oGlBǶvspttlpmugq|׆hi4?6oc4bp{f}iinxkЃ|kid{h_lqifˇƗv_Ⱜxk`N^Zcg[lc{⎱bZwFh݉fԕ{uog{|چ|qpwhvs3B*                      ot[ZI)OA ʽþƾT{bqqwtKFK|K«9d;R|NJsNkȠštфҏcj_{cKqhEi`Fh`Cf[AeUOoc\~ukiyIhU@`S]}}y{]jfABCTZU˶˯侩Ϋϸʵojsvax^^tb}wuyz{vruy}tun[|sf}`u\{ts~{zt|{~~z{{~ǛΘ068P=^~]|SapmkvyųqiYTf^kb_^QYM`le^iOɽ}c_wµqd^fiea`UJPe[pb`jhb`XRZ_L`bZ[VNYRLEr3j|>vk0eUN}C|KHVTWQP^WKPMHt@}TNXWLKXu:||CGzBv>yHQLxC~n>vg6ovDbY\MPY}E[PIadWVbWRPS`NIHy@Z\[Z^YZ[{F~ItJxo[tn{d~ze~sbxxe|v[oSfQxoW|rVzrZwn`qeeavnʣ¾Ϸɾ׿ͿʦɶɼͿɻĺϽDZ̾ʿͿ˺ξͿμɸŰƾʽɿ˾̾ʿ̾à{u^ziwiydYh]titjuiujuktlskskskskskumumunuorloinhqkuoyrysxtyu{w}y}y~z}y~z}y}y}y}y}y~z~z{||}}}~xnxZTY=7A;3??8DB;HB=@ehh̻v̴ϷMdB]qQ\pS^qU]qYvxwyzxyvfrtVymdzg{{}{}y{~{{bv+)8G4Qr~\^n_UfqjfJRR_RWLISVognliiѳ颈U~ŦcmsÑN\TZhNCA=}RS\X\PP_][`bZ_\^YVQT}9~WIJM{>se0_dJQRHML_`oMNMPRs=|UMLPKI}DIQ~E}CIZWJ|FVxE~xEXc\R{CJRQRU\`{CINSNy=HVNXQP`UT\Y_VTzG]Y[PNUUvNwM|QkF{mI~Xa_uNuTZFb\T^rznԪȑƳϽȿͫ̾ɿɵɿ¹հôɺȻǽμǿʼƼƿͱļǾȽɼȿ̹̽ƾͻȩ˾ʼȾȾ»~kvx`Tvjvkvksjsksksktlsksktltlvovpsmrlqktmvozrztyuzv{w|x}y~z~z}y}x|x}y|x}y}y~z}y~z~z||}yqenKCJ:4=;5@>8DB8C@:FA;GBɄѐqf`xىkķu~|߉{~{ƅΗЌovsxo{IwqTddՂጬXĿgpbŽje^c¼kr‼alna_gustd^ldbوՄqͺxtuƵwvƒ{_v»uhb̀}{r떺q̏ǍǹР˔LJʏÒ˻ͻƎƏnʄӇ؏Ȋ}|{؇ˁܖwvvuvWj϶ϺˉΆݞ̐ɶΡ֧߰ѧڲȘ̾|`rՄ{}Ɗ—ٯz>n}ukqfOcd`ay`h/`]2~yԳՀhdj_tzrȀ|tg\hpjiikfluΔҥԨĘŘⳔrR\{pgWMZmIeeanrYlbcvtumhn݋؆tuu}z例ϋ˙/                             .-,瀆vbY9]Q-¯okTK\T^RRCV@U;JrBð\PdRkkpjԞZ|ВsOui_vzV|v^xZ{tX|oasiy]j[hgrV^HpMMtQDlNh|g{tkmq &"/hSH!/$u_5V[Gnpl~|t~{{yzx~zhqct}x}y||m%.F^Ynʁ^|ZV:n~o`]imd`XnleWkgWqh_VZ_`Vt9_OUktóoILfSdgFONP{?yDZ]\[Zeo\Ygdg`XhcVURRz?xo8lj6gLTQIHPLHUNxB{UQRUKQRPRXJ{CRSHOQL|G{DJK|FMXgXHFV|BRMVVPJO^`MRYS]TVUhX|C|DHRJ~G_OLagYaiwcg]WY\|T\[d~WglfPtSGYce]~p¤ĸƼŵƺȽǷǿŽп˳Žǿ̿дþͲĹľ˹Dzξ˿үοɽõyɼl]jZthtkumumumumumvnvnvnuouowqwqvpsmsltmvpxtxtzvzv|x|x|x}y{v{v{w|x}y}y}y|x|x|x|x}y|x~z~{~}~~~wrdnODM<4@73=<8D@8Dܾؽְ̡ áãšá¢ĥƥťťŤääæţæå£KQW                            1"d_bķl˽nlr͆\Y>hL+bøvbqrc\RZjlpipj^p^]lXghfzmETYogPɅiӎЃuӁk˼u؇݅yۂ}ȅД͑ϕΖ~~s}fsǽ|VauRf\iuextetulcatt膺^d`uskhknZVaq}qNJҔiϺ}vw´xooqw¿wz|t׆ywp}ޑuל˒ŸtËΒʗųĮ­ʸѿȴ}Ƽ׏אϕŏՏߏڇٓח֌mwrwtYW±{ñwȸr˽uˇݣ֞xoΓӘƌҾsóio`kӍЦܳxԡʏ|vP_ehVeQny?dˌ٭ͪπ_xvõᓽvg`j_tm\_]b\nvk߯괪qGtwl^Y_PS{pnhz^lUdwmtyydg{{݄w{ފًڀ͕0L!%3!$                      !    =<:pp]aU0gZ3`}F}ȨwpnlbRCVH[HOx;nqϽcfV~Hi`]t̝ɥӛĖ̚Ȟ|Gpj`~RroSuo[uh~ewet^lbnZcW`q~q~X`IpLGlS~{uon(&,q_WK3)="x^S3zŎ{pa~ssy|~{z}|}|{kb}hpgqy}{}k!/d`fxY|ZiU5li~ƢmYajh_XTanY^qfdfh`XWqVB^jrZ[OeUZZIONgMH~E~CHRcRTWAag^^WfJLNLUSSFzFw]3]lHkzQyr@szD{u}u@s<}P~GJZcpSs=JK|COXIHKUbVTSXTTZ[[XQLJN{ByCbNOE`g\^\bf^|RW}PW]czRqHyN_abyVzTboRyVL[ck[{DZ̾ĸû¯˿ʺĻŹöͼĹӷſϾʮùǼɷþЪŻǴ˽ǾȽȿ˾ſoø}xjTqdvnumvnvnvnvnwovnvououowqxrwqrlqjslvowrwswszv{w|x{w|x{w|w}x~z}y}y}y{w|x{w|x{w|x|x{~|~}~~~~~~~~~|q|iZdE;C93=;6A>:F=:F=;E:7Bڿٮ̝ ¤ťơàĦǧɧȥƧǧǤäâ¢v~6:C                          !!       O@,rZee÷epszU[AnGqufZ`SVZRZcqhOPr`d^Q]rnggZ}s+a}gkyӍgӔmo{iµjڄ݄z׍ˏ۩ҞӜʏ̂}r}vtǽ|j\_|cžx»qiyhYghopquvnqmbr}|lovVl{҂Ԇ˅x}qůʵnv‡{vtԃ~Ŀÿ́umӅc܅ṕӎtǾvtuƳ՚̾Ʋ̹vͼɹȹƻߞϏŏös܊ւ߂{ށۋۖՓ܃~xnUǺxðqhʶvƵtÉwe®q˾zӔĊóqȿnufQgqy֣_Т_`놹Vcubskarozxٖգڷ۝qwassĺЖт~}~凿|_^c]Wcodrnl환Jpwyig^SoqaZYVP`L^jlg`damituyֆݗyهÇG]-Sc7EO(9?&,                       "       NOMٚcV1XJ#~Q^};z~ҧ͛ƴppO?ZL`RUGZTƯy[T>f2uvvѧѠ͙ƬթգӔl6[ULokacgmmk|hu^iakRZV]\hiwdnLxSDjQprvb~_~xw|  }xviWM5fOzV>+)ϴr|zy}}|~~}{{}^|zTtoxlk~}~}}\fp |mexW|WeoxUqJkfsu¦maS\djglVZkicga^kθwơcVwâ`e\WfehieYS`^JPIMNN]TiXS]e]iacZCQJOVZIuDsfAffGeZ7YmBnuDx~GJKPQUGq=rwC|RHKGQJIQSLS]\KM|GN\NPNO[RMo:{][UNV[[QRVZWOV}BL]^`ZYXRFOUvA\VKGM\XQS]RU]XqE|WVqG`qI~U\U[[uO|Sg~^nY{709ep[ƯʾʾƻȹŵƼ˾˸ʻƼŵĺ±лŲ̾ɽǼp¡pmOs^vmvownwovnumumumwououovpvpvpqkpiqjunvpuqwsyuzv|xzw{v|x{w}x~y|x~z}y{w|x|x|xzv|x}yz~z~}~}~}~~}}~~~}~~~~~vsfpSFP=4>:4??9EA;H?:E>9E;6Aد̡ÞäĥŤŢåŦťťƥƥǥŢdju#'/                                   2) gbɾisrrvyb)k?ubbqeeL[dZTE@sqnqimnft}hfoƿs֋ʸ}ݑsċ҅qtdgx{؀́ДףЖʏɇه~ކوԋ}n~kwzmefsn_cļpvƿuczxjvvwdn΀ƿr{ydYlq~̂ςƋstqtʗƟyɺ}ێň{ij|a}d|҂wop݈ߔegĽṦߕ֛uÏʹʶıɍĆÈΐËȕӛČs˻Ł~}u{}ӈ܈{~rwLcWcwѿu^iĭjȹlweɓ‰ν}ľlu{Zlt٫hkܦ\ımWaQQLCfsӀyӄݎȉ͕֞unwv|rА}}݂لYYn\PQU\kaktՈwMpts\mcilfIXgS[l}tf]Y]n|xw}ys{㉿Ҁٙӕӏ鯩ÊŃt^sKSh=I^0FW)GX*AQ*2:            !      pqjϸ[S0TF x}EjBuy˟ǘȵfdZIbS[KRGz^VMtJoy˥Ҡu̘ŒwmyrY~fSy^Sz]R]_h[cP{XU^S\Uzdw~nhiYmTqZ$,# <4>ԣ!lSDf ^eW{}~}Zreszze]tQB`nVdoLbnqmIWt\mjfiQTZiT^k`a]Ynid`[rNfpU_\Rinsi_adc^JKXDSRVSIWaYTYWS]_V``dKHKo>mkDjc?a\6[d;foApwCyt>wp:rp;s|FLI~GRw?}HKQt?{l9r|IMWZMO~Hw@ISTKNKSXc[wA^`XZLRce[FSM[En3wEU^b[USM{?GRVWXNUZcXU`YOWOU`YVgj@y~V`}UzSvOuRk{[e>|gzX`cVD[998¾ƶɾƺȼŹɼʽʾǽͿǸǿ˽ƽǷó;ͻƷ̿ɽȻľînŹ_}^xmvnwnwovntlumvnvnwpvpuouotnsmpinhrluotpvryuzv{w{wzv{wzv|w|w}x}y|x|x~z{{}y|x~z~z{~z}|}|}|~}~~|}{~|~~~~z~p{dXcI>I=4?<6A@:FA;H@:F>7C:4>پׯ˞ŤƢŤƥƣĤţġĤŢâQU]                                       `YEwhh`cl^x`&mnetWW`Zqi_ws-q`aɊ~z{õox҈}˾zՌȄՋ׌ۓ´ƖņՎ܎А†nwgtz̀ā̚͘ΖĎ~ݎމۄ{ԇxaWƺpubgאψhpف|ſsp~xTikkco~ºnvxqfmvσƀ̽|ˈƆƷwŮï|ŵĴg׆҈ƾ}Ąĺ|xº}q4iՎՈ҂pzڍ硳wdȊeϐٔДworozNj͍ƇԐÃξƍǏɑЕؖֆw݈~oy{ߙzmzrv􇧪B`ĺox{vĹm_qprkhnhþndfTvw]ngcbSֈûmA_i[Q\|٧ߤۙaxʉrakmݖ跸Ɇڋyׁt_OQX]IIWfp֖𳗬fYvcmw`~`Vxpm^}~jd{up݀{w~߇׏ٛޠәګާݦ{rysledVgSYq>A\$G^*O_8?F2        %$   ѹ^Z4M@XʌmnƝ‡aYYFVDP>[OnsbgOvVȤstr{ukJnnQxtqo`yq}an\ham\eU\Zb\g^qqrUs|ydwlshg&))'ٞMC96'I1),889s~}yÙØp(,DneowafNxy]tRZvymTW{lYdid_M^`SOe`bY[ce_NT\Xc]fpkelp|ɦbm[N^[RMVQZPFFUeVWRJ@Q\SMOaYLOG}yFwpEof?da9^d9dl=ntAwxE{n9lb1aj7m}FI~GP~GKJNyBh4mj9on>uyJhbNPWl8zq>TUOQ~Hb\QQYgfRMZOUZEXRTVSMO]Y[RaTKONLG\QQgZWUZL~KUZzIOV\[{OxMwKzNZZi~v\dtOwRtQabJl&!+gskξòɽľɿʾȽʽƿ̺̻˽Ǻç͹íÿж¾ͼo̾ŷcirxpwowowovnumvnvnwououotnsmqknhmgohsmuqvrwsyuyuyuzvyv{v|w|w}x}y|x}y~z{{{|x|x}y}y~z~{}|}|~}}~|}{}{~|~~~}~~~|uvirVJS?5>93<=7A@:E@:F>8D;5A93=ڿٿ׿سΟŢĢģģŠ Ÿn}:BJ                                          F?(d^gľioXo0vkca[YSXnlHK=Ȕ}vx|ͿuhЀӄlɾw}ЇݓՍ~vsՓąŃ΋ň|`ufow}ΣʖӠŒyߙ݄߂}vψbgŶq¶vo]xh\ڀހmkffghrԂՃzj}̀{ļs|ojgs̃ʿzpΓƈϽϡͺqtrkdnv€·ؖque(Ƕ|ЊχЉɅ}Â̎n]ƺ}±~òˑ}rȳ}Ⱥ|ɼzwՒ·Ƚˏ„ǾɉҌi|̈́}}|ĆĆxvtxeRQ׈ɼ|{wgjWly^ctpȽt蓳jylwʇz^mcͽs´iI_O`n{`ev֤ةԔٖkǽwwgojtpþ֠Ɓ}tib`핯lj҃E:pMKJX_jܚГ\tmxT]mʌłhtcYXwwZh}uovx}{}t{pߡ⫚^WZvGNk0Ff$He&Ib-Ti=T[?# & & "  !&'"%"$         dc:RHY緣ȡaVP>N>]JXG[[Xkev{`ЄO}jMooNmlakbz_uNt`Kt[Lx]Q|cYmerWd\h\f`j^kc}miSqvwbvV_Q~Uotu~񜗓iUIjI=Y=37' -*'We\r~~|~~}vg{]itp~r^yqftlc^uCicd{ļ̖XU_a`\W`ad`_[``ZQY]TZhru`jXfe[H@W_QSmWY[YYrpb]ZKM^OT]NGGNSr;pr?qg:ff?cd;`j@jg:hb3bm;pu?xk7m|GUs;zyAR}Bp6xFWSf4kf:jmEp`KPUZSduu>Me^YURF~CMKPNUZWMRMKVdY`\oSY\UJTPWF?CHINNU{HMa]U_lZWb]tdxV\hzU{WuShFwiKxkVz+"14;8̸ƟƳƾʽ˿ƹʾ˻˴ûſǷŻ̻Ü̹¼ƽǮҸqmѹƶgpy{qwowowovnumumwovotnvpvptnsmqkmgngqktpvrwsxtxtzv{w{w{w|w|w|x|x|x{w}y{||}y|x}y}y}y}y|z||~}~|~|~}~|}{}{~}~~~}~~~{r}i[eI>G:3;;6>>9C@Rr0Jm&Gh#Ig'F`%Uh;aiR76- #     "%()*!,"*%!&*#         FLMLRL22A; Ǟ⹺ԾšbnWRlg[Q\KZH_[Ƶƾs~bxmgEhmSyyfYn^nZiet^oZiEnTQyc{dqNtZY|csoo}Plw^llV`G~LBxMssR~cg]T>*!:'/!HSM¶}{~zGYlkrklyqhwʐwkƌ`ZjgfzHOmhbfrmbst ccbZ\X^^_bdy;Iggbiba^fWKKOUdmc_GFnb`KTU\]RMKPTXdfW]LDLvAur@pp?na4^g:dqGrtHtb2bp=tRPPv={QTw<~~BGx?v>r>zqFxnJtxY}pUveLocYJP\~JLdf[]tCq?m8~S^ZSU{@JLMVT_U]_R~Fo8yii[U|>P\\]ZXZWON~=~;AJIQUyEMVXXNwG_bZa|PwL~T{SuMySzSxQgpkV|[CmpW~gRr9/@ryuIJ;ŶʽDzźµɿɹ¾Ǿ̺˿ʼȻǼ½ijùƻĦͿĨŽɾȻñѺahŮżî}uvovnwoxpvnumunvpwqwqwqwqwqvpqkngpksouqxtyuxtzv|x|x{w|w|w{w{w{wyu}y~z~z{~z~z}y|x|x|x{x|{~|~}~~|~|}{|{~zyjq[NS?6?<5>?9A?;E?=E=9B>6A:4>4.8ؾؽֿؾ׾ڿصϢœäŦƧǦƢyS[d#'       -')( !                           "jbIh]fµjB=^TPQKSR_s|~3SB `п|}wŸj|߆Žpƽq׃zσӇԌƿzvTgɌ֝Κ˕ئ޲ҩšwƓ᰷Ǝޙžz{öt|˽śkkjvՈsmwyчziuyvikvka`ooYdtgϘȹ{ċɖҜǎ|qyjm$®eс{ӄσՅډَ҄㧴npƇȽķtrm׍ߐҍƿuzzk{ˋx||Ɂދ̉ޟ̆ꖤhYwqƳx̿tπԄρ~tpgfZZhagi𳠯p`ѺɻuºežkļornisZXbsx~Rûpjxurmtyi{԰T~{~|{ty׌}dYdo`fnhݩhi~yuo]RJe|yZsrt]u|vv~zux{x݊쥺͓ʝaUTw;Rx8]DLq.Nk)If(Ne8fkd    "&+ /"/#0$1%3$. ++-+#          ׼պŘųZ_ponp`XhXcVifepe|s¾p~ɏa~\~HkmsrX~rX|ghtgsftu{li|P|`Va^g\|hcttq}ćC_ga}Vn`tK{WH}NE{Q]ws{\{d}`__#  ium閸®ƛ{yayuHVfLSfj_ym{ݜ|aopeːdZ{`Yvg\NzHJ[V`hUZSngRkgZbmakcUMTRhemdffidcZPffZZelXZd`HaR]TPNTV\`hajWMI{?z~F|u>s{Dz{F{s@so9C=6B81<3-6׻սֿؾ׽׿ٿٽصЦ¡ ¡¢âġãŦǤàvmzCMT       +!#.!!%              )()@AD-12           {nS̕þvcY1KzCxByCt>y@u<}DXIHY]SITOUQYT}EKaWQgb\LIOOY]K~C~CFMOZRPHd0lwDMWTQMOzLQc`}OWZ}R[|SX_}T}XnxdzUnDwQ]Gl.)9V__ʿǿȷȽƺ÷ɽúöɼŲȷоſǿȺɿîɾȾ˺Īɺ´ȿɾḻ̌˦ĠȣϨϭɬ̵˴vmtlumumvnvnvnvouoxqwqvpwqvpwqtnoinhpltpwszv{w{w|x}yzvzu{v{wzv|x}y{w|x~z|{~z}y~z}y{w|x|{|{|{}{|{~}~|{y}{|z||~~}z|jy`OZA9@<6==6?=9B>;D=9D>8D:4>5/92,6׽־׿ؿٽ׽׾طҡ¢ġãġáâĤš~pct3;B     %%         $"$%%)*+0#((           '_ƿqofIMZBu3ZY_^G[RSBj{ǿo{ҀĻlmwsokyƼ~ݤԜǍȍĽgeϖk~}ú|tmlqĹxĽ{{՝|ƏsÖȟǸŶ}ĺzhdhus^[w}im{hbiir`gv|ՇЁ}zkcouoƋ̌ɌƼrgŻ~ø{r}dkvfm?c˽q~|؀҂Շׅ̂|Ö،ވڎrډݐŇ|ornjmxwǻڟ}rvxxݏމ˂ݧ䓧{֟۝y]}Q^zȹyqym^wOtpwLqpe֋khÄ˿ΉvebPqXZeYd灺pt⶞iZڋՇnoedXKKXފܢjV|{ȃ{vԆy؀އޑɻӞbox]a||_isdihnop^qsnvށ~p{r~~o{ŗo_UtA~lt^gs65LRGeqoseTsiz}xu\g`ZtLtL`YYgVmZeve_hidQOXiojsQl:bn7{BXj]FRTPOc`_Q\rt[bZ[Xf^W\cbkV}>AZfV[Xed^_fKKSQRYYLYQCYx<|KGIOLE|CJGG{B~t>st=wLKKJ{DwA}{Fq=spr8{}D\U`cYu:|K]X^KIRR[YNfWLVzE{|D|HGETL~D]PQSORW\RVM{IPyHn>rqCw~S{OxJuER}Sb~WyWuRY}S|X|\}afCznFyRfFxkJ:Y?̼ȹó}tw}osvgloadfZ\\PRWHIM?@B66@217+):/.F9:\LP|hltvq\\."$    YkX}إjbJbOͲz|n/M?Tpiyrpkxɺ־ٷ̝ıcpQy_ۓmaxUaR^NZAtJN{[Zyzk\{{udxlayeLxyV^]ihvZxbB\}]rdGTkXbtr~_]oJD[ZNl|i{~gvnsvltys]~Vg~T^yYk}XkE|QSfWbcvb]joYfjlnW_xC|FHRUp>}LxBt?[REVSO{D|GQaO`aYȯ}r_`Y[[eTSOSQVR^ZNcdT^`SYZbI||{ExALHMLPX{GM]IQJ~GHGLx?GGP[\]I}?KF[QK}CKU_WNPQN[c{Gxu=sy@}ESiz@|EMNHXTxC|uCxxG|L}J~KP}K{K|MUWb}Sd]aj{\yS{WwTbdsNzSb|WjgF:E;8C:4>70:3+61(4ռּ־׽׽ָѥžäãĢáâ s~kxHP\                          rIohn\5,0!+cF,êvdqRɽsľig¹obhSFLSv~?:]Pu~ĻxՅӁnptw~ķmщ~܊ۂdž}ݖ~b{q}8?@ƶsʽvŵlzޘԈˁtyőǏrțǔ͛ʐȾ|ƃ¼xĽo֊ʆǃp\dzzЀȃlljozwysg~wxtr[m̶z~ىۉތt}Fa`Ⱥzɼr`ۆ}̽ňאˋ~ĆˁمzwoxrutǼafa^zql~ֈz׊۔~x΂lx՟ܡ7@möͿwn`Ŀj}fyawԝsƄłޘ]|nOrrsuxxҊБǘ̦ѩ֩ɏ޷|zeUknaphbfmurnfr~p߉yuyd֔ژא쒬dW\QgktZrVghnf\mqtyy{x}v|z~uzrt}|n_k_VX|CTrN &#  NJz~   TXSǘrsXmjœeyKq\}WkTcLz]duP~aGuXQ~`P~bFt[]w߱ʝxyuڠΛʙjZqO[E{OD{M=rDGvW}eYqg{SamLAcaEwvR~Xc`_ekyz?%A_I_hTqfRuzhln{e|cwXvVbnI~^qapLcdtKtM|Vpabla_Z\jra_cZQneV\TcbNV{DOS}CWggeUPRWdJJXZqkPimsh^]YYR\YVRYLQ`ZQZrmMIb`ZRF[VZ\L\SFJ~AGRIML{@bX|EK]NQR~FG~FK{CL}FHM|DHLJQMWbSMYY\JNFE\aUR\Oz>DNLWaVYt:~NcOPWQD}E{[~I~u=uJPSFHH}B~FQV}Fs?sj;jsBsyE}KNMRS{JP_dZbZzNdxlHwcAtoMgh_[X\[^uR@c:4By~˾ͿȳļŸ¯ķʺпȸͿƽ;űdz˹˻ëƭʵǰ˺ǻ¸ɺ°}ȺŽŽü˽¼ʿòȲ״ݽۺܸܼ֯ʻthameldldnfphqiqjrlqkqkqksmsmrkqjrjlglhpltpwsxtwswsyuzv{v|x{w|x}y|x|x}y}y~z}y|x{w~z~z}y{w}zyxxwyxxwxvywxvxvyxzy||||~~~~}}}}~~xvdlXEN=5==8??:AA;EA;E>8D:4@82=5.81+50)3ֻջջռոӥĜĠĠàáâáàž|t|fs}9CL                     ra6݌wqsȾucvʯkټ}¨hŭoűrqÿv~_]MPCPZWlj^_VMW]PSRPRWYYZqѡӡdX^VZS]_gZKw=hTMUGRUPVYZTTH^WYZZ_NJPVOQQM}BHVGQZHUKJHMGKI}Eu>~GHHKSRON[`haYcaNMp3xy:MQS[JF}A_IMzA\NOXPNHKRMa{?{w=8@@;BA;C@:F=8D93>6/:5,81+6/*5ּջպԹҩɜâģšŠÞzr~ltdkx07=                             Qsjjln]ٽ|ھԻ{]aZ\m[^Ŀe^[XB[J{#ehTIdǿĽtx⋿pXlrgqs~тt~DŽpfǗȗiyƿzǽsj̿w˂Dž~Ȁφzs׏ϋӤձϫngxjgsȺúýupötʃ΂rfxЉׇوքԁeeqfgl}zymnehď\ƈmؐ؎Ԉۍv{p6`z^_Ԃ}ц܈ƂĿwzv|yӃLJċuy}ºqo~ňˈtwǒw}i`́uĂüĻ|҈܀jjkꈿgrtӔ˒Џ񮪿]^*u֒q_tqsZ_vˎگɣfobnf^hs񈤿Vit{ram{~eҁ|vy耞Q̬}ܪ~}悹kunNfiوkzpkYTwsb_\X[qydycKoftrgZk։ϢxbXnXo]fboxZc] !"" .&.@>J        0<)ṵѲzӤ؏XvDpUblMzXQ~]Vnmv^fW]cpsssUcdofpV]M|UDuU]tհɍѩԨפ֦ۚώqHy[I|X]qewJxU;hGP|kiSqEeU9ALYIyyafzp]mfdfjD}B)V{\cE~lQzjO|iHytQxTa}b}isGxOymr\rAQUTg`ZfaQ_`N\^idYY\]i[SSY`a|Dv=ZijURY_\p0Q^_ZMdNSVhZZ\[[]]\\eRb{Cz?PWTSR]TfZISTMX`SRXQVU[VZSLNKQKs9~{BINUGv>zBIKHTUMJNRWQKNWUqzWZc]Mv<}@{=WWTOFz<|@dYJVdVblWUJMONPJ}@}xor=nyEzRr8?<6@>8BA;D@9C>8B<7B82<3-81*7/)5.*4ջԺԷҦƜžâáàž{nyen[cq(,3                       #!          Zȿof^`cRªkּŮoyZRaklʆMYiDGIm]RRUM \JgȽӓzpāɍobgmkyyzªĹ䖧j͟ќo\چ~lr~͂˅~|·˃ɀ؎Ǔʣܵ}^mwrNjtgs~׌ߍڈ|]|އуreyۈ܌ՋkimwyxrӴ_pitӋ֊L]zpxdf˾vȿus҂ǀՃۅvʉʍȆӄr}Ԅ}wwzs{{Œzp}ԕ͌tqˌЍyИ܄߅wxuřŹha݂ob[r؇،ݏ̆{ûti¿yswwpYezgvyɣʚ{{ЦȇքRpvyYPqz{kq}{~kvŹҹbyIЀynsiNUlX㙩arqa^aUDJ^im}keuXJ}닯i|遹l\m䚦zYwT363$hFpTQyin򪩼MIX       mx[ƦlBm\R}a`j]bUZUZ\ef}qiuSSI~DCv@R|VsrbiNVAlRЋ٥ؠөܘnJx\Ix^zlYncySzlSwp>WVPPeljrK[lΰ}Ȭzíyď`zMdF&WlRrsPqSjJ~kjuLyP]c^txf{M^VZ_O]O^U[^ilXSKTl`b^]KNe[[ZVVd`YyAIf[\XZdcu‰KQ^aXV]_o]]_NX_TU]YTgRz?u;EWeeI\_Kw;KOQRWNYXWTKWS\b[Nz>OEvo}Cv>u=yAx@O}EM{CRNZUOKYMMMWWW__JNU[S}CNYMRR[O~@GFHLRjab[JUZRIS\HCOIMCMQPKROJHEt;u|F|Rw@yJLo9uLTW}JQcwH~RX{LuG}Zo?vUTV][[c^XT]a`}UfMEYˆ294վȼǿǻͻ̻é̸ŵ˱my˻Ƶ˻ǰgśəƌÆwǪڼ̦޼۹ܳجХݵٰϤӭ}eohrjsktltlskrjrlrlrlqkpjslslrkqjpinjjfjflhplrnrnsouqtpuqxtxtxtxtwsvrvrvrvrwswsvrvrvrvrvttstrusususwuxvwuxvyyyyyyyy||}}~~}~}}{{|{z|z|{}|~}}}~~uzfZ_G=E;5==8A@;EA;E=8B<7@:4>5/90*30)30(40)4ԺӸҪǚâŢšß{|}x}iqdkySUa &                            pbEvf^\[͹~ƒҹxһz¯gƹh\[YObևgOTEjbDC9]VSGčŠlɊ~b\ǻϑrekkvo↼ȱ¬Ҕ}ت˖[jp»vƿ|Ŀ|{̉ăȄxzzˀҒأڬߵX~q`oi]xЁۇ~kPqsjco~ف݇ߊ׃khquҭ㷔rq̾~ͼqLýḧq{r{u[kmRQ~vicZowؔӎь͈nnwxhrjvp~{z{s̐̌rs|ݔ~Ʉ{k~ydtʼnʶw±oӄubt}stۅ|ng{jwȎsjxm}xP`rʿxxǽaㆳvytzϰp}m\cUeffmw^t{uvgj{tqrXr>r큷_o~lkgZcH皳hr߆]grsxn]KXlqeyqi`kffjl萼{vs~툿Ӄysl_a^ȌG93ǥըʛˡ̱˿魭ZVf        "! zLvl:fNU]Z^UWR~PP|KSLHuARUHwLFvASE\HZGUJ`ljnyRXRY8aEėډƮމ`yR~ckwWxsIdaFYaHRbUUndU}tWyUdbdVsv¸֢y{QyPf@#QjK~YzSkFaZ^gRvEg\nI|wR]RQ`SN__X\[Y[bbaX[V]YaVTSJ][_\OQ[hUWRaRbfYaiXj``WcCZWfmGHWZS[\UVYTZTJIUXGAV][IOHRLTTTTPYZZHUSFGNPQGGRMzBw@]WJ~Ft<u<[OIM|EJHu>yBUTX[]vOyB{C}Cv9{>HOZTUOu3yNNw7T[X`gTT]ZWQXQDLWYKN_SBECLKG^VPZPJVgVxCzq=pxDytAwU|L~n?ln=m~MXR}NwIf}N\ee]yOg=xsJYV^``n~fTue*,RW^Ҿ÷͸пк̾ϾÍvymʳxhsËҚӝќđ~}z¹Ğܶ߸۱ٯӨ֫իѨدѯƣxsktltlumumvntlunuosmslrkununvountmrmokmimiqmtptpsouququqvrxtyuyuyuyuxtvrwsxtwswsvrvruqussssqusvtvtwuvtvtxvuuttuuttuuxxxxyyyyzzz{y{xzy{z|z|}|~}}~~~~xwilWMP?7?>8A=:C>;D?>8B>:C>;D=;D<8A93=60:3-7/)2/(31)42*5ԮɔƠĞ}{zpzfrZgu]dr48B            '+"!( ""               eW>³\Pj`[ڿfeSHN`UUXG[wnWPw{5bZHdž˒Ƌkʼnsboٚnvuu¾öǷÖʑłw~Ǖɗuzߊitq¾wrzsφҊבǐ೩khv͂ڊ܉؇ӈ}Z=pvςтσoj^ndhuwrgtɧܯVɊ`lņɅ{eñëβƭusdo}ijoa_mwüqǀºxcw}bbtjnhrĒ~loxrqʿþӏȇ‡z|̓‚xqҀypqiޓʓ˔‹ϼ^¸s𒱰^OyxqZƀν|ȸu؄|{ofsVz{Hhsfiurnm|ĤxwwtttʇsqmpisdmnktelXjqbliXGpڥըă˅ۆ፰a|TibWT`Xa]bmmltkdnqhfes^gqwNTtqov舷puolsypuz䎨ƣwxg[|et{kt]^jgfs~ȿŧgZyTAmI7\fNǔӘǠW~o@nKP|deJRfT@gmG|\dds˦xt˩vk΢qwaR-jnIjSjRvRVQ~KjTRliY_b[SLa_RcLSccbVV`QKOUt@k4VSXSFTc\NFJGR]x>YieZcO\bU\BBDPugLVMZ`\\XY\I_^Dh_IiWAJTOSTRQZRNGr5~P]NNGNPNNHK{AHTNUUSFy@KXIRPILM~Ew=KJJGRYU`ZTM[Kv>n5yx@t>r<KLTNVjLoRMMOPMOeRZUNHMJIKMGNKPXVGENZHw=}L~FGJMROP{Fr>:C@=FA=F?:C<6@82<5/:3-71+3/)31*44,5ǔãĞ}|wnvfl~`euV[h*,6              ",#!.%!+# & #                 ^kum`\͸̖Wķh¾eOK:oyVQYLhd.e[ K׋сҀیϒqhÕۣmr|y~maŶgrԏÇblumqwa~qrԍג΢潽֥lejƿ{ߐޏ{TZyχqvxx_fpkZky؀چuWhwuz“{Țceȼx͍ܗց܊qíǨ{ʴŝɲwxahсǶtkƼwwumovxtf}?܆b·xǒ|mʿ㟼uАُƇŠŀȁz̓t}{xvѓƌɹΗᬹlqio؊W{xgwvoӂɻnހxnucnt^w\[̹qwyuhdemu{lͽtlkhotagZfpdirqhmnrmlpss|kQLidؘʇDŽ{Շgd{|zVjlzoXVgd`gaXT_dc`ihec]_qneHg|vtwwgjntuorquٍ~zxˎcuxbnyBIPJLV_`ow{ŝƕxj}aSBrE4gOhNo_C2:[rTMrMophi^Z\NXHVLZU`a]^TPO|FJu=RDUA`G]?X;eIpSaFfZ~sV[Er@@k91Y0ftՕ~Gp\DmQ\yqT_p[IsYg`lhjmveױˇVulxRqR4iqM]^@sOW[xEJ_Kcm[]xYcbMVYPe]fedo`_gkmcr>wHNYsaEPO^KPWTRbSzAav`ZX[dRSiLuæiMY][WP_VcaKYQ|>G_[`X_dKQ`^MVOPKLVVR^UUSK\XROTYTHLQRNQQ{BOUMUMHLTNWUSQMUPU]QOQY\\Qw=GGm3ws8}GJLRkYg[YNT^bEWUKXWSLLNLNJ~ACWX]TOJULRVKUTN}FKJJ|G~j9lsCvqApb3_c6`h?hc9brFr~OzJ~\\{LX]~ThgAt|UUU^}TwN}TW{T|V}UyO`]qM~,8mvzЮܰnhSzs[rX|YK`٫y{Oo˨Թť|vruf]v>ay>rС֭ݵڰ֧קզ͚˘Ҩ˜|ritlsktlumumvmwpwqwpwpwowpxqxqxqxqwpvoupsoplplrnvrvrxswrvrwsxtyuyuxtxtxtyuzvzvzv{w|x|x|x{w|zzy|z|z|z|z~|}{|z{y{{||||||||{{||}}}|~}~~~}}}{}z|z|}|~{~}~|~}~|~}{zzzzy~y~y~|}}|~~~~~~}u}uahOBJ;6=;8@<9C@=F@O:kPlRhPv^v\gSli{oX]Ap@=e9fe8T?ыJmaBYUQRi_Q|fqqjd\m`_hlg×۹Ϥ~dCV5o];upJxQ\6wyP{PWXLNOa^xFknTbSYe`bkulZ[kdY`ldK~RoEg3Od_^ZBz;MRWROSHfmfQU_oUaODf^_ahg`^ahf`jaUR@ch^Y\IIWSJRXRSMKVYaO~AOKXVWYTWYbQy@RRWRI\YLLJTPNNNUPVJHUFRN}DJ`]MbSEOUo3wMWa^YbfdX^\]]b]VI[ZDGMSRKLRJNVRSK`kIZFy?|HMTIz@yHxA{MUyIzl6>95<:7A?G=7A:4>:3=60:3-81+32+31+33-482:Ü|}x~}zrwejz^epY_i?AH                                  rO5ά|`hckWlɲy\H[ERĽed\6}q*vAqįμČ;ƻz΁}zkʆ}ǝdǸШZݔq]º\\fhw΁ЉɄz̗ÒmɎ˗ɖyip~؃}w~ǥƞz惯emv˅ؒԊىY˿w̆ېڐݕʁľtp[]j]ŅӜ\woʴvڌȔćÁ}v~`øq~diˮ|òz̼ɹx³s˄õsŷtɾuoenp^xۈͅ܏Ӄ{ˇҏȃݔsuԋ~tpqxjʊƿϏ΁ֆe݁vzÈŐ˓ƏʓǖsƲuSZѻu蔸YWst|{wwr}{zpoc^ʵowlvlofxqmoljfofp`_f^LZ[NNKodfupfR_Ӄْٖp]\awgrۣ{>w쎬dSsl_FS`‭^hbWxmgqbdbkeJkvjymsɆՊxszցkpuls|ttwme{|˪n{}ٵбkldzSvR]uOXW0Qk@`Vka]R\S_T_Q]K`P`Te\f`h_dYk_l_[LXDSBgShPXDdUxvck\^]^pgvU\ExC8h57\@ʽ:XHwЎyScoQRl]N{vZejjvjgmzVWttY:r^;wmG^9xWUxN^X|NMcXNPSpi^Y[Vi[]uǙneUTikORVhTsE~S^LIUUNMNTKL\B|<][fqbaRggaQN[blb_aYLV^\hcXLKWVbb[`Y@PPS__SUTSKEVJ|?W_WOLVVPVGI~Gr;|RUPJOTIMPQMI{CY\UKSv={JKOWO~E][[iPKo8ye-p|AEy=HT\e^WcYOY_QXYQHC}y>{}A}AJNGEDx=}JVSILKUOL~@whk>lvH}Mn?[FXVHnr\in\\xqZd\P^cYj|aƋyklـތxrwwz{yu胻Ԁƾr|׽뱢hcgaxO{RoFY[-Rl=ifpnd^bZh_e]]TYLdXjcxtxqj`lbneleofdYcYj^o]]L[Of^pe{npjMuPNoZTy^PTD{A=s25b,AbORrgLea柱wwngTs]y\^hccxdcglkKW2wvIzĢ~ŀZY7pO0gpJSvI^WyKrC[Wh^VPMXd^kdY`lihsZ[R_SibQMLyCyCX[EETNZSPUVVRZEFJdҚ`nW\\PUOaba`W]bT~ASSbWTI}D]T\a\ZWPSVOONSSRRGE{?QUL[XOS^c\TJLIv>zBJ~ERHMUJNQNVLNOOKcPPJNUS{BW[xAR\i4uf2u~DXOHJQ^`TRUV]XTNUVKG}?^\v8yw:z|Bz?Gn2rDPSYRTTRWL}@L}CLNUs6ry>yILm;nh6ksAuxIxd8clHlnPrpMtmFnlClQ{Hq>v}N`QwH[~QX}SU\\_dapF^_zQ_V^`|TgJ1ULHUū¯Ʈvq]GiaLtrXfZUP[\~Qa_Yka{Ub|YwZeKrVKa{~sx{{zykl]z/-1wztǧ޷ڱצکҝіИЗИϛ”z{yjqgpfphqiqiqirjtlumsluowpununvowpvovovowovquqtpplolrmupvqxsupupvqvrvruqtpvrxtxtyuxtxtzv{w{w{vzxzxzx{yzxxvywzx{yzxzz{{{{{{zz{{}}}}}|~|~~~~~~~}}~}}|{}}|zzyxt}yiq_QYC9B<5?;8A?;E=:D;5?93=2-61+60*6/)50)43+591;F?Gxv|zyr{io`fuT^f:DI#                     eƐwpluī}ŪwgĬqŭsƋĉeLcg\MIp]sdBh|֊|̀хʃΌkǽwՇ~ۊׄݙ۝Ͽ›ęTldlgd^lu|zqoxkr__^d¿qt}Ȋک}ehzxy}˃֍ŁSǶwבӊב̋ǹxҎˇLJƷyӎڒю̍Njƹμxxİ~ʼ‡ƶĎʼnԓż}o̍ޛNp܊h`ʚǣ~vȭĭrtvzrnnЀwkruy|v`r̄ȀɁ{ψ܋|ׁ݉rhݐwvυluwqÄÂtqtkmnOws\[iȹrP\gl[b»miioXmpw_jw|{ـqz5zxjtpۂqLstJgowzoVZgnXUcgntrhc[Ugsbgqr]TY.YxkbҜ⺞gyrkbHcheRNulaJT^`ZTriddnr]a^X_bj{Xyeu݈pgizӒşĤ|iw~alxpxp{绪}zqi|`{^~c~^xUqN~je[Z~T~orebnjqlkhda_Zhd}zuupidkf|zss|znei\vlg`gb}{W}P2S*<]8`]Dy>>p33Z,SshhCZUޟca|iazYb|w_wS^|U\[}\cgavNb<|S6n]_\8[kAoPyGZxIuF}V`_[S|OV`W~U~UxO[vL}PyK}O_TW^}XS9_+#5r}y©ɾqb{]`uQyYdd`b\XTg`bkg^n_WVvOdlx[uYnQuQ__kofxa#'Юٯ֤ܰ۫ئ٨ՠϗϗϝĘrgqhnfohphphqirjqirjrksntmsltmunvotmtmunwpxsspsoqmmiplsnupwrvqupvrvrsornsovruqvryuyuxtzvzv{w{wywxvxvywywxvxvywywzxyyzz{{zz{{{{}}~~~}~~}}|~|~}}}|~}~~~{{{yt|qcjQFM>5?=6A=:E?9E;5?6092,51*6/)5/(52*66,7C8EXNY}rx{wlv[gv^cqRV`%,.                   -!_difmҺи~hgÄʊéj]`gd\uf&{h"|0Źd}Ԇւ݁ll·nǁ؇߃|~߅փɿޫ֝Yxpi\^\en|҈~kkhi_hzvbbwz}֨ⱾМک鲿Ӑ}vhtixȆyNoƶ{ȸ|ʻ}׎ЁډӈnϽ‰ȉ̌NJȼɍɽrzűˆˆΏʾņŃԑۜpļu`ɡęǴɯ׼ѻ{s¨Ȳʺwd;wӈ~pižź{øujlӌ·}w،ԍʾŽ}Љu؁mUyՀߍӄؔvntnjvyns~b\aqnã{Ȫ}Xl_Ƅ̷|rcμywûkc[httýkrsqsweiKIӅ~mqjaxbف~eq_qqirӁe`hr^ttcaZckkowz~kQKY}*?@r&w։lxqkVI~qo]_oqrUavtdix^cj}YQPY{sa]iш]h㉵rэБttd~ey¤›:AKJLWZanmwֶodtcw`sZr[xb{]f`>bv[ĸ}kmifnlsrloy~hhhfrrqsmmģzyjefc{pjvmjejhac~>]25S,PwIHu?OzF1U6tlLa_ϥi[ldrPrO\nu|TsL|WvOe~X]=zgpL{VeBjFH*enHS|GvCxFwETyFvCZ[LR~IKII`[L_[HPWYQJFWUWPKPL}AYO[ATCHWPUXX[_YHRcY}DJH[QJVSbMTY^aonW^]Pz;F>6/93+50)4.)50)44,7:0;K@Li]i~vtxo}dm|\esP]h8?G                        %j[©oŰnȵpe©n˱w_a\bйwĭjbF=Qxj,Y~|zށ}yuhr|w{|v}yptzx~nrwt|gq[iuill`g]th`|vi||Ƒޭ˕Ɗqjf^atiλɏǹ|˂πىχİx̻Ȉʉń͏zs}~ǵȎʌɾÅٖ֎|~}埸vo³—˾ʕ¡Ϸ||ѕμ˹˼td{tu¾{z{|fyҌ}ľ}|~|[ǃنӅʂ̉В{ivpn{{upfidloҿðzgt̾|[dɯyįuoƼr^ʾjށnj}}{p|~p~ӄo⁕Kow4eVhkl``păyÇv_nĽr{lm_dqjbaoi^^lzwin뇿ގڀURT7t4TMKIw֡ޫ‰Oz{nT{sk_qvu_Ur{cTUmbhe\ja]i|أգ}njsU}4}|lQoBne/,#7!x¤¢ºz~иͰzqg\p`r_kVlY~mVZ^fP@]jfr~|~qwejjL{tQxQXWyQzRxP[XuLzPXXoXbcZST\\{RyOYcti[|R\c`qRrRgWBcWOXտڸ֬٬֦ץ۪ܯޱקؼȽÈpjskqkphogphqiphphqirkrlslslunwpvotmtmuntmsmsornqmokmiojtovquptpuquqvrtptpsornsovryuxtyuzvzvzvxwwuwuxvxvwuwuwuwuxvyxzzzzyy{{zz}}|{}|~}~}|~|~}|~{}|~}}}}~~}~~x|z~}~~yzfmZKS?6@;5?@:E@KRMDy8~NMLPOIWHD\tsHsMm7pq:u~G|F~u@vo=rm=pn@qrDtpBqoDqsJuh|MRzJS|M\RU`^[]}PuIZbrb\YrFU|N~R[{O[cyOwObYxPbkGzgLw\GlmY}{edsPxOUXXZuLzOWYUTd^zT~y|TwHxJaW][ej{RxO[qfjhd`X[\wW}[]7 ?޿ٰ٪ڦ߮ܯ֦߯گܺ̈ytrlrlpinfphqiqirjqiqjrltmunvowpwpvorkrkrlrjrlrmrnplnjojsntototouquqtpsotptpsosouqwsyuxtyuzvyuxvwvusvtwuvtwuwuvtvtwwyzzzyyzz{{{{}|}|~}}||~~}{}{}z|{~}|~~}|~|}~|~yz~~}rymZ^J=D<4>=7C@:G?;F=:C<7A93=6/92+50(4-(4-*52,5807K@Hi]hv{t{y~x|fl|]btY^o;AI                   !       F3"}Ѽa^qg^Iófreb[NTyO_G[}{|zwpzEX{y}{~pp}}}yҌix}{ztzkuІjfvtpssu}zwzwxjksv…З껰čppj͐v{{ķʍҌˁҀфj˼˼ˍ͈Ż|{ipȹǻƹɍɎʽ͌wˇ̃Ȇؕxjls΂ń;@zn^­ʵev|txjpdgƋ¶vԌɃ|y}џq{ي\Vyx{Єxō˃ϊ؋؊ڊyUjthcȄϽw̸|g°js\R]rrnJenxȉ׎xznszyZ~؄{cuw܂pVx؅gW[e[hzcmjhqeu~tqoojZRZw*X]f%gpˡԁlՎُӁuxaX\pmDM9EiRr^i^}y솶tnqkfaiӀȃ̈́ܒ{vtiojlo$/ /9,~zîȵʳďr $%-!$,'*314AEIZźŭrnvjlWMeWSi^Z[WHUaIx{nuwĶYvb[uUʕ஧xvrvɱme{vqntt~{unrjc_hifiJdKK]J3G=ܚˍ}twqRcDqOj^=yz]_wQ~WYpFpHX|PuHxI}O}M~MsE\PO[WNavBsFOTTKRV_y@~HXIoUVef`XWZV\`^_NSWR^]deRz;OJUIIK@QJs9PQUXSMGONL{BZRLVWvAxBXQRKz@ZRQTZ_KYUL~EJ{ByAu?|EXYFy=PURHUSMJKNViS|E[QG`LKSVSMQXWUXUWKBHEDIOQY_JEBWJCMUTKs5vy<}PCx={}H}uMqrHoUzD}x>{LU{F~V[rFti5>;3@?9E@:F?;D;5?71<5.92)41)4/*7,(44,7A8@YMWylz|xr}s}qtcdtZ^kMQ^+-6                     !Ƌh\Ǵ_hcƽ^P[Y^ZJK·`nCmU_߇zyxupwu\R|߃}xx{vpXg}vwxsqxksڃהӑlgɉugr~kktz{vyzrxml}Պц׉|ϓ龾׫lhs٘ɒ}wõņω}چo͉҃ǹ{Ã̉ύ¹}acƹx̽yŸv·{moǾ{Ɓޔ}Ї}܎}SOK+rYgyrv~nkmxss`Όjiƾ|smrp|ßoxyopxV{MǬқՖɳuڑ΃tvwp隺}ciYjͼËuǴtyn`{~iîq`δrξm\ĺh·c~kvwocu{{Ղցwww~~~ufpywډUTkolsp_jvlvnlwnvrn߄[dUdIrV=@Y}ݪЦӗމӁ}ՃҀ\Na`^5Mh]Uikcb|yUXin_`Zpzz델tmujfdggh|o^p^txoz̝HYg ')2˭|sn}kseeQI>64HHAMZDhiĽ]yhVqR߽컶Ш̺|}vr~~wunkkg~xwmcg^^Z\{[OgLH[HI_Yڟ̜ɞ~x_iHoOiS6n^GvowMpEZW{OtJ~SUxISP{HRd;~X`Tfb~LuEr@p:zA{A~GRZQaRU^\`TJ|?MYJUMT`QV^Px:LVOMGPERGENV\VNq8^qrӏUUYc\YQi_a^TJPQT\[^[Yx9~>>?IJF{=PNIIPY]ULz?_VM}BQXFLUzDu>QPG{BWYWaVTXGHK`I~EHEt;}EQUF{@{@z@{CFRQIQX\VWr=w?YOYQCMIY`PKRVRORULEOQYYJKO\YUNA{<AG\TG{>}AITHq:qs@s}J~Mv?yQdc|HyJ^Yl>jijrBt|LRPNQN^ayMZb[vKvLyQtKsK}SosrDR~PwIV~Q|OYzPSRuHvKoDvIV~Q~OzKS~QYQOZ~OP{M|MSd^^cS|Tef^[dX]`XR[W]^]UT|Pb]_[bdR8ZYR[͹ٻܵ۳ܲ߱ܭ֩ƺҕldpiohpgphqiqirjskrjpiqjtmununtmtmtmtmtmtmtmsmqmqmokmipkqlsnqlqlrnuqsosotpsosouquqxtxuwvwvwvxwvtvtvttrusvtususxvwwxyyyyyyyxxyxywyx{z|{{}|~{}{}z|z|z}{~|~z{|~|~|y|ʲȻ|z~|}||~~}rzo]gK?I;3=<5A@:FA:F?:F=7A:4>6/;3+80)31)42*81+85-9I>Gi[hx~xt~pxkudm{Z_kTWb?@H                              ({ƻx³mZPǾXLPlmTIM]PRRFdV}5ڄ|{zurygwf`v|}xysc^szsvo~v|{ՉךNj͟Ԡ||tqsfu~uˁwtkgspۆ׆ԆΆªl[lȽĶ}u˿}ʆɅfr~ӐɉĄqm¸vlg`Ĵpɶqbhjܙ„w¾Β֕m]߃펰t[_iuƽŽpʭȥhiʿǾo|^kpnvnjƃwկ{lpnuxʤusɶž}mo}ԁl_dɎȷˋ²rMmmtjcjoqf|`|ĸg~mڄvlqy{t~qtdbgŻvyxx܄zQtzqnûlǿo}ogo^Lb_\Smnpsl҂׃gaWZl00)IVF`y_p|}Úb{i[vWʮM_Tڹʳȿmmuxuvurqj|}rgf[[U\|[RkNSiUsݚʛ̅^svuU[wSgHA)[riC~}U^daVYX~PtE}NYyJW{IkAwKuF[xF{Lq?zHZ_Xr7}FWRQSZNSeWOKOR[AKZVe\OMNRXPNSBL^XMK}DEFI\M}Emj`ZYZ[cPQbZZXLH[VOPQ\dRPHBz;@ADFAJHv<\[WSPJY^}AIJKRFIyBzC|DI{Bv?}ERSTUJNPQSbRl5xzA~AISJKPJKLHONw>{BSORRIXH]QPOKRKSYNNORRONKRSJc`U|@JWKZVXDBCj/tw>FJPIEJLJM}FKMPUQ|H~xE}O}OrBrwFvrAn].[o=p{I~M\[MZd^wIVWXXTW}`d;y|QcauF{L{M|NQzL~PpCrFZ~Q[UtFUuCzI~OO|NSYQUZ{L|MXOuFkc[SbXSYVWe\ZVa^\UU`[b]Z`gZ[^k17ֺ̹׳۳ڰحݪìķۥlfrkohogogqirjqirjqiqirksltmsltmslsltmunslslrkqmqmplokniojpkpkpkrmqmqmqmsosotpsouqvrvuututvuutvtusustrwuwuusvtxvttwxxxxxxxwwwvxwxwyx{zz|{}{}{}y{xzz|z||}|}}~{~z}||Ƽ˿˼ŷȷ|y~lt`QY?6@=5@=7BA;GA;G?9E:4>82<3-90*6/)40)44+73+7=3>WLWyjx~zpn}mwjp]bsUZiKNZ()1                                  5#sHɹyiaĴZ`RLcd_OcmOPV,]UZ҆ފ݃yuvlmlk]d}{t݃w{ziluxskkp}w~glwz~Əݴӆlxmyk{~oʀraow܃ևׅ؀Κخد{y{8j͎Ɋɻ{ؕӌȃöyoƻxȉɎˉߘύpiޅvʼskt|s{dnvrjbp.9XۗݖΈkd~vo¯y˹ƻ~}hVzorwȆɽĚʌف]xã{ͬЯʩ{˭{İtɿr{셽o߆ɀ}{؈ύʹͼ}Ąi_et_]gnjʴtǹiĸeZOgƿlefcރq{tsykqku䅮\x|~чeEjqrt˾}يrlwg\TejFnbow^d~ilҁsaIG[yb]rJ؄s꠲efpΆ\mYTV^Do}{quo]Wi_Tjppᓴsplrkgpjorgi`dev}y |(!g{}e|}ndpªƜ•:ES  '÷|r}m}j|h}jqbSK>muÛjt]wYƬ6CClpۼqt~{~pmmhqm}vqhdZ_YZ|ZSnQTlX~wݘʛ}lҾogfHbG0NjN{WXWc\TrG|Q~PO~N~PVSzHtCxIVXUsAsBbyD}HkSINQPZINPU^\cPXz>DMIJUQYNPZF{IOUEKUPUVLp:}QUTXQIOZUUTMUJv?OT|F}Fh6Pt:EODZUWMLHQZPRTQMIOMMW^SBENZPTSMNJ{@v<}MMVMFIG|B~CNTVOGN~I|FvAzl:nuDv}K{h8dwFwRWPZO`]WOYaTO]zKZ^izSuJl@~m>QTTXUWW~QqF}TUWdwJ|M}K}LSUyLuGSSRT|L|NS{M}NXUXtFY[`QT}M{KY]\Y`[]\`_z`US^]cwRgX?`TIVϽݺ۳۲ܶܫmĩƷڬjeslphqiphqiqiqirjrjskslrlrkqjslrksltmununslrkrnrnqmnjlhlgniojpkplokqmrnqmsornrnuqwsvrustsusvuwuustrsqusususustrutwwwwwwwwuuwvxwxwwvzyz|z|y{{}z|y{z||~}~}~}{}xzxŻöƼźƹƵþ̽ӺĞx}|~~szo^fL@H>5@<6><7B>:F@:F=7B93=60;2,8/)7.(50)42*54,6FJ!                                      ]K7pWXcWʹ\ŻSOUPKUY_dcZDIKwo%w1}4\nk|}xq_gpʁxlvavqztcW\sqhimomibgms~ߪºǂox|sxtxtlz}fqz܈ދىЂۉ́ȍϠjvFSВĵ{´}̍ӊڑÃʽ~źy~|vm|xwrgmozǬٯiiDŽop{L]\+qܔݔylȲ͍|eӶ̷ȹľ~ĈɉŅƹxyυvU^4ŃތٍloǦwؼ}êgcdzrʽ{fwynre݉y]sאwfƽ|ʌve[Âİt`ψ̆nOPȽsdӂ؅ǽsŹrae`}}ƿqtwt}{smF_օq~w^xfc{o҂y}[iofr[rkdckwiy݁owW\I@DGUPb]W~ڂ܈~qbWd]X`po`bcoDl}~bVoNVb`ir`krqrmlhohmxv̂ݢެ—2E/Zjhoez`l}Ÿ¥ťƺĢ!(7   諢z}pitiwkvhxi|k|kcZKx´Ǚff$/3 UfU߮Ǿұĉ~wzljsoqkibskmejd_\UrRMdMٛ˖Ñh{npO{`F8nK7nnLxO}QyLyLfzMoCfkNNzIq?zHwDOONQxGzH]bP{FyCl3w@K}HGHwxC\XZTQ[JPLNPOP\LWNT\RRP|=CSF~FֱqERW}?Hb^Tb^VPUQGhYWEOh`_UBPZUWLL^TZnR@TLKz;HWSFZMV`ORVRNH[KGPUJOJ{CROVPZiYRTMm5zPc]W{CsswGuo@mzJ~NTO}LRYQ]W``bh\~N}OoD{|VazNxJwHRVYV~Q|O`dyPwNZzNVwKzL{MPS|M}PyLSTuFm=u]-bm?ytFzLVQ}L[YO\]]OSZ~PWPOadc]Y_g[[W}Riaer{b!#澖w̪ȳظjctlphqiqirjsktlskrjskqjqkqjqjrkqjslslsltmrkrkqmrnploklhlgojpkqlqmqnqmqmqmrnqmsovrwsvqusvtvrututtrtrsqrpsqtrsqsqsruuuuuuttttvuvuwvwvwvy{y{z||~|~{}{~|{|}~~|~{|jqiŽȿǻĸµŻ˾IJ|}x}ks_PXC:B=6@<6@=;E@BOKXPB{<|JSIaUPOPGRSt;vERSSRM}HzG}MyG~X\W_~MLQUYT[Ui_{KRrG}nDzyM{M|OzL}OTX}OwJxL[YsIpF~pCTtHrFqC{M|N|M{L|P}QSm=ysCrBz]/dTSXe{NO~NTZVVbXY^\SRS\aYRSZ{NS~Sf^Wih8$;SPVܯ̢©Ȳּmfslqiskrjrjumumskrjqirjrlqkrltmslrkslrkrkslrkqlrnqmqmmilfmiolqmrnrnplrnrnqmrnrntpuqvrtqtsuruqtssqrpsqqosqrpsqsqrqrrrrssuuttttusvuvuvuxzy{z|{}y{z|{~|~|}~|~̼ǾʺŹƾ½ɾĹҼē|~~{s~t`iQCK?8@@8B?8CA)pɶnaTNOWKLUEKngEHVQZhnTCi\FRUfT\Zlnf_aw}͑ɇwȇԔY=OfptyugcpiszqkernupuˋԥȖtwֈՂwthzx~х΃yqw{>XȈӑՑǺ˂vµw}ȻxskĶyɺxǷtȺwǂˆù{ɜp|ql˵ؤΚ̙ϕ͐cьӃ^̎ΕѾÉҔ֞Đʳwq–žķrڌ㕿Čvycru¨vbζpϾs[ðjizl`u{gyiqsumg䑦\ȺzʒolvWeZI­j\v²ohh_Yøjcaylkfm뎪cdqvz݈rtyibË_ڎhftuo{΄dލc`|noaQdriǁvq\kxu\\dnkvㅽ]_apᅶwweM~|yvulUIWOhmQR[\g_s헵wqclrrㄾ؁\Ygq|鏎WUȟozxæʓӍk{      " '1&9!4!6)>#-C)1G*2I)6P-;TOWQMNOLzC\eWK^eLZHTSVQFONURVIKKOOKHGNNPXFKXFNXOt=^_UQb]HEXXXd]R[_ODT\DNYN~@GYRcYRWNNQv;yKOUS][LTPONYwD}Q\[WcY~OYOO^X~Q|PoEwuLtH~RV|PQU~P{N|O~QVsEvL_uL}Q|PXzMqCuFTVwK{OwKn?yj:tn?ypC|xKSyKzMtHV|MX]UU[Z`bRRm]SZYyKWlgW\U]Qclxzd=/D-(0ּڽڷ~ȱذmgtlrjsktlrjrjtlskqiqiqirkqksmsmslslsltmslrlqjqjpkqmplnjmhmhnjpmqmqlqmrnsososouqtpuqvrtpsotpuqtsposprpqorprpqoqoonqqttrrttssttututwvwvwyy{{}y{y{{}}}|}}~~}~ĽȾȽȺùöŴɽ~}y}lvcR\H7AA:EA;H=9F;6B93=4.9.+6,)3,)2.)32-4:2:RFOrfq{}szut}tzglzV_mQ\iEJU$&,                     ! $#"'$#)#"('&,&&*"!&! $  "!!$$&       "rY>daSWMEICY`6BV[JGFIZ[`QKyw)|(@jwjL]\^^[uǕכǃdԄf;Q[ivmpr_nnksmpeXppoidlrekdiˠpusuyljy|ʃsH]ȉՑѐyՋȺ|÷xƀςςŁɼ]pƻy|̄ȾwŻxüxzh¹~xnɻy]hҺĕƕɐ΍ؔΒµvߖ`וξɌɎ˻ɘƎrxÖÎxuʕy‘{ՐS}xȖWKdʂeMgo}usv|Άotm~vv]τÊfmҺӷr㧺ct5Є񤩔Xc{ż{x_mx͂|y߅敋]Lqv{{mc|zT}ݚk_w}igpsۅ}Z`̄{܉oYff]`W`vc΅qUXvnqguWcbh|뎺TJktrh|ݔeT|ނmit~QVixjVMVjpw׋ᒰр}߂rlsz拓[ZPWlgoDVԃޘƒȫυè֠LVe    #!!             6:-FU9ooOk]÷˰ˠ{y{Ԝ$"  2?2ֱʚȟuzw|}~aZgcmjWqOGZEsѢЁu~fJ2fA-UwWwOj?k?~qDQQs=zDR`RbbyGP|HJYOMh\SQ{FSQSOY]XPTNXq=KMVx>MTOUEMPQWZMERHEUD~<\IO}@{>VUMKNMi2y\gRF[[NaiVH[YRSQZRTWT\QMXXBM\O[XU\[z<@>C|;KYQZ`HOTSSPCH~EzA}G|HLRL`^PWZZ_Ybq8|k4xm6~Hy@Il4~zDRc/rzCo3wPledV^W[\WKTc]accZcn\TX~A}?z=MZRdNIVQTQZYTRWRONOPWLL~CF\GDMKLPH|BQVep]JJT|IXmhe]TN{JVPSO\XzMZ|QpIxrJ~zPh;xRzLTW}OzL}OuHzMTe|jSdoGvKwIzLxHQRWqH~l>vtC}rB{rB|uF|NxJTsGUYP]VRVR\XpA}P\Z\Z}QVcaUY{P^l_`eb|igSpmWy7*>&&*q]­ųqjtmsksktlrjqiqirjskskrjrkqkslsmslrkrkrkslslrkrkqkplqlokmimhnjplqmrmqnrntptpuququqvruqtptpsososoqorpqopnqoompnpnnmooqqrrrrsssststsutwvwxxzz|y{z|z||~~{|~~Ȼ÷þƺù~~usenQFM=6?;6@>9BA=GA&ufXZİ\ijUgNXR=YaEKRZiKHWTLTAoc ^ypmolku_I}ْȊpxytrfY\pyfjh]mllnug\usiszpnupnul۰伸͓wrlabxxtffJkôxŴ~ΌْǷ~ɺ}ɀ̈́ŷys̽}ȹvʼ{ź}uöxɽzn}xwτsqaj†̻}~ǽxaҽ͹ō͌̈LjˎȽiܞעȿÀfߑ՘ƍpƴyơj}wŽjt͢ř~sjxw\†ƒ|D̵w˷vÂȌ‹źƄȄ~|΅{pmsqydvpuËw^_ma̻rI˻rs`Raefwwz׈rzۋ}cx@}o~ڄxwvi_XȽŽyێlwqzŷnֈ|thًXixwhojijmyfk19javgzoknhvM@|nT]ׂӀZev}lo{wYen\VcjXԊєЕgxՂdox{x_[_jl`hslꌵz˂ՠåʡѝʡoaecEC='#"      "%9B*H\3f[St\[|\ȾеҠ|tz~}oq)45   GVH޹ն~ɶg[`\XuTAU>nđsɡ{YF*]9!LvTyPe;{xIVU\i3}OWUi[PMuB|JNPq=xDLLkPWVTK|DILSLRN{BOMx=INXgUPLDMLp1{XHJDMEORLYMOHJPORT]l9{{HMwCMMNZ~IW^[Vq9}x}Br;M]a[ga\_f[WSR^q_XSYVcSUXNXWKFO`Y@z<}HLWOGQPKKLGJTUOZMDHn4uQR}AO]RS^F}EUWWMMINMXoa^dUUURTqB~~NZ\RToExiBpyQ\sFl=}|NRVyKxJ|NzMk>y~Q_`~TSntMg>zyLxJzLRY]pH}qE~}OsE|MzMzL}OQuHzMTT[]TYWZ_|MXcb\XVZX_Y~S}Ub][_e`hPsV?cqWiVuRYUrltw¤ƭųnguosksjskrjrjrjrjskrjskskrkrlrlqkqjohpirkqjqjslslqlplqmokmininjqmsornrntpuquqtpuqvruqtptptptptprpppqopnomnlpnpnonooqqppppsstssrrrssvuwvxzz|{}{}{}|}}~ŽĿǽĻóԧ}}pvbW\D=9C>:E>5/91+4,(2.)51+73+681~JWLIH[TKPSINVy=~ERCLKUlaSJLQxA}MN|FzE~{ELQ~IwD}RyGY_iqRl6A=6C?9EB;H@:F>8D:4?60:2,6.)2/)42+72,84-8>6BXQZxpw|zmy[QZgetYYeEJR$).               !#"'%$*&%+&$*$"'"!%"!&$$''&*" %#"&$%*38<259!" #"!#""$  $$$    aK+ZFEǿKPPNfLLbG=`hLLRLWXHNI?Fmb`hmqk_hw8~husuwr{`Qcnrhxrqfhdaofgxsjkklry~zuʊ|~rqpzyJRʹuǻsֈł}Άɹz˽twquƼyȺ{ȶxųsѾ{ǃjz`qidκͺϊߌɼphʸ~ֈыޔ{ֆʾrhkwqwxwvsqoo`ymʮʫɡ᷸ܵљx½k˘Ҹ\qҼUl秲fΓ͐^ʷŶ|~l|ɾӓz{bsnƾuuçwêqϽvz\`ۅN\dļuy䓰eGj`r}ܔڐڕfqz[}Nҍ}ɿ~zujcƏ†Տύjv~ӏyþʋpmؑdypqqbRp_\lx|yzz~tyue~z}tችֆkɅ߈si\n\Ljxq^k≴։؞ᑒeegeYMSTYL[Sdiix׀t¢ƕʞʛǠmWXL-%a=3T6._B;[B:O>:4,.(',&'+"$("#'$#(%$)'(+&') !#  8A,cqXReHMd>WrDq^âRpPrnqqz|ʵҙqx}La_  3A2ܸge[_t{TjTLY]ŠʜÊoi~fx[9 Td_d|QxKaX\XxHzGM`zFn?m<|KP~L}JWxEuBaSbsAPZWPVSQMOKbNLNYILIVmTNHOO``V^`CMLOVT[^V^DLCv;Pm;d8z~O[fTNnVTUXQV]_YTUOXTd\ZNOMOMRZQH|5HFCTac`UX]a^XUXZ[KMQm5w{Fo;zDo=p=zBOo7|}EQ|Dd.st|yLf`[Y{S\ySiGzkN|cIwcGxvXclbǩîƱɱɧʩ¦٫nirkpgpirjskskskrjrjskrjrjrksmqkpipipiqjpiqjrkrktlsnrnsosookmhlhokqnqnplsotptptpuqsouqtpqmrnsnqnpopoqponompnqoqoqqoonnppqqrrrsqqqqppqrssuvxzxzz|z||~~~}~þʾȿǾǾǼƺħ|yy}xzbTXJ@J?8C?8DBAP_N9Y_~ya`jdisbblr[hшklpdny~_]qisvojfjoecgporrvtqevz~|}kryu}r↳W9ɺpӃ{ۈˇȺxՅ͈Ʋy̾y˂̽{ɻuޅvztuŲṫے˅nbbz`ƴuɇǀֆdXqƋ~|jjŹ|nەȑjh~vrdzwmϭ澹ИhŌtgvjcζkWGZŰwɶ{fϾ̙ºĄÅszx~s񘤫^bozrcXɳlnqwVn݂ߍiXoԙ鬾qΏю杣yҞfO\+k‰y{j|ˋɎsWlqlИpwםćvoblnoR`{s큼sluz}~y~y׀ҋ́xߌn߈ߖƄoqwodjuZQZqgzрևԌܕސ嗨Ƈr\VXZJVWVrX^^dul{~ŪєŗďÊP81V:0a@7gH;U@9:14/-1338/28016/04014016-/2&&)##%! !   .0"JR8uw[uN_zRa}MpbĦeh|{}|}˚vWs\bsp     u}^bx}ef;KFŘőkrw[l; SM/jpJvN~UxMyOqEvIZ|N{L^ΊV~P|LT{IsBzHMRYLTYyESV|HzEVVMMVVRSZLwTOZXYBLOXUY[JL@J^KYRT]T}>RTSLw@tD_^:rvP{˜cbLW~EOR[SLYRSTIYBT^`[K^aIKKUPEIAl0~UjYR\[X[UUTQWS[`VW}DI{CU~L]*oFEw;C~AJ|?CMTKEx:zDF~CPPWLx@|DzDyD{CMJQYRNQXO]VXQ_]zI_{KXzMqI{rJ~[yOY{MZW}OzMUZ{OxKg9psFxN|PqB}oB|UWT}OzL|PtIwO}SYYe:pl@yyMwIzL\j]``}O\XY~P}PUTY^[bX~TqHW]X\caXZ^{WbDqjOzsZ_Ko[MblmjƯɱɸͩȬŝ۟{igskphphrjskskrjrjrjrjqiqhpiqkqkpiqjqjpipiqjsltmtmsnuqsornqmnjmimiokqmqmrnqmplsosookrnrnokqmrnpmpnqpqpqpqoqoqoqoppopooqqppqqqqqqqqpqpppotsvxwyz|y{z|~~}}Ŵ¼ɽȿɽǹ»ķÿ}t|ozrc_Z3-5>9D>9DAJ>8D;4>70:2,6/)3.(2.)42+78/:B7@\QY{py~}zn{\T\?8A"                     !'('!! " ! "! ##!&! $!"#!$ %&,PS[=AH(/4/37!!%-+0'%*%%'++.$#%#!"(&'    [D ̽cbU>IROOXUFb]CNQKGXdcxkH҈}g^ebjrgXljD؊σsmtkiud¿YqsnqttcimptqjZUW^g`hvuڀ߅܃zhj]mqxi>Onrxuȁǂ΃nuŀȺwtyrxɁv|x€ҌŃnocYlȾ{ǂ؍}͆vVāξǷ}ŶyъՔ˻ó|ʶ~ҼӿVԚ˜zcizYåŬmu^ǽx}]ksͫĕ^nлp^étǮt^eהה]^}N`t{vɅ½|ǽđwقxgj}{lj˳pͻlɺ^kt{ejޘljbʗ⣿~ÇpՏxha{6h{~vwyosŃÂw~onzrtƃvyɃwts|qDXttxwquy|뫹҉ڗΈx؄ޗ܍y6҃ћԩmYl5jvreNXyru܊ޕɂw݄~}詽۫x_jn\Kk^PQU]\dnuՅɧԢwșǒÀN@?T:4jMDE2.M>?yfePCG=;A:;@56>46>46=039227,-0$$$ KNA>A7%-&;=*PZAarXbuRn^{LgXhTrcĮipoożƔ~t{ƶ`{eǒ +3'5­ås|[}\UuR7O=~prt]|W)9lOySrImXpDuH~P|LRQ`]yIi<}xI{M^a\LXKLQ}HPUyDk6~xB|DHHH{DOFUdPSHJ[_}?DTTR[T\XJRZT^]_Y[WQ^Y~GxBKj=|ΝX1qVU}FZXJy?RVQGPSSDGJQRXTIPRQYRHBGK{KdOPU??\`\TXNMU\MCKKHJRNKRSYIq6xw<Ev;~w<}FG}EyB~QJIQMJWY~HZg}IdZWPWV]UVcVb[WZtMjAxZ|TxL[sHyK~Pl>zQ|PTsFj8B:3>5-80*4.)1,'..&12*5:0;L@Jm`i|ypboOEN=7?          # %! $ ! !#!$#!'! $ ! !"38AJS]5?G(08*/6-.6..4&'*,/1#%'$"%%#&      bN&cdULNORZVR]PVKUbZISeGrdDԈziV\^kfi[VU|*ُ~wkjgypnÿipoppjlM\ktrc_`fjj`lysy܇z~mm}NXvýc)I̼msrqwւ˃ՋȂՆfĴz~ǽwuùùspwuutӈ~YktƃƒuXƸoڑͼű|̑ːȸŵ~̺˵î~Ͻĵ~uْۛגԑ˒cuPq]dȻחc`s̈}t}eŘ]fzϻ`ܖ㙲bgˆӊ^cnllvyýtwkpzzҕvZ{օS\mnhR@ïcʻi÷btcyhmz~{ƁvqvgvalOyXsǑ͋vɎyόӍԐujhn~[jŎƒi}WcSIU\\Xr≹_?[bnv}ぺus݃}``a_v_}ً[Y䗲ՠເxmBsxlah_TguՇz}zols|{΅ZsNcFttqTUKX\giNbcimu˪הǙ Λȓħ˒]Y\E76:0/PCD}TNPEDHAAI>>G>>E>=D217//2030PYJz{]dZGHCRTOjoe}ww}C[=]wO`|O_|Mykíځ_bǼŘxyhhĴ    49 ,_q^ºΨêϮΏgn``B^DXnmSsjlm}sdfBeD|?$KnN{SXxOsIsEi9}|J~L~LUj8otpBqBXl`\SNU[ZTPn9J{FHW|EOOW\XXMJIDIOXRPMVCFBJOOKQLQIIOOORPIN[Jk՛ed5yaX~HMbKdN{@RGRQNRGXZBETYXU[VReNM^x;`[W\_WKRRWdci\VLSUHP`Vb-r_+un5DKHHE~@E}@LOKz9HONM^VI^SNW_`ZQMNPR[JONKNG{6yG[[SIRUHWXVYKY\SJchNWJLZXNJWZs9yr:z|BINUx@yB}EzBx?|r9u{BL~Fo7tMSb]SYP`^UVWYhV}M_\]X\i[]`}TtHvHyLzLzLlxrFzNyLqEoC~wIqDT~QyKSvH{N}OxJvH~Q{MUQ{MyMWTRXW[SY~TXZ[YvN^aZwUgK{gNrL9S("*}wzs\{\®ȴ͸ϱȩɳͩкŗpijqjphphqisktltlskskskskrjrksmsmtmrkslslrkqjtmvowpuptpsovrtppllhlinkrmsntpqmplokrnplplplokokokplompoqprpqoqopnompooonnmmmmnnppqqrrsstttsvuvxvxwxxzy|{}}}~ìþƿ~~|xzJJQ=9FA=H?9C<6@81;3+60)3-(//(00(34,7?5@^O[|mws~gZdESzD}Et;IyEUXXQXZZ`XHPVO[_XOX}=PIQWCCGNPIQ\HHIXSVyXfJl:Iu>oEB~;CEp0v}?KGDA@KLHGPWHPTR^^]VD^OQ99WcMEU\OX`^\JF|;}[TOBJVUSXSMOQH|A|AJQQBPJ|B|CyALSUN|CLO{CQ}DJGIRLKN|HxE}uBzSTY`VVfWXgYxJzK}Vx\}S^tKrErCsD~P|N~PRzLxKSVSVSxKwI}RwLiH=;F>:E=6A:4>81;3+60)5/)21*32*55.8J@Il^iy~rhpRGP<7>86=          !" #'%($"' %&,'.2036˵bՂڃyzۅùt͇ĶzźzvwzЃypʾ̃Ѐjrv{ysjwtjȻȶolǴu͹~hŮ{ӗtƲ|ĄؘȸkvqxҎ뒝iw:I#aZ@qñn^€Ӎ͌ñvZ}žw~quz~ˉʼ~ǵw͉°m]Ʒr`g]ır°nǸqƻxkѾdz{Ǎۡӛny}wnsǀ}gۅԅkX`_g؋fglvyu¾r|zʏ{{{rtgwob{1fk~Ä~{ǖͣq~[{>kfgfmWgywvyhiakrhfkjpu~yvwӂ܍zxߢˑƊٗ}oyw꒛m}[˝odsDrnnmrzz{xggyniy횼/J)Oj=pWks^Kfj^Tc`V]^ji煨ǀ}ßǜО˖ØƓȚkr}<;AB@EHCIDAFGBHGAH:87QYFr\pSOdI[mUcs]qs~zQhZflprʰwy}}Ƭɔnmi`yṗƺJYW  MZO@P83B'#/#Š՜ŽӰĮ̳Ҏ\zdc}gvsixh}u|u`7HR1fnLlEtJ{QZrHrD|M{HLOefoBT[}JLZNOOUWKv>~G{FQMr8~H}Gr<|IUTOMINcOMENHCYCPJDQTSWSTLSbg[O`fR]R]ĠyYSIT|EOSYXNV]KW\HMKNIPURKRUSXQSx9v9~SWMWO[YUYh_ZZTYWWOUPuPMY_v>yBs9?Iw5|DQ{}>LAVaQZ\\DPUXGt2wGCy6}z4|QWZVDGPTP_]Ug_TTYfU}>~IIMZVTY^GJ{ADULHFHJISSG~DIPNIH^Fn3pHzBq:yyB~H}H~K{H|IWP\UY_nVP~P~No?zRb}Z}PzPxNrGtFRV|NXXSm?}{MrEUyMSsGTzMpCqD|NxJsGh=xpDrFxLtGk>uvJ}QuG~OyJ|NRqCyKTZ[{MwJxMhVzI{NzNzNvJxN]X_jacd]Y]c#+dt^yvĵ̲ɤʵ̭ĩİɻүœ^fjymjslqiqirjsktlskskrjsktltltntnsmtnuntmslslslunxqvpuruqtpsoqmokmjkgmiplrmrnsornqmsotptpsoplokqmpnpppoonononpmpnomomonppppqqqqppssttttutwvuwuwwyy{|~}{ǿ¸ƼżǿüĽĴ|{zz~|}{y|~8:A=:F?<9@        !!" # -12.04006079)12(//*./;<@9:=,+.       95deTSZYWY^`S`iJ\dDyq¿pҋz؅{sjqrprfZihdqbGXͅyynnlvwplinzpmzdanpnhdzturw̄uҁ؂}{z݂yfB3W}xxv~tЊƻyՏ򣿳xmszˈunɆ{bt~upjceŊ}xqrjƳ}Ư{nƳ|uĄڐ̾w{ʍؐkS~ЊZg9@4nɖӒg{ñzҌ}ԊّȂ_ۈρ΂ߏ}¶gn|`jp_nӝˑڥʚ|nneXbՀ~ykǃƻa^[ԋ|lyf|pv~kv{{rmgyyvszg3hafȇ͈ьѐ}u͒vÏyjhUfVrroS_US=Ur`curhho_kgqrx߀k|{Cx嫤~vf}tlbXTvڞƙLf3Մ{zzwv|srhbr|`~OmyhZbVzdSojRcclv凙tΪԖϠ͕ƕÒˍDELGCJFCIECI;<9_kRt_YpDUkGSjKTjN[sTy|}jwsfxvZnaCY@RjH`z[x}qxѨ»Wub_fʿȒ|e^k^thĮPdZ  '+*WgbMbU(+(<,ʽ᷁oʔѵĮƕt|Rm\Sp]PwfwthpK->oLlGqJ\f|VyRzOtFQWS}N|Ol?PwE]^~IOSVOQ|GI~G{DKH|DZQ~GJWONPOMLMNXUr6{m4yZERNVNEZ`YPECNY^RT]TN\OgԁVS[SQvB]yBIGGSGOHRVRRYTVLTPSTURLSd]_bTM]cNPb`JTWRYNHIQyJRTamn7|{A|?s7|KGJNOHTMGGGPJHfj`WBPXIATSJLI\VUMHWYRFFF`jQXL^_^IMMLLWOXZSOGGQILOKMGDPx@OTLONIISNbMu?}wC|F~I~LX~LsB|P}KNxFzHN~LUXV]VfvyTbyO[wNvIxMR}OWX]TtGrDqEvJsGT[QtG~QYzNT)ff:y_ZyMuIc7muJsGR[}O}O|O~P}OVzMzMS[nC|fcwI~RyMxL~Sa}UzQXaqHmE_~WjA{`;,C`m^εʬɪģóʿά^ioqonrlrjsjsksksksksktlsksktluntnuououououotmtmunwpvowqwrvquqsookmimilholrmrnsornrnsouqsosoqmokplomnmnmonmlnmomompnrorqrrqqooppqqssssrssststvvxxzxz{||~txpíǽżǾƿƿü˾ǽ~~{{~ywsorSZX96AC@K=;F;7A93<4/91*70*7.)4-)02-53-7D>Ehaev{thrUKU:6>97?=:C      !"#!$$%')+-*/18AD/:<")(!#"%%)" !         _^BqKPSV]]hWl]UU>j[hׁՁytsqnehpqljY`kkpuReDlmyufhtunkjx~vrviz|xnq؂~݃kyׂ{y}ׁ~߄ӄoYz2L·jzſx~̆ʈNJswʾ~ƀ¶xʊ‰wrtyuӅ~c_yw}mc|Ƒiɸumguxϼ±yȷ~DŽՍ~wzˉɁqޒۅߠ˛sac5oeGfcĬ}Ǎ̅{׋܎ޒܖ΂~݁}х̃~҄pli^Rö{t̼Ԩա’q}polɀlsķ}jh{Rqшܖjpqmi~ˆ{s臾ugPmXiARoaegb}ȏǖƖŏb~Yjrnhmnjtwq^vu`LPskfpsumaumt]u}lZh͂⫨ʄfm煴kwX^jpgvpM}Jꅾzqz݆ℼvoyrvgo~x_gLꖰp~ro|nisZwn_olns醮vuŧԠ֛ͪƔʟ̢̊ǎinxB?FIEL<=<]jR~hOn4Oi9RjAOgC`yVd\ZvZPjUF]HFZH[q]XoQWpGWsDZwJc\˜LiNjiijƜ|okeYyp̾]tf      ! k׎Tnh('8R:῟Ŕ~޺߹̳¨ylx;`KzqioK.CtS}XkDyR{SvOsK]i;tAP~NT%ioAyJRyGcWyET\aOzDNWYOH}GYUW\R\WPRPIy=~CRUW~CS\S[VNIGLTSMRhJBWPDXGQTMUZ|FMN{Co=p?IQKzDGWWO\KUJK^XXTIFIITaIPf\[PcadpdVWaTZ]PRRXJM{yVR{>M]ZMBEFAHHICC@DBMJQa[^WTTDLQTbX?E~<@HEFMXII>M\`\U@ccSMq.qHQPIMHJYD|AOWGMMHJH|B}BMQSYIHKOVZQUNR|IvATSWvDwE^SP}KtD~Y]{M~RXRZWa___`{PyO[V[QatI{OxKyL`zMvJ[WxKj>ysG{OYe;wf>{uKvLtHl>yqEyL~PTxJ{MU}OQUVyLwJV`Rn@}rDa\^WZgXvOiB}rJXtMvPlE}kD0LYfYttŵˮòƨɫ­Ųϸƨenvmrrrlsksktlskrjsksktltltlumvnuntnuouououounvotmunwpvowpwrvrtprnokmilhojplqmsornsotpuqsornqmoknjnlllmlmlnmnmpnrorprpsqsrrrqqqqrrttuursrrtssttwwyxyz{~~zƪƼùĻû·ƾøĻx~}|ztaia=K@G94=98A=:E           )$$($$*&&'"$ !"    )+-*03#''         vnUOYe__^_aTHe˾Έ{swwyupjfka`b^XYhqqw\m&{w0t|~|roqomsnpsmfl`Z~z{vhr{rklۂlrӃڀ݀ׄwpOqg"KqtzžžȼĶߠp|Ֆr~ɿ{iezzvv܆d`|޸^h\]κqҋϿʹ~uǶ}ύņvȲ۞ЎxmlyыΕzcc\8zʴ}~ޒԃދ֌g׊IJsŮvYYIǼrӀkhuurgXʃnqƻʘu׆vt}΂moِ°xegvPZ[Zbmfɇ̅xUlwklhކ܊܋ءrIyYkzy؉sϘ՟ӛ͞bkpounequN]|oƔu܇q_ؑݛqc`ۄaZvxmfcprzrxٖؔ|Hdehwah~zbyفPbqe~~zpt{ts{ߏnQX{:y{wuix퇳q[hwpspvvx}{òϟΤқǑƠΡˡʁ~Ɨn{NTWJIMCBEJQBk]|CQn4XqCfX[uORlIKdALeC^wZbz^qsl]_HaN̏AcAi`ĶlefZȳǁ"0$    "$ϯQmg+ " GaHѓ߷˱¨ؓFeVqvfvSXb6yf:|S{KZRXP|HRKxCh4}L}EUL[Js>v?M~FUST[K[v=~CNZ\QRZPMRMQLLUEDu3{DUOWRWJDOESQP\ZGEy=GyFn>WWG}Ei\`WSQOL~BLLNHKN}ATTdefNWXV`WqiYUUQ^`UVUMVSFaXNJGP\kKOMLQSLRx8|=FGHACG|=^Y_XPO[oZUTURDYA;HNNTNRcPJWKIDQaKLPFBOOLSPKu<{|DEz@zA{@s;zJNxA^`XEHHMKSPNMJRyCxBXTZcZcXWYXtDbeQWhUyJl?ySZY`lsJkA~VwN|PVoAm@yLxJyLRwKwK[yMuIxK|NSxKT_Z;ooHUyLvHzMXQP~PWTTWZ~P{M}Op_RWWeaS]d]xQ~V|QzPyShEw`P7XSWO|ǶʫƳʰǺѩjv~uvqluosltltltlsksktlumumvnumvmwpuotnuounvowpunvovowpwpxrwsuqtpqmnjninjplrososotptptprnplplplpknmmlnmmlnmqprqrprprprpsqssssrrqqssttttttuttvuwuwvxyzz{ƿº¼Ĵýùùȼ}~~w~zQLNA9CB=K?;H<9D:4>6/93+72'52(62)54,76.8F;F>;E         ""#%"""%#"'##'"$                    prUx~[Ôk]c\X~9j_U~ف~w{rzsfeembW]a\Zblurx:nj"ƿvӇ~zq~}pwocfloo\e}|{c{̀osІ݌ލ΂jq{ԃۇՆrssRzt6u>h}|ǽ˾tϒ…ɒĺjvzŸЎҋv~ʌƋmmUJMbrf{XɱfLjٛȹ|yʏ͋ɺ~̺ͻɎʽoûtvmvωŃjvutvqeE\ѻѻ|ʀ܊߈цZbпewMɮlۍônN]plgɿwdhwzvۈnts`k{cqziƴvȇvbbǕlkkxqkϒ}^}bf^ipift|v•h|g tsuӂyІxȍ•]f}rut`giΌՐՒ汹mmo֗ƏќaYXmzigsh]eghs枨ɁdiTeepgi߅sbgph惷vdžc\,Iiᜢuxt{sjvoz}Xy6'LW܂z{`gvsh؄݈l}phij̜ͦל̙şʛǣР˝v_~Ék|~^ni:?9LLIAC=iwYnTOn4Sm8Rf9ZpFQk>SmB\uLj_}|soodŴGjGjbxr{h_gR]KӐ}e}j   &04e۟իToj/Wo_ۍݰĪïװҀh{r}o\W8}jWVzNTkwNqGrEyHhNp>~JXNMxAr=WHLPT~GJQKEJMQVIVNx?P[NbyHnDb\OOILJA|=yNIZ\Y{?zKJFV[ObRu=}j3sELGRO~Gv?~KYSQFLNHM~FxB~OWOZzDKRTXbZN{KuGzINNP_aVOSXbasH{P}T{StJf:xTTvI|NzLj<{h:wsDzLXWyMWUyLzLVyJvHTuPiL}]?tnGvIVW]R{MwKXY]X\W]vI]c|Q{OSX^}Q[pj|T{RSvPkNyqW}N9W\\Yʪw~ǽ¿íıȴ̦as|wvxpskskrjtktlskrjtlwoumumumvnvnvououovpvpwqvowpwpwpwqzrwrvruqsornokokrntqvsuqtptpsoqmplplplplnlonononononrqrqsqtrtrusttttssqqqqssttttuttvtvtvuvxxvwzźƽƾƾǿĻüŻ}z{~z{y<4>E=J?:H<9E:6@:4>5-83)52&51(6/(54-893;VKUxjw~|sk^jJ>I<4?>7B=:C>:C            " '$%((*')*"##                   "$%-z[bKTR{r5ʼɿzyttyzznjhbbc_]\`W_c]v{mSMA    %/1Yu|xٟ؞իE`X%  _uf̐׳ū׹z``ypXoPjKsUD*bQ7q|\{UoEwL{PuJyKyL\vJzKPtCtBq?NQV[ML{E~JQzCNQKMZW~DISUMQMgRJVUVq>p9o5|OTGHSEWZXTG`MVWWUH~ADOPROVfJGKDHu;k4wLyCzCSu=NHEF@POE?QR^TZ\PTYYL^gYHRWS[YEWM^[^NJKQ`WLH]Xb\UUOIRPKRP~>MMg]IBNPQXLaXSYUOQM\OU__JSPKQE@~QOINN`ZIH[PHRQOYLR}Eq;|s:{KNTPSG|DMUT_LELLx@}zCzDVOJ|F}FK_]Z_TV|JQSwDMUM\{K~MuEV]atH~vKd`xLrCqBwG|NR|NwIwIzLpA{MaTyLV_RoBl@|l@}vKmBzn_bBu~R[jR|NtJyMYTQY^WSW}PZs}TU[W^buPuOwOwNfGzmU{[Jb886x}oyŴɷ˯ëĮŮų˸ѻĤ_o|ny{rhtlumumumskrjtlumtlumxpvnvnvpwqwqvpwqwqyryrwpxqxqxqyrwswsuqsoqmrntourvsvstqsosornplokplokmlonpopoqprqqpsrsqusvttrusttuussssttttuuttuvtvsutuwxxxĵļȿĵݏȾĻƻ~xtprRRV=8CA>K<9G97B84>71;3,71'41&41)51*64.7A8A>7A<9B>:C            ,%'0-/'&) !  !%"$&"$'""*&$*&'    #             kmQ`SL}s,iʆyttuzr~vusYX^_`V[T[eYZks`#:~̀zuqvthjnwmnxwdmwkk|ǃ֒ҏxnku{mbup|wtnl~jisRoIou/QVkƿzuӜÏ|ru~u~ޘ؎rlvύӅӀׅfnwanafʷɷƴ|ͻǵųɻͽñstŸ~l|悰nrշĐյġ{дտѾ}ñqtĉyҡӞҚӎل¾sfoyԸˬwMUښѽfhxƍŃtކbpȿudho˅u´Ӑrar{mmµlIJxR°{͚{pȻxȼzqČۗԉޜ{Q~{{yvрxcz~ݒ󡷻p׀x}օӊzxszƟddvnwvkzuTȅo޲zż̙˝٫ŕԥץҙm˄[pTۃ{gx}␷biipin`dosovma~wȢʯ˳cr)O)]}Drooor|އЉ}S],jDhEٍ젯Вȑw⧹ިnftw|krzƚҥӡϠ͔ƢϞ˖™Œȷr>aRlѠITJFG@:<3GW:lRJi,Rp4Rq1Wv4^{XKwltkjNcAۗ[zaqr     9FK̞؝נٔƏj)&xȍس«²ӗ~pgsTbuSdGR7psUzVyQ[TwKlBj@yNzLzK`bTxGTQXOYu@}HKMWMs:~v=w>OTu?M}D}CRT\Es:~WP|AQDTI}@~BLK@~@OSBCHBJWPZWKDz=HGOQv@tAJGLO}C}BzHIBLPFQSQ_[\]MLICN[NINPVQPBMO^Q@P`YKQNOSVKP]dWMRJWHEDISPWy9xHHN_OD}@}GSs8tx>zE~CIk5vM|?QSKLHIQXPM}B]FJG}E^Is<}v>w>}~Gw?}HKZe[Qo9vZP~K|JQRSN}KTyIyLhVXatIwJ|MwEwDxI~QQzLxJtFyKwImA~X|PWwK{M{Ng;sg:spD{e:pgDygSe=smA}mD|Qk?tf;mrG~WuCvE}OXR[b[V|YyL|P\YyQvPuP_yRtV^Kk,),|ưƱɵӯĩdmyh|xzvnumulvnumtltltltlumvnwoxpwounwqxrwqyszt{tyryrzszszsyrxswsvruqrnrnuqvrurvsurtpsosoqmqmplojpnmlonqpqpqprqrqtssrrqvtvtvvuuuuuuttvvvvttvwsurttvxzxxƳûøøŻøø¸ŵ}v|u|~|||klktp;9BA5/3-('"!&""%!!#&"")&&&$$                     >59]kvtpmlpjkgpocj`RMT[_]cYMgov7-ȁπ{okuofmypgoq`lzЀyttӏۏyvwdžĂby}wo|uwvsh`~q\{tkTmk.eo~}z{ɽĻsvtpvЗՑσ]pˇsugmyyŴŴIJdz~vxȸďܛzVvjpqɨ~ɧƧ{׽~~€neÃuӟՕЌpouorδ}iQZYftrw։~opWki}|ɸ̵оye|xuUnlYɷĊƶxƸzzŐώx[؃~|}ނqqn}Ȁ̀܄|x҈׫̥×sdlorqUro_^j•`cnr[uϙґrP~рo|wㅷtistpsj_ps|y~}fcWpzywvHudkxJhIl}~싽ي|h`nJL|0{^}hVBp;ϙˑtoi <Z_}ͨЩԤӥԖĔȟɚĘĞǦƫ¾Zn:cD‹w\xfAL@JLD5>.[sHXv;Om0Ut5Rt0Xz7`AaFfSk_cYjfc\\yNStGNt9ZBbKwondhQfJ͠px4A4        yӝ՝לןوדh{s^{[8enڰ{Y{T[L.iX9txS[nDyO[anDtJ}QtD}KPTX_Pr?No:QSKYZWNMHLJoXWRGKHv<o7xDFOv;U}BKJU|?z=N|?FVIJ?y8}RKMDIGz;Dw;|?L~EMNJKW{C|BD~BGLwBxFUvBzERU\\Q[Rebf]SXgWXc]Zc[Wa\RDR\:OY`VaLR_ACA}@TgUX^]QPSYdW\YSQKSN|=FS_`a\OKKTTQVND{7zJaVJXIGQHC|6w={MJHLJ~>|VVLSJPc\EVOGu<~ONLKP~BJJzBNOw?~|EODLL}E|FyCKPS_XP}I{GyFQ^RxFzHSQyHNwGyH~M|Km             ! &!",'%2,(70+-(#($ 1-)3.+.)'+&$(%"0/,.-*                            PAĿfb^emlhplhpehUPneP[a[Z\YRQjknMyw!u{~oml`sunwqldgm¿qp}ۈp~̀ɂ~ƒ{ÉɊyyy̅֋}w{yjԉ|q_npqE~Bj~~ȿɘzsף٠БzeW\qdhrvȶ{ó²Ƕɷ̾ƶĴ̾ʑgzjhlm£xâwб׿~Ʊlѽ{ŀλuŲoȸuڝСҠ̖wp}ǩ|qůuʲwŪnlȳxoqsȾyhmrZƽqĸ佲vxpxlhĻfXmŒďkgϽŷz}yʽnrՅۀ|}؃piӀֈц}yҁwׁYyywʜĜnymsLgkVf]]\zqQ_peW_^slwƛԪӞûwksqzjfn|hdc]okakpurifqlkqxil|khr6`RtWy\hyhd}ZtUr[tdvlig`_fdhjdi& !4"į٦ӝ˞˓ʉǢĨãǟvAdwWka>F;GLALZAu`Nj1Tr5Ts1Tv2X{7[z;Yv;]yEdP`|IYy?eKnpKo6Oy2]>dIn[vo|p`eL`@hŸr|ynvn  %(/̗ΛԝןژәՎTqxNpY~کÀylH[W1qJ*`yVxS{TVT_}Rg?~}RYPyFPwFQYxFNzEb-szE}FLZNKO~FKPOo:{JzAzByA~EP[VLOT\QKJP_KJ}@o3uCVI~AOv5yGINXI~ADLs:~[JFGJWLOn6~PYF~AIzAN~GJIs=|Ir`MJFa]OYPU]bb_XdgmMMI\JU`D?ZS\_G@XcZXSP]YRUXU^h\MXYXVcH?RBIik`aPCPVQLXHWPt2tKQOQJQVQEAIMA~EPWRKWT[QMMYhP]]VMF~BIIJy>|P\~Et>|wA~FIx?~TNKSPWbSH\jkMvBS^XRyGS|J~LXY[mi_PaSpE}SaxOmBztG|OuGyKl?}tFrC|NwHzNtHT[YvJuISRpC|]{Wg@q^3i|PkF|nLpG|uySxM{MbR}PyL}OTuHwJ}S}TZV[]`~U[_^zTuLsJ\?l3/;Ψ¼ñľůȬ°ƴ˽֭£U[iXexcypzunvmujukvnwowowowoumumvnwowowoxqyszt{uztztxryryrysxrxrwsvrxtwstpsosouqurvsvstqsprnqmqmsotpqpqpqptsqprqsrsrrqtsutwuvtxwwwvvuuuuttuutusutvtvrt±ø¸Ÿƺ}x{vxxop{{pmeneA>E<9F=;H?:H=7B71;5/90*4-'1/(32(44*5<2mA7f<3_<%D+q{¨y¬ŒĝƢϘĄϣ˖ƝŖ3\Hcu̙KXQDG>=B5]nPo[Qm5Wu5Ww3Tx1Qu-Uu1Yw:[y?`D^~;jBpKy\Tz9Fr%M~*T4eJtb{txwo[iLeK`Gmɪmo~"5!"#    HQZ֘͝ӝם؛ז\zG^U~֩fC]O/fmNnJ|U\XTWpFzQRW~OXUXXUTSU{Fr;xAtzlB~yMZX|N{M|PT}QyMzNYxLmA{zNvHrHzPsHpB}|O}R[dqIsHwJyJ{OsJ|Z3`f\pB~UxM|PuKj}WUtH|R~VvNvOZayQtJW8!?yzuԾʾŽǿſɽϸɣĨȷμŢéãPS`LUlZqcy{wuptltjuiukwowowowovnumwowowoxpwoxrys{uztztxrxryrxrxrwqwrvrvrvrtprnrnsourvsspspsptpsotpsosotrsrsrsrsrsrtssrtswvwvxvxvwwuuuuuuuuttuuwvuuuvvxvwȶúƾƻ¸ŷzqzptokhbbuvjyjJNM:9C>=8@?9C=9C:7@85<     ))+$$&%!#0,+>83>30/$#+$".+'-,'&$!#! ('%&$#              ' NfbirrrnffngmijlPCN_bbNSedYRkqnem.K@ɺz}pmmqZe{trr{ւwwuw̍tvˈcutՅ|~{ŷvK,8 ||avrnxqn}GOZn{|Ēz|~}ؓ׎~Ʉ|O^k|uH˻zwrz{Ŵ˾|u‘}wyjtЀ|tiyǬл˷yʵzƵt}ގŶ`ɺedĻnxęgu׿ƪoor]įrykilrbb̊؅~ցێ҅oOڕëlɱyӠԢ˟Īǽq_}dkt†]muňľqQU6tƇbxu~k~l|ڄxnt݋s}yсy܍{ڇӆӏڔ֋˂ёyt̃zcghvv[{gwlj`qp_p|Q}t@kmעssq}^Ob룮b\x፴jxridRUNPYh焂vq#<5~w{yn^ZMTOJ|NEtK9hAFsNOzZ?jJ1_78h?/]:2owyqy™Țäңϑˢ͟ʘ-QMLn`Λ?JBEI@4;,evYd}OUr5Xx4Zz5Uw0Ot'Rv,Sv2Vx4f?i>`7Uz-Nv)Et#Cv#K{&U/[9eOvq|ynZjKdBbK²–CZC $&     ZiwГȞԜԦ݂Oosږși !iuʾ٪uYqKQ2fsVvS}T^yOzOuHmB~UT~OWQNWe`S~KTm4xm5zn6zJKLHI{BGQREORS|AWGzy?z=JHMh5~cVQ|Eo7UV^V`XFZVU\PN\XNSLPTTdOQRLUUQAGdZQKUG?G}?~NWbd}@~@QAJLDMQZVUVNOJIQSQ]`CG`YKQZJs0qCUHLTF=|={OXTQOMARNLWBYTJVPTTX_VOLRUXCN`USs:zKTWXGz@Ln8vu=}yBNNJ{C|DHLQUMQNzGLRRSPez`Wt[a]tI|OtG|oDyyPwNnD\X}OyKwI~Q~RzNtIzNvItG{NU}QWm?|uGxLrEvHsG~SUwIm>zyLxKRRkAvu[~R^UUzOySwQVoCg<{Z~WtM}VzSW^T4]PNQƲʿĽſƸȰ°¸ʱĨɵͫƫĥY\e7?W[pZq|iqnrishujukumwowoumumtlumumumwoxpxpyqzsztysztysxrysxrwqvqwsxtyutpsornrntpsqsproqntpupuqvruqwttttstststsutsrtsxwwvwvyxxwvvvvuuttssuuwvwvwvz{~¹˵ĿúŻžĻŻĺtjd_|\jn]ga::?<:E=;H=;H:7C94?5/;0,7/*50)13*34,6:2:PCNseo{wsfrPGP<6=?8@>8B>9B>8B:7@84;         -(#@7//'#)!/*'($#!            ' Rlopsvun_`mo|jjnQTX[`ZR\hsbU]^`QGA \uogjkosmirn}{|ÌČɓЙpwny~vwytӌщ̃ӈvx`^u^ngpsuzxf[lvsŹ~ӇÂfuzaxuTzXkkz~|nsqxrȶtY؀kmn}ѽƎŰzƒ°mf˼gmȾglp_Xq{Ѷ}h_Žbc|o÷tqľw¸tɃӆԅтzɇvڏ~dzoѻ{ƱwԠިÕ׺qsui`^\Tĺ\óp|vokc|}ӓvr~zlځikge_e|΁vՍýr~Հ܊ý}Ǎ֒pWvzxtX{bl_|pVSm_^`Zû}}Ug͕͞Ljj{}ocSVf¿j^塹шberuaVXONV`yp8`JGeVozsSeQ}eU}nYwOyk3`ECrNR~^LvXDrNGyT7aF*<-Ɵƺ®ţǪϜŧ֘ŜƤ͡˜ř—Flw#>>М¿m~3=3?E9?H4ud^wH]z=\|7_9Y{1Ux+Ru)Os)_6f:Z2Qz+Nx(V/N~+Fy(YKTLCzv:}u:|y>ENPT}C~DLOv?}FGLJPQFWVo5INxAMLe0yWl^T\COLKXLOLU^]HU\SbAYUP_[NNGIKTMKMMOJWbhVaeI|?ENegU=LVWYVOMDViPR[URQQLV[UKVIKRQPUUPSVUUHHKQHIUQMDHXPNOY]aPKORJ_YHQOFl5vr;|S]WX|DI|BFOUQaSPjVKTyGT~KPVU`RaXTUrZTZtJzMrFi@ytLzQV[zM~P}O~Q~R|PyMSvIrD}sFqD~vKuJzNpD~qD}WVrErFpDxKlswLyLvIuHyNsGSuIZuJW{TW]xO~VZjC~zS[_W|W+1­Dzɼżȯľò¦Ź̯ÿǴɼȨƮƯǤbei68MbtOgz^qswsisititkumumumumsktltltlumwoyqxpxoxqwqxrxrxrxrxrysxrxrysyuzvwssornqmqmsprorororospuququqvrusttutututtststsutvuwuwuvuwwwwwwvvttvuyxyxyyzxĻǹŰ{jb^qWo|rQRV96AA>J=@8B?9D=8B=6A:4>729  %!         gb3yuqu{sibicgkj`YXhjUSTM[]j]SVcjZ}Vtpprgzxcfkqt{~ΐ|{ˆ{yǃˉwli͑˔ɑȇ}qzσʃԈcnvsqv{܃{[zvKͿɾž͈χٞyrzTmrUzxsĸrtǹvhpmnywpvmTу؉cvuumoônhߊzclSfppisxкcluSdŁǃ݉Ё{yk}k]ͺ{μv\ӿ|̹~˚ѝЖ֡Ʃq~}g߀օb¾mytcpVrٌvsupwruYdoqe`gryoho}}}}ԋ͔Ȍzbnzx{Rw݁oɂ[\P@gfHT\abnj`hk̤~Quၨ^ecE[ǽ{ekn}qekyk`QNRZc{c6Z=~Đz~Mrx?gbn^[8aV3a@GwPIxT@nKFwQOa-R?MbQƶêʳʡäȒ®ܟ̡̤̞ͦŕzQt">EÙĔGVRTqBn@YQzISLw@NLJMGx@HRw?~FJPLHLQ~CXp6xC{>SLIFy<}s5vs5xGHECGFz>Mt7zt3wx8{v9zr6vp5wy>~CFMHGPGONLJO\Ow?zAJMKISy@e3xn>ZEQPAT\R[NIVa^UPRYb]`W@DQYaVKOY[X@WHHJTITY}v_eWC>Q^RSGYb^f^EJGRV\TJONNKBDKXSIDOVUHM\SXKYUPIOmGHMREFLp3t\VR^YmWMTLSWM~CLFEMMPQOw>K[gMScST`onvKLzHR~L[LyFO~LTp>yVXuG~R~QvIxM[YzQpHiA}WRzL~P~Q\|PtHyMyMvJtHm@yyLxKtHvJyMoE}vL~RyMnC}yMzNvIl?u]4cjAuzNsH[b~RVT\_XkE}~VazQppJwOZwNXYW9aKILȵ±˴ļ˹˴íºǹǽаxµɷүʰɯǧill()8`oPfVluqtntksitltlsktlsktlumtlumwowoyqvnxpyqwqysxrwqwqwqxrysysztytzvxtsoplokplrnroqnqnrospsptpuququrtrtsutsrtsutrqsrsrtrustsvvwwvvvvwwxxyxyx{z{ɼȻǸ÷ƽĺz}zhx_htchjj95>@L=;H75C31=2.71+6.)5+(2-)0/*270:LCMlajy~}zuhuSJT:5:D;5>94<718        &$'!"   &$!$  #&!+&      `܎Ԋ||omjlxlbzfR]ohU^dVT`][R\jdn(:rl^ljonzpvp|xq}đɎʊ|euu‡ѕњʘtqsֈҊю򯭿vTyotsv}I[~xėʟŠĻt„ь͒xwnoӌFAȻ|yzǍˋy‰sxfw¿uezƴpƸu˂_aW»b󔾻h\jن׏fͻrijlҽ]dffŹlI^lt]h[_linee|`hΞݬǐʖԵĦij{frw\o~Xq|]sqobm؀{~tunoՀo򚭧fjԆuph܉ބsqyߊņ̈|_ڃqw}nbnqSobW}^_ՂPQQbqcutƕٞoepeNˉɗ͚ˏ`dlukagsgf]X`otʄvs*H-6ƵŔNus;)9_R[T}t#R50b8FxK=pF6j?BvKI{X&G2L`NűƵȷ̿ľ†՞ˠʟɥ̨ϕz_~9V`ƞ¦ȡĞNjGyAzBH~CMMTx<}}Dt;||@KMHx;~~Ax;}HBDv:{LIEC|>K~A|FIOHs9}v=}BILw;Oy?y;ROf/wzCUMKIRRi1zp>`MO_XTRZ}?OLNNU_]KKMc[PLZMC`[KRPHU\QC@JKFJZD``MWTnjSHONXXU^aQKJ~;HOaZV\S[DIO{<R]TJFZXEKQN[_kcVTKN?~KIPPK}A~J^`[UokVIQLSORNQLMRGGMy>~o6vMbyeUQqeƘn[VaVX^VXgOPa^WQZW{OzNd^}VvU\pGuK|O~PTzL}O{MvIsFrF|PuIrF}Pn@|vI|Nj>y\y}WWvLzNvJoB}rFrHsHW~RZ{OVWqE~xNvNqJrK{R\yP\_|U{TvOuM_3";wxóʼȰǿʳĨü̸Ȼ˻ːͶֳĿưʮǭƧquq"GVnTiMbqhsrtmskunsksksktlumvnumvnwoxpxpwoxpyrxrxrysxrxrysysxrysztztyuxtuqplnjqmqmqnqnqnpmqornsotpsotpsoqpsrtststsrqrqqprqtrvtvwvvwwwwxxzzxwxx|ŴÿǸôþſſȿîoigtarxrHEM=7C@>H>$ůʓQyvE,@<A"G$R!)b-;q@5n>0h79o>=mD8 E\IιͺǿLjԕğˢΣ̙ÊMjp]{|sȢȠŤȥǠ©ɧɷ5>6?@8?E8pgZrN]xE_|?a~AMNs5xy>|CD{?x;EMu9Ei1yv@WVSMVFS_l0zTbUWXZ`[]}=B\HCO]Xz:GKTQKPmG[WVXMWLAX[AXWDFHILFELMRg^]cPBNLT]]OHA|:]_Y^ZRTPXRTXMUZQ?RNKJUVR[]\LKD}=zBHL]PC}AFNOYXY]UJKRXUViV}DPxAwDjQY{?JKTQIMS¿œn`RyGZUUeXM{EzFyEXTRP[RRxMxt疈Y;h[Y}P|NQyK|N~PxKzNrFXoD~\{OwKh~RyQhoI}xLsGrF\UVuIvJX~RxL}QX}QTvKqHuNwOk>zWV[Y|UuNySZhGu82=͸ʹӹǼί¼̹˸ϝʴʹʠȰʮǨ¦ink0?SThK`r^mqtnktmumtltltlumumumumvnwoxpwowowoxpxqxrxrxrysztysztysztztytvruqrnokplplqnpnqnpmpmpmrnsosornrnrosrtssrsrsrsrrqrqsrvtwwvvwwwwwwxxxxyxźó½Ÿ·µ´Ļzvet_lvkZ\^63=@=I;:F;9F96D62>1.9/*6/'4.'4/)33,4:4;NDLqeox~xzhuXLV>8@=8??9AB9D@7B=6>;5<7294.6" ""&#&     &#(%&#!$)% *& (%"         " ]SV̅Ջڈ؀ވjWƼȏ{Дƅ׎ϊ}x{xɉ͍z׆{eg|]y~x}ʓƽjuwRϏȅŊqk{ÿxYQXhmgpƏŋj`~򜼰a^ىƇ\glaZ荶hgyâzѱȧyǫw۔ŽyɄnDžmrrhw{nsu߅^q܍ِňw~݅Ճ|xzzm|ق}VνY̻~ݕcaò|~ÿ}rt}~lwՆ҃ԀHg~sylefXрsUVcXWT^es{\ۃavxzovaNScĄަzukqnylwxgU`x`YJL~B,R((A&гĚäj 6"M#>;D#M([.h'7q62l30h-7m6.]1(|˵ǯĭŰǿʀǙǖƢϔ“Õ”y&9>̘ɤȧɩʬˬˠëy3<2AD::D7g{gc|]Tq;Yw;Zz:Qs/Lm)Uz3V|5Gm(Hp$Kr$Kr%S{3Mt2aGhObGkRhNfKfJ]@cCjQm`ǿ1?5        KWiwsԂΣ䔮H^\;VJԇX@m`?|nJZUqFdDRGn2vGIJ|?OFG{>y=q7{v=o3vx<~Jh0qx?~Eq8|v=Jz?u=o;h]CFSJPV@H`R[XGSVMNMOVNKA?NbnaNOJ_TINQVTDCLu4vNSIC]MAIDu9sy9@@:D?9D=6@;4<92:6185/7 # #*')+(*)'*     !"%""")$ '"              m]3pygoɂkpq\Pbmo_N[ZZfffj\H__iw0ZV`imklqlqq|xĂւ{xK^ȉƄDŽ~~ȁӌƀrχԈӄ̀~߂]pwkz~rPc}ف⊐VvnGĴǻ¶ȼđʓ‹~DžՑz_uux{dž͉uwÿw¾p{Ĉhu|z{ugxɆtw}̐ʼ{u˃}Pǭhӽvͷ{uy®{Žw]L{ܡӘgs|_fk{ۂvtĴm}Ϊkĥvϴ~ndzzzrro¾nʽ~uu߄mdi܉ꍺlXbVYpvlǁ~͆vujdqsd`kaj΅^\esuՇ{ԉܕ~kaqeyXa\]lȾ~bgstaWTlMnW|<UKpe}kjwuqXFVUdƈuptdgoxۊ}~{zqͅhMIt1N}9Dq5)L$$ )ٷȘȒ.[G!O":c<-P.?#J(V-_0h4n(6n)3k'4j-DD\CιҺūǷɘyȏƜΚ̇Oet#2? !+#ڡǂʥɪ̪ʥšƧn19.?B6;C4^r\c}_Pl;Ut9WzK]Ww>Qz>{?KDINPDLUv:zC~BDC}Am2tDGEu7zr4ws9zt<~}Ev>~u<||Ax?ETOGJOq;K]OGIIWQ]HERTYOUTJGEBIHSLOQHKhXOYNJKYC{6yTW_QLKKOTORXK>EIEG]STU`XTaMLA?NOTM@HDUVZZUTOWQedRYOKQCN__MKYJHJLJBMOEGRRQMDWPbfN^FRULS[Qv;{JPr<~{Dx<~x?~H}DLOWxB~|Ij[hUYVQ~M|Pm@|PLQN\^YZSTPSj{TyPXlEysvlN/]{NqDuGtEyJnA}vI|PyLvItIwLuHSYzP`^UuIYuH~RXUYWTpC~l@|}Q{OzNwKzNY[[gY\^wOvO|UzUf>.Iftb̽ǿǴŷɮºůĶ˹دƮDZʯɬƧ¿kki%(0@RdPhRcrbhg}ngtlunvnumvnvnwovnvnvnumvnwowoxpxqwqwqysxrysyszt|v|vztxrxtwstpqmplokokplolqnroqnpmolplrnqmqorqtstsutututvuwvwvwvuvuwvwxyyyzz̾źùöſĽĺŻǸïruf|krv{84ya]tJpIrIyLqCYUzJ}K|H_ZHON}Eu<|x?JEQUYLVEGSGFy>E|?BKPNLz<}SG[UCKl4sv>~~Am0rz=TPs9zIHs;|~Dx;S~C}BHx?{Ds>[*lP[KRP}ARRv7xH~AJPQXgrJ?|7zZMFRC~zsDu@v@Sik]s?}|JUS`o\WY|SyȤ`KnvMRzKQO~OStFj=spCztF~nBvoG{jAwzOyOuJvLwQ[TVWWVyMxK|PtHwKwK~R~R~R|PzN^aY|RWZ{RZzRtNqMyW+ 5|wĘĹǿ̷ɳŲ¶Ʒǵƞķ͹״ƽԯƱ˫ĤɮƘcda*%*4>MYmRe}Uakmierjtktmunvnwowovnumvnxpumvnxpxpxqysxrwqxrysysysys{uztxsyuwstprnplokplplolpmqnqnqnpmplqmqmrpsrsrvuwvxwxwwvwvwvwvwvvwwxzz}}}|ʼþöƽǾʿ¹ĸµôǸɼƳwsldzct~WX`52;@>G>=8??9C@:D>8@>7>;4<5/72-41-3  %!$("&&"&"!# &%#"!%!""               \Q2ĿׅweRUsuihqjSKcdipl`Zsuiih_jigMnh`fhpomltɀutlLGU\cqnYϓ˒ȇɇ̋ʉŇwm{Gfzŀtvvxzzksm_{kawՋ݆id18{Uæ˽ȿÑ{aŸƼňȽɽ؋ۍo´q}مyvjVοƹƺprmj̾ȹŴ{tב˻{wmûq엫Zwh2bcDž~doѿ}Ǵuqɹ{f߂𚼱{hjqtsgވmW҄eaҿƮ~xnhiïn~~x|oppsYrx؀pпt|͸|q~{syz¿p҅˂·¹{Ǔӎwvukm~mȯԿ]bm[ϛv|Z˖ƈnghrLJؗףp}W^nRְ̫ikn݌th_ڔvgyvx:P7}>VFXwaۗn[ggp}q`^e׎jxdin[wߏxvՄڐ⚻тև렇hTo[]}t$=+/*D2yGa_BXK=MD->82(*Fd4Fm/Bo1L;A}/?w+B}6Dx? (  ԿƷ͸Ң˻ĵ|é_v'7  '"ſ˛æ˧zdvěJZW@A:CC;Q[Ni|i^tXPmBLm5Lo0Ko.Jm,X~:Lp0Gl.Iv,Gt%Kv(Nx,W5`AqZwchLfGcDa@lQtcíʏsv`|_˳G^O          !02:@DLYbhwhv|䛿Έϝ՛ՖБȘ˹䖳ʙϛӓǎ÷dhIlZcHzT3pyX{V~UrHnDwUpbpEd;|wLtHh;{uHxKUMvBNJLVSZOIJLRKHKHP|?JVzBy>}@|?Hz<}BFILKJNPH`H~DBIv:z~Bv;}m5xq8{}Du=~zAGI~Cw>x@l9yf;um;{d.rFNNV\WCVFLLRRSRHUSNQZZYSTQg]SX`XUd`Zc`ZAK]GGJKR[JJEVNBOD~?|?}HEPLP@TWSDLE|Xp|I\`\ZYkA}tHyGOs?}|J]eNUUQZd\Tb}RUUySrP|^iL|~XV\cTRURzMh;stH~kGo^hw|}oy^Q[A7@<7=>9@?:B?:A=6>;4<92:7083.53.4"")#')#'!"%#$     # "              3' zوspn\UԈrd\kqldYlrnncS\^OO^jlknSieHohopqpwmcpjVCegabm\PoÄ̍ʊut`rU{Wosqsxnmnabl_h]rƿ}ˉד֐ɀfvJUX!œơ˾ëȢĒ~pwǑȆԊȽuۊօp҄÷mŹtuv|_}ěʽǻruDzyDžʃmŅȹzΊlʹtς\؅ڌ]hh\ƫmbκw{~ŀj}oniġsݚ¯płɻvb刵`sЂϊowmؘXıpmķxmibzjsilY{rv„q{]qww|˃͕ԚÂu}qtv{prW\ox̶rXqƨbcuƿtƀЈȃΗwWidv>Txnpnj`_Ғi{m?RK[񩏇B֏Ӓ\痵llqcVj{Љ~يde]ajecghhۏs܈߆ދۘͅӊ쪫ɞPp_2J3$1#     !.&  +D&Hr@dWqjHvH7N9ֻ˷ʺˤɾʽƽľYn     l|¦ɡŦʡȦ̬͘|{˜?KGFD;EH;P_LYoWf~aTrICf1Ik0Ij-Ei*o^Im;Fj/P{1Lw'Pz*V}2]?iSlYmZdHoSkQdJsf̿[|Yztps         ipsx̲۰޳߳ަՖǗɞҚϖ̏ƚζۙΜҙ͍ƭȶ@`GmLhGjHfb>oJb<|rO~[yQjAhApGqGV~QxJ~N\J[X|BEI|DYT~CHJFLOJRBq3ww<LF}@MABHMMIB{=}MBD_^IGNEz<~v9|u:c*n{CP}ERJEj7ytҼdHrkCΌTFBIEMR?]J{?QRUM\]T]WYV\LPaq]OKRXOXYWQYJU_YWTGt;pv?sDNIGN_SLUT[MND}:HSLYaXL:~>@@u6yNBQNSSTRAKQMQMKu=|EQQ\NHJSIDJPVYJWYRX]ZUWSGGN\RPvB{mnjAsl@ve:ptHxJa^XRSYtGsFvISS[Sn@zqC|vKrGwLuLtKwN^]__jfsR]DeįϽĵĽ˸ɰôƳſϓ̼й׫ѬƫĬŬŬưǘMMK$"&=KdUkOc}Walvjktnvmvnwowoxpwovnwowowoxpvnxoyrwqwqvpwqwqxrxrysxrxryswrurvruqrnokplqmsosospsppmpmqnpmpmrpqprqrqtsutwvxwvuyxxyvwwxwxwxyy}}{¼ĸöŸĵ;|s}rt|0-6B>G>;E=:F85A73=3.8-*6,)2-(0/(34,7>4>YKU}kwxqaoNAK=5><7??:A>9A=7@;4=92:7/86/73.53-5   !!"    .-)*)%# 1.))%           d[/}zuol_UԂրwim~wo\ixpl`[]dZ@Zglkkv9{tqsv}Ł}kpzmfYKiVVYgS?}ב֋Մ}qqoYemo_juqkqejw˂΅хqzVgo;fäջʇ́рzƹtȿy|ߌźp·otzz~ҖĐyi{ϵƄyρͻvj˻{ɵwzvt◵r~d|y̵uͺs˸sͼve|}yjZekōȯviyvjaoψ۔φޕΏiZ}ZȷvƼvVǼŽzsuxiunƺdRҾv̴vîyƿw|gmQursՂ֓Ҝ˛~Ԁr^Zv{fĪ|ؠ՟աʕԼ˵ʳζȲ|ƍ҄цykevρsrړur]uzQ^\QŁQrGdUA`RԆqea؃khhZ]Xbjakmxو̄ffqܕ姾ˈُ蝴ς☸Ԛkf           5nlBeBtxèͼͺШɟˁ"3     ޢʝĥʫϪЫЭШɑӠ>KDAD8,4%PcM[tWWpPTsHJm;Np9XwAEf2qhHi=Fi/V7S|-Rz+T|4lZzpqcfRfLq[kVm_}~ξƸ^ilpW~S      u~uw~×Ȕƚ̞ϚʡҟӝМЖɬܫ۞њΠҠͬ^{k|uvPeCqNjFc?[kFxTg{UlDf@~uLi>~}Ra[UdLVKE~D{BzAPMFOGCFGF}@KC|@GCNGGz<}CKF~B{?|@CB~?F]Ip5yNOC|@Fv<~r;|~F{C}Dn9y\,ih;x|x[SnSYKu9]G|8y8z>SSLMRTbbVLZ\WQSXS`UUY~xFx8wZUnhIS[S?NNIVZCNSN[OJUFu5vEM_CVZI|<~MN[d^PS_NDMZX]XVO]VOPKJ\VQ]^QV`X[XXWW[~Gv?xNDSSRn1o~CTUXGL\[gSWIq;yXTJ{EMn=wj;vRPMWRSPMOXiQ|LSY[SZ_xL[SUXkDe=|wZ|NQXTR{NtGtHqF}i>tWwKnAzyL}QqD`[~PqDzN|Pm@{k>xsFvITyL~QyMsEsC~qE|tJnCzqHxOwNXzQh@v{U}WxS{YE/J-1)ǪĮʾɿϹȦ̜üйڿǪһ̬ïƣȜb_^#!"-3HMcPiP`qniksnvnwowoxpxpvnvnwowowowoxpyqyrxswqvpvpwqxrysztysztyswqvruqtprnplnjqmqmpmqnroqnqnrornrnrprqrqrqsrsrtsutuswwwywxwxuv||yjd³žĻĺöŹǺôƷð~w{~=:E=;D>=F?8B<5@:2<92:5.63,44-54-5 !#""" "!#!! " !(%&#           slAfiod~j`Ԅvvbhvhebif`ecmksQWdhpsumoq8tuzn}hXcKg\X^ZQ^˃؈ހzs{~pkaegdts{}xxtnfzԁҀπʀuw}EC)ufvֺ̮Ӽн~΂umˀlՈsqzjWŁgoEn׮ӱѷ||ɸlijt˻bòkǻnvʃiaytɳsz{ϼxenkgZ^henqogxu^_Ÿth[ZkneȻqºg|wN֋kfhjw{ú\{RİjϺs\zwzvxߊ̊ur㋳o|{p{͇ǵvڥŊ}ʊעجjsk~؊׃ۃ؇ڇЀ}gbsܚp~oIɗvVQtAFH󢸽gmnGZPrpԃk`odf^elsiZyv|؃ݐivwyԎo݈qՎRhF           ,=*ƨ̸νɱɪëţw    bsi֛¡ɢɩϮѭҫЮҫ͜Ѐ/@32:-)`vbQjPWoQMjC_\dbicWtQqnUpGEf.V8W3V|2^D~xuol[kRiMhQhWzxŴlwkqloyx2D3     S\aɚǐkˡϞΠΨդҧլ֮ܳoLxRpL^xUvQsMpIlG]lG~WxR{SzNpDnExTubyDIIQM|BL\INZ|>x:~Gu8yEKHC\YGLPIH|;}y8zz9{}?JSs5ty9zCNLECIRKF}?x=zCzBPu@xTI7Z{OdPWLGPXVX};[XIGPZ~B^X]DE_VOUKMNNORPHRURVHWKSYPXTw}Q[RVSFUE[\NOX_MNCS\WRQGRLU]]\_?AXLNYONTZLKLT[JIQa\POGEOPRQRTbfyBRQYQP~DO~EMJHKSBAKOVIIW`T\`JYPOMNR[USvCk7u~KUM]L~JYg]xHqC}SpB~V^{OsGzK|N~PRXqHmDciQ}NR~PuFtF|OuIuIvKnC|xK|NU`Y]XxKVoCsFSyL[]SQyKrE~uHf:qnEynK{xR|SuNoG|xP{SpH}xRZxR{Y ^kSřҸȰƳřðúϻͯƽϴǬîŨƞünnj $# &'6K[{ZoQe~]fnqnxpwnxpwowowovnxpwovnxpxp{syryswqwqxrwqxrysvpysyswqwqwrwstpsoqmnjnjoknkpmrorororoqnqnqoqpqpqpqprqsrsrsrtsttuvstwxvtEF7ž¼½ŵݶǾùƼ˿ķɾɽͻykfs3-9C?K>;H<:F:5@62=20;/,7-*5.*41+53-6>4=:C<9B=8B;5>9296/74-53,44-54-5 !!"" # #!$ $!,+$0/*)(#&#&"$'$  -,'13,#!          SK+َokenۃwTqvrekւπӀrbUgjdfee9LdenoonZ{+^pcihqicYZcUsdv}[anz|sg{ϋ˄ɂsn|PRnyw{ЀvvigywywyvomѽʹijX_@vrK\ʻ̞вϲҼȉn֊ӈĺuʄŽ~̓䋿mrksttyPyVٶߺҮwwՅͺye̎ʸsʿruyukowtgƲqʸvȵtȺqeeºiՄb`tuȮxθ{}zrſk|mrnŰẁl^Wz|UȺ}yv}scuww\[iŸiпvՐ`İ®atmtyك΂́Ѕhi~چ||p|ѐїŵrŃƷʾk΃߆ޏ؋rrsIYsrdq̏unKƍj:]뇴fVSFnfaXS^awb\smd`wpizsyotكio߇utux"/            PcLɳʷ;ɾ    ,$̫ͦͦͭΪ̩˧ʠġàþÆLm^$4(*2)&1$nnZs]d}dJgEVwYipbdijje@a+W8Z7]>p_yoakTjNhKhNlYȅZ|]y}~FZF  6=AŞʝȜĩ͊ϨљĎ~{˳Ѯ˦²кو~YavRvS~[^zRqGsKc>`;zwO}UbrFR]sQcxD~GRIHIMVPGF|?HDCy<}LMONSJ{?PJAx6xo-nAz;||@eBy:{o2sy=~v;zQXZRJDv;}MzDyGc8rR-f齺oZ|]1kUQTRNDKPI@FXUL^]JSMWNNEVQOEOUYKJPNCMFCGIRZZQU\EHMPWZOHOPPP{@T[[^FCSIVPNWLW;@URVSY[VKGv5{?PQPRSSZQDJLGEPQJFVVXULCLNLO[z@}HVUSUKFx={NKONYVHKZYIFZgz=~}?}@TedkIRV^`]\Nl:xvDp8G?9GB=6@<9B<8A;5?93;8194-53,43,43,43,4!"" ##"!.,(*&## !#"%"&"-)%30+98242.-)&($!  $ )%"'$!!/1,6;7,-)            {|M}{hj܆فsfskhr}փӁsg[higihiBJeqlknlgeo̓ohb_d[\a_Uኺtezicboxsg҉ҋ~{yc~yFA`txvvphhQdtovփrׁpiƀƳʹQ\4^^Wҹ̯ʭʳƸąξȹxhԓˉl»t~لswerbrYίӴ˪ʪȱvxxăĈVj̀Źpn|qmrqvulimʼxXىqƂbnoʶyƵsķqcjd[bǥ|ŨzϹz뜺ifkeq܃¸pmsyyúxnuwNfpwk}fjhtƀvm}lymyڣųwҕ՚˒ʦv{ǀن،Á͖|Rlr^u|nIvŋQ{^=_Ao_q`mTiNfIkPkRte̼\|ZxxRhV   8?AƇÝǖ˜Úã̪Ч˨˧Л‚¿Ԝ˭̈lKyQoHiCV6y_=|{RlCwOnGiBlDwOt|RwHs\tMQwB|FIGRHG~DFDMJz>~x<|DJSSYXJF}ALSz<w8{y9yo1pi,kn1pEt8xHx<|u9z~C}BUYYNx=}No9{i;ylR͹عܷکJ1Wk=wMMu9~{?V~C?ALM~CILUf\}@OR\XGRLLMELMTYQHYBTH@IOVFEUKZWVER]XGGMQUFIKTY]LDGO\RMNR@}~=|NEX`_]WTVEIMVTRORLQBLCFKRKAIJU]\afHMXJEKRX[^INR]USVdZRXbLKM]Z]bTw6zObffTTV`]YWNM|JvC}Kp@|ZiVWMQTO\i{MxG{I{INwHzMXh>xlA}{L{NOuDR{PmCXxKS]YyNvHS{P\qGyL[_7stJ^U~R}Q|PyMuIwK}Rg@tb@qzseJueDxrOtOuPguTxVyX]kLr rѮſƭɶ̼ѿֺƮðdzȺͳƱDZȰɬƯʬǨ !.:K]rShWgxmkqvpwovnvnvnwpxqwovnwpyrwowpvpuowqxrwqwqwqvpuououowqwquptqvrtpqmokminjokolpmqnqnqnrosnrntptpsormqmrnsomhlgpmspsf]A6A?7B?8C<9B;6@:4>93:7085.63,41*12+24-4 #!$ !       " " &%"&%#('#1-)+'#'# '$#%#""  -)%/+(-)&0-)-,('&"%"($!$ ! " #$!!%",+&/0+*)#&#!             VU,u{fׇ̈́|ts|z_dV[`cjgkjheWSQYwmflfgbfhkolklccporjca`Zbiimπrlikkh]en_kmelormpqoenׁr}م~ƟδԺ}u|EВȐSaɱŸtƍwļÁ鈲ejj}z^]Ůz͹|ɷxǴytɶ~ʼn¬ncɺu|ֈݍrwhmqpoƶucbap[pppeóuʿsttpbgŢwȬygпɂqhyldrhҘvҺѬϩɢ՜ߏzsekRgqqUuuqmЀ̓wp҅~욿ʄfyr|v˙ʓɌ̐Гԗ֡׭©nԘxއ܇ˀƙe|or̙mhǾvFŻuBfpԡ͚ɌԚ`FlnVa[anW`zpqx聸zӋwmpv}lzur{Ș       7F,îˠǻ+7@  YkZsw$/&K\QűխҥɣǬЛ¿˟ҋ&53/5,") P^Lg~gd}klybiZvZTtNDj6cdx@a.\EFĔʦΠɡɥɦșæãҨȬ΢ئ͖ɓ˝ɢϲҾ⠞pPrGrHZG'g_=zuLrIyRrKqI~U~TlBxKrCqNzdEkuLq?zzEyC|DQO_Lt9{x<~|AOHWx<|GJRRIHPRFVRFt5v{=~}APCt8yNRKPEEGIKMTIUḻ~znR+_xBv=P{>l1v~FUYQIl/vk3wPWPV_O\ZYTR\KUZKHWAFKBEOSaJQpRSkSQQUTWKSVShSHBM`[OJOBHRKOPKQD|@|NYFZ[X_YPRTHEJMT[VSVOKr4u|?~VJPHA`^Y^S`_MSXVFPgZiRRWWRUYaYONFOUahfVX\GOUhĔőYXRPR_]~HYYXQ`-hX`Q{INVORYgPxGW|MRxJwIamC~pEwIS|MPPYzPvJ~R{P{RzQWXaigYUSoGqHVzNX[~RnA|vJoEoE|mEz~Y}[kHxyT}Y}XjDxtN{X{ZatRrRZ>_˻Ȳ­¿ȯéҿڼɰñDZȰƼϲĮİǪȲͧâ&  !,L]wTiVizelu|qowpumumvnwpwqxpxpwqyswqvpvpvpvpxrvpvpvpvpuosmtnvpuoupvrvrsosoplminjokplpmqnrorosptpsotptotpsornsorn|AG5,1$(\kOĸ½²ͿɻļżʻĩŻƾýžƾƻî³úƼɿÿšilq94>@;H?   ܾҽ̾Ѭɪ̪͠đćŜƔ0B?)0(!* >Nx|HJR}DJDz=t6{hOKJFn1qYfHLYNEWTBD~APDDIKGRMMOLOOFFD|AGQ载ܺݸܣkT\1ju?QDQO}Ar9}T`WSPWXGRcKT[UTh_LPN\W|?SLYMCQ`VNJ\\P`Y}=~YUNJHKOHAVUOCFPcXHEK]IEQPT]M?RPQHVUSRR@WbXKJMOUTJDARUVVOTRQJQ[SEQUYZOSfobc^c_UVbkTKPCDTZ_teXHLQXETc`XFu;uMR[cV^_c~KzH~JyDULU[RX{MTTd4uoBT}OqD~k?zyO`^d6rrExIX[gdg>z]}T}S`^{Q{P}Sj`qDzM|SnCuJ|RZXpDR{O|Qd=uvOzQpI~f?uyRzSwPYwQvQctkbN2R͵Ƚñ²Ŷɶ̮ùξвñDzɲȱǾа²Ǫɯʮʞ#!)!%#" &=J_\r[rcs~sppvovnvmwoxrxryqxqwqysxrvpvpwqwqvpvpvpvpuouosmrlsmtmtouquqtpsoqmokmilhnkolpmrorotquqtpsormuqtptpsovps+4!*0 *ueŻͽʺ¨ĽƽʳĻĻʾ®}RPX85?><7?>7B?8C=7@:5<7295/65,56,56,56,55+37-4 !     !%"('"*)'+'&+($73.-)&"!%" /+)33.'%!%##!!#)'#-,',*&*'$%!" "% *' /+$)$    &#($("&    0/fd7cjhplt׈zedmc[kYcZBZbMKSTVd|ibnьܑ~rvmpYlwmԄ|{yr]^t|~ulahhnuehxʀwڈligvv_um_۴޵޸ɢjÏؔvuPf_|]½_a^v˼ͿŁщsy]dxưϾǷ|ntcȺu»qGmthaaôŊlǼsɾwqml}rʵthqŻqjacpuhıwÃćdž}bey΃jȺzg͛޻ynm^WlSjx|䁺dlޘXtЙڗw|wƏޖۙ³z}͛͟їąӾy~gðzĘoqȀzʀˁ҄ۉՃԃЂ}Ƀ‚]g8lqBÂ|q|_ekuzƕڧ⹣xŚآȄff^MQ산gPugOhuljhޠʎȅŁʉɅ|rpz~j\       ]u\ã˹    &3'ŬʿȾȿżŠŇʝě¢ɠ/E@)!%2B2fshxgsc~k\y^OnFY|VStAV~4W~0[6Y~3[6`D^D`ChP˳u~deq{        LSNtws}wZjTvaVxdr¶ȻǺòխʛժ{azLvLzRvPZ6xjGtM|UkDzSh?~S_xNsHxKyLqC{Mp?{Nw@zB}Bw>~x>E~DTXKJx;~YJw:{GMAD~@FSv9{o2vr5xCDKw:{IUIGJ~BIJv;{S^LSVLOxL0`~LJ}A~CLEE}BKZVTTDMMJ\PHPXWXVn1}MMZUNJUN[RIHSRLMS[V\NQTSSJFINRRQY\KW][QRLLXLKQJJMIJNEND@[RNaVTlWXYVXIGDC@MZZXRR\GC_QTRRQ^Pjccs`YXYV[\XrpUNCRW_YuYJJK\qSA~}@|F}D|E~s=vQOL}EPSedQUcPQ{G}HT_aZe]xHwId_ZQX|Njv\YYXlDmKZ6n~Y_}VsKk@~X\sHc8wk@zN|NRqExNkDyR|R|QzNwLyMuKpIW2ivNvNnGyQn`xQ`jj{QZZ;])'$DZƯõȩ·ͼӲóȰɱȳӱĶ˟ɬǣ"$##! */?OcZr`sloutpyqwoxq{tztyszsysysxrxrxrwqwquovpvpuotntntnsmrlrltptpuquqsornplmikgnjolpmrosptpvruqsorputtsrpyyusquv:F>8B=7A<6@94<6184.64+46,56,57-67-5:16    #!#$"%$"%&$'  !  (%$'%$'%"'# &" $ %!(&#(($&%"/-(84/.*'('#'&"('#$#! """!" $#%%!)'#('#''##!! ""$ '#FG;>@352'1,#)"$     QN+ʁbdq\bۍׄ{xwtpooNgadhdS[TWXtth]tivΎבցjpvZLуzidgvv҃xjrut¼olhkrpi^hˀ~vtvpreQm}p|“޵֯hv́x䃻supe`urwuŏ‚c˼z}ͽ}Ʒuʼxzɺs˼st¸ji`uto;]yomJȶwƌop|WŃvb`i˅ZĮ{ooYqilcojmlƸunpӊulnn[\˻wʊϾӠΣȴp{؎j\׋|[wވwʄ[_3˛٢υ~wnpyٔĄkrtsxǴwƮmaks|֍݊㕻wzۂty߆rv׌ʃԋۓϏ򩬵x_v`|yRgzȷɚѪټֺʪ˙x^Z_ZW]Zuu[jufց~߂yLJЌᡷŀؓޞȅqommw+     vtɩu  oޟģǞōΟŝÚȋ 92+!"I[Hvkwjs_xiYv]YxXMkNx|Ml:X4X/`;Z2a>`C`EaJ~sŲmwx):+    "$DOB7M;A]GMjUQq[hr}qipU|RJpD][nmuwxzl“ͧӴضѧɜtwGZZ7yfCmMrQ{VfZlEg@zS[kDWxIsCzJQyG|GN|BGHKGHNMN{>G~CLEIPPG{?CDHSHr4wf)ks7v{?EI{=~u7xu5v@HLw:|{>XYIF|AIvDzcJyf@tL~B}@yynFmE`}X}VyRwPectW3U952ɩ̹˵ȵɱŰįðŸյ°ʰdzȿѳƶ˩ȧà·˝&!##&&# *?Qic|\tclx}ruyqytyrzt{uzt{uzsyqxqysysxrwqvpvpvpuouououotnsmsmuptptptpsosoplmikgminjolrospspvrsososqpnqo~dk[y_Xv\OgR)6%&/&~rʼƼȿ˾ǯ½ƽʾƸȿŗcbg71>9A?9D=7B:4>94;6284.53,44*36,57-58/6B7=# !)#%"! !"       ! *(&/.,+*'*)%*&#+&#($!&"%"&%!-,(20,/,')'#('#*)%('#))%+,'%$ #"! ! " "! ! !! $&!% #%,#1) C<251%&#&#)$)"       bՅ_rfUyۏ~wslfw`^mipcksjifxi~^qmk`hÁƍыkggWW˄pirsap|ylgqgüx}~l^l̀}}Ŀy~vfzkGWxפÒܷܸ֬ΫegssބЇkQt[{]Md|҃Ƿlvш΀Ŵgttj^cnz{udo֎kfsjoȇ͆`~ފNQlqodW_Tjưu˵}hlķrsvrmˈi˽vzndjpĨ~зҽ|΁Ÿmƹw¶y†ːӚ‘ͨòyxr=ck†ؓdhۍwƒuNJ|كqhz䃴dڎюwԦàxŵį}sXcpolj|чy~vtuw~}چsψސ~ݑޖ}|ьԚ~\}sxggaomzj`pWsyWy~`y؂v֕ʇ䥶}Ҍϊǀ΁q}|wj^     & YigȤɥ˪Уɕ˟ǜžĔy-&"/%j|h˾jxmxn}]}f`fkuPo>W2X0_:\6a@cF`FxmƯzv~w~    8B51A+:R2Db=KkFWxP]|Vkjfce]`Vmfzy{w|}}l~YSTisʘ۲qKrIjGwVmKrNoJkE~YpL_9wyQ{Ub}Bz>CNKZVM[MJV}B~B}B{B{@`USQO^XLMVXMN[^[NSEDOMJewaZaDGRHKP~AF|>}MNYODTLCOMFSXHY_KMGYQKV][\WRSNSWWZZQMOPMQMNMGKOJKMFRWQYNUQWSUesmOTWOZ^HMIP]NLWU^uvTagUtfKer`V|FR\SGFMMQS{A{DY^]^Ut`edcZgRS`ZhZsڷbOziIZwLuHqDsI|OSPXXvJ{P~RXrHqET{M~RzN[sKxPf=wvM{RoG\`\]yRhoY9[32/ǨȷȱñóŴȳƺоϸѝ³ʴдƴ˧ʤĽ͞$"#-=Razb}bsytxytztyrys|v|u{s{t|uzsysysyswqvpuouovpwqvpuotntntnsnsotpsososoqmmimimiojplqnspurspqu}`lMnR]z]G^E .%.)jcĽ̽ʽʿʾȻŽŽȼĸžùŬE@I=9D?;G>:E:8C74@5/:3,71)6/)4-*3.+46/9B9D`U`~p{vi]fH?G;5<>7??8A@9D=7B:5<83:5073-44,45+46,57.6;16H=B$!! #%$$!#' /$$3*)#     !# ($#+'&-+(**%%$!%##  "!'&$*)&-,***(&&$--,BDCBIB+,&$"  "(% +'"*$ *% #*$4+#3)9/"<3%91$B;-4.""+$1-"5/#2+% "    )!pېp\ylhUz~o~ɇrrZ[ladkikWZ]aU^rnney}\^Ӆ{miʉgp}΂umԂۇu½u}|wpuʀ~zm\diÿsw{y{phsiaqćzÙbV`^dmzm|ss΀XpBʰƈ}قxyǸr;q{ͼhluŻjopj{[chtҷ~ȊjτĵcksdӔɫvӸˆм~SW̆Y͸uy÷n}mnXPUm]τΈ`srƐӺ}ȴl~Έ{Ǹwĵs͋|rƴlvzΔɓø^ɵ~Ĺpwo،ʋwÐs÷݌ـinzPxՌhқǕ;pu]unz̗Քזԗ֖̅u{v߂kgȉ|݆ՄΉэǃ͋֍μ˙sjΊٍbf{{\IgljfRԐlS]|oכΒГǍjzmrsz{`         FZL ;HK{ɥЎ̙ç˟×Ơȕ™g%!$/'!}kzgvYzfWydwGf4Z8_>cCbBbFdH^IՌOsQ2B5      :H90A)@Y7Fh@HmCNrDVwJaY\TaT_Rlbvuy}uzOAAHUɌy^mJdlIrKtKqJiCnJqLvOpGlC|UzP{Ng;vvK|OzIm:yn:{uAwBINK|D{BUFEBE|Ar7zIJs7wNP|@w:|x;~|@LHYHx<|E}@JLFDx<|E~BEWw;|u8yDCLUF|BHHy=~y<Dz=JO~Ay>b*mx{|ABWOMNIGUPIJSGLFO\gaYHOIHXTTVNTUK[VW\`NXt|d`IKMPg/n|@FFZTW`UVPVO@TWjln]OdUZYH}?~OIQLO{:xMKDV]qՖ`IaZSZdYM{EQVPx>}FIVSTOLTN\cij^RScZV^_]VNZ^[ׁo_;rzOzM|LyIzJQPSS}N{NzLQYxMrFZ`}RsGwKyNtI_UtJrJzS_aeYZh`Df+''ĩλȷʫʸ˱Žխеp{µͯľдǯũůԏ*)(#.?Sjb~awpw{xv{tyrzs{v{u{uzt|v|vztztwqvpuouotnuouotnuouovpuorlrnrnrnsoqmqmoklhnjplqmqmrosqqluy~tit\w_5H/",%.1ºèǾοʾǨʺ¸ļµǹegq82?@=J=;G<9D95@82>4.:2*71)6/'4.)41,6=3>PDMlag|~}mx\N[?7B>6@>6A?7C?7D=5A94;6184/62,44,45+47,5:/8@4414,*#!   ("")$#"%! '""($"#   ##$ $"+)'40/733,*)..-ACDCIIBLD9>7..,)('#"" /,%0,&% !#/( >4'C6%G:(<4":5&4/! &"2/$64'50$-&1+2-#!    ! {ԈwWsjjƆrc|đÊvd\]deljhmfikZR[epheiwzqJ߇cal`gh}}kjtifžprmlmqmn\dlalumynhuv{xl}jƑУȕ͒„̊mcuqblpna_YuÛŇ}yqփɻqԃqǶgppǹln܅~oDZĺ||diֽ}ỹѽẃk}rȮl׸ֺɁírY[׍LjaŰmepac׃xYflZfŸvhѼ}Ͻyϻw`ýt}׋]ĵr~Lj˾λУ֦ڢݪݮ®{cwlzmɴξ|qqYx߃TɾugٛóvŊ}eh~ҒȖҴxs}̈ȇylmꇪiwdMȃx{Հ܇؍āsrɃݗqxߎoèUwzVkyȅld\d{^gly͌{mpl͆ur}stu}i               .8>\otÌ>[V!"". ɲƼŮɄhvxq{Hf7`DnWhOePcNZCk_ͽTwQW{K||[sb      0=22D/4M.9Z6Ad>Bf:Ei=ZTZSaWaVqm}iO?DMƀeMs~[zXwStLrHmFkBoInJuO{RwM{QyOuGjCE|@JOCq4wDJJJCN{>HRCD}?NJECTJz<}Dv:}PEm4vF{@MQBO~A{?IGv=Tm5vBJMBJKIM~BFP`MHNPSP\WVDEIIVEJPYQOJM\PXHILVLHUC~@}Z~CFSLQRWTGNQy;}w9{LLOLLY]XXSUQQNLVSGVUIJVX[]SSMQzEKGPEBNJT[[c`RU```[PY[W]_b\Z_e\fKi,jNXYbPLclZPs5q~\u:tRML[bh\SNORv~MQS~NxHRRRY{NTtHoE{uIyM~RR[^\X}V_\zR{S`_[bEi#!ʱĶ˷̸ν۶ƴդrȲʲȾѩɝDz˽І784 "%'4CUsa{]xhy~xxxsyqxqztztzt{uztztztyswquotntnsmsmtntntnuouotnsmsnrnrnrnqmrnpllhnjokokqmqnpmw{~sySpV)8D93?60<5-:1)50(4/(4/*63,7@5?dT]szzpalMAM?7B?7B?7D?7D?7D=5@83:4/61,31+33*35+47,6;/9G:DeWb!# *%"70*@7.E8/B3*>1&=3(A4,?0*9)"7*!:2)A<7=4190*'"  % !% "!!%"!.,*1-*1,)0+'0,)-+&;8096.73/731741:;6GJFPUT[baQZYAFC?A;??;,*&# %")% $#% 5.#E=+@4#5(0&/%"!2,#4/$0*.&-#7,!."    l˄_lujsxbh}e`O^eimnilmgbkb[\cjhoS\l<΅݆\M_eysnyxisf݈牻ker}adwtqrgfshrzwxwugx̚ɛƉÀƽ~Äƈjǁ΃ȁ҈πyroW`VƮt־ǎz}Ͼlbȹkه˿ooo\s}]ƶ–ifmǦoԻu||݉uɲkcvʹuYƣvɧ{ϳ}͹xrgh[boİltр\W̴jƸpqreyyʾrϾtijiЂƸofmg΅|kȸnsmgVݫڢ߬²yـxՂeȑoÓӤŔ}uS焳\e݈Ķlпx֊{ΓŔŵǕ|}t||}~ڃ܉xӀ畿̂́Ԅ}pԈɂĂʈr}LjˉːڧכؒcjuvIυxYyr~yĺqÁߪÎjN^WmpĂx|x{Äؕˁl}skyv+            Ǜy}x|)=5 s{lڡñŰΤj~~oBc8j[recMl`i\\JȼcfVxB^~Jrn$       2>87I76P8?_BJmN^aXz[~}{lXNScYEllK\}YvOlCvQ|WqMjJxSY_hwNo@o=q?rBvEsA~yD}FX|EIKUJv;}z?u9{}@Dx<}CJPF~BD~Aw:}BNEOQG~@~?I{=}y8zBs2tz;}EFMw;{AHN}AHHNFIQND{>n2ss6xy=C~BPr7y~A@x:NJy_YNKBJIRKCYJISFF|?~IWLHU|@~HOYPEBH~BDJOJ~CMTQHLP`[^WP@KQYQDASNPUWMIONCFQTOQYQZ\X[PQ^XYXOZW^]U^\J_lbOI|A}NY[`SUōähp0jz=wZOoNh}{E~\_YXiOUM{CD}@KPyCzDHKVZ\PSXYVwF{|L_P[PPY{HR[]zTy\9obZxH{JOUN}LNWVQRvFZ\`pC|Y[[^[T{RYbYvO|T_[zT`Be" ƺɸͺҸ͸קҘ¿Ķζ˾Ѱ©êħεDŽ@B= "%",8D[f|eh}yzzwswpvqxrysxrxrxrwqwqwqvptnsmrlrlrlsmsmsmsmtntnsmsntpsoqmqmtprnnjmiliokqlrmztjsbifqWu\JcG'6&0*tnüʮʽǼƷżŷǾøȪ{~rxwpw:5AD5.;2*70(4/'2.'23-9:27A?7C?7D>6B=5A:3<6183.50+22,44+45*48-5?30(A3)@3(;/%8*!5&6)"6,#3+!0(#-%$)"!!     " ('#52.894;=7=>875/2,&.*'22,?@6<<2==8>@:KOH>C<493FJGILJCGD@C<=<384/'$ !"'"*$0( /'/' +%/':.!8*1"/!1#-4(>4*6-!90$5(@3(;."5',#    [V8wquoryq_}zrxhTgmjihkrl_pkRagjjob`cv/ˈ࠾yR\fio}ttvkzxļs{uupǿvՂnow}upnisɁǽu~zp¼țʽ€Ɓ̎njzmvŀφӅrqێ]m_#fԼŔ˃wyʽlxŹkorX_drkKXt^}ǗֺԻv~{Ӂ҄ϻsȁІ[bo˪ƫ{ppojkæsӾ}ŴniihobcbfòwfnnpЂc̽qs´rvvˋlҾivgbɹwп̗ź~jߌeX;¶zמӠՆreQ|ݑ>wMӄʻpcԚʖԃՄȊz‹ڂԃӋ{zz{o`vj`~ЖהЏ՝ӛڛ먺҉PoЍyIippo^Ƈ}„եwa{gscLJ߮Ŝ}~ƀم惵i]~w񔄣n              =HFwi|g~|Vnk_xvo%! X`Sǯäřj@`6tiufeNzqh\~M̹LlDY|B`KšRgW   "+%K^ONfVNl\Uvg}ˣ›ffnѡܸYDsdDqLkE[oG[f_xXvQWqmyRuF|LvCzHTh=sxE|DP}ESUMSVy;~u7{JHw:}KCDGNJRFM|>HONAq0rq2tz>~x:yt3s@~<~CK|=~|=~By=}FMz>KVwD_JNH?t4wK}@y<|?Dk0sCCB{<}?BGu9z?NLXSYKS^SYZWNUGRVx?KzALQNMP[MKHRPNLLJcMIHEz<{SDCK~BDIFG{?JC~@MJMOJDTTEOSLYPNP][SOJCLNVKBFTSBGJLPNPV\YZRR[PQUNRNedUcnTI[WT\NHWRWRCaUd(]~B{_icdxwMQYR[\g~HJx@~|BEHKI|Fa]cak]cYX^[S~KL[VQMOR^T\hQs9)HoNpE|NPaNNOS\RUuHyJT_PQwJ~O[[QvIV}SYzQ_}UoF}[~WyTfIj.(*ο˵ɹϼӻѽݱÿͤʯĵʬԲàϨìƺмʃKKG  #+!#("$%.1CP`~e{ju{yvpvpwqxrwqwqvpvptntnuotnsmrlrlrlqkrlqkrlrlsmsmqlrnrnrnsososoqnnklilj|tsg~tYu`gn^}bWpS/?$*3!+:O-ƾļĽſ̽ĽŲøǾǼŶžưãMMV<6CD8C=7C>6A>6@8193-43-41,31+35,58,6;/8I;Ef\fx#&! ( 1'!8+#4'"0$!+!,!,!,"*" ' $      )&";;3==645.-,')'"+("+'!'#33.68.<>5?A;9;557101+12+22+)'"*(",*"&# (# )$ ,&!0)".& 0'6*!6(>-!=+9'9'8'1!6(>1&;-!?0#P=0^M>QB1A0"/"   % pd?xr{jqXɅroq[djgfkqridslTbihjnzrm?iΙQ]qȿtwu{}r׃bpj^nvxmºsüpƿuiiryrqc\szyƿs؈x|nsɔnj͌Ֆ̇̇zṡnsvdpv|w4hư~ʲԼλʁǺrzȿoԄ҂Vi|mžlsԂlds[nE׼~Łֺz{ρ΀ӊYżqżtȶotw{|eml©u¯r̾wkbĭxrpc´m̆o_rnYŹowuq~dxqɈte^zŽyncf͹}ψڠמȼǿgjӔ˾̐؟߱yoay_tًNEɻmsׅڏsǼzنƅtw݌ؘxw}؅ǁxwĽʉ÷ʕԕו֜nl뎖]o]ncaeptђڝߧ֡s„hmg}|wx|ԅۇꖹ٘?T8                  q%18   tqѹĹý`wqGd7jTeIdLqkcZj`˺hqKn{K`|JL{DWVHFGMLPCz<|?MKKPx9yBKLOx:|BCK{>~{;}z=~|AEGz;||;}?_Fz<}{=~~BH}ACRJ\/ocRv8y{>?Cz=|?x9|{=Lx=y=JWy:}>GNLACv:QZJGYfQXNZSUU\VV{@NSu>q:{|CR\hWs;zO~BD|B~DPLx=|w<{H~CNRI|A{AEN|@{?FF~B|@B~Bh-qMQOQVPKVAAVKHHKY[L\eWOJVLPb]GIMUKDSO]YLHN[WOKHINSURVUKG_aUYXBTRPK~;zDVu:sOzdaQSXRM~DP^Ow@|LHRLKu8zv=}IqpaVUW[^UU\[aVOxFUKQUO]X{^;(FwVWvITRXYR\Z_[zKzLjWQWT^R}NvJl@v[XrJxP|TvNvNvPvQuP~_Ba722ʽ̯üӻҽ٤ڳůȷ˳ţǣӯNKK !&1&'."#( $-(5AHabti~q{|wrwqwqvpwqwquotntnsmsmtnsmtnsmrlrlrlqkqksmsmsmrlsmrnrnsotptospomnkjg~v}}}_zm`jmylrKbF$2#,)j]˺öǿžſɿǽŸȿĹǿú»ƽʾ}=8CA;I@;I=9G:6C73>4.90*5,&1,%00(32+681;OBKral|udWaD:E=6@>7A>8C>8D<4@:3;8195.63,43,43+36,59.8?3{|F|DFMx<|}As5zi+qv8}IDu9yIYyIOw9zz<}w;{Kw;z`t7wy<}z<}}>w6xq.py9zB}@|>Cx<|HDGx=~v?QLt7yp1ts2vBx;~{=w9|CHTs8z~A|=|=PDBNH@w{z@}FQEz?IH[IJzB~O}BFGWJ~@KOJGPOYXXXL>~={6xCMBPSNFBqi\VPJUULPIR^VYKNVSa\UUV[J[WOTYQRYRPoc[XO]m[UOK~;yKbWqcJt>wZUOLMMojIUw<|s9yw>~t:zZVR_ugYQRTTSb|J]WPNK~H}HNN~OwIkG7UZ3-9.(4,%2/'33*54-8>4@_Q\nzvjsOEN=6?=7A=7A>8D=8C;4>92:7085.63,41+34-55-6,!A/#A/#9&C-U<.T9'E//!    #qNzʁ|{nsr`j͂{qxsmo[\ZSaie{֙m|UcUdsspm]Rgz0PR]ȉ~ɺvͿ{}yu}rǿuhoixwg{phjþumqulfkpXcpxvr``oXqxtpǻ|Ǿ|ρҁmv|~Ȁ}|•Ҥѕ̈́psxrw}pɆwlzútrpbyōwopjstsʸ|Ƿv~geѺ{tɧѲѴŬ~p_o_Ϲq˱pln`^RɻqSǵqxos]pŽqʾywÿhqɸyiȆrm^ˋbߦҘLj׿ʱʻasjp‡˖Ҧӎ{bkftl~g`Պ·uNjƍ¾~̃zʉ|΄҆сنфʄ}yoÄʍ{szŐʊ|ԣƘˎڃupyt@l܋|}^}ynyϑӒ~ȓjf~RzЌ̔䷻ڶӴΫԤuh()&8#           ENAØ@W@^Km[kYfVfZW|MDc9Os8q?R;  &-0zzžśśǜƜĖɤŤŭ̹ԟǩٺ阍V@oYj8wMRQ~GKGMj/qYcEQL}AiSEDIJHIYBy<~p3ww<|GU}Ay<}w9zz<}x9zp0qx;{z?Lx<|GDu9yD~Ct:zp7yFSS{?CECBHE{=t8{k0rx=Sy;ADNNJRMDL_S|D~HVKKPN[PMOIOx=}BdHJHMK\HCPZI{@~z?}U[HEURRJPWJz?~PHH~BIHJVKELaQNWQENIBHTBTUIAANXc^PTUYHO`]\Z`TWFUMNV[XKXRWGYZUTWXbaKG_]cXGNOQLjfFSh{VINRV~IIGKXXSJs9vKS~EUaT^[jb~HXPN{FP~K^S~KRP\OMOuE{KeeLu\;oVPwH{MxIUxG~NP}NTZU~Pf\ZQ{N[bX|SebZczWnM}epTeNurUE_331ǩ¸ͼսֿݰòڲĬ®ªwŰӜdgb $!"!(".*8FQjWnh~{zvotntnsmsmsmtnsmsmsmuotnsmsmsmqkpjqkpjqkrlsmrlrlrlrlrltmqmvruq}t{pfsZojl}Wo_!0'1%vŶƽݹžȳĺŻü­|EBJA:FA:H=8F;5C60>1+9/'6,$2/'33+67.9K@In`j{vi[eF>F>8A=7A>8A=7B<6A:3<6094.63-51,32+34.66.7?0;ZGRudp} !%!"& #"!!$ !*"".$".$!)! !#    %!$ "%! ! +'%-+)))'**&,*'%!!!! "!"% "!0$5(5&;)9(<,I6(R;+E1".  {nQȂ|ւ|z|ckɄр|xpvmkshuk[e|sҏxtN~s[K[a`^_ȁZe#mf&Ɇ͆ш|p||zkv|yڌe_u»pùlߋnqļr}þok^»t{uwt`mppdPil`ćƎοȷtwͅ~|tu}f{ĵ~ȱ˘Րׅp|vkni||~ԐsXh»tyYkèhkqquuxuĀkoɕԱ׶ҵˆ՗˵gqslVcԻzhкwƲsZK}ҿzĴj}urweùowvvs}~msդܫsoRyʓħvwgn倹cz¶tǼ~vtX߄֋dTʁg|uh|t؁ކځ߀vxp{vnnvbdhjxeƾumž|t˜×͜܂xz[f~4sxfosOe}avbrjr}qrxܛіᲹ׸ҸԬϖ                       N[I߼ĸw7P1aLdSfVk^bX_[Ab4]Hh_      O^c™Ęƞˠ˜ǟǥ̨ͮЭΨ̲жϷ˱ԾͰxg^GwoSuO~W`{VmgvMzRjDwRpIzUrK|Uo`Z~SU|K{H{HSSyEyB{Cu={|Bp5wx=n2xEs7ww;{\ZXGr4sOz=JJm1qw:|IHa}AD|?|?v7xy:{|@z>~}Ax<|x<|FFDz?{@y>~n6v}Gd]t:zp4ux<~}Ay<x:}v8|W]j+qMy{ILXJy>|GGNUWLb_SVWVNMVZ{G[X[_\VQPSZ^Y5mh@|qDrEi>zrErCd7z{LSXY|MT~P~PYVUYXcwKxO{TtM~YcdkJymU|kW{}p}uh üһԾ޿ХֲŰŭz|jjop{ɪŲАorl' ## "(#+#.6:OLaz]vw~tntmqlpjrlrlrlsmqkrlsmsmsmrlrlrlqkqkqlqmrnsnsmrlsmsmsmslsmwxwli}}qo}NaK)4(1#/od´żƼŽûü·ĩŰùǾȿ·ɿó||iln:4?B=J@:H<7E94B82?4.:1)7/(5.&21)45-8=5>YNV}nvlzWJU;4>;6@?9C?9C=7A;3>92:6082,61,31,33-55.6;1:H7AgS_q   !!     ("$ !  #($#&#"!" '#"$"!!#   $3+$.&( ',"3%8+";2'90%2'0!(!  :1 VF*gё}Ԃۆ|wZtݖ։ց}{ejiniy؅svzlzOsxompFSoГѝȌmx7\Sȁ،ҋñvƷuxyr̃]ĸqτļozg^jƿtqo¹tx݂bdptloqh`j[`ps^ÏÉʉʅͽzƵ~ŷxǾ|qjm\c~˽ΑԆ~rƄʑ|ď|ɎɈt·z͍sgǬ“؝r_luhr{wloԳϬͫsĩsªqʬy̯}ǫycgæqŬn˵tíkWbækaŰkîmg}}gǹqht}ǼhuǷh~siòx{ޮլǶtfk~̵lɴnqgz~mĻfr|u~xe_xx[jubm҆q蕲Ƀ|ӂgԁ|qk|sgzfps]ЊۖYǺǽ]Ȼꮺˠ{ʒݘyrӁ\nɊmlhfhB\\Yrhfn~ڝٹۭb@|s[`}tjoXZm,0     #!"        [iSײh`zw/J'fP[F`IgVoi|¼|Be8pcFXE          19>ltÜțȜȥϨҢ̣̥ͩέѰӮҴչԹһ̬ͪˤ{t]F0_sZd\tN}rmvMlDtMoGksqG[^d:zaZWYPPW~KzFf2sLPv=}H{@x<}BG~Cm4sRZHs8xy=z?x<}r5w~BL{?w<{z?~O}A|AHFH~BDz>~z?w<|x<|DD{?KLo8xg5wPIH\zAe-mo7xWzAr6y}?v7}~?x8}>m0qy<|?@|{t=y|C|AUTv@~H\NIFo3sLMQM~DJKXMMGJMOFXO}4xD=~EHPSPNETTKPYOMtEN_haGP\W^[IP[aRYb^YA~HXXUWWYOMMQSTUZJJcY]^Xr2o{:yJOZ}G~JN[yBz~G\PUQWPt:xFOM~Bz>|k/nQhOK~DHYPIONRSRLyFgd^[YZ~LZ]c^^2ovIf7tm>{hzj=}n>xFQQaQ\YWQ}OVXSyMVTUkCypKykRw[@d[Bcrc|pdǿʼūٵɠtw}~|dZheÍԵɉuxr $!($,!+/-@I]wYwj}utsnoinioipjrlqkpjqkqksmrlrlrlqkrlrlrmsosornrmsntpsosoqmxg~suxkiko}xl~kr=N7'2-5)4z˺ǿºļľ¸¥Ź§ĸƼȿƮĶɽ~JIP<6D?8B>8D=5@;3<7084-52+30+11,23.57.7=2:TDNrco}#!           !!"!%! #%! $ ($#*&%# "$ %"#!!!!"+#*#%+#5,"1(2)4-"+%"%'WP4{_ćȂz}wyzisޘҊЁ׃Հvuoyiky€ÇgloX匰tlczwz趿ݬ~N=: lxqik÷yr{Ļw¹vˀȾy^zߐjmqmlipo|~^¹szzppnuyenqeq{u´u͇vlyڀkľoxÿtx}~yso½mguϒºɔhxňw|}w{ҷǬʼn|cq}jknmâֹɩsϴ~ӿXʲlǀͲ|Һ|տ~ͷrӾv~a{~głôo_gaciGùbzxsȼmbyĺueʼnΚӬӽzχ|ْlroqdr|u|sj݀ljpgurx`sցs{zֈ鲸Ԝy{݅Ӄ~myrÁݔDŽd`[ftfȍ~oɛؠ{{Ғފu`p]Ɩ~i^{Qcsjyt͓ȍ߰޾̰mUzOˇˀڇtpxނэRT7LI2PM:77'!    $"!         WdOȢǴļx_wp7R(thojS{Ff[tvnwOoI|x&0&       I\_IdfsȗéөӫҬЭϳӰѰϼնʳ¬έɡqmh[L>i[GxpWWctR[|SlC}UrJ_em@wLef>}zRYXZRWRr>}MT}HzAHy?SRLy?t9yzAx@u;zKw>R~Cz?v<|IS|AGDz?x<|DXCz=~{?D}ADEz?{@FDIWzCq@}Lu;}HXHv;}[+jZz?Hw9~Az7z9j,ov8~CBy9@QEC[F}Eh4}s=TZLNYIQGGVPPSG~CEGu;z}BNUK}Ek3r~F~DMLPPc`|Ar6tKNQS_c|Da(jN\BA>GhQ[_P;IRFQ]WJ<{OQKJJGO[RKa_MUPXSR`SSFUTXPUTJIMLMFIWSN]OXUFZNROEMKPTNN[JYUMWPOWL|E^RNO}FL\VWUHLS~CNQ^F|B~QPPUJONam~MRP`SX~QvJ{PecfU_dVR}LsARWxJSXVPwH}PST|Oj=xsG{OV~UtNhHyqSjNwkOvudfYo·;޶˵γֶɣvzzdRc}[ĸǻձɎ|{ "'$,'5BRklc|yvwrnmhoimgoiqkpjoipjqkrlrlqkrlrlrlrkqmqmrnrnsmrlsmsmsmtmxrx}yrxytnoqwO3ǺźIJûļ¾ľ˻Īȿž¹ƺ®kqq96A>;I=;I=9G<6D71?3-:0)5.(4-'50*73.8;4=YLV|ku~jvZJT?7@=7A=7A=7A=7C<4?92:6/73,43+23,34-55/69/7B7?_T\s}!   ! #           #" %! $ ! ! $$ $ " !!!##"&5+!90$;3'8/&,"$  sqOł̅˄|{wuvtẌݝՌӃ΀uqjaf`\}ɑyy_|Ձcfko۝Όxd]MGcd_o¹{w»włqˈǀúyqd¸v|Ļychymvj]^»vús{osэ{`^blrlvƴ{Ƿuh²q}{ožqvzTqʳȵqf{Żutpqܟљ€zנspjfҵˮҶæ|hįjȺcx|ps|~ѳƩ~ÎǮuκa^Ȯbֆֽ{ƈԽ|TZڋنƳj°iϾwV\g°j݉ZmŽjŽix~xĻqfipuqk~rp΃\vÌc|vnӂxoia}~rwxy‡zς݈ymv{ڂҘסpuk|؇|n͈nxdlՑS䠙U͒r֣ˬק蠴ІXxlauwyhxDdϏƄtƌzқxtݚ{ρ{tnnxts}mk|sr̈|ωp)-$ !"     HTC͢ŴÿMcROh9qjVz^puuXt_b]ie #        -96>QKCXQSjbJfa[{}ywy|}v—νɻ׬GJcYS{I:osWh\jh\mhzWeXpFV^W[c_vEtASfPrKt@w@Fx=z?FJy?]v=~~Cu=~Gq9yv>NGI~E[RGLGD}CF{@~w;{s6y{?FTIz?w<|t9z|AJPKELxBEJG{@Gp=}qDu>}IE~@@=x7}{=}@y<{=JITOHIr8XyAr9~r~xAm2q|@HVX\{DNDO}>Az9~FJ]M>GVKAIIKMST@BB@HOAQg`PWTSGEVe^OVZXQSKZTMRKMPB@?}FQSTWPVXLDSOSKDFA~z;xfÕ\u=sVRxC|]~IS^Q{EHOTIK]c`YTu;v~C~Q~DTx=zVZYs{K}}LLMRWYpfNQ\fgwJaRgzgg^[\[QMn<|zKvGYVUzK}PTxLyMpE|Q|QU}Rg]pLkL}nN~uVxx|_MfŬԽկĶд׸ʨľngseldt̶ѳ˕ "&)%,2@Qpp}qnoiojplpjpjnhpjoioiqkrlrlqkqkqkpiplplqmrnsmrlrltmrlxkz{yunpy~ye|nhdeyrRdU-<+ /1kfµƾºļ»üͶúĺǷúOOS;7B?=K<:H:7E83@5/G>5A=7A>9C;8C=7B:3<7084-53,54-53,33-47/7=18OCKndn            #             ($!+*&*($'#!"&"!&"!&# *%# %!#'# 3,')$!" !""!"""*#=7,=8*4.!(   4,oh6\TPdžÁɆyЀπ{zabʈ͆ˀuplonq}nvyy͜uʄUl~veeXedfniV_w]\jlxyrdžƿemҋucyݔĂew¹}tgne\tqýqssgmtbrlgimylɃ׌ñlzwoſotrsYM‘ěлq׎ʺ|ăˀ|Ą篽|}܇jyzxcáyȨyđδzχeme}g{gՕɫxťչopǴvhYfϲwδz~Ѻsidϼpͺofj^îhӀƶj}ǿnp~s^{YnɈoj|~ǔom|yфfeĉ~xvx̅҄͂ߖʁb{늵nԆl~نztxxtۋr{}vzٌԋns~σgY`ZwݔΉ`[_ąRZȕ^zЬҔu~x{lnjs[sJ{v͇È٩ޭܞfQ҇Ԍf|x[gusgmijryd\|qmpv  #         CL>ȥǵ½@W=YvDvqj}ʏNlSrkPcJ""               !sy}zn}x}qrtorɴٽ·ϷܱLRidXL7q[C}ςfepiz^byWtLwMR{OzOTYhm=xMNffMu>p9{NSILH{?{?IOLDQo7xy@HQy>MbXKLYQJFr6vIFq5vNXEHt9yy>~Kv;{JMGt>}k9tPFI~Cw:}z?t8{z=K}B}?|<~=x7}v8{QBHV?MKL|=_UIW~Es:EM|ALy?JFZ\GMMJUJr=~MKIv=~t={BDR]YPHu9yJODGQM`jz>}y=}KLL@SIGDIEHHAHAKJHGJCG;zNZIlÂYNVPSYSPQXRGUY_ZWXRUTPTPKB~IJIB|LTPRO^KZSRUSMFz8vRaD~IxAy{D|YLd5hj8mK~I{D~V\Y}FQTW\OMy?z}C~SQS{B~Z_k~KrYMJNV\bWSNY_h~P_ZwZdcS\adS{Ip=o?VXXO}OT~SyN]c\~TWj\]bfows`Ihİ߿ҵ˳̰ɽڶȳ×~z{˲ͱ˩#$ %!*7^tsptqpjnhoinhnhmgmgoioioiqkqkqkpjqkpjqlqmqmqmqmrmrlrlqk~qwui{rsqt{~^{xnfp^pg.;*/;''G`={rŴżļûºƾƿ¹˺˶ſƿƿǾŹʿȾøƼltt>;D?:D<8C<5@92:6/62,40*23,52,35.56/5A5;^RY|r|                ! !       1)(;2/95022-%" #$ '#"#+%"0)&$ $ ($"! %!'# ($!&"'"$ !!"!!!"!&!'")$-)!+'"4+E=~|Dqc_G=ƆɌłwwuzɀ|jqpm|sbfzކzysjիa|[``f^gofbhvbjԏтӂYZfgxtuz½ip̊uesnxǼú}yivԊsrqrrsg`vaj|`Yjvvȵ{gҿpǵp}ݐe؇ЀkӉfcˢѸ{oéxɲʵ̾Ћł~Å}ނ}}yr̬ΰ̭ϲpoćՔiutfro|Ī{otpʮw͈ϼy`lťxǫud̓υ|Ͻvi®mŲnŭl˶l݇}ɼrwƻsøncv䄧Zz\^aOo؉e[{|~…ԅ֌pmtՅ~y_i܅܇؆փ||zo~km|q{{tr݂ڇސ·o[fuWtˆmq]hWnUj㝮s[s{Ӈփxd|nYzreԆ֏ڢ޲ã^ra]Ym\o`afwkbtaq|bSkro\eޘ*4% ,' +&#!        3<,ťŴ¼wmv7Q+Z}HuuЙ֎LiO~y*3%"       !&*r{ğǰ˹ԧĩdzɳʷϷɿҳѸлٳٟZ[{aNsWY:yÕ}mfdtqM|YwUoGtJSWTR~Q]uGSOUVR~Jo7{IMLQz>}@o2ww>Kx@GRQRRUF]TLBH~ETJJC}?ICTwA~OGt8yC~Bw;{}BMFLW/da6pJKHIGECCwDKPKy7};EKMCJHHVVDJJFKMWM}D{B}EWHw?NLNHn8z{BQORJLK~Dp6uw<|G{?~QNNv<6@?:C=7A<5?<4?92:4.51,30+24+35-47.6:17MAGpdl                $! '#"%! $#  /('4.+87301,'$"#""+&",'#+&#)%" -)&% !&"%!$ ##$ !!"!!$% "  WN,·v]SaVZ<`ĉȇ}vmk}vsˁՈ~vwywڃ~|~aˣyFqxjV_Znxkd`g]ؔܒڀzewf`h|hhghÿtjtsqԐՐpvuernnboxi`_lم[sнο~o˼vgwh|~o҇ºn[̴y~j{϶ȴurvc½p|UrӲԶŪ{ٽؿÏrnrؗܖcp|g}}svÅʃxߍŭlб|̬}ʬz_˯o͵mbd^َu˸nrme̿ybhmeibrodnÅĺ}wș͠–ʂ{jl{ۇrratۇ߈ՏΠ{]ψ}w鄿mu|ׅֈφzkqv΄uj֔bVWNZ։ėľ{c|։qr`mϏ׆~s}ytk_Ӑ޳Э–yY^iҀjXlbqriri߄䃰ZRwjqg]b̀ + /' 7/+(!          %ع˷û~|x;Z/eXmp{ʫ̾⋦TrWg|d%' )&'         JZi~ƠȝƟȢ΢΢ΧЪѫѪϴٻڻɴ͹׳ԳfuXNtcJwVdAhNbrJekvR[8wb\]UyLUyLV~Qc~S|I}JxDs>t=x?x@SSv<GFu8{Hu=~x@Hu>YyB~Cz?~DJMLy>Wy>r:{_Kz<}EH~Bs9wicJNMRPJEJGzQuVo@|g:um8xHN}@}@Jz@r6yz=t7|~Bw:}i'm{9FHGMMPBEHGK{>VPRFHD~Cw=x?u>l8{u?~Et<}s;|j2s~Fq9zGL|Do8yH~CNJGOv;{~D}FLFGbNJ|B}m5pRHw9}x:~LXPUKL~<}CGHG;{ES@<}DODPSNDDUTTBOZRKVVVYRMFFR[V[]PSHJJA~FLMXKIB{w;sHGLFEZUYPHB~YzrQJ\IJRZ[I}ENL|E{A~NWWLRLMJLV}C~KHVd^WWIXWt=rK`Y_YU[ZSyLZYV`XkigZ\pfSyLh<{}NrAzJ}NuIxL{Q~U~UnD}f?v}V^nGrN|W|Ysy[pRnR[Edyyз޽Ҭ°ȶйײŪůʭǬƤRRT #+5Llg{pnploknhmhmininhpjpjqkqkpjqkqlqkokokplqmqmrnrnqmunxrxqf{a{r|v`yrfztBQK,9+(6"&8xƺ·ºöǿºƾúĸǵƿżŵƾ|stp}w@AHA;E?;F<9H<6D62>2-91*7.(4/)31)42*592;UKQyir~~my]PZ>5><5?:7@<9B<6@93=:3;8183,40+22,44+36/69/7C9?\OU{oy        "#!  ! !        #!!,+((%$&"!%!$!  '#")%$,(&**&" !",(%/*'&! ##*&%!"#$ $ '# )$"$ % $"!"#     F8f}neVY[]`Xny{}{qwymmcVl|́nֆߏ~iŐbQXujql`bge`X.iې~xlwf`ekjgrtll|όqerm{ƺÍĄ}ff[asoq_n~vkdì|ȳɸ~ww҂zֈrƼzh·wtNpwҹжҷɮoroouuüxžrx׃|nwCܷظ̮yǮȱʴƏvp_\{Ȳmremǩå]͋Ԋ~y˲m̍α{Ҵfhзpڇz\ζoʶjRb˽oµkhswl_zȏrƚϥżȻːԍٍ։Ӂ鏱b{»ԝ̗ǽ~x}Ԝēh[r߁}|}tzނ܇g}ʂkaqryhiSgtOɂżu~?[ۏS[ч|vl^nultsԉxx}y~cdހ~Ďwtulat}j}fubpQpli߅h醴`R\vnppotW  + #        ̬ѺølwJi@f_yƢĻ߁yYhZ&&$        )2=zl|ɫӢ̡͛ȝɮ֬ӬԤ˜°ԴѶƲǾ׻ݹڶ׆KM^oW\|TxTiFgordecoLfvSrJXyO[cvHzMieW|Jt@Ho7xHL|Du;}{@KRFH}D~GFyARLr6x}B~Cm2sw<|x>|\Sx=o5wNHw9z|>|>}Az>~FMFBDPTFKJGZ¤6Ce7tJ}@~@Bm2vm4xp5x~ABE~B@AGFA~;HbWBKTNDSGy<}@COB}BJs:|r:~t:J}Dx>JP|B~Dy?v=JZs:yt:zRJr:{~Cx@}i6qt={zATq7yz?Gz?|~BJFACl3w}BDWYIGCXR?}8y}9{?};{PI=|}=|HKA{xgml[POXl}jY]cW_{ItCX\_`ba``\TxIS^}MTyK^TrG]V[W[fyTsNa[bxYemW@`m{pūһ޶˦ɻֺ̗Ƣ̧bef #'6Oefqvwploinhnilhlhnhoipkplpjqjqlqmoininjmiokplsopjjaywu{sqpu}}slFRM0700Hn_j    !%!"*$%)#!.$"2(&,"#' "$ "            !!!,*('&## %! *%%($#(##$!!&"!!'" .(%)#"($#1-,*&%!$ &"!&"!&"!)%#-)'*&#)%"&!"!"$   L?'hż|fbdYY[\Ubw{{Ėǎt܉ݎkfV]noocf{Ֆғll}bo~<\fzhZb]cqd2W؞ڙ݇wtnxZdov¼ylmƂrnz}r|ĶʼǾxdcxf~kJXb}ldn¤}ƬιƆ{uwk̄|ݓu֏SƭГжʭ}ǔΌytɼ|xswraeHǜӪԲԵβ~ɳxdzsīηϼyts˯ֽnbǬu˴}q^̭}˭wջyȰn\ևrƲfůeҾp|ɻlqڄ܃vց؃~⋹nȿwtǽ}}μɥҤ¸ψىoss̍kyГǼ|}тσҌz]yu|zsws؉ؐsnh]p}jfl{ʵouCKXCdthсyNjVZkZ{Ёzlgfsv\̂tnythlh\ui툮hk}ɂfap|]ipse  #            žRkYYuOnjlpyDž6B<  -/;W`qs|ϻ޲ڱ٦ϖͅӾݹ۷ݸݰSalaWw`XwLuMeDrUÐksʗw`mIkImJqJxPYZ\wIyM]an@dbJu@~NI{CRDEJ}BF{AF~EIy?~z>NOIp3tm1sb*fy>|Ev:}y=~x;{E}?|?R}AFQ{@{?~B}A{?E}B}Bz?|Qn^YGtV.gzDIh+nw6{Sq3yq4yz=CEQz?x;x8y:D>t1w3STJVN{>OXNDDOTH~CH~BQ~C|CODHYOz?OQKNu9yu:zp8wn8v}E|Ar:ws?zc0jh0lUCy<~AIFHMCDt8}SKJN@JBF\NHILZSIDDUNFGb^OOU]Y^RGQ_HEPLQUTK]bVFNYROWZNKXb]llWXTGOHFIz>z{?{Fx?zGz@zs9sJw@zLY`~Ht>yO_}A}xɍբӐԂՀЁȆ}{zJ~|dsÈȏsq͔dq}{pyp\su{r[gġǢӶ|{y}prmnłn}F̶wt¢qttٙ⟹tpνyߑzZ؁}_v`GtѪΪˮǮtz̮ʬŕ϶տn`şyܽͲʔDZ~rjwǪtĢxeжq敺^a_Ղp²bofrW\lkyor΂˂ƈsx܃򛲦ju̡čŹ|ٍ͈ڄhۀ󣳬e_ȆՎ}Ѝҕώqލypuptבߜ܄xɊkЈ׍ыnJ|zkh}ssp_˒qiȼ|]mp܅}v}hcWoclxpirpf^Xotrwi_cgogbftWykczׅube\tcp`j'                 ]mYĚſɧ>W=j`pt(/+         #)08]lzخ؜ȁn۰ܬסÔqꙬ޼߹߶ݸݙNRhkUY}QRVmGeFsdekvgwRrQaB}_=yqJY_Zf^/ssHayN\P|IVyEGH~DGKFQD}An3uy@NWMIy;}w5wp+rn,st6{m.sv8{J~BJCCCx;|y<|H~BG\|?z>~~BDEGu=~lJ2[F'Zo?E}ABw6|v7}}?{>|>NEl0up5zm1vr4zCDHq2zFPu5UIJu9}@EI~@~ANF}@CRLNu;x?[Wt7zINDRN}AKz<||?x<|C{@s8xv;{Xz?}ACK@XQJ{>|FBE|>t7zKVIFJGz9zFHD~>|AEHFKJU_A}CaYWLMWPJJVQK[MMJPMOLDOM{9w@}VSSKMNO\\UV[PTd~GLyC|}FFE}A}|@|GJSLK{D~RqSIt@zq@zfDy=yKIu7rd&cCIz>{i\RXHKVL_{iu>w|EURb`]SPbY}KVlDx]aQ}MaSQTTP]hX]Zd_cacabg}SZ`xO~Wd}Zz\qQgz[fI{sUtVdNr AJB¡ķƧ̿לϧ˯ɤ   !%'4KZvczropjoinhninjojnhojplqkqlokplojnjnjnjokqmli{Ӷrz}|vzw{Xkn4956;.%.JaHpdҿļöǽǿȿǿļû÷°ʽĸ`hd97@?9C?8C82>3/:0-6-(4/(7-(50*56.9A8@cU^syqeoLDN93>=7A>8C>8D=6B;4=92:8197,66*45+33,35.5707K?Ho`j{    # # #          $! '##%!!&"!*&%'#"*&%" $ %!&"+&#&" ?0]qgcangNRc^[ojgqdv|yqj{˃|Δ҂xsnlyŁ̔ګެxΑڙs;>y__^be_ckYG]τ}ÄŃ͍fQ|~wosjȅŁkutln\tτԈф΂yZx˿NũuԸʤѱ̹xЂƽtŻyĹy֏yþ}qgwIx~Ũ׿Ȭ|pqtnŸwߏlmڂwkbHɩesղėپҷؿйXlҮ}ԳŒȊϺrdбʭΰ|շ}Ե}h]Ʃm᝽]qvrRr|bit~ǽoźuûz¹{¹vgifj܄݄qȾĈҚzĊЎʆ׃݇bne҄ՌoξЉكxߞךሱsnweꏺvӌلӂvʊqڍً׊tdmd`ޘߙptR[Ʒ|l:sЋXۄĽhގƾwx戫XVhstP\jSfhhwy[݄됾|fla牷bgqmd~އ[hمtmour냽dh^rڔ_lO          &!%        08-׽ĸțw7R0f]|Κ,01           #)/꠻̋wl۬׮}~ݼ޺ݿo{[RvtWoJ^pEvJ^hDU3vւdk՟^mJ\}X]ZxPj?sCzKUcwH_MToyHw>Ju:zt9zOH}A}AGt8zI~GPGLLA~>?B}>v9|{=GLIEBy;|n0q|?EFJIDDBCPJs@}S+_l<{p9}L|?G}>|=}?E{=Bq3xYU`#jDEDF>r/~X[DLZKMy<B~@|=~AD}@{>KIGq6yx>TPE~BLZTGFCz>~~B|@|Aq7vu:zPK~ARNXADOHEMH>~GBAF}@p5wu6vCA}:zEGJI<|ABNSVJ@}PZWJK[VTPTRUSNTJUFL^_PIQKA~>|;z={LMM@|EMNE~GE~YNFIz@zJu:sNYNPIVQOT~GXt=wn:utA|l:vv?zPz>{t9wHj0jGMGFJR`\TO\KIyD{QzD{|F~V_bcXl]STwUXoC|}PYtE~RX{H\LJZaXZUZWZVRTWcxKj@za;s}UhzU}\mwV]tR~\{XrQu[373¯ƾΨļޱ¤ϮDzˬŮǫĦ&' %'(9Uerqutqlpjojnjnjnknipjplpmplokplplplplokqmqmplskxpq}qku[ln7;38;-+2FZ;}pɷʿǼøûûƾûûöưƭBFF;:A@=E?:B=7B71=1-9/,5,(1-'4.(72,8<28B>8C>8D;4?:3;8196.66+46+36+36,44-4<4;ZNWylv   !          !! !"%! ($#%#!!$ ! 9+srZ\][acWYYXS\_ZcUawuo~҆΋՗zٖԂhYnuŁÅЕ֞ɎupА֕cbr+k`Xc|eXnggVa}wn}ui^di.o’t}nerz|{tdɺʄʁ͂{f`h~Ttҹí~˻~sƄvtnþyՌpnjƪ̰hҹʴyvư{į~owj]|tspzuypP̨۷ڼÊԺȇƒTȇΐָɏDŽňpƧ}uʏҶ}ɱwX`äl΁}u{||xbڃ؅yڈچ~Ɖtlhdgt‰kņ|׆푹oԊܐi}z{wǵ܃؆˅Á܏ߊuۀۀwpnxܞءԕ׆҈Ήיґyӎʆ̀ۍxΆٙl}cˉ䟢dgvRTcTܒ]׆vъݒs^xnubZurnae쉰t\k؀syp]^sVhby[Xdwyd`ik|e`s[rigx         .&$)" (" '0&'1)&2.)      ")̿nx=[4`^~gw'+/                  ɢn߭٣덤dvt߿߷ޭjs`S}pTioGrIpG\atJfDs|`ՌnyStMrltMoFrDMOf^PMNs@~sA}QGKGLJQ}@OMSL_PPVv9|t6yz;~s3xs2xu6yF|>}AF~?E}?s5x{?p5tw;}y;~BGMBCv9|FIr9zc1n}Fp8|Jxy:BDBo1w]N{>zAD}@z|t8vHNT]~?WFWVECDDIB@ICz6}v2yKOKODMLMOXWMCJNECQXTPG?UX[P[TJX[FT[FVQOWRPVRDTab]\HVec\TTaOL^TcVGUGKMKP\Un8qo8rw@zJq>yc0m|BRKu9wq6rr8rZMOLK~@}u6tBXYWVt:rr9rPUkcjm_S}MzHQo[SzNSWdlDfZbz! !            #$!"!  n_;ȁec^_e_\de[U_VZ\aggyz{؆ܒ驱oYχτpi`[hpvhlx܄}owhy=Saq\ajkndtfpqwmciIW"]c3vwphfypŹø¸e\|ƒŀĂ}onHB'{|{Ie~wµ}sżljxmjumiȱԹxunlɖŴ}}Ѿ}hWbaUuһĭyr|`}K۾ѰۼӷŠljлcfؾԸȌʊrsپ~ioŦu¦oīxcrʴqy{p~mestpvxzτ}}Մ|dyԂto}wݗȁ~{zɂü|˃шȾxϏ⓺w͂ӆӄ}t{ځֈ̃΅׋ukzzq΄ّۉۊ·ȄƉ˗҄ه΅̐owa]oJyyaΐefd{nxmpf]ٍғuQw}susqiOVwsjqsjgexkKɁ{yÁݑzіԛxlnsc[~v{q@J059+       %)"0,),'$)# $ '!40+      06)ϳøjuAa8hewanfrq}              xϜЛpݭ٧ӻ噰H\Uݾ㕦TRlq[nMzUyPuKxMUfxPvQwi~_kdwPmGyUgrGp?o;NxIkc{IW\YTWMNHYUJPGP}EyB_UM}Br5vu7w}Ap4uCv9yx:}|?}Ar1tx7z}@r4vHTn2sy<yNPB?U~ENOMIx9~y9}IACG{=|?}BJNY\WFv;~~C}By=}ELMz=}x<|KSGFH?~BDHV{6x>~KK@M]TJFO>CE=WVRIRNR\YZRNR?~EBC@LQ`L?}MMP[S?|WL@|EFHTOKQKTI]RW_cc_TZ\j[R`RSZXVW^Px:yEITSTYN|E~GzA||C}Ju?{FGQFDVNEZU~BENy=yLURKFOxAxJd\s}^T}KXXY]yMrE{oAwW[{IOW\^d^\RVZV^WNR|NvJvKV_in{QuO~\sP{UyR]wSvStSz]?+E ẓ̌ԧdzˮȬǭŦβ̭Ɵ$!"'&#&'0Cwqnminhminjnjokoipjqkpkplplojplqmqmrnqmsounw||v}x}T\_681;?1%.]rM{ȿƼĽƶŽºõӺôú¶{IPS:9E?=J<;F95?71;3-7.(3-'3-'51)83,:91=7A>9C=9C:4>80;5.74,46,55+33)12*15/6;4;RINtip"!!              !%! &"!" OD*DŽaea]ekhcXWbjiX`mrvu}ߘݜږffӆ׉҇̓ʀui`]cgw䃞]yzy:TfdrmmsmlojҰį̹bxG:Ak’{~`vrɾ|ywU[÷xΆĸ}ˆ{vRZ;"" \`gXwIjkrty}u{ɇćrVmsx͜xŬȕisǵ|syѿtsrYyvǍɶt˿vtjj6zˬֺͲ̱жōċzRtƪĬů|ɲfxåŨq˯|ÂĀιqh`ij`lpsxyy|{Հߊlggoǀzx߆ux̓ÃƌݚːyЎ|ՈcДÈvˈӒwsyy׏ֆ؋ϕŒ|~~ׁ}ڍݏߖښƍ|Ȃgf}ʓgtfjXĽQć_hhnWAbumˌckonmt_iۍn^y{pky]odOރj]̜߱Ң`鹳͟y؅ti~߇Җң      &!0,'A>;51//,'-)%  $!    ȰʿQiWJmBewjofl]^~             _emՠҖ͖ʈۯ蓨uLaVڹݦ[apXGovW}Y^qHX^{Nif[ŊgtvPgxcc;|xQ~TvITR_Rf[RYRVwlxD~KHO{Cx@RWS|E|ETOO|A}Aw;yOMr6vs5vu8yBIt4vr2t}@x;~C~Bs6xHL|?}Aj/mb'ei-pp5yHSl4vHIHI~BzyREy>yt9sS_HQW~yos@ws@xU^U~MwI|tGyo?t{KSP_OzFX\`]TTOSQY}J{IOvH|PvMlGx~W\_\]zVnI{TyRsLzUuSyZvZR;`Za\ȳҨϻժͼպ԰ɵΧȷѱˬŤǩž(%%"(#$ '2Thvzzjgiejfkgkgkgkelfnhnioknjnhojokqlrmtonf{r}v`|nx{nwyw@CB79185/93+6/(4.'4/(51)92,:@7C_N[o}{~}xqemOGO:4<95?<7B>8B<6@:3>91<5.62*24*34*34*23,46.6Fv8yv:{~At8xx<}H{@{?~AIHs7vy=v;}t;|t<}n5yv=}DFGNwt9}wt7IXGLW\t8Fv=q9{LQDLC~AKVK~AELSQNGIGGMw;{LUTPMIPJ?N>~OQEGXVQRPIKNBC=}DH@ESTJDESVBFHWIVTNX]O\dZba[KPID`UW]SGEA{|:tL]WRWXPOOKd^OYbYYRRT_XPUMR\OOHw@wKxAzKO\J}C~|Dn8sxA~MVW`VLOXCw<9B<8B>7B<4?:2=80;4-54+45+36,55+46.6>4:VIQuhq"!$ ## # ! ! !        !  ! !  Y}fbdqlhonTjm^hr׃ԃ}ŀЊ|xP>tdžɂ~{srlwhWjdsძtȔԧ[JtuqtuwrryƘ׸Ҷ\ƎSoi>ľÀ}qÕ{rphdomk^]ghfjgjgqz{ra]va_~BYjowtpƼŗvOxȭpؠƔhīzѸhċy}j}ؓiiląă̺ٓw_h˹_z|ygttyevˏˏrqqjurm]Ҵpz`ļVztnsvԂ¿tsx}֊|vxu{؀ЀǾtx؆ԉωٔё}Ή~yʏmhv`}ڈ܉؁مnڄӋ|΅څ̃ʆ…xvސՇ΄쨧u||}ӓוtlilynMyuxPfVFVee^~~{pg\TbcLQ_igT}wrp鐦h^kjmÊmԚ᛫wzȯ{сtqtoxN[C       %&"00,B@9>91*#    z~ٯ̅9Z9dd܇UsTsto|]mu              +/2׀̨צ֜Λ͗ǖ߿煙rXkcߕ;COj[kNlJuNpDPYdPyJpG|Q\_mdvYl`t6w~AHC|?|@~C}BH~ABCKDPE{Cx@t;ul1xF}AFNWPQNr7~v=Nq9~~DEBy;DIC}@Du8{DJKHJ|BUKGFQ^\PJWCBPZ\Z[KEQJKQMGOD@HS@PT`MOTJLWMALOQTIJ]V]iRBJYXMNTLHJI?|PSTJHNM\USWXLALZTSOahTOTPYi^bY\F~KNSXeJLURS{@{Hn8sq:vTTNUV^IGv:x{A}MbWTRE|B}[yAz}F~PUTr@qh:h_4bvHyNVWdTNzK~|LUwI^`dXNULOM[Y[ZTTQ~LX~[jdskHtjEunK|sPb{X^]Y[[pOyZ}amY=l bqiߵɸϱɯDz՜ŷТȰɯȶЮȯɱʰʣå>=@!")'*#+=x~ptieidhdhdgcgchchbieieiegdhdiejflhjgylqdu`kGiMPr^{aqv;><58./5&5A-ǶƿȻĸóľĻºŻпӰõ=9D??9C?8C?7B=5?7/:7/:5-66+46+37,57-6:07Jd/s|Fq:~v;|CSy>s6}a#nG}BXk2xy>PJIKDCp2zn1yULs8~v=DLI}@{?{@z@ILy>GFOECEHQNV^OHTD?HMIGRLJ~=@D{9yNSF@|9xHHJIQNQITNEC>}GTXDLRUJNw\JMU@U[TNX]YN{8v?|VUUf[SQUPNQNMPSHTWSimNIQPSWU\fUMUUTRWSt:uFN}D}j2jt=vzD~o8rGOK]m]NQC|B}KX[XaGGOMQs@qa3_g8B>6B;4=8197/:6.95-65*36+38-59.6>39UGLufr#!&" %          !     #) ZP/Xcfh[hRf¿~qr{|sdhthnfv{|{xupmc_o]^xލы˚ƾҤEbxz|Ԁsw٬hv9dډx}|XȾƥµkimmljdSSxLuvEwlƈΉeeku|WdWiooyqyzdu~y]HnԵӶȬzȝì~n{|ĘǜiҷϷ¨ṟtąƲtϕ°v|x¹xgwxz{œtkʭѷŭ~oּ̒ѿ{ʸ}ŭҹĕαÒиvZʰhzǻeȿaxq}zsy|snևfqҀrzpf|vqv܊ߏÅÉߓۋx}Ԗؚј͉܉ނzq}DŽynekktzoo`͂ȅwݚѐy|zgqjʓ|ocuaaT`ფ~oId[wrqzqz}MbhZmlm``q{l\[hrvnZb|rqerta`{Ά΄܋؀|g[iӀIVB        !"$!#     IMJӡIbJfe¡]zeig~u|&,3             fsv[qxʫک٥Ԡѧלɡ̴ݐwUg^[tu~RRleOYV{S[{PQxKsGS\vGwIwNczTwSpMlD~QZ|OxIOU~LO{FNzG`UzH}KkhNVOvBuBw@]L|GV`]VOKVm\JL`[Ez=~A}A~C|AJF~Bz=y;DHx<{@w<|CJz>JMe2tPv;q5z{Aw>Jo3yJu7Tx<~BOUWMMSJLDLFKIDJIz>v<q:{o7x{@Pv;}FNSPLEFNS]XXDCNQIIEMSSIKPJE\aNJ@>}I]QJ>DVOSC;}z4sHPM:zBJQHMZPQMGQTXUHOQb[K?|MQTZLIWZTSRTS]\LXSJW_cKNOYIU[R][WEVNz?xWNQJq9qk4kx?yN{B}LUKVQ[TGDEJ\TWa{B{}B}x>xQStCs^2[S,SX/W_4Z^4[g8gNVvE{zIaXwJUP~M_\^^WTYSKXZTPMKM~LcrzjzpS}jkwWqPa][xS\dsQ{Y}ZA$E|ѶƵ޴DZƮѩdz̭ƫĺӱʲ˯Ȫ¬ñɬƤƣTTV %! !+#'41<67,59-(1 ŵķ÷ùûú²ºļʿͿ̼ԽƧ}xzwvw@=EA;I=:H;9G85D3/<0,7.*3-&1,'2/*66-:?4@XLTxkt|}}wzdqXJT@7?<7?>8B?8C=5@:3;7097/:5-83,44+45+37,4;08E:@`U\s~  !     !    <."C3!xjFhP^_f_zΎדώψ~yjfHhskoyvxxzvmfq]\e`s͈ǏڴБoOw~~׀}n̏t_lHۉxo~tofżxiq҄Ɇ\fdaic^~Uq¶xr¼}шny7Qjtlɾs}Ӂx|znswVCƠҳͲ̱ū}zů{ҹuǴ~ghCwXʬȫԹą̶yu{ǵŷ~kߠo\|{nņ^pҶ˳ƮuȍŋLjn`x˷n̳ĭ{os}Kvxp[gуywxڈ~x׈hdwxuqoyȑޛȃܕюƍ…׋؋Ɋњݙ͏͢őܖތzwneyxw˃փxlma\erjl呵lӏć}ڒψƇ{ėٕݔЊuflÙْgfOWfqonUj9~݇vrv^|sqg`ymp~w}Oavjokexyyorywkhuqpمsswginwrчҡ)          HOKy?\6mhɮчZx\lkordc            '21of|حڬ٤Ԥբ֞ͨЫֳۘ~ȽQf[Ogf܃(:eXdyRYYvM^RzLR|NyKURwHceFgEsNyQwM{PYU_^MPV[~I\XSPpSOwB|EuAY~H}H}H{G]eQMzDM~GyCJt:}{Cs\w:}t7zz=}Ap2v~BE}A|AEI}Az?v;~PIIR}AM{Ek7yHRKQq4{CVKQL|@z=}@LPPLIIUMz=DBKGG}@{>~Cu=~w>Dv;}y>LIEx>}ANEOOEKEJDDWSJEYQWJIK?KMIAT};y?~R]SPD>YF@L8zBGF?~@JEF@DK\^KHTTNKIXLO[dFE@{KUTLLM`URKK]YV\VTSaiQE|QXQV]QJRW]OWF~MY[w=wQP}A}|B~y>zT\\SV`PCO~B~q6p^RTHm4kx@xHxBzp:om:kg7e[-[_0_l;if7fe7dk;n}MXdyGsD}|OrG{W\mll=yTQZWWJKXRVRTML}JUgcw_unfIvy_z[vU|[]rL{Vb|[|_{XxTwS`@k172ȿӬ¬תȯȤȹҰɱʲ˧§#3((*!"  #%&#"&.'-.2G~yyzronjoknjplokoiqlqmqkqkpkqmsnrnqmzvkangk\t`mEQR47/78,!*lziƖòüǽɻŻռǶɾ}v|vVZW85?B=K<9G86D53@3/;2+80*4.(2,)2/,570:LAIm_gu}zq|iZeG8A>8C?9D=7A;4<80:5-83+61*25,55+37-5;28ODJnbl| ! !         TO@o˿ĺ}¾wŅԓѓːɌ̐ˏ͉}nZx5[ڒ}lomroopllqdTisrk{ːݹ۵zQThoooh}Euz3mtzׂzh\Zhcguwҁ݈x`_rux}tbv{ŎopzÐmuzGI`̄erx˾~}ЃӆxyaycŖʩ¢|Ѵ͵ϹůzŮsmh{HO)^O%ζʫҵѹ̸ǵȵŴÐ~vs`yvһxo]cαԽֿívɵ|¯y̼²g||elĭ}hY~tnhȄ{Ն|~z|vdoqۀօyÎtsؓڝʔܕŖǘˎoo~rryՅތrpknqkyp[bz՚LJĄmJjx?ّޕ~љݘьאɊyweĖyq媕oఓvi~W{s|h䈨j|dʏǖ_ft{?{jZsjssiۇዸn|wnlupr{ٍׅjuqmjpw{}s^       VnZTtC^UvΤ`|eZ{VtrrqŽdz|        #ESTnrۨةؤԥأ՟̫ԥϫԹ៼Ÿy[pjUhkq<9R~ga{RxR|WzRV|KsEtFsEVWQSTvMWtKlDxOZTirSNW\XVR{HyELgZSKLS_yC~I}H~IZ}KNcIw@LGx>t;zNOJz>x<|MTEx<|@t7yu8{~AD|@s8yDRNzA~CGNRl4xNZQIp0xAHj.xMFd\QgNDWPQG|>{=v9}w9NOI}@C}@Ft8{{A}CT~Hg4wm5xt:~q5yUN}?NFKGQWAMUJQQPRV@EEz8xI={HO>|DOSLGDCDI@H;||4tBJEEKNYJEW[SOPTELQPSUMOKLPROLUQGSRMOPR]W\TSSSUORHSUGPb[`[PFD}RHHOWOz?yF~B~u:uKNFSTFJKEIt9uz?{KIDFwxwAz|D~r;ro=n[.Zc5cj8jk5izG{n>nqBsXTXP~MYzOWcTQuC~~HLSUWPQXwARaSRS}IwGWq~]lPzczUoMa_`}XtNzT__lNvTyVvT\H*L ͿǺڸ̩׸͠°ʶаɶϳ̯Ƥď%$&$-$#+!+ '%&* ,""'&'.%'(&1IVrxusrnqmplqmqmqkqlsnsmqkqlrnuptpuo~{eul`nPnVcihohx~Ygh060<>1/3$%3!ðź»ŶƻȷϻŠuq<<@<:G?VLRylr}}x{jqZOW?8A;6>?9C@:E=6A<4?92:5.63+53+45,55+46,58.6A6z?KD|AIHLTHGEIJKVIw:MMMOHCWXRWXNGCISFITLEEBK}AC{An5{{DdNUy;UHHNQ~?Es3s~=|ETHw4wIJKKEIFQIFMZT};yw6uGFHLDD;y<{LDMMEIMMBG\O;zJWJFW]MITSJILPE[\OFKD}~>vGU]VN?zWaQVNVPNROMO[SOb[TTT[SNTTJNZbVz?zFh,hHXFGMHDI{=|}B|BKJHSQx>yt;uJWVooKra5ayHzzG|{H~{HuE|W\zJvD~Och|LN\Mm9t|Ew?||DJVRPXTS^XNMO{KsG}{RbiGuoL}wQ}W~YbeDzfAzwP{V`c|W~[~[rOloJu+"530̶ղǞל˳ͭƵΰɯǫ©add(3'(&(-" 0$!1$"0"!0#"/##+#!( ()+&*)5J،vxtqqmplqmqmqlqkrlrlrkqmrntososovoordVo^Sn\UqYQoSQpR]xbo||bpo06/03&8<-%/ȱľȸȼ׹™Yb[53=A?M=;I:6D52>0/9-+4,)2-(2.(22,66/9F=EaV^ymwxxt{nul\dKAH;6==8@?9C<8A:4>91<7082,41)23)24*35*48,5>2:RCHq`fy! #" %!#    $!"322!  J<.۳֠ז҈~x{~ȀΉٔҏʍŠÍ|࠽ń@hlzqhaignqopgsupvǘĖiz9`΁ցmh}xhoqgiTaa_b\bVRzޕ}v}p{Ƶðİ}]KJ\Ž~vɸʻǶʷïw~݈u`\x\w]ƩŧͰ̴u{|Ɯʙ~y݄LPu}xzgsuef`¦~ʲѻȒʸwbUޜ̵|μɻso~xvxxy{wsyu`yٓ{}vτ|ƃԈֆ؁ԐȗȒΈݒ؋ېؒ֓Ԓܠ}׆ו͊·~xpvtׄҀڀӇЎƇ^gckecetvmɌ֚ڟtjЊޖ桬Ǝo~ݑӉʂʁؐ̓dጣrxNftovfɷۯÖj[}]^gPddw{yRu€jcwbTkbhmkriutepl{r]]eansw_      &$')'*  NgR|jvtSrSSxEjnΒ       cnyASWd}ݣԠФԪڧ֙…|Ǿ螺\umNabx75JYGpqQ|UwO]wsR_XyLUSMJxEVi?_}TmEjCxMd8vyL[|JNwEd_YUuCi4wd[QLN{Do9t?tAzGNzH|I^|HxC{EpjTTl}H{B{>z>Dt7xx;~w:}}@H~AD~A~B}@m2tHHMFFIw=~CQ\Nz;ESr7|NRNJSQN[GHMCMFz<}?TDTVQLLBSMEv;i2xk4yJ^V@HEYUMLGHFRVOHF@@D?OJGNPHWML?~=}IFAX>}:xz6tz4s|6u;zB[mEC@|6uFDDKQSNFLZSUVQDFQUYRB}J]JHQWJLNZRVeSUWRFMQXMWfWNUOLRXa^R]XVMYRELr7so8vOPD{?}CKP|>}F}CLH`_{>{SF}C~NPkdxIzp;r]XxD}sAzUVWVYU]OPZQ|GxA~x?|IJJKPZb]Z{GWWQW{NczUmH{p|ZY{V{Z~Z{UoIySj`abc~X~WYC: ¼ë۽ԯĖݨЫĶзұʷЯƩĝ>=@2%$:,,,"")0$"7(%;*'?-);+'2%#-$"1(&0&%."".&(%3rm}tsrnsosornrmrmqkrltmrnsototpsotoywl_whWq^MhPSrUDdDYsZius`pn0;3/5(05')ʾŦ˹ɺѸȿtt=@C=;G?>K;9G84B41;0.6-*3+'..)0/(22,7:3=REOobl{oys~qz~msq`gZKTA8A<7>=8@?;E;8A93=8196/73,42)44*54,56,5:/7C6<^MQ~ks~    #!$)&+&"(#$ ! (''<@?"   }lUנؔԈсeo{ćˊĽ˕ʐċpH_}wm~vdk^nssj}qup|Rd~yRPr¿smxzi~؁oWdgpptlcih\c\gl·yyxzlǴìī¬ȸ{jf}dNbjkoǶwɵxڋ܈g`purlA^±sob}zŝƒπvj~kxZtÊw}XmzͲÌԾʶuzc_hr|uj}Ʊy|vovïvwpoe˿uԈ_f˄Â{wwʄ}iÁ{Ɂϐȓ’ȉЌĆ͑ǎ͗őȉڄ۔ڏۆم~||p}~pʃ~fihahjicfevْҒݤҕon̋ω~ƃ윽{rtqyۉӃt֘ޝݛskvzjhkkmkuh{զպufg^]kjXilb[fiU]`d}ezeyp{s։zgigecd`qjbajԅk-4%    ZhVe]_}]ەl}jrOqD`Mnp?KP       +,,   dsxDY[QmzۢўˡЬۘğɣ̌ɱH`ZwI[W|UOd_Fr^tLtLsqK~OXwJuH}MM]XU[vPvQ]qHqHpEsG~QUyG|JLP]U[q?xERw[JJMVUvBONZ]_PW|ETxCw=t:|xA~FZZI}ABLz>z>x<~u8|o1wp1vGEo5w}BDY|AEKu;|CI\QLSIGfKRQXYXZFGC@@};}?x:}~@OQabJAF@C?k/vp6{HAAPJHIZGESLHEG]ZPE@TEKNMJCLKcP[K{8wABz4tHG<{<{y2q{3rD=|V]EC=|JF=|TH{4sPV5w?QTOSPIJMRLSMRSSOG[Ux8pFR\[VDzSQMNfK~BxE~HRO>x\`VTQUYJLXS]WRKGJx>yu;v|A|CGREAy;zz>|IYRUUYYKm2nx@zs=vg7ma5erAv{D~{E~KTV|LyJ~N}LWzMaV`W_g8so;xw?|LPMYX_ZZ\YUQLQbsI~uK`}z[wP}WrS|X[wQZe}V`^e{TVdW1Q ryrϥڿ׵͖гȌ˴ϸӳ̶ϯƫ¥Ē  ,!"-"#%%* 2&$4%$5%$4%#3&%/%$/%%1('6,*7/.&*3@VoeussosotpsornsormqksmsotptotptpuovsiYsdSs^PmUGeIIjKUrYeoRg[1>41:.6=>I;;G86C63>209.,5-(2-(0,'..)15/9E>GaT^{lws~tr|xjrgX`L@H=5==5>>8A@;E:6@:4=92:5.62+33+54*55+47,4:/4I?AgW_mwxzx{}~ !"!"!"" !!!$#'!&$#   %#!'%## "  ! "!#"   gЛԑӆՀzigƽżŞÙtn~uwӀn_p~|ytzxssh}zkqÿsewjfsgm\bȄǸŶƻznfr~kaksz}qydz̲yea↡c`rRfmuxoƶw͇fYwſ|xjo|K}TV~jNDZ˸zĵ}xalߌvrO|°|j`w׺ε{ǯvϹ̸~֘~wl~`m}cyіưtmvtqldVmsncpӋ~xnǀ͉|~z~֍Б̔ӓڕɍҘŒʚҚ͇؄xʂЈތ{|{{߃|}ss،Ђmr|nqfgӃՁ}ʕ{ǀאʅؑЊj}݃䍾ʀЂсքׄ׌‰Þw}Ϙްth݇x~`Xwqjz}x[wTקnuUYs[UbY[dbY_eYZehxZ{ihƒՏqme^elg_liQcgfۂ{)/" ! %!       &. h]RrE[UxӏivcaWxH`Suxw           *.0]mnG]`r0w@PMCLWQYJF@KD[FFQFQM|=GFHROE@KDFIHEADIL[IAD>}PTSNLWD@IKH7w>}CF?~<{B={>|=|;z;zSOGOQ>}?~=zQOGHJKLKHIGRGJSWPNV[N^^PSRORXQO[XROSKHOWQV]XPTMQ}B{LV[TRIz=yHEp6q|B}NV`ZMQz>|~CWKOWƙʥzc~HzD~zD~~IOVXQWRuE|yKSWU}MbeyI[lvtJc2lv@|xB~Qb\P^bXMZWMMPU~QWZdrQvN~XwfySekuM`a]g[[YnKo" 000Ʀ۷̖͗ɵϷг˶ήŭħotx( #%) %( ,"!+*'#$) !-&$3/-038'4GzwzustpsornsososornrlrlsototornvpuowtjWq`DdMNkRWu]`gfm]qc2A3*3&6=0%,WcSɿȽŵǺ°òòðٽʲúwwz{>AF::F:SIQvfptuutsgoYMU@9@<6?>8B>8B=7A:5=7295.64-54-53+45*35,59/7@5;TJOrens~wwvxxyzz{|}~ !&!&'"'$$#$#%!#   %#&  ".''& ")$%,''%""$ !"#"$##"# # %$##"!  VI;аџ͌͂t؄vm{ŽǦ˩ȠƟƞlgxvwoirn~tx‰ƖzyylýÌǿyvuqoets]f֏ďоνǼ÷Ƽ¸}dbqvt{~sjɷ˶˲èvmm`opbnfi^hki_[a_ú~zeQ^wwojǹrtxb_yLyƶwO[ÐԺƌϹ|Äʹ{͍oºx†pSpz°inuu}~KXiimhuzus|wΆʃxԒӈՌӕєˆwƗݤĊ͒ƌ˔˞բԌz|{̉wyꅻq}|vsۇq^n|stpuu`Yhۅ΁qxufnẃޕٔv?y܎̄ԉׇۍÁå=O-pَڎ~zNtdwwShs˖߫١wTg{l[m[jozŁ{x_gfibӉfu䕮u؁zkeegj\VZX]^cg׀ɕ|@n3vy>Rt;x>{AJHv>s;OdOLM~AKSMRR{@}AK~?AE?AIQKJAQR`QBAC~?GLG^WVDIOJ<~KOEJD?AH??=~OE~9z;|HM:{JYW@QJPP~;z>~UF~7v=}@Av/n;zHHI}8wG;zCE@}XQBz1p>|EADLKKDJKLPPOLT^LJ_QWOMNKZVRV_UFNb_y=tB~H`a[NQNRO}BzQOM[I|C~Cz={|@}~CuyUa_UXROQIFNSbĥxLIJ{E|GwD~{Hal~OoAxuH~TNSisC|agi[}Mq>{s<{KOUP{EX[ZUY_zGWXS~QsH~~VqJyRW{VtwZci\ZZ[vR|[]~Y[tT}++ ʦՖ™ǵβ˵̫¯ưȭŘQTW%"&,#!'( *" -$"-#") '!!$&)! +%$.+/#)9bvlwwurrnrnrnsosoqmrlrlsnsotnsnqksm~uYraEcLOkUgov}Vi\1<2.3+17++_mWȶξŲĶƳŵó}º°òŲ˾ǿջȱùy|}cif:7C?=K<;I:8E63?3/91+7,(3,(3-'2/*2609E8B;6?83:5074-55.64-54,47,57-7=1:L>GfZczozwzzz{yz|}|||{!!$&!'&"(#%! # #!$  )$%% .&&>534-*-'&+%&%!"! $#*%+)#)% #"!  lËόтwytp~|w}¿ƘɛĕȚѥԫ˦ktُْшzǐxuȘŗʢmtblƏǽytvvgniq_b̼̿ɸ˽˿ȻɼvːùyƏȌdZogs~pwqyɊͿ}{reifbomjrkzw\xlxogg}dn\K}؂nʈnYe\]~cqwmwjYkV̷ϽƱuµvKMپվĊӿĈȴzξ|{zv|йˊ||upoo°z~|iq\bl[EVnwptvutx~yĄՐՖؚڌч˓qƓČs~}~Մ}wyހktӆuل딾s~nyidhj\ojlfٗxrpʁхцԋVgkъɁΈʼnƖȟƨ˱ʰƨȲ#\lDƊxVaWŇzp`]Ÿ̪Ҫܪy̎˕ӥľt_{Jf΅h։喫hن܇zurXcixy҃}ronfitcMbpWb`dlЃ' #&,/0&(&  |x`|Yfdu~ussf]g]idmo             28:UhjShnnVlsʩ٥ӞʻѧԳܲܵ>IQВsUhg~rXxMUrJ}XaXZӋewKVzLwG|JwBl;xQՉs`?|hE{Sc^Y|J~K\ZOLPPm8|s@]Xt<}GKn8|XvBKS]yCXII{DSLIMJQKNMHEEy>IGq7zp7{x>x<t6yn3vu:~E}Eu{Jl;zD}DJQQLGJYKHRTZLOKGGA@JDKy;}QdWb]MBt1xu5zCNLTXI~>FBJAy4vMKA|9{A}7x}8yE?=~LANB?~BEH:yMDNROJ}xJ[RVWOPP]SLQY\PWS]Ow6rOab[TTTWMUNLzB{Sb}B~t7tFx=|t:vm6qzB^bZLNSFMPH~C~OKVVI~HKt>zr:E?3.8.)4,(4+'3-'22,4<3;QFOpemw|{xkvdS_C9B;4<=7?>8A>8B<6?83:6083,42+34-54,47,6:.7@4=[MVvktz|}|z||~~~~ ! ! #" #$! ,($,&$6.,6.,.'$-(%*%%   % $'"&'"'&!&$##"!     ,&Ċ͈ʁˀЇ~Ð}yqzʼnɉƐʗӟզϡ^֕ЏNJǕԨȘ~l}ĕəʛ̝ϠXXR¶rǓ|yrjuyavo]̼̽ʽȻw|¸|vzvjoismu}mWkÂ}qx`qs^itpnoЛqvotwdhbnmiYego~yc`ֆvjEdpmdhaoVǩɱ͸­~yǸ|i:^ԼԽι}ŷƻ~nuѻ˕̽Ńl~fstĶxmv\dcKPuۅږآrzẃٍٖ}uΑ|w̏uxyٔނtvyۂ{DŽ~vy|sqȀstzgdcijOhi큫ToҎxyop|܊ݎyĀus_k}ʔتˤ\pRtY|[_pӌޒrntevoU\{ܡЙǖױؘͫ߮ϖUmۆ\kцeqgkֆqqxԂou舱luՀisk`_beg_a]_]aixިGPC  $('     XgPwv~|krndU~FkgpwTci               3<:VkgQfk톣XmqѧԣϮۤѧҴ߫չ推7BGNJd{UjirZ|zR}SwNwOXVc|tLpDV]tDt@U]O^hL~YvQ]Q]~KNQfZRzFp;Q~LxBJNNp@WYMQ]~GzH|HwCp:~}GZMRXTRP|Dw=QG~CKu:{q5vz?i1ts9{t7{}BJHT|CY&ni8Pj6~|F|BHbFONMXTRJB~AMXUU~@Fr5yCYEDbSDVWCMGLRMMUFONs4x~=D|6zCKQCD?@RCOEz8xHO;|GD?}A|;yy6tBBDFC?H>}Cz5tu0oABJB>}CKMEPFv7sZPKHPUMEMQGLMNKDCJXMFQLXXUYSQWXURQWPRXV[`TE|MZW\_WQD~LGz>xNGTZq6rw;yWNY'_j6rXJLNKFJJQMLFzC}IPJ{EMMwB~{HQ[~O{KvE}OuE}QZuC~W]VP\YjaMIW[ca^XKyCLxELa|INZVbbXVrI\oM~[[~X}V|T_yS|Y|Z~Yd[dY>`INKжǩŹ׺͟հƪõϲ˵δ˰ǯƬ¤fec'5+,+""(%#%#&'&%"  '#*(<Õ~wvtnrmpmplqmrmsmsmrmsounzd}sWn]_sfJYO-8,07'27')3$zxƿ̽©ƴͿɸò}{yzóȷȽЭbjc86<@=G=9E:7C73?30;.+6+(3)'2+&2/(3608D:A_TZzmtwzzs}p_jRDO>5>=6?>8A?9D=6B;4<92:6/72+32*26,55-58-7=18L@Ei\cv !"" % # "  (# 2-(+'$'"!!$%  !""!!$"%&$'#!$ !      1 y_pv~|Ȁ˅uƀЁ؈Ʌ{ˆĎΘۣ沺gz͔֦جԧԠ˒ɑ˖̙ћƌ_jۅP_Оwvkrtjkvp\uǺȺǺ³|qȻܘ_Ԏhuƾ|soeVqrd[bsËȸ|{e}gdÆŋvfoōnflp^nᔹg\_bkxtdbiznfƶɼžü~}gyMжǬĨ}UVňĮ|ɵн~x´oj\ǏǕəi|ȳ|mqy~gzu~h~sY\pqDpp;kĆuԟΎݙؙΗ{Փё׭՝ڗښؓڑunz|݁؆ݐՍtꔾ}}ەo،zމwڀujbv`ehVVVq΋a]{q{݇|ՑvtԀ|ort}ѴжVdBanJʡVeriqӆwhx~n|ӞتŔOE]捥am`afLx]Z|rxx{onyփolekd`_`kXZcY]acڂڨ9F9     -3'|u«ФƆrvaW_U            3;:cvtGZ]䋨wkŤОȚƪ׮٪յλ怗=HǏiz_rt䣦]IhiIuQ\zR|STVTURSuEO~JPc_pC͉nlGe@~pR\PZVvC|I\Y]}HS`Qv?v?|HpD@[tI_VWR}Fr@vDwEt@JPSO{F}HyD\bwAI{Ar8||Cu;t;]r9}v:~A}AJ|BzA}Ct?vAk6|~Hc1vg2xwEFKLDAOHBNGP\RCHB}?BMFMYXLDGw7|{}AKQHJNONEagL@MHFKg^TRUKELORMWJKVYWRHUa{Awy>vNPfc{?yRZM{?wFTNHQJQS]zE~w@ySMEJZODIHKZO{A|{C|DyB}u?ywA{IJwA}~H}HQm;vtC|rAyyHP}LXTT~OQP}LZPLk[V`WZQ~FSQ__Wc_URZyPX_XmH~~\\\lavP{TxR~ZcvPcd{[_Bi" ,,+ɥĻҽڽѶͰǨͿײ˴Ͳ˴ͱȱȰǤt +%".%$+"!-%"*"( %%+$")!!%!#!)Pgl~ztnsmqmplplplqlslqltowk~htERG/9+-6'27')3|x˱³öǸvzļʿƨҵǿvt@@B<:D<;F:9D86A52=0-8,)5,)4+(3-'22,5:2;RFLl`erzzxw|lveUaF;D<5>?8C@9C<8C:4?8197083-50*13*25+44,5:09C7;XLNuhq} ! #!#" #       %!'# !!" !#!$$"%" #"!##!$     % 7#xYqvqfjmmsփيЇ՟ɓ֣ϙآޯݬܥܡ۠ۢ٠ٜkLhuZZ~µ»|zqvgq}pg^kwĺ~Ķ~ɺɹjvźzrlfhh]hmV[n][tw{y{}o^Zu{{{WdĽnsp}wjba_nhSa`ShaÑ˼ʽɿû|֑ixj3ϵǩɱ²qKRghneors{xϏt`pxçӽ|~cl}lXp\d|`qvPih?sq@]m}ԓόNjВޠ̖ȓǎҗŋǕɔӕ͒ДΎˌzށڅٌυ˄jېʃyٕ̓ݏyދvzxnvUXmHwhcǹ找xш|{v|Ձډ·nDž…yɭȍjqqdS\`ffnllapy|\gu}ŌܪО½徟tQ˃VOYNd`luSbzumkl{fdsvmmlqorsaUro^gidj嚩ş        xvĦϤe~zlnfaibwFQQ          %#"  ,02|HZ]v{ћĚǵ٬ֹ}ALPΜs5+BlSkM{W|UnIzRXSd]zJq=s?\RVT|NrɆbZ6tW5ppF{LQWRXSVYs?~KuA}EPvAf9{>"P-yOKSRu>yBzDj6g5|zGQ|ERHt=JN|GbTx?{BTQKFRo5{t7}MK{@j1uEy?LxBU$kk5|p<vAWLILIEWR~AKPSF{;x9}K[x:{u8yCLMXFBHCJUIQPP@ABAKFX~@ALd"ew2uCE|7zHM?{8z};|C=}@w2s?Ly7t>}AQL@IBCz9yA@AKG=|FOAL?~=|WFC?|ib~>{={>|;zBCIJPVUQOJLUMDCQOA|EJSXE}ISM=vKZSSVXXXNE{KRVZR^ZJfMNPMORFN^]bXKQ^PGSOEERGT`THFSPNKOSLzDOLtAzN|KwGyJPxFt@|yGWXQU_iLMTOYWUd^[U]ZY[P]^XxRjG}rKuOb_[d^uqLzS\qKl[|W]nO}}]E-Fp~tԬҺ۸̮ƼՊگdz̴ͫİDZȳʢltw$!/'%0(&!!"&0Htosmrnplqmqmrntnqnrmq~|Sa\/7+29)4=,%fu`θȻõƱIJŸĻҫŸ®ººT]T97=>=I::G98D73>51<1,8.)4,)3,(30*45.9B9B^SYwjpv}xxs|oblTHQ:3;<6@>8B?9C<7@:3<7084-51)20)03+27-67.7;/9N>Fg[`~t|        " # !  !'%(  !     :,nʽx{þw¼u|}uqqmt}yؤϛԢܨ߬ה\xdjs`durvrnvmpezwam{xxyiόԎhtxVW{وsy[P__xz­zyy~t]|Igu]ju}kq‰ÐgyƹuaWsш÷yĸ]jiq͵f|ųôl\hqv;Sy~eme]q^~hxj_tmQ|YysyemǧͳǵŹvĬȹ`|plpwĊr{pƄ̅ҕz͋֓ҒҔΓҘϘˑڞ娺Ȋ͑їϕ‡ʇ؎ڍӆܑݛܣŀؔv}{ˋ}|׋ߎ݌lwtgzVd\hoQngfcΆ{xoxsr}yruytʏؚռux`qɕ^JcbdgfnouvXwҦcxŌyunG|rMbanwxtHXpnr҆♰{mrphkzn}ztm䂴ku~opowكۆւ׈ܑUjS    æʰԇxtuwuyzu{                ! !$%fuuG[\ޜŇWt|ؘޱܼxDOS֣p֓ !/VHmlTeBzSjFvNWYQQ|NiLxHUXQasHg>sOa<~{P}SbvB}Ip<LLwAvA~JP~KNxCr:}HNL}D\#ik3{v={?Fz@{@PIJp9|NXPZ\ZSYWL~APw8FBELH@IGIGNXDq0sx8{SSGMEBPUNIt5{}?Vu8~MALNEVz7z{8{KLE>z6vIH>}|9wFK{4vy4uE={q,kIJ?~FNL?}~>~GK\JAOy2u;{:F=;H;9E97@61:3,81+6/)4/)3,(12+572;LBJi[cowu|v{v}|nwcX`H=E>6@>8B?9C>8B<6>:3;7083-50)04*24*25+47.7C5=]KUwis|   !!   #!$#!$ !!  """,-'    -!ȼؠ͋}}wzzww܂{oswőҞΛ͛͜Ҡե΢ԧӐ^klmtwwze^iiopunwpfjozʐȼnimkyuSȵoӁпvu}xd_`vr{uu}vv{``lxhwͿf`˙vj|ʺǶ}vsg^VT^mȽuٕȫutbzy[ɾzvĀ͇^S}bnshiʔٜ^y`vu՝ugvcns{nhͳиƝy}ï}txyvt‡}ؓڎԌǁёsvŇϑ͕֚ϗҒăшd^nŽǑĊɎˎ՜̚ԡ˒{ޓ}Β͊ԎՏъx}v`ik}\nzlUVU^byroyvù~qoyundwĥkrXrws][nuS\ch^ijl}|t`zU{aUmupHZ~zVrnK]gdNLtّl͆n̋vTgvmxpfkau~ekl`ju~̀wkJc:Ob?VeDdsUWgJ4B-    KUF̚l{vzosgux                  O_\9QNӯsaȴ߲ܰۧЦΡȷxBNPۥz˓FWb0-Go[rOasQ|YVY~QyM|N^UMee^]{LY.ve?tKuJtKa;zpH}P}NzHPPSV]XYYLwAMzFxFwfRLp;n;~Kq?i7yj7zp=No;i7zwD}J|ILRzCs;~|C|Dk6zp=:0-+0+*)$"& $%!!".=Qprrnpkqmrnsosmsmtowrhyx38225)37&06" -нʪʾЦ³ǾZa[<6??r@n;}h5wuBxDwAt=|FJMTPGHv=vA]*pj6|n8~y@l3xTQGL}@CDq7~w=KS_W{i,su8}MYJ@ZXDs5ys6zK>BMAj%io+m?s1rz8y=}A|6x|7x=}{8w>}Au2p|;yF{:w@~Bv4r={@JLD?|D~~B=|C?~D@{8vM\YSSA={U[EHHONOYX_SOVKMQXNP]_NMaPLOVWcQKHx;qYXMGQKRVM~C}v:tz?yQHKOT\YSVLO]XONKHTMIaa\PTSNt>{KK}FyC~xCOQROTOWrEyuJ}T}JwFuD|ZUQV_h3gxCxHGLs=xY\PRUU`ROS}LuHyuKuNvN}U^WuNa}YwRwQai^[Z~[cZ`bbP=S  IQJƼκϵ̼ںд̩ĺѽҲʶϪëïũƟy.)'("!$#&$#""'!=95?;9764675201+''($$$ #"!(*AyspqlrlrmsorlsmsnxswUb]59-47(/5".59G,įպǿħ«ʾ˦úIJO@:F?5A>6C>6C=5A92:6/74-52,42+35+45+48-6=3:RJPqgq|  !       ~֛ԠئΔʅ͂ɀ{yكygqyxrnj˖|~ԕȎ٦١՟Őxߴ稻ʇSj|rv{x}րti_]glknYlot|mywiw_jq²oijsȷuƵwôxsoizomtlνƋhՇĂͺxƴȴ}ŲytʼwǾsfT{®}mhmga\nцĵrihggoy}rkxztbappߒqgosǔzuưxg֎ŃitzRr{i`jrTc{]{o~ƻ|vsjϗŎڐρwrNJ͉݅衺͛s^jH~zqrƌƚǢ–ԋޒɄݏ凨`gw}tll\cأyߚjmnƁ΄׊~؋}R[xu}{oaY뀳[fPC@guSc]caepwSwvT_[n`lhC{|VtsJۛߝN\VpVp}szusՂ~|lwwހрve\w}mGv?;m9=p@GyMAsD;o;GyDke2J.   "$   ScQƵĨ}Ȱ~wsmdoiuwȼ            bji;HG·goҷٲܳۼe|}Yll}񤵴|uk'/G[Gw}\uTtUpMuIxJtI}U{PX]T_U~RkhFtIzJPXyOrNrSjHtFR|Ko@SNzEzFJ^RGH}IXZTLq_,ls>WLNGEBGKDTCr6|y=PZUF^VG{FGO<}y4u=~}:zKda~9x={{9wHt2pCB|:x~;zKJLN@}y8uBT={v4tz9xv5vBTUURIGERWPOOACMEHPIRLOKRXQSUGNSSOXXaOSWbXUWYMSD}N{>vNNE~JOD}F~bJx>xA}DYFPZY`_OXhbXeQt=wNOLKNJIW{D~MSRLMLRVSRVPNQNuE}vI}k?tOV|JQUMYV^,a_,]s>t_IN{GW`[TIW`^{HuCyuGxtFwsI{xS|VbV~TX|YzXnjzVhY~WY[[_y[iLvaJh  ˼зμ׸г˭ŷξӴ̳̪îƯƱǮÎĿovl $ ""!!#4.,50,)%#0.,2/.+&'& ! "% ".Sjwyyuqrmsormrlsmslup{oSg_2;/26%15%3:&$/zlϻϴȾɿŷƱȺЭòĺwB@JA8D<6B;3>7096/74-52+33,45+46,5:08C9?bX`u#!"%#$!#$#( # #"             xiSӧǕʖЗ̊̂q{tuqz~xpƊݧϝȚnӅޓӊvnyqds}rЬ祤jjls{i~zxwuogbb^l_dngbn|rafs|ojĶvǺtǼs|̿ygoilWnؗoiphKztgzyzİzʷy犼kNkİ{Ϻh[҉ƅfharvjlh__ɴͺ|ttpumaponm{هidnjwi˶̻˺{esjŎt{y~}Yg|l÷evСwu~yq|fʐӍ֊ݣɛ΃袯čmlo}wWk߬ҡ}}{z{zrogo[IZhǂ}xjmݵvؚ֜pzym€w~zĄy`x9qqrnknfg_[?逾`UyHOT|iuā{ZpzRbY|{g[pbukPf{UqpK쟺{zuBV⠿ˌt|x~ׁ|]pyσx}܏TbWhCxLB{KJQF{MDvLCvJ(2@-!"'#        IYC͵Ήibl^j[h\~7BF             CFI>JJ≥gǶ٭׾i~~L_\o򝰰no6KU1&IbzVpPlMhDqKsUtfXUYTN}MwIoF~Sbm@`8weBxO3ZC7P̣lK~OJPOQK|Hv?LQKzA{FwBzHXzEq<{Fk<~o?{HPUG{Fq?tF{MsBLZj9yb/m}HXGTN~C~CMBMNTZ~AFQZHDa\KBCPGBFMINFKJWD{:|Ez7~?ESH{<EDNZMJQD@Bn,no.q}<}r1q>E>o*k=~>>LE>~=}~=}BSC~;zw5s@}q0m};yPt2ot2o{9w>|IEBEJZ:yEBCMKROIP=~CN;{QKCXBA:yNJEBGKPBJLZ\NDIFPUOB{QGMMT][KSI\RWMIYMMSQ{BwKLJW_XGZX]Y]VVPGUQWp:vK[KFOIKPJ|F{EO{HL}JvA}YY^K{HS|KxGqBy|LQP~LO]|JRQUi4jh4gh3iVUIvD~}IVWTOUXVWl5??8C>8B<5@92;7086.65-62*54+56,58.7=3;QELqfn|%!!& !$ !'$('$($"&" $              %o¿ÈƄ}z{xioqxxv̋ܡŐ{}ۏԈshbޅ䋼nt׆ɁDŽzۯܩߧٗb̈́ؒsslsx{|nkXvȁXlrzw}Dh}lpՈ׀}_jphxmiȻr˂pta^kdh`òlhXtjlqzsqvkif}ȅhϷv˵ui``abl˻q{fSl|{ɗqgς̃svw}nq|x}nѷ̷Ƿ}tgŸnžoiWqmiDlȶipzz{dQdƌʂ暯ymuyϏψҋ{ƊޤȚט䘷xlvohtŔ|ТȔ„]ÇĐya}T_QssobievGi{vmý̗ԩſntsyu|Ֆnxkw`}Tpwznupc]ktYNDSG;_{Tioy`]Ybviovhdj|vpF|QyR_ؔbdzW]j{{ѕ~lqŀd;U"Yq:p{̇ґ|a|^yXjP[JRH|NHzLDwI?sE>pB?o>Aq;L|DN~IM~MQK~ZW*$-7-!'"8?9     (/$ynnmbgYg[sn                    #$'1=>~㉦sݴׯԴ`slSbY{ߟ}m{e1l|ZqP|]eFzWcFkzXWUMKMtCV}QJ+Z7'HYUk~דk`R\XKQzBMITIMMwCvC}IQwBuDh>N|GOR~Jf5h<`2{~NxHd8v\/l~HVOPWOG[WWYLDFQUIz:z;ECVJEJ}>z;NRDKKFLHKHKO~9u/u;}:~PU=}={?|@NOJ@FF>z8|s3sh)gr2r@x5v{8w|<|~=~}<|o-lu3su4tz9x}<{w7vp0ls3o{|FJbQEHAUVMPQKWULLUK@xE}AxIMMWG[cQZ`NHKOHYL}@vIzu@oF}UXcZEOUKSN^LD}A}V\Nt?{}FU}Dw?~t<{yA~JGzEtA||H|IwDP{Ip?zTN{HUSSn@vuF}sD|xHyIQ|JWUMxFPLyF|EULUYRIUYV[Z\X\R[i@oV5_sdxyY~T^zRdvQtN\a_n]_^_zUb\Gd  ѲǹмָϭŨʮǮǷЫıȴ˯Ĝ%!!##& '( ##& #!"!"!$"0ÂuutnrmtmtoqmqlrmuouysGTJ.6%*1 #*/2"!'{ϵ˷Ϳ̴ǻ²ò͠¯¾QS\=7DD=K>8F:4A6/;4,80(3/'2/(31+55.8A6AZMVvekqws{rypsq`aVJL=5<=6>?6A?7C=5@;3=92;6/74*34)33+53+49.7;09F8AeU`}p~!)%&'##&! (! ) %%#'($($ "        "  "!     ;1'~|ttvjvqsuwx̋՗NJvfmlrvՀ׃ynkۂ劷yϦڧ訢lRnІ|Ҙshcprc_tԅXq‡cSTvogmhf¾rh\lkwuajΆшƲxǵ|wgccqwՎh`ʺ~˽oxwzvommîzh¬kкs]bh[cՊʿt_bydzOr[rs{lkhlݑ»wkng{moŸtf̳˹Ǹop_րޅɄ͔T}O}uVyzϽʽº_ŒǐwŠtmvqɓݟڔْҔĕͩˊ~suh\iur{oۑ֘rPuω䣦nǵʅٍ܈pmނd[XeżƖŸu|j^|jyWd~~~Òtidjoq`_}joc{sxz=uQZփ^tdvqRpxPc{sghpcO쩧oiƆcrKzMvkCk|Ynto{ˇwsŏoiOgMi|ycy^WyPfM[EyMDxHCwI@sFBrHAqFBsE?r@HNDejNrOzZ|]qMoOx^ċbTYTRYzMG%P*2Z`kӰѰιϧeMSaGw@}EMOQUTOuAr@vC]]:wnDc3zwEKUR`a.{p?uDe9y]wBx@IOCP[SJPMSSx:LMORNNLLHJA|KjWalqrvqwrvmniXZK>D>6>=6>?6A>6@;4=:4;8196.74)23)23,45-5:/7A4:VDKsamz(#$.((,%&*#")!,#!+""%!"                G>2rzkg{uttsw}ǀLJڜڙǀbdlpjr}ҁli~hf}zܮߪדr҆zgXimbchgf_lbŮspºx˿ʻtszgelcgdfĽmc_ðwqn®wspdqư}xqqqlvyzyxô~zaaskͷ~bƁѻ}jʹv\efhiWfzlqϼÈzkgewqlے④eYntʸ}lpecs|}r{vՄZvrQriƶ{Żž{̋vx’Ŏ|ʘx՜ĈϒД֞}xxtgknbhwuend_lxr~ѕҕɀfbێیxay|bgXYxtayjweyhS}nVgyfʒ̉sчuQjuWbXώ[tQiackkXr|^~[ufk{qx{wZwoX`uxrH|楏YjОb}Ojpxbpjrxö́{|}rov|kb]}NgKZI|RH{REuMBpI@oF@qF@tFIzNP~Z@oQ?mR[w +Z˩ȥƌEMS   180~sl{º &*0,17,.4#"(  $%&    dxzײl፬wҷۺj{rEO>ܧˏ{xw "8r[tOiFnOeEnOm~a_fV{LjxP$ .FFSƑծح֩ҵRYZLv=JNJROJKKKuBvIaa7z|MyJq=|Gc7xjAYa3v~IX_Y|DMOHVHG~AHNL}@KfJz>x<BCMREOHG={9GJJ@@BED|;@@I}<~AJIF}<@LSQTI?y8zJx8z{:Gw;}`%fi-ll0oGKr2q@L~=}t5vHy8xh'dx9u|?|p3od'cs3p|>ze'c}~=}KMKJGOJGCNP@:yMP}7vAEHFMGAGRR`Zc]IN^WAy@wAw~?vQE{KMWSVQTNNSD~IMIL}Fuq?kXWPLB}WRVQKOR^NVX}DxA{RIyA~RPUMt@l8vS{Hn=yj9uq?}xFo=z|Jm! "!"!""!'(:Ruustnqlqjsmpi|su}uKTL*.,0.4$04%(1r˺®IJнӿϿϹ˴ŮҾȔõǟ\\c=8EB<5<>7?>6B=6?;4<92:6075,44*33)23,46.6;08H8=fSZoy& "-#$/%$4)(3)'4(&3'')"#                   :2%c]>difsqqqhs̓עۥ_acüekovxl}o^lrԮ֔p܏pW|x_^icE\ns½rp˾͋̂ɽtqѽӿξ|ӊŷt̽wΈɸ{k_Xg˹zμ}ıvtqǵ{˻~diDz|ȴ{uvtpn}xnosjXcű{rűwoam_ǸqfT\egog\\q¯gؘ˃ñzvdzx~ƹxur؏܊f`TmoԠnw|tnf]bwuktpsꋼ؉iuHoxoxiz}ڄnuŕ•rѠƍҕɓŜ֊}jbknwsadjԅdžʍ吵z}||ЀۆoezybO|lWqlpBtiQobrRixóxri~}zȝɽҙ҈WOU^\_W\i֕_LPbvt̀؈ܠҩxvR}g]lsxsoQkrphUmvWpKyjEadcdl_ddjwoxrуx{|{yvx~l[zPhI~_NdM|]@oL=mFCvMAvNI{]inf<\_$<%¡Ǧ˥ʥΔs    Ľmk~~ϦƢ=JO  %"(!$!%)"' "& "& $" #"%!!&55=87?0.4557++-'')--0+-/&&)'&+'&*    &-(Segյ䂜߫|ɨԭֱٰwDO9ԤʊAXe3+O~dkMnPwXnOjLdDuSaQuJd@rEIRՔƃxnԛǍߑxxBPIIFIMMM}EPX\OxCHyAZcKNlEZ@zgGS-jKJ|DMSVXWhSNNFFDDHKHx;o3yJBPTSBNL>?~|JCNAFOE}=|?}A?~ED}8x}8xSH;z?~JF<{}8w:x~:xIU{7w>};y@>}GNLHD>{y7vUTDQNdXL~;uM\ILJJ|TBvEyPYJOXSL}BwO`KILH~J{yFxxCwQC~M]RHJOWDR[QQYWW~GQRu?{zBzBv@|zEO|GwEwGxGPxFsA}}KwFqA~s@}NR|KTT_Q|LOQzKetD~tEL|G~It>{u>zaXYZSILGMUnrz\lvkKutOzSvNYc\^_b|SXpDwX{_d`xSnw'& аDZʾզŬϩñʤghj   $!%,#&& # ,qxytnrlqkqkpiu[maENF-0#.2#.3#*.4?(êȼĭ±Ⱦƹǭɷ˲şѿԛțyBAI@5F92?3-9/)4.'2.&/.'/2*480;I?IhW_lpqrqtqw~jpk[aK@H92;=6>?8A?6B<5=:3;7084-53+31)12+22,34-5>3:RDIpajx )"!1'$8.*8.,=0.6)&6*('                          ygΫĝuTi}oƃwm{̚םڜȄejºkfnz{uw^necn]ժ؜i}ܒ׍̆i]kwwNVeq{Յ¼qɓɌfȄϼxxkƵrп;}gH]hijtʹ{Ͻʺ|tc^^rųw±wrv}W_nfuvjjsïwǴzp\~ͽ|h̾yXno]h˼tiao^uɶjfsmcǃцtneft`yurοt~ösnֈe`owhusxلwz{kVuTl|xfփpxqǽj{ΧʛʕΚŔ x_oefobngk֑ɉq|DŽДĊ؍քւ}edbcidW}oT}fqv`{[~Z_oVdz|}ċtzt㏗TpJ|aN`̈ݍk\v`”zxbx~K͈zr{tsPnաil}_ƺ~SxTgkfSXW^vsymρ{~{zzv|xhY[Z{SnO|fJzcPlYjsxb|lѦ˦ʣɡ˔vl    #+$ȿx~©ʵԠ !"'/)1: %-!#(',2 #)#!%  #!$ $' $%$+%$*//29;;66777;NNTTRYJIRECJDAG75:!      Xb`2GEʭݠs߶ᒰѮֳڸyO[@ʖ|yy,?R54TbQu[epNtVmN|Y|U}Qa+36A٠ˌ‹džtǣ͛ĕ{QINIEz>LMJISNOFIR[WPNPLfmTY7j~LyAWK]glfY[PQOQOGVDE~?UJ|?[OSHLPTJHKKN~=B[H~=?JS@KBFZUM{=i1rw>NNE=AO?w8|x;~v9{CVDp2rx:yl0nf+iq4sr4sn1p~?|<||>}w9xv8w}>~BI}?~|<|DCEIHCTo5sr5tLT?~<}F}8w@C>}>};z<{JGCEFK=|GRC{5t=|BKMSJQQMUQG[DLXULF~Q[}oW}CwO_\NGD|SIMQOPGIx@suAsNy>vJTTTF{A{L\~C}IZLRNQR^`Vu>zr:xv={PSNSJ[KOO~JRSX|JSSO~L|IRyGTQ~MUpB|\4n{M^SW{D~m5pNW^XWURIINVfuveltR~lFxyQV[{TwS_jbuJf^zStcsp~\hGp}PDT   nwϯŹѳˡɬ ɳ̲ʵ̦ʢQVS !! "#"###AZyz~vwtorlqjqlpjzq|FOI.4(/4$/3"03"%1ѵǻµɺƮɿɶdzöȶɸκͨҡ]`g74AB>N?9I<4C6/<2,8/)3.&1-%./)14,7?4?[JUyblnupuptntvflZNR@8?<4=?8@@9A=5@;4<7085.63+31)10*12,25-47.6A7=`SZ}px}"-"!5)'B76@66A55:,*6*(#                         "!**'%#"$ #"    \PD˭`K?&|mZm[ihjr|}~|z_s}tv~wvxuzszۂtÔϣרѤԜ^uǃhdjde{ƾvo΀žtƅȔƍȾ|sň˷λń΀miɺyųt˺zʼxfՃ|djtjjonɷuõk_lwonoTbik~V}gĠǩyʹz˵wƱsd̺uǵrijqޘa܏]lwcnsYq^j՟Ϻrߧסlsʽ~ul{qnwbaɱ׾|ϙð~hʽºjĀׅklx~kw}kvxvӤdy\wsp|ߠp{㚪wlszČp~\ǣànmt퀻nXaaqfŁăkz}wm|Ӕӈ΀xtt`ft݋|U叜cr{q_műarǤabwu\l~Ysr]ec^_dbj.z?nZVT_ixՅqZzX{uboeiJ_Sl~[d_Zrvidڟb`yWyyHyshyBpF|栞Ŋthzzvxwuv|ojiibjmkmr` whǙɝƅjgaw$  iqerwprʨ˩|q  &"+"+ %+!&+&+0!%*!"&*. #! "$$'.0/,..)+/0/5<9@DBKFDMKISECK98>! #     |-=<ӪeޥтժҶ޵tkzdƝkvvx{)8H?<\o]xY{XnOmPrTtUrQ7I 㓳ČŋʑzͱڠʹॏHSQJIFzB}By>~E~BNNF{?MM|AJTK|[v`P.`SOM{A[kUUNRQPYOT^RKSLHBBCNJ}HSEAy:{BKDOQ{;|h(j|;}QNRXLJIGKHv6xFFx7|w9|t6zl-qBHABAw9xi,ls5uz9yk+lt6xs5vp2r|>~Dt4t}@CA@s3so.nu3sAALKEm0qSYNEM~9x|7v=|?~<{@8x}7w{z9wz7uORxX][ZTGx@{JYOYTMJIUYX[pej@ulGwvQsK}QxMYxQ{VxQ{TZ}U}UtJmDywf|_iuQY6^jsb}* -  GRLϭ¥ưɥíƮǰȯƣ§)-* "#%!!"!%4Lvw~usrmpjpkrmxqoxLUR,3),1"/4#15$!*ofȱͲôï®ȴźͽιʺ̺͹ҵ´ֽϽͩXXd<7DB8F:3?5.:2+7/(2.&1/&20)37/:M?IkV]jpoxoxowktiZaLBH=5>=6>>8@?8A=5@:2;6/75-54*33)23*23+38.6<19OBKnaiz!4'(L<@;BD@((##      ""o]Gpzmjۋ}x}ʀz{}Wz҈Ӂ~zyzyurqspkҧܬϢ۪٤՝ՠ̢֧dPjqºvшļvǽw΁rdsɻȾluɶ̻ɻ|{v`ŶuͽzŶskf̀ypraW`¯tpЄ򖿲l]hÃpqh˄ļ~ǼȻf{Ȥ¡tеyηu͹y˷z]iT\Zdfm\j_\WxZqpwu^kŵxieo^mąʄlzmty־θiпÌܝjecpssԃq`vzuvvƇu{r[Ÿxɔˍmtޟwvن܆ωƑfbm6|wev~fs兽ketouņ~ދم^qlbnlsrƃjfwوϊn][jzbrh]ΡƩľجĘh{hJkjx{́zucpz:aifsieiwbemdrcʍfdwthta~{La׈jkdthosQjnus^k`tcSdA) Tk@t쮰ל[YKNgdwjosqpsuyćÔvnqsrrsri ! Ic?ǹ|jfV|vUrp#-0   :>6vynt¼Ҭϙy¿BS^%+8%(/!#(!%"$' $(! #  # #!"$,-.023**/&%).,0<9?DCKEEM?>EA@E002        vu};FG˩tو̧ΫѶetnٍywwx(<[Xzk`~\kLjLcIF4^ aoxԐɇčʔgUchty|ϡʣͨӮٝǼޑlFWRKOKF~DYPWKLMM~AB{=NP_>np?|_PvTDC~=y8z}>FH>As7vMZFRT[LCFCu7zv6x|<~x9{FFv8{w9|e'j@GKHIEu7x|>~?>~?B{=~BAm.mv8wz<{{=|@l0o?<||;{EHEAL>SOEH:y?}Hq)g:x?PxF?|=zy8uz9uJA~~zz:vG>{QSESSVRSSbPVD}BxLRXaimORKKVKMOMIWYKE}J|Cz^g`ZQPOHNMMKHTT}C~o6qHGLWJzBFWJGK}G}HxB~xB~RV|Gnm~JtB}wFwCr?}f9spByPwGp@{zItA}T~MMSYRUVXKFI|DMIPNKHXULVe^iAr{[azRUW~SxOzSY_b\zTsH~wMrOuTazY[tR~uXsfWm   8?<ΪŨ³ήȣǰȫůȦƪæȂ %+"$%!"$4dx|uqrmpjpjrk|tofolS^[07/)/!/3$15&#(erTȼõɻȻŴ̷ôźƿøǸ˻Ͻϼ˰ùʾκĂGDR>9G>:I73@71<3-90)4.'0,%/0(34-8?5@YKRxegqqqwpxowzfn\OVA:A<5==8?=8A=6A<4?91:5.64,54+43)34*35+48-6D6>_QZznw"9.0G89N?@MA@=2.0#-!                     '&$==;563785?A=CHBINGT[R*,%   VLCȫvwYMI.ƿq~hކ}omwwdždTΐ׋ՈЀvyuvqusjk֯ڭש˟ީЕϗӢofˆ͉́zzƽuǼsςwictǾudxyŷyĹvwXaolh^¯nIJrñtfƴpޏʺudtoķne_lukiasÆƸ{˼eŧѰĤ{ŭwɷxjăÂ̋uʿ^vh\jlYkLĨζjŋpΌtȽ~iۓڋbgqȯƯvЛyÑĶgrgżTwӌ얷l}ourzvzlcǿǾ|՘ńϛxqᔲȊҎӅeaeӇӍwɄfe`tjcg΄Ɋё{s؆Մڈtl{|xOoQyωwx}wenξӡqŠ˜ھ޸ÔdՋowÕ{يr}]pݎUUqZ_otsudkxkb⨥ruqDwnnmvz䇣]g܊odrO[h=auqjnwjʇwvMcHEcM;Z>3U2T|Q@pB/g9:vIB{NIOTQi\~gljjpz}Ùìxzzyxu~$>@6r{T~}Suq)77   ˧ɫȂ&.6;G04>  %'* $%(%&*$%),,/<}<MDOHI|>E?|;}J|@~p3tg)k|?w;{k-n{9{{:|u5vi*jJGj,kj-kw9wk-ki,kI~Ay;zs6ut8vy<{LFw6vr3rFECB@JFz8xMP>}OFv1pz6u@AF@wƓʅF{SHEO?|{;xGBLLGB~MONFHX_OEXYF}MJQMF|MNMWJXVOE|E}IKGLOK][Dv8sID~w;vELL_]IKWY{E~LNRH|EI{B~EMt=yK~IMTwA}MQ|Jr>yxEp>yq>{r?}m;xo@xxIuEe7qm>zuE{ISOM]RPVTXXWx>{N_LMQ~FK|FOMvE~ciFpdBmfJroO}yRYU|QwNZ\zU{VxSySwM~TuPsQvQyT[xUsQnS|aNl   1:5ſùϭƳα˗ɩɡЛ!$# "%9Snvursmrlqjqjzrlcnh[ie4<3,2#+2"*/"&VaDʶɲƹȻŸŸĹǾŹɹ˲ļͳ«¾ȶȸ…5/BA=L<9H73?4.90*6-'2-'/.'01)4:2FgZ^ppvxszpylso^bNDJ=6>>6?=9@=8A<5@:1;7/73+60)42)34)25+45+4:08L@Dm]d{&&(##%$!6,.?22C44;/-,"$                         "!%$    +)'OQN>?oM@rN?tJAyGPN`UlY{afilvĚȭƶyzyzw-HF4q_ghIgf(34    FMFЫ˟jj ',3')1 "$!&(+/1!# "#$'+,0+.1)-1.14(+,/22ACD:;='')'%''"$"!" $$"%     ACHets;TNϔqߗ‚՛bhgĵ®٠҉w9FFˀWTnYPuVLq'6a||ՎDžōΑ͎d{]gdmtêӦѥѭٰܪӲפtKSPXMx?uuK[s>tzE{TXQF{@zIKUKfezC{}FyB|NMw?xMOw?{u>|R}EGJzCMwA}R\IOp>{_/ls>y]bUKzGq?yn~xxtqrlpjtnqjgYhhq-3&*0!%,&-3F*ṵ̆Ÿŷɽ®òó³µĺϧɠǯ¾¾ȄVVf:5FA=K84B52<3-7/(4*&1)'/.)25,7>4=WIOtehuxw|t{qy~hpcSZC:A=6??6A@9A?9A<4=:097-64+40(11(04*25+38.6?4<^OVou# *""0%"fJ=gJCoR@mQBmPBmP>lL=pL?uMByKGMROb[gZub{jzéųĹ¾^92{Ʊ{u\~UxxZuz"+/      ƴЬʫƇbXqeǯbnk "$"# #$ $% !!""%' '(*/25.36/5839:156(,-%&(()+&&($"#!104768    !!$r~y'=0zspl°غ^gdμwzy져³ݨxf[W~xSzrq3HDfvkr 2=BԐČĄŏΑˍk[daeior|}׬٪׮٧ʹ؍wm>I\IPzAITPNMT]HMPMr:͑|^;mSS_TTLMXIGDLLNC?MJLJ@FHSNFIQ]DGQJ|=GIIOIP|;}JTOSOXJHTSOQJOAx8zL{=p4vr6xx=|Dn6uc)gl0p|?w:{v:zv:{u8yv8x}A}Bg,lw;yB|>{>|@m0pq4tC}<|E~<{p.lJSEAJAFF=|Ax5u~;zBs1o>}EFB}sX\]Za}ZdtTvOwPvQ|UyRuNtP~nnR|w_f\qP^Tļ˻Ѵ̲͸ӜϯȱȧÑ'# .+%!!"%%w̋}wtslpkvryvwYmrnOZU,2&-1"&+).#4qk̾ʹŻƺįŴƳƷ¸ù93?C3/81+5,'3)&1+'20)48/8H:BjV]lpwzw{uzqyx`lUFO:3:<5?>6B>7A>7?;3;9/86,55*34*33)24*26,4:/7M?Frai|&0&5+"5)#0&#%!                    $ !     !63.530995>@;LNIEFA.)%+&!-*$$#       qٔՂpjxnd~̓р}xxphfkqtU]ksqqqhoostupe١ٛ}phb6M˻̻‚wrwkcsr|olmkdMRtąĶxlɺzǶx`fȵr`Z{ςi\Yfϼ~ڑioՆևTpq]clzzzoPb{ootrt}{n~_]sai`rXpҷĬ|Ǯ‰pr˸ü{ڗqʈwosv˭ȭzňо}΍ƀ|iؠvkzώv{ćxitDpoN`zV\'qhJ|Ž|zoĆʍΆwȀĊז윺zgԄXskw{{vnz}zȅxxlyjuek˗rewnۃׇ̄l[zzbmg{`owrrijxfnuu~zlbmx_R[evthZ\|떣\m`ee||QSӂbVHd_gXJtaf菊=_Zor{xzannCC@_ZQEF8AS2cXWU.]33`;>fK>dL=dKAjSDmVGmVCkS?kO>mNCsTDtTBrP?sK@{LDMMP_csyyzn/QEGr5z?IKHWJXUHMRCHNGRRUM@JXE}>q3vz={>x=l4us;|y@v<~z@o3uu9zt9y|@LGz>s8xu:x`&di.mFYK|@KEAKB~>~w8zOGA>~CBIHKA~A~;y}9x;zu3qKBp1mw:uw:uA~@}EO?{JPTvI\WEMPMMI]OGEH}B|G}F}d{J{~Ht=uw>xKOP}Ho;s}HNMWUSPxD}q?xON~KQk8vt?}r{|C|Eu>wq9t{DPZYUUOLL}KNzLf>mY5\Y8`kHyj@wb7oVYYUwN~Xy[qvWzTzSnD}sFwL{PlEsljv\~o`Un$%SaWǵ̸ϱɱͺ֥ƨǥ£NPI   !  ")!/&!#(GXu}ĎvtsmtnpmyyWed/5+-1"*.)-!*ocξĻûŹ­ŭŰųòqkjs:2AB;I:5A51;3-70*4,'2+'2/'22*5>3=XHM{disyv|w|wy~kqgU_J>H:3<<4?>7A<6?;5=:2:8-65+43)23)23)24+24-4>4;ZMRzkp!"*/"2". #                           +'#650883DGCJMKAB=2/'4,$;1,,%"      maA̍σpqzas֍шЃрto݀moʊĊu_Uefkojjipwxۥߨާݠl|rrxh9?ȺżrwnbqɅlssjrp[dżƁʈɻ~dlfómɹuj̀|l`dՋЇnɷ|οzin±rkhrmmqkmtrdh^PxNz\z`}rTwUiektgztuyr\~پĐ˱}ɰy̷jq_owxsuTvɰ|ϵsɅӇӆ~v{nqƇ~yn`\wwNV[e_UR*rfIy}ÃϊϏŠߒԁʇr{Tz7n׀hXnvwԋmnoxwhsyyŗԪppဣr㴰ϩmփofynv~gto|ukmum}nxrlxlwnq`JT_U`qTn|K_bP|^X^mcylSFqu_ef]UaL^\㋹rpbvt}l',   4zmebE}EArB:gE8`G=cOCiUDjWDkXBkUAmSDpVDoU>jN=lL;lJ=nK;pH?uKUdqutwv}`'G8}yYt      _fZ٭ǿގcbobr]t#%!%!"#&)*)*,$'(6:;,00,0/.32+-/68;=AA376155378;=>)*+&&&*()+*-""%   {Ax?}u?|{E}Dy?~o4ty?{@z=|@FB}?h+nBIMJ}=|}@~@AU@}A@?~SEA~}wQ\XERZPKNTLJz@zy>xKMw?wk6ln5@<6@<5@<5@<7?:4;9195,43)33(23(15*45,46.6H=Dk[ay   "##        ($                    10.330441'&$"$ "         qhCltrcM|Ԇ΅}{~tyogpҐ՗uae]fehgkp~գު߬鱧pkkscjK[yĺ{viúyrnmρghb[̆ĺyhǹ|´uȸw²vr΂ókcijkòlñqɁhihlai[Pn_fǷ|w~v}kj\nɀ~||x_[b9pxLy{Oiw]|S|srZGzͲ̵ԻɯvĭyyföykȔwxuNeؑͻ~ҿÆʅun׎xm~g{xfYd~nchs^qR݈͊_YZ1thHľ†~Ɛ͈{Ƀć|cY\LAlmtP~bmvfmwovrswoopŜŕlrΉ¦‘p}xnuv~~UTqžŝkqkZgȁvknڃ{xqkeUݓgVyOôy◰_jbU`ofŅ斫ebQcIjcsmGWqGx}>\Rutpe{'/     23W1WQTUEvOBoQ@jSCjWGm\Kq`Iq`Go^Gn\EoYCmV?hRBlTBoRBoSMxdinsrqwxw{"<=p}~at      {Ԭ»zkaqez "$!"&)*"%#'*!$"&-25#&("%$%)(/34267588$(''**.239=?@DE/0/.,-533<9=;;@'&)+'+  y?VWZovsꈦjr@VJoyd~h7H:ҁwޗ̨f|BjDKyFCTb{Cf9{fuBhVM}EFZVK{=EIDKs6~F[EOBJOQGDENEEA>A[UJQNFNLSL~;~FFFA{:|CIGNPt2wn+oz9{TS@QPEFFIHGTUo3rm1qz=~m4up8yx?R[w>~w<{}Bu:zj0qC{:yu8x{<}QBIOEFRs5wp5w~AFA~>~i,jn0mQ{;xy8v=|s3nxxIRSTz?w~C|D|F~NSQGOKHtwQxRNQW]SIzEtB}wD|ItB}yGxD{H{L^.dtAz^V{DzEVTOUXSMTVch5mZ(``WH}FPO`bQU_SVWWNuA}PYVzJwI~g?mkHq`?jb>o{S\RY{PwMbuWnN}wPrMwPwMrGynHuw]}b}we|l\O\  ALBƹ¿ͷϴϹԴʜİǡĥlxq#"#  7t܂|squnxtzvCKL-4',2#),(,(4t­ԿȽǼǴɹdzȺο˺}zouk›TW\;7E?;J:6D71>2,9-*4+(1,%/0(43,5=4=7A<6?;4<:3;6084*32(11)12)25*49.7@4<[LQ|kq}                              # //,0/-        8-hk_b[y͂{{{}hxm}ٗÆo~indbwàȢˢ۞bmcp\qpZTipwvvq|{rgiS[hʽyʽ~liĵuɃôtckd]gƵqfȸtķvõuʹzhʉoq~ftij|zȍżLJƆiqsdxr|zqeyJ[`\_pS{ArYpZ>չҺ̵|„ɷʺxxw~akq`>y؃sx¼vtsx}}}rt]]xx˃fJوUaj?nҞnLN}[{zxԙzב΂yӒrtt|laښb}{qx|uepjs~pyyeÇ͐{k|͊u݅~nrwOSjkhokfӆwk|?`~{|zx񣶲jssWUYfZW`flcRYc}geuo돻cۄXlRhvYptgӃue\uiXwʙ#)     23T4NrS[h]pWkV{jQuhJpbFl^Dl^GmbJndIoaHr^KubOwlinomryyyzF]mH]U~z_r%        ʜustjsfqgg}p ,55#+/ %%%$ #!$!%**05%)-%()1546:8599/24&*.!$&*+,&'&212CBB669149.15   N\\mVkvl䜼e䡻sZo`>S83C5xvp{ݚw;c>Lx=O?xuQomGWSu*&,<:Ê}ynTd5b>VpǧԜŒm~|usìѬwNXN}HzCLXSEK[Qt3~OJDXc-vW)iU{DFSJWN~@ROl0wx:Et1~@ZUIIOYVKNLNICEQA|:TMGF\~JDK;~OIIK<~<F|;|NFHEz7{NEJCIMQ}B~C|ANE|@{@UKCG}CDEy>~GM}A~BDGFIy9yX]NKHL[RIy<|o2oNRAC}>zG@MNCz|H@KB@}FHD~A}MRXQQQSHJEKRRD|STLyAxNVNzCzv@xHz?yNJ{?zEMHQ|FML\Ps:tKLE{A{}E~Tq?w~LQUZgMOzHORSLwEwD~L}MuC|W{KZ/btE||FUyCMW}GKK}GxCT~HNQ_xE|c0hUMGQWQTWTGRT{EyDNwD|wHn=wuC~rB{yJxKTYuLuK{PzNSk;tS~V|V}_{y{YyQzUcyRuLuOz]pToXn^R_  &2'½ʳ̱ͺԲɪΦ~'%#  1Mhvuv|{z~kz9@>+3%+2"*/*.;F-ưɻϽƼƼdzǸ©Ųʽͽ˺ȶű{z~v|nsf}{˃;8A@>6>;3;8196-65+42(11(11)15+4<08M>FjZat}                               #,)$     \O;}ipoaku{|¾zy|mlπhq͒uy}^otfqYnzx筦yuok~upiughbVkq}{|vdcgooiø{npstnl{Ŷr±m̻uòk±lʸvnndʿwhˊƄjߐ͂pŵ|xȍyʅvdl\vwebhqn|a_addPyǒw^P$Ƭ‘ȭɰ­urztedpnz˚pek'yw*kngqgVzvO~|[kU|sbu|뒳~|Qs|aroVÂwqmu}qqlrM}~Pk~~Dž~Սΐv{qV]|ozo¾~xʃwqyx̀rxysf̓ᯓnvp_ύԔԏʂp`qbZ_VhjeXqhxto[Knietoy`ldxLobVmC]²ndnXVajؘodkrBcsxHZņcdtVPudÂ\\txz   04O;KhUZzg^}m^}l_mS~dMucOsgMrgOuiNuiPvmW|zpnuxz}|AA:;;111!"!)*+3489:?;=A;FHKVp;b4sNJJKKLLSJJ{>EO?Z~=CIFERWQIKJBG}:?AJ@CFRQO?x4wC@EJH=x3v@H};}>VWT}:}R?~{9y>|9|GMt9{t;q8|HLFu8yw:z{?HFv:{RDs8yx=F{?y<}IHAA@GSCJCQO@~BC?~TQ\PC>|S]B~Bz:wA~v7tEJKM=|LG@|CK@}r5tHIKMXVW}@{HXVUaJE}stwJ{N~RU_-h~Qk{T{Ynvw^uPpyWpG{Y~asXaIvx}G:I #*"ƶϸа˷ұɫēȟǂgzwgvzux}rw^fb  "!*.BaӀ~|~jy6?=+2'-1#+/ &)8@*ϽʽȺöʾȲı;ľǼɶ{uwktcshʰZ^_>9E@;J93B90>4-:/+6+)2,)00*43,7;3G:2=<4>=6>=6><4<92:4-55+54*33)24*36+47-5?3;YIRxgr{                                      ]M.v½|ztypVdqz{x¿p_byzzqpj~pmecqmturtќvpsfgypuqtvyncW}PYf_jqrnc^[|µyeuĴrʻvɺvͿveǷlyfdÆʿ~ƹx^kmdh·wkn¶ropchľuyyWf|`_|dfn|FuL^spnȌ~re3yIʹx~įqafwÓƐ~cfQvYxx^ls|eft܁o^pmrnvowk[~xqϐקag=}wXǔ̎ӑΔʞ~rrleTVvId_vvhу|yprʀƊbaYgUs{cAkuEoiqvzdv^~Jnka׍xjmigTbkUVĽ}ePrˀ^^iowtlg`urDgљX||Pwprs^mobidW_lsy[~yh~ !)&")*$% &&&C\B^dGiQIgV`~s~~z~xpōj$1>  ""'' &±plqfrhxt#(' #%  "#(/. '&%*+!%&,30;CB#()!$('*.-578ADDOQMGIGACB7:8./032686C@CQNIIJSJ?I==FF>;}{6zBB?{:|FN=~Eu3t>~>j=~}?{@}ALQ]XOv9zDCz=~|?KFz?Hy>y<~FF~?KSLCI@AJ>~FJMIEMF@QUJOBD~?|o0mEGE~>{HJLRJEOA~NA~w7wHFQQVNTQ~D~D~SNJROMPv>uw?uE~Ew=wKPO[MIIr8r~D~JyCyzE|N^YUWyB{u>xJM~Jt@yMOQNJUrAyo>wqB{OQPRq@|o?|i9un=wp=wU|IPUWcPQ`SRYUNMKRT}Ij7sv@}QUPQKTSUYVOQM[Oc3l}KMvC|PVe8lwK~|M{NzNWzMsH~]ezSwQh}g}hċdkFvwq`kGzsTz_tymuk   ɶзϪŹ԰ŗƬŞxsow}o~vtwοef^ (" '(Blт{q|~x}{sN[^071+0"+/ -0"|sȭȷϻ®·ö̼̺¯Ϳôɼİxqsgrczvƽ΍>=C@:H@9H;3A6-;2,8,(4+'1.)12*57/:E<;<;5759;;BBD\Y^FEK54<::A328-.3('- !    ^rsȲSgtÊzdtq@RX[RUBxDBHIu2uGEs2tCNAy7w@H~>}G~;{~?|@Mz?b+ntBYWOMWFy@IzAFq5ws7zx<VNz=}NKIFz6wz7zPz7z{9{F@BFWRYQt6rCFA~l2o~B~OJLXJ{;xGA~LFCME{:wMPEKIKGDK}?zFT|A{I{@xE}LOMLy?wLO~D}VX{D}NNr8rz>xONHx@z|F}K{E~JMFGyB{|Fo9þдͧºֳxªnbuutvvjwt_ijvagZ "#!$9I_{yZjfn}k~l|apw2:7).,0!,0 $RdKãʺ̸ʿŸȶ«̺˺ñƸyynrboavzȹcbg=6A@:G;6C71=2,8-+6(&2*'0/)33,6:3;PHKtcfsyx~wzwwosr[bSAK?5@<5@<6?<5@;3=;1:7/83,43,42+33)24*37-6?3:WFN}hq|                                     #" "4))H@>6.+3)'0$!#$#"& V<&˾ΑĿodorhtȔympwbX]kjp}~keksdhpjoht}}ՓݞzՃىlfqۃ{{|rceib__vkJr}pksbljdtinqrl{ijn˺sͺsλyҿ~ȷxvoĆz_ǽzωkre|wnzpor÷xblׅsotpxƽiwh¶ofeej{y€}vswq^^jtǿ÷~{px|zu̓~Tu{{vsъ׍ܗܖ봒ndkhwnSĽžxfrwxljlz|lӃuVsumd}Ҁ{yvيW]amaieiqnjxY物QdwZmil苡bhقqaOhupZ_l\gfxMŽӔ\]Wlky҈}ziXbeiΉ^ϐlts~\X{iwtw̅uU0<($hv„ &(""#$$ $&#()%*)!&$ $##!  *2/-50!+$~~Ƹ`t}'5@     -221666<;5=;%-*  qlqfusp} 68;"   !.84/:4!)'!!'(/35 !#((&)* %%'$$&010*+,112678346668BAF>=C76=??D446**.       !''p϶n΁]nf?IANkOhtΙӊNoY][YPfXGu>B]L#& H`VCmQIyUO\JU=zFM]]nOQIt:hfŵǼޟÛɠšŐƜwmVt?LNz?H|Dk4{{@}@@Fv:{>~A{Er>g1wyC`Mv>}ETOx:CBCPWWGKNBDOB>>E~y=z=~GGGBE{4vs/qHC};|@IAu4tBW]OF}>{DFj.kCCQDPy;wOMFKHIMHA}w:u~A{RFPFs6qx;v~?zu4qQHz?x|AyIORKF}ILLMVQOzC|yAyG{A{}C}IIX[zG}K}HaMh1o{DMu?y|F}HIO~JPVWeoeXxDuBr@|He2qsB{Gl8wOWQ|FyCKLKPUS[RLyC}RTJyD~wB|`zEZUHIPLOOMIJ{DyC|OMo;6@<6@=7A<4>:095-61)31)21)13)14*38.6I:BiWbr|}                                          #     $4(&PEASLGD@;81*C7.?-$2*#%T<%șǿļ{miylks¦ƥēkbb`qjpdr_fsjpplsqށumΑhjЀa_hv~~o^hOG]bǤyu}smulpPwdwjomôqɸuɶrűn¬oîsplnbʾƺ`ryՎv{ǻt¸}enǺy~npxyvvtmyɐú¶vjpϚ̻òȸsqgȅnccsɐƐle_zqWƳ²{xhtuwry|Svuy{m_rܔֆЅsZɜ~}|Vbxe`zucdq`njbUsʄlr܎`}Omijwy}wfegldykijś`ytU`gq`_ꓗUmonzibj]¼}rodoHjXNjebmvǘŔtka|vuÃԅvqܓGqpiw[br`xzrm pOal $%/,%.+$  !"#%%#"#'&  !   )& 0.& $(CJC,46 ),..559?>7:8%*'"&$!" " ôeeyx@OL%&' !#!"&-,'/-#*)"'(!! #$&*,,03%'*))+88:0030130/1//344:338104102214#!$       !/6=ޙÑ|ĕ`n`oxjFcFvȲӒפҠg~abf^fapqKmR?RK $,,wavbuqoK_WpofxhoyݴհҰլϦŤƩȦɢƦˠņ^u:@PXPLDTT{=S[Ro5JKFl3{|CyAa.sm7~o4|TKz:{;CMTD}>GB{=M?~}Cy<}|@Gu={I\q7zEE}?K{>x:}FNEt8|~C|AQI{=BC@|7z@O|9{@{:{O@EPJ[H={@@}D@}DTGf+g}@|~@|w9vENVx7u|}LSNLL{D}E|EIGJMRXNxB|HxC}m;swC}~GxB}JQKKFKRYPI|FM{EIKd3lr?zNJM~J~ReuH}S{Pj>vyGTZ_rI}c:osPlL|oNtNqK]fnPyzbz]vUnQ|o_}Q\V/6*56.*/)Ѵ̱ɝ̣Υ}tzyxx~,+'        !++4QZszj|FdSfuux[ej14.)-+/46&!)ZrOĮȶ˻ʺĴɸïɺȿ˿ɶ±{uzju_jSg{]z̾`ab;3?C0,70+7.)4,'3-(31-6:2:SDKsbfvuz{v{uwomn[^M>H>4>;4><5?<6@<6?:2;9/83+30*2/(12(15+45,5;09XGSwdrw~                                                !C86UKFJB;B:1;4)>2'8&-& "zYqxwqplszgepkmgnqsbǃºqhqyorgbl{rrń}|yr\]myyw{}je_bPu7Ri̿{˿xʽwuutrZcrzpdkgiímdjȂɀap{lqli}ǃmƻ֏|dž}txĭ²|xieq|lnµە|Ɍ—¸}ugie|zzðuZ»]DMX\gΠ`gadh╸|[fymrhvNmùunfkӖʇsLuyptgiplnaDnNpvpslcfZYeWd}mhakcW\qyxxs}ySjhtㆵldasxdFq[ehpbe\Fmzcn{]|WS֕pzgZ笡e|vumjǶĝwitpdzhu{mrkFrºnmxwdl]g[p֡/A0 vÌ"+%$-( )#"!#!"$# %#%)'   '($*-(!"  #!! "    !%$/56#(($&%  %&$&( $""  Z`W؄    """((#))"((%% &&"%&%)+@EJ9>C%'* //1346DEFNOM:;<4598;>5681/21.1,+,&%$   xHUQ{D|ExA{u?zSQJLWFIVIv@xo9rr=uxC|~IVn9s{FN~H}G{HvLz]uW~Z4bjCuoEyf=5@?7B<5@92;8197-64*32)22)16+47+5:.7F:CcT]nw|                                        (4+'+#$ $$ !xfIӜjhplqmdz{xkmpkplqsqj^dtwy{xtsvqfkob]|ʔ~oZjpy{vkpg\jlT_j}2up¶tżx¼tvpvJc˼h_c`aƱexۏɾqXrvu{Ɔkogkutly}p{z~Ųݕ׋Tyoe|ǎ}j~jwYurfgsenaf֑swqcknvuxiyōԋqfqbkn_wz|]iїz_fmړjpvyy{jbfcVykPe\frtqjfdsiea[cUlwi^ojdypekӁooimXj`\fapm`~i^qr[pla_֊phm|֍awcWi_^]h{Ox]avózŸ}xewiuxźvnXYXcsl\qhzwXum~FYۊ(;(1?5ͼbz#$""""#(#  %*#&*$*+'       !!%&35559;.58 $"*/5#'.  @C:8=659666++)       $CKTeqr/81|;EKLSAOGQKELMPJG=HHNPGLJHz9yx7yGK\Ly<}|>z<{Dw:{Gz>Gg+ll1rw:}w9zy;|}Ar5uw9yw9z}>DTLDLUHk.oBJy7yv3v>;~?L}5w{8yF>}<{p-ky6uIQDJ\|?zA~PQxvo;r|E~}FyC|KIvAx~NwFzwDyuAw}F~yD|zE}tAyvC{s@xk9q{HQRi7ovD|[\So`}Jr?xuD|Th7ovE}uB{}I{MnxI}Nd6mj8tzFW]K}Hf3nzGt?{l6rzCyA~zC{D[w?{Ft:us:u}DyB~}GNOVLMHxB}JK~G|FWOIIJt=wu>wn:qKyE|p>sq;I73A61=3-70*6.(4+&20)52*7<2>SELradtq{vxxvwomp_^SFK?7?=8?>7A@8C<4?92:7/76+54*31(12)24*39-7A4=PDKnbfw{~                   %+ #                   }΍}sjm_`t{{{mgbpjpsmgdudcpžrv}΀~{vpʂk`ciiɁǍpfc^^dhTUji]YVaw.|x+Oºhv|zrtikrǹ}]QZuo|ُĻzlagwu}mƊgtiiknkbf{tv{ˉ`_Ռgbž|͍_ngisvcarwt]wgPdgϼvnl`iiοwtznenwjǃ띻yi}uVbkqȑΜsDŽXlqӎƒץ’ZbTgn|łЊ҅֌zwӆ{mYbXbpyUgt}Xydoov{rZ̊ퟀEYghsznń€WO`J}nlpm_RRP|GSst|EB`vsFzTm[`la}MՈnonh]tz]Utt`Zonxgywptp|eg~Wxt]hvlXfk]cmhijIzؒ׋  9JO0*%)$ &")%!!! "-6,2:2(-'(+%       #&)02z=}y=}}Az>QJS{=z>w:|x:|y;}z<KLHIJPPL}?E>o,oJ>o̍ȇB{:{Kv3q={Hz8xy:xSH@~Cs4pw8vHPHr9tPL|>z@~J@}{vyF~|JyIVMwD}~Ks>wRSY}IPT\YMSOYW]WTUyFt@{vA}{HLLs@{UVNs>zxA}u=zo9u{EHi/it=w|F~Ev?|{FKRNzBIUyC}o8s|D~EG}E~DxA{K}F|DwA{JJq>sm:np3/82+5.)4+(3+'20)46.8F7AdPVklwuxvxxuw~jkeVXD:A>6>>7@>6C>6A<4?81:6-65+44*21*11*14)1;.8E7AaSY~ps~                   +#, 2"/#$                          wЖƃ|~xtw͂̓yrpmfnrsqqwprhkvºt|͈˃zszmsjjajnnknuieq`ms_b[jx}5[bR_nifh[rzurYSinƽ^V^adgovfpj{wx|}w}f[bfc^V[qqj☲ihütz}uo{u}lv^vǑ¬{{tlfacnorffvhʅ뚼tnjpcoŝײnȔ޳ݯmlerZsȌ_jwoUbs_Whńb[^uuhwwqk^f_NjLVyڇYid^f~qdPXgYlkolN^he`qsEYۊNqPogC`d{mmFqtHnkဲcqgfľmsaiݞobvRb_nuuoѣɷ|]ifd}lՊ]oU}{Q]z|VicdQSD2:&O^6u\.  eyiy%081,+50.41,75->;2-* (%%$.4)1>03?7)2,")" $$)354?@9BFOV^).3"'',3)3:'18 " %(%vrĬʿ  !" $&"&+,38;#,01+/.*-,-/./10221""&$$$      ؝ʣԟБÈDYh #'DOD#9-Ѝsw~{qiYn]tɶزԧͥͥͣʢȟŢǧ̡Ɣ{{v^rfȖwMMPPIODm-y}AnpM_]LVWZGNNLJGOOXG>~;AAJOOMLSQOPPh&hBGHGIMMSQUBAI]\x6wt2tBH|:}>IFt7wu8zu7yA{=|EOEw>n5w}AK[EILFE}?y;~JGFF~>|<~Q}>IMGx7yCEx8xBHIP}?{KES|>z|?zGA||>zv:vDGd/hg/iv:v~A}z>zIQICLEz?yz?zVQEIy?z{A|OPRbdHyAzQLHy@zWJt?wo:rwBzRuAyLxE{`-d|I\L{HNm=t|HOPLQUPt;vq;wl8rv@yr;uHV[_VRxE~WV\\NORLvA|p?ysA||IwD|IWQ}JxCi2oIMxA~xA|k5oi3mg3nm:u|GJTMzDJTp:tzC}KRO{C~s5>@6AB7E<5@:2=7095,45*45)32)12)15*3=19PBIsbhv{}            !"""                           <5%}zk~~sz}̃~vtZ]xtknposvtoap{ƁÃÂ|nub\`fhcl|spǁ|z~qwixy\rkx.dƇӏybjmuPKpvbVQ[HQcnikiqaxnZuΒz}u^iӈgsVQЍpnhw¸zrsnhcxw|thbxn{usliq|quxurkoo`l|Z ήǯhjߺԮᲘnow{bot9cfғ֒ZQxtC^pᕢ_[YjznMְװu|nW`tgdU|GKS\Lk}~upSbYYjr^LJTeehekYY{TdlfermQqrQˍ؎zdhwnr̐poZXaV~Y|Vg~Ya|{tdtŚɛtqpýyvOzuypnHofƜwtTa"(     lx})197=:9;44/.,!61%2,!#"  !"'$#) *6)$/'   ####++.9;0:<5=>RY^.5<#%-10;C1>G/><=?<+++ !  '"' $&#""#       =>:梱~ցӤפՒhz$/jrg)zzyvwwėâʥ͢˥̤ˠǤˠƑoxėΤ|INM@CZl1w|Cr;JdRHK\SNOT~<@WD};BODOQLMFEDSKZRURBGROYPGDQNICIWC[Uy7wBHOB;~x5w?@}>CGD?~COK^$hx=KAJMFx<}y;}BHu8{ajHBEVLGOJ~<|ALAl)iCy8x?}<|EMIC~GNZHDv:wt9tz?z~B~}A}ILv9u~B~|?{F~Cn5pFCDMq8up9vVKLFNOyA{x@z}EJ|D}t{zDu=xr:tt=vd-fb/hrA{uBzKMi4np9s|EIyDzEOTHOu?xq=uo;so:qk9p|IO{Ho=vn:qo;sT{GzGsAxg8mwL`6fnEraliArZj}†wnRsPhFuoMzkIwfIoj}t1<1''/ҪřЋ˰rh{zy|~w|nz|q~ufqc352        (!80"0% )@TVscxrbxol{ewqevt[hm(+%-0 -0 /1#%+\mRʸʶйʴĮ£¥ʹû¹vwgkZc~VQhIjuy|60:E=I>9E:5A60;0,6,)4+(3+'2/)36.8B6@bRUnoy}x|wyutmmdVXF>C<5>>6AA8D@8D:2=80:6/74,45)34(23(16,59/7D8@dSXorz~~~                                                    " ttxƇɆqhq{}{rthRwyjiiiculVaût̃}~zzjcbS[s|omujmيċvhoKTUg{5LƊv|vaprkpgR\y~vsyMuKuTyVY`gpiopyznpˎ}~w`oebć}BhsɾvǺzy|{izű{`ljj~V_towg}b^Yxvx|{vnbbwq’ub~~˴rx.H.¥ܺۯZh|gytLfyqhgl^ϏӒYlXMdcs`shxbh\IhYFtS`UZn}Ocqrs΀g[`EGTbX[la풟UMuWea[dmxɒ{ՆyЅdf\[q}V\oMd{m|iMZmdk{^pºǜʠ|`oyWw{^f]GyխͤtpQrlPşl{c   pq!=;=FDE54/%#)$# $&# $*(!    !!# #+(Q`CVd)1  !ƾHaQ     #$5;<286#!!)+)&&&654788455*))   .'!2(# #%!        awxˋƳ֞˙y$,-  ؏}|tz}sƣȢǞ˜‹vǠ˵ݓ|~EK?JGrIVWTG>SFOKWPNRNNRSQUSPFLDJw3vHKFB|:{EFu1t?HM>~r2rNOz<}}<|PBs8yy=~}?n1tt7zt6y~@~@w9{x:}E}@MJa]ONIMAKOEVQ|=~I>~<|y7w>~GEOE}B~yzPJ{?{Jz?zx{s;wTJK~GKq:syA{}Fn8po9oQ~GNRMM|H}JxE}{F~SKKyD|wBzyD|sDzqG{~MZ*aj8sRTRTJ|ENa]|FTLOvC{wC|P}IRT_`MLPLxGq@zb0kuC~q?z~KQzEr?zwA}Kv?{r8to3ow>zw=xEO}Jq;vxA}}FIx@}n8uxE~JU]MJr;vM}HTwB{n9rO}GyF}nsi8mzHqAva2dg;ljBog@mjFqeDnS7^q^v\e?onH{uOkJz{lbGumJ}kIzlK|}^oW}r.:. ('0 ɕǙʬquyhsn_p]ǭƝǼ34/       !$&,:Flm]rjfzro}oYci.0++-/1!24&(*TdGèȫŪȯūäIJȻ±ɷqdiZ\vTOfSӭ?=G?:E>;D96A52;2/8-*5*'3+(2/)33*58.7N@Gr`arrxyx}twopuddOEI<6=<5>>7B?7B<4?:2=8094-53+34)24(24*37-5>3{N[xD|d1jzC~FIWQP]*gb/kQPXT{Dv@{^a\xA{v@zMyE|o=ro>sm=qj:owG}qBvm?qlAqrIvrIwbH,¡ƫɱĪ˼űyrnhf}ip}bci5/:C=J<7C85?2/8/,6+(4+)3,(1-'15-7@5=_NSinwzyxvwqqikfTXD:B=7?<6?<6@<6@;3>91<6/82,32+33(14*45,4:/7D5?dOYiqw}|}}~                                              F5#³s}ˌƂ̃j]gtwjlvko_XW`tynkapei]_bxlfijvbaj}mzmjx͗ФlhܖӃԆPwt;rǽy~isstxaabexQ^vvuknuhplq~wpqiklzqimwhtyrdirƵǴ|y{is~jhynkn^Ɍryr]nvykkšsw}iiwh\osſrwtvcy{QeDtuVw{o`{^{h|ȗ]ꬰvyUTWZxFXZxXjaB{SyWoQ̿k|Ӻ }mRM[>{L]v…]k~dibbjmUpapega]b]`f_i^ᎽolkфgPn^iӁwyg{uIyӐfd}qDXudξ{~kg㦢h{ͣ͞үlcAѫrvW{ĀuhڕZrX         "#!!   #++#+*!#"'+'0/!)*#*0/5:159+013<>6AE:BH4;@$-/(23 !&,0wxkl˩^ti&&9>=:@AAGKLVTV]Y    050/50(+)')(($%>9;;77-+).*'%"!  -#+"        bqQof{Դ烢ť*4.$ڙ‰|v|mxktoywqŬ٣q@NVPy9S_XSSGFNMSSWCGU[HM}Cr;ZWOJMLQFG?PQFE@HBB~8}JGDAJHQP>RF~=~}>z9{E:cAEEMBXXEM[Dt6yu8|FQz;RDB|=h*lc(kw>OKYJHIIEFA~=JGFBz={DTVu9uz?zy>xj4fm5kG{@{y>yx>yHPIEHROFFC}?{{>zTz=z~B~PEx>yQIw?yq:vHPJKy?yv=w|B|R{B{zB|wAzwBzzF~q?wyFyD~}GzF}`UQXWZvB|h5n~GyA}p9vIMLKRPxAz~G_U~IOZMxB|J|ISKyD~~Ht=xON_[2g\/h[|JP{IzG~H{EwA}MOt;xJMUUt@yXPPQXPP}HTKKQQyC~NNXQzEPPyE|xF}zHn;sPvFyihdBmfAmd?kkHttP~Y:dv^qYy\pOnM|vVlN{hNwkd~|:I<#,% i~oΨͣæ˝Љygsn=P4Hb={{é14-         #!-6F_ΆUkmQf_b{w}tu?HJ./(00#23%/1 )3uƭʵƿ®ű~~xҚ96>A:H?9H93A63>0-6*'1)&0+'0.(21+58/8OADo[_pvwzvuvssq{`d[FN?6><6>=8A<6A<5?91<7/:5.72+33+34(24)27-6>2:RBJq\et}zz~~}~' #$ #$ #  &!&!#   $%'                                       fٞxu|{|jbe`bdprsmbWjxkkqikfb~`is}s}]lhfytesnqonlx|ŽڗᏸЁbk,yq@}xon{hûjsqzjhSdɿu`lqp}{viks~wfe~}|ssva]ktzvŷ²Żr^ls®|ĭ˻|zr|z^u[rŔ§~s^rʵ~pujh硩i{a`ahulyYyy\~y|Ӎߏbuxrsg̒s]zduupum_~I~Oe|W{Sol^m_Hgvk}bwVkɤªc]tQWZV\iPnUraMedcdGA`XVMrt=q^e]WNoirhpxci߇sm\vWR`|Tod~uzYi[fގČ~ĵxˤq¸¼ammsivp||r}q              &&.;:0::$+.&)!+,+589DK7AG8@C6>@2;?#+2!& #(!&  ! ,68qupqӶw !()+52BJE,10 !$%(,.!#"#$# !'%&,*))%"0+*" "60+=5/0("            _pbsoPn^^{vɫޛ}*/5/(ĈtceddhoxϿ{WB@FZjSKQWJDKKKRFOYP~<}JAz<}OF~@y;|L}ADEEt6zi*os5y{=A~>CJ\iNXNGMC|=~JHFUJG}?}{>zs8su9uq6rs9tu;vIs=ps:sG|A|r8sHXCu8tQLDEHMMFOTEw;wTFFJTJi3os:vKJMx>yKO|D}x>x|C|PxD|~ItAyJSS|FyD|QwAzP}JSRLHu>x|FRWNw>yQ^Y|FO]vAySYOOZRMu?xt=wyB|KPZ^c5oc7pKPL|GNRNyDvB}yCv?|u>{rx{E{DIOYLwA}K~GU{D~HXMIK{F~n:syENOQVLUUxG|wJ}tL}pJxX.Zb>fiOspX}iMvgFrgGsmRzkSzeHthHunO}pStUeEukKyrRfGu\Clonw~iwBPB'!lrİ͕ȣáȅjsrDO:@T,UpDZxSoq+1*    #!1Kfcx_sr\qmbwxh{l|GLK35*24&14$(/9J.˿ǽϿ¯{t~vdfi82=B=7@<6@92=7/:6.94-53+33)33(34*39.6F8JDv8zOD~AFSTD|?r5zu8~o2w}?NUEF}?KNTMIv8yLMz<}~Bt9xURKy=yp4pu9uJo5or8s}C}r;ps;tt9ty@zy?z~CGy=zIFHORKGMJ{;xFz=yCHyyq8u}Dx=x|B|}C|y>yJFLHt=s~I{GxBz}HJRSIl6oJM[OVUxB|SLR^ZUIM`XSWUVW{D}wAzTaSNL|FKUTT|Jg7rOUM|FSTULwA}r?{xEk6rxA}}G}GzDxB|~HKKMLo9sKZL|FzB}SL~GJLRs>w~KLOMPg4jtAyxF~zKuH}xMb7f[1\_=gqm]{dIpa@lnN{nYqlQ}kK{yYmNrSehLwlM|gIwVFh}NZI$# s|¿ɲΎęȟ}}eopR[QWfMJ^6A[-RnCmiSYM   #'$9G^ti~oUhgj~}kztCG@/1$-/ -1#*K\<Ƨȶ˽½úų~{Ø?>D<7C<:G86C41<0-7.+4,)3-'3/)43+6;2;M?Eq]arvx{xytwsu}dg^JPB8?>6?=7A=7A<5?:3<7/:4,73+52*12(11'14*3;07PBDo\`u{}}~~~~4))5-*(% &%52+74/)&$                          !          `U9~~ows}zyno~}yrVXigv{\\jnm~gm`cj{}]vvvvwsznwlgwx~lrqAzʼƹuˀ|qx|rpqol\{´·qhyĽztphmirqrkknomzy{s_jfj}|}ưpbzQ{VdjŸӂg]TY4JEk}tobgolb\__\ikhtlckûˆqmyw_hngfkv{k\Wz̎䗚gwЎkrFz|ul`iĐZxfY[{Y`pdpMuΑ·ycKͪùֹnTxUvKsE}PSWP]ºx_Vl`Nkl`ZfkdR]iuh`cyeUeuhy¼msjYf?_Sjregu_X˔ksdtohkncĴ͢ҨۯݳkhzͦЫn]rlh~Є~v~p   (+%!$ $($#*" %!$#$ )/)    !)%'224@C/:@,6?2>D3@C5?D'/4%*-2807>392,*$            `|vs[vn|䜼Ϊ>HL2BByyėˆtĦ˒Ŀ|zȿ̿㜈IMz?wC^WgU_LMQL}zl1lj0jq7qx?zi2kp8rx>zvyq7rEKETEHPFNHr;on9mzGzF|G}GTTzCzSKKRK~K~LSicUWZbQxAzPOPUVZPPv@yWVOzFwD}yC}q;u{GLUWsA|L{G~LPVTMm7tp;wd1mnzP}Gj5ozFNIKHSIQYM\MwD|LWyGxF}p=tvCz~Lf7mm@vxMpEu]5a^@ivceSrdLq^?jfGtr[va\@knO~xZuWqUk|glR~n[v8E3-6#&1)9'õіψ}jxpkxzZb[^i_UhIGb7a~SlbxxӺ%%   "$!!/->a}]pypop~WgfwU[W13(*-*--1%4}mƩȲȶüŹȺeho219?F<5==6A>7A=6A<5?;4<7/:4,81*42(12(12'14)2B8C/9C1;C5@C0;=,7;0:?6>F6>J09C)29%.5 *2"05(34  FXLNFJw@~OBw9zI@NHN~BFCC}Av:BLGw9zBMMAELVHOPPFIN{=~MB|?~~B[o7tp6rx@}v>zIy?{k3nv=:C<;F86B63>1.9-*5+(3*'2.(22*59/:O>Gq\bqtyyxyuurp|df\LP@7?=6>>6A>6A<4?;3>:2;6.82*50)20(02(17+5=18N?Cn\dt}|~~~                                                         ,puuȅƿ|tƀy|qaeuԈpd^[Uazxh~^{SXZv~v[nytupƄ҆ˁm|ހpqusSR1nҾ|yvytklxmyvkd[j¯sqjvxtlkshtzv|ryT~Zr|}ؕπXqi\~qջ\oF]c6m_5qêtn̹{k\Uʷyƺykrsj[Lpftvzaؗdpsp`ifoꚮvvyu\Kź~{ehnfЛrʔ]kbsLx@S]~oMy^lplͼʽzja׎|Cżyʄz8zB^WqeVRYWU=PdbPigo󑫰VghdliYlpl}bijk惡lyDp{{ahz{UyYZOwpg}oZ~_rp|dqɻ~Ө羹wxԩqpi}ွtp}~ԋwq      ""   #   "$(/27?D=GJ6?@6BD8HN>KUGP_LVhMXjDR^@NX2?I*8=3@A'' )445BACPS;KJ1:=@MS;IP3AH4AK4CI.:=!"  !"!## !!                052zԣؤUkq k~}zz{otŵt{{qp{n{q~svo|kvgufroyp{i~sݳyDUi4{\tFrZPSNMWXG}=OSPNQWAu6O]SeKE~=Kx7z@WVWn(nH{:yCGn,kz8xv5u>}|=|~@{<}~?SKREMy?~i/ox;}{=}y;{>HQKJP}C^#gt7}}?PML~@JN?DC~@u8{FNBAIXx<}DQOG|>|Cu{G}B|B}FMHy@~GE~CDGw9u~?|DDt7s{?{JIRKESVzB|t@xlZw>yl4nj4oyC~WRMyE}uCyq@utAxyF~NUKPUwC{vBzr;txB{oXO8ZO5[fJslOzmMxeDqqQ~kM{aFs|{mb=LI(+4#!^rbƸz}h{]prh{{~nzmeyyCULVg[twuwhycOcAYrKocj~b?>:       "#-0)SXSMQZfpUclzvm~izvzIQO,/&*.)-(--=#§ȳо̵˿ʽʾɻy{mxqkmr1,5D?I;8B85@41<1.8-*3*'1,)40*75.9?2<_JS}fluwvvvxtumlm\]KAE>6>>7?>7@>7@;3=80:5.74-52+31*20(03)18-5E7>`LQ}fmw}}}~                       !%!                                        %]˿tû|gimqpeXai_]h_~OUafj{X~WXZpz|{VvxMtiusxVuʉфvlpqmrwyYJG~ʶijkyuiporrtxsvxdO¶³xik|~q~xq{toUyxp|kVYTQ^W`aU`ދŃvarl6<wn?ta̴m`[Uc`dhmjhƷpۈlf^ilmlgpqzvqqst{ȅwqywgrunjZdf,pʑx{{dtde`[{ŗi~lJ~vZnoRf{{x`HqylbeT[Im=Cy7XȁJǀOfapW\W_dXMXS>UcQ>DCjZybjsdeofgl߀ux`xftpbBI9\ZQyle{k\oXsgv\Z|\V{\Mĕt|uiS|pzmtwu䉰r}ćGUL  #             !#*-()+68;KSBS`M]n^kR_rP_sJ]m;KZ2?L/=E-:@&/2  #IVZGSZxӉ-0!,- )*EQVL\dBT\GW^JX\:FE&%                  l}Ёآ՚l,*xcV{ukc|\n\kaql~{ueujwtop{|{|uv}viytvqq}n{q堀zCWgqH[VZXH\ia\p2|{?FPIRJGLMPDOFHC>>AEGx6yQu2s=w1uIÉĜ\JMBp,lNu3s=~C{=}x:{JHM|=ELx;|t8zp2uE}=CJHTMMJ}@GGHHt7zKE~=>B@FCm0sDPQHYKHJRHQE~AFp7tv>zn8pu=y~DH}C~HLN|C}w=zL~CUGA}QUz:x{>{SQOQ~D~DMERxD}|JJo8rzC}u?zryg1k|FKxB|JNQO[ZSr@x{JUxGrAy}J~LTrAx[Y}L^-jm;xzGvD~i9tkv|IyF~p>vvC{yE}OOQ{JtCz~LMtBztEyUZ][pCvpFxoEu]8c_=gcFn`MkRF]SE_\IhdPor\gJunS|hSzscHur\wi~y:H@(-6% \qdƻn_qvx}Ymrdv|h{~cvs^qgt~`taAQ2[oGc}Sk_j_og祫   &"/1(m|yHVUs~|eu|n}ftr:@9(+).%)!%4D,êǵ˼˻ȹµȼɾƺǸ|{ixh~629A9E@;F96@52=30;/,6-(0+'/,)30+680;K;ApW_muvywwvxpr|ee]PP?8><5?=6A=6@<6@;3>80;5.64,61)32+31)15*3:/6N@Cq\_sy{}~~                        "'#                                     G5"³xsnjla`_dkcWXjroXZgbqs]kdhvffp~mp]|[`sogphwtxΉxxIJJ q±¶¸|fswqt|tzstp{Pguwh}_akx|sq}aiur|cuzhsߋbnlDMYWV]~a{djƱgiȲwˊvbՍhdks`gоx𞿺sXauWZ|{ĹzqipmňЉxldog{Åjq}Poo3qsvfmpjxioojar\gyiJrZjop`s޺xoMmifrMoChH{֐>RCfP»iltkmgrZRojTI`aYXmgioqxbjwrprh_rw~~coٰ߳ıf][yhj}pd}`QKgNRjg}mgsv|t~lllkゾwk∶syy҅אÍ    SZ:sX3=(/1.ba`Y^O+3$      #+*292;A;IPL^jP^o[hygxOaoJ\jEWf;L\7DT9GS0>E6DG1<=  ('@MO^lqdrrVmp-4)7=!,2&-)5F2AH*59(23(-/                  #"~wˬٖt0DFx]aanted~Q~aDqUwO{]aoixftjxn|iwhul|oixmwwr~|~xyzTV_WUZdZO_ae}AGYWGdPXGQVHFJJy7>p-rr0tL?l*iOB|7{=w3tga>|u3rk)i~;}u3ts1qFRQx9z?F|6uu4rEBz;{{<}r4u}>|<~AHLRN~@HGr4xARRCFPECLIGJG}?}?WLBECLIIN{A~t8vh,lt9x|C~{D~o8st;xt:w|Bv;wEx>yLNv;wO[J{?z{?{E{{r>{QPUOLt?{TP{EzD~yD}eWomuR}oPyqV~iWyL;Yk[yeQrk[xweqU~}hfLujSztp]~rİ1C7+)2! _ueǵmt[nmm|fw~n~tZihkx`ui]saG\=CZ2ToD`{SdY[wPjc~ % bleUc\UdYIYLTd_m~}y}etzkz{kwu=B9)+),$'&'1>&ç̼ƶĵɿ÷¶÷v|v_oaYX^6.8B;H;7D74>3/:0,90*6-'1-)0-)22-7=4=ZJN}chu|xzvwsulnn\]NCG;5=;5?<6@;5?:3<80;7/:4,61*40(3/(11*28/7A4;`LQhm{~                     "                                      z\jtmgu|rlp}nenstt^L]etfiqaffehnvtlklH|zU^nxgrxq}esgt&4n~{nu}qhs`bjl`h`[pecYwNfmlönsq|{yias[ixczcVhkkdnckfn8[Ӿȱ|Yḡj^ɶo̻y`fȸvrkiddfk{vi^jwx{vmj\uiz֠fýbkkjuGlk>wVy[|sR[{VyMcnclrZpnnhpueHz\~kjo}sZqapQloJoBCCKwa`dSiq}k_YcN\fxdhmgnXNYQiw~ixmՁuvg_{}]tɥǣ~|r]RQzh`wc|lepq~vwahewtninnx{ӆҁԅ{͋Ŵ:GG-/y{LЅ䔟zry\y|b1>*    $*04;F6NOu8UIo3~{>NXTQ|=DPVFBIOJ{7}x5w|?~n0mp1pm.nx6x<}n)io(ge[d\p-ku3qJ~>u5ty8x>EDv6vz:|p/m]Qm-hEx=|w:yy;|G|>KEKK{?MQDD]w6{|=ALEGFDBFGJE~@t6xLG|>IOK~@~ChzCp4rt8x}A~DGKyA~EFjWd+g}DdFPVHYLxxQININPwA}r=wr=x}IOOJu@|PR~HxB|]Z|Ip=v{HyFSs@yLNNn=uuD|xE~zGPPU{JyF~yF|HMXLo@vzKoAvrEyqFxmCupGxrP|fGpjUyg[xsclXwW@cs\mQzbBmjV|ucGqiP{r\|blVѳÿ¿7J>(4&'/ a{fԪŇfvziyxaooP]`N]fhy|P]]CPIcxljoI]DAW3OjEieyxqj_yX}|RTQ     tTd\VgXM]Q\kicrtk}lx`npP_ZfsnFJC++-. ().-,6j_Ƿ̿Ļʹɷç·|ui}bn~q|3/;A;H>:G:6D94@3/;/+8.)5-(3/)20*46/9F=DgX\nqvyvytupr{dg^MRB9@<6?=6A>7B=6?:3:7094,81+30+3/(21)16-6<09O>EqZasz}                                                                "cżü}vÁwzɆzoȇ…tc`bnuT|zNzJclYZ_X`ni^wxhowl|yXumkpogzx`Uܗ|w1vw2zHifb`Y\[`T[eXTZkol{Oi^d1vzLlbz~g{xam慽shhTVSzsrpfpiHPjEtÄӽ\h`UXTYjҀigzh\tqs}]yXryur~ynݺ]wxsql͔{qscOVgY[kƌԒkhErWvvst^{]`謵za\qMrX{drRwD}htYtTR~j2\ń[Ż~X²iǻl]b^ofZKN;Bf炟JUiyidcvjxq{wojrφo~|xqcu^ֳɩxg{lrŧyadTIpmwiqd~|~_~qQԯulk`א܌zoЃt؋ЅЄՑ̡ukatV@E'dkovkqptj%+        ! "!&+'-30!!,24CLQAJOCNSEOSKUU3<<,438@@>JLEVZJ\bL[dWak7?G8ADLVY%*#@JO>IN%-/(23&'?LSFT]L[eJYa>LP.<>$23'43*75+45!&)                ψ|ߡs{}{|vsZr`m[eIwUQ}frz{wqo|k|~}~yz|uᓔbDzYtFTX}DEYODFt5QO]TUFGJSOG};w5}PJt1ss6si.iu7xn/oc^r,l{8vp*ii^cYh&en,mm*ki(jv8ww7w>~r.nr1p|>~w9{s4qb$\n2kt:wm2rp4uSRMCIIx<|W\y>~t9{v;Xz;o0v~=|wtC{rAzg6pO{GzE~vG~l>usBzuB{nz}Hq=xM}IKY{HQOyHxEQNO{JyGOzJtE}{Im;sTYN~MKXY~OnBvlAsc7jg@8A@7B>5A<4?91<7/:4,71+3-(/0'05*3:/8F6>^KQ}ho}~~                                                        7% nĊƾŻzżzppxhaovecaupBN[]^a]fmkX|MyO`nma[leos_yzRxqPxxtpyww~|TWԓȄ{Tut9YQ_b^N}GgvihZ][s}ESˊcrwK~|Y}k_tĸ”{|yzĊnl~wÃoelxׅ\Petvkowl|zOOxxb·foldgRXlgfpyǼdnopqckktrxۚ~kԥf‰ݢ`lvwƿ|zֈv{|`x̌՚jk˼_s{VzrG{Xx[wXuɾpn[=sWq[mUqnTvyl8P\gi^jS`qCfVGTGHbkjo~voln~tyvbxrynysfMiݱͮn|c~_uʞ~[umTcUH{si}~bc|psǙzUqՋ|̈́؋҉ˈ笯ÓpIg[f:mgitoSPhאs~JNZdh@KM.9;ERT@KQS[b^hkFRS0<;)56",.{;IH1?B9FJx8E\x:K_Iz<}t8xGRi$ao+jp.lt/mg_e"b}@[d#cAL}>~p/lc]j)gIq4ss6rr7sl2mq7ut9yq5ux>}EEu9yC~BGHOy=~i-o}@Dn0s~A~@y:FI~=\~=~FHF~=>Bz<|IHJG}D}Bz>~CRQGLGWLx=zp7qt;wt:xz@}]M~D~DNG~D{A}HTOJ~B~z@{x>yr=wl:sr>_trH_SG\Rn}\ll^oqj}]otki||=FA(**,-.75$*/qkƱŶķļķ^wXpldkh50:CFlX`sy~                             !#."-                               6"ozolrxuit~kSotkPTlrgadiglSy{>W}Vd|rktt^pbhe?vyv|vysjfs?lkzpjnԉrrsgukf]Kam[u9ٔʈuJpsOvϗgr‹pxƍДzvyywo~wu{dUltrtlsyplq.JλκYʶsoiȺpMhfÂ_xJYegd´|jnƹjsz\bg׏a|}x|Nʎrkbļr~uqt{jqcfzxyyv`sojt|_cri{x{pr[Qs]kvĖjC_|ZbU\[eppSNJZFej_fyQYmvumՃixwv|͐{iÖjrtcɘry]nzYuWȚgkLfaE{bzw_ws\turraQifVtiXlƄύה֛ٙ^q{rY_filXH\j^Xzn8=.       '(&03.>?:><73/(! '&,74'40#! %'*45)135=<.54%%7B@hqk^gc@KG@NJ?KM4?F-7:/9::EG>JK3?B!-1!*.'**-%14$'     $"!+'$         ѥw„|Tw{9bUcTyg{d\reyO~czȩѩӊxw}~xuo{uf}ɯ~`m9{AJZYw;SbOKT]IHs7EVD|>MZEWBz;Aw4pr/kCy9va[n+jAo3rb'eu9vn2pr6ux;yj,je(di.kg,ki.mn2ow;yn3r~BZNn4sw<{m3pw<|PF|@{?DCIHFIGTQDAw7xL~=}{;}{=~y9z~=PAg*jx:zPCNXCi-ot8xE~Dy?}G}Dh0mu;yp7sv;xIXNyA|BIJGz@}HEo7tp7tu=xO|B}IPI{EH~EHyC}m7qwB}ruvG}S`f7p{Lo?vpAyl=uo@wjssDznBwtI~oDx]3fiAseCpra~lek_^JleLtu^cGr]Aq{er\t[{_fnfOyѹʳsv.9)+1!UiU´ɚxdtvamuTcjk~xe|qLfKJgA@Z4TlO|}K`KI^Ek~k_qbgxk̼ɿdl\     [fhnPg]G\Qk{{fxxzeuwoENM14+,.-/43$.8%sqȹŻž´íûvu\qXxvA?B<6A=8D<8A93<7/:3+60)4+'2)'0-*22+5:3;QFIudetvvzuzryntt]bVCJB7@>6@>7B<7A;4?:2;8084,63*61)32'26*6:.:B3?]JT{eny~~                        " '&')!'+#3( 8,&(!                            Q>/´ǿǾ|Ⱦ}uxȄttu{{KTntXYdhWYmoiaT~}AEw;{Ey>~~CT}A~AEl1qv;{HD{?DE~@QNbOC}={:|u3uf'eX_My8zy:{m0p|?QP~@FUK|>y=}n2qw;{v|{BNNLx>{|Cv>{~F{B~usg:nsG{wKuKqH|g>qoHyf@naUlO2F+XjOrn|pz_opƹՐ8:6      &+/fzQfaUg_{xatrhzzl~rVfdpT_`05-,. (*+-0;'okŵķűƽryax]cr[UXS829A:E>9E;6A81;4,71(3/(2-'2+'0/*14.6D:@fVWmmvxtzrxpx~hoeRYJ7@=8B<7A:2<;1:6-73*53)43)32'27+7<0/%>0#>4%<3&:/#6*.$                  [J5øľykdlntfa[Ty~Nll@{yKf}~UYqgmh_Z`^R[B]~Yl}nYfi}UU]'UX+|pz[SV-xrnlmynoljynQ\q1u~n9{B~nw‚`odJx{wĽ~ov{tsch}}rzhTw}RkzOdxvqof[}i@Zhl`Utpa]ݕQKflr_a|\p|amywtm~[~i}{lqś}s{{zⒶltrhqx{QkzyxrvK||sysms}wy}qvpVx^hxlZu{jduhkdHNMadtMvs@JpzӜĽ~herntWuˑϜPcEIHUU0;9#"   !$$ $%# #" $&+//     001013               ]gaɀ펬||KljyRxQ}qisq|s°خתԥѐÒÛʛɓÓu}zʶӵ̿yBFSj1w>EFLJUVPV]M|>m1zHDKYMSKFFs4so-mr2ps5rg'gu6w|;|{<{l/kq5s|?GNQLu8yx;~DESHs8xu;zu9y}A}AI}@n2s{>z=z=GGq4wJFBOIEKOGA~z?yQ>Bv8xj-mJNT~=LQURHGMF|@~y?|EKu:xFO[w?}v?{r;wv={GFw=zu>z}DLQJILHHHp9wp7uRTPVLs80:3*60(3-'2/(30)32,3929QCHu_arstwrvpumqyahUDM@5?@6?>8@>9B;4?:1:8.84+63)43)33)24)37+6@2;[IN{ekx~}!               /'%D:4- :+$L>1F7)F7'C6&I=,MD2D;*;. 6((                 m^@Ňxÿvlvzh^kVuwDu|Hz~MsqDXmtomim_ci[Y]gUTpyGYnxsnyХ`xHa_jzss{}@EektſxwwtwmRg3kX{@q}my}xJr|u{u…؀xQp~f`_iaYsz@UmnvWXoiI`^d׈{`r}̓W`Ցh_ҋ|^bbrxvt}zwnxwƕysqs{t|wss|cj۔kO]X\Zgy~xlÚjy{zmoAqeceba?XV(wpjlf[ZPMCG:}W8]Ζeķy~}rɧټonJ],ʗ|p~g|n[vi^xyɠ|xqmV}~r̃ڑyotY|{fSf|pnfdujәvOyLx΄lZgN]POE^^Yufa`}b1>.     !!   )/09BD:@C036&(+"%)-..688>EE5AG@LW5?G$).&-/ )+   $&&)*-!!           %%%"$#    JPL̖ɯ}|Oskwamlw{ŝƣ˨ЫԧѦХϡ̦Ѩѣ͖ĖŔÙɔŽƙƜʞ̧ԣУТЦӧҨԪةثبқĤϕƭ̶ӈmRQPMv?RKZP]B{9GVVXOzANNKFSJUVE~<}Ex7xJIq0nc \o1mz>}H_fHv;{NILy=}K|AR}Bs8wHEKH\u7yt7zl/rMJCN@G@IGMNRH|;CLAw6ySIEPGBQRNU|>}BPFx>{z@}KLKILIn:vo8uHt:xhRq:x~Fv=zNMWLIT|Ds;yr9vNJNSNRw@{TSWO|MmsSWwG~zIxGrCy{LwHrKtJ[je]WuD~S_yHPl;spAxzJ}JK~K~IwB|tE|wGtC{vE}|K}LrBz`3j~NrBytB~SNvD}~K}IwDVOWX~Jm;urA|zGwGsD}kmkN{lQ~{`kqVmQpU^Bnu`~jbFrlPc~bgtbмƵo{cITAdpjª|mVkflh~yaun`vmYqhs}exj[l]BQCŀSVSHIE-42z]mpQ]\Scgfz|ncqvk}tt~664*())96'8:'j}_žülvcegVFGC54<=:C?9E<6A82<4-80)6.(4,&2-'32*63-6A8>cTV~kmsvsuqspqgihQWG:C@6??6@>8B=7A:1=:0;6-81)41)31(13*27-5;.7J9?mZ]rw{}""$%$                  1'$8,#*D3)F4%D0!I7)M=0NB2LB0E;*=2$9."4-#                     j\8¹vmvvqrXERKvrDswKWa<iuntdeg`YOTSTd[gb`jg_yiyIf|zpqxjiytqwMQ,jzvwȾ}{zx_qIZe-\vńyk}Ww\ȳɼ÷ûz~}le|}kcaoljyvsyucjKWlgPm|VfGnTujweiґLŽ}q]Ƚwmwxm¼w`zmws|xjj}pw`fz_}d|]gpf]_g]ka^i҂pncpiu{|wyϋwݎxƃLjۧpJ閱mTcc`mYqnnLqgqtk6켧q_[}Y~akyɬɥʫzskM}P|ywapled\}\g{t}uvnǩIh;kUƉÅ٧OQ7{x^tWbhoa`on΍w’ƏwqMa⇸p~8P{L]րTf\g_b        ''%$%(8~Ax8uj'ah*g{?}@k+lm0ox?}u:z}B~Cu:{z?v;{t:zLy?IDCACy=}HLKHRKNS?@RJAGE{9|OLLH?PTAEWHNPRQEB]Dm4qv{r:wp8un6uj1rzCGRHOzA~E{A|GE}Fv?zJILUSYVVnC|[b^Wn=vxHyItH~uao?yPP]V{KZyGo;wk8r~MTQ_StAzs?xR{KTO{I]|Ll=vNMtB}StB{~MQS{I}KNWc|IuEksrH}qFzqFypFztLmEx]4ipL~{[pO~kJydDshGvnN|bDteFt`AngIwm\}^Box]mSmTfwлǭ{~î{l]xq]tmi~wul~nsEQI{ɷorl  T`[~xn}}ev|x{^no`pprk|>=;2-!5."D<175'bpUĻɥyx`gXYWR:7<=:D:8B:6A93?60;2,7-)4+'2+'1-(23+680:PCHo]]prsuqtoqmmv_`YFKC7@=4?>6A>6A:3>91<8/96-71(4/(1/(01*25,5>29YIK{hiy~}~!#"$!          $))C1)U@3P8*]H:[JqǻyƺyϬwh-3q}gprg_RqOɵôökil]^huryhÀ]jՍznrqsi~ikp1Qfp{d?sUez}^f{w^klPmcsžygyvogxvWl}z|visvh›h[kҀąËr^ZipՆ铵t|mj~mvz|~ҐҒq[sꚰyrykΈ|̅ĄעV`ۀekrlgajVD]^yu&un|t?ÓĿUcoàĿھ|poԑn`bpz|т~z|z^t}u{pѯХ`vJaϡsnsNeaEm^ep`ikbdeʌ`ࣲ͕ʌXzxAYv]BFwa`ijm~g            **(,*%63.;?=HRTQ]bGSZ5<@/58SOC~>EOQPLF}@}Bz>}~By>{I[Iw=zMx@{v?yzB~{DENLKx;yCu{RWMLHq9syA}NMLJLYUg7qa8t_ipph[j;qk?trK~pBzpIeRxE~vDZ_^R}KyEzHTRTPM{IPNWOM|OoWuC}tC}xGl;syG}L}LzHxFtB|PRSsA|zIxHg6nlwrG|RnCztGwJW.dgAui>ttG~uHW^wW~VrF{{OlBwlDxoG{`6gY0\[4bmEwhBtjExpKkIz{]hvXmM|iHwcDqiLxfItU>f|wmYeJvhP}qYv\tYDzǵǸǾиūʷƲq^xvnfzoM_TCVMn}r]lc ӥW[Y    gsnvdryantuwWfhrx]lppumwwOOK4.&B:2C<252&Q\BľůǓkzf[^TFAE:6@<9E<9F95B82?5/9/*2-)2*'0+)10+46.9E:C_OSyegprqtqtnqfihSYK=E>4>=5@>6A>6A<4?80;4,74*41(3/(20)12,4:09H9?iWXqs~}          #*>*'WC4+5,$.$"*/'")!)!+"-% ,$-&!)# (!"                      _R5khktmfXr}JfrWgukz{|}~vjxjñvmegl}[qutqjxornicilernqpyvowododzW[HSM5ɾƾ{{ZiEuvRls|ƁÁjoӂrclc4sʠ{ghkpXT|Whirc[}Cg}urngPFhrR{}@`R}^B_йvЁabscm|jҕoĽbxɓtik{z{V~_||tiryXvˌ➧~r̢g}QّrRhrpuw{}mz}v}ąÅ‡rmwsre|Ȍh͊}Л_eۈ_k΀vebc\TXjV>Y_TY\zw„|ę˒{҄ʆˍя֍ڏ`uzxirus|L}cz{ٰ׫޲×oo}ɇƄshefuajdj_uÄcvXסޥ^_X^P][6VzMXZhawrkV             &'$)..4990560577=@/7<1;@:HK7HJ4CC+54%+)         y{n>@7       "$%!""$    Խ׍ńwQsHqrp8iWM~bXkMvdݭӧͩџƥ˟ǢʩѨџƠǪҭթҨҨӦШӬרӤϤѤҢϩӤϠ͚ͣ͡”{|~snҫˠpf[~rHxFl9d7qFn>lHKu=~~Ef,mi-oCPKCNI|CIG~FFw;{|A|B{Ct<}zCk4uy?LKJy|CPRQO~Eu;xGyB}{Dr9vu;xHML|By<{Fh.lz?o4se*ix=zu9ux>xq7sJSTTXVF~DVPs=wyE~J{J}M{NXpE}mB}{P\Se7kj;qtCzg7pg>ywLwD~XPTfdQO~MkjcPxk[[BkUBizmwauZjSƲű´ĸʾѻα±Ͷȥ|wp]pdN^QUf[lvm|uJTL:D=nvr   SYW~zwhv~wxk~YimqpsINJ<<6JJE:8-43#?J/~{ÛsugsaSRM:5>:8C:8E97D94B71>3.7/)2-'1,&/.(22-7;26A=5@91<5.94+63)4/'21(24*36.6>2;UEK{eiz}~~                    "0G3,UA5J0%K0'\F=F6,C3*=.':,&>1)9/&4+%5+),#,#.% ;1+7-(+#*#)!0(%1)%*" #              /*$'!6+m_\ghcp}Rk~i~}|q}rq{ftjŁp]VjpwEj~fd]jǀztgc^ZYcldr}}yxvzo{trtiOO8Z|usz^wtOdƽwqƾzpdymiewu2sƓ~yg\qrrp{~Vf_eÄ{U}XsnqcLeohX[njuDmVtm̽zV]plcjlqh^v~]t|llkt~xvԚllƖ͚xŇȌĆ|{όyjza|brleo{|P]j{v|owpos~oruɏl|ڢ^nć{~Yf֍ui|{mlxodLcOwd˜}jp~y˄Մww߉۔ur׎܈ߗ颾Ӈ|тuczuqXlw|޲թԨڭݴӯf|MɁ͂}Zyt\samyunc`З浬Ɩ{Qgmo{Ff臟TPFqbad`k|xz}wm         (-/)134>?Oy>~I~Ex@}Dv>l5u~CKTOL~@PIv:zNBv9~w:|?}?NHVNCEANIGy8zHPI~<~GEw6xRLCIOAEv:xOLx>{u;xx>{FLRzA~o8tNGw<|QE}Cx?{f-gq7tZP|@~PJGMJQNQOUXv?xL{D~UiW}J}LQ]UsB|sBywE~_O{JwE}lA=7A=:E;9E97D94B4/<1+8-(3+&0/'21)45.8C9B_PY}hqovqupsorgimU^M>J@5@>7A>8A=6A;3>8/:5,73)43)31(14*26,6;09F9?fUYpu}~~~~                     !5&#<)"8$11D1*=.'7*#1$5)#>4+9.&-".# 2'$*+!4)%6,(0'#1'%+"!=527/+1(%$            $1(3',!!#  PI1cQH[ofs|tmjtkwchobn{olpk{JjkjxmelofjhptmYds}{|{{xu}ontkzytxmrrdts^}g~nDC-|rU{nquxlpx\azyqBi֍΅|uiQlyxQqs`{r{^gorO\Ԃv~xncVj]({V±³iqvohtk|d]`S\qnf{|Êӥ}utNb̌hm՛Ѝ~|„׌~Ǖxl{oc|YS^]pz{rzywy]rnW}guz|_oŋhjtr|gzDՒuvxw{db\cZrkfa5ܭИՙs~ބyˀŇ֐Ȃ|~ܑه׍ޞԚ|ȃqpowyyjpr|_t_ש׮ҩөѫ׳]yqjcVLdftLmbDžӓ筿⮼߮ߴ}QwozURH~6wa^]|N`tdžDžʋ͎Ɔʓ;G5 '#"&#!                "#  &'$/1,##!               #& #    dnd|bKq\JvkY~qXtȲڙâʩѨЪѪѫЮӬҥ̩ϨΤ̦ϦΨФ̩ШΑ~ȓvkzrzpmpMx8}BfJPUsCxIzF|FSIJXIo5~PEMLOM]XTzAX]G]C~AFP~Fx=EHLEFFs<}r9|MEx=~KKTHRK~AK|?x=v;s6{CFSPNMIPEEM<t2tTbNE|9yFSNNDw6wH|?|p4on2n}@~w:x}A~bELzA}vyf|KwD|}HtAzo?xsA|r@ysC{kEDOW]X]_--!//GO7nqevcVYT<6==9B>:F;8F<6D81?1,80+7-'3,'20(31)470:PENo_iqzryquororzbg]JSA6@<5=>8?<8?:4=91;9/97-82)43(34(23(26,5@3;UCGvcew||~~                           "/!3#.&"&!#+4$7(#9*&8)$0"/"/#"@53:0*3)$#         '6'1#%&(!*$%    XU2`duY|{woopqslc}Wlzwe]Q_dbimjwŁzgortsa~Zm{u|wurpm}h|xt}su}uu~wmwpszp;9*gZJϾyݏ~·|ϐ^pԊj`txkhNvvppf|KzxGdpp‰z^r~fg~vSXpZ`tqzŀoUUa\)_oqwepu~XcfttQx~R_\ltohx{Xb}u{j|X^oLPGy>~x=}v9|~Cp7xv<OOGFr5vCJKLKENu9|x;~t7zONFLDKJ??A>>DI>FMTFF};}?>z9{CUn1lq4qFERTOM~C~{@zy>yKEg-ky@P]t=yFZJu9w}@~~B~RKKNJIIx@zIJ~HNMW[KP{G~LMW_[dyGOxH{GTLtAys@zr?{tA~h9tR%bk=wpAx]-d^-enye9t{NuHvIoC{rFrGsHi=whfQTqs|}~                    %*(     ",:) >.%>-%7%-0". 4' 0%%      $%'((#   52%ʣy~{mn~v{{xxzho@yzJaecmhaqfmplaairlfadaqylhgw^IH)ɸĵɽǾ}xyilgcrrcfqnqg`Xi]omFq|wqjpdsuj_bbvN_rɽĽySVg]]\+~wAc|dmekdymudzgebpuуj[lf\WeU~|jm|i=F#|~pwt~}mfb‡ߘ|}s^kkoDŽomupmqbv}hnv֛_ďkwqij^|لNi&^ytuf[ZN`IJlW]ةۯҜ~aӈ}vw䀳t}ntiq†rxߍ׃щĊtqspsso|ΌĀ{Ɛٕts}|wg{cobtxWf֔ncru͛氹۰ۺǪewVu~MX䃾tNYvaY^Z͙ñӢhlpvsx˛qj  '&&%           !!!"                     )#ID*T^NܔyπmPnyIth;jQGy]9lQCu[pJv_rƧϜÕġȥ˧̬ЩΩϣɡˣ͢ˡʢ˖x`keqztm~yzsn~rx_qW~eOpY`ymzZu=NMP^gTLzMdyHPyH\R}K}L{JdYPJ{?s;~QPu>LH}D~Fr:{NY~CSWR}AIKz?GDIw<~Ez=~BMW]IOy<}y<Lu7zRMBCI?G~=>Cz8{KE>?EFLKFDOs2ty8{GKs4pw:wPDNORPR`UHVJq8xn3s\o7s}AKRVNIJ~Bz>||DL}EOHTRNRxB||ERLOTZXvF}Scahr?w}KyE~I~Hm9sq=wq>zxFtC|g6rsBzmslDxewrA|SzG~Ml>xl>z|Nk>wnAzqE~mB{k@xrE~wKi=xd8ssGsFqD}kAysGxMuKoD|j>vk@xkBzi@xf>sf?thAvuQqMoJ}sNiDxhBwY2hlG{hIzbDumOtVuYgO|jr[mVp[s`k]}îğɵɯǣ˺ҵϪŪť”}|xU_aTZ]lxZgp\lng|w?><      nk|qEOL8B5AN?UfW8H>Raams|31*53&FO9{yýzxh}bbr[[XR?5==6B<9D:7C95A82=2-:.)8-(6-'3/(42*6<2=QDLp`btvv}tov}hkwceZLOA:@;7>=8@<6@;4=8198/77-64*42(12'/1'/6-5=20&;0%>1%7(.:-$>3+9.%+!        +1$n}dd{z~}o|~T];oo@dkiglkawhx[do__s``eaaxlqkʧpRX!vİñ¼xʍlލ{b~{okwsz]cpky}D{{|bdwvǾ{i{Ubr¸}X^zih_{nFrgrs~ug|cbjoeh`߂ߍxXx腓^۠ςssLRT9pnє̗ø~v[pxu~acrwr߉cj‚xyxsrx`e@wcWp{kx|̀|rrwNzWwv[vj}nxaUaeXsݲ༼mn꒸hcrojtmvzƉɋޒۇj˄˅ɉsh`ufẁqȃƀϚّufzyds~Ve~bbs[wvyõ̡csuPfl̀{᳻ܪ⳶ٴַPlHtYkWjo]Usykǐ߭ݨ{qnclsy)2% !"##             &$   $!                      94%LL3crbё 14y|^~0PO1ZMUyiz[wfzʮ׬էϠǙʣɫХˡȟŞƠ˦ѤΦТ͗Ēd|OyWX`n|~tl~vnbmaopltslzann}|t`oT{cOtZ@bJ_}j]dgmT|k>PW^m^^}M^]MuFm=j9~Sem@diL}H|E{Es?v?~IxDyF{Gi3vyB~FOJIKV|CHJt:|{AMECw<|FIEF}As8vK|?LMl.rNy;~VSMJ?HF@K^K@]LCFFJ=|;~SIJ{>zJBCDDSHIOPRMFG|BLZRPOQJKz?}z@}Gw=z~EKx@|{DHKKO~H~H|Fw@zp;vm;u|H{GUwE|VZrkp=tPxD}o9sr;vKQL~KtBz{HuB|Lt>vswb5nh:ryH}I}KSNUxInB{oB{SvJrFuHwJqFd9r}P|O|PtIpE}nCzqF|rHkAxkAxf>vpIiAwf?tg@umH|kG{uRtRjGzqOmK~iFyfHwbFtcFvhL}i{bmUlUjRlU|qťɷͷϹѵˤhxwVkgtTSQ     &*,}ct{|yIQTBFAQ]RYj`Xj^7HA;;6?:-QR>7B>9C=8E82@4.:0+8+(6*'4.(42*46-9E6BdPXjnvzxvqxyfihVXMAG<6><7>?8B>6A<4?90:5+45+44*32(21'02(18.7D7@eOUkox{||||}~                                              (6*%70&6,#1&)0%-% % %"!                 -3)\j^xpy~~v=Q@UY.wjdejomro\m`Ti|jV_Yehmtdpxh|vtvqŠɠJX^IJùļ}yjpmbx}bh{wum`nMYƽſjxkmƺĹl~ou`_rɺtppgaal{mhke`coeaQjygYj|pû¼㪸ς]z抌f+7~h~qqĵŷwkwor}d{PXe{rʀ{ksvzl|z{|~lu{brxzp׌hɀtj؍}gvUleMyn][W\ͤݼ{}[xy}焷||zqvÈƋŌԑ虺ŃzċÏw|_w}i}ŁɂΆ{͕֔y~g|{Տޜj˫~k~^鲕x\~㉧}ά޿徵׭Яѳj^tSsɹ֮۳ekcq̌АڛΎ}utlrpn~sm              ((!&&%"%"   ##!                 KNCiynhp|Po!@BT{|uvV~qnƫԬԧϙƟƥ˥˟Ƥ̩ң΢͝ȣ͡˒Ċ`sXd]kdsk{jym|anfqxqzobpesdroodvT~fZm[l@fL[gMnVBQGTK^|[]`SfqeZ}HLSxKsBk>g<|tFrJzUtGk>zzIwDzFO}IyFLP{DOzDNQKWL}FPNzAyA~F|DL}DE}Bt9x|AHvQHRJDM|?}IH}A\Q~DSNHK}CFOYKONSNP~BJGQKNMu;xONGYZILXQzGLM{H|JNZ~N}LeXwD}r>wzC~|ExB|~HKON|HUKk4nxE~xE~xD~~KtAzp>v|KvF}|MuHvHoC{O*ea8vtGuHuHsFxKvIwJtFuEwG|LxHrEo@|Q~NxItHm@zf;sb6nPUQR}K}LxH}OvIrE~pD}{N~O{L|Pi?vuIuHyLvKyNpE{mBwxNyRwNqHoH}hAvc8>=6A=8A<7@:4A60<3-9.*7*'4,(30(32*590;OBJq\bquw{zvoxtbgXHLB7>>6@>7@?8B=5@:2<9/95+43)22(20'03)24*39.7SCIs[`ptx{|}|||~~                                                  .&#/'#% "-/-##"                        &,&drn|y|fu4=ajl^Xjmck[xyQd__\[\_gm|zusyw}z}{{onnƠ˞Ԣ^Zb#m~ľirffraz~oVegT[{z}posZtb{vcǸ·|eWbrvruaWoцאrn^mVp}vԂ}]qwjnygquŞmthhufbeC{īſ}btvVisj}jgԗҘ}lbb֕΅kwxuknŀys옾lrqwuo|ωUvtk֎}k͊qYt͓zhj_ffõq}ʅρ}p{wz˒Šȓϔ{w‰qrtr|vyÀŎƈgxc}zu{lu޴tXwߪvaqΙַؿܽĬɲWkNb̔ˎҦƜxzŇɃшscejnmSutqx{m'    %""       !!                        "&!m}w)46 Zwb}ylfVnCmPyȆÞƭԩџǙåˢț ƫҬ֥ϥϡˤ͜ŐŒđthv\i\i`mgvfuesuwu{j{`pgwizl}cudwS{e`sdr8^BV{h^l=^==S;]bex^rDO^y|}KMKk}LK[wGX_wH}OvFsAzFWKs?|H|HKOQyBv?MzByCs<|LX{E{DIh0qH~FLu=~yAzBzBs<{v>}MR[[HMOODz;GXXCHTD~wqD}uGxJ~QzL|LQPtFuHtDwLcsC~PPQOrDsF|L{LuHyLSRVTk@ygurJjCxf>s]6lkE|xVkGzkFyqOxXhz{khN{gHycFvlQkSjZvrzt|ïȳͩĘŞ}X^htww˺    s|~N`dyAHP4>?IYQ[ldhzvypBNUa`V\S?AB(usxqxmsjueb`WIAC=6?>8B<9B86A52=4/93,7.(5+'4.'41)45-8@8@]PSijuwxzw{u~oyi[cK@G@5>?5@@6B?6B:3=:2:7-64*34(32(31'23)27-6B4[@V]`wYQzLwmPdrxEp=Ks@RzHm;{xDvBJW}HyExDOwBRXt@~JSIw@}Ep:yVPuFLNSLu=q9{t<}zBzBMIv?MS~BLWSGHM]CBY@A@H=KHFMPCM|=~}<~HKDMGKu7wo1rO^D~F{B\ISNZWj0pYY]~Bx<|}DOHMMLKt=xq:vGULJNQKyC}wA{MvB|qAyT|J[mΩzIXQVVJJWHs=wzD~~HI}G~Ht>wIPzEu>xLQK{ItE|rD{pCzuIuPfBynE}yN}S[qF~zNwJtHm@ynAz}Q|OvIzMqD~xKxK|NU|QpEh;wrEnA|m?zuFzLsFuHxKtGvJm@ysE|OoD~WrIa6npF}sJa9o_9knIzf?se>soI}mG~zUvQrLzViF|sPsRfFx|cwmr^bHw`Gsk[aWxspxvw{u|}¨œæīȱə¥Wie{itl"'!     !%"~n?QNFUQ)01OXYqi}xt~S\dwmlbB9)/0{m{pubqe{yewicjaVPOC:@>8A>8A<9C:7B62=3-71)6/'5-&5.'42*5719JBFn]]pqvyxzvys{yhp_QXG;D>4>@5AA6D>5B:2;6/72+33)35)53(32(24+69.8O?Dp[apvy|{{{|||~}                                           -#!#%'                           '(.>BL_istDJ6QSNS_ckhaƁZV``Z[kqoQ^~{uro}ups{vzx}vң֤ڥޤڢ۪ۯ|m~cwnxYmuRtvo|mhan}|spe`Phwjȼķr[VƳr~ķzt[_kϽܔlkz{ob[ppqrib\jބkDŽє^ptpzy^_nnwj`Ĕrnv[lcƷ}̙οtvv|pc`qyur{ronkl[hszhb|nyfҖ{oxvx`ݐ咰u_ԕޠʖ}ϓͅЁ҄ۓ뱷Ō␮x}}|~~ؒҍɍǏ|dgtJ{Xfoxzgtfpfnq|~ankWn乷Ӫ{ev͘զȣ}luY|~tx·pYc٭ƚўףԘӏ֎l_dbhlZa]]`gSiG           MML      IRS蟯8D<K^fzUwdFpi'S21_xoD|zMrFxKi?w^3n|OtGg;vf:usFP{Lm@yrE~l@{nB}k@{g=wh?z`8qlE}pHb8poGlC{^7l^:jtVtTtOtOoIoJqLwPxTlJtRpPiI|{bv`[BqqWs^wtzmic}y`}|{xx|~~ǫșʰˊġxezt÷ɸP]S   ^lis1=4(pzz|uJRYFF@LI?hm`~l~cZiY[m_|n}qepe\ZYI@F=7?>7A>8B=8B94?4.:2+82)6/&5.'50(45.8<6v]4mf:tmwTwLq@z^ZTSJ~GzA|MUU}GMJR~JP}GT~HzD~MJTsAxn?ttG~nBy\vLT-ga8upGzRnGg?wlC}Y1kf>wuI{OSTsFqHtJzNoC~oC~jA{ev=n?tNEV2                  "         u~zuIWK>G@PcfvÆaXzU}yIsdgvuwsxɥϬիҤ̢̘Œy¢Ρ̞͢ʝǒZnLzUIxRU`]hV_O|XS]Yadnkvtjpgjhnbll{uzq^lU|a[kfxcrhucom|}Nr[PhW`Skm?Sui]M{IKzH`5uh?~PtDyIrAm;zp:{R{Er@Ms@PWh7v{FSLM|HIPH~GNZvAp=~LtCU|AT`)mTXVOIUyv@}KPv:vn7ryEPxGsAz~IJ~HzHYsIwGwFQSLNY[ZM}EIZNJML{F~xCzxCxq=tt?wvB{|Grxh?yuKyM~S}Rj@|h@|uJuJ`6q_7sdH<5@:6@;8C<8C:4>5/91+6.(3+%0,&10)44,7=3<^MSkmvuzzxzuwort^bWELB5@@6@@6@>5@;3?8095.62+30(01'12(22(17-5C8<^MO|fisvvzw}y}{}}}|~~                             #   +' "         $    |}lruXolHmcgmot[\a|{\Y_Yjbfy{_~~~qoocۯܬᲽܰת٤ݣݳ{mxyxuPP=cU;̹ɼ¸luƉyhڊ}F̾jqlǺsjk^ijn܊xdrɽ~Ƽ|bbnepukׅ@gwnwkhkmlllhbyӕǏtbmgi{x|yoˆ~kv³mldz񲺮mtqg\j{ylq쐭o^p͐u}w^in얷|Ł̄ʊ}nrr{jvʉpw~ψчυ~{}uug[zѕ|Ǚ×җ͔|esMۇރo؂u^~slāSԸ~[mi`rkvׁWwgeړφσ|hۂuda{ON6;E> *86}|ąewDkgOzlelj{tѦЩОƞǣΙȓ[vkɌp=fJFsQKzXYi_oWcS`T`_km{|nyenhplufsp}ttujz_nj}teuT{`Nt_[rgrzes^cm_dhg_wEYOvDxJmAoDg>wkD}yXiYgYhzHyFM~KMq>~m9yp<}m7zp9|Im4yGMzCP}Dt=h2vwBPGMVQ{CMSM[X?IYJLOQHMCLCDSJOXHBLVXWM}@DCEUNPKKUO~FL}G{EN~GLMVKQOOo:xvAQ}GL|Ev?|Kt=zn6r|DJn>vc5lq@yyCLMwC~bcWPON{EH_\ZKLH{>zIMKL|F}wEzVwCzo9s|IJzF}KM~Kp=sk;qqDzuIrG}xMXvJsIrIqHmD}uKxMvKrFyNj?zpFZVmDjB~qEqEi@zmE^6qzRzQl@{j>zk?|zNzNyMnB}k?zmB}jA{oFoGkC|vPwQjC|hAzh?yjB{|TqL]kEz`8pg@ynGqJnIfAwfBxmJuRwYkpTt`aY~~wftdsøˬ ĕ~x$'jvzGU\smldC>/osd̹ƪnkjRHM@8B<6@@9E?9E=6B71;3-71*4/(3.&2.'31)68/:J=Eq]arsxwyxwwtsihdRTJ3?@6A?6A<4?:3=8193,41*21)11'01'/3)18.6H;@kXZopwxxzyz~{}{~{|~                             &                  20&0,lg^b]]wsT\LHmgguhgѩřwzi|wrˣحرЪѤءݟޡ嬩X[t~|vvwZ@7t±ߺwrbGaȻrfz|²o˼̾~gkmȸs´rqhhuqrmlfnwք~J^aqmWtgustryv[f~]i~zpaؕÿbʐvčxþj}Ӡϼrzp]]pulpv~ˀsāڄ܂l{wxhtmΖБÍpj_ps~mΈהh~~|ג}申|j}~tĀ|qtvvu~rj|}~{|Ȝd\℺wqokVӄrgŤv[o}tgl`h틭iqqzҊˀǀnqhLhkLmZ^TEoDg|χ́tՂxw`nY\e_u[=K2             !!  !        333oypbuhj|x yŅkpT}{M{jSo\zb{¢͗èѡəĔqnĖmozv=wJH|C}xB{PUNNR~J}IP|DQ}FMUMMJKxDXYKOMwA}KRs@xNvB~yHxDuB}xE{GKLK_Z|HXPK^WWPNMz>zHLJ~Gquo>twH~qD{tJ|TkBxnF}kAygx{Q|RtJ|RYzM|QrJlCf>ztKuJrHatL\5ng@ytLqGfwpGb;tjC|xRuNpI^7ppIiByiBzrKoIb:q]3lf>wmF~hAxjDzhCyoMtRjH}gJ|iPmRoXkds>HZaqʴͳѳn}w '.(~%*,\cjzVckggZ>>,syiʼɯxtxbVUJAF<6A;5A@8EA7E<4@4.82,60)4/'4/'4/'43,9=3>[KPjkvvzxzxxwqpu``VGKA6?>4?A6A@7B<4?81:6/61*2/)00)12(02(06,4>4;WLNyiiwxyz{}|{~|~|~}~~                                              >81dg\^XT`i`bljmpjlҧʛˠƜnv`|{lomwjlťѨإݥ殱ŠPx~nrp\dLOO"fʻ~zgsxylÐöpjjoyuxkgZiȷvźr^tõz³qvYxq[jz]mt]~nmyx}ݖ閪tmz}rڃwrew{xzzĕ{otpvyuq^y颸unޓkswҌnftmptuuuq̑Łɏ箶ьqbXgevn̈́៸ӘҟӮwzzzbwЉÀ}bwyҍÀ{sq|癙ks{vvtsҜӜҟ“r{փsxjjh̆e\ry~zcۏldjmfdjZyĞjsɃd_lc}kd[Z[]]Kv͂ۊᒱ̆ŀՉvZw_phzY)              #$'+,   /15       +-/Tf^N][Pab|}ŅmqVxBqYNfSjWnnyåʡǍ{[hc4==$0:tydr|DWZd[w{EfXNx]dvh~i~yzy~kn~l|k{thvhsblRyZQxXT}]NyW[eYd@lL?jG;d?=bE@cRvzZmjx_}OuJzPxLyMuFm9{s?xF|MrFrIZ=nbR|mkg]n=}RRSQyJl;|sBzFMzB}EKHPM|EJ{CzEs>T|Cy>OGYYSPXEJw:~AUJWJPYGz<w9|DETQPEy;zoy:zCCRx=zuyIOUOQzEvCi7s}IJs>{NyFyEQUN{Hh5rObZT|IJwB}i9ph:osAz~IMTYr@{}I~IK~HLSJJOuyjA{nFc;toFg=wlB{jAzc:tg?xmD~mFlE~oHg@xkD}e>va:qnGjC|nHb8><6B=8D>9D;5A:2>6.90*4/)4/(40(51*76.;G4=?5@B8C?6A91<7/84-50)1.'01)22(16+49.6I=Ci[_ruy{z|||{|~}}~~                                                          wocotam|zzgjrxocyufhhow|mwwv|p[cvtri[^q}ZX{zIih}pnĵōf`ξukxqac{ˁq^̈́Ђew듮cdmkǂo]ohk}vfcfvNJn}ɋԍulŋؖ|{΁vѓoyˍmяƒ|ƑٛΒbi=dd?k|rv~gtpڐý~kwvhqsoo{wg{Š{yxogsϑÌ~֑mӇ`Λϙ͕ȓ͚ȚӢxz]pWZ~~~bomkȇʒprˋzɏϓ̕ǔ۟ĎΑʎʒѡʘYttpkgg{q{wsyTykYyefirse|_vzn~oxsĀ`YލcIfY\SYKM|Ѓ׉kqt͊~a]gL6?0             &)+*.1!      !i{vv0:6|sƂrVw@iX3dBFzTNZWhjlntz~^nj'81% NZq{DS[ .:=qzt7ZV+J<^zu~cn|wkl|ixiwcp[eY~aIrPR~[S|\S{[FqOAlH;dBIoXg|fzpcnt_eX\\UoCpA}^-hrCzL}O{NvM]7sc@x_@qfCuWUMp<tBsB[Z&jyDQPp8yIIKNOyAP~Gj3tk5xPFy>XPJNPTRUKFDKBHNHIP|@Y{=ORVN|=~u:xOZ}?}y<{GM]Rj2j|E~~EzBxB~JXUxDxDOq?|ozp:vJNOPPPIv?zLXRxAzJFyA{u?yN|GzE}r?wnw{GQRtDz|MpCxj>tvMzRg=s`3jZ.fa3nzNzSc;vjA|rHlC}kCzg?ymEuLtIrJiF`ɪjpjXXJ@D;6?<6B<7B;7C72=6.94-7/)3/(20'30(55-9?4?]MRkkxxyxzywwqqwbdYIN?6>>6@@6A?6A<4?80<4-61*21(12(13(25)39-7@4;\IN{ejuxz|{}||{|~{~|~                                                                 #nlUzycjxzj\eih[^t|fuJrcuwnsptw`ll}hu_s{VqyNzWamwr`XYgige\nf^gn3kl4˿̻˾Ȋ‚jey^aZk\ŷvǸzmƶyozЈmltqvfcjfyxdm}sɃqkaty|yyyċtfjoȌrnk{ޝ|l`b3}crh~ıaࡿrXomhjmm^mtob}„thÊË{ˆɌt}z~Ǎȏĉ}׌dbr܊ܗޡΫsgsyuy~mcknqmoʐnj}rb‰ɎɎ|ō˛͜hWe<6-,)    $s~zʆ b}y}}|~xVvx>hN+^6'_.YT)BzxKq@j7zq?uBwEm:l8}MTIKLyBs<K}F{DHKt:~y@n6yl3vNy?DKNNKOUUJw|t@~xFn;xKxC|Fm9ws@~QwC\hT]bY|Ja-kp;yJ}FKKTKINQOJIRNu>xxA{zD~zC}zC}p;s}Hu@x|IZ~L|wD{~K}Kh:og;rl;s{Lk?tvK|SrKsI~c7nf;qpF~{vrI}UXida:uwN|Q{P_`7sd>yeB|R5k[9riB}^6rb9uf{j@|R,fa;uiA|g?ziA{]7oc=utIrGpHmE~mD~nEkCe=xmEqJ^7pkJqRwUxUwTxTrNqPuVx]q{kQjJv[|c`Kyqk{bscqwmfyy_qstwg{zTigXplkfg}rvychsCKOwQUW144vwtd[JE>.иv|xcd[LOA:A<6A<6B=7C;5@60:4,71*5.(2/'21(32*58/:J=Do]_srzz{{yxwvlmmX\K>E>5?A7BB7C=4?91<6.83,51*22(12(13(26*4:/8I<@lWYmqx{{}{~}|{~|~|}~                  !#                                    -(NI8MM.ZzƏri\S`\SdtvգuVyQikkciaektjnkgsfb^_udn{cUXb^TWw\Wc؎ҿοɾƾ{lfXUR[ôlɻtŶtdο}ȇirZvojՂLesxyqq~~򞱳qgq{rt|yګjv|tdu~{~u|a`.{awq{ϾlƅĴwl堛WipȆҍir¼ŅtnjˆՇowƏʍ}Ďɔz]gyߠݤݫÖlpqssՙ|quˈsrwjhf˔yg}{zÑw՗ҕŒɢɝ͠VnLtgh}Wk{xr{zǩrwdĉ~rc^cqᯡίŞvӈ|anLlXXyDYxfhv{bwʊze#2                    #    bd[aaU%%!      ~x~%/*%#ʆ}x}|Hff-U:/`7)^,1e4GwQt~OfX':/"'$%%#(+%)! Pb{qh)47i|{ѬΊˑˑˍȉOjm>WQ8TK6SPEaebvfhvz|nb~eeeIcjƌ[qbHaSPe[OcWRbXP`^wp:GLeR~oIrHU|SpFS]fyLuFh9|VXUvGzL{M|Mr@wDuBj7|h2y[yFTYJ}D}DLHx?IMOGp5yw;|B{Bq8}m4yJEEMZTLGJPJ|@IDK~ALHq6x~AERE~CKYH|@~RGIIJFzA|n7oH~F{CRvC|}Jv@|s=yLYQ^\OT{I{HQzGr@~wFT|GzDMLKUUdlZ]MzCi2su>~YWs8D93?6/95,70)5-'3/'30(34,7>4=YKN{hgxw}|zyzytu~fi]JOF9B>5@?6B=5A;3>80;4,73,41*22(01'04)28-6<29XJMzghtwz}{~|}|{~|}~~~~.)%!              #&!                                   DA7re~webxokuwe]fad^cldal]goo~lp}l~}jbZehec[Y^c]aX:H eǒƳȷrjzSROX±gʼqϾwɹqwͅQ\ԏ¸u|䔛Ohg_gttʿ▨h{yv_q`flw|yvnˆԥ|zĆyjoufituEQ/XV)jszϻqÆ̾kvpdǂ⏩e}ܘ򠭭kň΅l{zvtqzǒƐÏĐďtfo|xNJ㯭}Z}~ʖ}c͇őÐđqsْڐć‹jo֍i~kƑѣőΑӑǏʣ{qpwX^|yiv|޹Ӥǘ}bwjy֦鼢ȫնģjˀrdlu[}Obq|f]xy|w؈y{6E0                        *+&       ؃[okwZzEUO~mp}zNlm-T;-\8,[4gpYzcJbS:MB'6-"0+1?<&20%/.2<<")+#!).), $*:ytKbgMZX̽ɣɍÎȐɎnjɖs@ZZ5QG)E;?WQE][QjkeSmnd^NohTsiQofHf_@]ZIdibyǫk\nZ3"DD6Wxorm^Jvb@{b9xwLuKUmAk>vJZwJsD}O{OrFoBPVtGVxEyFyFTL}HT|FOSIFJO{BLQMLv=q6{s9}zA~EH{BIKEWZXNMRIz@Gz?ULRURNMKDLUST{BPFDMKIyC}r=u{CKK|Ho=yn;y}G{EzEM{HPYOdURQg8rm?zrBrA~PT{GN|ItCn>|vEtC|j:tLW|IyCvBcSGPRQKHHNPLK|F~GKWSn;t|IOJ}GvAz~KNMUPsBy|KxIRd7lk@vuMwO~TV~SwJkB|_7qoFnFc7A?8D?9E;5A82=6/94+70(5,&1/'23+65-7J>EjX[op{z|zywxxqto[_RAH@5@<6A>6C>5@:1<6.93+60)2/(01'/2(05+3:/7H=AdWYpr{}{~|}}{~{~~||~~%#($                                                        fjNZqu:c]eo0t{wxl^hfbo_hh[ùrgluaz¿soNJzfri__P`n_YljfaRe)')mƼ‡n_vEKTYmhgmΆzɾsbl͆eigV[jƼ}un{ǿzQe^_qukrpkpvptzsu蹊l`xh~gxsʨSN,w[|ɷȵʸȊ͊gkǃſ~gndkzqj~}yzrxwmĆқ{xvÑȓĒ~|eqqg`az}ÿ|oZ{Ώ‘ȑÌr‡ȇnjlԇƆ~ouyŖsuŔշ~bLj]{_~ctzc~eś˝޲pچҀӖ渹ժƧͳk{TjOcƒlwlvjlpguyoowg{gvT              459327        ؓavvPoot&2+ |ȅxx|Nqo&N47cJzQl_#5.*%#.,!++2=;.:7 )(!(*%03%) %$*  GOc..&#ɱÉŃÈɈȑ}SqpYvmA\TJc^D][LhfIdaMgcMjbEbT>WH=WLMledWtyzQXslShF{TgCyT]wO}Si?gxHid|KvHY\sD|Ii:~[0pRJuAJO~Iq:{Fv@JJOF|DzBLy@|CLSIGFz@VQ{BcKLJKO{Bz@z@r9~s;Gv9l1yLILOGMUURGw<||Au;xv;xy>{HMGu>xt=wt>wMl4p{FuA~{Gn:x~KPRUR}K~RTZSWwGqB~l?{jzqAyc2lo>z|KOvDKMPSQT|FPV~G|DKRK~Gu>xJROPIMN}FG{Fb1hf5l{E~Tm;pzG}xE}yD~NNq?wRPyKmAud7l~UqNgk`_xNqHkC|qJsLmF~qJoG[2mpJqImDsJhIyrU/gh@zpGlC~d:vl?~Y+la4tpD_4qnFpHh>6A?9D>8D93?5/:4,81)6.'3,&/-&04+7@3>\JP|eguvyyzxxwsr}hhaPUF:C<4>>6A@6B?5@;1<5-82*50)2.'..&.2(07,4?0:XHMvefst{|}}}~||~}|}~~3*'0)&2'&%                                 !            ^ytrq\eӅ|gvmsygpnfklkt|̥qzsg|uq؁bngV^Sba_bexslzFLO4qjJgr}{Mq6NųOboɿogciuyc~klɂQԏmlܒ{Pgajjbw}vwlnpuu]me}pwפ૕yq~zȪ޺˦rgimQfpį{ÌĀW}σԈȈpheq}vouʈyȍɗΌ}ɉeltkkssRÉϥğΙƔnhhu~|qtNjˆpsʇƃɌ}uw~}vxâQl@dufuy{qj_eÄjmЊy_߰٥{Ȉ漣oykÅ˅\zg‘zueu}}wgys_׈xslqduL                           YnsWsw\  Znk~o8\SE)qr)85&2.!'&  #%%.1$03&( #  DTjkJbj avl˸áÈƈt|ŇŅQotMkdQncczn`WtrJd_Jh^FdYRja_{rsW{wQpo妲y{]KiXpHrJkCkB~RXTwKsFyJrCwGTRRQV]TqFazKZ-od6zwFtB|HzELyD~Js=q;Ku?~HLJMOHyANOHNv?{CV}DHg2vf3vYMH|Ep:{p:}zBt;t=TMG|@t<~GJIKM}CSWw@}w?|u;y{A~~E}CJT|CxA|~Gr=wzD~w?zNRMnvLQn=oQp>uyE~KzGN~MsGyuiAnj>s{RvQkF{|YqOoKlC}pFyNpJ\jCzb;ti>y^4o`9ub9urJmC~oQg_7rlC}c:tc:u[3p`6ug:yrFk?|qEi=zsFj?z\3oi@{mC}nEtKjB{yWuvR{SuMuMxQnHyTsMmFrLlFvO~W~Z}[wWtzXkIlNgNr\lcKR\)65æxr}|q^lZezo{{}n{lv}ytd||YrmWnfUlbTnaToaYshf|}~guvWfc}p|Uf^asnj|`uqBPOy{Ѩv}aYHKH7ѻs}facMOI:B=5@=6B=8C=7C71>3-:1*71'5/&3.'12)3:/:M:DqY]rqxwzxywwwqrr]`SDL>4?<4?=5A>5@=3>9/:6,72)43*40(00(/5*3!|"1+(&$),4: *.!$  EReɏ69;RJjqvxtr|Ċʼnpr~wWtp.I;5QH`[yc^zv[zoVwkoJhX*G=Heeǟxi`d}RatwMzMsF{MuGTXrBR{HKS}IObWm?pCZuFU|Jq@}JOZMs@{FSQQvBs?{G^\RKzFt=k5wL{ExC}H}Go8}j7{tAM~Hs=m<{l:zvBxB|CHNXNS~FzBu>u?~JMPi0rFKJNO}E~EOTNwC~o=vq>wI{E}INO{JR}KP~L|Jp?{}QRyGtB|p>zt@f2rk8wk9xn;zRTp<|l6wj3tn8wu?}JJKw@}}GrxwAz}FzC}u>xPPPQ|B|J}Gqp|Sh@u^:ntMmF}vMwM{RsM]vOqIlA|qGyRoEd9viC}gP*eZ0muI^5o]4pX/mZ0npDoCh6C<5B;3@60<1,71)63(60&4.&15+7=0<^HO~cfurzuzxwwst~hk`OWG9E?4?@6A=5B=5@;1<9/:6,72)42)31'04)28,6@3=\HQ|fjuwz}{~z}y|}~}||~}}}~~~~'$"                       %#       $#!           JI=ƇȆusPLwkebrk\fahˈv^vol_ml~_c[d[üwmgcf`c\X]fdegbqV3;{rnO~ZmQ{i)HZȾemwYPpdoasrqsWme[xrn|ƂωmzЃvhoZdfll|x~bۭଭ˞s͐Ȁ|ncĚfeL\H$nt҈j{wtqenxȏݝ{ĈÄ̊ۙyÍ͔„y}܏Ãď}nvrsmrhUы|Ǐbsxkjox~w{`qyljnzvprgvqwƉ{yqpvZ—̢nvYtowL[\dlonTdlfzōqw|hzfʊxylloXj׋єڪᴶӧۮۭʚВy܁tpzmoV܂h_aYgBT0                          045RacłsqWj]   p:[L6\Ez "#!  j7xSvBl9{p=ryg6p~NQ}JQ^byINyFzHn=yYyJuCuD}KMQwBd1po=|m;z~J|Gpzq;wv@|yCRTf/kl3pLLxA|zC}J{D~IVVG{D}Rr;tn7os>tvBzwB{n:quBv~MpBt~KwF}k;q|KYwH~h>qk@tZ3ab=lYf;qW/dnG~mC~xMvNZ~XsLj@zoFmC}oC~vK|Ph;xhE|rZQ*fgzqEuIyMwKi=x_9r[5pqK[xQoGf=ylEZxTpOvUuRsPtPxTxQrNsNqPvWsVrPuQuRuUz]ubvt{}uvoyNq[cvzùqqqvutl{x~JXfuƽ͡|rh~\vrOnbNk^Yrnd~zn`usvB\A4T/;]:]|jdvyLZ[͇o~vmfKB2{}qſʳ¸qmgcNTF:D=5@=6B?7D=6C91=7/:2,61*43(61'5-&18.9J9ClVXonwvyvxtttnqv^`PAH?3@@5A>5@;4?<4>;1<7-83*51)4.'00'/5+39.7G9CiV\orwz{}{}z}z}z}||{~}}||~~             )%&*&("          #%"$(&!%"*0*.1+           POD~˜ƐːɍՖ觥m,\NT[d]Z\gyk\`tuyhdzq]stdjmghccdd]^cdfʁW`:cakMwzI|s6URA[Rdvrklt{}mlݒrrٍ̀Xrv^pooEvyN{qv»z½~{o}֬߱tϓԈ}zuqomjSP6ZO ʺsq{∯amgjqDž{yzwstzt`|†ٔǀyt|zzDž}ww儷wyqqӁVawvt҆؎r`|kl}aa}|eͅІ|kmߏ搮txnmӤǒqnn[ypWsmnsetqZabwnҧtfZiQf[gbVwBxٰ߹۱ϟyit[hVnnak㋩kfiqaYgn                         _plis˃     #'&FWM\ug0=6  (*'&  )/D`r+;Nk~9UHLn[զ˂ƀqlo]m_}}:TNXrka~vEdadVuxKicJi\PqaJn:~`.r|I].np@QQISM~Cw=zBr;JvDk;y}GyCwCxF~LT~JvC~VZ}LWWq=ySyGr@zT`pC~o@}j:xo>|{I}KOzLNg4rwE~LxFLyEj7wuCvDxD{G{HyCw@p8wt=|LZJRJq:vI{E~GQHLKx@{v?y_RLIMKHM}Hrtj;tsD|uG|mAvk?tj@tg>ssKwNj@yR*fjA{sIyS^{VmB~d7spDg;vm@{nA|rFmA~qIfDQ.kf=yf:vj>yj>yk>zc7tl@|nBnBqEoC~k?{sGuIoCd9tjB{W0je?xnGxPnFtLqIpHlDvOuNvP]_pMcgwZz]z[tStQqNvRtRxZ~obgrys~pyozgp^j[gVxbMm\d~t|m}l{y{pwnw|{u}v}Q\gŽqwpvwovww~ug|yC]G4T-9[1?`9HdHWla5DGı~WIAb_UֻÞ˧ѴӽȮ~mv]\S@IC;F>8D>8D>7C<4A8/<4-81+4/)40(50(54,7?2=]GQ{detryxxuwrqqfjgOTH:C?3@A5A=5@92=8/:8.93*50)40(41(13)26,5>3:SFKtcdtvz|{|{}{~z}{~{~z}z}|~|}|}~~~~             %! #  4,&-&("&!     " $"%#!%"#               :<)hffƒЌщpy.|x-Me_bh^ctz[rou‚Їlg~~jsvziovlrlksm^SYaqjчؙmwIh]@`Tf\DZWlv{qfvwvn`ksɆQYz]iZldUm_Wzmdmqs{¸µ}zz{w{}y邳jbghe^abCbjnfhjhlncq}К{}wuqppzΉÃΊΊzńśƅʎ|}~|߉؃ۏʉ~WqjÌvqݒҍwpm}uQŽ{׎kńЅ€zk|{{sj~tȇƐϕĉפզrmunwoLXunplԍvim釲h`v|NÔiZfxnZk=C]XY|Tĝx}̅}xxŁlbhtgc[^lc                   %**&'(-40%-* "!!"!   111p}ytŏ\~ù$3(          #(*#$   DTi5Id~]swGf[c|듬Œs]dliXxuka}Je^Qld=[WdvWxxVspSoi5SRosxͥ}ÈZwJnF~TwISPPSNc\VPRYUWYb4yyMrQT+mc;xwJtCStFO~KQM^XOKOFUML{Fs>wDJu@NL|G{Dh2xp7~Cz@zDi6xn>~r?Q^LzAHy@Pt=zB|Cj5xyEq=~q;}Pt>~nzxMk?ze7snA}tIxQd>v^6m_7r]7rgAznK|YuNsOzXwT|^gpOx]{|_sPuQvRmIwSwUxWpZv|tzjrnwqyjsdoalZe_mnNn_pვyu||vsyyz}{s^mxݑrd~}zy_vtUjdl|5S0<^37\0:]4LgJ(80Œ`ZSRLCí_|ϲ˺°rigNOL;C?7B=8D?9E;5B91>5-93+80*6.(4/'40(56-8H8AjTZmmwuyyxwutmnu]_RAH@6??5@?6A<4?91<7/:6,73*31*21)44*35+48.7E:?fVWmnvxz|z{z}z}y|z}z}z}z}{~|~}|~~            &(!#  !*"*"/'#)$       %%!'&""()#12,              gƈeĊis}|aah3yrG`lko~qenuɐuekd|gxxz}vù^jxfmnžsunnf[exoqӐW[0oW}jeYlsk=QX_onY^t`ur}vmf[hqgz~orv~lɗuxjdw~֓{yШqytvxs]`nvrӊVntMMBRY|NWWclyvv|{̖ЛҞɔΓƇȄՓȓƋφ{Շˋ~||ߍ䓿ԅчޙĆ٠adglqgr|Wpld܆ti_alvh`ywq“{o}uwqqpI^{g]qqvT`rmpnw|}Âߘyu|^67UL=j\`~DŽՅߎȃlyʌՕÀԍ{āy|pzklpb)6              *329@?$&&"! #     NRSwxaxm          "&"   ,7ILdoB_[jțQqq㐯ÂyQph)E9Ba`|\{}a~Xuu>Y^zySopE__uuxooƗÌlc~PuLuKYRzFKXc{L~MUwEOSWuCi:xGWWOe8|W-hmA{zIyHvHqARSvCvCXVgKk\^WyEn:~O}JMQwEk6|t;~EE{=Dv>[pA]UPQJ\TTIKOLYHKIWNp>{SwFvCr?{XtD}p?zUyKh7owC~JR}N~L}KUuCxH}Lq?|tB~LOq>~xE}L~JMwEyERO}Is?}v@p;}yEOKJ|Fn;wb.mj5vu>{QSQQG~EG~FNQSQwA{|C~p6q}FI}FMl8ns@xOZndjtrEzpCxpH|izQwPtLi?vwKjAyi@xkBz^4o~XxUg=vyNlA{k?zj=xizj>zd8u_3pi1֚ggsƬwjnXELD7@>6@>7C?7D:4@7/<4,90*60)5/'42(53)6>3=YGLw`_tozuz{yytrjieRTC8?;4<>6@=6@<4?80;6.95,64*42*43*34*36,4=2:QCHs`asv|~|{~z}y|y|{~z}y||~~}}~~~             & ( " '&!     "!#%             "ɀtsp_uω~ǃƉs}[pmH}Yglkivvsk{z]zz_|g{ŧquVjo]^dlûxr½psngUyRnt{pD?ybx~ƒyh~]yWwpHU`_~Q_r]R}vgȏx~rwĄzzwxrqѣ|igfqxҋuء嵿ۭޯjguzog_fkmrzVX[i^owmxQhwv\Ēx|ƑoŖ͓ɓ̠y˙ҕnjǓۑۆՉus~ɋ‰xӢ_ٝҚ|ttĐer}dg|z`u䓽zkk~zdro|}yÁkYفu{tj|CpヽjrnbqvhOtibh]jhi߅{ehLcFX\QRkcxksssp^}΂埴ˇ㞹ˍvdoesH+7                     ''($'('+*"    ȌwNj        4t@tAvBo;}n9}}DyAy=j'vy7h2vt>Pk9|eQ~EJNFJcTPLPPNr{s@~puoCxrLzk~We9nrCzj;rnBw]uI}g@qikn~bolDytPwUg=vmA|^zXuKrGb5nj;vl>ymA|wKrFjA|a9ta6qk?{k?{rGmA{k@{l@{h;vk>yb5ppC~pDoCh7@=5@=5?91<6.94,74+65+64*53(24+4:.7F9>bSV}jltv|~{|y|z}{~z}z}|~~~~}~~}}            "" " %#     "#             lfIϏxeY^c{фz}ŒŖʜXvuR~|ZbpqjuqrnžЭŧϴͳŦlfXvh|wPefjµwȽtspd`_biuq~X&& uaLw|ycziuk_XlobnselipŃlLjv~ieȇy}Ȑqե㳱ij{Пϝң٪קզǗ|q[VPgl{wYYdbwj`ujӤ|Xapw]Ye>{Ȑϗ~vƂސioʝТɛĕkyKq~Pϟ̜˜Οnzy|NYkƕԧnYpФ›ѤuˑƐΤ[_qixYȆ͌r׉̈eYrψ^a{w}quTOikfduoBVvrqgwQsokqhcjgske_q}{Lwxogx]_S]jsy拾zwבpiqz†qÉ||f@G2                 $$%(((+-+$&&    R[Uɗ͈#0-   #"!   `p}z^y}Okbx+F<ǯ¢tD[]Uos|wfkg~ay"3C\q}rٿ˒ŝtjnD~S]SLUNvDN|Ir?f6|m:j7}j8~j8}}JQLxGd[xEi8{l;~h7|k8r@Y,n|PTvDwB}I~MSP^MvB|GwCQ|Ht>{D~Fu~EyBJR|IUL|G|GKKs>|tD~pii:rd4nMLl9v}K|Jp>zrA~xFsBo>|p?|tCtJlxIn;ztB{J[|JR|Hi8wf4so=}r@}o={i7wm9zn8w{Ft@j7wi7v\}Hqyi46A>6B<4?80;6.93,73*51(30(22*27,5@3-Zybʹd]hynq}ƬژG\iLJg^wִ͗Ϲ񖊥mXvNcUKKs=p=XyG}K}KwD|Gp_+m~JtAuCOIJLTSu?v>q>{l{h;xuF~MPNQtD~K|IsA{Gp>}p>}e2ql8xs>v?`zDl8wMXIv@|LNo6uw?~r9wGO~E]|FLKzC|o8rHOW[|J{HO|N~SsGzY/de:ruJi>tyMRwH}rF{e;qg>r~SoH{vXkoPpJnKnNoMkF{nE}nEi>xi=xk?za5ma2mZ0kQ'cb9qjB{U/jj?yi?{cEnvuVte;qe:unB}k>yl?zm@{k>ymA|pDoC~k?zh3-91,70*6/(5.(5/(48.9I;BfSUnmywyvxvttppra`UEHA7==6A>7C?7B:2=7/:4,72*51)2/(0/(03+39.6D9?cU[qu{}z~{~~}}|}}~~~}|}}~~~~~}~             ")%#($!(�-(&"'"(# % !!"+$-(##"                40OZ\n{zcbXflОǕ˝ⰿӛczrWgܪݫ}rdjlVqqjqHnzMw}SivU]jffaX{YeyJYAI>'oWp~es^u|yfj~{zqyˏo~yp]cgh…zwwuÈllqˢɩثϠr׏tfcwρ⌻ttjtޛŃdqhuˇskpcgmEdz>vb֔Ւ{Ґᝮ~yj~tkvYwyVwMqrz~u͙͛f{MuțmXۋܗog͇Ąnl|lf׏ޓqhĿΆUns{Ηԁyނo}ģͯsza_reasfwnjblslzpjrnَvPtiylcrzfWl_xb|Y_Ƙoa&       "$           "!!# $'(-24$&)   3>9ϒǟsr #"$$"      #'8Kf\uc4VAC`PhVClIYʋqcw{k˙ɩԡΥ_w{k˘ȇų^Zw}pcp[c~PQRYSS|HONMM|E~Ip=l9~t>q~}LR[bR}M}KP}KwDM|Ht>wBn9ys<|RO}HQ}E}Eu={s;yu=zq8vx@~o7tGk3pxA}QLTNJUKKQSwE}m=tpAxsDy|NvJZ1ivIkAue;q}Q{MuG}qF{oE|vMj?toH|wTvU`:qtV}w`wdB}u]u[A$WgFnF_5pbѽb?e\1lnA}oB}nA|k>yi=xj>yoC~pC~qEmA|sFvKqHnFrKsJa8ti@}dy`>xuNxRrKxPqJrLnHoIjDpJsPhFoMaJ{Z\wZtpY}iY~jX|dVzb[hapl{hvbqdpku^iX{d^n_q[|k^m[}iTr`SraVtfVre^xdpq˧vtkwFbJ9Z?DiOJnZAbVbpSosy_}q}|Œ~Q_d?HPc_^c\Pɮֳʤɼιȶɺek~ijmm=;P>:G:5A82>3.92,83+80(3-'20(5<2=TDJt^`sszxwsusrrlmdVYH6@<7B<6A=5@:2=6.93+61)50)21*23*37-5<29OBEvcey|~}y}|}~~}~~~}|{}}}}}}}     "$"$!!20.2/*1-(0+'.*&,)%(&"%# "!'" )$ #                    _^J}zng]_fpwquuyuz˜ᬽЛ]haڪ봐eQguzabnd{Aak:xssrQwtT}vQ}yOuuObve`uiw`A7lOzzmtye}r|R{nYoox}u{Џ[YkrxsuÈmg~ӨԪٳʛૣo|mg_pۆrvn{s{uxyӄiu{pm]_Qex{}yˆɗnepqyho{~_ku|NڐօzqmɌnz_}͡~Òdfƒmpsvllψm_xorukYW[quqiǀxhTzlxsjq䓡vnwmojqopÀʃ_~vi}~evph̓yuqn^l}R=I3           '+",0#.0!&(       !## #%!   m~|ɛ͙iap}  !!'%$     pƑtHiKkx^|=]FC'R*T'Ai]wczvSi[xƞãćѪΞ>VW\s~َ͔uvWFnlbL}u][rJlGqEQKPzFVzF}IQGH{C|GKwBl4}j3|yEM~JyDs>s>zELKx?xByDd1tZ*lyEMj4xk4|o7~v?o;s=j3xMKw=w<{?{>z=GFz?{B}E{Cs@f7si6uuBtFi;t~KxDyE{HuAOYq>~|J}MwFzKRuDm:xxFxEyE|KzI`1l\1maSq@}tEuEuFpAo?}b4rrDsES\g}MsCuDg6sr@~uCxFvBxAyDl7wR`vCUWOJu=|{Do7usxwA{H~HPJV^\IwAwyE|p?w\oAwyKltnEzYf=rb>shCwsL\6nlJxE)Yg@wZ2lkB}Z1krHd;uh>woNU>iJ+^W4oR+gk@{rI}~]xZq~\~sLyqF}i=xwIPPxHpCoB}oD~qErFwKvKoFmEtMh?|b9unEiA}h@z|T{TgB{iDsLoIpJqLvQjDd={jDvPzTuQoNbK|whjNniNmbauavpi}exfsfr]jTtaPp^Po^On[Wve\{k`p]~m]~mhw`mNnZRq^Ol\Pp`ZzjSsb<^E5X5=_OTnp}~{~z}|}}|}~~~|||}~~~}~      "$%!"+()1./4...('*%$*(%))%('#%# # %#      (.%03,         a[Ijcgve[gzrw}Öԡ̘}~ҧߨנl_{{pdrex䅩a`mt~\fhB^}zkvnavwlPF.mj{gѳnoPna`Zwzw„pnaqt|ypĂ˗ܱخϲ˱ܫ͜z{{zg\jtqsueq{|`[w~heiqoWn_d{uȈԑ}’x[_foknktuubvSݓ方ԂʂÃǎғ~ft@}٪{~Ôǖw\kjz]ɒݚyug}|k΍qړp¾|kd]uyz{}nxll~h}^xtbqskxV]ynrqkmdoii߷|rv{`~y܇݀io[RgVkmFQ.          !#13&>B0:@/%)                   *+(DG?      6;;Ɩʢك         )6QsXLr|C|DxAn7zBqU~J|Gn8~zE{FIzAr9m7{k5zs=}Gp8}Iz@t8r7~z?|Ck2wh/t~EGi.sw;u9t7}{?EE~C{Bs:~y@u=i3t`*j|Ft@|EHzC|G|Ht?yDYSRRj;yg:wh8vvE}KuCm|xJzLWTxIn?{zJwGk;y{KUk:xo=|m9yp<|OyC_}JTXSQ{CJp8ut>zJKWO}D|EONLwB|ULxD{t?uq>stCxVvH}zJxN~jSzJ~oEvvKxMj>tfpb:p_:pkCxsJkB{c;tX2iK-_X8le=wb9sqHh=vqD]2j]4mX6mT:o_ErD$Rd:qmEsNd9roB~mAzm@wc6poBzdb4pl?zvHqB}m?z|OSl@{qEuIyMnC~nE{SlD~c:vi@|tKg?zlE~vOqMnI[7uW4r_:we?|jFoLlGnIoK_xWiIePܚϓȜӘ͑tnfQspdZypPrcPtcSraQn[HeQGeRMm[VwfZzkYyk\}mfum{YyhWwh_parfvm~^mKoUSw\Uxc^}n\zkJkYTwdbtTphMigivqyv,1?}v^be\ZOفcsp̾ͪȹɲĺktNUK7FW`ylޞX\s54B85@60<3-92+71(30(30*5:2:PBHxacroxtxuusqpjihTUG;B?5@<5@;5?:3>:2=6.92+4/+10)30(40)61*5919LAGrbeuw}y|z}|||}}}}z}{{|~~~~~~     "%! *%%/+*2./512.**,'',)('%#%"%! *&$-(% #     .3*      >9.Ġ{jcfpf^d]_wot{lřĒÓƏvabjcTf͆tYk_եs]loc]gmR^jjirUqlUnamso}uqb|`lq~e÷Č{zÉ}vbb|̿ɿozݒג|Ñͣ|t~q_Vmph_X^S^[gӋhmmÎʑɅgvrpv̏~{xn\Xvihputu_al=Ԋ坲„Β|nҏq~Pլ{nĒǑkkqËp~n{r|Ņh{`e҉ubnrvŠ{u|xׇʂuRb{uڌWstptr]vttedlijhkɡẫǘɇߕאǀ}yxxsb`gXVWYjY           *2+6=5/3*.3&#'                      əΘsңҧ.32.**" #! "           \kqzHl;T{9ebQrf@dKAfI,T6DkSq~Y}qӯӔb{np~–Kd_|ەkeeI~dwSxPkpk\~SWoFsIgtLwBQWS}GHF{?q8~g.ti2{~HVn:i7~O{HqywJsGpDsGwKnB}i>yqHiA{rKvMf>xc;utMuNpJsQnK\6ugCyThBpKiDmHpIiEvUlO\M}܍ęКϋvr蔬oh^~qXvfSpaYwi\|mRqcWsi_}u_~rgumz^|m[{l^~p]}nTteLk\KlWTv`Twbi{wf|Z{kOp_[ylXujYtqg|p|cy[fxDHXš\agWVQÿؤvλ̷èŻǓqmq^""(5?VYmdxps78H74>5/;3-92,81)41)65-9?6=6A<5?:2=80;3,70*4/)30)42*52*67.8D8>\OQ|lkxz}}y|y|{~|}~~}}||z}}}}~~~~~~}}}~~     "$,$%2+,,&&)""-%$2,*,'&!*&""!#"#                    iŒuskjph__ijii}dyzbjqmu~ȔxpkiaZwv]]ie]Sd칵֢zjhpN|dX`MKrbkl~ZooS|acxt^pǒxnsxyrZzNmq¼jSoȺѐʆol}փ}wplmvxzljde]`X_krWw뢳stƃlttz„vngw{ў~yʔڀyxO]quw~[iRjxҘrzޑO‘ɖ]֕ƒɖfop|xٙý}qpt~qܘ{͇w҄og]]zorq`f]lsossRnzzusqj}e`idldfVqvu}mxτpxˎφrih㈰_WTLTey'-       -0( -/),/))3)-8/*1*              "           %#ј™ˠӆvڣHTZ111=:9$ !''$&%#  !      WwOS{9W:hdr_tWxkQtdU|fXhcq_kpyo֫ѳ׃cmzOje{եXU[dm~T{RrX_\zMwLVXL~JMPRO~Iw@yByBwBp:n:Kx?j3|m:RWvCj8}p>SLqh-ru9~BCDGv8~Ev;v=x?r;~IHc1n^-iZOuSW{LW{Gn<{m}l9xn<{Qm@h9zn>uD\0nU+io@f9xuJ[~UyMTVPsBsCi:xsB{FPvCp<|TNwC}IL_YIxBv@|yCn8uzDGzB{C{D~YWp:tKv@yRSq?wsByzMqExpN}ȌkrHzȮϡm|TyQrL[jCxvOg>siAvkBxe;qg;r`2kg9rg>ve@|U.kmC{gwh;tpC|k>wtGoA{oB{k>wi=vd8qmAyi>7A;5?:2=5.83,62,61*52*44+46,6;09N@Em]^ut|}{}z}y|y|{~|}}}~}}}|{|}~~~~~}}~}~       ""!&#!,+&-*&)$#'!!"                     qyuibmPcimn[XyИǓÑjhrw`q|{gul]jhpu^ui}zɕզ}^gHkLт]TUeeZfxltK^[I}JjyF|HM{H{G~HzC{Fo8~HS}Gn7{t<|CJL{Dp7{r:zA{Bt;~t;y>Cp5zp5yw:~Cr:}x@u>j2vl3w}F{Eb0mY,jm;}d1sm:}{Er=~LMs?vBtA}K}J|IyGMf5sl;xo>zm:ym9yvBm9wf2rj8xk<{^4rX/mX-lW)j`3s[0mnArBrE|P]^\yPVPwGl;zMOMwAv@~HzFk7w~JuCX\Ku@{Mk5qh3qq={r=|w>|RxB|t?yO|FK~INp>um?tf~Vg|YwUeApoFy|U|h^9ilFw^8ibvl?xb5og:tb5ng9rqB{j=vl?xi=uj>vpD}h;sh:stFpD{rDzJn@ytGoB|qDtGtGj>ypDzNpEexg>xsKf>zh@{uPiEiEoLpNnHsMoI`7/<3-91*52*56.9@6>aSSliwsyuvsvtsqzbbZIMB8@<4?<5@:4>92<80;6.93,61+51+41*23,4:/8A6;\OP}klx{z}z~|}|{~wzx{z}{~}}}}}}}|~}~~|}~~}~~}~~~~~   "& "#!!#'"")$""!                niG}vmmujqiipWeq\kj}|voΘzƍ|·jec`hkndhb^]sǭzt|PQsWʁi^cfo{ajicc).OF8|kmwt^~kfĽv{{w钣f{}Oh]ckudu}}撼ǩ΅tZm|l[Xýyƽhϊʁa|{i~Ӏmcv^s|ڂvxpU}{qqjeazۊl@ċ|ߏȄw[xU¾ʠ`gw{XiȘĚΤ|{psvǎ~ܖĉintх؄zqePTawSs:ɗ`wovoastttoXi{slmnöpgkouЃXk⃴gtyRraylmee[RltE$,       "$                      ǔՈvΏakg+*!3/(! +*)(+)#&"     PeU[M_A`IaSSPQw]^r]}sbzZmUz^IpJ@hFjٱԳ׭ҬОs}zyophkx~n{V[qphUba^mhWciWUktJg<{|NQyG}JTWzGt@xC{EI}FyCI\KJ~HJ~JwDxBzEzEKKMNt;z@|FSzBn5yt;KFIg.rt;y?zAv=q8|a&ly|r@}i:w^3n^3oX*il<{j;yg7uo>|i:xf7ukuixmHrPrOuQgB}eA~gD~kNuk|ty~xyq_{}Jbiqn?WWRmkzq{Zv{]u~ztxrbwlzx~8?Kwř]bpJNOڷƤ˷ͽͳĻóĮ{UVF #$3)6Qczpux@=5@<4?:3>91<7/:5,71*50*3/*12+34-5<09Q@Dq__tvz}|{~{~{}{}xzwzy|{~{~}|}||~}}~}||}~~~}~~}~~|}~}~     !$+&%933.))40+1,()$!    $!!        ddD\xufnttc[ǂvk^mvjpnpmŏ˖vqruĽnŽplyesehZl~lʱkqEhXXghqrhrluV`ogGQ'TO1t|xxo|Tɺǵu~̠wdZjl|zփi_`fxmCXutž}x|{hĐzsu~qugckh`Zkֈ\on_̅hkvxfa\swyyuxuzrrvnvZ|V~e|Xcy^}gSo@xUml]vjh6ğϱ¾lnvvaxbruSvԙǖwǢlxȈˇՎv΋҆oԂzuvh`g`zxdOipwIzvvzobks{reqxnmsǂmV~mvtqntih|naNaΘii|}o;A4                    "#$$))"!             &+,ƥԞ˂֗ðvs)#,$ %%%!"#      $&y|fTePXLR{R^hMl[\|ohg}_iTuY5UFذԲֲ֩ͭΞmqwvoqbc{flljbje^^XhoiX]VXoEQYXuCvCMxDKRPLzBx@~FHI}FMSOyDNuAp<|GJHGu=](o{DwBh3uq9|j1ur8}m4yFt;q8|u{r>|s@~j8uxFl:wg4sl8vo;yxCs?}m;x],h^-iLuAj6t|Io?|qAn={m;3>;3>:2=7/:6.93+61*40+41+32+36.6E4~m5ut@~^*hq=yh4o`,jc0ob1ng5sj6vq:{k4v{EPKyDo:yl9wf3pl6tzCyDp>}OxFc1qn<}p=~tBwEN|Ir@f;vvHtCg8yl<{s@KJu@wBXNxCuByDvAt@f5vXNcpSOTGJp9uvB{QPRq}t`zavTcqUf@rlDxh?tmDypF|iAvaAoqjKuqI}kDxc>pqI~uPpJpH}a5l^0jrF~rEsHf>v_5mrE~sFwJj>wh:ttC}~L}Ih8r`3ib6mf9rg;sn?yrB|wI`3jg8qvEvDi:s`5md6oj>yc7ph=vf:vqF]4li?ylA{c:te>we>xsLtK^qIb:sjF~lIrOrQgI|sZi\nlsxtootwxxvttxypksnpuu^}\zkxhjv_yqn}}Vs{m̚scΘLJƞˎ{ĕydgmLLRyĠT[lUX`ܴË϶˼̹ʼoj83' !*+?3Bdpled~0,<4.90*38/6MADk[[ljururqnomjipWZO>G=5><5><4?;3>80;6.95-82*50)41+52+43+3<29P=Cp[[rqz}z}|}}}}|z~vzy|{~||||~~~~}{{|}}~~}~~}~}~}}}{  )!"      %*"#-#%)#"'"!"        # '#"            # 10$77+%"!  97/ZZLZ[CJF241suWjkIpnNlnHyYckwfx؄djvsgn`acfg¸tr´yrslhkzbarU`X}Sihkrux{uy\bzl9`X/ȷ~vvĽ}cVxzo|nxy̌fkruiÃ^dsu`ļoxtmhuʉȂuʉׅuԖޥєil~r^`pXþu{X\|`slȾ|uidkyfdUbusyńtufd}ę$1#oɋ̈Zp{{I{PuxzxBE?LI>p|{cksy{mlqːhfwn{|oj_čqe|юudYc`apɃz[oOknhvonbeelplosxu\dvdmsptUt͏ʈ͋Í^i^!$$#&             ./+   '(%'(%+,)&(%$(&$'& !!!%&&&)(!"!     oę˘ɁŖ¬טˉ),&$      J]eצҼln\\ZeT`uyk=[OF`cȰүѱԲֶظظ٬ϨǛqx~w]ikfqebkV^`VSjB^{O^TzGxG[_QPYWPQO}DLQSLMUPI|Ds=~I}GNGj1uyAyAJHl2w|Ef2txDOzAm6zo7zm5xr:|o6zg-p{?w;t:}p5yp4yt;~y@Iz?q6xx@q9zv;}v<~~Cy?zAzBq9zo6w|DzDl5rb*iu>]'e[)eZ%dh-qk/sp9xHGe.lr;|NKo8ys=}|H|Jk9x|J|Jo<~o=}tBuDQPm<}l<|m={}Kq?k:zuCyGJT|ITKOwCzFLyErAwFN|KQUr?zn:wVWMyE~vC|qByxJsL}k~]KrpYxWy[w_fJuoQ}vSsK~i@vkCxbAsoeHsb;p[6gY4ckCxg?uf>s}RoB{l@xmBztHxK^3j^4lsFwHp@zf8rn>xrB|yFvB{e5lb4ll?xrD}h;tm>x{JrByc4kwFvDzIuEb4nc6qsFpC|h;upCxMexmD~c:uc>xqPnOfFzpUeVyNRfVdsI\iOetZub~\si}ppoqruywa|LenNfnMgm>Z_RrxkzxuʡЈ®ک٤ԥ՞̖Šw}͒iEdf2WViĦԛǚÕдޡɎΑŢ͚ōØV^a]^d{ɞX]n__j߼ˋ˵ʷ̾ί|tC<.) &'"14:TWgk~w~>;N.)31+4@6>\NQs``jgnkmjigefw^_ZJKD9@=3><4?<4?;3>80;5-83+61)4.(2/*24-58/8B6=]LO|ihwxx|y|y|z}{~|}|{~x{wyy|{~}||}~}}~|z{||}}~~}~~~}z|{  "%%  !!!          "##         )%+*$  =7yDn½lep^jedyde{j]aRcrsolpouvYt~Zqt~sttQfsq|yn{qhe}T7Bj_@˺|Ȇxvx~jq}gxmoyzx،qąkr7\f}]uǽpecûsvuv͂xjwmxԐӒňx\dUOxrXYȾ}ll¹odtzޤŁgig^gyӃhiȁ}Ɓāu}i}ϔqqp;F+#$   VckRisϴٴpq>v5J}NǨhzؑTtlGbcũѬΰѰԲֵ׵׶رԨȢÜjo{ccpdipYaahddzLtKbYqE{KUMN_RMTXOKQr9x@WUMFW[{D}E}ExCJJs:~zAKF~DML~E\*kETp:yq8{{Cp9}Lx>s8|F|?Ch-qzBL}E])eq:{v;x;~p3vo4wEHJv;~r7yy>}Dv>zBH{Ao5uf,mi/ozDq:{k/tq4xm3to7vo9xs<{t>~~GOu?wCs@RtBzHzHtBtBi6utBvD|Il;|qBl>|uDxFq?~n={q@~k:xuCRZRLN|HQqC~Pp?|j:we4svFpA|g8tuFfTQyGZQd:piAvdw`uc{^^:m`@qxdvsUjDwb:o]:ms]iS}];l^8kaxn>xn>wh9oe5luC~q@zsC}o?y_/jm>zwJQpC|a7ofyi?zsKrKpLfGybFwiS~b]uIV^@SWG^cMfmEagKgnSmxbzmfuupiYv~@Z]\VVwvx|ʹ߲ܹ❲Ƨз޳ܫםɎʣ˒ʫת֟ʨҗ˜MZXjqvxǮU[lgirݷɚºǵǹʻǬİ|xNH7%)$%$#%10AHQmaqm|USg/)5:2,kKwxd¾okn¾yc}cy}~^T~Odshƻwsifwc~VkqNk~dz}[~]aqx|w~}tlnCG%F> y~ux{Ɩȝţ}~{Z|»{Џ|y~u_b`v}݆ļmtuj㑵p}~xl|mfޛxnČjT]T{ݍ[bsP֊cĹowƒ{݆kic[k|څwl~tǃЃrywdžƀnn|»~koUv}ɉՖ{̄Α‘&21Z\Ndyâyœǚv|]uЮk{w\yRXkaj}gUz?sgyul˃{wsoǃrxwu{_li|[vAaifowgfbefxiq[YgdqȄɉc{Ʉ΄}|owa##            " #$%))(.#"'     ./.$" *'$&&#%%#  !!#"$&%(  9BA|׀+2(++$  28>hzqӬԣͺvlhRԪõɥϥ̮аүӲԵ״ִ״ֱϔçțoV\rjjhgciXYXbegnA}S^yN`W~KTe][JLSUGGU_xANPSMNq9|GxB}HKIKyAw?v>zBp7{{@|Be0rLZ|Dx?zDg2tE|A|ARPHEs7{k4tl5tk4s}Cy}Ax@o6wx<{@l2tb'ib&hh.pj2tv>w?Hw?~u?}KNzCJwBn;{j8wr@tByF|IOzHX"cq?~h7wh7xsGoBm?}k;ym<{wEvDsAo>|TzMmr|MQNn?|_3oX)czJtCa1on>ze6rtFl>yO{I|KyI|Mh>t_9nrJYdArlM}dHvlHyoKsZdApa:nnK~oP`BtbDugDwY6gR0^]7ivQtRT-`f=roDzhwg7ql=vo>ysB|o?vn=utBz{IzHrB|k:uzIc3l]/ff8orAzo?yo?yo?ytD~l=wm>xwFPnBx\1hf9sd6ri>ykB|qHnE}`8qW/ib6tf;uqHkE|fAweFxmUk[W[k>PR]Mh[w~oݭ׫ֲܳݣПΓ֠ɜǠͣѣѤѱۥͣʘR]]lrz|Z_niktصƙǹȷðȶ«z\\E  ,%##&)#"&$/8@Wgvlzqp3.=D7AaMTycdnkrnpllhhex\\_IOC7B;3>=5@<5@82<6.95-82+50)41)32,44-56/8<39WJKvbbooprqtpsqtpsqtrusvtwtxswqtprsvuxvyvywzwzwzy|{~zyw}w}{{{}||}|}~}||}}  ! !   "##"                  '#$%#$'&%--+!!  ./"vF\ȿuƿprqvmü~Zkd|yWhyZwmDWfm؆΃ZuwSsmЀebag]|[juٖlm{spsvQGDoe?s~twz|r`|yqsl|uymuƍo}̸{^`㐽mļsbozey}|mՑىvɋuzkj{ctwZs|^ن»hv|}ꉳolj`ḯxm†}ztskhf~{abŻķOhbbdRyggxˊ|4@5|`ou#tx_Ħ̥ßǪ~l}Xv|b}gT^E(1 "6@(M],e|:i>o?a\rMqqsbiֈvxp~ąkp߈{siZqqtihgfignedfrh^ypcOqzk}ΈyvoyX##         !,/4/14""$    #"*./    #! "  !!###%*+/+*.$"%&&(     m|zȄwχ ! "%!   jxmǢ̩ʣϬt_u׹়̦ΪϭίЯѰҳִִִֵաx^rwgi|exdZYXpmzPamdwIpE~VjB`_TXWWQOVVMOPe_UPUU_|B]tAvCxB|CHIyCyB~Fu;EIy?uvAl8wh4to<|p>}j8wwCzFtBm;zf3sh4tk8xb3tl>}n?}pA~rBi9wluc8pf9roB{o?yo@xuE~vEs@{{HuD|q@xvE}g7pp@z|J}M_2ib4km>ui9rrA|tD~sC}wGg7qqA{wHb5nsFh;uj=vsGmC}oF~lC{e;ue9tf9uj?ykBzpJiC{fGzjphR_hPhlZqr=WP7SF4P@/I:@ZR?]ZJgfVqp]UCd]w^|Lkh[z]~y~}Đ}jm|өֳߺܫղܨԡ͞ɊǩΝǟʚƜȤѪְ֮ԫϛRW`y|nt~oqzԨǨ~ppR3(0#+& !&,$!) %,/I^k{KDZO>HsZ`novsvrrnnjjhoYYN?E=3>;4?;4?;3>80;7/:4-71+51+52+62*34.592:K>AkXXknsvsvrurusvrururvsvtwtxrvptmqosptqupsqtsvtwsvtxtztztzu{tzw|x}x}x}x}x}y~{{}}z~~5&'!$+ "     !%            *)&        "!! 69(jjkDiɿsĺnxvmlj{mZyw~voerjFsf@WbYz~@aY_ppZm^`tbunNxXim[zzZablrfÈRneG}vVoiE}tVx_ojLyzTx~W^h=MS)oqQuxWcMwpE}~x~wvtwdpjshȾ||ߊ»l]]̃nĀÃ|vyqٕ؂{||plVuɄXg|Mizvkrxysihbd`kwۊԒe}z}xmoӄ؉{o~ʚƴ!3)mkYwpu}~z7H9`io1:;RR?{lgw\waraiVxcȓ|NYEv}pϷ#-&%2qwroNupxxmw{z~i}ٖyzxyjrqxx[prls`ffYdgb^ozs^fyecLttoxv|Riybk~tƃZgE        &(,0#'&  )//}D}E`STZow@ux;h+oAEHLy<}@Cz=k.qy=~D|?x;~u9|y>z?l1q{?l0ql0pp5vv;}u:|z@u=}q:yyC~FGyBw@t=~o7ym7wq>~s<}xAuAo;{r>~|HyDuBb/pg4tp<|p<~q>j9{],pp@q@~p?~k:yvDp>}g7u^.lf5uj{qA|_T~LRnCyf?tjDxuOe>swStWhCv\;mnOW6hawrE~uGuEvExFxFvC~}J|KvF}h9ro@zxFuF~e7no?vf6nuDwEuEsC}m@ytGl?xh;thvc;ti=xpC~e;tb9qkD|iD{w]sfftnc]{v?_P-N7.M6=ZKVqg`ztJe]EcT8WE2Q>7UALhXHfW@^OIf\UtoPpi:YL8VLVrtuiqzuwn|{ˊõڡ͘Î̢șٜĪҪӴڷٵ՝Á[]hrt?AHΐ˻~˴cA2=*4%- )   &%:1=akgYIWflssvturrnnjebaPRC8@:2=;4?:5>:3=7/:5-83,61+51+52*53,5708@5<]KNgisvx{y|wzvyvyx{wzwzwzwzwzx{txqtqusvsvsvtwuxuxtwswrxqxnvpwrwsxsxsxuzsyt{szt{v}v}x|{||}|{}~"#/!!)                26-03+            yyj`Tq»bckvpnuvb^ie|tcukYfjb{~qTJpP`bdYdnrZY\yzuKzvIomJ_kmkgZ{t^u_for`l}JDU&lʎkVMfuxqihSorqŃvu[pt؃ֆސτσ͈ȅʼnhԖ۔фDŽ~{ЏΎuu}`f]vcgsrTd_V^hmov{n{ن|o܌ً䚻φ̄؛(   |ˌt~rGZG/EMC5A7\nSÌҋ~}g^zvx`՛ӓyo^˓ՊdⅲolgrqtgRbfjYgXgvnmbH\d\L|uWc~{wxgxłώO]=         "%"$    %(&186)2/"(#    "#'+/7'*1"#'""$!!!"##!$ "%#ʖʛ͘ɛ˞˳rt )&!71,D=7B93F=5>5,8/$7,"6+$   _tbtbiGzXڝӨȫ̫ͩϮѰѰұӲԯҭѮӲհђox}ea|alf\{RwT_htLtLV[lXqGuMtKRRTYY^SYVSWXRTNHOYTJzDZJwBj4zJz>CIv>Hy?I~AHDDBI{@w?q5z~AEo2up3wEE}?}?Bo2up3vn1tp3vt8xp4uu8z~ABn1tHJDr7ws8xm3tn5wGFHt=|s={v@x?}ExAo8zs;|s=~s>~~GKJr>~vByEyEq>sAwCo<}a.qi6xr>m9}o=~zHtBsAOzHzHn<{tAPNLyGY{NP'hvJrDe6rvFVSxH}PoC|uIl{OjAw`;o]8miByiBwgBw_?qU2fhBw\8kZ8khEwb=pmFzpI~ao{dtiktpg]|LmlOtk;bN;_Nc{XskQmdFeY<\LBaQHgVDbRSobB`R]|ta~~[zvGhYEcTYxqoqpbquu{rrųנ̖ǛáˠƝáǦɭεپغִРekr;<6@:4>5/93-71+52,61+52,62+66-7:39N?BoWZqsy{{~{~{~{~|{~{~{~{~||{~{~vytwuxx{y|x{wzvyvywyuxsxrysytytytzuzuytyqxryszt{t{u|v}v}xx~w}zzz{}{|{|zzzyz         ++#                 \X?Wfv>O_Y„~roadZ\Xgi\nmyܴۧʑ`ZcчeYnat^agksmŒqtghxksdnnmuxza_^s1HR)ƗzsVPjķĸøuq}|a|`m||шdxu݃qddqh~}xv𬋔cԖō|Yg}Ċ`~Xlw`bwYvqfdO:9Lfcdizvoc|уՇzmЏޝkݧASP&!ŇłƇĒke  "%'FSM5H0lk_Zqllna`_]fdr!./ "~|@o6uh0ox?FFo:xj5sr:xs;z{C}E~F|CzBxA{D|Et>l8yr?zFm<{X,k]/of6vsGj=|m9|xD}I{IzIj:xf6tuCMr@uBj8yo>~~MTtBuDk?~b8wxMsDuHa:oaSoB}b9qU1eP-^fBskDymF{a;qnG~rL_zYoM}[8k]:m_?qu\oO~bsi@wsJoG|oF}nE}mD{nE}kAyvKgvpAxf9ph;quE}m>usBzrAy~LuC}o@w|KvGpC|oAzm@yrE~lAyk@xi>vk@ye;uiByZ6lf?uXnE}oFmG}eBthN}q]k_srunikXyEjciPphMkcQqdDeUCcTJiYHfXSqdHf\hrTtmHjYKk\^}vcfq~uvtvuvyƧѮ١˷ٛ˒ěɦ˭ж׶کþԀ.01(,)ѭȾʺ˿ǽǺòkF=#A,G2#>,3&-#+%%$'>Qhwyrvvuwstqqo~fgaNR@7>94=;5?=6A92=4.82,61+50*40*43,66.98.9?27_KM}eeyx{{z{{||~|}|}}~}}~~z}y|x{y}|z}y|z}z}{~y|wzw|v|u{v|w}v|v{v{v|v}u|w}y~x~u|v}yxx~yx~yyx~x~x~v|v|v|tzsytzt{                       UT8wXnvZ0>OieW|S{Ptqsew[sW`v`uZjnhs`Zugkozbikkwt_q|R_szcjksq|}soU") lmR~jWX#nc>ƹ|qqpImgHcpmrͿ{tpſa\lnsrjmʙԝi{ffQnvIJ8~ciibkrsuw]|c~`YyANB8Gie^|i`mtlxmsqĮ}ɒ٥պ   loWҥ|Ǒv  dmvXru';'͜}c]|}ttkdc^yyzy`rqT``\lfJ`S$9(9O:yWtR$6#{ȪNeOz[Ӎpwg\jy_R]hhihbh[gvsvUTfXik][Pkpp]d7./??&HJ,(**'*%        '(%$#!!    $#  ##$%%%"##!!$      BJHǙĉĚťͿ %%$&&$''#20(@<0FB6PLBIE;F?4IB9?9,C:+B6&;-0%"  ANQszOvFЮԵӱүЯЯЯЯѯѯѫѩЪЦͣdžƕ8QQzb;wVYSanT\TSRMTSWQSWRTSwBm8{KNIIGILx>~Bw:r3yt6{IHNFPLBITP>GUOBNQGw:}CLy;w9|{=~@GFEJy=}x=}r7vj2og/no7xzA}Cc.lr=|IG}E}DDHEP_l5uwBRm=zg8t\1mf9wW'h_0q{PpDh6w|G{HvDyHPn=|o>}tBtB}JzHo?}pAoAe5trAzJwJrFf9tsHvOX0fj?xf;uM&XK'VP-[Q-\Z6gd@urLjEyz[jPwO/[Z9hjM{ysVjExi@udse>smF|h?x\1kc9rjAwoF~pG~lD{oE}pE}nCzj?ukBwzQzNwIg:soB{uG~n?vb6ll>um>um?vg7og9pi;r^1hb7m`5kpCzqCzn?vvF~yItF|tD|tC|OyKsF~g;sg;5@<5@80;5.82-70*40*41+42,64.891;M/@7,1-(*))  pz}JoJжǯ̵ϾղѱЯаѰЮЯѭЪШΟƜÎl}=XQ@KWUGlchkpҮsjrO~X^]]k]]9r^:tnE|OzJWbYdVSXM}GOUKXUWWXKt=M|DFOGJuKx;E@~A|>EMLPFFIJACCDGECIF}?>WCj,os3v~AELE~Cx=}o4tg,l~Co7wv>k2sl4ux@l4u{CGyA{C}DN}Es=~p<{`,jQUq@|S%bi9wuAk7xi8w\+in>{vCi5utBvDyEXtAr@tBsAr@uD|LoA~`3ptEyIm?}tHf:wl@zO(^[4kmA|l@|nD}R,]D Mar\1fY/dg@uc:qd;rmDzh?uc:re=rg?ug=uf;slAwrG}lCxkCypE~mAxoAywJoBye8og;rh;rl?ve9o_3ie8og:q`3jtG~^2ig:qnAx_2ih:qxIuF}xHPYPnBynCzsHj>xd8rgsiGymVohv{zwomVwxGkfRuqNnjPsjMqdMrbLp_OsfYzqNmbAcPEiTDiSLo_kqhpry\ykRo^zsZvd`}g}էЧͯױޞǨМĎåʖ˳־̧߲>@CpusҹǧTif]phȰõĹǻƸöƼ~\Z?T:%bA.V:&K4$@.";*!3&) ((1Iavzr|wvuqsnkflTVH9B93>:4>:4>:4>7/:3,71+51)41+42-63-7609>5>ZJP~gitsyx}~}~}~~~~~}z}x{y|{}|||}}{~|||~||||}~|{}}}~}}~~|y{zzzw}u{tzsz "#'$$(* %&         4.(          +,nyryƄxpc`zSWgjbt`iey`UnjzwY}{gx{[Yjjttlyz~dss_lglhp}~|<:0 4.'nfX|kyswrx $  92'ĿvoR˔joS~hz~`J>)~fokʿkü^k^¿rrcl}n!!TQY   lUi^=MA1HQ]ucj|ヮiq܆~zΔ}|}q);&  $% "#  *1!LVDFSA   s>]LBf@ěyôIJw{|}{z 3)  ,79МƔf}zbuY笣vj흴nhtrbgqsb\feyf]idcieit[qsf4=$#!*!*!,#,&($# # !!!$" ## $%$(*%),!&("&)"&*#$"$#%!                !!"! ## "!&#"  $$& >KGȗģfzw " "   !$!/+&0*"?;0daUKI?UQLJFD`][UTM64(=:.41$;6*A;-=6':3%86,77143.## YqWKmKƮͲȴԼԹα˭ѳʳһ̿ڶϴβϱҰЮЮаҪЧΌ߂||jdPpkCNYWGimQjlvhplwSur`ipIf?}X3otOX~R}TdtWPPRSJIMNWRVUK}E~GPHPNT}By>wHFOIr1xBAK|=RNu5{?IOPEILL?OJNF~?DGv9|JEt8yx=}s8xn3sv;|o7xo9zm5u{BGv>k3tv=}F{Cw?yBzCt=~p;{i4t}Ho~b.mo9xl8xl:y~LxFQwDn;z[)hNtCzJluf:pZ1dY1dgvj=tnAxqD{e8o_1i\0gk?vc5l_0gqD{pCz`kh93=70;7/:4-72+63*53+64-7609;3;J>FjX\nnxv{||}}~|}~}x{wz|||}}}~}|}}}}|}~}}}~~~~~~}~~|{zyx    !$!!%&%"*!""    (#)$  &"!  41$WTCihMUԔxrcfaSYdxǿpbrtc[SPd]zOxjiLfqnssk~q|pp]mstw}&' 'PGDrk`k}ogqW"!! oi[xnvy~z[gS  `J=oglĿalXgniy\\HZZP .22    "!    +1"utT9;9E[]f{nb{zfz珻҅ȇN^QP`XMYK !#"&$-,&#$      ZflQsh<[<}}{ŸfddSyny{@RO!Q_`2>-ѣxdyfsdbrpq``\dlomb][ˁpeuuWh{4:,      ))'(## ! $$!%&!%&#&'#%'"%( $( $$'13'.3 $'!&)"%"    $    $% -.) ""#$"%%#%#"!*(&))&  R_[Ôdß ( JB9RMDB>9PLJZYVVWROOG;:-95*62&62#<5%80!6/4/"95+96,+'!H^?׼ӼжϵҵǤ˪е̹ĹֹʹβбЮϭίѬЧΊwz{{ifnJV`\KooTiXdnDaҙp{UʫtQrowNZ3psO{Q|Q{R`iSRRO\PXu>v@MNNM~G{D|En8~~HPDPBq5yq5vr6wx=FMIw9~|?m1so1vz<@|=@B@EINIQN}=QH|?EKOp4vv;}s6yw<}s9ys:yx=}o4tm3se-mf0qa,ku<|zB{Cs;zq9xv?~w@n7xw@yB{Eq=}t@vBuBvBvBj5tl6vn;{k7v](eh2qm:yo=|p>}r@o>}tAd2qsAq?~`1otDh:uoA|uEtFmA{gwX-i^8lV2bf>rf>sa9nbm^9ha:n`8nlCzkCxkCxe=rrJrJkBxj?vpE}wKrF}h>tdud8oh=s_6k^5i\1fg;ql>usF}h;roByk>t^1giul?voBxd8md9opE{tJe>roG|uJoE|bpx_lEzh>v{ZjhIznLeSqt{{okiUwi@_OBbRHj[?aTGhZQt]GmNNuYpsmwyol~]|kcvuª͍xѫ҉ΡġŤɣȝ—̰蠮kpr  V\WяxvƾŴƶǵĶŻʺŠtu_F3#H,R6"P9!L7L7"H4$;)4#+ "$5/=]Țɐzx|srghiUXH7/:5-84,73+64,73-64/6819?4>4_aQOQ>-/ "#" %!}plj}zuucn`  xMʽopdQaaYqsYTUI              dЂ[D9DIia\hbjleju}́ގ_nQA7MPF"#"###*()+)*21.,,&=>7%#  "!%   aomv)8) )"LFA950972;84DC>::6)'!-*#".*$:7*93$<2&90$3, 3, +$  \oYŴ̴ӹӺͱǤɧгѼƶʼѶ̴ϳѯЭάϫϥ͐v}{}njCU[ULklTy[_cud|fZaŠĆ_[ub^9uuM|Q|PhA~tIvE{HNuDbZ[Zt@}GLHJyCHLq}wDd3qvE|JrBk:yi;wqDk>yoC~f;u[4kV/hkA}qE[3mX2k`:s_9rV1j^8qW5lX:mhG|gAz`>sX4ga=r^8nrTmUa@uiE|kE~iCzmF}g>we?ubvh?wa5mmAxfwzMl>ui;sc:oR*^g;rk>unAx[.f`3kSOzKe9ptHnAxk@va6nh=toE{f>te=tpH~qI~oF|h>w}`ijCya=riL}uYc?wc@ueYyvy|yuyXvmJi^VtmKjbWyt`Pxi6@:4?;5@:4@:2=7/:6.94,82+53*64.75/6;1:I:?lVUomxw{z{zz|{|z{~~~}y|z}}}}|}|}~}|}~|||~}~~}{             !  $"              [sffdqdbĺpochpf[emijc]vuOnuxdmfWr~un~mw}g}qxoli<42WKCspbAG9           " % ohRpluUV}wu|ZdQ  D3ggjdLtvM1.         HM1mJB;>?HOfafqqjhŏ|`(3  $ &!")#*"+$'!,%(#*'$!!        uØZx:P5ukpƿyʷdRvZjS\N{}c{z"(         ʢh˃qqbY_jm^onjv{it|v`nb &!    %"!*(+($!  !#$ !# ! !#! """%(#'+%',(+0%).&,0*04#'+!%"& #("&+$',(+0(+0027'(-#              ),*&'&*'&%$0/*.-*$%'  sJWJ  /(!-'!40+*&"'"0+%83.63-3.(0,'0-'(&!&$ '$'#30*B?5<8,6/$60'1+!+%  Yo`Իĵ̹Ŀ־Ծ׾ήȦɨƨɯɴǸʺ̶ζѱЮϫάӚÓ~{goox~ThpIGau_dbcoXsJ|Q\hƩ稈ɑn^i^ao2wMMOQ>FP~<};z9x:~~?u5yFP}@{=z<u7{i,qt7|n1tc)jv;}Hz@f/lf/mr6v{Bx?w?j2sk4tp:xk5sj4rq;ys<|t=~p;zi5sj6v`,lr>~wCq=}r>~|Hn:xp={l7ud.lc0nvCj6vm:zn<{m<{^*iu@~xFg4sj8wp@}tD|IwFoB}j>xd8s`4og{fxZ2l]6nhAykD~kHQ2g\8pZ3lW1ja:ra:qgAxS-cg@ulEyf@uc;oV/`]:hV3aX2df>sc;plDyrJqI~e=re=sqI~]5kvMlCxiAwoHwO}TuH~sF}d:oZ1ggtj?uh>tiAvb:oQ+`Z1ih?vqI~f=t~^]Bp^9ob@tdFy}]d@wdDwrl}xwy~ĊuIje\~mkf{|||gd[uY{oUohhǩϧ̞ĕ|\wtwɟɭϲלÖʭѽُw|hmlҼȽɽ֒}ˬijųŵƶŵüɨ}n:8*&/6#?'B'F*H-B)C+ F.":'(!$.=6Nl|x{wjikTWJ;E:3=;5?<6@93=80;6.95-84,83+63+64-66/7@4;XFG{eavrzy{z{z{{{||}|~}~~~~}{~y|{~||{}~||{~{~}|~|||~~}~~~~|{|            ##              !  ySibXjroXDn{f\^|V[pkmifq\gsypfpbVnooly~fiiY   rsluyp      !qiVn_Wc`k|HOC  1-gg2sv@`f?             *&'  ntV^QHETOc\qmw冼y~ɍz%   $   )!2)3-3-3+0'.*'%     9ABm "~fmŽÿ{sqjTrZl[[NRuKa~i!%       OV>}גy녿`tzk[Mi䆶i{򏬵hptfwzy]{j   !!    # !$  "#'$%* "& $"         _^Yzwt522*)(!"!$ "   udv{   +"7,&-&0-&@>;KGE@>886-:5,-&.*"'#%"(%//&*(&#%$  Xo^ٰƲǭ̰δѷãģˬǨĨɯƵǽ̺ϷӲѯϭϭӟǩҞϊ€ojqxcwBF]iWxYcVZwOuL`n]zͲљufsIyN~XI&\Y4oUnCoBRuCsCS~I~I{DPNRJPPJLyAOQHQQLJJKJJD}@RK@BK|<x9}Hv7}z9u4{w8~w:|~@Fv7{DLAB~@x:~s6yr7yt9{s8zh0pp8w{@i0pt:|x>EMx@j4sm6xb+ib-ib-k])ik7vj7uc0pr=}IIuAINIuA~t@~h3rf3szFt>~wB|HwEo<{KzC}GzFj:xwFwDxGl?ze9ti=yn@~qCi|tHvLnEb:vg?{i?{d;w]4qf=yh?{lDe=xb:ukC~jC|_8qW2j[6okDh@ze>w\5nh@zZ2kd=uhAwiBwdupCzb5lh;rc6mzNsF|Z.ec8nf;qpE{kAwj?umCy]2kg;tlBwf?0!#8#A*A)B(>&9":$5#*!  ""))5)8Rqtjyzfj[GLB6?;4@;5A:5?71;6.96.95-84,74,75-86/8;2;K9&:5"82!83$41$*(    "     o}OlcayeǹYh«˖vugVq`faijQuQY{b "    OU:䬯Ãlew]nmew]uoVelcuk}Vrcn             !##!!                ;94111)*)#&"   [ca}~    ,#6.(=7141*CD?GHC13+32&2,!3+#-) '#     jlǷ˵ʮβǪƦʫɫŧɮ̳ʱ¬ֵ̿αаЭϧί֥ђƋŠhi}a~ThoJWiSLow\kw`_7kqI~ff^~R^]cs`nsX@ub@|uLvKuGyIo?MMQJOJGKQ]RJL{DMWKP^PG{@JNLFNDCEEF|=f(ni,sr5|E}?x:|=N}?DRNAy<D}@Fv:|~Cn5tb+izAv<{t<|Fr:{~DEt=}j5sb+lm5vo9wo:xj6vj7ws>~{EzExBvAs?JGMOvB`,ls>~r>~s?zFs?e4rr@xC}F}GKq@}n>|tCtEj>yf:ui=xn@~oAg;xm@~yMa8ta8th?{sIh?{d;w_6rh?{jA}h@{tIk@}h?{e=wkD}kD}d>w]7pc;t\2ljB|eve>tY3e_7iU,]\5if?ta:od=r^7liAvnF{duf4=XGMzdftt{y|{}||{}~~|}}~|}}~~y|y|||y|y}y}x|z}z}|}}~~|~~|~~|}}|z         !# &"! !   !!% !!" !#$             `V9ΌrhS{~won^X[cfcjaw{rqhttMYlxnui_lhUpr&+)      PD=wl{GHNdvlph               &(#  & .'           VO]OSIU_msچʆViK-9( ")"/'/'/(85(DE877)63":7$95#1+*'.++*!           #*(^us"2#vgxǹì΃ydholdeWybvSgc       ͙lڄqkc_mrrBdcgw^yƒzeptSd_{LU<            #%#              "! ")*00'&'$!   184^qx       +(#*(!%% !&#+(!++#      s{ΝϸѹջʮȫͲγ˯ҼιȲںβͲЮѠɦЙȂ~vjpVmu>PWI\kJMhjtk_`~s>~t@q=}q=}p<|zF~GLJwCc/puAs?~q=}yDk8vd2pn;{{FL|FKrB~tDj:vpC~h;vhtrGh>vY2ge;pU(`SzMpC|^2jg:qc4k`1hg9ppCzj=th;roBya3jqBypAyrD{tG~rE|qD{pBzrF}oDzmByzOyLyLmBxj@wg>uhAwnGpKk{YeP~{~ǖғŽđÌȤʣģnj{xttrul{x}īд۲۬ќɫʱֳ͡СŢɈɞȦ͚ͫľjnx$$'ҖÓȰijǴǴƴƱĵű»|\aN $6':(9&/%  "!5/=a|||]_n;5?<6@:5@:4>82<7/:5-85-84-75-86.990:>3FKz:~l.q}?FF}@n2rx<}u9|MPu;zs9yr9xh1qe0q_*i\&d^(gm;zm:ym8xh4sn7wyDu@r>~f6uo<{zFt@s?wC}FQv@~|HuAk9xq?}r?}xEsA~q?}|IzFr>|xEo=zp@|uEl?zk>yd7si=xk?z_3oi=zpDrFoCi=zsGtGnDi@|k?|vJvKc7t`4qh?{pEqGvMsJiB{`:q^;roM^9osKrIf=uh@xhAwd=rU/`gAroJ}^7lgAuqL|[{ToG|h@ug>u_6lh?wwOrKh@uiAvnF{mDzg=ub7nnBysE|{K{LqB{qD{vHl?vj=tg:qpCzoByj>tb3k[+da2ia/jj;ri@0]_VRXZ_dcǁ "   '"/(=8'84$4/"<8,73(83&93":6 :6 <:%AA0AC5/0% ##    !#"$((  [`e';3{{cbkgx{hrǜ`ykw\wq2DB       ouvomli^VpjK\QXHovnp%*#          *,/!!! !                      iT`g     ""**#43)33)&%#         ƲDZ˴ҽϻϷɯŬ͸ι͸ѽǴԢҘƗPmm0HEBZaMfv`{xCUaFVcWYrt`eoeb}Xgff]RxK壎ƒx}uS2kY9tsI}KOPLYQsBwDMo=q@NvBl:sAp}l<{}JyEh4to;{yEYuAyGvDp>{~JPc-jj6tt?X\j9vq?|n=yyItDn?{VxLa9pa9pgzqD}OvIe;vessOavg@uzTlDytLoG|f>sf;rj>uoByoBypAyyKm?vf9pf9pl?vl?vtF}f9pmAwk>unAx`2hb3jf7nj=rl@wxKWxM\1fuJ~SvFZ]rK|mF{iBviCwdCsn\ro̧ȦǠŖ{|‘•Ô“ĜšɩΩ̫ͨ˓ӮիУǕǤǚʵι̽ҫĪʮЗåϧͼ뤲uɟXX[VRS®ݪ׆űôƴưð®¼~lua         #'00H>MuنzMM`:3B=5B92>71=7/;5-84-74.85-870;<1{=GDTJFEJEJCFCHOJMy=z?By=m5v}EHG}Gs={r=|Z~HyC{Ec6yc6wtAj6xxDuAvB~J~Jg4rd2oxF{Hl8vh4ss@}tA~vA\MmsZ2gf=rh=stG~yJnAxoE{l@wd9ok?usF}g:qpBynCxgERGz:~E@@A@AC}=HFJOIJJIw:||A~A|?u=}l2tGI}Dp:z}XhBzm:v~HXiwFh3s{GzFvB{Gh6ud2otBuCuB|GzGPLr?}o{tBxEsA~l=yj=xizlA}[{Qe;vg>xg>xi?{uHsEuIfw`sg@uh@woD|tG~wJrG}e9o\/flCxfML:EB0FA0<3!8-9.!8.#2/#&'                 (+Ȑ}puߐјFY9      #("! 0*71"1*>7$;6"4.51;9,9;7>CG347       =IFd|ofjegkqXt]Ur^wsm?YZ->>"$    # "'"','273:?=?CC5;:272-3-#'"$%"$% !""$"%!$ ?C$zsorkb`g]GPoEa{v17$          "#&&')%$'337((*      !$%'                    !%!Dz     ,)%-)',& '.)79+=>5         Yh^տ­̺о¾ֻĥŨʮêŲ˿Ûu@SWOkbKiQA[B>WDB[RHa`Ibkbl\t|Tlma}z҄hnrdi{[aWWhi\x}Y8ymw|L`6xZlAuEUMxDq=~JSNTRPr8]r@QO}DQGQ^OFSXGx=JZIM{>t7zHBKJJ};u4wGKF~;u2w{9}Pw9|v9|LDGOUHw;{z?t:zCs8xk3tLUz?R],n}̿?#Sj:yu@p;m9zk7wn:{m9yo;{c1pj9wsA|JXm:z|GwCW}J}GJl:wuCLyFtEqB}m?zg:uh;vl?{sFmA|d;unCi=yhxg>xd:tmD~dwY6m_rb;rb=t^7nkDy`9noH}mF{gAwjAyyKsG}a:nZ1gb9o^6kb:oh@uY]dqvLtJjAvb7lf=rhAuhAunH{qK~jFxbFule۸̺ͿҽѼϺζβ̧ͭʠǛȒŒ•ǪͮЯЮЧ͝ŕŔƢЪٵؕijƵſҴȦª˵ׯִuΤkkj׬αdzųóıİôƭwp#$           $%+,>?MlmpXYl3.<82?4.95/<60;60:71;91VEIu_^qnvsyvzw{zzy{z{zzyxyyzz{{|~~}~|}z{{{~~|}|~|z}x{vyy||{|~~~~}        !*#!0+)+&#' "#%"!+5$@,A. C- E0"=)7%5%.!)(&,#!+#!&$!  #$!!                         voPv][kg`Bc\zoRzsXrvsum|zQbbphL]mudYaE             13'=B6;'PK1QK5LG5HB/F;(@4";0 4+,&                     .7!rQg]XeF            %!)$,%2-610+)&&#10(:><')(      "$!$!+%@NCK]LUiYZoahxg~sx[lp'56   !!%!-0,485>@6AD;?@:/0)'%(%'(#&kjdlbbYb[U`va[z`(/         ! !##&&(%%&!!!      $$&                       [j^?H>      #*%*$,(//!/.%         TbR;»ӻíëĪİȸ±dvyuNj^IiT:UA=UGLdbUmu[xph`~D_T$<2śre_lZbiVYnekmLnl{ǔbrG}SzNj<MVriQU~GMMQL|G|HaWYNVJY[r:~MSJ~BFz?KNEJEMJILHLEDGDI@DHy;}@GGJLYQ}B~Cu:zv;{y?~DG}Bq9zt>~wAqHsP1di;xuAv@v@q=~_*mq=~yEk8wwCMp={~LwD{F}I~IyFM}Ht@~]NvBMM{KtFj>yk?zuHmB{h@yg?xh?ya8re;vc9tZ1mc;vb;uiA{oEj@|mFZ4lc=wrLnHtLtMsOrPdCxV3iS0fU0e\7kU0aH"TZ5hmI~e@v\7kV1fkF{bug@ucsi>toE{i>tf60<60=92>:2=:2==3>E7@cQTkivrvsyvyvzyzyyxyxzyz{yzz{|~}~~}~z{z{|}~~}~}~}}~~}~|z}wzx{{~||~~~~~      ""#*!6,)1(%(!%"%% #+2#5#:(;)6&0!."($%-#!1&$+!%     ! $#!                           96)fYrtndSzuPy^eeprs\TrtjnopuPS\<          ''(-#$+$      $!60>5@7C;(=4"@8%B;);6'A=/40#0/&()%                                 " &#'#      ##   '$Q_]kz{O\a%.2       $%"+0,384?A;89035*56,%% %"&&"%!# IO1ii]bSU[U\fUpilP                   &%-               {}w         "  *%?;454)-)       4@2{{ȸʹϼʶysgubQ_M8F9Ojc^zt>ZS~cgNZmΝkQzDMTRq9`IZ}GQRNTY]e-rIUOGJRMQx=z?NP[TKBIJGs6xx:}~@Ht6wCDKMOu8z}ADy?DEy>~x=}q7w{BIy@{CI{DzDi8tb5rn;|{GK~JvCo=}yFOL{Gs?}sCuDo<{r?}yF{Jk;vk:um:vuB}J{GyE|IuDn@{qDivV0gZ5jd@u[7llImJ^9pc>rc>sW2g`;o\7k[5klF|uNpI~oH~Z3jb;rY4kQ+ea9qiBwrJg@vmEzrGtGn@w^0jZrEi?unE{pF|e=rc8nb6li?ua8na8n_4l_4kj?ulAwl@wh4=OAFq]_ppxvxuwuxvxwzyyxyxyxyxyxzz}}~~~~}~~~|}}}}}~~}}}}~~~~{~z}x{|~~~~~}}~    ""& )/%#/%#'&$#""1#4% 4& 5& 3%-!'$! $4*'.$"$   !%##!#!#"                         )'qpMhUdbeckcfY\fr[lsbertwh             &$(( .0*   &# *">2A2D5F8=/=2B;):5&/,#                                           #-+!)(          ")/+0;:4>?RWVLSK8=2.0)(*%**'%'#061'.'   ![ldZTPPIVT\]aH                                      $%             -("*%         $/%UfXux||yyXfT=I90=/# aopCYVZzyQmpMipKhqSs|jFV[')9BDbv}Rfh@SWdwu{Z]{p`kio]tP[Zgic8{~VXZ}MYV`_Z{Dv=m5xA}DPs@k7{yEV\PPUGq8R]ZMOLIRQ}AQNNP|CFNG{>Gv:|s:{v>}Jv=|O]z@x=}FEVYII{ExEb2rj7xwCLyFxEl:ym;yL{G~JzGtCxGzHr@}i9uo@}yIuETyFyGzHQuE~rB~wGn?{uHa9nZ5i_9njD{iB|d9vj>ymA|RvGwG|IPyGwHxLlCe=yd>zvMi?}h@|^:tZ9oT2je@{lEh@zg@yd>xS0gY6lnKnK`rV2hd>ug@xW0g\6mkD|e>ug?xtLa:qY0hY0h[1ikAyrF~qE|`6ng=vpD|qF|g>tdtc8nj>ttJi@tj?uoDyuLuNoFzf60<91;92:=4=F:>_ON|gewuxxxwyxxwxwzy{zyxwvxwxwyx|{~}~}~|}{||}~~~~}}~~~~}z}x{|}~~~~~}|~  !!"!!$*!-$!)!&"""!$/#4% 3& + -"*!%!)&%$$! !!#  !#%#"!  $!& "                          *&ngRvmItYz[hif`{V[zqJ~Ysp_pi*0%            #%*"+0) $!#$ ! %% )+%#$ #+#9+D4I8C2>-7'0$*"                                            ! ! ()*    !$*&+41CQR\imU__JTM4<3+1+-40086:BC5@>#-( @@"ud^Y\OFJ]X_E                                                                  :OZgH`iOisb~AZ`mxxz?KS `usSdhVglat{VmxcxQYngavgriVdZ|SDrZ<|pGigU0oqL_|NvH{JRNWTKJh1Om8}\y}Mo>ZYHJUHSjVUTUPLOL{=NK~@ADFHz=z<{=}?EJN}@z=Fn1te(k}AEu=}|Df.mJPz?COON{EwCwCPuDp@|Z)hl:ywDl;yh8xuHl?{lvjEb:we>wcynGiEtTpLc=umGmF~cuiAxh@xb9quJtJc:rpGmC{c:rh>tg=s_8lf92>92<929=19SCHp[[mjwsxwxwyxyxzy{z|{{zyxyxxwxwxw{z~~|}}~}~|}|}}~|}|}}}~}|{~wzx{}~~|}~}~}~~     !##)!( $! "!  %'''((#!#$*"-%##$ !!!#  &&$!&3*$$                             vrQl^{\u[}rVxO[fVt}qfz{WVYzzS/4!             "&+%)-)$&! !"!!"! "'".%?6#H?(E8!7%(                                $'!$%       "&% #" %! $!,.+$&".0/>?C137         &"%,'2=4EPK?HF&.*%/((1*-3/-406=<3::/85&" qtB}c\`PWS@K&                !!$$! " "                                                           '2EKHMDx:}GCFCGNEHy<GzAp8wu<|y>Iu9{DOMKIuAn:x|IwEnve>wjB{cNUa~tuixu}SQc60<;3@92<=3;H7>bLOeftrxuxwzyyxzyzy{z|{|{yxxwyxyxxw{z}}~|}|}{|{||}|}{|{|}~~~|y|vy{~~~~~}}~}~}~~~~~  "#%'$ !#"$#$%&''%!"$"$'' &!$ #(% #$"#$                         icN|vVwtNyxQtsMrnKqjCpj@xsPlus||WgjkpM      "$')%9>65;4"$ #%$&!"#!"##'&!*)$ $0)B<(NG5=2%!                   ,(97&              ##!!%"(*&"#660--*68:157     "'")/'&+$ #'-(,5//71-3/  $##($ LaZ\\7@#              " %'&!"!!&(,#&)                                            %,7K\keqwQgn/@E(5:  *+/69Yc]ߋVo`{sEn@{qC~g7sxIn?}g8tsEf:u{P]zNzSyT`8mqE~h;umB}d:s_6oh?zmD~zQ~UwKnCmA~mA~sHuJSe;rvQySnCj@}tKXpG]4nqHlDnGhB|pIiA|f=wjB|nGlFoHg@yiBzkC~e?z_8qg@w]6ne>uiBypGmE|[4ke>uqJiCyZ4k[6m\7m_:pe>uhBykC{i?xnE|g?ud=tc>trLdqb;pjDxiFwpM~nL~c?r`9ncWu@MGOPSIHHH~FPNESQMA}@q3sq4vs6yDz<u8yo5pc(ew9|NLNJD}Cl5tHHw?~v=|y@HWUj8tyGwEvDLwDk:xUVrBvHm@~uG^0sj=}tFrExKc6qn?{oA|l?|wJpDk?znD~kvMzT`cg=ulB|cyToEoF~tKtLtJsHnB~i=ye9vsGuKg;r-0ߎS1drL]9j> DiNo|^]9qzVrMa:uf?xb;tkD}mFlGmFhA{nEwMtLf@xgAxmF`9qf?wrJmF~pJ]7mmH~b>5>C6<^JMegqpwsyvyxzy|{zy{z{zzy|{|{zyzyxwyx{z|{}}|}{|z{{||}z{{|{|z{||||}}|}z}x{vyy|||}~||}}|}~~}|||}}}~~  $&%%##$""$#!#() %&#"#''#-%%  ! !!$#!                             (/$ $#PP5qmNrmPmvrW30.0     !" *,-,00*00+23+00(+)'*'"'$)/-+00)./,22/55046.21(+& $ #!$%)"'*$$&!&)')-*3:8BJH7;7    *)".-%,+## -( 0,#-)#)$-+$                  -2+                   " %" !%  #!!          "%$%)(!&(+36&01!&+' $!'*,.44                   "# $$"!! $&$#%#"""###!!" !                                               $           =OZgea~jpFWa    rq]UOvak~gEiVCfTLj^Timkl{grfp\8rpOh~R|KOTyF}HUOSTM|Fɜܚjl>ouIh;xDg2{N{CzBKNEIXP~E|CGHE@AIw;}s8yC|?Hq3vw8{x>}o5vJJLKGLIRGzCu?}s<{k4sxAJq@|r@|i7uwEP{Ho>|g7twGsEwJjzb5rh;woC}b}ZxMsHf@yrP[`:qmMiwQapjH{czLT-]D5Araw-0809scEt|\sSa?yhE}rQlHpLqQjGvRWyNqJmH}pKe?wR,dhCynIfAvd?t^9oZ7m]:p\9mdBu`>r`=pb>qgCvmH|vOhBw^9mZ5ic>rlGzsKc>qnI|fAv_9ne@sY6gZ8h_;mdAskHxiFu`=la@prPa@o\:g`AnmU}cTsTOf޹ξԶƶŶìȺӿҼиα͢ȕď~Ŭjj}åɰҺovƒ۪ƤÑOTU`oX$) #!#             #(?6Ifcvp~t~ZVh7.;>2;'#  !"!                            #, , $     QJ;& 96($      !"!(*+).0)./%+,%-.*1/+0.$)('-+%+)&,,*12+35079:@C=ADGE}>CDNPG{@|ALRXu:|Fn8ue1mv>~t:|t>~}H~Hr={r?~m=yb5ni9tPjuCo>|n>|q@tCi9wk=zg8xi8ywFwGk>|j>{d7tpAj:ztFi?zqq|Wb8so|}]b>rb>shCv\7lZ7m\:smFf>xg={oCtEOOoAsDuEwI}MT+[A0tb=sa;p_:onHoIa>tS0gcAtpNW7hN1aaDs^>okH{`;oc>sa=rnI}iCxpH~uNd>spJsKf@tfBud>rhExx`oeGq_=laAsiIzsUcIp]HjVNiPThۺͿԻ̭ĻȿտҽѺϷͭ˥˞ǓŷŷƬ{֤ٓǮɠ œ]`i}ß}zTaM#              (.9SNde{m~upr;3CF:B^OO|hcsowtyuywzyzy{z~}}|{z|{|{|{|{}|}|}|}|}|~~~|}{|{|z{{||}|}|}}}~~~~~|z}wzx{{~{~|}~}~||~~~}}}}}|}~}||} $%#!!"##""!  !"""  #&)(#  !$ (*!""  !"(!*$!##%##$#!$$#$$!                      (0!5$7**$     /(!          " #&&'+,(.. &$!&"$)$#$ &"*/0,3609*@0)#       #*.2$*,!!! !'&"! #.63>C@6>8'0,%+)                 !""# "&*$(-'"#! """""$! !                                                         {KQNMQv@JJV~GxCr>PH\WFJNFGx9}w:|v:zK|@q6vt9{v;}{AFQh2pRIb+kyAr:z^Os<|g6rZ/jqCpB}W)ef4sQ~Nk:xf6to>{Ii9xV'ch;xqDrDrEl@~k?|b7tj>|qDVe;yc:va8rc;vkA~|VhB{dqdBru\fNxqS~~bzagMzy`WIfZUkzڽնê´ɾĻҿԿҾнеͰͪͣʚœÉ÷ȱȜ̩ؖǓ^do׵ʞŪǢåƓHQS}R\K               ,.A8Jf[tin}zIDTJDF49yˆǐƑÍz|ӓc֣֐uurrlldyYqw=TVBKZI?cN8hiHuJp@c1tvGa`PzG|Iq?VMg7{~KKOMLn:{g6sMOs?|GJ{Cs>|~G|@DJHDLy?z?Pt9{v<~NSFu>|q=zp<{xBH|CM{DLMt?l>zJ$_d6u~IvDrAk:xp@~k9xtBvC{I|Lk>zf:vrF}PyLqEpDf>{W/nk@h<{c7wb6wyMsI`7qkB~oGcjbEtpRfGv[;lhFvfFs^?lX7g]>kgMumYXEmF;\svƿּл;ԾҽѽѽпҿѿѼкд̬ͯ˥ɛƘŖ˜Ŗ’ɲʡÖȗÖǂoxfjt׼ҭÝǤ¥âjt~`qlz|DK=             #%2/?\Kf_wdrpxe_qZFMhgxs{w{x{yzx{z{z|{{z}|~}}|}||{|{}|}||{{z~}~}|}~|}{|yzyzxyz{{|{|{|||~~}{~y|wzwz{~{~|~~}}~~}~   #" #%$"$%$! #&'*!* &'$##"#&&#") *"")%!'"% "$(# '"&%*#"/*&//)7610+)(""% !#% $                    '))!                    ! #&")0.,553=@6?D39<)--'+)&+&"%" #!#)'%##     661=:4<7.2,!%!#!  *&#*%!                                  $-"6(;/"1(& #0'9-8+;-6&14"0"#        %#$"!!!&0*4:6&*& !-2-/4.#("                 ""$%$&0/#       "'"                     $+&.85>IBGRGO\Wcrepo|pn|cr`o]kXf{Q`uVh|ZpQeqRepQboN`nUiuGZaAS[Sds\odvdu+/$'Ram_thwPbo!,2  o{vRpTFfACd::]}Cy>}ESOJIyAs;|~EDIPJ}Ev@xAuEzMd5tvB{DxC}KQe3r|I~L|JzI}MqEtJwMqGmB}b8ra9s}UWpEsHqGuJkA{WY2jY7n^;smGy[nMbqnJ[6kb=sjF{iF{nKd?ud>u\4naq^:mpKnGjCzbn_En{p^iW}mVeIsmW{nX}fKtR4aG.XYHlOEh``}ٯ̯ȹͽпӾѿҿѽмλϼкйζ˱ʮɪȥƤġğ¹ϧĚktX]iٺϬƤƧģ T]c|~kse47.                   % !# *'6T=X}ToZk^iyws_gooyw{x{zzyyx{y{z{z|{|{|{|{~}|{|{|{}||{{z|{|{z{|}{|{|z{z{z{{||}{|z{||}}~~|z}{~y|x{{~{|~~~}|~}~~  """&%#"$%##!"##$%$&''%$" !%*!%! '.'$)$!% &!% % (#!)$!& '!!& '"!34.9842.-+'&% %"!   !  #                    $                   $&" #&*,&')%'*(+00-46-36,01')%%&!$% #"%"$    !66/61(+#'!+'!*)$%&!#$  32/1/-                                   !)!3* 4, /'4,!0'5,O]\UilLbpe|e{+9C    alg听zEeIFe@>\uiD|oJhC{jC}sKi@}nFsKzRoFlC{Vx[XAe #z~¤áq{}楙X>dV@hN7dR9fS9ckK|fDycAtc?ta?rbAs\:mfBviDylF|mI|yVd@t]:mT2ecAt]okSpX^CrQ6eV;go[qlTLjRBgcNzh_gmsƝˣǬɯɴʺͿҾпѾѾҾпҿѿѾϽͽϾппѾϾѹ˹˸˴ɭŮưӴ̣ܝ™uio|мոΩ¦£Ÿ ɧŠħQY\r{}]dX01$           "!(?1HlSo`s`mttzttzz{{{zyxzyzyzyzy{z|{{z{z~}}|zy{z|{|{{z{zzyyz{|}~}~z{yz{|{||}{|}}~~~~}~}}|{~x{y|||~~~~}~~~|}}}|~ !#) 2)*+#!%"#%&"!#!#%%##!#$ &'"#&!$($ *&#)%#)%$,''/)),''($#"2/-A<761.,)'%$%'!!&"!& ! )$ !%"%& $/%%        "   !     !14.              !%'"*+&'(#$&"&*'(,*).,+0,*,% !!"     "$),% "'$B>4<7-54,/0*+,(!"!" !# 2+"4-#1,&(&!"!                       #   "#'##*&1(@5(E:.G>30* !       #&,(# !#% *-(              %& ')#"$  ! (&-+                  $'&$+'"      ()&HJD            %'"$ #$*9@KU`o^lyiwtqp{qvzyupj]xYwQnz]xbc}#49@QZ\qm;QURfq^qBS^      P^V|~]{k7S9)=%FVMʑĒÎËgg~kÖƗ̣۠הɚΫޠԢ֢ӟΞͦՕčdszDJTB0WjVpB^|Hqq[9kT2c\9l`>qdBucBtfDwhHzS4eR5e`@riFziFz_;pmG~rLb=shDziF{iEy_=q`?tdCwaCtU>jR@gKEegmqy}}~çöʾӿѿѿоϾϿпоϾϾϽξоϽ̿ɻǾ˼˽̾ξϺĴ̾ϯǤĝš|}åǸ͸γ˧žàˠ§ȨȣâťV[__gk "          %$(;/@]Neatguej~{|||zz{z{z|{|{{zzyzy{z{zzyzy{zzyzy{z{z}|}||{|}|}}~}~|}{|z{|}}~|}}}}}||}}~}{~{~x{x{||}}~~}|||}~~~~}|||~~~ #&-$#0((+#!,$"&!#)!&""!#)'#! ! % -)$0,(/*'1-+5012+.-()*&%'"!/('A83?810+(&! !% ,%%)#"5.,+"!  !"?;-)$ $+" &( %2(4)       #&- '       %><7+.'03,            "#&&!'(#$% ()$)*%/0,-/("" ####"!#")+%482/2,'(! '"5/%D@7HG@PTOQWS>C?,-(&'!,-'-) 0'7-3+ -'&$                                    $#%$'"71%>8,94*$#      %#%-*   $(.(             ),$,2*&*$#'"364@CB!! !####('%#            %$!" $&$     DIC          !(@ESgj}ztuvmlv~zyvw}{}zWlw&,ܯI_V3LKCWY+8;$*        tGbXcvuPkX$DND̞’x_{tSolxˣ٥ܫܡ՝ϝΛ˜˜ɒTrm2HC/uRzKZxDc/s?Qv@[xG_2rk?a9xk@|LqCoCL"Vo@{|Jn>yZ-cizl8v~I~HPNKcxIm:vtCk9vzG}JMyJk?~|QuM{T^:sR2kS5oJ,f`=ynFiA~iFfJdIcFpOkKgI]Qwbpn`oSUtUPsYJsaHw^?qeDxcBxdBy]@sW:k]=pX=pZJttj1+>BBWȞ Ŷ˾mvq~|ؠ,"4O=^T=fcGsaApfFxhF{mJ}yXvTeCva@rcBt\pnShP~bLx\Osfgivat|vnsv{Dz˵̽ҽξϾϾϾϽννοпֹðŻǼȻȻǻǸùſ̽ͲǥÜͯã¡ŨȣáS[^?BI &!+%          !#11:UN`g}oguvw|z|z|{}||{zyzy{z{zzyyxyxutwvwv{z{zzy|{|{yy{||}}~}~}~|}}~|}}~|}}}||||}}~~|z}y|wzz}{~}~}{~|}}~~|||}}}~~~|}~}}|~~~$( $*" /'%,&#&$,$!##'&# !#!!" %!"")##/()$%!*%")$!.)&3/,40./**0)*0**-)&.)&3,*1*&+&#!&!-&$-$#-%#&%'"!$!!!&&"";73!"""!,#)              ##)3&)   "'@;4GGD*,'!  '((,&%             &%!)($441460'( ''32,/.)('" *' 993471/4.260./'%#=;.IG9GE9>;1LKCZ\TJMD99.>=3@@72/%)!<0 :.!+#         */,             #$                  "")(''         &)((,+               "(CICQUV<@BEILTVXJJI)+$!#*+#*,!%'          /0,,.$TXK9?5                          .7Eq}uw~x|}zywx{~}z{zvspwEYd/<@:PE,D@ym9um9wp@|loV7h[9440$"  %!'$!% )' +-&.2,13-&& +,"AA4<8-.%<5%GA3:5(C@0@;+CA2EB5( -!$         _hggqm           ')& #$"$       '*'                    #'&            $#)CJ=nplgfmnnvGINYY[TSPHKC9>7')"%%!"  482!      ,.!,0%&'"                  !%6;?*6:9EOhs|}vuzzxzwsusnii4KXj~?XO'>9=RQ//         ,-.̃p/C4*7%'֡µɚvmsoŤӦשۤשݳݥ٤י̞ќ̘̚=FhQ:ouM|OwXQSTV}Cm_f>jB|V2dc>p|T]4jS|Qg=v`9l\4f\4goF|e=sY2gX8hB"NY2ezJnEPzoctgĨƲtyvnyOQt6/WE5dWAs[@rV;jS:dF2YD0WjR{vcqc_Syda[ey]qzSioF`fZz`\}lvsrrơǢĜȻнѿпҾdz¿˿ȺýŻýʽ˾Ūõل§ïжزطٰӯШȬ̦ƨƭΣşlu{vz30:#=.$D7.(!          #) !"(85GdOfWmexjt~|yzy{z{zzy{z|{|{|{yxvutsljljonxw|{|{}|}|}||}|}~~~~}~}~}~}}{{||}}}~z}z}{~z}y|y||~~~|}{~z}{~||{~{}|}~~~}|}}}}}}~~#)$ 4/)1)#/'!&%( '""""$#""!-%",$!" ( %####"""  $'!!'!!%(!"(##&!!#!*%#51./*(2-,853.*)(""%  "### #.)&60*/(("% "'"#"%' &!*&#&"       (- 4%2' *!(*#     "-"B733*$4*"80%+$&!           '+%-1+,,'.-&-+$! ..&571&$  51(4+"2(5- +#91#HA2A:*G@/@9'-&               .55#                                                      %'.( $ "!&(/%7:0;;699:=?@BCEedfFEC24.7<5%'"   $%        ##!                    #-5:ETN[isyvxsyu{}{sjsd{WisYhoDXQ%815FF(*!    M`W ',#ƿ̴ǞœÚĐpD]eMfhRmjlnZupqɩ֭ݺܬߦצ؜͊ș̨܏/-OZ>tyR]aoN~IYV{HNrHqIW2dG$PP,ZY7h`@q`KyDQJQRQwByA}NUvA}u@{Li8stEzKg8ohN@Ve[ڷû˯ǤǪΦʊf}WinR`iIWcL]gNahf}|ԺٮʡĬҬήλݺ߳٬җ͜ΚtȜѷn|:/XxZZu\tFqDzNW|Lb4zmB~Uc=tV6fV1fwP[;mlJ~g?xU/eS0`d@r`8m`7ng;vuGm>|p@~zJd5pd3qwDHSSNn;q[.^_4f^5ijDpnFma6`^3cj;pW'XU'VrDxsF{MvHoDz[1e`5je;reAugCxc=usQuShC~pIrJg@zwOY~RwOzR{ZuRlN_Zy]oz[stXnkSlmdu{oe{lwpjmos}{5>H.oj|iosmeYsLgcŹ˿̦yrlmps{xsco[fXc~dnst}{plv~kwUtbAaO1R<+K4)F53PI^~{ynnllpv{űʷ˻̽μҺ¶¹ɿɾǽƾǽƼžƳµ˙edrǰϯͱѯЮίбϳҧǩȨţloMPV                  "(?CX}ge{wmu|}{z{yzyzy{z}||{{zzyxwvunlgdeejkyx{z|{~}~}~|}}~~}~}~|~|}||{{{{{||{~{~|{~z}y|x{}}~|}}|{~|{}}}}~~}}~~~~}~}}~~ ",$"&  "$#$#&$ !"! #" "  !"! !%% "$+&#/)#71(1)%#   !! !% $ !!"!!" !#          $,"$ !        .&!0% 6+$93*3.%2' 3& #       #&-'#0-&+' "'#.+&(&   4/*/)$                                                   $"(&""     #% 492+/(                         !#'-"5:0WYT?@?ADEDIL467#$            )')                %*7N]oqzwsqqmp_:\f\~plrq4C<&,'5>6/<0@IAPWSpzsw{h}risitbwqq_vr[nltoPfmD_f[u~WpzJckNel8OS'>@*CA0FG?RVTfjx|Zkc.;5!$&"!#$!!"!#   ?A3mp][kg+77Ȯij˲ʩţ\nn¸лӬíġȳѮʦħǣƖѲ֣ˆx}ðښˉĥܝӴYdH?h{h~doIxMUrIyOlAmBwNqGf>zgCznEzNvKrHl@vKP)e]7pj>ypD~c7p|Mp>|i7v{Jn>h7x~Kq=o9|q>zR!O8 -+"wiǾǴyQ/SR)Te?k_b7nWYxPc@ohAt[6iY9ib@tqKrPqPiErLf>{h@|tKzPrJvQb~_iR^Yw`p}`y~Zrs\srNfdZrwb}yuawrrmjitwy!\bxs{dqpx~vmRlG_ybóݑjyponrpoquwtwu{|wut||ZsjE^P1O7%F)"C%%E*'G+.M3VNQf_VjdVjgUifr|uixv5B<! ! #"''-$-4 )/$*!'!&(/#* & &#(!'"" "  +.$¥ǩlzثƟƬت֫էϫзܫΒ}d~xۜЗ̡M_{Y]{t[uSvQsLzQuKZeyOmEd@yb=whA}uLpF{U_xQrHvKV.dP(\Y/d^1h\.irFqE~NxEo:}{Dq?r;,+ >0?⹫F)Kb@lZ6c^6i]lukiJ|kGtN|WnKqPkJjGvP{SjB}XoNtSadOfjqggXsxVptVnnUjm[u~nnknqvq|ry_gu'|my{_se|sjD^=[sbxŽ­qc}opdjosslrswqn|Rtf6UB-L3:!C#&H' E#"E%&G((I*-P28Y?Pn]~ypjinsswz|~ŷɺĜʹòͳϴƩƷǻ\]kdiylsuhszBHM^egæƯâxQYU4?5ahd          &+!     ()BQ_g|j|rqyxwwyxzyzyyxzy{z|{|{xwutpohkaggixvyy{||}}~|}|}|}|}}~}~~~~~||}|~~}~z}wzvxxz}~}~}||}~}{|}~~~||}}||{~~!!$$!## !*" .&")!"%$"#!& !"&!&!(# #!% -(%*"!! " "$$!  ##!"$                 %,%73(2.#(!$         !  #"52)6.(-( &&!! %%)("                                            " !  "$ "                   #%$                     /21HNR.3+CHDCCC;=uQ%J) "  KBO_S]D?LOMDEC662#"     ##       FGA.0* !          %+1JWdkwyvtrx~{utmfngfhipsOeZ!+"       !# $&!#&!$!  "%" ""$%!'!"%-3&29#/7)3:#,0369Ⱦ}}~s{qâǝ{ƨΧˬҤ̨ѬյڰٞǖxhtėŽŦ̨ˋca{ypo`{VEecRz_JvfN{lP}pKb7y{QsGX3q]8uc;v_5n^5h@E:94. " d`jȵlxkb^hp\hO{cMv|ioZCsiN~`dB|iGjGpPiJuPuPpK]`oLkNjS^WtVcp\tx_uw_y|bp}seloztqxsyzsmo0ytN^O\sZvy|ǿa|^ʞswsmhRo~lyqiAaS1Q9-R3&O+G#"J%$L''O*&N*&N+*O-+O.#J(%M*'P++U/:`@TubLmcY||w{wyz{{yz}Ƕӽ̴ȩ´ǷɼοͿѻ˯yvku|hpvv~åĴʵʯfgvкФzWd\\e[X`W^e`qzxfn` "!nvmmwf$##         #.!;.#L?6@3,;/++! %%.FRgdxo|w{u|xwyxyxyxxyyyyxzyyxxwxwtslkddzaa~givwz{{|}}}~}~}~}~|}}}~~}}}}~~}|y|wywywyy{|}}|{~z}{~~}}~|{{|~~~}}{z~~&"$%$$#"! !& ! !  #"!"#*",$!%##$'#'"  ""! !                         !   "!"!                                                                                              ! )'".0+583340*)%!        !    "#          HW^o~|{yvwxtz}~{|tLmV* !&"(#!     "&(03*45#,-#$" ##%#&#'$*0+7>-8@2=C)26#'!#!  ɿʥ̩ФʏͭӠť̡ɤʜ—Ÿǡˡˣ̝ŕʫӱٮӞ~c{n|zϪѦϬԮԶاs~DCK$%-/1":tgnSpNvM[{SvO\8iC&ME0I:)9   ˷¾{~x_NyeH~mHgC}nMrPwSsQrRyZ{ZkG|V}V|UtOmKyed`~R^gLdkVouShjTkpUq{b~g`}Zv}[vyw|~uyry./A[lcSgRWqShh}{slltttsxжvs`Sy*KF#A?pbi@dX:_I*P1'N.&N,&N+&N+(P.+S11U4(P.+Q/:^>BgF+S1*T05_;AjFKpM3X8'N2Hkdyy}zssr{μμѴɠòƯıǴ˵ɴǷǚ{q|~]kk_lpp}tk{tus~pzq|mzñůĮëxwѺP]Lkxbn|qFPF$)#  :;5DJ@           &+,7(A/%C3.3'%%%5bC.U4'P.6_;BlE=dA0U5+S3+O8`|vb]}ky|´ɸʹ̼ϨőhpwotwagjboqN\\Techwzx¦v~Xd_-2- _gakxl        +!4& 4$0-0!,&  '/:V_v`zsxwzzywxxzyyxyyzyxwwvwwxxxwrqlkijikop{|}~}~}~~~}~~~~||}~}}}}{~y{vxwz{~|}|{~||~}~~|{}}}}~~~ ( &!  !#!$!   #*" )" %    !"'/&'4*-% !"%,! *!% & ) #!'!                             ('67,""!898                         !"# !       )$                                                                      !!   ###$@A?=<9%$  :8&-,)',(                        Ticx{wu`xzJ`^׊L`X           !         #& ѧΡȞşƢɨϪѪЦ˨β׸ީқÞƢˬ֤ϜȜșƖÙđӫӟȓڶܴ֞sg~̹׸٬ȧȶӶˀGSC<=/KRItq*#7 QZ`ΣQmdնՏz|[^`qQmKjK|]wUwVwZlNw[rkiQbnXtvjrffcosofoyaxls~kspevgrCFVru|yyywvkqkysŏewq噪e}sxSuq>]M3T>,P71U:+P2(O-&M+&M+!I'G#E""H&)N/.S4*O/(M/Ce]Kkm_{\yotvDz²ǹΣĊPZb`hi\jhWji~ħȥϫŨðʲǰxޗ]ie1:3 698"&!        "-"3$;*!4%#""#'-BMb`|||njxwvvvxwyyz{yzwwwvwwxywwutrqmmmnmnyz}~}~~~}~~}|}~||z}{~~|~z|wytwy|}~|}}~~~}|}~|}}~ $%&     #*# ,'"&!!! ! !""&'&  &*!)(( &# %!:=D\cbUUQ    $ ""                           %$&% #$!####                                 '                                                 $         "!#!                "#)+"@A>>=;@@<64/'$! &&&( $#,(/+,("      !!"               *'*0.3   Tp\`qx6LF!  "8F5            ( 0' +%! #$)#* %+$(  $"$!$"(&+0',4&     .;-ase|½ئȎɨϣəœÜßơǥ̥˧ͮղڨГҩӤТϠ̞ʈǫҩҠʕƫѹܴЗu~¼Ǡdtc?J37=(%funϭˍz^_mDFQ109+.7uxƷۢLg]̻ۏvbqUqQjIuUdq}^rWy`ubpkhy]zRpsgrmkffolWq{f}[rSivnzuurk[o|gzNZdpy|psxy}`|]kerlESLv}؜źȂSaicSuo.M:9V?/O5#F**L/+O0&K++P0'L+"G$!G!"G"%I')M.-R2-S03[5=gB^eOyU+R00U88ZD<]K0QA;^UUvxXu{Tp|\zei~Ƶƶɶ̝~X_mEKQVacFWTbvtkŦíȨǔu|xaou{\f_7>:   ,-,QWQ556uyy            ' *!',-1!9+%+!&('"! #43Ecc~lhetxwvuwv{z||yzxyxyxywxxyxzvwqropmotu|}}~~~}}~~~|{~}}||{~|~|~|~z|y{uxwz}}~~~}{|~{{~}~~~~~  $($!!!""'''#!!""""#$&&  !   % ""      %0'"6,!2%-"( )!*" LKQhkohgg   !      !#"          "$#)$&  :<0**" /4-*,&                                $                            %&                   !#                 !               24):;2KLGIIEAA;>>4'& $%(''##      !              3([H4L:' "!"%%%rwov]rf[lc*             $ -%*!&! ! #%!&"  !%*$*1!'- '-'/$,6!'2:BIBKTJTdEO`+2@&  "/'^miͬ͟ŞĝğƤ˝ĚĠȢʟǠʨѯקϊĞʜȝəş˚ÒʮժѡȕǙØ_umsyO_Hg=,U/;cB6^;+P18YC2QDLjeYzxTx|Z}Qo{\wavxŶǺ̷͛~\ctfj~ai{sF]\Rjcg}x{rxQS]MTUh{rZea494  xz]]Z           "%!%#(7)":,'F76J=;F<;8., "%2%2JSi_xxyw|}xwxvyxzz{{{{z{yzyzyzyzwxwxtuqrqrxy|}~~~~}}||~~~~~}}~||||~|{~}|~{}{}y{x{vzy|~~~}}}}|{{|~}~~~}"!"!  !!  !'*" $"  !"!"#%$##%#!%$#!! ! "#$"#" &' -%8+8'5&.%( $)!$;7=-)+      "!    $-$.%' ""#!  "$ )".' (!& (!%       ! !                            #                                                        $&!,0*                            %%''.+"53,@>6C>494(11$))#!    "$          "%"      7*uX:YM>(    #'"]n`(8+     #+#'" "%!$"$ %#  #"',$)$ %'- '.&+&)%,3?JUBMW:BK)/8%)'+1(,2,/2#%&    .75cqq˝řǥ̠ǝĝƜŜŞȞǔӤ͞ɜǘØƝȟɥϝŒħʧϫӧ͕z۔f}~l}oIQ;BB-$*lDŽѾ޿ޭ̖̡̫\nf_DzdyZqUgNfZ{}rlr|xaz_vxhpzqh`xxirqslo{w[l{zÝy|khk^i^rjb~`ý\ScUMi@H`CՌªǪ«NaQbvl\od7H8=PAMbYK\S=Q@%@)%B&$E&!E$@ D#+P/*N.*M-$G&!F"&L(0V43Y6,P.(M*/T2!H&-S3-S2.Q5Po_FeZ?_TJkcZywWuwYu{mnt|ŰĶ˴̜IQ_@GPhmvny||ZokYohrڥ\bmJSR|{Vce6?@#$&$!"  RWW=>>-**            $%/$"6,*6,+?420&$!+$.@>Sl^{vok|vtwuwvxxyyzzzzz{zzzz{{yzwxuvpqpquv{||}|}~~}}zz{{||~~}}|||{~|{~{~{}{}{}|~z|y{wzx{{~}}}~~}}|||{}~}}|{|~}!$  !!$%#" #&%$'(!$####&%($ ! ! !!""! "-$!/&!-$3%8$:)4* *!*"           $    #) -$( &((*!( $!    " $/'5,"(!%!#   #!&#!!                          %"                                                                                    ! +)*&;90@>4C<170"95(,+! " (&!                        %! ;*ZC#G7!    $#$+--24%')"#$ !#"! !!!!$      ' &!#! % )& %#    ##$& &("&+',1$*. # #%)#)0%+ %+%,!*1.7?;EL@JMAGIEMNMWS@IBDHGLONJOK04/"    #,+Vce¤ɤ˨ϩѥ͞ƘšƞʚŁԮצѡʟɜǛřÓȝǚتΫМuא]wxu\eSIJ336#6FBѥːʹ޾ޯקϢ̦ͤŗ¹±ͯСØtαżk^}aOwfbTc]||||yywoa{ryyuavawmeycwnxwdwk}qq–ppxppdZzQb|]Ó_veLjNdeեʰ̭ˡǿfe;U=UmYRgTOcP\r`Uj\?TESn[,K4:$G(>`F+M3&K+'M+*N-*N,)N,+P/%I)$H'&I("F&#H'*M/LnVNqW)M29ZE<\N:YI+I88SEB\RRjg\r{kũƲ̞fp"/XWcgrujvv8IDFZY~ēş}dqtZgf>IK %'# "%!" !)##!            ! !!#+8.>Saxcxhiytsvtwuxxxxxxzzyzyzzzzzzzyzwxtuqrstz{zzz{{|||{{{{{{||}}|}{~z}z}x{z}{}{}{}{}z}x{wzx{z}|~}}|{z{|}}~}}||{|{{ $#  !! #"##*" )!( '')!*!!%!!##$*# '  !"!"(!0$!))-/ 0$%          !$$'( )!' $%70'      ' 7.$*!*$/+" *% $-':4%51"-'/(1, ,)                         %                                                                         %&"              $!0-"76)86)E@5HC80-#*( +' +' #,($-*&                    % -!7*+$    #&) $%"%"#&!"!#%"$#!! "#"&'"&' $%%*,"'*"% $! $"!#"      '"$!#'")'   !!  ##'#*0$,1$,(59FX9JY>O\=MW:EL8.41'+%8<6;>8>A9%'!     '71HUUkzɬЯ֢֬ΝɛǞɐԱڥТΠ˜ǜƙɝǤΤΞǛÔˮӲبΛg|qŨҊXsrt~{FN7=A,!)g{}ʙƔļְٰձӦŠЯШ̜Ɨňrl~Ľ|ojole}Qisf}f|czzoRjvvt}f{g{}xĞmmeZaWllwe{l^wdʴʭÛʧţ–mvbzp]w\QlJA[;)J0+N1)M0*N20Q8/O8%E.=]F:/FE>AB=23.0/()' *$!'""                               '-'$#'+# %!0-(%"+-(  $%  !" "! "#  %%"&(!$'!$    "'# ! $#   %()89->=LZ\DRV1?@/;<-9;)46&* &&/;ESXfwOam8LS8IO4AI)19&*#!       "  1:D0,0!FTŅʩРŨƅ߹ܸٳӧƣѦʢȝȑŏ_qrwjyviwt\jhbos]jsgves~^jyfuvuvasy^qxVipovr}rgzuÞuqfWmcTkVCWCeygţį̢Ôvn~dnRpREc=Fb=IfH]yfgoGaKIcPUlauv+B44!=ZGOlY3S:&J*(L+1R88VBDaP:YE5U@2S<:[D9YDA_LC_N5R>-I5E`QPkbUldJ_XLb^[pwypXlwf|ЬəT`m\_f}}}wĚǣȣɧβ٦ˤưЙâtxESQ " "!          *27P@Omb|qoizttvwwwxxxxxxzzzzyy{||}{|{|vwstrstuwxxy{|yy||||{{|~}~||{~{~|}|~{}{}z|z}y|x{vywz{~}|{z{{}}|{||~~|{|~   "   "   !!# !#!.$"4*)0*&#&-%#+$"&''*!% "!!  ##!!   0*'!   "             $'" '% (* )3#8'E8)MC1<4"2+1*%                     (*!',!'!                                                                                   ()# !(&-+@>6KJG898./,886964                         'D4&UC1/% &"    !!!  !"#       )&"**&#""    $-/%.1 $"$%'"%#%+::9MKBVTL`_PbbCTP4B=%00!*+ (*%**48=HL6<,99),2'̬Ӧ̭ӘߺٰѪʡõѡɛÖáq̶KRG%"=EF\eilv|vWbf[enußuvh~paui{apk|{Ġl|įĦzt|wJbE 7ɯǖ©ɧɩǝwrvY{gSu[[~_GiD;\6A`BC]H^vdYrcwǙ}oOQq|~wu̜FS^08.H5&TA4YJ=QI;OJ=KD9<4#3($                    $('& + 8/$"  !'"#                                                          %&#                 %&  %#,);7/540210>><9:7(($                      %E5"B5(   " &$ %$"%$!  %!"-)%/-(!   !#%& !!"$%%()+$57'8;*REf˜Ě nj׭Ϯ̜~ʞȗÔÍrgw~vp~jy^kherqJVVdquĠŠw`uoRfeXlpgxpz~ǜkw{|Űãu|\xZwrH^?#7 Ҙ}ydv_mX}\DiA?d?Qt\`|mPgYE]VŸ•i}`sr6LFD]SB_P/M79Q3$6*7-!$                    >3#;+<2 /")*$   5.!1))"!                                                                           $'!"#                    &#-+ ..&54067479512.    """#       #%'#dBd{{g}OgkyŖx}șk[unG_QDYJ6N=8R@F_T\urz_wjPfWMbU@WJAVI@SF)<1J`]|{p_xb{tůƗ59@)),{epn_j\ĴΤƶٯӰԴ۴޶ڑejrkwsKPX!                    $+,CGVvirfh}wwyyxxvxuuuuzz{{zz{{zzyy{|xyrsrrxx}}{{||{{zzxyx{z}{~}}|z~|~|~}|~{}z}y|x{y|wzvyx{{~|}}{|||}~}}|}}}}~~~}~    #$ ##$%##!  !##$&)!)!-$#+! -""/#",! +!* "#"!$,$"' % !%"!   "                "       '"$           "    #(&1$G7"M=%RB*UI4QC0I9(8+/% -'       #       %"  NG4OB,H=(B2;(D3$9, $"0'!3,"#   ;2%(&-%                                                                          %$./#"#                    !   $%## "22*992./)""       %%!""      !!&*-+0515;*-2 $'*.2#)-$+0!%)         *$"&/%%    ;9-IH7JI9DC475$0+"        !!        "'* +0!.3,0),"%!   '      '&#  6>BhuwuҪϘid}zƗžțÉvجʅfuz\ony|ĜŠǤʞxͬЫɵ̊vzՔ}>KQP__m}p|}|Ŭ|Q_YPaUˬɡ§ʭϯϔzz}–zſil#8$ŸדlrktoreuVuZFgGTubx~h›ÖtVndMfXNhZZrkncxwRf`MbZBZMBZK>SC->-Q^V^npRfiKada{i~|Ĵ̤bny#&1(?8/73)'%                                                             ('1-)'                      $$'&  !##     ')#-.+./+#$#$#$!!" &'!      !!&*-*05,05#&)"&)(-0,25#),!$( !$  &#    # #% /,OM:\Z@ZT:FA,2/"$$      (2',"* 2)5+".$!!    #               CKLhvsZnb{ǽܢˍ~|ŤȪȦåd{ڽگϚŢɢȑخά˲Î{tuÝĞşƝġɤ̥Χϴۤ5DAGSMs̞ȚŨ˭͊_qn`sjʞƙŭЯ̓}t|̑~3!❴ayqxugsYwha{gmz}ƚžĘnQlcftxh~~La`YKAYM3D:r|n^jjVkjZrpYrvyĬƛ(.5'.6ͭkoLg7$.. 59.&)!      7)?.2$1&:0F:,OB9G;32($%!        !#+             #%          4?7sʾτgjszaxb~udu\zgblrgkٰ̻өΡǡȞŤɨ̥ƑѬ̨xwcyV|o^p^խЯѭͪ˪ˮϰѭΫ̸רKYMQaW|ʪ̪̫ͪΪͬDŽTg^ެόá˚ĘñЄ\jtsy|Ƣ)7.ͯ͜É~ߝšnuuTikj|¦ʫ̛ĘsQi`Jc[axtezx^ql=RG@XJH]Waomixyms]vzrqmũĮȩđw#+539CëíggWuFMmGrůԹڲ׸޷޳ٽܺ?HMvIOQ'%%*%&"                      $      %#!./.%%%" ! +)=9B`[mt]`rxyy{vywwwwwwxxxxzz{{{z{zyyrtmprtvvzz{{{{|}}||||}|~~}~}~~}{~z}y|x{x{wzz}~~}||||||{|y~{|}~                 #&&!!!""$( $""#""!'0(%0(%.&$-%#)!&$$$%!!!  "  $                           #(! ##$    /'(!!*!+" '*$               %#        " -,'                                         " !!"#!                                              !"((+-)-!%(#$ ')*."#%      ))&OPQ9;>*,//23*-.#%&558-/2$$'&&))*-""% !%!          %0*" "6&3#($ 63$=:*:4#=5&96'-.!/3(,0&#$      +2!.- ."1%8+ 9-$1'-#*!2,*544#" !'!&                        #%         $*'bmjц`z\sSlsKhgXsq]wpGcO=\CFeT[yqax^ysa|yhrzktݻ۶ٴرխЩɡƭͬȒYqGi}X|vfta۶ֺظָպ׸ԵҴԲҳѥq}2=7buqдֳѬʭʥhznlyƇ⓭Ģ˞ĦŪĖʿ顰Ċ|ƓqĪ;CA}ڥÙÆt{x|[tyWqvi}zǘ›¯մ١[qrJ^_RaaXhd\mjftvVbdQ_]]pomk~jsŮșV`k')2U[cǟΧc|cVqDVtOèɰյܷܿڹݺ߯ӵ٫͈ENWozz'%.%! %!                                """!&%&!(/7MOb~dwkp~tzx{wzwxwxuvtuyyyyyz{|{{xxstnqortt{|}~z{|~}}}~~~}~}}|||{~{~|{~x{x{z||~~~~}||||}{{{||}~~}                  !#"!" #!" "!!  $( "!  !")!,#"-%"2*'3+(-%#+#!*" &##! "   !)!.%!$#* #$"$$                            )!%   "      &&!       %$                                                !"                                   ..'==5        !" &'%&%%#$') ()!$&'( !          !+)&&%#*((&%% +++$$%&&'%%&   5,!LC1)! $=*9$B8'D>0=8'DA4CB5<:.75(0/#*+!%&') !""      !"#%)(  #) .$1)'0-*,)&.&"2.'/)                             /:5rϦʈpe~jcxvPi`XrlZtoUpiLe`by~ukx{nt޿޷زԫͬ˗ʬƹxo^uLxozroiyҵִҬ̦ǦǦơÛ,68/:6fyuǽۤijd}uj皵ɣ˙⤿ŠլİINN`kg̮ɠƅŝkxWxjbjsz›Ö^x}^vsmQlfdyt}ŚśÛŚš¡ȓ~t{lybqweu~L]f\otm~xykpwwŤ,5@69=pwrs|ǯ«ttRnAUrK›Þ͸ݸ߻ߺݸ޼ߨǥm}@IN #                                  +;;Pl[ow{og}}vyvywysvswvwxxyyz|y}z{xwssopoouvz}}~}~{}}}}}|{~{~|y|xzxz{~}~~}}||||}|{{}}}}}~              !! !"# '!! ##!""#  !  *" /&$7/,:1/6,+/'%/%$+" +.+)" &$! ! #%(* ())("!"#                                  *!+!&#              !.,#(%51#&"                                   &#    !       *&  "                    #$                          ##()##"""# !!  !         '#"*((*(' $#$ #"         $:1"80 "" % MA43,$)%RQEJLBDE<><20/$22(,,#$$"       '#"#".%1&"( "!'#"                         !$(        5?;_kmmz~FQU4>@DPP_imkw{kyyo}¡tݲ֬аѩĆsn_ySolq|ȢŸĝáƣȥȣǨ{4@B&52Siin}ėDzi}Ymsܠ„̘螹ÙċáenoZb\ǝƃ|69=$+2XgmZzd`ižßěWpe1K98TGUmp~~˜}™zo{|sqcwoˡP[d+6=iuviwmOgNNmNchWtIPpD]ydğݝ›ɳ׵ۺ߻޿߾̵ۧ엧pxq}|afp ,(%,&$&! $#!!"                                %%#%$"*5/@W\pl~|hcv|vxwzvytwtwuxwwxwyzxzwwzzuuonnnrux{|~}}}~~~}}|}y}y{yz{~~}~~}{}z{{|}{}}|z|}                  ""! &'!!"$)!#"! !!*!3(%;1*G?9>31.&$.%$,#!-˚+%#)!+#!$  !#%+ 5*:1!)  "#                                 * 4(,"%      %"0.$99+$ #!  "                "!,,'           ++%#         % (%&$$"                    " !#$                   () /2'&'       ""    !!! 55@<E &%$             !#"                  ! &,2+6CDTkgy~ffx|ry}xzwzvyuxuxwxxywyxxwwyxuwnommrux{{~{~{~|}~~~}}{~{~z|xzy|||}}||}{{{{~~|}}||{{        ! !!"!#( $  !  #$( .$ 9/&A90=4/-$")!+"!+# *# -%",&"-'$'" ! ! "* ?1"?26,$                                        '+!&          .0*-,''$%!('34&44'*&!'$ +)%                                    #!.* -(           (&.,/)*'$&                !,-+                      ""         ! !    ))-MM]]awJQdKO[348#$%)*(! "%$%    0,( "##7-SH<-)"MNGMNBOM>KG6<9).-!         '!$5)!.$'                &*$     36.            !*2Դ֭ys}y|`}T`x[Ϛy˺ٵ֯ϨɤƨȦŤĦƥƣĪˤşêʮʟδձҮͯϭϫϣʖwre}~}ÕնݧƤśäŖjwrAMFޮӟĩącno!)+  ^nfxěl~sĚđbqtuǠġĝÐmypçĉ7:=SYZ_pig~prtWwUUxX}°»WtMPrDZzZŞ¡×Ü˶ߵ߳۳ٱէʹܼܺᚦOYZ  !!"-)(              "'!&%!$           !         #%().90=DCEP;>H !..446@16=37<13:.06),.%%'"            %%+$a_RWTCUN;C;)6/ #" ,-%*-% !          ")",%7, 6*'                  !  BHBdof                          0?Eh}rruw`|[VqN¾o~{˜ĜÛěƜƚęÚģŧǦǩ˴ֱ֙pRjkŢƂ媾Ǡ¡Ìm}xM^Rýɪ̖ר@IG$!JZS[oumz~kzhxaox~+6.)"68,/2)         60&61#.%0$(                   ##                      2==m|s}i|j`ubNdT{~pw|quVrPax`t}hu|Øřɛ˛ʛʞʞǘÔƝŋ١xe|ቡǣcqv|wyM^X˭̝؋%.0  Tb_{hzll}qlzqo{rlxnbpjm|Uejkynxfr}iwmz`nqVgio|;IDMVXu~g{qtq~ckfid_^~U_[\^ǿŻifSvF[PFm@dlğ™ǥɓʨͣĖΣȶksyrx|*-2     #  +% 4.$E@8                LH< #9/%@5&/%                       ##,*4EC\scvfjrymuz}uwvwvxuxsvuxwzxywxvysvmpmotvwzwzwzx{{~z}{~||}~~~~~}|{~z~{|{x}x}|~|~~~~}}}}{}|{    $$#$%$'"/*'"#"  #$$$&%$ ,"!,"! $," 4'#0)1'"'##"$'%%""#  !! """""#' %#%%#"!!   *! +""   #&&                                   %    EC<-+$ "         &%#!"           %%#&&#%$     !"      /1&(*'"("*$.'("                                        )*"&("!"    $$''-*A=':8"-,,+('""!"#+, /0$"" !! !   ""*-18:A:=EADM49< !&'&@CGGLTHMYKN^IM[AGQ7JMe]yp^irwp|y~qssvtwtwtwwzvzw{twnqlooruxx{vywz{~{~z}{~}}}~|~{~{~}~~~~~~}{{{x}v{sxw||}~}}~~~}         !" !!!"!!! "! ! #'! "!&/$"+ &*" !!#%%"$&%#""""#  !% )$ +$ *"(")#'$%$"!&' "                                  "'!       KI>"           !                         ##:G>17,$( !    " 8>B9?D57<>@HCHL155 $$!8:;8;>;>C@CIHLO7::20000/CEIEIQCEM+,0#$$''(010      *# 7/+NHB        )$   OLM0-.                                    !                        4>?dsvcvxg]uppxIeHSpMJd>OgEvtNZL        "7=CFLSLT]Sajl~w}ƫҌSin̯ӀTcctƇ}Pf\m}y9C@ $                 6<2@XPlc}pa_mzsutwtwsvsvvywzvysvjmnqsvuxvyx{x{{~{~{~{~|}~}{}{~{~{~}}||}~~}|x}uzuzx}|}~~~~~    !#!!! !   !#$!!"! ! !""! !!" !!"&& "&#!"#%"##%'&-%"+# %%!#$#"$% &"(#)$.)#63//-('"%( )!%$&%#%& "                                          "#              $#                 "" &%  !" %&##14':=/(' 0,60,&4,93#50!*&  %!                            )*!"# #'+$,5-070! !"$$&!3;3+1*!% .4.%("       #"$#*)*(''&)$'(*%% """"!! ""/,%871694:A0>+     "(,,47)23%+.;FF=GFIOPAGI>CE9?A@IM_kp]ope|㘭Q_c{}xx^uk|#+&!" %           bngw}YrXb}agi_cww}rsfefede¯¶`^V{Nd_dev|pvœzUX^   2-)'#                  %*(%&'#!                    $%'9'1GCXr_ytRXc|r}vzuwsvsvsvuxvyqtmpjmpsuxwzvywzx{z}z}z}{~{~|~|~|~z}z}z}z}z}{~|{~|}}}|y~w|w|w|{}~        !!"!!!   ! ")! ' ##   "$$#  !!%$ !"##$$#%'')!&(%"%( # #)$ '"% &!% *%!0,*++'+)$)"( *" $%'%%%&&!"                                        &#$                 42.IGD++' #$%%!             ')"##00)00(''22%&&*+#-/%$%%#!!!".-&STN"" %!"*$<5$ID284#$ '"1+,('$                 $%              "#!")/(7=6/2+#% '(#!"!"(*'&,%!%#(!2:4"!     ""()"$*+ 11%56)38*-4%,1$() )&87/76-;;18ILD$" "3-6071.)  $<4'81 1*0)                              ##,.$()*+$!#./(+,$--$'( !"  !"$""#         ""** %&(*-/!67)02%&*"$%&''!!!"%!"  $#,,(-/+JNL@GJ/47$(%!#9<4;:6754985'%!    #+"0'70&                      !      "                       #"#!                    !       GRJeskcyw柱EXY~p\fdsKa_blh       "") %-%"    $!  *2.xy¸ˮ|WrW`^fhhn|}szsyoshhlkgebcµszdgnqrvv}uzx|4:6   !!              (7-+?40?1/:,*5(#5( 1%(               # ((%304LRe~gxUXc{uxtxrvtwtwrumpgjlotwvywzwzy{y|wzz}{~z}z}{}{}z|y|z}{~x{x{y|z}z}{~z}y|{{{||z{zx}|~~$   !&&$# !%#""%"!"# ! ! ! !   "( .%&)! %#%$%$"$$!###"!# ! #""$#! $)!'%.%"-&"##$%#!!"#% &!$#$"%)"+$!-&#=;:=<;;502)"( &!!#' (!"#      !                                                               '#(%CB3YXK:7-*)"#,(":8/78-&& !',$8://.",&6/<4!7/,## ) ;0 F<(E<&5,+$                                 "" $$./%"# *+!-,!#$  ">C:&)"! "("&-&%)"(,%')#       "#&('(  !!!! !!""     ! /1+%)"5:2AGCMTU?CB$&&'+,%++%&%"%!    &-#+ 1%%  '$+,26)37*                           ,..48;+.2        "$!#!"      #"!                            #            -4/7C@ۑm`rs`nnalnapw|@HE      !'!'     !*!(#  #"Ŀ`{_VwSmlx}x~zs|{}knnqgg^\nnxzʼy{cefjhlflglipjwcxxs[_^    "!#" #"   ,)(              #1&$7,(9-*;-+:-(6' 2$0&&          $$1+0GFXq\xmNW`{q{x}sxrusvsvosknknptwzwzwzxzy{z|xzx{y}y{{}{}z|{}z}z}x{y|y|y|{~z}{~z|x|zzz~}|{|y~y~}~  "##$"!#!$+#!( "! !! "!!#! ( /'%0'') '&%$##%!84,HF=%,$"( " #!*" $"$$$""&&%$%$"!!!""""$% % % $#&!,'#/*&.)%/*'52/9:430*( %$"## "-#/#'                  !,)!($)&('"                        "#!"$#               %%0."64(10&)) '$'#'"#     13,"#5:43:3KTIFM>.,:1@4 4)/!,2&@3!@3 180   $#++#     &' &&!#',$-3*!&!&*0(4=5)5+#-$ %#& !"              """" ""   $$    $$! *)&((!&&"!     ;6&:14(4'=/")%,&*&*&86$>A.6>*:D/                           %%%+*-     ""!                                  *1+&*'            #*)ys~q|!&%                    $# RXT~WqVdawxx}ywsz|orxz~ɴҿϾ}vzkkba^]XyXWyY\{[QnUkwkzxu~^d],2+                          $* 2& .!,*#            !-(,A8I_Yui^nxggy|qvruruptlphlmpsvy|y{z|z|y{y{y{y|x{xz{}{}z|{}{~{~z}{~z}z}{~{~z}z}z}{zz|}|{{y~x}{}~! " !#%'&"!#$$#'& !" !! $#$&( ( '&##!!""$&.( ,* -&"2*')! !"!! $'&" $-%"$$$$"! !" !"#""#% ,($0*)/+*1,*1,(0,%/-&&"%$%&%#  %)'-!)$! !             &$52(2,"&"%#"                /+)      ()$                        !!!!! )('&"!)%"$"    (+%!% (.'&) :?8GMFIVJERA67$/'6+6,3(.!5(>12%) ( $                ")*          !&#//&       #%%("%*$#$(" &(2+5C9*6,$+#"!$!  "                     !"  22,       $!50@9@5F9&6*)-$C<#<7!-*30 (&        !                                               "!!!#!                                   zжΩƯ˵{/61                 $!'&$! !Ya\~}}~z~¸̻vzwy|wzhi``suhf_|cjvp{nxbko376!                         !$%'*%            &');%3HKf{`{h|VZowpsqtruqs~jlikortwwzwyy{z|z|y{y{z|x{wyxzz|z|{}|~{~z}y|y|z}z}y|z}{~|~y}y{|{{{|{x}z}!  ! #( &''#$*" '&##   !##! ! "#%%#!##!#( ,#!* -$"/'%.&$"! $$%"! "$$ !&&#$$#!! !!!   !&!+&$,&(0-/7421,'-("+$!($%$$$$!"  $$ $          "'# "# % #!#                                               ?A28;,%%+,:<.ON>61$+-#*+"  *+&./*+0-'-(*/*280'*!!"')"-2*2"C8%;06*8(0"                              ++#99/#"      %)"#% "! ""'!"("#%/'*6,","$ %%)"    '',*"                ""$$ %&('$#$$#$%'!!  !%"!          0+;590F<%:0-",%8284&#"    !"                                        ""00%#  &#        !"                         =DDBKM5??"                  # #"..-0//,+)553 "  (1)_sg÷}v}~y~y~}qthiýqqa~__ajox}]g^)/+                                                 ##%3*5IBZoXrmX_myjtpuqtrumoxefkmqtvywzxzxzz|y{y{z|z|x{wyxzxzy{z|z|z}z}z}z}{~z}y|z}z}|~}yy~{z{}}|w|x}}|~     ##')!( ''( '!$$! ##!  "$'$# "! !%&'*! .&$-%#%###',$"+" &%#"##!"#!!  !"" $,'%202;<;760.)"+% ( '#$" $*"*$ %!!!          $!" ! ##'%(%)&#!"                           !                   ''24%36',. '(:9,:7(95#FF5)*   '*!(+ %$12)"$%&!250393.4,39-)-! !&) /6+;A68;0>@145$+'81":4%KD7WRE94%94$<6%<3!)!             !              &# %%  #*/*4:4+/(#& "!'.)*2.$+&%+$# %!&"&      %$$!             ##""""))(&'&''(),.!%%#! $    $!            .(>6!7.2*1(*!&!+("     784      -)''#"                               *,&!!"##       ',+*54&,)  #"$  "                                !   "$""#"+,*&&#(($&'#&'"1?6t|oxo|uxӾmqrv|ôĮ̽̿_na                                                   )'-;8G\Phwi~_kuh\jtzsw{qthjoptwwyxzxzy{z|z|z|y{z|x|xzy{wywyxzz|z}z|z}{~y|x{{~z}z}z~z{zzzz|{{zw|{~~}}~ !"" !#( )!&%)!%( &!$+# &$%! !'( &$$"  ! $&&&&&$"!"$*" /%#/%#," ,"!$""#   !!!#&!    "$)%"755651)&!*% ' #!!"#(!-&#'$#    $-"# "   %$%& $$'%,('## %"!                       "!!                       ()+,"-+HG3<8( 58-[`R?A1"#@C6BG=,0& !-1)05+3:-,0$#&07-?D:ILAEI:79(+(=;,fgZ`bU:;//0%**+''$                        "$*-$! # ,(+('("./&12+01+"# !  &+$%+#!%*$3:5284%*$! # !!&".83+4/#)$'+%"'!                   $"%$'&/. 11!,**'($-).))$0+!,& #/)%!  .+#*&    #/&92& %## +('$        !            $#!""                  {~{z       "'%#&# #    !  ! (%%.,%/,!         #$                  ,,**&$%%  $.&iq~~¥ĠĽƾˮðŴƓҲͻϼоӳ̭ɣFQJ                          ##!453"#!                                      ('246*E;.0&)!;2* $.'&"<:0!     !     %( .'%!%",*)'      )$*$#       %$#   ;D@(,*                           FPBai["#        !  ! "!    '%'/-$/-!      $$8FG4??"                "%$  110=><>;63-'($$'$$!%!&"&#$"'%%%    K]TťȿǼõŸ¡˿йӹӶѳͲɬƬÙUbS                  #!))'$ %($+                                   &$,+.>HWiTnysTYc{hqszx}y~z}w{x|x{xzy{z|z|{}z|{}z|y|y{wyxzxzz|z|x{x{z}z}z}{~{~|{~{~|}|{z{{|zy~y~y~{}}|z{}}~~~~} ""!"# " "$   "$%'')!%$$#%$#%'$"    +"!2(%5*%2&"2'%0&#* %#!!!!##$$$#%1-$,( !  #&$##"!#""&%#%( )$ *%!+&"+$!& %&%! " %$!!! (* $((..')) $$%#"$                      !                        $".,77%03!$%+(74 <6 HD0ORB'('*@F2hmTIF3$ 85*/0$&'!$)-"6:/7<1,0% "),#06-6<28>4>D6>@110!)%SS=NS@"&                          "    #$'("#!   +*":<3"##$     '.&,7/2>;ALL'/+                    ! ! 6-UI1RF*A5!4(/$3)@3(B4)2&0$=3+8/)%$% $          "+$$! #            &""          $!-20!                   $( #           #"052  "        .67HWVBLI')%                   ((%>@;JID>:361(,) <:2<;450*3/(1.(0,#(%     &.+zǿŨƻǦźƽȲ̷Ҵ϶ϵʵʢ{~$+"                                                 #%(7KN7RU-"C1&F7-?2)>1';/%1)" ?4)4, 0*#       !                            "!         "$#"#"       %&'#&(        %$              ''%         !                       !*' 53,2.(#"'%!"!(($97361+;7.95--+$44-63-1-),(%,'"1-%-+&  285̞ܻԷ۷ϳ˽Խ׾нɐ9B8                                                                $0-6JM_s[p{wROXjlQJXRc`novyvywzxzy{z|z}|~{}z|y|y{y{{}{}{}{}{~{~{~||}~~~~}}~}}~|x}v|x~{{{{z}}~~~    "" #"!! ## ""!! ! "(-# 0%#," +!/%!/%#" !#&###"&)!( "#&;635/)/&!*!,!(###" !"""#!##"%( $"*" -%""!$# !    !#& '&'(!( &$%( '%$"!##"%+!$#(.#,!#                                      "$'!!                   "#&)24'-.77'+'1,DC,BB+QSEfl_PT=JJ.QR9GM4GK3.-"#%& !"#&&##/1(04+8>3@G;AH:<<.:4!9220('                                          "!$#&!-2+"!8:7!$   #&!#                     %$A>*ID-IA*QE1TE2SB.?/=+R@0P=/OD4=@/:<(98$,*"!      !"                          "%',$$%%'!-.)&)"&)#$&!" " "#                0,81H@%XO0UI*]O3M<&5" E3XF1^L6TB-P@-PB2B8*(#    %",'        *%.(+%!                                354+-)$%&%&' +"RF7G93-$"          # "$!                    '*) $"  "  !#!# $& $'                      "%2+7/#6/!:3%3,3, 5/$;5+C;-<1#;2$1)*"3*!81&71'6.&2*"3.(51,/*%'! -/) MWWʐѱѩɿ敥                                                 $&+>=LeSf{au|jzzPJPyROt=.}MB][mosvsvvywzx{y|z}y|y{y{y{wywywyy|z}|~}|~}|y~v{w~zxyz||}||}~ " %%"!##$%$#! &( %$$#$'(%* <1/=1,-$ $$%$(&2)&)!""""'((," ," * ) ,$!-%"'%$%$#&-$ 2)#0'"'    !!"$ '!*&")%!)$ (#(#&!%''$''!"    "!*$                                                  (('%%# !!(($+,'&(#!#("!$                  ''(*!  36/./'./$24'#$=>0hjY\ZG>?*WYETT@KK7NP;WZEks^YcJ;@+"# %% !$&&(PWGJSDBJ;C0CO8^gMKO7!"$$AC4CC5(**+7:)EL;AI:OVGMTD/4"49%,-(&++,.'(                    %,%"+#      /1-+,+##!!"$&"()% !                  !,&-#?0G6!4 >(W@)`J3\H3L:(=/(              %!'$'&"A:53/,'#!+'"#          $!                 !'#/+&$"%#   +06$6'2%,!,%%                         $ %     $'#$(#).)','',' #$ #%)#14/,/)$',/('*$             (#80&2(4+B;'?8$:3@7!F<(<1?2@0@1<-:+4(0&-#-$-&*% !       IQOȦš̶̵϶]ik                           !/(#.($)!%!                    *+/GHTpVjxczNZibU`lB9rB7|YTjiqssvtwvywzx{vywyxzx{xzy{xzwyy|{~}}|~~}~}|{yw~v}y||}|~~~~~!  !%$#&&" " !###$"'-#!) ) ( .%!6+'7+',"&') %," +!(+!,# %# ! #)1'$/&#)%&'&$$###%( (!'&%&$$"   #&$!"#%'' *$!& $(#*%!(#(#-($,'#+# &!"" "  "$*2 2 +                                                    !('"""0-*550/1*++%#"                   !#-,,  32)+'85'[]QtulVWHIF4KC,_YB/5:)18'8>.9=-&(%#$"&%-//1#()!!                           "$--( %'$&(##% !# 00.#% !#                     'D3"R>,J8&A1C2!TD6A4&5+"           % # &#"'(&%7-&;60C>7B9,7/ /)#      /%D=4B?60+%/)%!  CE;!#           %,%$!  % -7'7+1(G>941-           &#                       $-&%-$ #!# !&+'!& # %$*##("%*$!'"!'"!&#')$(*"--&)*%#%&(#592!&  !              #%#& /*)&'"=8&LI7PL9TM:PG2G>)=2 7*?4)90%5,"( "        z~cxn!"                            !$,'#.&#)"%"                   #!!54>YObvUlwTftVUclKKpD:}^Xkkrttwvyuxvyvywzy{xzwzxzxzy{xzz|{~}}}~~~~}}}~}~}{zyw~y~~{|}~~} !  $""8-.   ! !)+!-#!+!*"-$!+!'%'(&+!)'%)("!! $+!2)$/%#))(')!$"###'*" )!( ''*" '#!"! #$ !'( %"#&&*"+&"*%!&!&!'")"(!(#)$ %( &"$$"" !,4!A)A*2!                                                    !*'""  !21-*(#                           '#?:*/,`]M\\GHI5GB073 >;(42 *+-.+).-PQ:V[BHM8KN9FK536$ ***-'*48)AH76<,.5&JQAPUD&)  "$&""%$""                                    ,+#NOI-/+ "(+("$ $% #$&(# !  )%&#                   B4#RA*aT>`WDOD7@5-               +!,-"/#,5(JB6B9+@3C5:0 $    &0'1'.&,%,"(  /&!,*#'&             '#&#     0:*?3@4!9/!3/%))! $&"')#')" "   "!,*%       #             !'"% %&+&*0*$)""%!#)%'-($ !!%!! % #(.*-40$ !#02+46-%'!)0&'.$$)#&+%(*%                   !#')$*+)((&,**%!"$ # 41&?=0KH9RO@OM?RQBLI&++'#'   $&2%$*        #"..),)!                               !"                  "# //(?C6;>/%%//$55*.-"87.**!"" ##%%''01#*+,-GK7SW>VW@QS?JM8CF0:=)26%"$46%48'.2$:=/)-+.!+/#!                          $%        ulVWA0+#$(*& "!#-449EI-:>5@D5=>&+'"$!#!" $$$1,,)     !"              /"?0K='G:%6,              *$9-#6(/$6-$7-&/$1(5-#-%*!#   "?;4G>;<.+G60TE;4'-*                      "!) A(J.J1L6G41%% "('''!        $$'&"          ),!+,#        $%',*2";@./2"         !&!##*%(1+.81(2*'0),2.8>=396"'.'"+##+# $"$%)#":?:$'! "% *+(   0*#.*!-+")( &'            #$&% +)$1.)51*&#$!,' 84*FB:A?7DD==<7><4GH=FF?832,"  '( (' "&"               '%'       -#/%!'"!''                 #%36F[Nh{Xs|YkuXYfzkslqquswtwtwtwvyuxwzxzy{y{y{y{{}{}z|{}|~}{|}~}{z|~~'"!(! #!   "&%$%#)!1("-$) '&#"#"##!!"%('$%((&%&($%%%&'%$$%'&&'&&$##%( &,$!4.,3.*2/)-'#!"$# !%&& )$ )$ *%!/*'+'$% $"$+")! !#    "&2!B(9!.-& +&   , /#      ($" .-)52.74-%!$                    &)#                  #171&*$"!(5>2SZM:=1))(*(+ &(.0#?B2CF779+ .-KK4GF01124-.68'<@0*0Y]I8:*56(GI;EI904&&'!! !                 "           !_fQ%&%& #$$($/885?B=IN=GN:?A#(#!#&)$"$ $ 4+4+'"%#!   !          (3%?/:.                 4.$QE;OB75)3'"/&# !    0'JA8`SNcTN@0&:,=/ 7%(                       *8 =! <# J5C2"$!$$                          (.5#.&#-&#+&'/,2;6$ ").('-&$+$ $ & *0,"'$"$ !%',&')$ "   4,!81#83&73)%%              ($3-'61*<7163*%!$!-)!:6*?:2;80@@6CC;?;2@<182'50&97//+$ %$! " !#                   "!                         $!-4:MPbvTlxbpxTVbujwoxqwrwswsvuxvyuxvywzy{y{y{z|{}z|{}|~{}~~~~|z|~#.,+)!"$!  #!  #$#$%%/&#,") &$""$$##$$"!"('!%'('&()&&(*!,"+!* &%&%$%&&# $( &')!,$",'#&#%" #&'' (!)!+# /*'*$!#"" (#   "!#/*,,%"&&          #!&!&"&"4.&C<2?5+6-#'  ,#?4%!                                       ,0+).(!&07/:D:AG:8:/"$02''($$"# "#+- F3SXHFG4GF3ptc`gW/2%))())*''22%$&        "         # ,($#! %"           ##!!$$#/22%)&*10/56=DI9=B(*($(!(,&!$  "8-A47/8598$"! $"        '5'/!1"'            !  '=2%B9*3*'"       !# +$2&!2#<-#M<2cSF_PAM>.B3%<)!G7/8.$/$"                        7*:$4 3 .  "$                      "#22=>(8:%67$65$,,!      "$.8/8E:1?74B<5A;$,(',%.4-381.2+,0*%(#283*0,"%(#*-($("*/)$&!      !/)/)71$$"         %%!-*'&$" ' 3+#0)!*$3/$84(.) .+#63,;901."20$86-:7-2.#$(#,)"'&   22.## ##))(                                              '//BJVlVizo~Zaha\mu~qvsxsxsvsvtwuxvyx{y{y{z|y|z|{}{}|~|~~~}{z{} %& %" ") " #$'&""##$%%%%)('+! +!&##%%##""#$%'()((''(-# 8+&8+&.$!/%#* '(%#$$"#&&'( )!'#%'$  "##"#"#&( $!!  3($/$ %) " (6# *&#"        2+#:0%+!.#,$+#,$1*4, <3&C6(E4%>+>. 3(!%.!1"'               !                             #%#& ,.'-1("$"",,# &&-.HJ5NS=>B-22 1055 89#57#+..1!-06:'DJ69<+./SR;hlQRWD77)%%,,35$,.47(&(&& +( '$   ('"      # "" #""!"!              ()$ &'&174,0,%($&)(47:*++$%!*.''+%%'"$&! !      !&2$9)?5EA&?=))&&"$!!  $$       ) 6)#&!            '%!   )"3(1)&            %+%$3(!=,%8&:+!RB6]K;dRB[I:^L=E3'VF:1:91*()&,(+%$$ AA830&64.&$*'"11)%&     &'#',&&*&-1///0                     %                         %$7:C\Qdz\pxdvzOTbs~qvrxswsvtvtwuxsvx{y|z}z}{~z}{}||~~~}}|y{~ !""#$" ! !!4+)$!)!" ##&(4+/4*-) $%'()&"$/%#1'%4*(4+'1'$-#!'%&%$&'%%%%&((1(&/&$)'," -#!/# -!+ )(," (&%&$" ##%*"'##%&'$! "$#"!! !##!!$>2-B5/+##)-"(*#%%#        :/$I=/C5&?1F9(B6&:+6&4'8-D5$VE0R?,A+B-, #"(5$2 0/$                   !!                            !"--%##$$$%&&./25"58%gmXOT?;=)23"&'15">B.14!.002 +-(+,.01NP3]^?IK586')';:(54#22#+- !#           ##%$#"$#"!               ""#')&&(& ! !!##& +-''(# "   )(#   ,*522.1(3$ 5% 8-2,.+)'                           $ (!",(    $$$ *3/*%%( +!6,#>1(I7,C2(0%SE6_J6eQ>kZIp]M]J;J;.G=2>5)<4(                   #"           %#'&% ($&                 "$!#"%%( %( #&!$#% !"&!!)$%  "!'$&,$"   "#%"%%'!6:4&*$#'!       $!!        "* *6."2+".($  &",'85,EE>54-., (%!2/(.+$  *(#)& 1-()'"   "$"++**(*               "!"   #                       -)5LJ_wVm{bv{PZfqjvototrxswuwvxsvsvvywzy|y|z}{}{~}~~~~}~~~}|zz} "&("    #7.,%&,"!$#  ! $+#!3*-5,20(+4+-,$#(* ))+!''+!/%#1'%1'$0%"1'%/%#* %&&%&(%%&%&3('?653+))(* $""##$%%'* (&#   !#""$"#&)!( '%( &%&" &'%!! '"%*(5(!1% !" &$%+&%#        %;- B4#J:*E4&C1!D2"@.:%7"6%2#?-H5"7%/3* " )?-!:(9&6#7#B,?'3)                ##                         "")+!!!!"&(/2"-0 +-CF5@D0KP;13"#$26%9?*7;'**?@..136#25:<&CF-BE-?A-42#/->=+/-76(00$)*03'#$                '("CC>               "!*,',/)  '(""$!$&("$%!"         !+'=9&KH.A<?54(1& -%"                                #A<.    ' 2+'.+(3-,.&$OJHlhg/)$5+!A6)D7,F7*B4),!C2%YB.gR@rbRn\M[H:C5)'91(NG?                       $ !          $#"!             !#%'("&(!"& % &",$"'!%("                     (&/"-#$    !-(0*60(;5.3/%&" &"%" &"%                          "                           #%<70:5/GA=E<:?4/3)"5+&3*$1(#+") (&&(&%&&(.#")%$#&  !#%%'(%"! !!&&#   ( ,$!-%"( '*"'$"  '$!!"""%3&"'$((%*'# !"#%#&*"!!  "$'/:%?+C2M=)O<+J5!I4 >+56 3!' 9%B-B/A.>(5!. 2F1I5#L9(H5$>)C-E-9!)                                     %'! ! "$&+, *,#%26"DJ426#+,03!38";@,57$57%69&9=)59"<>):<(47"8:%/0//:9'('?@4EF<68,IMD=A7%'                                   )+&',&"    #"! !"()"  !           " $.&<3>5:0;.6,,&"                                       !+&"-%+$31)=83@;7NKGQLI.%>2'@7&=0"=.<0#/$A0#eO5+?7/?718/+6.+2(%)''%$')($$!!"%$##"!!!  "&( $##" %)!+# ( ''$!  !!!!!&/%"1'%#!%% ''$#%&%%#%'!# $%17 @)K5 N:!P>'TB,K7F3?-9%8 4:(E3M;$TA+R='F2>*=*?+?*D/K5!J5L5F/M5E0#          #!"                        "$     33-        ##$$)*,. )-.3 48%47#9>(38"48%AE15:$=B,(35#-/2302 ,+53"1/!QSK9<6.0&36.+/&!"                            !"              #("+/)     #$)*$!"        !/'7+@4B49)/"-&$!                 /)3- &!                             '&"*&.&%,)>=/WRDPK?ZVO@71:B71<1)=3-C:6@73<2/90/8/..# ((%#()$##   !# %,&$""#"     #+# %%&'')!)!'%$"!  !  !!   #&+$&''"#''%$"   !$(3!A,H1M6L5A,>*>*C0E3A,>'>(:'@.O=(Q>*O;&I5F1K8F2K6I7F0F1V>Y?R9@+               $%              %'"AD?,.)    &&!      !" ! &()+*-&*-1 36#58$58$)+7;)FL6LQ8SY=\_C@@(12!****02!/0 *(1.!.*DD;670-/$$%        !!    ((                     %'!!"             %%)$7/ C8!>11%)"                  )%4, /%8-/%/&,& !                      )'"(%+&% 50"=6$3-WUINH@6,$A:1*$'&  $(#                '!%'!+((       $   )!6."=7&@8#F:$7)+  )&(%"!          #$#...            !" !!$                              $)"*#'  !  %%32+           " !$"        $$% $ ,&$#       "" #"                    '('=;AXSbpi{{TciWXgvrxuxuxwywyvyvyx{y|y|||||}|~{~||~~}}}~~~}{}yx~}|zx{}'*" !#%*!%"&#"!!  ! !') 911MFGL@BPADI;=6*)0%#5*&4)%6+'7-'6+&6,'8,(5'$:,(:-'<1-F<;=30;/,3)(2(%.#)&&%''"  !! !"!<3+?80! "!! ! "$%$'&)!0(#( %$#!$#!         (0!+%$('#$(,,%""!   '! *1!B/G3J4D-9"9#@*B.A/C/F2<(6$I8%TD2PA/R@*L8J5K8E0O<$J8!@*>%J2I/C*:$*                                  ,.(34/          $%!! "$!#%'(+)+-0!.0")*-->312($&      !"*& ,*%%%                                 -'2(%!"     !"       94(<1"6*(/#D;-LD6;3&.'!                    $" #&!%!%""0+&          #!          &!*%"+# .%5*"-# 0))  "*!9-<2 @8$B;%A7"=05)+"$5/$4-"2+*$'!%"          AD>MOJ                      "$                                   #*#)# ,,'#"        !" !   G?E'$#        !!    %"!($#+&%!  #  !&"                    /&/GEWlOck[mtJP]|pyqwvxxzyzwzwzx{y|z}{~|}|||{~{~{~z}}~}|~~~~~~~}}{yx~x~z{xy|~ !* *#%')) ,%$5+*+!!-$%-$#$ !""(*" 2-*942B8:VIN]RVTNM93.3*$1(#:0-:1,5-'2)$/&!.$ 1&"5*$7,)=43@638.*2(&2(%.#(',"1(#+!'" "$#%$!  &%!    ! "+# ,$!%#'*!( +$( &$$!!!!        !)%&'&)/8%:&2 ,'"#&(!,!1&    ,2!348$@.D1A0D3F4 H6#@1@2 L=-RE5TF7P?,P=%G5C1B.M:!H37 5 A)F1H4G5#+                 !                       !!!!!!%'-2$47)35'-. <=.@C3>A0>?-HJ6UWD(+)(*(%# 35+24+/1'+-$#$%%%%      %,$:6,=;553+-*!(&" &"      !         ./+! %$!                     "          ! 74*H@/G<+D7&OB/E8&>5#:2 92=6&;5,""%'#                              %"         $% 461))# %-'"5.)0)$+#) '"*"!70.%  *(&   !+$5+D8#F:$C9%B;'E;&A4 6)+!1(4+B8'@5$7,6+4*                                                                               $    ##)($     &'"! "!             &!!$ *)&  .++*&'  '"*%!!( %                  &#67H`OasUfqKR^xlvnvtxxzwywyx{y{z|z}|~||~|~|{~{}{~{~{~|}~}~}}}~}{x~x~w}y}~{x||"" !#"$#4-+;4263-HG?60/3,--%%)! $"  "$'$+" .&#+$ *" 5+,\TW\YYPLHG>8:-'4)&3*(6/*4+&2)$0'!0%!;0,9/+4+':1,:2.<53=30-"'*2*%;5/5,'(#!'(#%#"!  !  !!(*"( 3+(2*'""&*!&#$!#*"#       !')0;&V?)H/3)&!"&$ #     "+3 7%>/@08*7(9)7(<0@6&G;-WMC7-/"*-!*-$%( ""&$       /(<4$B>2;7.=9.74(-+ "!                %$                       +*%-*$)$H?3UI8UI7dWAdT&M>'?0A17),"                                                        $ *&                  ! !    "  !  '$!($!$ (%&$#! #'!.%#/%$(                 !,*8MJ[lSeqJUaa[jqzouw{y|x{y|{}z}y|y|z}{~}|{z}{~z}{~|}~~~}|~}}|{{{|}~|x{~~ "  !/'&835QTScigV[V44.( "#$&""!"" !%/'$)!!!%#'C:=tnnrnj[SOF:3.$B86ZSPA;60'$:0+2&"2$!3'#1'"4+&D>;SNLHC>3*$+ /# 9/*3*%.# '$#')#"! "   #'$"#"'0*&'#!"%!!    #'+%$(%  &3";(;%=(1/+&$#$        !$+/2!5%'%**/&:2%A7,\S@\Q=PB.]L5]G+T<R9J/6 /BA/31#              "!            &%   #"                 KLH30*.'C7-N?0J;'UE.S@*F1D1XF4YL;NB37+!2,$!!%"                                           ))+5'2'=7/>:05-"*! ",2"6) MB8PE4*8.$(!   "0',"(9.MC)OG-3+9.G9!H8 E5OA%RC%UB%P>"=--######                                                   !&!              &'#*,'%(! !   "             '$$968&#$   &!) 0'%"                "&0.7IM\nVfrWamML\zmy~kprvx{z}x{y|z|z|z}y|{~~}{~y|z}z}{~}~}||~~|{}}~}~}{zy|~~}#  !",'%LOM{U\^))+ " %#"$  75/A>9 &(!!""-%$@9:d^]e]Z_VU{sq_XQK?:^TQd`\c[YLC=A50?1.7*(6,(2*%90-E;:E;77-&1&"7)'8,&.#)(&%%%$+ 7.)$"!'," !"" !! ! ( 0(%#  !"#!  #,*+/+&+-*&+=+"=+!A, >(5".(#'"    %  #)#'.!$"$+"6+#2(4%Q?/T@*Q8H-B(>$B+S>'[I2]R8H<&. 6)/#%     #'"!     )*###                  "" *,":<2>B3!)+02#))!!&')+&&!!%%88+0.!//%9=5#&      )#.)53#:8&'%                    % #         !!!).*7<;B?796"!!    "!.)&-$#%    *(0=;LOXmZhxW_kGHTmcoziplnuwy|x{y{z|z|z}y||~||z}y|y|{~{~|~}}}~{||}~~|{xz~~}! !"' *($210'"#%#&))#!*&")$ #$$%#!*" GDAd]\gZZsehznp]SNSG>YNCg]We]YYSIH>6?1.?1/L@+ I3@'A&; 8 K5SA&OA&YO0OA$A1@2$3'$ #*"  # "&! # %!        %&!""! !!  "$               55.FG>>@1,.# $%$$%&!"$##!21'27. $                             #$        ! %'"#)+#.3./64GPNnvt{HNJ$'  !      $#+)%                  (&&&%##7+9-=1D6"<,5!1 :+=0<1")                     A=7+'"              &!   )"%-2.!:2'62'&#""(>1(C5'@0 ?.:(7%;*3%+ %     %B9+B7%4'=1:/<1<.7&4# YF(jU.W@@/*$ "#$##%                                                        "            =B:25.      !!%%#     !!)*!38,%)!"# &!0&)#      $!$   !               " ! !=CGHQO>C@-.,!$#"    "!)($,'$'      $&=4EKOdXhzVboGNWVTathpygilnsvwzyzy{y|y|z}{~|}{~{~z}z}{~}}~~|}~||z~}~~}}|}}}~{{yy~~~ !!##"$# #.$".$#!#"#('&$  #2*'OB?M>;>0-8,*G:3WI;I;,D7-@3-6,%0$1# D64OA>QE>JB8<2*, (((((')'"!"%%$')&## #)% !!   !"#$%""$'''&          "$"'(%'-))*&+6$6"6"=*!7$*'&)+              !" 2 D,R8!R8 D)>#F.F1K9 RC#M<L;!>,+'$"$   %*$              %% !!"$            !  &&45,:;0()&'""/- #" '''*"   "!                             #'         #$''"./),,'*+#.2)160.3.?E?LRFdi^PVK-0&  %$                              %$$$&##/%.&90 ;/0$).!%%              )% ',%                           )&# &!!# '?0%:(9'5$+)&(  2* A6+/#)&.%&#,>( M4G/4$'!   )*,$%'                                                   ,*62 ,(0+$         %0%R\KNTF  '(!#"   &%#      ""' &*$'("#"+,"$.."&$"'#)#5+$  "-#9)9) 8+$%             &%&5650/+    #!&"'#                 !3+:ECWR_sQ`pMVcJK\rhrxfiydf}fkrwuxy{|{~z}{~z~|}}}}}~}}}}||{{z~|~|||~~}}~~~}{yy|}}  $!%&   """  $#%* '$" "4%#7'#,-2%;-!?.$;,$;-'4("3&!7($C51C50?2,:-&4(!($&%&)'&&"!"!!#%$$ "*&$#""""  !!$(* '(+!," (#!!        !!#!&*')*'.<)8$D.#@+9$119'C5(C6*.!(!!             !   (A*P6 S9!I.A'D,H1 G1C/L7L68$14$-"         ($-)                                () #%+-')&&$&&(  ! %$&'                                    () !  #&#$&&"00-/2+(,#.0'=?7MPGNPGUWO\aXDKA'*#%%$#                                $0$$                 .4+%'!                         !   (,)(% 530%"   !-%4+#( & !/ ;%3!%!*/2-48! &&(59<,12'+*                               !"$        )'   )#:45/&!        $##       04,7>3-1*!!# ,) $!,('%  .'&?:,?;/   & ,!9+F5%<.90"%          ..,YYW344!!!               ('%   ("/50DGLbWcwISd<=Npfr{in}hkzcj}gnptuxy|x{z}|z~|~~}~~~}{z~{z~|~}}}}|}~~~~~}~|{w~x|~!! %% %%% !#&$" $**(- 5&5$0!?1+A3,C5,@2*F70J<4F937(#-)%%%')%"! "" !"#!!!%*&%#"!""%%%*-$)'))%!#  #""$'((('&&(*.?,F0I4 B-;%:#UB3bTBYM9WK7F7)+##( ) &          %") :#C)I.D)?%A)H/!G0 ;&:%9#<&D/!=*, !       '%)'       # #                         ! ! 45'&'###$"""!  %$ $$)) !                            ( 0&$   &% -0)''"-+($#./(#%,+OMBYWReb`JIGefbMSL490(%#                                    3( ('"   !                $#))                              ,#!C86  %+2#0""     &#% .( .(($#,!%%(*07>'08.36  !!""$)+/*00MSP!$                         "#&%"         ZSEB9)/(B>"(#(#             "'$ !#*,%46. *)$&##!#$ !$?9%<7$   #&+ 2&:0;5"3,&0)%             #0,+&&"EEE224---                      *'.63ACCX\f{O]l8>L[Uaou}gm|enwaikpospuuxy|z~|}~~~}}~~|{z~{|{}||}}}|}~~~~~{w~w~z}!"$#!  #%'* '$ (%   &.!:+5&/!;-&;-$<.%?0(L;4F7/=1(7(!,))'&'%"#! !"!    "#"$'((%##$&&* (%)* $!#%%"% "#(/1 .+*'&&). 4#@,_J1T@'M9#@.R<%xdNi\E_P:SB*E36&,'/)-%!          !/'J@4=- =*C.B-:%-(3!;&A+?(8"436"-      $ %!    "                              $$//% $!" ""-*:7+,* %#-,!11$%$                      +2($*     !    "!%%"  DB?>>9#$=;)0-<;,QMHVPQ=;9dc\[]SHJ@)(% "                                    '#            +("                                (, &      !!"#27;+14!"  ,0+QWQ@GBZ`Y             $ & nqh         "         %/).+00           ')&%'$'*(*0-+/),/)-1,(*%&'!  $% .0))%,$#     !$##              +'$($!$ 1/,&'"                      )'1>?PX`sYgvFOZFEOrylrjs|fo{fnouotourvy|~~}|}{{z~z~z~z~y}~}|}}}{}~~~}}~~zzwy{!" "!!%$"&'$$$    !"")/!<,"3%*0#1#5'5' 4' /"1$1"'&)'(&$&" !!$$!!#"$%&&%&%%'')*!(&%$!* (%'$ '$#(($'/1!.+**+-.3$8&;%D/=+9'P>&]I0VB*Q>%S?'N: Q@&TD1@1"',%0(( !            )"0'>8+F>3?.$.*2#&  )5#;&6#04">*( !      # $!$!                              #" ! $")&-+&#                       %% ?P=)5!"%         &")($7512.!RK3@9 .)70'OIFIG@[VJ:4)'$$!"$!       ,(%                                                                                     "## !37-JQDY`R         ;=5            ##!"""###$$#""   !-*'# ;;36         #!$!# !!    &('/4114/$& #$!"#& -1+&(#                  -*'86187/23-                          !)+- "!           &""/+%B?:  0(6-*"&%& ( %%$"      ! '&"                                        '!!                        $$$?>B        !!  )-,&*)%%                !             ! "! "!!$##!!#"'%-+:8;8        " 52)1,$.)#'("1.).*$      %% '&!&& &&! !&#-+&%+)" /0*  &"                340?B<./(33- ! '&$                       &#!!  "$&79?X\f{Y`mGISYS^xsxpvos~inmtpusutwtwvy}~~~|~{{{{{{{{|||}~~~~~}|}~~}}zx{,#!($!!%" #!     " "'. +(&(*(*-0#8,$-*+&#%%$! #" !$-%-!-.!*&#"&())**,- (#!'();)"UD:[L?I:,C5%<0$,"%"#!!#!  #%&()*&%&')1"7+"@5,:.#8*!8) :)2#/ /!+7&@2D7!H:"G9"NG,GA,5- 90'90'4*#0&-$/'!+#              %% %'0#/$&'' #%' "$ %!! '#% $!         --&$$ "#/3-#$!!"-/(                              /-!/.   !" ($" " QK650" &" $!      /+%EE@+*#% &$#! &7(:)3$,#      '$  %%                                         !                       \]Z261#%!   ! #!)'-+!   !"    !"&#         #.4( "          %#*'"!         !96*=8*:5'63()&/) ?6-?8/1,$    !  %#53!EA,84% &&!873    .'"%            &'#02---%1.$1-$96-'"     !                $!$    &%5/2JR[rZfuR[dIHTs|x|sxpunskppstvuxvyvyuxx{z~|~}|{{{{{{{{{~{|}}}||||||||~~~{yy)&!"  !!##% !" "$%#$! "%&)-0!+$%)+'%%!#$&/ 0 /!('+1& /#.+&"#'''*,. 2!<)"A0(6( .!3$6$A+"Q9/iUHeSEK:,G7'3(#      "$!%* !!#$&)'!!#(,<+!K@5E<36*!/"0#1"+6'>.!1"4%4)5*7+6)3).&*!1(/',#,$)",%( $                      0#3&0&*"!!!$$%'"*'&"  !                (+%$&!              !  ##          (&*(     # &$$"3-*$          !/,#+)  "(#-$+ 3$<'>& D.=&4%!     )%!..$VVK   " !         !"!""!                                                 )($=>79;4$#FA3KH7&& %(#       %&$  $')        ') 36(14$-/$           **$./&                     5->6#FA-KF3A:'E:%K?.@:,*'%!!       "'(!(("--%01(!!" 75$0.-*"      $$    $             %"0* =7+GC9/*%                 !%    ! +')<@KaZk}]mwEISg]hzuyqvmrhn}hkqstvtwtwruruvyy}{{{{|{}|{|{||{}}{z{{{||{}}yy"$!" "!!"  #! !  #%! "%&$%(1!<) 8&,++()2!<)#;& <'!3#+,,'#""#&('*2 ?* H0$S>1WD6I6(A1$D2$B-R;)aJ8bK9\G7L:-?. (##!" !!#" !#)1$B1);.&3(.!,+,4%C3$C4$0#+*)')(&,","(&'' %') $#!   +%              "6)7)3'(%&( -$$"!!*(%    !                      "!             $$         !         #                   !'"-%3,80?4;+L7V=I0F0I39)%    &#0-44&10#*%(""#              # $"#                  $$!                                       2.#$"     */("    !"&)/2 %%         &&14#25$?B3'(                   ! ,.&!"                       0$6)B9$OF2F:%G9 J<%E;(2,!! !"%& !"!,))%&#/-&!    >>0+)              &"62(61(%                           !  '+*=/8OM^r\mxT\cKGRpyospumr~hmwcfxce~jlnrpuqwpvosvzy}{z~|}}~~|}|}~||z|||~}~~{x! #$ ##"#!"$!!""  !"%+ !!! !"(-;(O;,N7&D,=(:%6#7#>)"<& 9"7"1!*$"!!%(,4A+H/ X>,WB/UA0L:*D2"K5'F.L6#ZE-\D,ZB-O;+6&"    %&+/!0"- *(&+7) 9*1$$"%(&#"$'%"#! !$$%    .(!             (,$"&* .#'!                       ##!,+*   &&%%                                                      "%    "+#7.E9L=L9^E V;K2H2F39,#    $$'& % ?8)>9,&#           "'    --+                          !       #"                $            !    26/14.     !!"#"!!#%!    !!$#') !*00/3/      (*                               ')' -!?.C7#I>)I:$SA,XF3TG0KB,3-    +(+(!                  -*#1,$$                                 HA;'%$6*1GDWlNbq\ioBDNncnygo~jpkp}hmuaeiWZo^axgj|jnmrnumstxz~{~}}}~~}}}~}}{|{}}~~}~{y $"##     "##  $'! "%%$"! !#*4 F3(P=,P7#K/B%@$>$>%=&7#3 /'%,9#B(C(F+U<(Q9&N7%J5#G0J. D(J3S@'X@'[@*I3$, !         !#&#%('# #&$! "%&&##$!!"                     &. ,! '$"                    '&%&&&     "#)+$**#**!!!!!             .+&#!!                                         # )"' +$1, $)!4,>1I9J8L5Q7J3H4B13(    '$! 92 -'$'" ,,'                                            '&#         -15Zbh       "$  &%  %&$$&'(!  %$#!"!"%&%("     "'('**6>DNUW?C;                                                 4'G;*KC-WK6dWCnaQcYITL:E?/,)                      " %!! "!                                      1)%&"  #!-&+?8IbMeyVisAJQ[U]}lu|io}hpydmo]chX[iY\padsdgweh}hmmrswx|{~~~~~}}~}}|{z|}|}}~{y"!  #$&$!    "!!#"! $%%%%%&%!$)08$B-!H2!K1G+B&B%=#5../+!"$!! *?&F*D(H,N2I,F*J0J/E)G+J1I2 H-K/ ?(&  !           !##   !!$&(,!# ! )!*"                     3#5%,        %'$%"                           !    !!%%))%& ##              &%" %$##                                 +#6-!1)'!"  ' 4(5%5%2! 2#<..%        $#                                    '&#                          (((  +/,       )*"+* '$"! !+-(-.$,/"FJC?D@   ',* "#   186.40!"!!4;*84)!                       $ *&#!                                   &$&:+7ROe{LdqI[aLNW{lulsktxbnn[dfU[kY_l[`p^et_gr^dxeimqx||}~~~~}}~~|}|z|}|~~|{&% #'#! "% "!!&(#   %+ .# )! !#"(2$")%$%$#!&-4!;'=&@(F+H.I/D*D+4 ('**$%&). # )D0#5!?'I,P2R5T7N/F'B$@$=!@%A'@&9!3(                 ! ",#( #" '4,!,$#                 (-)     #&*!('#""           $$     #"!      '(79*            -0%$%                             &#!        ( #"  $% ##) %         "                           '#$                         $%#        **!10$2/!)' $$ &'"   02(')JNBgna;=4 ;B:/4+    %+*$*(&*+!$$!'(%                 '('-.+                 #"!,,+                &6-"F@1MD6WN@_UKaXPUPIOLCMJBLID+'$      )(?;"@9B:%2-"                       !/*&$                           "!#.'0FCWoJcqQdlBISpfooymw~hswckp^dp_er_flW`iS_dPYkY^xdjmtpvwz|{z}{~}||||~~~~|{z||}~~~{%%#'," /%",#% #()0 .(,. . ) #(')$  !"#%(&"#!! $5)(' &0<(F2(H1&H1$E/!J1!K0A(@(;%2 *'(()**%  !1!T;-8">%K*V6 U7U6S3O/E%>:8 7"1*#                   "%  $-&1* ' %          #      #$        !%,!-"2'/&( ! "#      +)#%$     "      %$*+78'%%            !#&)//%   ! +&#                            #                  "                 !          $!          "$"   $                          %$/,5.:40.!" "  ,1)@H;/3* $   #&#    $('%*)"&& /02!                 #!#""!                              % A;0F@1IB1TJ?TLHXSSVSRKJFJGB/+'  ((FB,=5:2$                           !&"                       ! #""(#22D]MhzSdoHMWZV`qyoxpymukpyflvcijX^YHPOBFOBB]MQiYbk^epcg|jmorprrusyx|{}}}}~}}||{|}}}~|%%&)+!0'%3+)*%&,7!<$<&4!8&7(!+% &)" "$'#"   !$4"O;0T@5O9,V>2RCF055!*+(#%#   -,'))"                                              *% 91'?6(=2&1)$,''D@AMLI@<4'"   :7(<5!=7&                                                $!(""-'5JNg{McpS\dMIRxkswfmpyqykriqt`ecQWSDJKABRGFXIM^LWaR]fX_sae{hi}imjqqwv{}~||}}}}}}}~}}~~|((*!!,#!* (('+=)<%;F+M3"K4$C0$:( +!'%  #&#$&!!""6#G1$N6,Q8-U<1_F9_D2R8&P:)G4$D0$?+#1!'&$#'%! ""2C&Q1T6M/Q3T5H,>$<%3 )*.,/"&       !       .#7.$,!##!  "                $#                   ! "!) *!+$-&        "          $"  )& &$" $$))#68/!&($  13'#$       #"!!        >E904+                                          $     "  )$    "                &$ $!               !     "!"!                           292&*&              !"$#"!#"%%" .)7/5).'!!(*'!"    #'$$)# %'%#$ ))&#$ #"#"#  ",1)/2,!#,1.086,/.')%"#""   *(!&& !"         !"!                               $-%"("     &"96),) &$                                      #          "!!)'6DYnD^oSdlCBKkbik^eqaizgnygmwdjr^dhTY_NR_PUdUYfVZdR[gU_q^g}hnnsnulsuyz}}}{}|}}}~~~~~}|}|'* !-$#.%"+"($%2F.E-:?#G*N3%O8.B.(+")!"""$$$$$',!&$#"!# " #(6#@(D+!J0$M7(X>-X<'O3 L4"B.=)3"#  !#"  $.>%I,U5!X8$M/P3P5F-6"*# $#!      ',!,"1'/$)                                                  %%               ! $# !&$'(#"!,/&49/%(!            ! !                 )+                                             *))&    !       %!)$                 #                          "'"0)2-(!   -,'                         #"('!++"+':3!6*4+&#!!% *1,/307?=:C@595LPK.4,!(!""#!" ".1)7;/')! #$(#%&"$$"#%"     %$"                                     0+&          # (%!           )%"               ,*":9,(%+%/(               #"    "#26E^H`vMclFMUTPZd[d`T[n_fpafp_eq^cs`bubewdiwdgwdezfk~hplutzy}z~z}~}}~~~}}~~}~|}&'+! .$!,#* '&/;$=&:"99?$P9/H6-,')!$''&**(#%&# #$ %!!%(&)5$:'@)D*E-K5#S<%R7!H,C)@);'+   &5 J0!Q6!Y>(Y='P4R8#M3 ='*!   ") ,#(+"1(!2("+#'                                                     "!            15-#9!6 <&;'2$% &+(+3$1"+%""$)'($!"!!&' '/8%@*A&B(M6#T>'Q8#F+@'=&9#+!   &0 ?*J4M7!W>*W<(M2I1<'-       !"%'')"+$'.(#<9/(#                                             -' .''"      $#!!$%           !  $$ !    #$-0%9A35?2"                    '%                       '$                                                       $% !                            3!8$+ '             &&$.0.)+) "#$! '$*''$ 1,9//'  !! ',,+2-*1(BJ>!% +,)OTJJMACE&@'?'6!4 3!-%#+*#*5%1!*&"!"%')'$"$!'/# +"!"(1;%B(C)E.J4!H1@(?(<&3)    &4'=-"E1!G0G.L2$H.!B'6 &     !  !! ,#-$!""2+"'                                           !-*"62,-( "        !! "!            &# ! &% ('" 14+5;/=D86;1 !     !!(*$"#         3233              #                              (%        ))%               ##15%'+                      0$  #         +,'-.,++)(*%)+&-.)! $#%%##'$1*$ ! +..*., !7;55:2'*":<5%(!#%! !!$)+& "$ ),&482+.) !"$!            ! !! ('"$   !!                 '%&       !!!==<       ""$ #" $#                    zΘ+$              "%(%($ &"'$"&&%'&'" "!  !")%62F_SlWflKMRUNWfZbbSVr_clpsxx||~y|wzuyw{y}}~~~}||}|}~}~~!+!#4,/2.,*"!!*.4 ;$>&B* ?)5!5".&"  #),&+/ *$ $"  !#%#&0" . (!)28#A*L5+O:-R<,F/;$<'7$*"      %6(!?0(B0%F1$=&4>%>(9"-        ""#&#$$##%1($"                 """                                  !+',( %!!  $$             &#! ,($,,&#" +.%9A54/5. "! "#($).)          ""%'                        $(#     &&&//0                            # $EE'XnlE                     1)&)(&*,-++." !  #0,9PSjK_lVafEHQi_ijZ^taelqtzx~z~z~x}v{vyz}{}}~~}}|{|~~}}||~#,"$3,/,&%# !(1217":#9"4 1,'%###%$$(%$%!  " ##(+, !)2 =( >(A,!K5*M5)A)6 0)!      #8( >-#<*!:&;%33D0$B0'0"      '(%%! #)('&( %$$"                                                   !"#($$            ")#*$$!    %$     ') */#,2#5;,35&(("!                           *'(%  #*'  !              &$       "    '"!   !                         &'$       ! ;>=031! " ! $%   //--,+      !" !   !!++&!+*("!  !!!((!!$##"-*1+&#  )+(""   " "/2-/5,',$(-&"'!$&#,2*&+$+0*$'$#  "%'$#%" $"%)*,1.+/+                                      $-%$        $% ))%                           (!>7&%! +)lo                   (!$!#$$'&(     #""&%&$"#&")=DYqMcqP`e8?Jmam|hn}hmnttzw~z~z}x~v|uyw}y||~||~}|||}}|{|}~''+!!$!(:' 7#24 7!5!02/)(%&),&      !!!.1:'!1 $ "06"9#=&B,#:&.'!       *2#4$4"5"8%8$9#?,#5) "        &+!,!( $((''& !!                                                     #!%!                   #$         !!$$+,/2#,-'&!                             "      ($!  (#,(#  !             "&$    $ -(%$    # *'  $!    #                       $%"796./,  $ !%$*.,%*)      "(       #"88-76),'.+&!  !"!"!''.-!)(33!13 53!0*""# ')$  ##! *,'-1),.'"(-(7:7"$!!# 485-0-!# '+(!#%"!"!"&% $                                                   ('#                        #9/"C;.*$ OYGGK>"                          !%     ! &$%%"$.2AVVl~Paj@DP^Qau~nssxw|y}z|y}x~v{tyu{x~{||}~}{|{z~~}}||}}%#!!%)*/:%C,6!24!/)())),+"      "*%#3#<)"9' ,"     %16"2 '         "(. 3"4#?0$:(1/ #%!       # &&* 3'!* !  #'(('$   ,&!                                    (                                150     !!11$8;++-!  $#                                   &$++$        oshaaW (#"*&'#'$ !  )")"+$!            "                      "$("%*$"(.+"&$   %%.!   74'FA/;4','!    .-"/-;;%=>%DC'611- "$$&!!! !! " #)#%)$!"<><                                              !%' #&                          $1''%DM>3?-9@0)&                           #"&$ "$       ! !!+)1ENb{N^mUWbH?Nwuwuwwyw{y}zyw}v{v|w}z||}}{||}~~~}|}~"  "###&-6#6"4 2-)(*()+)##"        ""!#&&#!     '&$        "%$)1 /4">.&0%    $   $!'-".#/%($"&( (%!#91*                                  "               $!%"                    -'",& !#'% 8:9./,"#    )) 48*%)                      #           )#(#    0-#     >B6&&#4-;4 )"       ( 1(0&4- *#                     -)&        !!        ##)$ #  "     "$ "!(*/(',$   ' 80 5, &&44%GF1;8"7251*( "%'" "  #                                               &##   !                                    &]hVz6;%&!                                "$!+($&"           $""" # !"  %!&9K[xQ`vZ_g=;Eyksuwtvsutwu{w~w}v|vzu{w}zy|}}}}|}||}}~~~"! !!#"'+&%(-5!4!2 /*('%(($$($$%$"    !!                 *))'(3".$   !((5'6)"+ #!$&&"!#.%/)&0-*&"  #         %&"                              $                         # +($'&#632.,*&&"      #!                     )&      !       &0$'        #+%        & 8/#6,;2%71$-'#                            #%"(-)                          "!'*"'*!   (")!   !&$64$&# -,(## "+0*)+%#$!!!$&#$&  #%" #%$                                      !                                               !&*-*                                4.*'!        " !'#$(&%$#$ !19Eb]lT\f=@F^R\tznsqtoqptqwrwqururvqwsysyx~yy|}|{{}|}||||{|}}"  "$&&0 3")+27"7"6"5!2 .(*,)'""$#%(&#"      +-                 $#'/"/%3+/%#)/!& "" #! $'/% ;.&3'"+!&!!##""(,$80)B<9DB?:83 "  ! ##     $% ,.(                      !                            !+*&$!%"      ##""&&                                       !+#'0#@,2#    !" $%!&"  #     !-%-%( &)"                                  $%&%#"2/0<:9--*))'            &'            ##!"!"  % 2+'% 3,!?9/*)%)+%',&')$"$%+$)-&//,!   !#!+-+*,) #                                45&PO=)&                                                                         "91,6/)      $#$%%$))'*++!!! !-*0L\gP_nGNXE>Kt}otqtprqtqtqtpspsqtospsqwtztztzu{v|w}u{u{u{v|v|u{v|u{v|w}yzz}~}~ !$#&)/-)+4:%:%:$9"8$7%4#2!5#+#!!#'**&%%&"       -7& #             %&, +:,#;/"/")%&! "!"##$%%-$6)".#) (%  "&$ %0$/%4-':429432,)' '!;84$   ('",.)9<6782 '#"    "!                             !                             ;=013(!!                    0*!&!                    "'!%."7'2.%(*"  '#'#!    &!  *!)"'#!                                *)$""     " )%!64.784!                       !#&'!&&!   0)&>40,$?6'91$ *," "01/+,* '*%,40+0,!# "&"%'%"!   #!$%" (,+/31'*&!'#"&"%&"                      &&$**)     +*('                                                                                     %!.*#!      $$" *+)./0#$$%!  !) &:GXvKcxM]g;:Eteov}sxsxsysysyrxsxsxqwqwqwrxsysytzu{u{rxrxrxrxqwqwpvoupvqwtztztzt{w~w~y|}|}#&.!*(,++-/5!9%:%8#<' 6$3#//+#"#%))-/ 1"3%4%+$   +'            #+!$!7)#1"(*!     "%#"#%$&'* () *!( ! ) .%*!$.%.$.$92*40*63/,'$&70+?=6>?9)'" ! *($10,#"                        -$#              !             !               "!BB6BE95;-(*                       !)")"0*1+&!                    "   ))03"K5$B08+8/"    %!    #  "  !%               00+              "! "!"!         &&!                     0-'41* !%& !!   0.)HD?JEB>80C9+4+ "!   !" !%&!+.$=E3,/"573DFB)+%#$$$ !$!%(%',(.229:=)*+""!   ! #%#!#!5>9/3/!3:4*3,#&#./*!#-0. ! "#*+&                 )+%)*#671&)%!#%"         ""!!                                !                                                             ! " .9H`Qj@Wc;GNXT`|wxv|v}x~yw}x~w}v|v|u{w}x~w}w}x~w}v|u{tzrxqwqwntoupvrxrxtzrxsytzt{v}v}u|u} '-!'%'*02:%@)9#6"8$3".+*/ *)('%$)5"9&6'2$/!)$       "+"5/') "          ) %#"%)#        !!#)!$"&$#"#%&#&'&$%2+$4-$93(CA6MLB:4,6/&92,-)$(% "! $$% $!!                       !                !#)#+%#         &!$        "     #+("7922<-)/$                          !IC,IC#C;.(  ((!# !        !    (!0'URI.("#+5%6&:,3))"-& #  "$ # $!!$ '#!                                                                              )$D>220%''$$  #"890KMBFF??<5JB6=3'""# !05(6<,"#&'!! $$ !! ! !!"$($)/-/45.22!#!!! *L6&L5#@+6"3/--,--/ 0"(#'3#>*!;'/ *&!""        -$!,$             !        #( ( &'% "!!'$ "$&)"+$94,DD:JJ@OPF=>7*'"'!   $)$    &        !!                             "-).&%  ##  !                      !$$(-";>6./)                     -&UM+g_3^V1-) "!.1)&&('      !!($FB.mgV_\N   ) 6,:0:2!)"*".'%!!(%*' (%.+"-.!03#*) $ !"                                                                    $#.( 2+"+( !  "&#  ! %#76*II;SRHIG@G?59.!2*!" *'#2.+.,' '(-.#  /1+560  &'"!"%&"!&*)-24*/1),,%)$+1+*4.,4.6;8DNFBKC493#'# $!$'%  &(%   ./)0/*"!                     !#& '("24//4/062+2+$&!                 " )'#-,' ""            !  ##) (                                              (*1)4ARf{MdyCWb:?Lvht}y|y~x~x~yzz||}|{|}~~|{{zyx~yyx~x~yxzzyyw~x!+4"<)H2!D/<'3 -.*)+****((1$?/ ?-7%.# , 6,%%$#                   #'$      "#)!)!%&&!!##&""%*%.*!CA6MQH24.,)&       #!  *"($                           &#3.!7.!)!% $ #"                         %$#"                        !/%E8B6D,.*                                          5* =1'7( ;)8()                                           ' '5=NgOfJ[h?FRXQ`|y|y}x~w}zy||{}}|}~~}|||{||{||~~}}}  #*05"=(8#4 .))'%$%%&%(. :)!C2">-8'+%)0", ##!          !           $$      $&(!&#%'% #$!!#'"30$76)+,#"         $!'7'4'3$-!"                     0(;/"E9#C56)#                   #!"                                  # % & )0$1(%(%&&"#          *$$$  # 65!CG-PW>W\LdeY__P15(9?7! '!-&=7)C<.8-4(:/9-3((" "*'  ! ,)!                    935        !      #!                   .(4)9*>.<, 0!8-$72)*)#""(&!'&!13/ **'((% 970B?;B?7JC4WOB[TLID;.+#)%$#*)$*-(=B@*-*,-'## $ 2:76><.34.25'**  "&++1 1'$    #                           !"""!                             &** '*#"!5-"4#D-P6 O6$<') ""--%,,&%%  &#%! ('#-,("'$ ;:6>9/<1"OB5XOB@9+&  !  &'!'*%,1,+.)  "!((  #&%( .1*34-$# "%-4/185+/.'**$&% ! ')'""  !# (-("$# !%$&/,+54+52)3.")%!#''%+* &##%##)'    ""&(("                           %".*+&&!,'($""                          ($      'C3$TB2Q=/J7+=-#-"-#(                                      !       &",@L]{KYoQ[fBAMufo~x~x~y{{}}}~~~}~}{|}}~~~}  #"#&*%&%"#! !!!#(*****'##"$#  !     +- /",($                "4.-@99,$"#)!( $&)!+#!&!!#)!$     !#   +#6.3*2*,%%%'#+'/+!9/$PB1\K6eR-F8@58-7(1&                        '$                      !     &!/(+!-$)"&$$ 1+901()"2-.*" $!%!$     %!!(%+)02'2;02=4X^Pive^mZKZFLUD(%)"1*:3#/#( 3%C:.>7*.%      "1."   !          !           &/%""  !                                  %(((..%& !"1) ?.E/H/G0/  &% #" &"%!+(#$!  '"/(!4&@0$D7'2)' 30+31-''###$% %&##$!%%!$$" !!,-"./&%%'%&'79)@C3BE8+,# .2,483()&./-(((""#&)*$&$#%#!# %'#*.)!$#! #"!&%"(&!&$$##"#'&&,*'-+"(&%# %$!   !#!%)&/4.%)#                              #'2)4*/&80$)$$"                        !       2&^L>`O?cTDSF4E8(:."3)!-$ 2)'-$"                                 !(!.(      *ANfPbwJZgEMZXS]~x~yy||{}~~~~|z{}||}~~ !!"" !"#"  "        %,/(           "         ",$#1)'&%)!%"#'+# #"!$&"          $$  + 8-7*7."=8,.(,%0*:5*6/$?3%SB/^J2cM5dP9fUAJ=,' %*(()2#.!'                         .">-G6 F4>+?+9(&               !                     "/'6*1("!!*'/-4.3*0(-'510-%!&""     -(% *'"   ((45(<@2EM@QZO 8@0hudr~m\gUzo #(-3#>3#E@40+!#        '#41           $ #      *!%%!  "                (+        $'%*1-#*&>6'1&1$.#$,( )' ! '& (&!%! !# '$#+''61/;4/7+!C3&3($#.+(+*'"!()'6=>4:<*.,-00)*,! !(($;;.olXBA2=8-;4'*%+',)CA-QR;KM9-+   *+&('#'&###%+-.()' "%'#!#"#'%',* $#"! ! "!$('$)( '%$*("(&! #"!  ),')/)(-)                              %1&3'7*3(93$3-#"                                 %4"@- VG4ZJ3O?)?1".#'5*'=1/+!                            )#      "#+/7MXhH[lJVfECPtz{yz{{|}~~}{{{z{}}}~}}~       !+,"               $!    ",#) &)!# !$$!%$!            !!/"6(0$/$0%1)0'5+!:2'=5%D6$S@+R<$^I0dR<[N<6,!"$!%#                     , <)M5O3M0N4O6!D2!'          %!          !                        4-=2#8.' "!+$6221633,.''!.)50)'!%!)%     #' 1- *'20#67)8 MH-TN1KE)2,      #"21-$#  !")+-%&&   " "!!%(&!$$ #""&%$(((--'--,31!'%"&&#%&    '+%03.$$!       !                           7.&A7+B6&8-/'2*/(                                   '2!03"A,A+6$* * 8-'4).#                   "#   $!              !!#+'(?VbJ]sKWg@APmcm~z||||~~~~~}zy{}}||}~~       *(              "&#($   $  ""&'" !""! ##"   "         !!! "+!9+7(3%."/"+!.%3) E<5IB4MC0^N=m]Hj]EUF2C3%     /.)*'#  /'%1(),&$             3$K5 O5R3V6R5I+@*$ /&0'          !#               "!                  *&:4&4.5.,&! )#84 0.1.1,/*,&,'(&%# !        '$+)23!8?)\iNco];D6   ! )#6. 1* '.$3)         ! -'          #      "           $/*#($)%              $!$!%!!& ',% # *+"-1#,0%.0(**$0/'65-))"//(! .--7752/.HBAf[Yi^UXNCH;-D9,40&FIC250--* :ED:DC9B?6>;/95/96+416>;;A:AB657)+* *%<6KC#PD"OB@8!    ,-(442%)+(+,   --/!"$!!&&(-.-10"&&$()!#  )*#21'!"   !     $*"%                        *%-%3++#*"+%                                '1#8'?/ :'5".$$) )                #(&,'&&$0 3".                   #)$#6EPiObzIZk?IWQO[|{|}~}}~}||}}|{zyz{|{~~}        "            -:+&."/"0##  #$ !!""$#"""#$"! #$"       "!$""6-"-$/(/'' (<09./"1#3'C:*?8*;2*KB=KE:SK9]N=^M>XK7VG3F6$. "      !!                "=,T<&L3H*O0H*J+>(# &E:45*"              #!           $%!          !        &"3- -%5-*$-)41)%+%,',&/)*&           $!)'$%+0BL:|l|ENF   &7-5) "(!0%9,&        !         #                -&#   0'%         B:6D?=/*'*%!  *!C?=524TRWDDH:<<=;9QIGaVQ[OFM?2N>-I;*4,-.$7;6362#"041;CC2::7A>2;8 (&(/.185:B=7=8BG?EKA$&$#""$!)&5/C<NF!?67/$    "$$),-%&% )*'DDD**)!#"#%$()) 01&-/' "%,!+,"0'(!                                                   !%,!-"4(7(4$4%)                     (0!0"1#1#)(1 6#7#2!$         &        " )%"156*3+/)*$) !   904*))5*B:)C;,@7)5- B;*D<$SD-L=(PB,RA,>-1"("     $&"               #5$G1J3U:[?$I.F(8 0 %                           %% "#!$$"           %)"  %,%0(-%.&)$ '#*&$ ! & &"! ''!"!        #!"   #'9B4QUAkoVAG8!#   %-#"  *#*!&!   <<+[ZB           ! !                  #" ! !!&&$ -($>;7840'#  3(I@/<;.              )($  '$#+%)!&,%*#.(!1/):=8AC?EDAJGF@>;?;7B;8f_[ib\dZPSB3O<*F5%B6+73+"#&("9?<3<;/874??/:<6@A5?=8A>=C@>C>DKB-0&&$ 4/NG'MH%31   ! !"! ()' %'&&('!#" "#" ")!+!+ .%9080!                                                              #%&)%                        &03"2!2"5'/!/ / 034 3!-                 "'$1&*=TgL`sK[cABLm^j}{}}~}}||||~||}|yyy{}|}}|!         !!                         $*+-+"       (#   )"'  !*"'#%)!'%&%$$#)!,$")!&$               5/ 4, 0(#    "+"##&-!8,OC4VL:>6#F?*LE)PD(M?$K;!H67&6&5($    *%)%"              :(P9"Q:Y?%Y;#G)A" B'D.)       *'                   &$              $-#$ '#* 5'8*.#)!$%& !#$ #'$    #"          *+$<>4+-#-0%BE4NO=!    ! '# !&   !  83#@;'              &*"3(8+ 5*#                  '&% !.)"0*$!                        " *&/*# 231DC>=92D<2E7+N?5kc[b\QXL;L8&S>/ZH=E:2PMFFHB;=7$$"" .1-3875$$ @9"ID#KL4    !"!! !    !  )%+'*$)"(-"+!             !%           &&$                                       %#                    '9$@,;(5$6';,%4$4#2!4 /++             #!+!1EVmOf|GYcHMWTJWy|~~~|{}~~}|zyy{}|~~}          ( +$%                          $+(#      "   !*"" &+# )!&)!*" ( &%%$""&$"$!               #)!)"&!    ##$%-<,LA/A8&@7%8-;/G7!B2D2F4B0;)/!%      )!/)#             5&L7"L4C)B&H-F,L2I3-     (#51)(#               &#            $!$!#%  '-"9(:)B0H8&:,) "$                        !%,/%"                                   %-%1$1TC3bQ>g\LndV]M:D.H7)RE;C93:815837:613.+-(#% )+'275&/,(2.,62$,' %!.407>7+1+/4-14, !1+;8#   "#$ "  !    # )&73"( #                                                           %!                    '0=(D,>*7%<-#9+#3&0"3"/                %&+(*5/8Gs}}||~}~}{{{{||{}~}                                               %" (!;3/;10," +# )")!+#!*" '$"                 !"!      #&',6)71 3.6-2&4'@2!?1!C4"C3 9(-+, +&       *%!%  "'            3;"K2Q:&L8%WD0WC+P<%-#+  1'%:5/#'$                 # $!         $!# $ %! /'-#+ 9(8'9*<1'%                      "//&:1#SD2hX?`N6gVBXG3D2D5)I=3D9172+0/+++)((&'($"#"$)0,9BA5=?,64'-)#$#'+*/52-2/#&!!# +,'32.$"        "$!')'  !!"##$ "! *)1.!                                              13,                                 !!"                 (07!>#>%7$2 3%/"&%'                   $%+&6ZkP]nLRa43Dh^iz~|}}}~~~~~~||}}{{|}}                                                            #"& 2,%:1+2'%+!) '&*"*"( ( "!         %% "   !#""(,"-$$"(-!6*7+3&0$*+, 1%:/2&"       *"*" "  $%            :&L8&bP=\J7ZJ7[M;YI3RA-*,7((!%)+!&)#%                ('       ($!#     #*!8) )+")()"%"                            "30$      $-)'*'##            #$*""  $(!# !)!0' 6/%,%/&4+"'  !!"#  $0)#' '*"4.$5/'!"*#0) 71&2,!     "'.%( #            :6+1-"                  +*+223   ;1#Q@.E3!;(2!?/F5$=.!;/#:/#7/&0/(+,(*+(%% "! #'$4;9@LIAMH:B=,//),./53*-(  ! ! )($!!   ! $)%+/*  #       *&0(&"!                                                                        !!               $%&$!!$&$                 +'$&0!248 8#0 )                         #U]thuLUbHLYJDO|~|}}~}~~|}{{{{|}}+!&%"                                                           '+",$0&!0#!* %&$##'+#!$  !       " "&"#   $" $##-"3&0#."+!$-!3&2&>4:0            $"            . K?/f\IaS?aS@UL6H>'B3!+&(!  &  %+$!""              !"          !.)+%%$"      9- =-8%- %#                         !      !(&      &!2.*$              (1)4.3,,$ &',#'  ##"*!&&+"3+!)"  %4/*$$*"2*") -$.$3*!91'(!' -&+#-$;1'2*/(*$  %*?0!C2 F2!C0@./#                          ! ! )('  7B;GOM252/0+8/#C1$0#'+*"%,$+("--)-,(-+&)&!&'"-2.(.*=HAFPH150'*(+-.5<8,1)#$         %$%!!!!"&&#      .$$  !                                                                 "%$                 &2(0',##"-("9603/*)#                 #!'&$ '**)+                              ':BXsEQaOT_=7Arx|}~~}~|}}~|{|||}}'!& % #"!#                                                     $'&(/%","&&%$#'&$ ##       !'"!#!      ! '!  %* * -!.##$* .$/$-"&           !#             *D=-VM9_R>\R=SL7A6"9))'6)A:,) !)>,!<+.!*2$)0%=6+%                  %80 G>*?3"5'6)$&"#     #@3!I6#D.@.2%*$%"                 %";60  %%      $!)&"    '"$            )!1&;0JA-@8 4*. >.A4>3*  "" #%'"$ !&0)"") /&/&)!/&6-".&1* '' (!,#-%5.#60%(# #.#7(C1"J5#J2I0D-9)                  (+$      +2*""!$! 1;3IOK&(#44-&&! ,%    !*'"+'"'$# -.(250(.*-61)/+#%"(,)181,2*!!         "$'              !                                  -*%#(,#)!'$#()!                                  #%#         '/'+#( "&& $!                &,                                     '&9gxS`sOV`@>Gi]f}~~~}{}~||}$% "$! !&'#!!#%$$"                                                   "$'(!)!&%( ( %$$&" !#! !#       60/+&$# !#!"       !&      %",!* )&"            ##          2)"7,#ND:F=-E9%i[H]O*/9.%0'-%                       ".&=1"L?*J;#?-9&<++ #     1(A6%?1=*9%2#-'$! $$$##                  ;:5DFA   )*%&&"    %"# !"/)95!$               )1#8)>4>46)/5$:)5(, #    $ $0)!61'+")!+"2* 2* ' !$5,"/)(! $ *'   %-$0'6, 1'4'@/G5!8'/ )                   ./,./*((&%  %,#    ),)"&"DLKCML)1,^e^#$       &#$"#!*(#20+:<7296,52#'%                #%%).2 #                                           $-$)4&=.A4 B5!?4<.@0 0$                         "+"$         "%"!#!  *"              #                                  "[hbpHT\FNRHHO~~}||}||}"##'(!%' (# )$!*$#*&$)#!'%$!                                            "!#*!,#%!!##$$!!)!"!$( %"       *"!3-+.'$           !!!     %-#.#$ !         ! "         (NC8WK;VH7]N9UC,kXAXC,K2E,9$-*/1!+)-C4'SF5dT=\G/L3S=(8$)&*0$*!                  $#60"C;,TL6\S7P?&D/I6N=!C6$%       "%/'@7(<02#3#0$-&*&$  ! #!.+"QNC          &%    !  <<7CC? )*$+,&    "$!#'$$ ,)>?%*(        "&6&D6&G@+A9 @3.!, A08(0#'!!        (1&2(1&1'0&+"2( $ +")!'%         !("0* -'0*3.-'6+2%#                12.DG@:<433*'(     #$'#&(&%''     !&3:D*4AM[ioDXU3:3+/*&)$      DC>581""(&"65/BB>AFE3:8"!'&#                 #!  "# %%"!                                 !!      #/&4*.!6'8+4*;0A2"D6'                              '%              !!           ! "!                                 &7C\_nHUbQ^b5:A}q{~}}|~~|~  "( )" '# '$!(%!+'&-*)+%$&!!!                                            """$'#!!""!!%%")!)!'$!     $' &(           $"       ##'+!$               !%"#        , A4&G7'UC1VD-YD-[C+_G.X@&U;"R8!Q:&7"8%C0"4!5"6$:';'?, Q?+\I2ZC.W<'?(<*,#/#7-"$            0(K>,B4"A7&JB.WM5\S7bU;TC)TA%SB'F:"-&     +".##!!*#3.&$ !1.%TPG        33.()$# 89.SWGGG:%%#"  )$## #!  $      "%$ #4&H>0OI7G='<./ - 5&2%.", ,""    -&#   &0#5+$8/(1' +1#4(,$ %+!'"    "    $ ' 1'7,5-.'*$          )' 65/=?;03,-0(&'! "$$'!',$&+"!(!&!  ).(+/)!$'%-/,#%!"!)+'(('()$        CH\iv`pP_hZkiPYM%("   =@9FNG)-'-/*KNL+.+"!                      !!!!! #!       "!(!*!      !" "#         )')        !+"+      &"&*'#''                         +#+!+!+!&        !!!!     &) !            &%"                               %,4MZhIXjK\d5@Ia\e~~}} #%&!&#"%  *$!)&#$#(($++)-,*,'&$                                          !!"$" !""! $# $&&#"     %* %            +91,*"&$  #     "                $$#"     -M;/VB1H2 P<+[J7UD/[F0jS;hS9gQ8[F.M5#< I1!XD/>(@*H2!L8)H4&F1#Q<)YC/O7&P5!N8#TC1N@06)#%+!%    !$81"LA.]M5P>)A5"LD1OD0RH3\R(hQ:P6 M4V?*N9'O:'\G2aL7P6!O2ZB+S@+O>->-($;0!5+ $$   !;7(KG3PI4NC.9*9-KC2RL:LE2ME1C7"E9$D6 =/90!>:*2-.(%)&"#&!!#"   XO0a0* "!"! '(&56312.+-)+*%$##!33.8:3OTM>C=894:<4-.''("-.& &$*%E5#^I-J5B2C7$6/! !         )%%"   #$%-"6*.#(,"#"( #*:.>23&         0)$! -$.&" !#"#'&                         $%!&(#*-&(,%).&+2&27)26')/!*/$#&  "#  $ # !$!)/+ #      9?;KVX-5:#),  $$  #" --+#$ 232##!## $"           653           "!#      #"%+)/%!%" ,+&40.-(%      "8)$A2+"   &$"537"!$ "!#$!"(*&)+'                                              ),+-.1! !"!! ! $,%4+/#;.5-<6'2(!      !!&#     '&                                      !&/=QKavG[hFU_9;F~nx~~}~~~" !#%!$!$"!                                          !%'''(3+">8+2+"$% " !#"      " &#             !     $%$!                 !    .$:)H2"bM9hXAbQ8cM7bM9rcNv]wdIbJ2U=&T=%Y?(M4Q:#nYBt]E^F-V?(M7!M7 `J4`J2Q5K,P4T:%F/1-*=.D4')+, &" %') (!  !!!-%;3$A;)B>,=8'1)1'E>2NH:C=,<6%92":3$6-6,@?/HI910!0,>9.KH<0-"'$%"%""%!% $!##++#   KJ/\X.I@!("  $# $% #% )+(3637:413-"$"!%$))#13,/1,=@;6:3-.(:;4))!45-(*#9<6EJBHF8TD)w_8bJ$B+6$/'                  !"%+!&"   #.#6'-    ,&#""&              !     !!)*(*,)(.((0)+1*+.'@B;=A:.2,570@B>SXUFJG!%""!#"! -1,$',+!%#*-+(+*  4<:AJI*26>FL %&!$# %(#$&#*'"            +'&    KPI       !    !       778>=A! " 4000)&51+       &=0-7(%  !!225-.2 ! &(%                                              !(+)./0--,-+).+(%!!#0(6*1$C4$D<'1*.$       %"     !"#"!           !&#                      "-)8JKdxE]jK[d<>IiZf{}}~}!  !#   !! &%                             "(+"4+&6,'-#-"4+")  !!!!                   !!       !#   !                   '8( C1&M;-`P>aQ<`K7hR=zfPs_EeM3S6N2X?'_G/S;!N6M6cK2`G.R;$[C+ZB'_G.F,C$ J)P3^D/V=);&.+;(H2D1<&;%;+4+,$1)2+-#-#-#!#)"# !"*$2-4+@4#?6$>8'82#/(+!3+!5-"-$/'5/"/)+$31!LSCGL>;;/FC8NI>PMA?=0&#  ""(&   49+56'   $$ #$#! !".2.6<68>67:203+#%  &'"13.')$371/5.',$-/'EG>TUKcd[36/MSNdjfz|qSJ0_M*VD$;*)                             +2#+%!          &% .0*%#%!         "$" %()-/   !"),(1514:35?6:H?6?6/4+HMFKPMLORKKOSVYT\_FNM.42.42152%*%" &+%!' " $ "%##(%"EJD+-) ! !$!'-*$($!$(&(.+(-+ ($!$!)# !"  $$            $""     % $          ( /'&+#"  (*%042<>;&'%$" %##% &"!                                         %#./(7:3>>:.+&.+#$! ,$.$*@2#LA-6+1%#        '!              &                 !""!!       &/&1@BViKdsJ\fFKULAPw{z|}~       "#" "#! $(%                        "'         ) :0(<2'1&*$                   . 3",%        %!   !                     '@/)F5-L9,\I:cN'H-J.Z&X>#ZA$Y@"[B$\B&V;"Z?$aF)[@%B%D#J(N/Q4J/B*7$2 A+K3P:K5B*C/>0+ 5*4)0%3&/#% +"6-",$%$0(;5#>:&5-9.D=*@:*4. 0*("!"-&& 20%U[L=@2<9,JB7;2(;4'53&       #$/3..31%(&051AKCIQI6:402-$'""""$$"-.,.1.#%"14/-2,14.34-)) 32(AC>;EJ;FM'*. ! .-*1/+)'$)%!# %%!()$%'"+.(01,23,?F:FOEBI?=C8FNDTZVWX[QRU_ddafiT[ZAKE?HABH@360$'"# "#!%',()/)"$   ! "$&#%'%!  (&"-*&'$%!20)52+&#($&#"%*!.')$".*'  &&!))#        /1*         )$ # !        "            '(#%&",/,())%&&!  #!+';2 A4";0$70(0/)''% #"/),                        -(,           $'')#              56.+*%&$ 22,=?5%$",&5-?6'?1%F:+H@-6+'        $#               !!                #%,,$#!%   ++1.2@4DZF_rF\hMVb@:Lxjx{y{{~~          !"%!                 $                      *"81'3+!(    $              $,"0!/,            "! '#                     !      !9+%:) D/#G1$9#2 1 A&M0K0ZA'Z?'V:$Y@)\D*_F*dK.eL.^E'cI+ZA#N4F(H)O2S9 N4P7S;"H4K9S> Q9U?Q> @,?-,(7-<1A5"C6$1($ )!1)1*:4&81".'3-3,1)=6(;5)1+ 0)'"   ($.+ 2-!2, 0'3* /('$  "   +("    ##-0+-1/#&&-11NWST_YNUMGLHLOILLA76)21%)'   /.)&$     (#    64/<=8/-('!,#((#   !   #!)!' $     "'"/*''"*+(>C?DJG9=;00,&#!%"!!      '(&*./$*-"$&  %# 54/A?9EA<#&!!"++&12.*+&$%#")(#56/9>51?D7KODSTNRTPORKQRIHLA?G6N[P  "!#!&)$  !# "  '$ #!1+$#.) 70$71(50(31'52)1) jaM;/- &                     "##"                    %!  !# %('-2/#%  "#,*=7&C;(H>(R@*RB0D=/DE#]L._M.YH(SB'I:#<-/#-!5,91E9'>2 ,"$&$0)6.B:'<5",$/)2-3+ 2) *"%"    ")%/*"2/&.+ (#)$#    ,)" @<;40. !%"! &%%())/55',+(,+367UYXZc`ENK6<7+.*+,(&'"&'#!"!8=6>C=:>9Z`[;?9*+$780,,%35,KOEWYSTUQCD;79-)+        ,+%#  "!    $60+GE>C@5;2%- - .!,         %&""%  &&%+++,*)($!&"+(%+)%.+%42//-)$!!%"++'$#   <:2CB8CBC9$0#!            &"'$!                               {zx=98% !"!#;7-QL=[UCQL:JG7GC3E?/<6*+$                                   +',)&+&),O<%VB,T>)V?+jWChVAbM6ZC)O7W?)cM6]F/D(K*^A+lV=pZBs]FnYAV@)@,VE+gV;cQ4YG)\K1[M3L?&6($/&-!?1"2%3(7/%"(.&8/>5 =4!2*1*0).&&$!  % ,(!.,#*($"%"%"     2-,623! !!$$!,,-68>@=653--&9<1/2'!!        #!%$:1+C=42."<8,XQD]VGOG4L@*B2;*;*0   "   !$'(,. '3*'(    ",,(CGEJNL('$)%"1-*$% !"#(% '%!.,+00/&%"      <7+KH:TTMWVU*%"$*&'"  #"&%('".0)13-26.28-27+69-79.9<1:=144'23&;>3@B701'<>3LOE89/#"&) &( %& 03-'+%%*"  "$  %&#$$" " "!#    %"!%+"7,A7%?4%;3#E;*C5!2%"     !)&=86(#                !!$%"$$"     +)*      32'PJ;KC4SL<\O@iZGg[AaT>YM\WpCUfJS`95H|lx||}|}}~~~                                  #+"($                          - :**!!"*'    .)#        %!                  --'672     &;,O?+WC.[E0R<'jWEp^HhR:`H.Y?%^C,eJ4Q3F$W7"kN7iKrX;eH-Z=%U;#B+Q<&bL3[C)U= V?%WB,G44% !%1$J:,>.;,A3&:-#8+!1$2(7/3(.#+!.&7.%*!  $(%(&)'$ !#       &&!%%>=6<;8545<GJM_baZ_]NUT131!"$ !"#$!+-)MRNpxuXa\IQL,0*/0*##242<=>**'&&02(&'      !&)"& D;5cYKYP;ZP:i]Ei]G[N7Q@&TC*J:#B15&   "   $.$- ./!') ! ' 51-GHCFJD@D?'%!0-*0.*"$,($-+&+)&200)(&!! "!$!$        #!D=.ZSCNJ@@=852,,*85+#  )($""&("23-./*+,&+,&3614925<37:346.47.-0)/0)./',-&+,&%& )*$*+$%%#% "$"!"#   ')%"#    !# "$!! $#$2%5'0$5%0 $ '#  "!+)$10(2/#           "!" !!       %# $$#$  ..#A;-G?/OH5RG6dWEg[D[Q:SG6RG:GC7OO=4-'                 """!  '*&  "  %& %#        ".+'"!# ' 2)7-!3*/'?9*E=,F=(<5#/'0' )!       !!         !          !! % #2&DOhJatDR\9:GdZf{~~~}}}~~~}~~                  "                            $"                          -<+-$"!          "       ""($)%                  65054.       9,!J<)Q>+ZB/\D0r^Lr_JjU"U4S1M.9- 9!G,O5J0A(:!5/ (&*!6*C4$F7*\OG]RKQE=:/'4,"*",$(  %$  $!&#'$          !!-.(DE?ONMJHKKIJFDE&&'./1-.0-.2?AE]``]a`NRR)*('(+"#%  !#$" MOPnuvMXUFPL8=8('"###%! 23222-%%'(&'#"     '!)!) +"%,#4*8+YJ6fW=m\AfV;^M3WD(TA'UE-M<'>-- !$     &3) (2&."&#$%("1,&/+&0/*34.572/.);;7783'#*$#0-(75010+22.0/," $*& -+&+($%!     C;,`VEQI;GA695*:5)95+""')"/1,471570:<69<7160/3,,/(,.()+%&(##% !"'(#)*&'($251#$! $ %&!'(##% &'"           !! 463## !* .#1#6#-!      +* 52#               &%#            !!$$  ".0*'(# +-"'&"!+)3,I=)WK3TK4KA/2,! 02$#!           $&% #%           !*&$#& # !,/ .6!*     ,%!<51      #*)% $"-&2+3+80%.&.&B9,:/!1(+"-$0')!!                                             3-0$'*#;6JiPiBOZBHRFBN}}~~~~~}~~|}}}           #'!           "            "!                                           6%>-;(1"           !1'                           !       - A3%UE3bN;[F0tdNuaKnX?_D(]C&^B*J*I'P.Z=(^B+^A*]?'U6J(H'B)>)E0YC,[D,M6J5!H1J3H7"4)&E8)SG9tg_j^U[QEE;.& $% ! $&#'$ #     +,&12,:<:\`cX[^GGH-.0CEH.04126ABGRUZcijFLG " (,.')-%%&$$"&%#KKKMQQ@HGQZW372! ++&**%##./*22,'%20(--%,+"$!   !0,$% ,%$&* 8*SA1`N;WE/fT;t`E`I,]F([G*S@$WH+N=#C1!3$0$,#      &+ +5) 1'*!'%!*#60%:6,30''"$+("43,2.(41,1-*&!& #  52,-("-)#52-/,'+(#'#*$/( ($&"#          *#F=/;4#IB280%2*!%! !#$%& %&!**$12+01+-/(%(! !"%&!./,$&"793:<5./))+%$% "# !)*% !$% ##75120-   "&(%(*'%'$!"'$ #!!! ! ! **(  ' *!)+#  #                                  @EA482$% !$$33-+,'""/.!#",%D:%@8#ID3            $%"$'           ! !#(%!3-*)!)'!DC<$!'-++1*    #'!           #-(#%)!,$92(3+!',#-#'+#2)!1(.&%!          !"        &' !))%,##                   !"""0+BaxBSc@LW46Bq{~~||~~}~|}~~~}|~                    """                                          #                       %5#6#8"9$+"$                                              #3&J<,aO;`L5n\Ds`HlU;_E(fM1[>(B AG#U6"aE0^D/aF.Z=!R3Y<$YA)ZC,[F.iV=eP9[E1XB0T@-YD-L:&) (?3$[P?f\Qf\R]SE<1$    $"!$% "#%!'$+(!  !    "!#$+,&@C@GNNMTVJOR;@D>BG),0/04=>CVZ`X^_JQJ7;6$%$(-.+.1../''&#%" -/*AFBEKI:@;&& %#(&!)(!-*#40('#0,%*'   $)'&"!&  8)I6!R:"eO4dP5iT9mX;mS2bF#dL+T>!E2Q?$H6"2"5(B9*3-!&  $, . 6+6.$('$ )!0)#=6-B<-B=051)-)!3.(3/)41*-(!*$& #%# *%.)#(#0,%62*40'5.&2)",$'"&"!          D>5F@/B9(>4(-& #  "" !!#*)%//,@A=56/"#<=7$% !%%.,%21*,,%%& $% !%%!$% "!+'$30,  !# !!#% &($)+(/1//442<>2:=$(*"#$!!!""!  !""   )      *(%664&$#                 !!                      -2&;C6 #!#"''""!.,!51&)%              #  $#$#$#      !!  ,'#$%#56+3/'& )&, &   !      % !!-%7/%,#&$+"+")"83(=6*3+%              ")A6.*!      %+9+#>/%:,"0#))* %!                    )#7nXq>MZ<=GgYc~~}|}}{}}}}~}~~~                                       !                 "                              '+-../,%                                             %"     '?0%Q>/[E0jS;dL3fK2`D)[='L,?G#O,^>*eG4eJ5`E.X<$T5Y=%eL5bI3dM5lU;eM7cL7`K7VA.N9#:)# %I;.bWIhaVe^T^UG8,! !##$%#!$/+%+(#"!""&#+( &""       #"+*$54/576=BEBHKV]a<>C*+/358FIM[`dAFE<@;;@;),*,002462469==BGD!"*+&150@GA,/)   #'$+(!'$'%64)52'11&($&# #/(E>3%$' %&!  + A1"\G0hN3ZB'_I-mXBC4:=,14%)*!"!!!##!!! ##  --) &$! "!%!%  )'32     32/420           !!      $&$14/          !"5:+3<+ !KaWMcU               $ %   !"&''         *&52)#" !   $)#            # ( 7/$<4).%&"2)2(2+!?;0@;1B;/4,"&            ""  "! %*A0&-!!     "'6("(7#+!&=/&SF:cVKkaVe]Q[SC5*  !%&#&+$)"&%$"".*#%          &&!(($+(%0.*&%)($789CGICHK?BFHKOAEI>BDEJJ-/-%&!6:4!! +,*/337;;055HNLQXT-/++,'')$@054(*'#  & %0*% $%'!%  >2-M?9dULjVEoX?jR7lU5u^=t^;aI"`F^I$UC$G3L: >+)**(&  $+2$7(2%4+";9->69711/*/-(55043.50+&!+&"+*%551/-*0/+752,+''&")&"10,;;9BDB563++(664687-/.---++,.0/2434877;:686+*'*(&  #    ('&536#""!!''%.--++)"#&%!"#')%$%!!"!"'($#$ $%!%&!&&!%& ##('",*$-,'..(#$ !"#       "#%&)#$&"$$!#! " "+-+021354.00&)+$&&$&$  "!"*-*!"%&!!   %!"))!%    *'0/# $!*%   5.#-&!*'!&%     "%-+5 "%  -1+       &*)-5(I>5H;5E80>3,.%!+#!1-*+'$                       ((&7-3K}IXhJOYA8Gpz}~}|{~|~~~}|{{~}}|{}}~                    ''           *%""                                           # !)-"        -$'    +'DC3                 $ $"          #     !,=)A(Q6%[@+\B-@&1 8E$J*N/Y<&Z>&W8F$ C# N.Y=!hN/cI+]@$\>!P5Q7I2+" 2$F8-OA4[M@\M>TG8G;.%  #%' )"(")$# "!        ! #"452CEC673??:..)//,111;???DD/35DGMPSZX\_>BA&'##$)*$+,'-.,7><6=;-20CIECIE384),'13.8>8370"" ! +,#79,>=.HE3=<)76($!# !# "  (O?8XE9@A(U:(Q6$.18G%R/Y9 ^?%T4M*N& Q,`< aB$aD"`D"Y;N49!<&:'#  "4&B5%G:,RF4R@17'   $$#" "   !# !"     ! $##" #"%# +*(33222/FEAONK331...9;9364355<174,/,-/+6;6;@:,-%'' %$"!%",+&35-))*)53'41'($   "",) (&/'J:/[G5ZG1[G2cO8eP6jT3zb=rX1qW3kT3]E*N3K1I4$1 &&%!  #$ $*!:6/@AC:=C;DIDFIGNNQMQRJOJHKFSVQMOJBB'7%1''!                )"0*.'%5/%0+"7/*A75F<91( 5,%3+&*"' #   +&# ($  & #*!,6$7 8!1!&!             "-%<2"F:)3'(=3*E9,F:*A9)@9.6/)                       ",,8JRikyISdCGSG>J~{|{}}{{~}}}|}}~~}}}}{yyxx  !                                    %+"       ,+'%                 "                                                        $!#!    #(.4"23B*0* /6I%[3a>#^;!V2Q,T)_8d? gF'bD#`C#\B(A,& $     8+!F:,NB6RJ>UH=4%  !'(&#!             &&)) '%%"$!+'#-*'/.,4301/+=:6887**)341*,*/33PVW_fhTZ]12212-$" )*&PWTXcdGRR4<<49:5:;065/42598052063473((!$#"!" %!00+--&!# &#%"$  ! 12)-.%'$)$#;3*A4'Q?-hWC[K5[I/jW;p[=pY:gO1r[>t]>gO3N2J-?&+!    %#  #'#-+&,($&!43+33,,*%40-EADRTYV\\FLIGHG86352-)&!1(7+'+(#,,&02,35/12-..*-,(+'$#%!$ !!! #  &"       ,-.78:!!!$(.&05-7=55:5/50,3,/5.-1+#$""#$)*"$$"" ""570?A>&'##!,(0,!)&,*$       !!#%""%""%!#$! " ###&& ")(""!  $ $!$-($           '!(" *($  #&%! xmf^O4()$) :)?2(( 0%      #($"&%"                   HE9ZWG&#-)&#                      #!(/-       $*5 >'?'<%@'6""             $!$ %""! % 72+50*0+%MGBF=63*!/'"2*(-%"*$!+&#  % (!#A8;& $% 1$K;/I5#A':#-" !             !*"8.=/ *(3)@7'E<+E;+B7-<1,-# !%!                         !%#334Nu~GSgLO[>2@ov~|{z}z~z~z~{~}|}}~~~~||~|zzyx                                                !##          #!!                                                $1")                         $ "   "#*.'))),4@'? C#@!C#Q/U1P(R.S1W8[@%E+6!*(*/*   2%BA,+)++&)(%('#*-(;E?P_[HUR276145,01.328?<=BB:>=26202.--('%&%&%!'%<=6+*"%!"$"$!!!$"" !$ 41)*( &"$"46+-.#*&($71';/"F4&UC3RB-]M3iY>o]Cr`EmWydQgR;dN5N4I.60 !           #%+%"-(#0*$950TSSVXYKMNPPT>:<4/--*$/*#,%$!&$)("(&!)'"%# !       :9A;<@ "#  !"03.!%&"!# "#$"#!#&.$&,"17,,1)&,%&*##&!# " !"#$%' &$*%H@00,         "%'$&(&#&"!.*"1-"+*"    #$!       )#DD,56$CA1)##  )".%1(H<*C36'1"7$?(I49*(%$         $ '#$!'$   )'"*)#     85'!                       !!     ##!()&   + ;%:!<";"?(2"               +'#(# &( !$)$,'!,(!<8.C;07/$)"*$ -%"("'"   & C=>  !$)!*!4)&, 0!B2!I6"5$0%(              $2(;-!3%0$3'>4&D;-D;-I=3D6.4("'"  #          #!         +"8o|`rEL\@7FhZa|}|{z~z~{~{~}}}~~~~|~~~}{zzy                                        &+!  !!            &!    ""                          #                   #1"$                                     %!" &,3884 5 @"M/G%CH# G%C%?%<#' $036$% !)6'H;2MF;80&  !$%&&#           !!%#&#($:73+(#" &&!CD=>=5+)$VVSKMJ''%**(**+CIIAHF.0-..+9:6,,'&&"795FQKXiaKXPFKE;?<.105:8BIG9?=59613101-./(,-%;<6LMH%%,,$0/(,)"$!#"!'#10*78210(41(30'*'# $!>?479.+) )%+%.%+B/$aN<`Q;]M5`N4m[BzhTvcSbN;YB-J.<#/(             #-&!.)#50*>9530.=:;LJNJFJ1-*/,'4/*2-(($&"&# # &$ $#&"'#$!" "&## ! !&$ **%$"# '$!&#"#!      ,*.XX]  "!!042.2/,-).2,5<5+/)/0+$&!%'"!! #!' "&*0&(.&$)"(-%#&   ""./)"#  (%>8'^VBB<0    %'$ "$!'*($'$ A;294'1.$&%      #+$!"               MK-G@#:-H: 80    )!)!"#."1#5'8'>)I3D3!3''"    & &    &!(#'$%" #      79.#$       #!       #'!AD>11,                   &()         )?)A'8 5 6$                     '#    ,#*"!% '#'"+(!*(40$5.##'!'"!(#     "&F?4B8//".#4&%   ".$#   !        .&<1$?1%<.#7)>0%D8.D;2J@8F918*!0# %"(%         "!('#         (N[ymDRbBCMD>E}}}||{|}}}}|~~}~}}~~~}|{{z                                   "  "*&"          !       $")+     "!                                      !                                                       #"!%"")08>!E)U;'T9!Q4K'M$Q+K+F(=#>%9"-29$*!#-:,&6,%&  #% !!   $!%"        "$% "630-)'!/.*KMG54,3/+edc665.-+*)'##"ACD>AA++(0/+;97=;7*)%ADAbkhXgbIUNIMG@E?473AHFFPM2:76:8453-,)&&$$('!%$! )&/-%1.%.+$''"#$$$! "'%+(!-,$42)/+"+()%85*-*!'#)&./$,+"%"$&$/ Q?0bR?\J3`L2hT;o[Dm[HgUC`I8G).              !!(#.)%)$ (# 1,*:44:62*&"($ )%!-*%52,52.0.*,+&//*,,'&%!)'$,(&,)&-+(+*',+(+*'('$$!## ! ! '&# """!'&$''%!          ))$*)$-.+"%$$&$#$ 04.2816:6230+-'171+1,%)$15.6<218/-2,#'!!$"$   " &'"&'"  !., ?;(FA02/% #%""$!! " "! " "!!$%"%% EB:IF;0.$             %"$"&" #,#5(>0C56+)$("  !$$*5#:)0"&%"   &!,'*#("'"$ ($$!"  .*'.+(  ()!%&!      #"   ,-(    )+$&'     ),"           $&%        ##  /$=*@'6 * #                .*'  $+$$'!$  -*$;<5//%-) $",'##% $  =7*>5(+ * * $    $     (!1'=/#G9.<.#7&@0(C70H>7NA9B5+>.#."                '(0Hh|HYhOW_53@~px}}{~z~z~|||||||}}~~}~}~}|{                     !      65-41* ".$$  %!              !                                                                                                     ) -$!,7>!R9(`G3[A*X;"Q0P,V4P2M1D.=&B(?&>'=')#  &$   $&( !           $'"!%!/,)'$!'"*&#;:8HIG! %"BB?10/*'&((&)(&110-,,(&#&#,($)# #..)461KQNOZTITLDKDAF@%_L0bN4kX?jYB_O:\F3:)   (!$(     '(#  $!#!&   '",(%.,*43001,43/531764986675442220120++)('%%"!$! $"!! ! %$" %$"%%#+-*%&###!##!!      $ **#+,%ADC;@B38700/#$ 12,16/,1) !!""$! ;8-KJ<@A3/.&    !!"$!$&#!$% !!.0*%$.+"<9/<;2%$           !# "#)"-$;/!.#) -%*!(  $."/$'"   &!*&*&'#*%!!# &#$!&%!    ""++( #!    &&&      ()$./)/0+))#791**%      !                    &/8!;#,                       !# #%! *&+(!894:=723,'#!-'$,'!% " *%!"    !!"%    !"- 7);-"1"8(@2*C6.N?7OA7M<29)"$               % 4TiSgyMW`67F`Tbz}|~{~{z~{}||||{}~~~~~~}~~~}            !%                 !#%$     $     &     $             "         #                                                                                  &! !%1>"L1!X>+V;&W<%^D*V< Z<U8O6K5F.D+D-D/C-7#+!               +%",&"#($ *&"4/,*%!/+(RRONMK$ 0.*-)'%" 231..,(%"$ "'#&""1/+682:=8;=8KRJMTLBG@HJEIJI;>?AEF999-,)%$!!##&&&&%$)&,(!*'.+"-+$**"('!$!'$.+",*")&-*!+&51$IF5IC1;6&0,#+(#30)0,%(#("* *:'VB(hV>eU>_P7SD,C,/ ! "'0*%1/+,# .'$("!" $<;2,' '*"-'!,&!$"&$*$ #""*&#$;63  $'# %!)%"0-*7313/.74131...,0/-+)'*('&#"$# "  !"!"!*+(352)*($#!"! "!!!#"      +*$01+/3427:.36!"    "#)+& !)(#@=4QQFKK@0.)       #%")+( # $($#% !')& "" !!  %#'$%#             &# #"!$ $" $ % (!&!-$*   "$$) ' &!(#+&'"% $$ #""      "##""""$ &!"   #$!!"  %! # '# )%!$ %"994891<=7"!$"660(("(&!#                 ##             '4#- (                     ! )&!(&!*'!)'!/0+9=7470# & ("#!!!$%$     $%   #)"$,.!*-6(B1)G5,M<1K;18' ,#               *7Neh}HP^=@MC:&!+'"2/,1-**'$--*(&$)%""*&")&!!&"875673663/.+9<4EKACG=KMEFHD>B@:=;/.*)'"$ ! !!"!$#$#%"'#(%75)/.%,+#)' $!*'52).+"-)+&$/(>9+?8'=6$:5)52*40'/+"*%& (-!1"<*O<-WD6UF4J;'7&%$*!0,'30+-*%''!% IH>#$%,%"83--)$"&%'!*%"'"&!'".*(/+*!720 "$($!*&"2.*1-*51/1-*(#"(#"% %!!!"%%$-..00/%$"#" &$"$ #$"%% #    #"  &#+'#,+)EFK9;@LRV?DF$$"         "#!=@;"#""53,?;3:6+@<-HD7.+&       ')&')&$&#"$! " "%*&"$!! ! !"" !"!"##!"#&'"!"      # &#        !## -.-,+,&$#"!$!!#-%(!  ! " "##!94/'#")"#"##("'## !     !(%#%#12,.,)'#    ,/+574"# %&# (*' "255/11 .*) !'"/)$$-)$# ,)#?<2('# $! &"$!         !"            $%#   #/$&                 +('&# !%"*($*)$&$ ($!    #)"%,#   ,$&")&#%),7'A0 C2 E5&9(!2"0% &!  %      *'"!        $(:NbzHXlELX74>{mt{~z}z~x|x|y}|||||{|}}|}~||~~}}                             !((%##"     #&                                              ( 2'?0'H:1."                        "                                             ,9C'N2#Q7)bK?udXjZFZ=!G% H,N5"F/B-?+J6%B,3&#)('"$!     !           ! " %51.+'$*%!-'#.'#-%!%GC/C:++#") ,$-)#,## $ ##$%%'(!&!(# 3/,51/)%%+'%! !  #%(!# " $(#!,)(0/0213(%&!!&" $ #$ $#$!   !!!! '&#<;=CCD?AA#$"  &(#!# -*#>7,=6*B;,:3 71"      $&#"$!! " "! " "!!240%(#     ! #" !! $$$)-*154/02'&'          !('$&!!%40+lkn0-+ %"0*$92,31))("  ,&%/)&!(!)#($)# ""&"  !')%.0***& 6<7""$".1.(*'!!"! '$ /+'",*#..%!&$#!  %!                       & "           ' ' 3+MK.DD-  !)&!&$  ( E7*5$-!'   ).!$' #2&<,<+5$-)'"#,*"$'##!     0.(!       $%8OhJdyCP\34>]QZ|y}y|z|z}y}y}~||}}}}}}}||{}~~}                                 $$!  "!" "                                               -",6'=/$0!                                                                            %-1D+P9*ZC8\J>]K8S6E" D$M1!D,?)6!?)@*:&0!'%"#$%  !#    61+$        ("("#$)$-(#0*$,$1(=3(8/$=6++&&!,'!72.2.)0,(/+(0.,ADE<>=%#2.+&#&42-54/31-/-)))#02,20-*&" !%!(% "(% ,(!3,&74-10($!   %!71*;3*.$1)@9182,#   "" ## #'$4;6$)"$$ #$(*))-*'(%*)( )($! '&&/28.13                                  !!#!& #2,62       $"$!#         !(8*!'      %&#(1%/#'%%#  (*'" *-.-%            ,>Nft7IY=AMC:Fxy}z}z|y|z}z}|}}~}}}~~|{}}}}}}                         !      !! %#  !!      !"$#!!            !&                       '"*-'!                                                                            %&3E. D. ?*N8&N3C# ? A%@&@(E-D-F1$=+2## !'     ! #"        #@8/:3,+$$4.$D?2KA7>0'C2!K;&?1 2("%+& 2-(0*&,-*<:;JKP@BB-,'-)$$!+% /+&0.),)$,(#/.)..(33.33.++%89/=?401*1/*'"!# &#73&-)!",((&*& % $+'.*!,'.* ,&/+ :6+*&*'CD=792/.&)&! %# !!")"% " " !   "*!#*!(&,$ .&#*$!3.-,'&,$"+" %)$!+&#%   !&!)$!% #$# %.)'733423645;761*'-%#$$%#"$"!   &",)%**&)(&(%#&"'"3.- 1/0PRZ]alBEJ%''"$!%&# $&#),($%!%(!(-&!$     2.$:2#4+/'#            !$ !!# (+'""  ,-( @@=Z]ZU[WHLG4#8.!("*%.*%$!!$!$!)' 0/')'"    $ #"'    ##"! !.501:1.2*+--)*,#$"+1,!# "#!!"&&!'&"" ##%& *+%355049'(*                              $% "!!   $!! $% $       $  &!%   $          #!)*%*2#7&9(;+!+!!            &",Ay@Sk>FT5/=zju}x{x{z|{~z}z}|}{}~~~}{}}}}~|}                       .!'!!     !$#   !!  !!  $#$*(%!!)(        !  $+                          #                                                                       #"         0!;'9"69"?&:8 79B(G-@'B,?)6#+   "      !! *"'#"        3*!J@7>7282-+ VL?kbP_PAYD4S9%J3 8',"#'!+& 2-'1,&0+&762DAAPPSRVV;=:862/-''"2/)761+)#2/()'"**%/-',("-+$>?622*780FH@-,$*(!0.(" "  ".+$-)#52+3/'+''#.* 0,!.*2.#(%($/,%0/',+#%!# $!!#!%'!      $'#%   !&,%!(# 622-))+%"+$!("(#)$ &!$!"'"*%"&!$)$!(#$)$ 854?=A;9<=>@GFD-+(=:6=:652,3/)+&#!!% "$ %"'$ )%"'" $! %%$:89dgkfhn`eg9><$($$%" !!# +-)%'"      ,%0&,'"          $)%"$!-/, " MOFZ]WcfaRTMKPI>DA??=!       !$"$ # "*)%('# !$ %!!&1("+#        .'0( '")% $!85-+(!"!     (-':C;172##!'(&%'$!$!!#!252"#  ('# )($&(!'*#*,$,.&(-"18.8>8*.+        26-)-$        "          -)"($    PVZ469 $"(*# "           !%                    &1 6&A0&C1&>-!9*?2';-%, *,- )&#            ',eu`q=FV1.;aR[xzz{|z}z}{~{~{~{~||}{~{~|~~~~                        (%      $&!     !      #&(++*("!%#           $"                         #                                                                        "&"$     %+/58#C,9 2- 36=$7?)6!,&  !*'    !"  $       %+"8,'JB@:@A=EHECHE9;8@?;" (#30*54/<:52/)&#&$*&+',+!==654.,.&djaKPF00()( #'"$ *&-*#1-'1,%($-) .*"-(-(.* -'0+"-)!-)")&"&!)$# !"$! ',"    #'#/(     !&& %%'!$&!,(%*&%,((+%%,'$+'#% *%"(###(#-)(989:9:==<975% %!0,(73/;8175.&"!   !## )$!"&'&EDIQQWhkrUU[JMK,/+"# !   !'("$&       $% "!'%! !#   /.']_Uad^]\WPMDONBEC:94/&#           #'# '"!"$#  .%+$!  !!!%"$")("//*&%! !     )/*>ID;C?&($ 9:9      #$(,$*0(+2),2)(+##' $'!!"""        @F=MTH.4(&+#     %%#             63-41)  *%!%')(*+"! !           !        ' )#)"                       &6$@.&F5*F3'J8,>,";* ?/%4&3#7%7&0"(%            $"0DSoAJ[<+"6&>-"E4(<,<,<*:(<*<, ;+#3#-$         '%3IqP[nKMX.'5yio}y|z}|z}y|y|z}y|y|y|svrtnnrtz|{}z}|~     %&"!               !!            !   +9$7 .4A&D*410 '%                                          !        "                                             !$ ))'--,,)%%#$      "+ 1$8*C4%M<,D0!<'.# (-/ & #,!&(- +"  "&'(*!($!#$'*",$!)!#         PHC*!&1&;-!K;,F6(PG;MH;.+$ɾ77+3/#4."PF9@9*.(5-2+,% "($.+!+'*&2/$<:.A@5;9074,30'/+#0,$21(::/-)!#   % ("(! ! !"        #%"!"&)#  !#!   ##,$#1*)-&%   &"'# %!!!!665IOTgt}S^f8<@&&',-+3:55@:4<7! ! "#%   ))! ! "!    A6+K?3H?5$ 2*!7-$("                        *!(  !  "!61()%882\`UOVK=@8!!+0"03( %%           #&%%&&6:88@:283+,*""""""$%$!#"!%#!*.*%'$ !),'%+$!%"$-/($%)+*'/-+43276           $ Yc^JPJGLD5:3!$ "              -*#)'    %!&"#".-*%" ($"#"!$"!#*'"                    ,"1#2$.$                  !$-6$0!*7&=, <*>+;):)A1$B1%?-"6$-$         /L]zWg|EKV1-$5/'""                                                                                         ! )!#/-.577<<<1,&     $)2&<.!E3#D.@(<&'$" !"&+"# !#$#&(+"+",#'"&&'%&+!'        7/)90(#-$:+ZH5K<->4,D>5I@77)A.6(%&%'-%73-=;6;73-*%993CC>:95GE=<6+94)52)NMD0.%-(!.(84)/+ .&C>1HH:A@0YRAh^LqwweB>-<5&;3&[SDYS>G?(H>$C9$2*#! #0,#'#+(0."76)88,??6<=5@A8==664-)%$!##74.0-(  -($;611*$ !       !    %-$"# "$""!!"   "$$ #"   !$ &!+%%-(*##"  &"! &'#2634<E?4:2)-&            ! :;1.,%    ('$IIH79=,.4'"10, !30+&#%!    $(     !%+"#                    %!$7( ;+"1 /%/!8&=)9%,       !%5F\|;FWBDP>5@z|}|{~{~{~|{~{~{~y|wztvstrsuxy|{~{~}|{~~   !&/9"7!-!        ,4$%      "              !   $/6!6?"A$852,#                                                 "!                        $                )''746==?=?ABCA40)       $-$7-#7)9&?*<&#"&!"""! &" "%) '&)(#%&!*"*"%#"         *$0) !(%7*UH6G;-0&5,%90)0%;+.!&&"$1*"1,$2-(.)%.*%10*75/EB;HE;C?4A=2HF9`_RPNBKH>/,"64(0,!4/"C?0SS@ss`slbIZQ:<6#<3#B7(MC4[SBRI5PD+SH-D:%0'%!#)%.-&//(/.%,*/,"98/BB:LND>>888.55)!+)"42,53.560.,'*$ .&#' *"       %! !!!   ! #%+"0(%$"&( ("!% % '! % $$      !&")&#"$ !""#!246houT]b+21?DD:>;!)/+4:6!!$ !!    !$ "  !!*,,   "" !!$%"   5-)F<5XNDE:/3+0)8.$    " %"$'%&#!!  ! %,## !$+$#        ($;;5##&&<>353+    !%%%+-.8;<! $(#/6/(-) # $+%'.'8?9-2." $#"#).&(-&"&+0((,$%$ -*'           577)+-%+)6=7=C:           %#"!        !"      :>8;??48=48;%$!" '&"$".1):>6750"$!$!#     70%&!              "               !/ %!)*)$!!"     '#6IXoIPZ70;vek~z}{~y|z}{~{~||y|w{wzx{z|z|z|z}||~~   "&08"53 ' "(&  *(                    !  "   '/5 6;B&=#4.)&$                                             ##+/)14.33-                                      %# 485?C?@B@=>><<9-("     !   "'(+0!1!#   %"&# )#!!  "%*!.$3(0&+") $ #" !         '!"+"-$/&+") 6-&7-$6) 3( +"+"' *#3,$3,$.' *#+& ,(!*%+$(!3-#1-#C?3:6)TQE>;2-* 32%:9-==/HG6IH4baMhcLJD-71 3."0)@8+WN=\TBWN;E:&L?,B8&0'( $ /.&;<65719;4:922/&43+@A9BC;;<4=?2MP?;;542-,%"%!#"      ()! !"!"#$%('* 2*'2,(.&#( ""$,'$1.//,.+(*2./.**3/,*# !!&!$#  "&#")&&!        ! %$#jopMUU&*(*,*%($#&#"$ !#           ""$&,$'(+,-1 #"  !D;8KC;MD:OD6NC2I@,;.,     '&*)(,)*.-/4-/3%%&" %! '# !%+,!"   #%        &".,'%" *+'%&!(($   )+)GLLBGF%*''*''+),2,/6/%)$,0+*2+'.'!$&,(084,1,!$!# !""&) *2)(0(%(!-0)05.--*986        $#$() '#-4+,1&"                                  ..*,,*/0/22-##,-(QSM#"QP=EF3))74,42*'$)&# ""      %"                                  ""(3$!*##)"  '(&"  #"      ($z|LQ_?;EWJT~y{{~z}y|z}z}z}z}y|x{y||}|~z}z}|}}|     '5 8!6!5",%&+-' !                        "   !)01568=$:"0)$&&!                                                 ),&)-'               77-66*                            12.6;69=7786:9:9750,&'"+&"'!     #(#   ####    # 3(&#  ).#    ) 5+"3)2) .%+") "%' -%!%       !!!#&*!((,#+")!-$.$,"6-&;1),%.&/' 1)"/( *#-& ,&(! #%")%+'1.$44,55.<=2IJ=>@2WYHPQ?JG6TP0NI7`YHd_NTP=:0!."/&& !))$12+67056044.==7?@7770<=7>@:HJC<=467.;=4892GIDMPNOQODE@<<60+&'$!      "&%%# $ !#$&%''##*!-%"/'$*"$$*#!1--2021.0.))*%"& !#!$""&!'"'"# $($ #0,-;::% *'&'"!%-)*'$%(%'0/5==C==?<<<110/,*40/>;;/-.$!!         "$ +-,          "#"$! $$(!!/53/46+,/"$#"$"! !  6.*G>4D:,G9)L<*WK4L@+,!' %    "#%++/++/))..15,05%'-(*/'()%##78<8:?56:,+.&$%?=:/,,!      (@,6%        #  "   ##   "33.)*"&+ ;A8.2-!!'(&&'%    '(& 8:<1789@>.40.306;:(-()-'+-'@F?JTK)/'&*%:D@=HDAHC.2,$% !   #$*/'/90091271$(!$' "":<;~           ! $%'/.*4..6,)0'!                                          A;&;4!$!*&)#"# !!                                 # #9*'6($)$!"-3/(&$""#!       '*;IdCJ[LNU=2?z{~{{}{}z}z}{~z}z}x{y||z}z}{~{~{~|}}     +7":";$8#4,(+'#!"   !    &               !'.47:8349 5,$ !                                                  $)!!           33)/2&                             ! $ --(340:9997896596130)+(#*%!%!  #"  $-"("#"!"!#  2('! %     ( '""$$%'$%!!*"          " "!$.%&')%2) 7.%',",#.%.&,$,$) &$!"#"$'"0.(9;5RUITWIRTEY]KKL:US@^]G\]HFD4[WE|yfhdSPJ6[R?f`P{|mecVD=25/$#!!./,79413-7939:6551873>@<>A>=?;AE@CHA88244//1+LQIbf]VXSIMK>?<34/4/+( ,# *"      $,!("% !"##"%/&!) ) +!3)(3((('"+# ,&#,&%& ###$$$$"#% % '"$/+,&"",+*$ '"#.,0)(,+*,..2.,2KJMRUW>BC=?)L>+6(1'5-2*   %&*227348**/..3015""''(,9;=BBD>=?-,00/3*)-&$(%#$)((*)*&#%!  $8&8%)$*'"!           (+$36/! $"'!*0(*/&,.%&*!3:0*-*7948<8.50.5.(.&(,$@E>JQI+2*$(!+0*3>94<9*-)#& !#     %% '+#(0(070/4.&)"!! ??@$# !/*$             )112=:=D>@E>15-'(!                                       !$ ' *#& ,%( "!" !!                           #%  "#$+" +4 4!3!8#5!)"!    !"2)CM^qDNV3-;yfs{~|{~{~z}z}z}y|z}z}z}z}z}|~{~|~~~     '17>#?&:!0-+'$!          (                 "(+,17:"6 ./8!3,#  !                                                       %                                                   #%(&!-,'884>>>?<;<7372)/-%(%"'")#"  && $%%!!" "$      #%"  (("!     !!!!"%)(-#-#(,") &&',"*!&$$)) %$##&+"62(GI=NRCCC6HG8SQ@RO:ZV>[ZB[[D`\EgupfOG<&H<(VM=zWQC50#("")*%353674.1*582<=:AA??>=OQQMQS?BDCGH>A>55/,+%-0)QWO_aX[[ULNM@@@89621,('3,)     $'  !    #&'*!$/$#6+*-" #%,$!+# & !"!"""&!% &!&!0+-;9;757-,.*&(,(+,*.'%)*+-78:459XY[SX[FKN:==323647*)-&&(&&'           ""#$$'!"$ " " # "&##(&)/-(.,#)'    13.GLE%(#"# '"+",#(/('*% ).+066047247-1//4/"!# #%#((()(($%%,.- 851EC<71*:/&?2(5'C4%B1!<+7)4*;1&70) %#'+*.2250.3*(,,*, (')+(*&"$"$"$"#)&&$ !"#21!3+'1.*        "  "    $%)*#! "$-30+2/+3.0:11;01;2B836002-$$##! "          ,32=B@MQM371/.(                         "    +(%#$& ##!& (#!      #(#                        "$!$$&$ "&/9'>(=&3!(*#?h~k@KW68BTGRz~|~|~|{~y|y|z}{~}|{}z}|}|}}|      &/778883("                             %-,-3:$<'9&,&%! "                                                      !'"                                                          "/%#83/-,'12+4712419941.&)#*& '#%!'" !" #&( '!$&%)#         "))%     "%  $ %  !$-#,#(%%%#',"1'3)/%+ %&&() '%%'+!+"$( (-$.'@=/VTECB3?>/QN=`ZEXR7^Y=TR;YVAmfM|bff[EKB/VM8?@?B325&$&($%%#&%%&%%%$"$$ !!    !"!$'+&*/&(*(*)"#! $ !%!!#    '+!"&!"(!",$#/$(4*/:1*1*"# (,(/62,11286'-(!"" $%$%%%$$$     A:2\WNWPI1'!1%6* C4%@0!<-"Tb^gtpfojIMG+0-265!!&#%)#"'"0938B:,3,=C=%,$3:7OXW5=:bdaY[Z\`aBEG4:7IQJ3;2$,#*1*.4-GNH6@:5@83=5DOG5=6"!!&!1(1$/&+),.#FH?6:3+/()*$&(!! !               %'%:;<568354--'       #)%,3/                           "$          #                           $, 2%!-"  ! # ',1 2 1%  )"<=NntAR`DKR;2;{|{}{~|z}x{x{y|y|}}|~|~}||~~}      " )-39:9"7")                         '+')+/25!8&7'(                                                                     !)&                          ##                    ( 2+)41..-)22.120//.32..*#!#%!%!# #"#"$')!+$!( *!1( *! !        #),&%    !  %$  %6-) !# 1+,2-0  !%+",#(%%&%$&.$8.$0&) &()*-#/&* * )*)''*"1, 0- 62%JG7@=.99'BA-b]J_[FgfP\ZGLE4OG3sjU|khaR`YIg`QcYOcXM]R>H=&NJ;UXKCH>56/$!$ 30)>=8HGDBA;<;:9::CGHDGE885FGFWWW@@>30.82-D?7A=63/(/)#(         (/!0":(;)/!   !"#!) ("   #.($!"&+# &$("&$&% *%$.*))&$CB>31/+&'-(*1/3??CKLM<<=233=A@3463141/1+(+(%)%#&$$%++,+*,# !  "##*/3.38#&' ! "  !$!-0.   "%("#$"'#'/*'0((0((1(,5-+/,*.+')%  "%)#!&"$!,2-#($#%#&''$$#     I;0J>/YOCSH><1'3(/!=.%K?8F;6=1,5)"6,#:2)"     /-++('$ &"!   #)$(!    !""& &"#-3,16.6<89BA6@BIH9CA0:9+53)1/%"$,*:GCLZULXQ:D>5<6>D=),&%)'GOL486!'#,2+"( ,4+=E<06/9A74@A98;***56/.+#$! !!#          &,'%.'                 $1)(               !%                                          #."7(%3$".# 7-*( !""!#     " 3&4QIbsGTZ1,7rakx{z}{~y|x|wzy|y|{}}{}}~}{~|}}}      '/3>&B'?&=(8#,                       !((%).200/)"     !                                                                   )%!DD;+*#                 %$FH>     '",&#                '#,(&,*(22/5531104232.*'"!#  !& $$&''*"0(%*"*"+"("!!"%      #%!"   $-#,#'  !'("=87GBC   &('* *('&%'* )() *!.$0%0'1(,#,#-#+!,",#*!(!61&>;,3.!6062 86"63!B>0^]PcdV[WGC:*PH6kfUtqeWQGXRD^YLh`Wk`SL;%B3MG:Y[NGK@11',(,#:3+@<5JHCJIDPPHPPIFEAQPNJJH>?=<<:964A>=EAAHC@81+2+"51&;7,5.%-$# %, -+3":'1#& !  "!$,#) $ %&(!+%"%&+%"0*'(!"#'!*%",&%+%$)# %#'! /)+96;BBFRSVKLMAFA@HA487455ACCJKONOS568$%%"!"!    !#$"%,1-).*! ##'))&('"$" $!DJG),)    +-(*,(""#$%24/ (,(,2,'.',5,0:2082&+&"$%)(-34-02*,( $*#!!""  zspC=;  C4(C1!8(=,M?2E<2 =0*bWP[QJ?3.'3&,!  #'!"+%&&!!,(*(%$        '$     "$!'$$! !!#" "#%%15.@F?@G@495$JE/KF5;7*>=/JI9MH6H?-e]Lso]c^Pb\Ra^Ra_Re^S\RBK<'I<*TPCcgZbeXB?32.%3.(>70G?6D>7RNG\ZP_]S][UJGDEDBIHFA==5.+4+'2'"@5)<2$3* 2,#4,&/& )  $%  !*=-9)*+3$0$  $&%"!"#(*!,$!*! ! !#"&!'!($#%#%!% &!+&#*%#("*"*# $'!$3.454:227:83ME:=5,,#$    $/*+5013/0/,-&"#   "        $$    !        !)*$'&" !,/')-%#%,-#69/BG@;@:9>=@FHDLOJUYDMT:AHBJOEQR2;7"3<8MYXFOQCLMFPQR]\FQP14,OPIvzuaka[eQFN6;='IJ7JLBN<.;zy|x{y|x{xzxzy{y|z}{}z}{~{~}~|}  +7 =%B+B,>'B*:&)"     !""$#!  $('%&     !&$$$%"                                                                  .,())" !                            $2-+:98999>>>AA@=><997,)%! #,#!.%"& ' $!"#'%&!*"%&$!#"            &&!    #+?3"J<)H7(G7&G6#9**   ' !" $+",%-%*!&#""#&5,!=4(;0%?5+3) 1'0'0&4) 2%- ,6) 9-"6+7-!-"6*B5L>]R3XRRK7OD0YM;e[IZSCkfZpofWUJYREQI7TM;NG8VREim_kpaXYLFG;IH?:7.A;2F?7HA8KD8KF9D?<@851(". 5"O< UH,0'5.(90+* (&%, 0#(!!*SD1]K0@0$ %!!#%$%%$%#"&% ! #&0**-''  ##$'# '"%"!'!!.*-517:7=;9?9592.//-)$"0/-31/0.-444(''&$!"!        !! %&'&'**-/(++ !! "   !  &(#03*14-%(# $&("00-9;6$&!%%#$%#$#!  $"!  )*0.,+/"7)<0%*"!   )$$+&%+&','(,')'#$%!!"                   !4)0!-!"     ! !"''" (-&)0''+ #$() .1)CHB7>GM?KOFSS8@B9KOFhng{xoud\`MQWBHN9FG6=;.>?2HN>PZKLSF(,! ":=5/2)*,$$$ ''&&(('( $")&3.%(##&#<:/75)#))"01,.1- $#!!                 !+1)57,&%     ""          #      !     )(&             !*"*!$                                   !%+ 3&$0""!     "((% %+>F]rIR[+&0qbix{z}{~z}z}y|x{x{x{y|}{~}}{|}!   ,8!@&A':":$>))" #       !&%##!  "(&!!     #%"  !"                                       #                                  "         "                  !$($"/,-745?>@@@@AE@561(&!!#"&-#!.&!' *"""$%&,&.&"" !     0(%3+(1("&"$! "0F0!R?'N@&D5 F:'D8&3&$ #)!''+#/&.#%!  #'5- ?8'3'7+ /%.$7-#MD:A6/b_LRL9ME2LB/L?-SH6VN>VPDXSH^ZNZTHVQDigZROAWSEfgW[aPci[]`SJJ=E@6?8/?8.B9+KA2F@4RQH]ZQIC96,%4)!2$>,X>(eM.PA&/%E<5A:30%,"/%-"0$@2)7) !1"C2#WE2ZG16%#   !!"$&&'( %##&)"' (!  ! !##!"%$#$"$)"$/(+5131+-#"$& $!#        "# )+,++0015388&*)      !   ",.( +,+4669>;.1+"#!! 9:7(*'+,+033456**+ ""  ,-.('' %1$." 0%3'#     "!#%$+%$##                      0'-!/"/&%"   #!#"((!'& "! #&',%/6+36(*(!!$#&' >D=GQNDPMJTRISSDOQ>IJ;HI8EC.81%+%"-715>?D8CHA8AG?LUK@H:NVEOT@TT@JJ7BC1II;:;.NRCQVDKSC/3)!!&*!:B4;A359/06+'+"#$''"!##))42&60$0&#!'#CB>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~qpdf-8.0.2/libtests/qtest/ph.test0000644000064100006410000000054013247541377015046 0ustar ejbejb#!/usr/bin/env perl require 5.008; BEGIN { $^W = 1; } use strict; chdir("ph") or die "chdir testdir failed: $!\n"; require TestDriver; my $td = new TestDriver('ph'); $td->runtest("PointerHolder", {$td->COMMAND => "pointer_holder"}, {$td->FILE => "ph.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->report(1); qpdf-8.0.2/libtests/qtest/hex.test0000644000064100006410000000073113247541377015225 0ustar ejbejb#!/usr/bin/env perl require 5.008; BEGIN { $^W = 1; } use strict; chdir("hex") or die "chdir testdir failed: $!\n"; require TestDriver; my $td = new TestDriver('hex'); $td->runtest("decode", {$td->COMMAND => "hex < hex.in"}, {$td->FILE => "binary.out", $td->EXIT_STATUS => 0}); $td->runtest("partial decode", {$td->COMMAND => "echo '7a65726F203D203>' | hex"}, {$td->STRING => "zero = 0", $td->EXIT_STATUS => 0}); $td->report(2); qpdf-8.0.2/libtests/qtest/rc4.test0000644000064100006410000000163413247541377015134 0ustar ejbejb#!/usr/bin/env perl require 5.008; BEGIN { $^W = 1; } use strict; chdir("rc4") or die "chdir testdir failed: $!\n"; require TestDriver; my $td = new TestDriver('RC4'); cleanup(); my @tests = ('0123456789abcdef', '0123456789abcdef', '0000000000000000', 'ef012345', '0123456789abcdef'); my $n = 0; foreach my $key (@tests) { ++$n; $td->runtest("test $n", {$td->COMMAND => "rc4 $key test$n.in tmp1-$n.out"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check output", {$td->FILE => "tmp1-$n.out"}, {$td->FILE => "test$n.out"}); $td->runtest("test $n reverse", {$td->COMMAND => "rc4 $key test$n.out tmp2-$n.out"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check output", {$td->FILE => "tmp2-$n.out"}, {$td->FILE => "test$n.in"}); } cleanup(); $td->report(4 * scalar(@tests)); sub cleanup { system("rm -f tmp*-*"); } qpdf-8.0.2/libtests/qtest/flate/0000755000064100006410000000000013247541377014632 5ustar ejbejbqpdf-8.0.2/libtests/qtest/flate/compressed0000644000064100006410000000022313247541377016716 0ustar ejbejbx 0=20AQQ﹃YP 2@6 r@\P 7[P qpdf-8.0.2/libtests/qtest/rc4/0000755000064100006410000000000013247541377014227 5ustar ejbejbqpdf-8.0.2/libtests/qtest/rc4/test1.in0000644000064100006410000000001013247541377015606 0ustar ejbejb#Egqpdf-8.0.2/libtests/qtest/rc4/test2.in0000644000064100006410000000001013247541377015607 0ustar ejbejbqpdf-8.0.2/libtests/qtest/rc4/test3.in0000644000064100006410000000001013247541377015610 0ustar ejbejbqpdf-8.0.2/libtests/qtest/rc4/test2.out0000644000064100006410000000001013247541377016010 0ustar ejbejbtKyqpdf-8.0.2/libtests/qtest/rc4/test4.in0000644000064100006410000000001213247541377015613 0ustar ejbejbqpdf-8.0.2/libtests/qtest/rc4/test4.out0000644000064100006410000000001213247541377016014 0ustar ejbejb֡A<8߽aqpdf-8.0.2/libtests/qtest/rc4/test5.in0000644000064100006410000000100013247541377015612 0ustar ejbejbqpdf-8.0.2/libtests/qtest/rc4/test1.out0000644000064100006410000000001013247541377016007 0ustar ejbejbuŖqpdf-8.0.2/libtests/qtest/rc4/test3.out0000644000064100006410000000001013247541377016011 0ustar ejbejbA7]:qpdf-8.0.2/libtests/qtest/rc4/test5.out0000644000064100006410000000100013247541377016013 0ustar ejbejbuJ x JR3I=vS4IwNJ+f]S՜&Đ mkGZDz^Ngy 2DOw&Vu ~ Ī;B1zCݥ m1xNIZΐrG_b ; S/GP#q2}DD2sg/]D gPuKpw#k[tG9mbt!=.Dn5N w=5X\ )/fK@Uo')BdE]SL㢷UW&Rn# S[ٜs]=58g-{꥕ؿo llzb>L=3> UW"ԸiI՝NyXkKjtԛKK$7, U5Iz=ṟ͆`:ԫ4=BXU@h<(MLXq7Tq&Ԟ'U@qpdf-8.0.2/libtests/qtest/predictors/0000755000064100006410000000000013247541377015715 5ustar ejbejbqpdf-8.0.2/libtests/qtest/predictors/08--32-1-8.data0000644000064100006410000000204013247541377017575 0ustar ejbejbHKORVY]_begjlopstvwyz||}~~740-)&#kgeHKORVY\kzOHO 7<HO HK HC#@#<o` "&*,qpdf-8.0.2/libtests/qtest/predictors/03--32-3-8.data0000644000064100006410000000604013247541377017576 0ustar ejbejb ')/179?AGJORWZ_bgjosw{&-4;'C/J7Q?XG`OgWn_ug|owſ7;?EKQW']/d7j?pGvO|W_gowǷͿMSX_dins'x/}7?GOW_gowƧ˯зտ`gov'.7?GNW_gnwŎɗ͟ѦծٷݿoxЁߋ'.7?GNW_gnwЇӎٟ֗ܦ|Лߧ'.7?GNW_gnwе'.7?GNW_gnw&^fnv~p{^fnv~Xu`is|&.6>^fnv~BjIuPX_hpy%-5=U]emu}0_5j:u@FLSZahp %-MU]emu} U$_'j,u049>CHN`e joEMU]emu}LU_ju #&)-0;@F k=qEwM}U]emu}C L U _ ju5K4RCHNTY`ej   & , 4;CLU_ju #&)-048;@F   &,4;C L U _ ju qpdf-8.0.2/libtests/qtest/predictors/out20000644000064100006410000105053213247541377016537 0ustar ejbejbͿEz1{mAD . d  $()-./?/0 169;AE(G2MEPRX\O^bdPgiosiu|{c~*\C\=*|1ƑǍ"T~  (041V1;=(=>?@DPQR aabvx2xX)K#^ȇYݯއ"F,,-/w0=?d@AFLmM9N]h__npp,r_r8_aƐȐZv Qk!-Q./sBD)DWaY'Yoqzr9>mq\``h;O32.01/DEFUV[Vghiqzf{|g@W2pɦwڣG!tg+8,->?8@mATVWfhi~tIvwx r ,;ˆ_'߀?c~?D%'q(';=K=GHIRST[\\]6klmO)D!ϫӴԀ v>A!O(C*+X>{@4@TVVh5ij~;6XDʱ} &  t  7  * ,w -6 @# B B N P P ao c c h ic j+ w& x y\ p - |  o   3    ʩ z  $        / G r * -5 .r C GC G T U V d' e h i w zN {    n       ͏ E  s R 5  J V  V  K  " # $y : ;z < B C DJ G H I# P$ QQ Q eI fq f y z| {   ^   o  x   E    ݱ      t  # %9 & 6l 8 9S E G1 G XU Z Z jG k k y z {W   k %    G !      '  :   \  S  R $ & & ' ( )' 9 :F ; M7 N O g i j |} $   ^  d p     y ȥ `  ̵ 5  R      w79;7;QRToTfmgKgvwx8D '/P7˲̕1AuGb !#%\'(37@8:;SL/MOQ]STVXYiCkl!Ɖ[,܁ U:EI-/l12DFGv[]t^qr/ra!fx3.Ųc'ڱ{:$g&(&5}67NHIJacd(vxjzzfRiϚоt'bki]*b+,y@SBfC KXLMC\]^pqrc||֩3k[:.0;0ABCnTV0Vl}n@nyez{W>Qe1֐׫؅Zj=#%+%:?;@@LNPQ`ghixyzng%:n؟ڻw!*+,c ?@.QRaSbcdist-u=~+S2OQbRUVeghPz{|0_rĜm@ڊ܃Ma  O E )'U()V:;<6PQR^_`6l&m7m]q rÇ$ ![. 8 !%#$;M==NPQa\bcwJy{z<Sx7ĭCڮܐ< 9*+u,23w48?AQB?RATTdeefjz||jrE֮>PR T - *_+0+ABC;RSTegdh%sLu ww#TV_ʡGe~bzR"X$%'(H43579r:WM4OP<dfMh ikmEoprtuO62*<uв8S    a"Y#6D78IKLd5fg:m~noYhojǡɛʉ=rih&'(;=x>OQOQ\]^qrs; %b6S$ʃ|M# #   W m 7 / 1 28 D% Eq F; V W X f g h s t u5   o  0    G s A   R  `  O m ;     E  [!! ;! !!G!!.+!/~!0?!D!E!FY!W!X!Y!m{!on!p!}8!"!!!!!Ʌ!!!F!ܚ!m!!!^""5""h"5"""""*",2","A"Bt"C#"S"U#"U"l/"m"n"d"""+"""""t" ";""Q"l""""̿"t"W"*"""# ~# # # x#!#"=#/V#0/#0#A#B#CK#U8#W#W#k'#k#l###=#####&##N#"##v##:###݉#Q####H#u##~##g##Y###$f$C$$ $$$8$$$$2$$ h$"$%1$'$)$,U$.$/$1$3j$52$7$7$?d$A$D($F$I $J$L$NT$P$R%$R$_&E4'I()ud)w )x)y9))))I)))^))))e)A)))܍)o),))v)))))** * *I* *N**0%*1*2G*@*B *B*O*P*Q*S*T*U{*dy*fY*f*u*w*yB*y*v*L****y*b*&**v*`**d*ވ*[* **#*++ ^+ ++V++/z+0+1+Cy+D+E+W@+X+Y+hG+i$+i+|+}+~i++++y++_+e+++>+ɑ+.+++++S+,++++, , ,q,,,,/,1,1,B9,CZ,D,Tk,U,V0,dx,eU,e,w1,x ,x,,3,,,,,T,,9,ʎ,j,,ܪ,,ރ,&,z, ---s--f--%z-&-'-:Y-=?->Z-N-QS-RA-g-j}-k-{-~---\-A-----&--ɱ--˒-----f-0..f..(.*@.*.>.@].@.TS.U+.U.i.jx.k.} .~^.1..._.P...T. .¬.֬.ׅ.+.../ / ./ /#/$/%/3Q/4/5y/C/D/E/[/]_/]/q/r\/s/a//!//[//f/w//J/ /$/T///W///`///+/U/ 0000'b0(0)0=0>0?0Q90S20T0hn0j0kA0t0vl0w-00x0B0K0Y0000000e070W000ݩ050.001^1~11F111R1(1)1*T191:1;u1OK1Q1R1S1f1iV1j_1d111*1U1g111o111111j11j11222n2f222225=252H2I2J2Z2]]2^2o2rM2s22i2<2k2L2(22?2 22W2<22o2o2222b2233l333v3(333/33 P3!3/313334J3I3KP3L>3`Q3b3c13r3t3v+3v33}3t3333v3P3,3.333F33߽33934-44S44c4c4-$4/404C4E4F4X4Zq4[D4m4o4o4444X44{43444 4R4%444ε4e4ޭ4ߛ44445355555q5*5-"5-5<5?55@5M5O5P5a5c}5d>5s5u55u5355L5555I5C5g5x5"555[5I5~556 6 6 Y66 6!6265656J!6LH6M66_A6a6b@6q6r6s6B6z6z666m666T6666 6ձ6=6H666Y667&77 7.7777"77.7071Q78797:{7L7N7O>7`7a7b7v7x7yz7777777:777í7P777d7.77,788 *8 88%88-8081b8C8Ef8F98S!8U(8U8^p8`/8bz8cM8r8s8t888388!888[8m8j8488m8 8888t9 9a9O9!i9#9$m92V9394j9Fx9H59H9^9` 9`9s9t;9t9999*99A9u99@9999499z99)9:8:{:*::K: :-:.:/:C':D}:E:U:X:Y:e:h:i:ju:k3:l:w:y:z:: :::::;:::Γ:Е:M::::::; ; (; ;;4;;0;2u;3c;F;H;I;Y;[e;\A;li;n;n;;;x;;_;;p;;g;;;?;.;˒;A;;L;;;;<<0<<<L<< <"j<#+<7<8<9> &> >> >>%>&>'y>5N>6)>6>C>E`>F<>Z>\>]L>n>o|>pj>N>>>_>>J>>>7>>>>>#>˯>>>h>e>2>>U>>I>>>??`?????!E?"f?#?,S?-c?-?2?3?4?I ?J?Kw?a?b?cF?yz?z?{L??N??1????? ?P????M??-?o?K?İ?s?F??l?6???`??X?+@@@L@+"@,j@-=@?@A@BB@Q!@Rn@Sn@e"@gg@h @u@v@w@B@@k@@@@1@@\@ϔ@l@6@@@*@@ @A )A A qA$A jA!A-A/A/A<A>7A>AQ(ARrAS3AgAhAiA} A~AAAAAAAOA"AOAAAKAAЦAA}AAA~AOAAWBB#BB!B"B#B6?B7qB8 BFBGWBGBQBSBSBcBe BeBwBxByBBBDBBBBBVBB̹BBγBBBBBBrCCCCCCCC/*C0]C0C=C>C?UCM|CNSCNCaxCbCc*CuCvCwuCCCCyCCCCDC;CCCµCC֔C1CCCtC CYCCtCD1D D$DD"D$0D$D5D7}D8DI7DJgDKDVHDWyDX1DfDh7DhD{dD|D}YDDQD1DDDDiDrD1DD&DDDDzDIDDֹDגDSDDBDD2DDzE EEE#xE$E%E6E7E8EIGEK EKE\FE]E^EEmVEnEoVEfEEE\E4EEE3EEEȠE7EEEޒEAEEEFF[F.FFFDF/F1F2MFHVFJ0FJF]F_F`FvFyKFz F_F1FFFFFFGFFFFFFԢFFFqFdFGG)GGGG G0G2G3FGBGCGDGSGSGTGdGfGg/GwmGxVGxGz;GzG|oGGGGDGGGGGoGG(GGfGʻGGGٜGxGGGGGYGHGHtHHHH HH+H,H-H;H=%H=HEHFHGDHOPHPHPHXHYUHYHkHkHlHrHsrHsHyHzyH{H~HtHHFHHHHHSHZH'HHHZHHH{H*HHHcHÙHxHHH԰HzHtHHtHOHHI I I I(I II&EI'I(cI.I/I0I<I>I?ISITIVIlMIoDIp2IIIIGIIII<II­II^I+I8IIIIJ+JoJ]JJJ~J.J/J0J=J>J@ JOJRsJS=J`JaJbJvJyJyJJJJJJJJJJJJJJ JoJJJTJJJJPJK K 4K KKIKK0K1iK2KBKCKDKQKSKSKTKUKVEKchKdKeQKm\KnKozKs KsKtK}RK~KK;KKKK]KK KKVKKKKKKKjKKtKAKKXK"KK KKbKKKTKKFKKŏKȌKZKKKҴKԇKK3KK٥KKKKK KKKKqK{LL,LLL zL[LsLL$bL%L&L)L*L+UL0L1L2L@LALBOLWWLXLYdLkLlOLlL~RLL8LLLgLLMLLLLvL4L7LNLLLռLLLLLLMMMWMM MM&M(M)wM6M8lM9[MKUMMMNM\lM_iM`&MnMpIMq$M~M\MKMMMnMMpM_MMMMM MMMMMMMMaMMN 'NNN!<N#;N$N2N4N5NGNH[NI"NX NYNZNgNiNjCNmNmNngNoNpNqN)NkNNN9NNNTNMNN NN%NNǖNNNԷNfNNCNNNOO_P6P~PPPʋPP͌Q:3QOQRQUQVsQZQ\jQ^!Q`QaeQd"R]YS3Uy4VvW3WWW+W W WWWLWXCyX˽YKZ@ZBEZCZF(ZFZLZNZQEZTZUZW:ZXZZ<Z[Z]>Z_RZ`ZeC`X$dNddVdd]dad2dԳd\d=d{dd{d9ddkdddd:dddseeeeYeeeCeeneeeeJeeeeeeeeeeweeke 1e e!e"|e#3e#e$e%Te&e'e'e(~e)e*e+e,e-Ze.e/e1e5e67eCeW%ejueve3eewe3eXeeee>ffgf^f.f7{fJfSf_-fgfxAfff_ffIffĢfYffgg gg&fg5g>MgOigX&gkGg{ggggggg>gHggQggg~gѬgdgsg+hh h h h4h=hNhWfhahihh hhhkh֛hIhiiii(i5iA-iONi`.iiiiiVisi$i˒iRiyifi8iiiViiWi/i~iiiTii}iiiijjjjjjj 5jjZjjjdj0Ej1 j1j?j@jBjDjjE1jYrj[.j[jljnjnjYjjj$jhj/jjBjijjj jňjjjjDk kkk k:kB kFkLkhlkokshk}+kWk}kkkckMkAkkkk)lTlll(l/l6al=rlV<l]jlblillal^lllZllllllCm >m;mUmm#m;mBmGmNmg mnSmsmzmm6mimm~mʂmњm}m&mmnn nwn*Xn1n7n?nXdn_fnfnoqnnn5nnnnnʌnԕnYn]naocoo io'}o-o4oQioXo]oe9o~o"o:oooooMooyooo]pppp#p<pCpJ*pQ'pl?psupxpp0pnp-p$pɧppעpEppqq qq&q(q-qCqJ\qL qRqlqt?qxqqwqqqqqqAqQq>qrr r}r.?r5gr})zj-4:8{?YR`fmc?"ʡ1`%@4GLLM]@^^^_dB#Ȏ8 ,-iuwP(IPo+\_:`b4h=#)*-26;@<DHMcQ|+".S`1Z1(|9S?#',l059>#BFKOS,W [_chElpu~y~r?FƇ;ӀZ4O8BG3KROtSW\c`eJinGrwp{]to/Qqubc '!%*A.]2.6:Caehmr,vzeNcAOɍ"Pu4d      !                                  ! " # $ % &                                  ! " # $        !"#$%      !"#$%&'()*         !!!!!!!!!!! ! ! ! ! !!!!!!!!!!!!!!!!!!! !!!"!#!$!%!&!'!(!)!*!+$$$$$$$$$$ $ $ $ $ $$$$$$$$$$$$$$$$$$$ $!$"$#$$$%$&$'$($)$*'''''''''' ' ' ' ' ''''''''''''''''''' '!'"'#'$'%'&'''(')'*********** * * * * ******************* *!*"*#*$*%*&*'*(*)***+---------- - - - - ------------------- -!-"-#-$-%-&-'-(-)-*0000000000 0 0 0 0 0000000000000000000 0!0"0#0$0%0&0'0(0)0*0+3333333333 3 3 3 3 3333333333333333333 3!3"3#3$3%3&3'3(3)3*6666666666 6 6 6 6 666669<?BBBEEEEEEEEEE E E E HHHHHHHHHH H H H H HHKKKKKKKKKK K K K K KKKKKKKKKKKKKKKNNNNNNNNNN N N N N NNNQQTTTWZ]````cfilorruuxxxx|||              """"""&&&&)))))),,,,,,/////222255558;;;;;;;;;>>>>>>>>>AAAAAAADDDDDGGGGGJJMPSVVVVVVVVYYYYYYY\\\\\\\\\\ \ \ ______bbbeeeeeehhhhhhhhhh h h kkknnnnqqqqqqqqqq q tttttttttt t t t t tttttttwwwwwwwwww w w w w wwwwwzzzzzzz}}}}}}}                                            !"#$%            ""%(((+++++.1144444477777:::::::::: : : : : ::::::::::::::::::: :!:">>AAAAADDDDHHHKKKKKKKOORRRRRRRRRR R VVVZZZ^^^adgjjjjjjjjjj j j j j mmmmmmmmmm m m m m mpppppppppp p p p p pppppssssssssss vvvyyy                                #&),,,,,//////22255555888;;;;;;>AAADDDGJJJJJMMPPPPPPPPPSSSVVVVVVYYYYYYYYY\\\\___bbbbbbbbbeeeeehhhhhkkkknqqttttwwwwz}}                          !!!!$$$$''''''**----00000000333333336666666666 6 9999999<<<<<<<<<< ???????BBBBBBBBBEEEEEEHHHHHHHKKKKKKKNNNNNNNNNQQTTTTTWWWZZZZZZZ]`ccccccffffffffff f iiillllllloooruuuuuux{{{{{{{{~~                         ########&),,,///22225555555555 5 5 5 5 88;;;;;;;>>>>AAAAAAADDGJMMPSSSSSSVVVVVYYYYY\____bbbbbbeeehhkkkknnnnnnqqqqqttttttt}}}}}}}}}     """""'''********.......111114477:======AAADGGKKKKKKKKNNNNNNNQTTTTWWWWZ]]]`````cccccccfiilllooorrrrruuuuxx|||||                                           !!!!!!!!!! $$$$$$$''''''''****------000000036666666699<<<<<<?BBFFFIIIIILLPPPSSSSSSSSSS S VVVVVVVVVV V V V V YYYYYYYYYY Y Y Y Y YYY\\\\\\\\\\ \ \ \ \ \_________bbbbbbbffffiiiiiiiillloooooooooo rruuuuuuuuuu u u u u uuuuuxxxxxxxxxx x x x x xxxxxx{{{{{~~~~~~~~                                                                  """""%%%((((((((+....1111147777:::::::::: : : =@@@@@@CCCFFFFFFFFFF F F F F IILLLOOOOOOORRRRRRRRRR UUUUUXXXXXXX[[[[[[[[[[ ^^^^^^^^aaaaaaaaaa a dddddggggggggkkkkkkknnnnnnnnqqqqqqqqqtttttttttt t t t t ttttttwwwwwwwwww w w zzzzzzzzzz z z z z z}}}}}}}}}                                                                                                           " % ( ( ( ( ( ( ( ( ( (  + + + + + + + + + . . . . . . . . . .  1 1 1 1 1 1 4 4 4 4 4 7 7 7 7 7 7 : : : : : : : : = = = = = = = = = @ @ @ @ @ C C C C C F F F F F I I I I I I L L L O O R R R U X X X X X [ [ [ [ [ [ [ [ [ ^ ^ ^ ^ ^ ^ a a a a a a a a a a  a  d d g g g g g g g j j j j m m m m p s v v v v v y y | | |                                                                                                                                                                                                                                                            ! ! ! ! $ $ $ ' ' ' ' ' * * * * * - - - 0 3 6 6 9 < < < < ? ? ? ? ? B B B B B B B B E E E E E E E E E E  E  E  H H H H H H K K N N N N Q Q T T T W W W W W Z Z Z Z Z Z ] ] ` ` c c c c c f f f f j j j j j m m m q q t t w w w w w z } } } } } }                                                                                                                                                                                                                                    ! " # $ % & ' ( ) * + , - .                                  ! " # $ % & ' ( ) * + ,                                                                        ! $ ' * - - - - 0 0 0 0 0 0 3 6 6 6 6 6 6 6 9 < < ? ? ? ? ? ? ? ? ? B B B B B B B E E E H H H H H H H H H H  K K K K K K K K K N N N N N N N N N N  N  N  N  N  N N Q Q Q Q Q Q Q Q Q Q  Q  T T T T T T T T T T  T  T  W W W W W W W W W W  W  W  W  W  W W W W W Z Z Z Z Z Z Z Z ] ] ` ` ` ` ` ` ` ` ` c c c c f f f f f f f f f f  f  i i l l l l o o o o o o o o o o  o  o  o  o  o o o r r r r r r r u u u u u u u u u u  u  u  u  u  x x x x x x x { { { { { { { { { {  {  ~ ~ ~ ~ ~ ~ ~ ~ ~ ~                                                                                                                                                                                                         ! ! ! ! ! ! ! ! ! !  !  !  !  !  ! ! ! ! $ $ $ $ $ ' ' ' ' ' ' ' ' * * * * * * * * * *  - - - - - - - - - -  0 0 0 0 0 0 0 0 0 0  3 3 3 3 3 3 3 3 3 3  3  6 6 6 6 6 6 6 6 6 6  9 9 9 9 9 9 9 9 < < < ? ? ? ? ? ? ? ? ? ?  ?  ?  ?  ?  B B B B B B B E E E E E E E E H H H K K K K K K N N N N N N N N Q T W W W W W W W W W W  W  W  Z Z Z Z ] ] ] ] ] ] ] ] ` ` ` ` ` ` ` ` ` `  `  c c c c c f f f f f f i i i i i i i i i l l u u u u u u u                                                                                                                 J J J J J J J J J J  J  J  d d d d d d d d d d  d  d  d  d  d d d d d d d d d d d d d d d d d d d  d! g g j o o o r r r r r r u u u u u u x x x { { { { { { { { { {  {  {  {  ~ ~ ~ ~ ~ ~                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                                    ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % &                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " #                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * +                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = >                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = >                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                                       ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 :                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ?                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                                             ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 :                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) *                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 :                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNO      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./01234567      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc           !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./01234567!!!!!!!!!! ! ! ! ! !!!!!!!!!!!!!!!!!!! !!!"!#!$!%!&!'!(!)!*!+!,!-!.!/!0!1!2!3!4!5!6!7!8!9!:!;!<!=!>!?!@!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z![!\!]!^!_!`!a!b!c"""""""""" " " " " """"""""""""""""""" "!"""#"$"%"&"'"(")"*"+","-"."/"0"1"2"3"4"5"6"7"8"9":";"<"=">"?"@"A"B"C"D"E"F"G"H"I"J"K"L"M"N"O"P"Q"R"S"T"U"V"W"X"Y"Z"["\"]"^"_"`"a"b"c########## # # # # ################### #!#"###$#%#&#'&&&&&&&&&& & & & & &&&&&&&&&&&&&&&&&&& &!&"&#&$&%&&&'&(&)&*&+&,&-&.&/&0&1&2&3&4&5&6&7&8&9&:&;&<&=&>&?&@&A&B&C&D&E&F&G&H&I&J&K&L&M&N&O&P&Q&R&S&T&U&V&W&X&Y&Z&[&\&]&^&_&`&a&b&c'''''''''' ' ' ' ' ''''''''''''''''''' '!'"'#'$'%'&'''(')'*'+','-'.'/'0'1'2'3'4'5'6'7'8'9':';'<'='>'?'@'A'B'C'D'E'F'G'H'I'J********** * * * * ******************* *!*"*#*$*%*&*'*(*)***+*,*-*.*/*0*1*2*3*4*5*6*7*8*9*:*;*<*=*>*?*@*A*B*C*D*E*F*G*H*I*J*K*L*M*N*O*P*Q*R*S*T*U*V*W*X*Y*Z*[*\*]*^*_*`*a*b*c++++++++++ + + + + +++++++++++++++++++ +!+"+#+$+%+&+'+(+)+*+++,+-+.+/+0+1+2+3+4+5+6+7+8+9+:+;+<+=+>+?+@+A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+T+U+V+W+X.......... . . . . ................... .!.".#.$.%.&.'.(.).*.+.,.-.../.0.1.2.3.4.5.6.7.8.9.:.;.<.=.>.?.@.A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.[.\.].^._.`.a.b.c////////// / / / / /////////////////// /!/"/#/$/%/&/'/(/)/*/+/,/-/.///0/1/2/3/4/5/6/7/8/9/:/;/</=/>/?/@/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/[/\/]/^/_/`/a/b/c0000000000 0 0 0 0 0000000000000000000 0!3333333333 3 3 3 3 3333333333333333333 3!3"3#3$3%3&3'3(3)3*3+3,3-3.3/303132333435363738393:3;3<3=3>3?3@3A3B3C3D3E3F3G3H3I3J3K3L3M3N3O3P3Q3R3S3T3U3V3W3X3Y3Z3[3\3]3^3_3`3a3b3c4444444444 4 4 4 4 4444444444444444444 4!4"4#4$4%4&4'4(4)4*4+4,4-4.4/404142434445464748494:4;4<4=4>4?4@4A4B4C4D4E4F4G4H4I4J4K4L4M4N4O4P4Q4R4S7777777777 7 7 7 7 7777777777777777777 7!7"7#7$7%7&7'7(7)7*7+7,7-7.7/707172737475767778797:7;7<7=7>7?7@7A7B7C7D7E7F7G7H7I7J7K7L7M7N7O7P7Q7R7S7T7U7V7W7X7Y7Z7[7\7]7^7_7`7a7b7c8888888888 8 8 8 8 8888888888888888888 8!8"8#8$8%8&8'8(8)8*8+8,8-8.8/808182838485868788898:8;8<8=8>8?8@8A8B8C8D8E8F8G8H8I8J8K8L8M8N8O8P8Q8R8S;;;;;;;;;; ; ; ; ; ;;;;;;;;;;;;;;;;;;; ;!;";#;$;%;&;';(;);*;+;,;-;.;/;0;1;2;3;4;5;6;7;8;9;:;;;<;=;>;?;@;A;B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z;[;\;];^;_;`;a;b;c<<<<<<<<<< < < < < <<<<<<<<<<<<<<<<<<< ???@?A?B?C?D?E?F?G?H?I?J?K?L?M?N?O?P?Q?R?S?T?U?V?W?X?Y?Z?[?\?]?^?_?`?a?b?c@@@@@@@@@@ @ @ @ @ @@@@@@@@@@@@@@@@@@@ @!@"@#@$@%@&@'@(@)@*@+@,@-@.@/@0@1@2@3@4@5@6@7@8@9@:@;@<@=@>@?@@@A@B@C@D@E@F@G@H@I@J@K@L@M@N@O@P@Q@R@S@T@U@V@W@X@Y@Z@[@\@]@^@_@`@a@b@cCCCCCCCCCC C C C C CCCCCCCCCCCCCCCCCCC C!C"C#C$C%C&C'C(C)C*C+C,C-C.C/C0C1C2C3C4C5C6C7C8C9C:C;C<C=C>C?C@CACBCCCDCECFCGCHCICJCKCLCMCNCOCPCQCRCSCTCUCVCWCXCYCZC[C\C]C^C_C`CaCbCcDDDDDDDDDD D D D D DDDDDDDDDDDDDDDDDDD D!D"D#D$D%D&D'D(D)D*D+D,D-D.D/D0D1D2D3D4D5D6D7D8D9D:D;D<D=D>D?D@DADBDCDDDEDFDGDHDIDJDKDLDMDNDODPDQDRDSDTDUDVDWDXDYDZD[D\D]GGGGGGGGGG G G G G GGGGGGGGGGGGGGGGGGG G!G"G#G$G%G&G'G(G)G*G+G,G-G.G/G0G1G2G3G4G5G6G7G8G9G:G;G<G=G>G?G@GAGBGCGDGEGFGGGHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGWGXGYGZG[G\G]G^G_G`GaGbGcHHHHHHHHHH H H H H HHHHHHHHHHHHHHHHHHH H!H"H#H$H%H&H'H(H)H*H+H,H-H.H/H0H1H2H3H4H5H6H7H8H9H:H;H<H=H>H?H@HAHBHCHDHEHFHGHHHIHJHKHLHMHNHOHPHQHRHSHTHUHVKKKKKKKKKK K K K K KKKKKKKKKKKKKKKKKKK K!K"K#K$K%K&K'K(K)K*K+K,K-K.K/K0K1K2K3K4K5K6K7K8K9K:K;K<K=K>K?K@KAKBKCKDKEKFKGKHKIKJKKKLKMKNKOKPKQKRKSKTKUKVKWKXKYKZK[K\K]K^K_K`KaKbKcLLLLLLLLLL L L L L LLLLLLLLLLLLLLLLLLL L!L"L#L$L%L&L'L(L)L*L+L,L-L.L/L0L1L2L3L4L5L6L7L8L9L:L;L<L=L>L?L@LALBLCLDLELFLGLHLILJLKLLLMLNLOLPLQLRLSLTLULVLWLXLYLZL[L\L]L^L_L`LaLbLcMMMMMMMMMM M M M M MMMMMMMMMMMMMMMPPPPPPPPPP P P P P PPPPPPPPPPPPPPPPPPP P!P"P#P$P%P&P'P(P)P*P+P,P-P.P/P0P1P2P3P4P5P6P7P8P9P:P;P<P=P>P?P@PAPBPCPDPEPFPGPHPIPJPKPLPMPNPOPPPQPRPSPTPUPVPWPXPYPZP[P\P]P^P_P`PaPbPcQQQQQQQQQQ Q Q Q Q QQQQQQQQQQQQQQQQQQQ Q!Q"Q#Q$Q%Q&Q'Q(Q)Q*Q+Q,Q-Q.Q/Q0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q:Q;Q<Q=Q>TTTTTTTTTT T T T T TTTTTTTTTTTTTTTTTTT T!T"T#T$T%T&T'T(T)T*T+T,T-T.T/T0T1T2T3T4T5T6T7T8T9T:T;T<T=T>T?T@TATBTCTDTETFTGTHTITJTKTLTMTNTOTPTQTRTSTTTUTVTWTXTYTZT[T\T]T^T_T`TaTbTcUUUUUUUUUU U U U U UUUUUUUUUUUUUUUUUUU U!U"U#U$U%U&U'U(U)U*U+U,U-U.U/U0U1U2U3U4U5U6U7U8U9U:U;U<U=U>U?U@UAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTUUUVUWUXUYUZU[U\U]U^U_U`UaUbUcVYYYYYYYYYY Y Y Y Y YYYYYYYYYYYYYYYYYYY Y!Y"Y#Y$Y%Y&Y'Y(Y)Y*Y+Y,Y-Y.Y/Y0Y1Y2Y3Y4Y5Y6Y7Y8Y9Y:Y;Y<Y=Y>Y?Y@YAYBYCYDYEYFYGYHYIYJYKYLYMYNYOYPYQYRYSYTYUYVYWYXYYYZY[Y\Y]Y^Y_Y`YaYbYcZZZZZZZZZZ Z Z Z Z ZZZZZZZZZZZZZZZZZZZ Z!Z"Z#Z$Z%Z&Z'Z(Z)Z*Z+Z,Z-Z.Z/Z0Z1Z2Z3Z4Z5Z6Z7Z8Z9Z:Z;Z<Z=Z>Z?Z@ZAZBZCZDZEZFZGZHZIZJZKZLZMZNZOZPZQZRZSZTZUZVZWZXZYZZZ[Z\Z]Z^Z_Z`ZaZbZc[[[[[[[^^^^^^^^^^ ^ ^ ^ ^ ^^^^^^^^^^^^^^^^^^^ ^!^"^#^$^%^&^'^(^)^*^+^,^-^.^/^0^1^2^3^4^5^6^7^8^9^:^;^<^=^>^?^@^A^B^C^D^E^F^G^H^I^J^K^L^M^N^O^P^Q^R^S^T^U^V^W^X^Y^Z^[^\^]^^^_^`^a^b^c__________ _ _ _ _ ___________________ _!_"_#_$_%_&_'_(_)_*_+_,_-_._/_0_1_2_3_4_5_6_7_8_9_:_;_<_=_>_?_@_A_B_Cbbbbbbbbbb b b b b bbbbbbbbbbbbbbbbbbb b!b"b#b$b%b&b'b(b)b*b+b,b-b.b/b0b1b2b3b4b5b6b7b8b9b:b;b<b=b>b?b@bAbBbCbDbEbFbGbHbIbJbKbLbMbNbObPbQbRbSbTbUbVbWbXbYbZb[b\b]b^b_b`babbbccccccccccc c c c c ccccccccccccccccccc c!c"c#c$c%c&c'c(c)c*c+c,c-c.c/c0c1c2c3c4c5c6c7c8c9c:c;c<c=c>c?c@cAcBcCcDcEffffffffff f f f f fffffffffffffffffff f!f"f#f$f%f&f'f(f)f*f+f,f-f.f/f0f1f2f3f4f5f6f7f8f9f:f;f<f=f>f?f@fAfBfCfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfYfZf[f\f]f^f_f`fafbfcgggggggggg g g g g ggggggggggggggggggg g!g"g#g$g%g&g'g(g)g*g+g,g-g.g/g0g1g2g3g4g5g6g7g8g9g:g;g<g=g>g?g@gAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg[g\g]g^g_g`gagbgchhhhhhhhhh h h h h hhhhhhhhhhhhhhhhhhh h!h"h#h$h%h&h'h(h)h*kkkkkkkkkk k k k k kkkkkkkkkkkkkkkkkkk k!k"k#k$k%k&k'k(k)k*k+k,k-k.k/k0k1k2k3k4k5k6k7k8k9k:k;k<k=k>k?k@kAkBkCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk[k\k]k^k_k`kakbkcllllllllll l l l l lllllllllllllllllll l!l"l#l$l%l&l'l(l)l*l+l,l-l.l/l0l1l2l3l4l5l6l7l8l9l:l;l<l=l>l?l@lAlBlClDlElFlGlHoooooooooo o o o o ooooooooooooooooooo o!o"o#o$o%o&o'o(o)o*o+o,o-o.o/o0o1o2o3o4o5o6o7o8o9o:o;o<o=o>o?o@oAoBoCoDoEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoToUoVoWoXoYoZo[o\o]o^o_o`oaobocpppppppppp p p p p ppppppppppppppppppp p!p"p#p$p%p&p'p(p)p*p+p,p-p.p/p0p1p2p3p4p5p6p7p8p9p:p;p<p=p>p?p@pApBpCssssssssss s s s s sssssssssssssssssss s!s"s#s$s%s&s's(s)s*s+s,s-s.s/s0s1s2s3s4s5s6s7s8s9s:s;s<s=s>s?s@sAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs[s\s]s^s_s`sasbsctttttttttt t t t t ttttttttttttttttttt t!t"t#t$t%t&t't(t)t*t+t,t-t.t/t0t1t2t3t4t5t6t7t8t9t:t;t<t=t>t?t@tAtBtCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTtUtVtWtXtYtZt[t\t]t^t_t`tatbtcuuuuuuuuuu u u u u uuuuuuuuuuuuuuuuuuu u!u"u#u$u%u&u'u(u)u*u+xxxxxxxxxx x x x x xxxxxxxxxxxxxxxxxxx x!x"x#x$x%x&x'x(x)x*x+x,x-x.x/x0x1x2x3x4x5x6x7x8x9x:x;x<x=x>x?x@xAxBxCxDxExFxGxHxIxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx[x\x]x^x_x`xaxbxcyyyyyyyyyy y y y y yyyyyyyyyyyyyyyyyyy y!y"y#y$y%y&y'y(y)y*y+y,y-y.y/|||||||||| | | | | ||||||||||||||||||| |!|"|#|$|%|&|'|(|)|*|+|,|-|.|/|0|1|2|3|4|5|6|7|8|9|:|;|<|=|>|?|@|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|[|\|]|^|_|`|a|b|c}}}}}}}}}} } } } } }}}}}}}}}}}}}}}}}}} }!}"}#}$}%}&}'}(})}*}+},}-}.}/}0}1}2}3}4}5}6}7}8}9}:};}<}=}>}?}@}A}B}C}D}E}F}G}H}I}J}K}L}M}N}O}P}Q}R}S}T}U}V}W}X}Y}Z}[}\}]}^}_}`}a}b}c~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDE      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc          !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNO      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEF      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./012345      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc           !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc           !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc            !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNO      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc           !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJK      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./01234      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc                                                          ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./012345678      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc           !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc           !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c!!!!!!!!!! ! ! ! ! !!!!!!!!!!!!!!!!!!! !!!"!#!$!%!&!'!(!)!*!+!,!-!.!/!0!1!2!3!4!5$$$$$$$$$$ $ $ $ $ $$$$$$$$$$$$$$$$$$$ $!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_$`$a$b$c%%%%%%%%%% % % % % %%%%%%%%%%%%%%%%%%% %!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a(((((((((( ( ( ( ( ((((((((((((((((((( (!("(#($(%(&('((()(*(+(,(-(.(/(0(1(2(3(4(5(6(7(8(9(:(;(<(=(>(?(@(A(B(C(D(E(F(G(H(I(J(K(L(M(N(O(P(Q(R(S(T(U(V(W(X(Y(Z([(\(](^(_(`(a(b(c)))))))))) ) ) ) ) ))))))))))))))))))) )!)")#)$)%)&)')()))*)+),)-).)/)0)1)2)3)4)5)6)7)8)9,,,,,,,,,, , , , , ,,,,,,,,,,,,,,,,,,, ,!,",#,$,%,&,',(,),*,+,,,-,.,/,0,1,2,3,4,5,6,7,8,9,:,;,<,=,>,?,@,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,[,\,],^,_,`,a,b,c---------- - - - - ------------------- -!-"-#-$-%-&-'-(-)-*-+-,---.-/-0-1-2-3-4-5-6-7-8-9-:-;-<0000000000 0 0 0 0 0000000000000000000 0!0"0#0$0%0&0'0(0)0*0+0,0-0.0/000102030405060708090:0;0<0=0>0?0@0A0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c1111111111 1 1 1 1 1111111111111111111 1!1"1#1$1%1&1'1(1)1*1+1,1-1.1/101112131415161718191:1;1<1=1>1?1@1A1B1C1D1E1F1G1H1I1J1K1L1M1N1O4444444444 4 4 4 4 4444444444444444444 4!4"4#4$4%4&4'4(4)4*4+4,4-4.4/404142434445464748494:4;4<4=4>4?4@4A4B4C4D4E4F4G4H4I4J4K4L4M4N4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4\4]4^4_4`4a4b4c5555555555 5 5 5 5 5555555555555555555 5!5"5#5$5%5&5'5(5)5*5+8888888888 8 8 8 8 8888888888888888888 8!8"8#8$8%8&8'8(8)8*8+8,8-8.8/808182838485868788898:8;8<8=8>8?8@8A8B8C8D8E8F8G8H8I8J8K8L8M8N8O8P8Q8R8S8T8U8V8W8X8Y8Z8[8\8]8^8_8`8a8b8c9999999999 9 9 9 9 9999999999999999999 9!9"9#9$9%9&9'9(9)9*9+9,9-9.9/90919293949596979899<<<<<<<<<< < < < < <<<<<<<<<<<<<<<<<<< =?=@=A=B=C=D=E=F=G=H=I=J=K=L=M=N=O=P=Q=R=S=T=U@@@@@@@@@@ @ @ @ @ @@@@@@@@@@@@@@@@@@@ @!@"@#@$@%@&@'@(@)@*@+@,@-@.@/@0@1@2@3@4@5@6@7@8@9@:@;@<@=@>@?@@@A@B@C@D@E@F@G@H@I@J@K@L@M@N@O@P@Q@R@S@T@U@V@W@X@Y@Z@[@\@]@^@_@`@a@b@cAAAAAAAAAA A A A A AAAAAAAAAAAAAAAAAAA A!A"A#A$A%A&A'A(A)A*A+A,A-A.A/A0A1A2A3A4A5A6A7A8A9A:A;A<A=A>A?A@AAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUDDDDDDDDDD D D D D DDDDDDDDDDDDDDDDDDD D!D"D#D$D%D&D'D(D)D*D+D,D-D.D/D0D1D2D3D4D5D6D7D8D9D:D;D<D=D>D?D@DADBDCDDDEDFDGDHDIDJDKDLDMDNDODPDQDRDSDTDUDVDWDXDYDZD[D\D]D^D_D`DaDbDcEEEEEEEEEE E E E E EEEEEEEEEEEEEEEEEEE E!E"E#E$E%E&E'E(E)E*E+E,E-E.E/E0E1E2E3E4E5E6E7E8E9E:E;E<E=E>E?E@EAEBECEDEEEFEGEHEIEJEKELEMENEOEPEQERESETEUEVEWEXEYEZE[E\E]E^E_E`EaEbEcFFFFFFFFFF F IIIIIIIIII I I I I IIIIIIIIIIIIIIIIIII I!I"I#I$I%I&I'I(I)I*I+I,I-I.I/I0I1I2I3I4I5I6I7I8I9I:I;I<I=I>I?I@IAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI[I\I]I^I_I`IaIbIcJJJJJJJJJJ J J J J JJJJJJJJJJJJJJJJJJJ J!J"J#J$J%J&J'J(J)J*J+J,J-J.J/J0J1J2J3J4J5J6J7J8J9J:J;J<J=J>J?J@JAJBJCJDJEJFJGJHJIJJJKJLJMMMMMMMMMMM M M M M MMMMMMMMMMMMMMMMMMM M!M"M#M$M%M&M'M(M)M*M+M,M-M.M/M0M1M2M3M4M5M6M7M8M9M:M;M<M=M>M?M@MAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM[M\M]M^M_M`MaMbMcNNNNNNNNNN N N N N NNNNNNNNNNNNNNNNNNN N!N"N#N$N%N&N'N(QQQQQQQQQQ Q Q Q Q QQQQQQQQQQQQQQQQQQQ Q!Q"Q#Q$Q%Q&Q'Q(Q)Q*Q+Q,Q-Q.Q/Q0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q:Q;Q<Q=Q>Q?Q@QAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQSQTQUQVQWQXQYQZQ[Q\Q]Q^Q_Q`QaQbQcRRRRRRRRRR R R R R RRRRRRRRRRRRRRRRRRR R!R"R#R$R%R&R'R(R)R*R+R,R-R.R/R0R1R2R3R4R5R6R7R8R9R:R;R<R=R>R?R@RARBRCRDRERFRGRHRIRJUUUUUUUUUU U U U U UUUUUUUUUUUUUUUUUUU U!U"U#U$U%U&U'U(U)U*U+U,U-U.U/U0U1U2U3U4U5U6U7U8U9U:U;U<U=U>U?U@UAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTUUUVUWUXUYUZU[U\U]U^U_U`UaUbUcVVVVVVVVVV V V V V VVVVVVVVVVVVVVVVVVV V!V"V#V$V%V&V'V(V)V*V+V,V-V.V/V0V1V2V3V4V5V6V7V8YYYYYYYYYY Y Y Y Y YYYYYYYYYYYYYYYYYYY Y!Y"Y#Y$Y%Y&Y'Y(Y)Y*Y+Y,Y-Y.Y/Y0Y1Y2Y3Y4Y5Y6Y7Y8Y9Y:Y;Y<Y=Y>Y?Y@YAYBYCYDYEYFYGYHYIYJYKYLYMYNYOYPYQYRYSYTYUYVYWYXYYYZY[Y\Y]Y^Y_Y`YaYbYcZZZZZZZZZZ Z Z Z Z ZZZZZZZZZZZZZZZZZZZ Z!Z"Z#Z$Z%Z&Z'Z(Z)Z*Z+Z,Z-Z.Z/Z0Z1Z2Z3Z4Z5Z6Z7Z8Z9Z:Z;Z<Z=Z>Z?Z@ZAZBZCZDZEZFZGZHZIZJZKZLZMZNZOZPZQZRZSZTZUZVZWZXZYZZZ[Z\Z]Z^Z_Z`ZaZbZc[[[[[[[[[^^^^^^^^^^ ^ ^ ^ ^ ^^^^^^^^^^^^^^^^^^^ ^!^"^#^$^%^&^'^(^)^*^+^,^-^.^/^0^1^2^3^4^5^6^7^8^9^:^;^<^=^>^?^@^A^B^C^D^E^F^G^H^I^J^K^L^M^N^O^P^Q^R^S^T^U^V^W^X^Y^Z^[^\^]^^^_^`^a^b^c__________ _ _ _ _ ___________________ _!_"_#_$_%_&_'_(_)_*_+_,_-_._/_0_1_2_3_4_5_6_7_8_9_:_;_<_=_>_?_@_A_B_C_D_E_F_G_H_I_J_K_L_M_N_Obbbbbbbbbb b b b b bbbbbbbbbbbbbbbbbbb b!b"b#b$b%b&b'b(b)b*b+b,b-b.b/b0b1b2b3b4b5b6b7b8b9b:b;b<b=b>b?b@bAbBbCbDbEbFbGbHbIbJbKbLbMbNbObPbQbRbSbTbUbVbWbXbYbZb[b\b]b^b_b`babbbccccccccccc c c c c ccccccccccccccccccc c!c"c#c$c%c&c'c(c)c*c+c,c-c.c/c0c1c2c3c4c5c6c7c8c9c:c;c<c=c>c?c@cAcBcCffffffffff f f f f fffffffffffffffffff f!f"f#f$f%f&f'f(f)f*f+f,f-f.f/f0f1f2f3f4f5f6f7f8f9f:f;f<f=f>f?f@fAfBfCfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfYfZf[f\f]f^f_f`fafbfcgggggggggg g g g g ggggggggggggggggggg g!g"g#g$g%g&g'g(g)g*g+g,g-g.g/g0g1g2g3g4g5g6g7g8g9g:g;g<g=g>g?g@gAgBgCgDgEgFgGgHgIgJjjjjjjjjjj j j j j jjjjjjjjjjjjjjjjjjj j!j"j#j$j%j&j'j(j)j*j+j,j-j.j/j0j1j2j3j4j5j6j7j8j9j:j;j<j=j>j?j@jAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj[j\j]j^j_j`jajbjckkkkkkkkkk k k k k kkkkkkkkkkkkkkkkkkk k!k"k#k$k%k&k'k(k)k*k+k,k-k.k/k0k1k2k3k4k5k6k7k8k9k:k;k<k=k>k?k@kAkBkCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYnnnnnnnnnn n n n n nnnnnnnnnnnnnnnnnnn n!n"n#n$n%n&n'n(n)n*n+n,n-n.n/n0n1n2n3n4n5n6n7n8n9n:n;n<n=n>n?n@nAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQnRnSnTnUnVnWnXnYnZn[n\n]n^n_n`nanbncoooooooooo o o o o ooooooooooooooooooo o!o"o#o$o%o&o'o(o)o*o+o,o-o.o/o0o1o2o3o4o5o6o7o8o9o:o;o<o=o>o?o@oAoBoCoDoEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoToUoVoWoXoYoZo[o\o]o^o_o`oarrrrrrrrrr r r r r rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr[r\r]r^r_r`rarbrcssssssssss s s s s sssssssssssssssssss s!s"s#s$s%s&s's(s)s*s+s,s-s.s/s0s1s2s3s4s5s6s7s8s9s:s;s<s=s>s?s@sAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs[s\s]s^s_s`sasbsctttttttttt t t t t ttttttttttttttttttt t!t"t#t$t%t&t't(t)t*t+t,t-t.t/t0t1t2t3t4t5t6t7t8t9t:t;t<t=t>t?t@tAtBtCtDtEtFtGtHtItJtKtLtMtNtOtPtQwwwwwwwwww w w w w wwwwwwwwwwwwwwwwwww w!w"w#w$w%w&w'w(w)w*w+w,w-w.w/w0w1w2w3w4w5w6w7w8w9w:w;w<w=w>w?w@wAwBwCwDwEwFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVwWwXwYwZw[w\w]w^w_w`wawbwcxxxxxxxxxx x x x x xxxxxxxxxxxxxxxxxxx x!x"x#x$x%x&x'x(x)x*x+x,x-x.x/x0x1x2x3x4x5x6x7x8x9x:x;x<x=x>x?x@xAxBxCxDxExFxGxHxIxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx[{{{{{{{{{{ { { { { {{{{{{{{{{{{{{{{{{{ {!{"{#{${%{&{'{({){*{+{,{-{.{/{0{1{2{3{4{5{6{7{8{9{:{;{<{={>{?{@{A{B{C{D{E{F{G{H{I{J{K{L{M{N{O{P{Q{R{S{T{U{V{W{X{Y{Z{[{\{]{^{_{`{a{b{c|||||||||| | | | | ||||||||||||||||||| |!|"|#|$|%|&|'|(|)|*|+|,|-|.|/|0|1|2|3|4|5|6|7|8|9|:|;|<|=|>|?|@|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|[|\|]|^|_|`|a|b      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc           !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./012      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHI      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLM      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHI      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLM      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@A      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEF      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLM      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc                                                ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c!!!!!!!!!! ! ! ! ! !!!!!!!!!!!!!!!!!!! !!!"!#!$!%!&!'!(!)!*!+!,!-!.!/!0!1!2!3!4!5!6!7!8!9!:!;!<!=!>!?!@!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z![!\!]!^!_!`!a!b!c"""""""""" " " " " """"""""""""""""""" "!"""#"$"%"&"'"(")"*"+","-"."/"0"1"2"3"4"5"6"7"8"9":";"<"=">"?"@"A"B"C"D"E"F"G"H"I"J"K"L"M"N"O"P"Q"R"S"T"U"V"W"X"Y"Z"["\"]"^"_"`"a"b"c########## # # # # ################### #!#"###$#%#&#'#(#)#*#+#,#-#.#/#0#1#2#3#4#5#6#7#8#9#:#;#<#=#>#?#@#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O#P#Q#R#S#T#U#V#W#X#Y#Z#[#\#]#^#_#`#a#b#c$$$$$$$$$$ $ $ $ $ $$$$$$$$$$$$$$$$$$$ $!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_$`$a$b$c%%%%%%%%%% % % % % %%%%%%%%%%%%%%%%%%% %!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c&&&&&&&&&& & & & & &&&&&&&&&&&&&&&&&&& &!&"&#&$&%&&&'&(&)&*&+&,&-&.&/&0&1&2&3&4&5&6&7&8&9&:&;&<&=&>&?&@&A&B&C&D&E&F&G&H&I&J&K&L&M&N&O&P&Q&R&S&T&U&V&W&X&Y&Z&[&\&]&^&_&`&a&b&c'''''''''' ' ' ' ' ''''''''''''''''''' '!'"'#'$'%'&'''(')'*'+','-'.'/'0'1'2'3'4'5'6'7'8'9':';'<'='>'?'@'A'B'C'D'E'F'G'H'I'J'K'L'M'N'O'P'Q'R'S'T'U'V'W'X'Y'Z'['\']'^'_'`'a'b'c(((((((((( ( ( ( ( ((((((((((((((((((( (!("(#($(%(&('((()(*(+(,(-(.(/(0(1(2(3(4(5(6(7(8(9(:(;(<(=(>(?(@(A(B(C(D(E(F(G(H(I(J(K(L(M(N(O(P(Q(R(S(T(U(V(W(X(Y(Z([(\(](^(_(`(a(b(c)))))))))) ) ) ) ) ))))))))))))))))))) )!)")#)$)%)&)')()))*)+),)-).)/)0)1)2)3)4)5)6)7)8)9):);)<)=)>)?)@)A)B)C)D)E)F)G)H)I)J)K)L)M)N)O)P)Q)R)S)T)U)V)W)X)Y)Z)[)\)])^)_)`)a)b)c********** * * * * ******************* *!*"*#*$*%*&*'*(*)***+*,*-*.*/*0*1*2*3*4*5*6*7*8*9*:*;*<*=*>*?*@*A*B*C*D*E*F*G*H*I*J*K*L*M*N*O*P*Q*R*S*T*U*V*W*X*Y*Z*[*\*]*^*_*`*a*b*c++++++++++ + + + + +++++++++++++++++++ +!+"+#+$+%+&+'+(+)+*+++,+-+.+/+0+1+2+3+4+5+6+7+8+9+:+;+<+=+>+?+@+A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+T+U+V+W+X+Y+Z+[+\+]+^+_+`+a+b+c,,,,,,,,,, , , , , ,,,,,,,,,,,,,,,,,,, ,!,",#,$,%,&,',(,),*,+,,,-,.,/,0,1,2,3,4,5,6,7,8,9,:,;,<,=,>,?,@,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,[,\,],^,_,`,a,b,c---------- - - - - ------------------- -!-"-#-$-%-&-'-(-)-*-+-,---.-/-0-1-2-3-4-5-6-7-8-9-:-;-<-=->-?-@-A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z-[-\-]-^-_-`-a-b-c.......... . . . . ................... .!.".#.$.%.&.'.(.).*.+.,.-.../.0.1.2.3.4.5.6.7.8.9.:.;.<.=.>.?.@.A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.[.\.].^._.`.a.b.c////////// / / / / /////////////////// /!/"/#/$/%/&/'/(/)/*/+/,/-/.///0/1/2/3/4/5/6/7/8/9/:/;/</=/>/?/@/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/[/\/]/^/_/`/a/b/c0000000000 0 0 0 0 0000000000000000000 0!0"0#0$0%0&0'0(0)0*0+0,0-0.0/000102030405060708090:0;0<0=0>0?0@0A0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c1111111111 1 1 1 1 1111111111111111111 1!1"1#1$1%1&1'1(1)1*1+1,1-1.1/101112131415161718191:1;1<1=1>1?1@1A1B1C1D1E1F1G1H1I1J1K1L1M1N1O1P1Q1R1S1T1U1V1W1X1Y1Z1[1\1]1^1_1`1a1b1c2222222222 2 2 2 2 2222222222222222222 2!2"2#2$2%2&2'2(2)2*2+2,2-2.2/202122232425262728292:2;2<2=2>2?2@2A2B2C2D2E2F2G2H2I2J2K2L2M2N2O2P2Q2R2S2T2U2V2W2X2Y2Z2[2\2]2^2_2`2a2b2c3333333333 3 3 3 3 3333333333333333333 3!3"3#3$3%3&3'3(3)3*3+3,3-3.3/303132333435363738393:3;3<3=3>3?3@3A3B3C3D3E3F3G3H3I3J3K3L3M3N3O3P3Q3R3S3T3U3V3W3X3Y3Z3[3\3]3^3_3`3a3b3c4444444444 4 4 4 4 4444444444444444444 4!4"4#4$4%4&4'4(4)4*4+4,4-4.4/404142434445464748494:4;4<4=4>4?4@4A4B4C4D4E4F4G4H4I4J4K4L4M4N4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4\4]4^4_4`4a4b4c5555555555 5 5 5 5 5555555555555555555 5!5"5#5$5%5&5'5(5)5*5+5,5-5.5/505152535455565758595:5;5<5=5>5?5@5A5B5C5D5E5F5G5H5I5J5K5L5M5N5O5P5Q5R5S5T5U5V5W5X5Y5Z5[5\5]5^5_5`5a5b5c6666666666 6 6 6 6 6666666666666666666 6!6"6#6$6%6&6'6(6)6*6+6,6-6.6/606162636465666768696:6;6<6=6>6?6@6A6B6C6D6E6F6G6H6I6J6K6L6M6N6O6P6Q6R6S6T6U6V6W6X6Y6Z6[6\6]6^6_6`6a6b6c7777777777 7 7 7 7 7777777777777777777 7!7"7#7$7%7&7'7(7)7*7+7,7-7.7/707172737475767778797:7;7<7=7>7?7@7A7B7C7D7E7F7G7H7I7J7K7L7M7N7O7P7Q7R7S7T7U7V7W7X7Y7Z7[7\7]7^7_7`7a7b7c8888888888 8 8 8 8 8888888888888888888 8!8"8#8$8%8&8'8(8)8*8+8,8-8.8/808182838485868788898:8;8<8=8>8?8@8A8B8C8D8E8F8G8H8I8J8K8L8M8N8O8P8Q8R8S8T8U8V8W8X8Y8Z8[8\8]8^8_8`8a8b8c9999999999 9 9 9 9 9999999999999999999 9!9"9#9$9%9&9'9(9)9*9+9,9-9.9/909192939495969798999:9;9<9=9>9?9@9A9B9C9D9E9F9G9H9I9J9K9L9M9N9O9P9Q9R9S9T9U9V9W9X9Y9Z9[9\9]9^9_9`9a9b9c:::::::::: : : : : ::::::::::::::::::: :!:":#:$:%:&:':(:):*:+:,:-:.:/:0:1:2:3:4:5:6:7:8:9:::;:<:=:>:?:@:A:B:C:D:E:F:G:H:I:J:K:L:M:N:O:P:Q:R:S:T:U:V:W:X:Y:Z:[:\:]:^:_:`:a:b:c;;;;;;;;;; ; ; ; ; ;;;;;;;;;;;;;;;;;;; ;!;";#;$;%;&;';(;);*;+;,;-;.;/;0;1;2;3;4;5;6;7;8;9;:;;;<;=;>;?;@;A;B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z;[;\;];^;_;`;a;b;c<<<<<<<<<< < < < < <<<<<<<<<<<<<<<<<<< =?=@=A=B=C=D=E=F=G=H=I=J=K=L=M=N=O=P=Q=R=S=T=U=V=W=X=Y=Z=[=\=]=^=_=`=a=b=c>>>>>>>>>> > > > > >>>>>>>>>>>>>>>>>>> >!>">#>$>%>&>'>(>)>*>+>,>->.>/>0>1>2>3>4>5>6>7>8>9>:>;><>=>>>?>@>A>B>C>D>E>F>G>H>I>J>K>L>M>N>O>P>Q>R>S>T>U>V>W>X>Y>Z>[>\>]>^>_>`>a>b>c?????????? ? ? ? ? ??????????????????? ?!?"?#?$?%?&?'?(?)?*?+?,?-?.?/?0?1?2?3?4?5?6?7?8?9?:?;?<?=?>???@?A?B?C?D?E?F?G?H?I?J?K?L?M?N?O?P?Q?R?S?T?U?V?W?X?Y?Z?[?\?]?^?_?`?a?b?c@@@@@@@@@@ @ @ @ @ @@@@@@@@@@@@@@@@@@@ @!@"@#@$@%@&@'@(@)@*@+@,@-@.@/@0@1@2@3@4@5@6@7@8@9@:@;@<@=@>@?@@@A@B@C@D@E@F@G@H@I@J@K@L@M@N@O@P@Q@R@S@T@U@V@W@X@Y@Z@[@\@]@^@_@`@a@b@cAAAAAAAAAA A A A A AAAAAAAAAAAAAAAAAAA A!A"A#A$A%A&A'A(A)A*A+A,A-A.A/A0A1A2A3A4A5A6A7A8A9A:A;A<A=A>A?A@AAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZA[A\A]A^A_A`AaAbAcBBBBBBBBBB B B B B BBBBBBBBBBBBBBBBBBB B!B"B#B$B%B&B'B(B)B*B+B,B-B.B/B0B1B2B3B4B5B6B7B8B9B:B;B<B=B>B?B@BABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBXBYBZB[B\B]B^B_B`BaBbBcCCCCCCCCCC C C C C CCCCCCCCCCCCCCCCCCC C!C"C#C$C%C&C'C(C)C*C+C,C-C.C/C0C1C2C3C4C5C6C7C8C9C:C;C<C=C>C?C@CACBCCCDCECFCGCHCICJCKCLCMCNCOCPCQCRCSCTCUCVCWCXCYCZC[C\C]C^C_C`CaCbCcDDDDDDDDDD D D D D DDDDDDDDDDDDDDDDDDD D!D"D#D$D%D&D'D(D)D*D+D,D-D.D/D0D1D2D3D4D5D6D7D8D9D:D;D<D=D>D?D@DADBDCDDDEDFDGDHDIDJDKDLDMDNDODPDQDRDSDTDUDVDWDXDYDZD[D\D]D^D_D`DaDbDcEEEEEEEEEE E E E E EEEEEEEEEEEEEEEEEEE E!E"E#E$E%E&E'E(E)E*E+E,E-E.E/E0E1E2E3E4E5E6E7E8E9E:E;E<E=E>E?E@EAEBECEDEEEFEGEHEIEJEKELEMENEOEPEQERESETEUEVEWEXEYEZE[E\E]E^E_E`EaEbEcFFFFFFFFFF F F F F FFFFFFFFFFFFFFFFFFF F!F"F#F$F%F&F'F(F)F*F+F,F-F.F/F0F1F2F3F4F5F6F7F8F9F:F;F<F=F>F?F@FAFBFCFDFEFFFGFHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF[F\F]F^F_F`FaFbFcGGGGGGGGGG G G G G GGGGGGGGGGGGGGGGGGG G!G"G#G$G%G&G'G(G)G*G+G,G-G.G/G0G1G2G3G4G5G6G7G8G9G:G;G<G=G>G?G@GAGBGCGDGEGFGGGHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGWGXGYGZG[G\G]G^G_G`GaGbGcHHHHHHHHHH H H H H HHHHHHHHHHHHHHHHHHH H!H"H#H$H%H&H'H(H)H*H+H,H-H.H/H0H1H2H3H4H5H6H7H8H9H:H;H<H=H>H?H@HAHBHCHDHEHFHGHHHIHJHKHLHMHNHOHPHQHRHSHTHUHVHWHXHYHZH[H\H]H^H_H`HaHbHcIIIIIIIIII I I I I IIIIIIIIIIIIIIIIIII I!I"I#I$I%I&I'I(I)I*I+I,I-I.I/I0I1I2I3I4I5I6I7I8I9I:I;I<I=I>I?I@IAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI[I\I]I^I_I`IaIbIcJJJJJJJJJJ J J J J JJJJJJJJJJJJJJJJJJJ J!J"J#J$J%J&J'J(J)J*J+J,J-J.J/J0J1J2J3J4J5J6J7J8J9J:J;J<J=J>J?J@JAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJVJWJXJYJZJ[J\J]J^J_J`JaJbJcKKKKKKKKKK K K K K KKKKKKKKKKKKKKKKKKK K!K"K#K$K%K&K'K(K)K*K+K,K-K.K/K0K1K2K3K4K5K6K7K8K9K:K;K<K=K>K?K@KAKBKCKDKEKFKGKHKIKJKKKLKMKNKOKPKQKRKSKTKUKVKWKXKYKZK[K\K]K^K_K`KaKbKcLLLLLLLLLL L L L L LLLLLLLLLLLLLLLLLLL L!L"L#L$L%L&L'L(L)L*L+L,L-L.L/L0L1L2L3L4L5L6L7L8L9L:L;L<L=L>L?L@LALBLCLDLELFLGLHLILJLKLLLMLNLOLPLQLRLSLTLULVLWLXLYLZL[L\L]L^L_L`LaLbLcMMMMMMMMMM M M M M MMMMMMMMMMMMMMMMMMM M!M"M#M$M%M&M'M(M)M*M+M,M-M.M/M0M1M2M3M4M5M6M7M8M9M:M;M<M=M>M?M@MAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM[M\M]M^M_M`MaMbMcNNNNNNNNNN N N N N NNNNNNNNNNNNNNNNNNN N!N"N#N$N%N&N'N(N)N*N+N,N-N.N/N0N1N2N3N4N5N6N7N8N9N:N;N<N=N>N?N@NANBNCNDNENFNGNHNINJNKNLNMNNNONPNQNRNSNTNUNVNWNXNYNZN[N\N]N^N_N`NaNbNcOOOOOOOOOO O O O O OOOOOOOOOOOOOOOOOOO O!O"O#O$O%O&O'O(O)O*O+O,O-O.O/O0O1O2O3O4O5O6O7O8O9O:O;O<O=O>O?O@OAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWOXOYOZO[O\O]O^O_O`OaObOcPPPPPPPPPP P P P P PPPPPPPPPPPPPPPPPPP P!P"P#P$P%P&P'P(P)P*P+P,P-P.P/P0P1P2P3P4P5P6P7P8P9P:P;P<P=P>P?P@PAPBPCPDPEPFPGPHPIPJPKPLPMPNPOPPPQPRPSPTPUPVPWPXPYPZP[P\P]P^P_P`PaPbPcQQQQQQQQQQ Q Q Q Q QQQQQQQQQQQQQQQQQQQ Q!Q"Q#Q$Q%Q&Q'Q(Q)Q*Q+Q,Q-Q.Q/Q0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q:Q;Q<Q=Q>Q?Q@QAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQSQTQUQVQWQXQYQZQ[Q\Q]Q^Q_Q`QaQbQcRRRRRRRRRR R R R R RRRRRRRRRRRRRRRRRRR R!R"R#R$R%R&R'R(R)R*R+R,R-R.R/R0R1R2R3R4R5R6R7R8R9R:R;R<R=R>R?R@RARBRCRDRERFRGRHRIRJRKRLRMRNRORPRQRRRSRTRURVRWRXRYRZR[R\R]R^R_R`RaRbRcSSSSSSSSSS S S S S SSSSSSSSSSSSSSSSSSS S!S"S#S$S%S&S'S(S)S*S+S,S-S.S/S0S1S2S3S4S5S6S7S8S9S:S;S<S=S>S?S@SASBSCSDSESFSGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS[S\S]S^S_S`SaSbScTTTTTTTTTT T T T T TTTTTTTTTTTTTTTTTTT T!T"T#T$T%T&T'T(T)T*T+T,T-T.T/T0T1T2T3T4T5T6T7T8T9T:T;T<T=T>T?T@TATBTCTDTETFTGTHTITJTKTLTMTNTOTPTQTRTSTTTUTVTWTXTYTZT[T\T]T^T_T`TaTbTcUUUUUUUUUU U U U U UUUUUUUUUUUUUUUUUUU U!U"U#U$U%U&U'U(U)U*U+U,U-U.U/U0U1U2U3U4U5U6U7U8U9U:U;U<U=U>U?U@UAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTUUUVUWUXUYUZU[U\U]U^U_U`UaUbUcVVVVVVVVVV V V V V VVVVVVVVVVVVVVVVVVV V!V"V#V$V%V&V'V(V)V*V+V,V-V.V/V0V1V2V3V4V5V6V7V8V9V:V;V<V=V>V?V@VAVBVCVDVEVFVGVHVIVJVKVLVMVNVOVPVQVRVSVTVUVVVWVXVYVZV[V\V]V^V_V`VaVbVcWWWWWWWWWW W W W W WWWWWWWWWWWWWWWWWWW W!W"W#W$W%W&W'W(W)W*W+W,W-W.W/W0W1W2W3W4W5W6W7W8W9W:W;W<W=W>W?W@WAWBWCWDWEWFWGWHWIWJWKWLWMWNWOWPWQWRWSWTWUWVWWWXWYWZW[W\W]W^W_W`WaWbWcXXXXXXXXXX X X X X XXXXXXXXXXXXXXXXXXX X!X"X#X$X%X&X'X(X)X*X+X,X-X.X/X0X1X2X3X4X5X6X7X8X9X:X;X<X=X>X?X@XAXBXCXDXEXFXGXHXIXJXKXLXMXNXOXPXQXRXSXTXUXVXWXXXYXZX[X\X]X^X_X`XaXbXcYYYYYYYYYY Y Y Y Y YYYYYYYYYYYYYYYYYYY Y!Y"Y#Y$Y%Y&Y'Y(Y)Y*Y+Y,Y-Y.Y/Y0Y1Y2Y3Y4Y5Y6Y7Y8Y9Y:Y;Y<Y=Y>Y?Y@YAYBYCYDYEYFYGYHYIYJYKYLYMYNYOYPYQYRYSYTYUYVYWYXYYYZY[Y\Y]Y^Y_Y`YaYbYcZZZZZZZZZZ Z Z Z Z ZZZZZZZZZZZZZZZZZZZ Z!Z"Z#Z$Z%Z&Z'Z(Z)Z*Z+Z,Z-Z.Z/Z0Z1Z2Z3Z4Z5Z6Z7Z8Z9Z:Z;Z<Z=Z>Z?Z@ZAZBZCZDZEZFZGZHZIZJZKZLZMZNZOZPZQZRZSZTZUZVZWZXZYZZZ[Z\Z]Z^Z_Z`ZaZbZc[[[[[[[[[[ [ [ [ [ [[[[[[[[[[[[[[[[[[[ [!["[#[$[%[&['[([)[*[+[,[-[.[/[0[1[2[3[4[5[6[7[8[9[:[;[<[=[>[?[@[A[B[C[D[E[F[G[H[I[J[K[L[M[N[O[P[Q[R[S[T[U[V[W[X[Y[Z[[[\[][^[_[`[a[b[c\\\\\\\\\\ \ \ \ \ \\\\\\\\\\\\\\\\\\\ \!\"\#\$\%\&\'\(\)\*\+\,\-\.\/\0\1\2\3\4\5\6\7\8\9\:\;\<\=\>\?\@\A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z\[\\\]\^\_\`\a\b\c]]]]]]]]]] ] ] ] ] ]]]]]]]]]]]]]]]]]]] ]!]"]#]$]%]&]'](])]*]+],]-].]/]0]1]2]3]4]5]6]7]8]9]:];]<]=]>]?]@]A]B]C]D]E]F]G]H]I]J]K]L]M]N]O]P]Q]R]S]T]U]V]W]X]Y]Z][]\]]]^]_]`]a]b]c^^^^^^^^^^ ^ ^ ^ ^ ^^^^^^^^^^^^^^^^^^^ ^!^"^#^$^%^&^'^(^)^*^+^,^-^.^/^0^1^2^3^4^5^6^7^8^9^:^;^<^=^>^?^@^A^B^C^D^E^F^G^H^I^J^K^L^M^N^O^P^Q^R^S^T^U^V^W^X^Y^Z^[^\^]^^^_^`^a^b^c__________ _ _ _ _ ___________________ _!_"_#_$_%_&_'_(_)_*_+_,_-_._/_0_1_2_3_4_5_6_7_8_9_:_;_<_=_>_?_@_A_B_C_D_E_F_G_H_I_J_K_L_M_N_O_P_Q_R_S_T_U_V_W_X_Y_Z_[_\_]_^___`_a_b_c`````````` ` ` ` ` ``````````````````` `!`"`#`$`%`&`'`(`)`*`+`,`-`.`/`0`1`2`3`4`5`6`7`8`9`:`;`<`=`>`?`@`A`B`C`D`E`F`G`H`I`J`K`L`M`N`O`P`Q`R`S`T`U`V`W`X`Y`Z`[`\`]`^`_```a`b`caaaaaaaaaa a a a a aaaaaaaaaaaaaaaaaaa a!a"a#a$a%a&a'a(a)a*a+a,a-a.a/a0a1a2a3a4a5a6a7a8a9a:a;a<a=a>a?a@aAaBaCaDaEaFaGaHaIaJaKaLaMaNaOaPaQaRaSaTaUaVaWaXaYaZa[a\a]a^a_a`aaabacbbbbbbbbbb b b b b bbbbbbbbbbbbbbbbbbb b!b"b#b$b%b&b'b(b)b*b+b,b-b.b/b0b1b2b3b4b5b6b7b8b9b:b;b<b=b>b?b@bAbBbCbDbEbFbGbHbIbJbKbLbMbNbObPbQbRbSbTbUbVbWbXbYbZb[b\b]b^b_b`babbbccccccccccc c c c c ccccccccccccccccccc c!c"c#c$c%c&c'c(c)c*c+c,c-c.c/c0c1c2c3c4c5c6c7c8c9c:c;c<c=c>c?c@cAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc[c\c]c^c_c`cacbccdddddddddd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdceeeeeeeeee e e e e eeeeeeeeeeeeeeeeeee e!e"e#e$e%e&e'e(e)e*e+e,e-e.e/e0e1e2e3e4e5e6e7e8e9e:e;e<e=e>e?e@eAeBeCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZe[e\e]e^e_e`eaebecffffffffff f f f f fffffffffffffffffff f!f"f#f$f%f&f'f(f)f*f+f,f-f.f/f0f1f2f3f4f5f6f7f8f9f:f;f<f=f>f?f@fAfBfCfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfYfZf[f\f]f^f_f`fafbfcgggggggggg g g g g ggggggggggggggggggg g!g"g#g$g%g&g'g(g)g*g+g,g-g.g/g0g1g2g3g4g5g6g7g8g9g:g;g<g=g>g?g@gAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg[g\g]g^g_g`gagbgchhhhhhhhhh h h h h hhhhhhhhhhhhhhhhhhh h!h"h#h$h%h&h'h(h)h*h+h,h-h.h/h0h1h2h3h4h5h6h7h8h9h:h;h<h=h>h?h@hAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh[h\h]h^h_h`hahbhciiiiiiiiii i i i i iiiiiiiiiiiiiiiiiii i!i"i#i$i%i&i'i(i)i*i+i,i-i.i/i0i1i2i3i4i5i6i7i8i9i:i;i<i=i>i?i@iAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi[i\i]i^i_i`iaibicjjjjjjjjjj j j j j jjjjjjjjjjjjjjjjjjj j!j"j#j$j%j&j'j(j)j*j+j,j-j.j/j0j1j2j3j4j5j6j7j8j9j:j;j<j=j>j?j@jAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj[j\j]j^j_j`jajbjckkkkkkkkkk k k k k kkkkkkkkkkkkkkkkkkk k!k"k#k$k%k&k'k(k)k*k+k,k-k.k/k0k1k2k3k4k5k6k7k8k9k:k;k<k=k>k?k@kAkBkCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk[k\k]k^k_k`kakbkcllllllllll l l l l lllllllllllllllllll l!l"l#l$l%l&l'l(l)l*l+l,l-l.l/l0l1l2l3l4l5l6l7l8l9l:l;l<l=l>l?l@lAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl[l\l]l^l_l`lalblcmmmmmmmmmm m m m m mmmmmmmmmmmmmmmmmmm m!m"m#m$m%m&m'm(m)m*m+m,m-m.m/m0m1m2m3m4m5m6m7m8m9m:m;m<m=m>m?m@mAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm[m\m]m^m_m`mambmcnnnnnnnnnn n n n n nnnnnnnnnnnnnnnnnnn n!n"n#n$n%n&n'n(n)n*n+n,n-n.n/n0n1n2n3n4n5n6n7n8n9n:n;n<n=n>n?n@nAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQnRnSnTnUnVnWnXnYnZn[n\n]n^n_n`nanbncoooooooooo o o o o ooooooooooooooooooo o!o"o#o$o%o&o'o(o)o*o+o,o-o.o/o0o1o2o3o4o5o6o7o8o9o:o;o<o=o>o?o@oAoBoCoDoEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoToUoVoWoXoYoZo[o\o]o^o_o`oaobocpppppppppp p p p p ppppppppppppppppppp p!p"p#p$p%p&p'p(p)p*p+p,p-p.p/p0p1p2p3p4p5p6p7p8p9p:p;p<p=p>p?p@pApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUpVpWpXpYpZp[p\p]p^p_p`papbpcqqqqqqqqqq q q q q qqqqqqqqqqqqqqqqqqq q!q"q#q$q%q&q'q(q)q*q+q,q-q.q/q0q1q2q3q4q5q6q7q8q9q:q;q<q=q>q?q@qAqBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqRqSqTqUqVqWqXqYqZq[q\q]q^q_q`qaqbqcrrrrrrrrrr r r r r rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr[r\r]r^r_r`rarbrcssssssssss s s s s sssssssssssssssssss s!s"s#s$s%s&s's(s)s*s+s,s-s.s/s0s1s2s3s4s5s6s7s8s9s:s;s<s=s>s?s@sAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs[s\s]s^s_s`sasbsctttttttttt t t t t ttttttttttttttttttt t!t"t#t$t%t&t't(t)t*t+t,t-t.t/t0t1t2t3t4t5t6t7t8t9t:t;t<t=t>t?t@tAtBtCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTtUtVtWtXtYtZt[t\t]t^t_t`tatbtcuuuuuuuuuu u u u u uuuuuuuuuuuuuuuuuuu u!u"u#u$u%u&u'u(u)u*u+u,u-u.u/u0u1u2u3u4u5u6u7u8u9u:u;u<u=u>u?u@uAuBuCuDuEuFuGuHuIuJuKuLuMuNuOuPuQuRuSuTuUuVuWuXuYuZu[u\u]u^u_u`uaubucvvvvvvvvvv v v v v vvvvvvvvvvvvvvvvvvv v!v"v#v$v%v&v'v(v)v*v+v,v-v.v/v0v1v2v3v4v5v6v7v8v9v:v;v<v=v>v?v@vAvBvCvDvEvFvGvHvIvJvKvLvMvNvOvPvQvRvSvTvUvVvWvXvYvZv[v\v]v^v_v`vavbvcwwwwwwwwww w w w w wwwwwwwwwwwwwwwwwww w!w"w#w$w%w&w'w(w)w*w+w,w-w.w/w0w1w2w3w4w5w6w7w8w9w:w;w<w=w>w?w@wAwBwCwDwEwFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVwWwXwYwZw[w\w]w^w_w`wawbwcxxxxxxxxxx x x x x xxxxxxxxxxxxxxxxxxx x!x"x#x$x%x&x'x(x)x*x+x,x-x.x/x0x1x2x3x4x5x6x7x8x9x:x;x<x=x>x?x@xAxBxCxDxExFxGxHxIxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx[x\x]x^x_x`xaxbxcyyyyyyyyyy y y y y yyyyyyyyyyyyyyyyyyy y!y"y#y$y%y&y'y(y)y*y+y,y-y.y/y0y1y2y3y4y5y6y7y8y9y:y;y<y=y>y?y@yAyByCyDyEyFyGyHyIyJyKyLyMyNyOyPyQyRySyTyUyVyWyXyYyZy[y\y]y^y_y`yaybyczzzzzzzzzz z z z z zzzzzzzzzzzzzzzzzzz z!z"z#z$z%z&z'z(z)z*z+z,z-z.z/z0z1z2z3z4z5z6z7z8z9z:z;z<z=z>z?z@zAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz[z\z]z^z_z`zazbzc{{{{{{{{{{ { { { { {{{{{{{{{{{{{{{{{{{ {!{"{#{${%{&{'{({){*{+{,{-{.{/{0{1{2{3{4{5{6{7{8{9{:{;{<{={>{?{@{A{B{C{D{E{F{G{H{I{J{K{L{M{N{O{P{Q{R{S{T{U{V{W{X{Y{Z{[{\{]{^{_{`{a{b{c|||||||||| | | | | ||||||||||||||||||| |!|"|#|$|%|&|'|(|)|*|+|,|-|.|/|0|1|2|3|4|5|6|7|8|9|:|;|<|=|>|?|@|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|[|\|]|^|_|`|a|b|c}}}}}}}}}} } } } } }}}}}}}}}}}}}}}}}}} }!}"}#}$}%}&}'}(})}*}+},}-}.}/}0}1}2}3}4}5}6}7}8}9}:};}<}=}>}?}@}A}B}C}D}E}F}G}H}I}J}K}L}M}N}O}P}Q}R}S}T}U}V}W}X}Y}Z}[}\}]}^}_}`}a}b}c~~~~~~~~~~ ~ ~ ~ ~ ~~~~~~~~~~~~~~~~~~~ ~!~"~#~$~%~&~'~(~)~*~+~,~-~.~/~0~1~2~3~4~5~6~7~8~9~:~;~<~=~>~?~@~A~B~C~D~E~F~G~H~I~J~K~L~M~N~O~P~Q~R~S~T~U~V~W~X~Y~Z~[~\~]~^~_~`~a~b~c      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+qpdf-8.0.2/libtests/qtest/predictors/in10000644000064100006410000000762113247541377016335 0ustar ejbejb<΢3?S[  -  /  U;ݢqpdf-8.0.2/libtests/qtest/predictors/06--32-1-8.decoded0000644000064100006410000000200013247541377020245 0ustar ejbejbvovgov`govY`govRY`govLRY`govELRY`gov?ELRY`gov:?ELRY`gov4:?ELRY`gov/4:?ELRY`go*/4:?ELRY`gov&*/4:?ELRY`gov!&*/4:?ELRY`gov!&*/4:?ELRY`gov!&*/4:?ELRY`go!&*/4:?ELRY`!&*/4:?ELRov!&*/4:?E`gov !&*/4:RY`gov !&*/v !&*ov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`govqpdf-8.0.2/libtests/qtest/predictors/12--32-1-4.data0000644000064100006410000000104013247541377017563 0ustar ejbejbBVwwwweAS"C"!"4B B!g˺v0c""ʯ14*  0x˹@t2!ݹ:  y̺Pt2!ݹ+F̺dc""ʯ ޶!FxdS"qpdf-8.0.2/libtests/qtest/predictors/01--32-3-16.data0000644000064100006410000001404013247541377017652 0ustar ejbejbBBBBBBBBB BBBB BBBBB BBBBBB BBBBBBB BBBB BBBB BBBB BBBBB BBBB BBBBBB BBBB BBBBBBB BBBB BBBB BBBB BBBB BBBB BBBBB BBBB BBBB BBBBBB BBBB BBBB BBBBBBB BBBB BBBB BBBB CBBB BBBB BBBB BBBB CBBBB BBBB BBBB BBBB CBBBBB BBBB BBBB BBBB CBBBBBB BBBB BBBB BBBB CBBB BBBB BBBB BBBB BBBB CBBB BBBBB BBBB BBBB BBBB CBBB BBBBBB BBBB BBBB BBBB CBBB BBBBBBB BBBB BBBB BBBB CBBB BBBB BBBB BBBB BBBB BBBB CBBB BBBB BBBBB BBBB BBBB BBBB CBBB BBBB BBBBBB BBBB BBBB BBBB CBBB BBBB BBBBBBB BBBB BBBB BBBB CBBB BBBB BBBB BBBB BBBB BBBB BBBB CBBB BBBB BBBB BBBBB BBBB BBBB BBBB CBBB BBBB BBBB BBBBBB BBBB BBBB BBBB CBBB BBBB BBBB BBBBqpdf-8.0.2/libtests/qtest/predictors/02--32-1-8.data0000644000064100006410000000204013247541377017567 0ustar ejbejbvovgov`govY`govRY`govLRY`govELRY`gov?ELRY`gov:?ELRY`gov4:?ELRY`gov/4:?ELRY`go*/4:?ELRY`g&*/4:?ELRY`v!&*/4:?ELRYov!&*/4:?ELRg!&*/4:?ELv!&*/4:?Egov!&*/4:?Y`gov!&*/4:LRY`go !&*/4LRY` !&*/4ov !&*/4`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`govqpdf-8.0.2/libtests/qtest/predictors/tiff-02--8-2-4.data0000644000064100006410000000002013247541377020431 0ustar ejbejbxxqpdf-8.0.2/libtests/qtest/predictors/06--32-1-8.data0000644000064100006410000000204013247541377017573 0ustar ejbejbUNHB<7c7r7ovcro`R*/4:?ELRY`qpdf-8.0.2/libtests/qtest/predictors/tiff-02--8-2-4.decoded0000644000064100006410000000002013247541377021107 0ustar ejbejb}__w}__wqpdf-8.0.2/libtests/qtest/predictors/tiff-03--4-1-16.data0000644000064100006410000000001013247541377020507 0ustar ejbejbUUd 9[qpdf-8.0.2/libtests/qtest/predictors/07--32-3-8.data0000644000064100006410000000604013247541377017602 0ustar ejbejb ')/179?AGJORWZ_bgjosw{           &.6>=TY$  -  !?  ?S  [` tg[M?0!ulUU__jjuu qpdf-8.0.2/libtests/qtest/predictors/in20000644000064100006410000122715413247541377016344 0ustar ejbejbͿQmW6= L    z2`[*  " iOs:s1B(: X 'L3#= 'pe  /C0~]Yg25v23* . |UfQs j+w aBEyk5l N [ Y4 vw^}` @ FH LRM/ l yA^V#/]U4!F4F~[h A  OXq=; Sj+2=A 13" f h e13!n4h-](%6F< QB>Y( Tw)N~u(#SIkZ-'2 P m;,P Bt !_4T{. GND< 34QO""> RU,}K`f@(T #R 16m;8O$e TG4NGVTQd-bfQqQ 3)}49h lngg2.:uz ?q AtC &"z36? i(<;}; b uV. = F-_01B #VP[zF( i#CBMV (*J2Xd/% { jRQ Jzv1j{*L`). | ;1ie \MPo '  lBr2  bS!aBOb| 3q6hD  4=i a17}3Y`S-b ij ESKC nLC) H ",VcDp8785SWG $LTW  BZrTvf M 2y9 "Ih ca-jJ.!/ed\ddTpa  O4x8hsojQd yE 6j x$w+a~Nv c;.tS  +i ZIJ!k9HPlYU!TuRwSqE_\ TXqpjpUq7O&bYM_4anG 0r?XF*~\`|i$   Q    +i[s $+p D y9@+6?=t~/y]xorC7c Kr<\YM %-v5iFH>  x9m )(VXO$.\5r&U@C'' PtD8= n:, VZ",HZo2 9(">2`  Kf? ]UJal':4z4.(n<srCVvV$j b $_(<Lq`d (& gk- dL @ e Y[8[\7|;lBy8 `4I*ya p -/ 1 mpm! L!K_kW p# K0 ! P4 NW2C 1Be FHME 67Gl8 DF # QBJTpJq  -K253/2R $r5IS+khKC /Si3 '& IBk -  P ~ }v0 D1t~F 9% X4  ]/~aDwYQhTF tl kS\ %'}vlV<j_>Yu 42 Zg  *iPUU 1:!N=: 6FT6 t=qx?- 1tIB6W& fDo79 D$ muj$f 7a+B+ R> #6  1+dA/ k}\u7 / 'Lk   F0d"d3w 6& S( v\?|} uB  6<2; WXfS xB\ \ i>y5/FJHHTDmEe=7Bp8y;~DO&B*yB@u@4V*>W7777  %- fP  . d % $ _ m  a  7      " +  !C ` .   A   U 0  *    }! N F n'iOy~~ S*AR lD'8%CJ#Ww#qC ,&CVM 9 +.fCe9kX= -o.;FCLa3 i _.5c _^*<= s68  Dvk]@ x&D6ma>7p'$JH @Ia0A (SB59v [AS ,O }0^g:6 ej> v*@U4t/u& Z!MW SH > e`cc/hM* R\ 0A:!@ w9E'<I :?ja C5 HZ+y+gp!_h (,kt,?}{&X cRPP#u]9 KOa) = #qY S  w;G:=[" 0 B+)!A-E(j kg*-7 Sa36SI0/[qaowG=Q. n 6 QLE i]q9NX3!KK c49r A TW~N3V.WF<-1SdEg{:Q]UAXN'Dh9H/&?;m>)N&W ck&(Q 9=Hc_6BJA{wN\ ?]w/r fe)D,e~+ . % sOToND5CYPPitTTCv@>cTyDV'AhLEdv./<chPC>Q\jGOMsfZ$&wUGwh"hL3VTyFec>"81cth@v[ePoc~oQ5{U^rD[z1o('}yNrb^JCU1>6C.%Rm=Qt               /4,&qpdf-8.0.2/libtests/qtest/predictors/10--32-1-8.decoded0000644000064100006410000000200013247541377020240 0ustar ejbejbvovgov`govY`govRY`govLRY`govELRY`gov?ELRY`gov:?ELRY`gov4:?ELRY`gov/4:?ELRY`gov*/4:?ELRY`gov&*/4:?ELRY`g!&*/4:?ELRY`v!&*/4:?ELRov!&*/4:?EL`gov!&*/4:?EY`go!&*/4:?!&*/4: !&*/4:?ELRYov !&*/4:?ELRgov !&*/4:?EL`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`govqpdf-8.0.2/libtests/qtest/predictors/07--32-3-8.decoded0000644000064100006410000000600013247541377020254 0ustar ejbejb ')/179?AGJORWZ_bgjosw{&-4;'C/J7Q?XG`OgWn_ug|owſ7;?EKQW']/d7j?pGvO|W_gowǷͿMSX_dins'x/}7?GOW_gowƧ˯зտ`gov'.7?GNW_gnwŎɗ͟Ѧծٷݿ߳oxЁߋ'.7?GNW_gnwЇӎٟ֗ܦץ|Лߧ'.7?GNW_gnwΘе'.7?GNW_gnwƌ&^fnv~p{^fnv~Xu`is|&.6>^fnv~BjIuPX_hpy%-5=U]emu}0_5j:u@FLSZahp %-5MU]emu} U$_'j,u049>CHNTY`e jot%y-EMU]emu}LU_ju #&)-048;@F LRX%k=qEwM}U]emu}C L U _ ju ' .K4RCHNTY`ej   & , 4;CLU_ju #&)-048;@F   &,4;C L U _ ju qpdf-8.0.2/libtests/qtest/predictors/05--32-3-8.data0000644000064100006410000000604013247541377017600 0ustar ejbejb       7M`       o           |                      Np    FXu       <>Bj         `5 0_      !x-  U       0`t% L        R C         . ;  !     4         0 ,          ?; &         MS           [g          hx         ߧ      е                                                                         qpdf-8.0.2/libtests/qtest/predictors/12--32-1-4.decoded0000644000064100006410000000100013247541377020235 0ustar ejbejbEUUT0VwwwweAVxe0Fxdgv@Fy˻dg˺v0x˩QF̺dWܻuh˩0x˹@y̺Py̺PyܺPyܺPy̺Py̺Px˹@h˩0WܻuF̺dx˩Qg˺v0Fy˻dgv@FxdVxe0VwwwweAEUUT0qpdf-8.0.2/libtests/qtest/predictors/09--32-3-8.data0000644000064100006410000000604013247541377017604 0ustar ejbejb  !$%(*,-014589<>@BDFHJLOPRTVXZ\^`cdghklopttwx{|o   h)  a2  Y:    S?       LE       FG        @J  ⁎過偍၍݁فՁс́ɀ3 *: m/ 5 b cdefgV0 DE* f5& t%"Ɓā  сpw ߁   '      4     A    F.  O   F6  0^  ;,ߧ  ;3    ;;@@FFLLRRYY           qpdf-8.0.2/libtests/qtest/predictors/tiff-01--16-1-8.data0000644000064100006410000000006013247541377020516 0ustar ejbejbWqpdf-8.0.2/libtests/qtest/predictors/03--32-3-8.decoded0000644000064100006410000000600013247541377020250 0ustar ejbejb ')/179?AGJORWZ_bgjosw{&-4;'C/J7Q?XG`OgWn_ug|owſ7;?EKQW']/d7j?pGvO|W_gowǷͿMSX_dins'x/}7?GOW_gowƧ˯зտ`gov'.7?GNW_gnwŎɗ͟Ѧծٷݿ߳oxЁߋ'.7?GNW_gnwЇӎٟ֗ܦץ|Лߧ'.7?GNW_gnwΘе'.7?GNW_gnwƌ&^fnv~p{^fnv~Xu`is|&.6>^fnv~BjIuPX_hpy%-5=U]emu}0_5j:u@FLSZahp %-MU]emu} U$_'j,u049>CHN`e joEMU]emu}LU_ju #&)-0;@F k=qEwM}U]emu}C L U _ ju5K4RCHNTY`ej   & , 4;CLU_ju #&)-048;@F   &,4;C L U _ ju qpdf-8.0.2/libtests/qtest/predictors/tiff-01--16-1-8.decoded0000644000064100006410000000006013247541377021174 0ustar ejbejb  WXWVUTSRQG=33467qpdf-8.0.2/libtests/qtest/predictors/11--32-3-8.data0000644000064100006410000000604013247541377017575 0ustar ejbejb                    N      :  - j!M MiuH    Mߋ               qpdf-8.0.2/libtests/qtest/predictors/08--32-1-8.decoded0000644000064100006410000000200013247541377020247 0ustar ejbejbvovgov`govY`govRY`govLRY`govELRY`gov?ELRY`gov:?ELRY`gov4:?ELRY`gov/4:?ELRY`gov*/4:?ELRY`gov&*/4:?ELRY`go!&*/4:?ELRY`g!&*/4:?ELRY`gov!&*/4:?ELRY`gov!&*/4:?ELRY`gov!&*/4:?ELRY`gov!&*/4:LRY`go !&*/4LRY` !&*/4ov !&*/4`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`govqpdf-8.0.2/libtests/qtest/predictors/11--32-3-8.decoded0000644000064100006410000000600013247541377020247 0ustar ejbejb ')/179?AGJORWZ_bgjosw{&-4;'C/J7Q?XG`OgWn_ug|owſ7;?EKQW']/d7j?pGvO|W_gowǷͿMSX_dins'x/}7?GOW_gowƧ˯зտ`gov'.7?GNW_gnwŎɗ͟Ѧծٷݿ߳oxЁߋ'.7?GNW_gnwЇӎٟ֗ܦץ|Лߧ'.7?GNW_gnwΘе'.7?GNW_gnwƌ&.6NV^fnv~p{&.FNV^fnv~Xu`is|>FNV^fnv~BjIuPX_hpy -5=EMU]emu}0_5j:u@FLSZahpw%-5=EMU]emu} U$_'j,u049>CHNTYjot%y-~5=EMU]emu}LU_ju #&)-04F LRX%^-d5k=qEwM}U]emu}C L U _ ju ' .5<$C,K4RCHNTY`ej   & , 4;CLU_ju #&)-048;@F   &,4;C L U _ ju qpdf-8.0.2/libtests/qtest/predictors/10--32-1-8.data0000644000064100006410000000204013247541377017566 0ustar ejbejbNcyvy`y:oLqpdf-8.0.2/libtests/qtest/predictors/02--32-1-8.decoded0000644000064100006410000000200013247541377020241 0ustar ejbejbvovgov`govY`govRY`govLRY`govELRY`gov?ELRY`gov:?ELRY`gov4:?ELRY`gov/4:?ELRY`go*/4:?ELRY`g&*/4:?ELRY`v!&*/4:?ELRYov!&*/4:?ELRg!&*/4:?ELv!&*/4:?Egov!&*/4:?Y`gov!&*/4:LRY`go !&*/4LRY` !&*/4ov !&*/4`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`govqpdf-8.0.2/libtests/qtest/predictors/05--32-3-8.decoded0000644000064100006410000000600013247541377020252 0ustar ejbejb ')/179?AGJORWZ_bgjosw{&-4;'C/J7Q?XG`OgWn_ug|owſ7;?EKQW']/d7j?pGvO|W_gowǷͿMSX_dins'x/}7?GOW_gowƧ˯зտ`gov'.7?GNW_gnwŎɗ͟Ѧծٷݿ߳oxЁߋ'.7?GNW_gnwЇӎٟ֗ܦץ|Лߧ'.7?GNW_gnwΘе'.7?GNW_gnwƌ&.6NV^fnv~p{&FNV^fnv~Xu`is|>FNV^fnv~BjIuPX_hpy5=EMU]emu}0_5j:u@FLSZahp-5=EMU]emu} U$_'j,u049>CHN`e t%y-~5=EMU]emu}LU_ju #&)-048;@RX%^-d5k=qEwM}U]emu}C L U _ ju.5<$C,K4RCHNTY`ej   & , 4;CLU_ju #&)-048;@F   &,4;C L U _ ju qpdf-8.0.2/libtests/qtest/predictors/09--32-3-8.decoded0000644000064100006410000000600013247541377020256 0ustar ejbejb ')/179?AGJORWZ_bgjosw{&-4;'C/J7Q?XG`OgWn_ug|owſ7;?EKQW']/d7j?pGvO|W_gowǷͿMSX_dins'x/}7?GOW_gowƧ˯зտ`gov'.7?GNW_gnwŎɗ͟Ѧծٷݿ߳oxЁߋ'.7?GNW_gnwЇӎٟ֗ܦץ|Лߧ'.7?GNW_gnwΘе'.7?GNW_gnwƌnv~p{fnv~Xu`is|&.6V^fnv~BjIuPX_hpy %EMU]emu}0_5j:u@FLSZahpw 5=EMU]emu} U$_'j,u049>CHNTY`t%y-~5=EMU]emu}LU_ju #&)-048^-d5k=qEwM}U]emu}C L U _ ju ' C,K4RCHNTY`ej   & , 4;CLU_ju #&)-048;@F   &,4;C L U _ ju qpdf-8.0.2/libtests/qtest/predictors/tiff-03--4-1-16.decoded0000644000064100006410000000001013247541377021165 0ustar ejbejbUU#Eeqpdf-8.0.2/libtests/qtest/predictors/01--32-3-16.decoded0000644000064100006410000001400013247541377020324 0ustar ejbejb{9ֵs1k)c!{skZcZRJRB91)J!B{9ֵs1k)c!{skZcZRJRB91)J!BB{{{{9{{ֵ{s{1{{{k{){{{c{!{{{s{kZ{c{Z{R{JR{B{9{1{)J{!{{{B{B{99{9999ֵ9s91999k9)999c9!9{9s9kZ9c9Z9R9JR9B99919)J9!999BB99{9ֵs1k)c!{skZcZRJRB91)J!BB!ֵֵ{ֵ9ֵֵֵֵsֵ1ֵֵֵkֵ)ֵֵֵcֵ!ֵ{ֵsֵkZֵcֵZֵRֵJRֵBֵ9ֵ1ֵ)Jֵ!ֵBֵֵBֵ!ֵ)Jss{s9ssֵsss1sssks)ssscs!s{ssskZscsZsRsJRsBs9s1s)JsB!sss!Bs)Js111{1911ֵ1s11111k1)111c1!1{1s1kZ1c1Z1R1JR1B19111B)J1!11!1)JB1119{9ֵs1k)c!{޽skZcZֽRJRB9νB1)J!!ƽ)J1B9B{9ֵs1ﵭk)絭c!{޵skZcZֵRJRBB9ε1)J!!)JƵ19BBJRkk{k9kkֵksk1kkkkk)kkkck!k{ޭkskkZkckZ֭kRkJRkBBk9έk1k!)Jk)J!k1ƭk9kBBkJRkR)){)9))ֵ)s)1)))k)))))c)!){ޥ)s)kZ)c)Z֥)R)BJR)B)9Υ)!1))J)J)1!)9ƥ)B)JRB)R)Z{9ֵs1k)c!{ޜskZcZ֜BRJRB!9Μ)J11)J9!BƜJRRBZc{9ֵs1k)甥c!{ޔskZcBZ֔RJR!B)J9Δ119)JB!JRƔRZBckZcc{c9ccֵcsc1ccckc)ccccc!c{ތcsckZcBccZ֌cRc!JRc)JBc19Όc91cB)JcJR!cRƌcZccBckZcs!!{!9!!ֵ!s!1!!!k!)!!!c!!!{ބ!s!BkZ!c!Zք!!R!)JJR!1B!99΄!B1!JR)J!R!!ZƄ!c!kZB!s!{{{{{9{{ֵ{s{1{{{k{){{{c{!{{{Bs{kZ{c{!Z{)JR{1JR{9B{B9{JR1{R)J{Z!{c{kZ{sB{{{ބ!ss{s9ssֵsss1sssks)ssscs!sB{ssskZs!cs)JZs1Rs9JRsBBsJR9sR1sZ)Jsc!skZsss{Bs!sckZkZ{kZ9kZkZֵkZskZ1kZkZkZkkZ)kZkZkZckZB!kZ{kZskZ!kZkZ)JckZ1ZkZ9RkZBJRkZJRBkZR9kZZ1kZc)JkZkZ!kZskZ{kZ!BkZckZcc{c9ccֵcsc1ccckc)cccBcc!c{c!sc)JkZc1cc9ZcBRcJRJRcRBcZ9cc1ckZ)Jcs!c{c!ccBccZZ{Z9ZZֵZsZ1ZZZkZ)ZZBZcZƄ!Z!{Z)JsZ1kZZ9cZBZZJRRZRJRZZBZc9ZkZ1Zs)JZ{!Zք!Z֌cZ֔BZ֜Z֥)RR{R9RRֵRsR1RRRkR)RBRRƌcR!!R)J{R1sR9kZRBcRJRZRRRRZJRRcBRkZ9Rs1R{)JR!!RcRRBR)RkJRJR{JR9JRJRֵJRsJR1JRJRJRkJRB)JRJRƔJR!cJR)J!JR1{JR9sJRBkZJRJRcJRRZJRZRJRcJRJRkZBJRs9JR{1JR!)JJRc!JRJRJR)BJRkJRBB{B9BBֵBsB1BBBBkB)BƜB!B)JcB1!B9{BBsBJRkZBRcBZZBcRBkZJRBsBB{9B!1Bc)JB!BB)BkBBB99{9999ֵ9s9199B9k9ƥ)9!9)J91c99΄!9B{9JRs9RkZ9Zc9cZ9kZR9sJR9{B9΄!99Όc19Δ)J9Μ!9Υ)9έk9εB9ν9111{1911ֵ1s111B11ƭk1!)1)J1119Όc1B!1JR{1Rs1ZkZ1cc1kZZ1sR1{JR1!B1c9111)J1)!1k11B111s)J)J{)J9)J)Jֵ)Js)JB1)J)JƵ)J!k)J)J))J1)J9Δ)JBc)JJR!)JR{)JZs)JckZ)JkZc)JsZ)J{R)J!JR)JcB)J9)J1)J))J)Jk!)J)J)J1B)Js)Jֵ!!{!9!!ֵ!Bs!1!ƽ!!!)Jk!1)!9Μ!B!JRc!R!!Z{!cs!kZkZ!sc!{Z!!R!cJR!B!9!)1!k)J!!!!1!sB!ֵ!{9Bֵs1!)J1k9Υ)BJRRcZք!c{kZsskZ{cƄ!ZƌcRƔJRƜBƥ)9ƭk1Ƶ)Jƽ!1sֵB9{9Bֵs!1)J19έkB)JRRZ֌cc!kZ{ss{kZ!ccZRJR)Bk91)J1!sֵB9{BB{BB9BBֵB!sB)J1B1B9εBBkBJR)BRBZ֔BccBkZ!Bs{B{sB!kZBccBZBRB)JRBkBB9B1B1)JBs!BֵBB9BB{BB{9!ֵ)Js119νBJRkR)Z֜ckZcs!{{!sckZcZ)RkJRB911s)Jֵ!9{Bqpdf-8.0.2/libtests/qtest/predictors/out10000644000064100006410000000616413247541377016537 0ustar ejbejb<) = =BDk\^_n|L{\t      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c!!!!!!!!!! ! ! ! ! !!!!!!!!!!!!!!!!!!! !!!"!#!$!%!&!'!(!)!*!+!,!-!.!/!0!1!2!3!4!5!6!7!8!9!:!;!<!=!>!?!@!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z![!\!]!^!_!`!a!b!c"""""""""" " " " " """"""""""""""""""" "!"""#"$"%"&"'"(")"*"+","-"."/"0"1"2"3"4"5"6"7"8"9":";"<"=">"?"@"A"B"C"D"E"F"G"H"I"J"K"L"M"N"O"P"Q"R"S"T"U"V"W"X"Y"Z"["\"]"^"_"`"a"b"c########## # # # # ################### #!#"###$#%#&#'#(#)#*#+#,#-#.#/#0#1#2#3#4#5#6#7#8#9#:#;#<#=#>#?#@#A#B#C#Dqpdf-8.0.2/libtests/qtest/predictors/04--32-1-8.decoded0000644000064100006410000000200013247541377020243 0ustar ejbejbvovgov`govY`govRY`govLRY`govELRY`gov?ELRY`gov:?ELRY`gov4:?ELRY`gov/4:?ELRY`go*/4:?ELRY`g&*/4:?ELRY`gov!&*/4:?ELRY`gov!&*/4:?ELRY`go!&*/4:?ELRY`g!&*/4:?ELRY`v!&*/4:?ELRYov!&*/4:?ELRgov !&*/4:?EL`gov !&*/4ov !&*/gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`gov !&*/4:?ELRY`govqpdf-8.0.2/libtests/qtest/predictors/04--32-1-8.data0000644000064100006410000000204013247541377017571 0ustar ejbejbv o g ` Y R L E U? c: r4 /r*y& !v o g  `  o g         qpdf-8.0.2/libtests/qtest/runlength.test0000644000064100006410000000365613247541377016460 0ustar ejbejb#!/usr/bin/env perl require 5.008; use warnings; use strict; chdir("runlength") or die "chdir testdir failed: $!\n"; require TestDriver; my $td = new TestDriver('runlength'); cleanup(); my @files = ( "01", # basic case, ends with copy "02", # basic case, ends with run "03", # long run run "04", # ends with copy, length % 128 == 0 "05", # run starts at byte 128 "empty", # empty file ); # Create this rather than committing an empty file, which always looks # like an error. open(F, ">empty"); close(F); foreach my $f (@files) { $td->runtest("encode $f", {$td->COMMAND => "runlength -encode $f a"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check encoded output", {$td->FILE => "a"}, {$td->FILE => "$f.encoded"}); $td->runtest("decode $f.encoded", {$td->COMMAND => "runlength -decode $f.encoded a"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check decoded output", {$td->FILE => "a"}, {$td->FILE => "$f"}); } concatenate("01.encoded", "02.encoded", "concat.encoded"); concatenate("01", "02", "concat"); $td->runtest("decode with embedded EOD", {$td->COMMAND => "runlength -decode concat.encoded a"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check decoded output", {$td->FILE => "a"}, {$td->FILE => "concat"}); cleanup(); $td->report(2 + (4 * scalar(@files))); sub cleanup { system("rm -f a concat concat.encoded empty"); } sub concatenate { my ($a, $b, $out) = @_; open(F, ">$out"); foreach my $f ($a, $b) { local $/ = undef; open(G, "<$f"); print F ; close(G); } close(F); } qpdf-8.0.2/libtests/qtest/predictors.test0000644000064100006410000000653113247541377016623 0ustar ejbejb#!/usr/bin/env perl require 5.008; BEGIN { $^W = 1; } use strict; use File::Copy; use Digest::MD5; chdir("predictors") or die "chdir testdir failed: $!\n"; require TestDriver; my $td = new TestDriver('predictors'); cleanup(); $td->runtest("decode columns = 4", {$td->COMMAND => "predictors png decode in1 4 1 8"}, {$td->STRING => "done\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "out"}, {$td->FILE => "out1"}); $td->runtest("decode columns = 5", {$td->COMMAND => "predictors png decode in2 5 1 8"}, {$td->STRING => "done\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "out"}, {$td->FILE => "out2"}); $td->runtest("encode columns = 4", {$td->COMMAND => "predictors png encode out1 4 1 8"}, {$td->STRING => "done\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "out"}, {$td->FILE => "in1"}); $td->runtest("encode columns = 5", {$td->COMMAND => "predictors png encode out2 5 1 8"}, {$td->STRING => "done\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "out"}, {$td->FILE => "in2"}); my @other_png = ( '01--32-3-16', '02--32-1-8', '03--32-3-8', '04--32-1-8', '05--32-3-8', '06--32-1-8', '07--32-3-8', '08--32-1-8', '09--32-3-8', '10--32-1-8', '11--32-3-8', '12--32-1-4', ); foreach my $i (@other_png) { $i =~ m/^.*?--(\d+)-(\d+)-(\d+)$/ or die; my $columns = $1; my $samples_per_pixel = $2; my $bits_per_sample = $3; $td->runtest("decode $i", {$td->COMMAND => "predictors png decode $i.data" . " $columns $samples_per_pixel $bits_per_sample"}, {$td->STRING => "done\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output for $i", {$td->FILE => "out"}, {$td->FILE => "$i.decoded"}); } my @tiff = ( '01--16-1-8', '02--8-2-4', '03--4-1-16', ); foreach my $i (@tiff) { $i =~ m/^.*?--(\d+)-(\d+)-(\d+)$/ or die; my $columns = $1; my $samples_per_pixel = $2; my $bits_per_sample = $3; $td->runtest("decode tiff $i", {$td->COMMAND => "predictors tiff decode tiff-$i.data" . " $columns $samples_per_pixel $bits_per_sample"}, {$td->STRING => "done\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output for tiff-$i", {$td->FILE => "out"}, {$td->FILE => "tiff-$i.decoded"}); $td->runtest("encode tiff $i", {$td->COMMAND => "predictors tiff encode tiff-$i.decoded" . " $columns $samples_per_pixel $bits_per_sample"}, {$td->STRING => "done\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->runtest("check output for tiff-$i", {$td->FILE => "out"}, {$td->FILE => "tiff-$i.data"}); } cleanup(); $td->report(8 + (2 * scalar(@other_png)) + (4 * scalar(@tiff))); sub cleanup { unlink "out"; } qpdf-8.0.2/libtests/qtest/qutil.test0000644000064100006410000000056013247541377015577 0ustar ejbejb#!/usr/bin/env perl require 5.008; BEGIN { $^W = 1; } use strict; chdir("qutil") or die "chdir testdir failed: $!\n"; require TestDriver; my $td = new TestDriver('qutil'); $td->runtest("QUtil", {$td->COMMAND => "qutil"}, {$td->FILE => "qutil.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES | $td->RM_WS_ONLY_LINES); $td->report(1); qpdf-8.0.2/libtests/qtest/runlength/0000755000064100006410000000000013247541377015545 5ustar ejbejbqpdf-8.0.2/libtests/qtest/runlength/03.encoded0000644000064100006410000000042313247541377017311 0ustar ejbejbabcdewwfghz  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~qpdf-8.0.2/libtests/qtest/runlength/010000644000064100006410000000004213247541377015704 0ustar ejbejbwwwwwwwwwwwwwwwwwwwwwwwwwqqqqqrstvqpdf-8.0.2/libtests/qtest/runlength/05.encoded0000644000064100006410000000020313247541377017307 0ustar ejbejb~ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqpdf-8.0.2/libtests/qtest/runlength/020000644000064100006410000000007113247541377015707 0ustar ejbejbwwwwwwwwwwwwwwwwwwwwwwwwwqqqqqrstvxxxxxxxxxxxxxxxxxxxxxxxqpdf-8.0.2/libtests/qtest/runlength/030000644000064100006410000000100413247541377015705 0ustar ejbejbabcdewwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwfghzz  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~qpdf-8.0.2/libtests/qtest/runlength/02.encoded0000644000064100006410000000001413247541377017304 0ustar ejbejbwqrstvxqpdf-8.0.2/libtests/qtest/runlength/empty.encoded0000644000064100006410000000000113247541377020215 0ustar ejbejbqpdf-8.0.2/libtests/qtest/runlength/050000644000064100006410000000020513247541377015711 0ustar ejbejbababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbbbbbqpdf-8.0.2/libtests/qtest/runlength/040000644000064100006410000000040013247541377015705 0ustar ejbejbwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqpdf-8.0.2/libtests/qtest/runlength/01.encoded0000644000064100006410000000001213247541377017301 0ustar ejbejbwqrstvqpdf-8.0.2/libtests/qtest/runlength/04.encoded0000644000064100006410000000020413247541377017307 0ustar ejbejbwababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqpdf-8.0.2/libtests/qtest/input_source/0000755000064100006410000000000013247541377016256 5ustar ejbejbqpdf-8.0.2/libtests/qtest/input_source/input_source.out0000644000064100006410000000065313247541377021532 0ustar ejbejbfind potato salad: PASS barely find potato salad: PASS barely find potato salad: PASS potato salad is too late: PASS potato salad is too late: PASS potato salad not found: PASS potato salad not found: PASS potato salad at EOF: PASS findFirst found first: PASS findLast found potato salad: PASS findLast found at EOF: PASS potato but not salad salad at EOF: PASS findLast found potato salad: PASS findLast found first one: PASS qpdf-8.0.2/libtests/qtest/buffer/0000755000064100006410000000000013247541377015010 5ustar ejbejbqpdf-8.0.2/libtests/qtest/buffer/buffer.out0000644000064100006410000000025513247541377017014 0ustar ejbejbcount: 10 count: 21 size: 21 data: 1234567890abcdefghij count: 32 size: 11 data: qwertyuiop Pl_Buffer::getBuffer() called when not ready size: 9 data: mooquack size: 0 done qpdf-8.0.2/libtests/qtest/bits/0000755000064100006410000000000013247541377014500 5ustar ejbejbqpdf-8.0.2/libtests/qtest/bits/bits.out0000644000064100006410000000306213247541377016173 0ustar ejbejbbyte offset = 0, bit offset = 7, bits available = 64 bits read: 5, result = 30 byte offset = 0, bit offset = 2, bits available = 59 bits read: 4, result = 10 byte offset = 1, bit offset = 6, bits available = 55 bits read: 6, result = 10 byte offset = 1, bit offset = 0, bits available = 49 bits read: 9, result = 357 byte offset = 3, bit offset = 7, bits available = 40 bits read: 9, result = 242 byte offset = 4, bit offset = 6, bits available = 31 bits read: 2, result = 0 byte offset = 4, bit offset = 4, bits available = 29 bits read: 1, result = 1 byte offset = 4, bit offset = 3, bits available = 28 bits read: 0, result = 0 byte offset = 4, bit offset = 3, bits available = 28 bits read: 25, result = 5320361 byte offset = 7, bit offset = 2, bits available = 3 exception: overflow reading bit stream byte offset = 7, bit offset = 2, bits available = 3 bits read: 3, result = 3 byte offset = 8, bit offset = 7, bits available = 0 byte offset = 0, bit offset = 7, bits available = 64 bits read: 32, result = 4111820153 byte offset = 4, bit offset = 7, bits available = 32 bits read: 32, result = 310998347 byte offset = 8, bit offset = 7, bits available = 0 4111820153 4111820153 310998347 61 21 101 -1 -22 5 0 -39559 ch = f0, bit_offset = 2 ch = 00, bit_offset = 6 ch = 14, bit_offset = 0 ch = 14, bit_offset = 0 ch = 00, bit_offset = 7 f5 15 65 ch = 00, bit_offset = 6 ch = 00, bit_offset = 4 ch = 10, bit_offset = 3 ch = 48, bit_offset = 2 ch = 00, bit_offset = 7 79 12 89 75 4b ch = 00, bit_offset = 7 ch = 00, bit_offset = 7 f5 15 65 79 12 89 75 4b f0 ab fa 49 done qpdf-8.0.2/libtests/qtest/ascii85.test0000644000064100006410000000101513247541377015702 0ustar ejbejb#!/usr/bin/env perl require 5.008; BEGIN { $^W = 1; } use strict; chdir("ascii85") or die "chdir testdir failed: $!\n"; require TestDriver; my $td = new TestDriver('ascii85'); $td->runtest("decode", {$td->COMMAND => "ascii85 < base85.in"}, {$td->FILE => "binary.out", $td->EXIT_STATUS => 0}); $td->runtest("partial decode", {$td->COMMAND => "echo '\@<5skEHbu7\$3~>' | ascii85"}, {$td->STRING => "asdfqwer\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->report(2); qpdf-8.0.2/libtests/qtest/sha2.test0000644000064100006410000000052313247541377015275 0ustar ejbejb#!/usr/bin/env perl require 5.008; BEGIN { $^W = 1; } use strict; chdir("sha2") or die "chdir testdir failed: $!\n"; require TestDriver; my $td = new TestDriver('sha2'); $td->runtest("sha2", {$td->COMMAND => "sha2"}, {$td->FILE => "sha2.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->report(1); qpdf-8.0.2/libtests/qtest/buffer.test0000644000064100006410000000053513247541377015714 0ustar ejbejb#!/usr/bin/env perl require 5.008; BEGIN { $^W = 1; } use strict; chdir("buffer") or die "chdir testdir failed: $!\n"; require TestDriver; my $td = new TestDriver('buffer'); $td->runtest("buffer", {$td->COMMAND => "buffer"}, {$td->FILE => "buffer.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->report(1); qpdf-8.0.2/libtests/qtest/lzw/0000755000064100006410000000000013247541377014353 5ustar ejbejbqpdf-8.0.2/libtests/qtest/lzw/lzw1.in0000644000064100006410000017554313247541377015617 0ustar ejbejb  0So̦X1@I&$ 6LGCI,t̰a.S9m7NgSdO6MqC+ySDR 4e:lICN]6QJG녊UU7ev`zlx޵\dq8 f/{L Յrw\n!4~k3ם7巚 9;}^[6;m}mq6'{|=g{=>W:O#@L?O C0 <D0,/DG >T0AEQ?Tw D$qGЌy leƐ{B4?Hr\(2dGR4)RTm*LR|9Ȓ;)Erl t2F4:s 8M-͒4=NS,]5M!CNӥ0N3}1>˒ԽNѴLBNO4IP,RTeEU}c=t]QKSU]_QӕmCJVv-uT55EJm]SeKiM}j[׵hյyaZ%u\VZuUdWZX5l^ m]ez7q]xZf|6swl7bCbd6'}xb7.c]aVka8FwgcE~e udyVh:&Aff}c.?:Nggz{.Zen^ln:Ѭ{ko|FٲoZƝn|ppoG\Nn_S'5s=evswoy^/%>~7}{mzc{[G}Oy}_}o}S}=[z6;b@ p%?TRhF? !^BX$ md$P C aT/(BK+A bMDwaO1F.8Hq*F"dQ.GcU19ƘblѺCH#4rQ:F!"cbNKH"ԅ=)#e @i$l6VH=)įUHG#쥕ҞPKc(Vy?&f4RJI-BXM)5%՘Z[L).&|vTy{4ɞSeN)9&dlNy:fꛒvM7|ߞ3yк<( 4&N-B(TPZ=A)4RZII)4mRKE1SYM9t}SOAu{IQ I*:3Gi*ΪSjuOEU"ڛDMT}iT S(eqjQK+UUbS%PzVsUJa\.WzUm6X;/^=jal}u!j:W_U7i,햷[9em=6[[p}̶6ZmhηwZ\kr-Ķfܛ{qnm7F\{gk]_l}ܽN][uԼ׊^K|0޿nӁ ^;~pmS k/>w\/1-x`/ W$ay-Xa,{0&!伋qLdlJS1d9r&PùK܏qNlsa7eۖf]3\Ǟ|g+FV;gM3o.etng?h-3@.e:Pi=ef9MQ֫NjC5Z`mEtFڟXlK~W`m}Gokmy{qmɭuު#\l=66[cznnt}ۻkpwy Ѷx'p>7Ƹ<[M9?&{-˸<;w͸ @ qEyg/\ߞt> <{:D#t}8Eg9_]^{WT/t.ѹG-vջ?M~zb꽛wۻ߈흓u/>+o|^Sx.<~gx|?3S}w^;y=^z/s=ǘ|_%G>;c7g[~ߟ~>g_~//o//oOp o+'/0?POSF" k0oQ$p0mP5 U0Ёp{ pP A y} w 0i C 0 pu W p 0 0 0  P0 Q!0 P q-Q59Q#CpQPq)Y=1QUG;]AcQgk1[?1qeq+1aQimQQS{q}1Qѱ1Qq1!r!!R#!2)-!/ 5 9 = ArC rE$I$%2%q%%&1&Q&&'1'q''(1(q(()1)R"r3#G%Ra&r&u'҅()+"R"1,r7#M*R_-2i'y().2,2,Q%*++)*/*+r.r,00ҳ+1s.*2300s//s2R..03/'.3!5SG2M11//5=/3k4374;2y45792O1S6W4[8s_9c7S5m4Ss9w:}8Ӂ9i8a;393{8<:38g5ӗ==>36S;:s:::;;s;@A4>TG@s@3EAT=tcBtA@UFtA=TwCTODqE}B4yCtoEeEiBT{B+D?EItJ4sIDTuHԁJtITmJI9E4J;JTWIH4aIԑLkLԓNL4NKKtKM4JOTOK4MuMTJ!PNLM1OKTSR5S4PUPRSSRU LTARueQUYQcOu7QuQR5Uu_Tu9UCRgXuU5TERY]TaYKZuY5}ZZV{W5Z5VyXUX]U[VwUUYqXuV\[\5[U]^^\uYu^a_5ZU\\[6 c``v7cV/_Cb+bdOd'_vWbUe#\cabfaVkgVa]{h`V9c6EdYeefyhv ]v`6cGeVfhAiai}j;h?hSi6ggwkl6lg6jivhVhQem6mvjilvjk6lVlֽomqlkrw p6qVrqvor pVpqGs7Uq6rrquwSv]t5q9r=tAr7euitWsuqsoxוx%vwCyz7x7qatױt7uwwwmy׫scs{W{{7wW[y}}|}7yz~W|y7z{~7~w|7߀7{wxzWx w+'78?XOSG~#| k8oQ%~x8mX5 U8؁x{xXAy}w8iC8xu  l! A& a2a: A 8@`a$:@  x` AA"!*d @ a aAfAf Ja> PZ Z@ 4!V @0 * l@@<t! `` X &a LlA HtA>Fa`@`!`2 ! n@ a6 Ba Aj!l`>l!, j d Fa`2,`l !!ja a!\`!8: j t v$~z `p!j@ @ !X  : ( @ !aaaB!,@ !@ !p V aa 06 :x`a A@A Vr``A|J8 a `@@ aāH~ A H  \ J@4n!x A `R  a4 @4xAAJA` dA>a ~j ^a2 @@\ N` aN<(`& a@ A@$ `~ A ra@8! @> @`^AZ v aR @8 ,`H f  J <@ `> L@xnb ~ h"! (<H n>@v AZ`!` v   ` ah<!. NA`Aa @ a^, |AJ>n \p ! !~`HAa V &ۡ@T{!R@J"` a(aA> `! x@`pa@ `R`T, Bi ­qj8γ>?Ǣ(Ǜ=_OIR["k w˦w)^SS\1Χ*fmq.u9ܮ775yd]ͪst\+sHb2/䦡u0R0BB,91 E2]$ĉ`$L=I)̶ <6$O/Bb< OqM"H۩$w'7L@ifF&J b8!.@F 8B#%pX)@A尤=Ʃ6LdBEqY Ph_h fp@x:&C8CŐ bd`BP"!Do P="":Q (Xf13o "`J@`Xk@iK28 `Jqd@ab>#F5 Dk :X H7|D`0i`\x!@P *&\.?86 #]ɠI sG,P(pM`Y X{f50:R;XCv!"hjP)2-`GpfQ7HLmL(uG`9b68^aP0,8D" l(bVs,Sv 7`ph`FFT(^@vz^Sh~{Ps"tD(q%>Ogx;upJ X6K(7@y% 0HcAp儰;F^'mX @uP/02Pfˀ(pm`X,syX7;%9!r2!(*p^8 x IXxsHy:e0#@P!`Fz@ ` PJ=` XVt |`8X;`aP|heP<P y8m Ql>`GX',(ESCo1Dx6Z 0x2|_ (01YP BExnp YoG`Sm@b`%F2/hxGW {X3(a3 >=X9Y @d8]i}3w:pMxz|P}rD En0Dp=P=Plh*R$ieH8z0VPzX@oP]#hpe*/@X]؜QxC({H, X {0Ycp<|X,_J`U_tp[ka\8(~{_P2;X9v/X@`iypf(wXpgp{(W8( /(m@hKh?pv8|?jhi 0J[t(9pxGqWgP}zha8O8@hgXSp'pH%8w VF13r3M[~H [@6vx-h;~| 7MX0MLp(vg/H7P7,xmX#J^Vkf`-`06)H0vhhXbGzx >9h(@&p(Dz` nxhD:0;OhWbYp^bu+ B`P(%3``Wx{x{ek8Oi/#Hwh:ZpN8sxN:P`W !c/<\(yYH}Pp@8h( bB]yfxu1h[8G@yX=pA"+c#8w@V$ &( E&W7RqpH@55@0>`3^NaPx$R l( J8R`Z5Pg@J)F OV7`{@fp/p^}?8{@9hXi8,R#sPz G0"V(]5k5N]X{}x8[\3>>bHEف@ "0AP 3X3H[IR`?d8YpDp`NS(Rf#$ dbJM Af%FXnb.R@qHh8mx2@QPV-p YBP6@`ߠ[H@;'>X28i  |URty"͕hj@pc>xy(]hH7xH/(Nh\@M(D%,@xI }>P7Q,b/ 52^TD102hafKD_P@@8 4 /Pk; (R \:R׀P8Mq@9G-(sQ Rx3h#pb^(K@(L6h %[._ 'k"ī(/{d 7]t^)Y-ČSj4H1,` $-[* !q{I&: 4Yp J1"B%5X ŀ}ŽP.+1)%S@ <=Q-Cl.3a^EZ mA<4T\L2NULBBPXJ/f@;sSC9zK:JpP P!Mfm ճh怶{ #&:Cxlt7g@a&BE,TɸM,Q(u`(03@io%Ej  %z~*F% c\ gF6`:X X`8P&hCJxG " 1)px@KC4cjXZ0(gNXCd p`("$y$(Qt9&#bY?6R3 5$N`YBx~8`+4p* P % eYGpy4I ej87 BpfRxz@_qf@UÑR)DsDFq$gL?ƐzGy%` Xjx*Eh0h?@ɢ~!fU@8z fQNGqDf"dP(b} P/ b0fP2y7Cd -ƱPH,^'sq\t  ZV92 :yN.En ,@QvIG9D3 -a C>K :.f(8FhPFg€=``#,Dp#th~ !|F`"#(M (0:E"Pr ȃ ,< ~X #( Q$,&,R !6:vXq<(Pxb@L> GY+ >G!S 1fZt#-4qX8@ !0hf 6p akx3 bRj UPbl.Qb; S0:8Đ@E $?A H*xF6 V m a@R q0\0:!KE A{$'7 lQ4@آAlQ (zX¸@ 0 + #h @:xUa@Pf 0>  Ag``Hd Bq9U>BKT0 YP A8` !.~v@z*!AAFaDa(  a`v`! PAB  >@`a " a@!|aa"@8X AL`2 a* aA : R!:a n@~ a< L a*\`$!P ,h! a vNtN``N F`vaa"!  l H `V@{ Ja~H A`& f A4*!`a& A !@z|&^4 `n h!0 t`B H  R!b !d alaAf!Aa`@ ! `l4dTaX AA @!)" `h* @@h !N ( @Rz a2@"@ `!   *`2 bAv\@X`a,{@A> n@!8*a<a@8@@a^ a| f2!p@ da .`T !ha^  !@(A @A`@A4 !c!!@B @ .!@> 2 jaAV `D @!F ! @*!%$ `z(A `( A@8!P V>*Zrf)>lr A Hv! 3 " ! \,`H A! @f!!!!a!^! @az!`F `t`j.a X\T Ϻ yXX |a A~a`nA*@.` V An`T6`fR$ 70@ a : >b@ @ha Xa(BP  0> @& p @HaA,@P4@!` @ l8D< ` f@@ NPA|`:gaAAA0P A^ ($ `!N 6!XrDDΈ8T l F`E pf0 !, V0@( @0a  `@raABAr!H A AjA (d!d"ld`D`pf rA*HraxB Ada!V8@!H@h $R!^fX@c@Z@ 4 ( `~ պH AAa  UnA! C  ` `> K="a !$@ !q$a2 > !Jt8Atl !^bJZa:a B: J`@Z@  V!JP~ 0@\>`aZ!pw,`!` a,N ~t aj@B `A |  a~i> f>A, x~ Ggcvgv ~:A !@aD xZ "a a<R@$ P, 8a9A@@x!`.L| P Z`Daaz H{*  B!la` `A `@ z!A$fA\!4 A h!& `pdaA@fFx!@ `!\>` P&a@x`0 &> A(8 @: L$6@ 6@X  jaX@@@f A6@   X !^@L" ` `Ar B` a`@`f x! "a`Az`ja AC져OWb0,@%ՅФ^x4EգQtX3Wktjb_dFXuLJEXE'Q8u5 "ưv(0DB!& Af# j 1f `\0^: M*pLO+L\j E~`k<h+?B x } h{ *ЙàK2$!@~FX|"-P4G4j&0"`S s< OBd:/,^A\6l Gp !F$`" ATR*( X| < #pAl-Eǁ`-f FLbL"D:P*/8 ` `wbDV,MADNI|B^7 aa" 9gc83H>a&%B(b,`v ,M`$1 { { 6@A `3!fA&<6 #op 0$rD,!1eD^Q'Ő#d# ј@ eqn60p8Fx+ ц EA- `PDX${2X# 0Gp<ψ\2<دb~؊~ @dp=hB+ "BH2A|E$Fx t/`V?xuBKr T F#|A^B@CYAgaD12 hPNa F;Q:f x^1/lP8 (Y1 6 B vC 4AB(%0ж[5 + 4EqA_2P ,({l$Q@,T>U @-EؼF :8l6X48'P #pSA/@<4!,!t ~q,a A=<@\H%U !E4 Ќ#xv 8{ 'C;P A AP`p6a :4l/-0d#>p`0o DxB9;0X3 `P`a?GH=osKhf(YuP7H/e@f1(J0[;@HP@zmX:@ 0  Xi@Z,G(V0<@=hhf`Oxu&2c(np0^HDqxi` X@,04+0 4{8TD0p$kd(8v `|y,pD\h#,`0'y@ho qdt@>Fv<BN2X!4jH :HlpCphH71XgF ZK7$ax` p/hh  W@w_Pbx>[hy`V|2A LxH  )~hhh(t1)NaxCiQ4^0h0wkEn`=80+0syjX79Pf (Hw0*x;.aHXH"Z)Pd09)L Eʠ ^{ HHhc0;v`6,XPh.@ =+PwX2P6 ;PTqp@;(}(XeUw#0 h.t7),K&U~ WX b"`x'.i |'(h xrhB}x9hj0HNPNaa`r `B:8fa*dP~`nX9H2;HcU)y XU..VM)0!pk`+hGm=`8)Hal`H$'Hx hTP6SeXUH=9 .0rh#` ^9p}t`5^y?wwH_p }8Q=}~KKl8X!(Zh4|0OPV@2x+iphhXn+NpWP Sx-;EWFdJ`W@ah" 0F@XJh$i2@+ +u€$i 4c$a99xfHR8_@~`9#1N([p EyYCRC s`9` 8(J`Cj`ZhkUbx H/Z`XX_ d%[hO-K3gS(Gt(@[uF)Z0dHl/(Sjw&*(j 0WHKxeH8LfY X8v9(P*(NP28N1X:BthwhXp,M0Jhx( u:PS8p X hhB<0d#HpViT<7h&@X<Bph6Hj>w8.?P:q6h[h[]<z?X p~8PHMl@`_p?@ )Z09lhZ0W? 0m4m{8xbHyzC%ʇpNH~%G=W0`vP5X5`,NdP/>`3p|R `,ǀd&r(\P(! G.XI:X }@ c}[GHqyM@20<q AxV[(BP`s4@p28V(0)(Kd0.8hS8:IUH\X@JC)ưxb# MH5D`,ex#8H(8xp'x41|QK_JH(ex4eab~X f JuH8}Pw IXDP5j0jgp"P60Hb{eh X{bO0^|8q* AHon(Kq?U uk988ePjS'[,k#0}XFxE84M  %b`cewp`J0M?( !ムP= \phH,}H XPdum~hix|0}`(a`q!PE?Cx& v4@0 h@Vҏ`;h_x78Yh[g(Xm7HLS`9' ;w&pp)+ @8Mfh@``R 8Kk-X`js|`NfaJpN-80$shqD%2% `Ɨ%X4H-[`@` pJ;K):X>$@I MP[ch bi NZ1>(~ ~8:]pu 6HTL`) 7TD@FQʅEE gK%X8IQ([jkQ'NF CfFPq~''gJAq}%']OÝ"R GDTkZM('^D { ҀBa"Puwt9ɤH!KPa]p6M%!sJJ\  a4&p}Cn,EqD'Fp)[\ZZ#b+D @w3BJyWIazZA0t>[2湜`& B&i$xHxUjWaЮ8y:Yof$M9Sox~|Ly<,e@. q@ l J)(aFpJ<: (* BPtAg~ "cN aqd/#IvF[5@4_ uq|lz^d<d1I灴"иcxB'5 & &{  #).5Qٞ`1M$D#Ip@$=B)]010S`J*'xb?^rؒ1`q4qq|e &pUGXBU`r`E 4!Bu)Oq0 (^qn&`e\l&Xt`غZTa$XYټp / 0rdeZgt*Oi#H~V9k Łn)`1w0:ypG! mx8:?CƘpcCx +dG1HqnUaPxAxx"t7p7#q2\L&Q3ckDPn0@ A1q {QB&`tD "hv>f,R#L18.c,"4p haP})B( !l q&Hh",@ZPa07y>A ep'FP7ht , P 8*h\`(8~#ГLqB B90`Yf`8Ep$k~FG! DB`#-!q8&-!hEh #!/ $A|8y%DT`oaȋq`<2pd

8CФ Aa:Hza/ qT1B5bxp8y !lI# =rda&(Z8,Q G #%0uxA(U#D"*BH($s7ep[A hL^NG bFŵ@Y@v@wPv:HcDv0\l\t@ du1H O d7H2c^9ǒP2J^ #aU(xD!A? <$W; =cN@&f!VH aAL<8!a| @H at! ~V`B $AjAf laT AFfD A``f@TBVAP>H`J!@T`aANP>:A8nA j`*`fAAA . iZ ` T%aZah!hr%a6A* RN2 |a  a. A( 6 !*A b: P!P!`<  d c x 8 B @l@!dAA a PBtX! n a a~@>A:Z`&a^a !jJ`b`bJhT  n ap!ADA@@ H2!j*  r V@RFv, !T!~ava Z ~ |=a< ADAa2 &!@Da 4P h`  `0 !4@n!(AN a@`a| 2,Z A a`pZa|a$zJA`> Fba`^bTU.a `N, V`\88A8avf@@ nl!`b`!@4!@v  ˺!8<P!h`vap`$@! =a Ra:``"|@a^`\!! ! ``j<8a JAaJ*!Aca`>@ ,fA  BLv`,Va Ad f!V n .a P`T.!R |AA0a H@pa"d hANa8`< `&l (A~ ~`p2aa* !` 3@!p J !b !h`An ^z   6A $^vh`<` `rVa\ q@8  `<`A J!a @lr& tEq8!6vx`!h nh@,V T<n NFA `J&A:Z` `Ra~@ \!P A\ ` TA ! $@^ N X  N ` aAj"`D` A6gaV@|, *a!| t$A ABeH j A@ @l  FPh@ a9 B *!RAZ!xa@( DN@0URg`Ƚ9\ B%P1CڴdtL)|'<ZYh4q SS(ă~GnZpLU]Y%kɯX{#0@D~ p !yPq{@$p fB*C t gA3!iT:@\(nxB"wP Ft($C4`'H}1? p1 xqB`LR bp8VCO( C-9G @$@>Dv pX36"P0@#9< au!~ `i #E`"3C `d=BUa ApTP := cdh' YFXG C(8p)"(@ h`ǐ(@tR `+d(8CJpa@&DȔBKP!> P:2B@zt@!D$H!9Ѐ6Q= !!Fjf  e6q!X 8P)"!(zQA@( P"8`00(JB\`A#B| = H18a@h4`@A`4 V B  h!wp7X ! Bv8%iy0\7ðhQ4XWpXƠp80@h6p8 dT x [ q(  @@h)D@$Q('Va<}a A.C}@#"`p +`@FhA#M0DD`Ax*<00A ;^4QP"m pt "k F7(WD:h a,8 8,8 R`!&D!Dd (ADs c@1P6$@B 71 h@0f`$/hZ l>@T?@AXblv $EnA|+>!>,(p$(hC40CpTXn*FT<'A e'@vH+vB4(@ hm!-`L6X$`b @pQ mZc,8X ea Fx H,aga h^=BȲBp `Pb * nðCJ8@0@cLPH)m `W&UP&T[X.?q0hHH6|@Y=5p<XxA؄@` 00"X&@ /˥|  a+PiLUX3m B 7h&Pu=8XZh18rH )c`)Z`zx!`pM;8>R=HVm01H| H\04h HFBX`Hphx'N&:G06/pg|@Fk( xh_JHcz 8 yM`<GH'MhN8;Z4Ls@Tk8=G-v v8`*EXe>p]7X'((ZRAppCPTG@$oPjk 0AHOEV(])4(mp@6-xQ2@kIpP)`.(3iko1b <̙"fH/(9PU0IH21GH9Ll 6HX*x\O(eH(xWB\ tvx)&x(j0>pMz(@x!YpIhAgX (_h~#8yX I(qF ((YCKpU8L@JP;> *x,Fs=`8(5PV8X +8kB6Rp$Z( hqD MP:2\ X 00fElHymp`G*h 1MSXY$CJRp"RXH*$@%:pPS2 S0J% CJxx:\>HF(C6Bhlpo@exbQ8`O '!Ko)x@lwp8}`z &90T`.TV[% @tIoB0k 7nA,(~CzX7mf4pbd(=PLhG(~XF(NhGa5(Q&@L8F2PMP7pT0?0H56\|ֆ8hp5YPPGX;Nf*nhxrPmxJHi ^m#S[`}P,xG<@X}P%H*h Jh,h1H8xXn(%"Xm>|@hOEXi8d(3Pwb;뀐d!;[)EQT ]`gW]8h2. 0*6PechU`75@ "ym.F4`_p6 @<Z+p9U^v!xhjhb<h,8As* fe0Uel @_HMxv.%cw~00E Pe0 Ycx:Z0M0hC`xx9 }X~Ő,GXe v&d`&@MNp(pWW!02`E0^@(;hL/d #|X4"P``Uhp@&K8nZJX<`Buc6W6~fU &ap c2 Eecp6`m0/ox)h[4PZx#`Dw)XH12C J0 ] S(`X58%(L4p7X[1RHwn0IY9XoI-1;u'60 (x37 .=PvH(Z 6m~XPHc̈́p]HDSwXBpphe8.Xuhep>\PjhEJ{HK0PZ@%scM8Xnu?>kH`[h1g?~JPC 8lx-*p<e@ h P(yix+.@ -F|ZQFo`0J_l0OpcI K8%_PU0AiU(BpyT X] 0&6QhIyQzjcf(_\@H+XrcT>mH(1`PX~\8j T@`@}(?x 6-jx*p[gpxP?{a8py?p 0u3*0qSa()_ 0T8 e z2=`? ˓ٸ'?19ȇU!Xw ]@m:iipP Kې ڧD{>I),_QP|Q/ sIDSNe7[s#-U.gXY0 qHm b=}Ԧv gLd!HXRqz"i6Q5PUAp62GXac(cZ gy/c P.q !! fA6#`ZS0FI.'0q@"6l4"J&58|dlFh6K!XCT8<d&i4nd,a ؾ{!nH@i)`'P`hZx9#yH#ɎQdQFcI 9jxUcE e\MLwЪ`V`,eP9(Tl ykdqc)ijPHus b>fg;(-aPVD@Y HіYTB Ǒ(b c6F^~aX+c$*FN`J [}D8Ba\]AU0  JeH| d9^ fsdchI&e!\m#/I@jHT)KX^ TFű* aZ+P C'X-t  I Mblz PTap`0"pjp@0 GbeDxA`gAr0@`b~@22G@@xAXxApx:D8aA* Ь@c0j @KA4-hYM x+Ř\`4C; h 1Pco q#Dp Oj 0 o L-&EЄ

p#@a 4qtz.D`!@;P nx C( hRh,HWP.XQB!< U `T'% mETWŐ 1jDx!S#8|t @R h d=E"t1";E}ah/F4" !`S qR9BЄ PpB|^G]Pq9L%ѶwG ` DX #x\ET>6@ n(/ gP  } @Y4]!Dw :h` B~ ," '4@ \H8qFs!dAT2@d "Bعcqb nZ 09hYW6G8#$(X @.PfCl!L q0a@nq ~v!@d`6 `~<(AX'6.Q`67b@|@`6Q zc$( :#!f! b~(=, ?h @T#sL1p| AT 0$ c$`EV:D} if:FЊb<% =@,i Y<b=LpKb (.h@D ;1@´5#C`dW'Fpu@PZ dŀ hQF9Q*`p09 n@@bAD >~p!&  hH8r@ f!, & @P@|A !a a @*@lAV@*(h, \ Al  ad@a%`@(a< ,!bX@6` p aR.`a!d !a0r`\ !` a4`~` abxaLAf ʨi@<A!@&`& ΐA$`d   Fd@<fdsA  L@(@JLd `l@Z@@2 XAA .aa*@~`.|"| `a$`! >  $LJ@ AFA%A 6`R@!  !>2 x6A V2@ x `eT ` 0^&@X`*|&!` * ;`2``b.a1A   Dt` a^ (`  @n``j` J$8> l `` !A(JA4a ` `!@*R N`.]@r @H:I !!^`jA`<`$`bja~ sB`8@ `` Ft !$ <@ T  |`<aB . ahaaP!4JH!d jT@aR0 ,0"AAFA t@f @vA >\ !p h!:*a!` t  na0렲@Na;=2Ar d! AH 6a@! @X L V` A, O/vA! <@.< an` aTx  `a `2Ax&@a !"a(`  !B ( !`! L@ 8a` aTaA:aR! f@H!` FdH!Hh ` a.  \8@N l0!  j   @~`@@T`AA8!X$D !!! PR` L`a @av 6  T AtA`@r>`| nAb^rb * !6`` `͇AX, A(. * n `! R a 8 a*apA a'ta B@h6`H@B`H @DXa VAp A@!\"@4@*!@a!@ @J . !4 @Z@ 7Z!N\Az"a4 ^`B @p `\A!8 ADb`@\4!@@2D@4! a@@&:`` A,H !AJ a @D  l ^^ R`a `6@: z@A b !p *& P ۢa!r&! ` H`A) a `@ aΡ !VRa  A,m|.`Z` A@4  \8JaT" 0J @ AB`` Zaa`!\lP*A  "```NA AzD @6!!A A\a. L@ @a Az Aa|@L \a(( *!" `@ !J APZax x`2A `"@zs@0 , V&, a0@Anarw@~ A0 AZBh@A|!>`a,ۧNa:>xv(`~V&!x>]C@I:V3m3~pCM|t4,K+4mQGouZbgo|=գԚ\MCr۴VN3 B;|ӛ8{Ok :.qY,1.%/c+՛Y7KKɱEga5b ZaYRQJy(xH:NkY$N?31r 0:3bԆ!qyP-6ŮA R ! ^{=6k`b W0C/UHV@X V @.GA67 ; @3KPl)"8!d 0+E"P2PcL6!T1 _t>Ǡ `uqX "d8B ň0T2`lj@H+ X3P2p%` M *Cp!OA@f; c4œtA+xˆO!7ǘ$49 B58?<Ài_! g!>Ƙy 0GPFf1Np`%0\h&B& 1ؿ$=E @F0raH,@0+#CM#~.+n&PN5! 3 Ж"x@ QxAS`*"$8uc$h 4,jQX -D' eG(G8G ǘ $/0PQap`)h!N l1&xjbk1E *<0(#,*9`!:@H AT@|19H0Cj0VQP*< )ƨ)Z*(d@T8&bnLF )bxbt9Rƈ az!@ NфAتc]d:h lQ|ǀ) !p6oS PE7(X3v x/a!0#&Tcq |C@h`'A( 2p x!0(YhwCm/bi ^0oyP9hEuYUDfʇr5v8^(%c{tk0'hr``HX8 f.rhL7p]Z U8k@/@f\(Fv0W=pn+0e`@ (y09h&0`E0xu(.xlpcp $XfWMgb"NpP H8::{xG:TyHy8MvHAm8*_vgwUALD| UHeh! HM&BXuN%hb&D`f `P:hap0:/ZED h@7cDGxO|YuLwX:p;`)8Fhpr0bHX|G`pH8j@t`o  T7 PPD:0u8xI P[Ph?08#8c g ,D@DEaypq9( -pnT"0 }HcDV|vua='xX 6z`l`{(2"(|8J s  >QH=ks pAG+=xa8Ux6af!Hd/,Qq+noJbH/hlphfp H0g 0xhP*Y`sO:@&w^c *8ypgq)*h,8 A<@s< (qhT0W\9Ph@0I $g038>(V /2D9[[9IxM-&s 7PRu( x>)ppkzPI ysKKfz)pfYhO8QtD(kx7x X4{L'0f@)b&HR#H--xZ"8aIkXeXZb(43(NG`#HUpW8P@t1(C1b gZ\> #`20 xSH{mPE"tpn 8!d|=h$ w#38/881pTXw6P Pzg0l3PB`=N`&p;XUz.(H; ip=R~($PWG,`>EH`}P}UlCHE* d1h0)@Mht8)yZVhƨm|ZfhwNaPI0(oppobP@3xt((  j>\(Hh@P% (hFe@o(S#xTJ@LHc Q9WnH `P[:cg)fiXKX__BpEX,xvCI y ~9xpj@YX.h$eH(kEjPQ(/H*gexKxF b^(vwsK(Y,_4Pq`xp}8H@XQG&8y5vK@Fx0Eh?G'`_HO 8(Hh* }as,8+Evxg._X@ hK[&(FhV!9HfTcMpy&@H~<dHjKXfg@>8f57Hr85Oh7j^g2 ^!kF 78#Uiu(ΉHLq d.Atp'JɷSIs N,Sdh9QD7㤸+PrFhR5BlQ[ '2I`C(Hq8A'd\S(`"` `WYbW;Ryb,X#*RxpQ,rfP"@fEh>2, 8*3Z -0BADBl0nˣB[sR#Jlݭ'-ʅhl 4,l+ @P QבD`[`b.df] EYfnPU &!;A ezcA&eH0DuB(iPi"x2#<pr bَ#f ؔx f(\~Xb.$12ٲ0g;iGy*fLCyhTB q ax(#j#D `$N)zo`Zň0VAx"_%QFy@)`8lAPVa1 !*ha€o )pvwe2b4(%LD#A0!t;EHOlFPBCZ`F3yT[BN"|Q -akaQG}0R0 b!cJ,`n> KC,88Q_g(\q!1pmei}<zTfR 'RX!3!8#pn%N'ˤ% T|'IfeGY&~~8N4W sf, 'Ȝsy#[Y>hd@縬+ y&*xx?ȥbG%laX@A@+]4`N:@`B$p(putp!1 PVHdF|. E7hR! (xaP"2XxvA2>-C1$@(!DXwk8:q7n'W /E#,EaxpD%AA~ `Gd%`r;h0`@ d0 D@$% @APC@- %Jj ,HC C8@ 0, ìK"XV(oz38D:P´a0CLX e `,7&BB$aDH”qB\@,(!p& :.|ǐa|8 P\Ga8X q.+G#LSl3&]CA+ `#qP*@CB `cQ14" #FO"f4GBD`a<>`v*E'Bw 3@x \WL%@3 ly,Ř]@>Z<!;AAV CX4bv @8 F#$N;eA<f/CÀJ,\A! m*Bwڐh< J"PZK1;G  f8 (7aG8A@JRǠk2 q @hM /DT8X]`Š_`t D!P#U !(ʤ {@GbUP G8@1. (70%D`a2HXCPlQ9&XQ ^"cH"08@,0lB^Ÿz`b,n0P:Wl.;NW AL-"J q7Xa0;hP] ?8 %!Z<L r # Va0k `vV!> 6aa !x &ۡB(2@ @, A* `rnBABAXD<6# " L CN.\,\4 > .!06@\ @ ` j z.| |4Xf \F@v@ `hp끆!d$ IA2 `>A`,j! An<68rZva@` ia!^~ArA$R !!$` A@`.@`>a@A"@ ` ` B ar 8x t^`t~ !!>@h ( `@z! N! atAaF x@ A,X !` !!!.A f` @ `| V!:Av4fba`~a AA| j:v:: a\ a``p @8 ! @0@~*~  @ T!Fg\al     ( 4<.2VP AxAb A @aV@  ~ `\a~V< ^a V| A! A<>2 !bZ T rp tOa\T nJ zX|`R @A5`V 0 Dt@W_ !`@8B !Z^A `aatAf r !! aB!N< `:!<`x@:!ABaD4X d`@ 6^@* l tB@ \A.D`*`h a{B a FT~ 8z`(^AR>@ !`AR`6 d  `arr !!vnGP!ka AmaN` a8`,a` `  @w!\`A@ \`T   a``VAӅA6  0. L!A~H ~b!.`*@Z!@p`   l@8@  h Za`T   VA/PA(@8A( :p`L2A0N3! A!.$a > @@`frR`K!@A@ `(!Z `` . a@ F46v !0 ` AU|PL ! a>G2 .a8a.`zqaa` L8@@ A (`  @ @" fA 0AX@^ L@!<aA@`N~ :4.6Ax(40 l a!@ A!LA~BC!A !tal@^`\H@ P b`n  | A @j @4V p aF@ p!lLa,jT ( , !@ Rm 8a a~@qaa`R40@2 FRaA`@@XaAjnrZa:p8 Nat ! p" H <`` BTZ!d `T  zalT 0! \z!`!<!~ !`*6 >ܠ@~!\ ɚ@`rL 8!@  @ atv` &$r a a6@Z h `2`! j!Z!h@ Xa =t}*ߊ!mF4(x(fNݎ茮kBB@͂14${'F=&!<00ad{"1$Gd ag!S Mbܩ$MXKĩdA؁!#mz6sQyy\>W{4֜+ D> 0 (%$9 +1@&<CQ̒LYקx%*-XSBW#yL8< r1yq!aT3UL<*D0J4Q#ATza (oA"0qI!&XaYDb |SxDB#2Ah8INA 3A |ZSdQXXpOxPB=$"@4! $]9`h&!,e0abaH a >y "afPZph~)@:]xy&HpvD jbX-$áv0lPL$Y FB-b PSAa5A^D 2"+aغg y`d i&<`jF4 ekxdYP7Z 88ajRATIAJ|B`FN k DQXf~< B6wE`'J 0 X6A=rA">X=^7#. )C0d0|mA08Ĉa,@ mx @$ C `L9@y 7DV=p0X(8'Xn0@R ȃ!9A2 Q8A"p K T /L 1rPt@DB,.`  N 9 C`NX2p^c0 a@h@L&ưd4B`:A18=pE@ (Wb| P'!X+F`@Q$F$a!P@$],+Ƹ` $OѼ6J@t,0;=EApd>D0> j {AL87+ص puv%BhQ,8 8 `C#T/ WO bH3.6AҀ"pf 8G4a &0dd0P`DKPF)0\sm#dBD>B_`'Ő@ђ \A`?FX & h2(EAQ6bXk70#T $a/B<06" "@']Аge;  z'x9 }x+[V!'b20xc^ H!.@o!|="hK0 vQ+؏a[@,Ab< /0 x p9/  HbNB:bF&Bh,PX(#PF6@!H!=@QZ\(`}~]t'3JtIA@.ZoJ:|ʯP5;euO B0qp4U&r Xx|+d +XY z (w`8YF@@I%%$B(I2-|0BC: MpDM[PR5?XBh pNxox8{ /x{x;vaXapV!"J8{pF,8`d3p'RhTh`j0OP$+ (;Qxe:0)ZHR89Ht2!fpo0A HT mJ|(^PW8082XPA`H:08u9# W\&P\(x)38x`hBh y :l/oiw@32Pz xoPPYp|`X~Xpg`:Xq 0spE(-(7HNUg@;TP,`/ (pX/UhB`B\pvaFUhh4H-}X7HphBXiEjDJV&zTlpWQ# H{ <0fPf"&y,;53YheTu0+i h 7HX Dv0YA([x0e\MO[ja00s('^RX{?pp/:u^4w-w)X>F6l{=XYHwc*O05|+Y^(s47wn0sqf\0fi_9>U*86CPg/0>W(r0tUS+@@mPV9u[P`(snpo.dCh @P;hm(XHm8)g#Y808#6J)x\ I.l!d=.paX{.[0`ra@gC(H[(/- EH@`(F`0=xX/;8 @xG8N >@\0_+ZrJEP i/8v @Td`CPJd `_'H(,t X07$pFB,PE8P'p  Tx0^b07xP  &0$4@C_8wQ8~7<jacx?C}xWxH6X40[xfzAZHO=sXhm7_Xc]x `s`d^X~lh3#x{ |y?PH'8F^hH`vyxSh "h W@w2.hqP }u 8w'vcrkC?Z68ypp!PG $=(- P (X,%Ao)(oH^(8O0bf|0fmlApEu@^`1Pk0"0`Ixrp|RCK@+;(T}8#t$(HHE)F*Zr"(Q8&PHQp(XhdQ8$e0u/ڃ#u%daэ(7/j/]B5/1"ȼ?*_ɑxDTj2Hh? 4aC1 6G,rxO ($P qd,d8P(B a WbypG8 QH; a2$`dWآbG9-)5 elV ~(MX[ &9MXn^f~xCchly{&P.&}uBwh*]~@>]@<$ NA"&hFjZD@2]s#!tF Nd9F)FY\@^Ba[yf`^P&_1. 0 Y/B1e $Df(6QSa2ká:ZenqٕiybPDh(_ 6fPRA !XYfR:$Beb$*$\A hdH!ABfmf J%.2@38NiĠXh0 h(9TSG%.q4? B1 Ca".Ɓ!Cr/:_ F}Ɓ3C`fIxj;qQJ: 'Dl7#`4Hs!V!Q@ $' @zr@$FP5RG0XY hh`Sj] PNT80! T "# sx,j@q2@c#@, Zy7` @" е{`' 6Y\"H]!@exD y!>!@v?A(b@H TX4&`G!(a,l,1h|b(Z "Tn:0kC%$=VDP2~<=.[ |?`-7;0B?ǜyfèœg !8 x(& z AAsbX@o!613`4@~ H@0`2L B P= c`(fi.D($z4! e@cXCB?0g| p x N=> Q\`PBq1:`c^ N!EQ @B0} cH`AЬxX Pj$E` @W/fcx9D7c:x> t6A0 "d/؏$"` p7pTk 0tX a<`v P@SK`*#UV7D S: KP7|L0BȰH@X6p-@x58CP.qoA8q ^1nZCK0P Cg PtP1(x@q4DXDcA`#`pz\[pxch8:`LMоxv +A"Wqz6XQ+P@)-3F@a4;0;C8 p002B*2@  !H@zp$;D0 "`(Y+ps!'C[pB7PqBD 4A#j @0($/8j C$U <X#"a@@1X] E C;1ð`t"h#  `e!A! %8dr@aY|8!x`7 "HzX/eCgBT P~$@ n!BW(!@s# q?%G glxqh%GI8 GC @(1dˆ(Efa<d4@Yb(0`#8K F@e!J"! `FX0 @ xA!:H`! PaA@,@"  Ap!`AX L  zA !j4HLaA|!Af,`8!Al<aR@!8F@08 !Aat(  !`  aA `@ !a`@`l`B!`!@4 A p&H$`@ `A`4z$H*pA6aDa"adnNAH`D ,f !`! @a$ ! !x: :vas "a6,aZ–&@ AL !&8ᎸATA@H@!`:!^aA4!tHA4bNE@~!" `@ @XJ ja> TAPA $ @pra@ dLAAn @!dAap @X~ j  a @<!`0 B`TZa4 ! `BZ@DR @4b !D 8!r@,j `  4@ `dt !`> R l @\AAF A A  R @<!  <`.`66^ @@!da$A`!Ab  ^` !6 ApaA4  \! u  Pb! ! J\FA < ^ `za4 !V`:@@J!`tF A` a `b+A`a0 0.@@( j`6N ( Xa&aJhXXa  ajAa<A`6T,a D `, ,fL``*`>\`@  ^@ h AV`P@ @P Z!. v aZ` @(AP !A aV a !f!t!62  H $jA  !A@: $lZA ,T`!  xX L Ajh.I&R @D @ a6a|J T<!@ @P x *tA* " ar :a8 A@X@| AMA@ Zv  AC`p  `>a>f!| !A $ `@`v>*A>A`a!xxf:CܙR7 t!  aH!9j:b! $  A^AxN ! /2ad $  AaeAAj`TTA``.@X  @ @ `V` vL@| aX@  $ @X0 `` Z  @@8 . h@a ``DaX a bACD@ `^jX`|!@`AH!P~R!"d`h`j A 'VA! !V` ATAxU @A `^`;J° ba >!|@2!` A < @V! aA8da!B `N ! vֲ * Ad^a\ `l@ AA`` r~J  ! !( A4 `P z@pa@l F @rxo !f@F @ |`(r a@A `:@aa @<<0 A(JA b\*A XA @>b.`^a `v*@ @ LM< xV A(A*a`<a!d Z !nA\  0haz|! A$ @ \o2JT $ -^ !*@HT`@L^ !DVfdjQļ[g]A@ɴ0UkQ&-Qlz H].{)f1͚,tn3VU+[(wO8& nMm/ 7|Z|cB g'dU6M \9F)Pa.󐀰8aHK4_d 1(r>vW[5EMЭ&/NPXPO$Z1u !wEbc9g:(:!SR vriq !(PЎGZ gd`B$:$#Rmwa('XbN H pE@ 'i8F< ^x0)KgzcdaBY"igoc  *0DIC8@ nǰ@ đBTJg5[' QT3Gaq)),YL@|P~vd9tn&# '9f&4a g1fð()xa'mngZA PpDgT'ǘb"ga]Gx)g*~?OHJK {㈚CCa .P(+ 9N*0c(tDte1@p'"fxGdi"Ch$ '6AXj'pJ^M0 hHA㩆Hİ^EfLɶ@ue@d0$, h0X $b$0`z0 apS u؁CEA@Hz'C ep- ]@Xф'PVElA8!@* aQB}aAD >9qD8 H9\ PHOHqN({`/*W1` McdPCpJCQ.\A `X3cdA a(T(H`QpofMBpvaV?H.b+ [ + )Dl Q"plGhy$xBCF<€8gCpx!A8, aF#@ {@ 8;"p 70ap>ЉQhh!b\8q`44¼t L#Ǹ@,NbpHaPv`3 iH,$`(= V-E RK\-($ qAx (tL U`0.E!`e(Hm|@! 9n5CcqG0."L1Nꀠ ,Ơ" 8 |!Lj8o0*]## r(p @=Cy @Db%A@X5~kTB.0 .0%@pr!x<@@2@X;`<@s A*AFds =G)PfA8T\_Vl>15ĸT`)T&E5F>xK=`e* Wd+P!Ds6$aA7F AHV"xA(u T'zS0g*O@ T`,p@{@5s$Y<2sSth" 4wHL `t2Fq$(wV`7qaHN~wwvoxH?|@PbN0DVH DR$ M YHx]xc u 8 =a#B \PfPDH"  xc8/)/[>onpNy&C2p)?[II) iHny} S( vpYRctwph @s1~H+VvPDx7xfx@>8N#N`,>@ )@0'OpCz?HwBPApK`c8-aPr@8^`M 8}2@`@_h^Urp;p40*h0-0w`npAS84x?9>!@}(=0H]`~hyHj0})xEE*-xr|)*8fX-x `;tzJp+Ba8&PBXsX9tF@op)p^QV rH rZ@-o` h`Jc!V.hlh.$=^X0A>X+ a@,40O'Xn6jMXwP|p#nx)Y- `<]8dohpo ,PohJ1P=w(I#(q<n0pE\Q1P}(>1^x+8=JgxA8}p&{ Ox#~Lg`OHwo'0@(yL070VhLvuxh']hCoh:xZ&Sh`jl@x7=CxO!3 -PozH 7`i @dfPBhar[Fa[jrH`pMsx!dix4HbH;#x$v:o<{"xhPg|BmX:o@pDd0IAh.h>6#Oex$d(OHW8^"̨o|('`I.[)0b(WPk!X`8 0S|gh@3h`i!@+Pd@'kHP!8QM(X  mDOuC@w(@sXD n:aUj͂SU IpRVq_{` u|o[Z, y_p()X`Gt`Px|+i F'NX8B P  '("0H>yH2S[8!nXqzh%Hh|PQkax#Plk;s`.u@mgCx2 a R[HHU(1HSDXx` scXG$W`jh %`Y~ k)rrIW0P8?Ht'z MDx-tz0`0!8X(r(>y&heUVquXI( QO(xihT1t-2XSh 0AHIpP#fPerpmXUsyx=x\yx>9tnxTydd@1`%"0%` 8("XʸZjɤvYFFuFhXXrrrqqppoooommmmmkkkkjjjjiiiihhhhfffffeeeeddddccccaa_]]]]\\\\ZZZYYXXXAPPPPPfvvPPPPHPvvPPAj)oVa,2YY/tttXXsXƇ*r)VVV&TޤT#o"RRRRC~j}Q ||Q|iii׋hzhhP\qPffӤpNvvNuddcccρsLLar~ ___ J Jf]˹o zmmHʤyHkZڸjwwvvFYFFhXtfsrrqqqppoooommmmmkkkkjjjjiiiihhhhffffeeeeeddddccccaa_]]]]\\\\\ZZZZYXXXAevPtvvPPPPHvPePAj?Aa,1v1vu..#t" ,! !}s |r r({{ ''zz%yނxx݀mv~u}jj؍، is׋hrh y߀fppeoo҄m mdЂcks? aaryq~q_w_h ]o u{m m\ekksrrjqvYYpFhhotXXssrqqppppoooommmmmkkkkjjjiiiihhhffffffeeeeddddccccaa__]]\\\\ZZZYXXXH)) ))))P PAj1aaa,1110*....--,,,,++++**)))(((&&&%%$$#"""! y v~~ }} || {{{{ z yyyyyxxwwwvvvkuuttsssrrqqpppooooommmmmkkkkkjjjjiiiiihhhhffffeeeeedddddccccaa]]]\\\\ZZZYYXXX  fPAҐ~~~~ }}}} || {{ { zzzz yyyyyxxxwwwwvvvvuuuttttssrrqqqqqqqpppppooommmmmmkkjjjiiiihhfffffeeeeeeedddcccccaaaaa__]]]]]]\\\\\\\ZZZZZZYYYYXXXXXXXXVVVVVPAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPAʽPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPfPAʽPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPӊ`bPAʽPPPPPPPvPPPPPPPPPPPPPPPvPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPvPPPPPPPPPPPPPPPPvPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPӊ۷*PAʽPPPvovevPPPPPPPP}voZvvZPPPPPPPPvooZZeePPPPPPPvvZveePeZvPevZvePvZPPPPPPPoeeoPooPvZPPPPPPPPPveovPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPӊ"|!+PAʽPPPPPPPPPPevZPPPPPPP}e}PPPPPPPveevvZPPPPPPPPvPZPPPPPPPvPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPӊ ui$&PAʽPPPPPvvPPPPPPPvPPPvPPPPPPPPoP}}PPPPPPPvvPovPoPvvvveoPPPPPPPPvPvvveoPPPPPPPPvvPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPӊg""OPAʽPPPvPPvvovePPPPPPPovoovvvvZPPPPPPPPvPvvvZvPvPPPPPPPeePZvPvPoveveovevvevZPPPPPPPPePvvevvvevZPPPPPPPvPvevovvePPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPf'{q*=PAʽPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPvPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPӊn!0PAʽPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPӊ[^lPAʽPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPӊPAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaρPAʻHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH_PAʽPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPZZPPPPPZZZZPPPPPPPPPPPPPPPPPPPPXZPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPZZPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPZZZZPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPaPAʽPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPhaZkPPPPZF:~cPPPPPPP]ҐPPPPPP]QtwPPPPPPPPPPPPPPPPPPPPPPPP_PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPVpxtdPPPPPPPPPPPPPPPPPPPPP_a]PPPZPPZY>PPPPPPPPPPPeYY\ PPPPPPPPPPpPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPaPAʽPPPPrPPPPvePPPPPvPPPPPPPPPPPPPPPPpPPPPPPPPPPPPTaqPPPPZFV&PPPPPP]"PPPPPPf kyrPevPPPPPPPPPvvPPPPPPPYmrPePPPPPPPPPPvvPPPPPPPPPPPPf kreeevPPPPvPPPPPPPPP_ͤ2PPPZPPZRлPPPPPPPPPPŽYYprPPPPHPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPaPAʽPPPL|PPeevveePPPPPPPPPPfpPPPPPPPPPPPcTFFpPPPZFcwJPPPPP\3PPPPPZaed PPPvPvvPPPPPPPҤ6JPPPvvPveeevvePvPPPPPP_krKvvPPvPPPPPPA*cPPZPPZR]LjPPPPPPPPPFYYPPP]ZZZZjaPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPaPAʽPPP}PvvPPPPPPZPPPPPPPfrEPPPcpFPPPZPƸePPPPPxHǺ~PPPPZZ{EPZvvePvvvPPPPPP8Nw ePveePPvePPPPPPfwrZ}}vvePPPPPPkA?xrrPPZPPZRk?Y}ePPPYӌ#%PPPŽfaaPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPaPAʽPPPcrrcPvv}vvvvPPPPZZPPPPRZAPPPPPLLPPPfppkx~PPPZJ}ePPPPPT8wPPPPP\NT{Pov}}Pv}vvPPPPPP: omPPoPevvPv}ePPPPPP_|ePZZv}vPPPPPPiYɋjPPZPPaXrPZPPPPкdx PPP]jaPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPaPAʽPPPPcjPPPPevZZveevZPePPPPPPPPPPPPPPAPPPPPPPPPPP_ryyPPPPZNQ}ZJPPPPPVhJPPPPPP /wYovPeoPovoPPveZZPPPPPPҬqPePPovPePZvZZPeeZooevPPPPPPP PcPePPeevPovoPvoPPPPPPjtcusPPPZPPYrrJrPPPPPPjPPP\ZZjaPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPaPAʽPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPLPPPPPPPPPPPPPݏ1oPPPPՍ&PPPPPe~PPPPPPPjz}˕cPPPPPPPPPPPPPPPPPPPPPyrPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPҒ- PPPPPPPPPPPPPPPPPPPPPY, cPPPZPPPPPrPPPPPPYPPPPZZZZZZPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPaPAʽPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPaPAfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffPAʺAAAAAAAAAAAAAAAAAAAAAZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ:AAAAAAAAAAAAAAAAAAAAAA>AAAAAAAAAAAAAAAAAAA]PAʽPPPPPPPPPPPPPPPPPPPPPyTaaTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT_aaAPPPPPPPPPPPPPPPPPPPPPaHPPPPPPPPPPPPPPPPPPPaPAʽPPPPPPPPPPPPPPPPPPPPPޤH_HHHHHAPPPPPPPmuPPPPPPPPPPPPPaHPPPPPPPPPPPPPPeeeZPaPAʽPPeePPooPPPPPPPPPPPPpZjoˤPPPPPAPPPPPZPPvvPPPPPPPPaHPePZPPPPPPPPPeZaPAʽPPPvvveevPePpQ_ض_zzzפפˤzrzr hzrrhפr׿hˤzׂ ׿ׂˤPeAPPPPQZ_ZvveePPPPPaHPPoevPePPvZaPAʽPPPvvvvPvPPVi ~Ymͤzhzzzzhhhhhhhzz׊hzzzzhhz׊hפzhhפzhzװhךhzPvPAPPPPZ&ePvPPPPPPaHPPvPvePPPPPPPPaPAʽPvvvvPPvPPvP or_פz׊zhפ׊פ׊׊פ׊פ׊׊zפפzzפפפ׊׊PPePPAPPPPYPePPPPPPPPPaHPPvPPvPPPPPPPaPAʽPePPvevPeevvPPZvop_zzzzzhhzzzzzrhzzzzzׂzhhhׂzz rzzzzzrrzzrzrzh׿rzhzzrrhzzzzrzzr׿zzrzׂ˿zzzhzPPPPPAPPPPq$PPPPPPeePPPPPaHPevPvvPPPPPPPPPaPAʽPPPPPPPPPPPPPPPPPPPPPެ|{ y_ˤzzzzzzzzˤˤˤEdAPPPPe2vPPPPPPPPPPPPPPPaHPPPPPPPPPPPPPPPPPPPaPAʽPPPPPPPPPPPPPPPPPPPPP׬QQQQQqpAPPPPPPPPPPPPPPPPPPPPPPaHPPPPPPPPPPPPPPPPPPPaPAZʽdPAZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZPAʄpppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwPA HEPPPPPPPPPPPPPPPPPPPPPPPXLPPPPPPPPPPPPPPPPPPPPPPPPPPŽPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPXLPPPPPPPPPPPaHEPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPaHAPPPPPPPPPPPPPPPPPPPPPPʽLHPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPZHPPPPPPPPPPPPPPPPPPPPPfffZPPPPPPPPPPPTPPPPPPPPPPPPPPPPaHAPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPHPA{HPPPPPPPPPPPPPPPPPPPPPPPaHPPPPPPPPPPPPPPPPPPPPPPPPPPʽPPPPPPPPPPPPPPPPPPPPPPPRPPPPPPPPPPPPPPaHPPPPPPPPPPPaHaPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPaHZPPPPPPPPPPPPPPPPPPPPPPʽHPPPPPPPPPPPeaaaaaaaaaaaaaaaaaaaaPPPPPPPPPPPPPPPPPPPPAPPovvvvPPPPPevvvvvvvPAAAAAAAAAAPPPPPZPPPPPPPPPPPPPPPPaHZPPPPPQPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPHPA{HPPP(.PPPPPP!#PPPaHPPPPPPPPPPPPPPPPPPPPPPʽPPPPPPPPPPiRRPPPehPPPPPPPPehPPPaHPPPaHaPPPZoPPPePPPPPPPPPPPPPPPePPPPPPPPZZPPeePPPaHZPPPPPePPPPPPPPPPPPPʽHfPPPPZvePPPPaPPPPPPPPPPPPPvvPPPPPAPPךxwPPPP}vP~AAPeHHHHZPPPZPPPvPPPPPPPaHZPPRTZiPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPHPA{HPPPPPPPez~PPPaHPfHHRPPPPPPPPPPPPPPPPPPʽPPPePPPPPPfRaPPPRXkaPPPPtPaaPPaHPAv PPaHaPPPvPPPPPPPPPǙqPPPPPPPePPPPPPPvZPPPPaHZPPPPZ2vePPPPPdsPPPPʽHPPPum~PPPaPPPPPPPPPPPZmmZPPPAPP6:oPPPvךeP~NAAPa\djPPPZPPi PZPPPPPPaHZPPae_\XPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPHPA HPPP'DPPPP1vPPaHPf??_dPPPPPfPPPPPPPʽPPv@vPPPPPPfPPPaftPPPxtaQfPPaHP "PPaHaPPPvP;PPPPPPP&5qPPPPPPPbvPPPPPPv2ePPPaHZPPPe2bPPPPPssPPPʽHfPPe~QNyvPPahzzhhפPPPPPPPPPPPePPPAPP66ovPPPvצ*PÎPAAPa\PPPZPP6EPZPPPPPPaHZPPdLaCsoPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPHPA{HPPP#PPPdPPaHPf\RPPPPPPPPPPxPʽPP (RPPPPPxPfPPPPPR\QfxxPPPxxa\QfPPaHP z"PPaHaPPPvvPPPPPPqPPPPPPPPPPPPPvPPPaHZPPPPPPPPxxxkPPPʽHPPvG_PPa׊׊hPPPPPPPP&PPPAPP:::vPPPv66P46"AAP\JPPPZPP6TYdXPPvPaHZPPaǸǽcp PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPHPA{HPPPtAJBPPPmRvPPaHPfQ_RfPPPPafPfPPPPPPPʽPPO`7M'PPPPPPPPa\fxPPPxxa\QfPPaHPz"PPaHaPPPvPPPPPPPP@UqPPPPPPPvPPPPPPvePPPaHZPPPPPPPPPxxxtPPPʽHPPe~QvPPaz׊zPPPPvPPPPPPa""kPPPAPP8:::vPPPv66P 4666uAAPaʦHePPPZPPhJYXPPPvPPaHZPPL::sPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPHPA HPPPsIPPPwt PPPaHPffcHNLfPPPPPPPPPPPPPPPPPʽPPvPWPPPPmYaPPPPaNJfPPPPtPFNfPPaHPiii"PPaHaPPPvPPPPPPPPP.qPPPPPPPvPPPPPPPvePPPPaHZPPPPPPPPPPPPPPPPPʽHPPP{ PPPazzzhrPPPPPPPPPPPe ePPPAPP8:::vPPPvtPʿ666uAAPϯ\\kPPPZPPPPPJYdXPPPPPPaHZPPYE˺NoPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPHPA{HPPP;PPPePPPaHPPPP]eeeaPPPPPPPPPPPPPPPPPʽPPvvZPevvPPPPjqP\jPPPPedaPPPPPPPeeaPPaHP,PPaHaPPPZoPPPePPPPPPPPPPPPPPPePPPPPPPPZZPPeePPPaHZPPPPPPePPPPPPPPRRPPPPPʽHPPPPZvePPPPaPPPPPPPPPPPPPvvPPPPPfAPPqvPPP}P8>>>vAAPeJǿhPPPZPPPPPdYdQPPPPPPaHZPPsvPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPHPA{HPPPPPPPPPPPPPPPPPPPPPPPaHPPPPPPPPPPPPPPPPPPPPPPPPPPʽPPPPPPPPPPPPPPRPPPPPPPPPPPPPPPPPPPPPPPPPaHPPPPPPPPPPPaHaPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPaHZPPPPPPPPPPPPPPPPPPPPPPʽHPPPPPPPPPPPǤPPPPPPPPPPPPPPPPPPPPfAPPovvvvvZPPPevvvvvvvP 'AAPPPPZPPPPPXXXQPPPPPPPaHZPPffffffPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPHPA{HXPPPPPPPPPPPPPPPPPPPPPPPaHPPPPPPPPPPPPPPPPPPPPPPPPPPʽPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPaHPPPPPPPPPPPaHePPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPaHPPPPPPPPPPPPPPPPPPPPPPʽNPPPPPPPPPPPJHHHHHHHHHHHHHHHHHHHHHPPPPPPPPPPPPPPPPPPPPfAPPPPPPPPPPPPPPPPPPPPPʿ>>?>>>>>APPPPPPPPPPPZPPPPPPPPPPPPPPPPaHPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPHPAdfffffffffffffffffffffffffffffmfffffffffffffffffffffffffffffffffffffffffffffmfaPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPHPA{>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA>AAAAAAAAAAAAAAAAAPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPHPA{HEPpaa]aaZPPPPPPPPPPPPPPPAPPPPPPPPPPPPPPPPPPPPPPPPPPfHEPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPaHPPPPPPPPPPPPPPPPfPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPHPA{HPAAAAeAAAA>PPvoPPPPPPPPPAPZvvvvvZPPPPPPPPPoeevZooPPHPPiaaaPPPPPPPPPPPPPPPPPPPPPPPXPPPPPPPPaHZPPPYcPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPHPA{HPAN-~AA>Pj_h~oPPPPPPPPfAPvvvvPPPPPPPPPeevZoPPfHPPZ>HHHfPPPPPPPPPPfhPPPPPPPPPPPP:FPPPPPPPaHZPPY}j~cPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPHPA{HPAf~,vP>Pw00jPPPPPPPPfAPooPPPoPPPPPPPPPZPPePPfHPPZ>HHHfPPPPPPPPPaPPPPPPPPPPPX4CPPPPPPaHZPPwa""YPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPHPA{HPAfzfp>Pm&PPPPovoPfAPPPPeeooZPPvvZPPoZPPHPPZHZZʭfPPRPPPPϭ_PPPPPRPPPPf:\PPPaHZPP)"PPevvPfPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPHPA{HPaAפFY>PJvPPPPeePfAPPPPvPPeePPvPPPvЅPPfHPPZHZʭfPPPffPPPL]PPPPPPPPPNF]PPPPPaHZPP|z"PPPvPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPHPA{HPA 6C'A>PP9ePPPPPPPAPPPPPPvvPPPPPPPPPvPPPHPPZfPPPPPPPPiPPPPPPPPPPPfRfPPPPPPPPaHZPPcY PPPPPPfPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPHPA{HPA\ <PPPPPPPPPPPPPfAPPPvPPeePPPPPPPvPPvPPPfHPPZHdoPPPPPPPPPPPPPPPPPPPXjfffPPPPPPaHZPPPcPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPHPA{HPaAAPAA>PPPPPPP}ePPPPPPAPPPPPeeooZPPPPPPPoeevZooPPHPPjjPPPPPPPPPRRPPPPPPPPPPPPRPPPPPPPaHZPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPHPA{HPAAAZEAA>PPPPPPPPPPPPPPPAPPPPPPPPPPPPPPPPPPPPPPPPPPHPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPaHZPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPHPA{HaPZ>>>>>>>>APPPPPPPPPPPPPPPaEPPPPPPPPPPPPPPPPPPPPPPPPPPHaPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPaHPPPPPPPPPPPPPPPPfPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPHPAʀffpp սYcaQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQEAAAAAAAAAAAAAAAAAAAAAArf]AAAAAAk_PA)AP0פRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR<jHPPPPPrPAfff)AP0פRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR<jHPPPPrPAʄffffwAPפRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR<xHPePrPAff pAP0פRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR<HPePrPAʃff pNAP0xפRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR<HPePPrPAspNPAP0פRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR<jHPePPPrPAʃ mPPPAP0פRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR<00000rPA}mPPPPAP0פRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR<pEAAAAAaPAfsmPPPPPAP0פRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR<APPPPPaPAʃpPPPPPPAP0פRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR<pAPPePPaPAʃmPP}PAP0פRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR<pAPePxaPAʂmPPPAP0פRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR<pAvPaPAʁmPPPAPפRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR<xpAPPPPPaPAmPPvPvPAP0פRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR<pZfff aPAmPP̒PAP0פRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR<vvvvTPAmP̄PAP0xפRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR<oFPAmPvvoPAPxפRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR<oFPAmPPvoPAP0פRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR<oFPAʃmPPPAP0פRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR<޹FPAmPPPAP0פRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR<޹FPAʃmPPPAP0פRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR<oFPAmPPvePAP0xפRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR<oFPAʁmPPPAP0פEoFPAmPPvoPAP0xפ޹FPAmPP̷PAP0פ޹FPAʃmPPvoPAP0פoFPAʃmPPPAP0פ޹FPAʃmPPPAP0פoFPAmPPvePAP0פ޹FPAmPPAPxפ޹FPAʃmPP}PAP0פoFPAmPPvPAP0פx޹FPAmPPPAP0פoFPAmPPvePAP0פoFPAmPPPAPxפoFPAmPPPAP0xפ޹FPAmPevePAP0פoFPAmPPAP0פx޹FPAʂmPvPAP0פ޹FPAmPPAP0פoFPAmPPPPPPAP0xפxoFPA PPPPPPAP0פ޹FPAAP0פoFPAfӁvvvAP0פ޹FPAffePPPAP0פ޹FPAffePPPPAPפ޹FPAfPPPPPPAP0޹FPAsPPPPPPAP00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000oFPAvPPPPPPAP0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoFPAvPPPPPPAP0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx޹FPAʃvPPeZZPAP0xx-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%7oFPAvPPPAP0xפSoFPAvPPvPAP0פxoFPAvPPAPפoFPAvPvPAP0פoFPAvPPvvPAP0פ޹FPAvPP}PAP0פ޹FPAvPPvPAP0xפ޹FPAvPPPAPxפoFPAvPPPPPAPפ޹FPAʃvPPPAP0פ޹FPAʃvPPPAP0פ޹FPAvPvPAP0פoFPAvPvPAP0פoFPAvPPvoPAP0פpHFFFFFdZPAvPPvoPAP0פp?HHHHHaPAvPPPAPפpAPPPPPaPAvPPPAP0פAPPPPPaPAvPPPePAP0פpAPPPPPaPAvPPvPAP0פAPPPPPaPAʃvPPPAP0פpAPPPPPaPAvPPPPPAP0פpAPPPPPaPAvPPAP0xפpAPPPPPaPAvPPPPPAP0פAPPPPPxaPAʃvPPAP0פpAPPPPPaPAvPePPPPAP0פL<8?4<8:<84>6:??6LZ4?6L4<4<:<<4<:<<46>84:<6<<46αEEpAPPPPPaPAʃvPPPPPPAP0xפLJT>:LEE6R4YEƭxpAPPPPPaPAvPPPPPPAP0xפLRˤ>LH6\4QN4ùC_HQXLLQLPQ\H\HRL4PE4>T:V>TVAQQTL>RƱLLQ\LR:\LPTNLHF6F:E<>4?LE6FHEEEH68EE<:PʭʤVA ǺiPF8_LYzפE JŨV:<ŤCR__eܤoFPAʂvPPPAP0xפ_ܤZ>~Aޤ_C|~RX8dfפ~EvVj]8Zjyc4~EEvAr]|z]8pX4px\_>~EqqR8E qtvRzqhoTx AcQtLtE~H_qrwŤVդ_sZhYzFqqRts ܤoFPAvPPPZPAPפ_ܤZq~E Z_vH|Eeq_usQvw_f:6~Qq4RϺvR>ܤoFPAvPPvPAP0xפ_ܤZq~EhmiPr ~E>qu d\ 8~Ev_Fp ɤqiQqifTQwvEJJ:FJCE:J?CpwHH8A>?FC?>CJ?CHYxHYx?RJJzJ?ECA~J?C?>E:6޹FPAvPPPPPAPפ~EqxCZ{ vZyqz_ r Qjqfh N_ؤ~ez??whcxi_~Nsm_qywͤoFPAʃvPPPAP0xפ~EqcAںZ>~J?Zڤ8f_v?6<oFPAvPPPAP0פx޹FPAvPZPAPפXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx޹FPAvPevPAPפoFPAvPPPPPPAPפJŤ?CFE8P8da<oFPAvPPPPPPAPפofR6Q:_P4_EP4NNJä8Q:N4LƺɱoFPAvPPPPPPAPxפ]poP6pZ?Q]o>ZZ_Eʯj4EZAZLʯf_Q_EZ4سHλN_Af>E:8:>?>P:6?<6??6C:<>6C6C><>:4jF4ΤE<A>JE<6fLF6H:?ǤAHFFCFHFFA6?6:4]?ˤ48F?޹FPAff)AP0פfhPd:iݨaNe<ߴҺǨeTiE_AVmؤXERrE<_E_f<_ZfܤZZ_E6fXΤZJйYڤfc׭f8NiJR6]PʺY8a4_R_AE_Z8f<ոE__AH_\8QJܤ6ո4դ_EfTJRCA_NCJ>:6CR<6J?Z>Yê<>TƤYQ8PE4NCR4޹FPAʃff)APפT:NL46<_:LJfp>޹FPAff)AP0פ޹FPAʃf)AP0פoFPAfff)AP0פR:C4:??4Q>C4A486:4C4oFPAffffff)AP0פFE4?C4CPYH86C48j<>A>8C8F6ZA6AH8Z<4׳>:C6C?H8Z:6C6CC?HƦ<6H:A8>44YH>>X?NQXERRCT4CoFPAʁfffff)APפFPeLɺ\PYEip\XڤQ\ǽQYɤC>pCh<ضaE]T׹AǦLX\QjF]XNЦRZ׻\H88_FʤñQNEҴcӪQJ_Z6pZ\\QF:fHPeͺZñAƳ_ͬPjQJCHXJcVc:FTJTFN\LHNEͺ˱róJ4JΪAƳ_LQrXH޹FPAff)APxפf4rYf??T><ƯN4A48Ʀ޹FPAffff)APפoFPAfff)APפ޹FPAfffәAP0פa<Ǥd8<oFPAff)AP0פf<äL\_QJ?R6QܦFV8J:CFƤZhJ4P:Lܤ8źN4EZ˦>ʽA?ZQ6QˤA?\JoFPAʂf)APפfh__Ajf_aүPܤڱ8ZL<˱NNʯPVäRZNAQc8mZEcZZJfCRܤHLAPa?]ɽPNYPAjFdEШɹRYo8oצQa>H:8A6F:E?8C>4AC?:E4:E4?>4E<46E<>86>?H4H84FC4F?>8>4AA4x޹FPAfff)AP0xפ484<ʤ8a?x޹FPAʃff)AP0פoFPAfff)AP0פ4CA<޹FPAfAP0פmFFYJC8?<ܤRZRCNCNfE_NCN?X4C?8>>4F86C8Z:A:<6?F8?R:Ji66iJ>ZF84R_TNV?C<6C6?A:C6>H4F6ű6A?:4>4FfoFPAffff)AP0פCJZEZRV_RTE_Zܦf<_E6cfPf4dk_Efrf>CE?:?CC46C>A6C:H:ƤCC468ALC:E8C>E:A8EAEC44E8>ܽTFeTfVEcR_V_RRpidP_ͽR_fjΦiekϳ8AmR_d4LPVXpRT\fTJ\ڳ_cV]PYf4T_]Xj\YX:6h]\J_VdYi\LdXfh޹FPAfff)AP0פ8R8ܤ?4QŦ<8AiLFZC6E:46>?<6A:Z:AZ:A:A<6?86AAկ8:C8R:?:Ai:6>C4>ZEAA?>ZEA646:C4CFA??C<CF_EA6kNPoFPAffff)AP0פ\LϹVXL\ƱӴXLRcפ_X?ä6rJ]>PF\L_<ӻA4C6ZF>:C68kTtƺNLα׳TR:QJ:oeLQVVZeLAӱƸ]hf\rJRHƸeFLǺLQaݿ<ںιQeͳECo?_AǤAXiLF__V64:б޹FPAff)AP0פ\\ZZ_EjʤZ8jݤf_EE_<ܤfrN8Cp:YT>ܴiRR_ƳfAdfLdm׺aLjVVYfǻeӹRVVYfR_JJVAƳfeH6sùdafLe?kiϽQ?ê6QPHV4EQLLHTNX:ŤX:NR>fCLA:f>8QJNRE_C>4EXR?ڦ8:äŪV>R:fLL:4X8V>R?P>H8P<6X>JXP6JoFPAf)AP0פZfCFffLf\ͬƹչfX?rJ]ͬjӿRfEmAr?aLAXr?QӶڽ6hFXVRoPʱФoRЭ?ʽ6pZFoeжϤe<ܪFΪfTؽCRFCP68Cq_ШPJ_4\Ej4ZNdjE_Z_EfNZ_Eܤf<˹NRAսפTZFedRao4XE6ܤ>oFPAf)AP0פ8YFYFFNRVPjýF˦QZEVVNQNFYNV4Fa?VQҪYZNAʹacR?TLYaYVү>FTFdQ?>ҺNVRc_ZYFұaEda_EP]T˦V?\FYNVFVVNNPPYNVNV?ˤC48E8C?A<oFPAʁfffff)AP0פoFPAәAPפ޹FPAʃfff)AP0פa<EHHQ4FHQ_AAJ:ƨRJ>JCζ_R6FJFJæɪHEFE?hJƤH׳EFQ?FC<>PAJPHHELRjAJjEENFFP?REFFAZ4E>x޹FPAf)AP0פhRY_խRܨfd>:E\óNiTNڻfQ6\RTiFaQQׯܴdaEiTNcV\6qE_Fha?Lq4jHE_4akFNͭhR>RNܨ߭fHYmZTݤʺʨ_HɪT\ϱοFJVCj׸NiTNڻZ>ZP>jAHcjE\jϿE_Hɪ>ׯmӯФLZ\4ݭZYAE_fqA:PARZ_E]FPo4ZE__FhZZ8Pi6˺Z:\_EfH4RZ_E:ջZ?_<4eAܤܺZFo4aïձ>f4ä6Z_EV?LY8Z>cARH4PhfܤdӯTeRLZZܤfZcNVF˹\cdXLFPL<ƦY:aJJd<]Va\?NVNX>]EQNPFPRdTNPZQPFFYLHPa?PPNNV4hNƦYFPZYN6><6oFPAʃffff)APפ4?4HZCT44YHTH::CfZ<ϤäERA_EФФ8A<׿XXפ<Ϥä:LX?RHVVA4T?PE4?4?޹FPAʃffffffAPפXfTZTXZL6Nұ>ͽHV4aJCXRZŹ:\A\RRT86ܨNTALCLſ6jc:Y6L8ECT\fƨ\Vź8XïY8VRXTF8T:LV]޹FPAfffff)APפmacYͯXRcQfܤd\RRR]\Ld:u6hߤfeEFcZZZݬϭjYPiͭfQ_E_ͪ\_R]PޤܺqFcNJAh4jЯZܤP?ZdPhߤfJQZ4hZ8ͭfaHʴRT_ҽRNTV_دZ4>8iHcˤYLcTʿ\Ze\dj>TJ>PAEi_:ޤoFPAf)APפխYҤm4>f?a8>NƦYFhRHJܤZPeVAZVL?>ܤc˻]NNAZϤqr>fܤfAƤo66\кZRZܤ_AܤZ4QfE_TA6HTATƦEJAC:QQ8H4LƬ6>ŴL>TñT8N>YFYCT8RNVARR>TRYHJ?:RHJLCV_oRñR>ƤJH:TLTFNɹ4ŸƹT>CT<ƦJ<>:A<x޹FPAffffffAPפREh4פ]4úR]\<ܤN8ؤN<ܤXLfENRR868Ro޹FPAʃfff)AP0פпJ\ؤZNeCLVʤ]YrAZTFϤQ]_E˳rEVT\YC\˭]N_dYʳCT_ӶϺZݤ˳6mǸ_fJcE\i\Ǫ8eiǽoEcXALiŻV<δoEP]C\LEʤs<ҽƯYfƯNYRP]C_ӶHa>erɿXcjYk:YP]ZedLVɤ˹a_ų8YƿjToó_ZHtcYAZ]C˶jJ_iLɿӤ6Eݻս_6_r>rPZ>fܤZFXZܤfR\eE_hYa˶CoZRNpC>>:EA:6:6CQpYQC6C8EECC>>>?>CFC8AC>C>ϽkE8>6?6?8>>?>4CE468:::F:Q?8E4?6C>:<:>>?FC6>AC:>E88EEC>::C?EAE:ECCE޹FPAf)AP0פa?TPLN:QLQEoFPAʁffffff)AP0פ޹FPAәAP0פ޹FPAʃfffәAP0פC84<>4CC4C<>C8CH޹FPAʃfffAP0פ<\?ToRR˪XA?XRHҤ?դJeTEZV_fc6ЦfEAɱfEhXREZR<ӿ4dNRmYкfܨR8fEfoFPAʃff)AP0פhHZHЦoEfж\Ae6EPXPkooPׯ8kH\ʳTճצodEX4ܸX4JaamV>ר׻EPAE4\ZJE8>Cϯ:?4:E6A>>C>FCE:E8EA:8]A6HA>C>>E8C?:>AEC:4E4FA44FH:6E6H8C>6C8:CfA?EF44qA6>>H:?C:CP44<ƦCoFPAffff)AP0xפoFPAff)AP0פ޹FPAʂff)AP0פA88QNC?CL??EC4CLC6A:N8EAŤ?H<>>դF_86C8A:դ??6Z46:A86C86E4F?E8AV:6<\6>8C6V\6C8ACLF:d4_EffXci<\4X<__FaûݤeL84C6Ǥ8R?ɱJE_f:L4LFźN\_JƪR6Cd>8HPTFZCTNܤNLJXTfƶVL_ͬXJjELicʺƤE\E_fTZTq6A4c:fEE8fF_ڹ޹FPAʁffff)AP0xפf<үjCaϺܤE_d_ELf<>P׬iAYҤYA<_E_ff<ܤZL4dYZkjN_?CJf_LZŻLVNNPZ?]TTPad8YFФAaV˸V\4дaн4VRLN޹FPAffff)APפϿ]<4m_VaLTAǴƹ_<:PcVFVfZPVi>ZƳúLTPVRN6PZ_NTCLCШ4\R:T8RZLVCP\VҽXTc>V\TVTFENźe>Ta8LܻǺXTZZƹTaN\:p:LJƤaXɤR_m?:ZTRLRf>RXɨŸJܨöPXZaLRPܤNƶVɦiocdHVκdЬ\FfNƤjeZRп4RFd>j6iǪhZ>RNׯҽPcF_>R:ߤfVΪ_HdHJePV\QͱdQܨPFf6ƤE_ǯZLФܤ]T:p:ױ\L6R6ʹJܤHйf6d\FdcEY\Np?6Fd>j<]LfܹjiZ_EӤoFPAʂfff)APxפm6Ǥj4_ZHYձYNP>ZEj4:ոE_444]_LZqfܤ?hLӤܤӤf<ܤZ\oFPAʃf)AP0פY4]QV?NTYPTPʸQ:J4LY<]P]:h6X>FXNd6FFRZTAXJ6PJNV4P_N˸_F6икVNNFVFX>F6бY6ɱa_Hd6LFŤR:x޹FPAʃfff)APפ6A46ű8<<>EQC4ACA?:84o4A?Aa4F6F__?::Aa:6ǤC>:Ť>AAA?4AΦF6A?A>_6d<:C8hVNV\Noxp?HHHHHaPAffff)APפ84ФEZ_EE_ZEܤfRa6ZNP8Ϥ4Ͷܤ6PNZNܤZf?\?YJݤZYJEaZCE_VZ\f<ܤpAFfRZ8_pAPPPPPaPAʂfff)AP0xפp aPAf)AP0+ìA:~p****ePAfffff)APqmmmmmmm}vvvvvvvvvvvvvvvvsvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvpvvvvvvvvvvvve?AAAAAsH?AAAAvvvvvvvTPAff)APZPPPvPPP)PPPPPPPPPPPPPPPPfHPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPvPPPAAAm:cYAAAPPedvrfPPPPPPHPPPPwFHPPPPPPPPPPHPAfffәAPZPPevPP)PPPPPvPPPPePPӤHPPPPPPPvPPPPPPPPPvPvPPPPPPvPPPeePPPPPPPPPPPPPPdAAAJ pAAAPPvwPPPPPPHPZPPFHPZPPPPPPPPHPAfәAPZPe̷P)PPPPvPPPe̷PPӤzHPPPPPPvPPPPPPPPvPePvvPevvPPvPPPPPPPPPPPPAAA\AAAPPevPPPPPPHtZPPFHPjHPPPPPPPHPAfff)APZPP}eP)PPPPZvPPPP}PPfz׊˒HPPePPPPPPPPPPPPPPPZPPPePPvvPPPvvPPPPPPPPQPPPAAApAAAPPvPPPPPPHPRPPFHP]APPPPPPPPHPAffff)APZPPPPPPh PPPPoPZZPPPPPePPӤzzHPPePPPPPePPoPPPPPPPPvevovPvePPooPPPooPPPPPPPPPPPAAA|eAAAPPom~PPPPPPHPPLPPwFHPLPPPPPPPPPHPAfffff) ZPPPPPPPPPPPPPPPPfHPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP>>>>>>>?>>APPPPPPPPPPPP  PPPPPPPHPAT\mmmmmmmmmmNAAAAAAAAAAAAAAAAA?AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA>AAAAAAAAAAAAZZZZZZTTZZZZZZTAAAAAAA>PAPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPAfmpppffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffAfHfffffӽPffffffffffffffffffZPAPYEPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPAPPPPPPPPPAPPPPPPPPPHPPPPPPPPAPP]PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPHPAqRTsZPePPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPAfPPPPPPPPPAPPPPPPPPPHPPPPPPPPAPmY-PPPvPPooPPPPPPPPPPPoPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPNPAfiuEv]PPvveZPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPAfPPPPPPPPPAfPPPPPPPPPHPPPPPPPPAPoPPP}ovveePPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPNTPAvwv]PPPvPoPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPAfPPPPPPPPPAfPPPPPPPPPHPPPPPPPPAPfe}vPPPPvvePvPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPNT׿PAepzqo~N|]PvvPePPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPAPPPPPPPPPAPPPPPPPPPHPPPPPPPPAPhePPvPvPPvePPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPXd]PAm uý|]PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPAPPPPPPPPPAPPPPPPPPPHPPPPPPPPAPfX5PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP]PAPރ]PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPAPPPPPPPPPAPPPPPPPPPHPPPPPPPPAPPPvPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPpX]PALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHHAAAAAAAAAEHAAAAAAAAAELAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPPPPPPPmxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%%$%%%%%%%$$%$$%%%%%%$%%$%%$%%%$%%%%%%%%%%%$%$%%%%%%%%$%$$%%%%$%%$%%%%$%%$%%%%$$$$%$$$%%%%%%$%%%%%%%$%%%%%%$%%%%%%%%%%%%$%$%%%%%%%%%$%%%%%%%%%$%%%$$%%%%%%%%%%%$%%%$$%%%%%%$$%%%%%%%$%$$$$$%%$$$%%%%$%%%%%%%$$$%%%%%%$%$%%$%%qpdf-8.0.2/libtests/qtest/lzw/lzw2.in0000644000064100006410000011271013247541377015603 0ustar ejbejb`P8$ BaPd6DbQ8V-FcQ] B(DR>\#S u76ECT:(3GDQ4Hb jHzZCkU-t)_ !,(@̃ ZPVFn@BwOu~` 1@`,{dOY<', ac.!z ̘)Ĵ1(jqQ,FἱH(_$J .M|2&Xer^ l .e栢kIp( u%r '~B*$*aғA|#0,Dz z!Mj uV!cx>dkH4yؠLǀm䁭rL{@A~h}b s<dGAfrg Dw7GFu3rpn BGaڻnyow{MWQAl%0*؂D1tRP@i0-ష ((Ziz'8C(ZXCa%(% `::nD"ql0"9AAG @dX08F#xE SsCt 4h?3Z!p_C|C #PF #,1BH}70>C;pBpARPu 6 78kT,9 C 0D A"0fP L7.F "o)sKh!HD8 |4P!1àX t, o\>GB}o ཏ1=?s~O?a B0!&`R"A$ð5 (@Zab0($/adPA@a|:! ba!0BlcP T+P)VXL .1@3 * x*@"0oc !H$  )k0@@t( ,4۠Ƹ_D RJA/FCP*) N5CHREb:v ` & ݀Lf p|g _wA) +{b7&B@ DR0Ah\p)H`Ԋ@50:|R ^l-[FG̹:n½(=tjJ~iE)`0k C4ҚTJX3SC @; aj h7`T2dU >B|J [ZEk7A`DV-\0r#ab!4TVA=K-f,՜ [Ii8CxmZ`@ 6Fwᯐ 7,3 ܙtVib) |2^"c<@1{E^P}3hf~C-ds !ᵆ8p&,غ`qDEʹC+xdCĽO=_KRjN ћL23C%l+ịL:͚7H( 1 CV@E@ PáMr@h!MV Bf+">Sdd"AdLRa?)s,R ebe1#s9"H f fP ! T<# ,$P1$$&F%"S%@-%[%_&l5)&S5@ 2o rq'@5% Sa6|6sh6(rv57E)`)B))G8NS*`_mr*f+1o as:,R,ab<-!-AB--. q>W!r#/0jh'RR7+҂/e"B eds@e9e X+qs02K ")(*(u7bQ6)A;<BO*R*B*qY\*`dqg´+Qr:ȵ++~‹ᐌ"B,,8Ѱq-81a? >"k&D EA X悥$?Ne S100 he:"ɉ"1b8#@Pt )ziɝ韚 )Iiɭ! SɳIiɽ鿜 )ÜIŜiǜɜ` ϝ ѝ)ٝ۝ݝߞ ) 9Ν0 )ѝWLfY9IiA`  B9`o`YA}Z5?fzAT AfZ@fjٴofpvjs ? A*C) "|!ѝ f`CiVZWU@9S}G?&iPvTg? cv@z^Є=d !d F8ٴ  / ߯zfAj@cPs`P %<` 0P \!j ڽD1 Se Z`j}p \ 0k -Y *w*` FIAǘ@Z橴MŶkÞrI: 6L/;?/;y>d΄~z~{ށ莌螌辀瞙Λ~^螐^ꎆꞥ^/ފ.ꎔ.α꾯꾦}^Τ agNn.Nn :`ۊ#@ a /Oo H4 ۴(m) г_')+-/1/3O5o79;=`IuJ#i t @\4-ap ?*>O1[mk?f >owy3 ɳO Pl^_H9Zr ZT=vՠp_ )_/߬'* .!'(zP z$(?0__Q? !_ ? r p_{/ʚOS!mHfpou6j Y𦁬%P$@o ymfHа=F")="sԚ84KcrOQIԺ/8JRIom{VٴV˷ێFϽl۾۲n' {g6s; oGKCqwQcvݨڀ{vqGgwwbFP$P, b?S/|d"cL&aol_b3--_zOL?A$>GضR~h%`B}! e4 ial.A74Ԑo5JxʆXq`1 VB0L#A d0D I@H"Uh4ХXegA`h|B 2%tʊ֪P>УP7!3UH #i&O &&,IxTI$C #@@"`˜ XȪ0(T AaEf[M AxB0Eɤi7#rxĊQ>Dd3b PH,B2\06! A;!aEF(g8*fI3\ j$ U!9!'Q 6h%36*E%#HYEE!|#p /P 2B8i PR e pk5f׮(MJ"J9Q0` !? c*\Nn D2|5 |ćFp 2)l蘊C`(݄1 ":ؤ!9&2_[Øܦd2OQ ŖAHH KIen$p((*HG`l6x[k`T%)@b8H ALw`)d" Z&& ÝMWbRbDq(t2K.B C mb @%@X( BχeL <RBߡYBrP$QgB" RKgfB& _ zQ[ H3\ k ЏB3$1zjvzŠ{ś(P).WA" wQ4:YNi@DvaTa)0 f!$$@J : P2``9}zRldN`&qHte?pLܬ6 Vk Tgв4 "'B3h1  g`.rқ 4 "!DgbFg*&CڝoԀߞ\d\TIQ=&ȚC([!3gMF/2t!/x p5,bLB(A8^\?׿kmN&e;AK.&D1  THvԤ L@ hDh@J32,< jBB $T*@ .d"c<)z>NRA,  f.hА΄ ~~/2֋^HLa @ θěĨZ g%||r!hn(x6a8>@ $ 00 ɦB'NlE2EN Iqi}~T,*[1X=>{ qHgQQ1 QQ1qQѧ q!R1a  H`|R9#=#A$2<7$RM$BRK%"]%a&)"{ൡ [eN`kV p|.&R)r)#(Ȅ .d"@2| @쑊h$Z":aaQR '//=*O*@Zȁ* @ +K(1 J0cVUi"azɄ\At*!` @+s6q7)0@*@X" ` @@.@6u>>7|`< *҃":M$!`3f);@Z ?D (AH "HRA6=4Gty7Rh!@*$ @"!A!O<( )3@ C z " MvA6D61+={P5/ lAb`N2!!6!nEC(2P0@83bC"@ 3ҟ ɳZ aB4uPumV1 *@x JQbCA J,T$ D4S 8R T 1=+ `:9?Pq\yH#Z51eB]RUBC,35:eSa UC<-`R3.v]6!b-G m*U~3Z\%dLtSCy 'ցRp2)Og6t~Hq&4AeGVivi`Vj6jvj/ jkvkkl6lvllm6mvmY#@ : tH%R1`v=Hp pq7qwqq!r7%rw)r-r1s75sw8 @x? G (PQ ? sivmvqw7uwwyww>>Ctc0WMu'l/gwzz{7sw~>B0xoq6y/ק{w~7~w~{x!|5)tr}\a}}x-C1RȊ!7vX!xIM~$/tI(q?v#XO8uxyrR/3C9Aeu0xiu{xyx nBTx_8oэ8Ձ/WG%-/xxwX/8RC=W8A2=A"xy)'"bRcJY!a@9˒Y-yY0.̌  x2yyY[9^.׾ac?#Myxט@" y<@%&2x9͇y.܇(f TMpyϟ.w s 3YoYBCM %w"zysϢEw3yu!zZIziw:L.SX1ť:kzsn-sz64Y!@?7ݨ#tZ :٘CS}`XͬEZ o:]/Z:z;{ ;{WA|e{9=A;E7E['{G]a;eZhEY{y}Q3Xpy{{۶z;{ۇ/Rѽ;ղ ۉu9B唷3׿;{׶߸٘Ao˿ [)<%|)׿{y+A%z ;#\Yż]%5|_yoލ'l^xޥޣ~>Ꭓޟ랻~~^^ꞕ >>龫^'>^+^ ~A7?W7~Q>|18^4K????@nvzB köϽ$@AU?\ ם_@X4 Bt>!DXz(7cRYA$ ؠvI$0эxq9NAPcvA"JQ/:^YV ޣ$iNPQri6[yXlq MNB"69zbv> |pYn((pAhXN$ڒVrl\nJ ҹmJp^4qjq^^ ɤjmЪt_7EVc_Rñl_T%ph. p _HaJĈ~q veRl!xn,bL@ȕp8<`EߌPY5_N=׌c86e\I)B\[IBZGZY䗦9VkM'iy8FRo'Y℡Ub's|T S%Vi ji}7%Hic9ҏ0*°,Kbį) Ф +J:> ?dL1:++*B Ш), + B.<Űn{6+n+l n+4+1483SDfYN:b)کT) T:J.THX+s( 2-Yd+BШ C.1@.k E*2!A< >K{laB A Cb,b8 "JC$6/wF+mPC(,ˀvDS d`x&7ez>.#,¨ap 3N 2C) |H*X*G @΅ ׊O|_JA4͜6.JmL,nOs˞8E<Ͱ# dA< : l:VgA{(!)" hC ̌ ")N;sFEyc8T+ mEгX `> CX) Bż Ao BU6|0V@ 0HPU\B}rZ Z@A q @(~-@!!B^h`1Hn Chn4`/BL !P3/+ W(C C /r-6'"s00\~ _yXC!Ǵ@ f#8!MV.p* A1K CAAt`EAv p..4BࡹPEA:`q *@$QLd17C !&G&qC 9 A0ý^ C@a)s Cp4bpXt\2_#&^qGyFۅdHY`)glRia*f7t][aP΢+3݁iQZ3й d 1$D ? -`q !?EX0|0> C_h9`t63RңCn<_KAAS"XE 4 @ r6>JEA.֝-F+A_H (7Ƙa TbD@;hC 刳a :/ ;3 ]qCR  2C<<8/vu&˵!Qי\rB.+(%.K ~`.B7A+ 8BBª8B. .Ȇ@W@|J¨@H1B1`*`Ch0a<2C 9 1JA@.(3N2pA|2AInj_}Uؕ6]!?a "$i AUgرVLNl΀B k|m*+"+,",-"--D  h|/͐+`pQB. .uA A-5'™ @3(+͈4/֊8(+_.Rn .D^@謣?@$@A$AB$&B.Br.fO1Nl`p1T $+57B5(C87!@6<@c5K4 1|H6 @A.7V"շǭREE63h) 0 ܂,XFN 0.q\Ch0-$A)43A|ѣp&WQO(^d]f7@6lApVp+@, gdp+@A A t83A/Ep\nf}0n@oDJfZ&łAtA.A(|5pA pAhش5BcA WH) xngbz/JJ=܇XA[(+KdL@y`U (蟆]c4zaDU/D?%Ebn)v~)))i8VVbV%FC)ޞ)枩)^ X.(.LBA <2AAbDD)VTJEhơD643C(1*`d#3H @, ̈|.¨/- @-+?80BDBΡ䠀/R)ث #,`X5C ,A8Y .%NXGOPtĀ` )@ԘdC4$ (C/<*<)Ba(A4\<6Lm+Ȼ*}pH5CPPB.H@*]N7jBeVK,AA6.16-Aڄ`ՠQ,eTLHҝlxN--D°8iA.*<Nl(62zA|6Eyh3d\+p4+¼A t52OuAHO11m34`,L8.8A7H+At2d~և"ԙLA0t('2-d.X0,A~BX,p1AXUAp, +1cB2*},A/M-@j7ұh3D ,0AD+*0-PC 6413pC*u\AB/@.q)a B2 2,`1(2 ¡0W24ѝE8B+N Bl$A2+b.D%U1|w) @-*34C74D@)A+3\h稉37&p2V SW02AE҄+W;;371󪦁X'*-XL-tQ+@c-+hO8-#I4-j}%Ǝ)DM7 8 |0@+8RZ#H+)++SdB4-#KG+RlG08Ov.X,C@jD/A +*.BMn[.D 8B&^u{6[9O1sAsD/B4AD3KH.C(~B12(.67Ҋ//.4.(^x(53BABgA `1L/v,A3A`/Ct*1;r64,1˓zPA)A-ABIA'8.BHش22BBQ0AYq A|.H+H*s$ugH4ˌTU,A~K2CBǍBwK(9s8-Dx1vC A:]7C$x/N1pϘPkI'A)"M>l5_.-D7-v|0Qx/ݑ0A@: 1@oha Ȩ/BN뺑p³پn-(/&]o 78l@_Ah*pGP4/1:SA.6dC@ҧ BXNht):փ8C3A-,C\@jL7´xA/$C xhpCN[0ۜC ܳHpVH/A+04ey!_ɀ)t+nl726TN<4g3-\+(0Ch,\.qރKAtD.@)`),xGB,Qf(2p.,6, 1\.7K@0H.|L@x 7/+*0B5\@H, L,A`*h2)2¼5p+8p2DQF>A3.]H@ jHigեⱜR1ƅhlR4 ֨Ѹ<3KfriԄURR KEyt|,W&/Ԋ‘|EV L8k(rK ʌ3%Qԕ-MSMUUՍ5)KR{#-Kr=PLS%[]ו}_ W(Y2R7NUE4T !i4C  -9UH0-  lVUT^8h!Η;CbV=3e O5ԞkH|,lXcPy!0XaTYRePxYY>fUxxX(| l QcI`kaUYlsUkT!2V`R1bY_j2-yq%! \ݭBRЊ\Os/w|[~X"@Ә0Q#]c)&F)]٘bȊ4e2+d$ ^iC@pg[YP&r4ޏx.Bbm fZ 9zg"tfoÊF6ReP!cИQ,5 AH]cH, 40R?AhVqv.E\ jb2A_)T 1bBpHZ14Ϡ+B/-\ (fz0a ( `,E"F0f-P+B!0EHaa؄ @V4&^L AXP|`F (*  ] b!Ɋ,8Ac&bس 1u%XMae*KfYՀpSIN E ".G"_YN}!H4B5epH4;3c$( W&0Zs)Ž-[䘄RDP8',ŜS0Q( l4HE )G)' B*@8px}#]!T0ʜ ܊V]ZXN,(ƗF!C8j@E  bC0wt/P*@EH/ChE `R B?KPf< .p9)E M0.G蒬t(%s"ܷ3&mEx_h !ZV f3 Bg1F\Hg `Fгx `ah(Z(e,t)/xYJ@4ͨ&oAa`iQD hAzXC \ wE09<\B#S ^FT}!:0Ƨphj(p9QYfEi!HBp 8tR $z.Pi aMJP pl2QI IFŘ aLZ*$b6+g[ v1BȬnHQU~1rȁF 3}1ߧa1-4(qf2N c+±U _#ظǙ*V#) ?msOhP',?@p1E% HB< !DT)(Q-_.Lc` &>(A$RUb(i+_a-Y eob3qPLpunѸ-}*E^w2\j0n¸_ ;.n5`%\3Ƹn^(Yٜ`dO?pt`hPar{ʍ MB3>0`۝( !?[<+]%<Z gx ~pLPB4 @_0(Z#Z 2=`uw' &F LqArUa0( LnqP.N-FM7F)"t>B_\L6 -9D a`~*2#sOSp43aFߘ(&Y 1M9u*a .m2bxoa\̣ײFX.I0nxjd%fho!YU12gy)h+8_`(-/89l(XQ˂b g3K@\Xee-(&0045Hb(87hէ.S~,V.k<&+;H2nc(h2@a,+## ex%U p5d.^K9pe*dp!e0Xdl"aR3[X!(hP,Re(SW̮):0`H\ 'ZW09'9.<8IJe 280i]Vg'"2E\5"rƀ H/x/ @>ÐcDyiPeg`HHZ xgZPl"ЁP8qxg0g% =Rp'XmTpgdp'4@mH-o(P(h^ZOKPΨk7kx2P 7eh xR9HY!s((ii\Tz%#\VLU8 0$ otPT @x_Аeg(]2"i(e(P`(K\r%723!O gR U`\H!U 9SV" (VUh T0[`[VAnT hfW"$Y`T(TVCɷ T׷H[)%hVXy##o  SMTu [zCYq5ƺS 4M?AdUN%Tr:WSYљIЂ UZ宸)Y"%9(q'h#D U%>Yh8KP)4(@H!/ % q]}10"ёV1+M_X F*Hgg YX[ABRCQX&<_^+~`18cVh+H"RxXH]g@kcV0\@]XÀ(kSH&>P)*"2݀$u05 2]E`kl$Ϊ!\ We` 7p#hP4YP%H 0]' *3t^`XF$Y`a@VH1~V@V͘%zwZڅfoVZWMG:\5C8%N؊+&,P_h3)hdKD;@c1"8e4g6NilC3_>ЍKjt|1w_lE@R.M^p-T, 6թ(,* 4a(20iP'C(e_}T$''HgbTްk k,(#"G2jY:d,8_P*x%zҭdփۅh.z2.I)fi4[%EuL & ,3 peS:ZS95 xZ>I'@.r69?I-S1+3w}HÇHё2dGNZgq_ls8YtYEM- %>t9 6 xyaё[Rց徙\3UzjCųSN Iz@S!y9nqh(WjZaP xYѯ>ZwV]x=Wxjі'y*Wn5"X(Zi ؠAUjVoḁXTmb=`UWwk09`ejE\[>o)Z 7jx\Q`.E8]Zi) ]ghj(NFA<솘]@ Rx[4?]2UP(#j0CdKL+<,0حŢ%Ebxf5G$5axZRAX[ d1v#*épk*2Lg,Z25R),bJ)0fŪm1fZ.KÑ(HH͆Q2(]5 fKrì/WL՚ERcK I1F/%aP4lweEt#B ($3|~8Pƾ.\.)~eDCź3DR ny6 p]1xh) jFa/h<#H8y A})ax Ĵ(!2NfX?sHA1qT,2Dp)>̨D]/H4=cbC޹ fxOkxwCU/1Vp6@!^xB (r4~J1Krd%%B&1IT D`' T;hpc(JF111mD20 ؿrȈ.YY@\0yÀ*s` p.(¼& pBA A8]z. L R d Y` hZ h?baPI F }Jȃ`q4SEB(/EPJ D& tHjJQz^(EJl€A!h, .0 h`|.Ø(H4AlE@/R[AZ.EĐR u$pRF 1%>a &u @_R$,Ef^pTF1TDH0|.E)EQ)˜YX-UM[' 0 D{XXND $Ϩb^z \lU%Psai1@3E`#T\bq bv+u`3a8( 3V7S`~2&G .qEbY/)}@e T,_/?y~K@yѼA[y<0< H# w~gs0Qs    LB7(>e8g?A ? A! )F PA wAtX0=4H1$39;1VVUAw-exF#@ O&?U `C>84 h7 `E󚅨\9[!(A7)e/@xLxz|88DfV*ew؈PeHea*tevVÓx'b(=NOb#+C{L4U]BBЭ "18Q=_9>gCFuF" 0P5  ZPC d| ЭHpQ C0 N л PK?WH c`[H c  >PH;4` ,и! ` zZM D1 `g7F 0 `ɑC 0FP?((   HE4G 0FBC>` и > dGPM Q ڍ < ERP ߏ HPjG_gٔu+ F `#GPFqiלTGX0H‡8I<1"hpY Քp`fA7\ 0i@h`hi TFQ  d W h`\ [hx QzPq@j 4;0k Э& `Hm;A ! PHz@ ~] Cm"j @ @mH8!Rj 0BN  h*| ZpMp E UZ ? 00_\ `pIYН)ԝ`ZG >H 0cg\ J7dᓴnYh Q 0L\@ x98*(*d700! Q T 0A=Si! kb Y wA : PLQ ]Ekr觑"JLP( jpA)H Al JU \ ߬d Ш 1Q 4 e`ka 0#>0E4 1`E f o20cGhj@ T_G*fx L'zqZͫP 0=7Ŭz`c < `mΪQ eZ jKT TP*F0H0(g38ɛ V  Q@M?3 ]QKpV Q wPhЭU Y+6 0\   tYy'} Gj`\8 x-䃻Ƽx % t xDQ3 dY ' iZfu5 Szt6})[|N@ "+4@8J[ `Y0 >6𤾀L7Y :JIJ]n V4KZ ]gCq{g6}N!v0Pg6D5T^q x `< P K 1` G `EGP` + x`f8 ,I1 dS 0CC JENBx|_ø@L5lFҒ04?C`pqL}ۂe*j KƨVA;<ܮ*2fY8ܫ8>cر ;$ 6B#Qr! тL@3Q΁и{ T/!hpC|Q@Y$nUG:E SA R hk(`Z!qD 09ID `e8"0mu j յiC N@!hz-iHLՅ0Y XӠwQ9'\  ] @:PYШӰQb R Ь 4 & @ Pi B|K< jQ1n?г ס7 Ъ \ @ >N@Jh0Хn' ڌxpP ` I@JZ=`f4ܾa  @æ͎Ƚ Cإې> QH7 00T 0ShY@j ^j{pA (pi n*Fͨ" 'rB(jX$ C`H pJ & @PV `ZjFq #q$ f AE`6 ^'R06h} .d`0`k.E۠'p ABb ݯ" E]+ Mm /%EZN9#%!&H:҆X#X`i hG׃ >+2֓b ;0pX ϋR_ #=`a 8p,b)^ʮ2 T`HTCSQ 00:QDy hGC0j>d} .CpN~_ pljP8DCEXzD {y EAI @ M$HŖ 8R,DX) QbRSI ’? ȤjBR~:cDQ1C^ebURqurcH JBBr/V c >_U! wS0IҡtN]++b\\le>!PxS)Q"͎<(HQ'*d s, :e 8Jц"!+RI@;ysܮHB>/) p:1}NuaѺRb}Fy:, }-ooPKn( 8羐TAtB0' $lB?p#+E1TWEt^B ˔A;VAQQ$`THP2L RQ#$!6!!Ђ1[M}qÇlMІ' A^)6Sˤ3BBXeP]:t> 醂c+Q-SX i"tө@6Tb>.'$!VdI/>q^EyzlA27ő2ݷx/!_P\ Bq28+&z9"Ѡ!c "~`)ekx""",e/efU* ln& ֚cL3 C`X4PcAc%!cyrn 0g&*i,qh71h bag{Sa^&c(_>\%b &Ei$ !XEy_H5 #Xt,Bќ2!Hn]J>e# v/  1~BSe- 1kE&,!^HS BPfg Rƚ>b)]ffƇhp)%?\3?VR#0x.("-2vBi 8h> 8Vo +1`!} 1'@FH9񋠥BY5 @1 #,R70`0! 0GZ`b 'k`ihZ@S VK < t|>76S7hiixB&At՜"xA/Рct(_(!E 4Zq-(Va)U}r10( ՗pQlQIYG4@8`)!6ܿSR9ku.BT!2PQ<. `-*#\tALA +\@\ 1pCx +mYq~ ϸeD2aajSCFH!-P"-@c4(CiHc  k*TXjaQ JC 88cEٙ*am/>KdYF`*>'q/JTp ? -+B1[ 4Yt-:xZ ? "<>ѓ/ AX*bf~3B*012| l;`HHY6Qb.CxaH*3P,> +oQf PXm赐D(r¡XTA@_ ú !3p!J6! Q9oo-8|-=8׷kp^8gӃd82[<5c 4LGAUvV<EYuD(I 9$.,69 |l /c-_"tUiZGӱ|S|AF,Xx R'q2Y"|ExH\Wz^}¸ڼxC@R ",2XAvpN8XAH/V 1t2nZ@X)37 a,CHQXPɎ `[ `eqb^٠)S 1s4U !gXPCa8+ P tx r  xQ @ Ȅ^> h Ahe \">  Ah3 l @`  A .!pr^a p f@lS!6&n!! -!zf  erZ`hc^$r`a%!wpt"@ =n΄.m㪊@ Ao ! 'Bj%sd\ AP $$ `AH m@i"$!P @h`FNwtG: B,it|`FhoHLvh d^|P< &Jfx&$AJ # y*h ! ^JTqzo h hǦ QNd4`@ aTh!bo@ Ox1 < t NnO>g0~i, r vAl b> ֟IJA"a ~@+n j֧ L aZ vnOat^@ @Ɲ<0Ij&$a!v @}&@-g %avp qitޝ C J`p `醎`{3\r`-Ls1> Av i+aH5}9vm)!ܞsaAZ& `n5zŘ `F!; t *"#+!V T'? j2.~?(N6<@!X@laiBtbm pZ0a;ZL l B'hÍl6aTSPk|L̾@0KLm^Q71@hТphdT؃Կ|J Yc@7 BA6[$pD`dƮ6aJAt1ށ u`o@p`O!& Ty~q AZo!m;I A7v& !v brdT0 \!L dt(vA C >/f A~ V !ᇀ㩗 0. &H%Ιa hd dt s@ ` @ʠ 5r # @@3@Wl@pc>Asw< Y V_ "=Qh b7r$N6@MhȊAt`A/^Ԏ b>pPI(|aps;@Oj tٸ)hb@ !r`Qh: #NA+tef` zi&1?`̄^Ef =h lA~')h Qv (p|ol5Ȟ0 `1H,Eg*H A (NBB?M406R~ H@J-yvڮ E1 N[. ztt ` CA!5o\/jz xfo`"He!v t`! c!fCg "+ @c\>{`h !t  A s1;lʫFT hm @;dJALBHYbe Up<`a @}bߖzc`6>E4CRѿZOy{7ࢂm* mAރv@'V!L HvOaZ @p~>!^h-+g?CH5~1"nnАh5!zYtiRaU{ԆwEA/t,{S߀_?7 LMalmVV` " / ; Wabe{ ޶edI# t 7  qHU,S0vV3REM5!!g4 E3]Hh#2)|̱lJBu^gy=OR;<:nS4,NDd f2٠+.`zĘ[b*j"Iij]R*‹NeF#0GL 1: ]ZFAZæ,ڤ3x6 =y7LbpsԈu$bHAe ZfoJ99$Nam%zj!Y8*іڕ ѐ4 LBPe+ A+LE<4ZR*g&∥7ApD2 A)EQ+ RΆ(_.JѤAEA4.Tc*Hܤ1@<.l_䨺\E!)$q0 Afb+8_1(f+ Y(#451\4- Ci* rFavxxkfyސ{bDE1Lŧ8d A 4 R I3aFALrĈd],La}a8N έD0ţ P3e8Dk<4s,q)a,@J R3FI˓ P1rb]`R*@1LNC,PAL…_1CA7 pQ8\#@/E`ADa*Ҽ1PPNtc,M Q%Hk'ewLyk0+g~Oe$(*P'W8 ;#9.ADӒ8O[ӯ =OWgwcw?;㞿Osἧx뇇[O 2b))`ȉ1>@`xIʕ'/p 9`\$@S}%\C f)W[@;Z aurJ`/E@VX&1"Y|0b鳰QYR5( ~+B_B'0P@T"ФhF ) pU 0,H .@AX+ 8bpdTk±b'c@s"傥V\A d-(J1YyZĂG R ~Waq R`hbH_H^0mm B C&!Z|UMPG_1l.3 B͵Z!T Ŭ+ LA p9~2aSp+ C`SAh! ByH-@A  /hť 7_e ~.!*4^rV|6G-)2FA| (<(Ș B`jc9T0 COEZ$@AA!{h6Th6(T$ UD ,]-pP"pt5asθR|Z\<UE.)Edq6$QJ0>w2*<ǠS&*ADPJ0N dWAb1 8*.:dF\&1 ,X (0Ѝ!X) ohf\_wF8NbpldͲ.AL3 "۱2.HX(RHQL]+/ Њ' N1삪`/P4S.4صÐQOhD)PP0\  j `A0Mؾ N C(Պ X*0悠-\PD>t$P Єȝ O 1UTp!(ND\Ms=ϜΪNX H ,B+ ,H"@)l+!+h@+"2e`++"¨^,b @b*A )날bx5, @ . +B,b6,++p)Juǂt%*-/b!0J5F),Q. p.,蔄*A+@30B+--B\o,QdX7b6G C8)*#,b+A*`YKE$F "T #d-+B+EoPD pj ζ NG<1B/CAp20F2פ2`F\CLd/ĉ5t\$2SpC,31Sa(3c61oHC\YC46^x.]8@4t8F^4-(3CHJjt]AQ3B1`ZG)H-iGBg`2bl\42H3HԁD@0AD/B:ffl-?,A-t@@61|]g44#A-p`Q1`BV30EFQ2)&@A}1(’u1'P2CHX.83ZoX`{"itXx H4 7.ɼJPPAHBI32C4-3Ѱ ׄA6$A)UC3||AAh 񮚼Q7}8)lp)|)h$AhJĨA,-APR]@J2TX*\ꔈ. 5,Ӵ7'73)GjTʒ0YK܆*KC`jT,C@-*STʨH~U++C,2@]A~/lp,A JI@7Ǡ,`NJ{BAdHb@l^xAT-pфAA4!P&¨@@ҐAl)T\,'¨.(Q1P.B3A[(2K BLd7. q$Z478 QT2A06pRTt HjB60A1,-}S7F3Q6U@CKh84xA^3 n6|/AuUD.{.X-,.%˯0R|pA@THh@Chх2B1HdA(,ˠz..1ʎ Ϳؿ!  Pld\-i2Px ` Sܰ)UewYtR` e?qN%dXC+(pyM \0#0 H5qq r !q0"ba23#r;#C$rK$S%r[%c&rk&s'r{'>@&@*@&ujr-A%A./A r/1s1#1@L H3K2H3$@sc6s7s{78s89s9:s:\3_6B!3r%~ʁ( qk?H4AtA#@$3>쪇3`@+sbʁ@4(;4ItIJtJίA*ʃ(A2&G>A(4;?qkKCcA/("R&G5GBL!4TDVA8YJ6<-(lSEH##G>@K5]^u^%LtOONBW3$ObP'TuAu+R(e0N4|5TKdv/>-jX{~?q~@G#@|$A.wn5V=~/GKB, #h0^b,ii-LfqL)[S5~c6ms7$Ft҆ ~C?xv:sx=p?ޏz=nϳu+ >P\ yR)+ðI Ð<Đ6$UCqDKEq|=14WñEDtEC}GUH܅r&Gwɲ#QLd+ȳ)<QcHKr+;K3D͒Lw#S9˓*H)ESA|?NNHqpdf-8.0.2/libtests/qtest/lzw/lzw1.out0000644000064100006410000052620113247541377016007 0ustar ejbejbThis is a test to see if I can use libtiff to get lzw. wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. Let's make something very long. lHYmsܶ\ FK;؍k'imrqvNT"PK{]RˮHpw}zjxF2Ju?{{S"μ3q%ן(p-\-  񍞫JmPvх^0, aB1_X4̑_g'0m;bDG?GQ1ZgGOe0?}PB@ƞɗŧ~x3D{ZH[/DEa^ʥ7e._}ۿgu$_Ei^*tW%&@HK#M!,ѲY 'j^Bo 7#p]*NfQH‡yZ#aYXd gSS}ZM^ h:]h#%a+˔[(1 JUT5*H9lNl+d\Ysʳ6Y%YZFlMenm ͲP ~mA=th-{,!)Reë!{O'C=Y&8`̰ _aS<" r1cs|{ϸP4M=$;s)Òth$z:-onlsL~_뮐=_?`KsJ$"nz (B6 DQӈ ;f8`6Zvt)29B]D0I"˲BKILOP(R"asAeFeGlyPYuSjktZ 6ⶍ1y1, G[Tϙ1J˜igL-Aѳg؄ KċU3 +]r:yr]NxT(n#;U 1ơ2GɆ"^0*8Q :^bGeaE/DV uIta6_B1%r{Y:4!fN I 1u) %*C@p(\T]Nl\YrG#;Г5t (4]'\`툁'X'tm@K溩RJStf/#onp%$Ou3<~5ч3aK0Ӂ\t^ h6A׶R>\c65ҪOQǞh[2šz' (zBeiU ! hPh A5VW4^!fQ)ܐjCM%4K]2&t(>?SYgzխ04?֥܃$cJ1iFT6u]z!,(aq[_eu acy0^G  oTbNy$azrP^).GJ<A©=ڝksuwror<ЋG0jg%/:Rܾ )G4#{V1A" 'ۇo 3 f\20U2G1zOS$<.ةgP=2wp^y O?67r$+ eIz!=ѧY П˩=O"@†$)MU_X9ی;28pm[aFW@-cT=U|{T}yzL>C#DULc5\~lFe$z e RRdZ.̀nCx%ڎLr:mTª>GlY Lj:Edb@Yp{*'o#L}R(BT2 E|J|.,q,v1 Δwm% Gy$G[Yښ{ִfe}1o>~J0"{w֌cN^Fe3*l# YC}4o>sCqe$B%UNGA<5|+\# (tu;F B̌1 A`8]t"K$lRpS% T,ž*-jx ۂ0} OXQ㧡2Qc:m0xS_5d P"`[ {bZj7܄Oܳ$Z,lKٌ_mrY@gEf}/<1z+r2>H)yRҼ !gWsu(/ v]䋻܆zj{VMTH\ta}"\F˵T_Ѣ/.Ea}Xd YfxXy759N]5>᪞ 5VEm 8W|*PAŻЩn> ^e K&X/|*oR آkv^=[kad60cfd2(Vh^*vv#;_h"u|?` q^shrڏ[? YfFŒ8e'-DHPK_j1~-@֋/ 1ܙgqK⌦|n0}hqF#4,[-(.gtLrLj i]ȌHm*)1rq)h52hܰ 1$^ / b<>K8Y}[f]@rESب{i7&eߢ尓rJ%^: ;煜tbz%gJJрSfl40|[p15YF1ؼn,ܚ$nYʁ7Eu Qg: ٶ[nq'dH2YJ qm5Sv) n'OVl) X0q*`M_4%x-8yYboC/\ 2~-@ v5-a<AP'1Kv3A~yNE! хpB:rM|1}zm-2)gkJ Ԅ/?60Wi(nNT\()|5[5?8njN3/iG =kn'srRB@2&:Β!3&~FXK;wjU $y~$Zy+6Sʂ㺃ES-^w1 b^kF3<ow2\4[ӡI2swvo:!e5*tϧ\7hC X:  Jg[ #Z}n"\ vqrL!7#v{0x >YHApu~Q_Fp"ʛp2a }飼DE9/`x?kkaUߐM!_јl vkPP^Ds?[%YVabZ$+N3-5hYd Cvd-̟a.Sk^nγ[5%a<+]E*``㒽(0Nd$|VCۻ7PL!|*#.dF:9exuRs=R7WE%&%,W@<o4e_ݮa oUF53s1 L|Nj`Ϧ;v8%ؤdJj`SrJBeP*Cm)88S!}xT܌}~O3cDXRcn3W=h}s,KۆLeDa() E d@K N-5ZШ&f'牦0U҅(D+]{irOr24 "Fxf\R2\B< օ ]TLťE `#ӎٝ->ysXNA*$ k{dWH{Ӌ{d[H 7Шu )2e9|?;Sr=4*2ۢZ3vLx?/_0^(}ꢡiYtQB0$SVnլ2{,?yZ;~Ӡk0S :^|b튝sdEdv&h_k @˼rfw&[7.sJ(_?8 U9kKo;':'G'o;KNp96]w$ Q6xsCgp_N vt]]rsPlJո>K͕{Y]a=@|c7)4yΘg4%:!Cf ͤwU_ Q2S jҳ˙УY1szg}~^xb@9Q-9_6?Y4_W&Laٜo8X.͖$`NrR|'1_9xJz=' #e S,:~5痷G=zU,*N>I<,Fn,m>+^B7" ^U+M귰 *3*Q6Qq K U$NTvHdR4C8M,K%(8PttdBbU~h8hw-wl $7NJ(tD׫CT i6@uxD]>`]Y;S3ؠ LlF( 2zꀊ(oOׯ E F4շ% H!ݐw2"0qaĪ6`hhopLu +G"jsES^|"숒n9gJR:ԴBq`Ĕ(e2 mgnÿ>k?o3_p57qc߈ bͻo3!x;?*YhPJ@&Y(5\g&P"V P k`Xݩ!va{E>_4qi2Ā }\+jA h-}t3ވ.7{ɚm%wjw4EO1[]82+3Dzec!_N7ETc u~\e%wj!K IY^f&& l,uKNaZn5J(\D" 8 q]֛qeT d,iܝ/ȸ2RFKyNkX-5GIe D[hZ^3\vxaPw|LJzp5~Ce42ӈц 4Jja9y- @KGQZ)/r]ԺͻF{!`O!۳-Z|Sσע~Y3Xm^WqVn=S7KD˯}:n;ѡ#nצn[Ry_(@O*=iG\7G>r>p JN:{{?[ f"t[oo$8O!o뙧\li{w깾oL&;&C+yR=0S1J 3\wytAͪ$^);+N Dmm3~7)N"A{ֳS=$('/`?ú`<@zw__c.Qtĉ[K4hwSxȈ/"`:v0sN=ubcv: 0(Pf Ogi= vY*?ӵ mыZ^rہ12X]ݏcM\@`7):'4g9- Z3 w?.jKu}J[;4,u]PuY~esXy^!ULR;\!0iXذ+9MZk2̰6 Ijh wZ_obtWFK.F!fd ‘+C·&P8ϸ:Ne*OS![Y:2z-}wWO]h p ROBq-8}Y}DZ^Ą!k+*uG?58/snZ?xU@)㋸'%'t(!L9 $qfsX0JE#sOnVA0z!N2Xkα(`?-Dbեn|D28@(4Y,BU"L. NxF8u]EOu=kvD-} BwLlnԣ{##/; PNLj䓸]-~0gV0I\ 97}^ZΨpk/4?E|[lHX*4oiA9#O: }v jwl 6-?- 6kU@NHdJB'P)lw[İMQ _WI_KvKt5vW9qЏϩ 4}VE ;.ZKS<=D{Pzr@Lno͈X7ȫ6a8Sd0I i BƗeѽʟ z؏@#Hĵp(om38+7>mÁz Ҵdd&WJD  +# t&H?2Z27L ڲVgI2_L ]^f+ou(B.U:|ByĄ|UcYEКVY2h5EBNCj1#쐟z:ff  I/E[ Ir](SۃM;Uv MmE%la-[WqY5FVњq m@C˙P {u1AQXl*UP: =|g(kM؋ >?|PV}NA4Ҿ",yB},tVKռjd. 窒}M&FOvOm;<9%i7Ajz&|jn6u<L? ^ _𴦅<F]+ޞ8/qv g]4{8 'zbI<-e;An _̖cPvXwr:&tsktP6(>1&;K 6`vXُf$+xH{P'L|dXvPP)! :1!67i?YWF&hp9Z6HA@Eq(o"CO[%5YEX^NhTRh|x9CdBiv+t)/)ocA;nHO$l)_^Y dH@3]*}m &7  [R M:MecRzP-mh 5` W0A.[֒?݌zX&p&Vf`^ oas<e\U \]0 ERR!rS8^@@2S) -'mٿ'Cj\)$z 1V Kdsl"Rw5ʩW.~v:z>E<\~74UOx -o 10^s]. a [3v~6@=̅8u`9RUɶ*Lܫriev ƴR>S6]}]q1RB֬W ~zv%,/gSŸٵ-i0եO)lt뫉{ sd\Ga=s.=k9ɾND{qwY#qBi* eVW{O[uwW㯖#ٔ,hMEf? mI3eC~C`M!:Di59a@)\,wy/PzrW`Je7 1) (\S||;om`o\/,s?N4\vw?NPnS;V0yhps,p0fr)t̓SZۃIm.@zK)*KbX QJki/[l4("lNw*u7` #}Hf},%i@Ę `+ uyI|% Gu!lɨ'iRnT2mBGTTQ YYI>0kuخ(TfIAwO9vֹdRS.C ?8P3TT*2W )h2Z3Wy3 C]7,a8pm\ qzBBa*E &h G/EpPtF1f>p O<䆁+8_fI?E< F"}L[Xf3g  #Qk Q#X(Idl狟1温^0~{Tً{܇YE:E>gϟ?h>h77}lу-|rZwkfuQ@wt8$`+(ߗSt~>mf:@u.V$=:9}9~/q=sIr0q B3OsO]⣟4IPρ+w]y3O*$*':u_%O*+n-?²bz'753񲉲fen<cpcDq"OnxخَVL)'a>,CV"MezMňmW1O(yyq2vLnhY71N<`L!pR6=j1Ʋcf99GUeO:uۣ˯_zelBٵ \11x4*Wvd2mzU:$tFv9a4+)ǣ/lYp/ y̻ g-n?m>g͇m|7wB.;U )x4|i$  1k4C0Dp CsE.Iz 7 ̔'jXb/G|뾷_d7U-R@HqyCԋ87-$%l8̒5%Y#͇+I1,DC_'q+.㢲~ B7 υr1yaʢ cmsNSٜը}4;øT.(̩ siKR5NK3jm%n'3~ /7~FFzzqLz%W%a%\'*[Ly!%YI;`W  3ͫl7\з*1DA>Z炀Ee`N$"8ˑtVF_4Ü{מc 6g*?N? l{z̙p\7w ,m1y%Q>aK.rN/?T/DgѹG q/;._x;;+c9ax.1xBK^0dP] 'o:p񌯳5p?;S E{vN j-lF+oaN*7zGF# S[5%-dc) BU(.) RSx߿↥p/g/B'N,u'SGz( 4f%"C@ʛŸŸ> eӂV:F ρAJNV5\~ Ǫ`ZxT؁^a 4(ഄ:v[.T_Vʥ^1Bhxp'vd= &!Z*P[n&8OJ]b^?ɀC&F D uDrM/z "~Ugs{bvjP;#Y&]![=Cz'1+.C31SΒArmXf1'b@HW6!RU0v/9AA9!%ĺ1{2tJʾ'y+h |g ~S8Ad_ j4qZ WaLFEyvgAtn_/~S]z. /e7_h?J]u`Yd~ބp3a 77&E<{Týjߖd6I|N9J=;oѡ&&_c 9{}~ oqnwm%:h2JƓ~*AvZ rni`d /Ņ.v19mNVX`8Sڷjq^FuV=w6K%PMPxCk;c,\üa۔EO͢F9ͧ6mQ*1.n 66#Ct9rZzvbNWc+ҨzE/E Brk{^ h*f1.c 'LpeGJ=QPc燇R 23BQ9}J04ᖠ%BfE|Sΰ,4dzzies@JFzj(̍epElg Xxp[x"JQ3ڂ OeJ—Č*JDHga4C`E\@#=+Zo( !((ck5Wه:1=.v՜Zkܱ.g q^ ̮lytj=DR%LHm SvHЭI`V{OV#&XyEf8+yAC Y@ZlLA؏LU Jڧ:+]2#T(/a:֖ukqw>0tTهGuru.+P zy&qmccznc7 $sXTf>)͕䴐6Uo+֋컒 sDX,4>G}S%lX%hhnTl ũԖUyKH˘vwsAӮvrl`%0 64I(mmd[V&۫$Ī6cp F)b$@]_ag{2˘Y(`q ;.CRbH%TR7v2Iz&l LJࠁJVӠRQ7lM?JL֨ ] ~3=mHp{&x # = gE0M^{%t=:2D™ЙgD"oM2{G>2-cqRvZ RsOC 6wu}Y~{iv!Z |~ac 4ɸFi(A9? +nN0 Ltm_z% 'SiZq}Z$?2yTN񚭝v۴iɔih4vZP֧zQZq4{ӠT4|!oNQj+5IռƂ)] 59|5#;hlZd;b R \f ߞb,yNDU _5PUs2ƒ 7e8c9 s._5[mIU˩QO\SYM/;&|ΛQX-hBUΓM=4)cP#BFG ݒ<'U!0Ȕjv|UoWX2q!{L84%jʭ<<'" Wr͢tmѥ.HU-ډtd+SY@faB? XUm cšaIԆ८1@Dt-THKbul.1dd٦F^K$R4ot}ŇSli(/֢#&!yuNCYUb`.S/H\8l,/i{AZxgm+0ՌPV)(ݨ50&X!ڠ9ߏj Jv5a1rxţ̢! K؇@C|Ls>]ߩ JĀ!nޖ&v('\oVAX#nC "i\5x{ʙ%ˍEmpjeL HgeH%o}Fjvl R9 3m>jڷ vߝT-uu]GZ,Xoy(7JiUռYcr;g6 EK]E 1ڲ}^4) bg<<w_C v},RW#ӻLpjq5 dp]Z&T\3l uǭ2okH DR۷]M/,xɧ)jJh nb%?zrK@!9tHsǨU #ڡr_,#Ih[Ր *SM4^f /d*~lĵǑV7Js;wZٺ ;(HRT!+x&1[u7Qt.̢$a)Y"s/2Xt 4٬sOُ'="o}d*5^Ype\Vљdrw<ةZ}PX1h JCI' 0#zvΫ^1/e.s$U\Fwuƭkluٯ΅uh>!iK촳ۨɱP̦q`@r2o8lPWv ;u]E?sxʎ:{ 3drN;.l~Aɀ]4>Պ)V삽:V `1 h}7mY'X͝r9?gf 2,wЉR rЩR @t,#&+`k%ڌySnDr);:Αow+7C` *rT<9V50skSS?Po7ihC3bYOrvgYNI&A!eeORa3U&Y}|_.R$R;*HEDc.E5W aT"3H$#Ͳ$q4g0KKLY).&C'NX'MxU!g5I}lC15OR?^r*ic t ?,YH˔qe(|4#3 neba3^_͛m*b%s:9E3>Ga7 1/ȹ1fYbXٛ+acfFb& ala7]WpmQ .)[IU=|SEKn}!B4ț$(ū$@E$b"O&Bʸy 'uB˚J A"`b% /&ITX~*-Y@t-y.voz|摳/py/!Z8fU(! F . ȡZ1 V IQŌ.,jߚkƢUq^J DYG"ݤHA)2ե%WʭX}\H[h^e/ݯW۬WݩcǭǗ^{zky}pT@j=z S1anA(f߳ 0\$I~ꄸm1['xk`HsAfsid$Mqm*ϗ a3V _j\Y.ԥ+F]ݏ% BB?#Ք+UXOǒҨx[=xjLRMJC&x{..Ô@T m('tw_/ h}s{m t'+K c{:/Ƭ֭Zlë/M1KḀ@ԥ@B$: I'1̹xg+(:CON^Zo1׌." Cϸ96ǟ b<m=yruu'Ou%]{vo u޲ja= prI ?7=sDro6O$(^rG}wtzėQ/L-N' G?r{sw IBY9# gY@ C~5MLX2 {ˠaGqR,9ʤ Z@+d+p NcH{x+BdX| C ngp 2NmäaTQAQ@HH 6xETY1Ó'Kne805<m{ :'o޽=='Q 6cST28jR3&̳s,t5dU ;(9 p"UlVCLTY֜sbۿ'xHE a02wI 冤@ VpM8LU'"HfKϭ*eP@6X95'u`[,,U erz'U1{} C l[H`U6xpR { t\@yc/j֍fŶn9U¥YW09'k\)}.`HZU>1?x)0((p,[q6m4t*240mw)<\lmn>o?_m766Ok`σ쿼_/i&!G||UW^8 _|ЬO27|+T_ϛܪ+ԃ!ު Di}z?:M@šLb,u*u:.a+u> ^Zzۈшo8kuvS#5%ѮiA0;:,.gԳ0LD #|oJ>*4up3ʷ-5m~`'G'γ Y(ъ~ssCZnCE<``qW{N-/3 Dm٬/`eD98<>=<9\%g@$|`Iz@W{-^lµBI_XW(69^-n>+)8fAG- JU}{uL`u:ƄT{!S3U X~Cx|x⭨rЙDIϦ-_f| _e;8sm?gϚ[LtDoy{ݣ_¥eN/95__v~ )aËO_w~RkL`;>pO|ޞ{{tbOL&tu1Sދٺ\9n6C9мE 7MS(&șBţO&:s2tZ+$ݥC F}b%A/|Sx0paR7.s0IJe֯o/4ii7FHRL@0)"tFI4[ZyԮѿjqq2tfc~=83a 3:Ɠ AKKR?uNnIQЩh6 yXnkITѽ4gZQ>i0>҉ _Sm g(%<cJYm𼐛ڄ f0rϙ;63;͓>a wIY(Gg^'qc^l,>WΦg:{לpX>MnvKZ]v?z i0EI1Y|I7#6 sTc&RHR?t?ڭ͍Y?fQypPk/|[ 8CA_oX8 fg`Ņ^Ql*A RGp]njN1mWL*D (\υ`\$IBC6|Ni*hAFA.8"KKi|F|MEw9TA52 ɶxVFyvVWQ@}ꀒ2f/ % <@Uh$cЈ`KQb妑Fo/2Iģrݩ u֭tR |ͿC++B# XO:UDgs.Ԉ64a5! ]I <8>^2)UC 񺗝$S=悗3,^cXpt!2h 0 2룠3M kޖ=O%8\wѝ~vI`a)?3Vq UR-Yt*N^Voϻ\1 \dPLBs)ըvU1Yya-r֖yԀ]}NTkoGj-npՁ1SA;Bnʢt)?[I|.$]8'FxGw0 x@:Co3/\Wh0qrh{_MBu+SN2$mI$ ]0h'C,ԅ5p%>aZ1o+pI\! 1727xCTD, ^T- ( ,QRw*qoW6cYXc"< mUZG=@9M/8LXpxX@d`ɢo K" i*[xJ?ԙ ; t8䢀52>i8p+~o 0GD}+t(r@1.ec nP{]ډvv 6O^eW\B P#.M@.8?_p.NӦ8pׁgerjVqpU({4 WCOٻ͋Bv{O|V;'o ׯk&3$?/ lu5X賳]}p-k@x-k4~XĀPqp1#5-ʧPebx:3s%%=3$5e֪)Zx%jZ0e3&-S nf]Au6kGW- Up[,!伨uc_{"ףttQjE~҇2cX\mq!}4tu3N)Ң=5#;.27t+de9ɁiXT&v/}OBI)p^ lҏZ++x@琐.^3 Iihu*7c/-O2ŭz!@-1i>lSσjWA=꼞Kd[֫S*}r]Se S82c*ϮUdX${0k٢Kki Uv[h֎3c?¢~V@Bu|jzEox(Wv Nr3p?&H- sc`@H8>K-x@&oYdQo+[D ;+dus-Fs0o[yT+p+Đݔ gN ^msE_|R79>t!¡"UHܛ0 WLf¿&j[FJ.x_9M.~QȋZm onm5,·1l{1Sewhڽ XN= س>NouZv w#B~{Gχ]nv~/w鲀]p&Kʶ0ujwwzSto>xji=|v~0K9ݹ La As%Fgl2LeQ uvaREC\PVNI _^!cP~jU&\ :?IKA.bpْ D4d{n駏# ='v\q'WȳܺWXRv},HɰgߙA^)n"MS>^B5@/zT0IDBR| ~{s׻?ZФ'U5Bw'_ߝ@c_ ;'P>¼y8Zi.N5j ׹_"?/?ryZF\RRq#{EL>lCN wh_NMBfv(HΖ<1DJaë2!?q0.+߿.c+Eޞ/+l+>J1j^ןRvٰi,~F-*p9e==:z*!{7/%VIvE|9dz5)D|(rj+AOxr+^ (YOE !`cEx/Bl0#ߌz 3ut`9iۡh)@ :휢F2Uzk]*`p•¡+RV=eT:= B4co<ߊAgUOG?OQuݽr]J*Ay9w*C|{2`O[a㹀T}7\Z!|0nŜ@uI{$ pS|U ᙮Ȉ'mwOo _wj. *qtG})Wˋ T62u`g\?p~p)?}^H?1Ibrk-5Ԡ CŒe"4M+*\WN_)E+6(B:RC '8&Ѱg呃bԑ4^@vAPR_ 39|)%t$Bnqa?|eЭS0iDqyuT BL9#C$;akpo~[ڃ{}(}䦽dX?5]N}̟Nv]sO=ͧo_{nA 4Μz RNCʉ\Lb6 (_AR3G" ?L̪uheO9Ţa]3 CMcF8v9sW$!:o#(; ,{B~Yc' -}%ަ8yHŶya M~`Lx&swшbhG|Tk#v##Hw Ca^wK`4"`Pd-q iLgvhXtӊ3DD:[{ rD> i!H=UCsncP DZAĖLƐHL|@2f2‘td4;?R,9 &D킂Kn[iht`7x) &I !ZO^uHk1Nx WW;]d/NMy] J(J#hhk2j^n8Ճd}V'%Ul0sQdZ#L]"6/Û6$fvadiwⒷ&o"Uf NOnVGA*s;K$]'tV –R+Jᦥ Ix2P²\IT6 UUJf k+{8QL"Y0Gͯp:y{Es^6%dAj(»c(̠,Av۩VSaXHr$m0wC714&Jrݛz1P)z&Pn)*FrT_Wz腃hΑhq W㭇 |6/63*/35\PICԼK]$NngrϗY Y=>SnϺOF~flg?x0nN%eķ)^N Vd/ {q :!o֒'(L:|Ca@ (W5p3J'ExXR8WA41Ǒ Ć +iQ3*׵)vOoJeFcw\ka}RjGgD;7s.;U2)ṵsD%yjN@f]sr_KW-yfNM"$pH|MRTdqS  34\BK 0;#&` mل`ɢh $M/KEX9ܦ.ypeE"b eyCm P됢O]D5gOtF͋x9k0v_Zc-n g䴫c?.TԺ#^",dGաz*bIiu~[SwSmjSffl!-ҒL|{7=<{{D{ӏv C:3 mKp<4OBѣ%ϢG/3ֱ"/:yY1 U͐fM4g*=xvr[ѯ+'D'h虤.252"Ϛ"v[F[ 8Âx"mFQ[P>t_!S4?ŬyU9ua&Y 1QRFjzl( CCzף+ P.=zNUgӔh]1C> m=Y!k_v ?W[i|MrxıoXVzV˲QcQ '>'3~蓇74JJ2HQ5e~dZY&:|tYD.6Jk~˄0Mnq_w3ˎ:$ BDQgP1΍Y';²7gO^)s%4 / s*HzV$8evOtfRqIs%dV>^*n`8F9)dۢۡ>a)xe?96ʃ;7 (F0'$RpMt"P5RAg/o&̈́mAtMx{-({HgS(dʲnL'.kΌu-1;,6[nYhvX R^e4 :_m2<6̄`qC iz [#n)]*kp՜AL3:">GiyJEM=CXQv| k&.mZW5фn dӃecy7R`2]?߼`? kΦ~▅3)ai'Gkp*8h" f#afL Ť:'Hv1~e 05JϊmA|s|@ҥCD(JfY B;J>u)o#IraV u@yBš1h5|raI#yxßaO}q~N5._ti[!}[ S}w{!I)UAkW{eh=o76y쫹&{{|TxmU: ? >^}vQݫWh*'y֗D؊ owQ~A/sq[QeE:_az 8v3` ' ;|fV]4wA"]_" z YȘL3,O 9X2褱ouIY84 p(6N}3D Vno!*@DLU &Hiȇp-`ox÷/li}O͵SHxzNzTEӠLPY~\g`ִRaz߿Th'rVJcj (G wkCY!l,IF8-~<Ė([u2Z]؅ -yyW{TRߨoQlhش5*1Nj=vW #n,o<߇8֦5fk*!ECCz#h\/ՙdJC GL- >b0iߌl'zb]ŷ;:Y5!i]o i-*$;*J$ Tհ8 GqJ{D`X3|ˊˋl٤>7kJ@ =$z}aey=K>kl67w!|k?u6΢/$')<ͽp5 cs pR(opm4H=4> `ԁjrRS/vc^f~}mt/c+ FgIr'g|_P 3[NdE7y:ް5`mff7t t^&$EIZ͈!GRގTiֳ:=[AS!yΫݓ]Ƨp<:dA~=|Ņz{Y/R>f(mXD-?:\xo jg'GZC(5v%Ͽ(']D0GUDp #?|wW_spDlӛ_;vO~VW"'ؖX8;&e -f]xqMvg p#Rq|%˙\̰Tki,c2!GozE8pJp'w!k7T qZa4ϙԤE%0ԾGjRɪf# DM1V1 v3gÖXYh.B0H|ehY{DV xm>ॶݻ.nz Qi,2˩9tg?S%I¹#7YW.WsF?"]i `yQ|/4WI E.ǛdPv fDy2(Y#`vu~a5eBp )#F,\؏ V<D 3bA \ B]ErZ K2Lf&l F=ڐ$%&2 ⒳|c )nr #wмzrP̜Ky! : Ua YqBX#dYʉ].:^pվⳇ 6݄AcF!q!Zϰggi8֓x$Pb00߳&= ~tDH;T{u7>'i y;|"I3B7[։i\|u]ɉPn]a||Qun;ӹ|6{}asChmgyGr&`ɁaYBΪP$ lvpUD{qG0{ѺѺ&Ѻ1?ّHPP R,%]׮p#z_¨2dJ8%9CآAl &r‡ YR[*;[b p5ͬ?&ҿ}`5)mgt`D3OK;U!*-ӚY\ !B"dW_t1IVr6M[kemja{4!64)N6Tx.سʏZTl֍1|)j)df0ٙ (/g @&WWUݱdȎ\H/Ykb]58ښoEݮA[e)L9(1'hya_%?Og^+=m Іi#v*c,b# gyI{)Xm(_ ppn5r Fb_l, p,,USr*&05דX"kKF~3u00u(DM#Kb D`/GmeHȴ}RfGFG(ޱ`g-)m^U;k#Q.h`Jdxmk!?*l 0aIkIt:6Ni$$.y|ҏHU$P/6 -pDgb{^Ad_p!{^x-WE(ڋ5RjYKj^Sj_%]]l/تD {Z(hNj}_x\~n;r^h=Vj?h}l7=}}vuQY]_F0u 3;rEߊszxQ“B̕S HoMTĵPJIR,4OuWy-UEiR JYM\ƗʨLBCt ;b+"[I1v4w-EVz/5? _#QzjLCpʔ?Oe64C5idN+ѧZ]Rdz^vKqc/?A.xY15ih!"O 0JmpW"y5~voKƧ)gE'Iat;r.m/Y&yUF~oUB~󎰃-U9̿MyK 1aeClK(glu|Ηh츳BU#nifB9<vuY2SejiW>Q픦9臞Il^l3OʔJX%1.:l>ʶmtx|qs3SuQ* aj=BAЅ< 1:}r QCMuܧl0CA} ]寭a%Giˌi)P@HH4IzӇY4O1P>Ud: aNq#x^`CkU0Sߋ`(`\z"zg AF Z&B3*f8H.RYT%>z|; ;yFaMUh" K vQPżK>W8q1Dp0Ua\I%!?qMp{+!dptScV@'T͜eI݀/N\A_r##p4Ham}}K >/aE"`? 4?uÑ/ą& N˗J@ `/ a Y T{{M" .Ws4[LjVu\,mq⤇~!:O'gpcOgѧ'^>S~ .HEy&X۸y GqUn~ȴ*&-Ȏ-VM laNZxx'JA-odЇx+v* dACeʗdFxKRѼC [,cTj"~ɓjw୆/eagK|4(,.!0dKʗe׾)' o5"[?wօlx. bw6xd:+;\bA)?߻t$l?o>o`O5YQJ\ d}#~=NvNN ox{k'dډ ;=MF!VϦ0Xa؎}aw$w;T̤l([$ z٫ { oe$H/d((2&v]7X m.cY3s~.3pO`\ԩyDA*>8|`*3^O(FN3\b4J5jovO~U/ۛFlr]sP@Rd,t`yn X"洋"FY\)\T|׿8l~חTܘS=Gj=K{h.;l\1ͲҩQ95ĂR^{뤨N4FxUlXnkIydrDiI\,e8I3>ӭn=7^wp*fUyH5_г8Ad2{!GZ9d(1j)E,qLJ<_S8_|v.qL?Æ=[eS9X8<]R>Ӊbxw!S64(aciV a`r[oo2|CFVX K8|0:R%&N3)c*ߖ [[@J(q̛4dH8 }Nw.iF#TM6[S'iO~|Czf],FSoWU[![1]R_Ugͫ[Uwq3]VP"Mj+s HޚS;?^-[>0µ[ߌDB"]M96]I{޽aaÂz} VY7hYO\< mݛ F4S= [&w y76g6ޭtQY*qu-b{!G> bxt݆pḿ:=ce}c/V{ϯ8LoFyO&eԙfo6`u&7q鮳OOMt糧Mh=oo<{چϞ={y7i Aj )\PK :pi<὚/Ca<\ObiIwGIu޾y(D^{ o^t( F]}l~G=ˏIEٟɯ*_1EFcEO̒]ovRF%B(X44tC+&ϭsf)m#&uBHZW*(NUӠ1ǣ)%e N4ژЀ#50K=)%1du?,~-BA$.¬_3`)p~Y@32eRL 'VwAO6vp[,+\2OE=BE0lC| $6dڷCUܽJq$/OF(,]hځ{Oe$t)b), 9Ol@| _HԚ"-d~(,S|S=4fzNɨcL JDK{5L:D+6Sy3zy$QH!5I+ښN q:ѐ8Q-_5j*J4O1V!x^Ҹ)1+jg 8{f-ɏEkfފw'.sƃȹPw呈$FM Tl>G} M)C*Ôͤ#xWqy j[jD3LZy)yGF%'CX; >չ[c KHiPmwg}dH{^LWIq_ ~&e =@n_m;˯I67śc(Ow^G4M'qpdf-8.0.2/libtests/qtest/input_source.test0000644000064100006410000000065313247541377017163 0ustar ejbejb#!/usr/bin/env perl require 5.008; use warnings; use strict; chdir("input_source") or die "chdir testdir failed: $!\n"; require TestDriver; my $td = new TestDriver('InputSource'); cleanup(); $td->runtest("input source tests", {$td->COMMAND => "input_source"}, {$td->FILE => "input_source.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); cleanup(); $td->report(1); sub cleanup { } qpdf-8.0.2/libtests/qtest/ascii85/0000755000064100006410000000000013247541377015004 5ustar ejbejbqpdf-8.0.2/libtests/qtest/ascii85/base85.in0000644000064100006410000000506113247541377016425 0ustar ejbejb70!<9iWTSm7KiWTSm7fWNCiWTSm8,rWHiWTSm8H8`MiWTSm8cSiRiWTSm 9)nrWiWTSm9E5&\iWTSm9`P/aiWTSm:&k8fiWTSm:B1AkiWTSm:]LJpiWTSm ;#gSuiWTSm;?-]%iWTSm;ZHf*iWTSm;uco/iWTSm<<*#4iWTSmiWTSm=9&>CiWTSm=TAGHiWTSm=o\P&M<.ZglicMP!!!"'J]"ig!!9c9E!!)4J#6=g,>KOe_2$i.E#lc1Zi<9Je!!!$!,nT#= #\X23#\ZI(!!)7krVuot-+)V7#\Za0!!)7[rVuot-+Mn; #\[$8!!)7KrVuot-+r1?#\[<@!!)7;rVuot-,AIC#\[TH!!)7+rVuot-,eaG #\[lP!!)6prVuot--5$K#\\/X!!)6`rVuot--Y#\X2>!!)9Aqu?]r,o#>B#\XJF!!)91qu?]r,oGVF #\XbN!!)9!qu?]r,oknJ#\Y%V!!)8fqu?]r,p;1N#\Y=^!!)8Vqu?]r,p_IR #\YUf!!)8Fqu?]r,q.aV#\Ymn!!)86qu?]r,qS$Z#\Z1!!!)8&qu?]r,r"<^ #\ZI)!!)7kqu?]r,rFTb#\Za1!!)7[qu?]r,rjlf#\[$9!!)7Kqu?]r,s:/j #\[QcOH>QcOH>Q(M<0BV#_5(Ziro\gF:@ITK>7VbLuJRDs3dTsiWT UG&;APTlc'+Liro\hahs3?M<0BV#b_gf"UKgtF:u(`!!!"Q^iTn'"=+Q:"UP .Tahs4%OH>QcOH>QcOH>Q(M<0BV(lLfgMbOV<:]u[VM+f0#a$_0]zM,Y`'M$ ,*fQi6sbahs4"F=$ufM<0BV#`0NHMd6aJF1!q`($, La&Mb=>67L4oV%#\-p0uu*'$.'3I^kop\iW4rW,`0m+FNP$V=!!!"m+QWb4 7M_,io18?,Mb`F=$ufKYWH+F:?1n~>trailing garbage qpdf-8.0.2/libtests/qtest/ascii85/binary.out0000644000064100006410000000400013247541377017013 0ustar ejbejbE(F,G0H4I8J<K@LDMHNLOPPTQXR\S`TdUhVlWpXtYxZUS[ôLt5@X[5% %h%h%h%h% h %$h(%(h0%,h8p%0h@`%4hHP%8hP@%<hX0%@h` %Dhh%Hhp%Lhx%Ph%Th%Xh%\h%`h%dh%hh%lhp%ph`%thP%xh@%|h0%h %h%h%h%h%h%h%h%h %h(%h0%h8p%h@`%hHP%hP@%hX0%h` %hh%hp%hx%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h %h%h% h%h%h%h%h% h %$h(%(h0%,h8p%0h@`%4hHP%8hP@%<hX0%@h` %Dhh%Hhp%Lhx%Ph%Th%Xh%\h%`h%dh%hh%lhp%ph`%thP%xh@1^PTRhhQVhU=t ҡuÐUtt $ÐUEM PL$D$ T$$Ðt&U$] t$uKV311 uKF[ V 11 ƒ$Ћt$]Ít& UuE ]Ív' Uu $$]Ðt&Ut qpdf-8.0.2/libtests/qtest/ph/0000755000064100006410000000000013247541377014146 5ustar ejbejbqpdf-8.0.2/libtests/qtest/ph/ph.out0000644000064100006410000000056213247541377015311 0ustar ejbejbhello created Object, id 1 created Object, id 2 nulls equal destroyed Object, id 2 equal okay less than okay created Object, id 3 calling Object::hello for 1 calling Object::hello for 1 calling Object::hello for 1 calling Object::hello const for 1 calling Object::hello const for 1 calling Object::hello const for 1 goodbye destroyed Object, id 3 destroyed Object, id 1 qpdf-8.0.2/libtests/qtest/dct.test0000644000064100006410000000354213247541377015216 0ustar ejbejb#!/usr/bin/env perl require 5.008; use warnings; use strict; chdir("dct") or die "chdir testdir failed: $!\n"; require TestDriver; # This test suite does light verification of DCT by running some data # through a round trip with one encoding system. The # examples/pdf-create program also exercises DCT but does so more # fully. my $td = new TestDriver('dct'); cleanup(); my $checked_data = 0; foreach my $d (['rawdata', '400 256 gray', 0], ['big-rawdata', '1024 576 rgb', 0.2]) { my ($in, $args, $mismatch_fraction) = @$d; $td->runtest("compress", {$td->COMMAND => "dct_compress $in a.jpg $args"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("decompress", {$td->COMMAND => "dct_uncompress a.jpg out"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); # Compare my @raw = get_data($in); my @processed = get_data('out'); my $bytes = scalar(@raw); if ($td->runtest("bytes in data", {$td->STRING => scalar(@processed)}, {$td->STRING => $bytes})) { ++$checked_data; my $mismatch = 0; for (my $i = 0; $i < scalar(@raw); ++$i) { my $delta = abs(ord($raw[$i]) - ord($processed[$i])); if ($delta > 10) { ++$mismatch; } } my $threshold = int($mismatch_fraction * $bytes); $td->runtest("data is close enough", {$td->STRING => $mismatch <= $threshold ? 'pass' : 'fail'}, {$td->STRING => 'pass'}); } } cleanup(); $td->report(6 + $checked_data); sub cleanup { system("rm -f a.jpg out"); } sub get_data { my $file = shift; local $/ = undef; open(F, "<$file") || die; binmode(F); my $data = ; close(F); split('', $data); } qpdf-8.0.2/libtests/qtest/sha2/0000755000064100006410000000000013247541377014374 5ustar ejbejbqpdf-8.0.2/libtests/qtest/sha2/sha2.out0000644000064100006410000000024513247541377015763 0ustar ejbejb256 short: passed 256 long: passed 256 million: passed 384 short: passed 384 long: passed 384 million: passed 512 short: passed 512 long: passed 512 million: passed qpdf-8.0.2/libtests/qtest/qutil/0000755000064100006410000000000013247541377014675 5ustar ejbejbqpdf-8.0.2/libtests/qtest/qutil/qutil.out0000644000064100006410000006230013247541377016565 0ustar ejbejb16059 0016059 16059 3.141590 3.142 1000.123000 0.12340 0.00012 0.12346 0.00012 16059 37273 3ebb one 7 compare okay -2147483648 to int: PASSED 2147483647 to int: PASSED 2147483648 to int threw: PASSED -2147483649 to int threw: PASSED 9999999999999999999999999 to int threw: PASSED 2147483648 to int: PASSED -2147483649 to int: PASSED 99999999999999999999999999999999999999999999999999 to int threw: PASSED ---- before remove exception: remove file: No such file or directory ---- before fopen exception: open /this/file/does/not/exist: No such file or directory ---- IN_TESTSUITE: 1: 1 HAGOOGAMAGOOGLE: 0 ---- 0x41 -> A 0xf7 -> ÷ 0x3c0 -> π 0x16059 -> f0 96 81 99 0x7fffffff -> fd bf bf bf bf bf 0x80000000: bounds error in QUtil::toUTF8 ---- quack1 quack2 quack3 quack4 ---- file1: -qutil.out-, file2: -./qutil.out-; same: 1: PASS file1: -qutil.out-, file2: -qutil.out-; same: 1: PASS file1: -qutil.out-, file2: -other-file-; same: 0: PASS file1: -qutil.out-, file2: --; same: 0: PASS file1: -qutil.out-, file2: -(null)-; same: 0: PASS file1: --, file2: -qutil.out-; same: 0: PASS ---- This file is used for qutil testing. It has mixed newlines. Some lines are very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very long. ---- begin hex encode/decode end hex encode/decode qpdf-8.0.2/libtests/qtest/qutil/other-file0000644000064100006410000006011413247541377016660 0ustar ejbejbThis file is used for qutil testing. It has mixed newlines. Some lines are very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very long. qpdf-8.0.2/libtests/qtest/aes/0000755000064100006410000000000013247541377014307 5ustar ejbejbqpdf-8.0.2/libtests/qtest/aes/test-vector.cipher0000644000064100006410000000004013247541377017754 0ustar ejbejbij{0ͷpZOdnhHqpdf-8.0.2/libtests/qtest/aes/test-vector.clear0000644000064100006410000000002013247541377017566 0ustar ejbejb"3DUfwqpdf-8.0.2/libtests/qtest/aes/data10000644000064100006410000004122113247541377015224 0ustar ejbejb!;V[4o͊Mk# a#il I H1 㵅ںk_]sVͧћz?S0)~mW_ͫů;fCs9X*~}b>5>3>7o0o4G__ůy=_f3hf-3fw5h3ommܼR6a^-~4ߦism,~5Jp[ټVV1͙7ߪys햙3of53_2nf+fٿff30-3OH$?~d?G#OH$?~d?G#Oh4?~f?GOh4?~f?G}}ܼR>a^-~4ߧis},~5Kp{ټV^1ϙ7߫ys_f/_73W_3foٿifw\M3of3f?1nf 3_mf3ߚf0;fo1=3fO~)ߕ]-__?7PA пo}׊?w}7?w}#~g?Oӿ?ߟ~g?Oӿ?ߟ~d?O@ ?~d?O@ ?~f?O`0?~f?O`0?-?CRjq@C *?4\Zq@nYh8P8?~g?Op8?~g?Op?@O?@O?@O?@O?@O?@O?@O?@O?H!O?H!O?H!O?H!O?H!O?H!O?H!O?H!O?H!O?H!O?H!O?H!O?H!O?H!O?H!O?H!O$3)7NW?';)s(1?g͡ϒ9\Y6VşsϪys)efsf/_73W_3foٿifwWnw̾f=4}{bfS3̾f4}Jfoͫ'#yH~>'#yH~>'#yH~>'#yH~>|Wf{?OO<$?y?OO<$?y?OO<$?y?OO<$?y?OO;3ߛf2mf]3ٿoG!yx{HG!yx{HG!yx{HG!yx{HGO?yxDGO?yxDGO?yxDGO?yxDGO?yxDGO?yxDGO?yxDGO?yxDGN;wDGN;wDGN;wDGN;wL1N;wL1N;wL1N;wL1N;wL1N;wL1N;wL1N;wL1N;wL1N;wL1N;wL1N;wL1Ǿ_yW;W&̫_f_ה_5m͘_PW.*׊*9FWռY5of-s+jr3kf/ٿdfe3W_5;fٿaf[f5?j5oٿmf}3Gf?6Offs3_Wf绻뵙okf;3ߛf2mf]3ٿo{gw~{gw~{gw~{gw~ޓog=&W>{gϓw'?' >9OɹO|r'srΟ_99O/ ?῜'srΟ_99O/ ?῜'s{9=?Ờ'|r]~w9O. |?Ờ'|r];'| ?Ờ'|rޟ! rޟ]yw9O. rޟ]yw9Orޟ]Syw9O.)sޟ9)sޟ9)sޟ9)sޟ]Sz?廜tyJ9J9J9J9Jߜ͹~Jߜ͹~Jߜ͹~Jߜ͹~9Os9Os9Os9Os9Os9Os9O{)s9s5tνιל9S:^wtK=fR=n^)0O}Sfis{,5KpwټV]1ϙ7ys9Z}/_3%3f/ٿbfkf1 372ѫ/ywf7dfc3gf?7/efK7f5`fG3wo6cf{fw7G3'<8Ƀ3'<8Ƀ3'<8Ƀ3'<8}Oܻ{s:]gϽw?3uFܻ{s:]gϽw?3uFKgO.?3uFܻ{s:]gϽw?3uFܻ{s:]gϽw?3'|<]gϽw?3'?{s:]gO?suNܻ{9s:s'={rs:~uN9tN9{N9tN9{N9tN9{N9tN9{N9tN9{Nܯ=ss:'=ss:'=ss:'=ss:'=ss:'=ss:'=ss:'s :'/swow|o :&O/6+ſffCs9X*}b>5>3¼Y)}efox7f5`fG3wo6㇁__y>iߧ9P|1Pdfnż^|s~}7H9Z|r~}_0ffu3{㇁ΟΟΟΟΟΟΟΟΟΟ>s{~WҏG1裏.;yq#]W&@_0 P@ (*9F@0{}rgSYYYY s'z\!#>O|<y%+|?#Wy -;>|>|>@vM䛺lF>o䫺lF>o仺lF>o˺lF>oۺlF>olF>olF>o lF>яoF?>яoF?>яoFe#'/9yI˶J^=W8m0l#ea0\ȅ岍ư\U.۶m3s[ls?ș\93e!aȐ0dU.|xRf]ٮYce/󘣠c6]Ǯ[c׭Ǯc= ]ص x= K;xˎV'/;u#qayuoFH\vHp niܴ[nZ-7 M+Ȕ]dJpMKuR$/;I~_o4+Հ@_?!0 x <7^F^p>o|y#O 3߀cb q |&&gb 7[ ߪe O1)&V<)&ց<[@b.)<G>T#Py*C|<G>T#Py*C|<G(>TŇʣPy*C욍:[c@83;N;S@43; qfK@g qf+s@g qf<- 3''?f4jKue wvg :&]} > &6}>|<ys>/|^Dnʏ>o|y#O Sbԃ%I=Qbԃ%I=Qbԃ%I=Qbԃ%I+Q▔%nIQ▔%nIQ~x.跋7~x.跋%~8.N跋]tv}.E>`>`)>`;lty%xtć}CA|> >tć}CA|>`>>e#(=GCS{ҏ2݇§L\L~Lee{C^{zԏ2݇]tv}.Ea Z? 0l3!Gma9avNݙL!˼!˼!˼!˼!˼!˼!˼!˼!˼!˼!˼!˼!˼!˼!,!˜ ˜ ˜ ˜ te 2݅xBLw!^/]W-+T* Ev"B4YB4*PFvU" nEn_!į[W-+rK %~ʂBeA_PYW,+T* }ʂBeA_PYW,+T* }ʂBeA_PYW,+T* {Ň/+r {×( 0h0PaQ4` EÇ?2'o~̍37>s@M37 >s@̕+3Wgn*>s@$s5E%:`*``u M-8cx&`6`}ȏ4h<x@KW b yЏ>o|y#O Se :@%t*KU,TYBrP儾Шr2Pe @*'FK PTyC=zP]XZܢ'TnQ T@22Pee@*(UP T@22Pee@*(UP T@22Pee@*(UP T@22PeeNwd&w,s;,;,;O,;π,p%pp'/a@y -;>|>|>]=.>> D>@O> >@> z 2> |Y>-|bt}SYYYY s:u#OG<]y?t:u#OG<]y?.#Xw"܈DBlg v&ۙBlg vf)!SBlb;U v۹N"Ogggg :&]; &6}>|<ys>/|^D8~y -;>|>|>]=.>>-------- 8Ź?.-LJWHHHHHHHHHHHHHHHHHHHHHHHHHHHHJU?mqnt\*W6JU?Cw6 O\r6\g(|3nu?mqnv\6nu?mqnR JE76o(mP*ڼTyChR JE76o(mP*ڼTyChR JE76o(mP*ڼTyChR JE76o(mP*ڼTyCR JE7o(P*:TtxCR JE7o(P*:TtxCR JE7o(P*:TtxCR JE7E8[E8[(Q*:TtGR?JE(Q*:TtGR?JE(q[z;wm?nq[ߍF1 yw_ޝw') yw_ޝwg/kw77ۣjvmvz `Sg_<+GQ d5>||it|v||>@oh {'{oq '{o]أvGwbݵ=k{@}oȳ1RGw]b*]s]sأGwa5=k{t9]sأGwa5=k{t9]sأGwa5=k{t9]sأGwa5=k]* ]* ]* ]* ]* ]* ]'u ] ] ] ] ] ] ]'u ]N't9AOr= zB.' ]ge =L't ~2[>g.]n%ܢKtEr.]-D[t.]n%ܢKtEr.]-D[t.]n%ܢKtEr.e$*DIT.]&Q!LBtD2 u8] 6*>ۨlB쳍 6*>hܢ9s->hܢ9s->hܢ9s->hܢ9󆞰z>o '󆞰z>K,쳄z>K,쳄z>K,쳄z>K,쳄z>K,쳄z>( 3:> 3_/ }>]O Cc/ j$0L3`,0PXXQXXV,VVVVXl76['  O sCG> w??G<` mv x=vM1&{c4Mh4Ai7FӾ#e7F$~oIX9 4ƪ@hy zAٓ˞t_ޘ'“ZIVxA+<4ޘ'ͥ7IvqO{҄]oܓ&z4a ޸'Mƹ7a ޸GN=r®7vq{]o|qG]CQkhp548u O4h<x@%C&Sz _\Nބ/.hoS777˹ڛ\Mr&|q9W{ _\ބ/.ބ/.lo‡v e e e %jo2 Mg&ǁ3f) T'PBure T'+@N:YBurȫd^1O gg   sgggg .Oޡqd sCG>|<yKW>&_y =>;>-6>Ss.)9ޔ Bo{7=ЛwzSs=Л\Ss)?5=ћsMyϹD\"zS>>>>>>>>>>>>>޳t{{{{vNyN)I;=;ig'줝򞝴S]=.>>ӾS'I;;uNNӾaog?t?CT4MS{4MM4U7MT4MS{4MM4U7MT4MS{4MMtg:iXcyi:iXcyi:iXcyi:iXcyi^LJu|hz^LJu|hz^LJu|hz^LJu|hߛi:ofhߛqf7gٛߛqf)gooٛߛqf)gooٛߛq [3#fGlؚ5?bk [3#fGlؚ៛5?k ȯF|gF|gF|gŇFQ|'7l4fǀ3@ ?3 γ@8<; l 2γ gp<;- gR7SYY,Y MOg>>|<y 9 >|R7 [w>|>|i|:>>{>]} |JPw;ݡ?%qw(C§?.%q(KD\"JQO~|LJ %J'GO(P=?zB %J'GO(P=?zB %J'GO(P=?zB %J'GO(P=?zB %J'GO(P=?zB %J'GO(P=?zB2Ǎ?ndeq#+YFV72Ǎ?nde‡t2$eIG')NR?:It2$eIG')NR?:It2$eIG')NR?:It2$eIG')NR?:It2$eIG')NR?:It2$eIG')NR?:It $I*TG'NR?:It $I*TG'NR?:It $I*TG'NR?:It $I*TG'NR?:It $I*TG'NR?:It $I*TG'NR?:It $sQۛpnùI 禀0pnùY J@Ε0a87\ùy na87"Ogggg :&](5|>>|<y Sg>|^yw½>o|y#O S ?H4*h U@TGR ?H4*h U@TGR ?H4*h U@TGR ?H4*h U@TGR ?H4*h U@TGR ?H4*h U@TGR ?H4*h U@TGR ?H4*h U@TG2?5E%:2 *u M->n7|>>|<guj-xNש:^ւZzZ ^Skuj-xNשC> } 0/`_xX `Sg@s ol7-7[x -;>|>|>]=.>>5k$Hï_#F~> |5k$Hïq>kïq>kïq>kïq>kïqG]=jQpWzգ?5qG\=jQWzգ?5qG\=jQWzգ?5qG\=jQWzգ?5qyXa5q"z,"z,"z,"z,"z,"z,"z,"z,"z,"z,"z,"z,"z,"z,"z,"z,"z,"z,"z,"z,"z,"z,E~!4d8K@V,MY4d4K3@V,YTb XQKs@y 䑗<-  O gg   sgggg .O$RK &6}>|<ys>/|^wwXz -;>|>|>]=.>>uuuuuuuuuuuuqwCPw:;ݡ?uqwCPw:;ݡ?uqwCPw:uQ!BG Q?*DT:uQ!BG Q?*DT:uQ!BG Q?*DT:uQ!BG Q?*DTeQ!GXbTeQ!GXbTeQ!GXbTeQ!GXbTeQ!GXbTeQ!GX______________________________________________________qJ_qJ_qJ_qJ_qJ_A?~ +#WGЯ_A?~ qƸ?~c\1Wo+7\wŇFQ|g4|Vv:﬎;@$:N;33 VK@k V+@kusV<|"Mk7>o|gt|Yc a%5PXBaXc a%5PXBaXc a%5PXBaXc a%5PXBaXc a%5PXBaX[,°? ( k0°? ( k0°? ( k0°? ( k0°? ( k0°? ( k0°}@mL!1 4>3@lQg#/|7QEY:X\57ց<[@p. n4|>>|<y@)3/4^h{nx@{4vt|٤q>) K7c$q>M7@nV,ݬٵy "ޠOo|z$k>M*6ڤj>M*6ڤh>M6i#ڤh>M6^w{7^w{7^w{7^w{7^w{r [&wפnyz7nyz7nyz7nyz7nyz>[${٢޻E wz--_޻{-}l(~"Ƕ-}l(~}l˧6oIm"ڼE&yLj-2[dR-ߠڼT|joPm [Ay76o-ߠڼT|joPmbyI-&QDmbyI-&QDmb^15B8&и7 ƽ) 4Mqo{@h+q ƽ иWB<- ^15[,,||V|V||lllm>Mm>|<y )3>/|^m^y =>;>-6Ogg OTX QToS?N8ToS?N8To{T8os?X Qb5G4Gj,h,h,h,h,h,h,h?ҡ?ҡ?ҡ?ҡ?ҡ?ҡ?ҡ?*VTX Qb5Gj?*VTM?~id7ȦȦȦȦȦȦȦȦȦȦ&Ȧ&Ȧ&Ȧ&Ȧ&Ȧ&Ȧ&Ȧ&Ȧ&Ȧ&Ȧ&Ȧ&Ȧ&Ȧ&Ȧ&Ȧ&Ȧ&Ȧ&Ȧ&Ȧ&Ȧ&Ȧ&M?:Mijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj_{ǯ=מmk6gڳ?~l_{ǯ=מmk6gڳ?~l_{ǯ=מmk6gڳ?~l_{ǯ=מmk6gڳ?~l_{ǯ=מmk6gڳ?~l_{ǯ=מmk6gڳ?~l_{ǯ=מmk6gڳ?~l_{gŇFQ|gŇ?qJ@P,x:i@9&c@I/` fY`( 9OrcUf<0p @v@rO SYYYY s/`Og>>|<y 9 >|/`>o|y#O Mr?'9s?'9s?'9s?'9s?'9s?'9s?'9s?gƇa|gƇ7axc.7d#ًqpdf-8.0.2/libtests/qtest/aes/data20000644000064100006410000003720013247541377015227 0ustar ejbejb!;V[4o͊Mk# a#il I H1 㵅ںk_]sVͧћz?S0)~mW_ͫů;fCs9X*~}b>5>3>7o0o4G__ůy=_f3hf-3fw5h3ommܼR6a^-~4ߦism,~5Jp[ټVV1͙7ߪys햙3of53_2nf+fٿff30-3OH$?~d?G#OH$?~d?G#Oh4?~f?GOh4?~f?G}}ܼR>a^-~4ߧis},~5Kp{ټV^1ϙ7߫ys_f/_73W_3foٿifw\M3of3f?1nf 3_mf3ߚf0;fo1=3fO~)ߕ]-__?7PA пo}׊?w}7?w}#~g?Oӿ?ߟ~g?Oӿ?ߟ~d?O@ ?~d?O@ ?~f?O`0?~f?O`0?-?CRjq@C *?4\Zq@nYh8P8?~g?Op8?~g?Op?@O?@O?@O?@O?@O?@O?@O?@O?H!O?H!O?H!O?H!O?H!O?H!O?H!O?H!O?H!O?H!O?H!O?H!O?H!O?H!O?H!O?H!O$3)7NW?';)s(1?g͡ϒ9\Y6VşsϪys)efsf/_73W_3foٿifwWnw̾f=4}{bfS3̾f4}Jfoͫ'#yH~>'#yH~>'#yH~>'#yH~>|Wf{?OO<$?y?OO<$?y?OO<$?y?OO<$?y?OO;3ߛf2mf]3ٿoG!yx{HG!yx{HG!yx{HG!yx{HGO?yxDGO?yxDGO?yxDGO?yxDGO?yxDGO?yxDGO?yxDGO?yxDGN;wDGN;wDGN;wDGN;wL1N;wL1N;wL1N;wL1N;wL1N;wL1N;wL1N;wL1N;wL1N;wL1N;wL1N;wL1Ǿ_yW;W&̫_f_ה_5m͘_PW.*׊*9FWռY5of-s+jr3kf/ٿdfe3W_5;fٿaf[f5?j5oٿmf}3Gf?6Offs3_Wf绻뵙okf;3ߛf2mf]3ٿo{gw~{gw~{gw~{gw~ޓog=&W>{gϓw'?' >9OɹO|r'srΟ_99O/ ?῜'srΟ_99O/ ?῜'s{9=?Ờ'|r]~w9O. |?Ờ'|r];'| ?Ờ'|rޟ! rޟ]yw9O. rޟ]yw9Orޟ]Syw9O.)sޟ9)sޟ9)sޟ9)sޟ]Sz?廜tyJ9J9J9J9Jߜ͹~Jߜ͹~Jߜ͹~Jߜ͹~9Os9Os9Os9Os9Os9Os9O{)s9s5tνιל9S:^wtK=fR=n^)0O}Sfis{,5KpwټV]1ϙ7ys9Z}/_3%3f/ٿbfkf1 372ѫ/ywf7dfc3gf?7/efK7f5`fG3wo6cf{fw7G3'<8Ƀ3'<8Ƀ3'<8Ƀ3'<8}Oܻ{s:]gϽw?3uFܻ{s:]gϽw?3uFKgO.?3uFܻ{s:]gϽw?3uFܻ{s:]gϽw?3'|<]gϽw?3'?{s:]gO?suNܻ{9s:s'={rs:~uN9tN9{N9tN9{N9tN9{N9tN9{N9tN9{Nܯ=ss:'=ss:'=ss:'=ss:'=ss:'=ss:'=ss:'s :'/swow|o :&O/6+ſffCs9X*}b>5>3¼Y)}efox7f5`fG3wo6㇁__y>iߧ9P|1Pdfnż^|s~}7H9Z|r~}_0ffu3{㇁ΟΟΟΟΟΟΟΟΟΟ>s{~WҏG1裏.;yq#]W&@_0 P@ (*9F@0{}rgSYYYY s'z\!#>O|<y%+|?#Wy -;>|>|>@vM䛺lF>o䫺lF>o仺lF>o˺lF>oۺlF>olF>olF>o lF>яoF?>яoF?>яoFe#'/9yI˶J^=W8m0l#ea0\ȅ岍ư\U.۶m3s[ls?ș\93e!aȐ0dU.|xRf]ٮYce/󘣠c6]Ǯ[c׭Ǯc= ]ص x= K;xˎV'/;u#qayuoFH\vHp niܴ[nZ-7 M+Ȕ]dJpMKuR$/;I~_o4+Հ@_?!0 x <7^F^p>o|y#O 3߀cb q |&&gb 7[ ߪe O1)&V<)&ց<[@b.)<G>T#Py*C|<G>T#Py*C|<G(>TŇʣPy*C욍:[c@83;N;S@43; qfK@g qf+s@g qf<- 3''?f4jKue wvg :&]} > &6}>|<ys>/|^Dnʏ>o|y#O Sbԃ%I=Qbԃ%I=Qbԃ%I=Qbԃ%I+Q▔%nIQ▔%nIQ~x.跋7~x.跋%~8.N跋]tv}.E>`>`)>`;lty%xtć}CA|> >tć}CA|>`>>e#(=GCS{ҏ2݇§L\L~Lee{C^{zԏ2݇]tv}.Ea Z? 0l3!Gma9avNݙL!˼!˼!˼!˼!˼!˼!˼!˼!˼!˼!˼!˼!˼!˼!,!˜ ˜ ˜ ˜ te 2݅xBLw!^/]W-+T* Ev"B4YB4*PFvU" nEn_!į[W-+rK %~ʂBeA_PYW,+T* }ʂBeA_PYW,+T* }ʂBeA_PYW,+T* {Ň/+r {×( 0h0PaQ4` EÇ?2'o~̍37>s@M37 >s@̕+3Wgn*>s@$s5E%:`*``u M-8cx&`6`}ȏ4h<x@KW b yЏ>o|y#O Se :@%t*KU,TYBrP儾Шr2Pe @*'FK PTyC=zP]XZܢ'TnQ T@22Pee@*(UP T@22Pee@*(UP T@22Pee@*(UP T@22PeeNwd&w,s;,;,;O,;π,p%pp'/a@y -;>|>|>]=.>> D>@O> >@> z 2> |Y>-|bt}SYYYY s:u#OG<]y?t:u#OG<]y?.#Xw"܈DBlg v&ۙBlg vf)!SBlb;U v۹N"Ogggg :&]; &6}>|<ys>/|^D8~y -;>|>|>]=.>>-------- 8Ź?.-LJWHHHHHHHHHHHHHHHHHHHHHHHHHHHHJU?mqnt\*W6JU?Cw6 O\r6\g(|3nu?mqnv\6nu?mqnR JE76o(mP*ڼTyChR JE76o(mP*ڼTyChR JE76o(mP*ڼTyChR JE76o(mP*ڼTyCR JE7o(P*:TtxCR JE7o(P*:TtxCR JE7o(P*:TtxCR JE7E8[E8[(Q*:TtGR?JE(Q*:TtGR?JE(q[z;wm?nq[ߍF1 yw_ޝw') yw_ޝwg/kw77ۣjvmvz `Sg_<+GQ d5>||it|v||>@oh {'{oq '{o]أvGwbݵ=k{@}oȳ1RGw]b*]s]sأGwa5=k{t9]sأGwa5=k{t9]sأGwa5=k{t9]sأGwa5=k]* ]* ]* ]* ]* ]* ]'u ] ] ] ] ] ] ]'u ]N't9AOr= zB.' ]ge =L't ~2[>g.]n%ܢKtEr.]-D[t.]n%ܢKtEr.]-D[t.]n%ܢKtEr.e$*DIT.]&Q!LBtD2 u8] 6*>ۨlB쳍 6*>hܢ9s->hܢ9s->hܢ9s->hܢ9󆞰z>o '󆞰z>K,쳄z>K,쳄z>K,쳄z>K,쳄z>K,쳄z>( 3:> 3_/ }>]O Cc/ j$0L3`,0PXXQXXV,VVVVXl76['  O sCG> w??G<` mv x=vM1&{c4Mh4Ai7FӾ#e7F$~oIX9 4ƪ@hy zAٓ˞t_ޘ'“ZIVxA+<4ޘ'ͥ7IvqO{҄]oܓ&z4a ޸'Mƹ7a ޸GN=r®7vq{]o|qG]CQkhp548u O4h<x@%C&Sz _\Nބ/.hoS777˹ڛ\Mr&|q9W{ _\ބ/.ބ/.lo‡v e e e %jo2 Mg&ǁ3f) T'PBure T'+@N:YBurȫd^1O gg   sgggg .Oޡqd sCG>|<yKW>&_y =>;>-6>Ss.)9ޔ Bo{7=ЛwzSs=Л\Ss)?5=ћsMyϹD\"zS>>>>>>>>>>>>>޳t{{{{vNyN)I;=;ig'줝򞝴S]=.>>ӾS'I;;uNNӾaog?t?CT4MS{4MM4U7MT4MS{4MM4U7MT4MS{4MMtg:iXcyi:iXcyi:iXcyi:iXcyi^LJu|hz^LJu|hz^LJu|hz^LJu|hߛi:ofhߛqf7gٛߛqf)gooٛߛqf)gooٛߛq [3#fGlؚ5?bk [3#fGlؚ៛5?k ȯF|gF|gF|gŇFQ|'7l4fǀ3@ ?3 γ@8<; l 2γ gp<;- gR7SYY,Y MOg>>|<y 9 >|R7 [w>|>|i|:>>{>]} |JPw;ݡ?%qw(C§?.%q(KD\"JQO~|LJ %J'GO(P=?zB %J'GO(P=?zB %J'GO(P=?zB %J'GO(P=?zB %J'GO(P=?zB %J'GO(P=?zB2Ǎ?ndeq#+YFV72Ǎ?nde‡t2$eIG')NR?:It2$eIG')NR?:It2$eIG')NR?:It2$eIG')NR?:It2$eIG')NR?:It2$eIG')NR?:It $I*TG'NR?:It $I*TG'NR?:It $I*TG'NR?:It $I*TG'NR?:It $I*TG'NR?:It $I*TG'NR?:It $sQۛpnùI 禀0pnùY J@Ε0a87\ùy na87"Ogggg :&](5|>>|<y Sg>|^yw½>o|y#O S ?H4*h U@TGR ?H4*h U@TGR ?H4*h U@TGR ?H4*h U@TGR ?H4*h U@TGR ?H4*h U@TGR ?H4*h U@TGR ?H4*h U@TG2?5E%:2 *u M->n7|>>|<guj-xNש:^ւZzZ ^Skuj-xNשC> } 0/`_xX `Sg@s ol7-7[x -;>|>|>]=.>>5k$Hï_#F~> |5k$Hïq>kïq>kïq>kïq>kïqG]=jQpWzգ?5qG\=jQWzգ?5qG\=jQWzգ?5qG\=jQWzգ?5qyXa5q"z,"z,"z,"z,"z,"z,"z,"z,"z,"z,"z,"z,"z,"z,"z,"z,"z,"z,"z,"z,"z,"z,E~!4d8K@V,MY4d4K3@V,YTb XQKs@y 䑗<-  O gg   sgggg .O$RK &6}>|<ys>/|^wwXz -;>|>|>]=.>>uuuuuuuuuuuuqwCPw:;ݡ?uqwCPw:;ݡ?uqwCPw:uQ!BG Q?*DT:uQ!BG Q?*DT:uQ!BG Q?*DT:uQ!BG Q?*DTeQ!GXbTeQ!GXbTeQ!GXbTeQ!GXbTeQ!GXbTeQ!GX______________________________________________________qJ_qJ_qJ_qJ_qJ_A?~ +#WGЯ_A?~ qƸ?~c\1Wo+7\wŇFQ|g4|Vv:﬎;@$:N;33 VK@k V+@kusV<|"Mk7>o|gt|Yc a%5PXBaXc a%5PXBaXc a%5PXBaXc a%5PXBaXc a%5PXBaX[,°? ( k0°? ( k0°? ( k0°? ( k0°? ( k0°? ( k0°}@mL!1 4>3@lQg#/|7QEY:X\57ց<[@p. n4|>>|<y@)3/4^h{nx@{4vt|٤q>) K7c$q>M7@nV,ݬٵy "ޠOo|z$k>M*6ڤj>M*6ڤh>M6i#ڤh>M6^w{7^w{7^w{7^w{7^w{r [&wפnyz7nyz7nyz7nyz7nyz>[${٢޻E wz--_޻{-}l(~"Ƕ-}l(~}l˧6oIm"ڼE&yLj-2[dR-ߠڼT|joPm [Ay76o-ߠڼT|joPmbyI-&QDmbyI-&QDmb^15B8&и7 ƽ) 4Mqo{@h+q ƽ иWB<- ^15[,,||V|V||lllm>Mm>|<y )3>/|^m^y =>;>-6Ogg OTX QToS?N8ToS?N8To{T8os?X Qb5G4Gj,h,h,h,h,h,h,h?ҡ?ҡ?ҡ?ҡ?ҡ?ҡ?ҡ?*VTX Qb5Gjqpdf-8.0.2/libtests/qtest/flate.test0000644000064100006410000000302113247541377015527 0ustar ejbejb#!/usr/bin/env perl require 5.008; BEGIN { $^W = 1; } use strict; use File::Copy; use Digest::MD5; chdir("flate") or die "chdir testdir failed: $!\n"; require TestDriver; cleanup(); my $td = new TestDriver('flate'); cleanup(); open(F, ">farbage") or die; binmode F; print F "q" x 10000, "\n"; print F "w" x 10000, "\n"; print F "e" x 10000, "\n"; print F "r" x 10000, "\n"; print F "t" x 10000, "\n"; print F "y" x 10000, "\n"; print F "u" x 10000, "\n"; print F "i" x 10000, "\n"; print F "o" x 10000, "\n"; print F "p" x 10000, "\n"; close(F); check_file("farbage", "a6449c61db5b0645c0693b7560b77a60"); $td->runtest("run driver", {$td->COMMAND => "flate farbage"},, {$td->STRING => "bytes written to o3: 100010\ndone\n", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); check_file("farbage", "a6449c61db5b0645c0693b7560b77a60"); $td->runtest("compressed file correct", {$td->FILE => "farbage.1"}, {$td->FILE => "compressed"}); $td->runtest("uncompress filter works", {$td->FILE => "farbage"}, {$td->FILE => "farbage.2"}); $td->runtest("double filter works", {$td->FILE => "farbage"}, {$td->FILE => "farbage.3"}); cleanup(); $td->report(6); sub cleanup { system("rm -f farbage*"); } sub check_file { my ($file, $sum) = @_; open(F, "<$file") or die "open $file"; my $md5 = new Digest::MD5; $md5->addfile(*F); close(F); my $result = $md5->hexdigest; $td->runtest("check $file", {$td->STRING => "$result\n"}, {$td->STRING => "$sum\n"}); } qpdf-8.0.2/libtests/qtest/hex/0000755000064100006410000000000013247541377014323 5ustar ejbejbqpdf-8.0.2/libtests/qtest/hex/hex.in0000644000064100006410000001013213247541377015434 0ustar ejbejb45000028e20508074600002ce205080747000030e205080748000034e20 5080749000038e20508074a00003ce20508074b000040e20508074c0000 44e20508074d000048e20508074e00004ce20508074f000050e20508075 0000054e205080751000058e20508075200005ce205080753000060e205 080754000064e205080755000068e20508075600006ce20508075700007 0e205080758000074e205080759000078e20508075a00005589e55383ec 04e8000000005b81c3b44c01008b93f8ffffff85d27405e8de000000e83 5060000e840070100585bc9c3ff3508e10508ff250ce1050800000000ff 2510e105086800000000e9e0ffffffff2514e105086808000000e9d0fff fffff2518e105086810000000e9c0ffffffff251ce105086818000000e9 b0ffffffff2520e105086820000000e9a0ffffffff2524e105086828000 000e990ffffffff2528e105086830000000e980ffffffff252ce1050868 38000000e970ffffffff2530e105086840000000e960ffffffff2534e10 5086848000000e950ffffffff2538e105086850000000e940ffffffff25 3ce105086858000000e930ffffffff2540e105086860000000e920fffff fff2544e105086868000000e910ffffffff2548e105086870000000e900 ffffffff254ce105086878000000e9f0feffffff2550e10508688000000 0e9e0feffffff2554e105086888000000e9d0feffffff2558e105086890 000000e9c0feffffff255ce105086898000000e9b0feffffff2560e1050 868a0000000e9a0feffffff2564e1050868a8000000e990feffffff2568 e1050868b0000000e980feffffff256ce1050868b8000000e970fefffff f2570e1050868c0000000e960feffffff2574e1050868c8000000e950fe ffffff2578e1050868d0000000e940feffffff257ce1050868d8000000e 930feffffff2580e1050868e0000000e920feffffff2584e1050868e800 0000e910feffffff2588e1050868f0000000e900feffffff258ce105086 8f8000000e9f0fdffffff2590e105086800010000e9e0fdffffff2594e1 05086808010000e9d0fdffffff2598e105086810010000e9c0fdffffff2 59ce105086818010000e9b0fdffffff25a0e105086820010000e9a0fdff ffff25a4e105086828010000e990fdffffff25a8e105086830010000e98 0fdffffff25ace105086838010000e970fdffffff25b0e1050868400100 00e960fdffffff25b4e105086848010000e950fdffffff25b8e10508685 0010000e940fdffffff25bce105086858010000e930fdffffff25c0e105 086860010000e920fdffffff25c4e105086868010000e910fdffffff25c 8e105086870010000e900fdffffff25cce105086878010000e9f0fcffff FF25D0E105086880010000E9E0FCFFFFFF25D4E105086888010000E9D0F CFFFFFF25D8E105086890010000E9C0FCFFFFFF25DCE105086898010000 E9B0FCFFFFFF25E0E1050868A0010000E9A0FCFFFFFF25E4E1050868A80 10000E990FCFFFFFF25E8E1050868B0010000E980FCFFFFFF25ECE10508 68B8010000E970FCFFFFFF25F0E1050868C0010000E960FCFFFFFF25F4E 1050868C8010000E950FCFFFFFF25F8E1050868D0010000E940FCFFFFFF 25FCE1050868D801 0000E930FCFFFFFF2500E2050868E0010000E920FCF FFFFF2504E2050868E8010000E910FCFFFFFF2508E2050868F0010000E9 00FCFFFFFF250CE2050868F8010000E9F0FBFFFFFF2510E205086800020 000E9E0FBFFFFFF2514E205086808020000E9D0FBFFFFFF2518E2050868 10020000E9C0FBFFFFFF251CE205086818020000E9B0FBFFFFFF2520E20 5086820020000E9A0FBFFFFFF2524E205086828020000E990FBFFFFFF25 28E2050 8683 0020000E980FBFFFFFF252CE205086838020000E970FBFFF FFF2530E205086840020000E960FBFFFFFF2534E205086848020000E950 FBFFFFFF2538E205086850020000E940FBFFFFFF253CE20508685802000 0E930FBFFFFFF2540E205086860020000E920FBFFFFFF2544E205086868 020000E910FBFFFFFF2548E205086870020000E900FBFFFFFF254CE2050 86878020000E9F0FAFFFFFF2550E205086880020000E9E0FAFFFFFF2554 e205086888020000e9d0faffffff2558e205086890020000e9c0fafffff f255ce205086898020000e9b0faffffff2560e2050868a0020000e9a0fa ffffff2564e2050868a8020000e990faffffff2568e2050868b0020000e 980faffffff256ce2050868b8020000e970faffffff2570e2050868c002 0000e960faffffff2574e2050868c8020000e950faffffff2578e205086 8d0020000e940faffff00000000000000000000000031ed5e89e183e4f0 50545268009b050868109b0508515668f0e60408e893fbfffff49090909 0909090909090909090905589e583ec08803dc8e3050800740ceb1c83c0 04a388e20508ffd2a188e205088b1085d275ebc605c8e3050801c9c3905 589e583ec08a110e0050885c07412b80000000085c07409c7042410e005 08ffd0c9c3909090909090909090909090905589e583ec188b45088b4d0 c8b50048b00894c2408c744240c0000000089542404890424e897fe0000 c9c3908d7426005589e583ec08891c248b5d0c897424048b75088b4b048 b56048b06330331d131d209c1751a8b4b088b46088b5b0c8b560c31c831 da09d00f94c089c283e2018b1c2489d08b74240489ec5dc38d742600a12 0e505085589e585c075088b4508a320e505085dc38d76008dbc27000000 00a120e505085589e585c0750da124e5050883c001a324e505085dc3908 d7426005584c089e5740cc705>trailing farbage qpdf-8.0.2/libtests/qtest/hex/binary.out0000644000064100006410000000400013247541377016332 0ustar ejbejbE(F,G0H4I8J<K@LDMHNLOPPTQXR\S`TdUhVlWpXtYxZUS[ôLt5@X[5% %h%h%h%h% h %$h(%(h0%,h8p%0h@`%4hHP%8hP@%<hX0%@h` %Dhh%Hhp%Lhx%Ph%Th%Xh%\h%`h%dh%hh%lhp%ph`%thP%xh@%|h0%h %h%h%h%h%h%h%h%h %h(%h0%h8p%h@`%hHP%hP@%hX0%h` %hh%hp%hx%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h %h%h% h%h%h%h%h% h %$h(%(h0%,h8p%0h@`%4hHP%8hP@%<hX0%@h` %Dhh%Hhp%Lhx%Ph%Th%Xh%\h%`h%dh%hh%lhp%ph`%thP%xh@1^PTRhhQVhU=t ҡuÐUtt $ÐUEM PL$D$ T$$Ðt&U$] t$uKV311 uKF[ V 11 ƒ$Ћt$]Ít& UuE ]Ív' Uu $$]Ðt&Ut qpdf-8.0.2/libtests/qtest/md5/0000755000064100006410000000000013247541377014224 5ustar ejbejbqpdf-8.0.2/libtests/qtest/md5/md5.out0000644000064100006410000000117513247541377015446 0ustar ejbejbd41d8cd98f00b204e9800998ecf8427e 0cc175b9c0f1b6a831c399e269772661 900150983cd24fb0d6963f7d28e17f72 f96b697d7cb7938d525a2f31aaf161d0 c3fcd3d76192e4007dfb496cca67e13b d174ab98d277d9f5a5611c2c9f419d9f 57edf4a22be3c955ac49da2e2107b67a 5f4b4321873433daae578f85c72f9e74 914b11f5990cf99f1161bfeb5865a4fc 1 1 0 0 0 5f4b4321873433daae578f85c72f9e74 5f4b4321873433daae578f85c72f9e74 41f977636f79cf1bad1b439caa7d627c c30e03b5536e37306df25489622e13e3 9dabbd135cc47bb603a94989df37c926 ce80591b269b749f65c53b71d0be5212 db5448be0a1e931cbd84654e82063483 db5448be0a1e931cbd84654e82063483 db5448be0a1e931cbd84654e82063483 9833b12b21147bebb2f33d35807049af qpdf-8.0.2/libtests/qtest/md5/md5.in0000644000064100006410000000037213247541377015243 0ustar ejbejb2EYhuIUmY(^TubyLo1+w%(1MGf!öMvEH^[IHȐA^ 8uCRH*e3xYsȰDB"W;mm3K;Hgq-u}"&tJ s_[?QboFqxYp :Ս)N5qpdf-8.0.2/libtests/qtest/bits.test0000644000064100006410000000052313247541377015401 0ustar ejbejb#!/usr/bin/env perl require 5.008; BEGIN { $^W = 1; } use strict; chdir("bits") or die "chdir testdir failed: $!\n"; require TestDriver; my $td = new TestDriver('bits'); $td->runtest("bits", {$td->COMMAND => "bits"}, {$td->FILE => "bits.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); $td->report(1); qpdf-8.0.2/libtests/qtest/aes.test0000644000064100006410000000404213247541377015210 0ustar ejbejb#!/usr/bin/env perl require 5.008; BEGIN { $^W = 1; } use strict; use File::stat; chdir("aes") or die "chdir testdir failed: $!\n"; require TestDriver; my $td = new TestDriver('AES'); cleanup(); my $key = '000102030405060708090a0b0c0d0e0f'; $td->runtest("encrypt test vector", {$td->COMMAND => "aes -cbc -encrypt $key test-vector.clear tmp1"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check output", {$td->FILE => "tmp1"}, {$td->FILE => "test-vector.cipher"}); $td->runtest("decrypt test vector", {$td->COMMAND => "aes -cbc -decrypt $key tmp1 tmp2"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check output", {$td->FILE => "tmp2"}, {$td->FILE => "test-vector.clear"}); $key = '243f6a8885243f6a8885243f6a888524'; foreach my $d (['data1', 17072], ['data2', 16032]) { my ($file, $size) = @$d; $td->runtest("encrypt $file", {$td->COMMAND => "aes +cbc -encrypt $key $file tmp1"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); # sleep one second so random number will get a different seed sleep(1); $td->runtest("encrypt $file again", {$td->COMMAND => "aes +cbc -encrypt $key $file tmp2"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); foreach my $f (qw(tmp1 tmp2)) { $td->runtest("check size", {$td->STRING => sprintf("%d\n", stat($f)->size)}, {$td->STRING => "$size\n"}); } $td->runtest("verify files are different", {$td->COMMAND => "cmp tmp1 tmp2"}, {$td->REGEXP => '.*', $td->EXIT_STATUS => '!0'}); $td->runtest("decrypt $file", {$td->COMMAND => "aes +cbc -decrypt $key tmp1 tmp3"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("decrypt $file again", {$td->COMMAND => "aes +cbc -decrypt $key tmp2 tmp4"}, {$td->STRING => "", $td->EXIT_STATUS => 0}); $td->runtest("check output", {$td->FILE => "tmp3"}, {$td->FILE => $file}); $td->runtest("check output", {$td->FILE => "tmp4"}, {$td->FILE => $file}); } cleanup(); $td->report(22); sub cleanup { system("rm -f tmp?"); } qpdf-8.0.2/libtests/pointer_holder.cc0000644000064100006410000000321313247541377015722 0ustar ejbejb#include #include #include #include #include class Object { public: Object(); ~Object(); void hello(); void hello() const; private: static int next_id; int id; }; int Object::next_id = 0; Object::Object() { this->id = ++next_id; std::cout << "created Object, id " << this->id << std::endl; } Object::~Object() { std::cout << "destroyed Object, id " << this->id << std::endl; } void Object::hello() { std::cout << "calling Object::hello for " << this->id << std::endl; } void Object::hello() const { std::cout << "calling Object::hello const for " << this->id << std::endl; } typedef PointerHolder ObjectHolder; void callHello(ObjectHolder const& oh) { oh.getPointer()->hello(); oh->hello(); (*oh).hello(); } int main(int argc, char* argv[]) { std::list ol1; ObjectHolder oh0; { std::cout << "hello" << std::endl; Object* o1 = new Object; ObjectHolder oh1(o1); ObjectHolder oh2(oh1); ObjectHolder oh3(new Object); ObjectHolder oh4; ObjectHolder oh5; if (oh4 == oh5) { std::cout << "nulls equal" << std::endl; } oh3 = oh1; oh4 = oh2; if (oh3 == oh4) { std::cout << "equal okay" << std::endl; } if ((! (oh3 < oh4)) && (! (oh4 < oh3))) { std::cout << "less than okay" << std::endl; } ol1.push_back(oh3); ol1.push_back(oh3); Object* o3 = new Object; oh0 = o3; } ol1.front().getPointer()->hello(); ol1.front()->hello(); (*ol1.front()).hello(); callHello(ol1.front()); ol1.pop_front(); std::cout << "goodbye" << std::endl; return 0; } qpdf-8.0.2/libtests/input_source.cc0000644000064100006410000000617113247541377015432 0ustar ejbejb#include #include #include #include #include static PointerHolder get_buffer() { size_t size = 3172; PointerHolder b(new Buffer(size)); unsigned char* p = b->getBuffer(); for (size_t i = 0; i < size; ++i) { p[i] = static_cast(i & 0xff); } return b; } class Finder: public InputSource::Finder { public: Finder(PointerHolder is, std::string const& after) : is(is), after(after) { } virtual ~Finder() { } virtual bool check(); private: PointerHolder is; std::string after; }; bool Finder::check() { QPDFTokenizer tokenizer; QPDFTokenizer::Token t = tokenizer.readToken(is, "finder", true); if (t == QPDFTokenizer::Token(QPDFTokenizer::tt_word, "potato")) { t = tokenizer.readToken(is, "finder", true); return (t == QPDFTokenizer::Token(QPDFTokenizer::tt_word, after)); } return false; } void check(char const* description, bool expected, bool actual) { std::cout << description << ": " << ((actual == expected) ? "PASS" : "FAIL") << std::endl; } int main() { PointerHolder b1 = get_buffer(); unsigned char* b = b1->getBuffer(); // Straddle block boundaries memcpy(b + 1022, "potato", 6); // Overlap so that the first check() would advance past the start // of the next match memcpy(b + 2037, "potato potato salad ", 20); PointerHolder is = new BufferInputSource("test buffer input source", b1.getPointer()); Finder f1(is, "salad"); check("find potato salad", true, is->findFirst("potato", 0, 0, f1)); check("barely find potato salad", true, is->findFirst("potato", 1100, 945, f1)); check("barely find potato salad", true, is->findFirst("potato", 2000, 45, f1)); check("potato salad is too late", false, is->findFirst("potato", 1100, 944, f1)); check("potato salad is too late", false, is->findFirst("potato", 2000, 44, f1)); check("potato salad not found", false, is->findFirst("potato", 2045, 0, f1)); check("potato salad not found", false, is->findFirst("potato", 0, 1, f1)); // Put one more right at EOF memcpy(b + b1->getSize() - 12, "potato salad", 12); check("potato salad at EOF", true, is->findFirst("potato", 3000, 0, f1)); is->findFirst("potato", 0, 0, f1); check("findFirst found first", true, is->tell() == 2056); check("findLast found potato salad", true, is->findLast("potato", 0, 0, f1)); check("findLast found at EOF", true, is->tell() == 3172); // Make check() bump into EOF memcpy(b + b1->getSize() - 6, "potato", 6); check("potato but not salad salad at EOF", false, is->findFirst("potato", 3000, 0, f1)); check("findLast found potato salad", true, is->findLast("potato", 0, 0, f1)); check("findLast found first one", true, is->tell() == 2056); return 0; } qpdf-8.0.2/libtests/sha2.cc0000644000064100006410000000512013247541377013541 0ustar ejbejb#include #include #include #include #include static void test(Pl_SHA2& sha2, char const* description, int bits, char const* input, std::string const& output) { sha2.resetBits(bits); sha2.write(QUtil::unsigned_char_pointer(input), strlen(input)); sha2.finish(); std::cout << description << ": "; if (output == sha2.getHexDigest()) { std::cout << "passed\n"; } else { std::cout << "failed\n" << " expected: " << output << "\n" << " actual: " << sha2.getHexDigest() << "\n"; } } int main( int argc, char *argv[] ) { Pl_SHA2 sha2; char million_a[1000001]; memset(million_a, 'a', 1000000); million_a[1000000] = '\0'; test(sha2, "256 short", 256, "abc", "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"); test(sha2, "256 long", 256, "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", "248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1"); test(sha2, "256 million", 256, million_a, "cdc76e5c9914fb9281a1c7e284d73e67f1809a48a497200e046d39ccc7112cd0"); test(sha2, "384 short", 384, "abc", "cb00753f45a35e8bb5a03d699ac65007272c32ab0eded163" "1a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7"); test(sha2, "384 long", 384, "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmn" "hijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu", "09330c33f71147e83d192fc782cd1b4753111b173b3b05d2" "2fa08086e3b0f712fcc7c71a557e2db966c3e9fa91746039"); test(sha2, "384 million", 384, million_a, "9d0e1809716474cb086e834e310a4a1ced149e9c00f24852" "7972cec5704c2a5b07b8b3dc38ecc4ebae97ddd87f3d8985"); test(sha2, "512 short", 512, "abc", "ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a" "2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f"); test(sha2, "512 long", 512, "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmn" "hijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu", "8e959b75dae313da8cf4f72814fc143f8f7779c6eb9f7fa17299aeadb6889018" "501d289e4900f7e4331b99dec4b5433ac7d329eeb6dd26545e96e55b874be909"); test(sha2, "512 million", 512, million_a, "e718483d0ce769644e2e42c7bc15b4638e1f98b13b2044285632a803afa973eb" "de0ff244877ea60a4cb0432ce577c31beb009c5c2c49aa2e4eadb217ad8cc09b"); return 0; } qpdf-8.0.2/libtests/runlength.cc0000644000064100006410000000177213247541377014723 0ustar ejbejb#include #include #include #include #include #include #include int main(int argc, char* argv[]) { if (argc != 4) { std::cerr << "Usage: runlength {-encode|-decode} infile outfile" << std::endl; exit(2); } bool encode = (strcmp("-encode", argv[1]) == 0); char* infilename = argv[2]; char* outfilename = argv[3]; FILE* infile = QUtil::safe_fopen(infilename, "rb"); FILE* outfile = QUtil::safe_fopen(outfilename, "wb"); Pl_StdioFile out("stdout", outfile); unsigned char buf[100]; bool done = false; Pl_RunLength rl( "runlength", &out, (encode ? Pl_RunLength::a_encode : Pl_RunLength::a_decode)); while (! done) { size_t len = fread(buf, 1, sizeof(buf), infile); if (len <= 0) { done = true; } else { rl.write(buf, len); } } rl.finish(); fclose(infile); fclose(outfile); return 0; } qpdf-8.0.2/libtests/flate.cc0000644000064100006410000000467113247541377014011 0ustar ejbejb #include #include #include #include #include #include #include #include void run(char const* filename) { std::string n1 = std::string(filename) + ".1"; std::string n2 = std::string(filename) + ".2"; std::string n3 = std::string(filename) + ".3"; FILE* o1 = QUtil::safe_fopen(n1.c_str(), "wb"); FILE* o2 = QUtil::safe_fopen(n2.c_str(), "wb"); FILE* o3 = QUtil::safe_fopen(n3.c_str(), "wb"); Pipeline* out1 = new Pl_StdioFile("o1", o1); Pipeline* out2 = new Pl_StdioFile("o2", o2); Pipeline* out3 = new Pl_StdioFile("o3", o3); // Compress the file Pipeline* def1 = new Pl_Flate("def1", out1, Pl_Flate::a_deflate); // Decompress the file Pipeline* inf2 = new Pl_Flate("inf2", out2, Pl_Flate::a_inflate); // Count bytes written to o3 Pl_Count* count3 = new Pl_Count("count3", out3); // Do both simultaneously Pipeline* inf3 = new Pl_Flate("inf3", count3, Pl_Flate::a_inflate); Pipeline* def3 = new Pl_Flate("def3", inf3, Pl_Flate::a_deflate); FILE* in1 = QUtil::safe_fopen(filename, "rb"); unsigned char buf[1024]; size_t len; while ((len = fread(buf, 1, sizeof(buf), in1)) > 0) { // Write to the compression pipeline def1->write(buf, len); // Write to the both pipeline def3->write(buf, len); } fclose(in1); def1->finish(); delete def1; delete out1; fclose(o1); def3->finish(); std::cout << "bytes written to o3: " << count3->getCount() << std::endl; delete def3; delete inf3; delete count3; delete out3; fclose(o3); // Now read the compressed data and write to the output uncompress pipeline FILE* in2 = QUtil::safe_fopen(n1.c_str(), "rb"); while ((len = fread(buf, 1, sizeof(buf), in2)) > 0) { inf2->write(buf, len); } fclose(in2); inf2->finish(); delete inf2; delete out2; fclose(o2); // At this point, filename, filename.2, and filename.3 should have // identical contents. filename.1 should be a compressed version. std::cout << "done" << std::endl; } int main(int argc, char* argv[]) { if (argc != 2) { std::cerr << "Usage: pipeline filename" << std::endl; exit(2); } char* filename = argv[1]; try { run(filename); } catch (std::exception& e) { std::cout << e.what() << std::endl; } return 0; } qpdf-8.0.2/libtests/hex.cc0000644000064100006410000000110213247541377013464 0ustar ejbejb#include #include #include #include int main() { Pl_StdioFile out("stdout", stdout); Pl_ASCIIHexDecoder decode("decode", &out); try { unsigned char buf[10000]; bool done = false; while (! done) { size_t len = fread(buf, 1, sizeof(buf), stdin); if (len <= 0) { done = true; } else { decode.write(buf, len); } } decode.finish(); } catch (std::exception& e) { std::cerr << e.what() << std::endl; exit(2); } return 0; } qpdf-8.0.2/libtests/dct_compress.cc0000644000064100006410000000374013247541377015377 0ustar ejbejb#include #include #include #include #include #include #include static void usage() { std::cerr << "Usage: dct_compress infile outfile width height" << " {rgb|cmyk|gray}" << std::endl; exit(2); } class Callback: public Pl_DCT::CompressConfig { public: Callback() : called(false) { } virtual ~Callback() { } virtual void apply(jpeg_compress_struct*); bool called; }; void Callback::apply(jpeg_compress_struct*) { this->called = true; } int main(int argc, char* argv[]) { if (argc != 6) { usage(); } char* infilename = argv[1]; char* outfilename = argv[2]; int width = QUtil::string_to_int(argv[3]); int height = QUtil::string_to_int(argv[4]); char* colorspace = argv[5]; J_COLOR_SPACE cs = ((strcmp(colorspace, "rgb") == 0) ? JCS_RGB : (strcmp(colorspace, "cmyk") == 0) ? JCS_CMYK : (strcmp(colorspace, "gray") == 0) ? JCS_GRAYSCALE : JCS_UNKNOWN); int components = 0; switch (cs) { case JCS_RGB: components = 3; break; case JCS_CMYK: components = 4; break; case JCS_GRAYSCALE: components = 1; break; default: usage(); break; } FILE* infile = QUtil::safe_fopen(infilename, "rb"); FILE* outfile = QUtil::safe_fopen(outfilename, "wb"); Pl_StdioFile out("stdout", outfile); unsigned char buf[100]; bool done = false; Callback callback; Pl_DCT dct("dct", &out, width, height, components, cs, &callback); while (! done) { size_t len = fread(buf, 1, sizeof(buf), infile); if (len <= 0) { done = true; } else { dct.write(buf, len); } } dct.finish(); if (! callback.called) { std::cout << "Callback was not called" << std::endl; } fclose(infile); fclose(outfile); return 0; } qpdf-8.0.2/libtests/md5.cc0000644000064100006410000000516013247541377013375 0ustar ejbejb#include #include #include #include #include #include static void test_string(char const* str) { MD5 a; a.encodeString(str); a.print(); } int main(int, char*[]) { test_string(""); test_string("a"); test_string("abc"); test_string("message digest"); test_string("abcdefghijklmnopqrstuvwxyz"); test_string("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghi" "jklmnopqrstuvwxyz0123456789"); test_string("1234567890123456789012345678901234567890" "1234567890123456789012345678901234567890"); MD5 a; a.encodeFile("md5.in"); std::cout << a.unparse() << std::endl; MD5 b; b.encodeFile("md5.in", 100); std::cout << b.unparse() << std::endl; std::cout << MD5::checkDataChecksum("900150983cd24fb0d6963f7d28e17f72", "abc", 3) << std::endl << MD5::checkFileChecksum("5f4b4321873433daae578f85c72f9e74", "md5.in") << std::endl << MD5::checkFileChecksum("6f4b4321873433daae578f85c72f9e74", "md5.in") << std::endl << MD5::checkDataChecksum("000150983cd24fb0d6963f7d28e17f72", "abc", 3) << std::endl << MD5::checkFileChecksum("6f4b4321873433daae578f85c72f9e74", "glerbl") << std::endl; Pl_Discard d; Pl_MD5 p("MD5", &d); // Create a second pipeline, protect against finish, and call // getHexDigest only once at the end of both passes. Make sure the // checksum is that of the input file concatenated to itself. This // will require changes to Pl_MD5.cc to prevent finish from // calling finalize. Pl_MD5 p2("MD5", &d); p2.persistAcrossFinish(true); for (int i = 0; i < 2; ++i) { FILE* f = QUtil::safe_fopen("md5.in", "rb"); // buffer size < size of md5.in unsigned char buf[50]; bool done = false; while (! done) { size_t len = fread(buf, 1, sizeof(buf), f); if (len <= 0) { done = true; } else { p.write(buf, len); p2.write(buf, len); if (i == 1) { // Partial digest -- resets after each call to write std::cout << p.getHexDigest() << std::endl; } } } fclose(f); p.finish(); p2.finish(); // Make sure calling getHexDigest twice with no intervening // writes results in the same result each time. std::cout << p.getHexDigest() << std::endl; std::cout << p.getHexDigest() << std::endl; } std::cout << p2.getHexDigest() << std::endl; return 0; } qpdf-8.0.2/libtests/lzw.cc0000644000064100006410000000210713247541377013522 0ustar ejbejb#include #include #include #include #include #include int main(int argc, char* argv[]) { bool early_code_change = true; if ((argc == 4) && (strcmp(argv[3], "--no-early-code-change") == 0)) { early_code_change = false; } if (argc < 3) { std::cerr << "Usage: lzw infile outfile [ --no-early-code-change ]" << std::endl; exit(2); } try { char* infilename = argv[1]; char* outfilename = argv[2]; FILE* infile = QUtil::safe_fopen(infilename, "rb"); FILE* outfile = QUtil::safe_fopen(outfilename, "wb"); Pl_StdioFile out("output", outfile); Pl_LZWDecoder decode("decode", &out, early_code_change); unsigned char buf[10000]; bool done = false; while (! done) { size_t len = fread(buf, 1, sizeof(buf), infile); if (len <= 0) { done = true; } else { decode.write(buf, len); } } decode.finish(); } catch (std::exception& e) { std::cerr << e.what() << std::endl; exit(2); } return 0; } qpdf-8.0.2/libtests/bits.cc0000644000064100006410000001256213247541377013655 0ustar ejbejb#include #include #include #include #include #include // See comments in bits.cc #define BITS_TESTING 1 #define BITS_READ 1 #define BITS_WRITE 1 #include "../libqpdf/bits.icc" static void print_values(int byte_offset, unsigned int bit_offset, unsigned int bits_available) { std::cout << "byte offset = " << byte_offset << ", " << "bit offset = " << bit_offset << ", " << "bits available = " << bits_available << std::endl; } static void test_read_bits(unsigned char const* buf, unsigned char const*& p, unsigned int& bit_offset, unsigned int& bits_available, int bits_wanted) { unsigned long result = read_bits(p, bit_offset, bits_available, bits_wanted); std::cout << "bits read: " << bits_wanted << ", result = " << result << std::endl; print_values(p - buf, bit_offset, bits_available); } static void test_write_bits(unsigned char& ch, unsigned int& bit_offset, unsigned long val, int bits, Pl_Buffer* bp) { write_bits(ch, bit_offset, val, bits, bp); printf("ch = %02x, bit_offset = %d\n", static_cast(ch), bit_offset); } static void print_buffer(Pl_Buffer* bp) { bp->finish(); Buffer* b = bp->getBuffer(); unsigned char const* p = b->getBuffer(); size_t l = b->getSize(); for (unsigned long i = 0; i < l; ++i) { printf("%02x%s", static_cast(p[i]), (i == l - 1) ? "\n" : " "); } printf("\n"); delete b; } static void test() { // 11110101 00010101 01100101 01111001 00010010 10001001 01110101 01001011 // F5 15 65 79 12 89 75 4B // Read tests static unsigned char const buf[] = { 0xF5, 0x15, 0x65, 0x79, 0x12, 0x89, 0x75, 0x4B }; unsigned char const* p = buf; unsigned int bit_offset = 7; unsigned int bits_available = 64; // 11110:101 0:001010:1 01100101: 01111001 // 0:00:1:0010 10001001 01110101 01001:011 print_values(p - buf, bit_offset, bits_available); test_read_bits(buf, p, bit_offset, bits_available, 5); test_read_bits(buf, p, bit_offset, bits_available, 4); test_read_bits(buf, p, bit_offset, bits_available, 6); test_read_bits(buf, p, bit_offset, bits_available, 9); test_read_bits(buf, p, bit_offset, bits_available, 9); test_read_bits(buf, p, bit_offset, bits_available, 2); test_read_bits(buf, p, bit_offset, bits_available, 1); test_read_bits(buf, p, bit_offset, bits_available, 0); test_read_bits(buf, p, bit_offset, bits_available, 25); try { test_read_bits(buf, p, bit_offset, bits_available, 4); } catch (std::exception& e) { std::cout << "exception: " << e.what() << std::endl; print_values(p - buf, bit_offset, bits_available); } test_read_bits(buf, p, bit_offset, bits_available, 3); std::cout << std::endl; // 11110101 00010101 01100101 01111001: 00010010 10001001 01110101 01001011 p = buf; bit_offset = 7; bits_available = 64; print_values(p - buf, bit_offset, bits_available); test_read_bits(buf, p, bit_offset, bits_available, 32); test_read_bits(buf, p, bit_offset, bits_available, 32); std::cout << std::endl; BitStream b(buf, 8); std::cout << b.getBits(32) << std::endl; b.reset(); std::cout << b.getBits(32) << std::endl; std::cout << b.getBits(32) << std::endl; std::cout << std::endl; b.reset(); std::cout << b.getBits(6) << std::endl; b.skipToNextByte(); std::cout << b.getBits(8) << std::endl; b.skipToNextByte(); std::cout << b.getBits(8) << std::endl; std::cout << std::endl; b.reset(); std::cout << b.getBitsSigned(3) << std::endl; std::cout << b.getBitsSigned(6) << std::endl; std::cout << b.getBitsSigned(5) << std::endl; std::cout << b.getBitsSigned(1) << std::endl; std::cout << b.getBitsSigned(17) << std::endl; std::cout << std::endl; // Write tests // 11110:101 0:001010:1 01100101: 01111001 // 0:00:1:0010 10001001 01110101 01001:011 unsigned char ch = 0; bit_offset = 7; Pl_Buffer* bp = new Pl_Buffer("buffer"); test_write_bits(ch, bit_offset, 30UL, 5, bp); test_write_bits(ch, bit_offset, 10UL, 4, bp); test_write_bits(ch, bit_offset, 10UL, 6, bp); test_write_bits(ch, bit_offset, 16059UL, 0, bp); test_write_bits(ch, bit_offset, 357UL, 9, bp); print_buffer(bp); test_write_bits(ch, bit_offset, 242UL, 9, bp); test_write_bits(ch, bit_offset, 0UL, 2, bp); test_write_bits(ch, bit_offset, 1UL, 1, bp); test_write_bits(ch, bit_offset, 5320361UL, 25, bp); test_write_bits(ch, bit_offset, 3UL, 3, bp); print_buffer(bp); test_write_bits(ch, bit_offset, 4111820153UL, 32, bp); test_write_bits(ch, bit_offset, 310998347UL, 32, bp); print_buffer(bp); BitWriter bw(bp); bw.writeBits(30UL, 5); bw.flush(); bw.flush(); bw.writeBits(0xABUL, 8); bw.flush(); print_buffer(bp); bw.writeBitsSigned(-1, 3); // 111 bw.writeBitsSigned(-12, 6); // 110100 bw.writeBitsSigned(4, 3); // 100 bw.writeBitsSigned(-4, 3); // 100 bw.writeBitsSigned(-1, 1); // 1 bw.flush(); print_buffer(bp); delete bp; } int main() { try { test(); } catch (std::exception& e) { std::cout << "unexpected exception: " << e.what() << std::endl; exit(2); } std::cout << "done" << std::endl; return 0; } qpdf-8.0.2/libtests/rc4.cc0000644000064100006410000000270213247541377013377 0ustar ejbejb#include #include #include #include #include #include #include int main(int argc, char* argv[]) { if (argc != 4) { std::cerr << "Usage: rc4 hex-key infile outfile" << std::endl; exit(2); } char* hexkey = argv[1]; char* infilename = argv[2]; char* outfilename = argv[3]; unsigned int hexkeylen = strlen(hexkey); unsigned int keylen = hexkeylen / 2; unsigned char* key = new unsigned char[keylen + 1]; key[keylen] = '\0'; FILE* infile = QUtil::safe_fopen(infilename, "rb"); for (unsigned int i = 0; i < strlen(hexkey); i += 2) { char t[3]; t[0] = hexkey[i]; t[1] = hexkey[i + 1]; t[2] = '\0'; long val = strtol(t, 0, 16); key[i/2] = static_cast(val); } FILE* outfile = QUtil::safe_fopen(outfilename, "wb"); Pl_StdioFile* out = new Pl_StdioFile("stdout", outfile); // Use a small buffer size (64) for testing Pl_RC4* rc4 = new Pl_RC4("rc4", out, key, keylen, 64); delete [] key; // 64 < buffer size < 512, buffer_size is not a power of 2 for testing unsigned char buf[100]; bool done = false; while (! done) { size_t len = fread(buf, 1, sizeof(buf), infile); if (len <= 0) { done = true; } else { rc4->write(buf, len); } } rc4->finish(); delete rc4; delete out; fclose(infile); fclose(outfile); return 0; } qpdf-8.0.2/libtests/random.cc0000644000064100006410000000434313247541377014172 0ustar ejbejb#include #include #include #include #include class BogusRandomDataProvider: public RandomDataProvider { public: virtual ~BogusRandomDataProvider() { } BogusRandomDataProvider() { } virtual void provideRandomData(unsigned char* data, size_t len) { for (size_t i = 0; i < len; ++i) { data[i] = static_cast(i & 0xff); } } }; int main() { RandomDataProvider* orig_rdp = QUtil::getRandomDataProvider(); long r1 = QUtil::random(); long r2 = QUtil::random(); if (r1 == r2) { std::cout << "fail: two randoms were the same\n"; } InsecureRandomDataProvider irdp; irdp.provideRandomData(reinterpret_cast(&r1), 4); irdp.provideRandomData(reinterpret_cast(&r2), 4); if (r1 == r2) { std::cout << "fail: two insecure randoms were the same\n"; } #ifndef SKIP_OS_SECURE_RANDOM SecureRandomDataProvider srdp; srdp.provideRandomData(reinterpret_cast(&r1), 4); srdp.provideRandomData(reinterpret_cast(&r2), 4); if (r1 == r2) { std::cout << "fail: two secure randoms were the same\n"; } #endif BogusRandomDataProvider brdp; QUtil::setRandomDataProvider(&brdp); if (QUtil::getRandomDataProvider() != &brdp) { std::cout << "fail: getRandomDataProvider didn't" " return our provider\n"; } r1 = QUtil::random(); r2 = QUtil::random(); if (r1 != r2) { std::cout << "fail: two bogus randoms were different\n"; } unsigned char buf[4]; QUtil::initializeWithRandomBytes(buf, 4); if (! ((buf[0] == 0) && (buf[1] == 1) && (buf[2] == 2) && (buf[3] == 3))) { std::cout << "fail: bogus random didn't provide correct bytes\n"; } QUtil::setRandomDataProvider(0); if (QUtil::getRandomDataProvider() != orig_rdp) { std::cout << "fail: passing null to setRandomDataProvider " "didn't reset the random data provider\n"; } std::cout << "random: end of tests\n"; return 0; } qpdf-8.0.2/doc/0000755000064100006410000000000013247543020011276 5ustar ejbejbqpdf-8.0.2/doc/qpdf-manual.pdf0000644000064100006410000061075113247543017014216 0ustar ejbejb%PDF-1.4 % 351 0 obj << /Linearized 1 /L 201193 /H [ 843 487 ] /O 354 /E 5544 /N 49 /T 194053 >> endobj xref 351 17 0000000015 00000 n 0000000741 00000 n 0000000843 00000 n 0000001330 00000 n 0000001520 00000 n 0000001818 00000 n 0000004350 00000 n 0000004389 00000 n 0000004613 00000 n 0000004715 00000 n 0000004815 00000 n 0000004912 00000 n 0000005017 00000 n 0000005126 00000 n 0000005228 00000 n 0000005332 00000 n 0000005443 00000 n trailer << /Info 348 0 R /Root 352 0 R /Size 368 /Prev 194043 /ID [] >> startxref 0 %%EOF 352 0 obj << /Lang (en) /Metadata 349 0 R /PageLabels 350 0 R /Pages 347 0 R /Type /Catalog >> endobj 353 0 obj << /Filter /FlateDecode /S 679 /Length 406 >> stream xc```b``f`2<fB X06AU0$0030$,```3a`hd`b`qfœ% yeҴl 8+f+];fƿECyM I|z*+mt(} ȓp&:elrsom5bck%$؛,ܰ''iO`YΠy[R®+WJhE2PV Su{`O3^xM;֑RÕP+ZJqTv$UBPm}-+s2<w fSb$BW j P'3k RvBEb9;jO kL^ 6q 0݁83p2Ͼ=G;L6B [H endstream endobj 354 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 355 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 355 0 obj << /Filter /FlateDecode /Length 225 >> stream x}MK@+Pk ŋxHKmJ=;IԶمw@z' ro?P^TLFߏ+wDe3- `)@^]JY_eK lS$ zy,nO|Fm<x*o̖k}n-$$D96]VH}P8 S "I hv5킼6W׳R(endstream endobj 356 0 obj << /Filter /FlateDecode /N 3 /Length 2453 >> stream xgPTY{si249IЀ$Hn2-49AD$)8:EEyqpQQYU[[Ϗ:;羺UzȐ ɰ> 3(8p H 0D[oo+k?Q '/s,^IW8=%1{8cq?_e> ʄS+ԮfG[^N/?_zVCte?(.Or}]/t7Y9;Ꙁ嶖z RWN0t8@g ةo9(0-pGo:(H2O:4w7&CɛRTRӬҪ>e dje͜r:fg(fn;=b{y;&w:<+n\www̛||~=ߣ~pڽ{p n~.bE,6)>R)ᕌT4t灎2fYAٻ[(7*=D8zHPQURYR*jڮFfoa#6GZkj k?9ι^Xڱ  YǛ =d,\̜ =uGZuZm/ i޳?\Nk/:2;:;]]Cv[tˉ/_(!,]̺8)[z_ rϧoל]x7dercxA;wZ73l=|ýk]Y?24?`,tL`a7->gM`"00>|W%y2ETӴ/7|jq6wk^k?&,YVwFz矽OxPAɏ?M-~'K KKB. t ]@B. t ]V,r96_6@-Jh 7#edoMDEa&s|.7>s7 endstream endobj 357 0 obj [ /ICCBased 356 0 R ] endobj 358 0 obj << /ColorSpace << /DefaultRGB 357 0 R >> /Font << /F10 362 0 R /F11 364 0 R /F12 363 0 R /F3 365 0 R /F4 366 0 R /F5 367 0 R /F6 359 0 R /F7 360 0 R /F9 361 0 R >> /ProcSet [ /PDF /ImageB /ImageC /Text ] >> endobj 359 0 obj << /BaseFont /Times-Italic /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 360 0 obj << /BaseFont /Times-Bold /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 361 0 obj << /BaseFont /Courier /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 362 0 obj << /BaseFont /Courier-Oblique /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 363 0 obj << /BaseFont /Courier-BoldOblique /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 364 0 obj << /BaseFont /Courier-Bold /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 365 0 obj << /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 366 0 obj << /BaseFont /Helvetica-BoldOblique /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 367 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 1 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 2 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 2 0 obj << /Filter /FlateDecode /Length 328 >> stream x͓MO@+ 3-xD Rb ~ĶJl}gvwȣ?Tڈ]|ڶ IeYX.g"-9ֱDXObx@g>EYN|<)oMwɹsWgeqDXQ(.\{4[4DD+M[fmF{` nU  ipp v+#-qqTV/0({J}kھdDBq\ Jk| ̱?\)>~xwx˶WzeXП6tսa]lƍ/2endstream endobj 3 0 obj << /Annots 122 0 R /BleedBox [ 0 0 612 792 ] /Contents 121 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 4 0 obj << /D [ 123 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 5 0 obj << /A 4 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 680.124 154.976 689.124 ] /Subtype /Link /Type /Annot >> endobj 6 0 obj << /A 4 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.218 680.124 539.998 689.124 ] /Subtype /Link /Type /Annot >> endobj 7 0 obj << /D [ 139 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 8 0 obj << /A 7 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 668.124 148.579 677.124 ] /Subtype /Link /Type /Annot >> endobj 9 0 obj << /A 7 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 534.998 668.124 539.998 677.124 ] /Subtype /Link /Type /Annot >> endobj 10 0 obj << /D [ 141 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 11 0 obj << /A 10 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 656.124 205.958 665.124 ] /Subtype /Link /Type /Annot >> endobj 12 0 obj << /A 10 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 534.998 656.124 539.998 665.124 ] /Subtype /Link /Type /Annot >> endobj 13 0 obj << /D [ 141 0 R /XYZ 72.0 627.192 null ] /S /GoTo /Type /Action >> endobj 14 0 obj << /A 13 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 644.124 202.96 653.124 ] /Subtype /Link /Type /Annot >> endobj 15 0 obj << /A 13 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 534.997 644.124 539.997 653.124 ] /Subtype /Link /Type /Annot >> endobj 16 0 obj << /D [ 141 0 R /XYZ 72.0 127.049 null ] /S /GoTo /Type /Action >> endobj 17 0 obj << /A 16 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 632.124 187.504 641.124 ] /Subtype /Link /Type /Annot >> endobj 18 0 obj << /A 16 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 534.997 632.124 539.997 641.124 ] /Subtype /Link /Type /Annot >> endobj 19 0 obj << /A 339 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 620.124 146.687 629.124 ] /Subtype /Link /Type /Annot >> endobj 20 0 obj << /A 339 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 534.998 620.124 539.998 629.124 ] /Subtype /Link /Type /Annot >> endobj 21 0 obj << /A 341 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 608.124 183.071 617.124 ] /Subtype /Link /Type /Annot >> endobj 22 0 obj << /A 341 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 534.998 608.124 539.998 617.124 ] /Subtype /Link /Type /Annot >> endobj 23 0 obj << /A 340 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 596.124 172.039 605.124 ] /Subtype /Link /Type /Annot >> endobj 24 0 obj << /A 340 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 534.998 596.124 539.998 605.124 ] /Subtype /Link /Type /Annot >> endobj 25 0 obj << /A 333 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 584.124 194.124 593.124 ] /Subtype /Link /Type /Annot >> endobj 26 0 obj << /A 333 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 534.997 584.124 539.997 593.124 ] /Subtype /Link /Type /Annot >> endobj 27 0 obj << /A 332 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 572.124 209.709 581.124 ] /Subtype /Link /Type /Annot >> endobj 28 0 obj << /A 332 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 534.998 572.124 539.998 581.124 ] /Subtype /Link /Type /Annot >> endobj 29 0 obj << /D [ 188 0 R /XYZ 72.0 306.995 null ] /S /GoTo /Type /Action >> endobj 30 0 obj << /A 29 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 560.124 223.462 569.124 ] /Subtype /Link /Type /Annot >> endobj 31 0 obj << /A 29 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 534.998 560.124 539.998 569.124 ] /Subtype /Link /Type /Annot >> endobj 32 0 obj << /A 342 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 548.124 255.333 557.124 ] /Subtype /Link /Type /Annot >> endobj 33 0 obj << /A 342 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 548.124 539.998 557.124 ] /Subtype /Link /Type /Annot >> endobj 34 0 obj << /D [ 202 0 R /XYZ 72.0 696.0 null ] /S /GoTo /Type /Action >> endobj 35 0 obj << /A 34 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 536.124 294.138 545.124 ] /Subtype /Link /Type /Annot >> endobj 36 0 obj << /A 34 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 536.124 539.998 545.124 ] /Subtype /Link /Type /Annot >> endobj 37 0 obj << /A 334 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 524.124 130.074 533.124 ] /Subtype /Link /Type /Annot >> endobj 38 0 obj << /A 334 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 524.124 539.998 533.124 ] /Subtype /Link /Type /Annot >> endobj 39 0 obj << /D [ 213 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 40 0 obj << /A 39 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 512.124 185.013 521.124 ] /Subtype /Link /Type /Annot >> endobj 41 0 obj << /A 39 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 512.124 539.998 521.124 ] /Subtype /Link /Type /Annot >> endobj 42 0 obj << /D [ 215 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 43 0 obj << /A 42 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 500.124 189.392 509.124 ] /Subtype /Link /Type /Annot >> endobj 44 0 obj << /A 42 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 500.124 539.998 509.124 ] /Subtype /Link /Type /Annot >> endobj 45 0 obj << /D [ 215 0 R /XYZ 72.0 690.141 null ] /S /GoTo /Type /Action >> endobj 46 0 obj << /A 45 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 488.124 164.023 497.124 ] /Subtype /Link /Type /Annot >> endobj 47 0 obj << /A 45 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 488.124 539.998 497.124 ] /Subtype /Link /Type /Annot >> endobj 48 0 obj << /D [ 215 0 R /XYZ 72.0 464.807 null ] /S /GoTo /Type /Action >> endobj 49 0 obj << /A 48 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 476.124 169.793 485.124 ] /Subtype /Link /Type /Annot >> endobj 50 0 obj << /A 48 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 476.124 539.998 485.124 ] /Subtype /Link /Type /Annot >> endobj 51 0 obj << /D [ 219 0 R /XYZ 72.0 408.138 null ] /S /GoTo /Type /Action >> endobj 52 0 obj << /A 51 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 464.124 174.225 473.124 ] /Subtype /Link /Type /Annot >> endobj 53 0 obj << /A 51 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 464.124 539.998 473.124 ] /Subtype /Link /Type /Annot >> endobj 54 0 obj << /D [ 221 0 R /XYZ 72.0 187.938 null ] /S /GoTo /Type /Action >> endobj 55 0 obj << /A 54 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 452.124 159.038 461.124 ] /Subtype /Link /Type /Annot >> endobj 56 0 obj << /A 54 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 452.124 539.998 461.124 ] /Subtype /Link /Type /Annot >> endobj 57 0 obj << /D [ 223 0 R /XYZ 72.0 528.576 null ] /S /GoTo /Type /Action >> endobj 58 0 obj << /A 57 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 440.124 232.215 449.124 ] /Subtype /Link /Type /Annot >> endobj 59 0 obj << /A 57 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 440.124 539.998 449.124 ] /Subtype /Link /Type /Annot >> endobj 60 0 obj << /A 345 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 428.124 233.92 437.124 ] /Subtype /Link /Type /Annot >> endobj 61 0 obj << /A 345 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 428.124 539.998 437.124 ] /Subtype /Link /Type /Annot >> endobj 62 0 obj << /D [ 223 0 R /XYZ 72.0 264.662 null ] /S /GoTo /Type /Action >> endobj 63 0 obj << /A 62 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 416.124 225.061 425.124 ] /Subtype /Link /Type /Annot >> endobj 64 0 obj << /A 62 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 416.124 539.998 425.124 ] /Subtype /Link /Type /Annot >> endobj 65 0 obj << /A 335 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 404.124 277.647 413.124 ] /Subtype /Link /Type /Annot >> endobj 66 0 obj << /A 335 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 404.124 539.998 413.124 ] /Subtype /Link /Type /Annot >> endobj 67 0 obj << /D [ 228 0 R /XYZ 72.0 472.157 null ] /S /GoTo /Type /Action >> endobj 68 0 obj << /A 67 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 392.124 190.41 401.124 ] /Subtype /Link /Type /Annot >> endobj 69 0 obj << /A 67 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 392.124 539.998 401.124 ] /Subtype /Link /Type /Annot >> endobj 70 0 obj << /D [ 236 0 R /XYZ 72.0 366.0 null ] /S /GoTo /Type /Action >> endobj 71 0 obj << /A 70 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 380.124 186.361 389.124 ] /Subtype /Link /Type /Annot >> endobj 72 0 obj << /A 70 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 380.124 539.998 389.124 ] /Subtype /Link /Type /Annot >> endobj 73 0 obj << /A 337 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 368.124 136.424 377.124 ] /Subtype /Link /Type /Annot >> endobj 74 0 obj << /A 337 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 368.124 539.998 377.124 ] /Subtype /Link /Type /Annot >> endobj 75 0 obj << /D [ 238 0 R /XYZ 72.0 667.229 null ] /S /GoTo /Type /Action >> endobj 76 0 obj << /A 75 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 356.124 244.876 365.124 ] /Subtype /Link /Type /Annot >> endobj 77 0 obj << /A 75 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 356.124 539.998 365.124 ] /Subtype /Link /Type /Annot >> endobj 78 0 obj << /D [ 238 0 R /XYZ 72.0 560.872 null ] /S /GoTo /Type /Action >> endobj 79 0 obj << /A 78 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 344.124 227.261 353.124 ] /Subtype /Link /Type /Annot >> endobj 80 0 obj << /A 78 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 344.124 539.998 353.124 ] /Subtype /Link /Type /Annot >> endobj 81 0 obj << /A 336 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 332.124 167.353 341.124 ] /Subtype /Link /Type /Annot >> endobj 82 0 obj << /A 336 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 332.124 539.998 341.124 ] /Subtype /Link /Type /Annot >> endobj 83 0 obj << /D [ 243 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 84 0 obj << /A 83 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 320.124 214.607 329.124 ] /Subtype /Link /Type /Annot >> endobj 85 0 obj << /A 83 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 320.124 539.998 329.124 ] /Subtype /Link /Type /Annot >> endobj 86 0 obj << /D [ 243 0 R /XYZ 72.0 393.752 null ] /S /GoTo /Type /Action >> endobj 87 0 obj << /A 86 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 308.124 239.37 317.124 ] /Subtype /Link /Type /Annot >> endobj 88 0 obj << /A 86 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 308.124 539.998 317.124 ] /Subtype /Link /Type /Annot >> endobj 89 0 obj << /D [ 243 0 R /XYZ 72.0 277.193 null ] /S /GoTo /Type /Action >> endobj 90 0 obj << /A 89 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 296.124 249.272 305.124 ] /Subtype /Link /Type /Annot >> endobj 91 0 obj << /A 89 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 296.124 539.998 305.124 ] /Subtype /Link /Type /Annot >> endobj 92 0 obj << /D [ 245 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 93 0 obj << /A 92 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 284.124 181.938 293.124 ] /Subtype /Link /Type /Annot >> endobj 94 0 obj << /A 92 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 284.124 539.998 293.124 ] /Subtype /Link /Type /Annot >> endobj 95 0 obj << /D [ 247 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 96 0 obj << /A 95 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 272.124 232.76 281.124 ] /Subtype /Link /Type /Annot >> endobj 97 0 obj << /A 95 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 272.124 539.998 281.124 ] /Subtype /Link /Type /Annot >> endobj 98 0 obj << /D [ 247 0 R /XYZ 72.0 626.773 null ] /S /GoTo /Type /Action >> endobj 99 0 obj << /A 98 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 260.124 176.969 269.124 ] /Subtype /Link /Type /Annot >> endobj 100 0 obj << /A 98 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 260.124 539.998 269.124 ] /Subtype /Link /Type /Annot >> endobj 101 0 obj << /D [ 247 0 R /XYZ 72.0 127.887 null ] /S /GoTo /Type /Action >> endobj 102 0 obj << /A 101 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 248.124 216.705 257.124 ] /Subtype /Link /Type /Annot >> endobj 103 0 obj << /A 101 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 248.124 539.998 257.124 ] /Subtype /Link /Type /Annot >> endobj 104 0 obj << /D [ 252 0 R /XYZ 72.0 408.866 null ] /S /GoTo /Type /Action >> endobj 105 0 obj << /A 104 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 120.0 236.124 266.307 245.124 ] /Subtype /Link /Type /Annot >> endobj 106 0 obj << /A 104 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 236.124 539.998 245.124 ] /Subtype /Link /Type /Annot >> endobj 107 0 obj << /A 338 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 224.124 248.175 233.124 ] /Subtype /Link /Type /Annot >> endobj 108 0 obj << /A 338 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 224.124 539.998 233.124 ] /Subtype /Link /Type /Annot >> endobj 109 0 obj << /D [ 254 0 R /XYZ 72.0 650.0 null ] /S /GoTo /Type /Action >> endobj 110 0 obj << /A 109 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 212.124 204.579 221.124 ] /Subtype /Link /Type /Annot >> endobj 111 0 obj << /A 109 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 212.124 539.998 221.124 ] /Subtype /Link /Type /Annot >> endobj 112 0 obj << /A 346 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 200.124 143.317 209.124 ] /Subtype /Link /Type /Annot >> endobj 113 0 obj << /A 346 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 200.124 539.998 209.124 ] /Subtype /Link /Type /Annot >> endobj 114 0 obj << /A 343 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 188.124 193.356 197.124 ] /Subtype /Link /Type /Annot >> endobj 115 0 obj << /A 343 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 188.124 539.998 197.124 ] /Subtype /Link /Type /Annot >> endobj 116 0 obj << /A 344 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 176.124 154.871 185.124 ] /Subtype /Link /Type /Annot >> endobj 117 0 obj << /A 344 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 176.124 539.998 185.124 ] /Subtype /Link /Type /Annot >> endobj 118 0 obj << /D [ 325 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 119 0 obj << /A 118 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 164.124 155.416 173.124 ] /Subtype /Link /Type /Annot >> endobj 120 0 obj << /A 118 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 529.998 164.124 539.998 173.124 ] /Subtype /Link /Type /Annot >> endobj 121 0 obj << /Filter /FlateDecode /Length 14325 >> stream xM\u9E %Y @dB h٧27Q-ˬg{Wv߭?Y~]Oy__}VY?>>}?Wo~տ?z|od{򻋽_ݭu9O?'_n?m~w_rQW_wᄏ廷~xzo/}kNj?׷z^wwo_|؋.qJ!޷꠺Q= ܋P,,,,,,,,+YVdȲe#F,;Yvd9r$I,XM,&e˲eŲbYX"e)dddddddYɲe]mcSVTNuRݥA5Yd9relbX&ebX.Q2XF! $$$$J,+Y6ldȲe'N,Yd9r27M,s2w],eBAAAAIII,v\5qdowO~8}q|_/^me+_̤U)qxMբRvC]DrM&Xc:nTOP]RםꤺKȲe#F,;Yvd9r$I,XibPbRvK-k-5YYYY&Y&Y&YVdY[)u+TW}:Rꠚ,YNd9rM5z5Z,״"k-5YYYY&Y&Y&Y&YVdYɲe#F,;Yvd9r I,X&enbX.ebE,e LLLdYrݛ2u䕹hyR;G{훷?=O~?,X+üyR׻6̃z}uzH>€:R[Wɲe'N,Yd9r$)筫Py.筫Py*by޺ 5YYYY&Y&Y&YVdn]coԕ!uꤺKn]:&A,'YNnqw{-#"#k LLLdYqķm(.w##i5{/[bƷ@e/㔸C>=uqXV"D`&]v"8Dp)S'oA\[|s๲uŷ x*=*UVl"D`.]"8Dp c< x.=sqsV"XE`&]v"8Dp)S'koA\|{ cLɤdRf2)3LL&e&2IɤdRf2)3̳E}'~z:O\Y{mٲ]x qH$~!I (08@E$"/HdddddddYɲe%F,Yvdɲ A,'YNbY6,XM,&e˲eŲ,E,K! $$$J,۾rC6F+CST$I,X&elbX.e"Q2 YYYY&Y&Y&YVdYɲe#F,;Yvd9r A,'YNM,s2w],s2Xf,ddddddddYɲ /꼸9zC/^xϏ~}zݑ{1oz%/gay|R~9Z>(?QniTVSLj3nTS:Lu4iTFe#ղjIZvR-;Bj)ZMj]vn;IuoTՍ)(TWr$)elbX&ebXF(b,,,,,,,,+YVdȲe#F,;Yvd9r$I,X&enbX.e"Y2 YYYY&Y&Y&YVdYˁe~mZ^w?otT{7tOڍ5/ Nj|<-wvjjjjjj5jT6SmLj7nTS:Mu$յ 夺|'յ夺T׶jjjjjjj5jT6SmLj7nTS:Mu$յ夺6|'յ夺6XrS S S SMSMSMSMSZMj3fTvSMu0aTNR][QPNiRl)m6[J-͖fKiRl)m6[J-͖fKi#ڈ8~uh~X'ƜxG7+/|9Gsogoɏw$ ay|R~#ZnT6SMj7aTNS:Iu-TIum@9-$/6TTTTTTTTVSLj3fTvS:Lu4iT'('յA;-('յI夺 TTTTTTTVSZMj3fTvS:Lu0iT'('յ;=('յTjl)m6[J-͖fKiRl)ml?˼]ofo9\޽ᇇo>:΃oc׸6Y>)?(nyZ)Mj7aTNS:Iu('5TrR]? ZMj]ss[Y7'X^-TNS:Iu('5|'5TrR]?M5L5L5L5M5M5Mj5jT6SmMj7aTS:MuQNk'NkG9TrS S S SMSMSMSMSZMݍ2;/?o_17>=?|:1<.ogj+WTS~\Q7'eAqDS:Mu$յrR]k~%IuTך_IuTTTTTTTVSZMj3fTvS:Lu0iT'5Z+Nk/夺J^HuTTTTTTTTVSLj3nTvS:Lu4iTך_IuTך_IuZKVSE>LO9[O{ן{|o ǎ7eβ_|1ʤx#Ly|HƠ<-o)Iu!y!u4ZMj]m}m<-Y>)jNS:IuA92('uX夺ː:0rS S S S SMSMSMSZMj3fTvSMu0aTNSҠTa鷺ӠTׁ:RrS S S SMSMSMSz4ʤ 6ݫ>||߾5_xܶ=+;|?C|~s7'Q7UyͱN7!<Z#Aowa<Z @0㷅MyX,'C^-SLj3fTvS:Lu4iT'gJNYz*9gJNYjjjjjjj5jT6SmLj7nTS:Mu$,PI< Tϳ@%',P gJnaaaiiiiTVSmLj7nTS:Lu4IYyz*9gB^H< TrSRl)m6[J-͖fKi-\{}oWܽ?otu>燧?CjǏF.(uRI^-w@HTTVSLj3nTvS:Lu4iT:|rR]PN (70000444jT6SmLj7nTS:Mu4IIu> NIu>@9(7000444jTVSmLj7nTS:Lu4IIu> NI5m6[J-͖fKiRl)m6[J-=^{/wKk]|?GV?4 }|m-W+_r7'kAZ.yZ)ZMj5fTvSMu0aTNSzn(9[!Bzny!s+DM5L5L5L5M5M5M5Mj5jT6SMj7aTNS:Ium3A9[!JNV"Tϭ%70000444jT6SmLj7nTS:Mu4IV";[!JNiRl)m6[J-͖fKiRl"߯Z a|o:>|O5񆮴ru^~sC}}!yZ)_jH7'C af%^iaqH$do"D`.]v"8Dp)`oA_oA渀yV"X[)oay|RދA-OMu4iT[[%'VwR=omT[[%'VM5L5L5L5M5M5Mj5jT6SmMj7aTS:MujnFj;NYH5 Bl{_͇}4m\?=w|xo7KְY>)?.)ʏyNyjjjjjjj5jT6SmLj7nTS:Mu$յ;,夺v|'յ;,夺vTjjjjjjj5jT6SmLj7nTS:Mu$յ;,夺v|'յ;,夺vrS S S SMSMSMSMSZMj3fTvSMu0aTNRM-͖fKiRl)m6[J-͖fKiRl)m6[J-͖/#rvFu_.ۥTs:R׍꠺QM,Y6dɲ A,YNd9r Xr X.bvn,,,,,,,,+YVdȲe#N,;Yvd9r$IS, RڞAj\3H-kkX& $$$J,+Y6ldȲe'N,Yd9r$)k27],s2Xf,b4I$}>IsO'i|zh~w7k{-l[m;.Ưom-邺Q=ׂ.ɫKS^t͌)'53ޢy{KtI^-]KYnT6SM0aTNS:Iu͒)'5M|'5OTDYBkLVSZMj3fTvS:Lu0iT'a3夺͔8SNk,y!5tTTTTTTTTVSLj3fTvS:Lu4iT'Fjn;NjRBYH5m6[J-͖fKiRl|"/t<-&%7iTתrIu*|'յrR])'յrS S S SMSMSMSZMj5fTvSMu0aTNSVSNkU;U唓ZU.y!յrS S S SMSMSMSMSZMj3fTvSMu0aTNR])'յrR])'յ\BkU9ZMh"/hiܞݷRwo?)|O˿{ŮυuX{.Fay|R~\Z>(?~.PnTA4:rR]PNP i(70000444jT׏4%oay|RދA-OMu4iTq5:FTq5:rR]PnaaaiiiTVSLj3nTS:Lu4iTq5:FTq5:FBM5L5L5L5M5M5M5M"65:~15SÇ?OΧOᛏOQtm߶l׾Ta|Z>(_+$O;k%aS:Mu깒NrR=WA깒NrR=WA^H\I'VSZMj3fTvS:Lu0iT'+$'s%zTϕtR=WInaaaaiiiTVSmLj3nTS:Lu4iTϕt깒Tϕt깒NrR=WInaaaiiiT\]WW!\ݫ__?x[}xzW}~\hw.ZZm_f.wNay|R~;GyTTTTVSZMj3fTvS:Lu0iT'+Z$NTz% Jjjjjjjjj5jT6SmMj7nTS:MuZD9JZD9JR](70000444j./W.VV}ܽoN|dܒW/iynrSmLj7nTS:Lu4Ik&夺mJZI9uR]6)70004444jT6SmLj7nTS:Mu$յnrR]6)'յnrR]6%/mRnaaaaiiiTVSmLj3nTS:Lu4iT׺MIu۔|'յnrRBYH5 ͖fKiRl)m6[J-=^%_aq}}N|꿾yyaqE*/QqH$nqJ,._pqDq߅qqjx7O޽z`kFoַq^H>vN,˛S5T׼FT׼rR]Iuk(7000444jTVSmLj7nTS:Lu4Ik^C9y;y 夺5R]M5L5L5L5M5M5M5Mj5jT6SMj7aTNS:Iuk('5T׼rR] y ZMټ":/7w~/|4ݫ_񃦬u{WHV)O;fACyTNSZ6R-TFe'ղjIR-TK10000444jTRhm<,oO{Z>(iNS:MujlFj;F!(Tjjjjjjj5jT6SmLj7nTS:Mu$H57R͍Ts'I5wR͝TjRbaaaiiiiP1xbO'u?axCF\y;LS<,oOaWM5L5L5L5M5M5M5Mj5jT6SMj7aTNS:Iuͅ)'5T\rR]sa 0ZMj5fT6SM0aTNS:Iuͅ)'5|'5T\rR]saM5L5L5L5M5M5Mj5jT6SmMj7aTS:MfKiRl)m6[J-͖fKiRl)m6[J-͖fKis\xp9^Z Oy|)h͙-|)ڠ|.yZ)?.(˛㲉rS:Lu0iTNR]k)'յ&XTך`Iu Tך`M5L5L5L5M5M5Mj5jT6SmMj7aTS:MuZL95鷺SNkMTך`M5L5L5L5M5M5M5Mj5jT6SMj7aTNS:Iu Tך`Iu Tך` 5jjjjj͖fKiCˡgЭ> ^_ᛟ~xyOOSu͜׺҄Iy#Ay#iyJrR=oT$'F* 7RInaaaaiiiTVSmLj3nTS:Lu4iT$'F*wR=oT$'F*M5L5L5L5M5M5Mj5jT6SmMj7aTS:Muy#zHNTy#T$70004444/g:ՙNܗ=t}{_޾OOǛ~zmm2˶s|ˑGX,M$d@SjIZvR-TK!RL5L5L5L5M5M5M5Mj5jT6SMj7aTNS:I56RTc#H5vRTc'(Tjjjjjjjj5jT6SmLj7nTS:Mu$H57R͍Ts'I5wRBYH5 f1000444j*ՁJ\n?Xv:ß~O|z}|x98wZxoD[<-(˛444jT6SmLj7nTS:Mu4Ik5"夺V#JZH9ՈZHVSZVjqS>)ojY0iT'ՈZ(Nk5"夺V#J^HuFTTTTTTTTVSLj3nTvS:Lu4iTjDIuFTs'I5wRBYH5VS}6hKo<o[˻Wǧǯ~}wxo~?bKv|;ӕ/{mD˫[wfNSFM5I5QNkD9QZMj=T۶mIy+W}<-TNS:Iu('5j|'5jTרIBkDVSZMj3fTvS:Lu0iT'Q夺FM5QNk$y!5jTTTTTTTT>5]e\\ڜY鞾|>nߘ$ܶ}}/z1DXI7'C>ɫqA_ӹׇ|!ay|R>䓼ZnT6SMj7aTNS:Ium^G9('յy夺6ڼrS S S S SMSMSMSZMj3fTvSMu0aTNS6Tu鷺6TuڼrS S S SMSMSMSZMj5fTvSMu0aTNS6Ts#I5wR͝Ts',TfKiRl)m6[J-͖e/srq_>Z c<ݶ}ĕ׾WmIEj:Lu0aTNR]RNkBwR]RNkB } )70004444jTM,[j%_7HwM,IEjNS:IuSH9} )'յO!夺)ڧrS S S S SMSMSMSZMj3fTvSMu0aTNS)T>鷺)T>ڧrS S S SMSMSMSlvv_ry᚝=xҸLkgyC"mm}C_j~<,oO!WHrS S S S SMSMSMSZMj3fTvSMu0aTNSz)9DByHz)9DJnaaaiiiTVSLj3nTS:Lu4iTC"%'HwR=TC"!/z)>\e^\|!Ayv?7ߜ>~xzw|>ۧ~懇{p{ݶ]ڕof-]Z>(iy|T(˛夺F*H^HuT(70000444jTR9zm<,oO{Z>(iNS:MuPNk"NkB9 夺F*jjjjjjj5jT6SmLj7nTS:Mu$5RTHETHrR]# lr_r|\THLJϩȋsЪ+/|1H8~NK~<-?)˛4Lj7nTS:Mu$յrR]k$IuTך+ 5Wjjjjjjjj5jum߶햧Y7'X^-7iT'5WZsE95WZs%y!յrS S S S SMSMSMSZMj3fTvSMu0aTNS\QNk͕;5WZsE95Wjjjjjjj5/~yl//75Oȏ{^xkþuޏo1 &-TFz} uzH{O%'u~;y('u~Ljjjjjjjj5jT6SmMj7nTS:Mu깮YrR=5KNfI\ y!s]ZMZ׼96n׺ff|kZ>(_%OMu4iTu͒깮Tu͒깮YrR=5KnaaaiiiTVSLj3nTS:Lu4iTu͒깮Tu͒깮BfM5L5L5L5M5M5M5M<"r_^n;pcj߾yS߽ӣr==_xu=Z۶|d|]J7'zTj|]JnT6SmLj7nTS:Mu$ղjHlZvR-;TK!RHR-TTTTTTTVS]ףk)Qɫu=*yZ)_ף:Lu4IjlNj;F!(TTTTTTTTVSLj3nTvS:Lu4iTs#H57R͍Ts'I5wRBYH5VS}6ͼ3.r+_~8ƙ{Z~z/X>~}?gʕ soAw꠺Q=>~Z] "k .5YYYYY&Y&Y&YVdYɲe#F,;Yvd9r I,'YN\nrr 5Z,א[j LLLdYɲe%F,Yvdr A,'YNbfRdCcK-k u5Ö,,,,,,,,+YVdȲe#N,;YvdI3O'h4I$}>IsO'i4I$}>IsO'i4I$}/t}!~LsOA^}m۶W^b2=>ޒJ]R$(O;Rr]{IH^t%AVSZMj3fTvS:Lu0iT'$('յ夺T^R]{IPnaaaaiiiT֥Zw~K6f˫[4iT'$('յ;$('յ夺TTTTTTTVSZMj3fTvS:Lu0iT'Fjn;NjTjS S S SMSMSMSMS}6ȳ>W߾z[`ow+wx ǓO?={_R|u8ٳ?>z{|O_xz_=Ƿ7?lwϿwvwO8wވ?Q͛7(>籗]gHendstream endobj 122 0 obj [ 5 0 R 6 0 R 8 0 R 9 0 R 11 0 R 12 0 R 14 0 R 15 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 30 0 R 31 0 R 32 0 R 33 0 R 35 0 R 36 0 R 37 0 R 38 0 R 40 0 R 41 0 R 43 0 R 44 0 R 46 0 R 47 0 R 49 0 R 50 0 R 52 0 R 53 0 R 55 0 R 56 0 R 58 0 R 59 0 R 60 0 R 61 0 R 63 0 R 64 0 R 65 0 R 66 0 R 68 0 R 69 0 R 71 0 R 72 0 R 73 0 R 74 0 R 76 0 R 77 0 R 79 0 R 80 0 R 81 0 R 82 0 R 84 0 R 85 0 R 87 0 R 88 0 R 90 0 R 91 0 R 93 0 R 94 0 R 96 0 R 97 0 R 99 0 R 100 0 R 102 0 R 103 0 R 105 0 R 106 0 R 107 0 R 108 0 R 110 0 R 111 0 R 112 0 R 113 0 R 114 0 R 115 0 R 116 0 R 117 0 R 119 0 R 120 0 R ] endobj 123 0 obj << /Annots 138 0 R /BleedBox [ 0 0 612 792 ] /Contents 137 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 124 0 obj << /S /URI /URI (http://qpdf.sourceforge.net/) >> endobj 125 0 obj << /A 124 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 81.72 657.641 191.15 666.641 ] /Subtype /Link /Type /Annot >> endobj 126 0 obj << /S /URI /URI (https://github.com/qpdf/qpdf) >> endobj 127 0 obj << /A 126 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 367.94 657.641 483.23 666.641 ] /Subtype /Link /Type /Annot >> endobj 128 0 obj << /A 331 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 172.639 635.641 306.028 644.641 ] /Subtype /Link /Type /Annot >> endobj 129 0 obj << /A 331 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 312.575 635.641 498.385 644.641 ] /Subtype /Link /Type /Annot >> endobj 130 0 obj << /S /URI /URI (https://opensource.org/licenses/Artistic-2.0) >> endobj 131 0 obj << /A 130 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 353.141 577.641 483.067 586.641 ] /Subtype /Link /Type /Annot >> endobj 132 0 obj << /A 130 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 489.438 577.641 539.998 586.641 ] /Subtype /Link /Type /Annot >> endobj 133 0 obj << /A 130 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 565.641 196.98 574.641 ] /Subtype /Link /Type /Annot >> endobj 134 0 obj << /S /URI /URI (http://www.apexcovantage.com) >> endobj 135 0 obj << /A 134 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 461.641 141.053 470.641 ] /Subtype /Link /Type /Annot >> endobj 136 0 obj << /A 134 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 146.786 461.641 273.986 470.641 ] /Subtype /Link /Type /Annot >> endobj 137 0 obj << /Filter /FlateDecode /Length 1944 >> stream xX[۶~%ɌW%m.O3N'-іN%QU DZfvb&@? ?7#N}՛JGZE;䅎XjqJiWJi6.q HsGhHsZaa.w?1ȵ#:᰹} ?tONv'뺻:IC:\}s]YI_`%B;SK0%R^E/ ^!ێ;\+03\N׳n>m0 # i;ғlΖ7e6rTVw Rɱ/Y_WE3H.dfB×(" f|>dbXۯm~rz:t՝v-ZDu]=I唬 ]3'g/KYR;J$ t`$Yi?bq4ZSV}IsJ)/Pw"X q={W,R3u_]N^|j`ۑCىLK2maXITqigF;b`t"f"Ǯd8Iqg%VyeK\Ѫ\TE~?X4{0?_[yo!$_%0<x|u\-߷$+Oe*ܜ|&LIђ.^4 *뒩"3gY\q"T/VA5jNHh+R%+Nя8 6HD)# d:eF3X}ρ6ʒ&.{بQ8MV5sX =( 0u-iEl੗zd@l8Z΁"&M myn/'Ɨg$6}חj@bѨ[=V t)%8YXs[?pރ(&8+J_+@e]X!\ UjQ_UŪI3ѓVW-δQʛZZuSC[V#2>hHIL5.v RPBʚc,~|3az@#M,e dHXe -XvpXCߛ>[F\tp$- pU] d>g8lHtT n7s}5I0+y7G.}HjPa9([KtX릢$$c )1ִ-idlk2gA)9#dƢ - @&sP9AB9 {M$E)d)pI2"ALS٤ WeM.T4k0#Kkh%MʎN:lުG:T~Pc3C]E@Pf#YK6Gzl?-,@AeyTr#,'\ 'ΙQw yq_ @W?Hrendstream endobj 138 0 obj [ 125 0 R 127 0 R 128 0 R 129 0 R 131 0 R 132 0 R 133 0 R 135 0 R 136 0 R ] endobj 139 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 140 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 140 0 obj << /Filter /FlateDecode /Length 1574 >> stream xXݏ6 _]ij8O(-ٖ++qӿ(K)Hڟ ov%dd[l46J0Yx$*n.bȰ@uߋ!we[h:I;}fK"ې 3&ϋ߮Ip82̗4.<7/$Ȼ*{ׯoz< 2};٣-@ސUGM=Iq s,<,i\jI3y)P&iۗB6TqD3K^>Q;Ê^GG9kVm㉏z0UY7i%5aNM,M@ڮ(WJՀ%V:DҴG /0@ih{ܳ\{ӎyeT`V(= 8߸ &!@R8!S}ǘjFJ^i/2RU𶥲 XD,f% QĠ%d%~LvUﵹ,GDcFlh\tבǏ,WNqZ'+W["=,CywFUyNa'ߒx;q6s*yx j W|h96 QSlAա"[<1hyYZl2^nzi݀8?T.gd?s4%Uyyci[z@2wP#n#m]W_ :8!R}ġ 7Kږlmhe(ZqEۓ#e=eU4WzgJf<ѝ.[1:A^%]_$k4ý @DM:I,BѦ0ya<-i޲r[Y`pdc*,0!haB#}b- =wJ8ENbD $DV$堢:?p 3錠dg[DqHfIo 7g ߷J L9}NPX׺oA{uxl(قvGePX05a%a 1B=&*lS?zxfR ]%wDp6W09 r9 wE;ҊwHO(ܯ1a#e=Q6X n#aDl/íLώYpfR]N[Gf_%ʉ3.*ڂ #`u`7 EށP}A@u5ۡO+ 29fs{~#Ӧs+ uFFs-z7ip<XO XG^] t;J@[mfYpp ^+7/umR=~6|°|գBb=8d};cܷYeQfs8&7oS{&endstream endobj 141 0 obj << /Annots 165 0 R /BleedBox [ 0 0 612 792 ] /Contents 164 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 142 0 obj << /S /URI /URI (http://www.zlib.net/) >> endobj 143 0 obj << /A 142 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 102.28 552.539 182.84 561.539 ] /Subtype /Link /Type /Annot >> endobj 144 0 obj << /S /URI /URI (http://www.ijg.org/files/) >> endobj 145 0 obj << /A 144 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 104.5 531.449 201.73 540.449 ] /Subtype /Link /Type /Annot >> endobj 146 0 obj << /S /URI /URI (https://libjpeg-turbo.org/) >> endobj 147 0 obj << /A 146 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 215.06 531.449 313.68 540.449 ] /Subtype /Link /Type /Annot >> endobj 148 0 obj << /S /URI /URI (http://www.gnu.org/software/make) >> endobj 149 0 obj << /A 148 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 184.2 510.359 324.74 519.359 ] /Subtype /Link /Type /Annot >> endobj 150 0 obj << /S /URI /URI (http://www.perl.org/) >> endobj 151 0 obj << /A 150 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 187.53 489.269 269.75 498.269 ] /Subtype /Link /Type /Annot >> endobj 152 0 obj << /S /URI /URI (http://www.gnu.org/software/diffutils/) >> endobj 153 0 obj << /A 152 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 197.68 468.179 351.01 477.179 ] /Subtype /Link /Type /Annot >> endobj 154 0 obj << /S /URI /URI (http://www.remotesensing.org/libtiff/) >> endobj 155 0 obj << /A 154 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 110.06 284.909 260.06 293.909 ] /Subtype /Link /Type /Annot >> endobj 156 0 obj << /S /URI /URI (http://www.ghostscript.com) >> endobj 157 0 obj << /A 156 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 224.76 263.819 336.43 272.819 ] /Subtype /Link /Type /Annot >> endobj 158 0 obj << /S /URI /URI (http://downloads.sourceforge.net/docbook/) >> endobj 159 0 obj << /A 158 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 490.55 152.549 540.0 161.549 ] /Subtype /Link /Type /Annot >> endobj 160 0 obj << /A 158 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 140.549 197.53 149.549 ] /Subtype /Link /Type /Annot >> endobj 161 0 obj << /S /URI /URI (http://xml.apache.org/fop/) >> endobj 162 0 obj << /A 161 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 490.27 140.549 540.0 149.549 ] /Subtype /Link /Type /Annot >> endobj 163 0 obj << /A 161 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 128.549 130.04 137.549 ] /Subtype /Link /Type /Annot >> endobj 164 0 obj << /Filter /FlateDecode /Length 2956 >> stream x˒6>_[{r;-eǓTer"eYۍK"IyB7F_&d[O^Flq!#g0X(4  _8Qv`~ Ɔ禽 O7);93͇3Fo>wqCԒJ\)és W1^QY~Kȃ 2ve}æڍggeSvͪfag4ҐI ːh|x+u*eapf0.`ͤ9g,xȾ]j \aGFlmm>"BM[WBQ ‚pq:EE3g't?|ۗ|[_Nt.sdL^x͛˜)/a+a03.JkRL(ϨrAQv-7<vjDaX, ͆8xFe?{ًh% 83P 6(UOZM580Vhk.8 g2k 뉷D av8'v(=΍o#3R~)B J:ʙٛq=; Vw"C,.w>쏝X_e/7%X_)s-Jc|KxJ tte0y+>l`pq?vYEAΓ.e4nl[},E kb Cy8'?Xx#Å fu'voؓ^_"/fhz[@9әhlU> )ȮLpJ~Y|W#IT@Elu~b@0a/G'%Rʲ*ɸKZAlyh!g-ng*j̺1(/y( ]˙tZ4u}mH|׍M5zfg ý]/8|d?!82A@[woduT|j)ɩ0@ M8!p dIbф,SSg Nƽ.w9`mw{њС? (TJg 9n(Y}#r1H#K@6I6D/ ȩC(Ӧ<Ǝ;e| $'gT&gܠp%x%[`zR4HQ%ry˖MծoU{+}A[` XZN 1RZ}ի!ٷC7Sk‚u'(Cvlap0y'3GIV`Io$*66fOީЈ*ZIZv,$aQ(B6$cB-!^uXUfDnm/BvH%y^,V xJJS UX(T)l :޶7ՓOm>Еj/5-0v)fi+ôdJNM+$-Ѳ^r]C BSB-*R3Bch6FЉA{PP`OHg*C6`v =k}`t M\ݵ߸Q>MgQP44L(8a> zKiТڞ4C4OÑ5X=)Q[7"9NGzmKhRs#j$nGdz3I 9!I!U_Qj鰤9A1mgȾ^ҳITywk-^趶 C0d3Cg SCkBHǾ=1AԀK?-/0n (fci#sSl)Vw((UN5]f.MWmBYQ3?=M=oF3 FW_N N2uendstream endobj 165 0 obj [ 143 0 R 145 0 R 147 0 R 149 0 R 151 0 R 153 0 R 155 0 R 157 0 R 159 0 R 160 0 R 162 0 R 163 0 R ] endobj 166 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 167 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 167 0 obj << /Filter /FlateDecode /Length 1441 >> stream xn8mS4bEQcI)ڢi-EEBe#A~"Ez6 p3y"ȇ_O~i6սS"!" ]!{({nOE`>Z} z\)qG՛6$Ii(4HOuWyQPVjڬ,%z͋hvu>q7sOy*(tsZM.0(I=DR@o NC}7PDGa075ӹ> SL)*D^ mYԝ]c,4iճoFHv޼voi tEkxGL!? 5 X҄QsNi>!)u ˈ=/~AYI$ű-DLJn!b>k Rwܒslht5+V*?deg15 6j@0#Ь1ğ˫gj"AMDdfўw> endobj 169 0 obj << /A 332 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 333.717 519.413 484.943 528.413 ] /Subtype /Link /Type /Annot >> endobj 170 0 obj << /A 332 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 484.943 519.413 515.831 528.413 ] /Subtype /Link /Type /Annot >> endobj 171 0 obj << /Filter /FlateDecode /Length 2815 >> stream xkܶ ~ ** u.&VVZK[}=@ /gy3J?YpIBSKR LTB7ThlL//w%{rCvۙ"O]?vR?%Ru@mg Iݫo^G$< ;_ByF)MSp _}ϏIڶn۟#ypJ3q$+ܰx)5J e_o@ݙO-|:V;rǞȮ [vo+ԭPPTpQ$FQuI޴O]Ǻkoh( Ҭ9P-5WZm$` Ȯk<E{XNigG4Bs'P1x}ńd7qM$8f%ʙfH7k8~DRj`V2^C!Z$*D•(=Ws!T3aLRDҵk0^G?ƌqPtG ZxCkvW7q]K(o[fi|^Z@ b7/y$/ʮ}X*d##(X@cp ".dX ג吻AFɊ_Bekāwi\Wہݩ-C󦹸hǺ͚'n؞YR3\JYŞ? 3 8xS9zy[U`pk]VT*Jg Q;0tw ̌gTЪE,]|?YIyDI}n!7 zG迒89odTn)vS e ͑IYJ)z?^{AQ~ǘQ5ЍB#RC[rdͻLyTkV5XnD^ynȥ{aҥAfNQ7>Mө& <pt7=7S!O]]PNȇ_\1]H9@}‘>,./I4Ej(ܓ-| UHWuA@@ `luX x3o4 " *+J 4~LE9[ ^PfnㄾWkSrr~iѵ6rw/5:u4Cd3'׷fpvʡ+HIRm;{p e)q/GY? pKD^;,5 m=bYȠD H\uIxA;W0`}-k9Ou[u ɋ&⪋.U1|یEnm̰-C+(͡fxCaNXo7҅r%VLf0be/a [I$EZq7$V%k6!`%BFbm>F4Tr8{?5;dݖͩݹa>_\:M7Fi:[bea|Ȃe+L6f6RX]".yw 6y@2펢'LQLfO0͑ܦ,X92 س +nMYsC76I)cEb7o~CH׭ q] oZ}>[+;VЙn{n% NSJ8K_t&Q(?!+2* dDpL 8ǗiEDQNFN] p6}.WO']{< BšoAe+^[Hx΍CO@7 1h ;GczJa#Do4MLIbzSwX*?R8[~D㔱@-*Kg4PEN1do5hsendstream endobj 172 0 obj [ 169 0 R 170 0 R ] endobj 173 0 obj << /Annots 181 0 R /BleedBox [ 0 0 612 792 ] /Contents 180 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 174 0 obj << /A 333 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 319.381 653.5 460.719 662.5 ] /Subtype /Link /Type /Annot >> endobj 175 0 obj << /A 333 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 460.719 653.5 494.664 662.5 ] /Subtype /Link /Type /Annot >> endobj 176 0 obj << /A 332 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 100.707 379.5 254.626 388.5 ] /Subtype /Link /Type /Annot >> endobj 177 0 obj << /A 332 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 254.626 379.5 286.86 388.5 ] /Subtype /Link /Type /Annot >> endobj 178 0 obj << /A 332 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 329.293 287.5 488.903 296.5 ] /Subtype /Link /Type /Annot >> endobj 179 0 obj << /A 332 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 488.903 287.5 523.981 296.5 ] /Subtype /Link /Type /Annot >> endobj 180 0 obj << /Filter /FlateDecode /Length 3050 >> stream xˎ8_ VH`,H2i $٢m!HrwzE_(%I7U%XU)}cVɊw_,$QzKbIJX q Thh/N]{G?>~j~Vb'u-qs]C:] !;j?<'6lPy`<ǚ1+7lo_9_8KSA@xđ氭~O`SpcCrec}wc_qwX`u"*&)(L/1nѫ" 0gX[8CJ ]ȧղRQ 2bFZi/!sوUt%[2#zr,eڇX+aY&ul fe:Btj4a@HѾD{/S hXف^KRHߢHij#?"'(@PMc_#o4dNds#r`Ǻi,B[TʮJa;TyJTU;Qäu&7bZg]g+jqAv^wY&"H-Ȏ[lz6Z#꽥OX˱,rC`IiK7K DGjwI.'#4Y>N| sl]%Jbb\y@CM}p]0?@a1+^"s 46CA ҂zgԠ'^>JEI39Z\:CwO(c0}>;9m4 jt:e?: ue <Ģf[ fZ{CtY%-DD('e;c՛-) {{ k*t󴹑gAŒ T(XV%o쟇Q)Z3s( JU=LJˑn?D&> itDgIn#T,BݣNe,hF"? zy7΀C♯hA^6r[enN'hQ!f: K =(Bٯm0䎹f<+db:#=oS/h6),tYd&EJSa{.BM Zr7 S`˅ XɰYv86x>ٱ:E j,I*DvX^u r<uQ2Ml"4uဴxA.ZH`*,J.d+g|² EpvYr'RH%3I1K!,`;Q*x2ct/3PJrS!l9|cʋ$=}#-)YT?#)%hez~uÇA G:R>4`1j<[:$ vW:iw}Sr !$ɂI3̼JٷJ$ ut3ܖĐ Q#fbRΝ#0igIakLℭMq+qc4('6gރ?Xut$t_>Wum  Grɦgvoc!bfe7ԼE4EdIԼœ?UR We{ xkZV%|׬4q﹫%hunouQgbDCQOeѡkqx57b,N0O8 q,a[0x s1s0i镉fr᥼E\GCTae`GՖm/M!ŽQxAP +TTR\;(2e/gpb Y>0I8ʮ03wQƴ*"Ҫs|x`.2O`CK}"q9wAӌy?=ZAܖª^v/#$"=txHG)תN϶DnpI!b/~ݾ}/ͿBZ&Q/q#䶂("ZƑFp06K"tHiZuǣ<1UYk|Egyil/vEY`f>peNa.7ٕP(iNC[LDR,3q u-b&*" C"XH_,g_͐GěXOն|"} tTo3Ic̸Q*KX0[=#o{9$+)ShJkǁ> endobj 183 0 obj << /Filter /FlateDecode /Length 3024 >> stream x]6};%<䰇õlЇ4@=c͌/ p?(Q==&AH$ER) #ݨ(dwy04F"ND8% $̧<2 S# =څI7Gv3P3 ?ܼPS7y~oM4$Ab*xpr"W_yy z7o' ^E/:vO'uðxf_8E|CfEm ל>/$U_U}7ۙcs3ꋌd)Dqk+Q,v(WUO56;6U8k!&"&y Z0a׵20~f# NdhV'aOPY^0jx=񣆯x3AB"BW2Ɲkʎ^H0)gubsFgل MBig1"/e{hd̜Q6=6-,i7 ÄѤjC^!]:QfU2h>h0j'i#}wk Ig@|)OuwY0.sTu>ab"mZMurU x^vu"wUoF>y#' {:q Kv@ {>8>F5&,y6"Wsc3Ub …V8jv\y[3zN}HW0;`b]'+wZ{LQԳvUMȝN}9uNNyr%;gk3ZIF,)?ؙܧ}8ɈVDirל`1*sp65 (Wa4A#1$\$x.xɤy}ۊƪ@a0?Ǩ !H2VWu*m8f# 6Ta‘O m(a3REm9,aU;Nc8FЋ׋nd];5YOi:mRGdOPQG ,'<0=~|ww2dIMZ&ְ,۾q(9,[GN4%lϝ3D* )0#[$us†C`PbAy1Y%[fH@s 0V@9B3*t\C4}"`S][K껡ԑkraj~(}Ati14fD""+Lp&TJg0#F6M6I*VYE>޿ķ sA75Yu Uv6_,1^ƸICFD4uǴɫu44ҡhipt`C 6`!lZƀAy-3"H8XB'c;ލO_Rꫲ 1bٚ z%* HЏ7\PO'pA9Ցb,UՔ㳾@ة˫9z_.̌ ~JQ/>UY"p}I-rhofrhy$\g;t܏rf>*`rS NE3~7ڥC$;]ߎ ry^VͧP9p8sJ>-nX[APOjK="o^7 z{vMի-Xĺ%*F/:2BDz0\K[[?R}cJglY]vH,yr[Gu 0XI7V ܣ\0Mew_IP髗m(f0Su.sJqO}Ntd*U\e5cFËå-ҽt.?_O"5;y4~U=2X[Z_Q *Z*> endobj 185 0 obj << /Filter /FlateDecode /Length 1858 >> stream xYKs6WdƂI|e&4N{7L$A|$dG Úı]ay?kSF$f$,?) Hyس ˳sUHIb#)/wj^%hȟX.XS$^5kHڕ:Ŗe,YLS}%c\5Ԉz(E"ĝcvľcH:UǓb{}$ ydOe`}l}+FeO| Qz"y$ S }}$!rGw w)&ƶj+cL-/L$c Q@z>B#@L2en>)ruC!+szqPaq$pҦcS:+dekU+&3x!|쑄kolҝR|ԕ\Ů7,n|,qq&ZE9zLCa0m:fRTdsNh9$8[w8YE}["wWO现[Dt%E'n&pVqGdfrߛw*dG-wS>Nj?+6UMS!Zs(=Bdutfp#(4(ޥ{'aS[Kj~Kj)Fw>:v1&+tGgR/1LapTC37?q]TeY1D2fvE;Ƿ|byxƊh ic kǭ'JP #| a[Ʊ5p+ MmF] `p ދ3]&Oy/$X|q#jȦ@|\%IQT"+Ӎ*&dOn9QmJ{;=$ f~xya|b f"vnf̡mݕn:]+zh!*ygWeOJe Q9Tie j̈́V.*5I!6 {h(A)]lV6S p^K5= itJac > endobj 187 0 obj << /Filter /FlateDecode /Length 3123 >> stream xۮ6|+>t I 4}mX,9w^tiQ6M<3\9)}|ß)&X$D3FqdGzDcF0H8O@==c(2~vfS:cǣmGEVUY%~|ڶu~_D2GJ61_D&wN0Dbv{'`DSy#lz`ev#d]s=X |P!rWɒLSEQLydMG9UUX'9,͢.j_ku8!x!I9\zv';7s с O>agj~QtP^hݒ bg9b(,JQ^nrw;濑ͼ[st8uk9)N=p>VGc(ox D`6m¶As(*j LӠOp ,qF<նm-)J\a3}Wc\|.wl?¶̶ N&]uQvz8-`Ϯ/x&)6eXXbgysγzH_"ߐx/~ĤV=W,Mx^v!q;;DzZ,e< " "zƮq3 ,7yw^}'wOe1/"}v*[,pD6sNКQ^'c{d!\?ulʆcyEצzR8<ؓ9<- bgLr$h_6dKVB7Lzun *uP3 0oozvXQlr=ͧ3  e&00"Rjh|3EfQ] Cr Q˞14R {*OrXh ŪsOKfE.N2f-Û%f!$:BG4%]k&O9Qz ү=vOcSjHSzAո޿8b250*XHpuz݄n>vOrMVbvwNJ/%l|owOh w B{m5>%ʸ*lqew401EB4Pwqfn1752iO:)NjFs{-P>K;eUMcg,H1'u>*[mU7&' <+z4&XZ5&k8 TI$⢪~g5|7SXy9g%[L[DiQn3d̾"Rm#hS%TE. }HGbЉ&DyWBğAhgHeLdBɂ0[zŠG!,uL5+M(Ka|>GBd kX4t l"[s1t7 +( rw(-7 l9MAnU-\?S[4+gсHu,1$ϝű"JAHV9t!*5`ClcU-ot|K8`,NIwVv@YKu\޿Nu9t|v˝$-{ (uzv$not7z\Y3ܥzxoLŠ@l {#r}.T-tr˶5-Y$;^+/##S jZ6O'vP?B, ^GDfABqfQGp>I*aSϱ9]A' sն0Ub2 !O@eǑzEE|1H< %P1HtB 0VATQ]Zwm[^xCl6Q޸Oxԭh]\s}-p]3-=^  n3](M5C ^z/K_g_h32p6 O,({A &҃0#(e ϧl%JD\Ys"C/9i"$-๧|e,v;pZw6zshtw"{X,OAxr}R\5G~o6> endobj 189 0 obj << /Filter /FlateDecode /Length 3226 >> stream x˒۸>_U# ܪ=88T%S( C4IV/>$nbڮ&h4/7w%eED6/FII4I (2 / _*-jڇCI?7MH~˯@=!dg:|i"H-$7y.!4$w;8 8.`$XT?;_^4U@>}׿n4QF?D?)Ԑl"v>'Sˊ g긏]1mN;0WÏdsR@9iSHՐ?Dt[Qdij'*`/vg}v‚es: o*k`-)tۈf- fe{Z »0C$|lJ3m!MjWdi@aRP6CIm] fF_tXx9A#Co塭Hð|iC]5ܣܿZ x(#jr6Q CiQ7RVzׯY,G{7R1p]ycyZ6T}F);'XƛqhsMDڞ#թkb8[;0ǪAB?V6؇Ƃ(=f"$z5ݨ񰆵rTgʲu4(Jh/Gn=pUcv& ky}c`_]ڃDwAlXXy%I\_Iе`al:\DbK_oðbXKCUjmi-V$&ƙ+m Zwu˭!J zAma[}Xuh5_nB6K7> "rTF"զМTk+Q!PMM"JK* Ym>g#7.o:b! daƫ? 8*,Lٔڮ:16qJX;j\NCd$-f4lӤbgA݇fƓ(Lg d"X>:&!FA;q|[+MMn|#h dGMqg}}O5%|h3EmI>KS gYY{rvwb=1bPwke/UqhX{5c̛MwnGÙ 6P\_/WP([؁;< B6fOG'-938f/,"ZArE1OUJrXs]\|6)P~k-Vpi8yAX ? sNޗ} u#Rɶi+08: k).@'}Hy]t!!i+0k\SrMظ'Ԝ4S*]w t@w,nzofûq(!E0gPhE4 Cadqz3 F!EɆralhdiˮIjEbNLJfrl#W k<߫-LY}ežd.C`({09aZy}* cr[}Pf~--$!oV2dA  py9ډJ/ΘW9GG;W~ Hc!Gr޷^\`'_O$ h0,Bc+~mvҘ$SY'y > Z:*A&R;͖Ʋ N 6 U귎V|M>9*k-#ȄHٜz[s߁7 ܣ%E  tZmՔ]UU G2i81,\ J[b ¼D}iG68-chiV篻|Cxꝓ[{3 řkX=s8V!! O`h*yH#,`)7K}=AI%2jZ O{CeRx$}Ȉ)l c}^|ht  s'M45=}؛tۛz?OyUhGs>&1}~_jD @Hf*L(e|e#jΓiJ&9/&k8#"׺!̮Lal.Sf毂8ƨA8" t xbz, FmIW|OϦP?=9a.?" ы[xaʿw_&endstream endobj 190 0 obj << /Annots 194 0 R /BleedBox [ 0 0 612 792 ] /Contents 193 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 191 0 obj << /A 334 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 133.32 138.165 223.3 147.165 ] /Subtype /Link /Type /Annot >> endobj 192 0 obj << /A 334 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 223.3 138.165 259.68 147.165 ] /Subtype /Link /Type /Annot >> endobj 193 0 obj << /Filter /FlateDecode /Length 2899 >> stream xْF}okW8l6Oq֩b'r~HԈYyD}MT6h\ t sT7ͧ/>tn"H%<|{:s; r H$Nr?|g}p>=zp>gF9a K a=@.+ƛf[TYS[繳 yiɳmMSwyW\̼}^i' d:6yW CIwEzg$K޽;Aznُ'_n՟܃b5*qϋt(=,{#bW[}lTH^g3ơuOM5T o]cBԻekf|kK^r0NUG~ev_ !c?M?3CUmO^lOhhW4B*lh׆rwp^MA<+7aY3ʂp4[a'˳obrfStyaֈ h+jKbd`RrʚT{{%Hm;\\`RZ:ouN_m:\#tN˭SO7!;7{`/NH (ùb|}`n?~= XaڧX5&1ԥAsat2&QPQrE/-no1w C MkoMTޞJ: y}1r ZiMCb8i`CUt{ ЮiL. k6-$>˲~ hr) M<\M}U+EEۈ>I >/E(GY$4AJk4t g錰9^FH/JLQLV*&hLﯪ ::]%㱄FÝ!,QԠ)t'Q`|.Hq|&|Y^jUB|f TK X- Ǜ%mT0aq[_WRXj9Z'ڼ4Ka\CTί2ȭFj9Kˏ LNe\Bhqj2CYFH=wo^/00|D3 ~zÏ)Ty*ncP%01SY0rEkq:OD@09^E 9s+lwh*1w!{>#X @:~I B|V$x0+dyPn Eqd=s6$ku .*[3H%rg}?ZSeN@,(nS*t/R2`6Ǭx9x}yv.CE稭dy-@pĵ{. NCaJcqQlהχ(Ɨ@:ؗCy C(ڂ4.>?)Q׾c "`9Xs^Mhvgx]%`/4{lVf* JGyr=X W+cBn#eg_8eAjCӢٲ,tQ2rE馈$s]л,n^KmBCSC<]S sն\j2F%P/BBDN#i$Tx1'{.G[>%h>c*3ah-e=N`7Z&$/ AAï+,pJ>|Fx|k;4X2h[/j1UVzOy6OD~=<ˬkBOZ(y(4BExo:=@8m=d-ݖdM|32MYgGnDs>DpͰ@9 xǀrJ`av«!?: Վl%wJdk۰4?Ds}bB=V ~+^7sWGqVz=Tީ'yXR~(8f:+h,1ĂdT$FfJMx(Szuo;ö0M <3ï&?Y_&_1oJ$@kendstream endobj 194 0 obj [ 191 0 R 192 0 R ] endobj 195 0 obj << /Annots 199 0 R /BleedBox [ 0 0 612 792 ] /Contents 198 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 196 0 obj << /A 334 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 366.92 254.806 456.9 263.806 ] /Subtype /Link /Type /Annot >> endobj 197 0 obj << /A 334 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 456.9 254.806 493.28 263.806 ] /Subtype /Link /Type /Annot >> endobj 198 0 obj << /Filter /FlateDecode /Length 3172 >> stream xZK۸ϯm* crHqʩ&N&fIܡF4ЍKvm_h4 )N"fI>eEY΢43`cCCF"+4đ}zB營~n ]Piχ3Eߔn!;j4+&L wG-$dPp+x{t4,H7i1!L "榆^x#sS(8 8сWqe3Á6p&aiwraTAz L2%VV!$ #UM!$:ڐ$Bn)bʼn8:ڨU-* EfK>8n}?W-hvҍ:Ι~D!r+JZh6 e`V&Dathw=ߡ.ĒZkw$Mk8&!"GUҥj1W:spfeq2Rb-VBv4~8H TWeo10!W%n>Dg<6 O _$ڤwΪ 4#L#_Tv6BV-Kʜ* < $/LC;v0yES $U9(~һ,-[] oz),~ќɑ";Hp`-޵q`B[ꅷ|f(y {T UAvHG5,r8IOTAQCZdAY{$H3p)0qm"?M[ 'P;fޕ+\#ui~ ymgjƧ S7!P.-d 4RT! F_@⻽'"ךMqȭ^'C%ݖoe/DxnaJ<L #KPKn!;~/0{a0I@҄ g' Ų$XE()AA%k$ϰnO؈^B0@(g^޻'έn6c"ZLs<5=mz!:bL*fFCub ,_f@ȷ{+vbAsQ {x`6n/‘;z>l9'B@ L!*m;vrRh( I&zH/=&dLbbBZG[)v9Ey55&]Y>lB^.\jGT'Lp}0U"oam*+b]Z"ǝX0 g݉:r< XZik~A5^ TȢ=8 J6&fEo~ Tppi0J]dluB /zPpbi /3nYg>% cj2 ̈́A̷2S(E]Sm=:*N /0LtEEx_|T}laKcUxOf`xYfD:S6}/  %]EYt3ƝLAk-Pk:YDF沃og9uljWLi6WՂn/Y^BTizV +P*i6v#vGwu$;}֮ T'w/wj< 6-sSU -OﻪV|C%TF|bPLB{[KERMTLasa!>4dWŸ]0pUB2 {}3$UE`E5^t9}Rp9e?t=}Dվeu`PN(6:ٜPڤ!ng?PHnқ qLv7J_ɷ[, |LH| gɜҗ!dzvɧQtc_٤endstream endobj 199 0 obj [ 196 0 R 197 0 R ] endobj 200 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 201 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 201 0 obj << /Filter /FlateDecode /Length 4341 >> stream x[[䶑~?l݊-i?LyI&>dQK=3'>EVUH=x)ɪb)JpWޞ/إ.:YAr&Z /K4}7|K\w=OwVOvO؜Dž l|fG/MYRM}bI QZEna}+.d`<ݞʫ?[k*K/ˣ-vu~q?mw-^T+ :㽣 9`z4;Y0jJR/2yQꋆԨ=C;Ljb#@sI*AjS}a[x*a'Ukv6<^ESoƂ-ma\8-5~o^IyLNcҰ #dL- m@A jqOÆ∬ߠZ0[nHv+ѱ5Z* 窲È#t]W ]a: OˍX~&9ƇanR{wU`}7J' d\#1rQCqVh2iޘ#u&jES7( zgR˺B(L.q.ؗI =uUA~k8O8՜j.~l[CΏ> &δNZF[[LX,Nu4n4r8OefAx t13DdGus2# :+/QM*!R-wH`(X VP,mpwB }2Cn7aqL`~!QUAAk\ٰp1ZPmXL\;gvW8a׎z:02'cCGaKڈWWty=1MUO艐FSG;r0]MƻתKth1ׅԣL+(ť_Α˨ʬfE9dsഌn" |<:SAEΑ7v,eWz)-D sQD.nDH=M6mBO>n-I&A?'l΁}st ]?YV2}28E@Cd =eA[?GGڸp$l "JC=Nn,ݵ."mupdIL 'Pe Z(|55"msD)}' RC \BAAV MUa>Ng׺e4& aB &r] 3:l&@j=][,~6ڌ$S' =.Ei_+%Zv sՕl71T=jm,"9$IYip$cmGpbܬBㆻS'5$jȖN ȭN-hnxi]!:udة&2|xMtԔQ3M1e'#*7:1e>C8Y)0PI^bm[YxQco>Dǥs(btȋ#u;z.C7(&Ա&&s/MQ 硤!X\u.硨f)CW4Ku~,Dz= +{9E~ŨINϴ@kW6U84s.E)}j6xF& Rثcĸs1Tݘ^ ]FiDxN/䧑\ \FJGZJ~ `}k fK?ohI1c99C:4(MަU[m!ƍ]ZݞKf_4﬷#RZ$_zy-3a)N<κy]#[q.$@sil4Z ҅>#(5b;<*-;(I8̼$ T%VK/e!$0)F+zd9 G25h&[W)n 3`Z3q9Ƴͤ!1ek,(~} X=eˮc2lbcl1Ε!G$;FatC`E$qS=wuJ{Ba$qc7kEK6aחvV"d~6s= *Io714I|?2O2 MrlFd|!Cest.AN֤dxCɈĊ;Hb4WX{N${aBKýk+\ KMOK~]\c0$_紜2KTMlYgsV;?٘s!ON m1NQWj!Zey\TxӶac{7}F#zǩE=MVO6ީIzQXclvl;ObO_#ú2^Bt^"KaL#t'2j4W2s7Z( Fu׽^ {l^5 :Gubvd0,nN[@͕p {X73W>8EJ| ں3^hƀH5,-bqM69U&}bͿ:IV,*d|{7Z([hmW1:3*PȠ_ AIk RAݖT1rmT!e=F(*B:\[x01 b1lrW̊}%=v` ِ2^"ߪo[fd9݀jo c<{&gu^!Ze'9\Gwr u?W ~A+E{)ͻ7BP*Dp=mI_E5 -I{xBh1ܟ4,еӥkZʆt;)DL 5vgVAؽss8ȇ>W˒kK=4kG-r0MQv}naǚ{/,g;CZͧ΀Zjӕ tvx(d̗aԳh;]"nR SwvT_rG~N4 lQT$NJe ;ߐW7PX1ǥ?f\g4R7[#OׂӎBH~aUDqX/4KDhq}mcf(%hNgR;dBHJ9!X(p% ^ƫYbBSm0RG 516m[#msiLi!Pg?5ID}r)%gq. ƌe*&Ҵqѳ؍U+3ӟ,#_@njC7=z@QTآvxzو_OS~JηĚ^ nG Şz8X> g?t?LbBg8W?) Gidس4UF4Щendstream endobj 202 0 obj << /Annots 206 0 R /BleedBox [ 0 0 612 792 ] /Contents 205 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 203 0 obj << /A 334 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 208.09 697.5 298.07 706.5 ] /Subtype /Link /Type /Annot >> endobj 204 0 obj << /A 334 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 298.07 697.5 334.45 706.5 ] /Subtype /Link /Type /Annot >> endobj 205 0 obj << /Filter /FlateDecode /Length 2498 >> stream xYK6ϯmLꭽ%vf[If=[9r\Ӟ |Ir >1Bo~:!g#cLHZ,E,/$1΢GQ5գC_QKɯw%w6 ىW?m~x{Fֻ6+2꺪SRiR? y:s:/<ǧFS6KI_y\FOCqO;eUțо^3c@wxɶŢ?>4N"Z :sS=fpe0Yn~ Xl#p]BWėFNX-GAFj> ;EL+PWٹw{~@{C>NVP:pTvY$ ,]RJ49ɓX%U]dhä)9,Iؚg% 2Taj< i\I=.!۩^YƬ 'Yf&WD8I8i/FYc58~;G?a(sXL ZRw d,<\6Io '(g9CcN|Z=lϼXrf+>&o~݋s{L4eC0م#edX VE*V˺>Xhyu$}?矃g;"`O۾mrK.Tpϭ B(gu\AӔ85plD "ˊ2?$.`7E>2$: og8 A~x; lI ?ОY<#;0װ|Se+(Kl@"mB؛gc/LjD?C!6r㭗 sb$xfciߴs]UºXA =O$FG gx#tPܜUU.:EDFZEJ8@4(8NA_SS˹ZfCmfx|3d0JN qt^""h.#bɯp#Zzz 9f} U.xO#˨ɿH@.ۖvD6Ԓd3\n3URPN J"X uN "h.zg5A=2j4|靘`I!D$%Áf[ƌ`!v)8] s}#*41\,,GوGzyTʵSx^ĕi}>irnyA㚱*Ss0Wy;Xku""T:ؗ>&}j@f\ToT'ۋzSwsW[8Lb3$^o4ELTaVTaeθ~5W e<~Zxu 4B`wmbA()Lg4`mcR Q|k\Ua2+t3{92e]I vHb$2P60 v̻x@pSs$As&MagQ<y5XˡILsTi\ʳ  έ $4iY$&%M)M޵fD?6MPWdF-N(ԯމnG'1o4*j9C\@ %3\dt i7Xkm}<,.Ƽ ɳgPN_fނzZC\tH ,W0UuVФG-*xY:fUFחwj.ANB%Qw;@1a!fۊ,w:ey`ږЁFT=lLڿCКgƗV#R"a%+?Θ럠+ӫ_`7 endstream endobj 206 0 obj [ 203 0 R 204 0 R ] endobj 207 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 208 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 208 0 obj << /Filter /FlateDecode /Length 2604 >> stream xM~og ?9iܺ~39>kS^~}~vpX䷇(*7M"ey,΀L\Gh/B_0ç/@mg?>|)t >>|. 0x:Ӧ9+Ҵ* JCͿk{KχDl~jJ61+S(5L17LxaZAl g|KoqYf }7nt򸡗r At|wXY[h7x9u:xGQ|I8 {j7N$ 0*2|ir]28z) VǃM%@Ȍ|yͿE=~?VOrˑe>1+=IrЧYt8s |Ds \;D3w1'}06byM$U97|/kןqR j~~{˵Q^v5ͳnoy5_v$g2h0xbP;LG1آdaxʲ*΅85iFo@2'Pt 0t8zƛ#d%Oe0E|q7Co;^.KhA "&R&BfX6bi{$aE B-1Jx1(ELQj4 5Q1c}f0j ?ǣ5'UCVYAF Dh+5)PYQUN/tiL/VAʫy3XrWc%+c."m]lƀksI9wF ܴ5clWjP/ =t8XHI r,.5d?3KGĵWt|W*7ud`;pc[O{>M£غ=ҋԥ%)Yak ! !kJX<-Lv_A' 8 "Z FI չ%'(>$Kֳ9'#q!z Y"ذB,5C~r, Sq$DӠ2(~k=~ e`ͪr&#)΄[8RhZYO_WEND^R>ihz'꯷KwڏȂ ˰Ե,ӽT` h <ޒ-7>) oIUF-7?t ?,KM꩓F0z^T ǚ|/{ 4HZC˂'rOrl9 gqKa!TAfr0iXNtSn? }^~'ւYhX:gީ _fr՚ZD5mG2#'3?'GdA3g}DDpU2 ]jG3GUVق^j*ˣv7#F,Kbbg;mm"L E^].شg>kF"L1 ^ 99vJ*efՒ6]"(xvh@I@hPsCLQӸCO{x6tXTasVv;g'W8JX"_P5Аg N| F$l=C8:MzѷhKdΜ#nY0jNJ:#!Zo#"CTq}&˜4^XkLE^eKN;{r."REt"{'qh@xh-, gV+Xb{ D99K9Z }o+KLբB6B --n\ڧFl5(cp`H"6)bVTPun2Ocƅ"&g)E6bra 9!z nih!vK7>4@Sf !oÄ~}t__.`u=1LG$ eB/Lnx;9Eɋ7%!~ i@=ŧ92׿B*쳙(lRH>endstream endobj 209 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 210 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 210 0 obj << /Filter /FlateDecode /Length 3350 >> stream x˒>_K*-|8qjSe[SbMJ}֣ǧص@AI}?SI;|24I$$2b2qнC_"1 IU2Ɗ";F?QFGY}w]# gY ʌВ~:5{z)F9x}{@L,1;b:1.\L`UC$y'ef3ye3qrlqpڲDWKUQ- +޴wtPYB:)Zp ̢[dG=҃cfŏP`UZ_1UR61dpA68uEÆwKrr\d|!EbLn?TU3$} rmCtwX ׹;{!wTUU2H>Ǿ;gcb46D τLX]O|ҍ/{*1If)*zf vs>?J(` X0B&qg5߿,"bąU ܎-{D}W UoBi'a~/, ^ ug~TeWW%V5I=ڗJBfi]ɀ`LYSuq=өǀ %>&.6ܥ=p1!ASؙ/bJhQۍlFu֬'V e/X5BuO `$`}2B }ŷ>VB(k|2NYy}#zA="Ğ5boU)ޙ7;j)_X[S^.EaY~m൩+SeqgEi]Y2a԰+d/u`!PleOA,#q,+ԫN|Wxz+>})lVUfE,,G*y ^X˶:x?& .8pk2VCU. <8@EySl"e"qW XBks9ja-K>1F0ql iGÐCw!$ƒ&]qXW%` nKq{+H0bO2 VHfxh'~잤]TP_R-BFI]c+% v`^_=QkfYZ@ fy,g~˩_EۃPOt>I]:y.|<) f68X9if՝3ݍxh}mGl?+: fAE^~?5!/WNH6{\dP]j́G hAeٲJ*}c噐ldE5+-DN;téI?-0ss5m\'%i)^cQpì{ݸ%:X4߆U\4 9*eI"n`Z]YN, ${z t繡`5ͫT¨0"Lyx!D8C59aY_6l>Fz>9E0Q}a1y[_aTw~ɘ% V `/`E2endstream endobj 211 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 212 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 212 0 obj << /Filter /FlateDecode /Length 429 >> stream xTN07p&Y "tH[-N󱓦%4bί1S10>Dh1 ~zFհ["7qй]gxOB!,eN.F(B^S+DieFeal|5z.'ߒwHNىrkB6%ܛDM݌4`'D,)V@]z[O[jHeWjYnPsG-Ik`:Zks>jak";~kcZRK5`i%F!?|6`k(몪/mȋQvXaD> endobj 214 0 obj << /Filter /FlateDecode /Length 1402 >> stream xXK6W衻KJ(E&h.bIDʒ#ٺCiKrKx3I";e{+(E4e8@lv K#zE٭iz\T ~^~ z^u?@GCu&XqNHvjq"DIiV?_B;qhe"REEN?~|~-֍hNo%Xie+{ݨd6r7u3|=NUOKX4p4 1@JfaD{yȬ;h{:V<\>1+ 0KQ${k%kIYwE٥/Бendstream endobj 215 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 216 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 216 0 obj << /Filter /FlateDecode /Length 3787 >> stream xَ}Bofd݇Xk7#`KiyԢVߧ*jIkxdX,A?܄^䟼xhG^-IayaG)qTA dVv@ERMwxPk?߼$SJџN:)Ruw-1n|%~QDeYzDyY?z^{_y<ߚw1ok`]Ki'a ,}m7 fzap1H<Ȃ Ќk/&ޫ?1viⶭ1ljža'5HQdQ8K|0\]dKJE4;y,:; ڙX9ŭjZƥnTV@I 28 R֦< ȰrUl'B8im!+V#;; ; 2Y#Zaiqi#}NG9Fz }XU܆2:u+"2bdFnZaѤ {o&AT%rpUhj) CiP>Le Й^f>&Qq*:KA֜95.Y.T;э=,NȏTsduwF@32/J\oQQȊ CwPlIV5DI) ?hk>\ d<0+2 .1S $wocn2 |g#rr@A^먈2J"Kr~ŅɅ|bo ZG2$S)HƧ7%l4 )jans`ǽ !I}2ȣ 3;|p.y[ʛ1<,Bأ2ƗuzCpѳ9c([AW_`=qn[Ky񇰐ͲL/H¬bbN 40`$gTA"aݡ3 v3^9 qvs2:.gayRTmAU|ȷS\ջBr^V!!$9PIϸB4"u@!9Xs;bDnqspIx :JL8 },xaEdS0gw,hXmQİ[<@W <~$`WϡުYs7w}K] -?Y,s. i&bKR}ga[P>KXs#Ir \M}&kOUzF6ѓYCQSLbAZ7|~~|OtKB}A '7Џ8a6P|{R>bWJO] endstream endobj 217 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 218 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 218 0 obj << /Filter /FlateDecode /Length 4531 >> stream x;]ܶ+xrY黺*l%J]Vg,]o~} K$F~cA*cAI>E,XqTG]${4ێt|E~Gg|yHO[<YdEa2L 7?A5ݏE','[gşRP ңSM*r]H&/#0vmPDaNC:V!KpQ>A D oăգPPOm+@O}wqz0R;g -0Nh t,[?Qrm{r؇4 e׳ta.OF p -K ]fX8} ?sd7_W+U8MV1<Ί0@&qGZ4C(/BuA~`C,,B5S$vbeQym@Ymq4Sk]{]dh+$Ypړ<[nR8(lðrkzL2S&8ry(@e Ik'ڑίm-¶>Xi2OsWqQyQ*Ʉ⤽v vWȝjC í88}ٖ*x!mdǓn!yl nպvnrzQ4 N}_[ߙ̴̘W 3x1"&1(lDQV[{>#|z߽v]x{9pQ7/z> !x8.6+8!&n\ }kGHI5@6}FCӁ|BpݟdztBh0_iD;_ u'[ap_ha9ZWnEm;4 rP9Q ,¢ |'\eLcE, #3%aaCJrqhǣJ\d趛r-+BZ"u<"tgt49T]nїfͤկ(CfBR`Е=z=2mkjGy/BZ4'w7^o㔻,PTHCH}OLb&k}xxyPv" 7PpQ2Ү\<`MTEP,5ARTz8bk^_vs/voNK|J>:, ψʭ!Y(EQ An^7N'wb: 1FJ ~i)B\ޏb'84pחSɍ֠ o:3 ZɅ}Kj6{PQSD ulFOyn!',W mw%P6B_l[sHAeCO5 ;U!Ǔ;dx5{arye!RH'fe))SNRkIf@'p#{a}N zC4#vxEMv17~`[WBbʝ%BwXgprK;'j~j!L\˟7i  &[vHE9VL4,(8AW׊2 tqNLR*(gΗjTJ V։Bx|Mm?pXQͧT'@ϽGmqϬR[3mYRah(laS/og0eԫ _ш3 Z/o H =s8̟cUmߕU06#y2ۨ/vmngȿxDiXn.rrat g~2C  zcE} l;!, c N7PPzy#W QǗλ{ LLw{Po/,BtPv4{>/'I [  _B G>C*O=ZM69)3,,4bKm*J\Va86y1)({]d֏ӸW@zopP;DG=4<#RNɖLbGk=w&8joBėl&!80n"ICX?Om=+Cҩ@j*s%Yb*Ҽz}xTIK_Tn!~+-<9/ʟKU\^T]ru= Cw90GKelSG_.*MAֵ|즒Fⵖi\j_ HݳԮJ.aRV\<)e,I G5=MODwHF1PWi7UR-,- ָ`( d2IѼ79uV_`9`{qz 2=X- =﯋,oH>(PtS,_8uco2EFgX_f0|sq,*oJ0xuYQ>~Nx3s!=հ1Lu|:ᄐͷbUJ= [YTJ)lqCn|0 0Oq*ԿRђ%Reϼ0W8[iXËN5, ?$b§Ϳ߱]n E1d-j& ms'6 [ҕ/hNŦKO .(uBu;g7KMe tlL&`pCD󋓃NV770)}|͏6rlklL^q&5ܦqJ*gHj"y4s2>uy&b؅OCWB>Ymr_:0~OH泒N"XEyr*a4TBIEsXӏ Rו5r2Jw  'Jߗ+YV[p1L8ԩk*S<Һ ;at@9@?b+Q4~#OR%P>Eq|8up"@cfyl]Ee[WUMcSQ1p;M]EM2, i86Tg@u)O!3S;ʧ?@T8EV1҈!kZ18K o:":ch3_Z `= UE* iVEEendstream endobj 219 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 220 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 220 0 obj << /Filter /FlateDecode /Length 3951 >> stream xkܶ `Y3i.nȇ8tZb#Qݦm6gHgy7QŸ⟼A}yqQ Φ(͂(!4!?ňVPin0?v4(rf?n Sno>QjiFh R5oOO_i G6Gl8/FaHlV2z6\ZPtu (ac_5-M7d JIeA>+($ Iix2KE.PuVn5KnQ65>*w,4Ǻq7gݷ `}F"47xY:Rq]<@k(;}y\"0]behp?;玏H TF$DާQ99\6]36U+spq6=05?[6z)0*sG^D< ,U)C ?(X:1Nj~^8L8aeT&mú={['5 9Wq8ĄĤ(!1^`iT@;I/ŲTba1F̧RP5qIA{4bZ(InSG<5Xƅ+#M"K[]jJP?9lQ[C.&JARl\](%$F]a0->"mC>ڌǕ%Jȓ 3P\ 6^[ctRrc=q'lM/)wpmPPt`Tg׳]F]vqTlL5 rBMMʀm-H&_َatx12ِ)$JFE|9c?]вxǵ-V}H3E,_R ttyQӌpP Tʢt)UbnDbփ RAT')ICx dv7-s@0ƬL3JIlϥlW ycw,8ޡ8s.%)J/:}pDFe邔NW*IF4"_x@WnJ"H?Q( T886Nn%-%0_; FּNP: =pxm˯"d1q.a=к 2 3$yޅ$I5"HEoA^ƼmSr,!y(tnSd}E -MR=꾹ch9q,8m1wyxh7J uL#n8?X P-Oy6S>NEL]*2JV|6K!Fyf_׾1*58߃;]f/-- <O:}F9ޢW T%O)## PΉ%L!s Q)C7}j5kK\ڇ90>[4^i*},xEFo2rOVXVy i [;*8f/Oz jV5~\=B( }F,A|%$%:P|PQG =WͳͨwKz>ݾ>dO>4a!=qZŒhkeXPaIߨ_Dy |QP_iL\_#hZ9Ro%8UR%8#4PVgtfϤ RTnρottlId\lG;\m7p W7&nťs-YI#牼_ݹOպlz;'yV*9\΢]Rĵ;ZSuagLyDE\l[;H?C%rZ*Z^{\r˭ [}qTPi<" HSUhxIqɊ#d7vM>wl2GPWR8.FG2RM6U*}8[0xltBgS ]TfWg> EeF4a+Į>}0 qT%G.tjR'JvϪ_H\ ylW چi'LKL3ZZa#dgehhmKEWѾ lB-Z`F TEHT*<wSLz\h@( S3ZWNڣL{P0B)KF]-9T*IGy^Yi!a Z]6$#.0'iPCW@O sR2y"rVp5P >DBY#tuwc{!3L0=0.77Lו|RsQBq#>+"Zsqh? SUI Ww:jj)@ԲB4>tzF -xgbA}; }# qжhM,̧_ c6ѭhqV"Aȣ7 ٙ|yf" '[Ec;o bQoO S-}O !qSh -)7Nؒ4m;o($VU{!τSklL6}P7x3?c@X?[/ e?gPendstream endobj 221 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 222 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 222 0 obj << /Filter /FlateDecode /Length 5075 >> stream x\[붑~_7lih5dlez!rA$1"e^<@7."!ΜvyٍƭC G'/Mu~ʢMoXv[&J8b (CFvPŢPLJ!o=ӌ??4S$-{~t8 0)xS,.|>ob톷͟]͏(<o͢_?)Tj _yLUN ])vy)Zc>V];Fyip9S+B쥘$ ӲF0èL¬.Ӏ"խǓxQEQ!LE5/[qWɘ]Fx%[w<, m\;VAeYBk_D,s`µUi =Qȁ7µO4j5q_-EaRZ'lƫuM}Et^4m0].]o}G*d*c[ZT mM+,6_7bؚaN9}Bگ,۪fY),Dž'k.Ƣ`qyu*zgڮ4Rr7ʡc҇hRѡKc|8Ev_I9  HRKCq^``b)iv̼l2Gp\kLs4,ڑ5w*!=9>SotD(% H`F5T$'\UAv$i7+0Q-{MG nnXv}V̗<`\7H@ =,}gVq軳E;qS5 >刐kzy?0(`ٕII38L4"|)itzBp&NYFrS&)NcH < X ˀE)8[0_aWf HD*Z]/ZWS!Gj޾ѳ~ʅ({K!+djgu! *}5l fɤI/hGK]2E3u9/ [qQf C{4_a"Q ¥GgmKri0; 1"kDM7wֆ Kۭ |+k9"i!fEu@L5}< kM4 0k!>izgPg4:`=k~xYAʼ[歪+W]ug1hx|f/gC&aFu2S䅇[Vh-}W"@XՄ"c|ZlmS.!o"H[l #ϙ/XLJ;H!*w[SB[@뒌yZ8Z+t2Y-E:B+ Y~b5tXS ½k,ɤ"%Bc D!o m[ro I"f!LvӚ<,(-LSiҶ ӆ|5!oQn;-׺Sf̔ }"3N2:EߥՄH5DfwdE YyTzt#bD m܎=SBkB&|GX;=]<8wC%z\΁8+83&hb_'>[7z2E.Kh9ʹj)ݾeG|h `r]䰅 oDrp۞Jqy{o"%VX|;8GH8Y+!ŭF6eR@ (hJjbW86#K ӳ$/N16M4{2,(Nxj~FkB<{3̏J/A φl;:꜃ͽ2 LL"tCRRgq 3?xL#O{ЧkV3l ciE۷ucES\L=0&BR~j MiQ q*Ǔ)x2yN RIK](CYc0ԻGˈSpMVʭGadi0)p><67,l爫kZLSkHŖ:LOrˀUO7CSesCxDRB7 ɽöYwa=U*ScRERɾ*T؍2L²Ly9P}( 20dӔ7BEYa6cj-MJyiIU#a 1Z蕃:Wg0 {d7 啁uc@@nb)ƚ{bp!JYuDGX(;cK=dr%%˓d@a+lN;,d,/Fk_0,΂42/Hk_E~E[) ׸dLIK,E${U_0~qaKxV'Id/,E97^X,弹 sEٚ^ܹnE< ; p1/1X' [YUm(dA@Y=gr>ˠv,b}n$I Q4H˸B ~1V\d`rC,;ǰuh=Itc)bDӗAlz&,/)%{'0"ֽt'>d(r!ph <rI툷,e Xu$قΐ;GHe{B.znp'1u>khkA;agDԪ1 77] ,*XE4vУM5V[>zCq7@/+6DsQlzVAhr+oeuMa% Mљ:$ģ A F{DA2N?ZݭU`_R}])[Uԙ`eѶKń=e6cv g88]H_#Ct*C[ͽ-y C<1tVE7|S^8}Me|՝/lbKNS&$ yzUE1jf"G*oʉ<⛙EuFFc-Փ7qYҎ\ICm##_EUك{Lq=}oi ܄GTq~V:ka2`iyiy*m`_Ϝ0> endobj 224 0 obj << /A 335 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 160.538 85.505 386.813 94.505 ] /Subtype /Link /Type /Annot >> endobj 225 0 obj << /A 335 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 386.813 85.505 425.379 94.505 ] /Subtype /Link /Type /Annot >> endobj 226 0 obj << /Filter /FlateDecode /Length 4040 >> stream x[Y6~_$U3ou=?dS[j=X-Ei:$CGM┍"AAOwO^F^}D#/0ͼ0X+C#~dVv@@]wx p. R~za=ȉ"D+&SU]jx#_=Y0uO5\(s_۹'yH4/;+~}ɻ f.O8jE?5k:|ݓa]=\N㬎Vgt ğY7+n.#|<5i|:YdE!폯^^AZ BY#Pw>@ L Zl[&|萀gR`4Nz_B# dk4uFx`Ù  X MOf3o[M&l*VepCl5J]ծFAv G<5ET(_(t"ƥ=ܲpSXrJs?4ІSUsm~-۹=+%04.˼@%ޏՠ4C;ƈ@ /DF~po.șX-"oFΗYFnɩnxwz5U}8¨+B3AWI,SsC.Y>X˗fPHiFX^ N坫‰|ϙS #Qa-?J'L$mqYj\έ,s `!R=0BS%#[UmU'N2tohmY?&UhX+ l[leVT ~ЖHKebm~@q8zX>+nm?|ÔV_J5d$ F("!"YW-$O B{:s9 H W5؈S;ScGnm|@zhE="f@TSdd;3QonSnHV33IvﶃSKkY5<},ƪZvR:oֆ+A%<5PLs.S64'r3r%HrÚg~{ G鸃r%;[(u6^ib7k4 펣r* ؆j~VN~p ȑcUʼj7D$4:I@VB潶 v8$ڶ$)PV-YR[Ù ACj$i {np۵16-]'Epmg*ڳ,xar-r~9'2P[+V;ӧ`Y"Fv|ppajGy=B{IX6+MC@mT  HQ A,!JͰ2r**m P@NϻT-U'#?:P+z3BnPY\giw/:꽌8+:r# )sڄZ)0TV i­nU k9(CJhJS$};T $/є'hH$ZR?MIɲvZ]"7rH6J3 t2I,.ZǗ Cg_U7sϭ['ex=ߏ_؆? `o+%Y v3o4kkː"^`,#Xg\w=)H҇lygvν™΄hg N*<:;hg3aGVq83q *ԙ8B,s5Om` Rs4 MpB?~<5׆K$N.-^;,^A@ ~JG2zuܢlC0۰Rz‘YmtޓaރM!^j?2zyo#޵{nR+4!Ty荌;eQ@9wK"ˍAEgiQT{/F;vɏՓ̹0,ׇk°® (Їi9*c`g?/~+G+cI@N{lC bhލCL5sē*C߈[/`>t-o8'9ŏFQkh2{f7BF.a r"+lEZ#A*FRݤ!bK DXP`,7Y!<G8Y([,&J ZmUNNG ԍ.>ItQyըM8l+CA: kSE qB/F x@4+T5n(ұݔFgճmVjMHD|+Bf63;[ ~(ÒY!G~\ʪUM juEȶdK^8V9F;%AF!7 =:6SAR4ᩈb-8N}#Wk)#$=|,*az"".1UdCJZN88pN6"ƞQ1#J"Pn*FqUQsqfa=h=K^m K C:'5f7d=0!@"B9; o&QVe⌘IUm(sHZdP;/A.97t V 6y!Ԏ-8Pk>Cvܹe*jpEmT =o"ˣ̮v}dXju-x9|.!|Hs$\9gNK8rm2 ]H.r14LtBct&G܃Gt^|]  qpԍ8uVk,X. {qqwI"o{iXS8 HrV("l";U>;iC ,O aV8Iܯ&YQaޢlծ3rD+w=r/8 >ПoK{\ wQ;']arp6ϙeA]zAHBBcpdWX&oq/}rl'aKsuGRnc6<9n y^FsYm~ d~aqӊ¯}!?)\ &!M/¨,P"ϪB؏BYˈbm*qzom*k&[uI1lTւO67(iRn̹SG2J|f0Irg镌i>_K_#IpHķ@n%/V~JUןifR+\O6?Hendstream endobj 227 0 obj [ 224 0 R 225 0 R ] endobj 228 0 obj << /Annots 235 0 R /BleedBox [ 0 0 612 792 ] /Contents 234 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 229 0 obj << /A 337 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 451.651 405.184 539.999 414.184 ] /Subtype /Link /Type /Annot >> endobj 230 0 obj << /A 337 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 393.304 87.56 402.184 ] /Subtype /Link /Type /Annot >> endobj 231 0 obj << /A 337 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 87.56 393.184 125.227 402.184 ] /Subtype /Link /Type /Annot >> endobj 232 0 obj << /A 334 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 253.08 381.184 343.06 390.184 ] /Subtype /Link /Type /Annot >> endobj 233 0 obj << /A 334 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 343.06 381.184 379.44 390.184 ] /Subtype /Link /Type /Annot >> endobj 234 0 obj << /Filter /FlateDecode /Length 3135 >> stream xɒܶ>_NURQJ);`nb_hlI9Ķ,5 oO^2?޼7srIRֻbŸQqlTlM{+V0Fg7tfH-&O7}eJhLjY8)?FRɡ~jh+}ELٍrW=\) FH*b);zsiI W,adQos>wq /H~'{I^֍UX@1IxD zee?]K&wEB^(v@Owմ. vuS΍ G# 7%+JˈYq fS)#88NluɥQ!&Q?o^(aEYWN(W*cپuC?hairVϒQI^!u4z(yh̖|b1k]/-c2Sp$e+lьP;Dtgw9 ]jqK#O)-c~FgQaZγ<*RؚtuG'4aETA4u bp)רL.ek:MqUitStK A; 9_jՓ\9΢Hhv̔ Dے8qЩ>ԕz0LS׏n\^ 'r 8t2 *{Lm=lݮHe!4Щ2?BGpDv8qsW_^rwڡ8uPGxjQGV=cnW*BCpv#nfQv w' Ԡrs= Ϭ׎c7A}~z79{fœ3; nF9{^IAԴty<K (3K6⑭Lc2 @$M] E&Pژ7c'Œ*cN$@j0IXZk7V̜LMdD% GȐ{e+AhM7^ޮO4@s񽾀*Ԉ~P]{9k hM:^=Uh>s Βhp<1B .@w; l,^f"$災[Rph0qQqO0.P/*FjրָYeUqcߋ3N [O{g_6kU퀗BQoS__2xCAyvF瀬PyZ(5`lYp{e@XE0:4G24vGs{7n'pKᛅʺTݚzC{oY.UХصvX˦ao8~'0=>%(@`Q(H !TQ nj*0 5yJ@rYpeUVӷEj;oI@餳'wZv g%`w< H~o(O`oJY`oX-^Yˊ{!v )^EFHKVXF-ּR'Z*u-)33Zn=$t94|,@C`bBwqg  ͕LC7 MpRzӋ .yYB,C}n`0.b. U3>B4~H1v#'رҀβzl[^Ͻ*wsfnM'b|iئ@S,Ѓy3;s SIZuk(7vO8EOǠ:nꟼs /K)(]}{'s lP+%aTLh72U,Y,y'8X`5K"a -&TUDZyKnqi@!XѾOsnPݛsKLc{7*9EA ^Io͡;; /y}t<[A%w9R G _z[`(m)-Sׄ&d&,"*M pJ*R}I[MR+ *B l!ʞuʡK`l0ջi.|hJs&} VAEմ[3R[8GMRgdxqT}hs0h9b/2 ʹ": {Gh*J,(7k4XQd$0`KC2I%GQ7xoXb"FXFC^ :ɿI2"M"OM,mEO z<)U uINpi\BX'ŶvX`ÚQhֶyyJp;|SbC|"* OwgVI?ﱃlVq4Ïr^),bM'Y:&ٯ_(4JŞ6QqQ77wi_̻Y|ub.6_>\}1f[SM7?U ȓPhendstream endobj 235 0 obj [ 229 0 R 230 0 R 231 0 R 232 0 R 233 0 R ] endobj 236 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 237 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 237 0 obj << /Filter /FlateDecode /Length 2739 >> stream xr8e쪶8[53x+9[lKÎ~A/IT;S1ă Rv~|M$J II{ad ?{hh_$ ȗ'@O N?|Z(to=$$ɸ6LЏ IEa~ SKh[ևnd7gFGA3O!¿qiI n; Хoa+ף>]q{֎;6;g'2Cü4 ,Hjؗ`q⅙?qfn_dK+l0;[\SazzQxj4nɈgM}[:퓦Mmφy摰e:,! 4SjW *`{FslP%c׎'=R_Xi4WfdCC=6J=!lgvz=a:8]_#c# KjjH>cM?EYUkn$('Ӿ;qZDZZH;>YQnvķ'"b+<&C@WRd4V=DJv0iv憚NFPbV6sh k6 TAlP ! "s* j!ЦZnqO_*֚s駃4֢>ipGL(^DzzЈqK2^86GxLDfYMlσ ;ִ8˝dIDG; U!DNƤKCFO,,$T,,;Ѷؕ\hOLM(R:b3 9MH"$JhJi8x0KΫ!C{`)3R  Ϧw)\:׋sa ]{Ͼ/ŠfS7(aOfR68fDJ[[-n^ Kiƅ$iphSe^m{Ru&x^$ցljeF3gEjȴ3PօaQ8ʾ<y|m *Uݜ&@wg'u{).o-ܵ^irmWljh~Jr oWD^ϵa8îlr~M4Ř_1eñ<@>[ةnMRp%"s"(irGZke.#MAJn 5Jǫ:`@U<_#cZ9 4Ĕi)8zXY[bc ýy0η/-Ԃec.hYap6b1yS!S~W¢(rdf 3K숞@`I\ݵ2*o+PKMt"&t?-%4\8Z&2T%F)(!C.'^ iA^.}wk:tΗIn- ہYry3(oauc XBO5tX6\v`P#־J =vNLi;$rLO~}U^OEPL,JgvK |<.YԾaSObJhyVx\~$|cN}%L.AKl8V_XSlS0 _EԬ?cKU+gRJB_ vC,Jq[N&*zipf$'ăට Ҍ dtendstream endobj 238 0 obj << /Annots 242 0 R /BleedBox [ 0 0 612 792 ] /Contents 241 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 239 0 obj << /A 336 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 334.947 468.365 448.053 477.365 ] /Subtype /Link /Type /Annot >> endobj 240 0 obj << /A 336 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 448.053 468.365 485.879 477.365 ] /Subtype /Link /Type /Annot >> endobj 241 0 obj << /Filter /FlateDecode /Length 3009 >> stream x]ܸ}ߚ:[rWY sg'__J>1Mz 2$-QIC7aN" D < lJ ,@YA>/7ndg&~0dO'O/mi0OmPF;M2g!bPb] KBYrjP+˦+2/a”JE^,^ݮ1uzӗşʦžܲ[;DDCՍn-z4)-4eU OTP̔VwEƊU1Q{~^xDtjk# !RJ*'.wwZڻE%b֎+po"a/py<$kx0uDQ/GTZL *4Ʈ[g&!C Bk9*,7[ $EВ>2REdRi|Ri ;Z & .O5 AyZeDs89Ip+4+h żH%.AΆk~47i4hMvS37ya{n0Rdu-qxʢ,ֶ=Ɖy$̮hJKVXay,U :_K*G!l(#\LL"ҋLg*fsE $.)0KЯxTvK/l_PN&aJ3i*NMz:y$ H^֛JB Ew0/PsL;_2YbD}a u3V| ե$(7Zh{b72.feL| @itLY8C ¡{Lό4 #mC{ W{X>CEAY39k^vQ!^l!RUsʹ=K..ժQ )+]VޫZU6v?R,MOňM>4N߽_?£/8a7t-BBDWdS?X￷H!endstream endobj 242 0 obj [ 239 0 R 240 0 R ] endobj 243 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 244 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 244 0 obj << /Filter /FlateDecode /Length 3383 >> stream xZK6ϯmgKڛwnWfˇ8VFv{/HRr@@P 7OQ%A?|&^I8q&9UdCѿDFgjtd"+)0Ip/VWS _eh}g9xkֺ]6l]bL!TƐ6+䕪O1wl3BɉYҤ]A d,Gt]Qź_W32lȬQc!s>zLCiWJftYf{-<<2ȺmNtg>oIAT9I BX_z9xcl'`z}3ݵ6SgΡr~zTa`f1J nK:BSmb56Ӎh]_DS0$h=! 0xo6"2(B1+{J1j74;nP=(*J7ztoUB=c*(ĐkkdDڛHԊ xYТSkloKh$gINja8ol鯵<[=&9:_rJnsRԐ|"rN;.5IrlW%ށ l^<$g Δ} df:&Y+.ng"#~Q q~\tfɯuvpp:ZsmfE&pȝJׄi9"ʘt7/{G^\a+(ۨ}_*dGmhrh iզ8Gi2Vl,^ wE\UE[BV rj 5 ؆8)AN9b/lY{ym3#۩7y$i_Nk6TS7cۯ_7Nm]}e s"NX.$Nvw?UP\endstream endobj 245 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 246 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 246 0 obj << /Filter /FlateDecode /Length 966 >> stream xVm6 _An@>ɒ-{]aVl `bpb%9[Yv-Gv6 b1IQ(RO_[?Dh=5|q=k+>oᘴ"ZE= \]kzBÏP]OG ~P\X4q~UZa=Z)G䍋?y0` 8sj C5+9i755W%R* a PL iYS]vu(.v6ߪ+P;qt[q 8=a/I5Br%sUH1~v\ S#b(XՋlMDE_z!U  ReU=0K3%K ,H%5RXěL+x3ǜܟfVɬbܪ.О1X? Ϛ=[S{3/p>c.ܘ}Wv)Kս8U;F:lN8#,MҥLn~'Pi*ɺKpg} /+&;7n{@ꔥ*Z<> endobj 248 0 obj << /A 338 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 299.614 431.318 491.36 440.318 ] /Subtype /Link /Type /Annot >> endobj 249 0 obj << /A 338 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 491.36 431.318 528.338 440.318 ] /Subtype /Link /Type /Annot >> endobj 250 0 obj << /Filter /FlateDecode /Length 2153 >> stream xr6-r$ah[u0$fIɓƋ# n E~#+"Tn>[EYtI(QhCE5ѳ1qO"npD?ߴ7_[>A/7#xa!KJ/'O/}o?]i$A?<<(b8ϣ(>(!iNŀr(G }?tR$bm)I(,5l>'i&><&Y$Ȓ<kޠ$-wÉuz$uуQ'ю n,"RepfN%} c(ʆy0cgAp!l)`YƊ"g1\u/0K2X4I %5HTn!.hsd$2knoW4E %3|d1nͳ45<!T{j^ !Z%".D*y.å̫TO>\kǯ.>kg<(h0zaH`GHR{52-Z|Qn'<L+O 閏jȥ]gbvKD &}/Fla#Y=/<1%yL&$Z@3#}ܮQ]ƩA}6PDu|8(}]@ IvLZ< E)B AЂf:o`4"례Agu.Sa5.v8u$+/4=HXClQP0Uf\"Y >Be u0tsS53wz1% 쵅]G6АQ\gmydE_+YVM" -q!vp<;qhإFL9KEybC=zf Ʃ鲗w~}ӷ 5ϻE;uؙ-:4n=iLHRkg$lQd#3]L,瘅&0Ȁ$)gYcZf3vIוB҃slq bPM-[{^WASu O)"q7^Th Y\Q>jA9^vC]M(`&ڌys?T86/TB@r(4uhŶa):nDI36 d0svd:ytCu0к|CW:VF^bnAD7+frEoP/oIendstream endobj 251 0 obj [ 248 0 R 249 0 R ] endobj 252 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 253 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 253 0 obj << /Filter /FlateDecode /Length 3121 >> stream x]sܶ]o$6v'$5yqwlHIV}_ )I8vI0{dMv$M"\$$EôL?7X8f !t\W yte9ďW&?l8_=ONw^ (?y#F&_6!)*[ͿNvԿ-ջ3Bd,/Q/Cڡ>\T'#%om 'oϛFpWe?B_&mnf?Nm0:܄$#mn4TrЕ XUomy*u@AO4dI.`߾/f NbO8vd`m X!\pn!\@c{_.8!p' bY?*â`^"0$gF?^!L'lñ.O I-SОa7d4y .XnReij@r{(Qm9R\NK#'MQ Ul!+*Y:z2ӓ ?4c Q3޵c )b"|\< zm :ּuS㣘0a,i||TE{ֻʹ fܴGYv,79z=o6: h6G9 sV.#`bճkouJH@3bO%)fLvE[$esƌ ZC_kH;_a@><-/+ J ?T̨C5Q,Uۍi0RyW H fh(wQ AA'U+!~V3A=x 2FETrM,d{>?q:6+ (ukg!kƂ_Oeآ'{~ld0sTD_C~X:̘>5XO4 htUZ% :1GHp/brEN10P]a??eCKlH(LtECErW뻊PЛHyl1!9R1lrGbeաރo mKie7}yj@2**rGMLw;/o 2Ƌuc ۲8TߨZ㗷wvеGEeSY S"ӥr{neނ$! BeK!sk 5%TS8Eį6``zr]/u-/m7Ү϶c 4)/~)*+A4W53T>D;(Y#'` UiJ0tecO Cbo#Հ]o7&c ہ&RAÛrV #2'PKff0n?%W$gb_j ^DsnQ6[ K@|9l3#3=9ڣ+dlTLV#0A@gd[SQ"sBeZ}}7/yv 3Wb. sz~Ŧn}B;?Vt`uk_?&鋩o2Fgv4kq23H;earTHh AS[= !T$* A$O#jA-ϖ˝%B$^,Rx<&&E_U)Ơ@tNl!jOPbqHGgKO;AD"́ꪰaձecA{݋xgsU 6e#;,۞PA@22CzPWI0 ̖ݍlϽEKM;<b 2uPd5υբu.|,i2j1P2h49s] lF<{C*l$j!*~d V`\t&(RLDRjqEsz] |1S k'̫[z!\5).D@-~Sn^`'x!^9yfUSE\sÿtLEE}6+WwbAfEQk C?KfEqb<d ?!\ԴrptCɹ#ai^ u#Z*y޽e` "Q $FSSk[DjiU=U~6Q}~0CXaL2  wT7SDO.ů&T14坆y?fMIñW_5tf?fKD~^.9-͍M ZBdiHϩQ["ܓxd;͹ID 4`.g^WEuW$l<+/XrM}x}=Y~ڛ1ASQZ,pU-Gendstream endobj 254 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 255 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 255 0 obj << /Filter /FlateDecode /Length 1412 >> stream xXKs6W4&{l顭k@I($(]!R&I&o}b GGh׮(%ˏG^[Ja1_ш.S&*V%ct^IuZy4qWatXY=+ VX| 3ji*k 3,H;Dev]snaYsU\*:6L Nt["KI\'kRx^s:#l*քaY2IJ{R۪* ?:ۍVZǞ L`e/ 0Y(f-RUz>y3q4R&kKZwR&֖S4lZ\3xKYeʜcsdG]\X8v J#E_:W]W6I&Yyx6DWTOGh9S`UW;Ñ8l59TDAg|i9"}h iI VN+ʇp(ZqI}V8ŪhHWԹLs;?$I azųA[&@<<ʮ2}0D^t~qžþ۞dd15HG-{=eCYgg,"ԥnQĢn9` cm9xKp&jHp-EL A;?Wˢ#Ep6U=XsEQni8cNh{Y&uȒûE)eBe#CѺ-G׈ځF@;7wRH\#ݛ橋IBLXE(;L^lwz}h74U}Ԟ,ׇ+xxTeԓ|:QD7&J> endobj 257 0 obj << /S /URI /URI (https://appimage.org/) >> endobj 258 0 obj << /A 257 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 236.574 416.861 278.784 425.861 ] /Subtype /Link /Type /Annot >> endobj 259 0 obj << /A 257 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 284.876 416.861 370.156 425.861 ] /Subtype /Link /Type /Annot >> endobj 260 0 obj << /A 339 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 100.0 242.149 207.21 251.149 ] /Subtype /Link /Type /Annot >> endobj 261 0 obj << /A 339 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 207.21 242.149 238.59 251.149 ] /Subtype /Link /Type /Annot >> endobj 262 0 obj << /Filter /FlateDecode /Length 2781 >> stream x]۶~̜h >8uS7< DAcIʺ.>?Է&skwX. P?""拡QE$fI4e&AY ߄Q+n&8_nӯ@=%-.DO]L?vzu@9sgw7/b%AGEQ/ < Ð1p"^n[G: ?Z^AJRBÉ$rB\ d'^bGܓțoIB(Ϧi)Jh7J?aU(;'$)I(zyJAvjWmC%@iEN3:@+w呰[49) d"4~j; [Q4[ /R#R#Q`{YR5Rvw;hJL!qW-8mqv➆N~N_ՠy3Os+ѐMTЏm'Va@P$ԸaxRA v_Ed"Ng? p*@ѐB(5;ي~";xm ɥ̀Σ~Y^I6,8mw;tѦ]8pGQ~v:6ع) \: &n6K84C^|o;9$|e8-L`> .NF${{l;H`D 1c{ m8wLJ6)kN(k-vb2BZD~PL@qrp U uxm$hoEYLhZ+:sR%綕5&9soc%ęm>,* 'tDA9|+\s!(ώFhv }OpޮTuMb0YaIW MGW ^[^yn CpNxuQu/)&Jdy>A*m1Fim܉mwp(˃Rz5f|טNo~^K@շK|L"콃yq8Dqjps<ðN0R/({ŦgHd8&R KήͨIÖ1ȼ:U GR-CtYi*]B<:4:S¥`08 0}|{=mئRցC_>D#8Dtw~:4 >b;p]W5 3nus,Ov _3 s`uƃ kDxc4H[EBgLd܂~6N!znӞ&њ'm.Hب]iyӿXA4Y0-%a Oup+DCK>( ;=MO.b`4r"kN_XZ|ݸix\fSJ~)6q> ,FI24=B^LcKh]&{e%.GϥzRLQ1ѐ}Oxmf5 'xA 톦. i ~i0{}udn@81U> endobj 265 0 obj << /A 340 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 393.135 462.978 508.533 471.978 ] /Subtype /Link /Type /Annot >> endobj 266 0 obj << /A 340 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 508.533 462.978 539.998 471.978 ] /Subtype /Link /Type /Annot >> endobj 267 0 obj << /A 331 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 245.629 324.418 390.818 333.418 ] /Subtype /Link /Type /Annot >> endobj 268 0 obj << /A 331 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 398.359 324.418 539.999 333.418 ] /Subtype /Link /Type /Annot >> endobj 269 0 obj << /A 331 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 110.0 312.418 157.5 321.418 ] /Subtype /Link /Type /Annot >> endobj 270 0 obj << /Filter /FlateDecode /Length 3078 >> stream xr8m* o$l6qbWMmMrIH"5$eYۍ=L @?@q9.,O}'\h}'I^;^4awK$wo|w@M7 |2[:/o#sǥ1m(4M"'a?y8_~:|jzѽ\O[O&As'. <$'Y\i5o^Ἡ{QVdNyieU"*ǵpm WYgf&Eoña(`ltDE%nnf){mYfpzw沈 )V۶y) a? *3cZ>ϬOԻNSWXbr)ZSKCf\N؈~R(bsY>$b>xևȪDބN۞`:la<̍"% \ovBIeÜ)ݔ@B'ܳQ3A$;#BYYul: $C gn[Wd4K@܀n<9v+gY/~@b{ ZNuzs;OHN@(V7{HZdm(fcyu[nAN7]aً! MB<ik6 Ylf,A6{is`IóL({>e^g0L >N8x&;hX&aͶe"xI u1fժia~]+BlPvW3VHHǒE ,H p(^ODYM(K}+^pTeij Qu~YûumM ;άyW[ӗ݌9hdH+x|T%&!Zj:Nxw{;35uV3+&zmV,YX|l&! 8(ڨu8~$;c/Nqwc`]O*TCmfXlY4,kL ۊ[hJiC0 4X-TG0@Uah&e&ǁGfڗr q  tФ@r^ HD"# bB = 4!!h릆zema uZlכ Hb˝1BYX jhU_+]f◤SYՁ08 QHt%>if let"b1lE-u~9]ù cȤ) 㩴$4+iWTyAB'S=ՄJ#p5Y<G E'i4Y̸Vb$!4p2E8:E'r`i%݆d-1O>ga0t0btWλ~<9?rEN 0Ѓ-E\V%D=I!=>]׻.0@ʪ)sVD tCL셪YX:d\3X(qXtʇBa<ʪO hkvL&6dc~֔oB&),͕&Px]^bX\T4&vxTޫ \:ݡņ927?ǽ´1B΢$~}}TuHv|/!Ϲ0gsBwaK^Ʒwk,f X&^ ?d==Ul`Q2N]X@πX<\P޲&kaRn䝉ZDkǖ3RMx:~g5Zx7wFǓ&l 1(Z)3* Xʦ]{ט"(B. m{آ]< #FVՕe3"KP)ą,l}TXlfc@94:8S, R{[`oe^$;ov`O@!*7BJ06s/S ~g=457N0P.=[K%pIzAqyl0Dj"3w0nCG >8 5%CZhReqڴFSX[c1W4 jÕzuG/`QQ`-"k˽HvP 4W}}h_'//r.9)O~ :endstream endobj 271 0 obj [ 265 0 R 266 0 R 267 0 R 268 0 R 269 0 R ] endobj 272 0 obj << /Annots 278 0 R /BleedBox [ 0 0 612 792 ] /Contents 277 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 273 0 obj << /A 339 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 100.0 638.676 207.21 647.676 ] /Subtype /Link /Type /Annot >> endobj 274 0 obj << /A 339 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 207.21 638.676 238.59 647.676 ] /Subtype /Link /Type /Annot >> endobj 275 0 obj << /A 341 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 125.27 603.439 251.64 612.439 ] /Subtype /Link /Type /Annot >> endobj 276 0 obj << /A 341 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 251.64 603.439 283.02 612.439 ] /Subtype /Link /Type /Annot >> endobj 277 0 obj << /Filter /FlateDecode /Length 3293 >> stream xZs _$3N$E}/2/q'i#k^ZiO!i%JL'-?@rEI</fQL0?^os`>/WU@vo0qA^4;;A?lyЀoӆ/xi"Hsɯ_$K|;~3M9e2M?+Ԓo}<'V˖a bLh;o[wٓ$Me]QWhIUx8M'7$_˶-KIM'u#Nxl^B:{|.JA@N}EtN%|}8Ո ) ݇iN6vi5o|mlWZTO=-J9lnu=qhd+=V:EVH4ŋl@vTQu|C>ti2/eDK$;r( DIvaD6y( 狾}WN{Yhs0v=zɁNOB `c/vџ(: 4c}}e9|E;ٌfcbSG4uQy_-(ojET8ߐF~9ʶV!k; ou6 c{r )ؓզ pYOD>Gwpp}YG5i&ɬ?pYk`ps?1wyYKk z VJL bc#:g f \A 3&>8޽'#gA02Šogw#d,K/3f72#cf~7:GX:Ŭp+4y-0eʘǍR;/ݱznkȶG yؙ>!E N`>AX+[0u]l/Q\;ڀ584P閽1gx:4Hx]萖A6#jpAJrQ,'v`aC-1 3[Md],Y`$.  _ 3cOMV hTkr<2p# Cc#YHPE,%Y6nBZmBLc&DFP=5rA^Kg!d.}]N* VӘ:XB#9cga  ksf#zҌH]N^#jvMi5;gĶhhE)Y6յ~>} 8,LJ5ـb @2h.*OAB4l6)F4Mr,i  e8.FuT㱩"פk`2 kj!Rd%<@ [1 tgr6A[!:W\P-%H:=+ƕ0OƑs.A!T8Ğ|r6߲{ D3.gyYCJ1iaO_/(N)EϊVusY@^a4.cyαϽ &@ t520`%m=s,T5^6O @`FnHp_$Q(g}$[y·%QG8BWˬmeAETHPlaf6(w8KysKgl/G` 7'|`XҺpR?M4ق*C榕']~rwMTE,"l 'bY7!Q{,X~6֜B̓ 4(͘Δ}U}V HQNoYmimii[5akIUhX%5NM\P͎e۷^ ȍpzæn6',w\ 4i&%PO~<rߥB +LB>ߝ]L;꒧|X(n,Ї v e "1h'ԟ"}_`D"K"^u0d*2Ml3ld]="v77Pmq8OZ#[X`t aMf(, cW|;py/fe%~E"߳w4=ݣ|5 򥃛p${GP xvHTb%mt$ޚK $c_D`|\<'pT g"rIv&XrMH>m-d~g٪\\(RQ1ɳfߨqjӭXM?mUn1=MW6;U!3 jXk=^vT>g `UPW ,85T;u6 ~؂Х.Ƅp'|QYb4"I1 "~pC>/{5d.:OA|vcG< R(A N 眰 UvEkT?M@4sN(k5ʞLziE?NŐgTUF7#dQ`MDUZ; XgF?N1VB{gưH#=lze0̰r?SUWtrIiD>0p&z$ TK&z2M(Yͳ9/&6n4ZauHf QMVI zc?61ߍg8l+‰mb/ꑎ>7;vi{SM3>xOs-?N{xC+U&?aendstream endobj 278 0 obj [ 273 0 R 274 0 R 275 0 R 276 0 R ] endobj 279 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 280 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 280 0 obj << /Filter /FlateDecode /Length 2492 >> stream xY[w۸~&g#WQ[4'qDjAЊ;Ik]7` p~W#/bTWFCX(88;ޜdݙri=vr"4ӈ{ n= G*-wY6Nlb'عvWґ6A.%'M{fH9؈506Ў ]K?ВOSOAK㒟)N:oœ{ҮbޟH/p`AYϭRD~ɩG%l8`(NLMdyMW$z]&Gޗl*'=b8[TGw>N~ӽڵ%oG1kR~v)2b@>Wk!)Vݍ G@[E:r%Xn:g #&)TR6Bu|8⺲Aqu@D" 8D}C}~wZ`쮜Z# 'Bbg Jo!ͲmR =~B ;v{`πz12Ο~r~)[0zZ t[*5l(BNRA 6Q9b*42=Y#!MzڪA% ª`=U8tV|H;Rv !$ K2w4}^KUTBSdefѯcY/ő$_zƧ \_D|TOSa:*u^ZK;/]WL*>8.)XLm Y?ͦ=) u5T#ZI+( i{/+3}o5vK׸[ؐs-q˃Q¼ZbL8 |* 3Kú\UJfk6_+ ߩ.g$~PkVJB݆ 6Ԑ~ٜGj+*Wxh3yv*P =8) =lbEQ@țx=<0Eu#4mHyT9+;\8y(W*U]<[DY}.Q>,NX]b"5QG|Z,)&iwj>T]vqB+7Lg4k]^۲БjF70x3חZRMMi`,XdKRل89 uU\=m9ӫ ,Rͻ, p`X^{Xu(@VAnB)~,Sd`[(/f~w{u`mHM7OpHU>y0N_ $snUojNoqpػySI{orSc^\`$g6cdendstream endobj 281 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 282 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 282 0 obj << /Filter /FlateDecode /Length 3285 >> stream x˒6>_=٩|?*'^gZ'q<>$9P$$!H<~vR^62 ~ <xQ/ (FI1 @*_o|ӱ׃~5x7w/^'^{;ڸ`IE'^΢Brޏȇ~㕤QIV'~}2\L; - ҃x}?,Jєۆ[\w}9voQeq3x%vs-ܗm-ܞ[[x[I ;>Ю[X:Kbe#]n\C&6IY=īf܍4AF&lܮSP{@VtmgD P\Tnj `2=Lf\D!"<"d1XúTokbPFT}7t`pRnߗ];K^ &iӻ Nf1fJBϴ5;I&3)%ڈɆ|`Gp(Ù'M﹭`,?[ yR$dXr1#?x?A8gA@l[!˝͙SAh1z?u@ LY$ƃ_Oz:8Ia8̕ҧL3ґdzcCVB9 \x/(>Y -xg/}x^&h(4 :@hP|:ud?spkTeL&m-?zKD-Dӷ,+`F Xb")xڿl/`r7g;νoU= 5!w  >*~{W !a1Ny \$ ~"2΅-n&qA gte rtXY&3mH(n9hx,?%SeA,]fN;5|A\ FR, cH)p5a:}V:leUc2 %ИpX7X\`LHOUFJ/-60b2qIɰ aLkǵ`s 73e]q}atӦ={+;ţKĻDmi{Øvi,b+1nRP Aފ`rh)0!jz68W/^S_`[3ƅ>)^VՔ/j]\AފRU@ PF1Уn!pe;Lh;3tSȎ <(r)Л-9g2Ɉ\}tH0OH@$xF GJS BTV=Sa+x!Q"!n{wޛe=`@q& y(?ql>! hŧW7AAV3V];N+d[`-: )]2Z t, N^,p+NTD}'%\w(+lDm)eGf@`@d$XFnfduO0Nl-yEYje3h&ۂ{lBOjѮtezR3I7khi}DW1.#(ۮ淛d!Kx~LGFR9z2@sHy\GTR9D,ݘ~<98]fU?/(2s<+[֬2H?OdDh; +%R7eDT6츴(( Tl'37CŴID~2vPfFITNh|{s }E-} #ir(X@qΛR di*l>$X'MH2ilaЦk`y+*i2!aݑ_-P:@N)"*;1bl n$8=Wu5m4\ڱj{xO*VB4Mkʱu<\xnRe D]Y(h |7aoݸ}c`<#H\O.$Ng*菹9T0μ[ߎFs>'|=|1ijv~e~endstream endobj 283 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 284 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 284 0 obj << /Filter /FlateDecode /Length 3000 >> stream xZYs6~ׯ: Û3~S|dR֩J "18WIk@_n""!MLEI,'Q[ GӡY!vEs.~3rәo.> Vۋf$ ֙6Yn6uFAo?1ݓ^|b5#?uAnxs{i3M?*Ԓ*nbT|<B1-'=3m;*Lۆ7d[##w5d/YEx BI=#f蹿{Od) 0L|zQfs$ѳ 1"C˔RVbLD2b:jVF8YQd+Z򞗭Ķ^jgi$`h|Mɰ&ot *'rԾڲN`vQ-,WTFX8O " % Ű{xk0,(kK.%vg!j*AWCou˼TÎnpQ/Qr3,;'@戒9nw\.Qbk(Hn%k7K AFAmCD*Pmh5{~ 纟|sx"⾥ՌUld#ԢBmС]K4EYYm:wTZmCkk:[Hdƒ4n+7Ju6FGֺaX V` `3p^ `sL~CoHnJΗٯdu/C٬+mogU=(~\Itf_lW0ֲd'C|zsՑ7sZģ8vZ$ ,so+W2}b(ZgnYҼuI \y8C{zrnϦ e*{QlD݌ܸA݌vG&0oL>Zzz$d8Gkh|qq!/>}xoJCoym@bԎTwPXohъH_%0{ |m AUw VC4nf;%{#:ICi(؁5kB 8%L]-2n mz93A}g tϐZ^U!Q(:QwBvJYx{ɖ1ɄE(cB0v8Z* zI~G9*.E45'kύ{˟ eBiG)YCHtE }"[ZC SOYs೧:F7tqAȎs( xcU?~x6햿6 M"g^w4=w꼇xШe6Sl:ЮY=ysfO{B4:xgG eyrp]"8Ţ Bў&9jOYRtJh5P]1mql^ѶFI{L$ -Q <-4CHM=Ì Η,nr`+w }B`hD+֟ݦ,Tջ+r_ݕ*q7,֧7XJ8^ܝm[4HX;pjn Ӹ]o$ɉ\5m!9n4}{c%m=t'6ڮ&$o~v \/*q:``Tom[_ gǨy=™YV~IVsqxS4t^֝[vR.9g~V݈xRYZmEa$xJFl=lBnF*lv2C#f33w WSxGL9;$i;3=ńTGʛlMKŐv R3O8Fgzw C8Of׌j=&Seڗ/;X +l=Ο۔vO*ӄ1K(Zo,, 68kO%qVee6c&7Tm &CRw)&ݙ FHWA4id0MK&i"Ir~C\} 9Ʌ> endobj 286 0 obj << /A 342 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 244.735 673.5 440.833 682.5 ] /Subtype /Link /Type /Annot >> endobj 287 0 obj << /A 342 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 440.833 673.5 476.112 682.5 ] /Subtype /Link /Type /Annot >> endobj 288 0 obj << /Filter /FlateDecode /Length 4158 >> stream x˒>_U34&MޝHh E$5Z@7AyCl F/@EOQAڢ$l<0ΠG1&{ 3vw rOB{+F7<YqkEVaUUYPI\>{z?̧ zNj&Q[w?5қ_JyTB5K&.w<&2e`|sGEISђ! T0'8N޴/Иz@ A"tOeXي3P?58؍<#5e4ϗbtC ܩ,=JHS_x|4\f2x6>AQYYS_!EVx ,%b=0E#0;-ڭ;z{|hȬR4Dͮkwzt?bLtgJI~)IJ4f>\m?8W_iְ$~n &F^B8z OF4=Z |:M;Y|K&0O]u9<K2n8UA1 ~ਉ4㉘E8qryX'9up@zp K:A7t̪0IOR-IT#:UȥTW2V(6--:OB(GoGoՂ iGq[gnnALS靯TGgbߠaYKAY=ѐ ECˀM2fo]dň12m;O3Ҁe2Gl:LE2zrO",@ Z.tU#F>|CR}raPxE,5WU'ŲtEhùv«*L)TbtM&C3U 7~^=@$%=eN*WY7sAlIKVx%y-,A!]l[9ځ=X*߁*g7c=mC7O߆`aD^"ݺx%kIZQʼN (Ķ` FcG~ژWeXYT.+٭<Y#F(,aiM5U jTi{_a=D]4a@m,n0K" rs)Z5 sЂE N*z p|HY`W^(2c%4rYE=]2c @9怹ƀ]3b8;eTˆ[tvw]L!qP_ H۵(L{lkS50XZ T Re m!ͦ 툫Tۢ,ͺmd呞N#}('sϞBb\a FEIžḄ +L7ܣ(ѮJ'8yzfi< {M_OL"@?b:מrIVVeQYf!)18Jy\EW%! )Qc%K=zoĎUG '()`ZvY olv:@IdĜXPUu]davL6/y  >&a^@ꁪ=n:<:u/>l )zʺS=Vu|,!K¸Mͳ>@?e2ڒԽ4{' ih,yu9|r%Ǚ jX|+'BUCްpubԲ#2(eyI+%/+T;|<HvF^]L>5J),YT&~/0vbOk l J^Y^i]oT) Cz0aY" B/ĠyIO,q!97 Ů QzM:EA 2NSf`{4e ՠ045;D- 1; uSb"΄bK9xsiUMN-|+vu/5bMUNioI:gPSVB˴[wWJ^B\Jo@ #/xݯg t|i|SCNE& m ofw.Kbp n^|0D)=4v)Cykp!ɰ~Kf;@zo15ˈi@L3D>\;5"Cǝa'I #\7HcƐFQZ|k0ϥ SK2X̢ g0 skS$We{hL?̠uWiUX;^ ɼ'C"/)rAY4snK.2LJH#^pb0J]vEz`.dWg!bszFc046OW ۊN<}S';~:nTG1WE1]GdU|%+? ixJq]ϻ}%bp &^ԍXzbb.$9lZ&ojCHe$$:WJO,u/E3jd>fjGk<ҁ:;d*H^Vnx^:UiIMqS+E&XCrzʹ@ľ@]Lsi=ckXVG,DEXBˌ.#劖!dQA:%>>)P|e%ȅ vvhll< ʑeS %S C޷\#ѶSo" f.LێC!mŒgIʓey|x{_o{Zֽm;( @^Eg۴ǽ|"BAW5pi|0.u9~`eRJHWTВC6 >G4@w0 @|)]kK|cԘb??|̯-IԵlͤ-ꏟ/LvS5e7@~NY:<#ke4TPwMuۍEB"yV [^1 )@ nm[@O-xUW=hF0+m/;܄yq# 38:Y/~Z0i^ݚR*ۛ4CËM%e)$jL*nc/?YVzX,R?ZYendstream endobj 289 0 obj [ 286 0 R 287 0 R ] endobj 290 0 obj << /Annots 304 0 R /BleedBox [ 0 0 612 792 ] /Contents 303 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 291 0 obj << /A 344 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 376.649 427.056 502.219 436.056 ] /Subtype /Link /Type /Annot >> endobj 292 0 obj << /A 344 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 502.219 427.056 539.994 436.056 ] /Subtype /Link /Type /Annot >> endobj 293 0 obj << /A 332 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 116.94 323.62 269.15 332.62 ] /Subtype /Link /Type /Annot >> endobj 294 0 obj << /A 332 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 269.15 323.62 300.53 332.62 ] /Subtype /Link /Type /Annot >> endobj 295 0 obj << /A 340 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 116.94 289.902 232.21 298.902 ] /Subtype /Link /Type /Annot >> endobj 296 0 obj << /A 340 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 232.21 289.902 263.59 298.902 ] /Subtype /Link /Type /Annot >> endobj 297 0 obj << /A 345 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 455.55 267.834 539.998 276.834 ] /Subtype /Link /Type /Annot >> endobj 298 0 obj << /A 345 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 100.0 255.834 188.88 264.834 ] /Subtype /Link /Type /Annot >> endobj 299 0 obj << /A 345 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 188.88 255.834 225.26 264.834 ] /Subtype /Link /Type /Annot >> endobj 300 0 obj << /A 335 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 492.575 233.766 540.002 242.766 ] /Subtype /Link /Type /Annot >> endobj 301 0 obj << /A 335 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 100.0 221.766 268.61 230.766 ] /Subtype /Link /Type /Annot >> endobj 302 0 obj << /A 335 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 268.61 221.766 304.99 230.766 ] /Subtype /Link /Type /Annot >> endobj 303 0 obj << /Filter /FlateDecode /Length 3630 >> stream x˒ܶ_څk+*)"lKnf;ÈCj>Hp CRҠA'OW,ҜG'ǢG"9bq1Ix v~#J3zڦïCh~E7LzwASFՋ_I,dYeDW]j藺wGzyƩ`O;CY )1\}Rӹ,: @mtO>nt%[ьY J(Bک8/>.1Igŗ[߿J.L$4{Wm7}w껟n|3Y1I'hWo`7E )" `Dlݡ&@b()%SL% ;;p yFU11%9%"N([ۏUX >$8QZ,>06DێځG{p,k 0Wo|mכB/뇇 q; B A3i>¸##ZM`lq^M?[mXLֵ;tSqKT7]]Um2ym۴(@S_R> +)/duR{ژɈrs;m]$!l۹bxjntMmpfp_' 89vtnh َ**pC곆N'@:  JH"b&.M>r;Cr Yw3~+lUVĴUr,@8ˆOLnSX'T:|&oLy U[%ć;~PZdA )EHE-з&/g$IRJBT+j,\)ނ4,0S.'9[վ]ְэ/ٞwS~naD<@[}wXb]?F5i$S,j}W2hkp }s_sًcd& A.sk; - C1䀁! zb! 1#G4lǽBG1YW}VE6gdn.pBXl D/ T5&F 6fpcS>\bvFSuL&F071z>S(;>@Yݸb;b3qmDpЖۛA5X6a$htR )d4 Ur\yam<fo+iOd=OQ޹7Ũ EDk@yEw޼1λ/RE0՜㽎^_!)KCdPȳ)Ņ2C8,n5 0(Fm2U':)L{Q4"2@ƪBɉ 偩ڗ pfFqXWi۶kx%RG#{n6 ]{CsV{_خ)m9 IZcDPr6%G s8D9?1B :ԻϪ.p-" T.|xt9WV'G-'!>7v.a瘐_5%$K]9Cx˘pRxmJH_AH)D=$DaS"j@մe5U:W5UXZ,f>wX{TUYM5MU'Ff4Mm!7 A)Ә2YhVM4;v8>^!o H+t4aK 9`I\T8b%cy%_Sʘi^QwM1|Nvc$"$C+O GA$` DZDoϠ#C,;Pm{/zjj7|R1w!j:BU;Q[pJޢn\U4j$3#y@O0% |ԩ~s.|ApêAmtNWTHQQ-0(QAgXVXS&p.>+"0۫0 Gn?mGGFG&Ŷzg¶D4o&T7Nw{kcvdF ҏS6]C_OaN\7$'qk/fܱW߫I%JM*vr{ ,q6I9O֝?dl{xh!wbeڃ0s?L,>? e!9[ gλC~=H'5n I8( :(;HR1YO,|Ք˯?=H4T6ox-|/a5-/z-TXťq@f@l3FҲ."y{ksO"R;7 Cu,Kk{)}=GJ|`#f z*dгŗH>ߕ@endstream endobj 304 0 obj [ 291 0 R 292 0 R 293 0 R 294 0 R 295 0 R 296 0 R 297 0 R 298 0 R 299 0 R 300 0 R 301 0 R 302 0 R ] endobj 305 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 306 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 306 0 obj << /Filter /FlateDecode /Length 3086 >> stream xْ6}oTF4ޓ1NىLŵ\ HCHa;f+J\pEQ1[4 z q;a'+?a7߮]0xsճw.M'$IĎ(oDß竗gz$}'GJa_Hyw>\ |d,Pzb ǵO+@'mM^4T{1g9rt攕ؒ;D r%Bjy"7˽!CR] #cRW52I!` :HB5xhuRS{kv;eڜTH{]}h :U'Jس_i7se3;BX8V;Ɔeo _1Y'e5yga~W54G";K"bv!ngDB)ƫ4KL[0r!XsuyXAPT4)?Cvg86Bv]S܂FbȀHgABUGvsxxI^0Y;]qNL%J,t&CY GxZ(L, VYkS]EQ MFu& ~S)0Vљ/M&/Q  wǁvf_OC&HrE? j Td~R߁%D$Bt&o5Nse `E'nt?W5nTIXTDu̳diy dD ɉ')N]#Y:nlH(8l;6zj?gL[KÍI[x 'DB3wsRg|Ls>lw>ͤ怮ţٵ$|uo ,۷= $4.x*K}7HoPݩ"$_%y¢$r:_꯿2W #q8TҩmӱN4q"B}3nOx\uWa!rT> endobj 308 0 obj << /Filter /FlateDecode /Length 3173 >> stream xr6]_$Ko[YVT "18h|v 1eFA~E#o'/YT~7c4YdC4"c°^E CpFfab6"ѷW 5J p[Fǫ/﮾xFDw/Z^i˲,ҨV_^}Or|kt7w''M(OmZ1,\FۦfNl˪4hۗLpu3 4m0@\3$K`e½]5r2}T)ee\V27u կ:yUSwהx;+%,β+@} m'wb,$. Cˇ& m/'>y %q3 ނVrT'y fz4IY4 -?w[eV >  '~׌#!INϨ6]fh9/`EmыUqRBźm+)wrEEL , PJ0OJA'\Kje9q tyCS}{[2s)e5 n2Ӽ,,DLsWeM8Jn27*grz# I:)^t,+X<,a7jŨ[xbҙ'Cgi8חM6Q1̫dah3M zi:[*A\`l0%5cPMSXNzn1hCͥO+~RhLh?HۋZtx7H3J)҄И9X@mYS]i7hXc3u Dr^Ej2nd4i%5ݡmc}s+7ͪS:hl`LoəLEpe*P&[{P?u@OH]Am*j:V-W^a'NSjo1;[:ƃŰ`zRq\aaύyԠjTX߷z>tw~~lGXp6X>ԑ+o(@n7u6Ny&RԊ.Łt p& QA`exS7F"8g$< vplKDPWmE'Iݝ'#y4*K$qʁ""E<.'eXaY:ylDIhk8;f 0E*R Ҷ$Nl ћa"zY2mׯg%C\O\| Y_ȏR3tr MﯕSAScظ_) C#fyPw%.sCA|Se>,ObUH81 b+1, 2|rS:Bϓ<ȧM$xc޹Suē}?C+ɡS9fzj@g7} .ӤL1^ " u9/eOZyWB\NUX/\(s ZvBF]:Q4xcTcX!&i=+Mt#k>8e)$D]+r;S,2 Q%E1^vo=2{ptb'Ȃ>4 k1c?҈osҘr*Cbj_MYM'_s8!Zɡ %ۼI "co <} $1 _]~BH./<_0IK,pMr VFV#X@*$Ys% Y\&">B,)/BW[dgCb׍z%K5$qgdt UͰļDY[~AIBE&n W(iE祬 4|noY6xDo$ v*."7YK: NVy\AB&y£>g>HbH .yεĚ0o9?^. ev Fk&3~ƍ83FU<BO~>|%l, B Džk;V+]7"C֩,/?sP Rd>lĪ |p~E!sH[ϖE3uc2UC[?d/˓08S]p 7cJH ʑI<7i'쎆!kM,Fs90!l/+i[(ĸD݂9UmzywkE`+Rc@ $OV_/m;%ח>1"O4GFm.5=gNvHIi:EH/b@E4׷ϲvj' wCp~&TsG!"K$I9gR|-d73G ~ŗ38 _,R_;endstream endobj 309 0 obj << /Annots 314 0 R /BleedBox [ 0 0 612 792 ] /Contents 313 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 310 0 obj << /S /URI /URI (http://zarko-gajic.iz.hr/) >> endobj 311 0 obj << /A 310 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 319.927 312.665 412.137 321.665 ] /Subtype /Link /Type /Annot >> endobj 312 0 obj << /A 310 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 323.57 222.075 415.78 231.075 ] /Subtype /Link /Type /Annot >> endobj 313 0 obj << /Filter /FlateDecode /Length 2982 >> stream xZI6-KU{N=qL/=/8$IrOM"7s+B7 JEL͋Hd}ʊ5 ΀B #_EZth~@~ioBͯ~F7(ttLo[H7|{($;gڴ$-bMądž#IlxyǓ&Q7R<NO-Qݓ5[Qv ` J.8;kkW=ƞ#-2wMxڑ8~@0 } ~hǃ&O  j57#0ZFZPt-}ǃ1taK*m5~k@<#g=aAI'rRբͥV8]'6ku05ІV\TɑB"g!U ,Pޒہd= sdu}>KP7 0m;o^&&eY Bع yժϴ׆'C:R`n jfGB%ܝT[F÷Cpvb؊!*;@6M{NdӋW&R6^~ڡq6nZ$M4bj+ wFYi Gͅ1kBt2!&sōjWkZ&$gF2ܨ!SBP&aĹrr/E n6,K 3yT^ و{{4}Ԫ |n|F&e=UlY*m}z85Xkf\넯׾,HWZ0U93Utd*Ԭ\}+{ۋ'XJlZeFZcYlְYPrrbo`[!\le⼝./"h:s#S`ԅ \ވ!n02eܞu%}0p<3͆N\6"j7?|`"9Ej$gTG!6U 3=,}PFL` GQ^,lUp@2nzWv"IƀV I!<曯>DWy/"Α*kՋCj7Վ8Z|G@xBu!S㣈Zu5P[HXm-`Vt NkբAl+%0dj1w-u\[<."2%ku]2ADSyX :pc%5<+>p x`"-?nK8$m9._b~ߌ_F_I}1[gP%,Γxa-λ<ϯп1VKZ۾v!{><ƭ:…q zl" g! DѪBִ3{y)JGC5`|ʶi:(_E(eNlM̻`> endobj 316 0 obj << /A 343 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 405.397 607.15 539.999 616.15 ] /Subtype /Link /Type /Annot >> endobj 317 0 obj << /A 343 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 100.0 595.27 122.78 604.15 ] /Subtype /Link /Type /Annot >> endobj 318 0 obj << /A 343 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 122.78 595.15 159.16 604.15 ] /Subtype /Link /Type /Annot >> endobj 319 0 obj << /Filter /FlateDecode /Length 1990 >> stream xY[s6~_:36m\ܦfڙ@DHS8c;{$se ~t|dJCsQ'(0@ W(=ǿZ䏃#uSo|?AZ3d!ayBW|z]рWՖ o:\pZt֒&ѿ;#hG K j@K#莖5YW+s.?'-zU;{;g%m|`;ձAԒ |hBe(FdyAǭ޸i׷ q8&kG8u!05"wy6E!4Sq`wuɆ|HoJ?bo4y̮\ȈT!a`[kA˒K#e UbA䁰JK2%MSLۖ\hM®\d7sݕ2W-u :j0rg^]G^4dAH)$gAz fw=OVёhGiѺ|< "+Q@w….#ynBV}_ߛq+8 0vf-΀8PZr; PYsJKZj-wC4C`616L{4@5,rm2w R'Px H1:jA/8#WLa^~&]|r,_wwNG&- '̣ZJ+L2grBOZ YG,4j=&]GΨGAv2x YAAs^Aԅ=Zʼά#`fPo%dTLxj"F$=45匐4@hAI Du"uG9uY^,'`^90 z\1 TR\VOCO:$]UiV,WL`u'xC+_F@P=0޷`焕F 聈3w m:@csT8xׇ${Sg`?Y .< %Dt'z"N( VC ŕp hTVhME7a07epƒ}h']`*5J<:@)2VM计9S6?STÛW lwWXHC]<4Tz+z AtT?}&l4duH Ӛj5fӥe3ˏz7 fU{4O'Pyrrp?qA)z.+S*tB%? -e2(2' W58HZ'o5*4.:D+~BNNZkp{yUu--H0O2&̼srsr@aVYw2b}աaݓzFvkmS m@eβoxc1g 7,Uߖ8ǂ4α`pc}hFn\ wBԃ@HXKɫj/A8f4^k?jB0wawk+:&Wj\0y zn %Bfpw* KtVBwQq#ջe|<^O/ 7Ry No& o/)1_;$^v"= W}ʔʟltendstream endobj 320 0 obj [ 316 0 R 317 0 R 318 0 R ] endobj 321 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 322 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 322 0 obj << /Filter /FlateDecode /Length 2671 >> stream xk6 ~kf{ip$-r@8"$ÇHڦ͗kA<3"̐ݪdhli %) 3d3?@P?[Fztא lǛPkst1?|8d K(IKj_3c.5Ǜo^ `eYM/bV䄐,C;7}/~q{DAM~?/G1L LeN[ܾB/QJq^T(:1TÇ}+p`|X=ɦvXMk%L~XV<6U6S#?$MbRk6ș6i ,R+yG-wUjQ 8m?I c#;ol҄46v86YQTu{P/ΚdsL{i#"e?v-$^1eW.=2N]!0I۬j8bOgf8?K՘wYaV灏AH9gNyUtB5HEg' Z_-=Ml-tfJ#ٴC, ?XF5\*Oݻn=uV2gz, S9$[4ד98UD0Tv ~6-mx]MؓQGG ]jwCC*5v.܅WA>9zx3ei1IYXyL3\1ˠSC<ds1xm=v}0S,=q-m`: X3}8`gΗp0OmJH[Z(NGj?LWLcW.'uuG}6 ;'qhF}j%57xWW7psa`uY;陝 p Z48U%*XK #җS7j沈"3pt5EV~¦-'4W^ӄfgrM)ѷЮ5b͠~dJON lrSq8^2l<\?AucČK`}p9̛נ*;|Z\{L睈3`sjNIB4Ӆ-q}D_˅C D\t2+sh8&=3L)HቝTfx `-=1%.x:'/I6 Z4@Ap\$qGDg0S$>nwm XWf~c Vt=T}KfFeESjHc/ jZl7M9Hy|ԀH< m2Y7iN^Fo~oΡ.`(;=\ewDS¡ëo nn |>4"3:2Fe/,SR݋̞-ME~&J4s1ʋERsKfJ},F|9e >*faN!sQ4nA5+ II)=+XlӈAz}qy 4^ҥɉR~gCendstream endobj 323 0 obj << /BleedBox [ 0 0 612 792 ] /Contents 324 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 324 0 obj << /Filter /FlateDecode /Length 1600 >> stream xXK6W Q-m6n99m1+ZZ;|dooMA<߈΋#="K1*ՃE(QMuowG2+ڧCY%jiխBVߠJ?> (|(ᬓ)*1!3D/o<@۽/qyam>߼{U H0/h'۠(YA ?ʵeYnDMh 1WV{W{ (luy8%k{,=)q9;OZۚpO082Pύi8s#y*I/W9ؑa˨f*R6 ,&["XQ"t4 !|)ݛRhȫW .G n`&N@ ȴdRKXXz`i<7|A)ZwqH+¯@̊\@\7Y &rPJa*3Z<=TFEAnu)Z ϞIPs +Ka0ao,r_ ";)`ED9+5)'dukAPx_ ZDIEsRE ;nh\Oڈtq&F~:in"SheBO;+6Rqe҆nt~ n&8?'Lo,fSYe<}wcޝBꟴ%a7J=[B糲t^jf-hiqZucMKoq;O*v@L'g=xwe|S}s$/l{=VMx` ~+D懱';X*$Q 40l"9*k $WY/E_G(o|'eZi%r{ܩ hjDž18쐽~|тYR& 2'u4 7yzA3 \3ĩ7{m{:=sHg0kXz[P{sH84'3/VA+7yVKaT,[; d82t-4oo?uw\9@CB-f}?cbjCYQ:\Yσ٥_V)1endstream endobj 325 0 obj << /Annots 330 0 R /BleedBox [ 0 0 612 792 ] /Contents 329 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 347 0 R /Resources 358 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> endobj 326 0 obj << /A 346 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 455.792 645.641 540.001 654.641 ] /Subtype /Link /Type /Annot >> endobj 327 0 obj << /A 346 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 633.761 94.78 642.641 ] /Subtype /Link /Type /Annot >> endobj 328 0 obj << /A 346 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 94.78 633.641 131.16 642.641 ] /Subtype /Link /Type /Annot >> endobj 329 0 obj << /Filter /FlateDecode /Length 707 >> stream xUKs0+dQN:NӸC&Ƞ)MMKy_vzt\s,a`u;̅Cn',0bfi~hxOBdp(Wޠxrƹ$BUn8;e.&6d[kf!i ~=.y؂R9$Xǰ~a.aQH)].aND~Ғ'RPzzo].#FFm&s_NԲP1$:~# u.;^ɇQWHZg\B/p zc8P(X 橨 !bnI'ZF2fWY xY4^ǐa]QT(Q|eλL !05ˇbfɕ:n-vJlB|E};zp/)GeQ,.\S۶ߋt8 RbX6h;L"(Ӂ/Hqx.5%kE]f⏢Y #LxnO ~Lܠ8 &s ^0RW`.TSinS7e`MJe\Ɠ;+67hG{.6k3i9~0*~ߘ +)endstream endobj 330 0 obj [ 326 0 R 327 0 R 328 0 R ] endobj 331 0 obj << /S /URI /URI (http://www.apache.org/licenses/LICENSE-2.0) >> endobj 332 0 obj << /D [ 186 0 R /XYZ 72.0 580.972 null ] /S /GoTo /Type /Action >> endobj 333 0 obj << /D [ 182 0 R /XYZ 72.0 430.97 null ] /S /GoTo /Type /Action >> endobj 334 0 obj << /D [ 209 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 335 0 obj << /D [ 228 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 336 0 obj << /D [ 238 0 R /XYZ 72.0 340.617 null ] /S /GoTo /Type /Action >> endobj 337 0 obj << /D [ 238 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 338 0 obj << /D [ 252 0 R /XYZ 72.0 197.346 null ] /S /GoTo /Type /Action >> endobj 339 0 obj << /D [ 168 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 340 0 obj << /D [ 168 0 R /XYZ 72.0 383.306 null ] /S /GoTo /Type /Action >> endobj 341 0 obj << /D [ 168 0 R /XYZ 72.0 669.272 null ] /S /GoTo /Type /Action >> endobj 342 0 obj << /D [ 190 0 R /XYZ 72.0 660.0 null ] /S /GoTo /Type /Action >> endobj 343 0 obj << /D [ 321 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 344 0 obj << /D [ 323 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 345 0 obj << /D [ 223 0 R /XYZ 72.0 360.619 null ] /S /GoTo /Type /Action >> endobj 346 0 obj << /D [ 256 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> endobj 347 0 obj << /Count 49 /Kids [ 354 0 R 1 0 R 3 0 R 123 0 R 139 0 R 141 0 R 166 0 R 168 0 R 173 0 R 182 0 R 184 0 R 186 0 R 188 0 R 190 0 R 195 0 R 200 0 R 202 0 R 207 0 R 209 0 R 211 0 R 213 0 R 215 0 R 217 0 R 219 0 R 221 0 R 223 0 R 228 0 R 236 0 R 238 0 R 243 0 R 245 0 R 247 0 R 252 0 R 254 0 R 256 0 R 264 0 R 272 0 R 279 0 R 281 0 R 283 0 R 285 0 R 290 0 R 305 0 R 307 0 R 309 0 R 315 0 R 321 0 R 323 0 R 325 0 R ] /Type /Pages >> endobj 348 0 obj << /CreationDate (D:20180306114707-05'00') /Creator (Apache FOP Version 2.1) /Producer (Apache FOP Version 2.1) >> endobj 349 0 obj << /Subtype /XML /Type /Metadata /Length 858 >> stream application/pdf en 2018-03-06T11:47:07-05:00 Apache FOP Version 2.1 1.4 Apache FOP Version 2.1 2018-03-06T11:47:07-05:00 2018-03-06T11:47:07-05:00 endstream endobj 350 0 obj << /Nums [ 0 << /S /r >> 2 << /S /r /St 3 >> 3 << /S /r /St 4 >> 4 << /S /D >> 7 << /S /D /St 4 >> 9 << /S /D /St 6 >> 12 << /S /D /St 9 >> 13 << /S /D /St 10 >> 15 << /S /D /St 12 >> 16 << /S /D /St 13 >> 17 << /S /D /St 14 >> 19 << /S /D /St 16 >> 26 << /S /D /St 23 >> 27 << /S /D /St 24 >> 29 << /S /D /St 26 >> 31 << /S /D /St 28 >> 32 << /S /D /St 29 >> 33 << /S /D /St 30 >> 41 << /S /D /St 38 >> 42 << /S /D /St 39 >> 45 << /S /D /St 42 >> 46 << /S /D /St 43 >> 47 << /S /D /St 44 >> 48 << /S /D /St 45 >> ] >> endobj xref 0 351 0000000000 65535 f 0000005544 00000 n 0000005730 00000 n 0000006129 00000 n 0000006333 00000 n 0000006413 00000 n 0000006547 00000 n 0000006684 00000 n 0000006764 00000 n 0000006898 00000 n 0000007035 00000 n 0000007116 00000 n 0000007252 00000 n 0000007391 00000 n 0000007474 00000 n 0000007609 00000 n 0000007748 00000 n 0000007831 00000 n 0000007967 00000 n 0000008106 00000 n 0000008243 00000 n 0000008383 00000 n 0000008520 00000 n 0000008660 00000 n 0000008797 00000 n 0000008937 00000 n 0000009074 00000 n 0000009214 00000 n 0000009351 00000 n 0000009491 00000 n 0000009574 00000 n 0000009710 00000 n 0000009849 00000 n 0000009986 00000 n 0000010126 00000 n 0000010207 00000 n 0000010343 00000 n 0000010482 00000 n 0000010619 00000 n 0000010759 00000 n 0000010840 00000 n 0000010976 00000 n 0000011115 00000 n 0000011196 00000 n 0000011332 00000 n 0000011471 00000 n 0000011554 00000 n 0000011690 00000 n 0000011829 00000 n 0000011912 00000 n 0000012048 00000 n 0000012187 00000 n 0000012270 00000 n 0000012406 00000 n 0000012545 00000 n 0000012628 00000 n 0000012764 00000 n 0000012903 00000 n 0000012986 00000 n 0000013122 00000 n 0000013261 00000 n 0000013397 00000 n 0000013537 00000 n 0000013620 00000 n 0000013756 00000 n 0000013895 00000 n 0000014032 00000 n 0000014172 00000 n 0000014255 00000 n 0000014390 00000 n 0000014529 00000 n 0000014610 00000 n 0000014746 00000 n 0000014885 00000 n 0000015022 00000 n 0000015162 00000 n 0000015245 00000 n 0000015381 00000 n 0000015520 00000 n 0000015603 00000 n 0000015739 00000 n 0000015878 00000 n 0000016015 00000 n 0000016155 00000 n 0000016236 00000 n 0000016372 00000 n 0000016511 00000 n 0000016594 00000 n 0000016729 00000 n 0000016868 00000 n 0000016951 00000 n 0000017087 00000 n 0000017226 00000 n 0000017307 00000 n 0000017443 00000 n 0000017582 00000 n 0000017663 00000 n 0000017798 00000 n 0000017937 00000 n 0000018020 00000 n 0000018156 00000 n 0000018296 00000 n 0000018380 00000 n 0000018518 00000 n 0000018659 00000 n 0000018743 00000 n 0000018882 00000 n 0000019023 00000 n 0000019161 00000 n 0000019302 00000 n 0000019384 00000 n 0000019522 00000 n 0000019663 00000 n 0000019801 00000 n 0000019942 00000 n 0000020080 00000 n 0000020221 00000 n 0000020359 00000 n 0000020500 00000 n 0000020582 00000 n 0000020720 00000 n 0000020861 00000 n 0000035261 00000 n 0000035911 00000 n 0000036117 00000 n 0000036184 00000 n 0000036322 00000 n 0000036389 00000 n 0000036528 00000 n 0000036669 00000 n 0000036810 00000 n 0000036893 00000 n 0000037034 00000 n 0000037175 00000 n 0000037312 00000 n 0000037379 00000 n 0000037517 00000 n 0000037658 00000 n 0000039676 00000 n 0000039769 00000 n 0000039959 00000 n 0000041607 00000 n 0000041813 00000 n 0000041872 00000 n 0000042011 00000 n 0000042075 00000 n 0000042213 00000 n 0000042278 00000 n 0000042417 00000 n 0000042488 00000 n 0000042626 00000 n 0000042685 00000 n 0000042824 00000 n 0000042901 00000 n 0000043040 00000 n 0000043116 00000 n 0000043255 00000 n 0000043320 00000 n 0000043459 00000 n 0000043539 00000 n 0000043677 00000 n 0000043814 00000 n 0000043879 00000 n 0000044017 00000 n 0000044154 00000 n 0000047184 00000 n 0000047301 00000 n 0000047491 00000 n 0000049006 00000 n 0000049212 00000 n 0000049353 00000 n 0000049494 00000 n 0000052383 00000 n 0000052420 00000 n 0000052626 00000 n 0000052763 00000 n 0000052900 00000 n 0000053037 00000 n 0000053173 00000 n 0000053310 00000 n 0000053447 00000 n 0000056571 00000 n 0000056640 00000 n 0000056830 00000 n 0000059928 00000 n 0000060118 00000 n 0000062050 00000 n 0000062240 00000 n 0000065437 00000 n 0000065627 00000 n 0000068927 00000 n 0000069133 00000 n 0000069271 00000 n 0000069409 00000 n 0000072382 00000 n 0000072419 00000 n 0000072625 00000 n 0000072763 00000 n 0000072901 00000 n 0000076147 00000 n 0000076184 00000 n 0000076374 00000 n 0000080789 00000 n 0000080995 00000 n 0000081130 00000 n 0000081265 00000 n 0000083837 00000 n 0000083874 00000 n 0000084064 00000 n 0000086742 00000 n 0000086932 00000 n 0000090356 00000 n 0000090546 00000 n 0000091048 00000 n 0000091238 00000 n 0000092714 00000 n 0000092904 00000 n 0000096765 00000 n 0000096955 00000 n 0000101560 00000 n 0000101750 00000 n 0000105775 00000 n 0000105965 00000 n 0000111114 00000 n 0000111320 00000 n 0000111459 00000 n 0000111598 00000 n 0000115712 00000 n 0000115749 00000 n 0000115955 00000 n 0000116096 00000 n 0000116232 00000 n 0000116371 00000 n 0000116510 00000 n 0000116649 00000 n 0000119858 00000 n 0000119919 00000 n 0000120109 00000 n 0000122922 00000 n 0000123128 00000 n 0000123269 00000 n 0000123410 00000 n 0000126493 00000 n 0000126530 00000 n 0000126720 00000 n 0000130177 00000 n 0000130367 00000 n 0000131406 00000 n 0000131612 00000 n 0000131752 00000 n 0000131892 00000 n 0000134119 00000 n 0000134156 00000 n 0000134346 00000 n 0000137541 00000 n 0000137731 00000 n 0000139217 00000 n 0000139423 00000 n 0000139483 00000 n 0000139624 00000 n 0000139765 00000 n 0000139903 00000 n 0000140042 00000 n 0000142897 00000 n 0000142950 00000 n 0000143156 00000 n 0000143297 00000 n 0000143438 00000 n 0000143579 00000 n 0000143720 00000 n 0000143857 00000 n 0000147009 00000 n 0000147070 00000 n 0000147276 00000 n 0000147414 00000 n 0000147553 00000 n 0000147692 00000 n 0000147831 00000 n 0000151198 00000 n 0000151251 00000 n 0000151441 00000 n 0000154007 00000 n 0000154197 00000 n 0000157556 00000 n 0000157746 00000 n 0000160820 00000 n 0000161026 00000 n 0000161163 00000 n 0000161300 00000 n 0000165532 00000 n 0000165569 00000 n 0000165775 00000 n 0000165916 00000 n 0000166057 00000 n 0000166194 00000 n 0000166331 00000 n 0000166470 00000 n 0000166609 00000 n 0000166749 00000 n 0000166887 00000 n 0000167026 00000 n 0000167167 00000 n 0000167305 00000 n 0000167444 00000 n 0000171148 00000 n 0000171265 00000 n 0000171455 00000 n 0000174615 00000 n 0000174805 00000 n 0000178052 00000 n 0000178258 00000 n 0000178322 00000 n 0000178463 00000 n 0000178602 00000 n 0000181658 00000 n 0000181695 00000 n 0000181901 00000 n 0000182040 00000 n 0000182176 00000 n 0000182313 00000 n 0000184377 00000 n 0000184422 00000 n 0000184612 00000 n 0000187357 00000 n 0000187547 00000 n 0000189221 00000 n 0000189427 00000 n 0000189568 00000 n 0000189704 00000 n 0000189842 00000 n 0000190622 00000 n 0000190667 00000 n 0000190748 00000 n 0000190832 00000 n 0000190915 00000 n 0000190997 00000 n 0000191079 00000 n 0000191163 00000 n 0000191245 00000 n 0000191329 00000 n 0000191411 00000 n 0000191495 00000 n 0000191579 00000 n 0000191661 00000 n 0000191743 00000 n 0000191825 00000 n 0000191909 00000 n 0000191991 00000 n 0000192435 00000 n 0000192567 00000 n 0000193507 00000 n trailer << /Size 351 /ID [] >> startxref 216 %%EOF qpdf-8.0.2/doc/qpdf-manual.html0000644000064100006410000065265413247542771014427 0ustar ejbejb QPDF Manual

QPDF Manual

For QPDF Version 8.0.2, March 6, 2018

Jay Berkenbilt


General Information

QPDF is a program that does structural, content-preserving transformations on PDF files. QPDF's website is located at http://qpdf.sourceforge.net/. QPDF's source code is hosted on github at https://github.com/qpdf/qpdf.

QPDF is licensed under the Apache License, Version 2.0 (the "License"). Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Versions of qpdf prior to version 7 were released under the terms of the Artistic License, version 2.0. At your option, you may continue to consider qpdf to be licensed under those terms. The Apache License 2.0 permits everything that the Artistic License 2.0 permits but is slightly less restrictive. Allowing the Artistic License to continue being used is primary to help people who may have to get specific approval to use qpdf in their products.

QPDF is intentionally released with a permissive license. However, if there is some reason that the licensing terms don't work for your requirements, please feel free to contact the copyright holder to make other arrangements.

QPDF was originally created in 2001 and modified periodically between 2001 and 2005 during my employment at Apex CoVantage. Upon my departure from Apex, the company graciously allowed me to take ownership of the software and continue maintaining as an open source project, a decision for which I am very grateful. I have made considerable enhancements to it since that time. I feel fortunate to have worked for people who would make such a decision. This work would not have been possible without their support.

Chapter 1. What is QPDF?

QPDF is a program that does structural, content-preserving transformations on PDF files. It could have been called something like pdf-to-pdf. It also provides many useful capabilities to developers of PDF-producing software or for people who just want to look at the innards of a PDF file to learn more about how they work.

With QPDF, it is possible to copy objects from one PDF file into another and to manipulate the list of pages in a PDF file. This makes it possible to merge and split PDF files. The QPDF library also makes it possible for you to create PDF files from scratch. In this mode, you are responsible for supplying all the contents of the file, while the QPDF library takes care off all the syntactical representation of the objects, creation of cross references tables and, if you use them, object streams, encryption, linearization, and other syntactic details. You are still responsible for generating PDF content on your own.

QPDF has been designed with very few external dependencies, and it is intentionally very lightweight. QPDF is not a PDF content creation library, a PDF viewer, or a program capable of converting PDF into other formats. In particular, QPDF knows nothing about the semantics of PDF content streams. If you are looking for something that can do that, you should look elsewhere. However, once you have a valid PDF file, QPDF can be used to transform that file in ways perhaps your original PDF creation can't handle. For example, many programs generate simple PDF files but can't password-protect them, web-optimize them, or perform other transformations of that type.

Chapter 2. Building and Installing QPDF

This chapter describes how to build and install qpdf. Please see also the README.md and INSTALL files in the source distribution.

2.1. System Requirements

The qpdf package has few external dependencies. In order to build qpdf, the following packages are required:

Part of qpdf's test suite does comparisons of the contents PDF files by converting them images and comparing the images. The image comparison tests are disabled by default. Those tests are not required for determining correctness of a qpdf build if you have not modified the code since the test suite also contains expected output files that are compared literally. The image comparison tests provide an extra check to make sure that any content transformations don't break the rendering of pages. Transformations that affect the content streams themselves are off by default and are only provided to help developers look into the contents of PDF files. If you are making deep changes to the library that cause changes in the contents of the files that qpdf generates, then you should enable the image comparison tests. Enable them by running configure with the --enable-test-compare-images flag. If you enable this, the following additional requirements are required by the test suite. Note that in no case are these items required to use qpdf.

If you do not enable this, then you do not need to have tiff and ghostscript.

If Adobe Reader is installed as acroread, some additional test cases will be enabled. These test cases simply verify that Adobe Reader can open the files that qpdf creates. They require version 8.0 or newer to pass. However, in order to avoid having qpdf depend on non-free (as in liberty) software, the test suite will still pass without Adobe reader, and the test suite still exercises the full functionality of the software.

Pre-built documentation is distributed with qpdf, so you should generally not need to rebuild the documentation. In order to build the documentation from its docbook sources, you need the docbook XML style sheets (http://downloads.sourceforge.net/docbook/). To build the PDF version of the documentation, you need Apache fop (http://xml.apache.org/fop/) version 0.94 or higher.

2.2. Build Instructions

Building qpdf on UNIX is generally just a matter of running

./configure
make

You can also run make check to run the test suite and make install to install. Please run ./configure --help for options on what can be configured. You can also set the value of DESTDIR during installation to install to a temporary location, as is common with many open source packages. Please see also the README.md and INSTALL files in the source distribution.

Building on Windows is a little bit more complicated. For details, please see README-windows.md in the source distribution. You can also download a binary distribution for Windows. There is a port of qpdf to Visual C++ version 6 in the contrib area generously contributed by Jian Ma. This is also discussed in more detail in README-windows.md.

There are some other things you can do with the build. Although qpdf uses autoconf, it does not use automake but instead uses a hand-crafted non-recursive Makefile that requires gnu make. If you're really interested, please read the comments in the top-level Makefile.

Chapter 3. Running QPDF

This chapter describes how to run the qpdf program from the command line.

3.1. Basic Invocation

When running qpdf, the basic invocation is as follows:

qpdf [ options ] infilename [ outfilename ]

This converts PDF file infilename to PDF file outfilename. The output file is functionally identical to the input file but may have been structurally reorganized. Also, orphaned objects will be removed from the file. Many transformations are available as controlled by the options below. In place of infilename, the parameter --empty may be specified. This causes qpdf to use a dummy input file that contains zero pages. The only normal use case for using --empty would be if you were going to add pages from another source, as discussed in Section 3.4, “Page Selection Options”.

If @filename appears anywhere in the command-line, it will be read line by line, and each line will be treated as a command-line argument. The @- option allows arguments to be read from standard input. This allows qpdf to be invoked with an arbitrary number of arbitrarily long arguments. It is also very useful for avoiding having to pass passwords on the command line.

outfilename does not have to be seekable, even when generating linearized files. Specifying “-” as outfilename means to write to standard output. However, you can't specify the same file as both the input and the output because qpdf reads data from the input file as it writes to the output file. QPDF attempts to detect this case and fail without overwriting the output file.

Most options require an output file, but some testing or inspection commands do not. These are specifically noted.

3.2. Basic Options

The following options are the most common ones and perform commonly needed transformations.

--password=password

Specifies a password for accessing encrypted files.

--verbose

Increase verbosity of output. For now, this just prints some indication of any file that it creates.

--linearize

Causes generation of a linearized (web-optimized) output file.

--copy-encryption=file

Encrypt the file using the same encryption parameters, including user and owner password, as the specified file. Use --encrypt-file-password to specify a password if one is needed to open this file. Note that copying the encryption parameters from a file also copies the first half of /ID from the file since this is part of the encryption parameters.

--encrypt-file-password=password

If the file specified with --copy-encryption requires a password, specify the password using this option. Note that only one of the user or owner password is required. Both passwords will be preserved since QPDF does not distinguish between the two passwords. It is possible to preserve encryption parameters, including the owner password, from a file even if you don't know the file's owner password.

--encrypt options --

Causes generation an encrypted output file. Please see Section 3.3, “Encryption Options” for details on how to specify encryption parameters.

--decrypt

Removes any encryption on the file. A password must be supplied if the file is password protected.

--password-is-hex-key

Overrides the usual computation/retrieval of the PDF file's encryption key from user/owner password with an explicit specification of the encryption key. When this option is specified, the argument to the --password option is interpreted as a hexadecimal-encoded key value. This only applies to the password used to open the main input file. It does not apply to other files opened by --pages or other options or to files being written.

Most users will never have a need for this option, and no standard viewers support this mode of operation, but it can be useful for forensic or investigatory purposes. For example, if a PDF file is encrypted with an unknown password, a brute-force attack using the key directly is sometimes more efficient than one using the password. Also, if a file is heavily damaged, it may be possible to derive the encryption key and recover parts of the file using it directly. To expose the encryption key used by an encrypted file that you can open normally, use the --show-encryption-key option.

--rotate=[+|-]angle:page-range

Apply rotation to specified pages. The page-range portion of the option value has the same format as page ranges in Section 3.4, “Page Selection Options”. The angle portion of the parameter may be either 90, 180, or 270. If preceded by + or -, the angle is added to or subtracted from the specified pages' original rotations. Otherwise the pages' rotations are set to the exact value. For example, the command qpdf in.pdf out.pdf --rotate=+90:2,4,6 --rotate=180:7-8 would rotate pages 2, 4, and 6 90 degrees clockwise from their original rotation and force the rotation of pages 7 through 9 to 180 degrees regardless of their original rotation.

--pages options --

Select specific pages from one or more input files. See Section 3.4, “Page Selection Options” for details on how to do page selection (splitting and merging).

--split-pages=[n]

Write each group of n pages to a separate output file. If n is not specified, create single pages. Output file names are generated as follows:

  • If the string %d appears in the output file name, it is replaced with a range of zero-padded page numbers starting from 1.

  • Otherwise, if the output file name ends in .pdf (case insensitive), a zero-padded page range, preceded by a dash, is inserted before the file extension.

  • Otherwise, the file name is appended with a zero-padded page range preceded by a dash.

Page ranges are a single number in the case of single-page groups or two numbers separated by a dash otherwise. For example, if infile.pdf has 12 pages

  • qpdf --split-pages infile.pdf %d-out would generate files 01-out through 12-out

  • qpdf --split-pages=2 infile.pdf outfile.pdf would generate files outfile-01-02.pdf through outfile-11-12.pdf

  • qpdf --split-pages infile.pdf something.else would generate files something.else-01 through something.else-12

Note that outlines, threads, and other global features of the original PDF file are not preserved. For each page of output, this option creates an empty PDF and copies a single page from the output into it. If you require the global data, you will have to run qpdf with the --pages option once for each file. Using --split-pages is much faster if you don't require the global data.

Password-protected files may be opened by specifying a password. By default, qpdf will preserve any encryption data associated with a file. If --decrypt is specified, qpdf will attempt to remove any encryption information. If --encrypt is specified, qpdf will replace the document's encryption parameters with whatever is specified.

Note that qpdf does not obey encryption restrictions already imposed on the file. Doing so would be meaningless since qpdf can be used to remove encryption from the file entirely. This functionality is not intended to be used for bypassing copyright restrictions or other restrictions placed on files by their producers.

In all cases where qpdf allows specification of a password, care must be taken if the password contains characters that fall outside of the 7-bit US-ASCII character range to ensure that the exact correct byte sequence is provided. It is possible that a future version of qpdf may handle this more gracefully. For example, if a password was encrypted using a password that was encoded in ISO-8859-1 and your terminal is configured to use UTF-8, the password you supply may not work properly. There are various approaches to handling this. For example, if you are using Linux and have the iconv executable installed, you could pass --password=`echo password | iconv -t iso-8859-1` to qpdf where password is a password specified in your terminal's locale. A detailed discussion of this is out of scope for this manual, but just be aware of this issue if you have trouble with a password that contains 8-bit characters.

3.3. Encryption Options

To change the encryption parameters of a file, use the --encrypt flag. The syntax is

--encrypt user-password owner-password key-length [ restrictions ] --

Note that “--” terminates parsing of encryption flags and must be present even if no restrictions are present.

Either or both of the user password and the owner password may be empty strings.

The value for key-length may be 40, 128, or 256. The restriction flags are dependent upon key length. When no additional restrictions are given, the default is to be fully permissive.

If key-length is 40, the following restriction options are available:

--print=[yn]

Determines whether or not to allow printing.

--modify=[yn]

Determines whether or not to allow document modification.

--extract=[yn]

Determines whether or not to allow text/image extraction.

--annotate=[yn]

Determines whether or not to allow comments and form fill-in and signing.

If key-length is 128, the following restriction options are available:

--accessibility=[yn]

Determines whether or not to allow accessibility to visually impaired.

--extract=[yn]

Determines whether or not to allow text/graphic extraction.

--print=print-opt

Controls printing access. print-opt may be one of the following:

  • full: allow full printing

  • low: allow low-resolution printing only

  • none: disallow printing

--modify=modify-opt

Controls modify access. modify-opt may be one of the following, each of which implies all the options that follow it:

  • all: allow full document modification

  • annotate: allow comment authoring and form operations

  • form: allow form field fill-in and signing

  • assembly: allow document assembly only

  • none: allow no modifications

--cleartext-metadata

If specified, any metadata stream in the document will be left unencrypted even if the rest of the document is encrypted. This also forces the PDF version to be at least 1.5.

--use-aes=[yn]

If --use-aes=y is specified, AES encryption will be used instead of RC4 encryption. This forces the PDF version to be at least 1.6.

--force-V4

Use of this option forces the /V and /R parameters in the document's encryption dictionary to be set to the value 4. As qpdf will automatically do this when required, there is no reason to ever use this option. It exists primarily for use in testing qpdf itself. This option also forces the PDF version to be at least 1.5.

If key-length is 256, the minimum PDF version is 1.7 with extension level 8, and the AES-based encryption format used is the PDF 2.0 encryption method supported by Acrobat X. the same options are available as with 128 bits with the following exceptions:

--use-aes

This option is not available with 256-bit keys. AES is always used with 256-bit encryption keys.

--force-V4

This option is not available with 256 keys.

--force-R5

If specified, qpdf sets the minimum version to 1.7 at extension level 3 and writes the deprecated encryption format used by Acrobat version IX. This option should not be used in practice to generate PDF files that will be in general use, but it can be useful to generate files if you are trying to test proper support in another application for PDF files encrypted in this way.

The default for each permission option is to be fully permissive.

3.4. Page Selection Options

Starting with qpdf 3.0, it is possible to split and merge PDF files by selecting pages from one or more input files. Whatever file is given as the primary input file is used as the starting point, but its pages are replaced with pages as specified.

--pages input-file [ --password=password ] [ page-range ] [ ... ] --

Multiple input files may be specified. Each one is given as the name of the input file, an optional password (if required to open the file), and the range of pages. Note that “--” terminates parsing of page selection flags.

For each file that pages should be taken from, specify the file, a password needed to open the file (if any), and a page range. The password needs to be given only once per file. If any of the input files are the same as the primary input file or the file used to copy encryption parameters (if specified), you do not need to repeat the password here. The same file can be repeated multiple times. If a file that is repeated has a password, the password only has to be given the first time. All non-page data (info, outlines, page numbers, etc.) are taken from the primary input file. To discard these, use --empty as the primary input.

Starting with qpdf 5.0.0, it is possible to omit the page range. If qpdf sees a value in the place where it expects a page range and that value is not a valid range but is a valid file name, qpdf will implicitly use the range 1-z, meaning that it will include all pages in the file. This makes it possible to easily combine all pages in a set of files with a command like qpdf --empty out.pdf --pages *.pdf --.

It is not presently possible to specify the same page from the same file directly more than once, but you can make this work by specifying two different paths to the same file (such as by putting ./ somewhere in the path). This can also be used if you want to repeat a page from one of the input files in the output file. This may be made more convenient in a future version of qpdf if there is enough demand for this feature.

The page range is a set of numbers separated by commas, ranges of numbers separated dashes, or combinations of those. The character “z” represents the last page. A number preceded by an “r” indicates to count from the end, so r3-r1 would be the last three pages of the document. Pages can appear in any order. Ranges can appear with a high number followed by a low number, which causes the pages to appear in reverse. Repeating a number will cause an error, but you can use the workaround discussed above should you really want to include the same page twice.

Example page ranges:

  • 1,3,5-9,15-12: pages 1, 3, 5, 6, 7, 8, 9, 15, 14, 13, and 12 in that order.

  • z-1: all pages in the document in reverse

  • r3-r1: the last three pages of the document

  • r1-r3: the last three pages of the document in reverse order

Note that qpdf doesn't presently do anything special about other constructs in a PDF file that may know about pages, so semantics of splitting and merging vary across features. For example, the document's outlines (bookmarks) point to actual page objects, so if you select some pages and not others, bookmarks that point to pages that are in the output file will work, and remaining bookmarks will not work. On the other hand, page labels (page numbers specified in the file) are just sequential, so page labels will be messed up in the output file. A future version of qpdf may do a better job at handling these issues. (Note that the qpdf library already contains all of the APIs required in order to implement this in your own application if you need it.) In the mean time, you can always use --empty as the primary input file to avoid copying all of that from the first file. For example, to take pages 1 through 5 from a infile.pdf while preserving all metadata associated with that file, you could use

qpdf infile.pdf --pages infile.pdf 1-5 -- outfile.pdf

If you wanted pages 1 through 5 from infile.pdf but you wanted the rest of the metadata to be dropped, you could instead run

qpdf --empty --pages infile.pdf 1-5 -- outfile.pdf

If you wanted to take pages 1–5 from file1.pdf and pages 11–15 from file2.pdf in reverse, you would run

qpdf file1.pdf --pages file1.pdf 1-5 file2.pdf 15-11 -- outfile.pdf

If, for some reason, you wanted to take the first page of an encrypted file called encrypted.pdf with password pass and repeat it twice in an output file, and if you wanted to drop metadata (like page numbers and outlines) but preserve encryption, you would use

qpdf --empty --copy-encryption=encrypted.pdf --encryption-file-password=pass
--pages encrypted.pdf --password=pass 1 ./encrypted.pdf --password=pass 1 --
outfile.pdf

Note that we had to specify the password all three times because giving a password as --encryption-file-password doesn't count for page selection, and as far as qpdf is concerned, encrypted.pdf and ./encrypted.pdf are separated files. These are all corner cases that most users should hopefully never have to be bothered with.

3.5. Advanced Parsing Options

These options control aspects of how qpdf reads PDF files. Mostly these are of use to people who are working with damaged files. There is little reason to use these options unless you are trying to solve specific problems. The following options are available:

--suppress-recovery

Prevents qpdf from attempting to recover damaged files.

--ignore-xref-streams

Tells qpdf to ignore any cross-reference streams.

Ordinarily, qpdf will attempt to recover from certain types of errors in PDF files. These include errors in the cross-reference table, certain types of object numbering errors, and certain types of stream length errors. Sometimes, qpdf may think it has recovered but may not have actually recovered, so care should be taken when using this option as some data loss is possible. The --suppress-recovery option will prevent qpdf from attempting recovery. In this case, it will fail on the first error that it encounters.

Ordinarily, qpdf reads cross-reference streams when they are present in a PDF file. If --ignore-xref-streams is specified, qpdf will ignore any cross-reference streams for hybrid PDF files. The purpose of hybrid files is to make some content available to viewers that are not aware of cross-reference streams. It is almost never desirable to ignore them. The only time when you might want to use this feature is if you are testing creation of hybrid PDF files and wish to see how a PDF consumer that doesn't understand object and cross-reference streams would interpret such a file.

3.6. Advanced Transformation Options

These transformation options control fine points of how qpdf creates the output file. Mostly these are of use only to people who are very familiar with the PDF file format or who are PDF developers. The following options are available:

--compress-streams=[yn]

By default, or with --compress-streams=y, qpdf will compress any stream with no other filters applied to it with the /FlateDecode filter when it writes it. To suppress this behavior and preserve uncompressed streams as uncompressed, use --compress-streams=n.

--decode-level=option

Controls which streams qpdf tries to decode. The default is generalized. The following options are available:

  • none: do not attempt to decode any streams

  • generalized: decode streams filtered with supported generalized filters: /LZWDecode, /FlateDecode, /ASCII85Decode, and /ASCIIHexDecode. We define generalized filters as those to be used for general-purpose compression or encoding, as opposed to filters specifically designed for image data.

  • specialized: in addition to generalized, decode streams with supported non-lossy specialized filters; currently this is just /RunLengthDecode

  • all: in addition to generalized and specialized, decode streams with supported lossy filters; currently this is just /DCTDecode (JPEG)

--stream-data=option

Controls transformation of stream data. This option predates the --compress-streams and --decode-level options. Those options can be used to achieve the same affect with more control. The value of option may be one of the following:

  • compress: recompress stream data when possible (default); equivalent to --compress-streams=y --decode-level=generalized

  • preserve: leave all stream data as is; equivalent to --compress-streams=n --decode-level=none

  • uncompress: uncompress stream data compressed with generalized filters when possible; equivalent to --compress-streams=n --decode-level=generalized

--normalize-content=[yn]

Enables or disables normalization of content streams. Content normalization is enabled by default in QDF mode. Please see Chapter 4, QDF Mode for additional discussion of QDF mode.

--object-streams=mode

Controls handling of object streams. The value of mode may be one of the following:

  • preserve: preserve original object streams (default)

  • disable: don't write any object streams

  • generate: use object streams wherever possible

--preserve-unreferenced

Tells qpdf to preserve objects that are not referenced when writing the file. Ordinarily any object that is not referenced in a traversal of the document from the trailer dictionary will be discarded. This may be useful in working with some damaged files or inspecting files with known unreferenced objects.

This flag is ignored for linearized files and has the effect of causing objects in the new file to be written in order by object ID from the original file. This does not mean that object numbers will be the same since qpdf may create stream lengths as direct or indirect differently from the original file, and the original file may have gaps in its numbering.

--newline-before-endstream

Tells qpdf to insert a newline before the endstream keyword, not counted in the length, after any stream content even if the last character of the stream was a newline. This may result in two newlines in some cases. This is a requirement of PDF/A. While qpdf doesn't specifically know how to generate PDF/A-compliant PDFs, this at least prevents it from removing compliance on already compliant files.

--linearize-pass1=file

Write the first pass of linearization to the named file. The resulting file is not a valid PDF file. This option is useful only for debugging QPDFWriter's linearization code. When qpdf linearizes files, it writes the file in two passes, using the first pass to calculate sizes and offsets that are required for hint tables and the linearization dictionary. Ordinarily, the first pass is discarded. This option enables it to be captured.

--coalesce-contents

When a page's contents are split across multiple streams, this option causes qpdf to combine them into a single stream. Use of this option is never necessary for ordinary usage, but it can help when working with some files in some cases. For example, some PDF writers split page contents into small streams at arbitrary points that may fall in the middle of lexical tokens within the content, and some PDF readers may get confused on such files. If you use qpdf to coalesce the content streams, such readers may be able to work with the file more easily. This can also be combined with QDF mode or content normalization to make it easier to look at all of a page's contents at once.

--qdf

Turns on QDF mode. For additional information on QDF, please see Chapter 4, QDF Mode.

--min-version=version

Forces the PDF version of the output file to be at least version. In other words, if the input file has a lower version than the specified version, the specified version will be used. If the input file has a higher version, the input file's original version will be used. It is seldom necessary to use this option since qpdf will automatically increase the version as needed when adding features that require newer PDF readers.

The version number may be expressed in the form major.minor.extension-level, in which case the version is interpreted as major.minor at extension level extension-level. For example, version 1.7.8 represents version 1.7 at extension level 8. Note that minimal syntax checking is done on the command line.

--force-version=version

This option forces the PDF version to be the exact version specified even when the file may have content that is not supported in that version. The version number is interpreted in the same way as with --min-version so that extension levels can be set. In some cases, forcing the output file's PDF version to be lower than that of the input file will cause qpdf to disable certain features of the document. Specifically, 256-bit keys are disabled if the version is less than 1.7 with extension level 8 (except R5 is disabled if less than 1.7 with extension level 3), AES encryption is disabled if the version is less than 1.6, cleartext metadata and object streams are disabled if less than 1.5, 128-bit encryption keys are disabled if less than 1.4, and all encryption is disabled if less than 1.3. Even with these precautions, qpdf won't be able to do things like eliminate use of newer image compression schemes, transparency groups, or other features that may have been added in more recent versions of PDF.

As a general rule, with the exception of big structural things like the use of object streams or AES encryption, PDF viewers are supposed to ignore features in files that they don't support from newer versions. This means that forcing the version to a lower version may make it possible to open your PDF file with an older version, though bear in mind that some of the original document's functionality may be lost.

By default, when a stream is encoded using non-lossy filters that qpdf understands and is not already compressed using a good compression scheme, qpdf will uncompress and recompress streams. Assuming proper filter implements, this is safe and generally results in smaller files. This behavior may also be explicitly requested with --stream-data=compress.

When --normalize-content=y is specified, qpdf will attempt to normalize whitespace and newlines in page content streams. This is generally safe but could, in some cases, cause damage to the content streams. This option is intended for people who wish to study PDF content streams or to debug PDF content. You should not use this for “production” PDF files.

This paragraph discusses edge cases of content normalization that are not of concern to most users and are not relevant when content normalization is not enabled. When normalizing content, if qpdf runs into any lexical errors, it will print a warning indicating that content may be damaged. The only situation in which qpdf is known to cause damage during content normalization is when a page's contents are split across multiple streams and streams are split in the middle of a lexical token such as a string, name, or inline image. There may be some pathological cases in which qpdf could damage content without noticing this, such as if the partial tokens at the end of one stream and the beginning of the next stream are both valid, but usually qpdf will be able to detect this case. For slightly increased safety, you can specify --coalesce-contents in addition to --normalize-content or --qdf. This will cause qpdf to combine all the content streams into one, thus recombining any split tokens. However doing this will prevent you from being able to see the original layout of the content streams. If you must inspect the original content streams in an uncompressed format, you can always run with --qdf --normalize-content=n for a QDF file without content normalization, or alternatively --stream-data=uncompress for a regular non-QDF mode file with uncompressed streams. These will both uncompress all the streams but will not attempt to normalize content. Please note that if you are using content normalization or QDF mode for the purpose of manually inspecting files, you don't have to care about this.

Object streams, also known as compressed objects, were introduced into the PDF specification at version 1.5, corresponding to Acrobat 6. Some older PDF viewers may not support files with object streams. qpdf can be used to transform files with object streams to files without object streams or vice versa. As mentioned above, there are three object stream modes: preserve, disable, and generate.

In preserve mode, the relationship to objects and the streams that contain them is preserved from the original file. In disable mode, all objects are written as regular, uncompressed objects. The resulting file should be readable by older PDF viewers. (Of course, the content of the files may include features not supported by older viewers, but at least the structure will be supported.) In generate mode, qpdf will create its own object streams. This will usually result in more compact PDF files, though they may not be readable by older viewers. In this mode, qpdf will also make sure the PDF version number in the header is at least 1.5.

The --qdf flag turns on QDF mode, which changes some of the defaults described above. Specifically, in QDF mode, by default, stream data is uncompressed, content streams are normalized, and encryption is removed. These defaults can still be overridden by specifying the appropriate options as described above. Additionally, in QDF mode, stream lengths are stored as indirect objects, objects are laid out in a less efficient but more readable fashion, and the documents are interspersed with comments that make it easier for the user to find things and also make it possible for fix-qdf to work properly. QDF mode is intended for people, mostly developers, who wish to inspect or modify PDF files in a text editor. For details, please see Chapter 4, QDF Mode.

3.7. Testing, Inspection, and Debugging Options

These options can be useful for digging into PDF files or for use in automated test suites for software that uses the qpdf library. When any of the options in this section are specified, no output file should be given. The following options are available:

--deterministic-id

Causes generation of a deterministic value for /ID. This prevents use of timestamp and output file name information in the /ID generation. Instead, at some slight additional runtime cost, the /ID field is generated to include a digest of the significant parts of the content of the output PDF file. This means that a given qpdf operation should generate the same /ID each time it is run, which can be useful when caching results or for generation of some test data. Use of this flag is not compatible with creation of encrypted files.

--static-id

Causes generation of a fixed value for /ID. This is intended for testing only. Never use it for production files. If you are trying to get the same /ID each time for a given file and you are not generating encrypted files, consider using the --deterministic-id option.

--static-aes-iv

Causes use of a static initialization vector for AES-CBC. This is intended for testing only so that output files can be reproducible. Never use it for production files. This option in particular is not secure since it significantly weakens the encryption.

--no-original-object-ids

Suppresses inclusion of original object ID comments in QDF files. This can be useful when generating QDF files for test purposes, particularly when comparing them to determine whether two PDF files have identical content.

--show-encryption

Shows document encryption parameters. Also shows the document's user password if the owner password is given.

--show-encryption-key

When encryption information is being displayed, as when --check or --show-encryption is given, display the computed or retrieved encryption key as a hexadecimal string. This value is not ordinarily useful to users, but it can be used as the argument to --password if the --password-is-hex-key is specified. Note that, when PDF files are encrypted, passwords and other metadata are used only to compute an encryption key, and the encryption key is what is actually used for encryption. This enables retrieval of that key.

--check-linearization

Checks file integrity and linearization status.

--show-linearization

Checks and displays all data in the linearization hint tables.

--show-xref

Shows the contents of the cross-reference table in a human-readable form. This is especially useful for files with cross-reference streams which are stored in a binary format.

--show-object=obj[,gen]

Show the contents of the given object. This is especially useful for inspecting objects that are inside of object streams (also known as “compressed objects”).

--raw-stream-data

When used along with the --show-object option, if the object is a stream, shows the raw stream data instead of object's contents.

--filtered-stream-data

When used along with the --show-object option, if the object is a stream, shows the filtered stream data instead of object's contents. If the stream is filtered using filters that qpdf does not support, an error will be issued.

--show-npages

Prints the number of pages in the input file on a line by itself. Since the number of pages appears by itself on a line, this option can be useful for scripting if you need to know the number of pages in a file.

--show-pages

Shows the object and generation number for each page dictionary object and for each content stream associated with the page. Having this information makes it more convenient to inspect objects from a particular page.

--with-images

When used along with --show-pages, also shows the object and generation numbers for the image objects on each page. (At present, information about images in shared resource dictionaries are not output by this command. This is discussed in a comment in the source code.)

--check

Checks file structure and well as encryption, linearization, and encoding of stream data. A file for which --check reports no errors may still have errors in stream data content but should otherwise be structurally sound. If --check any errors, qpdf will exit with a status of 2. There are some recoverable conditions that --check detects. These are issued as warnings instead of errors. If qpdf finds no errors but finds warnings, it will exit with a status of 3 (as of version 2.0.4). When --check is combined with other options, checks are always performed before any other options are processed. For erroneous files, --check will cause qpdf to attempt to recover, after which other options are effectively operating on the recovered file. Combining --check with other options in this way can be useful for manually recovering severely damaged files.

The --raw-stream-data and --filtered-stream-data options are ignored unless --show-object is given. Either of these options will cause the stream data to be written to standard output. In order to avoid commingling of stream data with other output, it is recommend that these objects not be combined with other test/inspection options.

If --filtered-stream-data is given and --normalize-content=y is also given, qpdf will attempt to normalize the stream data as if it is a page content stream. This attempt will be made even if it is not a page content stream, in which case it will produce unusable results.

Chapter 4. QDF Mode

In QDF mode, qpdf creates PDF files in what we call QDF form. A PDF file in QDF form, sometimes called a QDF file, is a completely valid PDF file that has %QDF-1.0 as its third line (after the pdf header and binary characters) and has certain other characteristics. The purpose of QDF form is to make it possible to edit PDF files, with some restrictions, in an ordinary text editor. This can be very useful for experimenting with different PDF constructs or for making one-off edits to PDF files (though there are other reasons why this may not always work).

It is ordinarily very difficult to edit PDF files in a text editor for two reasons: most meaningful data in PDF files is compressed, and PDF files are full of offset and length information that makes it hard to add or remove data. A QDF file is organized in a manner such that, if edits are kept within certain constraints, the fix-qdf program, distributed with qpdf, is able to restore edited files to a correct state. The fix-qdf program takes no command-line arguments. It reads a possibly edited QDF file from standard input and writes a repaired file to standard output.

The following attributes characterize a QDF file:

  • All objects appear in numerical order in the PDF file, including when objects appear in object streams.

  • Objects are printed in an easy-to-read format, and all line endings are normalized to UNIX line endings.

  • Unless specifically overridden, streams appear uncompressed (when qpdf supports the filters and they are compressed with a non-lossy compression scheme), and most content streams are normalized (line endings are converted to just a UNIX-style linefeeds).

  • All streams lengths are represented as indirect objects, and the stream length object is always the next object after the stream. If the stream data does not end with a newline, an extra newline is inserted, and a special comment appears after the stream indicating that this has been done.

  • If the PDF file contains object streams, if object stream n contains k objects, those objects are numbered from n+1 through n+k, and the object number/offset pairs appear on a separate line for each object. Additionally, each object in the object stream is preceded by a comment indicating its object number and index. This makes it very easy to find objects in object streams.

  • All beginnings of objects, stream tokens, endstream tokens, and endobj tokens appear on lines by themselves. A blank line follows every endobj token.

  • If there is a cross-reference stream, it is unfiltered.

  • Page dictionaries and page content streams are marked with special comments that make them easy to find.

  • Comments precede each object indicating the object number of the corresponding object in the original file.

When editing a QDF file, any edits can be made as long as the above constraints are maintained. This means that you can freely edit a page's content without worrying about messing up the QDF file. It is also possible to add new objects so long as those objects are added after the last object in the file or subsequent objects are renumbered. If a QDF file has object streams in it, you can always add the new objects before the xref stream and then change the number of the xref stream, since nothing generally ever references it by number.

It is not generally practical to remove objects from QDF files without messing up object numbering, but if you remove all references to an object, you can run qpdf on the file (after running fix-qdf), and qpdf will omit the now-orphaned object.

When fix-qdf is run, it goes through the file and recomputes the following parts of the file:

  • the /N, /W, and /First keys of all object stream dictionaries

  • the pairs of numbers representing object numbers and offsets of objects in object streams

  • all stream lengths

  • the cross-reference table or cross-reference stream

  • the offset to the cross-reference table or cross-reference stream following the startxref token

Chapter 5. Using the QPDF Library

The source tree for the qpdf package has an examples directory that contains a few example programs. The qpdf/qpdf.cc source file also serves as a useful example since it exercises almost all of the qpdf library's public interface. The best source of documentation on the library itself is reading comments in include/qpdf/QPDF.hh, include/qpdf/QPDFWriter.hh, and include/qpdf/QPDFObjectHandle.hh.

All header files are installed in the include/qpdf directory. It is recommend that you use #include <qpdf/QPDF.hh> rather than adding include/qpdf to your include path.

When linking against the qpdf static library, you may also need to specify -lz -ljpeg on your link command. If your system understands how to read libtool .la files, this may not be necessary.

The qpdf library is safe to use in a multithreaded program, but no individual QPDF object instance (including QPDF, QPDFObjectHandle, or QPDFWriter) can be used in more than one thread at a time. Multiple threads may simultaneously work with different instances of these and all other QPDF objects.

Chapter 6. Design and Library Notes

6.1. Introduction

This section was written prior to the implementation of the qpdf package and was subsequently modified to reflect the implementation. In some cases, for purposes of explanation, it may differ slightly from the actual implementation. As always, the source code and test suite are authoritative. Even if there are some errors, this document should serve as a road map to understanding how this code works.

In general, one should adhere strictly to a specification when writing but be liberal in reading. This way, the product of our software will be accepted by the widest range of other programs, and we will accept the widest range of input files. This library attempts to conform to that philosophy whenever possible but also aims to provide strict checking for people who want to validate PDF files. If you don't want to see warnings and are trying to write something that is tolerant, you can call setSuppressWarnings(true). If you want to fail on the first error, you can call setAttemptRecovery(false). The default behavior is to generating warnings for recoverable problems. Note that recovery will not always produce the desired results even if it is able to get through the file. Unlike most other PDF files that produce generic warnings such as “This file is damaged,”, qpdf generally issues a detailed error message that would be most useful to a PDF developer. This is by design as there seems to be a shortage of PDF validation tools out there. (This was, in fact, one of the major motivations behind the initial creation of qpdf.)

6.2. Design Goals

The QPDF package includes support for reading and rewriting PDF files. It aims to hide from the user details involving object locations, modified (appended) PDF files, the directness/indirectness of objects, and stream filters including encryption. It does not aim to hide knowledge of the object hierarchy or content stream contents. Put another way, a user of the qpdf library is expected to have knowledge about how PDF files work, but is not expected to have to keep track of bookkeeping details such as file positions.

A user of the library never has to care whether an object is direct or indirect. All access to objects deals with this transparently. All memory management details are also handled by the library.

The PointerHolder object is used internally by the library to deal with memory management. This is basically a smart pointer object very similar in spirit to the Boost library's shared_ptr object, but predating it by several years. This library also makes use of a technique for giving fine-grained access to methods in one class to other classes by using public subclasses with friends and only private members that in turn call private methods of the containing class. See QPDFObjectHandle::Factory as an example.

The top-level qpdf class is QPDF. A QPDF object represents a PDF file. The library provides methods for both accessing and mutating PDF files.

QPDFObject is the basic PDF Object class. It is an abstract base class from which are derived classes for each type of PDF object. Clients do not interact with Objects directly but instead interact with QPDFObjectHandle.

QPDFObjectHandle contains PointerHolder<QPDFObject> and includes accessor methods that are type-safe proxies to the methods of the derived object classes as well as methods for querying object types. They can be passed around by value, copied, stored in containers, etc. with very low overhead. Instances of QPDFObjectHandle always contain a reference back to the QPDF object from which they were created. A QPDFObjectHandle may be direct or indirect. If indirect, the QPDFObject the PointerHolder initially points to is a null pointer. In this case, the first attempt to access the underlying QPDFObject will result in the QPDFObject being resolved via a call to the referenced QPDF instance. This makes it essentially impossible to make coding errors in which certain things will work for some PDF files and not for others based on which objects are direct and which objects are indirect.

Instances of QPDFObjectHandle can be directly created and modified using static factory methods in the QPDFObjectHandle class. There are factory methods for each type of object as well as a convenience method QPDFObjectHandle::parse that creates an object from a string representation of the object. Existing instances of QPDFObjectHandle can also be modified in several ways. See comments in QPDFObjectHandle.hh for details.

When the QPDF class creates a new object, it dynamically allocates the appropriate type of QPDFObject and immediately hands the pointer to an instance of QPDFObjectHandle. The parser reads a token from the current file position. If the token is a not either a dictionary or array opener, an object is immediately constructed from the single token and the parser returns. Otherwise, the parser is invoked recursively in a special mode in which it accumulates objects until it finds a balancing closer. During this process, the “R” keyword is recognized and an indirect QPDFObjectHandle may be constructed.

The QPDF::resolve() method, which is used to resolve an indirect object, may be invoked from the QPDFObjectHandle class. It first checks a cache to see whether this object has already been read. If not, it reads the object from the PDF file and caches it. It the returns the resulting QPDFObjectHandle. The calling object handle then replaces its PointerHolder<QDFObject> with the one from the newly returned QPDFObjectHandle. In this way, only a single copy of any direct object need exist and clients can access objects transparently without knowing caring whether they are direct or indirect objects. Additionally, no object is ever read from the file more than once. That means that only the portions of the PDF file that are actually needed are ever read from the input file, thus allowing the qpdf package to take advantage of this important design goal of PDF files.

If the requested object is inside of an object stream, the object stream itself is first read into memory. Then the tokenizer reads objects from the memory stream based on the offset information stored in the stream. Those individual objects are cached, after which the temporary buffer holding the object stream contents are discarded. In this way, the first time an object in an object stream is requested, all objects in the stream are cached.

An instance of QPDF is constructed by using the class's default constructor. If desired, the QPDF object may be configured with various methods that change its default behavior. Then the QPDF::processFile() method is passed the name of a PDF file, which permanently associates the file with that QPDF object. A password may also be given for access to password-protected files. QPDF does not enforce encryption parameters and will treat user and owner passwords equivalently. Either password may be used to access an encrypted file. [1] QPDF will allow recovery of a user password given an owner password. The input PDF file must be seekable. (Output files written by QPDFWriter need not be seekable, even when creating linearized files.) During construction, QPDF validates the PDF file's header, and then reads the cross reference tables and trailer dictionaries. The QPDF class keeps only the first trailer dictionary though it does read all of them so it can check the /Prev key. QPDF class users may request the root object and the trailer dictionary specifically. The cross reference table is kept private. Objects may then be requested by number of by walking the object tree.

When a PDF file has a cross-reference stream instead of a cross-reference table and trailer, requesting the document's trailer dictionary returns the stream dictionary from the cross-reference stream instead.

There are some convenience routines for very common operations such as walking the page tree and returning a vector of all page objects. For full details, please see the header file QPDF.hh.

The following example should clarify how QPDF processes a simple file.

  • Client constructs QPDF pdf and calls pdf.processFile("a.pdf");.

  • The QPDF class checks the beginning of a.pdf for %!PDF-1.[0-9]+. It then reads the cross reference table mentioned at the end of the file, ensuring that it is looking before the last %%EOF. After getting to trailer keyword, it invokes the parser.

  • The parser sees “<<”, so it calls itself recursively in dictionary creation mode.

  • In dictionary creation mode, the parser keeps accumulating objects until it encounters “>>”. Each object that is read is pushed onto a stack. If “R” is read, the last two objects on the stack are inspected. If they are integers, they are popped off the stack and their values are used to construct an indirect object handle which is then pushed onto the stack. When “>>” is finally read, the stack is converted into a QPDF_Dictionary which is placed in a QPDFObjectHandle and returned.

  • The resulting dictionary is saved as the trailer dictionary.

  • The /Prev key is searched. If present, QPDF seeks to that point and repeats except that the new trailer dictionary is not saved. If /Prev is not present, the initial parsing process is complete.

    If there is an encryption dictionary, the document's encryption parameters are initialized.

  • The client requests root object. The QPDF class gets the value of root key from trailer dictionary and returns it. It is an unresolved indirect QPDFObjectHandle.

  • The client requests the /Pages key from root QPDFObjectHandle. The QPDFObjectHandle notices that it is indirect so it asks QPDF to resolve it. QPDF looks in the object cache for an object with the root dictionary's object ID and generation number. Upon not seeing it, it checks the cross reference table, gets the offset, and reads the object present at that offset. It stores the result in the object cache and returns the cached result. The calling QPDFObjectHandle replaces its object pointer with the one from the resolved QPDFObjectHandle, verifies that it a valid dictionary object, and returns the (unresolved indirect) QPDFObject handle to the top of the Pages hierarchy.

    As the client continues to request objects, the same process is followed for each new requested object.

6.3. Casting Policy

This section describes the casting policy followed by qpdf's implementation. This is no concern to qpdf's end users and largely of no concern to people writing code that uses qpdf, but it could be of interest to people who are porting qpdf to a new platform or who are making modifications to the code.

The C++ code in qpdf is free of old-style casts except where unavoidable (e.g. where the old-style cast is in a macro provided by a third-party header file). When there is a need for a cast, it is handled, in order of preference, by rewriting the code to avoid the need for a cast, calling const_cast, calling static_cast, calling reinterpret_cast, or calling some combination of the above. As a last resort, a compiler-specific #pragma may be used to suppress a warning that we don't want to fix. Examples may include suppressing warnings about the use of old-style casts in code that is shared between C and C++ code.

The casting policy explicitly prohibits casting between integer sizes for no purpose other than to quiet a compiler warning when there is no reasonable chance of a problem resulting. The reason for this exclusion is that the practice of adding these additional casts precludes future use of additional compiler warnings as a tool for making future improvements to this aspect of the code, and it also damages the readability of the code.

There are a few significant areas where casting is common in the qpdf sources or where casting would be required to quiet higher levels of compiler warnings but is omitted at present:

  • char vs. unsigned char. For historical reasons, there are a lot of places in qpdf's internals that deal with unsigned char, which means that a lot of casting is required to interoperate with standard library calls and std::string. In retrospect, qpdf should have probably used regular (signed) char and char* everywhere and just cast to unsigned char when needed, but it's too late to make that change now. There are reinterpret_cast calls to go between char* and unsigned char*, and there are static_cast calls to go between char and unsigned char. These should always be safe.

  • Non-const unsigned char* used in the Pipeline interface. The pipeline interface has a write call that uses unsigned char* without a const qualifier. The main reason for this is to support pipelines that make calls to third-party libraries, such as zlib, that don't include const in their interfaces. Unfortunately, there are many places in the code where it is desirable to have const char* with pipelines. None of the pipeline implementations in qpdf currently modify the data passed to write, and doing so would be counter to the intent of Pipeline, but there is nothing in the code to prevent this from being done. There are places in the code where const_cast is used to remove the const-ness of pointers going into Pipelines. This could theoretically be unsafe, but there is adequate testing to assert that it is safe and will remain safe in qpdf's code.

  • size_t vs. qpdf_offset_t. This is pretty much unavoidable since sizes are unsigned types and offsets are signed types. Whenever it is necessary to seek by an amount given by a size_t, it becomes necessary to mix and match between size_t and qpdf_offset_t. Additionally, qpdf sometimes treats memory buffers like files (as with BufferInputSource, and those seek interfaces have to be consistent with file-based input sources. Neither gcc nor MSVC give warnings for this case by default, but both have warning flags that can enable this. (MSVC: /W14267 or /W3, which also enables some additional warnings that we ignore; gcc: -Wconversion -Wsign-conversion). This could matter for files whose sizes are larger than 263 bytes, but it is reasonable to expect that a world where such files are common would also have larger size_t and qpdf_offset_t types in it. On most 64-bit systems at the time of this writing (the release of version 4.1.0 of qpdf), both size_t and qpdf_offset_t are 64-bit integer types, while on many current 32-bit systems, size_t is a 32-bit type while qpdf_offset_t is a 64-bit type. I am not aware of any cases where 32-bit systems that have size_t smaller than qpdf_offset_t could run into problems. Although I can't conclusively rule out the possibility of such problems existing, I suspect any cases would be pretty contrived. In the event that someone should produce a file that qpdf can't handle because of what is suspected to be issues involving the handling of size_t vs. qpdf_offset_t (such files may behave properly on 64-bit systems but not on 32-bit systems because they have very large embedded files or streams, for example), the above mentioned warning flags could be enabled and all those implicit conversions could be carefully scrutinized. (I have already gone through that exercise once in adding support for files larger than 4 GB in size.) I continue to be committed to supporting large files on 32-bit systems, but I would not go to any lengths to support corner cases involving large embedded files or large streams that work on 64-bit systems but not on 32-bit systems because of size_t being too small. It is reasonable to assume that anyone working with such files would be using a 64-bit system anyway since many 32-bit applications would have similar difficulties.

  • size_t vs. int or long. There are some cases where size_t and int or long or size_t and unsigned int or unsigned long are used interchangeably. These cases occur when working with very small amounts of memory, such as with the bit readers (where we're working with just a few bytes at a time), some cases of strlen, and a few other cases. I have scrutinized all of these cases and determined them to be safe, but there is no mechanism in the code to ensure that new unsafe conversions between int and size_t aren't introduced short of good testing and strong awareness of the issues. Again, if any such bugs are suspected in the future, enabling the additional warning flags and scrutinizing the warnings would be in order.

To be clear, I believe qpdf to be well-behaved with respect to sizes and offsets, and qpdf's test suite includes actual generation and full processing of files larger than 4 GB in size. The issues raised here are largely academic and should not in any way be interpreted to mean that qpdf has practical problems involving sloppiness with integer types. I also believe that appropriate measures have been taken in the code to avoid problems with signed vs. unsigned integers from resulting in memory overwrites or other issues with potential security implications, though there are never any absolute guarantees.

6.4. Encryption

Encryption is supported transparently by qpdf. When opening a PDF file, if an encryption dictionary exists, the QPDF object processes this dictionary using the password (if any) provided. The primary decryption key is computed and cached. No further access is made to the encryption dictionary after that time. When an object is read from a file, the object ID and generation of the object in which it is contained is always known. Using this information along with the stored encryption key, all stream and string objects are transparently decrypted. Raw encrypted objects are never stored in memory. This way, nothing in the library ever has to know or care whether it is reading an encrypted file.

An interface is also provided for writing encrypted streams and strings given an encryption key. This is used by QPDFWriter when it rewrites encrypted files.

When copying encrypted files, unless otherwise directed, qpdf will preserve any encryption in force in the original file. qpdf can do this with either the user or the owner password. There is no difference in capability based on which password is used. When 40 or 128 bit encryption keys are used, the user password can be recovered with the owner password. With 256 keys, the user and owner passwords are used independently to encrypt the actual encryption key, so while either can be used, the owner password can no longer be used to recover the user password.

Starting with version 4.0.0, qpdf can read files that are not encrypted but that contain encrypted attachments, but it cannot write such files. qpdf also requires the password to be specified in order to open the file, not just to extract attachments, since once the file is open, all decryption is handled transparently. When copying files like this while preserving encryption, qpdf will apply the file's encryption to everything in the file, not just to the attachments. When decrypting the file, qpdf will decrypt the attachments. In general, when copying PDF files with multiple encryption formats, qpdf will choose the newest format. The only exception to this is that clear-text metadata will be preserved as clear-text if it is that way in the original file.

6.5. Random Number Generation

QPDF generates random numbers to support generation of encrypted data. Versions prior to 5.0.1 used random or rand from stdlib to generate random numbers. Version 5.0.1, if available, used operating system-provided secure random number generation instead, enabling use of stdlib random number generation only if enabled by a compile-time option. Starting in version 5.1.0, use of insecure random numbers was disabled unless enabled at compile time. Starting in version 5.1.0, it is also possible for you to disable use of OS-provided secure random numbers. This is especially useful on Windows if you want to avoid a dependency on Microsoft's cryptography API. In this case, you must provide your own random data provider. Regardless of how you compile qpdf, starting in version 5.1.0, it is possible for you to provide your own random data provider at runtime. This would enable you to use some software-based secure pseudorandom number generator and to avoid use of whatever the operating system provides. For details on how to do this, please refer to the top-level README.md file in the source distribution and to comments in QUtil.hh.

6.6. Adding and Removing Pages

While qpdf's API has supported adding and modifying objects for some time, version 3.0 introduces specific methods for adding and removing pages. These are largely convenience routines that handle two tricky issues: pushing inheritable resources from the /Pages tree down to individual pages and manipulation of the /Pages tree itself. For details, see addPage and surrounding methods in QPDF.hh.

6.7. Reserving Object Numbers

Version 3.0 of qpdf introduced the concept of reserved objects. These are seldom needed for ordinary operations, but there are cases in which you may want to add a series of indirect objects with references to each other to a QPDF object. This causes a problem because you can't determine the object ID that a new indirect object will have until you add it to the QPDF object with QPDF::makeIndirectObject. The only way to add two mutually referential objects to a QPDF object prior to version 3.0 would be to add the new objects first and then make them refer to each other after adding them. Now it is possible to create a reserved object using QPDFObjectHandle::newReserved. This is an indirect object that stays “unresolved” even if it is queried for its type. So now, if you want to create a set of mutually referential objects, you can create reservations for each one of them and use those reservations to construct the references. When finished, you can call QPDF::replaceReserved to replace the reserved objects with the real ones. This functionality will never be needed by most applications, but it is used internally by QPDF when copying objects from other PDF files, as discussed in Section 6.8, “Copying Objects From Other PDF Files”. For an example of how to use reserved objects, search for newReserved in test_driver.cc in qpdf's sources.

6.8. Copying Objects From Other PDF Files

Version 3.0 of qpdf introduced the ability to copy objects into a QPDF object from a different QPDF object, which we refer to as foreign objects. This allows arbitrary merging of PDF files. The “from” QPDF object must remain valid after the copy as discussed in the note below. The qpdf command-line tool provides limited support for basic page selection, including merging in pages from other files, but the library's API makes it possible to implement arbitrarily complex merging operations. The main method for copying foreign objects is QPDF::copyForeignObject. This takes an indirect object from another QPDF and copies it recursively into this object while preserving all object structure, including circular references. This means you can add a direct object that you create from scratch to a QPDF object with QPDF::makeIndirectObject, and you can add an indirect object from another file with QPDF::copyForeignObject. The fact that QPDF::makeIndirectObject does not automatically detect a foreign object and copy it is an explicit design decision. Copying a foreign object seems like a sufficiently significant thing to do that it should be done explicitly.

The other way to copy foreign objects is by passing a page from one QPDF to another by calling QPDF::addPage. In contrast to QPDF::makeIndirectObject, this method automatically distinguishes between indirect objects in the current file, foreign objects, and direct objects.

Please note: when you copy objects from one QPDF to another, the source QPDF object must remain valid until you have finished with the destination object. This is because the original object is still used to retrieve any referenced stream data from the copied object.

6.9. Writing PDF Files

The qpdf library supports file writing of QPDF objects to PDF files through the QPDFWriter class. The QPDFWriter class has two writing modes: one for non-linearized files, and one for linearized files. See Chapter 7, Linearization for a description of linearization is implemented. This section describes how we write non-linearized files including the creation of QDF files (see Chapter 4, QDF Mode.

This outline was written prior to implementation and is not exactly accurate, but it provides a correct “notional” idea of how writing works. Look at the code in QPDFWriter for exact details.

  • Initialize state:

    • next object number = 1

    • object queue = empty

    • renumber table: old object id/generation to new id/0 = empty

    • xref table: new id -> offset = empty

  • Create a QPDF object from a file.

  • Write header for new PDF file.

  • Request the trailer dictionary.

  • For each value that is an indirect object, grab the next object number (via an operation that returns and increments the number). Map object to new number in renumber table. Push object onto queue.

  • While there are more objects on the queue:

    • Pop queue.

    • Look up object's new number n in the renumbering table.

    • Store current offset into xref table.

    • Write n 0 obj.

    • If object is null, whether direct or indirect, write out null, thus eliminating unresolvable indirect object references.

    • If the object is a stream stream, write stream contents, piped through any filters as required, to a memory buffer. Use this buffer to determine the stream length.

    • If object is not a stream, array, or dictionary, write out its contents.

    • If object is an array or dictionary (including stream), traverse its elements (for array) or values (for dictionaries), handling recursive dictionaries and arrays, looking for indirect objects. When an indirect object is found, if it is not resolvable, ignore. (This case is handled when writing it out.) Otherwise, look it up in the renumbering table. If not found, grab the next available object number, assign to the referenced object in the renumbering table, and push the referenced object onto the queue. As a special case, when writing out a stream dictionary, replace length, filters, and decode parameters as required.

      Write out dictionary or array, replacing any unresolvable indirect object references with null (pdf spec says reference to non-existent object is legal and resolves to null) and any resolvable ones with references to the renumbered objects.

    • If the object is a stream, write stream\n, the stream contents (from the memory buffer), and \nendstream\n.

    • When done, write endobj.

Once we have finished the queue, all referenced objects will have been written out and all deleted objects or unreferenced objects will have been skipped. The new cross-reference table will contain an offset for every new object number from 1 up to the number of objects written. This can be used to write out a new xref table. Finally we can write out the trailer dictionary with appropriately computed /ID (see spec, 8.3, File Identifiers), the cross reference table offset, and %%EOF.

6.10. Filtered Streams

Support for streams is implemented through the Pipeline interface which was designed for this package.

When reading streams, create a series of Pipeline objects. The Pipeline abstract base requires implementation write() and finish() and provides an implementation of getNext(). Each pipeline object, upon receiving data, does whatever it is going to do and then writes the data (possibly modified) to its successor. Alternatively, a pipeline may be an end-of-the-line pipeline that does something like store its output to a file or a memory buffer ignoring a successor. For additional details, look at Pipeline.hh.

QPDF can read raw or filtered streams. When reading a filtered stream, the QPDF class creates a Pipeline object for one of each appropriate filter object and chains them together. The last filter should write to whatever type of output is required. The QPDF class has an interface to write raw or filtered stream contents to a given pipeline.



[1] As pointed out earlier, the intention is not for qpdf to be used to bypass security on files. but as any open source PDF consumer may be easily modified to bypass basic PDF document security, and qpdf offers may transformations that can do this as well, there seems to be little point in the added complexity of conditionally enforcing document security.

Chapter 7. Linearization

This chapter describes how QPDF and QPDFWriter implement creation and processing of linearized PDFS.

7.1. Basic Strategy for Linearization

To avoid the incestuous problem of having the qpdf library validate its own linearized files, we have a special linearized file checking mode which can be invoked via qpdf --check-linearization (or qpdf --check). This mode reads the linearization parameter dictionary and the hint streams and validates that object ordering, parameters, and hint stream contents are correct. The validation code was first tested against linearized files created by external tools (Acrobat and pdlin) and then used to validate files created by QPDFWriter itself.

7.2. Preparing For Linearization

Before creating a linearized PDF file from any other PDF file, the PDF file must be altered such that all page attributes are propagated down to the page level (and not inherited from parents in the /Pages tree). We also have to know which objects refer to which other objects, being concerned with page boundaries and a few other cases. We refer to this part of preparing the PDF file as optimization, discussed in Section 7.3, “Optimization”. Note the, in this context, the term optimization is a qpdf term, and the term linearization is a term from the PDF specification. Do not be confused by the fact that many applications refer to linearization as optimization or web optimization.

When creating linearized PDF files from optimized PDF files, there are really only a few issues that need to be dealt with:

  • Creation of hints tables

  • Placing objects in the correct order

  • Filling in offsets and byte sizes

7.3. Optimization

In order to perform various operations such as linearization and splitting files into pages, it is necessary to know which objects are referenced by which pages, page thumbnails, and root and trailer dictionary keys. It is also necessary to ensure that all page-level attributes appear directly at the page level and are not inherited from parents in the pages tree.

We refer to the process of enforcing these constraints as optimization. As mentioned above, note that some applications refer to linearization as optimization. Although this optimization was initially motivated by the need to create linearized files, we are using these terms separately.

PDF file optimization is implemented in the QPDF_optimization.cc source file. That file is richly commented and serves as the primary reference for the optimization process.

After optimization has been completed, the private member variables obj_user_to_objects and object_to_obj_users in QPDF have been populated. Any object that has more than one value in the object_to_obj_users table is shared. Any object that has exactly one value in the object_to_obj_users table is private. To find all the private objects in a page or a trailer or root dictionary key, one merely has make this determination for each element in the obj_user_to_objects table for the given page or key.

Note that pages and thumbnails have different object user types, so the above test on a page will not include objects referenced by the page's thumbnail dictionary and nothing else.

7.4. Writing Linearized Files

We will create files with only primary hint streams. We will never write overflow hint streams. (As of PDF version 1.4, Acrobat doesn't either, and they are never necessary.) The hint streams contain offset information to objects that point to where they would be if the hint stream were not present. This means that we have to calculate all object positions before we can generate and write the hint table. This means that we have to generate the file in two passes. To make this reliable, QPDFWriter in linearization mode invokes exactly the same code twice to write the file to a pipeline.

In the first pass, the target pipeline is a count pipeline chained to a discard pipeline. The count pipeline simply passes its data through to the next pipeline in the chain but can return the number of bytes passed through it at any intermediate point. The discard pipeline is an end of line pipeline that just throws its data away. The hint stream is not written and dummy values with adequate padding are stored in the first cross reference table, linearization parameter dictionary, and /Prev key of the first trailer dictionary. All the offset, length, object renumbering information, and anything else we need for the second pass is stored.

At the end of the first pass, this information is passed to the QPDF class which constructs a compressed hint stream in a memory buffer and returns it. QPDFWriter uses this information to write a complete hint stream object into a memory buffer. At this point, the length of the hint stream is known.

In the second pass, the end of the pipeline chain is a regular file instead of a discard pipeline, and we have known values for all the offsets and lengths that we didn't have in the first pass. We have to adjust offsets that appear after the start of the hint stream by the length of the hint stream, which is known. Anything that is of variable length is padded, with the padding code surrounding any writing code that differs in the two passes. This ensures that changes to the way things are represented never results in offsets that were gathered during the first pass becoming incorrect for the second pass.

Using this strategy, we can write linearized files to a non-seekable output stream with only a single pass to disk or wherever the output is going.

7.5. Calculating Linearization Data

Once a file is optimized, we have information about which objects access which other objects. We can then process these tables to decide which part (as described in “Linearized PDF Document Structure” in the PDF specification) each object is contained within. This tells us the exact order in which objects are written. The QPDFWriter class asks for this information and enqueues objects for writing in the proper order. It also turns on a check that causes an exception to be thrown if an object is encountered that has not already been queued. (This could happen only if there were a bug in the traversal code used to calculate the linearization data.)

7.6. Known Issues with Linearization

There are a handful of known issues with this linearization code. These issues do not appear to impact the behavior of linearized files which still work as intended: it is possible for a web browser to begin to display them before they are fully downloaded. In fact, it seems that various other programs that create linearized files have many of these same issues. These items make reference to terminology used in the linearization appendix of the PDF specification.

  • Thread Dictionary information keys appear in part 4 with the rest of Threads instead of in part 9. Objects in part 9 are not grouped together functionally.

  • We are not calculating numerators for shared object positions within content streams or interleaving them within content streams.

  • We generate only page offset, shared object, and outline hint tables. It would be relatively easy to add some additional tables. We gather most of the information needed to create thumbnail hint tables. There are comments in the code about this.

7.7. Debugging Note

The qpdf --show-linearization command can show the complete contents of linearization hint streams. To look at the raw data, you can extract the filtered contents of the linearization hint tables using qpdf --show-object=n --filtered-stream-data. Then, to convert this into a bit stream (since linearization tables are bit streams written without regard to byte boundaries), you can pipe the resulting data through the following perl code:

use bytes;
binmode STDIN;
undef $/;
my $a = <STDIN>;
my @ch = split(//, $a);
map { printf("%08b", ord($_)) } @ch;
print "\n";

Chapter 8. Object and Cross-Reference Streams

This chapter provides information about the implementation of object stream and cross-reference stream support in qpdf.

8.1. Object Streams

Object streams can contain any regular object except the following:

  • stream objects

  • objects with generation > 0

  • the encryption dictionary

  • objects containing the /Length of another stream

In addition, Adobe reader (at least as of version 8.0.0) appears to not be able to handle having the document catalog appear in an object stream if the file is encrypted, though this is not specifically disallowed by the specification.

There are additional restrictions for linearized files. See Section 8.3, “Implications for Linearized Files”for details.

The PDF specification refers to objects in object streams as “compressed objects” regardless of whether the object stream is compressed.

The generation number of every object in an object stream must be zero. It is possible to delete and replace an object in an object stream with a regular object.

The object stream dictionary has the following keys:

  • /N: number of objects

  • /First: byte offset of first object

  • /Extends: indirect reference to stream that this extends

Stream collections are formed with /Extends. They must form a directed acyclic graph. These can be used for semantic information and are not meaningful to the PDF document's syntactic structure. Although qpdf preserves stream collections, it never generates them and doesn't make use of this information in any way.

The specification recommends limiting the number of objects in object stream for efficiency in reading and decoding. Acrobat 6 uses no more than 100 objects per object stream for linearized files and no more 200 objects per stream for non-linearized files. QPDFWriter, in object stream generation mode, never puts more than 100 objects in an object stream.

Object stream contents consists of N pairs of integers, each of which is the object number and the byte offset of the object relative to the first object in the stream, followed by the objects themselves, concatenated.

8.2. Cross-Reference Streams

For non-hybrid files, the value following startxref is the byte offset to the xref stream rather than the word xref.

For hybrid files (files containing both xref tables and cross-reference streams), the xref table's trailer dictionary contains the key /XRefStm whose value is the byte offset to a cross-reference stream that supplements the xref table. A PDF 1.5-compliant application should read the xref table first. Then it should replace any object that it has already seen with any defined in the xref stream. Then it should follow any /Prev pointer in the original xref table's trailer dictionary. The specification is not clear about what should be done, if anything, with a /Prev pointer in the xref stream referenced by an xref table. The QPDF class ignores it, which is probably reasonable since, if this case were to appear for any sensible PDF file, the previous xref table would probably have a corresponding /XRefStm pointer of its own. For example, if a hybrid file were appended, the appended section would have its own xref table and /XRefStm. The appended xref table would point to the previous xref table which would point the /XRefStm, meaning that the new /XRefStm doesn't have to point to it.

Since xref streams must be read very early, they may not be encrypted, and the may not contain indirect objects for keys required to read them, which are these:

  • /Type: value /XRef

  • /Size: value n+1: where n is highest object number (same as /Size in the trailer dictionary)

  • /Index (optional): value [n count ...] used to determine which objects' information is stored in this stream. The default is [0 /Size].

  • /Prev: value offset: byte offset of previous xref stream (same as /Prev in the trailer dictionary)

  • /W [...]: sizes of each field in the xref table

The other fields in the xref stream, which may be indirect if desired, are the union of those from the xref table's trailer dictionary.

8.2.1. Cross-Reference Stream Data

The stream data is binary and encoded in big-endian byte order. Entries are concatenated, and each entry has a length equal to the total of the entries in /W above. Each entry consists of one or more fields, the first of which is the type of the field. The number of bytes for each field is given by /W above. A 0 in /W indicates that the field is omitted and has the default value. The default value for the field type is “1”. All other default values are “0”.

PDF 1.5 has three field types:

  • 0: for free objects. Format: 0 obj next-generation, same as the free table in a traditional cross-reference table

  • 1: regular non-compressed object. Format: 1 offset generation

  • 2: for objects in object streams. Format: 2 object-stream-number index, the number of object stream containing the object and the index within the object stream of the object.

It seems standard to have the first entry in the table be 0 0 0 instead of 0 0 ffff if there are no deleted objects.

8.3. Implications for Linearized Files

For linearized files, the linearization dictionary, document catalog, and page objects may not be contained in object streams.

Objects stored within object streams are given the highest range of object numbers within the main and first-page cross-reference sections.

It is okay to use cross-reference streams in place of regular xref tables. There are on special considerations.

Hint data refers to object streams themselves, not the objects in the streams. Shared object references should also be made to the object streams. There are no reference in any hint tables to the object numbers of compressed objects (objects within object streams).

When numbering objects, all shared objects within both the first and second halves of the linearized files must be numbered consecutively after all normal uncompressed objects in that half.

8.4. Implementation Notes

There are three modes for writing object streams: disable, preserve, and generate. In disable mode, we do not generate any object streams, and we also generate an xref table rather than xref streams. This can be used to generate PDF files that are viewable with older readers. In preserve mode, we write object streams such that written object streams contain the same objects and /Extends relationships as in the original file. This is equal to disable if the file has no object streams. In generate, we create object streams ourselves by grouping objects that are allowed in object streams together in sets of no more than 100 objects. We also ensure that the PDF version is at least 1.5 in generate mode, but we preserve the version header in the other modes. The default is preserve.

We do not support creation of hybrid files. When we write files, even in preserve mode, we will lose any xref tables and merge any appended sections.

Appendix A. Release Notes

For a detailed list of changes, please see the file ChangeLog in the source distribution.

8.0.2: March 6, 2018
  • When a loop is detected while following cross reference streams or tables, treat this as damage instead of silently ignoring the previous table. This prevents loss of otherwise recoverable data in some damaged files.

  • Properly handle pages with no contents.

8.0.1: March 4, 2018
  • Disregard data check errors when uncompressing /FlateDecode streams. This is consistent with most other PDF readers and allows qpdf to recover data from another class of malformed PDF files.

  • On the command line when specifying page ranges, support preceding a page number by “r” to indicate that it should be counted from the end. For example, the range r3-r1 would indicate the last three pages of a document.

8.0.0: February 25, 2018
  • Packaging and Distribution Changes

    • QPDF is now distributed as an AppImage in addition to all the other ways it is distributed. The AppImage can be found in the download area with the other packages. Thanks to Kurt Pfeifle and Simon Peter for their contributions.

  • Bug Fixes

    • QPDFObjectHandle::getUTF8Val now properly treats non-Unicode strings as encoded with PDF Doc Encoding.

    • Improvements to handling of objects in PDF files that are not of the expected type. In most cases, qpdf will be able to warn for such cases rather than fail with an exception. Previous versions of qpdf would sometimes fail with errors such as “operation for dictionary object attempted on object of wrong type”. This situation should be mostly or entirely eliminated now.

  • Enhancements to the qpdf Command-line Tool. All new options listed here are documented in more detail in Chapter 3, Running QPDF.

    • The option --linearize-pass1=file has been added for debugging qpdf's linearization code.

    • The option --coalesce-contents can be used to combine content streams of a page whose contents are an array of streams into a single stream.

  • API Enhancements. All new API calls are documented in their respective classes' header files. There are no non-compatible changes to the API.

    • Add function qpdf_check_pdf to the C API. This function does basic checking that is a subset of what qpdf --check performs.

    • Major enhancements to the lexical layer of qpdf. For a complete list of enhancements, please refer to the ChangeLog file. Most of the changes result in improvements to qpdf's ability handle erroneous files. It is also possible for programs to handle whitespace, comments, and inline images as tokens.

    • New API for working with PDF content streams at a lexical level. The new class QPDFObjectHandle::TokenFilter allows the developer to provide token handlers. Token filters can be used with several different methods in QPDFObjectHandle as well as with a lower-level interface. See comments in QPDFObjectHandle.hh as well as the new examples examples/pdf-filter-tokens.cc and examples/pdf-count-strings.cc for details.

7.1.1: February 4, 2018
  • Bug fix: files whose /ID fields were other than 16 bytes long can now be properly linearized

  • A few compile and link issues have been corrected for some platforms.

7.1.0: January 14, 2018
  • PDF files contain streams that may be compressed with various compression algorithms which, in some cases, may be enhanced by various predictor functions. Previously only the PNG up predictor was supported. In this version, all the PNG predictors as well as the TIFF predictor are supported. This increases the range of files that qpdf is able to handle.

  • QPDF now allows a raw encryption key to be specified in place of a password when opening encrypted files, and will optionally display the encryption key used by a file. This is a non-standard operation, but it can be useful in certain situations. Please see the discussion of --password-is-hex-key in Section 3.2, “Basic Options” or the comments around QPDF::setPasswordIsHexKey in QPDF.hh for additional details.

  • Bug fix: numbers ending with a trailing decimal point are now properly recognized as numbers.

  • Bug fix: when building qpdf from source on some platforms (especially MacOS), the build could get confused by older versions of qpdf installed on the system. This has been corrected.

7.0.0: September 15, 2017
  • Packaging and Distribution Changes

    • QPDF's primary license is now version 2.0 of the Apache License rather than version 2.0 of the Artistic License. You may still, at your option, consider qpdf to be licensed with version 2.0 of the Artistic license.

    • QPDF no longer has a dependency on the PCRE (Perl-Compatible Regular Expression) library. QPDF now has an added dependency on the JPEG library.

  • Bug Fixes

    • This release contains many bug fixes for various infinite loops, memory leaks, and other memory errors that could be encountered with specially crafted or otherwise erroneous PDF files.

  • New Features

    • QPDF now supports reading and writing streams encoded with JPEG or RunLength encoding. Library API enhancements and command-line options have been added to control this behavior. See command-line options --compress-streams and --decode-level and methods QPDFWriter::setCompressStreams and QPDFWriter::setDecodeLevel.

    • QPDF is much better at recovering from broken files. In most cases, qpdf will skip invalid objects and will preserve broken stream data by not attempting to filter broken streams. QPDF is now able to recover or at least not crash on dozens of broken test files I have received over the past few years.

    • Page rotation is now supported and accessible from both the library and the command line.

    • QPDFWriter supports writing files in a way that preserves PCLm compliance in support of driverless printing. This is very specialized and is only useful to applications that already know how to create PCLm files.

  • Enhancements to the qpdf Command-line Tool. All new options listed here are documented in more detail in Chapter 3, Running QPDF.

    • Command-line arguments can now be read from files or standard input using @file or @- syntax. Please see Section 3.1, “Basic Invocation”.

    • --rotate: request page rotation

    • --newline-before-endstream: ensure that a newline appears before every endstream keyword in the file; used to prevent qpdf from breaking PDF/A compliance on already compliant files.

    • --preserve-unreferenced: preserve unreferenced objects in the input PDF

    • --split-pages: break output into chunks with fixed numbers of pages

    • --verbose: print the name of each output file that is created

    • --compress-streams and --decode-level replace --stream-data for improving granularity of controlling compression and decompression of stream data. The --stream-data option will remain available.

    • When running qpdf --check with other options, checks are always run first. This enables qpdf to perform its full recovery logic before outputting other information. This can be especially useful when manually recovering broken files, looking at qpdf's regenerated cross reference table, or other similar operations.

    • Process --pages earlier so that other options like --show-pages or --split-pages can operate on the file after page splitting/merging has occurred.

  • API Changes. All new API calls are documented in their respective classes' header files.

    • QPDFObjectHandle::rotatePage: apply rotation to a page object

    • QPDFWriter::setNewlineBeforeEndstream: force newline to appear before endstream

    • QPDFWriter::setPreserveUnreferencedObjects: preserve unreferenced objects that appear in the input PDF. The default behavior is to discard them.

    • New Pipeline types Pl_RunLength and Pl_DCT are available for developers who wish to produce or consume RunLength or DCT stream data directly. The examples/pdf-create.cc example illustrates their use.

    • QPDFWriter::setCompressStreams and QPDFWriter::setDecodeLevel methods control handling of different types of stream compression.

    • Add new C API functions qpdf_set_compress_streams, qpdf_set_decode_level, qpdf_set_preserve_unreferenced_objects, and qpdf_set_newline_before_endstream corresponding to the new QPDFWriter methods.

6.0.0: November 10, 2015
  • Implement --deterministic-id command-line option and QPDFWriter::setDeterministicID as well as C API function qpdf_set_deterministic_ID for generating a deterministic ID for non-encrypted files. When this option is selected, the ID of the file depends on the contents of the output file, and not on transient items such as the timestamp or output file name.

  • Make qpdf more tolerant of files whose xref table entries are not the correct length.

5.1.3: May 24, 2015
  • Bug fix: fix-qdf was not properly handling files that contained object streams with more than 255 objects in them.

  • Bug fix: qpdf was not properly initializing Microsoft's secure crypto provider on fresh Windows installations that had not had any keys created yet.

  • Fix a few errors found by Gynvael Coldwind and Mateusz Jurczyk of the Google Security Team. Please see the ChangeLog for details.

  • Properly handle pages that have no contents at all. There were many cases in which qpdf handled this fine, but a few methods blindly obtained page contents with handling the possibility that there were no contents.

  • Make qpdf more robust for a few more kinds of problems that may occur in invalid PDF files.

5.1.2: June 7, 2014
  • Bug fix: linearizing files could create a corrupted output file under extremely unlikely file size circumstances. See ChangeLog for details. The odds of getting hit by this are very low, though one person did.

  • Bug fix: qpdf would fail to write files that had streams with decode parameters referencing other streams.

  • New example program: pdf-split-pages: efficiently split PDF files into individual pages. The example program does this more efficiently than using qpdf --pages to do it.

  • Packaging fix: Visual C++ binaries did not support Windows XP. This has been rectified by updating the compilers used to generate the release binaries.

5.1.1: January 14, 2014
  • Performance fix: copying foreign objects could be very slow with certain types of files. This was most likely to be visible during page splitting and was due to traversing the same objects multiple times in some cases.

5.1.0: December 17, 2013
  • Added runtime option (QUtil::setRandomDataProvider) to supply your own random data provider. You can use this if you want to avoid using the OS-provided secure random number generation facility or stdlib's less secure version. See comments in include/qpdf/QUtil.hh for details.

  • Fixed image comparison tests to not create 12-bit-per-pixel images since some versions of tiffcmp have bugs in comparing them in some cases. This increases the disk space required by the image comparison tests, which are off by default anyway.

  • Introduce a number of small fixes for compilation on the latest clang in MacOS and the latest Visual C++ in Windows.

  • Be able to handle broken files that end the xref table header with a space instead of a newline.

5.0.1: October 18, 2013
  • Thanks to a detailed review by Florian Weimer and the Red Hat Product Security Team, this release includes a number of non-user-visible security hardening changes. Please see the ChangeLog file in the source distribution for the complete list.

  • When available, operating system-specific secure random number generation is used for generating initialization vectors and other random values used during encryption or file creation. For the Windows build, this results in an added dependency on Microsoft's cryptography API. To disable the OS-specific cryptography and use the old version, pass the --enable-insecure-random option to ./configure.

  • The qpdf command-line tool now issues a warning when -accessibility=n is specified for newer encryption versions stating that the option is ignored. qpdf, per the spec, has always ignored this flag, but it previously did so silently. This warning is issued only by the command-line tool, not by the library. The library's handling of this flag is unchanged.

5.0.0: July 10, 2013
  • Bug fix: previous versions of qpdf would lose objects with generation != 0 when generating object streams. Fixing this required changes to the public API.

  • Removed methods from public API that were only supposed to be called by QPDFWriter and couldn't realistically be called anywhere else. See ChangeLog for details.

  • New QPDFObjGen class added to represent an object ID/generation pair. QPDFObjectHandle::getObjGen() is now preferred over QPDFObjectHandle::getObjectID() and QPDFObjectHandle::getGeneration() as it makes it less likely for people to accidentally write code that ignores the generation number. See QPDF.hh and QPDFObjectHandle.hh for additional notes.

  • Add --show-npages command-line option to the qpdf command to show the number of pages in a file.

  • Allow omission of the page range within --pages for the qpdf command. When omitted, the page range is implicitly taken to be all the pages in the file.

  • Various enhancements were made to support different types of broken files or broken readers. Details can be found in ChangeLog.

4.1.0: April 14, 2013
  • Note to people including qpdf in distributions: the .la files generated by libtool are now installed by qpdf's make install target. Before, they were not installed. This means that if your distribution does not want to include .la files, you must remove them as part of your packaging process.

  • Major enhancement: API enhancements have been made to support parsing of content streams. This enhancement includes the following changes:

    • QPDFObjectHandle::parseContentStream method parses objects in a content stream and calls handlers in a callback class. The example examples/pdf-parse-content.cc illustrates how this may be used.

    • QPDFObjectHandle can now represent operators and inline images, object types that may only appear in content streams.

    • Method QPDFObjectHandle::getTypeCode() returns an enumerated type value representing the underlying object type. Method QPDFObjectHandle::getTypeName() returns a text string describing the name of the type of a QPDFObjectHandle object. These methods can be used for more efficient parsing and debugging/diagnostic messages.

  • qpdf --check now parses all pages' content streams in addition to doing other checks. While there are still many types of errors that cannot be detected, syntactic errors in content streams will now be reported.

  • Minor compilation enhancements have been made to facilitate easier for support for a broader range of compilers and compiler versions.

    • Warning flags have been moved into a separate variable in autoconf.mk

    • The configure flag --enable-werror work for Microsoft compilers

    • All MSVC CRT security warnings have been resolved.

    • All C-style casts in C++ Code have been replaced by C++ casts, and many casts that had been included to suppress higher warning levels for some compilers have been removed, primarily for clarity. Places where integer type coercion occurs have been scrutinized. A new casting policy has been documented in the manual. This is of concern mainly to people porting qpdf to new platforms or compilers. It is not visible to programmers writing code that uses the library

    • Some internal limits have been removed in code that converts numbers to strings. This is largely invisible to users, but it does trigger a bug in some older versions of mingw-w64's C++ library. See README-windows.md in the source distribution if you think this may affect you. The copy of the DLL distributed with qpdf's binary distribution is not affected by this problem.

  • The RPM spec file previously included with qpdf has been removed. This is because virtually all Linux distributions include qpdf now that it is a dependency of CUPS filters.

  • A few bug fixes are included:

    • Overridden compressed objects are properly handled. Before, there were certain constructs that could cause qpdf to see old versions of some objects. The most usual manifestation of this was loss of filled in form values for certain files.

    • Installation no longer uses GNU/Linux-specific versions of some commands, so make install works on Solaris with native tools.

    • The 64-bit mingw Windows binary package no longer includes a 32-bit DLL.

4.0.1: January 17, 2013
  • Fix detection of binary attachments in test suite to avoid false test failures on some platforms.

  • Add clarifying comment in QPDF.hh to methods that return the user password explaining that it is no longer possible with newer encryption formats to recover the user password knowing the owner password. In earlier encryption formats, the user password was encrypted in the file using the owner password. In newer encryption formats, a separate encryption key is used on the file, and that key is independently encrypted using both the user password and the owner password.

4.0.0: December 31, 2012
  • Major enhancement: support has been added for newer encryption schemes supported by version X of Adobe Acrobat. This includes use of 127-character passwords, 256-bit encryption keys, and the encryption scheme specified in ISO 32000-2, the PDF 2.0 specification. This scheme can be chosen from the command line by specifying use of 256-bit keys. qpdf also supports the deprecated encryption method used by Acrobat IX. This encryption style has known security weaknesses and should not be used in practice. However, such files exist “in the wild,” so support for this scheme is still useful. New methods QPDFWriter::setR6EncryptionParameters (for the PDF 2.0 scheme) and QPDFWriter::setR5EncryptionParameters (for the deprecated scheme) have been added to enable these new encryption schemes. Corresponding functions have been added to the C API as well.

  • Full support for Adobe extension levels in PDF version information. Starting with PDF version 1.7, corresponding to ISO 32000, Adobe adds new functionality by increasing the extension level rather than increasing the version. This support includes addition of the QPDF::getExtensionLevel method for retrieving the document's extension level, addition of versions of QPDFWriter::setMinimumPDFVersion and QPDFWriter::forcePDFVersion that accept an extension level, and extended syntax for specifying forced and minimum versions on the command line as described in Section 3.6, “Advanced Transformation Options”. Corresponding functions have been added to the C API as well.

  • Minor fixes to prevent qpdf from referencing objects in the file that are not referenced in the file's overall structure. Most files don't have any such objects, but some files have contain unreferenced objects with errors, so these fixes prevent qpdf from needlessly rejecting or complaining about such objects.

  • Add new generalized methods for reading and writing files from/to programmer-defined sources. The method QPDF::processInputSource allows the programmer to use any input source for the input file, and QPDFWriter::setOutputPipeline allows the programmer to write the output file through any pipeline. These methods would make it possible to perform any number of specialized operations, such as accessing external storage systems, creating bindings for qpdf in other programming languages that have their own I/O systems, etc.

  • Add new method QPDF::getEncryptionKey for retrieving the underlying encryption key used in the file.

  • This release includes a small handful of non-compatible API changes. While effort is made to avoid such changes, all the non-compatible API changes in this version were to parts of the API that would likely never be used outside the library itself. In all cases, the altered methods or structures were parts of the QPDF that were public to enable them to be called from either QPDFWriter or were part of validation code that was over-zealous in reporting problems in parts of the file that would not ordinarily be referenced. In no case did any of the removed methods do anything worse that falsely report error conditions in files that were broken in ways that didn't matter. The following public parts of the QPDF class were changed in a non-compatible way:

    • Updated nested QPDF::EncryptionData class to add fields needed by the newer encryption formats, member variables changed to private so that future changes will not require breaking backward compatibility.

    • Added additional parameters to compute_data_key, which is used by QPDFWriter to compute the encryption key used to encrypt a specific object.

    • Removed the method flattenScalarReferences. This method was previously used prior to writing a new PDF file, but it has the undesired side effect of causing qpdf to read objects in the file that were not referenced. Some otherwise files have unreferenced objects with errors in them, so this could cause qpdf to reject files that would be accepted by virtually all other PDF readers. In fact, qpdf relied on only a very small part of what flattenScalarReferences did, so only this part has been preserved, and it is now done directly inside QPDFWriter.

    • Removed the method decodeStreams. This method was used by the --check option of the qpdf command-line tool to force all streams in the file to be decoded, but it also suffered from the problem of opening otherwise unreferenced streams and thus could report false positive. The --check option now causes qpdf to go through all the motions of writing a new file based on the original one, so it will always reference and check exactly those parts of a file that any ordinary viewer would check.

    • Removed the method trimTrailerForWrite. This method was used by QPDFWriter to modify the original QPDF object by removing fields from the trailer dictionary that wouldn't apply to the newly written file. This functionality, though generally harmless, was a poor implementation and has been replaced by having QPDFWriter filter these out when copying the trailer rather than modifying the original QPDF object. (Note that qpdf never modifies the original file itself.)

  • Allow the PDF header to appear anywhere in the first 1024 bytes of the file. This is consistent with what other readers do.

  • Fix the pkg-config files to list zlib and pcre in Requires.private to better support static linking using pkg-config.

3.0.2: September 6, 2012
  • Bug fix: QPDFWriter::setOutputMemory did not work when not used with QPDFWriter::setStaticID, which made it pretty much useless. This has been fixed.

  • New API call QPDFWriter::setExtraHeaderText inserts additional text near the header of the PDF file. The intended use case is to insert comments that may be consumed by a downstream application, though other use cases may exist.

3.0.1: August 11, 2012
  • Version 3.0.0 included addition of files for pkg-config, but this was not mentioned in the release notes. The release notes for 3.0.0 were updated to mention this.

  • Bug fix: if an object stream ended with a scalar object not followed by space, qpdf would incorrectly report that it encountered a premature EOF. This bug has been in qpdf since version 2.0.

3.0.0: August 2, 2012
  • Acknowledgment: I would like to express gratitude for the contributions of Tobias Hoffmann toward the release of qpdf version 3.0. He is responsible for most of the implementation and design of the new API for manipulating pages, and contributed code and ideas for many of the improvements made in version 3.0. Without his work, this release would certainly not have happened as soon as it did, if at all.

  • Non-compatible API change: The version of QPDFObjectHandle::replaceStreamData that uses a StreamDataProvider no longer requires (or accepts) a length parameter. See Appendix C, Upgrading to 3.0 for an explanation. While care is taken to avoid non-compatible API changes in general, an exception was made this time because the new interface offers an opportunity to significantly simplify calling code.

  • Support has been added for large files. The test suite verifies support for files larger than 4 gigabytes, and manual testing has verified support for files larger than 10 gigabytes. Large file support is available for both 32-bit and 64-bit platforms as long as the compiler and underlying platforms support it.

  • Support for page selection (splitting and merging PDF files) has been added to the qpdf command-line tool. See Section 3.4, “Page Selection Options”.

  • Options have been added to the qpdf command-line tool for copying encryption parameters from another file. See Section 3.2, “Basic Options”.

  • New methods have been added to the QPDF object for adding and removing pages. See Section 6.6, “Adding and Removing Pages”.

  • New methods have been added to the QPDF object for copying objects from other PDF files. See Section 6.8, “Copying Objects From Other PDF Files”

  • A new method QPDFObjectHandle::parse has been added for constructing QPDFObjectHandle objects from a string description.

  • Methods have been added to QPDFWriter to allow writing to an already open stdio FILE* addition to writing to standard output or a named file. Methods have been added to QPDF to be able to process a file from an already open stdio FILE*. This makes it possible to read and write PDF from secure temporary files that have been unlinked prior to being fully read or written.

  • The QPDF::emptyPDF can be used to allow creation of PDF files from scratch. The example examples/pdf-create.cc illustrates how it can be used.

  • Several methods to take PointerHolder<Buffer> can now also accept std::string arguments.

  • Many new convenience methods have been added to the library, most in QPDFObjectHandle. See ChangeLog for a full list.

  • When building on a platform that supports ELF shared libraries (such as Linux), symbol versions are enabled by default. They can be disabled by passing --disable-ld-version-script to ./configure.

  • The file libqpdf.pc is now installed to support pkg-config.

  • Image comparison tests are off by default now since they are not needed to verify a correct build or port of qpdf. They are needed only when changing the actual PDF output generated by qpdf. You should enable them if you are making deep changes to qpdf itself. See README.md for details.

  • Large file tests are off by default but can be turned on with ./configure or by setting an environment variable before running the test suite. See README.md for details.

  • When qpdf's test suite fails, failures are not printed to the terminal anymore by default. Instead, find them in build/qtest.log. For packagers who are building with an autobuilder, you can add the --enable-show-failed-test-output option to ./configure to restore the old behavior.

2.3.1: December 28, 2011
  • Fix thread-safety problem resulting from non-thread-safe use of the PCRE library.

  • Made a few minor documentation fixes.

  • Add workaround for a bug that appears in some versions of ghostscript to the test suite

  • Fix minor build issue for Visual C++ 2010.

2.3.0: August 11, 2011
  • Bug fix: when preserving existing encryption on encrypted files with cleartext metadata, older qpdf versions would generate password-protected files with no valid password. This operation now works. This bug only affected files created by copying existing encryption parameters; explicit encryption with specification of cleartext metadata worked before and continues to work.

  • Enhance QPDFWriter with a new constructor that allows you to delay the specification of the output file. When using this constructor, you may now call QPDFWriter::setOutputFilename to specify the output file, or you may use QPDFWriter::setOutputMemory to cause QPDFWriter to write the resulting PDF file to a memory buffer. You may then use QPDFWriter::getBuffer to retrieve the memory buffer.

  • Add new API call QPDF::replaceObject for replacing objects by object ID

  • Add new API call QPDF::swapObjects for swapping two objects by object ID

  • Add QPDFObjectHandle::getDictAsMap and QPDFObjectHandle::getArrayAsVector to allow retrieval of dictionary objects as maps and array objects as vectors.

  • Add functions qpdf_get_info_key and qpdf_set_info_key to the C API for manipulating string fields of the document's /Info dictionary.

  • Add functions qpdf_init_write_memory, qpdf_get_buffer_length, and qpdf_get_buffer to the C API for writing PDF files to a memory buffer instead of a file.

2.2.4: June 25, 2011
  • Fix installation and compilation issues; no functionality changes.

2.2.3: April 30, 2011
  • Handle some damaged streams with incorrect characters following the stream keyword.

  • Improve handling of inline images when normalizing content streams.

  • Enhance error recovery to properly handle files that use object 0 as a regular object, which is specifically disallowed by the spec.

2.2.2: October 4, 2010
  • Add new function qpdf_read_memory to the C API to call QPDF::processMemoryFile. This was an omission in qpdf 2.2.1.

2.2.1: October 1, 2010
  • Add new method QPDF::setOutputStreams to replace std::cout and std::cerr with other streams for generation of diagnostic messages and error messages. This can be useful for GUIs or other applications that want to capture any output generated by the library to present to the user in some other way. Note that QPDF does not write to std::cout (or the specified output stream) except where explicitly mentioned in QPDF.hh, and that the only use of the error stream is for warnings. Note also that output of warnings is suppressed when setSuppressWarnings(true) is called.

  • Add new method QPDF::processMemoryFile for operating on PDF files that are loaded into memory rather than in a file on disk.

  • Give a warning but otherwise ignore empty PDF objects by treating them as null. Empty object are not permitted by the PDF specification but have been known to appear in some actual PDF files.

  • Handle inline image filter abbreviations when the appear as stream filter abbreviations. The PDF specification does not allow use of stream filter abbreviations in this way, but Adobe Reader and some other PDF readers accept them since they sometimes appear incorrectly in actual PDF files.

  • Implement miscellaneous enhancements to PointerHolder and Buffer to support other changes.

2.2.0: August 14, 2010
  • Add new methods to QPDFObjectHandle (newStream and replaceStreamData for creating new streams and replacing stream data. This makes it possible to perform a wide range of operations that were not previously possible.

  • Add new helper method in QPDFObjectHandle (addPageContents) for appending or prepending new content streams to a page. This method makes it possible to manipulate content streams without having to be concerned whether a page's contents are a single stream or an array of streams.

  • Add new method in QPDFObjectHandle: replaceOrRemoveKey, which replaces a dictionary key with a given value unless the value is null, in which case it removes the key instead.

  • Add new method in QPDFObjectHandle: getRawStreamData, which returns the raw (unfiltered) stream data into a buffer. This complements the getStreamData method, which returns the filtered (uncompressed) stream data and can only be used when the stream's data is filterable.

  • Provide two new examples: pdf-double-page-size and pdf-invert-images that illustrate the newly added interfaces.

  • Fix a memory leak that would cause loss of a few bytes for every object involved in a cycle of object references. Thanks to Jian Ma for calling my attention to the leak.

2.1.5: April 25, 2010
  • Remove restriction of file identifier strings to 16 bytes. This unnecessary restriction was preventing qpdf from being able to encrypt or decrypt files with identifier strings that were not exactly 16 bytes long. The specification imposes no such restriction.

2.1.4: April 18, 2010
  • Apply the same padding calculation fix from version 2.1.2 to the main cross reference stream as well.

  • Since qpdf --check only performs limited checks, clarify the output to make it clear that there still may be errors that qpdf can't check. This should make it less surprising to people when another PDF reader is unable to read a file that qpdf thinks is okay.

2.1.3: March 27, 2010
  • Fix bug that could cause a failure when rewriting PDF files that contain object streams with unreferenced objects that in turn reference indirect scalars.

  • Don't complain about (invalid) AES streams that aren't a multiple of 16 bytes. Instead, pad them before decrypting.

2.1.2: January 24, 2010
  • Fix bug in padding around first half cross reference stream in linearized files. The bug could cause an assertion failure when linearizing certain unlucky files.

2.1.1: December 14, 2009
  • No changes in functionality; insert missing include in an internal library header file to support gcc 4.4, and update test suite to ignore broken Adobe Reader installations.

2.1: October 30, 2009
  • This is the first version of qpdf to include Windows support. On Windows, it is possible to build a DLL. Additionally, a partial C-language API has been introduced, which makes it possible to call qpdf functions from non-C++ environments. I am very grateful to Žarko Gajic (http://zarko-gajic.iz.hr/) for tirelessly testing numerous pre-release versions of this DLL and providing many excellent suggestions on improving the interface.

    For programming to the C interface, please see the header file qpdf/qpdf-c.h and the example examples/pdf-linearize.c.

  • Žarko Gajic has written a Delphi wrapper for qpdf, which can be downloaded from qpdf's download side. Žarko's Delphi wrapper is released with the same licensing terms as qpdf itself and comes with this disclaimer: “Delphi wrapper unit qpdf.pas created by Žarko Gajic (http://zarko-gajic.iz.hr/). Use at your own risk and for whatever purpose you want. No support is provided. Sample code is provided.”

  • Support has been added for AES encryption and crypt filters. Although qpdf does not presently support files that use PKI-based encryption, with the addition of AES and crypt filters, qpdf is now be able to open most encrypted files created with newer versions of Acrobat or other PDF creation software. Note that I have not been able to get very many files encrypted in this way, so it's possible there could still be some cases that qpdf can't handle. Please report them if you find them.

  • Many error messages have been improved to include more information in hopes of making qpdf a more useful tool for PDF experts to use in manually recovering damaged PDF files.

  • Attempt to avoid compressing metadata streams if possible. This is consistent with other PDF creation applications.

  • Provide new command-line options for AES encrypt, cleartext metadata, and setting the minimum and forced PDF versions of output files.

  • Add additional methods to the QPDF object for querying the document's permissions. Although qpdf does not enforce these permissions, it does make them available so that applications that use qpdf can enforce permissions.

  • The --check option to qpdf has been extended to include some additional information.

  • There have been a handful of non-compatible API changes. For details, see Appendix B, Upgrading from 2.0 to 2.1.

2.0.6: May 3, 2009
  • Do not attempt to uncompress streams that have decode parameters we don't recognize. Earlier versions of qpdf would have rejected files with such streams.

2.0.5: March 10, 2009
  • Improve error handling in the LZW decoder, and fix a small error introduced in the previous version with regard to handling full tables. The LZW decoder has been more strongly verified in this release.

2.0.4: February 21, 2009
  • Include proper support for LZW streams encoded without the “early code change” flag. Special thanks to Atom Smasher who reported the problem and provided an input file compressed in this way, which I did not previously have.

  • Implement some improvements to file recovery logic.

2.0.3: February 15, 2009
  • Compile cleanly with gcc 4.4.

  • Handle strings encoded as UTF-16BE properly.

2.0.2: June 30, 2008
  • Update test suite to work properly with a non-bash /bin/sh and with Perl 5.10. No changes were made to the actual qpdf source code itself for this release.

2.0.1: May 6, 2008
  • No changes in functionality or interface. This release includes fixes to the source code so that qpdf compiles properly and passes its test suite on a broader range of platforms. See ChangeLog in the source distribution for details.

2.0: April 29, 2008
  • First public release.

Appendix B. Upgrading from 2.0 to 2.1

Although, as a general rule, we like to avoid introducing source-level incompatibilities in qpdf's interface, there were a few non-compatible changes made in this version. A considerable amount of source code that uses qpdf will probably compile without any changes, but in some cases, you may have to update your code. The changes are enumerated here. There are also some new interfaces; for those, please refer to the header files.

  • QPDF's exception handling mechanism now uses std::logic_error for internal errors and std::runtime_error for runtime errors in favor of the now removed QEXC classes used in previous versions. The QEXC exception classes predated the addition of the <stdexcept> header file to the C++ standard library. Most of the exceptions thrown by the qpdf library itself are still of type QPDFExc which is now derived from std::runtime_error. Programs that caught an instance of std::exception and displayed it by calling the what() method will not need to be changed.

  • The QPDFExc class now internally represents various fields of the error condition and provides interfaces for querying them. Among the fields is a numeric error code that can help applications act differently on (a small number of) different error conditions. See QPDFExc.hh for details.

  • Warnings can be retrieved from qpdf as instances of QPDFExc instead of strings.

  • The nested QPDF::EncryptionData class's constructor takes an additional argument. This class is primarily intended to be used by QPDFWriter. There's not really anything useful an end-user application could do with it. It probably shouldn't really be part of the public interface to begin with. Likewise, some of the methods for computing internal encryption dictionary parameters have changed to support /R=4 encryption.

  • The method QPDF::getUserPassword has been removed since it didn't do what people would think it did. There are now two new methods: QPDF::getPaddedUserPassword and QPDF::getTrimmedUserPassword. The first one does what the old QPDF::getUserPassword method used to do, which is to return the password with possible binary padding as specified by the PDF specification. The second one returns a human-readable password string.

  • The enumerated types that used to be nested in QPDFWriter have moved to top-level enumerated types and are now defined in the file qpdf/Constants.h. This enables them to be shared by both the C and C++ interfaces.

Appendix C. Upgrading to 3.0

For the most part, the API for qpdf version 3.0 is backward compatible with versions 2.1 and later. There are two exceptions:

  • The method QPDFObjectHandle::replaceStreamData that uses a StreamDataProvider to provide the stream data no longer takes a length parameter. While it would have been easy enough to keep the parameter for backward compatibility, in this case, the parameter was removed since this provides the user an opportunity to simplify the calling code. This method was introduced in version 2.2. At the time, the length parameter was required in order to ensure that calls to the stream data provider returned the same length for a specific stream every time they were invoked. In particular, the linearization code depends on this. Instead, qpdf 3.0 and newer check for that constraint explicitly. The first time the stream data provider is called for a specific stream, the actual length is saved, and subsequent calls are required to return the same number of bytes. This means the calling code no longer has to compute the length in advance, which can be a significant simplification. If your code fails to compile because of the extra argument and you don't want to make other changes to your code, just omit the argument.

  • Many methods take long long instead of other integer types. Most if not all existing code should compile fine with this change since such parameters had always previously been smaller types. This change was required to support files larger than two gigabytes in size.

Appendix D. Upgrading to 4.0

While version 4.0 includes a few non-compatible API changes, it is very unlikely that anyone's code would have used any of those parts of the API since they generally required information that would only be available inside the library. In the unlikely event that you should run into trouble, please see the ChangeLog. See also Appendix A, Release Notes for a complete list of the non-compatible API changes made in this version.

qpdf-8.0.2/doc/stylesheet.css0000644000064100006410000001115113247541377014215 0ustar ejbejb/**************************************************************/ /* Custom style-sheet for the QPDF manual in HTML form. */ /**************************************************************/ /* * This file is the CSS for the QPDF manual. It is based heavily on * the CSS for the Subversion book. That file contains the following * copyright and attribution: * * Copyright (c) 2003-2007 * Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato. * * This work is licensed under the Creative Commons Attribution License. * To view a copy of this license, visit * http://creativecommons.org/licenses/by/2.0/ or send a letter to * Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, * USA. */ body { background: white; margin: 0.5in; } p, li, ul, ol, dd, dt { font-style: normal; font-weight: normal; color: black; } tt, pre { font-family: courier new,courier,fixed; } a { color: blue; text-decoration: underline; } a:hover { background: rgb(75%,75%,100%); color: blue; text-decoration: underline; } a:visited { color: purple; text-decoration: underline; } img { border: none; } h1.title { font-size: 250%; font-style: normal; font-weight: bold; color: black; } h2.subtitle { font-size: 150%; font-style: italic; color: black; } h2.title { font-size: 150%; font-style: normal; font-weight: bold; color: black; } h3.title { font-size: 125%; font-style: normal; font-weight: bold; color: black; } h4.title { font-size: 100%; font-style: normal; font-weight: bold; color: black; } .toc b { font-size: 125%; font-style: normal; font-weight: bold; color: black; } .screen, .programlisting, .literal { font-family: courier new,courier,fixed; font-style: normal; font-weight: normal; } .command, .option, .type { font-family: courier new,courier,fixed; font-style: normal; font-weight: normal; } .filename { font-family: arial,helvetica,sans-serif; font-style: italic; } .property { font-family: arial,helvetica,sans-serif; font-weight: bold; } .classname { font-family: arial,helvetica,sans-serif; font-weight: bold; font-style: italic; } .varname, .function, .envar { font-family: arial,helvetica,sans-serif; font-style: italic; } .replaceable { font-style: italic; font-size: 100%; } .figure, .example, .table { margin: 0.125in 0.25in; } .table table { border-width: 1px; border-style: solid; border-color: black; border-spacing: 0; background: rgb(240,240,240); } .table td { border: none; border-right: 1px black solid; border-bottom: 1px black solid; padding: 2px; } .table th { background: rgb(180,180,180); border: none; border-right: 1px black solid; border-bottom: 1px black solid; padding: 2px; } .table p.title, .figure p.title, .example p.title { text-align: left !important; font-size: 100% !important; } .author, .pubdate { margin: 0; font-size: 100%; font-style: italic; font-weight: normal; color: black; } .preface div.author, .preface .pubdate { font-size: 80%; } .sidebar { border-top: dotted 1px black; border-left: dotted 1px black; border-right: solid 2px black; border-bottom: solid 2px black; background: rgb(240,220,170); padding: 0 0.12in; margin: 0.25in; } .note .programlisting, .note .screen, .tip .programlisting, .tip .screen, .warning .programlisting, .warning .screen, .sidebar .programlisting, .sidebar .screen { border: none; background: none; } .sidebar p.title { text-align: center; font-size: 125%; } .note { border: black solid 1px; background: url(./images/note.png) no-repeat rgb(252,246,220); margin: 0.125in 0; padding: 0 55px; } .tip { border: black solid 1px; background: url(./images/tip.png) no-repeat rgb(224,244,255); margin: 0.125in 0; padding: 0 55px; } .warning { border: black solid 1px; background: url(./images/warning.png) no-repeat rgb(255,210,210); margin: 0.125in 0; padding: 0 55px; } /* .note .title, .tip .title, .warning .title { display: none; } */ .programlisting, .screen { font-size: 90%; color: black; margin: 1em 0.25in; padding: 0.5em; background: rgb(240,240,240); border-top: black dotted 1px; border-left: black dotted 1px; border-right: black solid 2px; border-bottom: black solid 2px; } .navheader, .navfooter { border: black solid 1px; background: rgb(180,180,200); } .navheader hr, .navfooter hr { display: none; } qpdf-8.0.2/libqpdf.map.in0000644000064100006410000000005213247541377013270 0ustar ejbejbLIBQPDF_@LT_SONAME@ { global: *; }; qpdf-8.0.2/make_windows_releases-finish0000755000064100006410000000106513247541377016326 0ustar ejbejb#!/bin/sh if [ ! -d external-libs ]; then echo "Please extract qpdf-external-libs-bin.zip and try again" exit 2 fi echo "Waiting for win.32 and win.64" while [ ! -f win.32 ] || [ ! -f win.64 ]; do sleep 1; done set -e set -x cwd=`pwd` PATH=$cwd/libqpdf/build:$PATH cd install-mingw32 v=`ls -d qpdf-*` cd .. for i in mingw32 mingw64 msvc32 msvc64; do cp -p README-windows-install.txt install-$i/$v/README.txt (cd install-$i; zip -r ../$v-bin-$i.zip $v) done set +x echo "" echo "$v-bin-mingw{32,64}.zip and $v-bin-msvc{32,64}.zip have been created." qpdf-8.0.2/install-sh0000755000064100006410000003546313247541377012565 0ustar ejbejb#!/bin/sh # install - install a program, script, or datafile scriptversion=2014-09-12.12; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # 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 # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # 'make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. tab=' ' nl=' ' IFS=" $tab$nl" # Set DOITPROG to "echo" to test this script. doit=${DOITPROG-} doit_exec=${doit:-exec} # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false is_target_a_directory=possibly usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) is_target_a_directory=always dst_arg=$2 # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) is_target_a_directory=never;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done # We allow the use of options -d and -T together, by making -d # take the precedence; this is for compatibility with GNU install. if test -n "$dir_arg"; then if test -n "$dst_arg"; then echo "$0: target directory not allowed when installing a directory." >&2 exit 1 fi fi if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call 'install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then if test $# -gt 1 || test "$is_target_a_directory" = always; then if test ! -d "$dst_arg"; then echo "$0: $dst_arg: Is not a directory." >&2 exit 1 fi fi fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for 'test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test "$is_target_a_directory" = never; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else dstdir=`dirname "$dst"` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) # $RANDOM is not portable (e.g. dash); use it when possible to # lower collision chance tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 # As "mkdir -p" follows symlinks and we work in /tmp possibly; so # create the $tmpdir first (and fail if unsuccessful) to make sure # that nobody tries to guess the $tmpdir name. if (umask $mkdir_umask && $mkdirprog $mkdir_mode "$tmpdir" && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. test_tmpdir="$tmpdir/a" ls_ld_tmpdir=`ls -ld "$test_tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac oIFS=$IFS IFS=/ set -f set fnord $dstdir shift set +f IFS=$oIFS prefixes= for d do test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: qpdf-8.0.2/mkinstalldirs0000755000064100006410000000672213247541377013363 0ustar ejbejb#! /bin/sh # mkinstalldirs --- make directory hierarchy scriptversion=2009-04-28.21; # UTC # Original author: Noah Friedman # Created: 1993-05-16 # Public domain. # # This file is maintained in Automake, please report # bugs to or send patches to # . nl=' ' IFS=" "" $nl" errstatus=0 dirmode= usage="\ Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... Create each directory DIR (with mode MODE, if specified), including all leading file name components. Report bugs to ." # process command line arguments while test $# -gt 0 ; do case $1 in -h | --help | --h*) # -h for help echo "$usage" exit $? ;; -m) # -m PERM arg shift test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } dirmode=$1 shift ;; --version) echo "$0 $scriptversion" exit $? ;; --) # stop option processing shift break ;; -*) # unknown option echo "$usage" 1>&2 exit 1 ;; *) # first non-opt arg break ;; esac done for file do if test -d "$file"; then shift else break fi done case $# in 0) exit 0 ;; esac # Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and # mkdir -p a/c at the same time, both will detect that a is missing, # one will create a, then the other will try to create a and die with # a "File exists" error. This is a problem when calling mkinstalldirs # from a parallel make. We use --version in the probe to restrict # ourselves to GNU mkdir, which is thread-safe. case $dirmode in '') if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then echo "mkdir -p -- $*" exec mkdir -p -- "$@" else # On NextStep and OpenStep, the 'mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because '.' already # exists. test -d ./-p && rmdir ./-p test -d ./--version && rmdir ./--version fi ;; *) if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 && test ! -d ./--version; then echo "mkdir -m $dirmode -p -- $*" exec mkdir -m "$dirmode" -p -- "$@" else # Clean up after NextStep and OpenStep mkdir. for d in ./-m ./-p ./--version "./$dirmode"; do test -d $d && rmdir $d done fi ;; esac for file do case $file in /*) pathcomp=/ ;; *) pathcomp= ;; esac oIFS=$IFS IFS=/ set fnord $file shift IFS=$oIFS for d do test "x$d" = x && continue pathcomp=$pathcomp$d case $pathcomp in -*) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr else if test ! -z "$dirmode"; then echo "chmod $dirmode $pathcomp" lasterr= chmod "$dirmode" "$pathcomp" || lasterr=$? if test ! -z "$lasterr"; then errstatus=$lasterr fi fi fi fi pathcomp=$pathcomp/ done done exit $errstatus # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: qpdf-8.0.2/config-msvc0000755000064100006410000000042213247541377012705 0ustar ejbejb#!/bin/sh set -e set -x if echo $PATH | grep -q /mingw64; then wordsize=64 else wordsize=32 fi CC=cl CXX="cl -TP -GR" ./configure --disable-test-compare-images --enable-external-libs --enable-werror --with-windows-wordsize=$wordsize --with-buildrules=msvc ${1+"$@"} qpdf-8.0.2/ispell-words0000644000064100006410000003732413247541377013126 0ustar ejbejbaa aaa ab abacc abc ABCD abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnom abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnom abcde abcdefABCDEF abcdefghbcdefghicdefghijdefghijkefghijklfghijklmg abcdefghbcdefghicdefghijdefghijkefghijklfghijklmg abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghi ABI ab abs abuild ac accessor aclocal AcroForm acroread activatePipelineStack ActiveState acyclic adbe addContentTokenFilter addPage addPageAt addPageContents addTokenFilter addToTable adjustAESStreamLength admon Adobe ae aeadb AEP aes AESv aesv afa ageneration AHx AIX alloc allocator allowAccessibility allowEOF allowExtractAll allowModifyAll allowModifyAnnotation allowModifyAssembly allowModifyForm allowModifyOther allowPoundAnywhereInName allowPrintHighRes allowPrintLowRes antivirus anyBadTokens aobjid apexcovantage api APIs appendable appendItem appendString AppImage appimage arandom arg argc args argv arko arko's Arora arrayOrStreamToStreamArray ArtBox ascii asciiHex ASCIIHexDecode ASCIIHexDecoder asMap assertArray assertBool assertDictionary assertIndirect assertInitialized assertInlineImage assertInteger assertName assertNull assertNumber assertOperator assertPageObject assertReal assertReserved assertScalar assertStream assertString assertType assignCompressedObjectNumbers atof atoi auth AuthEvent autobuilder autoconf autofiles autogen autoheader autolabel automake autotools ba backref backreference backrefs badBits badLength BADMAGIC BADOPTION baeca BaseFont basename BaseVersion bb bc beb Berkenbilt betweenTokens bf binmode bis BitsPerComponent bitstream BitStream BitWriter BleedBox BogusRandomDataProvider boldseq bookinfo bool BORLANDC bp bpp bpr brdp bs BT buf BufferInputSource buflen bufp bufpl bufsize BUGREPORT buildrules bw bytesNeeded ca calc calculateHOutline calculateHPageOffset calculateHSharedObject calculateLinearizationData calculateXrefStreamPadding callback callbacks callHello CAPTURECOUNT CARON cb cbc cc ccase ccc CCF CCITTFaxDecode cd cdc cdict ce cec ced cerr cf cfea CFLAGS CFM ch ChangeLog Checkboxes checkDataChecksum checkError checkFileChecksum checkHOutlines checkHPageOffset checkHSharedObject checkLinearization checkLinearizationInternal checkPageContents checkUnread CHGeneric cho CHPageOffset CHPageOffsetEntry CHSharedObject CHSharedObjectEntry CHSomething ci cin cinfo ciphertext cl classname clearPipelineStack cleartext CloseHandle closeObject cmath cmd cmyk coalesceContentStreams CoalesceProvider codepage codepoint col Coldwind ColorSpace colorspace ColorToGray com compareVersions compatbility CompressConfig computeDeterministicIDData concat Cond config conftest const ContentNormalizer contrib CopiedStreamDataProvider copyEncryptionParameters copyForeign copyForeignObject cout CoVantage cp cph cphe cplusplus CPPFLAGS cr CreateFile createPageContents createWhat CreationDate CRNL CropBox CryptAcquireContext CryptFilterDecodeParms CryptGenRandom crypto cryptolog CryptReleaseContext cso csoe css cstdio cstdlib cstr cstring ctest ctx ctype cxx CXXFLAGS cygwin da daae dae db dc dct DCTDecode dd ddaf ddd de debian dec declspec decodeAverage decodePaeth DecodeParms decodeRow decodeStreams decodeSub decodeUp decrypt decrypted decrypter decrypting decryptStream decryptString def deflateEnd deflateInit defq delphi deque dereference dereferenced dest DESTDIR detecet dev devel DeviceCMYK DeviceGray DeviceRGB DIAERESIS dict diff diffs diffutils DIR dirname disableCBC disableIncompatibleEncryption disablePadding DiscardContents discardGeneration dist distclean dl dlfcn DLL DLL's dllexport dlls DLLs docbook DOCBOOKX docdir DocOpen DOCTYPE DOTLESS doubleBoxSize Doxygen driverless DTD dtdvalid dumpHGeneric dumpHPageOffset dumpHSharedObject dumpInfoDict dumpLinearizationDataInternal dup dwHighDateTime dwLowDateTime DWORD dwVolumeSerialNumber ea eadb earlychange EarlyChange eb EBADF ebae ecc ecedd eded eeb eeee ef EFF efgh EI elif elt EmbeddedFiles embeddedFiles emptyPDF en encodeDataIncrementally encodeFile encodeRow encodeString EncryptionData EncryptionParameters EncryptMetadata endian endif endl endobj endpos endstream enqueue enqueueing enqueueObject enqueueObjectsPCLm enqueueObjectsStandard enqueuePart enqueues enqueuing enum env envar eod eof eol epub eq ERANGE eraseItem Erdelsky's errno erroffset errptr esize exc exe exp expectInlineImage ExtensionLevel extern fb fBqpdf fc fcc fclose fcntl fd feebbd ferror ff ffff fflush fghij fh fi fI fIinfilename fileinfo FileInputSource fileno filenow filep Filespec FILETIME filetrailer filterCompressedObjects filterPageContents findAndSkipNextEOL findAttachmentStreams findEndstream findFirst findHeader findLast findPage findSource findStartxref fIoptions fIoutfilename firstname firstterm fis fl flate FlateDecode flattenPagesTree flattenScalarReferences Florian FMT fn fname fo fopen forcePDFVersion foreach fprintf fR fr fread fsanitize fseek fseeki fseeko fstream ftell ftelli ftello fullinfo fullpad func fweimer fwrite Gagic Gaji Gajic gcc gcurl gen generateHintStream generateID generateObjectStreams genok getAllObjects getAllPages getAllPagesInternal getArrayAsVector getArrayItem getArrayNItems getAsArray getAsMap getAsVector getBits getBitsSigned getBoolValue getBuffer getCompressibleObjects getCompressibleObjGens getCount getDataChecksum getDescription getDict getDictAsMap getEncryptionKey getEncryptMetadata getenv GetEnvironmentVariable getErrorCode getErrorMessage getExtensionLevel getFileChecksum GetFileInformationByHandle getFilename getFilePosition getFirstChar getGen getGeneration getHeight getHexDigest getId getInlineImageValue getInstance getIntValue getItem getKey getKeyForObject getKeys getLastChar GetLastError getLastOffset getLength getLengthBytes getLinearizationOffset getLinearizedParts getMatch getMessageDetail getName getNext getNItems getNumericValue getO getObj getObject getObjectByID getObjectByObjGen getObjectID getObjectStreamData getObjGen getObjStreamIndex getObjStreamNumber getOE getOffset getOffsetLength getOperatorValue getOriginalID getOwningQPDF getP getPaddedUserPassword getPageContents getPageImages getPDFVersion getPerms getPointer getR getRandomDataProvider getRawDigest getRawStreamData getRawValue getRealValue getRefcount getRoot getSize getStreamData getStringValue GetSystemTime getToken getTrailer getTrimmedTrailer getTrimmedUserPassword getTrimmedUserPassword's getType getTypeCode getTypeName getU getUE getUncompressedObject getUserPassword getUTF getV getVal getValue getWarnings getWhoami getWidth GG ghostscript GhostScript github glerbl glibc gm gmail GNUC gnuwin gpg grayscale grep gsdnld gswin gt GUIs Gynvael gz gzip HAGOOGAMAGOOGLE handleCode handleData handleEOF handleObject handleToken hasDescription hasKey hasObjectDescription hb hbp HCRYPTPROV Hdict Helvetica hexkey hexkeylen hexstring hexstrings hf HGeneric hh HighPart hijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstn hijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstn hlen Hoffmann HOi HPageOffset HPageOffsetEntry href HS HSharedObject HSharedObjectEntry HSi HSomething HSomethingEntry htcondor htm html http https ic icc iconv IDs idx ifdef ifeq iff ifndef ifstream ignorable ijg Im ImageC ImageChecker ImageInverter ImageMask ImageProvider inbuf includeIgnorable INDOC indx inf infile infilename inflateEnd inflateInit inflateReset init initializeEncryption initializePipelineStack initializeSpecialStreams initializeVector initializeWithRandomBytes inline InlineImage inlineimage ino inode inpdf inputLen InputSource InsecureRandomDataProvider insertItem insertPage insertPageobjToPage insertXrefEntry inst int interoperate interpretCF interpretR ints inttypes inv inverter io IOLBF iomanip ios iostream irdp isArray isBool isDataModified isDelimiter isDictionary isdigit isEncrypted isIgnorable isIndirect isInitialized isInlineImage isInteger isLinearized isName isNull isNumber isNumeric iso isOperator isOrHasName isPageObject isPagesObject ispell isReal isReserved isScalar isspace isSpace isStream isString istream istype isType italicseq itemizedlist iter ith JCS JDIMENSION jerr Jian jklmnopqrstuvwxyz jmp jmpbuf JMSG jpeg jpeglib JPOOL jq JSAMPARRAY JSAMPLE JSAMPROW Jurczyk keybits keylen KEYLENGTH keyset LARGEFILE lastnum lastreleased lastTokenWasBad latin lbuf lc ld LDFLAGS ldquo len lengthNextN Lexer lhs libclang libgcc libjpeg LibJpeg libqpdf libs libtests libtiff LibTiff libtool libtool's libtoolize libtools libz lin lindict linearization linearize linearized linearizing linebuf linefeeds linkend linkey linp LinParameters linux listitem ljpeg ll lld llvm longjmp lookup lossy LowPart lqpdf lsb lt ltmain lu lval lx lz lzw LZWDecode LZWDecoder m'qpdf MacOS makeDirect makeDirectInternal Makefile makeIndirectObject malloc manualFinish Mateusz maxEnd maxlen maxval md mdash MDd mediabox MediaBox mem Memcheck memchr memcmp memcpy memmove memset merchantability metadata mgr MILLE min mingw MinGW MINGW's mins misc MixColumn mk mkinstalldirs mklink monoseq MSC msg msvc MSVC's msys MT multibyte multiline multipage multithreaded Mutator mutators mv nbackrefs nbits nbsp nbytes nch ndash nendobj nendstream ness newArray newBool NewDict newDictionary newIndirect newInlineImage newInteger NEWKEYSET newName newNull newOperator newpage newpdf newReal newReserved newStream newString nFileIndexHigh nFileIndexLow nfirst nitems nl nmatches nMatches NoBackref nobjects NOMATCH NOMEMORY NONINFRINGEMENT nonprintable noout normalizeName normalizer nouppercase npages npos nrounds nshared nspaces nstream nstripes NTE ntotal NUL num numericValue numrange nval nwalsh obj ObjAccessor ObjCache ObjCopier OBJDIR objdump ObjectHolder objectWarning ObjGen ObjGens objGenToIndirect objid objidok objok ObjStm objstm ObjUser objusers oc OE OffsetInputSource og ogs oiter okey ol olist omap op OpenAction openObject opensource ord org orig orred os ostream ostringstream ot OtherPage ou OUE ous outbuf outbuffer OUTDOC outfile outfilename outlength outpdf outpdfw outprefix outputLengthNextN ovecsize ovector pacman padLen Paeth PaethPredictor pagemode PageMode pageno pageobj PageSpec para param params parms parsecontent parseContentStream parseInternal parsePageContents ParserCallbacks parseVersion partLen pathsep patmv PatternFinder Pavlyuk pb pbytes pc PCLm pclm pcre pdf PDF PDFContext PDFDocEncoding pdfDumpInfoDict PDFs pdlin pe perl persistAcrossFinish Pfeifle ph phe php pipeContentStreams PipelineAccessor pipePageContents pipeStreamData pipeStringAndFinish Pkey pkg PKI pl plaintext plb png PNGFilter pngify PointerHolder popPipelineStack poppler pornin pos POSIX PP pragma pre precompiled prefilering prefiltering prepareFileForWrite presentCharacter presentEOF preserveObjectStreams prev printability printf processChar processFile processInputSource processMemoryFile processRow processXRefStream procset ProcSet procsets programlisting programmatically Projet prov provideRandomData provideStreamData proxied PS pseudorandom pt pthread ptr pushDiscardFilter pushEncryptionFilter pushInheritedAttributesToPage pushInheritedAttributesToPageInternal pushMD pushOutlinesToPart pushPipeline PUTU qarray QArray qdf QDFObject QDFWriter qdict QDict QEXC qnumbers QNumbers qpdf qpdf's QPDF's QPDFCONSTANTS QPDFExc QPDFFake QPDFFakeName QPDFObject QPDFObjectHandle QPDFObjectHandle's QPDFObjectHandles QPDFObjectTypeAccessor QPDFObjGen QPDFObjGens QPDFPageData qpdfs QPDFStream QPDFTokenizer QPDFTYPES QPDFVersion QPDFWriter QPDFXRefEntry qqqcqqq qstream QStream QStreams qstrings QStrings QTC qtest QTest QuadPart quotedblbase quotedblright quoteleft quoteright quotesinglbase QUtil qutil qwert rand RandomDataProvider randoms rb rbegin rc rcon RDONLY rdp rdquo readHGeneric readHintStream readHPageOffset readHSharedObject readLine readLinearizationData README readObject readObjectAtOffset readToken reattached recompress recompressed recompressing recomputation recoverStreamLength refcount refpage refpos regexp registerForeignStream releaseResolved ReleaseResolver remotesensing removeKey removePage removereplace repl replaceDict replaceFilterData replaceForeignIndirectObjects replaceKey replaceObject replaceOrRemoveKey replaceReserved replaceStreamData repos reserveObjects resetBits resolveLiteral resolveObjectsInStream ResolveRecorder resync retargeted retested reverseResolved rf rfont rg rgb rhs rijndael rijndaelDecrypt rijndaelEncrypt rijndaelSetupDecrypt rijndaelSetupEncrypt rk Rkey RKLENGTH rl rm RNRT rotatePage RotationSpec roundoff rr RSA rspec rstream RStream RunLength runlength RunLengthDecode runtest Sahil sahilarora sAlT saphir sarray SASLprep scanline scanlines se SecureRandomDataProvider sed seekable sendNextCode sep seq serif setArrayFromVector setArrayItem setAttemptRecovery setbase setCompressStreams setContentNormalization setDataKey setDecodeLevel setDescription setDeterministicID setDictDescription setEncryptionParameters setEncryptionParametersInternal setExtraHeaderText setFile setFilename setFromVector setIgnoreXRefStreams setItem setIV setjmp setLastObjectDescription setLastOffset setLinearization setLinearizationPass setLineBuf setMinimumPDFVersion setmode setNewlineBeforeEndstream setO setObjectDescription setObjectDescriptionFromInput setObjectStreamMode setObjGen setOutputFile setOutputFilename setOutputMemory setOutputPipeline setOutputStreams setPasswordIsHexKey setPCLm setPipeline setprecision setPreserveEncryption setPreserveUnreferencedObjects setQDFMode setR setRandomDataProvider setStaticAesIV setStaticID setStreamDataMode setStreamDescription setSuppressOriginalObjectIDs setSuppressWarnings setTrailer setU setV setvbuf sf sha shallowCopy showLinearizationData showXRefTable sizeof skipToNextByte soe softlink solidus sourceforge SourceForge sph sphlib sprintf sqlite srand srandom src srdp sstream startoffset startxref stat std STDC StdCF stddef stderr stdexcept stdin stdint StdioFile stdlib stdlib's stdout STL StmF str strcasecmp strchr strcmp strcpy StreamDataProvider strerror StrF stricmp StringCounter StringDecrypter stringprep StringReverser stripesize strlen strncmp stronghorse strrchr strstr strtoi strtol strtoll struct stylesheet stylesheets subclasses SubFilter SubFilters sublicense Subramanyam substr substring Subtype sudo supp suppressions svg swapObjects swversion Symlink sys sysnow SYSTEMTIME SystemTimeToFileTime Syuu TARNAME tbuf tc Td Te TerminateParsing terminateParsing TESTSUITE Tf tgen th thomas tiffcmp TIFFPredictor Tj tmp tnum Tobias tobj tobjid TODO toffset TokenFilter TokenFilters tokenize tokenized tokenizer tokenizing tokenTypeName toolchain Toolchains toupper toUTF tp travis TrimBox trimTrailerForWrite tt ttype turbo txt typeWarning uc udata UE uinow uint uiter UL ULARGE ulink uLong ULONGLONG uncompresesd uncompress uncompressing undef understandDecodeParams unencrypted unfilterable ungetc unicode uninstalled unistd unlink unlinked unparse unparseChild unparseObject unparseResolved unparsing unreadCh unreferenced unresolvable unretrieved upass updateAllPagesCache updateObjectMaps updateObjectMapsInternal updatePagesCache urandom url UseOutlines useStaticIV useZeroIV USLetter usr utf Util utils uval val valgrind valstr var variablelist varlistentry varname vc vec vecs VER viewable ViewerPreferences Vitaliy Vkey vlen voidpf vp vvv wb Wconversion Weimer werror whoami WinAnsiEncoding wincrypt WindowsCryptProvider Wold writeBinary writeBits writeBitsSigned writeBuffer writeEncryptionDictionary writeHeader writeHGeneric writeHintStream writeHPageOffset writeHSharedObject writeLinearized writeNext writeObject writeObjectStream writeObjectStreamOffsets writePad writeStandard writeString writeStringNoQDF writeStringQDF writeToken writeTrailer writeXRefStream writeXRefTable Wsign www wxWindows xA xa xABUL xbebfbc xbf xc xcc xD xDC xeaa xee xefcdab xF xf xFC xfcefa xfde xfe xff xffeff xfffa xfffe xgen xhtml xml XMLLINT xmlns xobj xobject XObject xor XP xpacket xpdf XPOST XRef xref xrefEntry xrefFirst XRefStm xrefStream xrefTable xsl XSLTPROC XXX xy yn yuiop yyyymmdd z's zalloc Zarko Zarko's zdata Zeroize zeroizing zfree zlib zstream zzzzz zzzzzz qpdf-8.0.2/README-maintainer0000644000064100006410000002403713247541377013561 0ustar ejbejbROUTINE DEVELOPMENT Default: ./configure --enable-werror --disable-shared Debugging: ./configure CFLAGS="-g" CXXFLAGS="-g" --enable-werror --disable-shared Memory checks: ./configure CFLAGS="-fsanitize=address -g" \ CXXFLAGS="-fsanitize=address -g" \ LDFLAGS="-fsanitize=address" \ --enable-werror --disable-shared CODING RULES * Avoid atoi. Use QUtil::string_to_int instead. It does overflow/underflow checking. * Remember to avoid using `operator[]` with `std::string` or `std::vector`. Instead, use `at()`. See README-hardening.md for details. RELEASE PREPARATION * Each year, update copyright notices. Just do a case-insensitive search for copyright. Don't forget copyright in manual. Also update debian copyright in debian package. Last updated: 2018. * Check all open issues in the sourceforge trackers and on github. * Check `TODO` file to make sure all planned items for the release are done or retargeted. * Run a spelling checker over the source code to catch errors in variable names, strings, and comments. ispell -p ispell-words **/*.hh **/*.cc manual/* * If needed, run large file and image comparison tests. Configure options: --enable-test-compare-images --with-large-file-test-path=/path For Windows, use a Windows style path, not an MSYS path for large files. * Test with clang. Pass `CC=clang CXX=clang++` to `./configure`. * Test build on a mac. * Test with address sanitizer as described above. * A small handful of additional files have been taken from autotools programs. These should probably be updated from time to time. * `config.guess`, `config.sub`, `ltmain.sh`, and the `m4` directory: these were created by running `libtoolize -c`. To update, run `libtoolize -f -c` or remove the files and rerun `libtoolize`. * Other files copied as indicated: ``` cp /usr/share/automake-1.11/install-sh . cp /usr/share/automake-1.11/mkinstalldirs . ``` The entire contents of the `m4` directory came from `libtool.m4`. If we had some additional local parts, we could also add those to the `m4` directory. In order for this to work, it is necessary to run `aclocal -I m4` before running `autoheader` and `autoconf`. The `autogen.sh` script handles this. * If any interfaces were added or changed, check C API to see whether changes are appropriate there as well. If necessary, review the casting policy in the manual, and ensure that integer types are properly handled. * Increment shared library version information as needed (`LT_*` in `configure.ac`) * Test for binary compatibility: * Check out the last release * ./autogen.sh && ./configure --enable-werror && make -j$(nproc) * Check out the current version * ./autogen.sh && ./configure --enable-werror && make -j$(nproc) build_libqpdf * Checkout the last release * make check NO_REBUILD=1 * Make sure version numbers are consistent in the following locations: * configure.ac * libqpdf/QPDF.cc * manual/qpdf-manual.xml `make_dist` verifies this consistency. * Update release notes in manual. Look at diffs and ChangeLog. Update release date in `manual/qpdf-manual.xml`. Remember to ensure that the entities at the top of the document are consistent with the release notes for both version and release date. * Add a release entry to ChangeLog. CREATING A RELEASE * Be sure that the local git clone's HEAD is a commit that has upstream/master as an ancestor and that can be pushed to my fork. We will be generating releases and tagging this commit, which will be pushed to master as part of the release process. * Create source release: version=x.y.z \rm -rf /tmp/qpdf-$version git archive --prefix=qpdf-$version/ HEAD . | (cd /tmp; tar xf -) pushd /tmp ./qpdf-$version/make_dist gpg --detach-sign --armor qpdf-$version.tar.gz Move qpdf-$version.tar.gz and qpdf-$version.tar.gz.asc to the release archive area. For iterating on the release during testing, pass `--no-tests` to make_dist to skip the test suite. * Generate a signed AppImage using the docker image in appimage. Arguments to the docker container are arguments to git clone. The build should be made off the exact commit that will be officially tagged as the release but built prior to tagging the release. Example: cd appimage docker build -t qpdfbuild . \rm -rf /tmp/build mkdir -p /tmp/build cp -rLp ~/.gnupg/. /tmp/build/.gnupg docker run --privileged -ti --rm -v /tmp/build:/tmp/build qpdfbuild https://github.com/jberkenbilt/qpdf -b work The AppImage in /tmp/build/qpdf/appimage/build should be called qpdf-$version-x86_64.AppImage. Copy qpdf*AppImage* (AppImage and zsync) files to the release archive area. * Create Windows binary releases. In Windows: * Extract the source distribution * From there, unzip the binary distribution of the external libraries * Open windows for 32-bit and 64-bit compilation environments that support msvc and mingw * Disable antivirus software. For bitdefender, open, select the "B" shield, and go to "View Features". Disable all features. Disable antivirus until next restart. * In each window simultaneously, run ./make_windows_releases * NOTE: For now, test failure is not fatal for 32-bit Windows builds because of unknown fragility in the test environment. Check test logs carefully. Tests must pass on 64-bit. * Copy the four resulting zip files into the release archive area * Re-enable anti-virus software * Build and test the debian package * Sign the releases. The release archive area should contain the Windows binaries, the AppImage, the source tarball, and the source tarball signature. \rm -f *.{md5,sha1,sha512} files=(*) for i in md5 sha1 sha512; do ${i}sum $files >| qpdf-$version.$i gpg --clearsign --armor qpdf-$version.$i mv qpdf-$version.$i.asc qpdf-$version.$i done chmod 444 * chmod 555 *.AppImage * When creating releases on github and sourceforge, remember to copy `README-what-to-download.md` separately onto the download area if needed. * Push the master branch to github. Create and push a signed tag. This should be run with HEAD pointing to the tip of master. git rev-parse master @ git push upstream master git tag -s release-qpdf-$version HEAD -m"qpdf $version" git push upstream release-qpdf-$version * Create a github release after pushing the tag. `gcurl` is an alias that includes the auth token. # Create release url=$(gcurl -s -XPOST https://api.github.com/repos/qpdf/qpdf/releases -d'{"tag_name": "release-qpdf-'$version'", "name": "qpdf '$version'", "draft": true}' | jq -r '.url') # Get upload url upload_url=$(gcurl -s $url | jq -r '.upload_url' | sed -E -e 's/\{.*\}//') echo $upload_url # Upload all the files. You can add a label attribute too, which # overrides the name. for i in *; do mime=$(file -b --mime-type $i) gcurl -H "Content-Type: $mime" --data-binary @$i "$upload_url?name=$i" done If needed, go onto github and make any manual updates such as indicating a pre-release, adding release notes, etc. # Publish release gcurl -XPOST $url -d'{"draft": false}' * Upload files to sourceforge. Make the source package the default for all but Windows, and make the 32-bit mingw build the default for Windows. Publish a news item manually on sourceforge. * Update the web page to indicate the new version and to put the new documentation in the `files` subdirectory of the website on sourceforge.net. * Email the qpdf-announce list. OTHER NOTES To construct a source distribution from a pristine checkout, `make_dist` does the following: ./autogen.sh ./configure --enable-doc-maintenance --enable-werror make build_manual make distclean To create a source release of external libs, do an export from the version control system into a directory called `qpdf-external-libs` and just make a zip file of the result called `qpdf-external-libs-src.zip`. See the README.txt file there for information on creating binary external libs releases. Run this from the external-libs repository: git archive --prefix=external-libs/ HEAD . | (cd /tmp; tar xf -) cd /tmp zip -r qpdf-external-libs-src.zip external-libs When releasing on sourceforge, `external-libs` distributions go in `external-libs/yyyymmdd`, and qpdf distributions go in `qpdf/vvv`. For local iteration on the AppImage generation, follow the release procedures for building the AppImage, but instead of passing git clone options to the docker command, copy qpdf to /tmp/build. You can also pass -e SKIP_TESTS=1 to docker to skip the test suite, useful for rapid iteration. Set up /tmp/build as in the release process. cp -a $PWD /tmp/build docker run --privileged -ti --rm -e SKIP_TESTS=1 -v /tmp/build:/tmp/build qpdfbuild GENERAL BUILD STUFF QPDF uses autoconf and libtool but does not use automake. The only files distributed with the qpdf source distribution that are not controlled are `configure`, `libqpdf/qpdf/qpdf-config.h.in`, `aclocal.m4`, and some documentation. See above for the steps required to prepare a source distribution. If building or editing documentation, configure with `--enable-doc-maintenance`. This will ensure that all tools or files required to validate and build documentation are available. If you want to run `make maintainer-clean`, `make distclean`, or `make autofiles.zip` and you haven't run `./configure`, you can pass `CLEAN=1` to make on the command line to prevent it from complaining about configure not having been run. If you want to run checks without rerunning the build, pass `NO_REBUILD=1` to make. This can be useful for special testing scenarios such as validation of memory fixes or binary compatibility. LOCAL WINDOWS TESTING PROCEDURE This is what I do for routine testing on Windows. From Linux, run `./autogen.sh` and `make autofiles.zip CLEAN=1`. From Windows, git clone from my Linux clone, unzip `external-libs`, and unzip `autofiles.zip`. Look at `make_windows_releases`. Set up path the same way and run whichever `./config-*` is appropriate for whichever compiler I need to test with. Start one of the Visual Studio native compiler shells, and from there, run one of the msys shells. The Visual Studio step is not necessary if just building with mingw. qpdf-8.0.2/README.md0000644000064100006410000002646313247541377012040 0ustar ejbejb# QPDF [![Build Status](https://travis-ci.org/qpdf/qpdf.svg?branch=master)](https://travis-ci.org/qpdf/qpdf) [![QPDF](logo/qpdf.svg)](http://qpdf.sourceforge.net) This is the QPDF package. Information about it can be found at http://qpdf.sourceforge.net. The source code repository is hosted at github: https://github.com/qpdf/qpdf. QPDF is copyright (c) 2005-2018 Jay Berkenbilt Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. You may also see the license in the file [LICENSE.txt](LICENSE.txt) in the source distribution. Versions of qpdf prior to version 7 were released under the terms of version 2.0 of the Artistic License. At your option, you may continue to consider qpdf to be licensed under those terms. Please see the manual for additional information. The Artistic License appears in the file [Artistic-2.0](Artistic-2.0) in the source distribution. # Prerequisites QPDF depends on the external libraries [zlib](http://www.zlib.net/) and [jpeg](http://www.ijg.org/files/). The [libjpeg-turbo](https://libjpeg-turbo.org/) library is also known to work since it is compatible with the regular jpeg library, and QPDF doesn't use any interfaces that aren't present in the straight jpeg8 API. These are part of every Linux distribution and are readily available. Download information appears in the documentation. For Windows, you can download pre-built binary versions of these libraries for some compilers; see [README-windows.md](README-windows.md) for additional details. QPDF requires a C++ compiler that works with STL. Your compiler must also support `long long`. Almost all modern compilers do. If you are trying to port qpdf to a compiler that doesn't support `long long`, you could change all occurrences of `long long` to `long` in the source code, noting that this would break binary compatibility with other builds of qpdf. Doing so would certainly prevent qpdf from working with files larger than 2 GB, but remaining functionality would most likely work fine. If you built qpdf this way and it passed its test suite with large file support disabled, you could be confident that you had an otherwise working qpdf. # Licensing terms of embedded software QPDF makes use of zlib and jpeg libraries for its functionality. These packages can be downloaded separately from their own download locations, or they can be downloaded in the external-libs area of the qpdf download site. Please see the [NOTICE](NOTICE.md) file for information on licenses of embedded software. # Building from a pristine checkout When building qpdf from a pristine checkout from version control, documentation and automatically generated files are not present. You may either generate them or obtain them from a released source package, which includes them automatically generated files. If you want to grab just the automatic files, extract a source distribution in a temporary directory, and run `make CLEAN=1 autofiles.zip`. This will create a file called `autofiles.zip`, which can you can extract in a checkout of the source repository. This will enable you to run `./configure` and build normally. This approach is almost certainly required on Windows because of issues running autoconf. This workaround is also described in [README-windows.md](README-windows.md). For UNIX and UNIX-like systems, you can build the automatically generated files yourself, but you must have some additional tools installed to build from the source repository. To do this, you should have `autoconf` installed (`automake` is not required). Then run ``` ./autogen.sh ./configure --enable-doc-maintenance make make install ``` If you don't have Apache fop and the docbook stylesheets installed, you won't be able to build documentation. You can omit `--enable-doc-maintenance` and produce working qpdf software that passes its test suite, but `make install` will not install documentation files. Depending on your purposes, this may be fine, or you can grab the docs from a source distribution. # Building from source distribution on UNIX/Linux For UNIX and UNIX-like systems, you can usually get by with just ``` ./configure make make install ``` Packagers may set DESTDIR, in which case make install will install inside of DESTDIR, as is customary with many packages. For more detailed general information, see the "INSTALL" file in this directory. If you are already accustomed to building and installing software that uses autoconf, there's nothing new for you in the INSTALL file. Note that qpdf uses `autoconf` but not `automake`. We have our own system of Makefiles that allows cross-directory dependencies, doesn't use recursive make, and works better on non-UNIX platforms. # Building on Windows QPDF is known to build and pass its test suite with mingw (latest version tested: gcc 7.2.0), mingw64 (latest version tested: 7.2.0) and Microsoft Visual C++ 2015, both 32-bit and 64-bit versions. MSYS2 is required to build as well in order to get make and other related tools. See [README-windows.md](README-windows.md) for details on how to build under Windows. # Additional Notes on Build QPDF's build system, inspired by [abuild](http://www.abuild.org), can optionally use its own built-in rules rather than using libtool and obeying the compiler specified with configure. This can be enabled by passing `--with-buildrules=buildrules` where buildrules corresponds to one of the `.mk` files (other than `rules.mk`) in the make directory. This should never be necessary on a UNIX system, but may be necessary on a Windows system. See [README-windows.md](README-windows.md) for details. There is a `gcc-linux.mk` file enable `gcc-linux` build rules, but it is intended to help test the build system; Linux users should build with the `libtools` rules, which are enabled by default. The QPDF package provides some executables and a software library. A user manual can be found in the "doc" directory. The docbook sources to the user manual can be found in the `manual` directory. The software library is just `libqpdf`, and all the header files are in the `qpdf` subdirectories of `include` and `libqpdf`. If you link statically with `-lqpdf`, then you will also need to link with `-lz` and `-ljpeg`. The shared qpdf library is linked with `-lz` and `-ljpeg`, none of qpdf's public header files directly include files from `libz`, and only `Pl_DCT.hh` includes files from `libjpeg`, so for most cases, qpdf's development files are self contained. If you need to use `Pl_DCT` in your application code, you will need to have the header files for some libjpeg distribution in your include path. To learn about using the library, please read comments in the header files in `include/qpdf`, especially `QPDF.hh`, `QPDFObjectHandle.hh`, and `QPDFWriter.hh`. These are the best sources of documentation on the API. You can also study the code of `qpdf/qpdf.cc`, which exercises most of the public interface. There are additional example programs in the examples directory. Reading all the source files in the `qpdf` directory (including the qpdf command-line tool and some test drivers) along with the code in the examples directory will give you a complete picture of every aspect of the public interface. # Additional Notes on Test Suite By default, slow tests and tests that require dependencies beyond those needed to build qpdf are disabled. Slow tests include image comparison tests and large file tests. Image comparison tests can be enabled by passing `--enable-test-compare-images` to ./configure. This was on by default in qpdf versions prior to 3.0, but is now off by default. Large file tests can be enabled by passing `--with-large-file-test-path=path` to `./configure` or by setting the `QPDF_LARGE_FILE_TEST_PATH` environment variable. On Windows, this should be a Windows path. Run `./configure --help` for additional options. The test suite provides nearly full coverage even without these tests. Unless you are making deep changes to the library that would impact the contents of the generated PDF files or testing this on a new platform for the first time, there is no real reason to run these tests. If you're just running the test suite to make sure that qpdf works for your build, the default tests are adequate. The configure rules for these tests do nothing other than setting variables in `autoconf.mk`, so you can feel free to turn these on and off directly in `autoconf.mk` rather than rerunning configure. If you are packaging qpdf for a distribution and preparing a build that is run by an autobuilder, you may want to add the `--enable-show-failed-test-output` to configure options. This way, if the test suite fails, test failure detail will be included in the build output. Otherwise, you will have to have access to the `qtest.log` file from the build to view test failures. The debian packages for qpdf enable this option. # Random Number Generation By default, when `qpdf` detects either the Windows cryptography API or the existence of `/dev/urandom`, `/dev/arandom`, or `/dev/random`, it uses them to generate cryptography secure random numbers. If none of these conditions are true, the build will fail with an error. This behavior can be modified in several ways: * If you configure with `--disable-os-secure-random` or define `SKIP_OS_SECURE_RANDOM`, qpdf will not attempt to use Windows cryptography or the random device. You must either supply your own random data provider or allow use of insecure random numbers. * If you configure qpdf with the `--enable-insecure-random` option or define `USE_INSECURE_RANDOM`, qpdf will try insecure random numbers if OS-provided secure random numbers are disabled. This is not a fallback. In order for insecure random numbers to be used, you must also disable OS secure random numbers since, otherwise, failure to find OS secure random numbers is a compile error. The insecure random number source is stdlib's `random()` or `rand()` calls. These random numbers are not cryptography secure, but the qpdf library is fully functional using them. Using non-secure random numbers means that it's easier in some cases to guess encryption keys. If you're not generating encrypted files, there's no advantage to using secure random numbers. * In all cases, you may supply your own random data provider. To do this, derive a class from `qpdf/RandomDataProvider` (since version 5.1.0) and call `QUtil::setRandomDataProvider` before you create any `QPDF` objects. If you supply your own random data provider, it will always be used even if support for one of the other random data providers is compiled in. If you wish to avoid any possibility of your build of qpdf from using anything but a user-supplied random data provider, you can define `SKIP_OS_SECURE_RANDOM` and not `USE_INSECURE_RANDOM`. In this case, qpdf will throw a runtime error if any attempt is made to generate random numbers and no random data provider has been supplied. If you are building qpdf on a platform that qpdf doesn't know how to generate secure random numbers on, a patch would be welcome. qpdf-8.0.2/appimage/0000755000064100006410000000000013247541377012331 5ustar ejbejbqpdf-8.0.2/appimage/build-appimage0000755000064100006410000001720613247541377015145 0ustar ejbejb#!/bin/bash # Copyright (c) 2018 Jay Berkenbilt and Kurt Pfeifle # # This script is mainly meant to build an 'AppImage' from GitHub # sources of QPDF via Travis CI on an Ubuntu Trusty (14.04) LTS system # (see https://appimage.org/). # # But it also allows Linux users to build such an AppImage on their # own systems. Please read 'README.md' from the top level Git sources # to see what preconditions you must meet to build QPDF in general. # The same apply to build an AppImage. Then follow these three steps: # # 1. Clone Git sources: `git clone https://github.com/qpdf/qpdf.git git.qpdf` # 2. Change into git dir: `cd git.qpdf` # 3. Run this script: `bash appimage/build-appimage` # # The resulting AppImage will be placed in # './appimage/build/QPDF-x86_64.AppImage'. Read the output of the # script for hints in case something goes wrong. # # You may pass custom options for the configure step by setting them # into the 'CUSTOM_CONFIGURE' environment variable and exporting it # before running this script. For example: # # export CUSTOM_CONFIGURE=" --enable-test-compare-images [--more-other-options]" # # ATTENTION: # # 1. To build the AppImage you should have a working internet # connection. Reason: the script downloads the most recent # 'linuxdeployqt' utility for building the AppImage. # 2. If you build the AppImage on a too recent Linux distribution, # it may only work on the exact distribution you build it on. For # an AppImage to work on a wide range of different distributions # from the last 3-4 years if should be built on Ubuntu Trusty # (14.04). set -ex # Support for signing the AppImage (only by original maintainer): sign= if [ "x$1" == "x--sign" ]; then sign=--sign fi # Check if we are on Ubuntu Trusty _osversion=$(cat /etc/os-release | grep PRETTY_NAME | awk -F'=' '{print $2}' | sed 's#"##g') # Warn users building the AppImage locally: if [[ ! $_osversion =~ Ubuntu\ 14.04.*\ LTS ]]; then set +x echo "" # 0 1 2 3 4 5 6 7 # 01234567890123456789012345678901234567890123456789012345678901234567890123456789 echo "+===========================================================================+" echo "|| WARNING: You are about to build a QPDF AppImage on a system which is ||" echo "|| NOT Ubuntu 14.04 LTS ('Trusty'). ||" echo "|| ||" echo "|| It is recommended that you use a distribution that is at least a ||" echo "|| few years old to maximize the number of Linux distributions the ||" echo "|| resulting AppImage will work on. AppImages often don't work on ||" echo "|| distributions older than the one they were built on because of ||" echo "|| standard library differences. ||" echo "+===========================================================================+" echo "" set -x fi # From where do we run this script? here="$(dirname $(readlink -f "$0"))" top=$(dirname $here) # Move to root of GitHub sources: cd $top # Set 'appdir' environment variable name: appdir=$here/build/appdir # Clean up stuff from previous build attempts: rm -rf $here/build # Prepare build of QPDF from sources: ./autogen.sh ./configure --prefix=/usr --enable-werror \ --enable-show-failed-test-output \ --enable-html-doc --enable-pdf-doc "$CUSTOM_CONFIGURE" # Build! make -j$(nproc) if [ "$SKIP_TESTS" = "" ]; then # Run built-in QPDF checks: make check fi # Prepare AppDir which is the basis for the AppImage: mkdir -p $appdir # Install build result into AppDir: make install DESTDIR=$appdir; find $appdir # Change into build directory: cd $here/build # Don't bundle developer stuff rm -rf appdir/usr/include appdir/usr/lib/pkgconfig appdir/usr/lib/*.{a,la,so} # Copy icon which is needed for desktop integration into place: for width in 64 128 256 512; do dir=appdir/usr/share/icons/hicolor/${width}x${width}/apps mkdir -p $dir inkscape -z -e qpdf-tmp.png -w $width -b white $top/logo/qpdf.svg convert qpdf-tmp.png -gravity center -background white -extent ${width}x${width} $dir/qpdf.png rm qpdf-tmp.png done # Copy .desktop and .appdata.xml metadata for desktop integration into place: for i in appdir/usr/share/applications; do mkdir -p $i cp $top/appimage/qpdf.desktop $i done for i in appdir/usr/share/metainfo; do mkdir -p $i cp $top/appimage/qpdf.appdata.xml $i done for i in appdir/usr/share/doc/qpdf; do mkdir -p $i cp $top/README* $i cp $top/NOTICE.md $i/README-notice.md cp $top/LICENSE.txt $i cp $top/Artistic-2.0 $i/Artistic-LICENSE.txt cp $top/ChangeLog $i/README-ChangeLog cp $top/TODO $i/README-todo done # The following lines are experimental (for debugging; and to test # support for unexpected future binaries added to QPDF): for i in /usr/bin/env /bin/less /bin/busybox; do cp $i appdir/usr/bin/ done ls -l /usr/bin/env /bin/less /bin/busybox # Fetch 'linuxdeployqt' which will transform the AppDir into an AppImage: wget -c "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage" chmod a+x linuxdeployqt*.AppImage # Set up a clean environment: unset QTDIR; unset QT_PLUGIN_PATH; unset LD_LIBRARY_PATH # Let 'linuxdeployqt' do its first stage of work: ./linuxdeployqt*.AppImage appdir/usr/share/applications/*.desktop -bundle-non-qt-libs # In addition to the main executable, we have additional ones to process ./linuxdeployqt*.AppImage appdir/usr/bin/zlib-flate -bundle-non-qt-libs # To eventually generate the AppImage we extract the linuxdeployqt # AppImage to get access to the embedded 'appimagetool': ./linuxdeployqt*.AppImage --appimage-extract # We want to run our custom AppRun script. # Replace symlink with custom script rm appdir/AppRun; cp $top/appimage/AppRun appdir; chmod a+x appdir/AppRun # If we are not on Ubuntu Trusty, we need to disable 'appstreamcli' validation: if [[ $_osversion =~ Ubuntu\ 14.04.*\ LTS ]]; then appimagetool_param="" else appimagetool_param="-n" set +x echo "" echo " Running 'appimagetool' with '-n' parameter..." echo " Reason: this does not seem to be a Travis CI build running on" echo " Ubuntu Trusty 14.04." echo " '-n' disables checking of AppStream data by the 'appstreamcli'" echo " utility since post-Trusty versions have incompatible changes." echo "" set -x fi # Set up a version string to include in the AppImage name MAJOR_QPDF_VERSION=$( ./appdir/usr/bin/qpdf --version | grep "qpdf version" | awk '{print $3}' ) declare -a UPDATE_INFO if [ "$TRAVIS_JOB_NUMBER" != "" ]; then VERSION=${MAJOR_QPDF_VERSION}-continuous-${TRAVIS_JOB_NUMBER}-$(date "+%Y-%m-%d")-git.$(git rev-parse --short HEAD) # No update info supported for travis builds for now. else VERSION=${MAJOR_QPDF_VERSION} UPDATE_INFO=(-u "gh-releases-zsync|qpdf|qpdf|latest|qpdf-*x86_64.AppImage.zsync") fi # Remove the default AppRun/symlink and use our own custom AppRun script rm appdir/AppRun; cp $top/appimage/AppRun appdir; chmod a+x appdir/AppRun # Finally, generate the AppImage: PATH=./squashfs-root/usr/bin:$PATH ./squashfs-root/usr/bin/appimagetool $sign $UPDATE_FLAG ${UPDATE_INFO[*]} $appimagetool_param appdir qpdf-$VERSION-x86_64.AppImage set +x # Tell everyone where our result is stored: echo "" echo "=============================================================================" echo " === AppImage is ready in $top/appimage/build ===" echo "=============================================================================" echo "" qpdf-8.0.2/appimage/Dockerfile0000644000064100006410000000055413247541377014327 0ustar ejbejbFROM ubuntu:14.04 RUN apt-get update && \ apt-get -y install screen autoconf git \ build-essential zlib1g-dev libjpeg-dev \ docbook-xsl fop xsltproc \ inkscape imagemagick busybox-static wget fuse && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* COPY entrypoint /entrypoint RUN chmod +x /entrypoint ENTRYPOINT [ "/entrypoint" ] qpdf-8.0.2/appimage/qpdf-screenshot.jpeg0000644000064100006410000224735113247541377016323 0ustar ejbejbJFIFExifMM*>F(iNxASCIIScreenshot8Photoshop 3.08BIM8BIM%ُ B~" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzC C  2 ?$?JKW _sր[4)࢒`Az~|׵)?KHR+ H  M_}|!8;`98қn2K,9W|ы$收?"G?U]~{eKF(1Rv@kiǂyfPLy,e]sggyjޭ;Zy{8(y#?2XN-E%Nu:rx'vonVŭYyz_Lǩt ɯP]SմO׊<9:bv[K,ĒCG>(ji>n 6s>QUBDmq1_3e*JSuZҵ&?U*oVi?qL Tha&+Tү-5 H^l>62r1־B%쯯t\:#_Ѣ.l)&Kd.a@R8WuxDmLxL~ֳ1A%O*Yp8n>hJ[]V}sDh+-N*7¶>gR t+ѥUKRR5?{IZWJw'lPx= rrէ(^ͩR~+;`h֝㿉!Ml+X!7"/0`G?x~_5AR~ؿ| 6/ga΢-b+byvQi< fATU#`VM;{R+n'F늳<&76j񟴯Z4i5q4䗸:#n'Bopg ~$7;wڔw QiVx䀦Yq۲|>i9,MKA]~H0Kl8=oxF. 727eh+INc 'I6=IBV\քyd'vZ6->&xsTuKM8y]L Hݷvqu{f~MS|3mƹ%l,Q>֕A0yBc'q^ߡG>+|;|g{'*mR`jʔf~*rz4 [N]=xˁi 'Տ# އhK[o9Wh]dd}B&L:&b[YNr0Gj?~1~џM>#G$!);Qa9HۀUe+€nj&w4!*1ڛxqp+MFJ򼗺ZgHㆧ<<&5QdNqjy/uCt)Mu9}H 3J G۞}@G*ɿ=9aWXg(鴫S5S8pܱuG ?vx05%%7Q8]CޫKEc]j|Q,nѠBL'>i5[%p^ j.yYe?c23|iӔviikF?H-2^3\%zT-٦x7oh-Z[q: h^W#*{|Kxڜ:Jj/i26Dgqa=+zO#L52_EIo"6;[EPyG!PB>#~IwOxUI"ݠa2H eX:;v)}#&.yZU\EQTRqq~&M(B-k/y[<`S%NbJMj"ֲ=__ xgVԴh'̈F1O? ǺhouČX[s(H "Vm GD_c{ Aaj,= zn,OudK$C29Ie kok߉`M^io ylm'ېVrFӾ0\U2yʨa#'V\'R0J.ɻ IEC闚UΞGSG Qάi}aPrɻrN Ɵguĩ\\xB]V!'ib#05e__O^.^< Z2yL.ea,I)+ò%H4縉nn .x,$fo1ٟ 3'UʭfڳII'etk3Yqx|8=y:ܶ jJ6K(E;'$ݛ_nz>)A'<3*`[mly JD?$ __:τ~#Ufm=V9.1θV|9w37^ oMU#[!]Kl 4 WU+Q^.W*qhJ)(RVܴZ+&}$ K C gkJj\:Jm^+n:+)5v}fi ڋ͏oQ\\qs9"khdLddfQr:/(mHKxMTI$l}I&+Z,_-u&7[c${pp{a$ 7L*qKKGi:a2ʯᏉik_t ti=Yl%'~2Wo/ڇߴ˯zHYF9.VWPg"W\'xngRtj)^qRTNM%\ϗ)KË\`+b%ZN*?eIR:TQtY4''(/ߎr3淭0áW9{srT?s*g)V:߷//wG4pݍ`g}}kCUh/lu_n_Z_O ~?ST{z9펫W+7G?펧AhZ|4h꣜=hQ\|4s:r+Ts:G&nXwI~\cޜ'oSG8h- \޴ߴ?Qܾ}}kCUh꣜=}}hr%>UΊޣ \=;S/lu IWT}q{czh-rhoZ_7펫{}}kCv4h꣜=}}hpWT}pSwUƛ|lQMhC>nj?NH=:ϷGۿڮWn۩:Ə7rf=9 :pP\h7 5\~|7Oz݂rמA9$WOi1M2C$n$+߅ߵo[ºå q@k*X2N'x+Xm> +H"Bw)WH0I =R @0U^ JtRT߳QvlVmnҨ3Tt (җ騻A-ʰ:~ N0+E(iINZrɶebzS-4]gǃ|IsQҮb*4$*vk?tx5+Z>D6O(V$DV8n; NqpnPjN-fm]#?Q_ڻbs]~9t[Vimm ص$|K(ܕ9 7^~ x)ww,[<ɕe*H> ex_L>*6jMNJR{;]nx8 k }'THSvOI=ev~R}z׉"Ρiz Oq4*!,c?38_nW𝏂>,ku:mYPG8T;N8@NB_ ӷ-|S `Ol> #Z|nҊprsnVz׃\ UF-}i%i=-g"Bd?_8zuXl5/VvU]KϹjz=奯`& ]ZQn)?+uǼ 嘩8Δ^ªZzlݬCMzwg\xt}N[ f>yM"S ^Z1TYk|] tYI84k|(F)J2JQMy4z⷇>|5vΣūOhC!#g]k`DŽGő3>oZ/zWCzTaI8`iT|~8i'-VF)$G|+IK4hjN~(Ki''xF7yx ]d|6Yi^*it?em廵S0UQI*).^ LB\^)VXaۤIHUf-_ aW,(Yʴn߲v-䔝Ous̩_Mה;uyJOQĔW=Ec㎺u˝*'͵-6Hq^ sQWyF/ҍ*q0VvI$m?AW,4aPnvRJݶL}DǗ˗ۖZֶs2f:1ϕrr[ܼӖֶo(IGi:}}?h^6,Js#xJd(l\>O%AޠvZvBv>uM`W 75b6<1N4!O/Op$ܣk[+~wC4)eTʕCܓiGMi6ַI?yKHh=)8H斣Rt(aJ\("M 1< ."*q]?ye4k֧f?d˥ڣ.>Sor6Z?%QJ4\q֍BCTi'J̎FY,F\7$e(2Z9յ/?J˔*Lߡ^'Z3]eC\R)4bHqPGJ|~Me4pZ$)95)Ŕ7AKPG"YqQVAqnI# FB@ܾo4X{@hZ従qg:XN#hB3YOYFq%w~45$tSg4{DŽuXٹ{7O' 1!NpsҼSֹ*N9(ۙ&W\fZ'FE)B4o2_+!j`橡$dՑҺ&2i㚯E1W~3UJMԵ"Ks(PNA' ZGRASu{RSW徦Û:PSӭi͝BZ((G;:lVΙjkh6^ʐ[ۣI,R8Afvb@5@QC]ս  GYfEF@5S0ѡ99^nਜ਼^8YԊ+3Kvly=Whf$d+ GyF)e(QE KSh\\J)0}@r!ir_R\j5W_?|7j+Lmtin mRF[ υ^ܑVqxc?=V$Mo9~k9q<Ѯr`.u[?xNy kҠu>},_[}48BJ$d)Ug4xGoNKdBd"I!A`rc*EԪ]F8]*0'~XjɫHî-+9۫Y5G8QNgj/χBMo _kMZGŸ|)xg<=^izVsiiw2G2JeK)̸'3> ~#EwὟk撩]JGH]2pp;WC^_Cs |.bb򥑕l{xbXt,7>ecycKtܾ$N}f~G;ÿukxJQ֭km1]m/#)Rm3ß([uO}mmW3,fG_.@+O [$J1'HaL|N~ |DX5Ktg42X&%~ hBpnξ(|8|m5|csxOZ=J(bEQ<%sEOk.W/>(xQ V'Tӭ¾X/ښ&ʖ3ɰw:G"Degƿ.aFsRc%RP:iF.>tMEc| `% NH1RT(74_gx _^ .}B?Y"]X%ʲ}D _ֿle:dsI#nXEy_ \;sAh^ӛ[]K_O; F_ڬl7+GS得RSؿ^oڿ!  EƤ\cn. `o^Oiףm+_ m㹇s{cA}F;TOmY٤Tʒ=l;]?z'-Kڪwz lB߆glgsA99C/cكm/ll =l[Me hrp vR]N;j?_o㗋4&tFTθԢ?etwl X*>pA;JrLwg?OW( W/eijXgG:qPH]9 żM4s mJ[YQNyMKsէE*u)Bqvu /ے[8gYܼ^ MAz\],["2Nx#ojY]ct&UյQyNi#|&?mxnOxC5<qk.eP]X8"c72j-o6~*曬5wi&J -Av '8sf/*UT7EJtG(Yhշ5I87|.=gFoEWMܤMs(OksVcwȼ]?g/~08 ?ZZwks w0" 2x2Vg3X_ïS_fTL4\t/Fv;g|Mử?M%$SɖEQ3/7z<%Уӣ)RJu\eC5);VJ<JĜLU2N2XjS)PJu'TV2](rsTW<%6{jsŞ"O$9, y261!PtjWuk[ۈ/&RFXg18 0 py |mY;i t-E׈</Y9PF r_,V h/G݈Ӵ=_W.C$Pp~^uVL ʭJIRN+5(Ό2U s6GIĕ5Vrp:Ti0x3֏ai~ [Ky1)UF8&̎ Nn_aRv}gU S}6!NnO׿-W?"m?e|vaO?Go{੼GKA3yKەo5 l)*ro⒮~~«o~:6ZLjNA/n.-wU 6PB8_#rNêw[˵{;o.d'6ۜJctU5# bROYNm?5}STKs\Wwi%Y#,If$I'i unU<1!wn"ROjSms~'|f-1ʄ#*A#5JPa\0R(Z5ZoF:i2ќ-xӍѣ -Z+?|e|Efo;wɼDHv@OCſLdx?|Ho~'GKZ5՚`Rdw IwIRgc+?c_ eh[OI<8Үu&~숡f|"ɿ! ࢿ~;gVYoYÇpLbp`#,U*RqpT٤d] fO^޵k@ZiqM>q4MMFT_~OQ-Wǐ|D%M jSpwݽ!V8vB0*O>2/wz U3,YϚbM3Rz.O/ |o_&ЮHH G,#79 8Q8 T")FsE7Kރ'YI[?@xNU:NPV Bq[yUF9>o_Y4bNKIןܩ,k60pG}yH'~(J>xN1. XmF p2{W#a^=\ԯ5IΝqbl32OrIU,T_k⟏1w% 'EոSx[ pwrAZq|2$熯JHޏUȧԒo̱#eSg*`4ye*4һRQo_5 OVOk?ss 9|n>N |!t)>8|CִSݍl/'%*1+%m ~ן ]Kߋu?x^M~C6Ҳc)NCy~0~ԟc.55Ixǜq #?gcجMxN(T+JQ橆R4PIU7Ώ8#9S5Tf&1IF:u)E֍(-򪏞&ÿw^c ~8xWDŽ5/Ѯ/nn[D }{dmo5g~8k[Lle"g^cH]eIyx_F#ƤU& J_P̒OI-3>sj:5{{tie]24@YI':m/ipkn}etḷӮeE=#*+w )kD P &,L" ~ iO/#J[[F5蠴lp;d88oiue*_e{Vs~=2ylo{YZ־=Vt?_:jKtD5yxT'U[KWf?}/^ZXtJܸNXTJ=M(vU.>e  KS>wz lB߆g8IO:go>~Ϟ'u W\XhK23d ) ~ɿ?gmGI,s|ڎjG쮎mA|,/&&鿵>xFY}ƺ]j+i=nGs$R۠P mŌ8jF(jn1N1E%ʽۦ yq|=xyjA*5QcMԔJqjs'NOOWXoᗈu}VoxN}bLdEʛl%8l㍣?yxwUxD}aiY1cehV0W~XҮi<_8wQ9';rTKiw|mOs 7I75OD*}-oSVS oGQ}̸7zViyaAfˁ~_,]~|d;_L|;/5]O{y5)B>Xw{ n~w%yNcW *o5].Nϝ/hm2ͫ`Ie{>\8i{~Kڳ](H)Mm=E~Q)qjWZxCOy{3O)U #3 =~f5{u-$ԕTw&kPk'Ï|'tV-ͬtYQC]1@͡&Yizkߥo#^)gГx|J뛕:uMÚ]إ?w*/~?%z64VVMy{Afj6q{\K3^:<2}iNET/ӌ.Zv6|a qK, xػrXYΡİۄ>T п+ƏxUzmΔ[GDJ.%XH@f#~(G~_y'MޗS1ܖi26SNC>+|?aM UkkuK[#q$l2# %p/eZѥJӫN1HաыBn0\_k2L޶#Z WՍl?*ja*sy*8j*\X~پ~R|[y?G1iɨXGipfe!Z@1~ϟ)|O_q𿏵u-7v&[?iJciPTj4jr-~z7Mh|w^!S:̪+B6i=Y^R8pU=u>njNvK'oFuW^IYxVD:,T o(GXI ;MQ+=QX;!Kxpwp xM| M)?>!TO7K4Gi8Q"|# 28??/O㎿Ɵ.-6[i>O:Ls*^xbF"mXcH7v\@^;L_j(JvT8i%lߙ6[9^o#95G'|*? jږei"m'x`_ =W>;YT8FvyhJK|MA>=OZj*%9GR9p!RJ V6!{i>kW߃sg-ޗ%(\U0dL69%Jo[R~ݯ[ߋ:`KY)|Ȥ;V8|#_:=Mίy8 NJ tny$g1>gb8S W>WӓRJ ƥ:3"ۥgr$~xc>0ƶ,կuDҼcX-N-bdcęQp_,zW +Ε6wf4ٛ $ (4V~F\`k-(P:W֫]SZ"WA8\QEcGNjRiφRhE7}}tRnie(QM.QE(U89LB(2 nºU ΚG$[jNx?t_x+wS=E'0dOF<Ų}YLXD<9r8S; 3P'h'u(R X$עevaE]nS]RL:#[9z,bDR OMn1RF[gܡA%, RMZw{<?kJ\lԓVZ7{잍CzZ#HI^E܊#^TRŨı9X .h6 r;+Z:o/8q>[D4ގdok|/kV>|;:bk;Ym&I#l⍐4ppTp}*<D49nI[KlΣQ*`3V<4B[[on7VrWII6ݭuZ=QȲmzE]OeMbdE壱a :Vq\f|Aeqb0KqdDl0QpeNoiZpuՌ47_CEf7ݮ/~tiJʝ޳tXZM}{rvooK+3DuAک.]wR^ߙrZ}anw)g'ZZM^MdZHSj >+h^߆5k=* LeBy7 .Qӆpy⹟ x?ž9՗AVw_20Iq)UBF8Vi|si뮟2`Xk)yu*>ѯ59]L|szU;ˈm<} ^$-gQԨT+fXyJ0Ey+uv )”jjWWk]WbkӬ ak 3%,-Qz'Ȭ0-G#_<}Ϫzkl&{l$`~:\EJ F|_]/ӿC詮-紝n6(Vy5'9-iŽGᾱKCa|1,n"e&IlwψesnOJiqER6wZ˻G (BkFvVߢ8Zr5~??~~'xP4cJMhmṽ!. \?̛@+? x+^=տ W g]ȕhkx.~dC_m-e)+ik|7.XiJ?UWBTdꦣ2R^M4d u4[A:E[Kd>[1#h|ڳtZls?IA7Aڋ8#&c(fwn9jY)SNRvnno>e|ҧ% IrvK$jZ2🃾['lD>V㪺?=|}NRRtJ Jܡg>D>W(4|Eve3ǖ7<;6|O5 F X8KQÝsZ{y,2JW{oo3 _wSA)MJKIу.'(#;\#QT՛컿$E,*pEn|}HAU}a%~^<> vF#i9m61)@m˄.ϟg<S0PM9Ij+/q6_s\ҪFrDz+oW7 υd< ޱYyEFBɒ=1#/|?ⳛ&KVN)-Wxr90\c3 ]Ղ7-%{^Ǐx3J6uk|?p\mDmEzE߲wvNZ5qW̰V"Us(w i'k-Oi6_ |:hS\xQդPpY=Hv >'^E YsTA@ŵ$BU'  z+5ºq#'ddoyPGn|} t#zwzMMδW$y=v<֊g<{2NּEshZK 4).+rxtg 7NUZwg%H$p7yGqWZ KJnn\W+$Nͤo VKqXjŴ8;m%x.UM6>1o{5{"EŕDB"GW sT<;/KE<Ų}YL\Dy/y{9:+k>u; 3P Mkw4e0Yr mޡwO<qgwcUQI<9&iքE~~e-Dr 'Z^/߇QXD'wm-UT+6gceu;7W]?Fr52ډzS⏏$ta7ml#(e8+*rB*ӲZD^52 ,֪8+ӲWm$xSwXj~YO- F <_w>y9m61)@m˄.gLoiiYC Zk20㌨g~56~= k/j4:=EzPҔiƢnZuv{tP)+ݥz8<u_ g?So#^wuohWvr[8^AGwtjM B ߴ/ÿ mƱ˧468CN daaCRRry9ڋ\7J^3dxl=8Ѽ%G4'N_jMQ)IrSy/Rqw~7Q|koTԭc_&p32F#@v?wn _g\b="4>i 7k |fΔ*Rprmy7 6q{*FIթMpyN-.UهBi_|Kq>$CKwf;w㗄baWRN^iє * ^qQ~[J=ٿc_.FtoVRRU)b( iA^-nd~|Ohd'Z텄E4wlYdtlI$T%,W~%|F-Zɷ hir8rfbN2M|/*7~C/oq B6:p`8#{gMcf?-+D|nW' gMIK$\%EhX1Jc 2ja)Qu)>zsR]5m '7;Cσ>Yu7CRRR)ԥV]5ZrN*sF;=oGEx~htp ҿMnIo;ᮉȾѦk]$чIdG;p>n o?kW>7CZ"xmFXb , 5&j?RmR!%ڑl[p.1>cx2= ~qK25 N)iB\Z9*1siAšrMgqfgjWԍ9 25B.~ST Irw'ƯQ_Ţn[Am8~8;2dvKgO6Ohߌ< x+ᶴ^k=2=V6qG!ufi-WSCǟ >amwsW62H`mbY}:kߴ/'5:7XÃ%t,C33;pr їўcCPbŹBnzԽNW=o #^*zDF#,FNSO|_ޥ/%]q>˅R5@?bR^OauhdHlq؃_3D5p!*>Kߔc'w?~bkx|OVª^B_PW?s>,?$w|iFtVwvW6pU%*cTD(`>^šf' o\ee60 J@1iq\ [Kx"C?UXRX$Y&]Q}n$O2]F9N 78T9NT!Rt^ Ҧԟ~hAoa}ZsT^NJ :hՄkTJ']-fŏ|_GuYmBմ¡qmw$qK2du8/?!ԣ'_4[ UI00IQ$^ ?i_&O.[v}|2ՙmzCX(7{=KG5y|Ȳaml@vmpW,g0װSRrN+]i]̵l>3+ߖR-mVުn߿_(\O jP^djQm$]<#~n{OK@OE%uO[sShֱ6"na6GV8/<)▷]/lڤ{Ք&* ;xSU/G?.tجl (D>dm1$}YkϰK*TkF\_+yԔT9~0Y?~|Qx_VTpՋ% KRrKFcN>9lԏ)G|;+ai:%}0&S2IDhPo%hKɢɴ t8je2ΤELA3v;~0|lũ㟋ZVk? 8'5eط7{7+ -N쥶#D\*DyY,QVϳ/W$\#B>֕7$ԩԕIu*M:\)+kY_P_QV8m$rK,r++2 0C?M^Tcj^ i8G)'+[Kuq{sIp=n5ER%(YEE)'bw $v$G|4蚧4xǞ5AgpImvm5I_0倓 @` +ۈaZ\kS')J8hJ3Tb\g81RZMy\J5b')PIye <AsajIJKTA~~G {v ";YG 21IU#9-E+σ|='I S[l%ln l${]8!城~(]eB:rȰ^E F1|Λe|%?i8 x;I}iZ}]/Q.Wppɴ򃷊}%]P]6JnQvQ򏢯XXjX^Yּ[pOԨN1Q-IRv ~  RS/u=.Kd OYy)lXiž>u_E%5_uShǺ Hn >?-uo)G틬|T~/╋T 8m-Kkc"HbBw`UJ* :SU/G?.tجl (D>dm1$}.Ysf~"*aBth֝IJ8h9Fvx(Yi} ex*1Fiz*SR*pWi??)wG|<)ai:%}0&S2IDh'o?}͟-֟Iw3.̌7ޒ%24H0oǿ'~,ڪ[Ef04A'5/)/x4&oIe9"N3⾓38ʏ a2 E)*SQB/v=qv>8#6_ex<;RqJфeQBTφNʴoQg_o/zWydαTa ʥө <ѥ*sr%:RNK[>CbgtSYU^Jx~uE)Ҝ5n:3R [,i&p<(NvKRIk|w__KeNMό-GU$E!1s QXUm=^~돤O-1<W̆ex!۹rPڿį|P׈_x_?W[[w)DsnSb2 a b 8NaaJbg9.wJ4a*3$%MNWp>/=:8|RJ^҅JH3'8\ܪTvKOj>x?yEϼլ^eP$2eS_;fs+~6|QV]ٮyzv6SuU]v vPh|/Wo㟎~_[ GM7WS*%m4M͐2Wa+R]:xYԅJԢ{(GIBT۷.V:<ӫ^%SVJ\5NR/nt!|#_ŝo@ε3rBm<܉&6|su7?j6~!<vc=5}~$|XddSe q;VQs?>ug-`uZDq2Q~` pG5^*#=nOJqNMoL%02jצ&S}Riz'}w9-_gHm7ZΧ]#\/",+Ȫ.YwkG3gsDkQ̪h#ia<x>$~_w?b7*V_% ,UH]73ys _!\ib=IޣtgEާ-Fʹmh({x <`1|.JqOS֩Y΅JrVJJ2*9t߽cc':GAcHWHM6fr^5*y?<Sh^;'>%'AYuWW7H$)|:Žhg~ ]շZ[_v-I$!R 9ےdO{xN:xtԣn#!Y!n"aAU\UH_F|LL9^R{W[J/ ' Jue~E+7|=L\쪹WC"5St$9q-]~|/_Gw5u+(.Teϓ Ey6,߄%߆>w;3\ِ᳸+M#,SD#Dě# Gg]xFjGe<wsŸܒs( |~i/_Lt?;H6ZDJ t@nN $d?GN gJ3BURp(Q:M4kX:J:~ז#JL2'V*)֣k4$/=Cߴ|S5kKit|<}2 eX:!v#)\:[3Xrss/՜9io~x_czEښX?\eiNPj95g~7_rM[:Ӣ-~0gx኶w&#~ο -iUMeZ]ZAsẄ\0oS__3RU~.[@Dۂ[*Ql#K$\>sg9+҆&)7NISO.ݿ??c2J<]9RU'9:pRT'-E!(=)]~f+6|u}o>/nb?-˨< Ewa #_|Jo_xVHgí=h897$ ]Ѯb57@9`3ף~?oHcv>⤸Z/\Z[~k^ d9b܎֎3F R3VғTUEE)S~ŧ/I*p;Oћ<e:Щ:a'9{:-:O5)~NiRۨei{~ÑhIv %f9}7 Kz5FG"xWK]➣_Ƙ ܺʲ> *9*~!yUҬYKkoq=dIrv!p1kRk]_UGŞe֕-_di-l\_5_F3qV—[ܦTHGZ_ua=&V3@e8_!'3'ⷂ^m_ :}vnx(VX] 3*Qw~߇gмW5fQӚ-1\jro y3-@s[h~!Z$. C1IcW۝GpEl*t>nhϓ%ZDriNo2拹̈́glFTMϚ9=UzTbF)ԣ'8˚-3?@6~/ԅlyCO-ywc_%k__jGUt*goIB mI\嵷EX^׾;xoMg&_}Ҥqy& ebAEa$OWRw$"&xISomo,r(܂țA$&(y#(T=*4(M'9hr_,0E(ŧὔ)*k eQ&R犋Qsߨ~9gwc,:[)$)(r7qN}+>%|FIf>xT`2[\GP!~/ݿ_ǿړ.iKn>?Y>~&rt Ȅ&eYJ;('RĮ? Gkca mU]t{gyQ BP ][$axk5g$ 4ѡ¸S ng_ bCB',D^*5۫Nф\[nRDiJxxocNu)bĹVnxNE'){х:|◊.A&u݊\8}# +>$|=?{-OJ1PN-b+b9vQך|i?鿲wOM߉t. kh]<mIIkd4n W>$xkKz'cGav$̍I7)1f5>|=ᇀ|HIV)wk !F`2 ېc@,ᙯhԨ0zlEISNq*SF5#dJQ\^O,-Y¾.ܧR5]QnJ<<*(5IZ2?goǿƿ m'RF _i$|)ԅ>j__k__=1ltQ`L)ی TKvkKKM~W_iMs  /YT?t_ 7UuW^a6knl&oOࢿ]+E|iC0wY%h4OΤR  :SU/G?.tجl (D>dm1$}wy9z*+r*u%*Xx|WMW\ur]G$qV]a\5,e$YNHp˃^BjO>YA 3>8W,rI8Рx+c, )fфkPm?$n.,0%snN _rJMzr*(^سn3]mܮZϡz$+f [Gnf;̺lVZڹYِL jysr T9ɩjO/L*AFc.yh'/MI )XEsF \o΃0iB;w!D=I@*PG2"N&֖ţbЦ f^ƥէi cg`ҳme㪮YjFIxt_mE-%9$ľk_ ZPN~rPM>IޒYC㟉 d8`Jt(q~qMYY]C]еl9e#6@`3_N-__~5YԦs}yi[Xq!2Sѕ[9 ~7zᯈ:㱴9&մ}<3ɻdioAI*q< f'}MǒgRoZ2`,zmspRnMţw?҂JQ^Xjy' iT驶"dspiW_A~_G'DxWMett'W#v2#g/][4o+[-NHenVԭ&(T,{9F|nhЭJU%.Wh改&rqJW+Lp5i.W~krT8=)+N-f4[3(PI¨$OI]j6s|۬l҇L]ncc?fK?|=ޙkM/&9c9B!vj >+D5_AW7W|1ONGvpXsF+ix*1T0sRj9rS}Q&4NNFt51~.)3+)T;J*P&ڔ橧Ui;B59W%6yUA<qQ_iچxvo%xQ##*sӥ}Gό~՞ M~]/X/4aMyʒƻcu}F7>'J.~xR1. XmF p2{Wx)QBe>wu>e(js_GxJ*(q&)Rpհ1 <%5($js_Gx2Q5+~:/~6.~'i6-p% $=s$n>N <#~?>!ZnnѴ+D`{lV۶򴾑1R)TvUrN2cwNJ[Z.G{U)*%ZRmrP(JcwNJ[Z~1R>?>>I"3nj_ca}Q"qż ȉ|]7vgeFIьKMIFKͩ'4,a}uըA(omM4TS ?J 񞥫FD:Ql֚ٴFx0H.8PnȋRU uM_Oo]|OlKw< H${h$qLy8r&F^5gm[K)BN/N"^N5G,irjz^߆ XWǽ}5Žsīh'n兔g7ˆ~@fKfS|#! võx_N:O/FaO繂p 2_Kpu,$reG50eRq82gr2j[{/O1^irU*rTJtvm&W|ok]?:<7vwR) RD }&o?Y5?kE6{+Ck {wHgWl|!( x2$7V2t8*~ոI߽ij^Pp}[3?kf=Wws(ajԚ5\bBoќNp^qhU3F[CӞ i˜dɔ.C`|#[?|ECWq_7 Y46J3E"LJld' x9LQI(B\pIIFmEޭZLJ84eUe*ԝ%0ɥMVw<1VM#V͆k-1΍;XڽY[~{a,NvB)$(g_P ;:;wټDHv@O<Ψe#TԴTUhܗ2W+/GȫA΍jқSTh8Ms)Er;>}?ӥXr<[7*HNX߄f $$Z<3$u*d~ℚ9n#NqSJMK{2hiNM"[BFڣ,PNG/j-nԳ6L788O6'3蟶=ŇO_fVZ%7v(۹v叧ke]j˕sݖmbCPPH`*xQ8|G>FsܕڨQ'E~x %K)|V b(O#FHHC|I`ѲJ| '˟M\ nǃBm>7 o'Uw⾑1B U8J.E*jҩ[+.=/goW4#,MJQIAJUczp\|;* __? ODL{!=md,QN &v:ME4IRc7)JM$x.ܽYNRڌ!E9JRI$>BI/㶏=ׄNw:{ȑȤb8ݤ2.Ӏr\ c{j,?˾=յ? G{mRZ0!9|=icHhT\J1x_J>˚TB|jx{"[Q,AJo\HO >$u_im~ڸ \ăwwKo~uo|A׆t ?ЂD(H~F̭$ە9|>%'ȝ^kocRn_N?sG?e_r^6t~9sw ƿ ~ :Z}&z4qeynxa%ټ8 ࣯GNҾQ<-w-.%Aym0ϴ#U*n>_w RJu1tnDES|vfM/QSZ {hTj}$Ei:+[KtJ 3EBA_1>LO|N|iq/|)}lmo ,W"Df |$h[N?e'3xcZgsjZ?e_&Pd x!`rꘜ5:ktFQqqO{Ӌs%g̻;xi*SS{ҕ*%mx?e JJϙ[gowroxt˻;]yN3T=k|pkWH$N)dtpq__G?X~Ηޗ^Iz4ƅuo4ʫ'(3A >9S3LBIAϗ݂nJvM$կksO|Jy㳬SS TN_v +3jVVIksW5]/U.í[Ki8ѣ|AӾk_oƽZDėmm[#9ݺP}ڿA^ܑVq񔾑|3<2BU/,}NyQs[8FR_}-.xEN<UIpu#R7J{Ywi?-HJWv4|ss,bfhxdI(^)dbWsc'穯Ά? K5:R[8&4l5X*9|3ҌZ値޵|;7>(Eo(ĺ{BԱA9cOjSV??suymGϷ*>'aп[PC߂'?i]sI=.%EG؁UVD,IEBOWL moJRQcm^oC^8<`3.W(*s6F1MRn%gYZ՛C֭Kdw-~U{J?[0-o>:Ԯ|@ΧJ̽e h\*$)U ?W T^i:X_mmE*Xca B6TmOe~MX)5"N䬩i8F6? g^SI֧SJ9)^pj)q9'(嫺n7IB*N$V'}k%Oُ;Ȳ;n#]1EN GscӋ\Jh[d?֙\m*6T%* ۶_a߁Wş#ԾkKE+^6Ȯ% h7OGnjGzR(Rp} kHݮשOh'GK&WQfaSݜ{ ~&>O]|ikVRqI\ J(kMzZhM/ey8IN )2Rm6z~>>+Y 5$mEYgMpAS_] {_7'MM5[:{~Dwd(ڷ o y!U+_tW- h֎1ue:O+ԧQǚҦfx(M%]g|Tp/9բuhqQ*J6j5Ni+]~ [Kߋ~? b? GuiY1tQ/!nW?j1XLךoQYLor$C8CrF%\s^zg~&x.[u$oS #/L{\O[(ƛQj4: Pso9Iϗ]ZsZ4جd O- I/i ʝ n)9Կu,lo-,H,"&Y#~3AP[oZu>}-LS3vZ"$Yx6fRq_.V,louKt2u(R# ,Hk}r)Wxd#Nqvr]RN* pq4q2Q(N+ ބ# ~I8/ϖ.)>> Z&AT9sF)M5hΟZ QjA)^RZJwSӴŝܒNI$M~_JOoꋮi,Ɋ? K+#++@ d +8 9r˱pJQiEPjJg +TWeQʱU%MFp ZTxԄ72_4w|gώ'^3pu;UԠAiR <gyM* 'XҾoytX㹷8BJ$d)U~'|N_?>%߶jβ]]2G5;"TE**I|*]I~H!5.X$HXW$dA1e/6RӍjrTeEӍ(B' Aʤy6s"OC(K3KJzJp$(х:9ʤ=9Urq|_/~|_߉ Ϗ|AktEΧEcmk *HTB6 ZR[kNix^~AXzg~׭Z$LZ5˩c{.rӓWC賑CYqTcxy;J_c~HK኏}4~5Dj+H򥇏p 7 Owoq=υuX u~[F2}靦yo-+Fxg> 7 x͠k ΝxvF+^:~Qy% Ρ\*767Tl-o hzU̦U̪D~bu#cS%adI(JR)ӚJ:Ӕ%iy} |i>x{<`ɩCVs)ԥ4nJee?a_ o/g<]{.vnldeucx zW~"3pJQiEPjJg +T|5fV]IAFp ZP|ѼjBt䯼eMNq~߿3z_ou? 7[ޡX2^u,iۓ#] y;xߴ_hk9c?%|_xQ#īk8c"?Z׈Oo6sݬ+đ q_p((:xZ$pTԭiI)Y|)Z6)~Ea,zӒPt*խi+Eάfз1EjZ'>1]GğZU%i<ˆIb !o?R?r9]. XLIdF|20W0O3g#xg'ׯ,0[8 DqBƥ!Al ~f#(x<ԕjyӌ)R3(8{I->Y.'!ۅYW] XDNe8s8Qt+%xS)o ,ϋaeuZF`#4v$dqɯMAj 4jX=o kזv kwTʼnmbYG J+%geNU=ܒtnh.R_>~<%jW`Ь,,!̑#~I$kn k/kQR:~iUM;ƕ:qSމ}Gܯ8|m*J^ Q~RR(Q˙Wmocm?)SJI4}oytX2 *WޛUxFr[Ƅ|jTykI' #5 Yù\'i% ^<ƚ%uԒKNaxɸK5vQpUI{Hҍiehf,욀5wA|U5|[7핣|Im?W$VJiWH<"&İUG#[TslNNsÓޅN^xIN\X[I#83 &UH:$ .HY{W?ntwYu 76gϸ5O(BfLN21pFJRS^`'|$uFhQ/y>nÿ rsP8wBHy>gv_>?ŷ~-c]鷺tpsq#Gvg8 w?yW*!|ed~aϬ$Ȏ%*bp: -.ӫN' N-9O(کY'> dEfNzTJ SjtR+rY߲ss?V~?Eoy3qeic)0"7Pgy$ڧSG1.m+&>Β $1^7h⏣KfS(՜)>Z5RJj6N2K7/ye_F3JZ) SSPN*5Ԍmӌ4R\K5ut$wv$3Iy$}ofo~_/Cŭ:-ἉbC ²`6g7I2M8dweaP%5%VNq s>hShM8)I+S}_tߍ|7 j:[K)仒7k XУ2Hf$?g!;#I?[jkCmaeik3xTm䐪N(E|}0y2qզ({UzKJ'jKEX)E_8襗ͳ,EEUC+^t)Q\j0Ruym~̚j'O+ׯWiڜwl,eOAu̫O >cO7Sw۱]O<?g#Z<3⫋]>eG@Fq+;8gx.&Ҕ+:7%m-h9OR|1յ[*G]fNK,2G4opABdı@?c=+wu~#_kV~nCSdY,1c#] y$,3I8 |EIZeIdGwfbUGVbp:Wo ʤcS̔:<җi/J/Z0A^ u%Y8TsN^5()>E(ˑ%t~¿QúٟC,370Q#pS/<|zW|XmF6zkGO"DfǹcUV`Kxp诹oYbq8I9#{;ާ+$Ŧ-dv_qw3%ͱtq+N2t'J\Rm-g&e?oῄx#Ǘ~B--XJPZ2p;dbھGrۋ^ɁHd{s;Rvإ&2"qxU> ¤rSMJJ~x5;:_\Օ8Bj&y(ݽow{Wsګ|㔻 <g5.=-)yT䲅}ё_?şgůz7Ħ8Үt&,f oF%ʿ?oW/|vjIk%w1ڧ"RlG'__Mk6)$2ɲxĈC X{_Leu9f{758{>^Whǚmwp6MXZU.ԡUTU!y_,#NZ:F~-|x xWz~}KIkg'!3&^'F2NϹx7OӼ?Z4cOJucr *W˯AѾ|Dgⶏ?{;Yr(C~#:Xj2:1ѧ9ф\+R9Jۚ^~_R}O2Z-e$L>vTM7o|2k]YfJ|edU.>\m|st?nAx-?f]Nm+>#I  č%+/b_1um3šǦ]lAQ,}̛,&x#w # OVeic|X^O8Fa\o1|1-R/1 Mu0Yar #X<J^bV7Bnm\΄RфbsiVwol<L^6zӖ%ӝJzBbFl_c'?f"Y쵡g-pe#3G,q~T*?xWX׋xyMCY]+Mq",xPYIWq a|x,]GN7d*sHs)GݔSNi?x3d0겥QN.*P)Ƭ&(mJ.-]5c/_C|q))#:{yxm- d,W$S9߉?_]_o)]:N$ۣ]\[Ok#"x03.+|+Qh"u7 םX"cj8VMҵZoQIniNiC.+7*_cU  K\ӥ{8~~ߵ?Kߟ/:W&bnl>f"p$F8lҿC{`5wo~/x[<9{k/%mdْSNCq^xQos<}Lu%'FjJ *(ۑ8.tܽ杗3Үq*j0SSPN*5Ԍmӌ4JiwvYYIz_߲ďOyNjw:^"ѵGD˴KIKYE~|K9 :(J3E%(UZi~'8 ʌ)Ο/4*S|ђSGEՏԏۃMo Z]{ÿ ,ܐ+w!_Z .ErGnx9=^W_5Y^&<5yNTӔ\ՍYi%g:\N|odY7KJJU`ԥ&UZu*EE5)ԤQƔ]*~3|6+޿}Ğ,eҬ ex5ěg:rx|M@*Gw*<}`5wo~/x[<9{k/%mdْSNCqbd*P"t <ڤjvGgoi}?} r*lx9jJ0Tuo??7oE+˦w?Ø&g hMb^!C!>fqܑll5x ,:RҩR.)oƿ;gcυ!_xT>7 Ƨe"Hegi{!v`' |'_|AеM&xakw ᤄʯ*䞴W}w xomVqrrw5Qvt7A^a^ ׯ899>iS)Tkݥ&iggv<{`5wo~/x[<9{k/%mdْSNCqry纝F,Ėf'$y$*+O #:5V SSr`_|)VsSPN9StiRs~9*.*,aF<?<?ȉi*/1FQ]]ZXc)wݴi0rQvCdi?'+ľ-?? i&-H 7(pm@KJ $|+T <?]"{8be(G +2+L {aE*.-Fz;65M=\=3㯀͸ޭMT)EA\6ܥEQr&՞ !:3DӴ@Z[]:#t1I I =Hi&,~"eǖ.BĒ19_@l;kP:a,[~e >X`5> |[=~ _r\]^59äTH@T]W gy>iBxTV~J0w6*JWQ&׽ogT>ZNWUN0gS))F1t$ڼc|DMHm 8KlBZ1${oIUi|M5M/lYy+}Nso*.+bTF<2 ?lw8Gzb.,$f*F *ek# ù)}H*RyF8z4JRSS1ĸ.jUrڎWRMN4-Z7T9& 'd;__-]|Oώ|1k;/[moH1`6䍛ۃ^3~Wn|=-_Wŏ_xSn#V>do Ȏ%NxW:p/6ɩt%YƵ!R2,gʝ?PKn;<(a8iWpaNiTR:iK;Zqw٧)i_iu-oRP'TW|YmJ+Ϙ_GË#_x_ߋ+ym&5('x)I}YF:WU ⿆5~ SCVwyyʷw76|? O8|1k#ײڬ2;hH7#cׇ|=g8,F-Tc(8%8SUIӪ" b IBVQxK2Va,Dht4FԔWoM7%NJ!%GAןN᷏` n.?="vj'q-<+|'=t_Nk3lxEvRGI R/1\rUΝHˑI_1w2Jok&{l~kܙ]9N*j1# N7r_5>t7M٤_x=?o%+e㵉V\n T }cs>8?K[Y44ieZi\ۑuj U`*`|I#Ͼ?>x9ZIvfIa/7%8c*m 3kC~KJSi[-7IZ?*?,n~z xsc󊙎2a j)Ek䋌*WNwMlN:xԣ,C\yaN\Jwwn 7Mr =W_xKҵcĚ=׋yC3FGqZֹ~xWþ t[Eye'_y UVw|0~;x3jSZEsu}sXOx#?y G7rZt%)囃m$|Z2wrX+ g]O)0x 5T%Ԅ SJk}j,E)kaSɲ|YaB$ (⒦nIN򚅤*ze ''-+.KJnL\Og#YR( XFwWM?]O֟ྍ0<.jww#yg͞f7yt(~ÉO?j6H #AexrS>Î/ճ,Z:,ksP&<ར9.<9E6}߉~f9NU[7ǬELN'1P&ŧ PJMNIk G)f??{ҴzZ;2؆1. d~l׏|U'g'-&᥸-c.7j1uKyo YV4i ':d//:i Ii=@`h;(噘~/ů? RhvO!\Rp¶nq^[W Ff~J%OoZtE ySFN\o-O/xRU8gu,Dڧ[8UU:J P%xvg_ֵk_uO{]?G^FIWF7U~9@+ҿ~={O jZ.iy^VV?q6#Ɵgg]πP?5ɻӦ-O,mhr߼?f?~x'ů [_bՃ+ G CmA!jӆmJZ#RN_[{tSj.~Q_G/9 Mj`:RԾ*TRjU%A6*qoyWs/l+5mS\m3AΫ{mO8ib&G런sDo i֚gxE\=!L~UlF1NC~T&xC@w0][/-t9JTD *&|v6 +u> |'kIAzm:WŭE#yȌUxvYViuR5*|c '0*Y&AB"0 2Oq_UY+OٛP>/> ޥ.f T͵QIEQӁ_>'+c_ :^S*MT4S^m/ѷ._GlMJVjTT j<ҍJY͸nd__^d95k{5}Ynqaβ)01$*Z|f?xD UN&Ot]RMJXY-yk27nVM'!?_WO?h^ZԱY5v%(`2E!C!VR~9V.6'VxRuNZsXJx'KKޢ\m"jubiѭs*Ua$,T'HƩ̦7*iFOƿּM~Z|(:\%>..K07`", v1 |EtMKmn[B4m,dL};f~3/]x[JGtkI䳺ym9Q6o|B>K{FQG{iVP` _<hp8*sI-ySIv'˲I3L&y>T׳Rו9&{>VSi&M_)|?MѦA־[ koK8R>G:v) 7t_ ]Rbm6WF._;P&pAOѿπ~$>|S|Aw>&%0H챦+ |i_B1D4Ѯo|èy-d<$? ]a:umJQu}a]Jܸכ沔on7<^!asj8`߼?^*A񥯃eC,͢Nn gXTp3m̟o߁0t>ڥmex2!b3dePrW9dGUka)䮥mF1ui)EBjWdRlOU{js<8)AP/QT*.Q-ӟ̾ #]~'˫^^Hˑl88'dOxMŢxGT4 r5D$dlJίU}>xoZ%k:;H9Maa:WPѩ>u=oIi;_n#)dDFcmle |@]Uir mJJG=՚jGVZi IsF5e (]Yۂ?]ؓ~uk>dVOma{}Z3y̮GUVO߳"QVu khhcyK@W*CAO|)}^ KgKk<+FBy>y+GUXXya.s  :FP<`뀳!XzSAJRkB5U8ܣ 6q՟xM~mqJs\%Yԫ)UQxBu''(8өM6pտ|AC__ٿ7ÿW❯x"VtR[Zy"͐EQKlEc #dW;xXmF(riͱ춎/0<=YM2p}_Y?O߳W¯ģg|w6N~ ‚3rx/(?ǜ~wƟlgHohrKk⇇|=w]o loK.omBORpz<7įC~;7ρ> ^joCcZvy?U=ʍU_7/oe:u!UJJ|tԔފl\W8u G:YTVJQQRU5#z|@<:SzM%VM,,2ŃD*ylX #I Gᮕx#An2DTBݑNbT>ixGl; ,Z.I+FB}> i/xYk6J״;bTTub[#@Ax_'W땰bѯUT4B2nJPGWhv/B8,^Xr OIk%ݤvRDE"H}Ö\J/ ~ԾžEciw%7E T7:HRI!&i:3ݍ QO7t8;6,C<3UblQ;ݍ'N*BIMߘq|5e'ƟNWM[[[In%~U;7mRV;D}Kmn[ۦ >sھgkIk)k/Mc,F W L#>fl{ſ(Gÿ^&q-?։y]ͯE\鮬l@U 0@gT8Fcl ʱ*ttu"MVNT9朔)Br$ҷ6)gb$TCEVTjsIʢrPMBʤZsn~E> Co7F Z7>&0[FԻox!|SgϊOMeM2곃k's sRko*:Ɵ?$_]ϬɹĪؘ$XˇvXv~'kO#ۛk-.4SZdoA (NTb6C?˫5֔cS Rdp|JLT줚 xƘs"qlXRx7 j\|o:UV-Eᕒ3$emcf"*(a x\*Wp_ԇ>re(8N:ֳQO8Zc0TxޕZ^f9p״%G3m>;h t·^YLEw9V0[m m d0P{ω><>+~WM+DþCk#h-Pq\dxd(Ax?/?gGcMZ;BKB[6A#F?'Bk~g&&3f>f<;̥b" URkK NXz{5&I7x֒Rͧd~7/x,V# KF#ZXJr{χt^Iw$91+w?2z8Sj߅7𕞾)˷gX~ms,#&q|p5JZV:jƟ[E{u\bBKE,eJH88[x͸a)Fq=^6gpca/jҚ+tQjWhY}>x qjsI~ ߼prRO^'7]2Xڲ^n-n"0$+NY*!G-GMx ĸ*?līw>ceC3[STF!?l߅.e/ƒUe&p5Cyqk(~bU8yfg%h0jFOϞI7V3"n-KE0`kƜaN!V:J.ӣ֤vTkƤ\/(5%-?yI|9V /YԼGtn.[R\( ;W__ m# >6_v5-c1BTBgː4VBA ߇\R$ u96S3;3i\>=™qRhUE::UU)JFNN$ 9.m..[b|y߃?+{'MԘ=91!l" ?d'o|dğj߇C[_YIb%SCvuTc_iR_xVᏏOzpՍ1D$qyǠ|hcg xf6ė z7uO 8/aiU!SqU⩺U!F1UmƺrKG%QXF׉׆&4]E}R:T!Zѩ ˒+ݔI)SHQ;~?o=j^=3hϻͰD_ݨUIrН`_tkkzmSៅ=ฬm#L+/loX|!A_x)=+n)M&JDmЌ5x8*{%Oۧ4\b85M܇V4nJyfm(I6֌ܖ-x¾2 U*9%IoKNeRNһ?feS,*UWN*?in(JMGOlm{y6r8e%H {bڿ)o gzP(łHdw7u<@p+c,quq85ۋUmqq{]]m?aXWN E7%ܢ&iY]y~jǏj?:ǥ}@֟B-őO2' yTwoM'|sd/5In?d879'3QoٿJh(>-i}zIhhetiKCgGe"ӿg=;h/t}PQg&& G0.7I!9PP 9m[2-Lm?ly-?͌~0${]C$N"n^tB_j&)ggE6xCC^pq8EJUa^Xd\%%Q+Jޏ3_ ??~_|W~2|O.#ėNilC34(o5(X I>|-|ԼSitއ^EuekwfaĖ!%YNvڿ*6lJ'Y$i0ynYVQcsi%.hʛQꮾ?qlcÿpe̸f\8<:5\d['qQէV"b2i͂((((( Ev?r^K@'e_O?=?"mpYAk I]6,(R sO/ mojxWSt2mk#%H m%Nz'{(sN>v֕*V+ٽv?Bd nTbpZTrBzJ2h+v|}OhyE}r~aU.1r8GS?m|Pռ>7m03m9cI[~~;<KBiQ-xן+TVaa)ڜcG*\j~󒌹TO;xgw-Z`N{iV1]|fJmJ#>,j-ݤ9$($b$ m~$_g~.>֓MƯ-r jE/^vuev~3i>?s>xz߄Gh0j*]2xO?|!Z,ߐ-&iGbIK74O6zNi^I˘S~j~̟Pϊz-׾7Ҽ!2]i‹=ڬ)]ۏ}OxϞf/R u9TƼ!u)F -ҺDq.uG\'FNWVJW D)>S$ܕӼSkexwχ7;kpq-&q)-Ӯ_cNӎӫ,wK 4Εe.`o?㟇ְ[Oifgo,C $zu1t)`>UIN*XaG抔n՛g}181z9|*r*SՏUReI]$[_[h~15-&g e i- {mci*&I3O;M x<vQӯu]۶pnU$C}[u[f4s`#8 3~|0s.Zxv@Ԡ/6ֲZ̳Lrcg ~~<||qߊf_j[-֦Y4QHqU'A| h?(g[7n|Aq} lZ=0G'#'JxCb)O C NTg+hגij ;F)4m?ac:0XL1>)__*T-!mH`Ee0f}Y|L ?J}gU&e%b(;ץ$O(S%%NN5%}T\ZqÏx3k攩P+(Ҩ%Jq=z2qi›-OMm SX!}ī6B˔B<x5ᯇ>SPՃuRezW+? |tWWYk^AHM8meшHnJ)_w~iѵOiӬ1+m/Uʥ2VFt+לKӓ4_5͢ksI}.iBr7NPYrbㄓg^kIn,Sx#vZr,Oe!|<:jUqWp#8ȯEGP=G`_MZb%Ȟ-PdɸU{*xC2%ok_n'u -aX$aHc3,!Ѧw9J¦'G-r']V~֥'(ISNJQvJ^<W4pA7R|)9Si:~.:u%(_?)G_ W:Bxz[^HPxzŽN+kA~~2~=M B @#-#3-O_'_jW[R;H$:txi14b)y8KݍMxm9#J%O:qE(Eb#9$(N鴹48\)Gg m1MZ-}fƙf=HQ ''KA|߭WI;eҵMM7Y?嚋mv=+dqHRݥ*!J-f\ԚM6I~?bxkfxW!̛jI+6rJɦx''Ə5?LJ<]h3|9tf8|q\䀹5[`k~ |7м.mL 巒^L6R'd%ؓφ_Jo w>V;YXTc ;}p r8+ }B(zXKvi0` p>>#q\/'MNNjPNRnɷ՟>/qnRU+UJzPQݹVOPoID~t FZ4mfK6$9MWO mtxRn I$ݤ |E~ƿkov8-mZkMLYKeE% !,Bi||4躯SmJf{8éYE)kXtf70z}~+^=y.cGӞWNuJq(ʥneeʜxGpkG.`T ΕJPVSrsuo/QMOHNjo jM f-8WB';:yO@6~;/ԅlx!#Z37ywcOQMq '){:5c7%^.QNVk2uVkxz䜦-0O VG 5R*K2S sIފ.VgxSwi橬6ɦ8w)zß*c@Ե)ԭ7A;>8z?d79 a~; Xt/&co0L ;R41/+pi=_I~?0K7wqBHf8A8T361 )ӌR<ѝeF5\7s|9:ޝ*P:rJ5?bʛmJ75}OV4?52VEYP8fNF:֧>|Ay->?u ՚-e2qA*22Fq_htWiVQ kW[$s}{HAO>s~!3~_ s|OŚyMmJnQ"Hc%ne*3>9#42(Ӓg9ZO.JQvVi d7R|ujQr(pqtө(9ŵxmu 5It Nsv3~n|ůjך}?,щ|DRA=+km?> |5Nk嶛Nk0ZTDKcoSF<$şUn/4/ xj)4jkM d9< cGG R]:tVXiG*"|ԹyQvZsef,^'q+F+T>γ GތeovQNYFPM?#4.i_4&KodnyD ByIa5M~E/:¾S_q8Z3P SW^1s̥SI(E])8gد1,=Jk ӜiNU*Jw椔*%d98?ky8 &Ӗ On֮$ј۟޼v?Iú: JjRZLq9O,<__|?*OHM1xn;9&*d ~|G>x3Oߊ8gum6?i>q&$_=n͗ )C ,Uj=G95'ftՕ޺~EOOeK.xEl*~󓊔b}v|Ӎ:qM2>x4k?JԛAխ4VY23R8p h~?g(5IA].eA6+Iι~g{xHҥ6R{"{X3.63 Gt|I&?jMs%*4Zp4%xRq\Z)5Ͽ<1֩N4ƊD i/v2}rg̟|⯊,w廻8Ɏ9$XI?6_-]5gW~߲?fO׀uu XaKIa%;x.W?ACD?ZƎz`#D^6  r9'?_߉;A+C..I&2F2cv0px6NQ֯4%Qsթ~*MB<2nM5Qa3H>=ռ9Zw! Z֓%OVvA7=2__fD|6m&?[YppveLɻ%3ʛ0UtMN7>Z8(ӣUrM8WRqMߏ#M5x?*WfxhR XzuHxPMӏ#qiٝF+ :;@vXö.Td+[Ŀ>#x3T#:?5(nd8 Mj&g73\^֭yKi嵎Xb$iQ2HUG<|xҵ<$'NSF*I)J*MnI6G}r\Vw<[ʥ/i%VrF NQINqۖnI7Wso QK@֦U\n)#$g'}|W_ jvB\O-q+N{s~x? |1#\ߌnSϡր!%ڄ1niV8De2*9h6Gcǿ>#~^,>!忈bt>ñv!X8Rhݷr>j8Lf~bMԋn}C~ӗlO~O}1sܳJJNN (V:匽*-6I/cncZW}K4Xf@Z,;gVj6|oRfKTF eR@?685|aƟoԵO-~3Q'._ 5;|[G>1 H R49ыR)Me+UËjuX:ENJ2SE}Prrybէߌ7]e=fdE声a :Vel9T|/g{5{"EŕDB"GW s_S? Z}c}pmi eI7Tq{?|l>ig?M߉t. kx^]meÒq1w JN~$eLoԨXI՝aNu&?gj+Frk\؜ c)NNJ=:IǑGZMɥ{[ß ~%LZuMR 糴xF}2<fx3,5tyn[Kv&YHY  85xgďG ?G&[T]]LrĿ)OMCbk/TOl(-Lq0>""9#'%gԣ =v;sWY+Ǒ-4ﴚ!`f|S`o.<.%2u41ȣ{ڕ2閻Yz#&]A3q9O,wb/ _ 鷯`6L -W Hyśc¿.>-<5t׀5&+Hul<@C#:+#YS|oWªT6IsI$*59%f<]xW,^~ִ%+JVQvi9kG?b9V1bry|}XJA% Rwg]<h5 ͣ&`%ͣ['#nU^XM[o>KIf(d:F։l^v5O-#۷ɾU(efTViJ~iyK2PY,=?e߼VzKJ2qn2J׹}'~Ş*K?AgHOvظe7":LJ|Vf&5mOM1{K)B}Ȉ6x GxS3M7tQ6/(Dl B-5_ GįjϋlӴct:"9YKjX(»yPAq UNR(N%9(NZ|Ѥ2ch$EpUqV*|=t)QMFU7 ()sE^O)yDAj(ng< ?l7zn[[[IrDQrX6@þ*vfxzvY+DK8Ÿ< Lq~,xş5Q=vQnm̰ݵHѬQUG_o3ZMjV0Q#*RWCg`~mC0YÏ4›_,[Wm鶛v?i?q^yV*$,e~M>C&GwA|.u+ M2ڦh݆`]Ht7ſ?> /[I֭Wk q-B(fwc+>?278b3*~5*GB8 V%ڧ̾.irQ-kGexޏZa)ڜcGNJ:暟'? ߄o4-B-Z3-͓ʷƪފ% 5c >%*^18m&@Б75~~-/O|UeE(?˗ģ.hk#Tҵ=PI֭b:4r# T+ح4%6P^!qy腝P xUQ _Hռ?]h:73=͵4R,LQGFYX  ㇯(*Rw-In]q(Se{_K\JJ2qW{:(DŠ( Ev?r^K@'e^S8&D`Cvs#rHWKҲg9& 1KQZR3]N'5f9eׅHpviIfWZ5s~/z x&&cpC=DFT O㯊ìx#&';ghZ #Gޣ |yMr |Լ3LjR彾Orrh|U_ACڸ{>oe >Og>ܶܞá[oT_K|_.SDrYRy #4/SҼMOj}ɼCR-ho0J#W+ph^a9V-Ӟ"5˪zZRVgfyY>\*ާ {?vӚ֔'})Or'𯌵L嶡GgiOsiKx+NMWJn"h(ֿ$uѤ՚81>plfհ4Wth5({_ݔb㯺j#_~ߵ|v9/u!DyVLoFIԆ5fB:׽S2QUcii%gu%>(W MӬHiEA)ZIA(hIZ~ѿRhvE6,--\meF(NIN!lj99UX(EF7zeevov}?)] xAigP$lUFYTHvO?lG:uwBk^!qedmXaYX2:0ԫ5Ǐ(UFxc^HZY[ۋ#uGD WP =A]dm,:9B.Q[g=L~s*9?J&*Jgu&Vztz0~N?l_>/VLO3ii9"N3yx^ʳ1hV]ҜTvҒzٵm s  y'fiԣRե%(枌:~gF5hZPR[_]OO(y|]>5 gG{ T;eXHȬw`*UqwǟS3$[ &[89 2΋!!bl > 3_! xZ3QeoM%ҼmۿS+J5Q椔`?u)s._wKJV6J[ߴMw㭯vrXjWd>}nQ™XeXcsh$"u˲<Ҍa>T}&bQ[E7k}p]Ÿ}&`Q[E6W>k.?~xt*6ZZG<&DmdPU# ZQU{iQ3[$qCm aHF6ޮWtWS܆xʙTjSq撒RvZ;MO 'Qust8ZJR䤴w֏CϏPڟ$ ~"Vwr$VVy#uGT WP =A U3ֽ.\&S);ߖQW{+dC /r<,(R-8&ݓm$쒻->c7|c5GV/cluu?࢟WY|G펇y"Kukieon'7YuO0u 1ɤ(k߇|8KJqw\힪=VYOl.&9e|2JP5x>_wꭳm7s"*_ÑOkniFؕfC->gIiW7 oC{ˎ/2LQ#^Uڸ:+x'&b%:u_qc)]I+wws8{+V2 *Uߞ)3oI);vԷm{ses围SDъR9A+ߊ߷qS! _A2lwD xܧ'ފ8g-VRt)F2pzkqz-S[.ǡpnOb(c3%:(ӔJvn-kl3~~=cq^+ c{oK˘mἹ!-F fc~Ç8?):yNT7s8"u(X:xxIS`RehY %S+Xԣů)@&VQ]~SNv'c*'9cW] ~q(Eg-N pvyy< IhP;rWįxGC-,Rv꒿{.ߜj<7.N)ѦrII$˲ ?'|-VL'Fk;[ms$4OH A c&JO:Ծ%|D|.80;!DxaTj询8#&bc8JtT4RWwzw> ߇ul,ҥ^ pvIv뾥-BNPm@"7 ]ů>9A>*|T׵SbHSp$q#WQdk(zx LH+.e4&_d}441ʜ]XJ˙FN.QRFN1m'fV_>'|}jx֧k  F`4A댞?ߵ_/D]&0K[{>D0lm1 +^1e9Ѕa(E6jkEkf|w Ym<S NܔN-Z6MѵgQ鋥/YsTT N~iON=>]~ q|$ZǗȌQJb1C*ܠ8' िSK⻯jpZ{U[_Y=] Ԟ7nUv6+O9(uym mg2lѓ\FFq+|,$=J]N ^2rKXR_IIgVWw i]FohҧxJRW)EJMYѝg t~_ x4EӬL1>s vIy{SO+»O>PLӡ-ko-ݭHUW9eS  =GT^e9g%{6uj.ɵq?p$h}V96Nե&MAg~>)k"\D ;$l6¤$ #*n#ט/&%$5-ʓ WVGxՒDaYHP+%ROK N4e** -%fMYE(쏳p&GGW/5"8*qQT5E+8%iA(Gڟ_+YǞ<+w2|,}-ׂ>?Ncvҵ[@#Ϗː="ÂP`Ñaxm7R^\8U2M3vځUA$TQ€_AἿ ]bp!*wQIF0M/6cpxa0ЅNHb M+Fv (肊( Ev?r^K@'eYrJД˕#^tm/vsbL98V QH +CMuMfi(6f‚p$uvԅR.N)nY*SmOZJ|q4 *]܀I'֬vIjImqJO+`_EK袊P((QJr}ń5qWmV[%U5"IY]g;譋#Ua}J[xͅFA"B@ܾ㊋Vѵ]:ʹ֓:4o`jJ=C*xriFK[^L(tZy9NyUJNh)piUhk5qj#jFrEdsJb3MڃDjU\sPZY4fHggL&eZj*vElTM!Mgޡ$MZW4 硩Q5f7b)ėӨevDb*]Z "R ޫQԮ28GZfQEQE]ӴKXM7H\.I¨$~$3c);$R$rC#C2t$2jiGk+Y'#RqsWlR3袦tFY""YxSnڲI]V/4N-!;dU(GfVJ#$С5$tŠ(PQWR iaK#*Ƞ02)vk]\KBݰ 8UOңǗ{xr:J| QАF##ֈiT $U~E\4CIN #J:FVTFJJaBjIJ.QTPQEQEQEQEhiAhO$h̑ Ppq2QEQaEPEPEPEPEPEPEP^K\]Q]ܠ%g8o¿_ 5cP-hPF$K]A/.~gBt 1f;?J?~ +O >qg 4`ʨŢY@2M7}!2L,BRBU*{i5{{V6_pcxr[ \i;ӕ4yGUyIYkG?hK VZL)%UYYT*we(~̿9x[/~=Rv 4W+qn LR`X\*ʥpP|ed?|S_o_|AOeu%5gkq @)P<-Xe,@Wo_Vx{(j#ۧ3[JH 6RToƼ.|_*X C6McŚǍu#-r٥ږf )wvYYIz_v8~;5io|[Cot68ݗ+X\f?qlʝ_|Y%'Ѧm%w082e:Rj468ɵ-LmxOgl{:asO0Jn-Bnۖ><|w;oEuW@54zMVf%H(D1eloWB?cUa Rg%zI0aeGqzgiρ e'KjGfC>h; !>?KaQiw'''?[?:/~к?Mmv=>X1ʫ!ytcI ۃe%eO'X </5-?PՆsBDfO&D>WV(0TٶYYU1J*:ԥgW'{U+BJWiJ 'K),޶5R_U5F~ҫТr)ZRJPiO]7Nsv]D h09G_ٓ@>Vo\[ݝ.mdwC1?81$lx\<|Amh^G{YJZjK1uy9[+_&ǿ8|<Es $D;cC! 5Ƈ KN0\)E>zR*wL720,+ҍ*\J7R$d+(轻x&z>onDN3^#0fQ ;?l?jiowEkN$Ɩہne)YCɝQҢ<សz-]xLWQ֏ϨHIʦ5c!ykt uYs76gϸ4O$C&^'tU8#?sgb8J#N2%}Ig%ߚQi4+g+1+q0#J*WN7:ugߚPi4s_ > /9L>!CޝiisL2pu,$rI16ď~;t!LJY͵A:G,qm|e];%OII4[}4 X!%CR࿊?e M^%FxgOY$;`U UQ1 ['g!jÞc5R&)a%EɶUݹd}Sľ,siXx¬aFw9NXEF0Xw'uZUd,?mk??'#x&/*#lnIVj@Ws|}O 5F&5kl,<Ӹ5,pYW?_|u?x?q隼^L}D`ǺXd挲? ssg~%Y.fi% d!ln)ҿ<:gؼÚXHu)rqEENO/ C>5)cbE{HJ\*FWR7S[ |)Cĝ>ɦOݣty[7dU挒 N'o+[:!j:,Eևg۬]mvHdLbڏ h <i/qq_]xadԓPK*EV!bDdC'eDi |K+^KΙseqs.Qkyʃ!**]+8zqXi?:ʣP i1n*Uқo|g_xJ<үj8ӣ֔N #jkENMKiRDk(Dx-xU2K9WXwde֖?hOxڝ=&:>Z)\cF~9~4[lxNѴm5:}ThcfKFr `x?;~пh_ mVއen Cqm$ЫLHd,pNyjVR8AB ꐩ?o7'=.^'泧<&:B4B+N%Κ T{K?zQy|=,mw)6yfs$S-L~?7& <1#& 4%K R܌A:kͱcj*1X9}^*Mm ')E~"x<Jo ֨JscXRtjq)FLOwGSx>)cMr͹"F` )C1_=Pzo$!;I{]3$1S|usQ_߳-_g?K-/:<[\[Ijx8B`* +?j[o|]ᨴ)? Ӯin4T I!]Nõ8Y_eɱiVpӴu+sSinMƚQms.ʳ5W,u+T+­LBTQG/JN[J~¿o~ O"ɦ D7M|&JFI'`? aٿ8Ե/awwKWqko3gsA9&Uz2djI,1ȥUX>6ῲ?Q~$~__/f66ZuƧ+fP_?K(*yRͳ>J*g^>Ǖ^.yvrJi xna,E*9"uJg%~1iM~)h>9,~gTMKQjR$o+aD:ON|,'[s;i=,*O$rF.J(H:_Y%xs)㟉K$_ߋ&nHbI !%c WOw~wE- _KYOykG#S|iGvUzN#c0O)(匨dj&+֖"rQߝw2b5 O,ej V2tc|D6REE#>"~N!5iYz~VGowJɱMnH+Pi[fMr]`dV(~r8x߉|Kאڽm`ҬXgFku- M#W=*גϔi<ˆIN,B.  }T⼎ TSsTUTav!ZN-J=xxeWW2uU.j5?mƜ=TሓRqOK#[M4i?fd1. dFz_w?AKxÞzLQq,w,o-,IEBOm~g??c.oxF':r.Ӳ7E- [?1Y'N?JyFU%ɶ&WGxy\E{ZJU4QmGv'%S|7]VĚt#lop#nvB )e kSW<vJk^Xvl&E*Hbs3)m?[]Vm >D'QߵD G?xMgVcxg[1a^ FR%E *qv+6*叱I:U+֌W~xƢpӴ[WWe,2=T] ƥ\C6S걅H~;A}Y|.f/+Wlе)?5SghUQ̛rI$^&> Ϫ|9u^ DI|Qa[, !33 8|yoxW?$?>iihFFE(`]w~>xS~sץč memdxMHbo7?¸R AcKXyRW<:WRqrURfy\~wf~ajOSFԢ6A{hʓsjqe;~ Sw~=&(k7؁UVDݖ$')x㖅 x5߉4dۨѢ GblA(U\]w@~xwAm-|C>r,ck cU'S7|^O=]Cρu]u+}_IfYc(@複+,@b3yq\i<^.H8C?f*S5+}:;x%XFc$l_ >3|K=x[{ o[񦟨};y[tuchrgHNFJ_'?|3㏏F7:vXTann/]L ¼Ρ\*%8-B")לRTڝX5EźΝQZjdzWqS#Z,MHF*U+~Np(*Tc(0^|^'k˪.&($l]X^2w%~Nca2G(.jiF.KV:i+FVuM3\ ʦMIN\&.iUġMGZw/~>|k=͙텽M$3̫AYy,~?\ 5+Q}RHOͣnn缎hu2t9#FT0Jxq1jJIaK1mqg&ꚿ\5Lx4{h1q3ʲ<{`5wo~/x[<9{k/%mdْSNCqry纝F,Ėf'$y$}%>!9;Sv'K$BZik$~FxGI4S BSѼxuvxԑ])ǿٗOz7tNI$-c3 ^iAU@%e]W QxSszJJ-hP&?qR[bo |,⏄1xCE]kyrlM(Lm(UsI%?π%VrSS\\VH[1O5AC`3:׊*癥yʔAR(8E:n3zÂQ甚-{>kwC#bjNpTG)(MRֿ֜")J2.ߋo۟'_k[-;Zev“D!v20%'u_&wxpC'Q>0xOLkۋ[ELVU܌ ?li,!^ENyu M?ſ۪PIq _}k*pwyuٝ7[o|F.N4+_4O4PdnrUUV|'qܸ'BRT8N3ޚ* Vv*wg 5?^ʤ ܩ%B% S$ȒsOr)~qNᲽ#soUt+.u&I N#UQo^!<;snckcb~ݑyg~~ᾥ{x2! ol!k`~YI3Lʌ (J{~? ji..K|,rQ@ݵ22O0qir|gPF!.HJ:vdJ04nneuf]9aT0zKs9ԤЍ:5ʥH%ue;ڧ|O #DƫxX1r$JѠ,3 8E}Zw7UcivpkB--{{.]a_.]<7t|IX|MoxCڥ;ui6/eks' L^DbǏ,m~|{i~(V\Eo$%Fv31mƙpR儰ON4){YVr7 ?y\SxWf8/XZsK!F\w*JT:Mrr1pWSQ 5M_?q]|PlKw I=s8ppY?~ 5^" zOk ll,um /NH$K9Fe&[.^:YlG\*Jj:U}ĥE#R1vNLer8_xʴ+:ui`NuTTRv4oOWu~iqϿ^]j-G^!\$E$."%Wbͅߴ灼JftMf͚A)򡕑Tq=N9濭<.8Q8j9Ƽ0jJJ.jKXo/ [5!՗4mU7wu8/.*˭c|w%Gx5;^DiujγEo$ѩq)Q!G(DΣY!;yxC *GpH<*sŖ]ús~4lj/WSm@CDg7TLvkYB6.HJ^nQ7~~:_럳_ĝ[[hp=gO}ֲ,QaPmČp3>_d_>Bx5 qmtۛ+Pf`j mgx~'x79嗉K+m2x Ks%ܛd"E*ذ8C8#qS4JC5h Z)):iA773ƪS2XzkNj5j~]JN1IMJSo3_;i/cƛ?j|[Ӵ4-1v[Jngd1u2d#t7~i <o{> 5ψPwZhZkam8oe :ے9 :] ,_4kzTȶQoo Rf?.]\j/uků^x :K_Mm &}>{d2micg_7%vWqTaR}FTTeUժ⦔iIl׉c N:YUU+FnPXxT)֕zPEߕG?<꿴_=rk6>%{R,0\n2 YY jg n_.nYCya[DwG&Q  yk;Txjc7~?cbKfc}]UUdOmbJ*|C5_o]|Z׶Ao 8ݤ[!, J)$19܍H6/஭6῅5}>}ixE (oآAX,3~eR_:~2/mY㲖Xi2<)86Q/oجڞ#'C>$TZ3]+SգNn pO}hx^-V0Qt*ׯqڕO#Oi ~.cIBzTbMMf(ɷ$NI࿲g5O.&kEIf\ Bq9dOSMY_M(o_XKOI e'(YN20|>+| KK,6y4D h?¸R AeKXiRW<:WRqrz6 U~ɩ/0Ԟ.#IөEJJmNѕ'ۢ~ʟW|?CLx~zLQq,w,o-,IEBOP;M ǀ9 `֧n-uG?,d׋]YՏ ~@6 p%$mZi4zmvDD'ٕs#ݶxhxg_/u'jvz^hCw1h .3 rn_6k l3+H2+?k USt9(qՍzъM?zi(6?/^wN'3b(ʆBTIVN&1_iE?~)s>͸3\LDu SW?k_4osuym>8&}9VA=__l//- ~ڧ/~sĺ2Jb`Kco#c֩6&Ju!(Uj~7"+` ( (.Xz,~$W'rdOp7_z9)7>h%k] EHą\4% ' \$,կ)F1w%QQ_ _[eů%)be8p9Unr#+n۲J{nZ|-_>1~:__ /|7MtkMs|maq%I9?w|E|)Ӽ|9SOn l-c%HN!#1\ Us?C J7 <5*p*JiF89IIFZ2j~LԱ8&[^:u'U:I~+Ҋ)MN0i+FrW|l"WՕnYB_~+mM;MYZMI"EInwFJu_>~>'xA>/M;Of3J7,dEu@$5>*ޖ? RjJi;ԋjqzN:[kaC3գ^tۦܪTca(S(:_ogş1h| o ֬Lq\y #/L{:5?a?:~ ]biwqq$Beݴu4W$_/?7?l ut;S;+FT#el1P)MgЭl-|<*uѥMrIԄ}7K>닒Э')c0baҏ"Zt8Z\ΥukG/_o0xM]WKhY 6  >S^5_նoνbZ7umh;rLqcN`p^cC Wݏ% /xJo jP\%ޛ^m:H5V4!ֿ3*8VMۑ{>j!6WpRQm|+ >?(֓j"Tԅ8:siA{GMJ15>BxP;xot6Ufah~ exR|u7h/٧_+ ]x'ZlwQ,Q\9i7+#H&Xn?_qC¶ѥP\.f)+4/;+aY>':q+h\rlq|s>?^?[{i"^o)F+͌u 2m6vOo#E":0$OvIzxZI3Gi2Te= BEpÉ&~z>",7ja,E̻_tQ3)7,fY13Nl$Z.2r?&wg P )%9W)ԫk޵zOg|C)^|kѼ_ž }~oZhb;bUExRU;J?j^o_~#.tQ_U?e#I?}$r`#PMJI|ӥPn򚄜HE>i{&饔bP2Vt<=kNa9J5a(B2Ѿ|Dgⶏ?h;ڝ)rFr|(r&q67:f \:Q)wUU\f$$YǍxm>M+Zӊ IJʡ(zy}~$CM*^ŭj" 9[ G~?R_~k~O}/Q$XK̊܋\*;Fea8IOFtQϚ ܲv<ˢ-4Ô<!/^{}Z7^&0[FԻoh!p?d~?߉zuX0Yr!0,̋ 5+oƕ,SӍUM΅yr/*n*Wmex*1Re TrL>"e:spPmTܔ_:aֿO'ߍ_ md4gJ hz}Bf KNRPEF-|Uiu7]Z٘q%Ð;UPm_]wv7 2[6j%SwM_J|3s(6MՅ?i88nvRYT4='~n5 MuH̤k <MeSxz(e%?/K,e~)R=?^øuR:p)Sc95)'&m=?<{:8J::% SNQԥ'tbj}C_O _; xWյ6m|-!ċPA {7ƿ5|#ATb/ -OZۋjfi$TpTٖ#3&Kҫ**nTgV59UcRgJ.[CViQΌcRj>Uz;MF*1o%/qO?f ot[?i>յxkCIDIE[gDoo, `a٫&6~/g |!j߈l-l5"]Ce$.tXfK[p 5r%ISyJIsNgNr2JJIҧSXVtiO;QC[ԽK:St',ܒ?*+g~*~ ťd-wiu}4knl*KvD~C-V`s, Sx")1󼪂ēx{Uęl '6$9CVTr+3&Rda2]Ya,R6̎%T (%q֛_RZxA)%)$oʛݥwkwm C.TSRj*RI)IFNj7|kn0OJ*Rh*Euy(·<(mh!4[c\^ԩEYϥY=+(B>)_u_NK[OV[ls!C*N הT_\&AT d43+l,[ºҌIsK%&敖i%wwdDTj`Lֺ5&֫O"{R^ܣ:Uצ>tRUYϥYïZjBk) R:˒A>Y\QIVR+wkv9)apO%9JIjokݮ}W K:T_X~؂)QFw"u2ah,((((~*|5njjWVrK:G*dM#U9p#+(exV&JsIJI+i]]sϡib*c)Ҋ5)$~U'QOknŠ( ( ( ( ( ( ( ( (.Xz,~%Wŏ>]~ KJlVTH,0 m?. VϽ~a/xn#. KNnk7tZg.x+ N_SZpI8SJTS% s]j͟vj˯/>/4\NZ8Bb*9珟dڃZ.t5K)GN-n $B F`ϷLzW7r5R"[ 2TkF0o+8m.[=/KxDbcT4 qw#*ũM~o ڂjz7_\K)0neE1.{Ɵc=M4(,wӝ ""\dbo;7$9#xv(T*29[%)NRvKI67=pxhK JoFsRsKJrݔtqc}"~պO<[_Z/O:zھ/g)DfΊDAA~=w|*7/]?CM,od+,E~[ K[gd&3 )rqR\&fjG%R)Oݿ+h|MWf]9+VOԊcV JR*m? w v'<h7L"gE刐.RA *|ſ 8o[")Qu N{{XB$Lrmtn1Fs^^_g a78(Uj)JiT\iJO۵xygѣNP8$j%)M*iNM{^mt?l?t?x⯂ scj'Wp:*y+c.ʥ7?袽 'hJ.j)NGh&)YE6VGsCžQAIΥJƚqN|_,Tl{_ ommGm%vDh,(c\+l`¯|%:GI_h&$.>#I:UBfQ,8,V>r=9JJJ2J\Rpm7 ;ŦGx5*xΔSRR PNN*Q8JR$Ӕ$?(/H>jɡNP6$K=W32 UbX22 Vݿ l[?]~okO]]>=՝w xm|(1z(ߓD־~6:GMI׮I>Kj#Z=5w_F>T^Ӫ)Oj%TRY_ٟ^. kqx~-Fm.X`xc%~$~O7Ğ7Ե߇֋s1{M,Izmc%Uy9k1֓cWg0y| FmgϑofԹc䢤ҳl[$<.92\COTp{''IONqJ} ~$SVs;!pq2;?Gį7>VzKv N16RdQ`2rX1v56,T7:jQMNpg(J*qoGMn)%α œJqJ& r 8ŸTR/[vĭ_Wßx$_]ϭIīD& 1$we7l\S/ >iGC{9585)HfE!g-re7)nùRKөJ1jsTԂgZ 8$6~ҭjVbJN1Z5[/?|Ix_>GsɬhqYByir@POp}c?|ID?g߇I3FKK村,yeX"p0r}sL)Gpq>ګj<҃ȒrvN8SqeQMz'9Tp|ڞ/I_%`%I$/"$_~?gڗcZ&&7 ?֡By Fx5qNkr f9 sJ*\ӄ.hte{#qFG7')SFt%)O'N<-*RRw>.|_'3`?":h[_.͞f7ytFlO|-SΟ|:v[EU9(* ͂ ?J}7ÜԤ'QvԕG>w8IJ28mWxGbڙUZ-SYVg8VGRRSےKdt?It_&2weZ]I{.kzѴs; f@[~˺d߲A.gsIwIlV0(;!JHۡ"kSrrnW[T)4s%vɺߵJRUQt94$h?~mv>C2n:ɦKrS7iBHdoT|)o7,>6_V5-c1BTBgː4VBA k}_|6 (Tq^,/8QpQi٧eoE8:#|N&,/kxSp(E.Nѷ2~ xkô<}.ttӯ(Av[p2zವ@ gOzij:<#^6$縒 &,0 vg? J5JQtZʛ\E.D66c1po4&<׍){3(%6y0u?úYP5mue[4,6 8*qoWW:TuaKeMqMjC2)ʬ6 UuQp3^iE 4nBO-OuK-Jk T*X"ۛ<ŋy?ڏlhX  G" m gQZXZ1ӥW({ZTw$9i=oَ~ ] 1#R[5_5OgOrRrӌZwIv8a)6VJ|4;.UȤyF^O IOg29_w5oK-yH?hrm wmʟ<1L|/^&m. kXԂp:s/ͱup9(9.g5NN嚍Fd/uӵm}g,T佣QR&UBn3]O6y! u?%< |hO?k 7 Cv\X-,S r0 }w[zUvV:pM ym "w“q"? 3,6XnjF5jsUی9av|Ѳ}"a00Z2µn{8K|V;狏2匬Ҋ7#\~ xfQTؾ G6l* II]۶=?mUtxTˏWqko3gsrs+ ^ Zӣ{*WPpw]e+B<ƬeɈTی3oJ.KWM;HL.I¨$~qaJ:HpA_m-~V,^/\˧G(Im.V-}Ι'<yUؾ,u:vsjުgisi#;C m@K|v 7KN+JRԭ>m\uI{˟)__̱3J .yJqZܽ57(G_8LMΧxn?iעm+_ m㹇 eѐz__ï:iS_fTL>i|c&.#5]H拣S}ĽoKI5{T\IVh9)ЫEBPYrޜbSmKN-^;4O=X{vזvDAb F!Um];G5}':j-6@V#,3 0Q\+[,9`߱%(J3iFN2M;?5uwx/I*%7Nq 8MBm(IuuEEPOOL4=Оj Wa%ĝPRp3U6"1ݩpiHMiur}QW#IK2'ri*OZUB*1YR=*epQO.(PaDj¾RSƇerj2* ֓zĩ45[rѕjT`F QӃҗ#%l:R3*rzT48 fm%lޤՐCK{50ƅF'wD$PI޵\Se|}*]ֳƜ\dE$UiFX\acXSQEYdQE V*QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE]+X%.:+? |Щh4d1#/2(W_ ƽgD^f(MA/Ekss%3%PeIY 8,u2I ,EX(&EۚmRY*[GdAPeغ8B6+s:Ef9JV~~ߴ/Om[5/G-zYEԡ*$voˁ gï?a >!í{Zq\jCt8 A/; gl" ]J%~\^Ѿh_#qf}}fg(6T+E8Eyuy.Y-zVT9җ'$.V?y)NJ)o/ b*6sp/fMԟ+PU*䢛Kk>dաd^/.-Jh2 pQYFҬX}~˿ʿ">9_Em%vr4vw"mxo:DŽ|Eamu.+Y cF0*Ji7O1#4:Wt/ur7w$h;k#}9cW5H:R}J99G+ %.X'˯pxŖ6| s Me hrp*2Kvd/KiMqD~T|v?N㏌~;~%I:$qc_%D\"¨Ww1fڒ(:p>zqz\^|~4*^. R$rFnm{Zr/}_gğ߲íoQ?٦-e̪˸$W >(?gK\2gm3]u.$ѣiU{AxGd ;kAޫ㉼ eWkEs83t6.>gξ3Y:/^1r&tjBDGQpO  }_hޯoma&Rp]:F~,x xWz~}KIkg'!/*d+{%MZqn :Wv5ңE$w>kN%ezP +FZT))EEE;ŷso)r:-^!^Mzif{,+IA0+Y~=^7_ğ2ëhZwuc]IXPpx\)F*Yjuk;ƜR\Z:psi)Ts'~EX&^u+W+h%篲MԒnu\梒ݲ(ԏyQEQ@,ު`58+!*8)qDD(:(RQ@QEQ@PQEQ@YQ@r(" (AEP(dQEB(AEP>TQEAEPU(((¦+Se4( ( ( ( ( ( ( ( ( ( ( ( ( ( (.Xz,~%g?} ⟀~׼/oeۭ1]^Tꭜ `2q_ Ob'k8(9^"4fTjKs[>G2BqM;JM[k{Jv[w(k(no M]ޣ$w{1ְu'M?>2msGU4uHR͚dy|$$d.ӑzֹ^ >#u(Pq^U.[s_깽[-=>J *TY>G F?V33s^\Z>[s?Nߌ?~)<3wiq&u萎ơc];gJQ ~*|G `f շ4|!p#'̷RSJɾgidmwǍWxQ)Ew_;Y%Yw{쭯&g/>-uu+Sʝ"yM98oN5{A<3m?&RIg|;=>k*v)&s|5g_{ο q!7پ{?{w_{Py|f>3.5 \.1 .QNG9byf)i"Fᛨ5JKlu!3Dw5x!bjHQ8{k7wvnim{릔8WzpJq~ܺiZֽşJϏƧC^KTV#$0EF!p#'o3Gďx–:ͺި""yM98+7kMKZݝ省mtq:O99w/ݻ>kk[[>:~3|R׼S\ͼKkKI&Q-{1>Rt|g>4|2u]OLUu,٬PFGBFB9>BY{i99lKo{OvOR|;XPqcmTRrڮk˖OvO1:~34x\mƶ:[v6ퟗһ)?hxcS^/Kk5ܩVH`䌱 =~mGZLֹS9|/k]n}\5ʌ)E7_idmw|0ctHxRY[bDSp$O)#'ğ |}|:淸n[I<mr\(u~sGV?br8.k-6Wx6l e~HFp!ƍVUARmZv}ӫbOjiAVtMP(GJh8J;p*O51ԍV~iUӁP!+SlQE ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( Q@袊((((((((((((((kWic++%$VˎsӜ0rdZ^(1e?)åa#ͬ-QY_s(~g"5VtS@+қE+)bj6p))43?Pբte%J%C?K%4<ŨL_1J^J!=48'$sZ%ckX89 psUe=gx&?ݫj Ȩ[Q@Š((((((((((((((((( NjŨ(((((((((((((((kWic++$n~XR5r~b}cS)X= 5\Cr޵?ïAqͨ&XHWn7urH| N 򔝒KodxA,S1̪Ɲj򔝣ݷGrqE} I4kVva ncfXgn9@k0$ OUtm^muiq[ĠCA;U>PNJ+*t,—-VεiוIۮBsZ<:ŨrIۮآ'~9|8)hh.5k5J0H@*A<'Ox7BOWrXZvX+b}mT #r禧7Mװҧg~ow} x)O2W^,>0 O42f>x{'׿ol)ccݽ&PMۂ+9TMunš\f!Q%&.02q.+ <A))+'%}R^xsͰrMJjK.J.)2<& ?ûiww]w6k)b@ Ą۸8?i/ΙsK[xsS7@^ެY LfYt`18s^4|cG=feέion6nxP%fZ>3Pr獹\wQM^σZip:W_>$x؋JfԵk$;#). <ͅ7~~h_ |W>&׻ۃ7f'{]tWھ#hf[K-W^ ]FK Ѭ٥ViЈLxCP}TL:֍i\OTY]Cm5BE`U?t/êrk{{ktH ªRfbCFZ-]$g5?=3ׅmwkڭS$۶T.y}$o+ǏFZ-BMQKbfz3lޣxcq7MeJ5$NiuZ?odk|]~wAi-e3&'Knw<8K <۴n3,`ԾoZ|fv֓w{X.VT97s P<l}%QG8ECs=t\qZ&y\K.ftcUGԍ?k>OgvEZN_ o~Ɵ촍KkK55.G'$J`U0d{~9'ާ GJ'+5:u>m-&6ޞixmUŸ|N3&=*UeKFɸٽ=kgtDn85Y]u9V*E}]L%ԫEJSң EK GsoTѤѴM+YLپ_ylTrF@ݴ2R '%ìVk^4*rvv]ݓv]{#8ϏNbB*svݗwdݗDɟW_ _/Ii6Px;Zеnl30 $o]@$` RW֗; u o[vr,n-@ܶX°;~S7xQ[^&x5!).xzZj|ڟ_pOlh}[]g j23;J’Lo$umcVHnuU6 т*9 ,-<9s|RԲsiAM Jn,fWCH?DŽ.W:v5彴IPѦ&RBn>~%A7Ϗ:4vk.ႤP?y&Yr\d+swqN.pn.rpno9+Fwzot{vAe̝hm8Jt(ʬ)źs[%hrmKE/i !vEww;LQ*pQYVIB8Prvv_$ߒMYƾ"d|7+>B$SJz$Eu>6WxQ,du}"n GpJ ?lS(-u[{P) (9 C`)f8эg6*f|Qf1u"r[ǁ_y|sq~ҿtm+zva G[--Y?)mf{(jx3Us.͡@n 3LPgfjv3|\|cWJeRb֭4i;u_} TWYZ:䓽]E~|j~4i4mJdt?o[-a\7m-Ty߰7ƾ/n. J WhF]_xn=>n[?>ov{v˃ZeI}YگgY]{ŔZG_ɼ𥅆xp^Q[x&BC& !8"W5+%_ R bq(4q 3`<@1X9|T%J )IIY9(ڔZO=\~e3l.:SqR勒ojp̻_ғo_(k:iiVk_w>knX*;B"9\&'A|8>.x)tojf Bm6.Tbqx%=feέioI2Z\!8%֏7/is(B$۟ S) 0jHgá' -0Iu wGRdwT|f~|5- ERۙNIb z^1dl.MFZAh7UJZҍkQnɦsPAp'=p]zPee픥(Y_vM3 <mO>/Ҽ1XY.$X#|ncl?)i~#'|oRUX5=VAal4lm*c!ol|\ac/*'mɹQJ-^m'^ b'FTi76NQJ-_N1I8WW/&G;Ňǥi6:që^ [DF -m$ir>L1߃W/,X<,0jW$4Jwf,nѸϧ/xj2FXKߏyr{vzrZgE}UV.O{]=qf|oE}_P?d4C&KwUڣ/fceL`pqj~#֬;Emo]w1 2 kr>#fX88 ^OGfɦf<7^oC7+ƦWjq~mK_&}w3) _<P>f]WBj^-ơo hVf8;A5r~ߴ*kɱ/V/d n] eUB!cYG0FJ.\jwmeMgRADh1:vՓSkDG__꯶>=?i߉Y\1t\927/+Wߙmtv*iT&2t27'+_h{_E} NX)VSTNm^j܊Vq|?[fj N5y%J5R6wqe7(X4 ~ PԧCmHt ( r??_[O?^oz ے읫)]RC2x>p9n'W٥ݦ>0Opy OY' rSi__J Q_4UJ+}^zO1Tԕ,LKTc?m}ŧ )G_}ŷe5KwoZS;O%mkCKvG3<]!i %Fu86|{๿ji> \"x{]D%O'}S*HX xm5"0djvj?GF @"k0`tAxzK vJlN9f985-# _1*2K8aքNJID8+蹊 G.zTN6i*1Z~0^' <&-+jX+y,#yp9q|&ǯxQ,\6kBZK(D*B2NKxacVơ]Mg8 v=F u< uXRTj9/h*^ٽ/>&,:_O*k%J9S$g7HE{+۴Z?(;ŞSbP5*"̓@!|2| cGC4] [Y."+"-/Y">M"eZWHHh: -JmfI s^O%ğ^]WQ]-4XݰYѢ<:*c7Ҽ`'78ŭU?;jYİ7UQ0WHƤyRM)SqgV>!w|Kv~M&+L !!tIxeY׌4]?i:i_< Bj.᳛]:hni͇ zP2^N3-F; a0vH=)Vh7o沟|$hܤ1m|t*Q\աYJRXJ1t$Cʦ;b*uR2IlE:\fE.(fྯ8@| ?a?X’j׃xP{!tҕ:`EdY8>  gEaZxůOM:m"PK{.`JTBw]mҿֿ{㩼'e,w9jίk^ $`$$^O>L+f:娪VxN^T= NӻbɟµkE͆}qk츎YU H@aa 59cVY3ĭRRHUD<ʢhYcZژ bSG*3V5U4RҴ]ԣmovZwjHm$$WéK3d10DU7y"g#+֓ܐ-R+K&CIEr"ٹ._͛}ײ4 641 _#4Z8KMnQ|4%N)FK~f\Zz~=㗅-h0UF9FU Q*UN\^g+Qi?~_(֠E#̪.`{)LBg`@v` t?Zsƣa 汧KT{ml%n񩌝,ɟ/ߵ_#ΟeEZI%G-"DL)\+BUQ'f-$wv=K3I5ok|YN:BNJh]@3fɆuTԜ[T#'(ߝEK~)־+o"/o5iI?5[i|k[vs#*2ILn ~i <.a8(+($2*O-YN@-Y/Dѷ/o į.qp:zPp3^195g^:1Sz5BP\T{EWI5NM397^h'O5l4 &H^6I dM/=#*>Sӎi6:mZH1י>x];OǮ9)i˫i0NcI&Xr~VgQr8$GBcqu#K#ug%}}~#,1Q,}7&FIǕ_6Zq?X|Ahftef:U=(){THpRrwh>MS̎m؃SU-o1W.@5qM/C>2EG:xi4 C"'O#c?) Zqjkjg];9Jed`=*5BxѬ|h$:"k1 {Urcs|Ƽ"i.t=NO|O_ǟapx`)9'RZM49-Xc}BI1yJ anC\?z"4_ޯki',$mc=#<텝hu VHo6],{FT|Qf$<uhձ]kYy/%224q,!~f5x["5& iҙ$J*t@Gڴ1l.ǼN@Y3^7:*u%U*3TQRMbb(K:R+?Coƿ_>|' i_[3đqi7R5eM9x [7"kɿfSg4/ |gG !n]ByZ<3C,dU 9vH@-_^"a>\[܂&9]#A89* OutO=PY0X/#${WbTeO{_j8BqӞz/}厤i{:f{gUbӅ[χ۲#/'jwD]򶵡%ۛKC;F#D/-;]p{/>x*ڷA:.*,)u믴\/Uߓksy5j,pV98֡_0SSӕWrF+QT|ncy#sl*ſkӗ4ROxtE^SmU;Suo"-exmHB#PcP&.0'ldN@"k _x^!Ė+f(ıNr}MdWpǀ6#1*2K8aք^^u$QZpgoq>5gǒ$]<%Iڣu4o-Wg~KJo=œCqdtVU+ǘ~$ 9Vxw+w[Q31ɇ ZxfхZrN=U6Y7>Njꗲz*Kr+sE{$m4W턪cħ{z­ VNW;Ǩ#r0gp0SKZףV.澿 Ys<0^OUKZ+Qխyi|6_N>\t___xwZFe qwIn.$ioBwuϊ6PI`-a|$6YHSyx^-.l4X/WepȒbER 3 O.?GZbqTiJFXx565҅ԛg%?-zT1eF Tl%U$MSRJ E8MI bbBN2@8 O_7?Ÿ.Vۄa-fD,BrF[bWе\g=̡wLTdcYU')&u? ?0U(9ť8\=W;⏇4M/<t;DRZ|)fM g3Sİ/G:Gu :i Hs$`1Q|O]kkk=R{ld ,  :J]Ğ"镼?s`gd6[9)pѷ4ʱqͨ0&)iJ)N5\Y-ϡuϰ٭9c 鸹ѩ*ojRu2)T^neRQ3Hm&T[L#ȯR,l)VU%7R{ʒj2*M4 սɯS%4cB  ꬧*U}E5 9>hJQioݮM+Ə>, ?~I:_",.>hwعl܊uf /Zf^3=#ڎcy<֊OXN_>#Ϥ WH`U 6G#cWe i#[\*G3b97QujG{niNnܟዥ,|zN5J*FuܪTV߳Q k)FO+1~7?Pk_h'.R V(m\ȞL酖6EFd>pc yHct?/S&-䱒V,v!N1~'^$qM$ځذP\zT0C5onI$` ,II&g^#S4FSչ)+aQ'Rm9vn+4W'ŊZaNs:t\JUj46QrIroD|Dm'/Sh hD _lK} BA8Ek\F|ež"ӥX7wRGo͝N~V܇ &:Faၮ4&crрqɴ"nhױz=Ķ1dF둃R$qړPu ZVy.n%yeb O׏Fc)F!zƤ Ԥ>[W&֓5еgYa61Jg:u*R&\lۻgk5GxC?R񏊘+F_]3bIHU'b+a_ڣAO3\ֺEլ#N'q_CgӨ}_l{#eSNT**7I*|MJJ:\Gu#ʯ2EԊUQU`覤,({!,=g3GmQXDe8 ݂ ҫ.u⦧{ +⮌be4x%H ƭ&I\#\~KW?'J xC?Onv!* >>rX:1NA0C -^Z,9*Χ&+Z[z(x7NOb+Sq֩[Rs5&)F.Oo4T_m|7^#KjYfD x7 [iEEiɳYbY"cr˟o տeo۝$Xү4b;JRR2Alk-G[uxծKH0,3^ڣ6T)Ռpp :0U.uFܡ.e7ՙ }3||F}(mNzIԪڗNuZG(KMf~|x>0~߰O||?CIմfDx+ʓ!W2W>=Doh6vc/#dcy3C  aWE:U%RU!VTT6OrPtiBJNoߌkυ46o4KY4B7YmgnaYGm@hJ~x?Ŀ<%>3[_Dzʏ)ɎL?VǓkK5}j%sTIn7)|fZqxzIsN%\ы,+&z>}<7`x\,R4S^֝U(ERIrR ?WxwE~3fj~kѫJ׺9kku\eYTB^ךw嵵vfxoPs#xVJT?#i Xn dN kÿ~<¾ńM4 _X3#K3yf%W<~N4%ŻrFC+) Kqsqw1I|>umlmLތ)Pqy<&*\|qWp6ψf53">Fu/{im4햅Mbm6cov74 Ge}_w->9H־|Ig25'!&{20h>\j Su?ڦ>x^^ {\Ig(*BA@_QT 5o~s;Ik-ޘh771 3ʲ YYo+\PC5js,JQ 1MDA;0>{$ڧSG1&m+&>Β $1^7c19%W p98J2)St+NҌ]NYr)9:%k\}'/m)tjJThՅ<5yЃ/fNK/7q&s{xsLo/,Ix(#]V'Bz?~ɐ~<+q}Bo+MnFeXV/[,crrG__Wq?OZ.E8ؗ\4R΂) ن9j~&z?S㯍,>uvRբCf?, G "x~V_[1W>\lTiš~Ό11j8Nrq\'Μ_#pcrٶg˗1J4RXzxZ#EԔN.Q猢啣n.&,?Txx_4nBխEKw,p:xwx Bn}c6Lsm4R͍|!p毪XIo k<.YÚG w@w񤱘U^xvZR~EAS+7h&xicZ=%I9ӴƞYyGoGo`HBs,d͕`4>7~_ |_s|A;>B^ i˜dɔ.C`|#?jς x^7~3h΃sh^g^:~Ay% Ρ\*6om_c}?')xSJI4}oytXr *R<ˍ5RTVuimrSNgY"8RO08}+Ŀ'?kji-+J; N];H\Y@9Ls~ g#5ͯ|b񾍤gL-4.YgapԈg):v437|dաZSJ\!{Dӧ($KK ľ%:|=LMl6&L5*hԥ :.t%'hvOþթ|0}kh'>3oqtBH9ς~˿7| joڋN~5i oo/#墸XA͡_!OU^–?Xl-+ii6a!sH, >?csr⟊Xxp̈7e-\^o\>ۯk^GV\8ӅG F(:j<dw¼LU|VSùaeN*sBR/ݨuJ.J-G?>x Ļx]Bo4iP5T(tIl|k_7/UfY-atPFm(IPL~?*<_j^<?/ul"I ܖa8v?2~>s5gDB>00P\|?.ӳa3?u|OC_ گ,|KM: amo<"*mya+)l;?/<}࿅>EΧA+i ")9aFo1bm\n ~{x*}rg.O`:qZqnW9T\M Gnkľ'f5pzx Q/fR `H7Jγf'#c_;xK I+ٗ% )$mN սb' (E;G<Af{'J|m E&aKw#it#9wſ~`??~$xT 4V-v΍XKffb|<k#|9_eƣ 7m#g(_ vC3 Nq5FMГ*rèF*c(F/RNߪpU`P,]ZJ:3{8tWݒPYOjOONjZeuOex3IHIσ:|'~K8լ ;2/R[Kkd_sIbK:j?Oďg㧋,&tJUθ?etgj7X*>lv>E4|HK,>:'Z Im{yx ˸$WK2 RR%Τ(M Qԧ <ݽTmI54g\K)W)է= ԕZ\$׵PQTҩQ'gNx6~Pؒm/-nhbC{"F2шH0TXg?<Y CVڛIW62%6 $q\ihy,Rn\l%X7U? ] ?՚yOٖ쉼|*rYB>ȯ<0*0pҧW9JQN=FКRG􊽬jlV0r /o*ꬣu4UɮXzblx;D>xzZrj\$yٙNkH#9jly?[1OٻFs'YI.4ˍFnG>ϴ)P>g6A >u8rBSu=S~Xu/NiNW/L:XlMF'ZЕq;YT2iw|?~k"kZfrV6Vh/'%(XOcpV,Kng=f߁?nχ_ |Iw^Zikikg,R rv'y'h q, 0&S*ʄ%ASiGΜMeRPB-8ӳiIq8$~'pG: Nxh҄hCT:2ugNit*q{ ~Zݏ;|\4W]+{0owG&Q ACLa ®d%FVl.I G5$!߅?lGfخ?x&Hn`Sc[LQJJ *4Z$Mͭkk-fXFhߡ_ ~ߵW n7?]Ep ХĒƋ#܈$o'8 KN5 VQk)< $C[M/201Dw~vP<]y?ǭQiɨXGipfe;y sy7S~4B/{kψ'qtKi!U I,-݀h-ǭy?W-OٷFq'YY.4ˍFnG>ϴ)P3X _L^_3H{hNh{QƜg)-W3`8Os[:xTMΝ𲄭O곍)MKI: `gC}^+WZnAuZۺ9ĆD`+ m $xaQWM [lodsuWXwdeǡhboŸ$|a ׾izv\\˩ExZhY_./7uKeuMo6,!"C2Z3i8}R\Dy(Q*0gsz%ɦtļnk *ظJ8 #^rsӫ')&<);x㿁O_CuFAod%ʲ?1Fa 5k_~ͺωʹW6*ҤӯaF,>62Cۗ^T?e֓C5IE3/>E xuvWe}}k| - mmXH`d]ӒUyO6a+**pԩ9F'^9\9cj\RD8F`8ğ̯*PU)ӪEhVJQrG#V- ?_Z?g߈)5}oUZTB&,H/@3+? x߈G(bKytf/)l)#j͐w? ~ `08J5g(CuN|#_j:'gahYaFT18J9*b*Ηn*鸵QVN?d>'ڇM߆YXbWUUY[vX_%Oß|mt x<'y} TKu[#[[F'j7;J)sV<|IQy{x_Z6=v(Hm;#|ndR 0pxO|Wƣ_WRZ%~ZUY- @qyK>#zy:LHnX*WƇ5)~ͩUovnQI&6x$s*y>.7~6?ռUi6qZJIL^c6 I" ϊ?d?OeMxXXHWR3+R٘āǞ7?iO7g|c6Oᾑ}a.>{ $d1W fB;3\^mcZxxb(QB~ѕNWQ8^oϳ8XJxyFµNxyUF(8'~W.ßcᯇ S6j4i4K;H8nfX̏,\@ x^\qK=mQmwmx;n%+mmu??eοBB@vrif0ǁTT9f!.?4fwr\G$Zt6;8ʕy#:$%YO"qUJF"(՗qT\i^iC5vԴ>Zxo|;p!(ƃjὣI.Kh|_do^!V+ZV1]D,yì:*ׂ?e-o5O R_ {dhk`iXAP:F"F;7h \xHc[]K%?煔!Uې"(n&i?_5OfRBo{(X[gy[3N{LLTልXHMӌ髹MHN:+n Ϫ ůc.XT:T QH+T^EAEPEPEPEPEPEPEPEP^K\]Q]ܠ&ksٜ} ◀{{-bnaRElHSoQ&&xҌnGLj І+>F&Sn׷^׭^7OO|<`jIm%w1'*BlG'OuxB5m7&.QITd;=׊|ig5|Q>!^:Nr."%Oˌ`j**1X5kǙ7(r̮1/yZ.GXG(8sCrusy╴vŒE, 2lC [ ix|/5h>*YymH ;nH !7I#Žmw?xB뺍XK33HAvMIp:5͎%ʜ|9.fiWkƌaZed勖uyRuڒUPq*+ӴOgg +WCTi$$6GӴEj) |V~2|O.#ėNil"fi^Pk/UCr}(r-9a*B-SmJoc-y驓ξ3VnJ%U»_ijj3Wn/D+C9w߇ =oP˯xNf8m>b+gb~L uluZ> |Qb 3 Q*Lr Aݵg{)b8xP1579T$c7'8M.Y&ۑ32,~7.SM,[/ENu'I)B5}SKQjQW {OÏgş1h| o ֮LqOl(As^Mbx%#i ~'X-u Ni0RUh;_SC#Ia>f|A2jY^ Жf\=eB PnN{_xfC *sSrjTP#UI%񚌒]c^`2ʔhԫ'QҒpUS#YI${;Ԅe4JM~>om|M i 4_zψg$(! &GD} *;*GON~7Z/ .nUZk:Mb R9oonfx,)Su\ʬ9Hs(IIv2o~xnq9~eѤJeJKYF惩Q8sIIr2ssKk~Ⱦ"x_[i41<73΀DH {2dz wgtY $ (4V~F\`k+B06 t|aԵ_PvUZUm6d1 T)GԻ_̼F6Q<,x򔽜b̹iST}%˳v_pYLY%U=bGVQIEFԖNWQٻ~_5S6c¾|E{iеgF,-&g+;Bt)I?ecνoԺ{C/PSs *>5%YǗZ-ǝ5ʛѿEA8YR8Z =ӥ̨әZ-ǝ8o^z;h6g?ᆭe;f!1UIrНeWu؋zֵk.¾\6OkW+)<~_?#U*W0!Zj^ iKTmM8 J8L3L ZxJj7*7vVӌ)IJ+%TW'e #'=+/KJnLn'̳YR( XFwV쥢x|~;x;g45q^xX0hSB46、(!# cv8gghNT3,y)k{ֶi'+'z8|>?Sj%Sԫ kw(]yeu{B7EJ]w;UUW%5|Fqo3yOJִR2FmJ:gk/.~_ >)xW֭~'XCZ^u_-աlʨJ˅!X-5φn <iZαMQhe'AMS#2_L/ԣV/eRϬ`ܔ]\VVs \&[5ZsCՅ:XnjI')W]c^-Y5 b evk8cdVZE=kZTi_.'Oo|Aie|?/nx*W?m|A|9^ -/YGs!kK[v`T* 3ݘ9oҷaRu;smTM(5*n\鸫kuYoӗ-!ejb\MJ=sJ*qTڕ'/h\~#j {pk$gHYP>|OOt'ëe>",77jP]˵Eqa[V['K_FqIJ1WzsI%՟_n)BqmSi:b칦χ~ D|Ž{c,fT||.k旅%axS(8MӔegi%hiQi߭p|k̰Mө*S]i(gkh}~?^>nk+<(V:Arȱ68ʟsEx7/>;'~Aηfi>D/;ہcS~~ǰ¿NVP 4Ef ; IǦOqJ=o;+񿄬T]i 5k/4g%0 ٍDK΄@C*oqphW/,=2ʥʻGc8FYrrA$*.]w"s[ 4| '> 4O2w aW$αbjc5jn9rwe5FRU碊~ sO xu]KĚV1%+"NS?Z~7>xj6ZxbLN<vЁ_SŘ"aRR{rԜztfm o:i:%U8ܼgWJ+ͦmd־J-֭"׈/^h-y1##!|`83udW:g߱0Y$LJo9`>[OM7|cq v^ |Wi,wkiWW~9a)0xp{IBI>XU)B[yFqmu-G1RӉOgNi>HV(ӞNR nUZ[w>Miic6*M2@ r99Qg? "ŦᘴrZioxwspeT@A,K0+/¯ß|'G5^ugmqg=^cdDWvlM2r Dzpsi4N |N.^M+*xJ9Su9s?kiSOh{M/v+/g3gW xׁ>|7/]WO4Wv:npJqbwnB%~:Wq*҄գ7Npj\ZpZiCco W <=l=GJ9B)FI¤$}m +Iӿd7?xvO⮝ckڶI#E`W.v( 9EO~m㏏5Xxox UقCYK2>dP}V2!&/URIr֟Z4WJ-K?/TFi6x$̢ CWyA673p6_5J*J%J([XNJVMp+2಩VܥMJׅ ^Xӛed7(^7?5O=|N ݬI\\Z,<$rD$sq_& go>kXiM%%?dl Iſc~ ==]x7y>e!t$Ħ('qf%IׅWWlnsRjjN UM)7QŴf+Eh|}|._2UWb#EFMՔdөFV_GǎhOgpGsw٣E w6< ~Wo4݌$>LY͆](W  /KV;Xl`Ю̌I m#: fs_Wž+3l]IaTJ"s䴔R\d| /=V /c:P|sѿrX;N1JQ$hM8iV{'WOV] ->iIys$G (#i>bY5? wp=}^##L+_#cV*XX\5F+ R>ӞIsR֜$EڢoBj.Q<Ւ`|V7VמI9Q9:~TOS\3|/jUMм=m*C [G"! @ZBg(|b_Q|b2Zys@eNQ~^ybrq_ fZ,|WBKu?\Zhݬ.U- F;o{~<Ԃ-GD,2H8epX4SaU yҔYԍeuJ.nRu+<&/:1 '8ǖHTEs(WRrg$OĶgw2][ɍOFFU+Pా|3pkw,"XXjS@XB9ǫ7Ou7>/ҼG6z}3\XnEwB0ITb9ZN-ysӳN3n}l>;|E."JүF9J)ݷMug? `?{')97Exi#kcr-w@ͱeR6<;|NUSWy&H8<ͅ.t hjw5NI,Nc66 #2@_:#7<eg3B[!e{@@Dvž%SU}eQ$"T&w҅.hƤϓx52 Of5NB4jXyn9F5)~Vvm,nnq{ Ud;c:kk2m6vOo#E"2ddۊ98 ׅ^T jlJL;;֯c+Zx/:'my, .8N6ŗ,pjikIK JyaiyVnmIMY ޳W?@17gӌ<= -EgZnt+SWMEBP>oͦM.aB\nCr*|K[Ú_lgҢ3;P]7I><|9Zw!-Fk9A'+; vsڿ eI;W&IR҄$i+6;^ '%E*cZvy>k&o<{ttӯ( H-Dc#W~|^5<9McP[2U!e! SpyxnMoى(&6'nsq\؟ ST̗-IAΧn-O2u2iZ|l\4(֨NU*v%>h\i+8>go G|=XIK5ާm<24NHxLEcV.6;d+S%"~+OÚב]6ܭS4$ۄK(ڠUۺ,t[oXE3% #T z O9Μ+yӛe;|󄛳웏áX?K0: ^XJnPKj'$M}Gb?tOk?jٔ3ݼzj'n.<+|%=t_Nk lxEvRGI R &XxJ?xwSAiMJKIу.'+ǁriϋ)A'+jJ`[mln&C.Qd _CWusXX% sKJ-&72i;[[I `%ڔR (Ig(?7. Ku[t\$dەєnO>3|K~A}6I;bUUef[#)1/PxwV:tH'i $qf!A'&G[@mu@)a5tFYD 0y|!u9ւUjq=8ɨ&2ͩUceNSSJ+/i٩T8+J.QRS8~|CToG,2>}M{-*cPDr1 i >H?.*^>{ 7T7ٵذ IYxS:6U_d:]As<ڜhĆ%(6p@{n,p8ZUxƝ%7{_T;+]L3=r |iQ\w*zwwgdDϔh{-j×ԡ/LL &8p$f> x2MK;{On֯J hmˁϽk.#,],R2lVwZZskktK2 lgRg8(I$d\֗-]bGg#pVk\03Y̖ >ImkA=oH$𿅵}IMfa1* ?$+YAucʝku{wKpJ9Siedi֙]/k ;Ngɶ`  c3ɮc.cFZJ1ZݒlOOc_?1QTM]O[5wCK?iA)X0xWjB|Oz5[W]AhWvr[8yR  b*>1~CObSZ|nH>W>dUwJipύ\?pܾOQӦ*|2R~]TiA+ݤ|ҽ> ?ïj!eqiR 770%ðɻ$?|s..Xe.-`RԄY;q^A~cBN/>J9e}qdi%FS[JQ:%MJ1j>댣%%N9Elk)Oi 5O ђpNhTM=SZT¿ؚ?Ə|U+ᾁ[oiEh_oB\8Hm1]FnWk+\ >k(>v_,4.RXM*j(T>yA$ʵ>mO!-;^|𞕷S6>) >IH|ZIW>4?c??|QFMܧV4nJyf(I1Vܗ->|Tơax:wǔ76S%O(Nz;e_j> >۩Q#l̏;w d`{3,^3:uAIF2R9~7SbgC&9ԥMKMJTF߳~Dtrў5d˧D?"hc_ٳ1j>1ў՗\Oov#H % F\ {{1*A-V]Z]ޱ|\[X%ĥW `w8o7$V7QmNpj_3oFmϼ&UL"VX(թ F:A6$i%jǃoѥ]:nձ< m``mI w/l||\?|'B-GO"[a>WXO9$n|-z·-Z4Vom*"f"UHbXJş -$օ諨!l'AZ?5Wx%r9\,% 4mU]ƤE/~a).gM|Sa /EI*o(U~K§<<~#?y G7rZt%)囃k$|Z2wr\*)G‹_??xlZԤC%|q i!A Ko< l9K(bڒY`!*X~n/>-ž1|d[oZM7bX#)[sxc~)+k~(._!)FPIN9WR5YӤUxJ{kӧ(ʜ\Sğ*sJ|f?7Oi:oG$7_i'Tv/ҽ/0a%^&ִ%.&C֙2]23p]eʓ|ۭĚ5 WXn11uH8l>xUӢ4P%xWTy-|d"3RJWI4ͥ}O3W.\;^RJj\׊jJ\^z|?f?~_>%f{kخUn9q$.f"XLbrxU? 'JL_5M2V YEwg4/rIy* ,=k迋_7τ .RoY]_ikep[M(b3+ FXs^' a8o.RRNU'QԨ7)N+v9nS`+mYI9՝YUr--[j7V[g_ ݬZiEՙ) (bBf'hM#K5sc\t1I \ x߳džu;q^hRrH$,щ|DRA<=+? x+^>տ| ^W f]ȕhh'Vҧ^+j~ϖ.q\.G+ c3 潝/eRHѝA79{.XJ2I4(wocwھk6M*\ϩI4fKwXL$q}РWͿm> OJ۩kk$F>`-$S9 k}r=jzz H]e_6Atv6p d-J9;Ӄ|m%_o ko4y&J)AyIpovܛo+G g&2Hw.)ғqNR擓wDn]'oʜ+ÑQR0%R>yMs)sɻ΢jmit-4~*o<iž! D~[qgaǫ:x? ~Jjq4cUZ\YA (SP]U1weSeSRem =)e'ŢSڞ/mKI_~Z?nvG b2噂URYEJVPS֑䒕cgS_ [dpɳnZZ+8)ʟU9! Tq/= SxVW?֛\[ǂMUX=*QFH(o_{5i=%\޵.$V" U,6(kGMc'ZD=V|6Iu\n/ qO ^/nfAJH=VsB,FU GStQEDku0XZTaR"FQvNڟmΟWtF=[Kif 4+ƹb56VvwzV<qƥݎUFI$IZ7|kgÚ- "@h2y$@qql]~$h%iZ*Tqu%hCwcmKl0Sj/b+U(ݷJ)'aF/(tt'Zğ aH<5AIh8v[1EPpX ;_wO0x~4~ɴ"b4Txf1|2j|)OSq[}iyO۝M~|J|S?Owݰc6]Fªd\dg+E|_x'B%8ԓ|eVq*sMS崵Gabkt'&T|mR׵_WJ*\xmX4xÑxKŸ Jn M jeW.% y(~L}]<5 a,){6MIS5U9)*Rէs̟ G*a.Z#&T'YTSΥ-Zw>Ci|!g ;e~mPt}R}2kw,]„7I!9PP :߈Rd: I}w1|qk (>}[u[f4s`#8 1qTr;QAMIϒ.R\Rk[ٯOS6RinZq)F:ҽ]mM߇􅳌i\;{Qi(3 l/$~vt__5:֡g6,__lh!imH yBD6.?94U1-JApmJM3y1a3h'g'VN?h"keݖ\B,be018 ^.J.,jԍ5dORq>N%Cҧ$+ՍT*(Nqg>e%-O>3~ z-fL<k!7 }ZXqO8{SO&/x%pӧVa ӄ3+^Ҧs8,Sr)W{_??xlZԤ _$GHB+!a X~?>/Ik xZMCS[ɌmnI iDq3mnq\O>:~8կ4)9g_cK}VFiVhS") __Cm[|_Ҿhm62k-lڈ!ivTޤ dוKO& RHΧ5GJkKFNT8~)w3VxYѧVJ1y*=%.~ZPvxZwUwOt˻oZ*@*"y+|9΋X|`uKy$x;6I1L)@XO'g)?om5,>=ZPKFcn~\};ɨ`p9VX:mS8 \^sv7^&>]dy:i/FT*tyaE8=Usbbl _S?~Fxϕ'x7g?.0zf x‘x^;ӗMֹ{9Yc:+?I:k]6)Ú: JjRY̶q9AxnOJ~ | O:v6{i[ " öx5Yp-|{}Yr-'*4eiFINwœ"oyVsU%uRU]y55.xڷ88)$'~6_O-N|Mt>%yd-$̬#r+ S?gOxK/4藺j$uT+nh۵ (W R|?h/ԭ?yheA6+IדxW*ήN m+](8PH&%,ҪԡsJEE/%;K2nIjx<2G;FSW |ӫY*\5(FuoR3?"mx72|/k#ڬײ,2;hH7#vcJ9a__jzߍ٭#YL~iX0xv,AU矊?dž~~ w^G~ CBq8T|cW'-V]Z]|\[X%ĥW `w8"\1ʡ&|9(r˖2ih(IhM3#*-(VnUR%U5uqZic5xšMƛZ[]D 7ǯV35z5R 7tMj}S ((((kWic++%n?}RGǞ(ӼC%O卼ʎqgڰgk8f4cJ& ;ޛoF5n'u\qsG[ E2zZϞVNO_'֣xIZM-cpamg=>>~6W8 j]b9R85 8 Aİ G]j~!xg_)kJMkwn^6ٕt`Uԕ`T_qx/f5yҔdv=w[C s|gjeMB]ÖPV?VOGOHX>~w:/h떷v$kUr?30?0j1Y&὾yo.4RLܩ97d__Qگ^ iqciq ,h$ 7 =|e9y!Xk+]ko͹ rN[ksG< ͳ:)aZН>XV):Mb)F)JV#ÎqJ/ `KR,U&RjmYFISԯW쓤]GmQk,@t@J%(z~Ѿ7V`- `6^0@5UOLɸ1L?ਞ(]eb6:pu(&b62؃/?+y2{= I%mNKV%n3H9p~lVtg*k}mV*P\RrUrn2KX^TRx؏{zNzUU&Z|ҩQM͹T5+ZO *xݴMǁ?iEAǑd`, ~rw׃c+%Ӵ[ijQb!!Tpr ڍճUHO*ž_ }߽޴_i#7-毗gj+nohyPgc*+.X)6kz^;|oA^ I$VL$ ?'gB(r%4 AS/k?<] ႍxW殿gqFR#!?licDq aw @01_/mf~>{? ^[GQo-ѮY#D0HyVB>hUێ<NWxd^!Ӧ9aڄ%yPkɩK]hb\5StZ֧:ҢB99*v G~ӟ > ~ɐ|uReXEv/,X,W>C??gj2x9.u`Gƛg,Ӆ Hw85)[e/t_ "ypGF1|Λe~UxWo@kW0xY渓Rm$|đZ7V AFRf9[' F$N!ΝJt/Q9'7;?:oo40Υ,e(9{J*bJUkE\1$K4lӴ?mڏğOz|GȦMo/̷Kd W`RH>¿Mo=HGᦉ~Ѧk#]$цKfȬds\N|o5{ w~ޙm ؒ6Zl9`OzOoڷ [X[HcR\,Gga,V0(N:IUqjTϑ% iOގQg1fijՍ9³MPq9Br(=kh=5?gۿܿl%J*`9 Xa[ߵį#MguKj^[kV*0; kş!)ښb7W^TPyLI #qj*'I?P~? |IMVZ]ƒ4h7ʩ I$5CF]|r:umQS;,yR|62RT֩Rsܝ;ϒ<;[ %Xi5 $.8>N>|'ux#m om [J?2 F?>~ӟe^xDڔ3S:!^2s\ ??__Ï!|W/A% gtvkmZ^ VH>ggy*WeFrtJT|o_:m]G#^on'Cq*tiʄ*`fEʥIOߎaꚇ5;>_қNmJ^/$ H10N@?Xrm;UѪH`hm]`Eŏ+ ~d2҃:\ӔM%+$GJѾp%nl6K\즪(ԜT*)J#+ Ư+0a2]4=F5 (QΫ"E,+ 9H10?_k|~Կ_]z3Zx,⻎FmyLa,UNśn$,F+7X:j4uR4o -:;3|u<K\BqUJ%T.hSgf~x_i1dѾ'k^7ikwkh-|c EL@8j)SGUy/겘)yQrYPp>AkC3'uH&#UR#FApA>z ]xbxfL-YG)a{h"eX ؒI^7Lౘ>RiI)aQkpF{\O~/ ڳNMTBp-ҥ%g+kD_6}F[{yn.mFx02p?9-aFG+DH]sX_أxe)';,ܟjjw&x^tΧ́)0@gbvA◌?l?moj-Hx}8hmnYL+UⴸZZ[~mm(2#;lrIb#ko|&Ѿo]Myy0=fA3n.; ,Z9fcBz7:uc4Gre'=y/\3`T6ptkPWѣ^"ޔFJ3sާ4Ob kR5[ox~wHg4xP'6񝪼4NI#w,|oÙ~ѥ$ssm*!n5kyW 圎C _7'[8JT\TL/+{э/[NߑxN3dX9F*4UF/RhK/~MkMrՕiMh_W[ 7]B{>nub( qJSJAB )LmD߶{NxSWh>/񯇵fPp.\_N~/}nYͽ6=‚<(ߒqIU_/[/x<3SAvW["w-Jwp?.+0~c*F{Hطmyٮc<迏STp^wcJxcSzT^ߗ<3_$şUԮ/4/ xj94jkMvv rxٟ^5otLuXbO[isW;_6b 3mW?OO⹼gO[}.)-I#۹yFM{?ࣟ~'΋8|T!ւKKvkx6XW+6>bA Yi[2^G,*~ϞHRrK߲mI>gun<.#Nr:JF\%S_6 ω>)|xǎ5̚%ȷL{w(g?^5j7mxY Y"?} +.gSk]SljXK>M$MkW+ X;[L'̺URO8f\Q\)#|*Ui]8½j)&R4k)(J*{?rM,k Zqn)ׯV*rtQ PKMBPI#ʫMB?>~O{-v";G I$T-E+Wǎ>*YeF/t_ "{p$M:bP lѐ~`x><75eP`QQ5n$TIJծV㬬M~\=d}7\bU;$!BAjO(wgG|^ך烥G{~n8]]pP(2,q)Υrѝ'SSR{F4yZR͸٤TOJC>1XԭXz^gTS4?3[NsjQI8WQk7Կf/q]kiokj-Tظ FF7!NA _ kg5x0W!UӴo!؅bHIv%#sW*1[Qb8xСv.>?~/`8r q6SjS4g9]A-dܬ8xON&i8y94t9s(NV⟀|'G->hZP)rIu.A&G]q^UVyx#R5mU0 &Rˌai~bZGg,W%B%/-Y>Hݬw$9w~> NӼXfux-k{eb uUr8,A .#艛F TTrI,MҒt(Ms8y[@l8TO'ko>I9PlF:u#4E5O_<_9Y.ټ=xJ:skƎ9Lo))iW|a u;_Ἶ,RM}l#l; =A~_i{Kd]ˡj[A Z([*I 8[pR|>4uOC0 ϹO92O'5~E+5iУ uW7RjB9Ddt'v4&>_|Joci.nuM6vXkܫdNَ6|uxN8Fԝ5|o|m/7cS-멯4/&g,ҷ&mۇv<_7F,V 6iN %8ƢNyNRi%Cn ѣ*TR. KeMah*v)F/qYcω/ c%#G[H S+ekW?S|VO G{-wö֑XyY#Xc, 8~q?C~f| ՠuYDVV1I*U|ʅc ^mKx$f՛V|HљUULI$&P<$i,F,+N28S]***6j5۷%6;(ez4pN6i8M*PMStT-(*n)%M6&i/jzUW|SH\e]Anjc>%|e}M?#[|+b9ݔmªfx_᧋u/ -Ɇ?%㬓24Y$c _}~s.ףNkRRP*cg:E=RqPygMTKSg^9?VPX+G%B̲:_|D?"=|ȪD7wr,>v*?.1hn)ͷg'e + |cu~6cB^+Fc5GV/clg|}gJiBuBT-w6u)$ֿ҅5U·W҄)`QomrISm]A&5ֿB{yhMmPCrqC , 4kfTB?loW_ 'Ӽ?eh,9-Z"oiP@B_?ߵ_YG펅y"Mukiemn.$Di%]Cp1Ncp>ⴸZ\Z[~6k#frW#fCKW4N&uzѫQJu ᅄTvԠ-~_E\+KW/b"d)Sყ/5(F]uSR>&|Ho@.յ+ M2ڦvv rxK▏Mi_n j+7ZbeK #eKdyQ#J|j|W7 oC{<3Ÿ6"6pw.N2kO .j?\K_]%vvve [M*^s}k^(`(ѣqrmyCٵ)9?W_?0^]JriaJ5ћnDRx>s\lj<;-Y%}?R?n/ h;|4ĈN[#b6Qz~ ؾ)j|P-eR%n،\f7HbBH⾇<1dRTգ+~\Z9a+mJJ7'Eϫk6cZ*yR: N%9):RoJSo-E?j_ T%NkѨZJ$)%%VӪOWuῳ_?~%>q__n綖h; "@Wğ|_֧/-KqI k W!eys^CYɠu;g p=3Ƨ%(S4$Kp*#S44$v~]hzIW/)ɡҾA ?- ld >&|GC'vqj^%c ĬTBC_-|A QSP׵SbHc kUTg9$oړlǀ>x%ĭ9%|x*)$7xovA^+[3յENR\rpc̻~Cʸkp>lNzq%Aѭj998Ӽ#̓_Z~Omy2Ǣѧw“ԟO]C'?.O;i4{( 1m(TD9i~4~Ͽ/s7%#>>W̆ex!۹r/AjφK5˨BS&Ӄzzdv~ |H>!Y|0UߒR0B"F/,1  [FW]-~{RkK{D7QN |Du8/. ]huMIrJ#VFFܨ$e/3+0duMIΛS1;Qm'f>-xy&K0$ױJPOބ*{FI̓?<-5i_i&Xkz:"i kQtŹ =ρ|xRneaLY"sq!pUYo0RoŸϱpaT/Aa}Gs[KpΚũK{xKoe(8RIJ\>;!9mzӀAl{W+JJuJ4!VT*{Hӕ EU mY'iI&_?ףZ+5:UUNxtEHSU95d ??z"zlouŴK22ۨYFYUX)b<>%|C¯ i[xu;i._b~Q \/^x>3|ouhEkoؚƕ0Kg$p"\IYAQ|?wg_Q|xD6.$tF)7䪾3j1g2cq41t>ø>z_0SMJ2~rN_ѫ 8YeUN8WMJUz%(KM.kߵҭyxOS4ZkD1Ĭ*4vk珂O վ x+HM{ۅY. a!{ᑍԐ*]oٯ+M.ԑK6WKܒ9x׸ *g(v}&E4>mQ +2k-O=FJiw +kKʳ4nWky?फ़;4:_QK=Ʃ%EdEo42[ɰP,/c/-KDj,ִȴ>&x#&iMF@\m,ts*1% FޥRJv>Yr?g3!N+S)fh~ە*)ռ'>K{!׿jK~84_XxsN81戤Q#vy8?;S/wC'QS;1 1Y 9;DprNfP~<;~QxG"ǠW<<2]E1A?f/nBxzQ87PJ/&Ve;d ",("JqY&cfe,:3quM%8.eM5#>yc:Ӗ\:&*Q%QE'ZnSTb#g{:Ƥ^TFI_O/%7 I ּa[i720KysZ߬ZDH7 UgQH|= J:&?>}KkgQyCȀ`H<ܠ>O+fi x/Ÿo+DC9~ϾR3ȑ ?ς| 7Ӵ[xFogRAtH IQ:ӎGQ_5m^ ?~#coG_kv3/" 2$a:Ux{;ӭM9JySq\ӭ7)I>XFNS\ir=~\$,=Z8IUaYΓ^nseN2r\$)8,<:R=@)-|e.[+S˶cn '~3il>&QZ69M(k7m@Ǵ{]1S\_^ڿ qXǯ9uVlϘdYW`8Pwt;p}5Ə?|{vDl ͪcu_Gx0;a?[2 9n]^>8M9ʬ(*F3uӷPƾM3?__U>XY ηѯ.9?wbfQ A[|~V&𗂼shձ]kXy$224q,ɿ!~f5~I.9aTk*Rj 4*~dJ SU>&՚̜k *jcON u̝IӔi*sm$s 6?hώ_ Z<6. bZ{-a7m'`_ ?|_?MZ5+)^#%lRI?ߌ5QFҾ |?0o㴽,>jțrlXnEE:?ٿ_| g/_~HtۭP` K1U rȀZu!(rkOtW hަϕ3_I#=<^ВzPZb#B6n*Oo'?'VyeK N/Vཞ<̆Mۂ^ OnA[xᝒݯukCJ&.029_dZ |`q+kZ\P;b9B N lW\#^Wo ti(Nۅ.K#5޼(RU)r+T叿ʢ|FQ~hJxx`p_W{Bt-NEiӌBŮe$~x E[xM.}.ok;՛Te,^HvXNخWog>iU53t ,&3 ˺@U0d9| Si|TƑyu%/@ۤk#HDa&ɟ̏cK9-O5«ɚ좰۰stO|n\p,UάƛqRR'i{8$}#;0'^>4OjԠGy'8x>$x؋KfԵk$;#k>@GPퟷG5_ZŸ.-ω| ̗FHaa;xߴj>1_yA5œCqdtVPW1A[i yuoA/--գIJR#/'Þ8sYm\h=ƕc|&HB( &пow|= ΡzTEϥ @v܈X`$q޾?~KyhxhtByI."+"-xy>M"` x*RISR0$^P5PԪs+);g㼷*tp3aN')be ҌhR$T;O/>"hS60xs_I|1Ī- +?i.O,m/jm-'$fH(v[[g߅6Xilji{6teB0x$e%mfk/iT>Ǫ%ikF4CZ뗒Y" mh_1Nq_wxත:~ߞ?7?ǺXO|C+i^]eb"0>| ㏃?mi?f_aմ=v;]/P o%tyٔFL>i^2<˚h.iBX[ނHB &Uk6e/(իsuSKާV m&W4~:io-g|GaT-IhWvU([vݣp$Gg |*5%]=̬,>rn%~bSsCYk^? /I`:k ݫ g;"HSy_ "6O6kkŞԴY\F>!#rE}<]v;= =*Rt99sU¤Κ)Nr2iKʳ>%J :..zZUf?hcFu9nPvG7?;扝w F0x$8F+xckWlLT)ەsI%E*fGleHƬ> ESnE4֌J56<)5ےGA 0,Z#kzN_OMeiAkdT6σN<˸z23niS&\}?-쟄EyIB4ʤ9X&􊔛}w?tkVu5 v=F W`x/࿅/ok];:<7v³x""VGMѷ(%O\sV[jpAhk <`nT+|^w e麪ngOvܒ[٥i|#C8lDZ'YTt(T~/jm%]ɟ^4ď|D]Zj"d!l88pki;^~1xˢx+Ғ姂9"85w+;ڽ&H>U)|]wç\h)d;yZe[/'ihw.K|w ͣ8ҵ 7F|W>?TW5c8S^ʯ?R-yv9q,}Lx kVu%:nrtlڝ]ȋ}{[ҥ`,'m[,!v4`'X_Bvw5JHѾnR}S^<;??8/#sb\&-<=$]5;Oq N N69)R$j~&5Qܙ<1c3~vysjαZȾ'T F‚HP\ǽ~NO?9mΩݤFwO$rF.*o e9:n?o_/ArVHK4/#5!meWǧ?v eC>>DŽu -rb5"3Ij2LмI?r'1x|-)*TJI2$gm5cƌ\ *4#BQHJjbm2IKF M,.ee8 A| /ߍ?jV-Kݮ %IͰgw?8acߏ< о xහ4kď IeGٷ2 ܇<]WJU!/vNҧKOe]='ڃM߆YT}]UUdOmbJ*~nj:>nn~·~$еngF7ظAr;J|9᱕$749RPRQ~8/9>3+N>ÙJ^ʣ4 Nf*SqM_hR1_>.~ WS/[W+K=~úٜMMDE,FIPN,X4lO%GGTվ&zcDcG?#gÕd^'"y2NJqt)SQXJpwIo4Sթ '%8JU:*ҭ[ӊS斍I5{;~1@&k#(>8DִW텡Ҭl^\y{lVin ʼnmCl>?/P÷Z Ԣ̃  m+FOp>uJ\R~'B~nJJ3\ $*d)^TBn9I%5 M=~6)IXaR*O@}Y[/3WZK2-,n JdKn;H#GC\'R?࠺v?K|iᴛC[M-s(# Hz2G)Js(Ir+6սzw,Hnj>MK^ԭMpI6/Կ-6V 4CIN #J:FVTE?c٫>,iŽ;MޓLZGkinvCgYC&B1GJkwwv^&S 3\ wzuӀao&P`|#CʨqQ 7:mΛx.T )Zir5ῦ? L>cZuFtU*RNtT+QI/^K fo#;t \ MO I% "L%w62o +:֡`ML]cT!rXr~&T#۩JPS\$q\馕Dύp2c^j%R>2 %(.gtJ?Յޙsriviv%RKʼnf8V2Fߜlx;D|(_.c(,#IwN2<֐GB9,bpn~ѥf'E9=ZBIJP.[ϼvM`q~4sʄ"-V h~*.4˸+ $1Ÿ0$ss=|gC y>֥Դ Xhz~l!| 1s7?~uOGfvlmy^FeH tl`IlM{<^c< իFr9œʹ#.gqIwi\<pTsZKMR"8u꺮:U)ǒ2痵QqQi43E}oȾ.'ƹYw-1L2 K)As|k_ xJ,א&so46"3e^bA-fls\ r.oԯ(u(8kXkx.rxgdIvJWq\R(ɢkg=6ky"b\ʂaICYU;7<-<-x_k]id7|NДy<(ɹ9o؇\|9[?Լ7귗2[$M9y'%V2e E٩]~PU+TXbR<ʲ(8,0ro~ |Q+Oi$h4^tV*Uwy$B}3}'DS桫xvLЭq/=YVE5-!I/U,Rl6֔7:8^_&ܱ&, |&L>"R\²n JJJnX+?hO5[%jJ,0ɰY i$nldU(jzѴ2]SV fSU #$`Yn(yja=5JwMYZZY>!|MSUyIi$i%}(ٟ8wďZU4]wiwWvzp YJ=Nj_ïZiS_fTL>i|c.?0HIsJ~2U/MEJU/ ?_K yUK珰zJ. R}ȯiM=-8]E~x#-> oKǺ77:&ڭj\9IAVWR˶G~Οwo2oć_"y';Leq^+܆,N&nTpmTTm7{6}3'0mGWa,]9IUBjA]w_ ߴ'Ę>WRYb"x"fxb5, A⼏q?'}'B[۫޳m8$݅%qU#)T9Ӕ}p9qI(KT\3OR-գ(:IөF*~s-NQRiOT\mO+kLgPه?ĝRցb6w։(%H̾Ttݻa*>3:s~'ՖC!?mh\Zp$>i#;$2G3JNiя/-y% 8]J{gχ:i7: v%f8;i,`cqtqta´(JE[$ܹuOv2#*T0zXJqZJ){rT~hdz׆Nz-Zbй;@H)3FBVA/d~~%j|!O}SO0F2[;Rgc*"8jUԌ74]\E% W󵾖IVh9sЫEBPYrޜbSmKN-]3(܏rQ]ܮ.רP#OGaK+ra+)Dّtp s5uް.:~\QLcAX:~Fb{/rJ:=*ƶM"IGON͋0)ix4]@Njg隅F*t(NlQEQ@=:)"{cRTHyOA/։/tRɼU-_|JfK48ʒq_}r\*"9QIQv`r)Oܵ98y[GWЯ2d1x ]jjR.^jWwJu,jJP_Kេ^;şK"Nt+k$R˂~Uˌ 6 Ѡk: ΝrF+kS/0$sW FL(?g ҅yJQj+ە%=wmoSS**xeyQ,[۹$0~6?~#ǷQyPc Ƒac{onH#"` / 5~7f;I3⟌ߋb׼1OqjYZdpiGW]EMTpujӮ4d/j(8rƝ(FM˜LuL.^%hJVUSqv+II:0ms׿Ow~w|E- _KYOyjav(4U#;IUߖ~ߦxɇXxb@};N7 Fg/4^(K*1 I7Ï|$ψ|V6/5Cm,2Q<_g>TUe9ԥ(INQ]Iԩ;%w:ϙ\I-8;'<kʥJyRg8NZ*Z1beh.h% >=|G E/CMxHiP,{5Uf|oWׅ8vUjSԭ)Ɯ/S݅$HCe-[oV |pէX҅?v#(ӌU:t֑wr~wlZ>$|=8/5;-bT{ 2V2v Puۗvҧݾ+hg3׆~|_Լ1|;Ɨ-ŸGl̡nQA5_Ex9?~ @ x_-}2?6D-=~ķ-Vj~C6Ҳc)Q'!lW/E|j)d1N0%(<;MTjM*rSIuӄݟ B(ӯ58tRI)J1<[)'࿌w%;5{:˒/2?-vɕ$^AjVy0J3!'JqQU휥'exo~g5yVP:tRRcN3~su;#w?^FCj׏`3,W3>|զ7kM.渞NF~ b#gǿ'38#;*‡ȅ|#=Ok>3kzhZhגFgy"`c x_xf 9౭WՍJo{`5wo~/x[<9{k/%mdْS^CBW!K:W]gbjO'': (F3*q8g0񸇘1jb):g 5ITRPjaN1T %}]ׯ_7oC+ɦw?è&g hMb^!C!&38H߶ğ_o/>\H2<2_'e=k/8Y͸FUڵU+U-#:;OظqTxn+A)8j;+U=#QѦ;?%w?FCjגFeU猐O[?k=?v&u4-B-Z.d7l[k }]e%Y>cNpNKN%8O#g-u8¬>s;VHSE{;NW JU)-JZڟ:YF-|y xWz~}KIkg'!/Ί$3^ <O qRGFN)SM8V:ROh#+ߵ4߉?'-|>cx½CSAZyRy69F(22'鿇3~>~~-|DouLaqBe 8aa|| ?h x[>s1Ds*~a?\x~sVOr\ppsJ\Дp>Z |~E8 |X>:g쵱g-pe#;G,q~TgO|K_ށIm[nmo#hYaM&6fPr+ \Yn]νiה*8ڜPj%:r傌'*m^џ(kcb1#MJu-FPjQ#U*{š7:RN^⽏^{L[/n$ϳc-`2E!ػW+_Q_g 2ym sFזN0;_^F2Y>\ч6w)9?v)ӎF [{'ᯏd߀ %}[emٞ dɽ?o:uV׵+FɝDQO$hRRשYԕYI?wNnݛ3k+CWRJ^NRy;6Ueo?ğǟnuEkKwhb9atӲ7E- ׏?mww/UWU.5X@bRB+2ft(Ycb*:SNh7=c88i4z~q_E,8%*n$FPEn~agMsM&s:~߳wKqSH엉qePX`w9To-_4Q_w^`vJ)JJn-4BMߦxG, RE[14ޟoEdυRbx;[Jō4>$q\,20W0KGz6Y]6mr>ӦX-shq՟ˑpW'z+xLV{Nu?6[k8F7?~70LfJ#{DY>,GU^o ||O1'!7zuM-ƟsʟoUQE;$_Z+ W`꿰^|)~읕4OW~y]8`aՇ՝~ߴ&jjS4p٧vjh <i?_ ^}.Y5$1ʻUX>6|[>xSC֌ 5Ŝ|; ;2Hue> SV{QhEҝ.[ƚr&rn1viy7ѻ /1WJ4c7I*piFR&7&OۃO0~7GD/K.H|\s*H(5_MڣORqs^&'.5(ۋHQ6`ykm:soV{5J\ܱI'{[Y?m#q#bQ{~XE(\<_ ?ψ_'cMڞ4_h#Iэ&Q{.Hc$ި̻p!OjO/v|-lDD>reqTc$F2OFZS6S64ڎmF(G{(ٴw* 0Tn* =%RTڅझٸ{oٻ~¿~"1e oI}m}dm݄SR$3IiO?_ D`F\ xiϞ4w {h|涔hI[F -l㫼*z\ľY{/hөZs,%(ͦo׏|tO67jgj\^]21Ip3_Pҿm/ÄKM7BUkx Τ?$:(m%}aM^KgkFVd:H)܌pk QX WGf"I~#*\mhqus%PPJcRk.qQZr7h_7O ʜiU=9NDR<Tr4.j6L]}]ǯ_-p59.Nx1ݪ\+V_?g=GG,|t|YjG쮎mA|%GϐNҧ|f7]j%$qcS%D\"¨W^a1%/h?v𯞜iޗ+f״$=_Ejx3 (׵|ԣI:<^֜(߻ٛG_c$?=ȟ4k/T!qC!N2Hܿ 'WKd3_}3]u.$ѣiU A;v|S7*MUGԷ^+O~99Oshq8,edPXz{HPtjBH|r\)|]co_>BoKM[;[42]Ѿ3N 3BgK?(ů7>!OjO/v|-lDD>reqTc$F{%MZqn :Wv5ңE$w>J7%+cB*nrܭJ1iPEE;ŷp+kWic++#W?JÔ|خqVY"nsbk^]wfnS!M43`:S`zS\S9\;NNj<Ֆ8USF9>6AރBe85)Pj4Rg7!P2W'QBcGVUtr (QERJ("{GZU= ]N8h!צGjB*>FNҬ*{GBt5UrNO { 7JiG ZxTNxjN5׳œ%wI4MIEewgN=zIuH/ j7s[#[Y!Oޟ,H:?P> T?"|7OycXM_-#[x]]y?.{gzgvd?i~#< V4o*:Ɵ_>)zH YsT4lL,bIpn2 wx\/ ӭ)'/oB*-Es]%)9}g qv pm*iLܾzwuPbDx*mg%_]' .ui{ek"aLW +%_xZE|;qոtΔ+~u;e(/ \]R49g_?/Ǐ,~v}Cǫߋ'Re헒G,Ͽun<ZγMQhe)m9_dw~;M=Ojw'3\Mw&q}19^@ ؾ>~ݿ >-/ ZGDf415Sp2KI7!:iVXүiTIқ Pu!N0M8UJ<|<6+,*U>"*2QքҫN2 j0vc!)?iu؇zֵo.¾\6OkW+)<~_#cUoe #'=+/KJnLn'̳YR( XFwW$k?y G7rZt%)囃m$|Z2wrX+G?oeӢ} NQN}o/RcwA^/xQu0yuSuuYFq՜h5i[73bU'^V亅LkJ32IƤEN˟IFsh!ϊ?|I'{xoz]28LHBLf]/(ƮZxGZo ]3^[ip4>.K07<`",k?$W-9|bmK_qwtVڅ.um6y#myHXk?jhw.߇+Ei:s\$IgC6(s79پ%Z*rTڊ8F*ϚI*jpoWD(֖W%ƕ8B4(%[ ?k&e}xǺ&g-mnrHbkUAnPNÑ[>!/^{}Z7^&0[FԻoh!0 !k >&x{◇dm@X#(GAveIUgoK59 WDԛJKb`cKvXvi7n:d z"[C(a0<[?kfxCn=Eh>5-m1y#USaSfXi/GZOjڊF3Ǒf%v1mW:|i#c+Z>mKVQ{ݕݙ[9 *sUUٳO'-m#K"KG<:{%NE<wQ I>Cc[}*=eGUEbFr p?/ub,ot'UԦ{4R +i`n9V,[G0J+4cRSFHԩ bif>Ǜ?>G(`plM %8VYδ(ԅJR^Ҵx+MRl}M'OT}k]|3c} ^J{IB'|Q%>|?cZցccL3VF z0VݐNskk?ڏl|9i^ů␽pB!̨\ö?Xxg #oi=|<궚ͻkJ3r̳Fduaxq}РW|C?nOٛH 5k?:WM l)-&l dE셷ǐB}G ~ľ-U/ O3][C.LZI@~ ?l-{Oͨb|Qe{Mmn6&5 +d8Rѵx~x?7~  t_E#U̪:<̊N31ܿxǔf?Yί%^EwR*e~ C𲭀:ƣGڨ'NU{biF|կo_mWzhnRl\($gWBalw|O+"ßL2iṏnۋyEDdt*],fJR| NtB3l 7s+菏opߴBJUH>hrPux+_~w|u|2 j:wzRF QHY@ USj |4?ZygY:nknbcaho!ro_>7?hҮ}SL{{{Y /2:(Mh 1hO~۟5MC@'xFun綠+|F8ؓ#}Q,UbxJ)IaUeV+79Ճ['iؿy?'e}/ñE-lY#^$fBR>~|A>3xjVz߃4%mr[纸x AnN~oQSq!Y-Eݡ(O>?>>b#ɴOf x‘x^;ӗMֹ{9Yc:+?I:?1+Tk+V{ʥX>j"VjqJ%-a^OqVg/GW]^*byV7ϊ8֦ \ k %_7i]cš?|M&tM ip$IK4ԫ8@fa~_O>'ƟYAh>5FSgfdqSPߗn|]C^WwאjV}Rw/"9&kǸPpn}?A~ |yIoV-6H۝BK[ϞTbh̼+`iǸh:N N *QrXBqjMVnC_ Ps3}b)ʚU)TR%:v܏(|__ E/|65 ާ.g T͵QIEQ`j319^iЍJ!Rj)%:bsm$?r8%L4kbjT #R(SQjUjm$Q_!EPEPEPEPEPEPEPEPEPEPEPEPEPEPEP^K\]Q]ܠ&e'XV kp~ү(weS[ZY+,mwʎqn%эjTMʣٻZo|q El=jN֣JudnA6׍\nonR6i$q,p@Nk'~}jZ iGIif6e[lF}Z>zB}o.d ͽ3[ !ƌ>OZN98&eIӺj$#[Ƭ'F:RMEqqZ)nӺj~|KMOzEơ^MnK"~H.y#֥~S<=q[Zi){٬Kx#1ÐI㎵'1+⯂K|LmkGO4#iwUGSiT5:n8ΒߵQWi K' VOr jʭ>jTA^jQ%][E^զx/_mr>lµ}>P|/#mpj]y\6B%|7c:G:&ij(T"HHv7m>|]4Gm4{ B5vF#8NyC NTT:QT"4:|M-tM6El>*ʌ=YIb~{'&{m~+k-nYmEm^HmE"`{Gr:7SX..<;]kNмyE!w d+=|k?~Ҟ!>!ްKbP"ּR0WG 8>~+r-/m#:B۞,O_:U˛ddQEP'u]#%Ý*\Mϸ 8SxԜKT%ipW|!x~_լ%0{=ۤiY';k?|q: {-tg;ߋAÅEp~z /mǟKH7PFٛ( Ss'f,A2_!i__jGUѴ*go IB*IlMQѧRrOxޓe{jPLfy~x.Y/e8X(vc%*|14SD&5ilb:4r# ,5+t:u(R $'I>9oĿ_wjzƩ/uu.7'__H>*^ź߆uk=* L2eHP֐2꺂YK3Y!(e1}'W_IZ1$xŗھt]7J,cRP [$kgwbռGu:Gmigr~^,UTWԝXqBGkqv8jW%f~^xicxal#>eYLqeI 2rqW|SW+]{ky& '|-/4_D C,!dwk6??h׵Nu+IUR8AUIt On*4:PXuRNv%Ò* 5m]7ʽOacUXHTIacRRQ̠6nW'xzڷu[]&So=sro+ Ep)RsOOޫZ6ɦ8v)5>|{(7ٯ%/D:4mљg3˸E@9~ɟ_JrRO4r] |Ex/|Ao^{iuq$#ΨU b_%hgQ|6mcu'N1¯rvW. ,9NqpSiRM}*H*.]5RԔ9'/q$+S}njFZ>OO^&5+h"X,JLȃ}+|S [kJ_sk3X6 aGo+>;tOﶭ*]Zr)Fv}jxӄtU/}Vkk%x}f~iR&cޫ&JH}S-QI-P.'ȪfuÏ-.M_Z`v47bIP#k?%j>:| OٰIeYijvp#Ũ^\gy69,w3( W_PR֔pTʤ$l۲?w , 8(ҥ:Ӽf-k]ݻ-;Mkx'Huj KCk4J qAwݖwK-R[7n DPDWz* K9_ĝKˏ6ŶZ~ om, 1m(TD~r'1r~:!E/;kz_Ag}j:KSYʢJb40؝},s9TrƝ۽K)[Y?f^qItf3+zUjS^A) T]⿇<;е u2Zim%QwrW#Vo>L"/;%hǁޟ_lS:-y)t#b*ΒEVNbJMj"ֲ|7j 6M)So|U'WM{^ZT \e6feBl/xdJ9Z,UIJt_zPR!AZ&O $z}.%bj)|x5˿ Oަ`%ͣ['#n 95 Z"մo%Q,,DYSD ?} +.N|{O{esúmgYrgh8s<<#l>m,e."Z\,r@'Ck_>i5;zqhB_Zj-u?w33Sǝy_?DoxMI iix–VVȭ (k+jrrENF77;(/[_O muOjuT'7Vxy7GjN*xþ$?=| +msmXxZT`WpD̸FbG+/yhgP]J+$EIʏrƦ.2@;H /9}MG9U*)~r{:NI˖Pݟxa8 &F:NVt3M4|>fKYnZ; iCY~`[zW{_ n![#$/ p7#`ট%ׇ|t  >sp1̒oQ kgMy4O6.g LA y3Lݎ e0O!OW*JS䜢8~QcfM~sΰ\7N&R+NRRp狥P#'Tzm |_]*šķM"!KdT ;`1;ko>"E C=,WD\Fk)f+#g~?O5vOEs eґ,-$VmrB825o/m4Qŭ ,*F< Mse>8'JT*6ue,K^KW|h82bU˨ҨRNܣ^be5h]]t?jg߳ oƥaK ? i,6<ФG|IS=wmS5HtvԤmyr30ܞ}X|a# {?_ᴾ,RMb2 eHt'vi xa"^;BQ'&N.w}<*J-˲|8b5O{YsR5VNRrusm?ς_|oź5jMeki,hfyjȲ0 ]> ϟ~ ijV4w2ʤ~lpk]cpwo*[[kx=I$3,gvR63IGOWu>KUigF.i>J4eRkixC^yaׄ)`aT˚OcEJpRϏ+xW]uΧxp6.($g_+OT/mO[5wBK?i+fQOň#jB|q<|eG]W>y{if3X`) ?ړ?爮_SC|[Mq]N1˲ H R49ыOJ2s*qo|B\iZJINR%sQa(9]NKiͩC !TIZ&2 $7oT`_RTKOIƟ|E {N{+Y7̳.9tr}RgAֵM*SQwq\Oj(O갢((((((((((((((((Q]ܮ.רP%¹뎿su4%9!Oڬ6`I d2dta#8 _gċ/ tnHH9i<$h$I OUCVyo{r,˫\B^[?7k[s迉S?Ɨmx׶ڏgakdY%_nv2xݟwDY|]׾:xoKg%}KCȑL)Q89'??`߰A3Lּe7a5MHVY%WL@B\ 0RT?l ~ׇ>7 gM*+6V&v%s,f#p,?j/ -ھĺ~Z%%(ңOۀ `7fv%%a_ᴏIѯtg[uP` ;t21zg[2,0S8:QOA)Ԕ/&~|^k2\[S5HSG߇(7ʤU/)Kq^_{x|? -ͣ[ƳBI:Ka _?h_ٍu(M-_\F k1gcywQJb7( "ko7,wqX,F`n2o` _kC# ͟ğ:6cEqV\metZ9Uu*{7ڧßm59gg/ 9\%Iy~'/ PJ6N hmnW-k[K׸\+Pҧ gySGܼ:%k[KX?~7Tǭ}SielBcYĩ+ r+'I !WvR(|;}cmgk%dD$ܣ,HTa,3R_F.j SMt7);.oOhԡZUB2iJ䌜QtMNˬӿҶe{^m-+5-o*GaS) + prN}AᏂEmm6i,֑#$=d{8sO sF8|fRNJ $mElihӝx79] JTTӌ\(ElZ6\oYkԵKn%9y̒Hǻ31$E%tFT -?BSV%IlK3TՅn{Őuj @FF)r IZqz~_?3|v|.WW7G_ vkQq!wr[?hgmL}^p}Ce * N2p9ǼnɸĘB:jO;˖VV=׺_pgC ՆDԟw$Ս\劝׻$|[+ݢ9] M}Ҵeq\4D4yh 9RJ+׊/%\x-;+ .ȰX14m/fˍkig P⟊mN]^,z\_i.a\NBPnFz;_%o?čG]~5ꮛ=͆i\VP!o? 0j<+('%NR\o'vӦmb<JNtS49q/)&zrչ85u>+xoE Xko j:Z;9}zظ ^3_+Ⱦ_ }߽4_i#7-?ojW%NWh]귳} g]{ 8}LeRrTzAI&%&No>18|Mmnך} 3i[X͸p@W*zkz{+x3&UIGڡIR7v?e__ h7rCkxRĊ e#8L_ړO jG5+|Qs\r:졘KlwDh9)>fIi/o+X Ogy|3XpJe'4=S&g/:xre`bIw5d7˜J;ΔrVrN6wS8{x`, BQO3攩A+ϙ7-QVO۝|>-`1/zW~x ?Xxt]bm uizf* ;4TY he)x?C[//~ХEG;`T?{ <9djܦ'$iY'fmǥ֗?9"l#0M)~I'ʓ~rn:\ٿe=+Q f;}/TOqcwop|Y} 0p;W[_Y>QmWhc98=q? u*bӼ7uX6w#b@[zʰ5|A>%/G3J& " 42U2½d >*zI)N^ͷٶ >Y=2a+WMp9Njr3M+ޞsM?G?ӵ?/zzݏ .UT(f\Q\)#yMZ/a4^(Kj1 9&H+5,,lu;WHUUX$F#XP ſeIjĞ+niB[Eo34#u*Qo_Z;IګǾҼc\vNm% *PG-!E:)Rn2ۂ^ ftpt*q# >zIW%[\n>'g~湕,>Z4a*qR J*QrΔyۍɿ>.~þ4o5$m71MfV.7<Z8RppGŸiύ_kY{N+O%VcFܫq ;I&A?aO&~c⎩oACex~mCMҎ5 h|Iϙy0PU/Ÿ<5OR| O^N+(f?!9)>fI~lNَ6|uxN8FԶࢿ tߵ|?{& &de,Y8G$EO%uW>-4*u g-mK]hV$G#v*?*8 ن F~' ?n-wI6MGb3LK4BʛJ7߸$[MO+G }*Ë=ֈ[qHd7!H ۂ$?oub_>ˎ/2LU#^Ue)x?C[//~ХEG;`T?{ ᧌?:};XѮdaIV $k8/u\TAwһ#Ì_ueNXg:J/{Q\s{VY^\אmhdF8e9 [-GMCS^LFʊ3ɉ!p$q#WQdNh ͨ]#$Yo#A'¨,T05i_MI4kOoi+Rܤf2_+A 5W SPRqSM}RvN\tn ˳8LF5J N*$M7M;])8lt>' |&/4KZseqkmwJ 7)UHRI$n9}~9~˞!/q(f8 0rd3+Yv>˖6J~NNH@[˝.& D8B*7) OUx\43)*eQ^5ZUc si|Wn}?8>IO w9*kkqrV>՟ (x׆|MУҴ]3XrPoځh0mim̹^jyeiRUePoJ2k/'. j,?kRUJU'NQN2e$*W[xᇌ/>Kt`7G"FA*VRURTy*7 ZkQdM;igL],E(ס%(I&wM=SMhZ (:((((((((((( Ev?r^K@%.:Gÿ#|xCaR_r˜'X=c+?`q7 zQRqko EnqLJWІ6eR7{[zsz=k7_(u:֖sNoݎ~1Et_ zTZ{㸿yVUo0*2W($Yë$&:A<4WJSV9TM+$t>IZ]n~!}V7VHEER$UՓ;7~;?b)j(SKn={d2ADVoo|]IGZR\E㓯,)ue$ rceR` ?OTԵn%fs#,ēբ3Ě-n.m\Ht+äxľ2lLCo+ŽG 62ks}?1*<#쟴WFSӂ"ԥw?0Gl" A]ER/گbeW[RRlh)f[4+\_&\*UƝ#/㏃VH|c G&, e\DO݌o_W|k>8#/.!>d*ct*GL|ikܱx㊨qJ4yj\<өVm(+x-4R(ХB|%5*:t]Zry-{;D O)g?lMhRO>%EdEZEo&@lZ>x/EZ/"|aXg0oa~h{Oo.e+JK Nܬ`8_; 38IJ9*(`mJ%*nRg( R>SFKja j^j7?xBUo޷)J3jA4IX>"|<j_~ Y;Y%.틤9gFU.RW.Fc^I+&I{*5FIJv\'ݵj.Ri7rKKŠ.6GkpYbnTႹ=pxD~%IQJ4*ޅsnU}ٿau's_C~;śiկMJkI-[#8ЁȓJ7N!A;SSiLRE#m-A+#`jz{KisJK n8e G3=]\ezxJI8ZV*8JJYMTu'w UsRVhEJ49jεJNrZ'&:rWSo~KsoeiZ&2HLg8V7~o^. FXZ3oV.YB8y:\Jr݈f$9uL9J;ZuNcNҥM)oKjO~~Ӟǎc4~F(Aߎ9v)I?| έo}x wVR@-'(V6PB;qZ'kfQQh쭖 C^Nj %RƼ`J3Ue 5-:]՞r[DϠ/(QJQUe IOEJٹKxD(!ӤHfk3$` O$⾎_;+!|qmm4'[yu =-앣eV vT:c#QoSM廸;" `pp'Xqx~;x$eDY$L'@9|GRCpn4K(5ZxK l/|;<<~oյ۳_"¬]BGHf= =x,F*U}Y?jUQjQI5"&I\Ubr5"Ruk}_ z|5F rSqg97=76O0D Cp]f9-!oM弿͑ŕszfGѪJqp擕 JT'ms';'3>O|:>4aR4R{H6&_+3]ỉdy-!l2':p00;cڿڱE}gڷ<ok]xCY60>_hJ>kZD<]m.jvvf$HXԟ!X⾫geH75nmޑOl 70ZL-x|{+9tqqOF479.GQQ+GOѥGB9'Ip&A%z2m%/oBw(~^9KaoYeNAUЅq|/'}A/6։iK$[Dà;ʂp V/l+9fdCy$`ֆ/xLsb.y^-g02qZw?>pQT֭M8TVrʝzr];%i)]ϜMQciF,|9ib+פ:* 9ܔ%Nr3Rv -?'Kq^-ynEe Lw6 -KӶ@pE +ejPK݊M-4NRiiw[<5 &dNՓJЊm-4NRihpQV(xr>b4Tj kV짹w$QKw9PB)98}*+MTh-i (883YW0xi䴲z}Ȣm'( uwv*g z=qOU)Nmnb**_--6"شTP4TTv-EEKTTZ]Z]EEKh**EKkWic+PWadg&.>vZ^ !wW*}>XSHV _JK~x^ 톕B DqE-&ofB}}k=c'{ۥ8ptΥm9< 4 м)^ͧJmFa9B(_KA|s9St;Zn,9$q+{˒8O ߵ7S[|+ CRtHIa#H/&_}:Ʒ-u eU@ۛweQ/vcК$ܳ *TNRE%>Fk}xn3:j*tFtRUc>U'Kky|6vc/ُV?0Pռ;bJ#je%XK#DXFT+Y b|b$IzŞ;!Kxpw*xgO|?|<}mM#JG4r>"q,φU~oCa h]CZm&|;|,tUr6MlbI.\o(K"XteU%ETN E'fP!Nue-B(\$:)ӏ+3c8X|7usJxP-j'ld'2Ǔ0 㐎o%x/~*X^-F,իj7srʑ:Icas:/&ڿG#oZiqiWwPx,e8~t#f~\*a0~Z)kM mOH$ܟH絸L607$$ ]˝xƟ5pxJ[Uu`T AƔ$\UfntEխq8Ze^FBƅIN*i9I'4WW<ӿ~ S=8!{f6d)*ġ?k//ķ>&[h#$mLrrB"&m5goU>-uV}R&duKjA aTܳ#)U*Z0*L3죤վ#[|aZǭf+BTl.2[[W+6ju){JTL,c%Bz)/_~.?iSxFoҮJYMڼJ%E 3.3obkGƯĞ55?P`\]qle{DefFU)>!|eϏ9޽/+OkMnkm[41vЧ29qYx|EWRZ7j%C7@X`| <]f/Wng э8THN⪬CQ;|R[xs9^&5N#J*(*^5'Ԕ9y.I|)ZGaOO쭣|jojKydhkbXA201GR~|+O,[cӒ;IMӼ̸b<֐F0Gc|:׼__eơ 7M#AP@pa?8s VR'(~Tq+F3zNwxk.8SsSui𩇛;e ZWS!R5u~~w GDWhu ݑ$2&Nc\FjhM?_~>6,~=*Q1 ym%m̒nCc;2Z'?ؿ>#?5mi6S˨ŧxdCUdUH]GGwE\4OmXXŧۉEC lhQ <<19)UGo%I:Vqxw9JwQm%O|JfҭQ|daTy\rub$G s_i|=]9n| CoY7P}(H^G;Shv܇;d> t#;oyLU1MʻA $DMk]G6cqX]~ElM<(ɕg Kx "0LMH;Ӝ=FxjxiRN45ϯᑆOG:\_]' žs,R)V\5oOτ'W~ a+kAh`v5M،4bXSﯴg${tƘ">Ju/{iGM{nSM'M~A}61VuPJ8`W7:ѯ[͎+ym%w*ʪJA?mڳk~ ׉oNH 7L0e`ѐ |=`_|dgׯ`4JE#T5ǖbxqt=qʯgky63a¥GS}MFW-TTG_y&~n㷵h=PO b6W~9f~^NV)$ݼ?5坄0Po&Xf#9ܪc5~I_߅]^BlnAGF|W(0`VÒvb7qiUN28NRTe)BgMrNiE-)ЭU * HNSC웗+R'҃TgC7ğ 㷏|S~&4#NmOWeaKF%h6!(iSS'ŏ|X)K~xN1. XmFM{ꚷ\5Lx4{h$qLy8r/Ꮞ_.g]ƙAeJAQ?PJՔkZn* "UѡT|=~{98ZҜ-~[(RyZدaq7ŸmZ>:.[,Gj\9YAVWB˶Oc}3l4?XS],>bM|Z|n"wM֓wV¡KK_rgv%߈-|Kpl1%p$uPJH9#Wpe,ԩ=V5⃅6ewR§Rj=ZuҕrE{sf-Xg"zN_OMe/ X[qP>?wO'8N1-7YW^Y` O)W¯Z:IqkjQIvmDh_ۇ?~{SɡiZ ɨG-*RF Ag|xuM?e'ΤQtkUz^#RU_8E)wG*v&;8CٻNkMP>i{WE 1 Gafs/J|m ǧ&aKw#ic/|+|q\E#,Lw3nR@ǔK򜐞ǯk¿ŏm^N}~\i7ݴ6y ; 8MOeE*|jvRnq^2\baa(J5ڌgi*&~of?^޵@ZiQM>q,Eu_[E%M)>uwoyT 8bE7᷄aAĞ+eҬ ex|ClAHOE$OgN]Ind 9a 8_XC1Ib+)Bi8}^St9Rq#x!3NU:NPV cpE*.)|QGMb;5[OV1 {y͟;([ //A{~Ϳumk_ҮVK؝ֲ,qaS$vkO_?d?υz<' f\[m6}Pfn>nTuTf[lg Q>^>8.nmmV`*(9!= OGGF4$9J5nj.PJKJ oxqt0aaT4XzTybI*oSn韟X?xkx:}>M67+2,$  ݵKn*gG?Gbh/O_Go% GRQTH L EZ0RiQќy&8׻J{?J.62N BzThTc;{Hǚov+?/ _ !<%{ 6wtin'gE:DnQ77i x~(#,fn"ELLx@,nY>L7vO4_ IྵO[VZ᳖Y/4K[Bv04Ccve?nٮ' ־ xc[vWEYZ&Oy{6o$ƿ+F~.,*<_8ުj1nWQ_Y~/B"5}X:.T%U=(YISܓֱ* xW$wm[U0hQKYc@;ru?%CTվx&zcĂG/A3ኲ< m74|Cs-?65͌r58p P" t*ȶy^|6w/~.xc9{7b= KJɏ'‰9 cp~ "heӫR4:3ss(8B);{Ӳ)s]M4O_qXv"XZUƕJ*:qhRT=4#5xwiwŞ"O$9, y266>Cʡ3Ww4 i4-趷_=wd4W` !*8\|[h%V{< JJIRN+5j3̣oz*q\ͦ ~%q^kgZ$(NP:Qi0 _Hi^?Eޛsziiv%RKf8V@_/ i%ӵ Pp/(_l/S[bmna< x_sr.$QddO,ύ¼QVirӍH*oS\Jvi)_ fTkN>%JcW ʓ9rʤyjJP%>/?`o[_zƛq]Eo`&4nL~TrePl8S -\~ C[{h.WwG8ș9sAR hO S0hZ}<e90og!vIz'/س#mi6W21i2Y_.ɪq3^%(tQӌa.QR$feT5_¹fe|JrrQQiTtpΣj9FWb/Nm+ƺ_{M]23o+k%$WeWo ď&j]"HK"4a)6A (;7)#^.m^ m.H4`cNe1`_fxzum#(.'˶okW$jFCmV,qx_W;3VPM*j}T4JQgkRG{~%bxxNrZnTxbTգSy-Z>5:~sgmZjyRQas !3f/xĿ/:šiX˩Uime]-Ѷ_ɿ??RIÚDvm:J7yvtώo6MT5<&uگ'O'* MxJ9<{9~ʟ:!N %'ZnW?aL?cd*4jbJjg>JnOt3sR>w>]Z5_J/.kW߃sg-ޗ%(\U0dL69%Jo<}gG_~_i־iڞuԫ{d'}R~ݯ[ϋ:`K;Y&1yb6/YbW+_*OѼ^Rxm"[N`J<_YNll&,AҒӥ+ݸCI&dxMq^T*FprsF:3ܩÛRGAO?$: ic.UU܌ SwF|A/\~^hj^5[l쭒i)Wl䐲־>7~>xWY5S'LXOWjhg'*τC;|ѵFĺ_j6L"i'0\2r5٧0#NT:*#)R1$8RQ+e+FlT,| qxҩ[ ՝Nb*)FjFc7VW? |*=WCM_ 䵆s [*r:lCG#4gې5A-|+{⏌GĚ|I,27!I,G¾X?5?_ xN]3Iɚ_]0Dp*3L7 JWVg4?~Q$\xO;t-jįcR*2׵/34V$lhLѴ]k6Ѥ'ZQjm5ij$hJw`c9S 1xĞ%|Iu?Mŭ͢Ǧ]MK,Pz7tmg<{k.t-n{ ^[T**ύ߰6MT5<(uگ' F,>$ BTUq.j1PRJ^ʳTm*Rr%iT榒?.~~?h^k,쭒i)Y%by$,01gooO}fwoal,knb%/X׊|N?Nt]T]]ԯ&u4dY.J0نN@澟kSm?f={ u5Si$]ېmqdJ|P>5csl>&N"0굔ѝFQIZ&&3.3<]JJ$mO *=J~iQF'!si>kW߃sg-ޗ%(\U0dL69,Fܷ /cy_ Hi#=̫܀+#c'_׿ty%ĖvJbźl_0^6~pKG^rxnZU:q%ny(7ӧ.nN]]8?{C8CҖ"JiϒP<$R))rr*Q~-L/= + h 䰚F}jA(Y %MTn"m[L烿~3<[y%_i3XF(K5lLI c~o~06+ᧄ/~ -3^\$|ɽQ`_|+8xV> ]m< &$17ːG\V]dYמ-Ԛt)ԅ,dn*=KӵXZ6OxAx9ӴƞYyGoGo`HBs,d͕`=;O&~Է֮a]-cd#!P2eYSxg}Ynt ÷4_P 㩗(0$y <[paj:U*ќ/5I}|p E^k 'xK ,V"iQ /5Z۫Jta8V6[][]ZyY_=Gɫ>Z]Jh'Th5M U;cUU RɧycjE.ũ3?<?شף0-c9?v6 b>Eu@3*%.:K뢸G&ϊ^Ҿ!^𽽞n0wySp$O)W75+Ɣd윝vnrgqLj P+>F&Sn׷܏ۚ>|nij.>ug-$qJZbD2:S78"sе =I|Uf }:פax|97t_i [-n>lՔL0 ztWq?05zJU%KI9B0r㮺j~_9pD8&"9>+|]؋];Ñ^*c٩G ]McFܸG7cgZ;{NL5$FRH'9SjrJt~ڣ^~_K'0^ךr0{gjsM'uedo`mlMBf!Yi7<1*X75Vjzs2^\N$#y$v%ى,ĒI9?›O&׎/k1[SEPNֺ.%-eM ܗW/@#_2gW(gYA.%RRTS:ru\I^wO2pA ?*npJ'Q9n}o̟Յ{BEJ]UU,N]?5K߇4kN(.me*^3$k*PGS׌~|?/ ~(xW>m&^s_-գ 6eTee 쎾gXis]΢ 'AMS#ojf8,)}V%6eRϬ`ܔ]\rM\0eXzէ7*|5aN4ۚIo5st̞a뿱7kZSᯅ=ȬG_42߂GUYԴ BKg)%6Q*:_GE]_0M7i;Fڿraτ% 7[Ns=/$ŏ0cms<xȷ[%6l"Wd_K|{cjJ4U%)Nsknk]<}G/5k{%JxtTqN1z# _t V߉o.,ldYT3,6 q__S?{~vGƷo 6dhݥ< WiX/ZnLz+V9'xJ}5UծvH>䙦EnL^"4FI*E̜#/ŐW~?u/8|CxrX|%͜c-eF{A0`0~]g' 𥵎n0wElIv#Ý~k{:mZIJZ907)p+yc0>.?X7oyMSGYyNg0=a6친.?ğ*|_5Ƨ}K6wjci6# :jj5?С5kӯ~gX!Qus&L lbņ`+? ?xkZfxEo#>ot;h%Q!%8$cx9Z?H|6[C3SJ(zJIKmʩ8\愧SC9δtN?IZ)jt\WO~>;+Wm/EÞCk# Ao.2c;&#)G(?O3q{Qֵ}A6UڥpSpw.eH8T,8S+ʜʪ*!/uk[]:2FhU"KFtg]Tpڟ7,m=牾Z[IyLv1]>lc<|Y]io#G"2ddۊ itm-`\GmnKOҾ@z?k/E>GD%—s%(e13-[6f }R8\>* BI>wKV~⻳\(HK 6iiq9jb=rn9^y4\a8+f?+k^ÿVM:? jpO $S0ټ2W7/TQt橾Oi7SmIQ_Ц}$~?gOEEĭkPJIbvg,6 L/?cwisڭZZӬ#؈S? ]ܶ3U>HRV qܥJ*Tu+){O݋z?j1pկ[.nEVT=K7QrԔm{Nrrj}'[iE}/ 3P^wH^Ggy>8>K?4j)='߈/J+K`eH_&i1Uf / &W^<],%WGjRJ5iBWpRV IRQx*TeVF2\ӴͷMI[~m?J+?b_Zֵ_ x{Y=hiUp6p7U1~:O.Bաά*$azϤ zL[PiN:RJV4t=dwO걃ԕE)CZrR%B󖐜 A ࿃>{>._VVb[HӂNbD#m5awЖGӢ~ǧK mwtDm˱̞hQ^7ƪP4TWaRUag:o4diguy.n>R*BAWNH7̤{Z-ݝqiҿ_ /gZfxEo#>ot+h%Q!%8$cx\#u_ t~W 5X`4k0옏J9E|'ң/MΖ K:7MJW\UJ7nEf~qlXN Yҵ(S(WJPiӓj_O|2q{Qֵ}A6UڥpSpw.Y[~|#o+= W徏 Yz=bipᕝg!HotfJ)7l,\c>egfӌdWM+5?+#y TVN$4]RVё^<1xVmGMuhAmnBEge6漘!R\VZ:`ۋi7Mv6>qb+RM 4iŸv6e* qRt-QA$Nri t>c=(%Z?_)|SφY 7fH Q,Bp3P&++TZ[In/tm;n[3ak֥J26I[wqn-k]6T|LaiCmt?"#כoRy+l^" &j馬OFѧGVaANӌ$eN馴i5>aōWݦ[{. xB +hGpv?6ZA\Y/`:ecJ0UvJWy?™vS*(Ч*ъI]AThꏘG;ҽ_foؖ@zfOOU3ITdIJz;U=J$?"ϞO__Ȱ\v5ȤSe"3J$V;җ_xI}*GGa싾o҃'GGaYZM*GGclSA)|:f?0v?gTyT'ؗT U11fؗE'?ɪ>bUbU͇/SgyT`ٰ% K/Ry=Jkzѽj;ҏ3OُٖJz3KthZcS7G#%Q,o*8>`?p}(tt {Ӌ1T8..-ZiqT̾ r2ZAlH p һ&%9,m g%ڰgk~M`\u9ֽkdf^4e^ټ6 !Ǜ˷f=1#+;7p%\.kBPn4%tWM;j?70ۖX[Ƥwl: N?? ,u/|l_=׋tko=;cie lLgyb5WNGOIgEi7qnqq2mm/k%BY/eER2t(*ܡ>d{4~9ſ,x/xSŗhͦKXO r9 tb1g}>IS.Vƽpk7hӧGD$X6P`_˵56>l6oG^XMJ9rիUFj0PRiYOk1օHδRN{H(ԌcQFW<#4M;lhi~x;6 ? UV 5^QU$1ߒpckto?R=n35C!]cU89,I'j=ڥ]Kg2M§4|cx˜*xZ8\<:%ZV~Ҥ's\ym?]v>C2n:KrS7iBHdoWSgk (kWʨ0Mpx4PWWxSeTJUEFIIB*Fkޟ x%yE'BR(*WPnj^օV/վ"~6 /4u۩nI#,Uqj;3ž!Vb!4jnpLG^Q09| QU nQP^˕.R# 0gbs%WקNrmdҜˮJ@~_j?3 v6=>9#˶Rq,㟘ǠƲ鏂S.nk%յYye{H(ƌy @o>|;FvKOOď>O}Ɩ 4?O-EbΰTpۥV 0C ڄMY5 tN1\{iv'譓fm<Kl-H*pUTRF0-z2^FjkJz~|jl~Oڣ:eK4 "dp &S??goxLԬ/,}M{-*cPDr1 i 9~ o]~@$! 7m`~/)zx r4iRgSTu*T%QEKs.7[J*WF֫Vj5Ieoo?}嗇 6YZGi$DR$Gp1cnq4x?% 6We@մAxoI9ݣK4Pa)_B8dضA߄%|UchzXu-Χ܄T(D%Ks)f?Fly ^ER:I\ҕW.i䓒Fi5ȧ`kTp%*_jU\w '*IE0T\et~۟^; B2n:KpS7iBHdoW"xďV𯇵-L_-&1Sm fUÔ$4Vcci9(F)#emV׃|?8JႜMRc'{YB1M1 ?H&hc6?cSy~Tn3Lc5Pu/ZBqjsLm.Y8  TKn?i >%k~)7;n1Oi. T2(Z^A_caeC{ym:d%xV9 &6'JRQPRWW8LV1qť:iFg(r?L&|_Cg/G;;k%̗v^HӴJdD C<"^ m7N|!]}'37 >g>|;FvI?9~ӿf_׀u5 XaKIa%;+J}so h cVӴ*x]s۞k8o>sVQUT+ϛ\J. x7|װ+C^UURssKoi&^ICUo~xOÍƖ=ijKg6ki;E`3}`RX#n]C/_ w~%|*> " +;X-Z<V*̭b9|KBAq0Zy.uz$|v4dY$i0yw,R (sb<;OX)oHYxfH :Ư~p,<6Rrە)]ݷiddpKrXL *jJU'VRnMRwr}!#'w_ >&XI<}N M5)-&[Fp<Ҭoh_ xcVh'̈Fs,:vnVUʟ+|_{洣=<;K SP$Cki4Ab83`N_h߱f~kd.4W"͖shbB;/F30qsWʷ|Dy8⹧bR+}Vg%L8ʴW'/w]>gEtSx!vZr,Me$/+)I7gIO>\4귉J2q}9Q%e)&v_+~_ C/峷djIA-p{nw j2)Ii20sgqa=+xRU'd\Iw",0a*-NNOTgi)u%?~x'[?JԛAխ4VY3VEpf/O2MJfT\U$cڢ|Yƀ+/m;Jro.lܗ!ny^e#Ś%׉-KRlNۛKYI"#*q`l+ꪱ彯uk#m+ Y1݁d,p?1UĩՒ+TnG.IFn*NJ.[SxO5ͣeRF|\hr8ME8|INi+CdWyᏅo 橫..l渊q&:=B[guī*#QG=<i֯>v-*nǰAc4wZ-'a~񱨝4Nv{)kQf;OG#Xix]~%ɹXG (G#NBaUEvbJeZi-|OXGݒnp2d`vٖ>n VQRKi;33:'N񋻊>z<3ObN*Q\"pNU)AGBq{HQZz(d؛?Ig5_ i rQ{nFȑe8n(9 얭#8ˍ̃/T)]ޝտ$>ѕ ~&S75Mfω尴"?;Dy#|eWE|=2\nm+6ё ץ,Q{=88Nj^-toZgq T.tF;-Q,+ r0jmOĭQYikIf\,́ #KO xi{E}/mE-^knϱoZ7v &xE> _xsTAiMJK9ѷ.'(#; G>|MΧojյcg5E~v/GaU9Uucff?"e`U)Wu2}ⷭ.A[_|yaxI֯>a2Rm+6#'UxW _B~u_F5/BR@m>s{^W{ocf8w_{K_̚* j:2Z&ӵuȮAW kWic(%.:Nr n:L>n{tw\끌Ev+*KU3=b+ 3ͭ!hN`(#"T^Y\CʹA :BȮ_~,kr*:-F.Dc l?PXU9J*1ørrtS^ A;fy֖ |fJL2O *~ER$MЇ,#$r^>$Ane ųw%mgXđYAp$8D_O 7_ٷŞ4+;C Zxz9+M.YCϵZ_P⧇/{kaum{ngeY Vtz8 O\שjV۷RCGxE\u*[Oտ}'7-|W}WFt}F5%*U'=s^|Jaҿch^&>ͮMKF&26Fwnq'f?IxH!omq =Osʨ8Q>K^%ΣR[܁v{aĬFP 8ĬƖ_B#Z:ђ|FiМT)^\楻>~ن*+ x-BsU.lW*:|f?? O-SPcg}a_iM /LQ$hFVv'i d xSƟ x#H|AE.C|7˧rȗIdTsȓ3Q?߷A|$|Wc~6zuhN8FԶJl_ m>K"7NS=V)6`jU8R]_}K-~E$ErSQ'y%Ԝ}UVW UT#5*q:Ub:zNQԊeʯ3xiό~66^[@Mggcs<22Np .po& C|nMmS+iW6^Z?z}.y U?&M6x(aK[[:8ѢGAl7Wx~)խ鴛s+;G$e5b.`8yq9Uz8zkR~)KBK . MsE.hw1|G140ץ~Xjt]5z.Nv<};g~+?Wu?Humeu\QzƝfQ~_5kԮ|[̺*iC2"N9kʼ+,c(ӌ#JiT`+Z';+o{`xK ~! 5qNգJ//,T_4dڍַ۷;(o_'{͟å%Ն%ao26+o$Jdi{bCVuZg71FBHf8A8T g_#}c MҠ6yYm#G#Edxw| å⯈|V-So<4 0`Y_ ,gC J*ؚSmG6*I^3._2uncgKG~$q6Z5t'm⽤VƤ(r~!B?ןC9~!7Ýf] to"{HAO&GEP?ײ珔Aj>?_x]=ϋ4W7ԡ$8Xhs)P̩>0j/|kOom.?"kd(m9)_(;շ~:Djo#5aȒZY[ۉDiSʺ°iY ]IA$%SR%>j5΂jה} xgV 'N/ykԫsa91u+55վl;{/ O,LЭcm9iR!.6O yS#7a/ mF{>M2ڥh݆`]H|ыq'xEuť݀Rq"31+v̇9,[k I|eS7~ kO^]C{#sC0Il (@/ήNAT_~0|~m-|kv\Zu @40\y|!S<3=繆5z4JmM{om8G2HC1H|ωIsbhQS^ۧ)S4g5qI=*_GA6b;䘫#d`n$d Q| o-⏅|qZm"fh8? @ct'BuQ{~~61O; [GHrG,]b|) \IWE_DŽMȝh=4_i37-|]SRWFY9arM٩F J6W_EH-0JQQ(V愣7fEN?O?'Ҭf핼RIĻ"GH`h]`Eŏq_1q,|N?Ѥ8)(iСd̵\ /3Dd"cEє>)MBJSIFJ~H1KwT 9 {loPW89dS2Mo]ω^\N,eyKq+_9䅂ƲOjLR.kwYc`ASgů)g qTekhfSmVW^;KWN9ksTq9J26m.zM;{.Hs5Vg5)G(u)ʍjNp+Oڭ$U(&'$~~"ݯχV_1hԬ{I[J i>Qz3ǿ)wN}sW8^Lʋ,9g-ៈcFF"bFi\n]!Fݗp¯fk FI7ۜpH)u䓟Cpg c-IFeF)N(Jg@b~ׂO[Ruh4ݽHH0 쭄Y{'??qZWN\?)gOݷx6#h>iԶhAadcs+U(~Z@ƕEEYF8oҕ;{XЌN5U7$R⟣fzõ,M|B1U߷*vBqMdkE3QQJ_Е? k7֚OŸ5]PP-i8eB@I0_*As&ۼc[ٲ0+Kɭ6]HTT1_|'iσ_~,j*;{\zwG" [ϗnQfbUWbvE,fy/'sJ"J򊽓i^9? 8o8Fmɶ֖m6z=QxOM~O&].$b﵁ )mۂ=?rdᅵVqաKm$8?R7xĈ4Uabv]=Tf-0NI|n-igkvxi%Gt;c=qX4)κjӍ(JU^S>8Կ?iK]"w$׿XagfD, 0;qxFj:V \ȱC H^I$rQrYx/jz8n|1!Ww^/%FGZPʰ_'||aVwռ__ JOH _:v$ǖS!_xc2v9t|dj9sQч"T q)J|rLx/81Abq)}b+T=R"Sj4 w/'_Ke(,ɶѾ*>z%K.PEf*yfB@ _6YdmV+,]jh]1v#Ώ*kwYlF}m41op̑v(ˆ#;Y>8uE@{T}WUEX gd0ĸH\@v˳1'/J ʤl5Jt9l]I~wxEAYۇٞżXXu#i>gJ5Muj>i+SlM¾7;*:|70ͷ˕VI>)޿'?ۇO4 дD4 6^RĶln!w| i}{_éi=ͻKtt!YH5W?nsỏF=Hu7]wB]y8#ˉ1ҕ?޹/e'8OНh/~_| T%G}XTiԼ##_31X?+|D>hh6zqhB_Zj&(fg%R; ߉g?n|?.ӣ6֏ea$a|&O1regP8zu%?g^!]շ[j݋SOҩdv<9?~4j^gVZeFUPmL~Qge|r̫5fkXON-JTΦNx~X7o襝QfqTSi9T^.nJ)`]攧qiÑ~^x?hſZ\_#wHP'e F+T>3~џ)/-wƖTۥجHeqBr_.O|f}ٻ7[5򅹝lHʌ**f U +x:լDqgad2`$:;vzoe]c zFG w7fg&HՔqa_u~lNَ6|uxN8FԶQ}4_ m[u7bԒIU,* }(t%M8)CÒ,*C\$VrWNq`~\EGJ7xrVVW8SMsӯ9FR[ZkٷƏsxᦏ*Ŗ3=ڤ,R:2LYXmwO__<)o>=,hzZEc3iYd)ar_lھ/)?>"~XYqު/,-%xXc}R*j 8<_?iğjI 3:Cq*I,KO1dGK1妩*Qۚ94aMrPnOyI?f'o_mےhƌaRNRr t)aԧnOyI?eIj0Ln E..Xz,~%g?aN9WA? OҼ! /4umJ}.s$c|f%vq>G85˨BS&Ӄzzdw]?h/Ÿ?o5&o-q"IA$OE~|U~ xo_^Ԛi0٠~u `:|D`^8w֏݉8fꐍ23,̮2XȥE|/qw.JRjթMRRPJv2'dnN|ZV*te8֭ZSPJj59T얗Q/9=Z慫[[^.5 TRv6N\s9M~>v}&E4>mQ +2k_ 6᥿ψ74{l\+ ĠE*@V$:W_)_lMhRO>%E$E42[ɰP,I<8ju))(VN?JttSj3_ iĸ F,mxӯ;N*ѫN FT!.u9(ԧ)ݭ"+|Ⱦ7Xi0Gu<3KY3#,#pS|uؚ֩(|=!l]A " zz{S${|"ki|E ̎CR ׆o ;fXCH泼I扒)糖8-~ߵbhFɯ/ 9$R;"J /tOwĿuZ4I)k2cASEn"j3Jk ^cItbJnJ:9B\޵?qx0ɫ೚_Q %!ReNUmE\ey5__?4t+7ĖP^i{$(v` z_GW akӥRvҥTAiB)i.gNU&rSOIhV#|-fةh#i8H'竿c[t=7:֪6uϦ^[9Zg7:)5__7mÙfҼGo%ލaw!2#J. Bx*.MxOjKNԼS+Ih"Ny#k9!9F8a_`n:aBaM)F4:u'5RsB:nqG_Gkf_OZ-:QSi{I9UZKF*tҤo~e|+Y|avz4FMcO.UEU8e}G~5|(o/m1w.xG)#*RzTX|$~4Ѿk>&|e4^.^ % ORxk Olk84UCIJ5iF-kݏ{)x\; E,.yƵ(N-֫i;y_$y_k~0%/m@DNnc.2̣x== x]k_l:3>N2FR#G>#Co,%Rl&*FT"|ĕ滺)Shs_G=T正v%V$QE#*el+5tꁤ`2xw'\#6/bUHeco' ڼj? x/Y^uX.Fy2,d/C_x#a1n>x+s.YFkI^\+=~9b,?UU#8Q䚒z19Fח*I~xs XxX>45[5$m,P+n,`Ȥ@NFs{_kW>4pӮTӣܤ:ʬe~f!A'8q{ּ+tcþ&+i2AYb<_ɒCؤ=N~g¾.!V&*0iOd.jxWnuoy)F鯌Oxb+c14hB){.zXVW{)ԍ%(Gn?vci>ZXӡkMtpUU3xF~ּ+K> }wGE^x{^1ıxŞ@FDPO5?gGxUZÓNosnцQLr o5|w.?XxO@ԡ3k"4%icfaI+\YǸד&i 0tj5U;$9ss'.axz\Ύ!Q=IrV'{%NevOM/g$z^SK൛P#?f \5o ^1Ծ]3X'kkYyYIVRIR eߏ>|"~-V%co#^-Ѫawe8]D|E_~^/վ#v:>;m:WmCa gAf aU'RUB*QUeQER:~\>=q>/.ͣJ4٩SUi:u8PUVҋR?y.T#σ$~~)ӛSh2#K1,@?Lqs~?tm7Z:njZi_jo+{\G?( P~7x^EzKXu/rN~'fXP N[h|M-7ß@ŕWQ>У|>|IqVsqtrh;KJ&V^imZM&,I8ਸ਼F֧9vaJo|E7Zj q[ĠCA;U>PNJ:h█^<nm@̌Gl2UV9 X[|~^%|shձ]kXy$224q,!~f5~Wig>_EH|Z#k-F8IX$AcHmAG?3Ou?b1t)Aʕyiƥ:cZPRr{N2?#f/NS|\ QJE 5MMʒJ2Ni_?Ze 4M6aY<5-wgg"\I} rv(|Lr9zEg3??DA<0ǯ^(&{?0HH l Zem.gj&`I䴈jO@JӉu!RtkJ.^uq?-,b?w|M9[c '%ԯQ))&ߘ009<Ao_> ٝ;Z%0]C3pG*WWʖO j6+cn.e0U!R:\;_O{wb. iQNn$^)={8sr~ҟm+Zva G[--K,~S37a|u| W̺.643P[B% ڬq5gٛ[c|.xv]@u:^]G$r~7.Y=̣*{|:|Y <#C\.lbZ^@ o$2o__x7[U/ë[+K%pI]ilndJ۝Tax|p5i_QSxFM3OTF8chwߤ5iQI)CraE:U#x>o}\Ro|E62 hJO)Òᇋ)ք]kt%&;_f?m^$7 I<;OV O Zo>dY`d)G * O}>/#_)|<0jZmu w &8*086?ڿ,,~uÔqCKsAp|c%9E$6TE3G"PI.S$ #2Hݗ#tŸn?(EWlv<4o%a67Cu/%hOEiѴ{Žш VRU E\y-x{:WVy%()5 n_g&0~ʻB/7$e:wQlri&y{<iţM<;u?N]xg9rNi\a޿W_O%KO?|3T:Ɵ||Cwm wb)%C,F@!oj y^&>p֕>h[IFOݔxɧkc./NP:cK5Ha)рqɴ|=h?fl˨|=cǞP?mhחQF˱VEs(ʆɾTP+)ʴjVJs(Uw*\|rJ2OJ8NtVxխZJN)Ƭ84;Tf]WCjf-ơohVf8C>8iƗsK[xsT7@__ެ d0mf]' GÿŚ.> D:eΝV)ue pL m^4$o A# uSu,]G\ͻ V`0IաSIFל+Jv:fZK]Vgqd W'o%'{o^xLOօmzjWkm#3C7aK7(էinmel#|8*O9S~0!V9.!ZNUBmXr/_UѮGSESrxQs7Q*5gg+2Xq|LU'R*TNu10^#VBԒ$ڋR,iWNcYSx|4_~_WL!}g){H d柷ǃ3Ӵh={>x.qi 8@_UG? Mv}a3CKtaicYjg=2y|cgG_:c$z+um giFT7wu|gkǿhmMļڬv7Z%q,lf@w)ݔv+Ō~A-˫G9UfAT*1Z:/3hm;O'1c)Tzկ*פ!7Vr_'4?/ |c|?.ݬoDQE&V@KEQEQEPFxvW%l3]mܠ%$VˎsӜ0'kyRrFC+)  9nZ\]*;w _◇(k/6sjʗ392 IaʫF@885蟴~|I=lEuiIrAX<|4ʜ3>"FRbkh֧b8/+y<دo:qBRQ/;7{v $h^zSfynfki$fcby$rI=MV^Å2=2.]^^Gw*»cłarxq+>b1PӦJ)+$//?>7yx|?DkkfEXb&= =zWU9|ˇpX1X|Ӣܠ.K2kTַs~˳ ^S*mAN2kM+Ylo'Io#DI*A@8?~ x[o3^5ͧt8\hͲ "k($S'̄n;,RUӌm4RZ7fkt=<#0pՋ[M?z-I;7fkt?A~?ܺ/O_k5XmN1Q4ڸB+*.l%ΡsENs>^vzuـ$k~ ˲|;i.NoR);$i$%pgyFCx,,\4RNoyu%)VI^Rm$vI-xLJo-nACޠEKsiЄqI7x;Z<]x^A}lΡMo"e<FA^N_kmcM׾+E֖rily7X#P3bo_K2F.4&׽-$S~W̨5"a6i$>_`|4͟? ҒZy{$}EI ljBlrk(wa1OJm<S]8>h%i4ݎc9+g UJRQKbU: #ľ"̺͈J-xFq-VjT՘„#'8pgľ"F 0#7AB'X`()5r IMu}k[[Yꗓf Y%P1!F t.Oxt3Y  62k=jzU[B'enzi(##r_4?s}q&niX9XY@y#+s-$:^OnKB,n<#,b00H+OjakU{-κ\oZ^Oq"|O>$hiu _moɝ?z{Q^;xuk1 4(ע bvV1L(;0?SQܺ^&<, |ξqJU(FrSVn&v\ֵK[kN{,ԥrΑ)Dją: ˧cLjU}% +O>'m4GMpo3xL1 ]ApUr|9TN2Wjkq_ 3̺SSUr7jZkѧkZί:IiFqk1;Tvkޭmmg^Os 9dgXm@ąP01zVUVZl{1VVi)< +úw i%7\mJkGo=ㅒ,1!`)]>Dſ^ufд""bFj I9'ɨʸ*fiZԜ9)s8NRP0QEo,7^jRJ4iW j1m-4Vj:x<7wbY'jWF)+#AE(Y };isa\Zz.#VDp*a`}MdQS:q咺&T,טTW671H D%YYNC) M&˔SVeKSԵԵ{n$fs#,ēF)F*)F+ABTbc/iZmŽ"hb9;#Ҫi^ǩ\ŒFH# jEG-w2+Ir{}7}#~oTy]jE֔st7AL%-iWZë]t`YgFG`0+207ҦZ1UnUk[[%{{+x 0lڅՌ#)ki($ee9/u+[[WPuZT5rα.ځ 0`c(fh#R,k߇ZAfR%$VUP7$aQRsKW >%ч Ӂȵ_;o^k'N22V'nt>EU[[:z c'J~BQI=ɔH&%m# # `ϭ_l>yK갭ťA$m[l8,iƶi7d(7I&|qKQ|O ;'Vi{'&v~Ms5l?ƝO_3,34Ia"Fe`e/Xr*G].okƧ OnQ0o-Rx'njrbi`VkQG3UbE4ܗU% 5vƊ(xԬQE ( ( rm9>Obc&sVP N#֥&yISjDJ.\eWh !WGgþu @!K $nfb8\'pbJUJY;%VInI†*xSm+MF)_I-i-Yrv]-o_3H#ֵ8[G4"1l}μG^ iΠ ,.Q#J*N7[iJٸ'iC9K,5WT.$&n2IZcS᩹W%t{2WEs1Ds*~a>ƽW NcG7/h $wCuw{mlnE7H4l`X c>9ɰT[~͹N))~M_g~]g%_Fx~:8FnSR~V;mmc:(p/ƍ?-|GE5?m.An2+B(hrM@5؜klv6?r?#nW??B]#‘n$ũOFqҿ&.Wo۟OτpjrL]370iF@Iy\~ ~-Q2˰RSMYBg&Ijm-v\;f1%*eh1TBujSZ+II?,ߴ=AM[z$SJ10.rX'?;uO7'>1:n~X4w[fʎDz|JΒXmIn*g4դ}߲? [MΧONu[Ru{xFHlQ;Bcr"fk̾uZ4:Q(%̊*aQ 3OxL\)(5C;L sRa(8,NW' ⟊&|2GW%-El&2*jʧHo_=Ju T^^ѫcIS'wqyhק^4U}jOhOQC E*Rds'㯀~2ZxR,<7m9[xR(aDq6dQ[RTo>ai~?/d|Vּ ~.崚|~Ԡ+HP0lYWa+N|GSƓ;y<WcuteXHW$Ĥ% ~8||CTw/:$2>{M{-*c]Dr1VCFKPsJ((555 q>ho %I7IVlO xE>4MAƤj(Rz勆X Er> =/Ne/ ]o/z}ړǪV̀uQs!@V12/~|3_xL\)(5C;L sRa(E;vGcaJԣ){Jt*sS|tQŵV-韤 9kь{Ztj3tRu)^0\쑠,^!|-+`4\K#_Yi1-vd]71CI85aEe}Xu/Cc,[3n!|r'= ~ڷt8BH'6"c=e mNk |1`s|JU OIV{kރW-p<E,%|9d6qo3lZW =5=%7 j~+|GmYH5`@#_(nb=~ee"9eъ{Nm|~ř7QMԨW-VCKG&O??t>-uu+TE:+g#㑓_>~_>'ҟ7l  _M҄<82'wTo`Sƾlm|M/bïL2iṏnۋyd6r8; ̼B~*⽵78?eN>ƣE>'Nޟ67?_xW< t·^YGۘ@ظ6&C^> ߢlUmvJM2gdId^7ddtP(69m|!5~_?mT%{ۛ"7Xjc.t/p,U>*h߻ۘf Ϗ叁2`7EW/ ߏ+XM?OT_ xO^C^sFKR$޲Ȯ29'?d&JX~ԍ2m':fG=*̷t[]۝F@PIR¿ONOmaYMj]+ LNUHb0T OWm_7JiQQ_M7ҳ1~q\=srTE`wuo+I5J_m~|PxW;>+~W]/EþCk# X4k0옏 9E׿k-c~Ciګڼ2D}wF ee 4lA yWt(ciǎjs ?ٟoټm>cm3LF9 ?ԡR_J*1_fWVҫ^m&t?2xRNeI·>J1Wl8JJI@j_\<['J]r[bap6"b]%K>쪤!|O|=% =cMѥ[U_I%3R<.sHQxwn/(߂?s㸼- POٰ>1ePr*޾aMׅ~2^-VdZBAG#\޾|; :5.MkL$Ƃi~*.)-FS:UψXSI){{pæSpQto%9*?i:|nH岙$"9cM`@1V~ ~>| |7e|%GrEGqG$Wkߍf&[{oiL73$}hȜw쭵UpRnGG&o ux\2/}q{Flq6qs\gb0Y>ȱXyRjJt JpRrJͬ)4<8Sq48WqsXGE+U]p9J+R8ۛXQJXk7NĖ$B;%pv O*U'|>6KN/R7 Λ8ԥiKZ Cf~Z|x>|I҉ۘEXm-7ɐ9E|<|yCW4V<=uF[Ն +F#ɈP_oBC/_Gc]Z;BKB[ 6A#F?DN]> >y[go݌dh-KUүJcZXjr{C٩5ZIƴVm;% Grb0qhB5,WJ|gINqJs#rQ/Wg +6xZе1?IϪ4-Jx%Dl ?8xtc"{AIMW}|iW4ͳ,XgagFPS\ ]z^ǹ~|YGB_ Ӭ/[.sX6Í1_E|dwg!i#Vዸ5-NJl513E;-v6=+:*L:|&.0x:\{OZ}kygYV!IsSt9޷jsJWV]ʐjdFH) 22}+Gc/1Y5W (>_3igirϖ~%$ɟ ~4|RMWbw>j,:-#Iw3Iw-cs_xSğ񞹠i2k䯕 ! np!Q6qqW^x_HƷg%h䴎 +2mssxk g/?|`? <|5{ɞ-^A0' 2mpPQ|u ,4jܹ*ּ>uT#'R)߿-~e?x*=j?k9bnSPcVt7SQrZG B_Əo'7IjzTmՈ;TA+2c9ygLYa3F<Ƒij1’DKA_ߍ|scYTd66.aH1|en/gD1iwپJg7g *fu4app"\MQPm¼u7$yo-jq)Ke%ԧS.w9,:ܩg>^hqJvRQW?j~ hh%g.tOsòG'5#_i?Ch$yqZZ<x0]q7nZ9]2:,ʩ7(~ÉO?j6H #AexrS?5מ)µJL>* JY)UU¥hs7N.8x++Ms-O)g15q8.6Zqxƭx99S\\Sww?Ï|LC[M+PHP+/߇WovޓkYI't-ak.6FGƏ?^cpxwLyMӡGIl.aI?.K3o]|_Q? ~<嶒^\&QbФ+FAIf$Ը7< eyc>XWI:TdErϓsI.hF~ς<ɳ^:MBO ޼T j}GE{4;O#?o;*i:jN$=Q5[6|hBcd_nc.D,_xT)(5C;L sRpoȳ htO>_xkᵎi08KG6 RĖ`9$ɿڋ?w ~inߵ%TC0l` gYn- ;C5K =9-A#1HfU.bM~{חgY |N#^1XxB_5N{F%ў_^xlڮw*OMym%*u>G[_m)s]~öOsj[F6եps_+S~>ƧG~JTV+$0E!HQWMe"9eъNmg^Z/bQMԨW-VCK~/dsHxRY[bDSF$;[FN+>ǿ?hҾ$xOYľ~U~L9s vn?51k[]?hOxYU$@r;\F G͒ȯ@oyb$ q*J O6~{ x;^_^jMc%\ a"X\ :?: H|@exź-lOϙn$X" Nk!?)e[u67RŦ8[!ՙUmQߍi7>{i>7)vl1l㠯rslV[bpSUi7K!z׀H UT+ko [ƈd|+0q8SEN5& ӦƋ7εR;hfgJWc<_AN59½JQ# &V u?_e-оixK2i6NUӯnb[ݲ$[؆mϴPCΩ|!58|QAy&7DmaV*0E|#KP?f #Z |O#0QxЮ6.5 _> xO5XXh:ΚaᅖRS;܆]͟veRX\u| wJ&rXQu_ܧW.I[Ux`Uf*4qe jxy*m*~\/&¸~KV7B|I]PvSnG߅0?5~ؿ Wh ˮZ{lDnLS#k. l N[c2Ჺnsu8˓98m/F/֏g ѕIt$?f-ZZFUc*}:Z~ܟ/@a{si:eɾdѥZJU7E*UU``'?5xw~ >i[V>,vPD`%cVS x k~|PоC|(]BLϑ= o *ML9T`/a1Cnf.xaW~x[աJ{*FTYMS%>ZN|Ÿ8Nn%hVyhbqeNSTT'AK%@kk]Wᧅ|;lO=WRy/nx*W/*Z6*Ju8ᔕ#ЂAkƟgg]πPj?5ɻӦ-O,] #*ѓy_G. %grTԓ"|TӲj S?qNKG%uW/k5Vpbe.{ǚMRRq~#17~=մn^setG 6w3W mўY#R/LyeX234D(*B _&U >$|  ~%x*Kꫤ^ wqn]FTeXeiaiυXt7Vn4Z.y /8$89U$m}8iׯWN"sRwʰZt5(5RWSp$7's' sRR]p>E *tF8ԕGNIJZsP;_?5} gzl,n䛅ܱv dA!?b_l/<{j |VfΧ!Y]G-|K?jOq]|NOӗڤ"řL1bv4~)HkK0dCA;;t\Mv{X(Ps3呈QpGO(˰8xT5/V?r"FQcVQa3CehU5bCJ\Tj'שws/eGχ`e_V&-I-/_XTlv Ļ_4/#ɿ 4RMWbw>j,:-#>mO@&rC<;s[oEӴVROH.|Pq$*b?n? !7o 8{d-ڡb:Cmr|~S~;/𳍪5!gՏj'O0%sҏ2Q*Vp\,ӧ(N}UT)ԥIXSL?\F\;UT 31?U_AMmi־Kċ$ۣ`vI%+߿|FZx(i-ZX.$N3:B }pᕔCpesFS!:pG칟 F)]4zWU9 r0ӝI7SҧNeY#R(9SMj0+Kң$qY~_JZYU w3T)^4rIOM%.[O>xmO~Y|H,4{ o\[XƱILeHfO ~?x/ŋKb:u? ڹ[9/Y-؃jϹFs^@?¿$5?Ҿmd&ӐI ,7rɍG~.jixb{-+~r' f~ʸ:ԯ{gYi**oK1uQՒ"I/i}8""˫bx{}xXNj#*WVJqܽǯ?53mK-O6o(лhJ&oMN|"ҿc(Ӽ@4)%ьwF؁dfY8(6k_? b~_۟=VZQyU+17J_zxq ~ϺnCmI.Ӥ"#c#ac O +W<5ڽ4 Y Y6²I "1l8+nۇ?;WE]c[dHI pʋg0v};gCR; |}''Y"dO10Ŋn9ǃ8[x;ͨu^1jHʓ qM7/D灸.2~#p*b*j8ƴe^ڴgGݕXӥ%'IJ{%h~ֱEo B j}ī1!e!ӆpyFO_7ߎߴ߃߲jx,/ $hef@t@H'%(%?1E\- Jq^n\QdPw(=[/)ԫXVTU2wj+Dݮ;~ szLo#vr 'UY'uKm^^A,;G*d濦[_~k|By->?u Դ ZleUU]dd"$Cb㫟 juZGʞ8ώ<q{az5ݦ(.caP܀!+'V|-f/zLJ O 6kI!;[$:++r4rei(ԩ5YB){'[HFJLқhС[1}=VETy$u`ZSRӕxSj~YO- ~v/zV+ :;@vm\!w78W|VA-A W}iG%<-mjTqa_9a^Z|ze%66}`ֆ=As+͵kf%w,C'֥QjMID(rN%̹y\eN}pv'~;QHOTܳrsKsf(2y7,xڽ[܋scqKt0t{Gs\uzՍYyj8٢mT.2x(~3E8ck",+yQ} k;."> h'~Ȟ>u{_nqqw 1/;lI\vfwVegH}f\9J3:9B.ri^QW/;8r3 .JRR~U*qӢ4gwwee SRe` =+7A?>T5kKi Mb-<&$_П۷!@ڳ<>ɯǧ Ϩ|#kPl;;T?G/?i:Vy5!R!M}HU3>@K%qYi E)M^:^Qtv|\ۻKqx*x֣OSԣIUdICk)v&;Ou[ _zQ\՗|QKOnDk2Gd\7.`𹍴2Ñ8R\6(JDe'~&NOrS F {:i&U;=ҳ8S=L=?gRRLTeGMӌWjvG43[Lc2U#< ox[-ƬbKJR5fqXwwzܷ$HŝݎYI$y&'G?'oH4S=ZGo*"d?9kI F?[[Sm*>֤ qni|ZF.M%v~㏊G#aj*Sksv0rRf^:׮+yŪX#KufҬ"(vi"+T%YOhZ-Mt%UwrW#+o3~4y[ +{Q_O:V6B$'CHaakyQjCľGm7QCku%ΊaX®*T|δ^/.TJ5SDԫN.5uz|֛d/3׌JJ²檩VZ]:ry7 r+)\4W> Ú-%fL<j?|2j|)OSE%y/?-Nŷ;{/b ?l/|k=Ɲ+Ae61m6`|ާ{J eLS? 5FkެQ,vss,0B'J>.q\卝5J*jS;~x+y%n]~Ώ[W&s*X ;cRhWQjUjޫTtpT$7['3m%4k>n so,Jw$ cb~xU4P%xWT+E$2ZԆ f(Y .(m0T,I gj 3H s_i >JM'FKWM2V Xwg<2\@tL$zOUoO|JԛWWZZ\cd\^AU C+o.=ωIqPY_(c@$xYJ-5OcVƞYDyp`\) !.0ҜRFgQDd\WQ[vR-[dO7X, C U\=Ug(M ^˙GQwJ Ců귚}?%#44b|l_-x/J~ 񗏵o/7'-乗bm8~~ğ#xVgм3,p [}[Y6f$f|u?Ko|b NENjCU$E̔֙xqYB34hҋXSm)/K|2VoyYӧ3NӤ%O+Kqߴn+V6.1>|b~Sw[ [|rψumeuޤzWxcoAᅆyG tO2tdb+Mw?><>8c{;9݃r(R@6pʆ?mO9wgyS}W\vsCoo^Y)+A X"/.q-TZI*)֎5^nVn:|ϥ)Vuh5E:S*&(ޮ߇ُ~ j+JFXm&yIpJ;W>,__VӴ*x~95t|^~$AdsCMb6Gk$3eK'r~|/|y/[-WN=b#&{,sV!0ӭR֩*vK.NoG%+F<ɷҿrʳ< JJxb*J7jvRގJ<֌n͆?{KhGam-ˠ9eXpq?5 Gߏ^6?rkvs3$9|) p _2AN!zSI%NMekwijcy7װtR pNI$8TvJi?/+3Guo Ve,.WXbF9|.8eu= ."mBk` Lҿ~ ~AOQһnA uXXyp&ќ'/;|bË?[,&kv RHK$ 1?H\~a_/upjskڪ)qq>RIjK,5eƎ\*:ʥZn%NsGJ:KTŹXz#&]A68Tv*>|Nsx/ÚcdH(H]H*5'|Qyk[5:׀5&+HͽղL ʳpQqzrW2Qhw;xYÞuMB O<H ̀ 856>jVԣriLL0["Q!=g.?fӿel|Wim`I&HԆT}9 $ϖ x|C|^VzLJ!nK$3a'Z21s_k)c2-8J){JU=Fc=e)#¿360(kZJxƔy粕E%?<>o|M-'kWJ hmˀs^I|#|Y_ jvB\O -q+C_Q ǿRgNյOCg{pR9MYIwW_ kg5x0W!UӴo!؅bHIv%#sWx&;'ἷ0%ZrQN1r){5w&.KGv(},3%x/HEMB_)c{sqV Y8ʌwNe*'%d,9;ݚ|hoӜugS\'IT9_ݍ6ٯu-Njά3L KivycӒA80>1sK+B<8n%X8e,pvֿ/ౚ/O>Ӵ ^ZEʺLӮW$y3\r ~==cɫí^BW.,XVMLyHu 95<%Vykb#N0SQJ~*|M$NQpWOb18Q>|Fx/i*ͪ\QI6P2r1&~:SP[~~!{u7Gm~;)RԶO4blJg>ѬM_kYI4&וCBPWD|sԿv߳+u7,S͜G\eϥ}y⿏fo-/D:4`B,ywc>3qnfxS`"T5}5OJ)N^ofyχ^5KJTթ+y-uψ7rXx D; in]AYbV f1_>|]5*OG Ϩ_9|) veCMx5r<0SB/ޔK{Zj?|e d_ӍJҜ)9$TRM.TQZއkUB}l6XãpzT ,"y8K;*I5iIG^i T8ż-cYrʃj & ]=\yiqߊxI#V>q^"9¤9[9Ad/g̼&#ESQMr97:s7rOk~zx/F4ύUxoU%>YhwfBo$0#œ8m/|5㯁=ZBöOE9$dffO@H=_CV?6+u!\a6Fn5>$x ~jڕ E&cRS]MrɁ d9< ']O!g8|صM(Z8bBJc9E|d/<ǔ[y"/IFq*QK 8O mF?8sO쏞aG'k¶5xas\-{~WX0I`+SC-džl]MN\ڃ',zH3Ce bf  1 \|IX j[5 | ܍2#c'1|;8j4pkFV^ E \kVyƞ-K;^&0\=zt"Jn1`!~nwyO8Kx~ h:j^-e2qA*22Fq\e~ߴ>|Nmu:UMiw r"(IccPfT!G~◇ocI ǻr$ۻ|spRPUQIOSN a=Sj7d֧2UTJ2炨#QJ u5j7$fpTj2=M%Xz* 'OI( ej (HKj*/1@PncI@T4P˞̓֊((((((Q]ܮ.רP&kǟR|3!?#nձ׭lqEq2=_3&@1FASu5/ M|'oq *'% %(I'{)]mi$> <[[S>C )J4*rrE%.h٫I'},]iu\|A] igP/$lc)@o!|_ڬ6`Xs YXta#un۵rf;ƕJ1\J*)I[J)E'u%~Q5PHiEA)ZIA($hG?oOugcmqm*O 2䤈ए {e|S}|5_an֚6QH+!'J2)J4O-99GPdy-4o:v=7QQ0R-F읯%c[?Qo"qOG.jۭ-OҩdP~9Ozi# sy %Sq_6֝^/x~&6J[9jJIky))n;xIq*f6-gۊē-_wzdosl,ReaH5ig+Ac=޴_i37-j(#8''Gic{%{]۵ݷg>RWy8F^JkZshcK)ʕ9J^닻qm-Z=f7gMg ?׵kY)7V{@4یd?h~?fMz~:[],FeHyVB>hUhɨ02/|}Ke7UA(J?wS[Q|鴭mFSͰKaQT⠩γT9R0mEhm&WҿsVoo~ kf MBwA ^C..gAԊo;־9pYx,”jRRw[}]ৗf!Z(N*Q}UMh]Msx Odx_Z5PMp NƲUT ~ZR -'9KMRn)ɨSt\Ҕ73m_ŞԳJZ:hJ.RT{Q攤oWd#?iw-֕b9':q (wpBR|?ko ǃ|^xf(;9vE>1[$Tl.~\W`d⬢~U/ xv8(KF\Z6[\ /PWOAO_}EZy+2o֟GˊxpmE27#۹rv^(i௉ x3ՂKKvkx'6XW!l|Ł ;EixfjW`ԝHInQM5ڻI{4}o bZb9J%)A5%6qIj#]O??ect40xõPIċ.y,I$vvQj~_5k+&]F'P̸jSG\Q u o )GքUn mfμÎB4PQ䵩[6]?f@} =_|ko(]dg n) ![pU8]j.+Z )I&Iףkftqgs%gM'+px2Jq4yRQ&}ݴ> *v:񜗖V׶vPś n!&ގ5ԣ+ImG,ukd~ m 2o沶jAs 3(8Ŷde'n[{W[.>p=JT&8A>—*rK˲$V$>`gOkGuIWV\gWUIGڡIR7qF}n{ø ,eF5i;^2]Z=4zq' Yvoj28EhWOT3 ߍ_z֯yl, H3q$1( `oj t[o:bױVv[[\Dw7P ?_9𻆨Wь馢8'oKIR}Y?x; eXxTi7&m.'YK?@>#Olu+,?`-Q{JAd$j Yƭ&gվf/)AV`\˹hڛOM&p{((#b *,HFIbǰ +j\vSXU>HRҶl}Îտ?޷.4}9^Dtԭ،O)!F \ #-W yjQ>1[Qb8xСq8CS<]~?3jht߳Z0DaXJl]P`b_(WFJEsb,m I ʲp͖#'0F35Ɇ𷆨ԡZ_EJڧ W/u[{~ʨFxujMRziIr>[nITwmOxWFgogin4jdetrKBLf.X8bJL"f<}TJ)I&ںve(ml ey#K4Bcve$xQ}'iAGxY?Iڔ{ROF*@  ۷ߏO]hzMi5h-$F296ǖ& Gˌ^XrυrbhҊqcfxN uEƜ#N-8Vbjɥf࢟GĽO|s[iw?OYĖRdr! rk-k*[|Wk9,5+Z>T7O$R$DV`|:59Q`(2M5pI4QRqkf⯲<~Q Є$FN2qrM(Ԝb䞍-̯g{tGuRA=ōռWPUdRURT \|#?8F+aeƭ)ZRh^gqG yYvqz2pTwN5tO>WU/64W{&ݲ<F̬QpJP(RTkd,&_F4"v۲I%vzjgO9vU+ 4c{BT"vRJm1#=MMDܮiVIIb(Eā mI36^=ez^bUQq]ӊ3L H\܄4iā֕Xg"1J <̪鎔BzԎ96LcT3R@&a)1@)0EJX@&Vh* VZ9\2Ufص8EMPDЉUV]o+ec3(u6@`3ӃX p(5%t<5X*pwO!?J}1bF;QE (((nk7HP!Fvڣ,PNBM_E=PQEEQ@6[1kΖ3Z6; !IO>FoCZevFS a=pxhwooSgQ]U\u;TXE=}^3\ךwifQWu7Q_Nխ䵸 :deX2?JZFJJcxN2] ((((((Q]ܮ.רP%8?Go_PРIKp0ZM*%h< #q~஧o}Ú<)5 m8у/*H  k feJSMMe/Uޒ,t:g^O9Y;{hRה?kC?hK #@ҴaI/nҬd(ʠ PûsP!'W0~|q6_?yi{inEŸ6w0!I(U ᾣLȿS_o^|AOeu%5gkq @)P<,1pXWG|5%Q& fNfy'aK( ߍ\T6"xMR'eNcMjNNJQM=x>@C/UL] *  tCMҜjN^X$)ԋTS=C #?wK/N?-sZd}"R.xUBH2x&=K Q/Po~s;Ik-ޘh771 #gÕdyH`>G>"\u&-+d9X/V-'~ |][ߋu?x^M~C6Ҳc)NCqiX *eUqQJ5n4Ҥ,*qW1ҷ[:+2LI_Nå'W[8KJԜE]B0yN*~ |9xlϋ5F.[K1, `1c\X~>) jomSsj`w.ܱ9߱7Au]Lu5["&nTB\DCVt*ޙ =?i X|V+е/ 6r_.7rM ,7ͼ 8)~?>Ow?h#M!M{S; Oyb RglwORGߧEβыNZJ Ri.V> j6wޅqgj+d3o<@SK=?mUtxTˏWqko33A94G`h]C:m&|;|,tUr6jA˲K~ʟg[;O2x"_jZ~e :R̞M>WV(0*~/*qvmVyLRJ)sI**M+6+ܦzJ|TKJBIa:"I+J #}+ڮP|; l."O4Xg}Ӝt~~͚}N ݝ.mdwC1?81$lx%sOč񾣠]&ѭe)i ilxIy$|mnx EW UC5,luCHa!$b1,fNN8ir򢃌AJ.សMz-]xLWgr}n}FFqI<TƬN<Ag[?(ů>!OjOov|-lDD>reqTc$F/3<8UpЩp R 9BJ1M;&W8ϱ|Y_ ^iSJ& o(A5+&ON_:O/xNaOд繂p/e :ے9 $?g??ji:woæ\ɥZ͵6y@#qGm|e]?%OII4[}8m, Upv[|G<_iĺ]ޑyM v$l A*6!AKd ,VcS ^XsՌfJ_<,:6JVw)1ٴxEz~ҼaV0?jsQVtY5#s_WS +r\i+E{Qm'~n\ jRV唹*T'5hz* bK_?>$Y4[xn/:+fZL*ђA!  ?j/Z⿋uv-[Eݻ'1Xv:O7_O?K] ~@M~^}.Y5$1ʥU\>6bgŸ#` ׾zv\\\˨ŧxZhbrJ Rn yN\V7O?N)%CZn[h.t>W4¾zUGtbҕeTmM{HɾÿL#+ƿW[ M*崫e[Ao-ĬY\ʃ;2>&]h/{xxkV xIDVS[Kh_/lb&{-vЧ29qƯGosu~ &[yc찛ak]Rw 8s\ML*U-9FqtRpSQqoOJ>_xĬ[b typTGOOmBQ^oJ>VO쟣oڇ□yMjZ."UkWIX,J;y\\W_G_ oR?iJ\7t R+;~|<ʲ_3(tguR *5)ӗ$)Σҟ4.ү;?G h S|piŻCZ#%*1+%m -oI>'Ɨ࿇: \ oHJ#\L?.F\ſ?ehMh O\ZAD<,287~gAz1zBK_~//.b>]"$xC}~o/)En7"#rB8M{$ߚTҴ%;#Y*1c+^٪1r%"smRs#eooۗI]4xwxGnu+{܈aG `02;G?>=~xN1.^ajH_6A (',qɯ?+/௅=fĵ{ȚX q,3gʤdƿ |ZkmueH%Wt ( ă_x?Yc߷QuVi󤢓jØf:FSpV4QI1M$ؽG Q.T &cDG/GϷ*9?d ? 5ߎ?57Uaht+DeKˏ/q]Zxb[v>%oڳTծ#zQfILN9 c`~ S_ns9f{{֒E5Ixq |#?|!x,6+^1FJ3 ҔyaEԍ49oM_sUGbcԔh3Qaʮ]hR?h"Tw>Ҿ6PiW7 Ф'e /Q|>I ږ%^a4m@R76|&-}u~W|l x_xo> ^@(-)=r>@P\  c៉M'Jl!ՓNImI%q9S'ʏxaus cUR?U%'/d״KIMF.| 0U̖RFo?58QXr\f(|=OmZi:mUķRlSi3Jl'|3Vc;xZ<#>\<"Y-*qc]ſG!յ{˨$ngwF6X08 yoԴ/&8BZz#߆xeWW2uU.j5?mƜ%*pIũYk"ς}KiZD|fK:) ;!)_7g__>]F8,MIyISgfr??eοB|B @[g5j6Q\SeQT嘇$FxGF*'iux7Vqy/$DqZpƯ&$Uf] t& 3bj^/{4Nt?=555'xc-(|gŜ=p]dc9ײJ>֖%ӡJ?ir>7'?a[O|-]x2ZeU.eTs?x†)|wErkzLjk++K5z8U=ϒN+_~|=,|C_v; &I;¡KK_*p:WV?o J'}Tm]JQ+cնڿfaL5ºWJ2U%(89Fӌ% |'/_gY6w'aTbҕ7IԊ }N2:|oSM?ً%/N_on-nm=2hZ[xYWr0.{!Mk>]Zu_6JFT%* g`|o~+4 ,|p|J5\"5dԛZc~ihwxszͶFKoԱėq;2+ec+#) ?Ro?xv&e}76z.vC{؎he>"qφU~o4_]?|cBUOcŎʲo$`&Պ61${n]xӍ䲉bN)Q=XETNIٯ0Č>K"6)ά\BЫN8W+:tJ;^h^[lif)Wl䐲c?¿#nxH:5+FktY nfhdLр2ᮽkCOkbΪ$<Ǎb|bqҿ7⟀ߋ]YՏ~@6 pA]_gF,b9^t%NJ5cBY%%i&̳__C=OpjvZ"$Yx6fRq^k'+q|aBΩ4텭fC7ᤅDeWBO͊o#QxK $*iw0 '<{`5wo~/x[<9{k/%mdْSNCqO?f/27^+RW}>Tʹ#El ̣IRʗ$ENJ4"O u)*-|SHLg|>縼S53aFtEIF3(ѦӼ|>|Ki]V ?/INiuNrl TgaXV5kMGL,'|"쇠|]uOx*OF%`D Cz*OU6oqſ:N-6>ɥkgbV(~0W`e2½w1ԫu}]* JjuUIj\ץ얈ӊLyVU ΚJT*+a5YQr符Gدu2|zbvZoM֗-2{n㷞%FBuvgc+c`x_E?aaе^(:ngmE*6'su αJAķd-;L[n W9_Wm>@t;A,Wq*nn/]L ¼Ρ\*E-IZ ZMlW3LLp73,ʧtjrƒ%rɵ?g{&_ ~&⎽?PP-l&+ G化Sy8Vf-2+IaI"ۉ ;O߂(Mдʖo-d%>\(6]|zk~2xCi.RKR|XS־],1)0#8F1Tn2jlr;IKG x*VMbS`(cNwZpTT,⢧ |Qԭ'Y4?f-Ğ%~|IuOZc.Uw#-Ѷ^ icZ㿈^ ׇkBXf |֒ `mʶr; 7Wo|G.N4+_4O3<*Mo]axö#wvNA@W_>#95:V -|ZIR%U*I^ZN)ZRQv^~*l'9hBjJ8vjtԤ\SoSve/\;jOkoseu( +u L@.ߴ679_ُϊ^."[q$P4ҧ?|+]O_ïZiS_fTL>i|c.=Pf| 79|L-u;-A6ڕ|,iVMiU l_m:7-GB_ňu $2&Nc\G}#~׾&U_YSuԢ=$}9bM&h$/rW7 E?i |K'^IΗseqs.QkyCUeTf { uxCĖ:dw>SK,H`Hb8K**_ z丿7fbbFӣ'Msƥ)Z/JV~>?-S|LCبF5YptJ9M|R&f]̸fjςOjb) F˷>-S$'|)}o[]w)huݹ%FzgJn[Qt-Fy,`0K#ظ#߲o}}|=w;}+ɘ+OyN@g  z؜kY E{J\9S(I{4֩C5)nc0q/xZ.kj. rFSWZOIJWgкNjr↓`[-nnO1Ϸ*<C.\~>h^[l쭒i)W9+!d`ֿA<}a|4o~/x[<7{k/%mdْS^Cy~ n=ϊOjzdN6%ēR΂) ن9?3<̰ؼUh9բKINt:0ir&74;7axn"ҽVJRtq/jJTyI.EV4Ug7G-j] ROF6ܩt2HSʞE} ?W ڣIW62%6 $q\ihy,Rn\lbȬQYOC_gQ'-2yÒɳA_1Ylg>:5,v /EJ},dRͫE^_GWԫsS#|_꿲Zy׭'T)o"L Bod?z| ac> 1 k4hhopoK8R>E'6Qp)F䓝5Mr{I]8q0[ȰxlnwգגNR\M{+ŧdjqR>+&O^n]ű<џ2JbS $[?o_x/oFV&]-gXZI cv`$+3`A}4NXM${dNX4*INMѲ-xMm$cjwl/qspQDGsUUb@ ]W_3M+߇44gN(.me*^3$k*U򎧩yv:x+7/>Nj0߉tF M^I0PO{\q^j#-.|] b "m9_dwExS0aeK)U)S}HSz Mp?f8I2}J է7*|5aN>hA_9T%N&wYK>Zε#Tk2+'5⼍IW_?# U G ᦕzƥ.L\Og#zʑEX23r_a:)ӄ`IcRPmr猟44m;/34gejVZTN2ܽ*Λr5R2=M39yȯBh|PO~ ovbDciUO jo(7ou֟ .N }7O[K / ykBǽz _Wolck3~#Fi >-%e$0]Ѕ0r6G'?=𴒨fSd$Te8$qؑ޾'7<ݤVwl[QZ9Vrꄔ8}A|MI5|S=:oNZ˳IMe\\vT\NoA2\^]G/:sRj4?uQi7{]%v/|Xxo0ʨexObuc8EM'Sܔn{?#= I՞ kw8q͎d(e\yi¸SdGůhf 3f Yl"rȧ;r1N/_ϊ~5߅4Zg4^4Ky\Y FX ?1Z=#MK=&++[3$A *sUCnw."^jx[irtUG)9ݥ9Exo/ |7 g:Cv Zv-?mN~iھ[ˍ]$HgYʗ$p6݋U~UJ\"N1oߔJ1ZvH|GGa{)爫*n|:4`NQ!]kv?W@~3WE&Ȅ^un[PS|~izo(K|0>_5wX#<@H;c4 H 'djI>|M 7/6ZjmfIʛ;$g_-Q/fh?5?LhTfM@}*1[h,~xS_RgFSo1SݱL*ː3k: }_ Qq,<9\}R(8fxe˰\'p/rXJRT'&{BPy$Z?kuxKOd5,m"$XaxX뿱]Sᧅ|=ฬO=WRy/nx*Wi?m|A|9^ -/YGs!kK[v`T* 3٘[XyG*ԝv*NpU9SJ J:n*|&[s|%Hd}ZW(SRg:ʜU6I)8{_][g"H5$N}W^"ھ|Iюصl$5V9myEI}.՟ |߇2Z*pݕޚSW^#ּ=?ž:]WcF0*v1q^ecڻ[5ӴyHaDE ^&l!Tv/᧏`_ ?>Vc4TVF.ɼz828ʪNIS1r]9-2;%h(ɯ;7]9ha!)֭*.%(Eҩ>H3p4Th5(Qg*g>3aĂ܄F(̅s^M+ӴCOf/XATX[j[#Mn$C;t\vLlW([o<]1;/xxK˪AJRTcdYcM(^nҟ&Sx<SVJ%ʔҧzN[)t=|G|tGk&]ws~Tly 9<#>TYH!&MƲ!a {7ƿ:xZßv>FH5k]>BWNg_-㈪cfC k(x ۥcwaj>Xf"`ᔐq_\6ac){:UhW鴝HJ/5% )K'y\61U+JVB3UIEYrݴ2kw5KOQdo W`fc<(,$+G@\L1'oC农P󭥓x'L?c_~G|8V+ZԼGtn.m͂Tb 2 5|cú4*TV:^NrK܌,J7կξOaNSWV:^J3v8NJ7կ +E׬ү&XY۷ksC vR=OkK?VuA֍y$i .xǚ& F0gAgo q-}U;7!ɜa_$p?'?n߈>ŭh6:k1syjoTf ۲ s.]aCG((ŪIϖkBqM8%%o-xxG`L5< !%US/2TE4(XaK{9~_F ?l>t 4g%Ԥ%pwޙ+W^O_*N;,%Ŵ1i Ud0 ٙ$a)U2ւ*NtOJ-si ]VʫeVUQn):i˛r (6ue۴⇉>럴~kxWדȲ,…?z c8>!x3g⏎u{OYf~mfE&$LfBqY}/i9֣OKTqJM;''dzxey^QUjTPɥPj-1vS~dWG@/‹x_UN_֒{ [XJFVrTo)7(?ϺHտlm6m_wtdմAp1ͷ9L䫘~xlEHB NΤƛA7N2n qUN[YxQI{**ԣ M:uidݛ~|E?4IOҼSiW8VGE s]?Ǟ;NՋj:K2J@]P!sϨ ~ߴ5=S-[,4am9#.*0Ez>'??gZ=.u6-.u23JX G?>Wc~`2_+b N]Z.>si'~DGRSqCիb()ӼB87Vє=zM{4G_P~ٿ |)SFF$vqHF' "ǽ6X Ĝ_NZ5cP J,>e\WYLjL' K9e**eng${^Ͽ/ƎF5Ue$ݓW~da'/)N5K?{jț$Kc2ۣIWWU -+g|c=ON궇컾6Qȓ/$Y,80]*rueKʜ!xMӜSoڮX_\_˸Oerw:ҝ*p悢ݧVp˒|啖Zֿ߄w?g5/;LtZI,q kR\sq%?5CYU*4(Ty]6jР{.*+nqpycV V+U}bghKԋjrA+Y_Zԟ~x¼iLqu/ rD -_l>|{\Ǻi-mnrHbkUAnPNÑ&M֯XvНpl5J=lnCk0̰r)Sn<(ӳK>k$5“O;u[!-^=卾XM_-#[x]]y!|ۧi^EFoNoI&%vF8Hw@?2N7eΓN.ss=JM3)o9eZ΃N>ʥnuQTmrR%{;O|9?lkR.r~x~bOXx"me3Iil쭚(Xu%odjG'z߃Mπ#b蚇͖S$G q{9ΰ8\ %)Eԗ.PJ\ɫ6$៤下IWHʴ}C#7(E7(Qz&(Uƿ-Ǧu:D]X989~xsƯk_O 6Au}Fdž}-vS:Z<oJH.x^TJU8%Je9yEZF7JO]H@5O6߉)(4O x7I^[[ Z62ү08|f/>. k DeRܴ$ #R$eq_JL OFjbGJ쒌ܤMmf3Î8f#qE*SQG9F ޯg˱iv¿ǀ>2xN -|5k9[xc AG̛LjZtSgm~Ⱦ"x_Ki4/q $S0ḷa*pJLc=:1;s۟v}A5&tQ^mjV!;ʕԩRTyy%8MotǟiLYa/F<Ƒij9’DKG_i N$h:4Ӻm(MYMuKWrКʤh5ڌ')Gu(}R)0+K:Ѿ;7o^#=DObUC;P@S_x;?~;_j>6:k[׍'rNX7g>p8Nj)NrJ:>ޜyoNJ|3N-qxj RpLJ(o Tʧv)]U /+g|c=ON+궇컾6Qȓ/$Y,_J 0iT:ot۞SP/{K?~y>*8E :gIԣFPMi:(Մi.mZ4WY'| Q~^_/⋟7B;}N ۬I1d,<] <3mđĞH]8D76Tm8ئ7^EezRNISܡxTԝX;A{ksL|af%F 9Tۇ$j9ьhB^ɨ7O捵v? t-sWƹgO=|Mz¯??lUIFRۼiȋC6e k-t{m{dta,񀈲 Gvo^7:+Qө&J7?i({QiI4ޗ>欄>#hd58aJN*Ru[JSҧ*IV(ߏpo?gx:tʤx5ok.RJNP\󍹒n/+'o<Ùg,=NE5Ry]h7*qҔ.{Y;~ _ү/u-|wWJLѝKR$y E C⵾)_qK񇎾O |WCokN mOKmgE: dY+%;kzkIP%>i)!(uKϩᕍ^ҤRQsj(!8=e(Ŀc?a'&]j! BFc;&#)G(~ᏊtpӢiJnhS)Z;ٮ GiՔp0(JnxҚpNvq:RE~~QEQEZrAW'kW]f0&gc_~;?=~|^Se4M)e]PFt%u{RJ2S^+~C|f<3@[~XlCĺ"uYbgYπ~$>|S|Aw>&%0H챦+ ~&Xwd/qqq"Q)wwsUQX$b >#M֤ͭ0ඛ ̯ ]e5"/ caӚtR9.IG)CsVwzp&gถu"*Z~ :s4W':vRJϙ_)mσ> O<3 ]y_.}W ڗ%z|NlnJ]A+oAtDx!LWb ?3*cZn|u6}mg`Q|ðw8\o5e|̥Ž\JUz6snpos*#(8IEԠԨǖZ?vٻg x=~s{,hRrJjhN$Ԡ԰垎кv஻o jWøm9^k//2G*5b6Bw{Oǟۯů ¿,5/Hcn3Xy`4Qõ5Sp9,I'_<)Xi,Q<3FH 2yY+D@Y*$$iة(֪ܣQIN\MƣtZXf\7R\CS׭'(TR^9$jY[C_Om]㯀>>#&CLd%L|9^x7&u)7m)USJ2iB$C9XRJUJ0RJ2)Jn>h׻<O4uc-y,(Ogw>&Ӽ"-!NoiRi=?fQ3332~E %hZχ;MVؗZM6JL0^+g o٥pN)=4$׻$uVki4x:8hb%M8'-<&I+B/]URO?f ±x~:N{9YǎtWe*$~u* U}PoGmgF~4WC[ {xBHlT`>{sºơ[n%_!\坧 ?. $z},J֘،n.Mև%e%(ÛKr{XLN'1Y .*>fSOrX?~2_?=iM|g_1d ! S>Wj /A4g 爭9ͼl_m_,y7dh>#GNՖUI <l.2r+ &|=|}OC[P98S*.x犕,gBɺړNIϚx6Q<7V_R2xe(:U.XъGW|$3-]=YvXg`A#gKٶyz^W<2\c2vJO½EI%e*ɾD;+xkDŽ|Aamu 2+YcF0 `"U ~޿)W}.7ɨ,!nZԇVeSWWaGJFNg{Sm}53dfPz_[~ɟO~>Pj׺݆.!kaD(q5FPYmQ).zu' Y Ҕe$육ױxm|oRP{D1ô0*Q,럄ߵ/~!=V>"XM$5* >X},~=|bӼ۽y: 0 Hw*,c8_0qΒVMJ**Ӆ(ޛ5Y6?=/pV燍9ƴ֛)Jt"'E՚rͥӌ[QG}dz_'sO x Ë?xOm7C<湕 $fgqc%c?cMro/G9L9XD*Ŋ9O !ᗓTXo峴x>eYLqeI ]c_xwS#ZMl)Ý^֤g%QSԪƫ֬jsoL5Hn~1: B2n:KrS7iBHdoURQ @ƥ%+䛈IEd,$`ޡ _qO-Q Td^Qr 9>\q^e_8aaㄩ"eH?ixARZ[}3W^U/^P]:oB)FTe'ʚP~8)l\ڔ: k+!y#x̞5muڡ~_5X:\*#66\6ihni.P.7T#9^2=k?Zg<5 xI;$r\@>X8{e cpR 0{Sm7vܷIKϤ_\?UqR’hnJN);Y^MsU/E~:wH|3_hqd=b&AG9* ~1q@u Լ ZjeUU]dd"bo%|1'ou E_ɻka"FGWWݔc֫ip#)sS4|QKݑ=I,kd#R~D9Tdd*(k/Hgx?Ò. mNkye bCZVܸBϠ>'xq,#1Ҍۗ=DQWԹSl>k +bz>ʅJJ%(IKO%8>k6Q>.|:xBzws<_:i *{c (/>~?ٟ.>ǤZMoé\5r,P32Ouv.^_Om,rYC>[*o|9/:MrQդPpYD={\r)Jtyu9IQJ\c&feud˅9N?e'(ͩUS 88s?b*Ox> >9nɬHB>DU;2vI-^u Q>?xlZԤC%|q i!A 5]>|Nux3ÚcdH(H]H*y9#kx\7-Jr}RIFPI8r&ӲW+}r֥8Gݏ;RQ%J4GUJ4OŨvVvנjKc2yo,&`Z28m$?Gg oi<>jͻkJ3RA2% j$t(ះ?SPռɾοb|Tyj}޸OZweG"Ww #j {2J){UVoE&gssMN駩ς,E?T#ZoB)¤cQs¯ٟQ}0ũ\mgLj-W! 8*q)/?jO7ɼ<0EZ5X,ʣȤܪF _ %"Nu="PXm&yK")~H(OKϓ˿O jڂjz7_]])=neE1.U~?o>|EPzWrf3FBLcI%zcG~+yEg?4-CFME }m-FU])r=E~u}7ToiRnU'NrN\IKQm' UϡcӄTj͹UJӟ%z<6۽O6~Ϟ+<~,<cuaw:i; YJmLrl<mφE)x%Bwٱ-q<㟑|Lxú: JjRZLq9O,<\-}[{W_'ԕIF3rʤ{]&C<U0ܹjU^ڬ S^X:YF1̓^J|f_?ٿ}~wտ| ^W f]ȕhk)-ho2m:d%xgd9/L~.G'.^]]m9~y p Nr,h9SswTTyIYJ# q2_ٳ%煤>Ѫu%"<$ل |5k]?~_gkO]>=՝w xm|(1UL|/'¯~| ͧKCkYJ'-y=;b֟Wg>)gj6]H홥)6`N8~9p~ѫ9I׮T$NimgN{E'+?e~a,.URxKtEsUjrOԻKEw!|'ÿcxi:63٠ 6HUb,2h^mtM>lZJڣ.GH2,_1'<]3ǖW:;6|O- v/GxgĞ Ao gkxAvڅʃsp3}Rc~W$mQu#U8H{Wl|3S7#e*oUҧ/k떗V|-]¿zOY/;jP#m*v>ݬ|y+hz<( imqVURGjP'yc8Գª$$/$ڝ9&M=+adԋO[ŦyUgoJ59!x "x}jM%P%0H%û,i`䂟@/ }> Go:At7 |t)V8i?YK}Bm3H.!`̄I"/10#œ8m/|5㯁>ZBÖOE9$$ffO@H=_;l~'*9K?{è͵8NpniEIg xQ_4iթ*#u%,]KL,aMMTJE96TvRhO^ֳ$W:}q1ܤqW.vowx/Nn]7kjbƈ 7t~ֺ+xP/.&~k5RAoqgq0I`+SB-džl] \ڃ',z澧xA:Yuef(%8:JpiJiI_2lUaScrXN*7ETg/e>xRpH6veZ{]uQm VqD,8 #~k?T>6/Msyﵷdȱ[Dq[8Kx~ h:j^-e2qA*22Fq\e}xw+r9EJ-.I%89E7^7[n~ƞpN?1N)¤IӟcR"'m 㟇MH0.ak#ƠэZiqe,DQNzAuVR~|Tcxh$Mw}( ;dO3|yt*+”1_J22̪t+޶Fܩ%eFNzne>e*U!?U|ֵhۑ(O|G}WƓ+y<WcuteX JDt;|? O4|/k#ڤײڬ2;hH7#vc?fO6~'i-ͱ-yg=VݜxC_}x M᧋x㶕4æ:\\T^P7DeBus_g *{jXւuo/f:2rPv^>g q 0]z{ܴ;,ӥYBU\3a+ErlOl_tOi}?jTyPv~=M|__~֟Wg>)gj6]H홥)6`N8S=_zu~:M5Y_ѧ#JXYF5ROV&Eizk+do|W|~3mkSGyq g{Q,pY7rE Q&h> ᩴ{7^tdf DH#fH̍`bXE?oĖ#z3ʶGˤG ;+xcľ!}O)yDaj*]2x#^׭_VRqrR|EJo.iK<8^+~b1t}+թQUbQ8$yc//`w/+ßMҴ CDw ny 8p9x%xǟ_&>\~˿O jڂjzW_]])=neE1.xW ౫Z]$V.#%@'%Ю|Qg\˦Yi 3^P6)%NGxy\ G0˩ SQ{;9.KQUqr_oto:,.QKx8КjUOoa).wNR5\{߶'4k/q|S:'LӾgW4#NYq~7'_ƾZ|3_xQMvsY\}b,I*q\)xw,(a֞n5tRT?vRqq;3YgٖWᰔ+ RNQBTBjgQf])//~ oxMU#{!.6M ‘g*">|WǏZ߁u5h {{kUM[yi$;8y3?wXĞg_,- bn 1ߝS~՟ %k|?b\K5Z:gx  >g?ExdޤYڷI;So8MFI.YGS??g0Ƨ%UEvXg)QvTQFiGP}10{㗆>x:=b_қOmJ^/$ H90HVv'i flhw.#/iNz*DWID~jWO>3~4;!+ugbU'qE$c+'Fh::!Aҿ9z_ C#y)YISJZ%N)|)Y#¯ kd{媬(II)*TSQR8E[++K5I?ଟ5(0[>K(S Zy3czH\DxG̞S6~d6+Z~%`o22$Wp~)x GnW /ء[5đFK69N e3~|(mCRQ+|nĪvHB;HBWx%Ji{ՓRҥxSBԧU89gYxx=gXl^|=HӔ! Q-W;=?rh/E~Ͽ cXK 'Rn q;˸-bY`f Ey6lI_#v>=x ~.YtMgM/*VY%15\HCc Oi]Exj[짖c8C;a|qjt[_ZdzGyQ>w] |͟}c2j r\ִBxu($SJ2Q~O㲜DrçtzNӒX5iU˭%OOe_߆u]?×24h`.m㝣 eZEWIE/FoO\ïJf<$-)Q2 x-qbA)=>XkMFKku($Q) H`r2t|߶=]KUV;inm/5__z. K ky$E o:F| >~ޟ'HZ2^k1]A wc+@ɱ3PL /k/߶5giO 1ZDnѴ!6$YnjqP-U4\/s\SU/RYFRYЯ?axb9jJ ʕEFNJ6sC~u?]kƶ\jl8Z6aA'̕'%s  y'#B7ν X\ Q.R*sS~<6eo&GxCG X<*S5N=)-Ӽwt_J.m.8xCFrA0 EJ $H,&UWyLapc cet!: ]:?u{}dE#Ju\͹ hڛDf)6oAaim kϵF pgn} ;F9Ҍ!QOj`#<2MN)4RRQN_rO\Yq-|>œ+?k%7SݧH3|ƥ:[gʜGOV !TD0OaIo@2x#} A^Wo߉If6M-Y&RKpA?CcLXx~,|EϋnZ}\\,k. ! GOR^}ggK_CSex!okyEn n?l#K$4gUhP*JRܧ4.[U)E5+Uewݿq_C'\,QUp:qJF?f;V%+ƅc|/g?6+\O [ɨI2ĐFXB>2Lz_ௌgoZmm6^RĖl 8^? 5Ik^>!xOѤ hicA(dW^FNp1k_Uۯ\j1Mn&`eal˴NIy8w<-JpAiFNeFRt_Ɇ'q8ki9']SեK~N*5ks,<*ԝ<(K4 pq4~w?/ŋ_jxeSSj`5Y@m('?9j$ ݟυ6aCsHZ9ue$u q_^*?øF.u!%5xejϪW]_7\[x1VPuf՟IOc K>M/7׆R8˼ Qهa!N%X ǨVM'"m{QN]J4qNp:۝=C~~>)|ha'$X,o 2FCE29겣Mn[ѭa .T%'* IP)FwniFZ7݌9U hSS',:TJ)C?Yʧ4g-F,{dφ_i.moRlsV4n W_)/} I ,RK-<[![r po|?Q[JmҬڄ WPrWiٟ}"|*x x q 9QiR8=n\8j+3c㟉*Wڛw fM4꒫e~Fnڛh]Kw(ң,fHm][~~}xK8œQĹJt[Z2rr疱亻ɾ[35}H[_|yM?S%HtL>Je"AEaI'p?EtJ:QPNj|&8.8z1)_NWr,fjT!)ҪUOeZs8ԃiFwt+'95~2Xq[N֮[J51/U qqs^ď~;UF,7ncT| $񺲒 }8xb^N:Tj2ٵg+~--`1/zW}7w ӯlbJ>Ԕ54ʨQonM)Tx"*cT{'IM9 _9%~:%3|)񅶙ğh60wa|ي+ ͷ5}El-CacMxwfxƾeukUu]ZjOҚFZa?u/)xg/ D(sg2#{$dҾ׼[wSeG(E٘.r /e|KѴ>2:yi[o.l\Ko!-G(o =h/Njom_+Z>T7O$R$DV~:?F}l ʌ\[uoEƽɪriJJ)JCuJU(`凋AM>fRmZ{V 7N|/ r趭PZI>CJIےϕjTo&⦃~Hl.$ZEt%IU2ȬpG\<2ϳto 3zs!7SS#(S[8cS RX*?y;ҩJUh:R~J)W;Mx<vQӯ]۶pnU$C|P/ַ_ZcZuI!uXnDs>l}wS< ?OձЯ$Inm,đȍ#yl%gU/ٯZϝn--Q & :E-dd3,-T+ԋ̣MQn% 1Rr|6ms6{~c\#GJ*%ԫWBIa=nNRm|EWP|_ JyMp;Gp@KT5^JHe\Q$M?2ő~_|sl.>J"Tmd՗+?'Lvs`<4F.RnUIAE.Gvo oA7~͞1[/^tybY1o,!P/I3??`v^^Ri8-~5,Wvv rxk_V_u"Ya_}qy&%2 "$IiW7 oC{+R)6im'Q6'k|Iͫ6+mqđ[31+;$IbM}AoK%ĕiR KMUN .-6)?gIK 4֍j7JJJj.-IOEgo*oSefX'MUn@*`=6}>:~|!V/6#H>#EmZ.\5S X}җz=ĺk{w'RF _i$|)ԅ~,~ן~Gt@.-xl*3V܃(}+ߣ_"lO3|7Jw;yx_6a`eNiYRr_PN+'F'm+哧UM2&/KY{5iB%J)ʥ9{у?T_GǏW%?ɯ.g5 1B3 FSW]u^ɠ_ d8!g馋V6{Cq/V$yy0ˏ9X, ~xg]K'[XajN9Hb2T`_ozz5,!*c>)lV2h҅1w7iI8 Fqtf~FDxp(CB4c 3);KڅX{u:#vyŋg.>-<5toI ;[$:++T\l^7PkC bݭ5-mm绁ԣ$D+!Ax a8\F py#%>j;2[O/x;n B:R= 9(6|cC]<)ɽ??'G?'oH4S=ZGo*"d?9kI F=FxCcj'񖓪':Χ ,$Rw;;$Cu~=l[9h!K(eܹ8ec$~>-=#ϴ\xwX+E,Q*0bѫnbX0@5lj1duSIG9KV%hq'qnaQʴUTJpU(:Qw9{9?* F2P獏}3Ɓ ,.|M\ KH!x4߫~$~Kg_xVH#5h8?@S/ОoGǟ|A.i-6Lh ؖā%_+ʾ_F}cjZfq7xϟTWQUu?g:,Xz܄! #N~\f>G~QƆ;2N*=cVR+B!OHөEkTPgF_3 t#ĖtZb(y{U%sH6ulB??f~#I.*I;3ܒk5o㇉4Zg_xp}~İnyhc?3s$x/_/u^_>ˎ2Lϗ k*_xY~̣w n7未b=7'ʹaߺ w™3:&5/RUqN9IGnN~SWx/MJ]#[Ӽϳ]|~lmp#NGC__V_k=VCu ;0<%&BF YS9nv5 _^x!|xω2Pξ^1Fdn6Uzw~4|H Ǎ3w,z[Y,|h`# w4WGï[;W|acݱ$(Z6dnǂG_~|υ<5|%R'I4(5G[c(˧~\[h\|IO0+CNUj1m^JUUHITv~ig'wsp\6׌"&OF **;/uGw_oil\4cA{g=un2@F iPR5@ /?j>Ԯtu5bs ӛG*nR,%V Iɦމ6v_G^&+bzJYB3*RR$$ZЌӛ&m3n%ƕx-nulrAv) !k5~|mCO_Q$XIM+n3q__n-|X_xwzNeI qwn.$ioݕ|3/;|7Ŀz:Ɨ/q[nH!*|dq]O/#q*zjU=ER)sJӫ9AJ+i4Zkc44ZZ V ϞVjMEŦ;ߴ>(|1NH%Kh`R~@ŀ@<hšo|OocڍL%L[̊F`6]i!J^Ûc~/eM8۷,A<1xa|gw ?4;pb iH91gQ!8ViBgIB+UN72啩+Aߚ!pҷ3:=:UZ*g/kR"zp,ҥ+AsYυwk-2OօmzjsnNԑڡ>8?i/ƙsK[xsS7@_joeaw8* N2p9v)Hk>֭o}x wVR@'*6l TwƟj6Ho.fԼU<13"IJ|9#57qfwJZ jc̔'Ju8ʜ+ɧMr{G ;(z#xp|=hWM(TjMJ*x(:1c~u_?DVBck “ EnA~Ο/ڟW>oqͨ&XHWn7@&~imұb'<> j#Csu]jyRMAQF3ڀx1_fbH3Pw斯חiwf-xXz<-BSI^\ͨwZs;\ i^" ӵ WPM'=o}#ioṟLϔ~@k0$x GWt]^m j^-ơo hVf8;C+63Ǿ&!f]C>k3?ƕ 酿EcE7>O[z4JO2wd) g/ߴY-KJW XHP i9,Ag#vV~Jք?nm/U vyp,u86|yjoZ.*,)u믴\/Uߓk|8(3҆k'J|9bTO(q̯:IO  bTnȭ:qTܝ!ie * N2p9?| KkWƑyupWQ[k#HDaj;?zf:\"+p@/@#z1_fУbNug^4ۍ7Zj)8MgGy'8}#8<cp'^>4OjJw~U">c~)χB-/NOSoDZ` ;dwT|fs<73xkm[}'7^?m!n/dGSX=?O-+j_M QYTcBm~xK?|grzS=~)-kA\q1^Z(rQs*\ܜbKݴ&̇\N"FzRNJIWYqj6&~5/A_?x_MĒw_xN/՚Ycb/ uCxEIrJ2c 5h Z<6. fZ{RFvH'7]yM_cX-OD`HC@#WY(|1_?ߴG'' 'K,ZVMӟ0Hrl\JnEE˺"||񏂾ݛZխŷe>xAÁpk<-?aj~SPcQ<ӍYINޅJt5o|4fyf.e^(F j9*%N*RRqQ6|Rqs zډy@QHV{3PH<#ۿh'g#;xSM񯉭5;R]3~_? m2*  w2siT|#`pA:ץ~*IJizO]knX*;B!$rpv"T싯GnUr]g@yWu'J/Bi'KX#ۍģ86+IJ^~<|z[8_8JVVJʥ(ƋVqGv??ƒ~YQ[ Nj%JR7JqùE~juOmԔҴhaկ΢#cӴMn&O#om|Aq}i k(Xn4|W`ۂ$W>>|\_[_xsZFe qwIn.$ioݑg&~ؿCD30k:WOowI&#gʑ-2:3H<a1*uTaRjF+Nqi3c44ZVUBs敪Vi:)s;iK~Yͦuqi]$%~cj' H8? g+K:%ѱHkiu|JU+. 5xf_ h_  T P5ݘb Om[4aFd,܁ÓILpOJpߕXFMAZR*)Vj6vjӼAi6MŬ8etIW 1"x'E.SnIjFV?P* jp#ۖ1DJ!|*w`gp3TRR(E E. %2)ph(Q@ EPE. I@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@mz,~qvEv?r?&Ʊ=fa"&W ܾwk82渪ty'^ֽm-ž"pAq԰!O璽k7 r]M}K>;'|Jf-W>eռ#*HH<~ ѐ.]R|*;7 )$읮WOѣ~L=,VK^_+9qR$٣ zT$NQ$zu)EPQ:w-wO߈~ }TCPaDkF*UKWmdK^KSP%B1ȩh TTtQEQEQ^⯅_<=.'4M(Ush,$ןW>J=)+tMi4]i<aSi^-5x+qkM=PQEvQ@:7¯!}VCPaD$dA>}\1tq$]g{;'g٧gѧ8BԜ,i\N[4h(V67:f \:Q)w܅UUf$5Fq~3yNJִ҂R2FmJ:gh.9.vJK{&ot0#9(s8[6EQ]`QEQEQEQEQE{w_wů2X<o֮Lqy #\=pfYGWnUYIyyw}kV4xǚM%yB*ﬥ%ݴ#Ez_>3x?/'ֵYcaonDq)gvf!UTK3Ԁz߀[W>Oiic6*M2@ ; P$s9 1UN*S勽.ٽc6⼳N\n"OIrEҕߺ,ݓ(s ( ( ( ( ( (.Xz,~'%1O_'ooﵭwQO=]M#@U3: ƾ N $9',=)t}՝<͞Toܝ:1|" IN=&5a)k+/7C_bPUk{JIF8Sg&#&Y]_M?/i?ĒE3bGCzbٯ_`:&CvF8 "lɷVԕojXhx6Gmϗ(}5q>)|<|'o=.,nRy[JDt;.*'0p*ֳ^XO QRucdT&Rk>oCf'ЭnXSTQF2u%rƤei7$տP|C[Z7·icRxog"4ݝ(@fJ}??c_|8<έ ^jʲ8Q ܌C'pCq+/ʪEz5-x+W>^e&^蕏ߣO 9NE[{Uz#ZЃ=lF)󩴥U_L_>i<= [6s Wz:+gm1`6v|fy#vzL%>[ol u '7_1?q{}#+p7ͩgos^?U?gآo$Lub/ 4 q{/x яf7St"A4bUVr?/f^44bI<.]7}157MjIQ[ܵϚL?iI t|nw}yOPe*TuR(w\挓k]R5?xYe 9ѦQZ\Ό*OJk]R< |t4[ 47Ϙ#];H'5#.x_[>[}FIa܋O(]G`*e>h#k|Y^=n-o%їK)X2r D;FߺrJl++a+x9{9b/9ԧ;B^ەsܜӇd?28CjL W:|mHK._gR\⩶b xoڜkUt])DJZ8)K.dG+־?w?h-V!lelЋ6eTee 7ۃu~Ŀ_u}pkVq:E&/JB`CggDYhҮ 7f0EB*8^U</>_e-MID檤WRIYʥL%j8 x^TrF*~ΜTZ)Iqk <?xKҵcĚ=ϋw:C,P4!R3FGqϚַ|>[ ljI9_"o*VjoÏ<3uGmd m5Ḩt`; x a>i-NI Mv urRv"'KWh!G 5w ⧉9|2N^i7skj&鎬l@U 0@gT8y |U?"|7}ѢycoFF{?1zmp8|4/ ?oiipYyjg: *Fۥ ^UX#Uiܡxh(>-}zIhCl4q4%r!ځ3 ~7~ |)WFF$vqHF'Ucij %'$?|x/Ᏺ's{D[l'nݞ?:ҿ:xWo?$7_i'Tv/ҿdsܳ4aj9o^$Er^~q6M~m9j{^z΢u>u$l;I%&=_ &Uk]r9#Wx#s36_ u EҋY'uHdݷg|jrm|`_*L#G?_ʛ!|3S_o|9KvĚ^{)cw%2 vs~#pڹOFqS4ΣSNjP,w=^ks¾/#6=HԫEKэ*j 9-dxNJ\dTYKi5IJƚgmc o/[}+6zhH1a%>PF,VdsoyH KBp2Cm??? <_?|xc-xYYXH%XR6V"S_7QY!-@@]QyI m"aqt]ugOYi _%ż"o0RIQA1 ZE=kZUi_.'Oo|Aie|> y Uonÿd/-B(2jSK{lwFMn@~4?c??|QFM܇V4nJyfm(I1Vܖ-UaU{UNw]:1m'e8*p^:~ARF]:#S0QqOOo^v_Y3Icmk {͏߈1izΧ; ]]_M۵ʥ!W`dA)aO}+ Q>?xlZԤC%|q i!A ϏS9:xI?!Oy?"7d{s~a8eШ ԝX5'*pt$f mM\=Ռju+NjBIbTCNPQ_4x?wğ|7xSMAAg4PatG%'/W|OXxXj-[_[6rрI? ~$SVs;!pq2;g۫W/Ÿ SbԴPuZm8Ƿ% p$#$$G*as% U!G*N TpJ2P h}>o, Rxz[RIҜ*ReF3KCx5Gx *Ӽ=t;i@M!RH'~Mg S'߅ .xO:}ù7 vPȎ6T}|7Xxy_:U)AŠUUnc%^ju- krF\#ʖ/fj4 :QYVXj[B-G˒7' qO UI[Qh~&=ϑkm W ?go yO]>\K[] ;UжdcE9B$981~/y񸻺KmBQO؛<^6b <$?`bOz$~׃^i:N5ٹonۦC;;9c#3 ѝr5N**%}mN\e%SUVAv??pp6ʫjtxu)&ja(Kjx3?|+z%Z5kPTye6ӜjU+)44~-Wğ ω^/ kPd-׎eXձ.10NXT`?|?o֑h8Δ735ƆZK*[Ȅ# q^uۛ>xs/A,ӮclLb*YTUS)|󏅿j C¶Z ]7-mH@f 1ݷWOlV6VXJۛ*VpQJPnJN`|)ϱ>{X\GSĥxjr*qk\Ε5PO c%߉|ŵK>RUF]²bֿD_o~گ|eFfѵS֝k4[vLs yKۅRG!/O_> |9 ۍCYSM~$s,H*05 C?hzU_Gteѯgwaim̱ dp쁋Px?Eyq癞 =hg产UҌ*Jn-YԴRSx.\ W xJЫ_P亥^Q [\j~ÿ>~3F~x_y-oq*%D67jߤ1 i0#1'bI $w5u|NO'Ï؋i{[g4sm.wOA;džoGEULʻҕیPe}9InV`P2ƳmW%Vsjrui:o 1 )D҂[:gfGV=j_7hʓAF`Ӓ8ՋK4 Ljex~{j?n6ڥݽʘcD@ T+??b_~*ΏtYfy.n-I &b$C ?yFx{N=̟ Ol5?Rku++20+IH¯톍0~?;߂fG]j#U̪:<̊Nʤ`N0\.&%ݝ fEb?-sǖEGO5&^ḟN,Ghd(Cp0PGOG{ºTZ65^HBN$y;h9Y3|m_־p uy-(I}9+\E&gy>c`s>ʷ.[[ԩ;^?OC{Ʃ|!58|SEy&3 89Q+t;M/]xSX8{xFHlU򋝡 w~0?/Ÿ~<|'Ś,n4}^nM0pAR)MA]͟Sc.D+_T)(5C;L sRa(E;0/ 3Z45ׯ)Xt%릣(:^NMMn-N!2Xe2L U` y\qnFO _RNX86f{+]J&窕{2#22x7MJXau6MImO^6~,|^{-7q\>,Sf7St"A4bUVrX>;~8zh tC: /bP<9RHg~*v FZ:9V)18][3T*_[ Kğ>&B<2OkXx-B"8S-gwVyCBFJX~;VU9A(tޣo~ ,^:]m k/ %eg$ w 5?_9~?ෂSEmR1UtM)DJZ8).dG+ٟ^. kqx~-F].X`xc%P~$}w:hS?KO.Wipk7hnQbQ $,(Af0lk`oO-UZSUNTyb4T7im3ee/?? |?k:[&.fU@V\)Pmͭ7v]~I-+Ju^/:C,P>B nhWߵwiDIYhҮ f0CB꤆;N5>? >. XGDf puTKIO ~a,D)b){dh<N>n˞i[xS*3L-ic#snOoENiGތ=v\gv~:ι>Wþ t[Eye'_ߠ UJ{y r8e%H {mHn~1  B2n:KrS7iBHdoWm~r> b{SFD'{mSNɨ/xsSlj]diUKMU$XKTiz߲ƍ Oi9<3H-l#KH%Y1!(T ~O>GcZF}V{c\o^4YI8FcVT>u|@[ uCU~'mY$IȠG)8?z.OFßfᛯᦽs3X^&yZ[0}dWfmW%Vsjrui:o 1 )D҂[~d\ey[pN|D%7hʓAF`Ӓ8ՋK/ߍ4 ex~{۬ͮwojr.#@ Tk??b_~*ΏtYfy.n-I &b$C ?yοG>{N=~ Ol5;Rku+;20+KH/힍1h~UhXk-VAVeQdRwV80VTs Xw1ԼK⋏`H֯a Ym%uۣFTJNpGԼ7K ,Ch͋iSRܡw.[CMf3ŹtM£'MÛ씠amNRw%o(W5q5 N M턳{"1c|Ċ|_ƿ~IqpְVd4:P3{WZXxCt?F;]*-IӚ$H!bD"ym9Q6o<_6 S}T ĈH7(8fVGڷ3廔7m\RI7S MaQKSPyJudJ*RI3bY5? wp=}^##L+_#cV* qim5hbwm%3sspeWdx,ysOۻ1c5duyL䧖n ҄hr߼?dI) E/ xN]7WZdFmTH $Te C65^2TeQ.jg }f7{(IDkہ|/C,L*`VK9rtNrjZm}c?w_ n<k&T]g!Mܔ1צy>qx7;+][i2H7]F0y_e7~[ IncwW\o5G2sJP̍v`τ_Y+u7no]I<,.91昬3 E(T^xTkPQݩGVşlcr? ISnVս:x[PPJQe[FU:?O|=aXN𿙣H_|!K*[zUkw us[ |3| (> 4O26;Ab||CWu%-+n*Un0-JDmЂO=Hn~1  B2n:KrS7iBHdoWq&nyT|קi\=;:YT  ~ c([>kҴ~?ktwJϋMgRҡ[![|y*E!cXegu~It߁&|T|s7GgHa)%r@`ɸ(qp9XRJkB˓HʵuvOx>u#:m]!-~$_ ~_猴|MƟ>W{tECs,cz<4"> ?[JnK;<<@T2xWm9N|3o'~ v~Yct"m<eT,mrlOx߰_xu)<-aj%k6D0Vb _xcǾ+`(WxӧQrB*2uJr9Tj2M~#?JN8gVW*UbM)9%BNP}OV:m5I֪k?#>;~;[YMʒU.1fPkcx|J[iQvqvz4OsVʳ22f'%+J.ҋv^=Sѣ_žuo/i7'٬-乗bm8$>(oͤ^<.inq~6%1sxn}Cnc wJUIkLFp}Ʃg;2n*+ QӋ|;7(BI8~WkI|]y6+ a$α>&s]yNQH&1K?b߀;O(J[hD0ֵԼ3*b69+#LK⿳|YnwnkĚƷ򡱶o6X1U(ly)lmҢ<4USTJ5zTSj\K/ Ϧ7)TphJR7R1j93功7:^/%tߏ>6>!f6uvhn"ԑdwYIe|uJi_ CA|ď E[Z=w\y{y%Y7Ez#><_34? ڑZa\a< ' ǥ>#ύB蚜c%k3pa$2 H(T~ak0YYfU\)EDqGz3rk-\2|8EZ>ΒMj$GiF59i9SWrԛ_{/^7Nҵ&oukM2Uh-ıՑ\6lk+e~/eO3kiTvFj2^I" V9 덌VG׋\{Qe*սtRN2KEZ۶<χd,F!Viԛ!4VN3j۹;-~=~zO[xoU>taZDrC$qxh&> ]aeH IȒLlC (}͸aqixPy.O;tS=ZGihaiF&CvcAGo_|qw/[!橣nm粎՘"K,B[" vzȾ٥RJp(΁ঽVWIdz1|Y6EJГiR &9{ܾۖZW~i0*r~~,=<4'yy}ֵoSG &xR?u=fylm&H7|0^9+ oue|̥ŵ\JUz6s+־+|>`=A#HWHM`ҽg |&D7uo"]Zu;466N^YdZr˂GTSfVR\9”VJiIi{Gy}6Y֥ӫ7NZJjQjMΣCڻMgxGŚ7u}.XYVc4Gr%|lC (}͑NF:ό>L{2úBk` L+ /;X|3-kǒx{J֬5>2ڪF_ G!fKdV*~+~ɶ<wØ|HIcYYL&BIJ"0/8f >?zuJ~Ҥ9#j^|qUJ3Kg,_ib- N/OmwI3Ik~Q^!_ŭo@Ʒ3Bk<܉&6|s5!ѮI&ӳN;4==cE QM&Zv]i5z3S~ӾQ~2Zu׸Dؼq@abesV 7劂m?W"&KVN)-Wzr=EY]2)p2)Ii26gq|ܞ;I/#OW)uΉh m6"I<#B]Hx3Oϊ8gum6q?GZklq*#$_=nތ!`sZb(N.0oqکEEe+wgK#dlVu)U\)qکoJ =hzMubcV'Rqj;+,#?s'O$[-[xĒ bȡ"2H ?|79&_OԩV()՚rj2i+\x6~> k/j4:=ENzS?hWć^+?Kĺݵ֡wIdyv$pfGXasI!M{K!i楨x:}CƶQLͨ g[6gC}(1TЍ\euJ$*:(t[Q򴾛Uζ_ STkN*ht9FN?'k;Dy#~|ou)GZkb`X#X,8Mť- p[F8}g_'6&GAcHW8kJn<+g.t*գJ5 Ԩ*өRPΔbӻV_N:yU9kZjՏ%jU+ZjOF0Q`㫝QVk!ԢѴ I.ؠ3D׌keƟj[ {7g&c8&/!fU,\0A=u J|+>#*5OnݾGgMZSq|Wƀ,/5m;Jro.lܗ!ny_?OeF~Z٥=;>mEj'(݆d !kow|3ߌfx/ 1jvm;I)4nDduw>j?{rV?IQueNh7/by8&/wJ&ee9A֜)ԭ' r 4zI9(ߙ&Z*A'-Jm[Ī˔CTtFx~ u_7Ɨ\˱qDFFN03_ѧh x+ᦴ^[=6=V6qnG!ufi-Wɬo+>?k, )lVb_nƛSN(i+^8nvy%y:輾x8aߵ_us>uww_VhWvޑ{g=pG=岢 Cq֭?[At'R.k-W Uw3ME gVբl$[m5$"h!P:c|XoonmcڮmK7(!8?65 F72lnJ晞cGO.S*:QRdrGIu'}15)eS:TPsR'\Sn䜔e}e{x׎xߎ5k _Y>Ue1>/ȊH'|_?'ψ,hڮqyxcQɦXTS\m I<]ϱnQVZ1MBUax6KrjJIҞ>qFg0eQ~'^%xN-e^RRQ?")U>yl2} .%ؤ"VlFN02*xW _B~u_F5/BR@~8ix?-c3%4{?=HLrd J(By7S¾&]ƇV2eH)1cj8_ؚ +?g7zg'{iSIsZNcFNjܴ985MyeUTJ<ܶv_5s"meφ5hGLYN-LgrYSs~[i`6L -W H R .%*HH՛E?h_GIuqoeXyQ#G>(ᵕ$*Ź(~o_֮.;}S[l%l. l${]8!cu01*9ޞ"8y{HƛTO飜aaS,&U#P9,4cI]8*jn_Bk',n4Bԅ'h I[Ú_lgҢ;W7/CuuO:[jT-{H|ہ`#m߶O~&RVWHar?M]YDdvAo$pQeRs=J׳vMs7Y4~?qfC-تoT&J)cJZ\񅔓g#Cyo5kW]hWvr[8^AGtj'O> /ό: xn;&[i7_GaodV ]aEGo/?o&'/+kU."V*0Rhh3 wV^-K7tOݓclKnŔb| ۍx ԫ3J\)bE*miʜϞK_Gz: .XܓjXA*Mi*JnQikÏُ^?.~ Ex&)@To$KJ i$>O/|mxSò>*;B~1hǫxux6x /[n1ӥ{S|Y-xj]Ӑ X";(QF2x3>c/k6E$8ɿEڼyd]M1\%'/m&V0眧R&R7dMVÏ$Ov]B[S*7#$gx/u!<;{Xj/bM[7":l!|wh |Ǎu@}sB`j0,L$1qh;ep~+[FG "[6F g[/?jex0k R=ʔjRRnb&_qһ*&/XLU r9ԇJ1UIVTUo-(uGIMOnoIhֶt,Y!ިl㯵|_?Hϊ?<dkuIo:j֑tR@ :O68oӥ9&ݭh|\]qrIIYK1;4jTjN-[-'5\R[g瞵˱-cItB .dPJ.U|]OhZ-MtIh]n\zcKwI>&$egDZ9A2_Jk?^5j7m(HH, ʏ~g0ˡͩCWz#w 5qHO5*:Ts1TZy^Q~_a+ߴEphWZK@^6(R+s`+7cI0~$ŷھt]3I,bRT[i-s5/s`rUi֣ҥXBї{7Sn쏼8&`pS/hҥXCZWq|Ѽ> k9|a%ֿm謙杧>>hp'A?/_DZ7H "Wbu2r1ֿs~~<;J+X|-22Rd!~Pr o?%,zڢ^-KrB[p|¶kB5iBHEFMJ3^D;{w$lOļ/+ghW BmJ3W/dyKmշ$qo QОK֦U\n(%UFH2+{c1Ùy_j m.Q$C=ռ WZmMag=q0S Ꮖ jeW.% y(~L_U{ῂu+]|']GU5b%{QF;QX+#ž-㧎e♏PoëܪJ.X®1̫rb?&?>dJtʹzԼSjkf~A?3jܘePT"j~NiiO{4Y8&]"w &xE> _xsTAiMJK9ѷ.'(#; \%^?j_ ٣Y^ 4eǞ IG>: ^FyMR%ƺ*Rȥg%{Õ6Rzxj\%S/{hQqyP+vr\/X(ojOM Əm*P6}Q4w hTp7/uw-4[E{xeO[}QO2?w 7&_\7)"ԁi!߾0cll9qnUܶwڸcx#G8L;F! K݊n[Y&ߵO.a ɠ]gU#]b*^By?/ /:'/u_2ڼL/PAgfjv3l~џ~iy4mK]La*Z9#p n[ ~Wr/VRֵ*^}-WVZ7͟>%se5~gKδ9޵[+jVN1r͞3:~?e{>"U^Y\CʹA :BȭNj:~lj][M>Ȁi+FЄ#PIf%j>WX=OD`HH.C@#Wx~73xU-|V%㔍,e*K'LJx]TyGG^qhF.M{wlݤ[Y}pFψQ* IyT,RMGUdy6j~$m;$N^]v;c%|OѦAŭ};[XcXB#6N11^;,eJ8ZʤhqIs*ysSRn^_,ul> uZz4heRt۩7eF3\g/;7;g=JM#\d2DY) ?E6vY[;Kw HR|3dIUg$ ﻔeϋ_a'ŋh[dOku7&XeeVme'[/hR[{gJBL#<xi`w5t8U-µcgZPpri tk:pn"ѓ5-K]%y]_KfW ?o ~[V-kD-2O$mTvc쟎JoŸ|zDZZ]牧"%,2"hy_LmCgSşIBmB8d#S旔9! YBUg(J05RҒvSP#I)+?8W`*i֩ Ս9B*ԛ/fnQI~u> ~%=rmnYb%eP}O߷?~#?֟v-5=&&eݼp8%cIDte/x6JCopvs#i䁸î6v濴sV񍿃+DOgy 3XdYI\gVc%I8Fʟ*ZҜZٮmS)*΃tEՍ)R\m^.N?oO:o/>+k$`d?-t;IXdeyov%5|MŭO[UKXL0~DiOr{^Dzպ<'?B改)^j*VP# aʮo | 8;e>isN|5$()r8S"8'pZnW>'?g~ ]շZ[_v-I$!RȤP~9/}3^|PQtKkƊ1e@Lj~?##7|w<}].nŶH!c媲@''#WX7ЧTvI۬{y_|^o`ԡ^ѫ9ӦRm{SJV'f)uϊO+G[i`"X F$%ihۋ; \bHfT.6"PY(N,_&C||43j/ tQN U YJ(_\g?|Cfϕ[ID˙6;O\7gc'aM}n{ yr.6{?')w>)em| Zf'dfAyp +F aa~WoVS]^ǩ[M\ yy#WWO߉ rY 晌:5 J>윩۝Ex\.浝Ϥ|QoS'L=|UJiJ:_Če慧΢.d+gD_ /~Z[xcQbէHא̳ШEYf_+ʾ_F}cjZfq7Ou Z/KK(aK$B"K3d+kJ?|}ZiwSVkYެ)b@ Ą۸чRéT=ayMZFMu7xkCŴpYAV;ʣ匥-[#)=O͊fn];]ikoGm}[Ifnbm\i#xqȤW856P~Կ|AҤЬtYAy5"{#H*;yp/_ |VAZCex~mCMΡP7ą́`a(r&i)fUjNpn(?&?=? 3K;µV8JJwT%u%)EQӬ\ϔk)T;[Sabdͷ1͑ x  #[|wcۥΛpbA4f2!#o0,%@|K|d ԵgHH^GFHC#< ࢟ xksؘt)66BŚCrHzYu.`p% ntR!Jk\\ 2\bsܷ `0*2JaGt(KPMFP]ڽƭs⁃I{=÷7R&ĖRD'X^Ag"i6o o9t[Vimk ص$|K $%AN}J?|{Yww]w>kny UvbDr98;wbi(?Cޔt; 3Ė0_i_j \}K(v ~A^)2Lbb)UTOcnh)8tS2mɭ#;&ʱu1>*jSu~N2pQ*TuN\SRs࿉wǚ߉j%$qc_%DPU@U◎ N3]]ʊo-6>\Q|z~*mO9};Xdma%Xdd20TA[+ `#Kࢢppj$lpB%TEE.W^뎛&+_ǂHu}b9󄩰$=1_}VRCiO1Ooηpֳ1!#2 ˀYZ0W k!n*p?牣IR\UV28>j)Iyq45L^j,;5*ќRH5:)Izif};nCo<]{ |Q|=⋈V}J𡹓 #QJ,XER~hh>lt+[[K+{qq$n#Ha*'isEZyTRj˃r <+%|4UTU8rNMY|^1oGˊxpmE2m^v_olYy.BgDkDQ1!KqeݵsА ߳츒>=xo=(;Yq jo0RLg,;.mKMʝ)AJMՕ3Q{JVnBI'%c8~"6Q*jT*ҴSSjE)YNJ)XLlx^6ҵW\jMYKov? bW e<Ϳ?h/_OmYmW[hˎ$!8UQY$KOxwyxwM" =_Qkx,iJ*RNN}>YW}+z:jֹ9KUYp.NX~S7x|5|txkMƜ%N ־0ikk(m|q."1Njrn4SNNQk_g8[YCU|ak:uOh/,& 0t` <+T;Cᯋ#oL?po7#E‘HfP~66xt]SLײw_i%OeBՐ)Gs8ďj`ig]7/eu O.<ڦ/myz(M\MNu̩jj^N'*O|AcđB6:rȰ^ F1|Θ4d1~ x\M%itDV,R]q&ߖNص ~`ktŧXn+;8}︢$bs1YpW+c*jpܽg$6 Jj1VIïr sL *QՌ+Np)KVrNc r֍1$Ŀ'e[V8>>_MaUVx–ڜPߝ&[ Z]:I\ TC _å_ ,pΪWè|mԭ_b`aul$bsYR^e)rS{>~ߵ''4KZseqkmwJ 9 nRIo>c/z KYu[?&CH%T?u Ѳ8?ۣ_?e/ߴŸxRk-Ӽu{t_J.m.8xCFx# Ck_4zӯ--mm~#Yċ J%ܒ+'PEy'gm|Aq}i k(Xn4|WmۂCH8Rm7+} 1cP[Cs Xb31޾Ύg]Qە(MJBt&eW.;G^9rsN9˞4iQNs]Z?_ǟ xp 2(rAE{(YI6vW}l+*~p,hR¬ MF.6e)$X^4Wß:=fN6P4xge5VkW9(IMpr^N.dk.dk>OQ^4ԣqigD]u{3rq7_>4R~w{BKJ[g-mK]hV$$NUJڟw4?:L[(/4ƽV'B@v`7%eUa9ZNMm}qZis+.Vx&ITO+-;Vt-~+Q-h+XͨiQ#Hɾ$Fd # C|_;'>/oথx}o<ŪB8ad!Ada|dẹl҂/+Si,`...} PIr97$`=,wvbѱk 'G}P>x-|&}Iw,ۀh iNQ#<~4Qw{BKҬFYK[vRWi #qxO2'Dh,RN sIٴMk7x/+< ?bN5' KRNJN7i_T~kZ6-~3R~?ImL%dڂ?hR "o*F@ρW:Y>h2Z^[Ia%Xdd20TAw 5UeTOdw^MYz3[>1NZ?a$ukT4vg%hش+Ͼi<(?/KZO-E3_ش({qX䭆p+LP$n[ ~/~ᡟZXs_!|5­urrߥgk??ptp:z׷5hVչ9ow{l'h&ߍ1]ŖRΐwb[Hn~ #?c[POy-nGC)F.HD.g@#`Owmj-Z5̶1 ,.Ѻ[ H<+Ԯ彽g/$K3YIֿ/7'QRU(;5+a>tŹ(ݤd,-b\)f5#ez<48EF%Xs|k]kxUĕ!(% :ڞ"7#ҽk__ÿU⏀ #=Sljgm&dHH/܉(v ?^95i"W巳ig-OBX~FC^+}پZ[~bFP@m Ã_|%N߉>2amu ~4R2cODӾ?l*s ץXTMZ4]RUXJQ'e%8e{j|4o'/ Ueε^Ŧ34%v>b?J_ <jtkKo{jdI 8m9t?+WτSo.>v- Hb0$ssOk^1Xa&'ٷ5:^q>Ӌұ88ZaG웜jQ7U\d+~J.WRIkgbHFIEtz+CS5]k6NcѾC8=~triiTok]k[_K~džy7Jn[Jk]O%ĸ/,],ē5x}rhcU!NҳE.c[{$֔pj|?Do[I0 8Jko|!JkѨ9(֌.IQm~X8ش~⿀B' x=YJJ! ѩ)u*6d׻ݯ|h-j 6\jA7F2>wn9SR/_R.%˻`2I8_W迋VYpI/g%{i֚$#76yk} 1u͔q%즽oRH^ӅITjRq叽%tY ?fo://Wsyi7SL4.!D _lKm BA87O~< EZXUE%x3F@w) v\R_ u?{X&[&8v`PYT(>Y@.lEQo+ż 67c'Ꮳk5Ft#F%(ۚԃX|MSVw8;y_ kStRJ^aq\ɵ5iF\8bx?eMῈ«#"01VEM 3*>0EM9uV zmN]$:;tsXЮݡ]e> HѾQH8>//$ie,rI'Iֿt9.qKCх8ӧUišsRRFj iZ.rJw//8gFxS*PUƔ)ERU/eRJ>~~'|H*x4iWrJHH7CP[ӎA'|*~neq^]EIw {ot<6@25 rgWr ⺻IxNmIk~[z9xCPƄ*і>vN&7J*mN>oE?e?;_Y ƙbogDe #.A,.J r+ᯏ| /-wuUUӮ4IpI7F"Hduq`_t=>~hoյ۳_"¬]U#ؤ@38s\F]W>zx4&EwQrUQIBɸ{S .瘬 Ti:)F4ӕ8q.IU~%ghQvfլ4?8kd7bFY[K*R ~~ |_/g촴O \]u 8˴bU.F^FO $?SJ-OIwL;vxfUpx*R%¯*$}tW,$Z~g|7RjU\hF:|uܩMF哝DۋVK?o[x>iQkw ymr46@25 rgw4!;}5ϥG㯷~ zG7X[W0eV2vn@}MdW|?wPP㱱B4K:pZ.I{ӳV3K(feԣN4bG.0հueSOB1j?KNUa^n@}_TKAdC$Wjaߌ 5(Nuu*RQpQN2-g~~)ǀj2kSJQL##+,o0|u/QDo4HiKu],S@5fpKMs_ʄ*ޱ}h ̑N +T5l&*4y:3/8+|dg7oƇ9{[Fp>YF;egtKM=o{rDЬK˪cuG[P@w)ݕv~bx?eMῈ˪[X@CqrXĘS`wx^.sb.y^-gd>k ;_2 7zAϰF9axSNq2<+QR 85(+JiKFm`3GJ&ԕ7RJ*U^qB1q,FwMK\O?f[ KMu/{y4ٮzN}*<1 Dʉi`80~6~^z-/EI RBId`ENo&Pd 4Z[\]ϙ]csQk^&+_ u%yvNр:zJn 7qTt3WYԧ)~SpnVRW~ 6? FN1JU'Sr?mx]M٤vSಞ"/j]M{>4[ vچC$3HU4|97^h'O7l4 %H^6]$ 2G8kZ:C=yҲ ~mp{C^R<-G((rϓG*sUpWNQvo[D T8|R*\4sR5tjR;ٻI=OG'gom~(.`̞\uJ4%~|gs~7ScQ?6dUXn/gY.Tp'm BJ t*vuh9" 83}1΍eKNBU&[ӏNjk$f} G4BTkTN-ҒpuU&^NRա++#3=Jϊ ėZi-^Uf[Yʮ9sw67H Db!AGJ+xl-eJ:N뚔qigi'c1\K Z5׌ij3ST鶛VvvS! N\p|=l>wr\Xka,(Z851Eݔ?O4t庚Z[/"1oo 6RA T~kwZٖBY5kZ./eDw#I`6r>nIixL֖:XNqV.5ӭzqxF+vM]?~; sjpBRaoYeNAUqse?} i]$7qƚ=ޝ%\,vF;!:6i$VI60H֮i ״K & q2$T <k f e3yu/NKZJI3vu-̩ӯK_ѩjquoNQ/,5'oNˮ\A_|S>g$،!*DpΈA#$d[,|1}7&RUG$,0AI`ᖝjZiEWdPwlNA'G$24RWRC) /, QP-7m):qoNUj^ge+pa3\6e) R]8Iν[򫺜r&d??,xSgӢb؁tQԉ#p0˂w*W/ Ru9丙$]PAf$ U:&:ʲY/zj|OX|Vk:mSIԖ/*fI aݜ` {M-=OG,hr0pA;WcK8FoV%Y֦R%4iYG 1ʕd?g.ZUjN\8{5)n\x|ߴ|G4]7$MS7A :j&R$UびiZrq_'ӫ~ײ[h?|;.dp$O?-.waPYs#~oTy]jE֔4Mc"S!IKmG "RugWZkC#85;^nYn2hC5BRq:uVjuN5ԛZɾıO/ir:Ukj^r΢Oh\uGO^?~xgUKtՔ` I(M(!J8t xোg^Xk^%$wis,k9li%8Y>%ч Ӂȵ_;o^j(nI@tl0c уrGa]8_: ai⬡+8B#tNr-%$M߄Tp+K4tj:phŒe{ӒiG>Yi\?ZXˬi[ى"4]"KǎN~+b4/ZhWZO={28c0kieQ$¼/tWM imq&7Hphss(J6ks>q>;?i؃/>iq^ԡ$3i">?ddƙbo㉬AvV]XG%T9ofs,-|V+Q+;A1}M}a/ z{|>CkkfEXb f= =zW_ q<]9ԧMҴ!J89S'$^,]q?E/fv?R5NjtףMʓ9jN3I7s-?O?'~:4 Vk]WNҬkth$I q?0s{ 㖄֧j̎6YT`m 8U0*1ѡ( 5 FjiFpG bx_0[Rì68JsգR0j*0Q~ |a'iﳴ>wzwP!o"F%YTed}_ ߿?m_V|1/.d⽶#YB#PcP&K3 v;Axq* ׮tx|=s}q%o٥c 6Xc'h9f9̱Glʦ_ BwBRW+\iӊؿ>oW*jSq,$3Jp*R܍I?dg0!;}5 I#ڿ=?}?)c(eb~~H׍mm_m+<0!p:5bnN[|Oo~y[ൟ7uQ_AEPEPEPEP^A ^Ox#O~|kxQ&}֌5O6?Y݆ŵ ^5rsp2> /L}+|B5O=FP5ٝ0 2JNҧr^'*W R}jir*r*.EyZ-o/ . xX<")*u''M'8$Tc"%?hSUMt6{{eˤo)Xs?¾0g7<9NHŶҲrJKU{}? j:'+E·g۬]mv92sj4-'[xw-b}KQ/#6ְHLH\+>!~ F&lcL]F-8&Fd19%VWT|4>\M|MMxٮtLi%k3 aUU_Y主7f)bFӣ'OߍJ7oSr_2ω%ǹYejbܾH{%ƴk5B :KBf%7+A)J?5:<ry/n_G[ƻO6@Ҍ 7 tXkVg%omq"!HޣX|,3{A#_hW"B:.4y.wVElVPp.k?h3D_g5SeG{}k| - mmXH`d]ӒU~=~%}e1R':R:Y/ MM]Qjђ-ܾcv"ʄe*'yөRQRQxH*njա%K[_2dB}&=RYQ;D%⪍_nI Ē+~8~_ |_o|A;>BӞ i˜dɔ.X/nH+8yoxW?$?>hFC5(`l.ӻ_~^7w^ҿԿmo ]7zƭ/>g iq A#tVo>+uaӢ[;k.HUP!Tlפ|v|'GOnt-=.u$Df 2-/קxt`/l㆒iYI(xs7)j/nო%/uGgܢ|>g? =֥Դ ~l!P 1s}??k.Ԯ+|mC^;^ Jxh-Cmq$w F?p&.)r5)N*mF(F\RQqc!qCQV^ޒIUQ*n:jPUe+kw%/+iZ7|w\;kZjլ`X!Ph$ 1c_P <$PVfmc8/e"BT-2x=+߂u{ ?N7I~ᰨRܧ~ZP~ ?iDk{k <s\ b㐿ն>{)׫O)N988Jktԥ%|kŸN[e4x;n_~>!e0Pƌ'мng?l?_O~,~?~Y |  ^#[H-ΣrҬELRh0RȻqZK(xڧďk,ZuդylbfWqƥ1%`hPX]n'E WJTiT]E>VIko0>'rJO/ƶ%UVrSJ,j+޶?ŝm/=>@fKfPf_*HHBݰt_#u ;'_Si=ŻxNk;"mLM# rj^<}\xǏ_-jsYC2\#BcTWaw<)[r:-^!^Kxif{,+IA0)!l1Q9gv'b3m3SIRS(arTe )Ai6|SG^ G QaFJVUҝ<%^Z|T:2gl1W|ZEa|4-uj29h̑r2W_wߵS ^=G,'5}AfԠƧiAcݧ?i//OxՈӴ-_W.A$QtB(8BGs~ g#5ͷaju1g`Y_Yy#Wk쮕)rrk[$k;!AOrjsX`uTW7,G[EFҚb~Z?ioǚ}_HqnEPqF3(=|zy8zs(u*B%/K>;K {~ŨZܛ+Y&H6_n;~bUa|},C:O)W:QJT9ՌiEs_֏~).XH%(E)ї-j2V U:)*>u+BQRyBc~Ǿ#W bM,+[feLo,E!H)_ 4^ /7M> ޟiiseɔ.X/nH+8,ٗOixXo\ض(kPn1siw/^ !gtzM& 'XҾoytXr *Wp!q&0Du*MNIӬ䢩OٺMh+⿈,&8 teԥZSU,%ZՌRh;F*j2=`xFX?xPmͭ'lޡ{x&X6bA KY=i_ |WtĚt7I'S{;[2DEtqETm~}5a75/;ڋWssgogjC[})i☲Cfय़> ~|-}}Pkqi:=xͭr4v) mUcOQͧV%J.V:TQ2srqq%M(OxM\iSQgZ9Ќj5(ҥ%B4jabW¿*.A`[GxKHxf1B0 ~a`icӜg )ECO8(tNjEIF'~_5m7Ln$JrpK/'t_> ҡ-׿@Ʃ,vۂ:9Юe8JԪԄB=INJkANv|>a0ㅐq+U)C VB*8Jtm5R5SYc៎^.ᯈz(m&Im:M6n[`dx;Qa}7A$.bM 8I[{&dPLMr>lWXxOv~0\y%ĖvLbźlS!dR^6}?K8&S$498: W?ksWRNļwaIJN*57RRMa'',J75/dCLuY"мUi=cG2!tbK'۳eOwq>p̡9gR3m F4jkngNyoniZ[31xXkF9UIP/~8ߗV~~Gk"kZnrv6Vʗ^$%U4F7bĶy '2XK"=y )c˚"ɇ. N| %oi? !D[] 0bύ) [RUfڇH_Z {Ķ%_o^]E)|DH!,>_RYi}c[{KRNTbeOTҴ%;+~epT#b1Jw/lPq}Unya2NqbgGB/vjZ exG4nd7@Ӣ?)o F%Z͸(бAl'wU-? u,Z~\_Dhckv$^yRX+ @ -+% 'ոCxO uʻَ>LVKGںOR5"儕jiؚ?*3h*΋EAr.JmsOw~SR 5M_Gq]|PlKw I=s8ppYL>xķ-V5~Cj6Ҳ)Q/!nWA=s˴HŝؒO$&B9gK|CRrv8N5IʅuF0jH菟q:-]jiRiTRVyj>?k;# 9V4sP' $KϴoC:d~7|5$ڦq}~"FYO&Hx$ %p|"_g N^?(~fGjO?h+>[Vִ k^)Ӥi]*? ҩW%J*J~ոޝ9;+MiI&(EmfmNgP<ƝZnqN)4qQ˚sjֿd/?(-ω/4,[Sܫs8M|__?ƿnSVm1ktcb"u1GfpHl!oLLTSKI=%jTfS՛#ٝfUsZӊzN<0P(ͫ7O2ß)Oip̱ye X[qP9OLO1|/OGSԚ%ʽDcT>ćmGoahOChKy,MF4{Ql*a>_7O^#XڄK|JҬ4$bm$u@YFnr 4dcKq5&7ErSqOؿfװ弚j oK(99rt%)1J~Fkճye~ eC?hPY>(լY'ӭ_*ܙHE 6q|by|.~ŏ+_SZ6ɴ}Jtݞ(24eI, i~ 7jz{?C6>qGX+Vam+Cr$~X2pHY؎78]TF>ˑ9{URT SEF~q/Ĝhe9f.Z^ԄNN*8WMJ)NSa?y7?bK}_~$M5Ė~+ΊپV%J4dHBv MGxNkaOд׹pod :ے9 -~Ѿy>??j[klrɩ& "YT* '&>w< x 0i:Ɵ6{ϳչr *W.'l4S)G.teJ|n40nh.t猸91i9G뒩oԓtV*"&Rh=2>!xƏ/jhvSh+aDIEEOd0,_-s^%rjx%Jʐe)#-myA_/_wOYm:FG5Kž\`{L~?*<Ï_j^<?/ul"I[sK0;vγN=Wii*EPF[y)~䛗?*iD!μQbf<Y4eX9Q_R'.ʒq_ o!u- PE\%'ȍ2E lBnbTC/2~߳_> eC>>DŽu=rb5"3Ij2ܞ U?Ws%Iw-Z":+rCH6` 8c8y]֭7SƤ(NqM'F*7Į+_fZ{ߗBٽ?<{|`x>R77/~[+rK~]Oοx_ ៈ-*,QpʱeVݎ0{WoߵSW@ ^ԠƤ\A.si/>!|Z+vyjF54#E䐠t&s~ g#5ͷ2|IwSM/[m0̉ѕ,4? 8v>sXu]zfowG&Q AC<u׷rYZ1#8.Z0$w'oU}" Ogd# p9 H&Fo3O ψWN0*qO䪨svkSc? 0R{L_-gJ4N#t}ެsSB5v~}y/k5<9kp۰IdQVh$s+ Gh_79>[^n(7dc:m9B6Ӓ+I?uܚaj욄jU\+mJJ\1hT gϬjG$Ȏ%*bp:~ %B}Y\jSw~@56y_,I#zg$]<VӵKVP4R< ͐\Tp0>+*8x6҅9{Nh}WVir%t>R1qኹ{)IU;PQ4ZSkK>L/~КʹI\Z,<$r7D$sq^þmwOxB뺍XXK3ۢ@f6]y;sy<緍c5{JVM%%-98I)$K5Wr(ޞ*9Y45sIJ3IBJI9E@f6⿡CwsE|2ſ\Sm_HmUtmЏ2Km>]*ao2< aP_@ݷ=i(pxy8iCIԌ[W49ᯍN&1N_476)j┢Ns'j1'E[csp}l ̛_tQ3)_b­+[|}~fuq G햭g}q280"%ʬ2Tk)e8mrq/;j77K+;}K%IJ#*oG?կʖ^hojeo jӬҬ [[m\[.0ϼmc>/Y/,m"$Xax<| ٣??f_ t ]x#Zlwq,Q\#tݕwo,w73aZ(tkRӓwiu}4bݬʖ] _PGjbkю_>iBӽ>gSVS0u.fg2aT:u0OTj֕Ir6j|u[WᏋ~ |Eվ(YĨhoׂ0Ay=+?i_š?s1Ds*(~aqn; ~6)c '0*Y&EڊȌWR85kie2ZTIBW(y;4kisW/s>"Tpt1cS)FN~]4o__ (ڧn. NQ|%u1'|N_?>%߶jβ]]2G5;"TE**pu$i~;~8z? C: /bP<9RHgv?g'_?i W2mI-!ċPEp"{arʑtcJJ %iB6$pJL,  & xxQޞ"YВj9hN2iӶ4pk~9)9s|Kãf`U>W^@6^_վ, ][Ovo ep ;Cs^&xq$u%MZSV3n.KmS3x|9W1iJ*QEh8.V)-c[Jڟ)??|3Ǐ.]B/&൷yѼC̎8u/+{i0k/!~5ҭ<5|W‘RpB[{qs1 ؿ? ^Xio:Y:ȋix,q1l=<1FNx?s8J3nQ{}4,oeq*j`TҦ'MFnRK޳H{=|N;v[:mGIhIH!˪PD8ny3~:oN氳SmVW2ݕ F?6Soǟe?d7q,}ՅbC!@+eˏ;4b5p ׄq3NpYғ?2>d)]+X)/s<7U4ቩNWR*2:mRw(+ mxkZׄ2?/guYcaĥ٘UP9f dԀ|&?#Gំ 45MVKf0Ds"# do$/uW<=Qtˉ-RJ JvF8#;@bT=&xGI/nw6{$wХʹjŒQx?ng0QEՌgSNQ ){Os[V״_ yuҕ8o-Rx>rkv?icD 6ͤ -`yFQq#vm$VOzwEWhdzRغ 1*ƍ!r)QLTZҏ)qkN(rSm]}3 ;˪TƊ=!JR.Ks8ӝF>8~*x Ꮞ|{ywy064]9&dqé|8$0 _#IGc_ߴw?­;{NK=T$^E.č|=cşcυ~ =YM٧Fj~9}*8o2̣'YSS+8FW5EFϛEsXU R3M.nb(vIf'k?)w kxk~Fsoc \E], %8\(y]' :i7/~-lmPyY%%np] ;G9˸xz}){Jjax{OSW޶3C8FexyOQXn1.VܔSW޶xC⇆/C#ĚS+X謳lU1E$C8/|$v֌qH2FS :5|;?>6|7$(GL$*9V Gp?koߋ>izg#j=nQJVFU~}"ZT/j\3QEWoSGhkSkf-`+jljJW=czµWjzYF[%+A3G[v |-iگu/jQėhbU8V7e< g/7sC5Ȯ)1󼪂ē7=e\IpTpSjM*sPd ZqSI:G(2N1q]JI3diTc'*o5(>di|RaD|aۭjS<;}[=\/͙V'db|A⾛?~՟?i<Ӿxkfh͋k;a-9L//9EJ'QrUI4by[{Q+(2ԜSUrrS&N4bӒ\1j#i ,>'X-5 Ry0RUh;_SC#IaרPk ᫏~ Жeno0B P#9ݎd0x ҧ:cOQBRU+/]j2JI~}/ej|MQR0GJIӭYS#YI[HQTxnbp+AwmpwLC(33?u$lJf@f[~,WJVjzy~< rIm噚"~Pkx<?~tӦ*8.i)+Ik꒹DKuZF5:Ԩ:򦔦ENIA/hoZV[hA2NTw#<Y5+t|6 =X>Vm$#겡.Ŷq_iw5#ҴH|9^67ެ0\e \5 vLGRQ~Fr+Yա8(EB#9rʣz9F2z|\yY^uVT!tԡ ˖u[vHWCD_k\7wj)4!3,I2gl8P>b3?d^_?^t95=cWK\Ey63b I C+W~|# MuJQkdž;1T1زI?5Ǿ8asl8ʰx9Uj^XЗaR(ۙ7\q_KMѫ^KBp O͸拊nsƿ2߬\kZ,1HHjňX.͌'\֮R\% :Tp RQJ$ItH C N4)F1J11Z$$ҿǿeLWa+FDΑij9’DŇ_9M'NdYg?ujړ'Td̀e_(+{18]g5$F1/{*j\Z.J P+: Ԅ!9ԟ} g78rwoo, VX[Dq)gvf!UTK3Ԍ{ҿ' f(?d 6o;=~ye{lmhIwR99lVv:2|5+:w2XlTSJpƾH~Z#Ooís(Gt %ͤv .˻rd0\Y//SUIjsR(Ů{Jٜ5L}:u&+RVZ1?4{FqrqI)^`J<\fNkWOi,L0®HO2y8 nmT_~1|>NޕVlFLv`h6`X@/vx'+ sxR᥵";ƨG 9?ſ ?e7coLP}Y3FNDNb>Y?̸sY̩¦֫^zT]nw'%Yr-géX,RuGmrG)YW"sZT~^*g^E{Hާj֦J0KLr~kB5T%M+_Z=jt__7ط?bio^N|KxQ$EsS)W!Xl`ݖb_e7/V~?k:T-r$8Kǵu|. ğbҫ&,ThaOm;VhqqU9\vfw Ƭ.OagWIʪ0rrVK ߋ_55y-ͮ(f22&9(;r16oď_zڮL]\6$P~//LJwGG5ִ42ͪRV2Zܣ()WIZ7Nߓ^''xGhmn$Nj..-tdiKW9D|9Ǹψ/{7|gյJ٬4ʲ6vM$rsg+> Kş~xO.~+58'WCn$Cg$6|9;K.?L;xyoN ^Ҥ:j|JMY+:I\7ae,U|?-S?g:*gUVPJs_x*?hMsᮓ}aG/7H' K,/0 RXF ,|K|-|J[SUz懤wekwfaĖBJUA~UvlY)8prmǛ\ꟴjn\7^܎K7t߹J܏68zRnPS״?k(n|7J%4Wg/߈!}VCPaD731($ [ϿI'\H¾NidY1 ;~2@>hMx^4K 47Ϙ#];HRj_o # VL4­#9$,#\ϚPPr?3Oe{,U Stoi67;A'mSGy_[T:77Ϊ:7t%QڔSR?t/k,IO;i8xqVqZ~7ߌ~$>>Ԯ5}cR͹s$6*¿~BKu Zb?#ٓo*7ɟ-foڇ?ׁ|+NE:i#vl 3CͰGkT&59NMspN)ri2x_`?Sk)7KTt?qU!yjP\fƌ%Fl—oQ@y<F@m~WkWic(%.:Qi%~#w|m`~ZJQ lxEfRGI R̷x־/>5-H^o8GNŷ8_;y6_'?+_q&qidM5t>W{'Ͳv{oa;^p-N-N.2⤜dqC?gڢo~r e#ZU2dlW{Cڭ X"u:ƭ-pZƷcZDѼ?]Vጺ|6Iu\n/ qGg_>" ,K]c?Jo潒(BV%b^c\ 'I'&_wo~%m#C ]4Y:tl8P34<yTAJ5VJ8SniRVrj ]rVxZĺ4VZfirQ`v`dr*[pT|2>-SO/d$u +KxGRa #Yxy5E[;GHϙpSecmq98w/.xZ9j5Ҍ%MSSUyJnId->3~ xo<}.ttӯ(Atm$ 냂<~)[JBZm:S:yOyk2>ψXD; in] ,Jfm5+y.mA<)$ew UgAPj5Z>iS܉/h5ҕgeOA0pEeN܊*%QǚKs??n/$GPbMQyHҤvmsF1?1J Gïj!eƱK6@.M o:> R .%*HH՛^GxiQ F}5LMJJp0Zb{-w\CPj|%ؼ%3BcBvy%!K;q1Q͗o ktxi=GC-YHH 2{_?Scq,Q<3FHe8 :ǯxsr,[ ;+]Iۓmɶm6zp^KO&)Ԕ۔rsrrnM۹IRXj^$4ziOQ{Xw ݔ(r#2} | _hM_tO!?i<]1'⏏toxoU֭mdXYsmvDzӃ 0~QRU'QTTEEԓ8)N4nO)3|0 f9lԬgATUgwJJ)n2wLkgψ @ؼuOk5d-hG$d]'S9wFXثXAzRY^wt/qqpQFUFIbN_ 8-L5f&n2qv}٦4~ex|~ڧ8e(;>pq_iFI?L.~_NeoZ>$ uf rc0Gm*0/mWm^7ƚ[i& P<} "؅ػIjvob_xwS#ZMl™QsǥY;1ú JjRZLq9O,'q> n#Nd{z8)TyBMe݋;x}RT9o*MU*p,+8+%c?Q>.G4nV ,J4"9(?l3o{I>EzQͲ.#bqAPۼl% !֍q:y\,e088Ae/ ƞ7%zNj_"㷉_(JƁ g]2̳LN[Z*0E)VeEE% ~4+%%s\q+ҩЧNg,D!: TTܯ(ӭj_<$ښSZOéYjpk:==\,pC&]96e1P M_ ,~5Ο-k_I U eRśΟǀ~|]|A7t峂[%f6p}M|Aީ.jIg3Yk8O/ px5l.*-J؅9ISjTqmx!YUq^t-%[F|T9SoN)iF)_ӿ?e/wƟoAu]iϛM8kC|ů귚}?%#44b|_)N ҙ&~ɾ;|~<#KH.gSYSmsZVܸBϠ?}YCs.m/zqpu$e )+9{mx%ewW c2|tyeMJIJ6regjWM.G\ ÿWKi>` y%ۏ3vv⮵aokeínZ5bn~8+#K^Kk縚iô1V`t_G J_ωPQAl ug$"S*r) ʯ\XK:zS<%HwSS|$:wZ$Ih?.Ο}$Eݔ(r#2} xo)1kcϲS?}I$V>̻]5e_j> >۩Q#l̏;w d`b =䌕ea ^&U? a)R$g*db$SP*¬w?jFtpSVqNUpt)4 K?,>c$;.,ۻ82zψ/'M?:Nߵi1]ün_2#}'%= xrC$3ͩo,!HaRkJۗYx9W^:u;]\o/kyY6(gp6}Ep`%qQնސV_n/}Vvi(7&i+t_ƏۻωǛˣXkZ=~X" FJ%~&:wwڤC&Ao3oRgv217Bus QЦRGj(8,UR|x5F7:^T՚T"RV(kFɻ~QKa])P֨(7N2Y8:pQk֍iw!|'ÿcxi:63٠ \EK 6HUbž |Jx~|mmQ"Hqbff'{;<bjQ^T驨Ttd{؟-L=2N/~՟_3ݼzdIG+ / xN]7WӚdFbTH $Tʻmoh~&𶁩jzmswkk4BqHU~b8G9$2EV.(.y+YOI5$Z5ҳ^p> b)`J% U[f{ [,"X|Pn^1#POk?,I7-O P|*%y5Y~[KcR?5-UΗYU9QmF%g/2/l?;UN՚n)ԭ:ӥR8֕*Ŀ(//sxc⇍+|O5m^x4!LEgK;V|}}#/Ce󠷇Gُ)3.Zk;/S4Py?1ڛۅFOl<"/9C˴%hǁ a *~*VZѨ'N SSpQ~JNP pte/rqW t`QEBQ-RRwBK:_ }3DdՒ(x6i##~?dxf~V~~M4o>5\G$_c[)BLdFN w犐K uͭbUe! tFx8?´%B4BtV|ӂ#)&;aԱөFqu1Z\8ӌcg~VϦ?iϊ?+_i5[QP7_zBGP?3ƕ]},ak'C $*ٰ2B˽jy/S4Py?1ڛۅFO%˰v8*n0ߜ-^)=DX, RN=ITE)Ԕ۽4KK#o?Ⱦ*ǦZieOڳU+yT8ݟS_b1|_L|KZci.a UX,%)K\Ec_x9P6SnKJ<ܚyǟljh>;/C >YҥZxnod`K H& E9P0x \dSiS)U9OJ.'.~G$2O[x,*k Jhѕn~BU˚,s~<ퟪ~#ѭus^~a&! Ad)"F095)2O։wxD}vr#cxi TzEĶ7iαMt97 U`NMOs_Yzm_ڪe_a'W963qԪNp0VtT%(?J+~5OهG?xoY+d[ieI %S(ثym3'ShYx"Gt wgYY6&w ? ?r[At'R.k5W Uw3+TYprU9srnf'8,g%uR8({)*ѹArs[g6xS>^ޜnȌ)]H!Ԩ5noš7~k ^/m;} ui٧^[ 4z@Q,+Y W,FL|1a.z5*CރҌҍHrFRK~%'lf#5R#j\}HcVQy[O:+$zƭ/^6~.-h1ė :7þ?G(byv>JDOwj?t㟔謲w6t6ܩNSrm9Mf1>#0a9m*R=FܨNu)ɷ7y)Ԝܛ1o_Ꮜd?7 3^ĈSϸV2F#7C&YAv0 pl*S&)Rܤ3vWz%d$~#ɨԡMFQRRNRiɻ&ޑV)~پ =߳_/<⋔.^5@%T Flڧ>=Fv= gռу X$W$}YĬ:+[8zm+|Ҋr) EEIFw^p3"ÿOnӂ9N^NpJz|i>]y:?m/Vգe5-kq ~jDW͒iQ#~מ<σoOehcth16&wc#?4W[(ᾨʒRVV')V嵣d'ӄ(>ҕ?d%*j2p:qtʢ-&ۧ~l_{.:|f*Asm,U@m<ŋyOYd B>+i}شF]d,YbNy*+\? )T>InOkW٧#V Ԋ劾f ~z.):RngJ2Uc^{NJwE^|-MW_0Yi^n,.l | G|1r=f g={Hf εw-*M24;~k]Dž|?fe,D壦^뜺ku{ޞ} y>$t9Fwӥݔ}ytNkߣ?m/:o~̿5ލjqoOMn%P$9* M^Z[x:8ͶeOi%9!Ee%8m˅WcIxITkIjB.MIJэDRRvrMוxo U9*Ў"n N"r7= 1U9#6Ӓm&R<ujo|@{ICk2U8b%Wf񟃼5|6-هۯ a}cF~i 1xQ]YWy>_]SQR'"r};2o +iժ{?f*"Qݓ7~Z~'|8@P[Uд k }2$]E]H d~zB }pᕔ~XQE{r Гi+]mWvVW{GP| a1V{+eweewks̿> !w?^uŭ䶿3ir=VA(hy%XkTm7|@~DoItt1?`qoB7}ӎ~O-lmL}JrQiSԧ?gȤ"QV*fu(N:^ֲKSjk9('%JS@_Gm_:іf_+,< 1)@w) g/j İ5춋 !)C 27d8|\1Zs(Jc59T^*j5-9I4ҿ-l/.?p O0R)Ŧ+VfQ{X5yg94|EQ_Q@Q@Q@mz,~qvEv?r?&'_Q~џg%íC-V뚕^,i$ۭԮ,;Oa8?vƏ:#யyn&a_*i4 [qvᜁiVIh~?jj3Yb+m- 2U\4@ WUE|iKgɧSh7KcHe6/ͣyFQ.;/]IXvژ(-*VhR.xdOBJ^uCx~%|V֥a XR4b$AV0r? ʅJV%TcpT鴦F A;?E*L X.zSJ%N4)K٨Te8ڣOm~iPKCGl:ljt8Y#mmq$vC1VP\$y _ gf6ƾ/}hw!UӴG!؅bXIv%#vU*x~:񜗶V׶vPOśU&ގ5ꚧԖaVrZX4g@d.x8̏aʅ' VTYˑ 哜iIw.,=g 9O7>GxE\u*Z?ok_jGTѴ*goIB*Il f~_5JW_ 9l^'ǖیt_| ho٤DMd[\C!v\,jF28po#mfH^oPт8apÈD  A_jQ0k ASƩ8M/~.TFPirƤU%Q|Z$cF`:uJc )(BU(oPRY|^Ww_N[xwK-mQ`FIv@;T?go?i`:V{!R!M}k*z ./D^Zv^ {+x`3*ȤPڸ??j5i>4|rǀs( q_xs;:1Oh[{8QR>ek%ʑ+ٖXx¯JnN2*Pq =یsϙYR?K |RyY?xZlבB]֫4cb*U9_>o_> k\i kb`HcX4ѸMť- |B/Zgω?-C>^կԮ|OuUY u?7ot1epn]-D'XSpYM|zyv ѥN4Gy)xKtg4O14r"-׍PQƤ\)J); {Q> H JZ[eFOyw!prx}7>|(ux#mFxG[[hҍFLv8!+|HQ[cx'NW̆ex!'cܹ` w?WÏ"|Y/A% gtvkmZ^ VNi4y +V]^m9:pJQtAE>e6dvF|L\bq1Je'Jr8ʅX(fT\ܪT>i; we5QG梦QM%+$B1bRo3?o&/+kU.e%b(!d/9 aς^:2AbiKur^L +#%2#fx?>ɢ\Jӛ+[kWgSpHz)ݏ=3Iim>Y# #$9M+^'?7zdu aߵUgU:3Vj~GReNI'=o/&_ǪZmB%XIGQ Ko {gG?gڏH=Xkϴh9!dkNF#,FN~"<_xu-R[N^is$1I>3o_!R^ O:Rcz2L68Ac8bMZ1Ei7N r8N}-ʾ˵+FcvaRJn$9]c'N-քUִ?z:me/pFw9?xk~;wǷjzƩ/uu.7' ? 1.IEkmu,o.)0 F8 |m|Eؾuy|P$ \*pKs 5ӯ>x:TW8rIGGv/ #qk8!T)EҔ%hJwUZn_m;xGQKr16 ^_i`B.%2(h!d#rrwߏ9 e,þ_~33Zе;#۲x8w"Gʁ~/#|+էuL70c 0++GF2:a7T?Yj ;u.ģ[Ȳ4,2hEuld?<,2TjSJU)98Փ戴SRL?fqxjiNmڼ B$o_]F}Qk,@t@JqnJ)_~ٿׅ3vA<L|&آ40B_ઞ/u;/e@g;itVȐM Sӂ~M_,, CVSjN$WժAR*rѢq^3Ĺ>#/Vs|Ϊ)3rW Ya^.0Ɖzðck(bj+\\q9UYy%c_~ |}^.cK kvRkMgHtz?j?ڛ1% %Y d% $WkC?j}cN׾5jw:T/EmTDN99801V+a(᪹7v誗jSOif(c\2gᧁ+9J\uU6J5!WZJSI;^gDҼ]/2i˕Y-9x %H ?n_axY4Yiz rM5-*D"%1ҠͿߵ/8/Vk*7"19)\1#੟Gi|V CcKyͻ DgbW#fC-~c:C/a1ӝ ',7e?uT]jFQvL6*`p*ujM哦㉍h8ʚj6K%#şVn/4/ j)4jkM d9< #Go6> Xk7KҵMLi8dil0yIoƟًsx=?g\S<[l)nG r#&e?hh j |xb5!`[mG1(R2 _Q^ b08Nog^PmY)] iGlne%(P_1^֔TOަ5J2FnikFdG>. K,<9!ua~`)#)?/?)r;I#wv9ff9$rI9h#n̚-inu-GU{FYd'ʑ4|ᘩc}^Oۃqy~76狌AJ2'&oƨ)GVIue$u q^O> ?%RcyȦ97)ULNafX bFg irU8rSSvH|P7c3L8ex|2X< JN}>.hWS*TSgd[5m{PN]J4qNp:۝?;juGYkngzw _E XT{jRmœ\aXX^nЊӫkO;GF:ѣESBT")r"캿'i__jCUt&g/oIB6mI\տ?3~3}ҼA:xMTm>nC)@2P(9\[ q|$$ZǗȍRwQJb7( ?ſ (tj1͸\D# .VL,E[x:T)p®&~oEԣ({.^VKJRoY[0R}Z2'iPtJ8Nr_qF7mL?~(|RQJǨx>ͪ%$/t% q̕E2QqN>,~^7s7A7]tWA6Iq K#P6BIz+3^x7Bm6֘ am:0089Kh>lt+[[K+{qq$n#Ha*'?mgeusqxc A ̎!֢=C|;_I #,J9^J=MpӃiwg(]I~V3,cpETgQ:ZVTViӓN.P廳6ԏo/>k3gxQMZ6[M|vHkث❗O(eƅOXo>U[,*xgTùh/ړ^]럵/FwcQ< l ,#D&K.Yz|z?hoZA/k{y#r$"8bУ$||C6X8jWwj*SfUn1qqM9$=q̪epOVj4Q(QԥԃrID~ h¿Z%\\hZUA l襴7I\vY#c? >+x:լDqgad2`$:;v1?i|yZNCkƎ kH{nNcUܫlnَ6|uh'o#yN ~AB/R\EEUִTJ<)ar4'ũ8khc*⪪SF5j.5)JxZ):\fKw \N,~>8s7w[4 _ ks=$.Ȓn3l}w[| ??ݱЯ$In-,đȍ#yl%oW٫ZϝLn,Q & :E-dd :ѥN>һH45P'(ȣfۗ3g~c\#GJ*%ԫWBIa=nNRm|EWPQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE]+X#~N&~\uȹnkck܂ i4FT?ƥMDxlԣ='8:sՂIUSL˜qHwebbt6Ye<:k/ >M遜|b_NNJ\mK U(E?ge9(&$I]Yiw},!DŽU`0Qĥ:p]_eoi8ӋOԿ8寧rU ZksL$lTdjpk~;~׋Χ7,M*WMh> ܱcᯍ,5? |A %>[ٞ@"Kx rISae(1Nsn<:~єekSvn-'ݘQΔ:PjsU-oNҩ9SmE~z7ީb;;(i`)ffcI$Kޗg6x#_FYe.#Dff1I33Pj5F-v.~ә<4 MXe)%KsNj Wpku+Cqo\z2:FU&a |_(|yִ]#ish-s̓ ;Ʊ1$JUU}sJJJ1K|Gx8 6qZ>iB1Pw6j~h԰5on$0UU18$w$hڢjn MK}yc{Kg̱++,9A"sw?xQk<3Vd#d7$22y2SکPTbQ'AQqgUHpe*5a^e:5aJ2p۩(KVl~f'|s`fODnیqt6Hon/me @y#Fd7_?|W>|CIkz̷Wrh0*" 03re?.ŗk'#kaS]%plLI c'h 5j}ab(':u\[\>o %p3nF<+e9R%>e\sن 6iC6MgŚǍu#-r٥ږf݉/)1Lu;3[I-s̓yqĥvny~(akq' t:P&b''+Mϲm80`YBj/y86j? ʵ A޾g:<3χ{YҞhU Ңpy~x /j?G>{_A}FKUOmY٤T_*HHBݰtU^15XRTo.m2cNrj1n#>1b).hSF(U*J JTz];TLHٓ"~7x÷zgyaE.f۩sqy8@;US?&/Gj<HH)bn\P~<M|iMUt6橯fo;ͤKw<hr~50 +@?(-ω/4,[Sܫs8M| +[8pbNm$F}Ϻ18Zu! ^ʤ%NZuNϣZ>ru ~;|'gSK=ŻxNk;"mLM# rj>73/_ V ,TV6C,vR+I QK[YQ %Sτ@JhFRJƣjCV|]o،>^*mӨNRjsu!(rIkd-t}Zi4fHp (88O߱g)F,,k-7i4^tV*Tg$f>KG'4#kaS%p6^&frN1&3YbJt:ua FTԜek9rFN*i1Jsɣet*BJ5QQF5#'M ]Vd~6SWе\g=̡wLTdc_?GO~:xxOL~${t'?ʅ*BG$߁o_U3IrKOZ!"NR}4vJniӞ*ԨE)'qrKq]4v'tFY""YxT]~ "J: bONo_/~8 Ki~tREx̛S; S!sOOu׌,?M981n#M7g%4{wqL*)S*=:ucI|Jy<[WT>?|{7b]O^XmĂ5,@8P[,q_b1NUjF)-?uc)a^J0mI]_Vj|r↓`[1nnO1Ϸ*<{`e?;wƗ vs&2G(}D!7q*i"jx9㩺彨Կ,ԥ ۗdjʹS/Ru8^*ߖe(T'.Y;]ū_CV\M"[BjaA8{W꿄%#as}awp$ oohXI9} 4~5x+U7KyZ|sjf\0;G?!2&]展cOWU]^W'o4rqҿ!8&^Ÿ?4iT[tU[2t[}T~'<Wn?e?>%4]a4M^ZȊ5*B:*deoK8.I8J3(Y$ѧw&xMrNT9qq&N5O2ß)Oip̱ye X[qPX9P.[SnQ]}-x"N*{NJnN.[S&6nw?%/CTվ &z[DcGpcgÕd5~QĊ'Ȣڔ%;M)%xϖ\ɟFg&6 n5tnQ+_kt3R/SM-亸;" `p 8U9!JHuWoC&Pi(猡vO,IwopZ%<$?sKJ_ apj5Mli6__Gɇ y l0\<& 2aqkNmOg{.[J)Gxɷ.h|Ƭ]fx{:8,<+mNIԿ* IC8EkgCYAx_{Ě\RBn@DD;BD5z0 ʹ8铌Ͱq8% zI;>hϼ3gts<-:Jr-:&WoQxhO<5"V6"Y*" 85K0vSO-ވIeqZκogSgK>M^J߻1y%,7i_eSwGKN^_S.^ xq>xR^-$(%׳I-ߡxw>5Ox:_Z䷆X/ F0#'My?' `T8i7NvN0{4MM},8//ckNnMҩe(T;PY&iDm?fI?iGڏtYMWV3dEdqCHGVʿ.[.C2xy0jKN(J2VmJ2I~9a'$Nq S'7Bi4f  OS>wz lBۆi!I@?_GwGB֩c:h]Ž[Q#p ~ߵ f^x6Fmc]5K ӼZ9H@ >neG%ezsp敹dwm-7Bpbg4jTtc>W5wE6-+[N_&~#yN6iM3BmCC]iݠx޻\#!$Rx -jS1|'_|Yl_Q#di9ʒ=l%]eሤ*nu^'4._r)TrzZIsT7:t*ޒ._>қrzr,)_?f{Q÷zi{ wl72hK.r B{pwȭs |Q7χP˪Ch$̙7; p͍>7ǮUQpY'Jm{EN\Vjzғpuq1*SjTjӫ<\S~i4?#()=|OkeC:D< qn"6 \}F|7,N߁_~^׼Y>[*ʶSV:J*.Rl[~OSp.N)4=)F0wW[+~v?ռUi6qZJIL^Q̛rI$x&#ᏂMN_5ψ0whZkam8S y2Kg[eVu'N1U)U9N~6/-~QB*)Ƥ7NUpJ 4ܪ[JmIZtWٟ㟈x+c04SF&IBH'k>Xe?x LX]A!IiAb\n'2Y?r*7x5̚Vj+?sa}EJ~UIJ-$2j+ҵϒ}{ ~%G&Sּ74 kݯ6Ä24d+/;edFk|Ed uh/Dqy<6*:39HQ<|6^ R8ʜ(*n JQj .ḬINRpTHN8*r)EWME7?}Yl.AS*?^ŭ C3 99矄g}㟄~<yISQJQ% [V&Os7 ^׍Y{ISR)TISN6%o+EW|0=>5{/ _xC|Z$6 }pU<*K a-j?ĭPҬWigOBN3H)^]wb:*IMrOJN1q8o,+xgJ-{9)֜<8J6e>Bk?]uokMz7ңjl4Tls&ܒA;$s_zxG0Q:|m87tI7_|T{xCrjyg8Z%*Nb+IKTQE~~QEQEXaW%l3]mܠ%._Gc'&X&{lt-B_칂)đ+%a”ob -|m5MGNAi_\M~̟5|X~ x*O)n;}Q drvNFHSbrL.oS9aRW E%79JvRYv7~'?ԞJs{:ϖ1ITJJ(F6wm+UԴV\k{)x%OFWZG.yw͖2[)T@H#ċ?m,R)dHeId$B *P{Wkd{J>X[qեf[OGC1;$j7x62<+8.Q~QBȚ3~(fcsilZKRI7c 5|Qk^CiZ}m$Ҥ1bxSמ+Ll#`1YNogAԧՕ'8'oh'pH`< Yn3<:I`UiFiЩRtH8)[>4\bpqW0xca| ?|4}Lez\3Mж fp߻P5>.|~)߮k466wDD h?¸R AKW xs֭O OfFy#4@Q'#{WYXaeo4_@%V2І2op<V̜ibqs^IFp§\J30jÅ f)5E{,J:& }WG_gٸԼZ!IӮ4 xm0ɺ"bHZ_xÿw-?߱řޤPpl~C7LV&_kJ2]SSQH+^T87dec3Lt]wK[Nc+eN@c_>;{E.51%4/9۵KevgÞ%ּ#+xrskiw1]̠1hI L㟌~:~%H:urfFDXQaT+8>cSx96ԥRT 'MҌ(x跃ͳo5}^Fu=JrZn*Rv?z~|"ףը|=0k,RmJF\ b9xqdFD81Ԗ~>#k:_[iw6\  (x.3뚼ȱڡ#L8V8NU]śbO 3a?VciMJ^uSRI-9Sni'hÏ,XL17% S:qje*n|{E~| oeu N=}"u~Qy% Ρ\*$Ʀc 04UYIӎVV(Sڗ/4o<O/߭ ZU'e6J \УN4RMo?bS7ߍM] XGo*2HN+ ~~>%x]N-gO!F"O:J&%ڱnv k>?0c MJR'JJ*5uRjOiGC|%3zxʴgR5JQ=k Tԣi>5{o^8\[},Fc%F9!(*^_ <<^ܓPѧB+coœe/)M26#M”!NB)omM^Al5kK3Ag1\JN1+^yc_RuW '#=yMj[2,L a濛m'= J՞ w8q͎d(e\yi¸Sd+`1rziMɪQ+*ܔW<խ VU6I97ƿDx3|8jסRSqS7gA*VЕuQ(Vro9x<Dž5P]%5uornX `O>2~9o_mJVpe}mamxMdQ7ːG8}6pgW֝+ST*RR+T3MF*O (pNUPҤ침S$(䢓2|k?ɿlׂ[vQ,sb@Vilb<ݐ2Z2:TOOS _qp<&6yugN99r:JьRY9Zۖ1;T\uRZTiNR\ʋ;BJRudkGnX-mh/ZOޞ?/fEΙ8W-؃RPbN |[[ߋ5Ox^Z? GuiY1dpKc^7i[xOOxS@񿋴+16<(Ush,b`A\k<8\=|\*t㇛nQU(>^W(Ϊ\כ[;?D^08LF>|Ԩ~ɮcW$e(Qus曍W|ehX> |yOk ll,m /NH$K9Fe$'`U/֡|MNrJ HB%P$_jPYPHo}zֿZЯ-%Co67u;%A _ECUʱUIRJEU;ppxXRI%30FTȱYЭBPiV(SU/RQ7>~5y L.YٳH%>T2*x69汾No)h[xsU ],{ ^?xO~8lkr.rkq+<G *.wi[M=twGNҔ)IJt6z/l.- ~՚Wl2S,fV2$7Y>";hέ)[;w6K ż[:Є-ϋbؗASgwMNQ.[$Y1)wYs~(:s3_\˦ZZ' .THЫ">> H&u|G2Cs#D6AL_Սw:垚[{o* hB +hGp @ckb,N R9VZd#E'F4qLloЮT<Mټԧ_s֫Y'Nu^X$9ſ~ <_[ߋuO ^Z? ǡuiY1d(6x`x7)yNnqQznN#0Rv>Ie ۨ.]* |A3]LHI${FF ߷x O|0[]U UU+Қw^}l|7K eU2xcNS TU#m|uڭtY_GGsw/z<:<9t>w ŤG͕ oCZVWīKo kvi3Ifo#K_r\n+ZOݡ(rJju"c%k)}3bq?TOs 8{9MUxwVeq@'#0 7Ҿ uLMJ ^+I86VKKAow{GprzʸiIMWZ\;JQZmNd$H~:x_mGNԬ_N#WFx6~u'iSЭGT9J 9{˳_I֭ BQ.4T);Ɯc(NSӗ+|n)T:&kd[˛m?t!K( |~oikF֬oo`ۼ $&T1r2_Y<2ZsRkN)ɴNR%}GXժ5':mTR瓫)NۊR){$މ$Ge s?/ZOkv=>X̫&bF "lXcyRFE` yE|~ 8NU9̩.e *ti>fz,ib*eh҃Thrƕ*jnMs=[o x&[,:Tq!91#BHHտिm+/[ZMdž5-m, حYDW+(tw7WGܣ=fYYBPJlSU%k^19K^]<)d%߶jβ]]2G5;"TE**|40a d*4SJN`MI%RP>PNZu8aNq5M•(浥g?w~|uzWý.]ferjW{ 4G2EpdFG|Jg]G6z6m3w,6+xŴ˱Xt$Wyћ%=I:nIH%9J\?CNZ\G)%x7*s~֚NU%)87&G_~|_OGbt 'OŹ:mb #J0s_fxam>*T,8ﯭo:)Qc_Z+ܷ5ϩN3K*j7mJ1TSӔg\QO P,U.W,<ҥ*:8BqJ2 .S'|Wۭ>΋][,)Ugs(/:< SQUZjQ5MsHΌ'6x(Y+kDܟ.*+RSi:Ҝ1BQ$UIE6?ǚoď*<]} Mv֣.R+x&./-U*O9h~31lž0 uy ݘLc3_,ʬ~@< FaX,V@r~٪w\I$bTS68.pJҊJ2\PJJQMih~|fbٮOs ;^Wk׷vvoiomk]rdf(KmP OCߵ>{iZ4zU7Hw3@H`K_eN?߁)ξ:=ײR{+ůe4#dn32exiWbj^J/b%g>To_?Q~$~?<_/f6jVZuƧ+Nߌ |G Ck⡧\"6X5Y6eH\##h%3_ϝz➅U tEef22<\)2 wςҫS,N^i'St:w)sSIFr;s'̥VKTbbga*NJW)G Q*\&~x~|jO_#Uo1xR2[Hw*BCH"Y%C0 *?-YG[ 7P߉uOZkKuiԬL~8Զf$ tx.bmt<`wepjQJ75&i߱_+aaNSt8ijqMՕ8]JMo$>!'j?5/:T67&be[{km O¾J8֙akB4Q)X.p!%Ѣ2%KF조v1]WKYx%S\:HuEDBj*\9˸Ug,5j7?4a:nz3̹ȓey]͹?8aKӧ9NWYƥ^uN)ӌw;7) ^Mq;Z+ Y)du#pBJc8U߳k_5?"{k[~++p&ԧkfN!,M63*1co/PduiL䧖n ҄mhb߼þ5OiV}TMZ<4|nN6|ԗ6^"2<Eê R&"ձt`鴚i)Q\Q]BҽK#%X:2zH=8K|3?_/OxzP*łHh݀fO)m2dNfXجE wA'I6&iok6G2,+ rܢT⛒IEFMC?#~Ֆ_u~'4Jݓ%ypWXq#L|mΆ} E7ʛwgq+]kT:ֹyyfy&)3q7%RTƍ_dIByJ2SRp3^ _ոYƆ1-T:8MN8kMgi6O῏` ?6j6ca,iv o'nrO'~P¿NF 2h͎HY܀O\N=2}kʾٿOh߆AQgf G0.7I!9PP 8O7>x? $Q|kA,Ym)"mp 8نZfOK 9:XVzTkrRFU_Vp7 'C RcurW.xӍY)KVs^ կtMTF kBm$R\JK1/EkG};m.[Ȯn8a$)TTWf1<_jK NB:k'DD 1yks şD>|;Oi2\,ג_]_4<ȻvU)wc/7Xє%\'Jѧ+b, 7qm\lJ{x9+T%FХ;bRK^0\Pg⯏^ψ`[ G_mn`|I |G? _Ҿz,>֯mYj zAq%sh$ab<2;? |f~|K1màjv~ofI[nݴ9_xiP;τ7mϤef󡷇Gُ)3?x!~ ; ~iv'H#QVXՖ6}M"B?? cGgxL^(iOG;enb۲Qς?k~ 5TR;VK@i`wx oQ\$9G,~Wf@+?jٟ4j| 4<3X'z)w]EXrS2(B2RuV>Ҵ[Yi~!}N̋Qкԯ<*!-H~xb]ooom./uVk+kA DCD쬧cr{oΨK*R3傯RSܱtWtI\oIxb=:V5),EYJ5pIN^N-Gݔ,Rj_> ~_'G;i(uE}Vw܍$D}$r`ͨ[~͟ )۟ٓ W4g 5A7685 YUOү^ Nh8)>#9>hԊ$OOwߔiiNPSNt|$ij <'K+ƚ-13nG߅0?VAnGH46hMkfeZHU7E*UU``'?o_oٟ,65ao-b4©Cn}T]]vRe|.[xaRm?s"9W?/. \Gc1Y}*8׊q%aVڗ-*jһNR?|F~cU:J5( (kڟQqҒm9H{C?I?a t -lj-t+/qQC"]o0MʱHUw)< /^~zַ|>x[ `aqRp¶nq_^4?cO/|QduiL䧖n ҄mhb߼ 8]䓗-W9?x&N|߻{?a ĺJrp*#~*GGR_?x*Z6*Ju8ᔕ#ЂAk@o/?mpwL3(<Θ`Dԑ)&+C uZoğ%w.x.vP źs$eJUX7=WG% T*NTT$JҋZ KFh:TT\X*G8(9mjA5x|xg2h_'u/:-]݉l+imI!@UTc%F//x_)]F^ 8gF{{QTwQ̕~ٿwᏇsw?)mq{+mN71DhF1ie]/5x5;U}BWHwтeYDB`:BU@<8L΄kIܐ\IKNtW? r5dw"fp9xa-h5QOX*Wu)5ʏT.=F;{VJ-\avY/m7R|!m}'/Cf󡷇Gُ)3<7s|l/kZ.:|f*Aq-U@m<ŋ}a/PPK:N4%Z*9USVtr9%V1nҊ< ahᇕx*IWi.lUj9%Zop>u/~ >/0x@k\/p$8[Ƕu|. ğ x_DkOc;Kqrj?cӥ"ڶeC(P>iӿm? z[hzOK K kKͱi+j}BŘ~'kj8eo:5 |KxJ5m9h ,fG*Yra2^֮-R*Uա Ɲe9OҔf~G*3Lj[h‚"pRTNpS7y攣43 J$_;<=ޗi$Ы_.R%䫔8/#߳OTEڃiK0MfmunprW?oZ/7w¿D9myjqrQOK83n,J bsWAŸ;(ŗ 5xu4YᅖB;܃?%þ Ͱ80эEBt_<[}Ҽt7cs&p0cUaj Fܣ[憏]/QY5&_??t[O \Z/cFz8&h^!Zim}[[T[20g5aþzw-lT~NWT4@a|_(}VK6ڌ(;J}kyDŽ\?e<#O^xV)5Rr)][+(xBurRpR ;I[HXxP<+W^/IsRnq*-EI.cMW$G'5]xUK,qhpĤ rPYʌi*K늢s6>Wi%=xQTr|M lW+`*hՌjNnͨpRK|_ůh SxEg28 F?wn{ף~˟%1gA4Dr2wR#c|go~%DW^r!+/r$\V~6i>4sl7l`8:_ݔrⲈ`RSQvWJi75Z]NIrQIMwzg o?nd~W^/R5& P+V)j `B/X#?_;O}V|=\åL_X$^E.č|?~=~zޖoFZ6 L\;hz?u?TO>50Qkźyﵷdȱ[DqЩo3009YjHa}TqvުR$fs#7C2̞i $cbZT1߹Z1Qm(Ɲ\%q~җDRY܀OR'>𴒠fSd$UpH#yYhgWSƾ լ:iEٙ) (bB >ߴO 'H+nsDao0GJ\M.&)>hr6?{2_C) OB2$儥AS~|-@uMw+ycao;[?oe| GxK/nnItQZ%18x=ŧBzhъ qVEIET(O9l6úsXB8xGG]:QK>_C|NjZ?/awT+Gk5C,CsdYwKc"(KW5?WKk8ӛ[[D]!E c`G×f&x =_86i|?oiRi=?fQ3332xO_COxWZ.w6eOi%& b #ܸZl 7h;]_R1ʰ[m(,kx\ k~6ỽFm.K nAaB7>1c=^]ĬH/#xG Ď[>lM|c"[Ce?u+E,Q5̭)D VAEO+PQ@(j-FZ'RP֓+PQ@hPZ2>V* (mKj (evV?r^K@$^O6񗂼W u+|إUQ+,,ʥNA=+n ~'C adOa%A>ӠA 7'Tnܫbs兗ox;br'*9O{ҵ%Kծ^i_}!{)|֪iJ ˛?NkZpo'IǓn4z^][kq E2u FAqy'Ꮐ,A_F񕧁to,Tx-ݪ_8/^ g@|U{qy"\ 3,[WFbmW VIJXx$_x+՜y$nx+ɒWR$һ~Wc|?YС~$Mٵ{_ç nȒljʜ v#^9i~>Y;}B}3H.`̙ D^a8 szZlo/ei~-.#H\u{?ڟ?_tA=?ZD[W0sn5q7cX|b<$$V$ThN ?+~i.g\3,6`W1Jthի⣇?uw.G6˨(1Ҿd>>$3ͩo,!9J+n\!u17akྟ] cM\#V@0[< qqsGe\1̲V%$岲nZI5g՟_H-r 3V I9咔HrA j[}XYnOJkNw%m Zm&4"ݠ2H eX:;v%sn3c\"VlFN1ȮD'K^$Яu%x.-gG%uM2l2$JXn}C]Du/'K_ij{i` ercs TbU9B>?xl^,-񶙦ZZe-ƍ5-TwIJ~vpTq)FGO %Jn0ԣNTrq&p%:|*RN2ҴnԠ{Ego?-xgx ZQtIhR\#W~%ON~0Gu=K(ZBV_#~Vh_ڗ-㟀:nwv2åQA2#{b2s_XK?n;'}m{ On-73 e2Fq{pW[-ɨF#Iru%+RvFbbf𧌜s ./BUVp)З4hNnN1,]?$^|YyK8g#[3JF'UI=+|;/KE<Ų}YL\D1_ ?mM|MۻFvwq,22 C,AQ#b ϤNaPSJ;U:7=r[OourmaJ1z5V\uԡz1~#윽k{*/ů'O ?:ֵ_hV}OG]GoqW#2@\|zC~:#^2K-uoEFRM*-R7!PYB Ee?c㯈}Ou)s~FRqRWrSGMA4~W8Q798I)iFUSg:UD x'~>ԛE6{$ffQ Y@'C1Z~>ix hK[\B!6s|vsK^8b{KwTVT4,Ki| q,efl~pl'. Aj~[E<2^\ǁ$x!eYiƖu*k%*t9ڔ\*Rkfm%Y~{G9%(jկIw*,?|t)+Y'I{?wo h xcV*xm<  ^Ǧꚦcmiw(VH'9Y_`Cm?{pIV kg5ƾ0hw!UӴo!؅bXIv%#vU|i N*FU*+IB2n A]QIH6'+Q PujR58Ù8Ӕܬ'vs|koxošơ[n%_!\坧 B -v";G 21IE#;rQJ|%Ov'Fm<_γXĮ}O$T*2fXSӦt^r/NLTpuwxS/6}19BeɋNqyy%jN]jȱ5w #j Z/oGC{fu YmLPJ "X|R=H|a_oZb%=[ݤ̓ɸU{*x7>gᏈߎaw}Xִ/!3J#FS"9@ۂVYwgG % (Z(qqt7(Z}3<^>8h7FJ՜a'VN3CEs)EG_\EcĞմ-ʅr_W@皋ß >$Z Sddo8Go)[s+_? x7_ٷŞ5+;C Zz9+GM.YϵZ3iO?o_C#XNV$XY3 `cN4^s%J1R0qN7IOEIދMYm_K^!p8|֧Z8sN)b(׫UFI= +čgHwZ3iLQY$>6J@!x%Pz`n+_@_LҚoSiyiKa-XtVhcʄS+ekW_S|U x?k-s&֑YJt,GXKpG'd+ԗ٪mEYJ5-g;/xg<ΰ}sUiu=(R\e8Uy4(Ϟm8;ޫy˫}CBq8T|cWɎHWq7?O&//5Vĺw8\L2@=pk8<`U<;:'M$[vpj6m9#QL.r:8I%F')?Քcg 'ܭ(IJ0iCsH%uEMy J$gd ^|%Sֿ~~ 6W]e3zdz)n.aB[`IRJW /?*K-:˲0wʉ$:1=&__d4iӜkJܝ2N1IQzh>3s>%͞ *siq+P<<ӄRrW$SWx;d,K$/̓_Y㟅lΛ6j[PrX7ONk"|e㎇?-fG}jN0in/`9Ǔ LmgO7o?xnXt "S9(r7qSN),7/~wo%̗#+xt7ioqŌhK@^6(R+`'/g=bZwdxaIi$"M7`g?'m__jGUt*g/oIB mI\C~_Lߍ<5]9U:$a򁴪"˴z)FxWFj8xzkKT-½z+$ߍke,^QGO I{IFUUg쵂nZ.U~$ZkJ^J.bUP MI pA3ž+솧wwvtaO>RqnU#rFWC/Fƾ,gB*{t9$@|6N'ү~ ]׈ 2Hu2 EcK ԍJ46RjiJ]J~exFj[7:&Թ.Prn/Tߋ_gυ <*RoY]_Mikep[MݐrxfWT.2Ú_MOWh.񯇵fP80.\ˌW௘_5kO(_U\zBHYʔZWh\Idsi֌]6:i$yTbܢi6?doSƿ+ƈizm-ֲ=`U<$ g_qGRI;N1L)@XO'_>)i?֕SL֮ 𦢺u.&[`6TGB>评K'm޹Kv9o[2J 9+y88,= 0ae9Uu\s)|Tj3JWJnN+i,=Jk ӜiNU*Jw椓Pd98?3ᆇˍ[2-YsAȷ<>`8ҽ/~=?_{G ؛&Qfʅ9߂̣ 3YGߺZ\+ ,=FFGvnIΟ2@o'<C4g>J|N+Nj|TgEk%u ͥd+E7Wy5N/Nlt揅|Mƥz͵Mrn$`s8xZX 7M&GAcHWHMjTqf(x񏋾YiF5з{ ymk0H2beRW&7:y:RTdWJd̸8ʖV,UINT)_*s;ZצCHbyX#ibe݂BZgï>KI2c2xt%%8* ZW_H~GĵrŅ5*J5QE*,;򽟺?τ1/>{vQԼQZ^鷺j$"ډ+U+؝q&eBhOݔ;䟱U]>[s2qIoKlӌsl58aj{** 旲T"f⓲w'o爭'A5 d+|.JVFu?2Fr`kȫ{.̰*)ZE#O)41JjZZMz3φu;q^hSxv 8$Ҭщ|L?d~9!R 淖XF$1)Am˄,WI/??`v\^^Ri8-~5,Wvv rxůvt<2V5p}E``󌓟.0yw0> ˻00i{;k.eSuǾ+qf]n+(*)g+D⽕g G)$~=-|[xKwƗI:HHq\Ӝ-{?_GjCs 6&v;n`*O$==+ s_yi"S#H 8~y*V&9)F!*u%SrIM6|+S5UGUsRV.ǑA5IETnͿJx'n6*Vy#Fc~?kθarI)QT|M>T\O)xyWI7.ZnJM'+hS >%hƚχ;MVؗZM6JfdNA ׊uO!eSRem rzWnf|f?mC7S_Z-47KoYj9ˮ ,?ϒ KR g1⟅sZm"8X f00 ?+t(V#RJrNUgjK(Qҥ$ܒ~_ dѫ^'p:-E8%CJiG/ߴ]}^5|mcq* ,8n+;P[kiC1i}0m=Dq+`W/ŏ#WH]E6P]B&B]qk32ɷzI bW#Ƈ{Ðck(bj+\\q9P:;KƼL0ɳ Ҋ41uΜ|%OfHΛINN-%w]=Wq7Gsn*ЊNlf"JSSoc(օJN)NN2J7y2/_??ڝ\mv3)cMI8Yÿ.ahs\)xP٤QԨT+ k_5 xotcQo`YG24P[Ώ\6(WBԯkjخ cSqg|!APNu!(^p꫌d)$Ue\2Sì6J JUYFppJ1q%$㶅nX-by!FX@X99})<TfJ.:{^hKb)EIs^USY5'5OĭBWYle17+#h^5Vy_W$:]v3ͩo,!HaRkJۗ]x9t>)|zjKo\yѵ[ˢW8fbI rx3|YqWN֮[J51/U qqsA'r B5qNW"Bwrי\˙d|WxX,!.)˚^?NRgw$Ȓ>Dbcy4Bbk6/ٚ4 cL,3>A_ÿhZmZ[q:FU])r=k _Hncxn"մo%Q,,DYSD ?} +.ĸ(ӧ*?찔c7JJtӚv;hgD|g ٭*SNqeZ*Tq;h-[??NjtG7|/jzlaYO4 fHШێrx<~v?c'_0c8GB[B5Tr$+׳?-\cv_ú'nG|Sq(U\C<vcM|)_}xQ^bc2]8#EMxF0ߴw◈ΓimwWY'.4/''ğJ햙q{ BBYhIsnNԑC7Q`0?STNU8R嚌+7gg>Y<'V^ˑSU^U ,f9iFNҳޯDSw/YIUIv;71>Qգ^7VRAWR=~8hϋ^ ]*ú`bc0̻SH?Mo^v֡ŪhCBG2ϳBd q?f_{Eͥͼk[I#̆P@ Vd^ Ư^Vo Tq"f== x^Y|1U ?Wj2( -Y[nN?jͳPr|6Fq8SP7)BI[m՛gKW+3⸝{֋3Frq7|_>9O>v}&E4>mQ( +2kWHϡYC Ιi}Wwqe#_ -1x0nZcc4V1 5_6KŝO[UKh`l |v&P%~W?`ǚfxã=yypm KyE*cxǂx O]x[~6./4!]hVש6 .mJP ڒ31T3q\!01:piSn۶)loZMVkTIҦ'NѕmތT_C7⩼c_Z}".)-I܎'i5|Dhz--y'~~*~4|7CZf5M2mųH c:;Q*JZ6`r mO۷?f Z)k$`$ml,$Yc;r-ݹd8w>'~^8w{Rm@q2,Bq85?_JX "\o}#iop̱Lϔr`Hx8"`,MYSnQJ^mѩKXN4cG: As)άd߳nSXrZO k?4MUH^ F̒FYpT7OxF 77f~(,PvNfc\&5᝟? [6::v;$FAk`&@2c3ԫўIsJ.-]EN)US{&~xcխ00j A'%FWM8-US{&g?Wy5 HF'"i]/fՒӖǟ|.y5 ggJk]/d։ٵ-5_ݟ|?s%O͵DMч! "Bu_+gGg+9mG,mkt|HB9BaWEŞ'4+6dFKINP@mFz#.tj|h?C(>H_ hnY BYOUY~tݻp*rGu8WºXU:n4T|=tlJ|UP*^M眕yTTO~n-JW8~'~6Xz>c5GV/cluz/ŏ)w@>%VvQ|SOv'c*'9cW]G c ?O/ڇ¿8I}k I3Zs\} [H}X0|{Lc~%kcIk+{O;H[Kqs8Xc",Uh9`H8I4|K N.V{JL:Xg" qսWrj {ܫOyJVu/+O۩f"VrڏH4g6nB^? z֦%u=텈rҰ#YX1vYʌ/?߅wk-2{>jZMEoKuXI~ƽr)XwFI)rv_iIEٳ|+7u2Jӓ wҗ,{jYIEٳ?e3P>j[i{KH.bUP =?Xɢ\Jӛ;[kWgHSpHs_SN_ Glt*4Q2GC 9f©q>=Pվf.643P[B% ڬq5[<:gGgU~+(E>ͥ}NlGqNKsR'~GZ.Ҍ8e'k7-s\3e<8>lbXZ7A<41yA9_|iZĿ:ޯ/ws&йTxaT og>U53td11mf]$}a&(Ir1D.[\Zj6p[TowPA>Ȗ"kQU0ѩrs~Jrg(^m9jix UzuF5ICGWYFjRZFh::!AGJG_Q_#^>9-MB}%͋-2C1 @O/7~/kথ}ocɯHX迶wᇃ;okv.ak1vH؀s^a'x:K7 a6˒1j.K\M{/foqb)QMҫ^I*SpIssA5׻-l*[|Wk9,5+Z>T7O$R$DV(g?x/ r趭jI$ *@I'nJ w|S.f`KYi9hʫ2F @BSf>U𵾙ac3o-֣Mlv d+??/ db'.SqN1~;mr[EkYs/qw9O*عac*t'좴r䶑=c㏉wǚ߉j%$qc_%DPU@U&#g%|'եu MA[Y]$VDaGVSUߍ_i ↭ BƊr-Ǚ#IWkg(}WQ:~2|w\Clג˨ܥb8c9ə9 1y$rEV^^t^8in^G$kik>_X쿳c\U-}I+[=+ioNо&il ;c\b4,/U'5*ϯ1z_fk[#쌗QyggI=pGRg'A]C, Z|NzVcL:൹BK[Ei\7 u)k:εeemwMRArvy!D YTvaǵ2̪Wy|: 49&m7(^:5xk8wƭ:i~Nnudz|oH-i j|yӿi Gz{6޵ω~O-yea*C<{ֿ(g?x/ r趭jI$ *@I'nJ C⇏>3xQ.]sVu8̌(*\!u2l:gSzJJ&wvzY<=5J"FvIVwg_yMǍ~G尖a 6G" _ W!F|eù~x;\OխQ$C NcѐƄpkŘdT5݊ἺIV.[pk^FۏڵG>*p999B-Nmۅ[]zԣ|c 65p2>$ C!q߈m/SűjĿh]wDe3zCXW~pQX҂z;Tz=Wg97>lQ4i7I5٤լ}(࿈;ņmGX)mv0X ѧU_-^?CxNC%1 y^?=*`:|Et|80l(Wyc8ӂURC aqYuXÒ5!Jg%˥ájzM΍]&P6}QK˕R4y]ڪ8RP^ p%˩exڝ5emYkKCn pQC$FSmvI]Əُsx=?g\S<[l)nG'i5/w@_ڂ^6~6x HXiLJԌ_5QS&2T)8EP{M/^FxF2aRjt7N.Szsm^PvWZN iu2'Aikk$mnr:(K(~8<(ӧu$]Y+CP0a:H$mgoړlǀ>x%ĭ9%|x*)$7נ/>|0_4 f<r4Y8Ayr8(<-tOћ%)9SrM)JVMfs71ZIUܩA))7zIJJkfOk/cx_0rg(΢9MƤWdmᘀ *]4<)UhקQRnF𴹗/^kS PCG)éISj;Ö\|,՚mf;ُk/hl~qio5[Qd^ I,[ \(i>/ r趭PZI>CJIےdz+xE®L+hT&wݜ%yFԒaiM^kuwg6Fk߇^>}#?i\9W6᜷(GreddҺvM-#x3''iEY93i9FM'$육 [U)a\3'{uG$dxۑmܹ;Hɭk2V:wAjBM*bPLdm<VӕJt'JxIyE+x}1 F U9qr7kӛj򃲼eucRڿ>)6m\i1.!wNME̊w.19M?G?ӵ?/zzݏ .UT(f\Q\)#yM_& J\Q#rKn?jͳ NSei84JInTJ*\a_{x ee5Wi>*ilem廵(䍘*ڤNo4WGpUS ыJqRIJICx$By4UHFiKRNzi_~/|C[kڟ6g™#s^kE00!ABQRJ)+$$IhnT(1J1RRI-Jh((kWic++#FX+>O+_AsQ}׿'WN=x 27 x}zy9j*Q/7$+iJ[6>ov3-1´% j\Ki>5Jx{_ {'?¯X'Gv+bWt 3$W-8x[~/|#!V)."wL9U ce)S$m.)4 JshΪ⦜^㒜eIğ ~˺_?<7@)ykh {Ŵ[pr6>VS_3_g?>x??|;[qߔK _p'WԗҼHY噘O$Mv? |g'Ï>mRD M688pk,Q)UT|S:Gjj"\i)s{M/ѫ.5J[jju)S:]*GIIKݲv? S/_Kl4)'T""[ۋWdx6eכ|c/|7&XXk%)4ђkDQ_^H|a'D WM%O rEp'ljV0wy`^3^S޾YnmԒ6 $oJ(:g7>4T)J PPNpeZ>ҤeVMK>rGb2L+ͳ8RpgMSJ3xJY5>e)F?A~? ^vzu溳o/a:OhXquBZr}2OލG:s]|S|DUB-_guSBM^NqL>|M|W-{I ZT:\iriQ%neCekpk BA#F:Vխk{*@9 T ^^A-ę(]' ~x3l\gJ*S},jU|RiF)wls¯q|/h1ѩB*R䒅JݺI).M{6P{W*Y<+*?#k@9y⾑W5_W_E>XY _ͷѯ.9?wث"ǹeAi⎥ 45dnsm y2TǂFryV54[-g]Ѩ1U\N(iT|U^m>'Ǝ]T)НJ\듖\%̟ՙmf{7U~%.U*ZrٸǛZ?|Q]37t˝;E֭RZ|!eM 6 x?Sm7û[+ ~I. 45̏ Xmf9湫[Yꗓf IdgXm@ąP01 <_ +w~ i$/\:֏4{[ %ǐYDbBRH~e=g$rYIAZʕzr%s9{D\BqW;8zβ|G 1W9)TU=]sq_;<+5?6RК($siS |J_+_~К&^/,H#I(.[h95:׏]\Hr݈嘒xOvc0ڵ/dmQ5}.V\>W{Y< &§QjQʄdϿ #]Rx2E=ƛ:2v"V<BCb26n.4٧E0F`x Q_̌ZoˠAy:XNYB1hOʼzVbՋۆqy&"4ZJٮXF)Ygٷt)Mj8x9ג=`i(]4~1Úeh]B鍔.%a`[3(C~|Pwo ZxKƏ| Yax($SˢE' KV/{ SU;;ǔtFXj66 VT]x,aO-7<5iӝi%^[E2QQIAs#)*,ΖKb*QN*>^oi(QQJV|2_^)OKX[{褸G_XRHA0T&ՍN!2JO$Ʊ+1` 7I>։/Ί<8u k濒sӯ5~SXՍJѨpM*H(Ekhe1~| ^e8Ҧ֋pkW߻MSulnG^|"/ZW귶LJ!n"_6+co vި5o8?#{dpZ=ѼJk!TCmC_>h7?o沟|$hܤqqqyq%܍,ww%I$IZW[[\ko!M: o[^%|shձ]kYy$224q,ɿ!~g5ֺB|o7?ڕ4+X+Oax96'fT))ʔgʱ+ũ{AƿD7pY/9tEUȡ>Eu}YJWR!P1kƛMdxaNnqk ۰Ax"$Cca ڞ̙]=ej֗6 <2F8.aAkSH|Ah:eQ𼪧*'  Ibԫϕ.WYזn8gOژrٸI(.V5{.]\]nwccEVQ:T8RۋM%"xfydxv6'Zp >-|CyiccLUΜq+!6n,߻c ?v99S~ӼC_M'5<6Ԧyx8Y.<#"@#~);5lnE7[F*)rBܰVJ׽άj+O<3Q1TiQ:|JVpfn*jgH-_ %\d-t>,x k珤Iumvn<)dHRXIڣ$Ad5exR [UxECÎe\)xIW4)]]idw kL]zO:M\I}/hP͵ Ig HUJ,|x[;noQtWn{œ9'˥7Zk-r3~<ܷ?4(ß|R~~{siWϿjX?𖓥jCui][˲'[ep1 '?|7_ |[ ~+,АHhHXoYa^-nl4X/Wep蒮mT <k-\_fF ڑ#%Z4ҥyJrUm$ҊwMɵ} q9OPxQJu%?j(iFQPMEӞ;ۗk~lW]VW^j-YԵ/׾FOV? \Z|aXǟ#1VƝįo[KtJ 4Q~+7z׉f9<_BQ):|_֭[e˳Vwr?Oe[ܣ*\ğ5z׋y~+]r1R3sL.O?j_ZZhfZpFzT3S .h)Ԍt P0NAUy;VgE92:V*YVj̯k-ƍ+(U1 w=7M=f4[3(PI¨$OC{2"z(SZe{C4,RHee8*<zTI#$QWotCN1 B 3ƳG)]*2؎ R2M] RW )phi%Q@V__X44FlS)ɑ:EUQEQEQZ:hFZpFzRoRH(3m4ZY4fHg (88Z%5y0H^N΢* (څGouɕalb0OZNIY2e4MR)QEQEQEQEQE]+X"[ۏowedմK ;o.6f-_ bq_Wdrwg4O k?a}w= 1i\ZT9ew2dn?+ft0=TԜ}p8hd|8K/Oe4'h2r|Cߊiӛw-l'.xN~ALm|AԴ:ƽP83x\ YSOZlZ|=,'PݹO.B&0XA\a5OxQn׺ח4X; *+'g~ǫCȞujSEK%(6`+/rʧⰘNyV|󖋝'K{+#*u>Ү#بWzK$sNqR^cݣ%<_oSj-O(+vQվ{qƱ(e|.Ne.W|-fOIxWl)?5L^QHI_u.Oe_6V[Ik+I]h~?0'N ޝaTFua 犽5Z%pNUuQ:O WBDJNoܫ'B6ź[~ \7^Ol $ 2AR[<'?oQJnI4Y??`O>6oO;/^hcW@cO$:w_k(i߂7al"0ie{{O 4y gc i>.U.HׄM>w6Wt!iةUDHw`!࿆+WM~o Z|HⲃY^GoqK6(v fݞ Au5b33,Ͱ(BN4;O{I FRr>G(UbvgxřN/1p5pUǵ' Bsnq|5gG,4|\K/x@ԧ,cA- 1dX؝ĿhOv?/<ajiLK$BYm ydgOx“w/5gK=Ip \#nCǖ\a xgπok¿.eXx]:mHR'rm "b%uc>?`k?J#SԒ?Tlco,')VaFNH)SR^MM{EJG^V悡&OzuooO5燼c xu`K'inlr2Xs_G |g_&ЮHH G,#79 8ԼV85]i&$֩njpfis{YШܥڅ&?rIc&MoxG_MSC53L˭:M%Bm夊dbW;Hs_WOjNA4hx)Tij+  ڣo7l~!7kN1\Y>NFffe*AF(/O|p|aG}5l-αȸ~eFACYdٽOkQ%Q*xt-JJP?哌/Mq7d9_o(FtT!N:h֢NSٜjRP&C7چmUl.A S.?Y^o3gq$s=R<ɿe-xQ=S>Rњ3 ߟc%|v?eU4jajUBRTc.UVRPȯ4Tև' v;&UKϑV*NNNiF/Uw%c?CN᭿ueF $0Y% Ru<[AI n~gşvvWFB+${2# 3Lw k}yT<1H5]OK/K038O2zQXJ2~YQRU\hk>k{G~_<;=꿴O-n6>${R,0\[n:A$()kes >y=vz%,G  G!|%lcLQN(ɕCUeT[n4_ !xݟ5;Vu+GGN$EJdǙbażgCM!Qs3|8|eF Z+}BKpnF YNq~d~мOx\i1X"X[At3.2ſlr^ZGm>cKxeh1>T,pE~k{yCagGBiWZW6 ]_rS3j|G^qW[ vt߳sQ#9*Vip4։~MQϫL$*Oغ*J4yiʜqN\ӷ^W<1*SXh^@ͺyCj(H8YWW|=ω }&ZLCy Gb)  ߲Ծ׭6\Yfyu 2H971lc /|3m~x_{YD&HddD@Ջ> .ߛ,?l4?T/SZ4z}7w-Aa2ȏb`*+__αE~}NP7E23Ɛ0ʓU̸ZLEN5"6(JU"/>eny/Y8nXjtJUbӼ^Ҥ難藁gN!tm|ej8Ѥ'[J(kMz[#Zo.;qynH@BIY^᧋K{wߵf ߫\G1.m+&>̒~n0Ze^3:tZ<=FZ-A7RVqOhk#9Шܫ:Xy{9Ɩ9UJ.4u}đZ}݃mqp_vw\5S N)QRI].9%v+& = *Қ N_TiՕƕIF-Eu:7,ߡw^4O:_]ZO)`Abq?2mRϒ!3>;%':ձI(\DV$t29ؒeo|i|cJԾ*|zkmnnkxⷁ̑fuRV%?kυ7u?!i>"JXf-qcio9`B#p %B1U9St#aQNhN9jNIIqhFzbNjTF*zU8rJhf_ }xeY,VFi-YFWɔ": )6xwiwž"O9, y26rj >=|G>,6{HG˽e5ꤓH,ҠX,j͒<o)[r:-^!^Mxif{,+IA0+Y(ft*⽤Bg9FgRpQէ7\Ǎ0lfs>熫 e5Z4 %NEIMp,|-xXҼEa|4 uj29h̑r2WIsNUHtύz m\\E'hDGͺP}ڶi//OxՈӴ-_W.A$QtB(8BGNrVepU\T߻ 8n^xmm3-b1%8VsR5wHJQߗ-̾h~E ះ~2S>#Bzn{/ R$dk<]NJs?:P>k5M<nIwIRgc3h??ϋ^oM#q/)s]4+M YB&d同K _gNj5wd>}Ėqy"928ˢI1x. *^ >hF*"(R)YSfoʱu*˞8FXU(MѴ){IA.*2rsI_JWJjZ}$sq>bwUvDg OA8\l)*qrrey}|ʥ9MRN\VHe?oZAѮ%B2g77 }'? &¾4Lv oۛfIu ⷷH yPh؄bĆwgOm~7:е۔1M`V)]I? ?O+ѵɌ6rٛM/J"L@7F>dUO+d+98YS^U%S{i8{S85$웽O;Ƶ5WB89RދWSbNڄSH5('t?f?W}  |}xeYڬVyKVQeI.I5/ً yȵ^"Jimd9Whيkvǯa߈E:?]{)U$O"D3Jcܱ0%, di?W7R?xjTb)%%'|YK~ ލk hvJb 9͝iY7JAZB2@};,^{QNd\Ioh譛2dU挒 N߆7 xA8|_JGukqt/>T6K呎;W?oڻƀ.0djIb%KJ "}l!yZ ]Z,KOIJwURucfw_p  g*RpҌ\\߽N9_ك8?ާ^]+ ̚'f˩sqy8 \Ģ,|/cr??؟ tݓ]tHX6:3 ˅|*?6?z].&ԯ,M̑\8-󻟎PڅC>Y?foO:_zt"=:o; & /)2JeFg~:~/iP<:݅ɧjꑤQ:jeu6L8V&/f8:Jr in0XԥS/jZݷz|׉qcs\F0NB ݸvteٍu|2.jl-cefyq2KUX1+%m SԿK>=9v&Qi1̰bc˅VR|?ns9f{{֯/!%q2a3j_>W? /^'5== Qh&eII nڿ1#R֯W^.j=h*nF <*;~+%b+4ZdܨJJT{,["k%w/"d{?C~)F,:e Mܬ G|\FeWل+QJ\9k)a#_3ُ yiihFCI0P% ? xCߎZam[OII Yr~UYrLfTO5*su(G)jPWܚ+-,X-Ib0ԝ:\t4/mR~ݺ.mN0qqxWZbnf׼CeiMyIcpbB&I%W?J? |+s♴_Ğ([pJҷF-)vk*y3z߈-4Fүu,nmGeܡV!IŒ}WկCƿE}wi?/}7PH gl1;vWƼIoF,E)v0(_BnNF-5$g'0ƜTj:VJTO:w*}%58?h[෇gWG_xZ-fĶcpRE mBYFQ$K+!CY_Hi ^-|C\6[ R% K9ȧM~7Y\/~'^jmi 8$.7sne ~G;{ZxsD6-#\.;yГpXgf<Ƭb6ùFgnz\J4%+A׼^Ϛ7|X >vmZUqK1,, 9ha4X{* IBS(NmUqy"3dӳQI6Y>4xxh1)ҝ:q6A Z'"**_--"ůQ]ܮ>F+'4"nW9<1u ~4` r<ˊbF s_}!}ɢo)q,ǀ@%pxTJmE4imy4iwgcᰕq)[QN1ri^ɨy4Vx+8#w7U:Zx+⧏K 5eb{#8`qAI~Ϻη|>[ lYhPS`b*xY}YB]JYTTbntۿ"{nePwUU;7\^4N,up(A^S~ASZδԿu&)QѴڜ%iI\f jսym{Njs9GFڝ94vvgu&)>&־1z*jEMRJʢUQW05O:NYԬ|7h,ty-}UA$(7'|?4#Sҿ|[%?)@.<>?bOZֵ_ x{Y=hοiUp< _3`15i Ƶ*-N19{IrmGد-VY{"j1N=*Q(ZI:h[?q/^EX]+Mq",x ||.Qy)*oׂ0Aܟi_/wC|:N-/YԼGs!kKX͂R pBȃ;٫# @~AAc83Ŋ ;ҩ8\V4II6_Vڼ8V6TrV'.[tƏ4ydc{\_JO ~1ڷ>0k<69m:*Cv Ag#/}ecÿ6~GIXåhVo!iDq# w(`U\zI9US 9BD^R+%'y6t۱q qJ*MЍJPP&8ɥh]9;tW7o> 3 ׀<x4i,`еhopoK8R>k@fo_x᥇~/Zj:ί~X mR T)R]~ 'O`qT{B2:j#J46];dM,2`r1)S˚ΥW5QTm(Ӟrӹ@V{z//|Vh^!-}C.iy_xegwR71TO? ~$xHӼ1x5JÉ-BJUA~UvlɳچW$f4U\TQs\ >?#Q]hY7OIYM%ǟ.)$a2Ն\lOğm7uE<L)*I)L!m$yqu2f/爫]MA6T\(okd9 (e1u*r*\NVW`bHQ2UֿgsJ[x 64BC}kbC+Csռ£q~_O+etXB 2%6ƎU9ci7RiM/+4uzX +j'BJu $ӔnO[4s LjuOg'6scF0*v8WE~VzuxSݜYsh豨6@,ow-Ѫ ~!ok+s.m/#Y|G0U_)NgSS^%JIQ4%w%n^Yb=ZW.~U:J3\N5%n] ~%|LOj?~%_O\՝^8̌.@¨W%YM?k:ֵ#Skox2+'5⼍2̮GUsq ,T`q)*Gھr'RWAҍӴo&%ҋNif_/L 5JeVpے1S猢ܣgi/)xZg<9PᲵ yGbIw'|% v֌qH2FS :kJ<Iȫf/s_㏇6KruCEc;FT|JQ}|\sN:eBjc8OeuqUU×iԧSޜTNm٭?MI_j~? h%g.lM=_-2 P/ FqՕU._:UYٽjJ3-t+ꏑa'Û]~!77jP]\˵E:qaN+~ kD|:Ž{c,fT|*\pW+^oxсb)6.e(>WRN09rV-v8:n"wS5ċ`Af'Xj|_?$>x\j^#v7vWF-͂Tb .xȨӆ*F<ܥd׻m%կwjTY15GGiJ9IQVKDIu_>m[gaH5$N|]x#+03+ğOj '+K/$5 iX[|Hw€tk/GѼ/H66mm舁vIYv1~C}(0|iZg#Zں8m c|Yde\*}%gba9J9'Jr%JPNV/mWWxlmJZ=J%O*|(7zk]+3fQj]k=;OqZڕ՜̑E)kyʙ#U9pVw2k-:ySgaބr;V?xs}7ƾ.ݧ#)If[{2'wfgx7?l;Gt;+Ii&h>sG泒U3t~_g x| : *JSQ'X)){mIV\Q,m,2q4*u"QpQ2F(IK% &V5KߵO/_࿈ogm?:F|ۑȓ/$Y,j<*S xJ5'MEiJiF%3I1nps %IBIrt5u{N4)SP$KǏ?h/gGsw٣E vb8޸?h|A}ewmĶ! p 0< ~)u?RvڌKo٭edd08QEz/ S۳*qkZ 2Zvo#Y0m[vA9y7x<1V2t0xVI(Nn/ZqrjJ3ƾ:7cBO RT\sΤd׏"\dSZkWsXR>Fˆ>$NQT`³65~|Hiؖ#Jycž0e}.p b dT̅ǐ@wJ  3^0H[C\lI?&_bI!u\X/Cap()ҩ*(tcJ۝P14j,p8:lTZuQgR!NtkJ9IUVֿƣcW/iØ_w(O^$c.\a@V7eïoDOƚ.;L4ZI,q mR\sq%>e/VMVXCR~t۝By8QVGqwX\-ZSLa(K 2Mu'~FӤҵ8x̑a3:㧃u=4:HO'}ݩD8Ml#d/uP0~n<ZαMмQhe!AM'3FGqռ\hg0X̶TʍZnt8EݨӊNNZI_< 1ɧFկQe*jJqs*ɶs4yVG=t~~ ,yS5ċ`2O}s"sZ |4𷇼 xVAiep< _|_ƵZgS̅.m͂R\2 fjY̰W:sF T96r6qV͖J21\PEu9%W85*N^I[޺~#j {pk$gHYP>||'Ҿ2{HKVi@T9!'>R>?1DOZ}AKۏ &Eu9Gq_ӌ]ƭykg[gVg(FM[;].oE~x#s36_ Eҋ]'uȭHdݷg|jrf~zֹ|>x[ lXm?PO_oM;Kq[] Ő\ocsDh]z /GV,6\WziQjԣS'NZC)g_ң N-(Ni^T!hUKӝSrn7vOZ؋{ֵk6\6Oka{}Z&WVy|6p7U){iBb\IR=$xIV_pSR_4/>o^Wgѕ7ES*r*8;Ӝҗ%87k¯W3:02#K;1 rXr@=gO++'QQf QC ˨rs F umưl5M@xOymO,I#zg$g[?O_MƧ_,<Eum# Zg/0_cy=1!x͝eusz8lqjrII4ܬ?4Sę5|m u!RRWUE'%d֥޷_鶚5Yo4H>i'Mm'_Z7¿tox/ZǺw<Bn{ ƢYU%wBrݚE=ZTiox.'=x++<> y8V*~}r 8V*W-|qM|&odYMUͰ))j7*-PNQ~%(N0&մdMqyN֮ƣvZlryc~6eT*>-Ư >iϫkvȅ#H伌QYMqӽKFIV2zH=?:W;uǃjȼG#,NmQcd7׼L:;,ê! ԲMߚzǙ$53J3q}n<Ljrl$jU ղrPrJ˚ϞQV?8?hW쭯mkoq@*ylJsppe?4i}iok=P,o kp pň^o޻߃~Ӵ(-2:\Jt+7<3ڵ4 YY:$@Dbpdfl{g7r4R*Ӕcg8J*)(֟/,ḓ(|G8 ꒧VRr䅝JsQ"/$f%5>u8+C-*iz6vMy[KؑÌk q& E/1 02;$yѯOg;FmR&Iv+S-\avY/ddYUJ򯈢9iF^¥H?iS74_o Pq$UlMLF*U>Z1U7jrӞMI+J+ۛ~,eqq9WVy[՘)1󼪂ēeCp}C4fx[:Ќugi%%u3߄ eXlg^>YI]tvzBb+V( mz,~rV3]}J%V4t[+^yS#;fu EæE0[v!`0Nߓ k站k!`K+(i`ƀ31ª2I' `ezU"%wJ^-5u4ϛgu|25 po+IsE+.~g??m~8hlŶ"w JTDQ 0*W~#?yGw!էM2[Y6JG͵'w%~6E⧅K-tPxe t '$?/յ|-W: "g<$ pP#T|$yPQFZ&7#psΟ.HMU0] iE8G7vN휝~˒->T4//b} JQN}/͞f7ytoE8|x`RWĺI,N,Oj{^`%՛Jˆ٤URJş x -$΅h~KSk-~j.Jr=E}W^ +IIFW73|nWrm6m}nQ¹_dž2Ɲ9BqRyIm9M&o[w!_>)h3۴S[@{Z GD`0Yo ]nesszuX}# {7^,b.j.یeή~ -ß %+6>/Z_Kl&4rDZM5As cwGm]㿀>?:iܔP>b;,[χ_|xB4UC%N~j7.Jr=Eq݂CW .ܛqʦQT暓o&I2ϣoJqVʬ1XzV5y8G.N)mM}d~0"uaf(JM~\"~o]~~?ON?c|ݑWT,ۍ}/ xYeX n5$IEFra I ޴bo gS7ʨ5fjTcJ0N.hEjݬׯ"ޭgΡzP>\[lW'@9׿m?_È m7lO-͔\%dd!A*6s+OO_=+f9l2NxJ4958E8=O>&m$\.i wqov~hU?u >)rH̛JKb`c.cMW$/ -|&xLђuK村,yeX"p0˴Woy>E*50NjTi|N\뺹G᪘zoR֪)F%EMQuN\뾡_S?-EH&=6O7~՟)gCvk+92aR7IIḘ{;tm-v~#1VQ ]׳$uim-w? F 7TN&Ot]RMJXY-yk27nVM' ;oĿ :@k;j_i#YAg 'cdݝɷy8 ? QGszZhϖ1SI+Zͧ]a6a ΞN% ֬ UdQ1Ubʣ{Y~~_ 7k n6X[q4$gͳ?ٔCƉ!~Z!'.SCЭEgo8"%QB!*\F̣u4[Ͱ<*JSnRuW4^F)PSN'!QR':ITnVU'[.U9F.Qe/ۧ6aXu_M܇V4nJyfm(I6֌ܖ-?`xwĿ#п51p&q[ڕb;{JeW)$5-}6/U2|,B;ޥJ58Ɵ<ڦUT쏵>,J XQVWQ!KTUJ7,k~'Y*٭'=@9+%J8B9G]NEZֽWש\*oʯX8s[mx^Gw.=j|xQV̗|e6GX`.d(\m.5glak/q|R:'MӍ~՟gCx5ʧsRW7 cUaS~.oSE')NRrmSNM<[r:x 2uT65QST96%ۓw`.o_&t'UԦ{4R (mn9V,Zφ? l>H'¶-iq*K7*Y;2@WS^kSp%G~_kWsU9ǟҒ5&G+U9*7%^9:={NZ3MJOfixoW[٫u}.G׻Ye33++(Bv ~ֿleJSYkGKdK&L?6Y TrI'z՟I/kO>_E>\0U$|EwdnR6X/MĿ|]lk>[sQpER`Co"vUyeTfO? ]?I,)T*[bێzV,[G)Ԍ$esF*qQѧeoV,?iUDE*P§cNNj.6M;+~x7,t_|! >'Ԡլt >Kw`(6e®Dgs>wa^%i:?g7f5[8o>?qō(o_S{O?̡aIU*)*n\n.rJSiVM-O8W+:UJ*N)J\e&ܮk%{}}_Yo/~nݴ9_k<.|"C>ڛ[*Q#L\)(讎4#rb&% EN2qWNo^p32vH)SrR9g 83M;#HG;ůjVx ;Gq-}y^Z#hdu,X, S袗2vaT|\ԤDB)sJI&JNOO 9iVuE90iFPiߕ&&)R_G+R.t/7鐹Guفʖ\m诊-Od7W"~gW[ieI %QFrxUyVEqtӖ*F.T59J{9'i頸sg2u*SҭX΋)ʜf)CTm;?RO6q AՆ%+䛈IEdf0oP+.ʳPFq%xsBQ%{4=.8*99?fۋJ乢5NP,gI궷I|G߃hrxž.U)n[".c YVNཤvij[@aeGKXY[,I ?'OJvƯ jƵ 3j<%M*FN\WW?;}+^8>PQb"KPJQ2JWW?Ro_xŸfx_º,Uy-דH@*FTR܀v3C[NCo3oRgv21זHQv|TR^3TJ24ܛ}I&8u5h,Ƥ')ի)U'>inR>fI~~>97o_~,ǡ ZIj{{{RZoy @ ?$袾B2fjm(6%($޶Z/G+,Tr2pъMSJ[+}=mJ,p|<;O˜A>:[\Ac2I"O+1ڠ~iek>eQۄ9ۙ>IG2振et**qx\v62v% )<З,y+VWLmf߅uOƚd]3Yr wbWeN+FV8GrܑՖIʥ:*IEsTh[8죆ynu\RJ*s)ZE^^<|jg_^h. 8[HIcthKF`$b/O|w3K_Nm5v&.gԥe ,/$q}ݠWVqW9.u]3nR9Zu vjNMǙ73xwRfe)J.Z`M>IfddWe_ٓS? mxIu ZCZKn_ N9~O?' <iwWOugk%g_-6 k5^ o,Zμ!ȳ xs8c|pdwvI6WxΦ*R8Ƶh¤')j_$⭢WF ;~h~YjSi= (`n9V,[̬?m xro[hzOK K {Kͱi+j#,YbNy2Z? 9T>InOkW٧#V Ԋ劾f |z.cJ~ΤYҌX׽:^Ӓ3|W_ ik^;>զu|\:@ȯϏ__~8㯃~/>'Ũ$Qw7Q< 8%$lehX8\MJ)7\%ENq5(l}xif9>ZQSJNqr 5!' Pvk|Gn~1:ɻӦ-O,mmhb߼ -|%  񏍾A JKT1BW7r$ޡ _Z2ae 1^,/8QpQi٧eo}>xXB~q-T]9+ZoexjW8*|\l~kf^d|+|rsI~%e%=J?T|i7~?|R]&,~^X(wK g*]5x>#?wGduiL䧖n BHdoWV|D<$¤gy75^.n^e:")4U~oG4ua;ʤqըUURZ,QIXw<2D \ip'Ǔ7cn|^/~UǏxėOo ][^D#1B<,>V}VoQ^HՓRe!F3%(J*-ݻ}A8lEz'2Ѝ8¤')BQTnGro~_~+K1iWk5ʷ4 4F'!v f%__Ҿ5^ڤ:o0C07wl; ⼳+FV6r[nR963r);NN¾pKO/$%ER5>zZ''އ_?n>s|FMܧV4nJyfmd$kFNK~IZ\Zۃ .ȡ*Yw?+Tߖ0S"eV짆iΎU9djTc 1ӿ-~>.LZQ\YXM!OmeYB` })I/ u7.o]I<,.9;+FV6Uʬ=Rc8.k)F3enyr}<-SU|^eFRjjDքgʧT$.YJ.QO~ٞ -;𞕷SX7Mc䔈yG5x8*{1O۟4c8uw)էM2[Y6Y #ѓſy_Z2;2ʜVNRիNRQRRp[P]$ۿ}8_bNiRVJSPR:n䇹𦮒m6-}=~ѣP|j7 i.ÜcV}{as<ljUc(I]IjSO?L~9u|2=є'x5%x416-~߶g/ڋW8h`58*řȘb7~vhם0a% ^OK2愯Y]3>3\v2^ ۧ(pk/Q焹c BVWLgcgQdqa-7>V0@GUٔvg_ /Z6ENeMhQRTs XV|3>YRr7g.uU6$M|?:JrIVN¤8^sF,fIPo J|m"O6+UH=#Xv;FY+FVG4!~X%v압ܛmmm,OTUۓU&'emblZ6-.VuBlZ6-Qh "Ű]96ݷ0ͶG#5urOҹcc5xzOk/xfLKdQÂd#r@fO~!|_ڬ6`I dee`VkQ&>ͮMKF(<ʈE@}S'A+O?8Dt5]d-m&FRJ<2E7<\/M>G^$$Kmn֗nhwJthl~|bcP֭Nd,sPt'(JjO'&nϨca6+)#(BsUl4N%R2n\\qEgjw%ִw>u( $'CH=|M?/j-<٥1deD(+ G˅x Gbx'R[VV:ead"Ƒ ;C,W~0 +OϪ&ءa+ҍZ|r'>w 1:T%R3uTQe(ԌR#9lߙC8b **a tJzaSX(Bӕſ_{W_b{Pk>ִR#=ղL ʻpQq؟__j &cRS]MrɁ d9< 7Pkbj2[XwGI##+I?_Əٗsழ=?g\S<[l)ѹ67.N2kp;ʧNdQB7Rt>jѡNO19-RG_ExTp񒫇q+(I׆ۚRg*sIJwh)|s?Ko|c NMϋGU4E̔֟O5Ě%K{w(6 87ࢿ&k4oFuy?ڰIinw-o `Tn+6>bA _c_/|Gsɥ H$]wbI'b1Ue gRn<ߴê^O&^Q+//Wx*xjsu}Ql6P1-LVqjWSE2~.AIxMH<,t&Ta.ICLK61_J of^c &ߌ3k1\/Y81s")'iI7/V[MEWRZ8zJI>T_\p_s%5x7/7'K(DH|w AԾ۝SJdK̗xMHRT8 `T } ~ ~2[|S^5\B$ bB;9l(`Y>2oKxZ.{S391DҐ L)l gFn>2x'/g/[ pn(V1r̛+?s\x]׍+F6is1⹤m7uua8E9N~Vq\c%iOJV|M3_w?|?4/[hWv=ŭ:Am;Os#3kMa$;?ׅ> x'y#2ȊvI/%C㟑--=%I!Bb.82CtLğ<]'LV5(uy!ȍ euX٘yRd b WwF 8 9zT [CvYT<=EexaeTSZNg*kkN4߾^g+4mTO\jC$j|6UB>.=y-Oa9 n0 |suaI逑x_}ڶ/xGJ{NI-m.<PJP2<ʬjƬ8q֊5nsXQt E7ʝoN#Z^Ug8B+*.SFʔ |/:NJ#iĸ D$wz(CJ/ˆR}b6Ѕ] ;}I~n FB# s?Uo_> Kuo646RК(k$weT9&ҧ+uI Z/l;IԒڰ3@+,~4ըFpúPUUIթ' )J4ӗ,&mo /䲼F)awh*ѫQWҊpg1rNYk>|#Zo Z׵Ka2%ULx5I-!\ܕ4.ڱvdA'M{ChTx$w6VJ['d*A$H#q&[a!|67.k3{P凲P-ҋpӕS0Of_L?a0Jn\Ӎ\EܕHʟ%?aJJ2pOsôFKkg K\b8U!@sx=Il-5vIZ>rZ54AfXK/J8s|.8OUN r_sj&z!}*s;euh)BaKiS?iZQA.w5zJM@`?G!ܛ)[ks>Dh v $3(??i?_ cվh? 9~˿EmQf=E9하5 Xg1r_iOōnXCfZRxLo8x/=X.XH-£:&IAvi^ֱ񏉲!faOA, aY֖"7VqӊOI^ֱυ|y[-2Oօmzj[Tm#3C7ʧ"[|o|^GCZIqNՔ`7IʨM(!J8Eetf8%v$"jsn,I>Di/Zi5#*xH8`!b3Po)k#59q.](ЦÖ|u^"7qUT&ӂrrrJ1%e q&fejx|5'J9"TSpU ʜe'87$>^g{x#k 3vekϡ% Z@gBJvr:^q3¿x2k|y8y68]p`\2}O #oGi]*-S控YhHJ(&9yeceHg?~#~M?=zO˭G·Vf| ޲ʽcƒ qIgpq[*t*7Ty8M{GAr:'^|o YuԪ8Og[I]skW&3Ľ=+Fu)bZ~F=imܹ^k_ c|?^v92 Vr) O]jOZ/}B/.֋iJlfEBܧvP' %_#Kq^-wVP ̫݅PF k> N0T8{JnUEUFyJtr2>Gb4J15VYSeZuZ]*r'#ȿgC{m& S̰BٝB@ wh:?Ai"m&.S- l n5ar~Z['u6V->kx ߩG5ɶWC$#Nlf.YDca;?(+O!Fj/ f9}bU"ڒ'"qJ/IqV#?僌9Zuc&F8E7f>:S~՞n]WCjf-ơohVf8C#m6!=m ]ȳAt.<1 ;A+{h_O'0:v[ֵ+S##G2ʛl3W_>uv'"7/`:ggvs=e_I*1+E˟Kݩ(ǕVTvm?vZYG/se~?-N> k14%. >2!.~1wkH@.om$Bx <2V6QQlᯈ|/M//-omZk94Yј9"'vz(GWmKuoeiZ&{p \eT9&ҧ|,iz̎gb#7#*A?ZB,Z{qݢuYdhP: ɿ 3gwoIH Mcu!$عl܊u/C¾'}ٿ[~aVP@*$8{ٯF6%윜U5 F1U#8ՔTM]Gxe^kUع8**`Ӓ\ҥ.e'io_ߴH~0MFHev (aGv('}c H&_ޮi$"]Z{s (}cJlWU 5?6w? B&Gdg% _t_PH}ᯇ:/Cq'hucI*ddpH5<_1xY9?r )?k)GFɶŮW&?}%s~Y>]RNeNqw(Aoi%&ڥe&?߀I`{*OTf ! ̠6Z.c 1u "7n*p0~ +|# ByI.b+"-xyHa6YV ''xK$lM|q=laeeި %n|"19"53,4!US{7JSZ5m S[r+O̫yxXJusl$!Z4,C)Z^Jm˚Ud~C|$i07t&lyζ -Ç$ v OMu!~AϫK˭\tb3[0Uf+Al! ~|M_t>sFX÷hCXZIy3ۺnc4> k>9x' c:MƜdLq.QZ0864Y͊hqӅ|cBIc>ER/Ѭ(:ӛjʊ H~a+[rS],>qTTWA:I [Wx_oJuM6 twk:$7Ǵ+mYw\k3񗆼 7i2A+%` [ ً㷁?l?J'|Iku],S@5vpKMs]&x8|>;%iҕ/hNG ViѴ)iMFnoH%G/1~aJ{X(΅^u#W7eef~'j~?XKУ]7Xr_൛P#?f -p+W/ L[?<2e&.yN-- ;&¬X?m!n/dI%-WӰ~|:6:Lw07"iC~m vҿ+W|K<+_-b1ɇ2>?cC* j.] YCs,]sҿs:\b\qwqJM]+++ &u[ ]Wrb 3[G'.FRW8? >0x4iia{o.4;L$ grg^>4(Ǩ|}C%XH-%7lI#`}=yď'x3֕476Ƈ͕2^L%}B\B$ '\lj2N?  )s^QkN2,=Ind;+>~9O<$RΥ8]TSδt' .V??i-f𕰽kH2.e %S?~ƟOt?ډі:7<+jVV75)&M< #5~xG"мD4[/OJO d;80Z~Uy+[,2SaIu0O1pRJ0|R_Gf1\jU'GpSJ0|S~=я_L/W>c`7]]J>le#_x*qG^7M\oXqGpJ ~~_/zxƞ!)4ђkDQખS?h^dR/ anC\<|%qf'&8JY1=eOITԯiE.TeOHӉ8bSNHZ1H{*8ƵV{Oz)r$_ ;o~ PYQ Hp8}? Gn>)'R E\\?F;w{[~:GدFi8{ i / L <;?ֿO4]nW~q S+@ΆEI33-|6M)8{IҚJR99*d!M%)^6Y?r FRH9% Su"V҄)ƜRJ/喙q{ FBIhmIsnNԑڡ~7iΙok[xsS7@__ޭp}Ce * N2@ _>u?kUKtu;) tPV6PB;qĚ>٭5jO LHkD ,_ 1cr3_G??<;[q(h _}q'<4:_EХ}RKȋeon-^"he-B( U>~8gF"aUSRUNTiA¥$+3ƯdXT:x ܵg: JqmsGGO Ηi$WwqJ>le#ۆ;1m< j<{)V,oπ_l|#>(Gĺa&^)4іkDmf=W_W??>u?nu }.R`dtGRb |AZIץRJ*Um%/dҋ?1+eʡ 3Y)b1)VkIiVT|Q)T=5-Zj9evҍmU~e+߁ |y~K~԰Wͦv=\ ivrxwkSb%KYNNwT҄ai'QEY~9SFQ1O]Td#Oi/vR(7.mye\^CQЭmZ|\۪b$fb6fd&^,4u?kUKtu;) tPV6PB;q6;=gI ZTW1D\t=m }ۙPö0d. 0H"`pc45MUgWj?yrs$}> uT.5c*rt+T|#UP1L+E "n-" H_)1 O"D_ίkhTxSPT|x<_83e>=%*y^^.7wd^l4t'RN^ jwz>l>hW};Zu~ѣݭv?,P0 ;R~վf]WBjf-ơohVf8COϭ~WPz=agh.6FHo6],aFTς|Q4M/'|t˝;E֭RZ|)eM 6늾]BrTRiׄU7Zԕ6j?3fUBrpBu-QSib?ݷ2u'NQ[ʹO/:|1k}6Vg]*S[[Gm[2a)YC Ӭ[F%5K˵Mg~Ѵc!P{nFQWwk_~[I:\GE֚GVR[6Ta毣~8|o4^(Ygx_Q[#{i&\#<]x/;jGP+w{p Rc2c㏓iS_>39=ԗ:n2圢%8&g$M# \.k8:MӔ% rT:Sj3Rm&?S?%/%hvlh#3F$)n6̠۶$G K|_Cgl` KԒ+%W62XY?kߵ6pg1 ePJΣ8 Č1 5|GCԬ4c5 OqΌ]UX$ k1kb ^*jbJ0''Nu⛕dwbϤq&;B5q˚ ( 4MSnv*IJ0qlQ.G˦i:B_VGΫvxb}ĪہP˒1S<+@i?_kIc5>ePŴ wǿMi$Sm g8>5rS9BJq5 7$1^4_Fv\N-4)UeNH87.mye\^CQЭmZ|\۪b$fb6fRgo6cIio/ڤ\z_kspc*_GY[{褸G_XcwLi9U ce)S6a:Ua=hBukZ)i.g TNe8L+ ^*TkN,B SN"MIs:r7xC; 4TȓNĬĄ\POA2I&-3bNESQEQEQEQEbm\Wec(?%3~k_~ 4sLy ]kOV{w+{mQ[#Ix^$P ܃23?a2|i-*QrI%\sXʫyhQNM%^# $p'qMe\Wuoiƚt 1n-8g\GcKh&{?i(ݾ_gS&!6<fQ)Ek1Ihԣ)(NH*\Qj)SsZe$t#U%{}"[6g* ;4%ŻrFC+) _4~_>2x yxǾeY[,VFi-FWɔ"$ 2H&0a#|4g?ivMN{,m%LwBB}%r:B*(%O=Oiʥʡnm}0L~½:K꯴!RqȥAOg G7P:qovi9]$# 8TZŞ&C:530c f8'9= ?WGEYͣQ+TdTQ@uexoִ[O yv6Q2]68 {dm<'xuMƥI8U(='/|;Hȫ;gڇxF5E m|⁌! QG 6sfvFJiF)6-"m]XS9n{n:s*2OpZ۫- m]%:Ե;/V^>. M4J~ǩ;d0B\KBcRϟxey T_$j1-Vm^W?<=pb T%ܦڌ}yխ}I'ľ":0Ό:p9k v|T{mF f'9$U bVwu{Bޟhz]{H+dvڙWb=s bܧFRb'h좛i;G<0K: NSqPj1ՒO^LOԡ{y;^9TXֳ`_~ϟm_cF7a6gP7ˆ NEqOڋ |9{%}2}f Bͭ8 UiAxܨWsd7>'*3Y已Ud>[OzofSuB<=IavN%5 Q w⳵hmSh?-+RY1Nl)?۾.Ōrx_tM#kOt>vjiek__ W,u =[ vǵF=)v\Z*VѱCi:uŽ"hc9;H Xmt* PTܢ~Zwcs픍 аxF*rHyto|Uо*~fwVz[[tTQ;.pp;q6ҽcRBni=00sZ7R _}Oi7^~1xˢx+Ғ如9"85w+;ڻ_05mK}Vn uTb{znj_9<<*tRXUjZwtqX_ 4ᒎ Z.]/i^ǩ\ŒA H⛨j:x<7wbY'j~<׹>˚ֿ[v`cW--9" (8\VuiR5&[yZG|E26"(paN3UcWơ]Mg8D;Frpk:BK]L^0+S*XfdvHee$#A**(hM&ɮ.n.7R47VrXq<4QI+h1IYQLfZoˠAy:XYD1hO9#(8[ӥZ7(ChGF7'N"$ϗ{yZ(82B"J_SCKյM5=[KhwRʒ$U{/yI$33I'O$z)Gڏß[]ݎ៍$o#mV)f[hm3{׿i^$^"iH](f'N+#)FMZ1wմj?_2ڹ3Bސ6~_1w2&XnIAtn0c ~QGv/[hܤ΢oc 5m=ׅ(K}7>)dE(C+)t սKSԵԵ{n$fr N{ EW"54tmv|I#k濒wg߽Nh5^NG;K4 #K;XVu -diEj^a_Y5;Pm&=֒mۅ-yrgi|(32 &kcJqWOut_&Weղҟ= QWO_&zί:IiFqk1;Tvkޭmmg^Os 9dgXm@ąP01zVUVZpm}~~_oς /o|M乷Ry{xd (HXWi~(|koצY{%-رņ,NIz+ʰx٥m֫u')zJ\1S"嫌b[2? 2<3g8jMׯu)NJJ\UIJ4嫅5+\5CV}GUKp^YX,ē5N+#!F*jŮvLKeNf;Jʢ_5)BvSW5+>Aϊ_kOiv^pl+4/_iFq" ד\ن+<5k86M44q]v HIiEE[ ~"|z#+_~cq:,iHB)T]C_xpܝ8_5s>^vzuhx7.0 h9)Jrr{S쒻mZ$2|YeA͹JU%))Ԕ)Y%)6I;$(>(((((5-ƻ;AR'?cLԽ _O|=[%uf<%]p2@*ڼr̪b!F2vNs}W~GW8V]Zɤݵ>~šrζF2s}ZίsYϧb6hx( ;o%]U}J[fH┵KّdGWqV iJ7ɿwZ;L/ŜڑSSq|RvI_S&~w~|I,o f,l,exRq'\)k)/ iZ4+ !1x6s$a'H߆l.I5O^7 Kq*b*VI9u#J0\ǕEhM8?lQ9_ZRG}֍IBbM+wu Pi:Ɵ>/>΋\ۜIP䌅* M-7|q>)$js&Ԭ}:|6ֶв\Zp؊ɻs#g2  |6ӓU8sK1N^5ThՔZz[\߇*WMsqNk)*T⒍iԏ#qqz5A5|Z`pxSߋh7z^XXI2MZ"q&/װx~YU>,gWxzH[8-m/O5#⌇R@~Q]ُ-cQPNVѽ=ruW=藓fYslRi(<4^F_3KGx(1sǏ^YψM:G]9o$N*rY//~C;OW^ib豥͹T>FB\V1ҬW[蹔ՌeթR<2>XӌJ%-\)9%+{+YQVZBu# P8ʃ%-\)9%5${J4K帓6zWNv$$; ~\`D|^!h 9O~<Z[Ijx8B`* +fATr1_Y2Ǝ; IFj<*RN.)>U%I3eYmx O*j*3Q^QI(FWS=;O_po|I7'\ӯnϲ.cFځx?_$ m0uj lY?ܼIh$T!pv5J"q"8؊w:2PpTqs&R\dϠc,c#QN45jJ2%NR\ sBQW?5G[ ^&mnmM ULkHa?~ ׵k( ]jķW3>7I4^G81$ֽ_w WxZ*C Q[U(1Jς8Wfy)ETM57%Eh%Jss4k]C <8laډRaN+DRUQ杕w1?ǝWY=^iVط7'N1Nc#J0Bh1~6fOڝ@01gYc"- rJ`b5ϩN3K*'({ҧ)ݵ(qRW88הg|QOk*F%B|T凗5?zTQGVN1RW#q~i_?b>9^־X.h$>#ys7>[)'lj`Lk9hUF'.Y8m(tiKL7,ӿl-x.I֬I8Z)be710 ?hOC?΋/NͼQ%_m|JfK40ʒ qK~?N>|6;kV,H|^w˶q?0ڊ8]CIN˚_*pRJ<}xW8,Ƭkҧ̡R)N2*tԣ$OϏW< 㯉|OMN ("%"W#je!'пk +cψ6xW]:K[8<hntU8#?rxߒap0G!V gjSP8E&ϫ9V_VPVRI8N8A.kz_u#:'i~Aηfi>D/;b8\'K¾ Ʋ;6[Ye8pp85 O/jyE{6cˆw6YljF*n\rdI=] j(P(5O+ҿgMec'VPybH.YV2ІSx|g^&IĹvdXFRISwmwGg|ee>0•JIFU%M&kJ+|M>|M кլIZ,<$r7D$sq^%]~iSSQiE/-43s>Pn-;Nq]dkt՘QEZ/a4^(K%kjJsQNRvHEv~/~Fҵ8x̑aak.*zQBJPM4zѦMuUbpSҔej馴iSZ4WٚEi?4V2xUl+tc-m+`k3~g'gl¿C ?flYBo6hGF Qn?`v NO beI?yHGq_y}a$)Σ rTjCԮ䣳m.~U`'ӝokRA{.)(8ߛK\d5O?~x[ľ{+kxM?NPE$f[{1HFPn?a/ًZ|]?_x;PVhfI^G٦{Xo"8|3>~? 7UhOO ^jZ=st#H`*YpKd6_?P?yxgw ͠(.,i\Фɜڃnѭ(\P1?<_+G&)N ayifFiIh#: ɻ곦-O,m #*ѓſy_+&fgC I>Cs#]c!9~*+/)O>bilyO?!;)wrcNx[%3<-rUe*Z\QU`Ԯ)l]2׆s\*DNt5znkSSz;۳ߍ~O>~h:tZc!mYv902e_>h_&ςgB񶋥^G@6WKmx(BKpH!Q~čKĺΆ$C\h4[KFr#,RwgR_`xvgKavKC;IO4@\j_O<9j7JKV\ru\EiZ)Swc⧃eL5>Ya% Ds:ث)1Txr1_nxE|&X|=^ x"(J8ѮHòb<(t/ ~?ß|km5kVvMzUm6e*#]˯zW鿵j_D|M4yϷt6h11go݌d>2| G⟈x>XOͬ5-Tpۥ^xk,_9O8xYJ)9U_ U 8+'?-~uV Ƈrx8ԕtc4tSma_o&MrG4=bY IÆVwy! s^>c'G_n[j x~QլR#lEd+ C򀑻$hT44A>Kn_ sНYD&ZDaBDK"|rnl-ex3£Ue&pDk8~YG qWx#,NjrM')'V+z*VOѻ$rXL5R|RvRR䔵n(K+|x?$ɨxZ٫r E1C$AVG,|$K0$Ë[ KN)o>ŃHwXN~scS? o t}7E$ԥՒ(iCIx7+&*~"կ4Z}u3=Lʾxm{zn5ڸqV:ڵ2Rtۯ9{Gj}`ĬVaFTѧ7.!(,uRoR|}i+F/w@?,&Ux+N6eɎWf,#XI2+f7߲W~*kxZM=<3A<7W3 :4l 3%~Pߴe?'M[M4V+9ʗrC`1|mxƧu]^Hd}^S[UUm‰bӂ}q4U7Knj NR"N:я/*G qNs_>:\H*WW ZjNҮa^H1ڿOgoH𧊾|2ů\So_HmUx~&1#̅__kFoτ#=wwdxQB,pI28mҼ~ȳ\)O)I3IJђJKԔef?aSpwd)dTԩ ܔghM(hOٹ4 ,;*_~? mm%y Ħâo%{X$]Ol,n@{O;/GSt-vXf.vo#YX0m[vA9y Ƈ^`5jjod۫.cG b?Txs /w):D-jŻksJ3R2ʆHbX^9>HUq @ne*{LV+.Zu}jU,c8'y+͹?̼G1s' *|ZX\խJ.4ܤ{)nzG/ >gK𪾌Z6Q*B ;}; ž,|S Oi3Ic3sx}ռ_a صGTty;0f'r1Od) ZIS%~I2?<{3Ug[xa[UܓIU*zU?M9?ݨ˘\ :h͎HY܀OR'O{OOf+xIJI4]]2HI.]ع,>k-cOƾ ʹ:iEՙ) (bBf~|#x [u!GR\舁a9o-wTpGy k֣UN2tiԦ{Nj~䝯 7cҤ.MB'B<%(ƕ U)G*+8 UNV}weOIx_RUkzyՕݙ[ e9ڪjۿ=gH7ǯxowakme[DlsRA5蟴ŏD?gi-3FIVk/vF<.ݕ`]g$q~_eI$^E&^,1prjvKn Ԫɴ9Fmv{xSK{DQMƭexÕGi%.dMc_O+O:gO[XhG~-;IHHB]aJ}~ɿ> ;o ~iz|U5epń_gc:Ȧ(|Đheja~g_ڗ&CZ'7 ?ցBy7LC??~׾*&OAi[&&,vEIx7+&#/xSjӡ'_js֏LIJl&<=ׅղ'byJsׅpQVs~y7W%E5:6W}džOoIimݵg({0g@R|3?'|Qмkh7ԼQhlӍLy-<{$|\ 8dpSUbQԢ%$j17Q̕}i|>uy!{RkmVD;hH7#Cqexfy~UVd+n1k.0Z#RkމXD\+e9l6qUPksB0[j(~)ω]Oiuj# Hdm E~)8RaJ5g.wRUkc8F*Uy75q^'c}a^Ok^ (curoOٛ\ykg˜G,7Hv]_&$2Kc$8[^z=Ҽ?xVM4X!UąRk7kG5g_BoZd'ʑT)aav7c;JO*9O~&XӼ/ain;}Gہ?xb!V3smE]ZrIU5jO˧{GRa^5ی^*-($84t՚j[,;vx-Ë]N9:"Ilqvd>X d*?c > :ᯅwy:U.MF+{VJ-\avY/s<.o1ң[T{xeUY*%iQ!P %Oxw ?_ []?Ilu)T*X UB-ρh|% a1KکU#JjT4׳rtm cg26 SգVs 5!R4st^ SV)ßsDOƚ.;L4ZI,qM mR\s$_OeUFEmh n N6;!tqʇaiWÖ?xC~*6bVw/?̅0I5?<)fLQ4s"$+)~ݔ] f1{BkJU:PU}s6Δ+ZgvKT晆sW,[J%NYFWW9[*pf~I> ˝go< j-O{帵7qgdȫ,?c>xgO Tk7QPy² ǝv,sY #mEӚSmǤjUY%_}2<.᥄(:SU'ʥ)JNe%*IKVҊk|f/'f\*-|(ԭZYvk=.n;]\y.F_%|-7x_='X:xBeҬgbq$c~U 9' _'Oish}'mGoo_zaxO/<|W> ⮇% q# Q+n'9#:пl?lsgo>1"{u`2h w C~-7ǏDVYmriR}JX&Y2[İra#UămC[Ba! ²^ W֥E%̜c;sN͹?FWnWpo]TJN5:T5Q:jQEsIws/'3G-,Y#z\HHBd)Jdρ~?rj>*k]8/ɱdC>`bHUZ~w9qkhk@ۅr&'byJsׅpQVs~y7W%A5Қ5~žW}dž|QoIimݵg({0g@R>dş (^} K:o3Ɨwb[5iibyHoUQ?o᎝xm+P漶w^ۋƆŚC0~le_ <=GþM;kX_mi 2%3G6dOq}l+TpnrX`QJjZU[GǞJQܮ,RWiN)8ƛA*r5Y\#i5(֓~ڟG{_[׋)ym&58'x)I}۶ofQ̕>?~^!ox7}[XW&ad1E.AS|r/jEz5-x+W>^e&7vJ%c|)ȫajVRk[q5u6]Z?{/~_ܺVK O@=ᏇNaDL^P+\Kl3<آ7Ə|U'ᾁ[_iEh_loB\8Hm' ?icҠ|>KOH.#wݰ@ _γ\Uu*ӎ"oԜ\RFgsj.1Jc&= ֖& kRJNG Qq71I9zO~?NfLjM?HNl-b CYHJi|)٣iFkxUt=&Jb-5 ;S1LظmL/}Sk??7LҠ׭.56*Ȍ0Tk鏊?]'-[^Iquui*K!,I^g3t2XUIU=)ANrFgWNqQ|'ox~'q dG 2^ O>O|i6jRk `HG0Hb¡m$>-ٷixpjLߵwVDE"H|J0 m?)r)U6s84:qάaI)FI{NYRvo?βn6S8 GGέJ:jP$y.j*\7ÿ+w h/c⻳+y^G`0YӮaMl/+3E.č>8m'k?|ixn:j7*m"#2;γLGcg]>[}FIa܋(PG`*e>v~"i(Rk4:]j'8sAEKKj1?I FAJױi:U(ĺ+UN9ࠤmc߇ ,N~?exŚ-lOϙn$X" _u_|9>%2li0G*+ʯ @]@N:iPk:dx^C2M(b~Ug?ͦ,ͳ8ݱc88: EAxO?a}o\[y[q2Vyq|e% 8SU9*IOimr.{BxHcC,ӥBrUg{L;ӌj6\%e.l{߆?~e7,[5,nneOdm&B$=Æg'g?h2~O?i@.5"SLwG0.7H}P ^Q\yύ+7ɠZ|MO MYYE}Y/]Z5%TF#*S$,ĿԼ!E|/>6wIum[j2][lMH/d@3jJ?xCC_ gkDI'@#>0$T 04Zэ*N'4(҄b8))I7/iEO~_ܸQtךPQS)C5)Eu5.iP/ioϚ?ijjlGo4u!lTê1\< _5?>#UrY FŒJ?koFڏ N-zZoF0- BddbI  ϰ<;asƬj]J0NPk6*߃~qF[¹n[фcZK8 R8dMcumv_0TFMY2BzqZNpx៊}3🈭,bƺ-1fSnG߅0[hgW լZiEՙ) (bB ?mٻD|AQ6Vik s",I"BܥK0!e~ogT,$Mj58r4SbjSɨƜ\Y<R1xR(ҩ7V.i;Ny|E?b7_Z7 iW:~~ff64.݉+".0o <-~д5mӵ+dIY8pUXWOཤvij[@aeGKXY[,I <>xxfO Tk7QPy² ǝv,OSr̨֗"pUrBֳRRRMJU$ @dΨW$]:Һt8Ύ1O)SRYM(x?i^> ꚧ-SNYh0lrF][T`zkgcg |?j xu4YቖVMCm.5~|<|ҨUjJ(sFrwjN3w_rV[T5VUR#*eNT׵(ڜ rړ (n?B(( 䭫&͟j^G xŝKQ𧅴e/o2GhuGaneQW?OӿAe⋤czDen)GSb>l+\Ar*TFvqUkS#wk/7$O16!b)խ^9;J*jt ӫ{9J/7(RI^;=x |W -i^I /%,{Iw(^x#P&zʹ$A6aOſ =$~~e>;ּaQ;A L> MvVWKx.xOxEί9bu4"P y07 eN N3/kO{C 7N1PSVwK7da!R"7~uORsJWq"RQ_6Fgx{Rm}53df@z\0Q_/G|QjQzQ+mE{`Ȭ (XA>K/J +7 s&ZMs9FmkDl=2sTӜ%{鶚ID~k--|!ۤpIr+ȻQxbʁuHUﭣ-Ko"-Ǖ1e93ǟ>M'º_ =WL*k$Y*Ig$lW@ [̰Ʒዻmtҿ93 \Ni Ƥ\6٦w[:f<7,xF\+饤q+g3ᶻk];?:Oc}5˽55\0,wazl_ٖ?ٛ { fvM+Ď#l1ؿVyx`𕟜,dž'xlmceUKCFm7SӠҮ쮣Y$2R;q_}Üw J,_ۋ6:p:rRnZfn C8/aKƿb].|6"*rRTRVj_~,ş|.Oě[I_eu}5m6;v@_$PHk'ş귚}?Ҭщ|DRA8/J3kOg¿s@eό?~#NY| yY?ao umFCׇ"L)mndڻ Ixn=\gRXOwPXR8h]^Prgc>*qNǺQ#O7%iQqѦʛܣR׆Ɓ[;ig̥KcV'Cs_F\W9[w03m9_O? |qknĐI$ȶ)<X.", ( `AK?hMWg*>5kVVZޗjK˾E3#,Mڧ!OGqVT)ԩF2u%CӓP=is[MN/UfFg_ IaUY󺴰S~I.NisK3|>ǺpMB[fuQ*`3VEڹTȱgPE&ͮ6Rx-k? j+Ou=C~0m~"63gmB[hnwxF.7nJ|LՕƥz͵Mpn$`sjQ_C'oWiG<-mjTqa_],_g=ot E[h̔bā CqGеG ΢Ԝ9J˒R峌>YrR¸Օ*g쪪N2r9JSm(kMާyDjYUTd$5xgxÚ xbRDe]!sԃ;zѬ/?igZW]JHI9F[˒E_@j~?lO|L˫FvWq,22 F )`JpŬf_**q;jJpRQQmݫO޸ǜ*XL-9QL%:GRPܯ(ޚE讦2Xrapuޭ!v+/ `cĿiW:|;6D+9"D28uG㶃ྻvWI2QQ@>))|5xI`ԙpL]CJ[v~[/2&5`XI՝aNu&?ej Frk2Ϥ_rlf<%E:*U*&Eei7&=^g%ĚuR,N`UcW.V/Vy [iOnzdѯwQ_W헠x_?'9^7Ѯ]2v?WmIgsm$WֿVW t xlR\Nz,cMzU4aMWK-xB4Czk-~j22FzП{o /.|1GޕN2mj+zQVV365ޔ}j.365~ȥ7 NƤµ{S zSXQ1E'٩f5iڗChFfƣcV4f?!ٙ;+[)" Zd4eoJ.2m5Vҋ,zQJ5fM_{R)2ޔc/ F>ޔ})5.ƭAhie=;v5jT}Tc'cQ[VfNƥիooQooP;^[][]jT}TeymtymuooQooPWN[e ]d'olC -!!(!($8o» :׾蚇=yi'  ?#="OWMrcp10TRIVi5x(zII=IQ͘e\\#ON3JQRI(IJ2I()E$՚>UqodKKmLw+4r\T`S+n=)_ۇkѕ N Yg [oeo1 ~',-|4osOo!ީI~[mrJHm]11K$Tl.~\W| 2~^)u/.=)dLᱹrv^Y)J~kKU{8ڣZ{Wo *X /ɉw-UݻVwg/)?)6|A/~!g#AqkvnQِ da1|g{|~׿ !61!jl|0 ۷GN:Qb)U4 Sqtj}ΰ7exy}9|X8BIF w޶v_Y^jߎ><q͠k \iYZG-!B!f8![ SVǭ|L0iOi~EWEؒj"r 1I膓5g3\=4ۗ%8Rwny[xY XhRӡ7/ft8q9S㣓^|~ïkɣZK{h$䴊YFNv<2sψ^8CWċUKH22"ƿ$J"T @r ɰX깞 N_qTwwy%wv}M~ǒxgùfe[8˰4bk_aWii$Iui7v{g1?M3F %WХ%'r\L Y7 B!J?lOqZݭu -m`RGº \H?&&xQхq˨IA{8{ێ6nR! =8etIʚP$mѶӪO|*>6|⏆_ #~Tn̅6113Ɇ!H_Oҏ$z~<WBc:9$J)J-˸k/+# I()SJj)%}CT @ zGdsc6қza(}ʷL vGzȌCkC[JC`zʏ$w/=?Jscc=?JO(נ~}Utjx@sc?ƺ1n=)|@saƏ]'=(s4}fD#=KjJP FD^_&o-E}FÊcQ9[kTz NM-!AV<3ʊHIVMM@'Oڜl=P*eNS#F h^Pi=7!L$`UGY1cUI\=+GZJPRm#^!I@HHj6!ZL:US6JdrMH֟NM!!ҝ`ta(@=j&\r*Pze qO VLy)ِԪdӂž {B sJ u&ر6 KR;A*"VH04WشZ]Lc?FƧo1Yktch ",Җ .2Pj6B:UJԄT=i0`42,jEN{ pCށw:QSlZRh,PvpZiCf\{0)jrҔ&: dzvթ65/ɤJXZrx w?< p(ЀRj@ykt !х?<?`C Syktykt F-Z__p!х?<? Fթ? c/WUT|٫'9T)yzU[hI),Bg%)zdC M;{ili7 BRchC*/c?FWN9rvjjR ipG4QF'GGG;ҥs RPM7z֗2qRyku *Q Jyktykt֗ ktyktTc&FS5JaRyg.x5^ȸqV3*[tQ3ɧykt9:Z]Z].:5<tycUjlO?umIZ`: T>cU=\}))L )' $(犩 =hHW-ҤԑNj©jV\~^y.c҄sWq"QM.9Xhzvũs֤ڴQLSETfM*޴AKPGJ[#4%GZvŧQLZUgv6@IfQH%q/R'VI=*dƁ;GO$  6MBe UĽR&% M;?ӓ(|?<?@<sI0{ҏ0?`IRz8U@;?j@38jutU̇L `\ 4Uq'<8=h`?Η?C1Asߊw n EAj>$Oǭg'?7_[>#xSO߃<-·4Dl ><{ޯcT(k_ajDR-Cn׌!4.4=>FHY(chBngf_H&, QFeQEEJ(ƴr/uMi/vNgc`*qUTi)UcN*:q)h^2\/rRm~I6*}>0x >C3U)4KL#$J̘?;d/z+/?$մkJi)(h;oSC#Ia?085L6SW-5*759l쵿2jֳwxa* }%Su*%qi&Nx_#L'A>h"wŐڒ.,CK=_ ,\H 6HNatkE)Hd⵵y$9p񙥖`pnp8?V㇡R2nJ+N.pm˨ԥ`*NM:u>hBnSQNE'{rE?V:v \\:QwwsUP ,I5x>2W A}3X i ȋ"PO^_^.u}㿃>ob.3ȶeݢP.*Rϻ?ਟ}_ -|k׶rITw7mYp`HGO͌& V\(JhQ>us9wĘMPJ*JtF(TƔ+')YA8u߁?|-kuxÞ'UZFF>els_ߵ~_ >-+–mOZkex`3!.ɼU|\k9;\7UOPpucBqZ^ϖST!Ss_|6w?5߭}gW?É>,6u44,qPr%qi:cMԢ27Ceq`@$t=؏=ି|'[lg0-m'n*@Gliם<hP&:r%CKMs>y)$\?yڔrjT 6XI5#gOQ\ϞJi5ɫkEw~#_].m_S9&@Dq.vf!UTu,@R 6|557%[ܡ,* W(dpdP9=7aѾ?o?fxBcCyZ#^isemp,솉 -Y2Ч^77U$ҟ2Q)E($db#qVSSU:|#*ͥQJ*}i2QWvqqJ+mP[udӹ23Gğ-kχ~!i-?Ja;)e6ڃJ6"$U~_<)(?~hѝ+O,z\b_.FFn ~QАFxa0;NtT7$ttGnXgIJ)I8?s,&fGS>og6CRQ2~씔┓; pUAOdo`᎟Šii#s/l+I+s7l?f WFMK➟am_^rbdi7WVgH$Iӡ 8BtNXϛrƔV3( jF5!Mʊnԯ^Ӗ7J2ymvJy;f|7G|;&obփkbKfhlc 3Dž>3Xk m~t؋)uitYG!xQU|ā#n9S(r8N57?i(i9F.*Is>MeI_,j&RKBL 1Uw9);Mi75SNi6oB2mZҋ/J͔5*̑ !2.8& 4kr"Z^*Ң|G=?jRVr:՘7 ~kI:V=k()2KPI:Vd(YU$J'ɪ.>jhDqr*1TE)f֕Jʔ:bd4QE3Da8ʹ5e4-1H*0QM= ($$թA9TM e4'5_u($3F9:VOYN,CRpj deҰRY*KSJ昒,n)+)Cf@HہiJȷkGށY8ZɘV1UMGJb4_JE_4 3 Vp*K(Κҙk1ГM3?FQL˙VOCUjLS Sgv4&˾qQUiq@zЅXիo&(%?~i|7o/wEX^Aua!S#yV nؼ3>1@7ZO'/ΣIcԯJ\pR'ԩJ2ji\>jrիFqjtgNZN-^7k_5V-R[ϰ;Ph|ɼ-4 3x -xᇈ<)a;y tzĹH`' 2mpPU:@SBҾz~pʅ\?M L<-k1\jwrml\k `v /H&ǧZ}jك gǩ<8DWw)V)Qԩ$Ȥ9I"z+ik-IVNh:ՒUU55zTQmy_ Vį/[-.|cIp׷pOqFXX[*r׍>x SV'-m&[$G"&0ILn^EO 1\UqkNPqYE.)K|裆:;^.&0S.ɷUOrI/i/>.x+_? NCr˱bH._ɌI?.K3jIQP? LJmo%ַqp"Y4I DQr1OB/JS:9wy&e(?2U*'N|OsJRU9?[ ᬾX:3JZ[S5Qk)JsUyԥZ/A|<3t;fӦ WTx(vFVO~B{P퐤A|)S嘢a(E9j z y?YT47QխNJQ,':EU;ɴ_ cZuTRU_%zGZSsUTUK鴚xxO|U? ^+j#X DXA$ž>~w>x4ٟ詣hմ vqYr~|ԲzPNNkɼ2ȲSèrI6r+(k+]$>lfSt*hTAoeFܪIJKρ<]xî#4k/]Bo"# )èψ~*|9gOZioz(φBH)U K:1 r\:٥')A5h5%87 >EVwATӎ:u%Rc' Fi})u{/xjZT_5]ZGkuPC#`r˘18g_ ~ZqڥƲ&L QY"XRk1qvӑ|QS!޾7<26"):ҮFnR+TIB1jwJNN*N〾<71XLz&Xք)TK֫*!$+:|RQo:ln xn`:ƪ'rWpm}kcū-6,,}tiXu6xWkuŊs$UX+q^5U7ZV99TQ2I&If^ d8*5&NyNi3VRYN2IE$mW [QO Ea{E4q oφ>j'-#fA?g{g7}㟈:Ud~p]8P|\TKʒr|9F1cvOSs]Hadխ7)QPNSo4(B n)KS._m>4cjV[Cse&XJHxO5?gMIZᮤXb'gm9Q|"oҐ;/z?Y.KG թ(Ar{bbi]wv7fT3L9Ї%5*է k4%9PpI{j}*A0)VDYD9ԉEVj$ jZ@1FjjFPx[ҡx#qUZku & "T;S 1i(6xLZ Ij&~q5YNE ?QPU',PoAJ荿Fm A֌ү/ڐjk1{2mj܃][{SEJHM]HJbQc5Z٫͎>YfCm<z:_#M񯈤\t]5J@e0Iyk9=ėuWFymzv^/2֭n9S"#gK><s~m9\ͻ[C t5~wq٬h,O%C&dA<7{x'O~Rx2M:Y.EwȎ5O f6NIy;/ŏ~ZFcqƞ"/Q;ERʼnCdA< E&jIVWW|+7NӳnmtKͽxO"wڤqs;6?ݷ{;8%Oï&eu |@UƦ5R(LJ˅g'#5NmGUNֶJ?;6;GcS\\"ODտk;{Z/6J\yMr[K-mh>$xV66ڋGIkh68ey-L_׾ w|E'$ӥ]G|Ty>a(uWF{wZ[Cҟ8b*b?qiJc7Ӛ۵>J,.>Z6{hX?h *úDž~!xSfk%8BbW?f\+>9w~\GOON򽴗em,ݽ-ȼ*41mFZOiZ;7vÏ:u/iW|um;۫_Z٫X'~X>$xV6ڋGIkh8dy LF:pON'YƺZTz_{֯xMZӣ{s>7w^ 5 NKQur#So~ |G߾mwk%)`>-94)5. jƻViv_Zu{P E 9ŵM$KvmM{;8%0ß&M |AUΧg* \aY 㸪 ||_L׉Kn^%ʎqθdxO1 jb.|ԹM[VޗZt|MrRϢkܮj׺Z ּKxQhI-mId'=u6h38竦ܚ<@ʴUՄwLFs=)H5mN[c@ ۀ`UjD`V|Sҩʙ3E5I+jHUZ #$:V1fu= ;UIa+6(Zp>,0%k:u&5Ukii)ݣV4 Fc$e1 &_**?h5NRQ徭tw?׫Ze5e_TmF媸y+];Zԝc å㟄|kf2Џկ{K(XHI=/.|_أF%?xS2(^RimX¦7|ۉAc*%֣:D*RۜeJmCs\N {Z-R朩Wj68v+n2c5Aҿf~,~-f>(j~se6b_"6RmȎ)>F0P 䏕~#~Ɛ- kƥq&0~ɨ;d1eB\IB0ȼo3g:RaQ ΝHBVg(FpҋxѭBUaJ*TV9u%9F\6f?'-'9񧏵<;XI xeyxC%p[p\q7I>լWY,]GqniyP o-sH>˗ ɵjZRj$_.mOu_p1?Ƽ+q[NQ:q|u)*;]ɽLedWwڟA|v.ml;4@(F?xK_u,oJd~Tm.he$-τ^$gԨN˖qZeF<rD:ھA[]fcn+Wޑhn$Smw_|'f=7|A?>^Ab6UtGc*&# J*;&u_+浡&ۍei$۫%j|6g&c*VR7)rb5{X5 W灿cτii>V:I5KQS$BIoo1GzǏ]o,;yg7ċSP(Pw)BFG m 94tFMTn6%hZtihf\Bgԏu[(ռw*MF2z7dK*pOk6?V-b;(n|@(pGGZPđH#eX{k`(V SSQRO5cwp03({NtaSrg{4M]UO /uu[–?om-CNAHBѝfiUPYt|m oK{>xLP/`SX ZyOb(rJdUiisTJ.Q\!%?gŶb~\+K3sUsF)ӦΜ%:O˷L T>?|&;RcV/lYɦ΍w"E Y| FD~ƿgjI45iR.{y $l)o93͕`8{ʤRSiTsNQKAf?JǼ5, RiN hԕHn nqQn*> j;~QAp+cU>h_߆~6~&׬ʼn--X5ե1ʰ͆# srm7l5 {vi1,inld"+1mye C^ %AQ*\O nk59ך=,o冕I:>t ҜjJkI({KN3~| g/?GmɵmE58$D"Kҷu"y]*rv*7|o~I>~/@SM-hD74ѕ,#)Y|sʹe*7% Frc)ʜ^j`^I9UTe%NnjR!*. Ԝek5ʤWbtFIX*"Y$a>+ßZxWW-[OHKFW͹iCžO$M>ǟ> |AƷOcuchekX-WL_|jgta]B><_e&^Q䮣(}08ZyKpt2M_W9=AB^j_-/t˹4F-xRve ~[9澾9?"?Lu~-ꩢiZuڮz3EglQ\ŝW,p9۴.$\IeyZVW}] <GsoҕWRJjVWݏB)njbj><e+w tT^țcP2~ÿe_^]Ɲ{]FY7jXe[yv\eO\>}b2ʂR2('nY$ܹ`ʮm+Yo?b1T:3ǚ+BT*qNSQ)ҵ3P`_~*y~ ~"I'f6v5Yr"|W)ŷm |дKxo𷂵fѠ}/+"P]FXab>FʼjNf'Q&}J{_?}2x.j8^Tާƪ{Qm~Px-s ਿh߉/n<>nV$ p;~fLпs炾CC'Bմgu9HgHf'8]nEaGRs*{IRnenV_K&_10YH. x_ÚM>Zvwq$lL&k1\L{ :nYC޾v o*D2Y;eT$c'{t#SmZ.NJOz&e6XQtNVڦ8(XZ2I(b:Wv>x3ž(ԼB{/S*]vwє.*o +?dSOf+FJKK9Y4&KyJϳcl [E4}hnj'fX6_BpB4%N3)5 -FN2יKkEcϩ[[%:URR= < =*+S2go?/Om歫mQwwc¢"sT?e/xsY+XO{mT@gdѭ삝J$fG prY$Exs ~_˒Xi;J_TiUu%q7S;Z7m>?3L8r*J4(司* iFwKy¿Xÿkҵ=3ğ۶_ct͊cWKSnlBxs ax'5{?¾Y|t|ܸ 0\]i:D"3]h<2?9J&UYyQ2# U%>_v J3jVVI_F8kdzXJʧ/ܗ++$6y$fj+ZB_eizsj:!)iUA#;p~o o|y/zܚehZ\ZVZt r %SŝxǑeʍTvK)I.Xhfݶ_I.3Jy>eVQ% u/9.1Fzk5z<fxo gTQRT '$a$ da{}+)Эl-pP[(Hw|rx8_7 VìE9T|ܼ5yBU#8×Pp̕/2bʳmǖ¯%NUcR0'N:V_*̠U:R m-ԡKj~Ok?KvWGbK[Keo)မL΃N8O~牵-vۧ-EOZ>]˷$zg?I, <63T4!^2pc559+VۊW>3?ge԰+-֩>"*BXJpj䓿m*w<@y¾-~ϖui>6mv2ȪVX*B:UdeoΟ:j.1Xy0|˒NS(YI5Om?~~8N-8U4ئLiv{49XGdf*~\?.|uP?H[lyJ6Ꝛ`Q^h|pӭ%<4&rfc(x0VRѳZ'e<֩Z/~:tyMQ^AEPEPEPEPEPEPEPEPEPHzZCa^Zޡ{h)fYMֵ9Ai5sMz/ߋ xxn.B&7.Ypp;v]8ln&)BJ4iz434ž%C:Ibg%tO8#7yEL+|qss^obfSu)ܥr9|o |+=I}2ocKۉi)!$ XrT?i& u?fx[Yˈgf F<\dw*{gC;fCtiUJ;v99ʦ騸~~ڷwZQյ}rkFGx` ,GoyN25LjI|?;J9YK*^uaM(ϒ1J1&[ɟxkᬚIKR:1 {>h1Q/N4R9y~xGo|X|+| '6` @C!f '; Q?xwkΩHdV:@L"JHO4nv3f45wKJ.,BYWTgFJI{EZɯ_+{<·-HԄa(N*XB V|ZɯP~m5}U .Cú׊, K-v̌#+:ƻGg7 {~w?.FKM"K[H^$Cs:t@(xW0$;ps׋rdF.axZ2rr7O{?bTJ;/ᜫ0UgAROznBST%Ir(}[o|3ΫãYYLSCH$l x&_~ߵ_/cxKb[@V8עіk4ֿO<7e|֥E%iek_WKs|>qXhphըr_?`OwC^dRkoeۋ 2.|mw(wkK7/^Cg#jxm* ݰ;ū_Z=3Th/]%刎"͏2.<\dkG #,L %:tChs4ߙG<ҧ{U|mc'5j*QISBڕ+)ǓTZ[s'O_^!m:mN} 80Dd*_kH/$~g^5mD/t"Ȅ@n.L»)z]9Sk%*ab8>jZ/{')ȥ6y^UzRO\NJu?b >'Z& |#iR]/KfU5J\TTks+'~[_?B̼%1|".uJ4TJPdksU+ᶇft~ AϏc:^}ygm%z}g b?~Cۨe+-"X]#O 5]RU-!݃_]5E~;2,ʦk^Zr\F *ЇKSNW?-¹̥UW:9Ԕ;SQV?db:uc;[K֚OYբɤhǜ@Cdo5 ;ͬxk)X 0`La_xj$G5fG 9-;:n2?u)E$ާ _VNFb>ی8NӼTeM-ڇׄj(ωge&յ$kS>D0J_!]ۖ}[k-6sC 4R`z73*Ń_k~2Jڄ7xӊkNiN%d/Ï<9:*iB*Ztӄ[i&yTUy?(/=@w{qg ۀʥN"Ig/g o㧎hZ pIk,ZG\DrP)6cU#9__|7 xTk?vaahAonBEge|x-G!q*S*QfӥRNg̴ӱ!}pn[S2QITSڝ\Jw:-+_V B=e$K:T1 (a߼;@.>)Zqk4j(ظY |:gn$"\ʙXW挔%UTt;II:Q]s'{0xꙶ[K4&*QrFssOhρ-~_Ykm6绵0G #JS|iʩ9ە]4Qv X~<Ht$uͺZ̮':95)TVrvm)ά۵QV?P௣GS u*T >eVi6^vRU~*~Ÿ~5o{Ag 6uJ07;D=U, |nϛѕr+=k :x8Ӆ8{alzvxEg^ e- [D H_m_ hR4i4iֶVv:jHa0ʅ+ s1))G!*"5Y8O ncXUŹ{W AsTSTN*J5Sj\oI ς$jmgHnLʎrTo{r4eQ[N4ME(TҧM0ܵDz1eXhJaRn4NRQ(ѥEsJ&guoLoY?𭇂[+LAknX^ FX$e 5tEԷ_Ot5kA3nB;+8U'`ḿ_,|T5gGV> ¤RRw}u?sx_aKNQ5+F3;OٳA |A^ym{Yi[OI$$Mb6Ѷ}gߴ<-kBǑni i"/[jMp2vĻ+!bÂ@%qWWxϣ]S̱8ΪP(a۟#ni>Vr]%y\o7 نeO6*TԔe*;Gi5>h73j߀_7Z :}npyB*eq@8 ~^ |HԵ_ &IL\K)#!kr"fmpJ3or~_ O-L-<}K ȹwf'#w3.()F8U- tRQxm+DBהqtJgR-*Xz4qNSO}8+&@I+gi2;Mi[H݂!TON y_'E|Mg@xD|3ZIz.dah Pevިͼ ȯ]_QNZ֮%yYdbK33Y'&Z<׻C,$ŗJXjXjFqF29FIMr-}詗(YV'Z1% %Oߥ9IMrE[_ᾓCRSxQfo28Va\o7s(uC42ꘚnGRWql׷'XL2RoVU֒adAY;^xg(]<DLo=-.YϘbM3rx?K㯅g_ڃß68ewFI+}͗۽IUx4Yn?KbԔ=?c'(]Ij(pRVo9'ͳ*9oZq.WXt:n4AJ1qijJ~?|G[5m i4 KKm#|q: XX<ʙw/ȟg?|VFnuLK<6܉&x|Y~v>&"׍xI~]C c0>_8x6\Y<aPp ac'0%51˓8WG*zd8Xe'zJ*xkJXnC)IZB0TjZjQIF溕>LKmtPtv\[bE9Rr9ǵt^Iе^Oi} cJDʒ8!rB(dݮҶ]/_:_8~ZmaJnq\7evQE}XQEQEQEQEQEQEQEQEQER4X}ց^Z*Tj܇l 3_h4yEVRSҡHјЃUͶ{Vю{Uš{TzF&ʥM)QM\G*e A?ƤL*VB:Tfm`?&5FD5d#\W(L3V _MkykuYS|uyj2uT̨bZU5l*sjN .c҉⡩ճҕW.!Rejy9X\+UV-oSwZҁ M /)&o𯻾&~~&uoHد/aΟ6 M 7L '7MwG߆~>*U" բ,4!YmeW_rAҼk JM5 -f[Fpw<~-xQfԳ>"ɤL#6n+#'wЏ|}I| ?eVsx(5yT&IL U2`V"l:K;FQw8h6nj2̟('-/_ T/jZBP')9]F=YJw^kPxx[Bi)m0 )JVܸRϠ?.Ja3Rda< Gi7K!/j׶ۉKFdUer9 ~1j5֕=EmZ rEQ'^>]~_}h%i6Nw RN]UUi CLAzY)'sȶqO^*㶙Dr\&%se³q_7#m[TS?4Tkg?xK굯Y^kN7 ?e>8[Avlci)`X([rK>_Hq~W:f<`pX<$xĹS*I+Mg,!8yzPIk$d%2J/?-5xV^cȆ "]hخO犵χ= CPKBqj23'ߴn㟎"<#S4)4IJ1/ V*soSw/?uψ͵楢N*:(Y#Qw`̪!k1^38~ *%m'/,RF)>3ĘN-QЍyu}bMFQQP唝W/z0O.ūخ2Y"pc;Qr'yJuְ_XKY DDeQxbʁG#5;?hO| ,kKmeGܢ5Erz~)|o xKΧ%>hڮT)R=rʠK OK  0ϥˊ sF VZ2VoKgӍiYfm,JT׷ڏM%XIr'%| 6[4u<귋g,X:C+FG(^T>㺷/ E'g $133[ۻ9A*@f M@C7<1y~k3k*km"WɐNQ{Nf JH!uxۙC +Q\RF5߳O8򋊋匜fg9."tat*|٩)s'(F2rG'>k'KoL~j7 z־⇆%G7icm wsg'HYD*?kN\o/Y&%4/dykR[ :T҄+N<5UE{G欓NW;C ѧO[I]6,(R s`xZѴK^-aK q~h;'Sºi$#=x` 9/#.a'-t?k$>m>/o8Q; dH%qcefUxTP…%M)‹IqJnMmfzgdlVeYSG F0F9‹IrtRS~GO(,/[b/ψFZݭ"0YJ" |Om[?W[ݔ*C6[ٹ)Lxg7bL eT%:~Uj-BO٩5'(%g!'zFω- y syWl(l;Nz>#ww3gXyq#G{.4GtbT䢕rPLD&NumFOU -7zk,:qR7NTNdVWv?OxǗRYxEfxmeeXqjt^$> J]`?lL ݷۿ89|exUW-Ӽ-gg-ڔeҴE(H*vܖmť߶g(oF'a JXHcY@Uf +:?JեiѩJs˄)Zi7qOTr=L=Z5K[9R/f]_&JHֳ%6vJ`~Om05֪3%[[!<݊Sh|V_-fj\ЈdKxAXPa@9-9W >U7.Q乜}WGg9}tiU+TJJ (Nr\ҊZ? {#?'Oz/?uKu5\.3͒@+~(o߶(nU!8BՔ1Fe݌a#L aRqУN.vUME/i2WxY^77Vql5JTE:\rTQZvqH<)GΗwk #c42Gr$e 9Z$a+4.-C)BBn2"y.z5'6"|^Oj0=ޥ ĂI*q6 _:dZG;o[]D. D@V)Kq%8bkѦITJ;U:7=r[N]S _f/ F8 QѭzS^ яe){2+{%8 >$xLּ!KV$Oqgi4D@Cjʸ^y#k @>%m#>zmRh L08`CJ[;~:e/ ˩Buk9I S*QQVvLLLJ PR!kӂR;mɨ).M,?fo~h]7NyVV65T ,9&ڏ¿^!4ZZ[6\inl Xw $~|-׉ T_ c5k.AK,!$E~|\wo]\Oi-`*OS yqnMw1?$UcRd( ㎵x3? ~%x]-&QZk/!XF7+5:%@έ)]me<ā/ȇdt$xg@57"kXi !#@Ϗ[Oo]bK +VtZ~Ty60K9U`rJ kwi?,jx+Y-Y&xmfURdgv%>?̛JX(~RIkJ^^ge˻G8Ou)F2I[K87]~jkr?dnĠT`A#l,@'W[OeF5o^H"T">ͬņ9I?d?95_7Sj)e}=yUUcܐF yǏ(D<.Ӹc#=+|`|)^*D'cĀDICaAi$+37qs_~ hO~9GY% Ո9}?3έJi5vW)*Ic* 9ʱ91|N>(_ }oA&,RͻnA$-v*m_XdKUj2p(rQFZs+|&O'f8OxT'䩨SQF}c$?7O~յ0-6S<$,"@nA?LY;vlZ+n.͌"7.A+gՅb|@!H#:HV0oI;'$xo;:̞:rUMnNk s%iJG炾?fM<a*U!Z)F+P<|Bc6}ΏxrO:zY\Y!f4G>t.E.a] QêqXR\R(T'\jK[U}N7m%yO V\op4-u|<+?xTVy^i>c\nm6ё իxIum"CRȏ,YHՔ`)$7kw h+x(o,F 9l'B)r[f#poVumS[TV{{m65t O& #c"x}#{=R+K[*EWw 1T@*4i5úį$L-"k/}GI}B-–ѣD# +>byb[&3I{."? * QTIE4QI$Il>O)rz}u58ӄdi&Rە(_PNjo~O|HS:lr:,InwDx`I);O\ש'_ /&a9{+ghVn=I|MGy#ja[G-GBNir{.':rs}>U'nf+.nWHz?^?/;O? u)4bx5Gԫ+$AYHȮ !=jtU,>" PiŤOFz4֍=~ay1JsN2eԓijZa* [OGr,,[Y%ۄ;*Xc2k-'?RXhpk&8(a&(fVCt^^1P2>J1tTܡ_fRճp^pmCcJ^㔡^㔜MYu_*?Gh"\V[H4 fVP!q_ڣu!s &Q!L"+E#qUtTkWX|5L iTY([K~VxǾ+C9/u88CȕxP+Ƭ")U+0T)F)$IhKD%6- 6 QbQIY$%KDThF;֏,]v{3T}/5SI,#T| +$AYH\qB)0ōbh$qi4Ѧ5Mvgy1t82IQjI;Ѧmoڋştϊ>!c++-mG)̈)E`zb1s|;ot%͵7Y7+㰌i|uT0ԡZ *T?8.My.ܕfZO.|6*WAO &A:v}I+ZnKWsѾ,|_+OZZ a ]$kO;r{^~7b׼Cִx4 KEtffiv;soֽpU*t4iE]?uZ'K=w΍ (J85u5=aRWn k$nݵ}]8nk}c3U+Δ$ܤwj1M_*s+S||>k&QHS;H)HFUAx |A%s_0,]V9mk[ 3ۄ+ѣT=A i jkL̇RlN U(ͺqnqVjJemo +r3tRR*Vy%ݜbլ5(_iK>,OHtX&Z"a'-XW@/xk➭V7a>_5jk@ QckQ:Jj~KMe'Y7՞vY`q8|n+ 4v֣u)=3lkgRo|5F4oq``8&Gnd(6h?0Sx~?-wRLjM%_Kv:B;HR?n_ڧ>1x Iu.tv[vO W |S VÆ&XǀIYp{87zht?x=yUVqrt8:n75wZmO@E>gm`ݽ+OQgPUo䷲{J LQMFр+8\0F; N|Ppv=-K/m;ŷvv,N"R B2+ '?8ZU@M^'2*Zrpԣ5vIJ:j f_ )b}:ps}湽F2I4 ~&~0=khNHO[Dќ$r RBі?lOk4~ ^9xP{I{kKYT )i6,G~3ZpWgx T+ôƚ2'g.fR1IxYC\e pÚ5'UIKگMQXRI2E&G >_A+-[Cr{gylm0*jt :'a [=GҴg'n+'w59CFƯ''=Ͱr;ǞNײ{1pO={7xHF|nd{+G___XLƚ=BѲ}Ǜߝ'=ׂ?m?G]g6um ^lO6Qbʪ˖ͻUnjіӄl%km)]e=u W5[/*r3mmSkj}?_ۃ]6Gᔒ=*H--+T H##n yƞ?P5jW'3!n⡙(+%ERh5/<)Z<1Qi+-)[klȸ& =ӧE J+JRM5)Iۿi Ϟg n̗۽]]M,F`<3b}ƿR5G#fձנ] ̛e~9$C5u#O8zA׍*+?h/kR<.E6*Qo•<e j?mV<.E;< -FǬx_?|X~׮!dKXUViRo)uczT/4׻,n|­ 50|>ndly1'rs|B4>!xƩ'uq ;"TEP+]@=_G24L5AdbJrV[J^WwYW8ƶ Nť9s&-/yV"m@"6)89Z>*|LƏL}~YbHScq*3I'eSQ4@ץ\;TS2\I-ٸŽ,lՌ\T칔d+]FN1m^-G|*?iOnx&y\FJl*n[f'O[yOL!ӴEmV) UW9eS B*_-ӆY}NW4R㬒m]ٵ՟pn>u*rIrMM^ӕJͫ6GkJ~+h{XFw$ pAl3H_!ٷW7L__ZDzck,&ˌ,UUIHjq5XxntS=ISQ~˗Jjr%9 7=SGWh{8t*1TymJrN*:q|Z[_?WG V)t V搊k *~2஋>m_:FņIBup[# ]xھ6 N0.x%ZZykW+8|> t')SP状]w3dJè*50g_++LDj_1h@ba[%5@*d&0@ 5*zVRpj-*2LjOڵqOֳuH0oMn)05 +X3i95kSB%G!D~<?u FiCGLJ_z<(Cc$r*?)ַX?MG7%~bRSY_hK)"G5RG4ȉiw4^jep'yT #cQ}+$\zPn(q/CLJOQ-"=vOZA@?\I.4o?{ro8SMcy֏?ގR5Qk#h._3I ,uI4cqNJd)|m G8k;>1ٙ¬%~V6<ߥ1ey֏<՗yg&%&yjim3Y6#Rq; # sJ22Y^o֜&sf޴oZ+-Nm>]Z+y^TeF17 ''Ud ZsOzyUza/CW_X)E@hkoZоϟGjKU)iWJd沄NW/RVWh"wPq47-881Yq4*47-Gh(]/TdXjA>m, td-"2>eSi6e:[Րa}ihڏ0?iXO%/j9iZ]VwifaK;@$zԶ)j]ѹEEkiwi[\DpJOVUO8҄\dӔdtaQ;c)Vll TaJn%\-g HCw-EZ7(8Aʋ֗+Yq47C+R Gzq 654yZqfGY>q4 f98?ZIj?(%8?LOC~˖N৓ 7+do=g߅şC[`'1<Ȅh6y\O-RN5STRqIM7e59Qs uj#*(ѣi9dԞϺt[?Qb㎾<;N NIOSa4W!Pv2Nr1_|+֏@k7v06k:^TE4gpH 2:㟄H +tⲖ$ReQ%_>r.|!՞ˬEa5Qw9Wuv\L;g/kQΝ Na҅9ƒzmV:򺔥/+>[xS!F0Ηny˗J"\ѕIE>k%oEُHtSZ</K-a{A0P8+p~;g_Ʒ|RI=4Վ 2;!si;c|AxGwC~ ׳ C}'ktst˱BNv2z} e~QsmLj;qa^}og"2Z'tP1G+ȸ˧U)Ic,7-:+Jֻ+jrIG qvy$˚|%S |/,GTS[U$#k39hk~cl+y0{/(\RB?N??,8Hgr+A%=DsHPHdO/¿ x2A/s:d:fa>/`0"\@p9`H4Hh-OǷ%z6ZϨ4IR( U/ 0WIw:ԅVʩIӌeM:⨹Zݹd}[^.bjft׭ ͥ5%h2T\>*֯%nY~Ҿ<-y0xR,7_iMB-N-DcYOe;Jx|!|B~}oy<( Nj5zO?|/1d5[=A㉶m2HmyxL.]erJՌe*z81HJwo  ^x'UrTc6բWڟpu~ ~!j i{keM:XLDw#\g_i?R~^9|=jWvrZۤ4sI1+;B0;u߱?1|!u/gx],g;ۥ_4M+EUn<>$jy~hz^j>T#i'1?!|0W f\gŽb11U*N)R1$84eJћ?+67C*YT2RiBh3pqhNG?/5CᘼUeB9?(fC1uRk6H"Y<-~ۢ=ֿ'~5>6&QMI"A3NZYe0%QH 1.7=ji9[^I9KvKC8YNbkEU$,"+]+-__ !kgxRa)j3mm*}O<7SR5(2m Ï*AG F}N Ҧ7)cpӋw|5§|дayCG'~Y,5HdᯈUCsӴnf^Trk>׾kx^6cմV6B<2;JKW}rO[jy2,Q .88O'_ ~ xkۯ|'xV?&hXttі_zkǏO2xV8kȖ$?y⿤x RKj:唹g8rVNO s$|f*SAV唜*T'%h1nJOmK 6!|Xo'XۙbU2܌ ?9e|[G#VzdSOO46i2I#lOˇںo؏?~K \}t扥~#cTUV s߇~."u#>(%-<[;s*4I~w\\\q09LL9yJQshj=?iZ׉-̑w%PQT`Jd|W /㮫y`6Ikjkuvn"T[ D[vT:]_o xDem,:e܈!U!p3_x(T9`GIYY[ONItKp3KP,m{[H$Z[~vQ_xu&EǧPvL# qw;O ;5⦟ nM9vְY {d;Lk'jm?O:%΅&}5\9eZ_jNv2zg^)xvN-5O(CZ'tU$>"c|6 iRiX N憒ک$j/l[,F.iД_L-ܳzZIE9MERJ,g3|8h~c4p 2^!԰>^ܑVqD?gO:~;uAq*E,i42m$-Yrv+7#¿> x.A7w\^a6/mIPB\ڷw?:_^CvơH 0*O~ |[ MISoH֪'fqn>qf6ԟNT(q/g7Kn9M٦w߱ա~?#4,kMeDwgEB8jO R<ég{?ھŵat!Ypfn iE24M[Mn. ltv m@8O|a~ ?cW[ĶfTӮ`m’2FLPǸ+䁜`zm\CI`pѪXGR}E暋Qy9q[:0JRxM„AS窱NScRylfW!vxO5,>4YI/|6;x$XX#a y̱w6Ug3|7hk~c4p 2^!԰>^ܑVq߇|g|s?4=_COE|'^:r (^~pCK?~.Uoz44^m0^ݘcK,* ߆Gx屧+RNk8M*U"$3>N g\l%@ F3E P마6~ !jW;&"X$]*42yrGBvk\~(GɥdU{Ŀgh׼n*6%N5l.cT>fWa/x;p9=j՜!JZ3ifۄuW%q% 5QjUN?hb#ViƯIIM;'w~<G~0uIhW2u˱U! qāpwȟ@/_?]dF7!delyNc- c/j_z|d6 k:m˨ل,Sn'qF2Oϋi|}ubm%m*(\Gb2gnC?:\oWSҦԚrR~QB*0new~3[/JpFQNxz=ኄU8ΞNzO:\gy8ɯ$| YwV{^j6m>~?k xIq|=i? 7:Ucj!nBG|{omG?gkYNM>݉PlT.>UcS VN7s_pN)/qV~m#c'RNuRUUjX Jxz\㔚 a_~5xM^hV@i5,Hu[iv\eO\P}~ 5M #jVzǎian4+)2YA.1 C.X6IOC?oQk MM&ZC5f~!߅}\Os.Qh%LbrJ.*|}V'3RI*.U*¤KFʣq|( Q֟cxThhB$sq܏Q#auKcwwRElt$fl{\9]"/V"FQ_8=;|61?_Ѿ0O%*O? /ŸCƾ$mZill(9rҌ+0s ]YFx2Ns%4mO^s_G.juNJn%ݝO7?Yf_/>#滭MBLn]WgS$ ^FƁO A#K&߈WJ}6Jn hK3\3S7-O}y>1Le 6enX^)ۼhQyU[Ο> kJ5JԴŝ^uls1iaEBo(Õ'h E~)^ySE!FDn fFu"OYTOO Zc7[t (Ֆ<;AAF\LhC^oxWghMbv|;Wj*̩KF1a_~xW w"/Wi#<'#TNӠgn~ͺL mfAoP\n`я1vZ! ׃U7f__|IڴGasm 危+D8\f%.8,,&qp^ܜ!R;FQiA5%ؾ;dJ*bpǞ|ȩԜ4OO ͗Wŭ ]Fm캢%RIeTsNJOмW:'¯sľjp[Q]0^G2FS"26P4Oٯ~./Zi a{iMD+<$ F~O|u{In:ݥ~xM$hr?87es3uUhΞ+ IƷ+9Ǖ^s^ϒGFc#gp+״gGIA`YQRU\qJ5Qb 5jWj^"{)\ȱCqoK!wQ$ROH~-Uf MI]GZ-4k])lGN OJP|QJ(tKM2ٮd0 ig ­#gË]u "V8Mlqnaea#װh>h |c;\WYsg=ĚzyG23!*?*]P>ϧZ4> ]aoym4m-t(8Dg+X_8/90VPOkJtT#NJr5V)4M1> x/*"HJRTUIV<)SNqRPjrme%]>%ZoCQmi7K%ʐ0xki|KxGm5{sm2F 2 +}y GjN/ km$exι{ ;˓H1s_[?q?;u4&\Y"`$Fp:dsj%IӠCZДgxs>Jq)>uv4(RYbiբaI*Jj8NR׳r0~ _OxZ4[5n#@o_gÕd!7n?e~ߴuiݜp$4sI1+H同 |kΒ4Or/~_O/~> Xs}\o+Fq'ᣑd9a/0r55h <17S~ ksxy-c\D`UeB9?(f|=Y_gMZm m"Q[$!xC̷ |be8Gi G+"aO>v1z o4d`Qj5'((=ݢIh_\7a2UE%Ҋ 7z$9/߲'ת|wxխ w2"R~ed*}/&>ՠͮXijΉqi >Hf,o$;Upᯊ_I>,^^쥷&^Ath``"a,φU~o4 k}sߌ>=k/eoE_|čjAn2+Oq <*q:2sQTZJk{9$Rvk[G' !NYa<<*PN8W+uqTcK;9(5 wicMV)aw*lf;k>|_;^%nYbjzrJ ;Ć=THۊ؟?c > ;Z>dƻ+"[2g+9YC"JG%b~VM|fG kZXZז7q,BTBbOX}78fa^OcW1q\ԽiDyxv>=|e]WAѭy|./5)-=$p\,2I S?el+{jkL6,gRg 5qV cSgKk?Z yWQfQXݾW%@>#~dGIy|3 , On8|hQPQ.j_VWR49˚\J(>-_psj ZS/*TYՍ(ԭ7>{OYT~i(4Lc4ex+ON%C:/4xC"~2g 1#m@vHUUna9XTI 5C=p %e+ʪFP jJPPժFqii9_O}guӯw UeXhdI*Z)bW'>-kڳoO:oCvơ=GhIGU*OZʹFbYӃqW3咋֓&wüVa_5w|LSu+$G޿(fVzѽipakMFх4zѽipah ޴oZ\-ZA7֗ FMFх4z\Rh*46%N5է4)|{Up6jϵG d? ?߈m:pF(cT`<)X;_,#?i}>KH1:,(I -,q~Ͽsw_46Ui."tBh'ms8y2.rj_So5+*I.^~d߳Z;^qTeYeٸ~VKN^Ƣ٥{&,5w~(Y>yV^2Y(S.yyYb~YLJuP N4g %TSh~CS J?i |EG#+Ԕ=if ᥆ $홨|4|OaI;gZhcsjRԃJev+7?0ETsN߻t+J6kK_:UYٽjJ3pӌ\?,]'ɯa3šbItLM&Wd`r;߄zwYѴv K%n)6qH< AaXq|(RTra8reS{_*!,ZԜSR:QyA>[ž73Sax9f'1ʮݴ\`A\kh]OSWjPAk y&?r6rF][+O㟇:wMjw|+xvϟHET  |nO~:Y] |J$,>ivI"P-5qV@2),0A 8?b &=O-cE֥Kiq+n Q+n'95g.qڹPSh9'>d88r4\+{c: tpt1rITSJQ>V IJPOrM(+ݼ__u;O8>e%D:d-2_Hx7ßjOǫH\YĴW~gPi$b6xY>okIUtN4/.oi+H۷6k9' ]Vk|2*ԨJ49gk (6uciֿoك_VNJ>|8O\}M{:3a!eGHߺIrŝ9ߊ>#}2b!lص #݁_pOxl3ei8K)EJϖN7jNbڼ%((٧ּ/ aaQ|ӥfۤ-SRM;yAgj!QZHԭz (BzmL(;i &?O#?Z((AS5XT&hOQL1Q*gi֧E_Ja({h1 ^u ^eWv4.7pA~$|DF|u-gTu{H22"ƿ$JU q\_Zg\:རN*V\-{ٴ[6y0}2ioMٴw¦UQZ=QJi/,?XZiB@VB֗?"?WQS@D~§T&+jiOQWԣRNҊwN5tOYQm5{5> 6ʸVbJNP:)Tiԧ()E^nGE5?lD<)Wg)&C!'#`G?Nڲg(>hjh{ N m*[sn_X0xùW_/NsJnU&jkOv;{tmٮK_,Rtj5uj8OyUߙ{Fߠ_l?߀W_5ovd2@\ +ƄchpbhOxcƯ){YizZƞbIbe .~_&/_YCx~GUKVǑS,-k#\煨a)iҩxUe?o]UeQUw4ӂQiwbow[7Woٳ~dԆtn侖ivTp>mygh8,39-JSӊ9~Y:j^]N-޶6K3rQqcj%(_nsݤ=?¿| ? Hu<ēk4B;W>9%Y/Gm:7wڞGycf3: []jrҫQ5=m)E]nLNԅL=.JU~%7){ZPnWqmES {ZAhtK/.BKE**Z7`i o ~4M'¦m?RmfY}BX&XObF ԛXR \껯Srr+NTBQRI̛wORx.h>qVk_ gkӌZLj'}0Bq?c괪9MO٦UaN>Rҗ'2wo>UU9VJrҩ)UdB1VvpOTԕگU_xk).m8>gMmiEe%Q_?j+K.i^zԺkm\,^W RH0Zc_x)]LUir"7*d&۔a7mCZVR>pߴ՜*JXr7*9)BFEɷj|[='ƞ>ּ_& SM99dgXc8Q0| 8Ҟ<,(R  RJdwoնS 0$nY]mՕ <'tD[G"lZc)ZTSP -H?` =*"W1ȨVشRzTS#(1zCh7bբ3lZ/aRր (*6R:ƒFF84Sb҅NQM(P:PzӶ-JO&h!5mFT("lS׿ր?,~x^o|[k/Mo}Ygvb+[< b5|//_Ěm]'Zҿmn47 ]Ȯ Uf=u*iI,.!:&qJ6JXq}rÇi:jMI`-E5;{_fm&gǟTg|OSmlUgX~}n !mA' ka 'D}FiZ_Heт "0eEa\WX2*riѩ4c*aV1ժVJPi:JN9ͳoT֊$g[Z4j*J&(;Gx/(7ƭ)m )y=̢"L@X|\GP2Hm' ̿m֘[voZȫlV}->\/7\XAX yȘ|N9E~)g8LN^qXMNi9)r#˥& 9)|.&SpX)TU''9*\Hrw'ϋH,tWi'vBc$.v#g7*umki 楨{8YB0ĶHU;F `?aMP/|kϊ{m>Ib#F fFQ' ,7q7]_Di5j |UZoa Refь\\"3> ,MXԛV:TSU%4inͤ~%Ş/cx)q)x(FG7Fj8~z֭V6JI9TԕIX Kq ŧM>&ip+;XU-!O/G_ i06Zذ2ipJhe6oܿ?>/Kcgh7x*?w9&ҧJVv>%ǦhK _l0Ic$Oʧ 8y/ K{Y% VF+,:m/{:n.4YN9~'*[lkmt]q&??CPǩW.衕I!bȀb7$P>2eF, 8SiSZNul.[N^7]?H.rbЧNLu*S_Y:ֲ<Ѽ'܎"6~"xU|}x+y.mi O,#ɸ-d ~vٟQx3d.[KY b?"+y|Y|(BA$RDC~^IpWkWnoώAM{e2,:N )bFZRs|&YkfGNtiFURTƝTjͩ*r:R|;/(Ε\5K8%V)baJ\aZJrRK> 7_o^-[{m7"gaAx#2XBJO Es #?}~sak},HC5i"IJ E7I / <út1cSjNB9/|80_I<_WMf/%JZ8W4oAǙ5[/n4gyuQV*)R([7'=/`5~%4nWN٥#<G$6weyKW?(g?khK>uKH-$ov|@no>,O㏂ 40i5yu84{d#:%HmƂ+eڠkA5d)~ x#šZGmA]CSӖ3u hU%b]'#Ծ~(˾~ Rқ>,It.+߾tdy[9R~nkk<ωmuŻP}lk7($>F1= /VUaS'NU*­U+MŸST=s\$8N>p!juq9SZcRQ~ʚ~ NTҊE`SٿG?h9 =6oY}YJ9$?u1Xn8_ Woq.`0/V\՝n97噆?V8Ƭl+TI;mtvi־|is J13\C28J > _ ,|-}x7]y=O>f^I@@qr?0a㟌9mKZԼmm*6y#Dc009?P_#㯎WuQ}J_\soush˼ʀh'pYwetqSuTcnYrKwR.4rjzu:N$m%J~ʹQm7)EF:9m x#ශj6i\^Kp*\DDه3t*3|9e|;9o/Ǐu?Iz0zq۲;RG,qwW?)xgCzMugo5`YDFS7>eJ~)a/el|I͙o;oMٔK cHourLVuZ.*4*Uk)J/kQ)R-%iF<+k(k [4鬞x !7pzt濸7J *XjUY8%%➏O| # vY厖yEn3\M>h7gY^wd/qsrQDUQĀ&w'wnq}mOZ-ix&ԭ g.ô+p18;w_1ξ$Ax~%xNRBG W1pAGσ_>~kWAJV{;.Evr# nPr_1M:X*Jqmלg(RR{sKTl~5:L–,JTgZ1'Ԛm6ߺ=bl~@||?Re]݈VHbc(78!pq|/~IҌBcm' Id| E j321xZ!5/匥77we$҂O8vcfxU_B(jkpQw|qPI5fzxVtC[ XI5!H#23>(*|e+࿆u?=L+n%]IVPJc?َUmEO: "rXi$ τ~0>gMZ@ }hůE+ɹvFw˴)_̝ O)Wp{ˑRrQRZ2Rs换ix, gQOB4m$.J5*֓IrS\~ؿ?e߀௉`{ܚj\2ylY\&p [x? |Gg.ӗ[D0R*H3쯍}z}>$fW0ڌzW3_²IFdO,l@ 7oُXI%qhm]DdF%TyX|qgCO*YgJ#1K[M CsS4/(ӜSra0T8* uWƬn!ѫ/Τi* ue)SM+g4~?#Ι.r,3{q+yQM̍0~`y5ٿPož"|ux.hn,-1pO_W &R*rqnQrvvmٶxkO3̿2NPZ4&ܢMٹ+ٶoV# z⾤a*eQE832$Aޤ\c *z(QJ:0(aN=(hLv@5  bڙ0'GReh~[][]I+@mtymu&VGԙZ2GReh~[][]I+@mtymu&VGԙZ2GReh~[][]I+@mtymu&VGԙZ2GReh~[][]I+@mtymu&VGԙZ2HP+HHV(8Ͻ'|ԫo@,p*ͽrk #tX"z2+7ǁ4?;IWƩ|4ej7*A]9~L_bqj"4(JISn^Kݏ3JRJ2ҍ79#NԵ-5-&[[RX\FpFA{W?Ć  Qg]N@ PN.*x:3(+=Z}Dx4§5sj,0qZRkK:LZĖ6F1#+%A7 w>QS(FVʥNi;;'yC|15? |KUַZ!kDp;cI x#'(Mk\5jmIY-Zʸgb1xZj5+Jrչ4Um$VJJEO\udTu[U:Unsmmt R$:GC̢t%i+V מğ "-O /5g*]R7t4ox^+]sRi<"CT:v6UŴ7iΐȲH 0`}jQQVrGAS* #cԨRmZ)=y>i)(5 SךFN('[VȠ eO&SO&SQ@JdSW@T pՌ--D6b+oSžԴ2q@ T*0}Oϰ>€*0}Oϰ>€*0}Oϰ>€*0}Oϰ>€*0}Oϰ>€*0}Oϰ>€*0}Oϰ>€*0}Oϰ>€*0}Oϰ>€*0}Oϰ>€*0}Oϰ>€*0}Oϰ>€*0}Oϰ>€*0}Oϰ>€*0}Oϰ>€*0}Oϰ>€*1OϰjhZ_IL1˯>:,$qHmnBa3oLBJ_B|0h|}//K;oZTKmR+-Hda Bg 1"0#W;@?qpdf-8.0.2/appimage/AppRun0000644000064100006410000005174713247541377013477 0ustar ejbejb#!/bin/bash # Copyright (c) 2017 Simon Peter (@probonopd) # Copyright (c) 2018 Kurt Pfeifle (@pdfkungfoo) # # License: MIT # # The purpose of this custom AppRun script is to enable symlinking the # AppImage and invoking the corresponding binary depending on which # symlink name was used to invoke the AppImage. # # At the same time it also allows to invoke the embedded binaries as # 'sub-commands'. This is in the interest of saving users from # creating extra symlinks (without preventing others from STILL using # such, should they want or need these). # # It also provides some additional help parameters in order to allow # faster familiarization with functionality embedded in this AppImage. # For example it support the listing and viewing of embedded manpages, # HTML files, PDF files, licenses and READMEs. # # Note, the AppImage can be renamed to anything what's 'legal' for an # executable name under Linux or used via a symlink under any name and # it should behave like 'qpdf' is expected to behave. If the symlink # name is 'fix-qdf' or 'zlib-flate' it should behave like these... HERE="$(dirname "$(readlink -f "${0}")")" # Set APPDIR and ARGV0 when running directly from the AppDir. # Running from the AppDir can be beneficial when debugging the # AppImage (or give performance improvements): if [ -z $APPDIR ]; then APPDIR="$HERE" ARGV0="$0" fi # This is a semi-secret environment variable which can be set for # debugging the AppImage. For now it is only meant for temporary use # and may be removed again in the near future once things have # settled: if [ "x$SET_BASH_X_FOR_APPRUN" == "xYeSS" ] ; then set -x else set +x fi # Another semi-secret environment var: if [ "x$SET_SHOW_ENV_FOR_APPRUN" == "xYeSS" ] ; then env | less fi if [ "x$SET_SHOW_ENV_FOR_APPIMAGE" == "xYeSS" ] ; then env | grep --color -E '(APPIMAGE|APPDIR|APP|ARGV0|HERE)' fi function usage() { echo " -------------------------------------------------------------------------- All QPDF command line functionality inside an AppImage package. -------------------------------------------------------------------------- (This package uses the AppImage software packaging technology for Linux ['One App == One File'] for easy availability of the newest QPDF releases across all major Linux distributions.) Usage: ------ $ARGV0 --help # Show help screen of QPDF itself $ARGV0 --ai-usage # This message (it's only present in the AppImage # incarnation of QPDF) $ARGV0 qpdf|fix-qdf|zlib-flate # Run the named sub-command; not available if the AppImage # is invoked as one of the embedded executables $ARGV0 --list-exe # List all executables embedded in AppImage $ARGV0 --list-man # List available, embedded manual pages $ARGV0 --man qpdf|zlib-flate|fix-qdf # Display embedded manual page(s) $ARGV0 --list-html # List all HTML documents embedded in AppImage $ARGV0 --html # Use browser to show HTML file embedded in AppImage # (for list of available HTML files see \"$ARGV0 --list-html\") $ARGV0 --list-pdf # List all PDF documents embedded in AppImage $ARGV0 --pdf # Use system default PDF viewer to display embedded PDF # document(s) # (for list of available PDF files see \"$ARGV0 --list-pdf\") $ARGV0 --list-readme # List all READMEs embedded in AppImage $ARGV0 --readme # Show content of README embedded in AppImage # (for list of available READMEs see \"$ARGV0 --list-readme\") $ARGV0 --list-license # List all LICENSE files embedded in AppImage $ARGV0 --license # Show content of LICENSE file embedded in AppImage # (piped thru 'less -N') $ARGV0 --show-apprun|--self-show|--selfshow # Show 'AppRun' invoked by 'less -N'; type '-N' to toggle # line number display $ARGV0 --appimage-help # Show AppImage options available for all 'type 2' AppImages $ARGV0 --help # Show help screen of QPDF itself ------------------------------------------------------------------------------ NOTE: The execution of this AppImage is controlled by a custom AppRun script. The state of this script is experimental and preliminary. Hence it may not work as expected, or miss some functionality. You can hack on this script by unpacking this AppImage into a local subdirectory [currently named 'squashfs-root'] with this command: $ARGV0 --appimage-extract After you're done with your hacks, repackage the AppImage again with this command: appimagetool [/path/to/]squashfs-root [/path/to/]QPDF-*.AppImage Latest versions of tools provided by AppImageKit are always available from * https://github.com/AppImage/AppImageKit/releases/ and * https://github.com/AppImage/AppImageUpdate/releases/ and * https://github.com/AppImage/zsync2/releases and * https://github.com/probonopd/linuxdeployqt/releases/ ------------------------------------------------------------------------------ " } function mimetype() { case "$#" in 1) # 'file --mime-type some-foo-file.ext' usually returns: 'some-foo-file.ext: major/minor', on stderr... # However, we want to get back only 'major/minor', on stdout! file --mime-type "$1" 2>&1 | sed 's#'"$1"':##;s# ##' ;; 0) echo "" 1>&2 echo " # This is a Bash function, named \"$FUNCNAME\"." 1>&2 echo " # You cannot run it without an argument. If you run it with a" 1>&2 echo " # [path to a] file as a single argument, it simply returns the" 1>&2 echo " # 'major/minor' MIME type. If you add multiple [paths to] files" 1>&2 echo " # as arguments, it returns a list of 'major/minor' MIME types with" 1>&2 echo " # the respective file names prepended. Example usage:" 1>&2 echo " #" 1>&2 echo " # $> $FUNCNAME /path/to/a.pdf" 1>&2 echo " #" 1>&2 echo " # $> $FUNCNAME /path/to/a.txt ./myscript.sh ../some.txt" 1>&2 echo " #" 1>&2 echo " # This Bash function's source code is this:" 1>&2 echo "" 1>&2 typeset -f "${FUNCNAME}" 1>&2 echo "" 1>&2 ;; *) file --mime-type "$@" ;; esac } if [ x"$1" == "xshow-apprun" -o \ x"$1" == "x--show-apprun" -o \ x"$1" == "x--apprunshow" -o \ x"$1" == "x--apprun-show" -o \ x"$1" == "xselfshow" -o \ x"$1" == "x--selfshow" -o \ x"$1" == "xself-show" -o \ x"$1" == "x--self-show" -o \ x"$1" == "x--show-self" -o \ x"$1" == "x--showself" -o \ x"$1" == "xshow-self" -o \ x"$1" == "xshowself" ] ; then cd "$HERE" less -N AppRun exit $? fi if [ x"$1" == "xlistlicense" -o \ x"$1" == "x--listlicense" -o \ x"$1" == "xlist-license" -o \ x"$1" == "x--list-license" -o \ x"$1" == "x--licenselist" -o \ x"$1" == "x--license-list" ] ; then cd "$HERE" echo "" echo "You may invoke \"$ARGV0\" with one of the following additional arguments." echo "This will then display the respective license file:" echo "" find . -type f -name "*LICENSE*" -o -name "*license*" | sed 's#^./# --license #' echo "" exit $? fi if [ x"$1" == "xai-usage" -o \ x"$1" == "x--aiusage" -o \ x"$1" == "x--ai-usage" ]; then usage | less #usage exit $? fi if [ x"$1" == "xlistman" -o \ x"$1" == "x--listman" -o \ x"$1" == "xlist-man" -o \ x"$1" == "x--list-man" -o \ x"$1" == "x--manlist" -o \ x"$1" == "x--man-list" ] ; then cd "$HERE" echo "" echo "You may invoke \"$ARGV0\" with one of the following additional arguments." echo "This will then open the respective manual page:" echo "" find usr/share/man* -type f | sed 's#^# --man #' echo "" exit $? fi if [ x"$1" == "xlistexe" -o \ x"$1" == "x--listexe" -o \ x"$1" == "xlist-exe" -o \ x"$1" == "x--list-exe" -o \ x"$1" == "x--exelist" -o \ x"$1" == "x--exe-list" ] ; then cd "$HERE" echo "" echo "You may invoke \"$ARGV0\" with one of the following additional arguments." echo "This would run the respective exe as a 'sub-command':" echo "" find . \( \( -type f -o -type l -o -type s -o -type p \) -a -executable \) | grep '/bin/' | grep -v qpdf | sed 's#./usr/bin/# #' | sort -V | grep -v ".sh$" echo "" find . \( \( -type f -o -type l -o -type s -o -type p \) -a -executable \) | grep '/bin/' | grep -v qpdf | sed 's#./usr/bin/# #' | sort -V | grep ".sh$" echo "" exit $? fi if [ x"$1" == "xlistreadme" -o \ x"$1" == "x--listreadme" -o \ x"$1" == "xlist-readme" -o \ x"$1" == "x--list-readme" -o \ x"$1" == "x--readmelist" -o \ x"$1" == "x--readme-list" ] ; then cd "$HERE" echo "" echo "You may invoke \"$ARGV0\" with one of the following additional arguments." echo "This will then display the respective README file:" echo "" find . -type f -iname "*README*" -o -iname "*.txt" -o -iname "*.md" -o -iname "*copyright*" -o -iname "*changelog*" -o -iname "*todo*" | sed 's#^./# --readme #' echo "" exit $? fi if [ x"$1" == "xlisthtml" -o \ x"$1" == "x--listhtml" -o \ x"$1" == "xlist-html" -o \ x"$1" == "x--list-html" -o \ x"$1" == "x--htmllist" -o \ x"$1" == "x--html-list" ] ; then cd "$HERE" echo "" echo "You may invoke \"$ARGV0\" with one of the following additional arguments." echo "This will then open the respective HTML file in your preferred browser:" echo "" find . -type f -name "*.html" | sed 's#^./# --html #' echo "" exit $? fi if [ x"$1" == "xlistpdf" -o \ x"$1" == "x--listpdf" -o \ x"$1" == "xlist-pdf" -o \ x"$1" == "x--list-pdf" -o \ x"$1" == "x--pdflist" -o \ x"$1" == "x--pdf-list" ] ; then cd "$HERE" echo "" echo "You may invoke \"$ARGV0\" with one of the following additional arguments." echo "This will then open the respective PDF file in your preferred viewer program:" echo "" find . -type f -name "*.pdf" | sed 's#^./# --pdf #' echo "" exit $? fi if [ x"$1" == "xreadme" -o \ x"$1" == "x--readme" ] ; then cd "$HERE" shift echo "" if [ x"$1" == "x" ] ; then echo " You must give a path to the README you want to open." echo " For available READMEs run \"$ARGV0 --listreadme\"." else readmefile=$( find . -type f -iname "*README*" -o -iname "*.txt" -o -iname "*.md" -o -iname "*copyright*" -o -iname "*changelog*" | grep "${1}" | sort -rV | head -n 1 ) MIME=$(mimetype $readmefile) case $MIME in text/html|application/pdf|application/epub*) xdg-open "$readmefile" sleep 3 # sleep to allow slow xdg-open do its job ;; inode/x-empty) echo "" echo " Sorry, this file, \"$readmefile\", is empty and has no content." echo "" ;; text/*) less -N "$readmefile" ;; esac sleep 0 fi echo "" exit $? fi if [ x"$1" == "xlicense" -o \ x"$1" == "x--license" ] ; then cd "$HERE" shift echo "" if [ x"$1" == "x" ] ; then echo " You must give a path to the LICENSE you want to open." echo " For available LICENSE run \"$ARGV0 --list-license\"." else licensefile=$( find . -type f -iname "*LICENSE*" | grep "${1}" | sort -rV | head -n 1 ) #if PDF or EPUB or HTML ; then xdg-open $licensefile ; else MIME=$(mimetype $licensefile) case $MIME in text/html|application/pdf|application/epub*) xdg-open "$licensefile" sleep 3 # sleep to allow slow xdg-open do its job ;; inode/x-empty) echo "" echo " Sorry, this file, \"$licensefile\", is empty and has no content." echo "" ;; text/*) less -N "$licensefile" ;; esac sleep 0 fi echo "" exit $? fi if [ x"$1" == "xman" -o x"$1" == "x--man" ] ; then export MANPATH="$HERE/usr/share/man:$MANPATH" shift exec man "$@" || man $(basename $1) fi if [ x"$1" == "xpdf" -o x"$1" == "x--pdf" ] ; then cd "$HERE" shift echo "" if [ x"$1" == "x" ] ; then echo "" echo " You must give a path to the PDF file you want to open." echo " For available PDFs run \"$ARGV0 --list-pdf\"" echo "" else pdffile=$( find . -type f -name "*.pdf" | grep "${1/.pdf/}.pdf" | sort -rV | head -n 1 ) xdg-open "$pdffile" sleep 5 fi echo "" exit $? fi if [ x"$1" == "xhtml" -o x"$1" == "x--html" ] ; then cd "$HERE" shift if [ x"$1" == "x" ] ; then echo "" echo " You must give a path to the HTML file you want to open." echo " For available HTMLs run \"$ARGV0 --list-html\"" echo "" else htmlfile=$( find . -type f -name "*.html" | grep "${1}" | sort -rV | head -n 1 ) xdg-open "$htmlfile" sleep 5 fi exit $? fi if [ x"$1" == "x--appimage-help" ] ; then cd "$HERE" shift if [ x"$APPIMAGE" == "x" ] ; then echo "" echo " The parameter '--appimage-help' does not work if you run this application from an AppDir (as you do)." echo " To create an AppImage from your AppDir run this command:" echo "" echo " appimagetool -n $APPDIR qpdf.AppImage" echo "" echo " You can download the latest version of 'appimagetool' (as an AppImage) from here:" echo "" echo " https://github.com/AppImage/AppImageKit/releases" echo "" fi exit $? fi if [ "x$SET_SHOW_ENV_FOR_APPRUN" == "xYeSS" ] ; then echo APPIMAGE=$APPIMAGE 1>&2 # Don't leak strings into output of qpdf|fix-qdf|zlib-flate which goes to stdout! echo ARGV0=$ARGV0 1>&2 # Don't leak strings into output of qpdf|fix-qdf|zlib-flate which goes to stdout! echo dollar0=$0 1>&2 # Don't leak strings into output of qpdf|fix-qdf|zlib-flate which goes to stdout! echo dollar1=$1 1>&2 # Don't leak strings into output of qpdf|fix-qdf|zlib-flate which goes to stdout! echo dollar_at="$@" 1>&2 # Don't leak strings into output of qpdf|fix-qdf|zlib-flate which goes to stdout! fi ### Main stuff happens from here: if [ ! -z $APPIMAGE ] ; then # We run as an AppImage BINARY_NAME=$(basename "$ARGV0") APPIMAGE=$APPIMAGE CALLED_SUBCMD=$( basename $1 2>/dev/null ) if [ "x$SET_SHOW_ENV_FOR_APPRUN" == "xYeSS" ] ; then # We have the (hidden) env var for debugging stuff set echo BINARY_NAME=$BINARY_NAME 1>&2 # Don't leak strings into output of qpdf|fix-pdf|zlib-flate going to stdout! echo APPIMAGE=$APPIMAGE 1>&2 # Don't leak strings into output of qpdf|fix-pdf|zlib-flate going to stdout! echo CALLED_SUBCMD=$CALLED_SUBCMD 1>&2 # Don't leak strings into output of qpdf|fix-pdf|zlib-flate going to stdout! fi if [ -x "$HERE/usr/bin/$BINARY_NAME" ] && [ x"$BINARY_NAME" != "x" ] ; then # We are invoked from a symlink (like 'fix-qdf' or 'zlib-flate') if [ "x$SET_SHOW_ENV_FOR_APPRUN" == "xYeSS" ] ; then # We have the (hidden) env var for debugging stuff set echo BINARY_NAME=$BINARY_NAME 1>&2 # Don't leak strings into qpdf|fix-pdf|zlib-flate output going to stdout! echo APPIMAGE=$APPIMAGE 1>&2 # Don't leak strings into qpdf|fix-pdf|zlib-flate output going to stdout! echo CALLED_SUBCMD=$CALLED_SUBCMD 1>&2 # Don't leak strings into qpdf|fix-pdf|zlib-flate output going to stdout! fi shift exec "$HERE/usr/bin/$BINARY_NAME" "$@" else if [ -x "$HERE/usr/bin/$CALLED_SUBCMD" ] && [ x"$CALLED_SUBCMD" != "x" ] ; then # We are invoked by a (currently not yet known future) binary name which may be located in ./usr/bin/ ... BINARY_NAME=$1 if [ "x$SET_SHOW_ENV_FOR_APPRUN" == "xYeSS" ] ; then # We have the (hidden) env var for debugging stuff set echo BINARY_NAME=$BINARY_NAME 1>&2 # Don't leak strings into qpdf|fix-pdf|zlib-flate output going to stdout! echo APPIMAGE=$APPIMAGE 1>&2 # Don't leak strings into qpdf|fix-pdf|zlib-flate output going to stdout! echo CALLED_SUBCMD=$CALLED_SUBCMD 1>&2 # Don't leak strings into qpdf|fix-pdf|zlib-flate output going to stdout! fi shift exec "$HERE/usr/bin/$BINARY_NAME" "$@" elif [ -x "$HERE/$CALLED_SUBCMD" ] && [ x"$CALLED_SUBCMD" != "x" ] ; then # We are invoked by a (currently not yet known future) binary name which may be located in our root AppDir ... BINARY_NAME=$CALLED_SUBCMD if [ "x$SET_SHOW_ENV_FOR_APPRUN" == "xYeSS" ] ; then # We have the (hidden) env var for debugging stuff set echo BINARY_NAME=$BINARY_NAME 1>&2 # Don't leak strings into qpdf|fix-pdf|zlib-flate output going to stdout! echo APPIMAGE=$APPIMAGE 1>&2 # Don't leak strings into qpdf|fix-pdf|zlib-flate output going to stdout! echo CALLED_SUBCMD=$CALLED_SUBCMD 1>&2 # Don't leak strings into qpdf|fix-pdf|zlib-flate output going to stdout! fi shift exec "$HERE/$BINARY_NAME" "$@" else # this clause may not be necessary... exec "$HERE/usr/bin/qpdf" "$@" fi fi else # Most likely we run from an AppDir, not as an AppImage: BINARY_NAME=$(basename "$ARGV0") APPIMAGE=$APPIMAGE CALLED_SUBCMD=$( basename $1 2>/dev/null ) if [ "x$SET_SHOW_ENV_FOR_APPRUN" == "xYeSS" ] ; then # We have the (hidden) env var for debugging stuff set echo BINARY_NAME=$BINARY_NAME 1>&2 # Don't leak strings into qpdf|fix-pdf|zlib-flate output going to stdout! echo APPIMAGE=$APPIMAGE 1>&2 # Don't leak strings into qpdf|fix-pdf|zlib-flate output going to stdout! echo CALLED_SUBCMD=$CALLED_SUBCMD 1>&2 # Don't leak strings into qpdf|fix-pdf|zlib-flate output going to stdout! fi if [ -x "$HERE/usr/bin/$CALLED_SUBCMD" ] && [ "x$CALLED_SUBCMD" != "x" ]; then #echo before shift dollar_at=$@ if [ "x$SET_SHOW_ENV_FOR_APPRUN" == "xYeSS" ] ; then # We have the (hidden) env var for debugging stuff set echo BINARY_NAME=$BINARY_NAME 1>&2 # Don't leak strings into qpdf|fix-pdf|zlib-flate output going to stdout! echo APPIMAGE=$APPIMAGE 1>&2 # Don't leak strings into qpdf|fix-pdf|zlib-flate output going to stdout! echo CALLED_SUBCMD=$CALLED_SUBCMD 1>&2 # Don't leak strings into qpdf|fix-pdf|zlib-flate output going to stdout! fi shift #echo after shift dollar_at=$@ #echo CALLED_SUBCMD=$CALLED_SUBCMD exec "$HERE/usr/bin/$CALLED_SUBCMD" "$@" elif [ -x "$HERE/usr/bin/$BINARY_NAME" ] && [ "x$BINARY_NAME" != "x" ] ; then if [ "x$SET_SHOW_ENV_FOR_APPRUN" == "xYeSS" ] ; then # We have the (hidden) env var for debugging stuff set echo BINARY_NAME=$BINARY_NAME 1>&2 # Don't leak strings into qpdf|fix-pdf|zlib-flate output going to stdout! echo APPIMAGE=$APPIMAGE 1>&2 # Don't leak strings into qpdf|fix-pdf|zlib-flate output going to stdout! echo CALLED_SUBCMD=$CALLED_SUBCMD 1>&2 # Don't leak strings into qpdf|fix-pdf|zlib-flate output going to stdout! fi shift exec "$HERE/usr/bin/$BINARY_NAME" "$@" else if [ "x$SET_SHOW_ENV_FOR_APPRUN" == "xYeSS" ] ; then # We have the (hidden) env var for debugging stuff set echo BINARY_NAME=$BINARY_NAME 1>&2 # Don't leak strings into qpdf|fix-pdf|zlib-flate output going to stdout! echo APPIMAGE=$APPIMAGE 1>&2 # Don't leak strings into qpdf|fix-pdf|zlib-flate output going to stdout! echo CALLED_SUBCMD=$CALLED_SUBCMD 1>&2 # Don't leak strings into qpdf|fix-pdf|zlib-flate output going to stdout! fi exec "$HERE/usr/bin/qpdf" "$@" fi fi qpdf-8.0.2/appimage/qpdf.desktop0000644000064100006410000000024513247541377014657 0ustar ejbejb[Desktop Entry] Type=Application Terminal=true Exec=qpdf Name=qpdf Comment=Structural, content-preserving transformations on PDF files Icon=qpdf Categories=Utility; qpdf-8.0.2/appimage/qpdf.appdata.xml0000644000064100006410000000551613247541377015425 0ustar ejbejb org.QPDF.qpdf.desktop MIT Apache-2.0 QPDF Structural, content-preserving transformations on PDF files

QPDF is a command-line program that does structural, content-preserving transformations on PDF files. It could have been called something like pdf-to-pdf. It also provides many useful capabilities to developers of PDF-producing software or for people who just want to look at the innards of a PDF file to learn more about how they work.

QPDF is capable of creating linearized (also known as web-optimized) files and encrypted files. It is also capable of converting PDF files with object streams (also known as compressed objects) to files with no compressed objects or to generate object streams from files that don't have them (or even those that already do). QPDF also supports a special mode designed to allow you to edit the content of PDF files in a text editor. For more details, please see the documentation links below.

QPDF includes support for merging and splitting PDFs through the ability to copy objects from one PDF file into another and to manipulate the list of pages in a PDF file. The QPDF library also makes it possible for you to create PDF files from scratch. In this mode, you are responsible for supplying all the contents of the file, while the QPDF library takes care off all the syntactical representation of the objects, creation of cross references tables and, if you use them, object streams, encryption, linearization, and other syntactic details.

QPDF is not a PDF content creation library, a PDF viewer, or a program capable of converting PDF into other formats. In particular, QPDF knows nothing about the semantics of PDF content streams. If you are looking for something that can do that, you should look elsewhere. However, once you have a valid PDF file, QPDF can be used to transform that file in ways perhaps your original PDF creation can't handle. For example, programs generate simple PDF files but can't password-protect them, web-optimize them, or perform other transformations of that type.

qpdf.desktop http://qpdf.sourceforge.net/ https://github.com/qpdf/qpdf/issues https://raw.githubusercontent.com/qpdf/qpdf/master/appimage/qpdf-screenshot.jpeg org.QPDF.qpdf.desktop
qpdf-8.0.2/appimage/entrypoint0000755000064100006410000000125413247541377014474 0ustar ejbejb#!/bin/bash set -e if [ "$SKIP_TESTS" = "1" ]; then touch /tmp/skip-tests fi if [ $(id -u) = 0 ]; then if [ ! -d /tmp/build/.gnupg ]; then echo "/tmp/build must exist and must contain .gnupg" exit 2 fi id=$(stat -c %u /tmp/build) adduser --home /tmp/build --no-create-home --uid $id --disabled-password --gecos build build exec sudo -iu build $0 "$@" fi cd /tmp/build if [ ! -d qpdf ]; then if [ "$1" == "" ]; then echo "A repository and optional git clone arguments must be given" exit 2 fi git clone "$@" qpdf fi cd qpdf if [ -f /tmp/skip-tests ]; then export SKIP_TESTS=1 fi ./appimage/build-appimage --sign qpdf-8.0.2/TODO0000644000064100006410000002673713247541377011255 0ustar ejbejbSoon ==== * Figure out how to render Gajić correctly in the PDF version of the qpdf manual. * Add method to push inheritable resources to a single page by walking up and copying without overwrite. Above logic will also be sufficient to fix the limitation in QPDFObjectHandle::getPageImages(). Maybe add a method to get the effective resources for a page without modifying the page and then implement both changes in terms of that method. * Support user-pluggable stream filters. This would enable external code to provide interpretation for filters that are missing from qpdf. Make it possible for user-provided filters to override built-in filters. Make sure that the pluggable filters can be prioritized so that we can poll all registered filters to see whether they are capable of filtering a particular stream. * If possible, consider adding CCITT3, CCITT4, or any other easy filters. For some reference code that we probably can't use but may be handy anyway, see http://partners.adobe.com/public/developer/ps/sdk/index_archive.html * If possible, support the following types of broken files: - Files that have no whitespace token after "endobj" such that endobj collides with the start of the next object - See ../misc/broken-files Lexical ======= * Make it possible to run the lexer (tokenizer) over a whole file such that the following things would be possible: * Rewrite fix-qdf in C++ so that there is no longer a runtime perl dependency * Make it possible to replace all strings in a file lexically even on badly broken files. Ideally this should work files that are lacking xref, have broken links, etc., and ideally it should work with encrypted files if possible. This should go through the streams and strings and replace them with fixed or random characters, preferably, but not necessarily, in a manner that works with fonts. One possibility would be to detect whether a string contains characters with normal encoding, and if so, use 0x41. If the string uses character maps, use 0x01. The output should otherwise be unrelated to the input. This could be built after the filtering and tokenizer rewrite and should be done in a manner that takes advantage of the other lexical features. This sanitizer should also clear metadata and replace images. General ======= NOTE: Some items in this list refer to files in my personal home directory or that are otherwise not publicly accessible. This includes things sent to me by email that are specifically not public. Even so, I find it useful to make reference to them in this list * Audit every place where qpdf allocates memory to see whether there are cases where malicious inputs could cause qpdf to attempt to grab very large amounts of memory. Certainly there are cases like this, such as if a very highly compressed, very large image stream is requested in a buffer. Hopefully normal input to output filtering doesn't ever try to do this. QPDFWriter should be checked carefully too. See also bugs/private/from-email-663916/ * Form flattening: ~/tmp/qtmp/form-flattening-email/. Distill this into notes along with stuff in qpdf email box. * Look at ~/Q/pdf-collection/forms-from-appian/ * Look at Travis-CI for qpdf. See email from Travis-CI in pending. * Consider adding "uninstall" target to makefile. It should only uninstall what it installed, which means that you must run uninstall from the version you ran install with. It would only be supported for the toolchains that support the install target (libtool). * Figure out how to find Visual Studio in Windows registry and see if I can get it to work with make so I can simplify creation of Windows releases. * Provide support in QPDFWriter for writing incremental updates. Provide support in qpdf for preserving incremental updates. The goal should be that QDF mode should be fully functional for files with incremental updates including fix_qdf. Note that there's nothing that says an indirect object in one update can't refer to an object that doesn't appear until a later update. This means that QPDF has to treat indirect null objects differently from how it does now. QPDF drops indirect null objects that appear as members of arrays or dictionaries. For arrays, it's handled in QPDFWriter where we make indirect nulls direct. This is in a single if block, and nothing else in the code cares about it. We could just remove that if block and not break anything except a few test cases that exercise the current behavior. For dictionaries, it's more complicated. In this case, QPDF_Dictionary::getKeys() ignores all keys with null values, and hasKey() returns false for keys that have null values. We would probably want to make QPDF_Dictionary able to handle the special case of keys that are indirect nulls and basically never have it drop any keys that are indirect objects. If we make a change to have qpdf preserve indirect references to null objects, we have to note this in ChangeLog and in the release notes since this will change output files. We did this before when we stopped flattening scalar references, so this is probably not a big deal. We also have to make sure that the testing for this handles non-trivial cases of the targets of indirect nulls being replaced by real objects in an update. I'm not sure how this plays with linearization, if at all. For cases where incremental updates are not being preserved as incremental updates and where the data is being folded in (as is always the case with qpdf now), none of this should make any difference in the actual semantics of the files. * When decrypting files with /R=6, hash_V5 is called more than once with the same inputs. Caching the results or refactoring to reduce the number of identical calls could improve performance for workloads that involve processing large numbers of small files. * Consider providing a Windows installer for qpdf using NSIS. * Consider adding a method to balance the pages tree. It would call pushInheritedAttributesToPage, construct a pages tree from scratch, and replace the /Pages key of the root dictionary with the new tree. * Secure random number generation could be made more efficient by using a local static to ensure a single random device or crypt provider as long as this can be done in a thread-safe fashion. In the initial implementation, this is being skipped to avoid having to add any dependencies on threading libraries. * Study what's required to support savable forms that can be saved by Adobe Reader. Does this require actually signing the document with an Adobe private key? Search for "Digital signatures" in the PDF spec, and look at ~/Q/pdf-collection/form-with-full-save.pdf, which came from Adobe's example site. * Consider the possibility of doing something locale-aware to support non-ASCII passwords. Update documentation if this is done. Consider implementing full Unicode password algorithms from newer encryption formats. * Consider impact of article threads on page splitting/merging. Subramanyam provided a test file; see ../misc/article-threads.pdf. Email Q-Count: 431864 from 2009-11-03. Other things to consider: outlines, page labels, thumbnails, zones. There are probably others. * See if we can avoid preserving unreferenced objects in object streams even when preserving the object streams. * Provide APIs for embedded files. See *attachments*.pdf in test suite. The private method findAttachmentStreams finds at least cases for modern versions of Adobe Reader (>= 1.7, maybe earlier). PDF Reference 1.7 section 3.10, "File Specifications", discusses this. A sourceforge user asks if qpdf can handle extracting and embedded resources and references these tools, which may be useful as a reference. http://multivalent.sourceforge.net/Tools/pdf/Extract.html http://multivalent.sourceforge.net/Tools/pdf/Embed.html * The description of Crypt filters is unclear with respect to how to use them to override /StmF for specific streams. I'm not sure whether qpdf will do the right thing for any specific individual streams that might have crypt filters, but I believe it does based on my testing of a limited subset. The specification seems to imply that only embedded file streams and metadata streams can have crypt filters, and there are already special cases in the code to handle those. Most likely, it won't be a problem, but someday someone may find a file that qpdf doesn't work on because of crypt filters. There is an example in the spec of using a crypt filter on a metadata stream. For now, we notice /Crypt filters and decode parameters consistent with the example in the PDF specification, and the right thing happens for metadata filters that happen to be uncompressed or otherwise compressed in a way we can filter. This should handle all normal cases, but it's more or less just a guess since I don't have any test files that actually use stream-specific crypt filters in them. * The second xref stream for linearized files has to be padded only because we need file_size as computed in pass 1 to be accurate. If we were not allowing writing to a pipe, we could seek back to the beginning and fill in the value of /L in the linearization dictionary as an optimization to alleviate the need for this padding. Doing so would require us to pad the /L value individually and also to save the file descriptor and determine whether it's seekable. This is probably not worth bothering with. * The whole xref handling code in the QPDF object allows the same object with more than one generation to coexist, but a lot of logic assumes this isn't the case. Anything that creates mappings only with the object number and not the generation is this way, including most of the interaction between QPDFWriter and QPDF. If we wanted to allow the same object with more than one generation to coexist, which I'm not sure is allowed, we could fix this by changing xref_table. Alternatively, we could detect and disallow that case. In fact, it appears that Adobe reader and other PDF viewing software silently ignores objects of this type, so this is probably not a big deal. * If we ever want to have check mode check the integrity of the free list, this can be done by looking at the code from prior to the object stream support of 4/5/2008. It's in an if (0) block and there's a comment about it. There's also something about it in qpdf.test -- search for "free table". On the other hand, the value of doing this seems very low since no viewer seems to care, so it's probably not worth it. * QPDFObjectHandle::getPageImages() doesn't notice images in inherited resource dictionaries. See comments in that function. * Based on an idea suggested by user "Atom Smasher", consider providing some mechanism to recover earlier versions of a file embedded prior to appended sections. * From a suggestion in bug 3152169, consider having an option to re-encode inline images with an ASCII encoding. * From github issue 2, provide more in-depth output for examining hint stream contents. Consider adding on option to provide a human-readable dump of linearization hint tables. This should include improving the 'overflow reading bit stream' message as reported in issue #2. qpdf-8.0.2/README-what-to-download.md0000644000064100006410000000521613247541377015217 0ustar ejbejbTo build from source for Linux or other UNIX/UNIX-like systems, it is generally sufficient to download just the source `qpdf-.tar.gz` file. Virtually all Linux distributions include packages for qpdf. If you'd like to run the latest version of qpdf as an [AppImage](https://appimage.org/), you can download `qpdf--x86_64.AppImage`. This is a self-contained executable that you make symlink `qpdf` to and run on most reasonably recent Linux distributions. See README-appimage.md in the qpdf source distribution for additional details, or run the AppImage with the `--ai-usage` argument to get help specific to the AppImage. For Windows, there are several additional files that you might want to download. * `qpdf--bin-mingw32.zip` If you just want to use the qpdf command line program or use the qpdf DLL's C-language interface, you can download this file. You can also download this version if you are using MINGW's gcc and want to program using the C++ interface. * `qpdf--bin-mingw64.zip` A 64-bit version built with mingw. Use this for 64-bit Windows systems. The 32-bit version will also work on Windows 64-bit. Both the 32-bit and the 64-bit version support files over 2 GB in size, but you may find it easier to integrate this with your own software if you use the 64-bit version. * `qpdf--bin-msvc32.zip` If you want to program using qpdf's C++ interface and you are using Microsoft Visual C++ 2015 in 32-bit mode, you can download this file. * `qpdf--bin-msvc64.zip` If you want to program using qpdf's C++ interface and you are using Microsoft Visual C++ 2015 in 64-bit mode, you can download this file. * `qpdf-external-libs-bin.zip` If you want to build qpdf for Windows yourself with either MINGW or MSVC 2015, you can download this file and extract it inside the qpdf source distribution. Please refer to README-windows.md in the qpdf source distribution for additional details. Note that you need the 2017-08-21 version or later to be able to build qpdf 7.0 or newer. Generally grab the `external-libs` distribution that was the latest version at the time of the release of whichever version of qpdf you are building. * `qpdf-external-libs-src.zip` If you want to build the external libraries on your own (for Windows or anything else), you can download this archive. In addition to including an unmodified distribution `zlib` and the `jpeg` library, it includes a `README` file and some scripts to help you build it for Windows. You will also have to provide those. If you want to build on Windows, please see also README-windows.md in the qpdf source distribution. qpdf-8.0.2/autogen.sh0000755000064100006410000000005413247541377012546 0ustar ejbejb#!/bin/sh aclocal -I m4 autoheader autoconf qpdf-8.0.2/m4/0000755000064100006410000000000013247541377011066 5ustar ejbejbqpdf-8.0.2/m4/ltversion.m40000644000064100006410000000127313247541377013360 0ustar ejbejb# ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # @configure_input@ # serial 4179 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.4.6]) m4_define([LT_PACKAGE_REVISION], [2.4.6]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4.6' macro_revision='2.4.6' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) qpdf-8.0.2/m4/ax_random_device.m40000644000064100006410000000226013247541377014617 0ustar ejbejbdnl @synopsis AX_RANDOM_DEVICE dnl dnl This macro will check for a random device, allowing the user to explicitly dnl set the path. The user uses '--with-random=FILE' as an argument to dnl configure. dnl dnl If A random device is found then HAVE_RANDOM_DEVICE is set to 1 and dnl RANDOM_DEVICE contains the path. dnl dnl @category Miscellaneous dnl @author Martin Ebourne dnl @version 2005/07/01 dnl @license AllPermissive AC_DEFUN([AX_RANDOM_DEVICE], [ AC_ARG_WITH([random], [AC_HELP_STRING([--with-random=FILE], [Use FILE as random number seed [auto-detected]])], [RANDOM_DEVICE="$withval"], [AC_CHECK_FILE("/dev/urandom", [RANDOM_DEVICE="/dev/urandom";], [AC_CHECK_FILE("/dev/arandom", [RANDOM_DEVICE="/dev/arandom";], [AC_CHECK_FILE("/dev/random", [RANDOM_DEVICE="/dev/random";])] )]) ]) if test "x$RANDOM_DEVICE" != "x" ; then AC_DEFINE([HAVE_RANDOM_DEVICE], 1, [Define to 1 (and set RANDOM_DEVICE) if a random device is available]) AC_SUBST([RANDOM_DEVICE]) AC_DEFINE_UNQUOTED([RANDOM_DEVICE], ["$RANDOM_DEVICE"], [Define to the filename of the random device (and set HAVE_RANDOM_DEVICE)]) fi ])dnl qpdf-8.0.2/m4/ltsugar.m40000644000064100006410000001044013247541377013010 0ustar ejbejb# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software # Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59, which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) qpdf-8.0.2/m4/ltoptions.m40000644000064100006410000003426213247541377013372 0ustar ejbejb# Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software # Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 8 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option '$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl 'shared' nor 'disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4], [_LT_WITH_AIX_SONAME([aix])]) ]) ])# _LT_SET_OPTIONS ## --------------------------------- ## ## Macros to handle LT_INIT options. ## ## --------------------------------- ## # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the 'shared' and # 'disable-shared' LT_INIT options. # DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS=$lt_save_ifs ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the 'static' and # 'disable-static' LT_INIT options. # DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS=$lt_save_ifs ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the 'fast-install' # and 'disable-fast-install' LT_INIT options. # DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS=$lt_save_ifs ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_AIX_SONAME([DEFAULT]) # ---------------------------------- # implement the --with-aix-soname flag, and support the `aix-soname=aix' # and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT # is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'. m4_define([_LT_WITH_AIX_SONAME], [m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl shared_archive_member_spec= case $host,$enable_shared in power*-*-aix[[5-9]]*,yes) AC_MSG_CHECKING([which variant of shared library versioning to provide]) AC_ARG_WITH([aix-soname], [AS_HELP_STRING([--with-aix-soname=aix|svr4|both], [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])], [case $withval in aix|svr4|both) ;; *) AC_MSG_ERROR([Unknown argument to --with-aix-soname]) ;; esac lt_cv_with_aix_soname=$with_aix_soname], [AC_CACHE_VAL([lt_cv_with_aix_soname], [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT) with_aix_soname=$lt_cv_with_aix_soname]) AC_MSG_RESULT([$with_aix_soname]) if test aix != "$with_aix_soname"; then # For the AIX way of multilib, we name the shared archive member # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, # the AIX toolchain works better with OBJECT_MODE set (default 32). if test 64 = "${OBJECT_MODE-32}"; then shared_archive_member_spec=shr_64 else shared_archive_member_spec=shr fi fi ;; *) with_aix_soname=aix ;; esac _LT_DECL([], [shared_archive_member_spec], [0], [Shared archive member basename, for filename based shared library versioning on AIX])dnl ])# _LT_WITH_AIX_SONAME LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])]) LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])]) LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])]) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the 'pic-only' and 'no-pic' # LT_INIT options. # MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for lt_pkg in $withval; do IFS=$lt_save_ifs if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS=$lt_save_ifs ;; esac], [pic_mode=m4_default([$1], [default])]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) ## ----------------- ## ## LTDL_INIT Options ## ## ----------------- ## m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) qpdf-8.0.2/m4/lt~obsolete.m40000644000064100006410000001377413247541377013716 0ustar ejbejb# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software # Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 5 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN), # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) qpdf-8.0.2/m4/libtool.m40000644000064100006410000112617113247541377013005 0ustar ejbejb# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 2014 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool 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 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program or library that is built # using GNU Libtool, you may include this file under the same # distribution terms that you use for the rest of that program. # # GNU Libtool 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, see . ]) # serial 58 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS=$ltmain # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_PREPARE_CC_BASENAME # ----------------------- m4_defun([_LT_PREPARE_CC_BASENAME], [ # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in @S|@*""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } ])# _LT_PREPARE_CC_BASENAME # _LT_CC_BASENAME(CC) # ------------------- # It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME, # but that macro is also expanded into generated libtool script, which # arranges for $SED and $ECHO to be set by different means. m4_defun([_LT_CC_BASENAME], [m4_require([_LT_PREPARE_CC_BASENAME])dnl AC_REQUIRE([_LT_DECL_SED])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl func_cc_basename $1 cc_basename=$func_cc_basename_result ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl _LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_WITH_SYSROOT])dnl m4_require([_LT_CMD_TRUNCATE])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a '.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld=$lt_cv_prog_gnu_ld old_CC=$CC old_CFLAGS=$CFLAGS # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PREPARE_SED_QUOTE_VARS # -------------------------- # Define a few sed substitution that help us do robust quoting. m4_defun([_LT_PREPARE_SED_QUOTE_VARS], [# Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ]) # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from 'configure', and 'config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # 'config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain=$ac_aux_dir/ltmain.sh ])# _LT_PROG_LTMAIN ## ------------------------------------- ## ## Accumulate code for creating libtool. ## ## ------------------------------------- ## # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the 'libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) ## ------------------------ ## ## FIXME: Eliminate VARNAME ## ## ------------------------ ## # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to 'config.status' so that its # declaration there will have the same value as in 'configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags='_LT_TAGS'dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the 'libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into 'config.status', and then the shell code to quote escape them in # for loops in 'config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$[]1 _LTECHO_EOF' } # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done _LT_OUTPUT_LIBTOOL_INIT ]) # _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) # ------------------------------------ # Generate a child script FILE with all initialization necessary to # reuse the environment learned by the parent script, and make the # file executable. If COMMENT is supplied, it is inserted after the # '#!' sequence but before initialization text begins. After this # macro, additional text can be appended to FILE to form the body of # the child script. The macro ends with non-zero status if the # file could not be fully written (such as if the disk is full). m4_ifdef([AS_INIT_GENERATED], [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], [m4_defun([_LT_GENERATED_FILE_INIT], [m4_require([AS_PREPARE])]dnl [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl [lt_write_fail=0 cat >$1 <<_ASEOF || lt_write_fail=1 #! $SHELL # Generated by $as_me. $2 SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$1 <<\_ASEOF || lt_write_fail=1 AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 _ASEOF test 0 = "$lt_write_fail" && chmod +x $1[]dnl m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) _LT_GENERATED_FILE_INIT(["$CONFIG_LT"], [# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF lt_cl_silent=false exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ '$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2011 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test 0 != $[#] do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try '$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try '$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. lt_cl_success=: test yes = "$silent" && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi cfgfile=${ofile}T trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # Generated automatically by $as_me ($PACKAGE) $VERSION # NOTE: Changes made to this file will be lost: look at ltmain.sh. # Provide generalized library-building support services. # Written by Gordon Matzigkeit, 1996 _LT_COPYING _LT_LIBTOOL_TAGS # Configured defaults for sys_lib_dlsearch_path munging. : \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF cat <<'_LT_EOF' >> "$cfgfile" # ### BEGIN FUNCTIONS SHARED WITH CONFIGURE _LT_PREPARE_MUNGE_PATH_LIST _LT_PREPARE_CC_BASENAME # ### END FUNCTIONS SHARED WITH CONFIGURE _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Go], [_LT_LANG(GO)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG m4_ifndef([AC_PROG_GO], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_GO. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_GO], [AC_LANG_PUSH(Go)dnl AC_ARG_VAR([GOC], [Go compiler command])dnl AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl _AC_ARG_VAR_LDFLAGS()dnl AC_CHECK_TOOL(GOC, gccgo) if test -z "$GOC"; then if test -n "$ac_tool_prefix"; then AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) fi fi if test -z "$GOC"; then AC_CHECK_PROG(GOC, gccgo, gccgo, false) fi ])#m4_defun ])#m4_ifndef # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([AC_PROG_GO], [LT_LANG(GO)], [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "$LT_MULTI_MODULE"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test 0 = "$_lt_result"; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS=$save_LDFLAGS ]) AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; 10.[[012]][[,.]]*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test yes = "$lt_cv_apple_cc_single_mod"; then _lt_dar_single_mod='$single_module' fi if test yes = "$lt_cv_ld_exported_symbols_list"; then _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' fi if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES([TAG]) # --------------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported if test yes = "$lt_cv_ld_force_load"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined case $cc_basename in ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" m4_if([$1], [CXX], [ if test yes != "$lt_cv_apple_cc_single_mod"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX([TAGNAME]) # ---------------------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. # Store the results from the different compilers for each TAGNAME. # Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ lt_aix_libpath_sed='[ /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }]' _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib fi ]) aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [m4_divert_text([M4SH-INIT], [$1 ])])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Find how we can fake an echo command that does not interpret backslash. # In particular, with Autoconf 2.60 or later we add some code to the start # of the generated configure script that will find a shell with a builtin # printf (that we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO AC_MSG_CHECKING([how to print strings]) # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $[]1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } case $ECHO in printf*) AC_MSG_RESULT([printf]) ;; print*) AC_MSG_RESULT([print -r]) ;; *) AC_MSG_RESULT([cat]) ;; esac m4_ifdef([_AS_DETECT_SUGGESTED], [_AS_DETECT_SUGGESTED([ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test "X`printf %s $ECHO`" = "X$ECHO" \ || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_WITH_SYSROOT # ---------------- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], [AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], [Search for dependent libraries within DIR (or the compiler's sysroot if not specified).])], [], [with_sysroot=no]) dnl lt_sysroot will always be passed unquoted. We quote it here dnl in case the user passed a directory name. lt_sysroot= case $with_sysroot in #( yes) if test yes = "$GCC"; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) AC_MSG_RESULT([$with_sysroot]) AC_MSG_ERROR([The sysroot must be an absolute path.]) ;; esac AC_MSG_RESULT([${lt_sysroot:-no}]) _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl [dependent libraries, and where our libraries should be installed.])]) # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test no = "$enable_libtool_lock" || enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out what ABI is being produced by ac_compile, and set mode # options accordingly. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE=32 ;; *ELF-64*) HPUX_IA64_MODE=64 ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test yes = "$lt_cv_prog_gnu_ld"; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; mips64*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then emul=elf case `/usr/bin/file conftest.$ac_objext` in *32-bit*) emul="${emul}32" ;; *64-bit*) emul="${emul}64" ;; esac case `/usr/bin/file conftest.$ac_objext` in *MSB*) emul="${emul}btsmip" ;; *LSB*) emul="${emul}ltsmip" ;; esac case `/usr/bin/file conftest.$ac_objext` in *N32*) emul="${emul}n32" ;; esac LD="${LD-ld} -m $emul" fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. Note that the listed cases only cover the # situations where additional linker options are needed (such as when # doing 32-bit compilation for a host where ld defaults to 64-bit, or # vice versa); the common cases where no linker options are needed do # not appear in the list. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) case `/usr/bin/file conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; *) LD="${LD-ld} -m elf_i386" ;; esac ;; powerpc64le-*linux*) LD="${LD-ld} -m elf32lppclinux" ;; powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; powerpcle-*linux*) LD="${LD-ld} -m elf64lppc" ;; powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS=$CFLAGS CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test yes != "$lt_cv_cc_needs_belf"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS=$SAVE_CFLAGS fi ;; *-*solaris*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*|x86_64-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD=${LD-ld}_sol2 fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks=$enable_libtool_lock ])# _LT_ENABLE_LOCK # _LT_PROG_AR # ----------- m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} : ${AR_FLAGS=cru} _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no AC_COMPILE_IFELSE([AC_LANG_PROGRAM], [echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([lt_ar_try]) if test 0 -eq "$ac_status"; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a AC_TRY_EVAL([lt_ar_try]) if test 0 -ne "$ac_status"; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a ]) ]) if test no = "$lt_cv_ar_at_file"; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi _LT_DECL([], [archiver_list_spec], [1], [How to feed a file listing to the archiver]) ])# _LT_PROG_AR # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [_LT_PROG_AR AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in bitrig* | openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) _LT_DECL([], [lock_old_archive_extraction], [0], [Whether to use a lock for old archive extraction]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test yes = "[$]$2"; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS ]) if test yes = "[$]$2"; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring=ABCD case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len" && \ test undefined != "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test X`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test 17 != "$i" # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n "$lt_cv_sys_max_cmd_len"; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test yes = "$cross_compiling"; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test yes != "$enable_dlopen"; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen=load_add_on lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen=LoadLibrary lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen=dlopen lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[ lt_cv_dlopen=dyld lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; tpf*) # Don't try to run any link tests for TPF. We know it's impossible # because TPF is a cross-compiler, and we know how we open DSOs. lt_cv_dlopen=dlopen lt_cv_dlopen_libs= lt_cv_dlopen_self=no ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen=shl_load], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen=dlopen], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld]) ]) ]) ]) ]) ]) ;; esac if test no = "$lt_cv_dlopen"; then enable_dlopen=no else enable_dlopen=yes fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS=$CPPFLAGS test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS=$LDFLAGS wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS=$LIBS LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test yes = "$lt_cv_dlopen_self"; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS=$save_CPPFLAGS LDFLAGS=$save_LDFLAGS LIBS=$save_LIBS ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links=nottested if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test no = "$hard_links"; then AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/", [Define to the sub-directory where libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then # We can hardcode non-existent directories. if test no != "$_LT_TAGVAR(hardcode_direct, $1)" && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" && test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test relink = "$_LT_TAGVAR(hardcode_action, $1)" || test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then # Fast installation is not supported enable_fast_install=no elif test yes = "$shlibpath_overrides_runpath" || test no = "$enable_shared"; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP"; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_PREPARE_MUNGE_PATH_LIST # --------------------------- # Make sure func_munge_path_list() is defined correctly. m4_defun([_LT_PREPARE_MUNGE_PATH_LIST], [[# func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x@S|@2 in x) ;; *:) eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" ;; x:*) eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; *::*) eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" ;; *) eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; esac } ]])# _LT_PREPARE_PATH_LIST # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test yes = "$GCC"; then case $host_os in darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; *) lt_awk_arg='/^libraries:/' ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;; *) lt_sed_strip_eq='s|=/|/|g' ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary... lt_tmp_lt_search_path_spec= lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` # ...but if some path component already ends with the multilib dir we assume # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). case "$lt_multi_os_dir; $lt_search_path_spec " in "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) lt_multi_os_dir= ;; esac for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" elif test -n "$lt_multi_os_dir"; then test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS = " "; FS = "/|\n";} { lt_foo = ""; lt_count = 0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo = "/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=.so postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown AC_ARG_VAR([LT_SYS_LIBRARY_PATH], [User-defined run-time library search path.]) case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='$libname$release$shared_ext$major' ;; aix[[4-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test ia64 = "$host_cpu"; then # AIX 5 supports IA64 library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line '#! .'. This would cause the generated library to # depend on '.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # Using Import Files as archive members, it is possible to support # filename-based versioning of shared library archives on AIX. While # this would work for both with and without runtime linking, it will # prevent static linking of such archives. So we do filename-based # shared library versioning with .so extension only, which is used # when both runtime linking and shared linking is enabled. # Unfortunately, runtime linking may impact performance, so we do # not want this to be the default eventually. Also, we use the # versioned .so libs for executables only if there is the -brtl # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. # To allow for filename-based versioning support, we need to create # libNAME.so.V as an archive file, containing: # *) an Import File, referring to the versioned filename of the # archive as well as the shared archive member, telling the # bitwidth (32 or 64) of that shared object, and providing the # list of exported symbols of that shared object, eventually # decorated with the 'weak' keyword # *) the shared object with the F_LOADONLY flag set, to really avoid # it being seen by the linker. # At run time we better use the real file rather than another symlink, # but for link time we create the symlink libNAME.so -> libNAME.so.V case $with_aix_soname,$aix_use_runtimelinking in # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. aix,yes) # traditional libtool dynamic_linker='AIX unversionable lib.so' # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; aix,no) # traditional AIX only dynamic_linker='AIX lib.a[(]lib.so.V[)]' # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' ;; svr4,*) # full svr4 only dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,yes) # both, prefer svr4 dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # unpreferred sharedlib libNAME.a needs extra handling postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,no) # both, prefer aix dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]" library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' ;; esac shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='$libname$shared_ext' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec=$LIB if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' soname_spec='$libname$release$major$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[23]].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=no sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' if test 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" sys_lib_dlsearch_path_spec=/usr/lib/hpux32 else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" sys_lib_dlsearch_path_spec=/usr/lib/hpux64 fi ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[[3-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test yes = "$lt_cv_prog_gnu_ld"; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; linux*android*) version_type=none # Android doesn't support versioned libraries. need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext' soname_spec='$libname$release$shared_ext' finish_cmds= shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes dynamic_linker='Android linker' # Don't embed -rpath directories since the linker doesn't support them. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], [lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [lt_cv_shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir ]) shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Ideally, we could use ldconfig to report *all* directores which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, # even though it is searched at run-time. Try to do the best guess by # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd* | bitrig*) version_type=sunos sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then need_version=no else need_version=yes fi library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; os2*) libname_spec='$name' version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no # OS/2 can only load a DLL with a base name of 8 characters or less. soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; v=$($ECHO $release$versuffix | tr -d .-); n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); $ECHO $n$v`$shared_ext' library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' shlibpath_var=BEGINLIBPATH sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test yes = "$with_gnu_ld"; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec; then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' soname_spec='$libname$shared_ext.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=sco need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test yes = "$with_gnu_ld"; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test yes = "$GCC"; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi # remember unaugmented sys_lib_dlsearch_path content for libtool script decls... configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec # ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" # to be used as default LT_SYS_LIBRARY_PATH value in generated libtool configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [install_override_mode], [1], [Permission mode override for installation of shared libraries]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2], [Detected run-time system search path for libraries]) _LT_DECL([], [configure_time_lt_sys_library_path], [2], [Explicit LT_SYS_LIBRARY_PATH set during ./configure time]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program that can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD=$MAGIC_CMD lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$1"; then lt_cv_path_MAGIC_CMD=$ac_dir/"$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD=$lt_cv_path_MAGIC_CMD if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; esac]) MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program that can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test no = "$withval" || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test yes = "$GCC"; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return, which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD=$ac_prog ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test yes = "$with_gnu_ld"; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD=$ac_dir/$ac_prog # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 conftest.i cat conftest.i conftest.i >conftest2.i : ${lt_DD:=$DD} AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd], [if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: fi]) rm -f conftest.i conftest2.i conftest.out]) ])# _LT_PATH_DD # _LT_CMD_TRUNCATE # ---------------- # find command to truncate a binary pipe m4_defun([_LT_CMD_TRUNCATE], [m4_require([_LT_PATH_DD]) AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin], [printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i lt_cv_truncate_bin= if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" fi rm -f conftest.i conftest2.i conftest.out test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"]) _LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1], [Command to truncate a binary pipe]) ])# _LT_CMD_TRUNCATE # _LT_CHECK_MAGIC_METHOD # ---------------------- # how to check for library dependencies # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_MAGIC_METHOD], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) AC_CACHE_CHECK([how to recognize dependent libraries], lt_cv_deplibs_check_method, [lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # 'unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # that responds to the $file_magic_cmd with a given extended regex. # If you have 'file' or equivalent on your system and you're not sure # whether 'pass_all' will *always* work, you probably want this one. case $host_os in aix[[4-9]]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[[45]]*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd* | bitrig*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; os2*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method = "file_magic"]) _LT_DECL([], [file_magic_glob], [1], [How to find potential files when deplibs_check_method = "file_magic"]) _LT_DECL([], [want_nocaseglob], [1], [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM=$NM else lt_nm_to_check=${ac_tool_prefix}nm if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. tmp_nm=$ac_dir/$lt_tmp_nm if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then # Check to see if the nm accepts a BSD-compat flag. # Adding the 'sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty case $build_os in mingw*) lt_bad_file=conftest.nm/nofile ;; *) lt_bad_file=/dev/null ;; esac case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break 2 ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break 2 ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS=$lt_save_ifs done : ${lt_cv_path_NM=no} fi]) if test no != "$lt_cv_path_NM"; then NM=$lt_cv_path_NM else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols -headers" ;; *) DUMPBIN=: ;; esac fi AC_SUBST([DUMPBIN]) if test : != "$DUMPBIN"; then NM=$DUMPBIN fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # _LT_CHECK_SHAREDLIB_FROM_LINKLIB # -------------------------------- # how to determine the name of the shared library # associated with a specific link library. # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) m4_require([_LT_DECL_DLLTOOL]) AC_CACHE_CHECK([how to associate runtime and link libraries], lt_cv_sharedlib_from_linklib_cmd, [lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh; # decide which one to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd=$ECHO ;; esac ]) sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO _LT_DECL([], [sharedlib_from_linklib_cmd], [1], [Command to associate shared and link libraries]) ])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB # _LT_PATH_MANIFEST_TOOL # ---------------------- # locate the manifest tool m4_defun([_LT_PATH_MANIFEST_TOOL], [AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], [lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&AS_MESSAGE_LOG_FD if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest*]) if test yes != "$lt_cv_path_mainfest_tool"; then MANIFEST_TOOL=: fi _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl ])# _LT_PATH_MANIFEST_TOOL # _LT_DLL_DEF_P([FILE]) # --------------------- # True iff FILE is a Windows DLL '.def' file. # Keep in sync with func_dll_def_p in the libtool script AC_DEFUN([_LT_DLL_DEF_P], [dnl test DEF = "`$SED -n dnl -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl -e q dnl Only consider the first "real" line $1`" dnl ])# _LT_DLL_DEF_P # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw) AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM=-lm) ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test yes = "$GCC"; then case $cc_basename in nvcc*) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; *) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; esac _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test ia64 = "$host_cpu"; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Gets list of data symbols to import. lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" # Adjust the below global symbol transforms to fixup imported variables. lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" lt_c_name_lib_hook="\ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" else # Disable hooks by default. lt_cv_sys_global_symbol_to_import= lt_cdecl_hook= lt_c_name_hook= lt_c_name_lib_hook= fi # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n"\ $lt_cdecl_hook\ " -e 's/^T .* \(.*\)$/extern int \1();/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ $lt_c_name_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" # Transform an extracted symbol line into symbol name with lib prefix and # symbol address. lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ $lt_c_name_lib_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function, # D for any global variable and I for any imported variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ " /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ " /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ " {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ " s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT@&t@_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT@&t@_DLSYM_CONST #else # define LT@&t@_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT@&t@_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS=conftstm.$ac_objext CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test yes = "$pipe_works"; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then nm_file_list_spec='@' fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1], [Transform the output of nm into a list of symbols to manually relocate]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) _LT_DECL([nm_interface], [lt_cv_nm_interface], [1], [The name lister interface]) _LT_DECL([], [nm_file_list_spec], [1], [Specify filename containing input files for $NM]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test yes = "$GXX"; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the '-m68020' flag to GCC prevents building anything better, # like '-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) case $host_os in os2*) _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' if test ia64 != "$host_cpu"; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64, which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL 8.0, 9.0 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test yes = "$GCC"; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the '-m68020' flag to GCC prevents building anything better, # like '-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) case $host_os in os2*) _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' case $cc_basename in nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) case $host_os in os2*) _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ;; esac ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in # old Intel for x86_64, which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; tcc*) # Fabrice Bellard et al's Tiny C Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; *Sun\ F* | *Sun*Fortran*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Intel*\ [[CF]]*Compiler*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; *Portland\ Group*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms that do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_CACHE_CHECK([for $compiler option to produce PIC], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds ;; cygwin* | mingw* | cegcc*) case $cc_basename in cl*) _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] ;; esac ;; linux* | k*bsd*-gnu | gnu*) _LT_TAGVAR(link_all_deplibs, $1)=no ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ' (' and ')$', so one must not match beginning or # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', # as well as any symbol that contains 'd'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd* | bitrig*) with_gnu_ld=no ;; linux* | k*bsd*-gnu | gnu*) _LT_TAGVAR(link_all_deplibs, $1)=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test yes = "$with_gnu_ld"; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test yes = "$lt_use_gnu_ld_interface"; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='$wl' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test ia64 != "$host_cpu"; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file, use it as # is; otherwise, prepend EXPORTS... _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported shrext_cmds=.dll _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test linux-dietlibc = "$host_os"; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test no = "$tmp_diet" then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; nagfor*) # NAGFOR 5.3 tmp_sharedflag='-Wl,-shared' ;; xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi case $cc_basename in tcc*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic' ;; xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test ia64 = "$host_cpu"; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag= else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then aix_use_runtimelinking=yes break fi done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='$wl-f,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # traditional, no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no ;; esac if test yes = "$GCC"; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`$CC -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test yes = "$aix_use_runtimelinking"; then shared_flag="$shared_flag "'$wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' ;; hpux10*) if test yes,no = "$GCC,$with_gnu_ld"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test no = "$with_gnu_ld"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test yes,no = "$GCC,$with_gnu_ld"; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) m4_if($1, [], [ # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) _LT_LINKER_OPTION([if $CC understands -b], _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ;; esac fi if test no = "$with_gnu_ld"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], [lt_cv_irix_exported_symbol], [save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" AC_LINK_IFELSE( [AC_LANG_SOURCE( [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], [C++], [[int foo (void) { return 0; }]], [Fortran 77], [[ subroutine foo end]], [Fortran], [[ subroutine foo end]])])], [lt_cv_irix_exported_symbol=yes], [lt_cv_irix_exported_symbol=no]) LDFLAGS=$save_LDFLAGS]) if test yes = "$lt_cv_irix_exported_symbol"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi _LT_TAGVAR(link_all_deplibs, $1)=no else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; linux*) case $cc_basename in tcc*) # Fabrice Bellard et al's Tiny C Compiler _LT_TAGVAR(ld_shlibs, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported shrext_cmds=.dll _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; osf3*) if test yes = "$GCC"; then _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test yes = "$GCC"; then _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test yes = "$GCC"; then wlarc='$wl' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='$wl' _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands '-z linker_flag'. GCC discards it without '$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test yes = "$GCC"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test sequent = "$host_vendor"; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We CANNOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test sni = "$host_vendor"; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test yes,yes = "$GCC,$enable_shared"; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_CACHE_CHECK([whether -lc should be explicitly linked in], [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), [$RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no else lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* ]) _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting $shlibpath_var if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [postlink_cmds], [2], [Commands necessary for finishing linking programs]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to 'libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC=$CC AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report what library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC=$lt_save_CC ])# _LT_LANG_C_CONFIG # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to 'libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl if test -n "$CXX" && ( test no != "$CXX" && ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || (test g++ != "$CXX"))); then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test yes != "$_lt_caught_CXX_error"; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} CFLAGS=$CXXFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test yes = "$GXX"; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test yes = "$GXX"; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test yes = "$with_gnu_ld"; then _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='$wl' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test ia64 = "$host_cpu"; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag= else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='$wl-f,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no ;; esac if test yes = "$GXX"; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`$CC -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test yes = "$aix_use_runtimelinking"; then shared_flag=$shared_flag' $wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. # The "-G" linker flag allows undefined symbols. _LT_TAGVAR(no_undefined_flag, $1)='-bernotok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ func_to_tool_file "$lt_outputfile"~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file, use it as # is; otherwise, prepend EXPORTS... _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported shrext_cmds=.dll _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test no = "$with_gnu_ld"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then if test no = "$with_gnu_ld"; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test yes = "$GXX"; then if test no = "$with_gnu_ld"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes,no = "$GXX,$with_gnu_ld"; then _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands '-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test yes,no = "$GXX,$with_gnu_ld"; then _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require '-G' NOT '-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We CANNOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ '"$_LT_TAGVAR(old_archive_cmds, $1)" _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no _LT_TAGVAR(GCC, $1)=$GXX _LT_TAGVAR(LD, $1)=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test yes != "$_lt_caught_CXX_error" AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_FUNC_STRIPNAME_CNF # ---------------------- # func_stripname_cnf prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # # This function is identical to the (non-XSI) version of func_stripname, # except this one can be used by m4 code that may be executed by configure, # rather than the libtool script. m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl AC_REQUIRE([_LT_DECL_SED]) AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) func_stripname_cnf () { case @S|@2 in .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;; *) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;; esac } # func_stripname_cnf ])# _LT_FUNC_STRIPNAME_CNF # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF package foo func foo() { } _LT_EOF ]) _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $prev$p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test x-L = "$p" || test x-R = "$p"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test no = "$pre_test_object_deps_done"; then case $prev in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)=$prev$p else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p" fi fi prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test no = "$pre_test_object_deps_done"; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)=$p else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)=$p else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_LANG_PUSH(Fortran 77) if test -z "$F77" || test no = "$F77"; then _lt_disable_F77=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test yes != "$_lt_disable_F77"; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} CFLAGS=$FFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)=$G77 _LT_TAGVAR(LD, $1)=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS fi # test yes != "$_lt_disable_F77" AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_LANG_PUSH(Fortran) if test -z "$FC" || test no = "$FC"; then _lt_disable_FC=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test yes != "$_lt_disable_FC"; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} CFLAGS=$FCFLAGS compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu _LT_TAGVAR(LD, $1)=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS fi # test yes != "$_lt_disable_FC" AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} CFLAGS=$GCJFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)=$LD _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_GO_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Go compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_GO_CONFIG], [AC_REQUIRE([LT_PROG_GO])dnl AC_LANG_SAVE # Source file extension for Go test sources. ac_ext=go # Object file extension for compiled Go test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="package main; func main() { }" # Code to be used in simple link tests lt_simple_link_test_code='package main; func main() { }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GOC-"gccgo"} CFLAGS=$GOFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)=$LD _LT_CC_BASENAME([$compiler]) # Go did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GO_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code=$lt_simple_compile_test_code # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC= CC=${RC-"windres"} CFLAGS= compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_GO # ---------- AC_DEFUN([LT_PROG_GO], [AC_CHECK_TOOL(GOC, gccgo,) ]) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_DLLTOOL # ---------------- # Ensure DLLTOOL variable is set. m4_defun([_LT_DECL_DLLTOOL], [AC_CHECK_TOOL(DLLTOOL, dlltool, false) test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program]) AC_SUBST([DLLTOOL]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f "$lt_ac_sed" && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test 10 -lt "$lt_ac_count" && break lt_ac_count=`expr $lt_ac_count + 1` if test "$lt_ac_count" -gt "$lt_ac_max"; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PATH_CONVERSION_FUNCTIONS # ----------------------------- # Determine what file name conversion functions should be used by # func_to_host_file (and, implicitly, by func_to_host_path). These are needed # for certain cross-compile configurations and native mingw. m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_MSG_CHECKING([how to convert $build file names to $host format]) AC_CACHE_VAL(lt_cv_to_host_file_cmd, [case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac ]) to_host_file_cmd=$lt_cv_to_host_file_cmd AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) _LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], [0], [convert $build file names to $host format])dnl AC_MSG_CHECKING([how to convert $build file names to toolchain format]) AC_CACHE_VAL(lt_cv_to_tool_file_cmd, [#assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac ]) to_tool_file_cmd=$lt_cv_to_tool_file_cmd AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], [0], [convert $build files to toolchain format])dnl ])# _LT_PATH_CONVERSION_FUNCTIONS

%^;94e4!Ƣx a8ƴܯźQEY%7O՜̪Ya$N,9c&g Bmuȴ+e=WI_J"X"z(!6+]CV¨DJwf`B+|wjchGiƼXgmt>S.+*y|(C1ؐ9 E&J,֠Ù1XSǓuU_d9ok?Uf o'(5Zgf ՑQQ}v4pZ^4Ni  B@N(Ѝm,1IAꀸ` sF}:tB@{!/G.,[p-,2^FTÈKEy_إB z!L疁`L2?edr>jE)W@hs>lC z@,RBZD>t-NTߧErȭ;.3jj*`nH'Eh kz HT2`k|8v'~ewE*sCqm%3)}5oSԼZ虬!!93QU:ʼn`)͔ (+@H,- SɜZMC,R ;XfMIaWK*T8cNǡrYBd0R:>2تȪt]L1״;ȹ|i=*rEuw:UN$U>ggALVIN W6E5)XBB8UEdžKFhD/R1ի̅sӖ̧h戦j[^|b^gآVُ 4ZE2H}qIud L}oP|F[9: ՉtV!\Se;avG%+<XSUE>Ր ê"O ZLd5`OSN?Mz  S oT~,)6 EM0h7؛z=_؜Ѹ^iJߕ4_%|Do䣆&5g]ѥ ՜1o'G UHljL80,_٥{)I%𒽃j`Mof&:)F/! /97f=}#G[{LWS:SkĠ4s,kyޜtN,0iLuFUr&6)8Ϊlӟ%ϖj\#N^C@bB!x'ՠCh*v%c$qկYRp2czё U *CmYgK/d Tfo 1]ꥇ̼qڟ6uBϭYrcX BMe}M3PS(|5+k%PV;H98bD>>|3/p9ָxsŒ lY |XUO[ #?$J9ҺĔ4^F؄%HU8dR,u*Q!RSFdqId%Rh-o3e69BgL.GY(c1C\0^poR*}>H!3n' R"$ʒܥxLje}c0s:צ-✗X1L YkJ_ 2 /v_ >1@@ )]J kx<^"=unS#jJ`ÖӌaqLօ")MHTpw>|<oZPƽls%EIjGn ƼA<U!_͸oIHۅ>X2j?d 3c h4k>i9!K؇+}\v\Oc3㉪8WVzv%cO?C "ł`Rz1sNE 8誐CwX8;pjSvsUbxri?Rn_Qm g{ - jwpPXQsgO`t\«`G[ʩHfMiXm"8KN2OTç0-\,-SG@rO(esPd4p1mJ@p &y2$džG54ː*U= 枬fS.6}e` P/Ǒ Tqz-s_ٟp5؂9b ݸT佊]iaB8vT-,ZEu%aQCܴbj>}zO_b/Z%wNKt)k=G6}200TLV!);\V\)r fDS'&/R1)IIx4nPVp1T`ydH[!UNW{[T2߭R:2/oQgOjHy}ЫGa,,s5UKa\4Y-JammgfdK 24As>琙9BsCxabbkz@K:N {&]ǟvto?X+nrUG暒SPa1Uȃ.[{$Z=.Q; g.,,".b8=FZ*[(YҜ/p d@q<ڰ+bc'U F`qآ;@KN7b̾8.#`1[W:~ȧE( Bk|a-g+\qsQ\|3OԪT`픢KL!oši}&sгz؁jx ZB*RmHTiNJg8ޡaHGLo2\2Yj@NߟCpwʙ%Fl:\ Gj7&R~rnio*$PS ԝs&VIrK9' _]1n:R{\령ć 9$kN2_e:z;2޴z~ȇIg"X< ]ZF890f{eI𮧨JCTm&OimA<4jpQV3}`|HDnoMyT݆:Ţ:Flua Y9Dow'kLNWkBS LW98/_EbP Ne;ٕw!MZ<`Nd,`v?Ibu$*,RxjBЌ=0Y!s KuHLlO`Cˈi 7;əl*9AS@]5{^yxO|h{UG-1UrH?-geD4/GT'0)Py2;',z'D@b؇6\LLde0 u.GeRev!8'Z>ɭE*EPg9M?Mt{u~[M}YEDS>[z /gKU 7((Sté滊@K+GHuwo*:GkLDxi+#ocf14n;s` (Q+gȞ2Wvǃ !qx:XFboܴJF ojafc%vVt+W:{K=*W[_~؂4OjKbU= 1Yy&JkAޙ?_6n[Q%șMb9ugI)F'}rqgwɼJ"Ѹl9(E ]UQSH~GLKK7]V'%Lpqӡ-#oxƐ8Jqi%͎d3wRK#>LM@E.)&;٥Hwe:swf9EONpwڦ b-u[\M H)?r: :_+jՈfd؇s7 kR'Yե҉iW 4wyHkªHPnj^oᦾN{xX_N 9 *3P/ DXEHU3۪C‰tjN]*T>e;jɟdF/ƑNϋXSV^)/(p0EjCȦ-e4 Tr&=(: ,UD R2ӗwA+KPnoف.bi{> 65?*eT'{Q{Z``إ^8$]Fb a9٤ dw,eKf;|pwb,9-T<"4!m&{,.gN/AwB55 أk2i3mBOWQWɊp(%W85eN⓫H˹Ʒ*t}l%qŐULӥj4r]=8 Y1"?֋cBх 0ZЁ af(HqPwcL3fTk^еowPS0n XslF Zd LӠp͟k|p*4&+NnӊI۰Vbd3aU7bͬ%=e7@!@9Mo*ߒٕ)Ki/fZ tZ6,F1wNk LGM)XӲE# to:gHi6jMn*l \ӛXr9fe {RDLƱy$ĪzǧC0 /Ԑ >c-h_#K]3Nu %$%~ˡmtZ1kv'w&1^]7%xZ?&ݮ$B آ!EJATkrJpܭuR sB)ة扬fȚWiwϼPuU;B ižR?TҠ5 ySߖ3lO&Mv93i(rQCTma&EY( pip:$袕S9Hv.Bm(rԴޜx@9pՎLTjPܔ8tp0*̥R9FC\6TuT=a !g&ܒttzJ6*65VG| <7xga>8FgI?l_=6?^=d<}z)m{`kߗLgngw>ۍ;ہD(K):}5}KC\רJz oCˤ$վPe)x l'ܷZ19 |4#tG>`(J2_j)(F鵖77N``AsnRVp:uGL2B[@yc(An7=LSF&5;PA e&G#s/9 -.&2q II@:_D`M1ࣦ_a;D&N!ʸ>c -S8n4by'cZ?Lj]̜6[Аvw )뻠 Ua$MViTj9LPH`]{C!ar&2+i~M_ P@sMqZCSeeSBBף%{5I,dAexzQ|{ fWIPGP-m~zst+&6botp*T:& .aG-K 4æw;)[<_  Z9? &t?a.9ԃ]ԔE5qOO,za$GyȦL^-f!Tl64)fFFxV@|UJ_TD8 ֜L(+?=cų&%gГ_ںᔴ|F%,4$'fѹx/\AtTLshtISܡ5 e/enԠO{5f(ٛ"7/HMQ=P@e,M,UC1:}E\5VVIMݩ_$y®a[ѦW :ѥ*i&m50֢T^EErkuMkDHohpƢ0[uga֙V~aSI"XA1=lZY4fK uIv/]&ژal], ?,*6^9N9XːQ+)!3@- pke+ jiQG2 LmʓOA*ɠ1ۣ.,K^:v.˔njz*~HAqzj[e@2u\U*IQie]>/PI:և4+cUyxy6p<][RLT/4gU=FkTa!x)9iN"PBPaHcP`oyƓ*A3M ;+xQB)\x %wHr~ЛBSӿZ9R-)i?5u|Zwȶ,;:? m,bJ}oF4*ӝIa@FPTe|#aPcnnu"̉H^Zg;B(:F0zR呙_5"ڐ>qa":҇\ZeYbI}P yt+PG춙T }v2\WFӤ T; N)@4Bk5RT Ok:_9@xOMYGFD25Ī!+UWj#har?j5 ( br^,ޙ2y\t(b>>]tIbSeԝIs}7-z8YJoD!I1NÙAlph#Wde;2kCN+:ٰV&\= 2;bzeG :>"6YрPWJj0u쌓* hVS+G&N0hэ3FvЏ<2>>[V gAc@%A(B>)/} ET(}H\[_ۺU?BũAa\!/6uj̅6K\hփZhy(-e Jς^y*}m?e.nk.1I DJuhhħq;]wԪ)PU X 5.?N5sYbrSbC؃/snȱgqōl|PsP1b:՜WzsܞCKϯL()\y-TO,QG#GKM!c*w:Dפ' <9Ֆ|ڰyαj1V\&BǓ#[1lFS{~ϒ&Ҁ_a&]U6QRsfe^Qp>W)@ɬXy r03IV cNnfyB@; J$exL(N~G'|D24!Nt1ȽRrz*fޑ-LNZ/fCBgi >/ AK^Y^)kk>?Ddu.Lux&Wy)^*R r NAX9@T\JXAʞN+xGߖ[ff WSpbNH@ BVFwF+kxYs^r,,6ޱSV)~gВQSZСpga?Jxf*;IttGRcb6^Ox0ڑr~.c*QY"u{V&N=<1C'TJ~n l^ec0~:pPv~ݡ)w!E֢̔BRuѩ~Ӷ4VwI$/Wo); On-;igY&H(cVz*+=dZn|tsao~93D_;w2s|]CFbȊʫwTD;2EVv@>dc Et*q8h},vf|]Eim*'(2hGm=(>d','~.䥑s +cDfmUz}GR5iR/ɜiu'h5հZ鏚(O[e^ېa]-B F=Jg4(C51#Өm5U8"ɱӕB}Zf)&b^,6j BU$RZRqPE  HH`rz'MY#sɑ49O9t?4%\+ܝůt%ڲ مl<&:E"126̴iX4(4Qpldodɩe5*w"A%hBr>g;y~E0VkCJ0gaZfXE'Ԫ%}B0K hV˒HÞ\wzi?AiBH3J.סwfy2+Qw& O>6uJab~Xp>>Jd<|bLby: ە?#*m79Sl87k Jpni,t3#IJvxOb5V9=44$?V'NGY+9.ENYH;e Ѧhe>tiw%xNUୢMUi?ŵDa<.CiSR?KYG9OKݸM&1*u$u%g;36¿G`rA M-C %j\6a4 ]/%G3`f3Oxu}73}~yXج9CY1|Zl|s(}C%jwhmu z'*2]b\ݑlIXe&=O  IydY/fi%6Qxh1{wܜzFPl_H*O$r]kLh?27Uf!vƫ`H"?l$|Jy@ x23muT?=z:3﯍idd0`ã 0^KB|6(U)/t-C-91 23ľO९(Y~ Z"5+^Q,' W2:X&x=B;B~9$(xX2>8&'/^$k_Ѡ*6eN-oA H!Y9461^]]'H](VœHŔY#Vho8Yl.> XI.QWv.si~L *3i,v0!)/;]rs r`SQ;紜%dػAqulg"^+ 1=NýCtSiN~,m MK!׆;K A!xmθ-$9'1 PO^ϰN׾P4wS#;V͌L3A:(S'cG'Svٖ {sN6-e!bpuP)m< ~fa-S`cZǾ]S ,ԋqf1!<YEB]xIR2Ϊs_:]R,k,8x]2ܬX|5`)Nlcg,bs7*03B[]>Ȍ\γ=TMa@摖 L e/"D?0XGa;j#̐I<4iѳcx) Ս6ER9f%e;Q j$xI+ Qe6flXFD@iQ@8,=&|OJqY'*H2). MRmztv+Uz{18ᴂfF)tJC~p]23q#>۫)eoʡTZT;rWj n-ūUY-_9WvY͞~ u-MG*2(/Zp;wsݑvGe;VY-X:gk vX-|TcCo126<Kh:Z+K8Ǔ hEsz2 vu+<Sp"y!1J g}#gq0 Q r[4cnn) Yq=6L"Q*Ն}y!3>7[hj7h[ 3EJ_H2f5Kw!#~ÉȤ҇5TGh~TVŶk0Aɢ UӳޙJ 9 x0qQ]%֏pÏ2nسx-X&nrdc5:jœ x,De2Ӊs\n ;;OZ|[O͟>"4ͧZx$bҔjI}ذQ;oO`TZEuDޯ.N/ZQp}U@~KBB)郴~JWg)g/Y+3^ %!I(XY'ټ_(x):x xRRZАqLhp~x( rWЂx Kv%s L]nK@'/d4eiGg|{,_XsPC+$JX܂Rn[*"'&~_h-]ͅ#ʔ6obgq}sVI-J:EC~64??fkesgyBl9mҘ83 t8͜Ūj˕EP[Di*{".@5Q҉y\Wr3ı=S!Xk!W-cmnPo*uw1T1ZpyU(f@xWʑWYL\PSiPr~sT:'G"Q3pBZ`NgMe☄+,4Xc2p.L5]Lxܞ.OHPwGT^pgւUU`.l!JDly0%8}L_eq/~K-wG\I+ϔK٪LᙻYA2B,8nˈE/Dg9Xm-zy"4<+NYgLnjo)"x -ԠjlI.%llyFKcM8Xc?U`,ݮ%>w*ז.[j1\җlca!yfnLi5Y'sxuaͼ6 Y%ĤFG=SA3V:"A^S;5fV(Z_mj$ fŒ.46' ea-k9cL^4UNO,y!3bZ+ S}|o06G..!) $`-ZcnaP}` %̑Xec\o".ktr53w$`A)җy(}4x%QPCM3܁M뢵,[͎0S6֣<3n qp,p1֒ݒc<`Ӻ(> iCeu=DQSreM[gDcmY%sz(8&>Eճ/XMRR3k:8YYxͳdVٲ}~gowy4(5j"5q 1҅} =Xx Q?CbsJmi̼R^FK‰ ikx1qP%j*IңkgS+QgRoo >c{(;Rjg8 dB\xeL9޸ !#h)ܣpz{\͋ HV3P PkJ lF\Ҟ֚z**5G4zbWr4y qլ2s&9Q<} +LVm!`}utM Jȸ6^L`׳DԹp}S||ȑ]|~%9.:fxEӬ JyL5ZǬY*V޷>2^6!CFY7it$e>yR@T:eύ]$d2!u@~EȵRi#![o:3Lu: `ն R^z84|)pSp*-`Q΢c|Pź'?AxΞ̳1q&`>]wjOaЛb;LzIUI m*(!Y{mFnJ2߲lu%V3p'oIM01`sN癿-.dK.p{j:-K N^ca23+,xĥhḣ:qΕ1CJG}LQY[$񛨡Ϯ0%^ȳ`G8жY R:cv fuej(-=՘@~ug{r.nZrDQG;f³ŸDŷJ;N-Rq^[En}b*$L4n۞YpIx{rSd{%&̇vRr1vcFD`nK> ߾#rDz!BA͐r7 I` &SGY6{kA8/MV|]l'';ۏzKu*-K [F8*.͌ aEuxC܀x9eU#-ն$הJK=ʜtdBޏ0m;su5Ũ  ɸ=#'ڟ@? %2KV', 6My*ǔ4A"t ƏV̡6Ou e;P#1eS w>\R2+):@leXA"\%­DK%;WHWzZCg.H LDPH7 q2N{3Cgh|M<07 LɌ=xDzm`@^`'+茈1~C3 aQx=4uCYdPoW ^ؑ\Xh<LQR!cm\'j'!@<BY\bA7.:0K/>ۏ jHf6@Q$"aϙA}C{R泊.kB>L8Ed>@o!mVDo[ȄbRJSʗ<;e&d+z|þt:x &U^skQ#{o 9 $OK7c~7t6f[9ЉH~\fAV wGt+AtyO7b*X?qah9x18VsavU?|Yr9gT#Yh1D3QfCjaT6)>EpKJlb]Ѓ#+t Gi?PKLC~ٙe+'?q cGT (AK8>2!֋:YhF+sPWj"P,YmmcD)ÇDRMR^qAH,W̞KXQe!]օ oP,eȕzd/n[P&ʥ_樶5Ӊ8:׷^61bT‰L=(~s$2Z1& \ .//1f0+4M t;&#ym,%0^H, Bn (ߜ+] IqKNW{']j@nk*o3ш:S_+ϥ()6V9(>o}!HH:{)<=BSb#eKTފ2{VzPRH۩zZʮCS!/N3p3IpO9sB_"c֤$-$".I~XO@Yep5X#bk V*"=~xO̾?Wk6-d&4wӌR q! HRr6GG:hW[@bOd=ꇄub!g]?7rf{F60 t *jrrxY!]o^{&bk 4Nj/5N8\6`~xXڅ0(2]XGx|&²c6*Ց'xt G0ً?2O+P6R,_A2GLBu$ H}]v[ߒbz"S(4E1ns{HRk'̓oݙ:5H')EG"f{Q˖>q%4?I `H xPp|ޝ%I nb3Ms !i'^cun6+՛oʂau,-;p3D!Q\;X,be_)T."=U)ѠȚ5Q|j**se.^4(2qDd_T[E5nIÃ()4t|$):TfRg5qʪ#DHZ_g0-yL8n0Ztx0p02"y(ޢl ί֒vrZL|m"gee9tC [ ^q4dAjr[ܞü^8=˖ z7>U%Κr^~5X/9Qg gv1KC-yry/àsoBKcVh2^/p?BkIun t~lf DkZWaE qڦ]ߴSB }Yx? ֓K| k9!jٯ88kǻƾON&@%eDԞ{ xl ?>j:5mq06~@)XDzKgl%Sā"^(n{cG^K%\1榇I^(Rv2n-! 8D!w$iVx:WV&15 Jl8 P\ E@U2{첐UsvySR2aB}cT}m2: /k+\`zB|%1M ed C!im~x~S4jd3/gg5!uw`Qq8Ӓ#髭X(E 1IR azAn`u"Yx0 ؈EJc|b@/_ދA~seХ{OaOBJkgR8(j8-=PbfGq:ڤ%a;;bw'P/@+4ː ``ǍͳYpe)Hj() T}1壅3lhh׀V"6?%]qp e"e7JHԡ[Ղk~ =,ˏ>Oiukp@ZR6]d"L;kq D_ /~IQZ.x~Ep!XzR!Ex;bF*(ާ_Ξ3}c9uۿ㟴MS>'F>_[_q~ٟ?~n|g_?o?yxύݎ/_ o>GsPU"  ;hrnm_0 tS1Ԙ/K`5$/wsK$h)Trl2'<0X',zwk,nbf:x&(&UA34Ilg2o ~?+oOqg!nwv?ҝxȿh1_Wįџ}?s||}?ow}?>_qo~=?sؿ3|6ෟc]{s~n|!֝~_*7VO-= {+wS}6?أc[߷{8׿qdmҋ?^c ʵWL(g>>OyNĦ؞[AAxٮ,>??>ޗU_++r]<'~q#v䴏_W橦}Ŗmv|l>/|^_ί_K[w?s>a<->ퟯQ)2rP`\͈x02*'ᨨ{ XSFuR;qS:$tTK"uPKt 31nDߚ(l۰x )cpc:d c9i&܆~*!>Jڛ$r&?#jcBmyS.tqS+vv_G7>ﺭ'۸߿_/=xw_bwlC[叏ٗ e=V0'%=;&Xz,yz8_ԗ'|ܝ_}#oNnol>m~__y {/'n 7WUk9ssn~+6X5~~h:PW¤={Ci_\\{Zf#;N{}OOeY:::{̬l3}Y7 b[rv^q6ts@kK ä8 |q]"^-cw \:Io ( MPU[l/* TWwHxߖGWY)#c?"˷g8y|#Ct̓'!H!QLە7}RQSg 3o/|G3lFB/w>!E2Gohd $hNR/8 .G-4@UcNC(S_. Nj} k}$c}aL:9j_Wʦ+׸珸t=vďpx.O{,xCmm?u>grSRy nfHNG?v;XV>e:cF!S$&̜|S1IC [&:Dj<`+d ` ,:H`MoMy%6B +!a2& 0I5Wz'm3xGD_B8UUׅ JcQ1xZy'ݫ_*5(ig֦nP&ח7_*pD˖1%سM=h+rrN`;/>pTT*̿+ i%ޯj F4&Z|sIIpARC&?Ql_R0 SPUnʥf+,{)5Urb Spucwxk WoҤCp\IR\3<8%V B:+cyy)t+/JyX'OP?\ܱ@Va2VW ڍr~vS#bFCQ]^^ V zX"q YOxVT_~(p~GM\#mק Hx _Wן?ԓçzW~pɯlʀ5ce~DzS_? >InIDV].x0g@zXs+pHF)>wphpvin7VfcQy;ɒH+_Wsi&G' _;jJYayQdɝTN55kƗ hg Je3VOa =I5Qz $IRAa(B-/?~ߩT-zb=x0Ok-AÕx { m \BQ[B}()xVXF,hq7]*{,t(}N  ohYZ'|A5(>@ۂqPআS2>f2n=ճ4־1rY5p9V"ʌ^~-4di̺Qr<!^4 ZX Q-u`m8tGc/)cK 7խXa!_G0L:jJRhb%X :9zHTݰ+1LU.8_]:ٮMu_N4S`꼎r }nuRzVJ\,jF IāvK)(2XjW HAw}"Fb3*tWT@PP@yTUi_d>̇|gOXWTcrU5>5W~J.+oIR٘hƊ7_+钊CT hu !^J RciS x!I%N,m<~#jV6dz{ug/AvGA8zc9-sī-Oge+C8nPMnY=}^GgOUxpe&ߢM`3gP<6Q!LH[ܡQv~&J82{ۍ x8O[Bߒx%-mJL CEM +xsP Pj( BXoM.npuMK+R2TʹgY>N\:RN_]ӪG(F hXV>YDI*U S?U4u} LUNp52t;SH zBs #A |qR0 uudPiD55wє_>#E;28X+ el  ͑_*\Cx7Bk;9wc@v/QU~} \3} )"7UIT= T;qhynL))().0ڠS߉xv~!)}:r&4딁ʻX`$; 2.kK@Ȃ*y b׮ Z5qp'gn%%CM r/ɻ@FwN(9ʲ_D%['zjSQ߹/7 q;rwM==}M雍Ҟ;14d.$gh=uUNGNA`qe^3SQ8tm&"  ͥ@(KnԁSx-=X)n7R?6`26nu'cU :Mz<TR@2*e<=m6\0Tb ܈e+[o)/累TBŜqr_3&9Zۺ<WW79|)Su\\xy`JHy=,GJOYH Na 'A((Q>V9O =<0*16/o˦"kb!YxRVymkjgBzNkVt ~d'ML">m,!-ۆzVzE?pYm%?+ \'@P?Mt !0QAsҿ/BJؖ&eRU"1LQQ+:wՋ)T'Qh;5CMpzӿ?3 yT=N`A`)E3wsᅙM)QɅT5)4+ʒg+SyWMS1窟.8멛+>w . 4#¬|.%OMPUl<@~xsi9L5s,? rO' A:SpSP[ڃTdi2S2)$n ]F4ej`XEOu2}p_WwsQ>Īе>0Nপ37^yrgɋw什~`]3M_@>h>!!B"qt-jA\P0kg VP1r )^3Mf9Wsh7w߲fu_6C/nտF7u~JwUX͚Fl9lVy;j% AODagDk`'+-9f*{F =ޢy;7UM5Tt}(k)M ݉AfrS[^iNRI\ѷ9j\ / l\6*.>YJ-:4z|!M#s`lr"pxQVC|v̯\ v?Ǫ44ESG,d>H!vOt6tC=zŒ{_T t (·4]G+aS0^__b0b{i1r0$•j / ($Su4@&]\ɫpͱ<堺F /ɰINdU9Bۄ) AqY;@ Z^o *R3UN^H2@*?Ӷ7߇.ק\_;žfTRfWP)@h@)~tx\+ߕ 6u': 巂Wx=Dcϕ٨/[͡C\wMS[M r)/6+g^D>FmCvT4A:w+q KE @9uUnL7Ac/ǃ]L͛SA-\0i*,̽5EIbcsa?(jҔygj8 wjys@X'ېjyb}ۯ?_ :L:<~ꪒqzgP-baڡQ_c{zCn,:n.*K]pjSh1Sulg>Zi!jgnުYE YǍ:7%..ѹ~LSNl>O%Rp=aaLi팀I85%-c/VIxtH"栘*٨8%Ҏ~xymǍfS{ԃhv1%T |jTV }S'1UTr{A)_L ޵[q@3}LDd׌نG(!74e4f0Č#¤4>uדNC{o)%8h_ʥPunE(V5gZj*|Ҹ ,6bq$hfh9e030xgqUM#=܋(N!OBI^"rP z߹) gfKv* sCәMvi}68@y|m'Z~+1uBksdu?nOwDdAN >up|TDh‹NJN*|#| U*ir9 s )%pu3JmW= bt[0UJ)^ bJ0QM^T++?5) z@E͎vig\*7nێ Ft ,㎡i.t(} y5)?ho l&.RR^`Bܦ1@?~Jg/4C##Aa57"\/"̒QfUsVv[OԣLFmT-Ӳ@m~>U(Hj\PWpJCc%VRvW-,\1%'@l0/«gTc!hdy5irS:ևkDtRs45*|GYK j^W_S+bnSp xݖuWyw*bazO!3N{J1ԍە^(4:{Py" hzpy=gpSs>OX zoOMMuEu*ZDŕwqgZIn}QC`ڥY]q ,Z7[ óW'af|شxC))ڶ{.h H|lQP ~@ ?kgPYsܧbA%!_jNAkv|Tp"HU%9M|bI~puhDG)R4?9z>Ϩt]j..f6YUanQ [k{*e}4i=XSxGT xFw6 w2Vj,|iI᜿R1W\7UɮnTjlЅPuFKuVc"de:Ү|؃o{{ ,3WR;nߙ͵| "V ALѭD(uZek+'OZ]^䊽Dmiq5e -w11:e̥9g'wK91]7.*Xs6?2"d ճYMw8G1]XpP4 +CRb16d'Zp@ȖqdCdmmԻM1{(5Iuys cO.X[vj9ȋ|#_\CXήg$/Uw#X2> %eNzA1kJ w.J{:>yqRz}3*)bU !?4_O?Լ1IUPḠb*@:v)bY\ ;c:`i<[EBMmH;Z1 =]5+{}S::ǹ#ۜ9A=nAxL|zN힥=>meTJ\155+pRO'6eX40̇՟ =vy&FMf(+1lb-MW18!E/HsC1-)]~LBNF)77gz;LKTRZrghxN"Y>nʑl@J <{kf P<-sFm<~NI|SM9cS+ORI}?0g.*3s$FOgX-j 1Bx13Xl۷g=noKQFIEřhlԙ`Oш t];Q1sىzs`'pL㓤R&a-m(pkJd|/QX4$;z EdDAE0niV3~y-B§xkQV ux>Ӈx3Ŭf{iR#ǵ׸ $u{tr55Ա=U{d F{>V/4yzӂ9!A׿puqSͅ,nJeV$fKsɌyB9FlDT>nDrSDMcL]ɩ&&Jӗd:r_-S38D l;Ÿ^+*h>qs}/7)g,zﳳ/FMS@>ܳT7-x(4>2QOmw4/ܛ"2'F&Îc,(ִp=tx4S> )nsѬͶotF_AQ4ifCڮB߭oJ>g!8% ZޏV i]3KZܝź=>Mv)(, +'ٺ%yu+!JqNʦ2(ZE pNfnot/0~4;WMJ梔P-9"2 {B+XFM"k `Fin.QD䣠uv VyTIueA5XJضXC$x gx3`Y&Ŏ!h׹6(YKc؅)V5.= Po b1n,i{a|yTwЛ̗Q)ä́WU'X)^ "HYf@)'X "dkM487;ل*V sAXI ҟ8פOTG7u>d##.915rﯘ햪W=S|)V((NC7>QS))mNeCTi(u?9 _r: |Sr݆V > X4ܶPС Z3,,Je4|%Ctιqv]RupjrN2Hy$y{YdF@#O $Ί~pѠ@EC;tm,dq7A󥺧O6n D bU p'+hFT]g Ay}6SyU`*8}AbO[f2'y}ILMϚ{F_y67UgcZ.OLEç.jdh V'9IjBNE-2iң65~Aqk9A8s.uf!'ÐktVh)d$x\[W8MA2THPR0ƌw,"F|c|8-0k`rӗҀPp9`PJF#SdSTOT3EޔG~rD0,1ۚa2oIYtc!;2@e+Vrkۋ>XS;bRhwrirJYX7c#=Y#b<b Ta.Yg`>o靛a]{DO̥!z(}pe|X)o9Çz`9Gq)TdOյ<;JNOXdz"!]uѸ/>n*jMH7L0R8/㔼7Q(xdJBE]l/g>E t< %*Sɜ;{iRlXINinm6Z2RJOAVvFԅ>n'S7ȰպS>B%Tl(DTi#լ-ĕ4 R;3Ce@,RN+Ko NS rkǨff9#Ƭ3SSVA'ӠyEm ^MDtEFLDcX߿a̓ -ȃ\E1x0;]#tɘG"1* 15PiC*;֨s$8,&tV&qOgCSTI3KM&1/$PlXpykI!TIew/`"|{e`~ rYTvB\7Q=p 1*eD,*:/d-r`h6(հFw?i 1O$3g#G1l7tn* #O梏S= M|;h=z ca0MJmrE挭4eϥŜWøuN.҈\ѯ12_S v>`wLMJR5:X3R[ Q7wn_UC䖃| aCrPOTٰ#H 6Oi?CiZp<"ƅ2%>N1ܗ`s}}:|gFuB2YDnO iP{3Ήqreh<@ºR>9gH鑉ox8뤕A XߗvtΨ&jmQ*̓`S5]1\7:a="=+q`6'OhO&1q Q둴g]:kq^=NKM[q@α Ԑb*2H֍tfp?JZtLEtwuӵgSΊd~i{{sT Z(ey^Z_pɜ\7{t*Ru{⧼woNR=W"PQJ17zf<3[i5MN(}_7OrQg5p>C/{)vYmŠ<ƱL8BVoj45D/6+0=UҫOf,2Y)C\e >|1)cR>NL1| ;_|G>B T7G=S)}˦$RƪcǠ\Q=~P YexN&'|m@V1.0mQZ44UAjv=M:ÜfAQbg\l K:]:c$m>ߵ6mM4)=2մ \aਖ਼GK׏bco_M:n.tfcaMo)į='|*1<0Lߓh5&&Zz k\:=ha:gd.a?hSݷWH34c]#=ɺ0x^;-Jj.QlDo2v䜙˘R~ 7RXݙ=ԯ0n[cll9"6>|&kfT!=닝t_E, ;BQGj굎%5m3թ!ZI]<<$#I8#Ox;pƲ/> R 'ªXɿ S\kF <vYyȁM1y80<(2QN>0A]*/6B>ʾf(=I*ԙuNT:zrYUqH4tW o\/|,-鱾L%hcDLM=g<@NaDQ!4 E_>zYY S{ c a_=Z6kL[?Kޙ%~GM@X #q&:\<4nM3eܔVt3Bl`Q NhsrG3iQ'4mY)c ֏f%8f8;U.Tb$b0:cLi--nn2-E)sbNV7 b(ToչjC~hkWϥj4qBkdQ #+d f)7'YxR$b1K0XD0o>UM”`ͺr:MHs};d 9@1u ;5I9_)Rʕ!"´XEcesR+ LUF$xcƧ0:r8+cvK[XJ+|8״{P=e }:8*9: )JX)yOٽ@׳g$1i0U`$zr\P}*2^t j:JɻQ>{k @uzgjHı,PG!v+mZlȭJp60\3bU-(@5u 9cAHg6g6S#:(g (metϠTB-lbAk9 iQ8lTCR :0%v(rɢ[ux#c䦘x Z'őZF<ekm3 Icg ;7o]"t죰?5)ܺ,^ ǃUTDD,/VdyC-7O!q!DzJK46UWʓ)qb$kXKE0ap\V>[̏yz{$II>,j|.u >no~P~rfiSx5SگI=d=&Z zv ;yNŽSL\zB qQ彏>sfK߇;tbG}=L_&6,%?|S_UM=}3ED)AY&m}YTXu%yw.Rg_%z!?M*U__`ub.R5y%3MtrbmTuySMBE yAK{s@ D:i&3pF=Un_Opd J9LӠ'4Q6XT#d@27W45TzF:tm/#ٽ{=+Nʸ 3z= #1* /+3 ^˦I/gi JI;/CL3j"Q5@(rfEM5W9Mq$8Wk_gKxPꉲǟ_/7:T'+|SH36+?n=NJޭX s? 2=Ӧ`wLGD^$ˆđQc #<#Q S'Dhy7yֈ**}ϟ;zw}Sex"(]z8@/4IR C5;Bi. iTwd+2?e,'J!4;vc_}65t![=Y+?b< E 3/3B)@Ȧt S Jk?Mj0jXoi|CSS.{gi YtTkuANyL;YHq2SGXSZAS-HI]C 5x9'9k=z=D<,F7"p(D< Ёy#iC0J9b j0<POhjR"HK^2($$U$|}UepHQR|>W:ӔPU4W]/A,EP1w d,-'gi,][B6BI(Pn ٟܼYg#x >m*g lFWSyyhsJޣLӎ@WU.<bƭYuW-Vo[C|9T=4)D'MDUpS_Mat>~ߎ qʙ/'R2;ivOg>>;vA3Iד(u[ɺ9NTc4nYMoÊJi:_O74II|'2s< 4W!t o1Q‚)T0o:TcZ#u9W@ӑFXi$o<]T5giMR QgCÎTKK>53#IưKRL\+RE7Oo;!Bzs$;m;nOHK(:VĩPtEJ)qLسpa(ins‚d; z̐m*P2Y\)gEC@RIQV2Mo:X :%)tŶBh}\Ms:9PۇƳnm59*n8Κjvbn"w hz+,s=,%S ]oVKhL⤿Ӕ2_؍)`׊h۟Q&W*_ɠՓzPZ;<ǬcSC'I*El`EwT΁k:)g\ksfئռ=wMs#6gt7i|[A5jkh%Bj?-Og6~tqqYn<:`k/:o}L":MegzXzIڿ7<_۸vnI 7nq 8Abn3C)(a2TQYFwG:F"~EZFyz-ze3rg6?Pɤ^Yʍ{aݒCSc@9cJ A}_ʍZxPǀn:i5FERjO$#^,/ʍ<& <%50&14E9nrPUSiJJh\ܪqT7#1ih|>‰j"KAWfx|i7~uX~:2F70˞zAO|_"IQS11ذ>U,,׆!# _3PM#_]KBTR@6&A2;T9r_$8h6ɱ>Fqm+`UX22_SM3JƖ04ɔJo!:?֩|)*5곥`cf`1eY2m<WoڢKPiD S? MըO2Dc3gy^t4qr^&JTuG$G|K*S-bdN6hk9X+ݽlQSd)2c~V+G.eL$Oע s|:#,2f@#MUݻsn ZLV<ᨳ:Pq{AܗiϤi$0u cniս`EMTU@ĎtPqNbkuguc)3a<&1 B)']K~*-Sb҄wmp H/Vm=^Zx d&1b xGQYNR;HvdL#n{ڬ;vW4lȼM$խ_B^<3$z}M(̀q(=}|=N+QQ%*2GA;4-YCJWvEfQǭ;Q`|yo>d6gfjE@bk;,-g:n&wt튘Zpv${|:"ЕW(Ř~ A\dx50Qs]l9Q lgJ 8oV%k.4rxιZ$!UhP^z&vUh4 ߘ 1 Rg օ7Cd>xOKսq-Ia՘2!cE픪2j8HG1u]2Z~fr{mq(qw7(EQ(1~ (,[/,xi(ѣXCX3w5:9^yMEJS P)7MOI_|zPx|3}/3\fvul2n:d5$:ɬڱZQ#GJVK~ kxԥg@:6|%IO:/}[@{yv $6fA6SL`Y!xIauTwќUOYn԰c/qا"7j|>7S\F:r' $m pK4!31^IZ)"C31tDD-Oµ003u !Q {`[>|oЕZcIEf#m`fxψr: \lQG2"Y0jG xaDe'1:х,/MZHcOΓ󜎩ğ |PY,ݯYcY@ǫ>z(HE HD>$Ge/(z3m8^t+d1VKN״ayy~{<i TiHrndSVcI? G[ت]|Nze$ϤLK{֠(c)bj)_k:Tb .E>WoMRʖR)kDCdZN$gvvgHnYV3dr8m+ogqCmi$@Iex"O: CKי>UnS7BB)LZ;4fk2׳zl%q"3-;HJ/kDݪ/-̗{yR \%foSd o\C o1ȮzEE' @E?Rvo&'#*CD)MMEKQn^ԃ(%(=):tVk;HՋ>E@uQL#gR1BB9[;1,6QOm (_}B :+7UAԾ5| MʡݯCM1U.V U.=kcjTBK>ofM|=/ޓb_" <=Zn둛hsc{2)N zSL @J<}TxDb:؈|ԳnBZfTKآ(ՓX`+N 1ă L&ޙa&|ݟ N>" Z>yX/&$S4L}2,rzaH{nj !.)݋,S-L-^C t& zb-Sh"OCtȓ=uX{iճ"fð'5 UXn,3[XE;XzR3<$˧t ¼|]qg#Zsj=B3$ɻ__R-2 FY'e,Q/Hur'S3I+ qDʘzAQLz XH,~Mp}v)Ϟ2L~z0iS$Iy[. X4ewߑj) /#I[߃Y . "9JcvKE|;4`*wѪH*Hb_QC}E~b.E%yz變&OR]0LTrgڟuMmLM\h8h~[Cujas|.G>mDhLח5'F | GT@vZ+ <#Wl]pUzsE2'n+O[pϯ?ViWx~kCŹY[z`=`Ұ#Tb 7慳j#)ۜp9]MX$Q-Y_s2]T&ataq 6,t}F}*(Tl8 Y% T߿$;Mfƍ֩I;ULuφMTaf%0(/K2b"/Z-$txA[ф<$eIOqPCglɿ2wZjnFvg> aS&_Me nH]8ÉfJtůѶ.rP>XpAKvp*ߦ @l-e#m uΩPN$񮈨7т'Z"1b1+X_O5fur5,ݟQ"|u6{|0e s2뚋>ѝ̛m ($GʔQ]L9Xq`-wc3nF p$ ,BcW`IC,֌liO(ho$all7_߼aľ8-B]vmS|}ƒeN4%c4Cwq4MJ) vSlKP%[;MSA i^<3N+ B0nKFir=#J}#4qCx G|x,tKBCL:e(sLyȆ=Ћn|VGCM ^yg0Gj^PR<<`A hYX#.xh4 GL[>tWp?\=Ej]?!>ݿ 돌?q;i=jҹ рb L,Rk&)tAcȤd%Ά], s1sKKS !=:˃REVD=Z-#3?,d]'}+Q͔w"OsG$6*H8~C ?5á7Y3 ug-c6l_ }2P)𖫒&s"&rtY."Lal@D\X8;  'Vaukl|d98{RKOM Ω偒Z%,Gon#!IY# '݄e`;r&7\B&#G t ӡ3s 8dc035$ORuHp:d>(=e~JG: J᧟?|CT|6蔹pӸPYi|hڸ{#bPIs.M>)Nۯ.J`}Gc4DQƭ9Œ>kF~y8~;\ot姻r]r;qwrⲻ>|i׸z._>ooʍ7X7$}ߨ˂3w/ml]}<*9rwTp}F'^H=3Ik*Qw46ug&pVIQ8i9B"]#Ppy*}U)ZЗٿoA,cHKUR"cvEs0E$RI u]T߉,+ fᡘrrtXTc: Am6(᧣My-}YOȒy< !q}H:|2N М4'j+ױ>l&~~]/G]eQMSaCO(8f~B&<]ނUM#Lkie;%cn?D$IE4DKvl5_jvn,?c"gd0/}*yJr6PQKtVDqU[Jp<T*۳lO[RGmb 9ZYNL>g~= +o=HװU!j/D%MtY1i3}Ƕ7K{wo7HI:ro&J.6,,2u՟VȗwanK}h]{ݭǶ*tYZ3/=[O_s{YgvVukyzzGں tobhj:(XgtF0u5j)GzȿIDh$0ﯖ_6ݶ,j_ۥ/O\-k@㧯@g#O WO3 IH(Gu*iE1T=?_4L3Ud)ysV^ws`&B;= Vg:5,|GP/<37P\r8KX'P3K=wZ=soGv0D/ eSB%t Pmdsgz7kHfi)p~HI~Myޟp۠Q 2/wj+zF74ڵ7G`4YJ6in>Z:ӄ khu/Eqj4,JTh9W 'nXh4MoR'\LYƔ@i (HC NAe:Ò@2>:cM)%ߢN6(q,&S+YD| Q4o)󥊽֑hH~NaTvթF)0a$">_jvИ!N*lLT|O GJ΂*X^Anw$[-m[[ nX9 TIgu' b?N;IК[XfgQ||EVof? i_vr67wUXo?~`D(RG3w<6ߗPƒ_͋>OJbǨDK0>,C< %Ke!ʦI7raٱy!ݠvi0">zM[Z֗v1'VN`lO69źoi ѼP;iP<$c͍`{^h-d|ɚl=0{bnYAu4ŅR"%E~ue"Nmj>oB/$$]R)RIt NkNuD #`4Gg{GI A<0s" t0*տj4͋#'Qsy%4w0CNf`m㖳嫳Q\nPnªt\,[)2#D+}x5Mh0@0CSSՊ= >H3WbRiLڛ̈dȿ3j: !֬/j_ɲQDTPCty|RsY] zD,7 W)ֱHm +ojvtYW>4 zx` mEEN@-=I0렟Uk? n?_~Lz$lb*ǟ߼A/5˄ѠF)uOgZ$UO~kMm 3VѣAAkzx nQI'szJ;KfJ+,JloWXVv5 Al ٟsvT"R0Ij|r2PЭ2#v\Fס#CMzJ?7#TT}Ls)MH0O5=8'>{Њ^1V)9p{U*ӕZ(Gf1l?ٟc1 U.a*T$Թkug("v" CFk H#yU͙p4Oؐry=6ҟED:FXuXk(adʧϹ$/4*/L]#$p5{4C!rϐSMiZނ1hiH'ҸIƯ@C'kǼ)v :l ,5@e A)/CaPq5+`X"֛3t4o ,N%uiH[Q铨AQ6 kb<eRwF!6P.iyUM6l8Frج%[cÀc*t؄4G}P%t}1h)J<(aGHGS.l6!7ȫlȸ5˄2uyc -rX*oV;TA8\98l;_M^񮗪<w (/x`l6|c&*R# }SHtu%l72~6h0r^|=N\%m_ crR7R*g6>"BI>JǷ]wphݹsېl{~8!XiL2&M-B_zW<; 1~#AP$.hs,xŮR|]2!<95C1H`q1e1v"1}vWQ\FNG9(#W}?gsȤa1_!٨=q\mP7iԘ~ВfYgZp}q 1U@Wi|CWfrIecbBXJ70;87ԉ-q2jښ _W>tl3, ι` /H_S>yөRU8I3VL M~)@> R56}aJr'7E:NI޼CMjhjY>P*BgdG 5Ɬ1FdEԃ$y<fIun,reT*&݇0'AbS7J7Ht=û:#]:E޲CW8o \}#gV4Ͱ=ۓ?@lSt),SܠUl8q',[o0m]{ݭ?>@eMR̔z*YFI#J,Ԓb4DV,L3@0O">ara+JQ0؎~Q6>AķCY²ԩ #(ռRQ1EePWx;pRIea># o6Y]Ñ5U?KJf`PU׿C5|P}) O$N&0b\)W>T/_[;̛?Ӧe]~jZp_f7d!r V2c9{13<Ꮌ%VG̎|rU2?suKGu@,׼L ereD0{\D[ǾP_JYQ}$#=5DGN'CuNln\q(t Aپ) .7("Xqa|za}OTzԧVƉNoMѹ?):׵~̜i= ]Q/ T-@ LUW>ŌG°2-"#(.] &T-RrHm6vNZ$mHYKG ~vOCu\hf)oݔsR{rs̥HmS |i+uhc#)Jf %mD*5z D`>,boZi9S%۴1BO褃"X,~v0)]'Y]gjc%>Oӎݲ|.hC%w-T#]op-MF/] gmJl>qaqyJ'$hGOncU?ydCꔝs[kNQ[V-=yd3ibSlƜ&)4Zs>^d]L {1*;J lWjU2IOyIyZ݆Hir)'nI3qk[}\=l;=ߔ}pb`cwLzypԆ4tCoL30Ҙ 5e `Z Lm  Nvދ6H=كCg3zML&j)@s3()< * mI1Tg}r.?&hѝ43J1jt4U½f! ocҨ/Y`ORWS$ƅ6ǿqEI joQCyg sa/bU//8ݲP=)f;w.tS|oU_z>%zE5(1};Mb=eF}%^z5rJ=2QWT &a B+1լ[TW|0Jits/:lWb'_&FhLCUNN)Q$h<)vM'L}tYnM֍Y7F0MmH㴰&NDD&y3˖z*]QiyȨM$ɽVcdڌ̮s_QcaKp@>#~kRhذݬ~(EZG<8~h*6;wڊ hiqwH%Z#STؘܼKz{qMaj֗0s)V )N B"1!&'āo+QKvz_RŦlq7 rM d[dm8fvW# jP0dCJ뀕J(OrRo5B3fjs' 3S̝,N-"|F|ř A5 x#Oke}TLTXQO2r8ȊnW:bȽb6jނf*q j< ps >}k/lT?m5wx=զԗUZ<&ЄϮڃ@URb ᢂQ&4Woi޵)t`/}u 7Uo_}Qd[EaДփ^'2 >rc*stsftC5rҍ舜ܔSQb,gr|R"b<큮*iy0ԁ͂T.;*f6ʉ)3đ4bPq_4v #}e`.cc}똉xBjRGoz c.ì>Tnb6Emx_'itXu-?5p12u3F7᧬N5MQlHeR9kCtrԓPk ɏPMe4v4JF>pIR\^ >N]t`( @L5rGi*:|u ecX(T뗪3W5OmK\ҵ gqHkD'Ubvw99SZJȖ9yq]+X;}zT9qBʸ-3uuN%x&G GE iZIYb ]X)PpdR΅;4|1]X#6ai ѵEC5 I HW>vOd^w簓*E%Xv(ÚP9ed{&=bhwh΂뎁o1oT )#oZ{Dc2OSʂT@48R ڊU9y*6շqa{Lw-AՅbi1I*SI G56d Biu]_*#Eha;nJۓl2%R?оDh*Hvȥ 'PzX#~h9)P)LjK8!n|A^^sCVS>y_ŞP_sü,h|JO~k!HdzcHIq۲@YNBX#? 8h *z5ҟX(g3"Cuj'b௢Ν05g[TK_]eW8hkaY?󷗯l|^uYpXs2̌PCUp~ 3*V"X?)+؎$y)?SO e<  $Kپ:G5bmM] r2aS-Ʀ6ֽjgsy)l?bKq ?ϞYڐZ>tҘa/.H!8 ܽ3Kfy\Zy`\b.Եe6؈itϩZ4NotWHGшDķvb-me({̨k4]|S MtI)"IK}OUPDfUҐ^{BJSEeEFOn0шh&mVVvWw)]ƃ`)$2"Rx2 ' Ge%?e'?dYYjCR̉HBvbe8PHbq 獉!4ۙ#j`9[鯘 IW,n&4o\KjsPLy4I[mECS-rS>z.l8ˇ;4"əzvh&Di]jRU :n,ՙXt+vb$S^`ה юVhυ^1bcZ,lM[ا Q h焬]tj>:捳>v7?i8l+K`Y[u5%2x*6bŗz-[i b}S.x~%})5Op;\vl:$hJ)(+PȦ{ \i}b`7#!+\_n K|!lZÖ2E"`~[ǟMﻥz:C[x@h%֜HSB"xkAC!P'}#ojeѝ?]=#f?B'㠼̃7UNE%#[[0N" p"4 qo"j %(,Msࣸ,^,/jBP9xW.JM,<=yx\[VpdZ@4:|k㊆}dT}?yͣTe!QTLj&Sl,Ӏ2ݼ"uuׂm ZL295fO貢}$TSEإq2*MJ+妒M*78O^@tZ f)R.8QOy|#)R$%SBF 5y_._5m$vh ȲЀv`rVF tzӄꎫ(r;ұH#G%U2jt푙1ބЋ) ,+>-(Tf"K%+5@{+%iv]=X:hں`K=7%RL%}kžAL~PJA3_Wiq Dnq86cT1ԶՑ*F"!:.oޱhӝ_Kj˂?+n xmOSB|(jsC&$8"T4lb3L? B  Qcm 3EG$MLy0r}yИYPy9S=e:t1vj P՛Z4UTȃ~JImSn0wx &JLnd ytFj,n֩FRA_>4fP1Cٌā&:\@KOrHifݤTD6'%5*%2yp]Vh޵rSľUp܌܅ͭ/Fcr P܇V0p9KF)`,i9Jzԅ N hƻ0XH}eZ?Mc<N U"Ԃ'Oke'wEN~nc&ݔzgOv*`cDzKH@ǜ}f¡u 9FMX7Z}B!-֑L{ݚgBo3&E6'J.W4<\z; :qI1;]&|Gaބb8Ca/SQh1ےn^/ 7g=8> FА5đP$Ϫ4{rV;f~BAXSS3`t1V1x֑,S3pXw"XrHƋ=>}JI4PI_?mzrL,s7<&:i噾rSIgŹ 4NS?pR׍kG\Ul.l`ԇtfˇ?!w4.4`0`A@A 0040 D@@@@A 9]83s]z^RjT׮]UUOE=uDB #v Y+!/kМz᝜NCeA;SeS{z-?ux Z xIQn O2Ze?l*A o-=HQ MN)5.zJi {RHk\{v]{N7j;P[0*@@4+׬Ϡ)/#1N]2?;F\_4J:MRX*IyǽAxQgt.}('a{KLdM2e2Lj}aPL&72np$&tA^y\h6yJ P"(ωg!~w]-P4}.fN_t*wWCXMe^VF O0fn CI$6 S ]xG܆icGH`n'SI\h]k"t5bD4b@r>HpNe$_6,֑8CY9Uy>ߵco( "G(r7铨Z:!) <CN _9JTHe3zx5`+W&YU  vUuyag8!aA))V82T9oL|G +^x׹ яTKT<Lxf!IW:il~JδESK{lԩRT0P$7>Gq$q{woP3Dp&IdʈL(iϜrG`wlÔ=0 eZKaT4 T_DP_jjf|'ŻB2<3Wnfi.\;'65T>%H(UP+ݵk.󈟥 oUM=G܅J_V2) 44Z&Av[!̕R)O1]רuNЋn=p{z @NeP&He1u=ȳ_q66oHFkQ ȄXQ VV VFpG udZO)F7\34q$/BA$OSu0N]/9xe +8UEe 42\RؙlP2q+O)gwƚ垣mWE@ q0=E@!옝}]ɏ W Tٟ{Ho-%DmsBJfx{q ` ISY~Jdk/O(L:'^0>ہ 2m#hbws>CUrՓ[0~2? J_k{@Z;xШbV?%KoI58@o:C n|S U ݹӢt*:! ȨؑO`'`$ hsyx=n!{2˯z{tHHl# ,`` h.WHv[I) %zGY:YDwtTpL Lm̊`I3ȟg;5pX+#[X}*ncET&玛ʋzk1[ΑY!^D4I^I*M/e]OGLI x8 Kp1TBgg痖6[.MI5\AHS hnCF vqHM]㸺F&T@JJp}K8IQL4V<݁^ht,lGNEc%Q TO8_&Fܔai!j i 2UєU=qL\fŲb*sOiCݐmbji܁Eovx| ^er/ SQn<1M}3~ғO̯h5SkR+&dJ9IBXN;5Q1,v*$2z$d*ZЋ*3ʑGKinMG)^j!XTd(\=W݇ZtS_:>}!OFIW .F>7zΐ.ݥ~vO?+ak UQv:ryr|CRrHlOۑNG`f'G o*}IO*>M#ܔ^JJ;k 8_*$'tEs0ib)YBp|0`Q*+v$%US 85is} 2| )$VM!AW ʺa,cZտ:2j+5Nү^cu%pTԘ3 Z1Tkn!Z-&TSW T~C?~j=E+}@S|e7tv\nJshzT(9%juipa&\ml]Q>WTZ'0T$*18Z{OG""i :EZ{'|7hpYiVNF@o%,/4YAxVԓ%jb'xZ(!)xs*JQm`hXVP8M=x*9N{hI_Аk=H66# >KzPvH"DVO,Gx2i) /)1ҩ,˂S$"49 bLSIu;9 v5B.ɹm9v/"vŁD4U9ÃMjv*BɇPYN ?&))7A })In4+Pdh8?TX.hOCP08;jHK~GLO\W)#4nM4 %gL+V yYtrvsoͺ<_&z]*Ɨ;JKld)|kc*HDx 91Y滸)Mi[dFG)n72tEih Z2^M2ykn`CΜx ԓ"8y*-Wx TX(3l+8522ZuڜHz ՘\ UnHiޟzGj qDUJL]YSGы$V ?&!)-T+kzr!ɿpBPn6xj 8iDvoc`  /mZ5UGmiQ4yH14WkU ULJՏO(EE2ç\me/)/1mϣCj]VdI&9Bݐぐ" s)! 2 &tx@rL#y& Qn0xnTnYp2 (U4eRVTh<;bӁ&2NIT~H`퐨^;n*AN؋tv"+/m>l@jʫ_"ZYIn!D'pZvQ@Y0Zf~Y!O<3I|1:3Bf_Үy"7Bt3^ m=Ke[GE9>N0?xM=~)mSV 4rH_. K^!UunPR:H(ú{EڈS6G*"  0\6ꋀS Դ>MM7FP x$7Yh%Bp(ޔ8TZt/LbiE)SMNg-lѽ39$Jcij=}8@yG\=x e3LMD`OZ3eAP (ђj`X죢,^˰7 !m9PiU屮vzH_)D?hP51mo~fbb)?Y>+v>W!F#YA%bЧJv2]r{LJ&n&>47F?v.B[_{Ar(}|N!|||ݝ6={e<" *9e`O `X sNry^1#PK΃f,/c:q:@x`Ae#ljvP>vFX()B~vLKSVMC³;M斝 :je0[hzFROzRZTRDi4P⋏k@sz@(D] %\Tӣ SXRUʼnڲ[Z UjIۂ]S{[uN[wId;ٹ6!2?tم k┊Z*4E;eA=# s8ZgVzad_2xggكV"}DT'j¦0Hq*R IZ8-֑b'hT[Kw)IFʂB?R0Ggj>BeЬ/۞_Dz [f*SyׅeSs+ PL]7Ž-Qx{|͏8%`99u9M]BN98Җ$7)lIn qf ϑIJ;2Қ`z#4_-`U <|u~{e`]n§턁bXtE?GFLvB(U5dVRT<&|8jv L8Y TۧXSp3M/@;A.5~psJߓ^/gi9e+5gw|Wgw_5i۫]oz_T$)0N5] \zg ?'+Vx.WƳ%J-7z5buy-%ڃ֎[).?G&#+Y>O Z2Y>l`j )2aSm ^e c}͌3s,<^V([n .P }|KmזC> W1<'&kB 9X?qceҊ$TK:+}G0~g0JG9@M07Tuz:1T@Plf  ltoh㣆K겮 Ѻ;`8%lWp@Sq: |8 'RZEMm}fl{ئ5ъє!.IM&?!2J·G0Qbx]͝W00C(rڭYMOM.ޯnj ؐ8jn*dH[p2/ 0Sqq/,ZϊMs^_FU!c`Y7d!1pkra}h-Qݛm%?=nzTFV?qS 4yJjˈsxЙSa0e*^Ӻξ̀2IM[®kHe]*H(8hsrt)0ZY*!Q0XP_=:vmˮL);dek q3شjA&,^‡ ++5Hy 2f}7 2$%("&LâNPyoAPeN@+-Rn8u)TWۥ녲`+ P1Á77U`E[9U1eШ@b S;( 3=ǾqD)+˘R%wIĞ4(y$İ A ]յOV T>GI4e>gg.C+Oe'!`n=23Mw}$, 8HcQ{ttAAey!׈s̯GS8;zPP GW-_4@M+7xInHEAmlUF!P@ftфʤMۻEctL5hrԜѴh;Lpj#0T7_ On NÎ`PCM Qg}^?FuoadZQ!2_`XPzeRw)AFDm}\L@EUUYWc{senk`oWQ`,7jk|IVD< sOqԋ4:Ȉ$i>}Mzz!Wmbn>_Z (=mņߊd-孜Mk eC[E[@Cٕ#>XU(@oS 1][5Zd_a(vGP9[:E>d:OlN5P:X'Nn6ŸR]c-6/7ԍ /gH?a]>)dbQ٤I nq.;Fl!}2ƈԊ(kQ2V[/&AKYk=atzقئs!4מ G ߬JSi GMrQqLM@lө Q eSK$s\أTV:TUYDStqd@9+`VGyp</:e>NÄb$HCeTGX5bW`iDQ]`^D0ɍ:zVkp5Y9X6DOŬ2˼&ۜ*ߕoL: }ʃjM%VF^ qB2Dl_]Yn+jWYʟaFGqYӏPWNCuvLEoOӂJ_r:*,4LPѵf6iAwdKJI)mEFNG0wOo:6ߐIBjʍ-*}M>`^yEMj U&7&skj(NMsg:veri ZUZlfSImRʀ<՛xo(5Lx>*C7u{&€(M/:C0ҁHYt{I#%LVE|݂uYQcaP-:912eyVTOq^l)80/ԯvJATT77`QOI^92~iߗ㣑T4Ql' +|HM-?8p^ش 7]D* 3W6u؀O ]:v5?NGZYA_ʂn|3M`JˍsBkn&a!v A>t?J,2eFn5>N3AdUauL4Prc⤢R]ZC6:=BԴ=68.V a$gi lT}x+p\c (&QfP~\e@F(| `ƚ"W TdpUp8VLi$:jESXn~·T88pZBX̭o<79bfٶ};'F9o%BV.89s9ʰJtEf|ͽs/,yNQMG+j{)'S"wtSeJWo(4*3^hpLLTGJo%ʥ]Ry%˲7ʝJb0D]; s0V See#9v,p9\Vnxh=(^6V}ѱ7Q%TdTT,? p/\6o*zr+)ϖPj󁔔򌆪|Uʂڟ.Tn v!Eٿ^S\tM[%=td`ȇI-(puJu k+[XS P~,]sGvJFrwQh]^t䦔Luz2e[`q)7/hTi >G-Gu``QNܔb- PEȩ$\ea 'Zx7~MA:UNΔt")=_TT#>:8q*r˰$K/E3S]vX?3@:}ܺ9$\{u+&ΨYzo.rMs-S~_P%cN`.@7!ߺf}kڼn5zw#PO,?K7e:+rSnޢ*!a"䎪/qTAU.4FchpÛ-To{FB_ޥާ*%]4L`ake2Eaoǟ$װ`0HQjx mU1JiXO> 9:Hl-XJ~j~~ԙjQQLiY1QT*@FGU5ҁSLex45*.YAk+6Ep<3m]Ub1OpV%$[yoIs>+#rTBYsSѮ]UU~@\lcZW2vUw#"nxf5ER.͓%Xg@ b!J4 U_f.|NxaǘS#nTXH4Q'|Ntغw~lUf &('c4# ,?Jz1ͷpxy~U3jv5,o֖,S;Y3Yy1BUQYf[fئp74L, LŐ3n!5CZ Z/21=[87_妞T=n~L>{WO=ELU,njl^ɸS%n!n- !"|5#5Ta eW£jbZqTFgu2g`eu.(Tyk\^kF4;@,E/ctgɄlY& `,JBϬjt }=¥d-:E4Sf_X)ZKaШFYzX"f(kS z4) F$#YN׶8*!誇H&eQf\ARbHg5dH`R^ekpSŸ+mU!ֳvhA0s< WTrj["G JYQ_wnð ,1zC 1e(:j F۳ Lb X T-R%3˞HxgUqȠd̦LYZM|9"RPHYxE9oA0&n{~ޱ@s~fN리׵h%5$.Aϋr~/A 08b=z)Q1B:ڙ_*s-QJܙPO x Q̀MtaOw L>G8'4aHȇսN>VgI"w߆2]#մ;, /OBFni -t{犩돴$| )MT/OGm2eXHg*74nJl45!Baguz҈d-fz~fqx4}jtxcv٣D,t˸2WUI,nXh@Q UKxס.s5m`Սk 7ZBQN@} nρA!TEѴ\$( <^w)xzi$ҫ3) |d"Pe&b@с.j BB"~y=A(P zyQj*"߮2N߇(j7sw_S&xFFDᔀi@e8#_F +ǥanl瓀O2-n}UNS]38, 7ŷ I-<%8ꅺs\~GGrSaci~#`s"'vUܵgln5O',Ay4f1 p`_rV.bmDpHXT^E^WJEo ZQ'9}L= iR[u"(MK(mRPUm0lݮ`p6T5`Opi%CR1$pS&;TĀ z8S􁒂dળ\P+.vhّ@QvXKUܽxҩ= a=ܽӬ UjWtOx:eg^*.{ͅ\n|bXr}zYƍ2fG :!cΟlm#%E3Hu. 2-d\cBA1P%-6,Ṽ܎Y)VqZk@3QU ڥ@uQt0ro~ zH2z X&22%qT]dD'&MLܯij\A)߁),ЁXO5 `3BAS>  X)&3)*zw^T9`'1jjH0 :c vҁDe6a#'RyK!A\Y&uCDf: dRN=6* ЙeK5LyW+vY: kyCv 0QcR+,wakȤ"ua٠1yH2 $4ZU?o ju<ٛiPLr`( <ߎy+)R+K2r",t2VӜ/zHaH5HD1ҫ0_\vd3GDb*w|F}{<oU{ "t#:Q%O_.2U5>2  qD!R'td Nբۙ  4 Y~Y3򀨀":8|`uc{H<:%UCX^y6NR   %#8E^0Ot&A ݊d]B_HFe8TPO'63 7KEٚM* pSD=P~$N43\@n2;Y_#,UXuxDE:GW3&e@CIHzp*>uX@s1p9 pym"Mx5Krю}vC+OB%w@~X>XK9ܭQz#Vs/,e ueosu|k$ҞP(뉷G8 _|nJT˵^5SQA˝9)6\):wMɐ*tYCgE(+Ph10o?V"1kBPQ+ꉕ,&'c0@Pd(V(œҩ3qrCkA#*G6S6SX'ݫOTT]1e38|8 )*"G@ 2vYኢLT 8,?69XXv.#mѯ`r'TyDXcfu@am{m*@߷ޙHpOU/ܥ ExhGx7P5<'3~,, ޞ$+ac+AqaB%&);Ʒg5ͩ0S&Ej+'=ɞL.>7u3Ĕ* O]^J}T.uDDڪɏ/G03xxqΗ]wИt7Ji&8s܄&ʅ諐\trDMhQعdfP UZ5ѮDKHK`;@'og +nʶ6lc{fioZ彖|)cTȥƢwzzʈ)gOExadQ,ƅ=Ae^b\xAYQ)˽w孝%ݣ :|EuIЙ 3l6~D\]sjn1*u~g&+`dcК$쥿 ƌ;Aga@ub-[HEʌD; ZuUO\㮀f ?0Pq*?@YϲK*@H̉3cb4*[`1{!HÃ`e`-~)I\D761$rEc֣7}_qmRE33&8'˄1/*KWL~"e.Gx#7a %^Tqliw4~TF$ت,Sfl Ѻ(gL.'E|@9f\~*ҩ#UEu M tS"#?ifTNOZV*=DoV H:a#!Ƽ ' \;/t@)P̋*תU7ŘD[ANM9״ .򊞗7KKlȨ }c`Z]R]EBf3!fx&5^CkM;W9}{NW$=f3rLk݀hݔDb\/xӯBU"Oq >2Y,VN=8@3Z<\Q7{ dQTNaZJ)vuGSFi_ϕZ+P!{vE2`X&i %_fRLa vZWB\:h\J75)6{J@ur)> \z2#Đ63fZt3lx6Dԯ!9EZ )yY@S}ν%S*MxКc)l0t4(pv^WWjK v:trS_,ȯFA]ijS5g*˽j v=:怬:GsTGv;+rmL>vtn DžsM(95`єMl=x-O37@P-;+Uv|jI %0&}5WO^x;e<(LŞH ȡ 6(D>Gh ,|\8d&:~d{ 3ЧTEuHM΄*C$HEMԻSjY t.ntd h٦9 P\" m^ ES?G**b "r ]5NoK]쎝^ ;wB&=i!B#C@ΔaE"7ڥyUfԐ{%ڥgT` q?Kjttª>,,Q]5!;MكFIO}f@/|y_9  3:#@JS:X,&2`JC-RKL"K4>j?{97  ^c|kUpWDz s2$)JSp!%ij[2!\JIUQYdT+ӲbƂu壆JI `Ka*%e(bTa(,M:}7s aLp!9aN0N&* ~K xsAv!]QYLJQ7/!88}uoJ-d DwnqkU!,PM.x@jWʱ  De꛺'7i;:)<'7C;e%(gql(?~uJJfLAUNGפ "gQmR_oo%C91R@ѽ& +ʴ[U%XA&qvvOqCVJ`U.P+g2;A4U) R qTe[MgH9)rMSu) un H%-so6YXY!=$r~@bc7x"?űXc\UL829(UT?(9C2>7d M±W^4rV6\fMÓTi'yHm9sb* `xwNGி*G& 򓁍 dW*y{7]'>FXS%vj??r!bDSM8;kWL#fL-5Rv)*T<龥Ae~wTmL|~;jV!")eu&:U7f3ל;alRl>TNs. uCg'l?Q.t=ٽ Hw"瀨'ROiןr#c* _Y=}7U~JҺEta**ꖡF?'EDi9s7 žV^+fW+shn,ҧb HaXJ]c4Pe%E$UyfڬGyY܎KjZ5۶ͯ5hNZc`3\L˜ \S}:XO}NnjNf]Վ y&X |TU;Sʽ# )IŪK~䣠BM1 )C~YL{܄E $,"*< AޘRNvy|'0U٫2AM&7SZ5VsC#s8ξ.&8սJ(3 @]76۩!T=PuLTstT~ x4`/j[S6 .utmG $$ā`^(޿s: F7L]@=w g' L%0l*`hm-wr~;vND7Žw"ߙ;JUiŐx݁^ {_c {y;NEbDY@S0l.?3!J0 @)c0@K糤*# (8 UCG@59(W &W.&TLNJ(C"|RX1J tQ`9Q+6 PPj5 GݫC&,,r+♣h UԉXtPf h։NpRW9)`iv5. *,bVՀyu 8<aU{|B[}yLU4ǜbR2?hCQze;h#P%l'cs Q|fԑ *V\_@tHn*N&\H [CV>/0b+tÑx/0TJM,MZݬ^qgobm)H'(bp>XĎesߛP J}Pa?.>X^BVq̹AS3){[F+{ ݦ+xfu{ɔjmQ6^tzwܔoGh`G zķI')-G%U[ BO_:&V=rtkFhKp{Ǧvȋf3ssnܑ[<2 uq\kWd{ z~17MW ޡQz7akozZſnT901g-OYXV*"J2QlvSJ˂]Sd8=gEO^6JG"]PeS"b!˳rUuǷ1ϳcjϢ cXʳBrDh5`jU pUrbz?nl 2}**. Sa37x*Y*`n.)n O4ZY.0~4}aՕ)1UL `G`q zPj|>R ,$ۃ%QV .T>FKWf "EOz24a'`,/'A0K0eє@#jh4g@\~V /p&ج?=w$6 sCnX mteSe R*0@)߃*wcqP?WS /]7[0|jx>27HLWcܯۏ$3GsP#^r} %GkrnpVv.A_^k3t?D3`5؜QCD{&ar0TPGWo6h [[FMs=0 +ES&zj>1U#{,̈́S\vZNZuG3}z[\"OEO8PUxy*i+3Ml_kSc~44Zg, jQ%>8Y9< "QߧTmPgѝFFN;k[ʃWvSԲ@] A]7Kj=ڡSbݰ㻘L%k=Bf֌{:5ZWK'F+sLv7?(Eb̑Zb4,f\ G9CUjm.;8*sUe^~UNG+)--n,ɶ|dekײö;BV49hp/kX17ӽ>('h( *} TL1Z~tEK#$vb, 5Rɒ(C_3`,Bs<^[XS n(dSSq5*d =G둱6k!VP!0TxU.zվ@SU%O' J%tS>/KY`5kA9vJ{tlKN!2Qb8?=EBHu y(I URdo;X)Uڒ iBd '{pcMp7g)>%|Cν &}3~7QtH B/'a(㍐)dT棨ۡhґ}=wyv\# D8sg: pMj.ǮGBIs  T (t/bZS*EY;ͼZ'2+Ae5͟ȨTJuЦ1+;CѴpePUt2 2]s* Xzjw8sXtrZg8q+b=d(csZƚc7=e093NN_U  8w.IRy|MGa,u&0b*(W`PpL@vUpK*j$yE߹T=/:2i(&//;u٘Ch+/ҁ$妴g3sF-㘔g9y@4EVNvgT-W%ao(Gv9M҂ U9?gʶZ;~M`9,1MU#mߵaCb*!:ߦqb p|UBSK36Mr+ҝB~j4j<,FYy6/}) &T{5ǘ)q=}Ct"v"CEz Ty*b'2U5M{ƩP:0B-̾Y#]4GO F,SZs~"\Ro(bcky8k"Ri"]71WFbFyw;cNsNhiP HQHʜ!qР0UZ €{iV !4t+Xo17SRF4…c$ʧ{4 7ms>N/S.MnbOmϕʱ!J+j]VaNdոoըZ`I&x0äxGF%UE)5eޘJmYv2LUO י{]!S72i4(?8#hM|b!$9>7ukDREpnulX rn;^œuL#uڭ8M Vm7=z<}FrV YV۫f":`>Kcʨ6f?%N%y:>C&1^[4V a|H, IސvsT{B)1iߎuS_͂!\}`M\ +\*?3 2,%*HJ'ZcU-Q,kSD<8c5LpQ%xQǒ#>v[6 ㍍8, c@K@Aztvsh,cqޝw4+j,^ *eԲӧTgǪ_vΤ(oת{@Ye, hO 2 ;zFhZ<8(*eWDSFOA%N⏙oCb,s>'3*y60wfJ^"|J_P~{ B%UT:Šxݟ5 4Gn?2T\OEY5xPg}@odvӕBB9G{+/=[T!sB) |4 TXw(ۄ%fl9!m7kpn8IeC ZQ+t!eH^%9KeUJzJ'ZN=7# M5pzS4戨<Ҟy!p!ܻ` q?Ryr3Y 9b<[#ͮa*eZݒZ[_u"ƽjtSWύW޳߉$QSKAGuSN2jluџ^PDwx=W4u﫣; ohܣ U<0{APL'`ăZ^*d,մAM]`ƈk2ijrKycf 4_+j;cCwƟj5ƈC)jiǧvξXoB:v,<z-F4,ehZ\+ u\O B,*HW%Haa=[L̐YJWLU s)OZ11mt9C?RT|BѐHL%i'"SQjਉʪ~VMIxۈqF1.&]*9 tA3DT_8[̪W!,[@zOV{R櫃E%`7UE7pfyUϨw/_ !"i*َG(5MT7|8nL@j)&X: 5 W,59CDJT{GY֊n>z]owWrI|z5̂d=Y<>&,X.o}zLWM'T9IL!AM³?`g-$u%1HPTqҹ*DVK:ivuyJtp'YYX;b@ѱ P&7˝Ag7RUAS]"i(0*}TpT%DV.$uu 9#DƬ7ess w2Sk xB(Se\ MjДYlT@RµVڣIoILS6P.>MMMȿJQ.҇&) ś;77 @[`ً 0LQHUND}^򫿗W8;:s) B+-(jXPr)kV:1W ѝ _ĨYHS+i ksQ$J.C]s3U/*C(?LK{y<-௠IL戛7! u8|sT:BR8-rY[ɫ42Jߍ^t]FEgnD`p%w -/9^m zfR1,oZ|_N詯UZ;726G|O;SN\ YX)Oǖ:J8]`V@TT{$:T7%tljsg2'(#ܾ cݍѩu;\}>ƹ3$|;Y <6 QBOu K[$<1Rp~tc׷3)4g܇jBSPURoϤS~țC*m]KcXT@EU;V <8}:Vi1)6Aҧr)Pœ3y z.᫠-T[Z9e[QC.A{*~a,h頳sRO"1|nda:8cl2eꌉFG;n%l@!1:gXNuhfSG mgj]v󚸙`Y9knꏋD$SB#:Y=65F?V*7~Xֆm\GD#lK] ȷ=\jZt@ Ƈ fзq A3tz`NkI,_/iSj5cTZ3SFW;s3%_^T5*Tn*h=CPIA?ijow&NI/ #FqK!<@d,BiZ}"1G ̳tR{]%{\Xku%^ٕRJP!xF }K\=˅F* (!(;0Ͷޛ%i"OBo^O/N(TGJ`$Ctъe2@Ǽikk+ ~BY(0jc{ rڜé7(* !+ZXCd"0e>CELb:@2ywr*t?*y5c<^__nQrS04,sHU4NJj >SP~Ln'ÇY`|R?Pp۲bX"TZZ.y\.tMl<+}G)o3Kl9Q_+ +OC)|rysGMzY"<|>J7SMޙn5 OInx*z6V\5Sp-X2e"$5 6cs*}_㿎+9cHOy;v/Mc?G[SUour$u忽=zu~$Bx]#PgƠ%qT|Fro=$nT ijAQ[ u:IS: [;ɟBfl'Mh @ot#=ձRu54"dwH+W裠*c֭l*c_9+>žOAߤ}{kicYt 17?B3F@݆Ѻ䘱RJZs, 7 0m(Pըս?$\$LGeMDĒ_Tє.~ef0voXW] "k5ܸ6G 14y*!׍fJ4aXMQ=}X@F.er4VnSsxY%?ȪW50:جNT@K? Uc\*zQK{k#SHfUB *"lyX%woo bJBOW*y`O_m=tZepPZ1>Tq 3'MP!"ڇ. `v` YP^س8C(` 'ჸർA\ ta%Hn잪hOy\[IS`<?z `3oea;۔i}<<Mi;@PtdtQF^1^(*WG,k ?ty Ub*#쪥".ٯ҈=q)>Q~ڈ(RTyp03cBY+?F0MZ[JgUI5oA$w\jO~Y!rb*='!!>5vCM & kK 40magøMe>MwC"vW#CN9`8PF})ӄ14W{WywWB!v,&IB| )Z%(D`O=ѽS.dHd19 *G-.Ez`~S讐Ɣ *?X ʞSd7釟gtOg2vF/u*XLςv'XYp*?QE=0ND̐i}Y_3o=9xOF&[BqrIDvwಌXZ%`*?Ȍ$U3OYz{wP6wԗ#qfn` ǚUh@ͱ Nn Y-`D_|Sx‰˾^(FP=mhv2;3oVImmˇ(n4( E/Ǝ{-/ۮDS_HT`vE56PuItA烰FP;TAMï?KA>; 9x'yşl7b x[$HfM8D 3"tw33d [QGN,/{q,Wa|1|1*q l1gՏsm郺dE2Z}EW .܂6 KqKdS&.YUcw! A<YɸƋ8s*?犎G9uX 22/ϒ޿R#pW1Ywhдi_\nj;)aSKNCq K1Sv[HMC˰;7@TEt42VG2v|³d^޸ꤙ&4PJ27{ȌnXjYKnx<͘w]- FI6o- tWdŻN>6TGdW#ÝRfQQI错y"b[.53VC:pF(&Y`{6cC\ 0eQߧThm*ItpSgTy|ZC,cv dBdTeO#`P^B}2u*tQQ* ;Q3v{-j#'*m&^Փ-(.Lw2ͦ _a3;g9Fʷ*oRMAAŔҩaZoCjϻJyCL~$5J5-%>єD5:@IC T*?,zK{4 IO:ׇ|pUq[E꺄v$ Puе^B%_>KB7USc鞇YjF=y'JmM?4R/Q*U/96Ȑ*:(EQIOѳ,PRpaN,]2 SO^LqNGOf `89fJhQTX? B 3SL"1J@4&T183cg&ЁFV bE%  r +kB%Z ש@S!Wpb('dA$FjRk7Se^0^˼VK8cJǮ썂i]|"Bz[+zRC=4SJ" q`.FJa _f%xa|ͱC^ a^nTP'FWaSl-YilXaGQs>vBkO1UW8DV 4[ 睁'.+f;j,:u"#ST֘" B)[ȫt(_`r\^2q nKy|jS6yhJеZ 6'] ҫe|sYBN& Uum7  ϱlqn+:6z&N`v?X1;ڟ_`@kZuoKMژgcYZG?^4RAH2yt QtQp )O V , _⨢`FExd~`}İ h*&Guc!gxRB_(2-"޸ 쑜EL3bU&O{%Xѣ睖!MOӶͶ MKDoBMsTUT:K( 2KrCHAGh1]ʆ9 ̽}o<=TRl-X,-^3@P( *iT5#t6F.@鄠~s EW~=Ya>3TRK+5QEє*}aIX#ht 1[SqbI` 0(pW͊p5w @D̈́XDN+'qT= cJ5c[ DO), Qr9PSBF.s0NUr^ys7$ ~5ePjBCfa֗ IV\3!<Waz.`IU]2T+T\mv9KizGlr@my6dBE߂VB>̙eC U݅zi{FX&Tvr6woeJT.#_[T%5Ʒ]>0UMoh*C42(u@f+s*͞+Z|bh@ m#VX@X@ F Z 0-"""""""-fsN7,uIԭSaυ?0TBAx6QM9?>7K) zu'f E`9u&bb1Q2A+FmoS!4k436csi]zړ#pf4RO:D}g%Nx33Uz^HX,B:uˎSyrC!l n![\,jhN4@ >,Z5a7jP[E|eRnobdiaBrDDR٢RPB (cBl*ΤWU"D3.ҕ$-a#F &/v㚹aᱏr >G2m1mBנdJ+פFYY?:_rS~Vrfԃ_O.Dk6~ PSQTk '9$Asfۜ&D7&~Pėehͷ>Dq PNYԬ2ƑSs9p-+uzxv)L6 Ԗ? ʅf)R)Xz@Rx 71]\'}5 >A!S{y?Pʪ0p's5;:LRR2$0EHUO {8ir:ɡˈx\@WWZ~7,Mz2MUeYН3` XAcu&})>C¿ڇW@:3TdqWN$,5k DmV/h6BrBd}zG1!n/rITW@wtP>5X-L!Wn$E G9U$6X ӝ&+u73Z3á9D物TqE&䕋S~=ɪvGADE \Avuu QCyεc ]&u~a.sƑ3=/R*ľyԧk՜%+47qOeTm\g2;*oy*TʍLr1$H97= O ˪ZWEm97Y/;L8m_=[zctiI[l70Qz0s)xepEHERToDT:ҘX1n%75 UgpGljcgW IJ?z2A UYqכh}8Svg3 K[ּ;2њkQ!}CNN )/$ҡ6Ỳt 6Lx]6K8NHUNO6 ؼKm?$7ìAAqSwDao1Vg_GdJT_̂%;{,[3PRإ8Ŭl=єどI)ʏµH2Gpy $b PJW]=`&Xg{p#Ygqԁ$I %Mɕ VK~oJESxNp,[f$=sY8zᗆva@Ǩ8sSq!2۶"赎Ll|/qqSٷzWKqc cqM\aw#@~ضc`z9ԎٞTϬ Su鈍jcDB!O>63 ;戒FM7 7s","J*+5}05 V'b3?PK3Ha䌖y0SnUTpYEeH*購)1Fab? _*|n2W'{\5x1ʇ rS<$N7*VwJTx-6TH(5Dxd5Sˤ;ƅ2K29!ߣT߾% z ]LDԠQ$IrΘAmҜIp$P&!1]:]-pL$%x['`DhRGn;!t}c#KB=4`)/KYU|ɪt@w FI]L//<3AO/R$&T.BnHd(郼ϾjQ!W'' V9͜u "-a~73}'VN$牉r39RU$]L4Ϯzp? sk+٤Ǽ.g@fJ[H[&`.a*Y[)"丐}mJomHUJwfgvYK߃ )8 @L UM"L-,ȽA&_KYv5A2~R/kz d=!k6;|R~Ӂqf(؜X7m SR໩=1Ay,mݿOA^`0CP{ff #f牭ǛyNJZհ!YfRs*YtʈjVcv;.L*uTcw1 %kσ5%|Smfm84o@Kg:o3';rW o6w"?G}dRUԟᭂYoP۽En&:koOfCٕ .%n]5v۲=Xzbq1 8,3), cju~LqLoUb*;oV 8,v]~ɱB0hl0! ;tz>\쁲2>ԥD]8)*+"*N&7:O1=Q6.[7WT7U6f8G|Pn= Tz Hy2Ghvz*EE4Hs;Y٤\D2sF$%b){Q%깹]e\O&r$*vwwX g#` (˙oߩRwbJ ]) %t+Sb]v^JdXq0m_?ohwG͐A%gCXMx7BCxGRjwQra{cO6Oxvc#OϿ-$Ϳ':LU^΂I??yCOT⤼O / fIwLL@}Rq!Vb{ Khl>:\c32UF"Lbi3wB a؄$) d 8aL[f݌0@5HPRSg_}29E8§`x`wcBǼ5{#ڑx]ԌNd'>te'>ȩ0.fBj 9ͷfUa 1=*fwzMo_ejPr[p , Q\(#.~qLE8 Ĕ'rd[1Pxj(^/ÃENhtsLhOd Y> (g{ޟOPyp \ |W߂jt뜞۝Q-IP~-)/-Ϟ%!Z ]V9eլOY. Rh 8do`~Vg?-3Q{to*p[a>8q}xaI{"S Ij;x1\t spR0ByGiyVbI`q'&U=2 $@${d_ڮpʪUŲ(LbC4)(6,AJ5c<.ʮʅѦ@P,P&c W -BY[m͒YL^7|ګv90)4(is 0,D/an-Y8c.xRx VNjWTUCTQ\g|{#:e3}?z`n͊t1s)$p /`+g(YH;գ!Dc( Za )Ist=CF%g ]1J&\1TemdYԬUDJO~pS@SR੺]*T;F1#kdc"A$Sz<ϔx, f6sPn*S=gy"uːFzeR1syLS$&@ThL_KǕ˴N4/!yO5/Q^$ ZӋ1q1c ݐqON,GEO$N踴srŐs%z)ht\Phf,@ A +J~=5d4zM=eɼ)\^$H̝+t Tx쒖Y|tlrՓˇ{&!> $ڡ$1qN5:<TAB֩GL 'gep  N*?82f=IQUR$"eԶR7RP: 29%2"n `U- Ы|T1% Q\vEq H9 +4q|Bi~ZZ8HQņ GQJACPg:<PQ 0'ZUϮMScqoGu0C)n{Ϧ/} A,ZOȊyLԤLщ;7QU^7}AДȨe0!n&;g? PYONJyCUb,N<{w8)t@ۚJbhDPX6|[vB픫c}_QaųZ^ا@:ɦNA0JIYdJzЉs7.O[ӀFjv-F3~Ja ' = WBnsHc[RJH2;]) %I7]gVg~P[UU<=Cr[BMI-- |2kyK߲^ =@9Mn|[֧Cp:udQXD׼Y]{Ι7uV":}|B2 f ͅAO=NJj2qL^ h ** yff8"$yrQI!Glm,jפ/S5zNǭȼ,Fܔ Jq#1%(qǧ9Sſz^ (r Rm0uKI[,z%ӢxJ%D*cI:tZw4eŴQEJ LST.ph%X}C ,X|0$\꒟'#DYS{ÕUo[+b GXJ_0 R\YHg'3Y\E{`w#,IAFq*B# 섿?CXJ0.\"߼Fe&.4%bJ1S˸ItFbE?R%*(=lT,)/ߔ.㯎&1HKO휭 7uIRk[Sc8dRY0(ٲ( ਝ %꤬,OH* NAQͶ/+5u\͑|hgC3[Ռz`())$ G3ujjXjp_f Gq}݃ 0r%V 0|8-RR#bM= Ђ;4}n|\00W!Tֵ,S.w^ryGC,P= p9S'wAud>S RQ~ix68v*y0Rg%ϒ$a% Vy`U{ކܹ$(tW骢uy :EזY\|e=i3U i$ԩըBq*&&ﱍcB@8[?%(uj8|Lp)/4M\3Q8f9?ohF,7BM:-y0NL=5W)W7?Sn4Tl%]O z'=U~H yYJy)`:bA4h_*AД)rJO>q1X\|ʏߦ7T ^S8-?0 $€KduN0Rp&FDD6-TIi*deSPG')rXU6V 3J'#ze:/LG4;wM (nʼnHȑJՐ$|`FU ?? C)79UK's#6Ls Xy|ߘ *?uyf+H?w67?$. A9^rU%}i, |ܗLe Y\4t E "nM+r P/-:jt(Z #O,  `<qҤ`'MCv[fLJ%pŞPj,*hn 0G1P0bWp h"l'XzDכ8-qqtu}:B"4◀ԋG#zrSxf{NO!9(!+,t9>y+wPD>,,qM|:I:녜Qf-:_ÀVs&_3V]9L 7j8-zT ;ʝFC̈́?Z4>3Am{jZ!jjKB=>cT8b>pgdURJ87%i|y'VS0L_qNh@K<ɜdI0TM1 L'Ov7h=BM;ʂZ#euC^&<ջk-+!M$3r.`AJE1hTz'T vU f/+$蘊QW1-`M|xAcɬōLPR zJ2d'蝡:J:bH]ÆSO3n jFj9(r%l糬NɬhA]:k_d~~5O /)n ODV~jjU[9JlQ^aiR@kSBNK#I<-OcS'pQ [$/oTU3+݈\ט$<$c/7Rل~ra~C6 7yS'&h (H]YsnqNF'WJsf^QNi˄ƥE6 FP1()+]"*Fޤ< BgsX+uisYPTXALaNb ߧkD߇ouᵃAwKÝ%AmFϪ`{6V++{>`JbGcH?Puok'3uJ*<[x&'rX5C\Rb*i*:1EAd zikNЭe6U'LIsycj; xO_qZ. 5SCsKs,fȌmz*O; 78up(ZrV~IA[f)O2ޒc?/^1HumAQ]B LnѓBAMiH…i…"@W~ASi)ǝOˋĪِ r]aF |&.w9ևCT.%Ӱ)5}5w-Oj+)Qcyʵ (aABj4濰=cϮUF]=:w: SLJɜpL!.ѻ<>C@A&Xo9| J\{e&dn41m?n#pCd sj*5CJI%O/Q3NT"Ι\@k|iP~M{~ծi Kws 3Ìr{pwd=TQ Jm2s4`JQ_>h0֩$틫_"X|?$SpRQ8}'ۯ?uo@#`/vᤢi*;` x!j%SJ\gE"HC*ǡkO'7B_#BGO pO}J ɪ4 #-]9DʪFGV\w`tKgIAaSu9f l emh(q91ǻ|*njT^%És|'Lɾ 7њ?Vp~4:ׇ;JIw %l'a{ah%șAuڍWUmC?dvxC62o8sgzRYn7I=vD1cVnm"#*T(dL>-(֯.Wv $`)ԋb^M)PG& ()Y*'B纀.h)إſĀB\3UR'^;xI84>P<͈hE0 b@ &`PSvYloy0ȏ:ݮBi8=blZh!y:LfbbU[qf{$WdkYH&9yURYV< v gIF)`. 2k_R1^ *cjs\E .O{-< m&hcD#xn3mVV"@b&MfsGh^Nb&%vw\Uލg.İj)} Yy=<*frO\> H5m<.b:n=LI^Rkol C Lm,؝`F޺ѡKT(`&(~W-rO$wqt(OJ"_tW%H1Oj9nKOz/jL*j y GNźY*H{KBBYob n ]藅|7%P0s@haz{ԯHP@!JhܽO91S& 7d>?RD?3UTi_ 0#nMU IIv ͰVFh*ԟNSqcTQZwl7@wCb}*' u{V˪/i!.uf9A!ߋUpji'JqL"b WŤ.t7 OLQMilzzEva fk)I q:dt?0A0`af:e=ʿku.g[g|C:={3nGM  g6OX::[BX+=;a.U@DDS$>TVA)z *~,x[uu$, 9@S |AR߾~+Rwil)֌T Tbæh)gYg/7SnXE0!\g,yd1IG,sXV#:+p*n9Zg b'kA'b2o$n?"fFO \&JKj(QnSm]kMV /Y1W$LC2xs4eŋ7`*jfVrm=񞚠׬sSa%I$xY *B)ލMoϋz )~pL˃978zzon}ܽR-(uJm_K*Ҳs)&mu]!Ϯ|vVc%M٪$Ok٨N*U! ǥw'#tbt?07py}AOy LhuɻQɱ<6P SouP4'Jj`P9ʠߚiJ2nA';-`APEO*.Z 4XZM|Nx@I!ߛC)9sX#~:yN)ӲC5BQR5[ofJLȞm}(!]{Bd>JSis%i Di9MTXyžhGy{j.)SS侶owk}~ˣPZ`/bIP4̄p`?A}y4ݭN낾K6aYgGú.uHIWN_>)}sTb"25$%Of9eGI?-g4LsDBg|쟢h)8OI}|㴎)z&svK8",D!A8Y4]3։wHæ MmaJr f@s12{+",//A,R,JÚr&<]dSĐgdBkݭb^ b:ޟU,2T(hyJfH4H%7rFrOn/ߔêz& *Y)N!?q;Y P@'9${25TY >JGlBi8:j'LKFz&bY2ڤ*;ʸ-w( iMNpL%zJ./(\_%SLֺ~7r*=)s#`´]h5 z»;6,M1#xXRc 'XFIR~dD?* #<A!Be~ͺt74@E\N@3~s#4[TX߮Egjq_^&bAD>R&RW*qKK gi#;b3/ST+fLfO~Li̎S=8>p}V{ı*ҽV&mHJ&XZ }bTqbg)SB:n Q'꽉jfHQISD`BdzW@}PDA23.8)/^ X&Ϡ4q8T~D*`\Х*\bQnBSR3@QY$``RVC աT=8B3C3iԇ@']yd r %*~tBMz@f)z"s,/F̈t9de1 lzlHk䣂 DM║Y:UHCkbKpE9"&5g>V@J "Nj j3u(9./̎n2B+%bʡ 7hsS{ŞWT`- Q Zg3l,AgjE^Rn';S7U*-P\qGٌ(:!x[_Xՠ쳭YLV=5]R<jB: ]fj 0a6eGWT dzT{wHl8Y#LbˬP`D$G9Ϸ@8ob"nf*gl3MH13DO ݮ<$Jtz!IJ8=eN}p* eIcˋ `i\O=!pv_ֹ|}~75$+?eJ퉑hА1B \nl Y]dCu4 2 dY*ۉdpDW cIP$ :%4~8y7+Kۯ"=”K~ӾB,xzAJ3J?Urv-:XQn T$Z NRVS@ \T@yѵiqOGE3)V''n 3(N9ާ(3'DNr èvLՖվGyr }j[[bJI?+S)C Jn* zzwO9SۓQ"WdDnΊ+7)'W$xDZ)#es:Jq9aEw"#Lt1 (E^7i+II&zOI4#%Q֟<)]NnAˬj70ɊC3VParC'.Gy6l$'E"m uvoe Uf&6r|̄*c9Zt6"$?GJLLSM䋣bT?ǟKd}IOc3r*vpVCS?BLf:#1N*.MwO[g"&$cn#\')U~>qv(#P)=X`zejݻNL}ɚ.tJ R_|YEL֬bfZޙnM!]9min+/(T;s Nޣ?U2m!FH']8Ց/C#JZ +,E9秔c4#en~@rO'8Ib gǗ,*qioVg>w79Ӆvv>.n;Cuyx1zuQjQ\L\6)+𱶐M͂U#BK5n};u;A4<ұWf(#sSwubJ) ejI8 b_ѹy\lg8q><=1gz9vGL9'8?J̟/ )"Ǿ|؊u渮:5tv`qSpMvm)y8Y`YF}; `^NB8¼F3_F"N~Kߏs|Ubeg-rTݩez^9]f*X-wpn_?C tL U.iDK9#Äлi`' /} J?.ek餂D%C&-[{uF>="TUIUV|u0-q?PRBVi .5wN @JU?`+tTs/%|xZ5yw=~YhڗD?mQT+GNΥ"jR\WLhAzq+)8ˆDVkqR?N%16``(S6.:Dr E̛6f~ )(BDJC\ׂr԰ʸ-jf>wJ-cJ)KY"sJ,] .YMz ;i:\IKTQUd !]FQr IdARYlanS} u6'BM68&b*OVYNR*UA2˰গ (ƾ<'ce㥭T@E4_]? rD>a!k\4xsjfPB٣'Vsܞt?vq Gq .7Pa7n `nO ˞>alս7 z: ZQ_t" 4$-4c>W6+,pIwSQpV؎?w(8^Tã6$l_S{1#TsPe&P/9e;[.qլFW0SA[ (C؉)HClO—\dV]0Z,\)K}UA !@Pn מ< FؽohT$9aűmǍլE`gW Vo3ؓj_i<,6A% a$B^mL ]z,))?7KY0+g՜S`c~[%%TSEX9F'$,䆈‡Enjwۈ% rPt@NUZ?*ېEv%Z1݌B:k/+OJPtTYxc0r.7if03 J]`sӞC$ܲoPhȐEv[3ˣFZ b?ѡ\E]ʅeT8jTY8S՟j1{i| ҥ_n)/F~i,s % -f@oaAW¹Zn!TÀm/εO$m OX)`* 5S;kY}Hٟt]}] ΄IvpJz)=r`Ne&hXN}o<ð( gݖ >JnuMasޠT3|%)y_փho;K4B )x *8FU!FmiDDc@SOzˑn~OJ"3cBX_'.IGCpr5 9(SR3LE{T TCS1/G</u)ϯ7{jAO-@VDJ5Lv,_bğC[fŸQtr?u-M3g)u])[**UBWU5$CK3NՊN4Vu/Y Vå7izY(LssS T5Hn1@eYz0_>ؤUnJmVaʔ>5PeI) (TIܔƜCOԶ'a&y>/QO+@w96@Rp+<.QUqф+$kTcJ}ߵ;RT87 +KCJwZr+~Жھnbcz1A Je\'020@7q' :|А 2yל%A=U#w :MdzDXD|ӝ`h 9Rjp:' hD۳>(~&AX|nOzx~ ?9k7of{/9N8(% \ آ؟E {`MIH /B8F‰Vߎ i@xK"( eh*.@, e]_*~Rz`XMM J-IXI KU-P 6eM5oQWp)OڟϿ(<()Z֍3҅ҷGUY6i%¡r}ơ,izft#So Z;|)^NēڭlP2QI+^ (ФPܡ2jNƈܮMEigvD@SgG`aG3zc;7!\9P|O:VW6 " LJYpS`unjn 7i&y 䉹b'RKWp;'$e$v ثU^^5齜C 񛥶 ;+T-Pz7.xvkՠȃTǑ,hjZ@+S"<m gRb#CE/E!9:WV%-]:X`ֲR0FA*v0P=ˣz-2a盼v9Tænl!,@*OS v(թQڀ=p W> )PݥΑ@% N986ڙ!}| J`fcVHT75 +ʩ گ$۰CU^)E,O?%4r};6i-1d\]=+Ni8C8 =VK9 Ay P#X85) )F:IN?xɲ$.b,(4,֌YQ~,L*WyJJ Vd0ZA WͷrXbC~oy΁5z5W 55LJ @@~P# =Ng*VO1`SL~#0.O4Q g% ~jfYuc\=n05J cEg;WNzQb#oMJUJiߔJH,t<?~\<*t.I`Obϙ|ʌıL& H*syc=}5$A+L&)KGsR* bLFȩj?6f UM'N\vn rptclG6;Ѐ zRWfL Ԙݕ ʶ|6R4Yc PRd_V4O)@ 4<@XRn.oB?x'JhKkJ'p P0ļ0# GrÔjc(,>IC%ȨxDaK: _%O uIއ_}_v5KPMP4$DH5=Iz TN@Q NPLoGs ҟ bjM vAWFpTqnJA\5Ltܵ2h(WM_[ aY, PY+/U[^ $3LˣztT -;4dTW-dNOo4Q8"d"6)eU-jec-9N0je3ꔙfTdlRA{3!:%')]񪼙+q!OU?s;1,J{ 9tWa/C1X JJQ,M?61b篨,'Ks.Voo;n~E^.۪ʜXE8jc|tS2M%#kh)Hbeb#膣3} <'$-\YBpO-3&n/@GJm|[^W7XYڵqٿ ޤLݜ<= ĴYH`!Tyx6Din7I{Z TV٩: BA@ U2 VͲdP(-❋{aDД"7#Hjr<@@kgI%%T>% G9S)ZJ+M|`|ʶϣQ75> Ȓs'4)AI~(LSYT%S{+lPQtL\JR@I!}, QRci"7I)IX &{˲٘lI{>E3HW0rXP*xd@ 4!ȨE/Oi_OcUYMKtM!"}ivx{7LA}Lq=YY}ƚ<0ݸ)9Wn%^I.v!lӐ@ |xi^ōee P{>ms+!JO%zd;58-/(*jBqS7sՠη'@n^ ߵS{2Y[\G]);)6?J*qV.!ڣ儕m9,O"…(%C7gksQx߃|j[%>5KYU *hjf/F%|k|*gΕX.O~} 4c0T_נX褚9dz)72̈́Nk0>MUM}V* H껅Mx3W4d\[1W7+*!Šצ}5ǡ\>4X =%}k +{ܞpOyujy9rL}cёm#%2܅lKWXz{YVP:FLNImKl* mDV7av8l6Q Dv)CPª3q@%&*;}VWN.ȃFF$DwRKl#h5?U~T,g0 SCS!י>qSM.񼸘fq>J~Pب$X;LeW{Ӥuz(-fǪAd Zx@Ov|WF`> ʔ%KM)caR@118F ;%MUnmd,, CwBp0 J1cGy-1m4-aFRmnJ{,gJxikw8đ2Sޘiܹzǩo](E:EjêLS8= 7UJ.ro(ỷqp 0(Y $#F[ɐ$,9f{<$.ޫfȹ*CWDk*4q@OU{ 8P-:CM{2_S%p啍gA^EE/g:ˀqDI,$v1av"EZ%M#Q %5*?mYACIW=q7n@uY1wSѠ$5]bf2@w ԰y*gI!e l#5;1F;QFJ%ˤ ??L1yXhw)FhPT;  s=}բps OuHqFJ훓b6 ?7If*Z_iwCŭ靜IU΃[4Aj)-SxA{*ȟzJ=~d2O/s>uk<,~e97d"( S ɞ۫) Q>\ 83DL#1UWGT9=x8}B4> Ř3@C\%b_tiء.$P E%xLfl.$̰D,.ځE{9ծMQRY ; ik)Y A6XzIS"@xrO]3̓ذ'!J(4wU|v΍:ȨV5s8jTYF=}.9\Mjb2@*i%*M QFq:[g(E+z꽝y%,:j@c˱ f ()Ryu[TΦwwxV>M O%:b]G0 (W8^ #\ p@@X P};D=hvjS-W%Fw@ѝQ*mOρ7gvkQ?FXP%MS p,S!D6P:nj]=LMz%dt/s{\򻽞V^֒JA#])Ī HGh|^u'iE ux|6 b'*NJ6bP `ŽňN~m,##fj")&;l'U}kyFwiz@|F8$@AQ>co=:331xM9V}>݆IaU#7Doh=uI{I{vr^0.`X |:(@ս6VmwP`_c<̦;~[G㔪..M8gv=1zBl7P!WSLQ&76 2! !5=]-BFc? d_Lz7^")_Iϓl`ż' %Isd%c3˶gFOu;^ zn7AEcͩcV f51 CIZiƾ+&Y*! Yf ʁ~IBv?$3{{CrzSCgq}h|mDiwvh ax06P=2:S o2 nXI;e>J 8I:">7a ڲEPUT<!0*ɞ$GkG ˝{`Ea)h}Kl/bnZߞs{hvaQ91ϼYTï4E9˷#":6]ϸPvگ=ݎaѾ`@ՀxOl9kYxϦ`8i5ҟ8<K -iJ㢞P+O5/oE"&(7#Osq-ˏ(I<hj*:J~ KW7M@``JqUӜ +3Ӑcy6:iȜ>di)8SEzQԞ9//۠KG1F>d_-j0_&{TB}..tSS6w # U*~ƞx&ЮK}۸[0;.AiI.+JW   Y *_]Rh":9/4%du(<;]-{':w}smR9>7!{/X&l`^G jȧC4Tߋy%W`0M,DSlC1%|B<_~Q~mvJ's vi%B]0ƀP92$ڜ`DJ!!Q̇;1 D?2] @!O(S +6AaBrB -iX[KO^ U#o$4M@,qS3=p2q ɗ?n{tBOUT%WNGrHӡUUJ*\f) -ǘ[,ҋ;0!RF \4\:$2@h}(k'%c"Dž&"zb#GS]"Bsii"xMVֲĻth9c既/ =Z_cf &OYR4w{I[y˩P7`N]ﲦT[YTJs|gXl=f>v7.n_T;o;&Xyg8JC/;/{auEtZqTb/pq b2T] Vo ]2W )n>' VmYasD#s|{6h묆}p͡,L<gh3VecOk;I or^&B#}cY] 6ۮy-,&koi{;xK.VT;o!j_t/7HwDgQu]/.ԩ`Ҽ3-(LkpY} '|`z;w*|n:`Q"C FN*N͇2MEDUM#$+ uip5xtMN SgT@L)cd增0;Gg(et猞j(%Rj)1շafxVy:dmh+ģgV&-ywfa{O5|rxɱ$tVo$*؁\BmqfqrFBp׬iV%"IZJ&U0'\,:tCHEĒ~qJrsH܍Vk/n╦[lvc08c$v2nh q 48$[4ɶRc(?`+qD hTE?U'YfF䍟U r4.A5VRY{UǛ +o7Smun}{l`#33h _vB5 (}}QA^G'6(>A[L~ď4=TTE6R G~,Cԃ Pa[BA J;ǰ<3*1^B`P:Y| ?F"d,S8S%7+qwte'YiY`/[SU T_x`ėz^5Խ!$A.N+7d=ju$I*lo2$ATPRQԎӯ( X,cVI[EO_?HSN ȥ±ȔΫ>XRJl(#)T34snJ~.j "Z-JQP n\y}w{[^06[buFtPUaja2ԥBP`^ZJ:Fo Jr%oP&C>ËU{9dFh 1t7 @(ƵG7 >K:&SerR|Z܆l"“O3ySkTx &40_L ];.3TW^d< ?j,e';Ep.#l?#Qh@ M\R`vs?{ gTFtEH1B9־TާbFl{<͝B eZ}F<*o{V qП@L1q|^ƈ:h ЀЛ޼k Mk {061UThA!dN0%sV*} UN8e,gz`CCvoC ^ɷ|emC 5_-n> n|=F_L=/U^P=ߐ˯_JڽP3rAI%W`O) TgH))3<m糁9A$erb 77jϰ—}BYٟ]{YI~O'Z\i'׿8P}cMQoJ>h|*I줜yḺSOJꜘR@RSmfPYn j-Q_{2C2'C3URWF(Z*tM`7MyK܅QHG ?0r¾ďUM3UdkŊY0rSYGES+T;"rcQNLyLꛀO'7(0(t˃y48i`c0*\Uef@`y" m+ zBySk48]8E"jTa=Xb=Je}Õ"Od GAC~-cY0F`XBGmӡn1b}a/Mq@0UG+_tu9XPG`Ԗa[p3噷i‘s^7K\#+Bu~/jGd}#zZ0$XƱB>Hm6~ 2+)SzKN/ʑ %de7b#22GD^!% DPa̛S}nۘ;h7a~v *WUvSfR:U[~ϧހRo>>m6dhtWF7jߨnk`5 }ᦢ;5A ztDVl٨&r#Ozv`4we*d{5GQ(%,pI(% :i.cޭ0OȠ<|Q2d{ ̈쩻=0Uj|3oeh,|19`q0dib<S0.8 P/nb*c8;gd8~M W)yE"G*iCGyW~ X>(2c E*`fԼ 1+lsO[`![+S,OcY7,stEwۤ#r'xwQhP4sKf'e8"ʊu BStb ]ddG(~8P7 MiJľ嘊Ͷ)$.p@9zHl4L靛Zh(70e/:N8hWL7jvYBRVi7[zw EhB un :m!KtQ8YU7͠L &* k%94>xO =ɓ+#*Erח/qRrO9Qƽ$>qL]DǙpS6Tv~1ڿxn~^Խ<pHMelPۿ* 59dv|,oǒ0hS ¡ z0O~rDR[/ !m;#f Pg)moSJ(iy]$Q VP>z%Nh:(ƞhAJ%G'!mIsR)][}]<0+'pڷ"PCb~H4=7 tS*RU @LF?dn|X:} s?EC͒g$N}APyL-N?"Ikb$P1I/lOs))0wPJU1Teu4(ՑLgʋ^Ժ\0$~80s&*q\/1Uu먬}o8{t)ŤK;ONGuItl̼ySS FeVYb.plΔeT&10AHad| >m OQ04[pSh)ܵeRVc~ t[TiQc9M Gut=seLM|csNNF)^cn2B;<6(Nu![,.8r;o,0*'/XI@Bd`i?͍,Y7,X`&,0  0`@  40hdsu$z=zR~""#4n=`yD|m󢽃,ɚȜA–a׃L]j`NPM}ZwBQnEad9cԣ'0+%{cU!upʗV?l29ETpҽlj5 ]sF*T攑g=U5F.@$1#VC+Bf@JTy19XF郼jab4%L2yJa`*{$A,-{(JeS?eG88vùX٪''<-m\j3) #x6 Q/XJv?E@{>_ 7mvStCH?3NGߖfӼ!,/!'& d}-SՐ+Dnf$R]PwԐd; eVW/E=Pғ2Sۼem=T4X,)qs@TL!|rϞWABLq%(uh͙^跌PHI))s(};v 5Dz[rF'W@Yg,:1#VrUUfe~_h@yG !ۊBe-wh>54)-:1#݈F&gYϵGoa@oyTKgAmF,6Z DW֦F}e-kaό9}nj9'u T|?R Js+vY9K#WPRNp޵_7?XOgv!νQJ;fϾCO #;fkk=2^5iLXPBc`V<avGi畒 yF0(Սgw'Ko*SDz- #+K"O{lYA,Cϛ2yE.($1 m> 8e?ey0Bk"~qgyKZ}5 A0 T |@S4~c-ԁOqo>6G_FX׶1. ,yuZe(FHN,z*>}{!QR WL)nw{UQQNFaJoC'ɼ+ )(f>g5`oo:Gz>i(&U`չT=Ş"l-H'RVvD6D<>h6ЃKx ^"$ V8nM4lczٴ9"(;/̈茆;/UəSHc"d:h9lJ<]NmyeuX!߆gS1t )TNevQtKfso06$$蹹OL5yK~Y$fQu!k `;E$t{ a MՒV(sHR9]29ASj֘?/Z-C+kv73-k=+K. E#gż;-!gL [))7BX~ dh*S׶ Qw nQUI潢^A\̨Shf*~yG~L{~ g\b7keNo1g]Y=WTIFOqt-'I̘5z5蠞F(kͶxUK6bkEx%qnsa 4#=)ik dRse:#)詇TCŬ8 d`㥊5CznkR˕p[=U GE  e$98 yU Vo͒Pb=Dj\F(\sX1t~a>(X)|o wY÷{si4/L8'ˤ MM8|R䁨sd)9;d5OY =NSRaS=x“㽠i. 1&ʲEAarDU]C/ 0ADsuw)˖:tQ@.Iު\YRjUH<=Ɋ& XHhN?'u"܅ )e_)JE 1T6Tjqչj0PqৄO"] ~n021VGlN0|Sޏ܏o^C:d or#YU̬C'>wXB&;K߃`nvS{,g:짢J6Spj+t̶e "3!Ae j[CD+hVĹ{ݤnV(xŅ7UD&ҳNqgs'`[$B{/^)?jĤ7J/ه+U~ﯟ܎3J(oV~*>.ѱSD\FH]~O|rO{?Ek8J)"ٜj ՑգD/eR =Ps_!uio3WLE@ESUєA&~݋h L*N09̋2!в{^ Q* 8آDL'p+%(ymHˉz)3}X:;-P֡yΣ\jy5տP}'GSX]@#ٴ"QL |m3p4L]uW0+,vBNJ] [+֠`F\Zd "K pC|B;)a=eTF`,Rx9)]#{9gYXRj;q@ dsOQ&MڡԇB"wRD4-RPwuE>ZZ6C1\яp/3N-Z(--=n0b[h|>e[hgNpg%C[Qj4" 9yg&'1:+,Uv)s[>pV+8++BdW{:cުnF2M{m G||8)T|vgծZmk[p-Mj9&jY 4^>]ׁ\]@v46W:A;+kXs;͈nV|`@)`elį(Zo!/ "QkjHc#$՝;ەo0<@E\U&<-oR-nͧje5y `k*NA s nwfɈ)o|.6ryھj4YMQeP;d*" |C|@))<;)9kcmz|lS9ƽ&#wkY,I|XY&s)& əE[#_e>RC4zJɟv+.o0_73zdI]1T4d5@~`/Pv2`8 EQ!iӆy1C5Vhٽ. |.{0 3 rkNss8>b^T:X}B_U'ĵ5Nj#8.DR,C AR l7yE$ܯ7Qt$6I vVs;x78}Jx( W{k/)^n{:tT_\3|Z "Wj""sO8}@ߕܱz*)TUq#TM' xpr]RNub$J@XZQ0ٿ맡^}) إD1q =0[Y"(M8U rJE8; t­}q8\JFeOQ P׽bIL48̄* : "(ʠ!v|hpCShgo1LeƪXʷN3nI'J|>&`O>[AXJ'xmܼW@TE)O vUM(! 8,ϾesxdݻgŸO!8R:5$f@w*rOEC39w.* T'VLYSR:w@:]/,YbF TH/287p%j{k-VOUޜKv>y|Y5gnZHQ3%BaHSV6ʧ ozvv҂ $t5+X>0Y%Uc?s կM5uZb hrn PM)S+d>Ǔn,rT&NмOMָHl{!`TܾnV}AF|WYV8|rg" 6~֫l`һ;(7PTEy>1'|5w4)r6uwiBv[cO\ӱ PN 'ӾI9'>p^`vb|ї!7ՎJ?8Ud.J*Ns?1t5Vb.OSPe]t=; ;ksU'T It{ N,t4ȟ>rKi. U V٪k>mGu.p ~jo-U+` (RU{~@40H4u( H)'}٪ SAJNAYo$fdↁ i_:QRRa%8+AA<  u0N+TLak}V{\*bj.m{Y)괜T\ڷ_[ T@|4^L{I9\ |SXLcۼ=`?D1C m!GQR ,%}OR` Nlk#LI~YX`z/8TJ0(Jpۈ8xk]Kaa)FCU)6)@JJLP 5|CPϧ)uk93)vߗW1)_o !;fݦNy7#/iC03K9| DD- +t zJa+1UL([-91b\N=$KL13?uS}5kGt/4tBz>^VY}ڞ"@SR.}SqIR/&^,4V&X*xza^I*aD]YNj "JaWcD@sxT0ޤ73‘;7{I7٩Ȁ3GI3ŵn;2Wp}w: Ÿ!Ӭ0F%u up<O5Aͷ6lºHl^O8>wOnCabb\*e5j<&3m!JKHZTTMY-.)Ns tӕѱ=-UI 6PE J6 ђbidn^~Qmi{/3E}E"wd`bԀ'wz|51`SYi( yk/ @ţ17 m2|JMs? hlM 9:缓Wcz%w5Tә#a9)5YJx͢h&qY`o@(%qRCwqT6i?`nWrfIyudsU1e %UT'Ȃ'`^FF)P)?j義oQީ, |Ts]QDAt1n.="lԫ.|kέTԢ`|"s.ȭb xUWk:[pHh-QYs:3) v@L S.w\4EpP/8'Bƴ(xOဢY3Ց)UwkO=K{z- w=6yG?O4(BjfIA8zݭ/ ܏) y|N`"֩A,b yOiD:;^-.]E@B 8MNB~v\wu.,) #mP(Yj/} sU oFo 3@J}53%ōlVmE9|'$8Ta`Q[uƣ\x (oޒ?=}^G{[z2Gˁ!UdS;br* n*:kS@LR~A3ٛq=y~U4I1BȜW_9'ڀI 1 oscRu?sF]꬀, ^ndfAb m gp߾DSOٍw?Od!d?Wdn7>c.H*$Y\1T)#,}/w1̀e.V-%Jw^{vOM.|55#֣T[6ko ux=<_?UOsg'CP)0cɈ(+aSӠ_ ,MJQpsiܓUiD`zed0O5rSF3곯Y_W2];~|N o)Ge#Pd8QJ( kid*?ssKy['LlBQP*8(bEBYG%fAUBdZsiަh'’+4:s\eWQRxG"j*P9GC tϞ2 Ӑ E-}јiV;y+CEѡrN<( V8!L Ni~*vUni/"9>FRݖ56c]~ '203,NU6*AX"5m1q6-}"GљhyV(=X&")k;=,NtsL#"$9g~ jTKgRR:^Pq9 `d[ zct-,p2+SsxΝx*SʤjLNgκeFµ=[urbʴrU;CQEm_6J7ڊu<, |Aկ_Ss:dLJe5Z1W}S5c ~ R:))+%e?ڽM#\5,B[7J<:y.5(uQU=j2"^Y+p<,—N˰,yࢳ|VPS4`K\rbj/\gn!i1Xpq_BpJ ,ߤXT,/T \dO2_M7-YBS횼))PgF)uydvBRS7h blp<_@VC|'.ntDG=iIZ[U.ۊwM|(4J k/A7|=U*Vk!>;4^t/JL*^F0m?<ˠ^ QmAǝ( "߸=uG 53Lk_ax@rܪMbڟHυ>+;''PGJή/0`X$:V ?юi*rGN0. |[5.'%Gk.7pEq=BGQlbR?&~֊ځ7M-xưBu~|LRe_OT*}Ѯs}jQ9V驢 !_o9 \Ίa'z3,e{∐)pKb] `SI9XY?fJD_gqee9Sʩw ɻNnm/#܎~Β8 :5S3S<&Ay36!Q.s۹jfv5|)]C]Ŀe11M+!WJ|@e/_&=Jq9M>;)ŗ8O/B'g= #[Jc*RJe)QuI*O VJ^=Ln14?R 9~fP)Iu?5| 8nևb}V ,準RPt}w)}`e[Y>o7}.v" Sl.(F~ iG1tZ<`1~{ q@_P^A =T bϕ"a 7Qx̜wPDGoJe1)2ƠEm7o=2f \<6A! h: $IAVJFG5_=T!㋔*9]'pqd޹&8,>cxq|(}U`$*t{jN?F TU!SR| 8m q?#4d.M!)ϓj)#4 }MU)7:Q?*%}a/:OAGZ75E'y~>,r#sCMY:ji=j}xT"v5|SO2)葐/K6oJ&H|Rff mve~.Y#~\$!%u>I+ՏFM}է/By©w,[TsImEmpSЭMU:i.=%_=W_^yA冲2 8%9E2O_Q]|Mi2/D47-&ksyjK"]sprL-O=1<{֞Lb Κ+75Tɤ=R=a4_%>75$Vz Uu2j|J9I~@&jSf҉AbuLcj,'FtLSۙu3PX%Lr;s5%g $bXoQfU }~@uNKrsN;0?E`ٺ³^|eC4juxvXIٙ<}5m"AIYS6 DLyuȋ2-L3Fx'_+sɫK))i|U[j|rbRd^ti|i~v_܎ *PPAX\VYT\,IBq\[>S+E` X8)zIL'SbQnt1uݥ :$I: ٞUgpЃ p2@otia7g`Cغ@Vd[|}ZF۔+5oH* Q3xDtKUO-uglNX8\2PiF/LJ)0JAjC%z_[L }Ψ[ԗ/55i y19+(] 阺bm13^&{e#N'֏|jtªOss5Ѥ=LS7E[X8% ){dve*pW4Mf(ThgJ <6[3|Jjkv;\npYܯPJ #F*-!vh( WMS׶x)߄}&1EE--׃P"-OJ۹*"?'#!MuU*TGj݌ :UV:ӂCEMYk\/5H}C;kdx}OЌFX6)0;%UX2Sy^س}xER:Z>/'c*p*-ѝ⣲)x].n{ 7Qh] Lu\V!T/cM MbA"$as^7*wk`r9ˎ.]RFm/\;ܯW;D?sS n9;R"Է' $+e$vBVsڲnAg7LL!U$ %i>9ƫ]OЪ- ֥yK(kJAA J:dS֏9wEOUG:!z\j'[r\ qQI.EǝX9Ј0OPq4֡ cwr]syڐt6w.T$''h0/`Qk_LmSϨ;Zyc{7՛hxv9+bY%\ ^@2^ pS]s|txߒhgA@A? ^_t "8mx+XAdYCF)-Lzam;"L+OO.ۀ*8;۩=HMZĔh(lՑ>) CIYަSgvitp ߬MBY2M"|=9\~*x]M=^Wys;JiT8jQSW)^ETLQLn#ʃ ~uiuO81.vmnȥ}Z;2ωAiU] DOj`;&]{Bl},Uߎ ! 8 _C+ 8}:Uzͽi$MRJXX11*+ *M hUٱ38GF,Bj,$'h TmEzYDU/zg1PA p))O;|#q$A?D隐ENլj@`ivK Ye[D[} ;]W7CnV1QJ_e0EdM)%=F][T;v`lP*xD6?aMxn% alc>ZuzB BP0W 8ڷ_Wej\<dp(r+!X+ ϋ7an=Ǵ*u%\RJ6+DZExM}d>+3Ο)NI7-9K)YXDy7P=-Ġu! W ^U[ՈGM/o'(~N!815͊G@Kn*tRU z IҨj տ>*1LC zj7JpD )dzJڟq9tnskQvdQEZ!uG I}D?0 Yg`)9ތ7@ k֨yzysڕ}u('vY8a:7YpUPdHG[ߣ<Ί6]HYh̗K\_v}i*,jlY?MM{U+s2O/&%>sYLP1sf oPem߇^cJZ!-JVbYrXUJU7X% @ %1-du xqz?`\O/[5ڇ;u@O)Lp'W _Лt:.:lꙂѠA?F%W2n d凳2bV)\.i  A2iTL23ᣛ:ky]P}S 9 :r?}}7l%:oAL)ܝQ֏&=PXoٖ&nxřΫs*[Te z*jڥ1h0'pUS .(9T_ԜMix&=5X߯8#ղv)v jGϒUvCH$ujؔe@bDZ"x*6P͌>C1pZ~.%ukOsݶnWh|0e qӂޑ>bodZAku(Ѥ:]$.J^EcznR1+ pg g9pc|;zJc~UϜ3J*_iy(pt)p }7肛p z&"fyq]cA;95Rʔ w+iZG+l6`*T.JQpSb cG2Iڮa-kX)ڍ݂n`8 hDks\˶6 vBiERfJtNP ƕꦩy79t$!n%B"RɃ-  fPEa>+^g?U_E(92g_pP>F (e7@.>x)<--3Z b*(*'7u`TSgQQ.:P͆L|z{eb|-qʠv WtM;ewyz{@!.8l$:8[_Y! ^gPAU9X5a[P' :8HrcNZv6K*5o@k#Z=}gq/jFhA%ybS*6!a`@ƗJ5$_>LHy *JBq$yMLYx E}.4er<~*8eOu_^SS:C RZ /=%>/žeRz-b0X_Tr)QNϑrR0DBI1+ja[8mN#8zz@g `{y5IْYnP8M]Q +20!sIqأq)P#䙢׹F鑧50r؟њgPIpww9;yܗyɀACm%NO8$R1ZSm<.~vTlnu|uiG<o6[LpS4m9ғe-le&5;UO7D5z `aR5\mGs4w?vr~97ڟjaQud!(뺆0- kC#J}' rLPz2_^砌>zUD33MARqu^JcIةMIpy ~z Tx* S$W!qݖ<{K.HhD{,$nG2cwV'D!#{q:ê N\, ϲHZTI՝^=o}=0X}_ep-ꉈI*fM75td_'vZ0PO<<\3aďK_VMd#ĔOَr#La QJatW[nKhv85>{i 0vn ,%!aiG?uV] 6]9VGu0s;-.}SN,L` ߂ F(9vKsq %ԔJ`6vul2lN(ge=7qys).u}Z(T5,o[aS۵)4{SQ?Kmr;_ }|TFf-C8ӗ=}h)pR32VP֎\?D]O3蠧*1ѝN tԝTo{$z9sq0V*TUFJ[}rYAX4B71taym" ʰU/w]|=I<~g\}3qtHe5RBl:j2# KG(e Z3 @VPX3jnvȅdez)% e{?9Ԃ +%?qz㤃(0J)SrHL!'^a:Ofg$,KQfS?aZ Jiӯf,Z5ⓒ4T%ua*qS$GO335!TȺ-9R4 "G>55݃Xfټm`۴shJ':Aԁ>$#[۫.9xZ AS4nE118g;QQ$b*A݃!͵E܄_Ri;èvBZ24'O~I4ZpnuroWz'NHnmqV0T fFFTvQ)iۑ%%݋Un2IӬ ټco:lȱ~W`ՍL[3=)jyYtW]:lPаJ6?|iS"9vG)wݹgpsF qO2+5U S";Xs5vJ%ei)/> ؜i0b>wc[k7'yvԲ<|e4%qP&͚`O2 >?}*PwIFu&ybR=L,;+*IAL^+;*Jͱz&~djȂ Si)ܔA\/<"{&IE1_mk.e U2%"=&-3BO|=Wjq(?K}_WNڵ^GK' XR)h.>h|<囚\1s+evyE9 C>w6{LDP6At8;@% R Q˒@ko|mM9$hPGPGV+ Mư])q.*(骋3PJ\1#@ J|E9R6YaJ>!Dgǝ·-tܼ ;gs?\G'&*}9g)kaVT禞-P 2CuMpc?JaҙnZHV}voO<.sy|p^[uG {ӂp˶ARRUCD+΍u8qY&>^Xgx0ϧ6)TZ)pDV`1*C?SrƈܹW82*l|6|Pu%TVoy҂RML;7cKS@KtZlrHeMA=#_pBoMJD}d`TX4 0TSw!"o4N~+ɑkim. {:6H9'4;[~!AJjCf!)ALS+f{h-ƚ1$vJǔ= U!!9rp+k'nSiYr69rrܤIRN25Ef``~n9"JE8 nesBDw/Sۈ &GΗHfj+1-!*'APTKx5 1=jzI'n=/+L/ RH>KCT 7> _R ٗe\O SN?|Yc'ƖuB'guxضq$>yw%[\u["WpڪG RYy\)yѯ)Lvd^Α^C%>)C_KBTge˗$FJʣ6V -3QWIឺWҔwʞX;П׏ҋ7 `7"O{bQvXZ#\vK%3<_W) ʁNH{j(0J7b* v1ԽWeSOԬg5%H}q}SMmCh-];B{n^hޮQ29VONe/ⰎÙ}#'j5j9sd׹7}._O܈xa`[EP9­AT){iOt @.me =>Y.t䃹#is/D}L!N*gg[% L91߽,aās}+, INM(C>Hiu` هxW!+'R4A&jL:Na}giƟ0.|TƗ$Ӑ3kM|xDŽaE(Z@>3oW2 v`l(z/J*^0}d󹛠P=<.B`2u䓯 V6昅2K5˱2$ %2?(}~dh M@ ~@RAoҔ|BU#3ߘVUTU#_K\l5}-_(\ZjBE_N J*#C5tl:^װNGsSQ%YPyQ 9>guzꇭ&z8!Sq2_(hU!cA\mlTW%fi T:ԟ9/Xc9瀍o7V٥2? Zo9/xm MP]`x.U~dǜ33|&؃ *)7[~ʃoiwoFhwzBaGTJT 3UNVOiWbkg%c̄yͯ\CW汷vk0B5MAFL(7T sWoxez_sH~lxM|j/*Ȩ4U{` O TA|n>.{q4gƍ- r0<`ޙØȵG[ v[=5gI9rorbmuo!_*r ŽʰCg92`(C\YH-+v^9[QF+ rR}^jlNE̩ ~ Qx_!\еS@-٧7!Bx*{# @I=sA)Q\ Q>{d~:Գ0vؤ*!~s.u :U!2З!=`JX RNmʛ}z~p0sVG-Mϩ:^eMߴ6執v?$C;[q] t3DQ-$K1a= !liG߻@*=Kj1Gjha+ fmc5'[R T#), -j OSzw0MՕAeZKi}ҦSs=`]M C8r֯zk(hEM*κ@7\%S>$MinIdh%a!1K+WS)jG SqoM"J%⦪7O*=ŷGL%X#yV:!Œ$*dq<pG duTX!BNmE:}Z9q3R4$Y* 鴘Sb:{|5<w9Tlu*Z{νٕ~Ss|6x{yu#b㓥wc?|{y\O)n/}SGqS1fל} AIC҃N bA^leaήkS`u|Y1O;dSx~%u)+J4B \:_?5aK%yQ~;|bi6&GIcy=$Z Ѭ.]/:ZzG`vҀ^^O yGXʻ$0i֏\#Sث]4>t%׶ *3ySReK<0N»}&F']Y|p bFM1B;{_ؗ2>v W6 ^!*9eL-` nvҍ/9?BqS(==.}SvojM._i.:=5 (vt=!߇: XptC%zLޔ.ߓ;y5G]#=EbyxF.TLutfJ1]+}ʕLdig(纋&D\P|simh ]0s*`m RS \a)GqXյU]raM lQ'l5%L2'-|Y !(Y"ӿ@'xl HivN卫MZ8C<A ! @0hwmd",^DZWsyIr+ MMKkƒq5WrȟO+JB=Bld,cl^S)Sszp7pA}B;)-5. X< s)@Y\$J1S)oܜvUDbb1"@7kh:89EAcZBP/\g۠ Bټ>5WlQ@Pܨ7'~ַ&$T>&"FLqH62&GX^=+Ļ陪qC慈)]_#ՙ󢋼F;oGKhshx N1\V j3k Um |Z{j dmrPt[>Ӵ1p.mOb~呴O{oוVez$vZhTEG`Qz/IIP %D?:և$#|sUp,٢p9*xvN%`x{^o?ݽCl)I])[>)'ˢDz(/SUrޗ9/fx@HE081VCUf)<>1O$cT~ssDpQ)MʼnYga Hl+^2{[TDr@)zUrP7iܒ+ꊨ:x]S=}Tzzߣ3Z%UteC(9&|\ߕhztSt˂;ç?Md3P~>Fyε 7@)Sh^ĞאQ5@ Jy{Y{V )|n hQ\&}7>|kg£\xDq G1BfNo>:E97 iUtZa7;)Y*湤D=Is'Z*T)ȀL no-vIytin ;Qr46ǂΎмj 9T1P-@Pַ ܔ7yxN{TBSU $k~tާ˂*Q A).z4``Aˋ]̫Jo2|ƅ[ Be5*}0QCZ9J\-9בn_({\.RYoׯ0t)( '/_vG^R=jPպZS9:GU@Ezo_]?z;}X"&O/:U$DMY^!7H3izk|S w~f*3}M!eN)Q_5>lgVZ ]I`E n JM<`\ 0^ۄ)|sZU3ϿBC) 뫍~f~W z*aC;)OuFvAGSq0cU3]y9hn<.=3oB)U?"UQK,a*>~TDTJS~Eȫ+W%biS$/qj#\ ~XpJ>R:?]1 2W-l*JDrז=MRZf),{$}y5K{FD^yhK7pǔwÞ{=~~O_@O)fJTsH<ŒP&ĘxuL_|=ԋF_9\nmqO4:5W *}Ĥqkە5 3)ob'2)IzN9JDE<۫e|r{$IiNm[ֶؙz-!a`9ɋ]I(YtW:²t䑞빚'wbTa7E _ƙ~ۯ$F\'05Q `Uu,yqO18>*꒹ RMo,Rxr;}-S7Q^z65XC:{fLrh3(xR-cuȞZtس?GX 8ƢA1eHrS,M[@:+E~j _^/A݂ΗD[[AٙP }S.tF$sսu_ WϼfTe>G߿Z,mnήOTrG-3-2#ɿTCU_97t~ا)*4EUkEݒql D]D*J)ר}cNWnt)ܟ{nƞx8p[pXfԎžaio7]Vx #Mn认p(]^zƗ^H JԣwypfB%5SpV-@gqQ5Kj%PuDdw%j|_oˈ 9$̑Hߗ0>Asc4Վ BjnШ0{rm~*a§%T;fEbxL|2ܓ6$㓠S=+Nc\i erTo٫$>JPCf\zjjosHjz(Pﻣ~nr/öpW jj% SiNaոWnq! 2P-ެٞU|؇ŸGa~mLc7t b^]S]R W.TÆP|.mNè9.@oIL߿=Y}kl(r, µ f'4 &ITyf;$i\+=o^ B=P[ݽFB`^ns??L+8ElrϱVu'ƼaՄGUZ,V|,qkWM&pA{JYU Dy1R-o|J@QPa_OycUk^?l[hIƴ2OBP ?6OKn*Дt}<Ĩ*d4@LUbyԬdt{ &ꚘXw:ރ})Is-<^6-fP,mYn.n k4rsph';2[a`lO՜2hyQ1a7EIT#fSBCh;d:h=򠠡&WגΫ_.,dXk+?;IUkql7㉆gU NL.䗒Õ/XV#7ueV(ZF{f%T#nI8-}_H ڍD^ޜ ]6Kדdv&m?X_[hzDRk% #>ߵd=>˲?DCg:ǔЇieC]j̔ݕ aoiI9eIǀJR SRYQ#~ryuK;4jNw_6KE,B7uM%*/Y{vqسIj$B'vQ&%."6찺8]V1rD\zG\&T9s&FyaI"`AXrp|ۜJ7bj>ϘP<*M)/*|+Ujj.u3iH5Jtu7~~@e|g :b_EUľIJNcS+r ZʉW =gy.ZFO{ LtO1ˋaL;2]1T?z = m{{.[:ھQuc)!̇/WםD>5 N~gٱM~d. &3>:zSc y^,P` -G9Urk"7"}}ýξ#pY־ ϩnIpu?K*2E)k׈("\EՃ(,{}.7Qr;!N@)Q1k(RkR~20@ O|5\ܔ_?rγՖ RgMƭbC#tU|RRG7ۍCЌGؕăevy2)\;L hp^W3G::H t}I|S18-X)*qLN}gM\f /rUU"jښ0M嘀skp%4hȒPb3DFD3vc8bqst2(ZRNK]YΖEia !ÓQ+g<ϕ[ED8x,?R@Y\^9SFTPi`;b\SPWr* Z8‚_,> X> 20*i?o=$Ye&Bg2FB 1TRla\Gb/}Y5ձ(-ke_eMաP(=j~Miyk?"%O¾*Ȧ % : H8د8wr }1+>_z 6 MA*[CET̨fW Qʅ*m+|C:^i%nj䜱>qd;}lqa>1U;^(3VSZEDž1́|e"?ONN OsSFzА$*;>ɺ+E0!`N;9~* \ J|OI/~hL5c>>P;tu&㒆)s8]yV@DPӗ9+[bAg<݌uLEnBS=82hN*I gcYe[(b{6/+VU M&623R:G˰_E1qXuOxQW$4aUg_NyĐX 0s')Tf,EI.zAu{*;)hLݡV(!S}j"vl̷Ut>{d0>NHi~7xC"uݪ$j&Io9"$ֳƕ4#O:ØOloLY KiZ>Ξ*ˠC^靛eć64mH[t汛$^I8zvhW[B-Q0FSWlLoE  bk'0a)CهjZ05i``L=F8o,,~^oas-Cx y6rML)ޔzI O $]w4׳}i *)Mja8(bu=RzyXFLFi}sF+aO]yL}Snźzק ߾6J[NKv.GJٛC7y]y6T"`/Dp4OZқ%2lh2au) =e SJ1{tks AO ^t!|m35y|ܶF6H?krN,y f|=QIDv1@oǯx>OEo"1}NtwthRPxbjcFLH!ГlٹpIeL=ak/&^sUIoȱO<+~U)QI!ux@sFV U(*ޑ CN7[/QP=,hXGӱW!zeGpkY/ 3rSʛR6Oα1"7IU3'fC>ZyOx5'\@*VL:Uj=TzHDcsP-)\BU ^"謮MTSIhjǟ5 җ쓳'USOuvDžu S A#uJ)4P4d_&o:~af9&UN*BGяxhJU'Yˎ-s~?5)n0bI$L@!jKI#DlRLI@䎶ߺenȇ%_.&..u/M_cj-a, q>VcQ rdAlҝmO!ݬ/Clx\U|ud/&peOZu *9P sGҔVjl-58FmTN缀 j;{Z_h݊S|ieCÂ}TtXt ?To݂> MOji B4Z@J6H8J쬺XZOkYVT>eqo6^qNb|&9{'BJQUj(mJ)jv~ya2:eFV'́9Z+.P2ƿ*N `ҶȬRC^X7ܔGk@)vVq%ם[sp %8 鐄/($/&f\u7c${̘3.f48AJ̾S)uQpoKUu㰹ĺ?dwhk!*L Ս? \/)Q㙗ls> b M*HBe7gPayo:*c?/O_y1M/}5S'Jt*aEaG[Y#m(̤7r Nbw?𮻶>qΈtd̪ ɉRyY2 %XF|zY R yf/?{1qV~\k>P!\m5Ji`\qt!XraJ:̢ӞfUU3?7EphLqc"%uKAӆC(g_ȴ4pԕB_6QM<o(KC@5)['Y־Gb{`)XZwĞ CI(RfR{~*Q%>)rPz#>;g!pK%cLj|3UwYB|~YJ`u+%gNL')AyYy(=gÃ,(j!HO{fssGwهBy A<9nմEYzV*n[>ZcN&r_m0 |9{FHۙucGyRPxzcL^OSc XRV=H&y~|JtaU:ᔏP蔿#*f\2e!s<1UV'; Ph˸|z7!ܒy % fgWSkFlL4q-̫1GUdaI)WĢSys BSAۋ*+VdʌcJbZ~ 3:EMA8i'Z@JZxv.:{ 6uTXR Z\v,,/"#SF:!V<{gb0 mcq:V~a~,)ݨS Ҏ紀@5vJO@/B=$aIq}2|Jhveu s#_psFYQ5%uAtsY.~@:Q["HB)4+6 JoҲHzؤxOMt~;%-'|uAz #}K|y)"E$޶ƐoP_@NgBm|(E@b1hq]Y9T\Bg{ +=z"2,p!̺Y_$@\N^r*z ([;WisS ZUd&v<葭H=gh@K))aXG3)MSc ";2lUC2Y&1U)q0NKmD(L.V!֩țʋgQ-PS_sXIQ`]ѽߦND,|[m+fkRj- Y0,U:̨xP8ZcCtL8$dT6i E*=j;)vחv`ĕEvGD<I_AnZK =ڏ70RhaRcp%BBa3܍v7uưy/_)L$իD d@@1WAh畦R/X =|򬲮 F;I` hz!H7nYKod8Z"[rSU~! wN3/5RDeJq`\})0 At֜-ӷ!=CQmIJ4's+̽ yZKS^7S,nyT킢髂aX&X)HsM$\DҴIUy2s}N#39cc&h}l+ v̀r|-FܸɶSBWesvzYݬ.-mb8)IKE|!AJYwXz㌏fޗ!88o&pR *: g)UG8%^QuRr  .3e> +LaO*.GBWm~m¶i-Pi*R%nsԗ)w'&U O'cG|Sy[|*m1c>HAAOĨ|R:y!SNcEc 'gǛqKl ?lSt/Oq|mwؚ-r]q\ BIkpaHUV#jai ugJq@˫^ TU`Q`'I_݆Ng#u{wTk',*=PsNWHjԛbfvQWcw:W|P]gU(\ M9oó~?C͊eNg&SƁ4l(:/ ؑ)fƞ}µ`qMȶ!W-Z='QF +`4u ~NyyF΍Nٲ $OoKGqiԦxCE_w0׾il吭.Hjx0`*~M_pҧ6ZF5T(E7Rގ_*ZT=KFP􉖝.+>jK >J|X2{ehKpGSzqҕ@q) KV&/- F&. 8 t`2u]h]9ՀXjK]TS0C(+(\m,7Cx_qҗEAjA5`ޓ+c]SC@xV;69 >HGIKs=>}+dr#O{lm *pڧl5iРu(;=t槑Iұaelŭ"vS퀝or4ztAY AEh/;&Oo_r + cAVq թOjyue1+mj/+VhLa!>wϨ?ϙ][s|c6.ie0FE{&ԏ‡<:JElQ5B~o{ǽoL'b6f=.䕻90t!\vEIUJg)վk0"SVyj$ϊ+XCT@^>GbjERBl . "OH&) RT A|bMI ƭjP3MpԢoZAr) 73cпwp:+?0enJZkt'}Qɷ}g[c¶ 3m>9k_]Kma8.b޷Fj"`Coۑeɞ>c\aٮh* P0vXa'M] =<7oM08 O((Jh'IOyr-[Uzp Th*W!EW -e<Ֆҕ-?'9+-"[*t$j%1k*fOw(u_9AQz ]C \VQAaӫI84ʮ lr'`SD$ jY$?ceǁ1+(<*4gmuPq†thU0CSu? n}O(ObЖ$R@51Pw̙7Ņ>28@wǖ>~w7;b|cN ۘB@zZFe5bIFp/~8o=q M#.àIf=!dEP<Ɣni}+UJ+OC3u~lK n \.oexnsh G<ղLt]y_UE?m|.J}._v=cŁn.l#f1"`>˝IvH* T Ip C-TgOWq/@fۤTc 71Q\$ˑ!Ƥ O ,_Ƈhq6&zp\+jJ,% dJ7@5A2]V1sYtENlP&`Y5Rd@RCqUSQ/K Z  UAZ ! ֟rc o.TQqT}hzqEi7(AFoZuQ*()iM˷t;1N#~p{uNxζT,0$MM$isrI8bn>/a^ޗ4N(8}^oevysO2Am+NlY̊j?h>>`lfX3Dh;[̯3SmJ@O_Ɨl?EF:/SAQM)n 63>$gzQbzTzb "Lru&'QG J] DWJvo7<8*D]D4* 0?V& <,oV9vRݞ 6ByK,#\No货,4t{3dUz\ W?gឡ&52nJeL/n\  TIѕE&7=ή2lM먫izfބmOc؀@g |BYJhY '(E8eK$"|v9U̶L7SiH 6xA,N؜UO @  o3؉;βg~g MJe._X+OGS9 )(SSs$!) D_ ?m L cY2YwVmU$% M t: kYF%5&zdX-$f[X/š yEkO$\B~m9E̦ Xj~bח5/B\yL63Λޔd~V;n+(pPqX91d>d,8X_y_U%'}rWS THr 2n\!.C@TYz4` OI(T_qIP4VQsttҨ{Ӎ_߼KNyC~2yta؞#h]ϫ!͹Kک萹)wN͹"silRc=g&Gs4>DSYvpflliz6* _d@w)ڋN(:7.FEb|K7 #eLު|:)R仜h\T<)g Rդyvtgp'"EKW-@ 鶠N\!}ywZjdrXsMU}$e$s=kIU)qw7 xt뉞|fUu(ް7R-$€ukAM$nbIْZs A ~?ݴI;}!ńN>B/*bF>M2|>ߏAJq92QcT 2]` C%;܌~6'As[G`(Gʊf\/qMf7WO(7'W&ܡ27q"@UG"A$?a_׫ U;Fx咽r1v^^lrbTl۹xLN6X9?a-0P[U;LKX( }΅0G6am8`LP3,! v"Ws2z\XNU -f>3{I|;v#v"\f6.uqҥҹ GcY7a9  Hj tzH2"k`O1D ǰ: K|YdTe\Gܕ$]$ρG DAbSH nOB=,zPGv`q J\o$8fN Vxʇ'Z{hOnTjqbLfϻE]C ߵn1dD /t)!|ĪcUMyP78ĽZ>br#ʢV9%UŘtЙ\7KdP` '.uLGS=`cόE?9݂L4F4ZKa)[gg|:H.`zⰹeM h[{b76?"ߛ}.ϭI`4+XHQttZFnB߉ôfmج[ZR6^\Dn&v|/]DSw9:[Qjζn,;ZC &&CUC'\K(ojJ߯}eܚ}B-ѾfȄ]@Y{C7mtiweJS( T>T31sk z J“>=@ 8Aق=88zBdf|[Ĕ{pn;v_ĥ)jȟd[.~c@F uNg0,Id ωdTV~]ӿ/m*91oBSXI՛%2ߛܔ8c j~'rzNԙF)d$iA@U6ys Cj*VSUdK.0 IUnJhNஊ1*TO{>2N UOSct6hFk?^^xS'L8KEoY Ab0\N/QTГM"J4N`:&N0;m(J%MRLs)Cο'־/}TY^vñXf7]#;pẁ"LNs(ʆDv8{T+ɶ';4 eEj^#*_HܸFcZy$@pbֹ;tO-{G%ked-I=>I/JQ<7*LYqEEJ`. ו!R*Rᚣnè1\y9Q训YE-=g!ѝ])<KhRϾ8ՏJ;H&%nXWJ^{{iesW.$QੰproҴy>"\ьYU&;T!2f Tק9O9'E1*51c0٭ςD14jXrKG~eeձʊ݅?w/w؎lh 6bL/yHuƶ#.x+w:obĩE{lՕXG8mAof"ƹpȆ4Q+i.j<2MH%1(2`fEFퟢ22fWx BoJs/ܔI)}nG{*˧G\?e1Eo |[&s2L0_TRMf/_e9BSPAn'˛|pMN^i,)T+O*XjW*~0|I.pUqPD {kX;ʼz* =: C)ϛ@헩Z^k M6UauN.c^!'i Rۊ=oFwsh3NhT4m8.s TR!t8+!XyMe9S?0:?|094j6^0Ri,NsOPM*EkO,%gѿȯĮe| 2+l D48QxI yS`þFlχ$ްodz3cQ`NED`|Y˘$[H]䯪ҽe{)2P""ܝ iEmOteH43Ȗd0'J14z P{SQk*,R2b/ʾv_ ӽfA2 :_ ׽ /MZ>OKh-)(Gӧ)i Oh0>~jT!0FХ~e΁dKN % ._cœ2)(VMfTI9y&REHeoɼª F`-&*WM]Ungc9`ޚ|ooPuKF]!JG+ \DY +ެQP ~Wr`[ߨ#М] ),O炍jVdO.=8u&sDʢT H#&@L^[*p @VandܫbC坴¯n΍"sBPޒ."uj|W2\I}d|=biΈ(~`B~f;2?ʊNAyDԹgwU$_ \I1߹rX/ ]ݫP/ֱbeKؔa$f=#9})_sP3#N;sKh˰}OBS =tPg&1yU@l;&ePES~ۆD3?-2j:TdAawDX4ҒPMI5/Y$W2n '5X6*z_F[Ђ1@ ='}T,%!MmS*>Q5UsQYMPPS G>a"煼&~n1לKRhሙRR^1_ P4KAtA3S)5vH5V[5O?w< {+&^9l7bXB+  .S%)i#@||ܽwUyGB1wR5E%iy6PԤGݏ&w"~C6؏q,&՚WdIf {J |nPSkLb2ݪ۠ĴNB><$W2#w 㪧o&z֤Qr " qq'eF@^Szp|=^ё~B3\ҙʒI%q)H3!'TADiUTe'2=Dݴ0h+>t}|DRo\6.ބQ=)x6V!.JxgW:Hu-̨FJqH4 t[sߊ6ljR ryHӧb5p-VASziBO߄jSC&oM"Zcc5UݰkN ' sU\MTt:7JVFÂ0S'M6GCCqj28A@h!)CQB}x2_(n~RTd,tfm#ki7j*m(~Ǣ[K]OI(C2#-2^vKpyԷ<"˹D@toXg2-.·eJ`fJU2֟7ō=?:bB[BYI*ZNeL'Yw_c=_@$Iڸm᥇2fs/|(}u*U}mg.wtKŒ$̀itg!.k$~^9C(pfw,)gPxS*Cg)14$Z3؏e'JI$U./\Y|-IJz+TrS3vW4ƸἯBpz70Jv&1sȨ߸Zk̫A"rʓ7 G'Sټm(B_AnAVxe㛂K,NPIPq/OrjhD'jf)N#K7CCS]3bˎ+|rlFᤜ(FTEQ3f)Ԋo&}zg6)}Me?hm1l(T. SɖN",1 5@OS/}>o=d$LaIW]nT>m>\ʴc+TATM .g:KCAz0gidbY_YABP)_?o:k 1"o_3" g =yP762!9Qm fT;c?psj&(%/k3@ә,<94@aj4tK!t4gRr5i\\Xkn>|KỬ,8fUʧ~똴Zt.)04rZ;iB) ?'B"]'Yq(#f?KPM0+zӁ(*"%ua0s@C 9jw̫CA [d<__G\z=Rk+qj}*DY)HB"B ZnOztЧ~(Gf|>zSu9.dB&k$vD3{r2wKCt*>iLMƍ+/;]0TDomӔ( vB՞]9K/(<"9UV_U=zSOJG ND$E^wҺNaj,ZIG4x2;q Ј G v}I_'!dWԌ0ZIrcA/],:PGTYd J/\zybZΚ?}uM&Ϲ6_T5~٧rfH~Ӕ>5)j*S3KPfN89 z_'rToc ЏOljN@죋1> (u8[l:V,i!8Mk񣽶5ZdF*yd̎[sx8U\nPgT@I O|M5c*_ 4ҷLtx[2\`q _@Vi]W"Җ?P{yTc[0x\w,0oXa3:ItwkfMڅ,.!,4iL9|ީ;£gVAKe3: ) ƕ8w<EBYR (A]b^iHqG;~Xշ?xSMYnR!֣45s $郂1e/ 6:tҠR@[o x|;İm>(Yƌj|ADA~.K!(p.q?cU" חW$SQ,.S;h-]^Pikw0o`V&҃vJԞC'ϐ뤯ڴfeJ)1t% hOP7d29κ5U)yQJplm8.;oie愃$w& c -z2!uGQnEѻ SF[8g䓬&h'ilfviTmh>.o[`NT>Do2< 1%|ǬVҸ; ])`1,@AUA΋b *bT+i^altYީ^f|Iӳ }r/>J)ϯ5b_&)ĿT!7Rj2L3\5W-G{ P:dkj*FJJQZJg\VG@b$c'ٝ!` $ђWs}܁BCA՝{bO-2z"M---ʈRlabbErAEcwYSCogW8&@qEkKS(SA 'ԕKtSCe #<+xS%5)KUV:p,kԐtɤbi".UN' ;Ǩ+ a_ FV_aspH6\@8T_nүd:_JWPTS@U)+*noNv=Q8GG5N|r56Q Aoc]bio#-}> РɩY-2 .$D()C^%(E3NB ^mAg$z^ѩCeF필A}aڗ1Y(&Ɍ/$KN.D~qV}ͤu3 M 7kPTDEd|yl5t|-y mgVܞʕEJ2vևk_6ct}Ѐu%~i`GEYE=u"{Bf sqH}Zձe7$2 Ŏ~:'0aIj܊=w܎5(m4tǭ-۸ jzL}Z'6 %3hZ2̎+D'*^Ƅ?Pǚ򕆀,yHm}f]Ƃ?bOnxu-U{J}BerFŃۆMXzm~⃊p-3,+,^12V'뤨"$Q *"WxW]D+N _2Jђz=I7bO6|6^[Z[23xjJpBQ}|E h8ZL2UXRGV$!O|VBڛJ\ J:!4S$Wh:*j' hܭW(B̹PJ<-TMRrS@A x*qcfs]6k2Wj4Z= FF0X%)qXFe4 *l#3t.Bqj}g~Ԁ&Sr3kj6Շ d;tC i#)Z>\{c6ÿ"}-;}LZHE%עGE/sQ^sǍ75.5(fw)0Jܛ;}jL %.YMA7*YS%]u_@a 7/IFsS&AQdR腈1eOBtrP#:-|. x(?AH'HjY>3D~1p/& t/ *ɂ!,GN)zY|w8'*+*έ|S (&F=acd5*%rye=El+sj-JtѼ<:|8&8I!v쬐vg*7 S1s~K'|*y|o'%΍{"G9 桧G*߂3&mav$<d}">~o1쐘rojF8'}šzdL甛):'<])?= |QflTeߗqeGhj'nђ=ܨ)z@^:y> 2 /{9 pv*SӋoc ұK s>&0 m nޔBͥ.}\a1BD]"R^sCzUo]6Fg1kyDK)oxKXW^Je߮(%TybRR g{=ͫ6zdJ'vSPր`)؎Gj6ŀI|W;'+6PÇyU5tBjRE*|h*}ڣHj\|</y7&?W#ai }|aׯa60B7>3嶘 6PW|g ;z7a1"MD<# ߲ŲXSE,*"^7n=.j*柚bM^VGnfkܴkIm2@CD 㔕c_*UL-k,Xô|nhDz%D*H|BG\C5_=(xPj<㣎Űvni>x Hs;a&$r"`ð* ~ڛm叼Yk?A!}o؂.`l9V4)~lv& MkԸ`׎ԧ;tBmkأ!~|p<f | biI-z'l.)z/+{A߅9&:F sLKbZm|o1-K,fnu_/51պ1bQJ.v?7[p|PyGAzyph t IrזIVdx'RyRX[ÝX|S$r>1kb]{Ȩ+fJJ*pɮSh!&BHIu qłơOd]j,(%7xe `, SeVL, ߵ\;D="TK(dq7Uz| }-\UȖn\B\x绎Øw:@IͬZS%'[udmqHvej+À7ݳGeсÕ9`Lbm/<)pqOJ>J&{E]ŗޗk#U̟qd#9tf^;UȥǗ#Dt0UIۿ\P͘!.bƽ):RoJmQg_5VܪB,ޠ:;g2-3e`GK i*=@S͝zSB=AuZX,yڶ:rJtSyiUy*3\',J"uI Co|'}gMHĸ/A=D:0B>K}jϽB9]*+k]dRPS:cAS">#դ/̛I3j@5Y^QTϳhC e笁Tʞz/6/oazU{ssùK#j0,oo-3j* o$6Xy ]Db,\i٭|Lԡ>{sH9ư*0X3ȴrbizG9"ʐ՘f4ߝa;HLo&.`F `oc~dʖQ^]~'<[ܱF4O?-~"訳FVs#roET&$- ԰UPg:揃<[pxV.L030 ^hz&ڹʪF_GAhZD&͕1d)|-Si iW7 /qM#,,]3?.9̮\z R1jK vv095n /C-ر@gvV amYU Q?]¸)*_@t-T7哾MZzJ,񑋎gpM>1s}WG…>͜ c,)WSl?4I5v(ix=XQ@JSg%54n.YXje Y(%*줽7"V<8f#/*7}w|}Ы!:=}dw]$j*ci*d`L ;GQA`U& ԸgT*6@(FbcM`T;F!o^o$ms2в41%-+.)3Ay ;2Lj=]#ƬNm;Le ϹM٧srykmo4lRVJKb\:1 B;}T"\@N7֛\ Qz^4.7! Т}|7iWlb_)Me\XL<=ҟrT䋻E^&.ŠZ+R*?4u)l$'>*ayǷ1ON[ +Nz^=GSTGԆ3>JKb3s$1#LIR T1.Y胚arJ=>7z"Y񼖲c25T9s_CH;aEǟ-BySOeD=3|B,Եٺ?[qQTyo~_9QJ(pol70^󺙠NI]窻@בrMI-n_>|@PEWAucB$BYs"znFC I2d76h:?WT<as\˸!an8[U:}PUi5N:#BEF`_7aGT0ӱ@Oít@ֲ/4ɮ;R u "OdCip~HqZƳuVy}#P(m2Q<(|%x_ tyJjO+D`\rs=S,ހՁQvӤU>Ʋ^QM<:P) AK MR>ԻYպV!K;n<@rmyN)ޝn2l蔓M(B/mcQeWt- $|X/* fc_oDz#L;/At. |f-%kYABn= kr,)SMYpECSүDzcU)!vOEߕcX9j'(T9+:a\3ԂGzbfþ8"A=̀"VPރ.cpB䇨,%^N65:s͟FRr2w-C8]ݴ؄bO>~5f0v’l%qaP qkTPzcʳq]U+Uͮ1Fc28p)Fy #CjIT]@8,l^Mx\ڍw}U")&)9Մ'^(PB!FZHv6)LE46SIxpӵ)+P jRVaeUPځ_Su+r@2դrN{ ]aFPGў…|2 J$8]mܭ)!s ɌUǜ,20+B]7M4p hLLK߈"[HF%3Ǩ0j9 J'Ցטܪ%e7L/ݖ2ja*no–_h0< j au)@xT;Eه;Qz>> >kU:z"5|Yx.+3'CShOr 05JǢY^aT2Hwd{=廫f9m:*+fPyΛa̿-LOO1#rHKg?c+g##$i;q"I|I a\m|*xzo?Ex|E)X0_MZaM[yT7yժxU$> 5(PR#]& @>!p&UQ>҅tjI LEq?n&' bVpk,ӡ20IſMtI.=(}i 2 r^Z\F) ^KHfWȥ:N|=9܋T,paQn${-35sGdv1$]#7﵅UqĜdNg#ł\fP wB=4RdJ:/U2!u=LMez0w (ih$MMjMQ8MTxR6BgvUU vECvnn,l?n5<+v̡J=$p^zˤ^mL3*Qjn(OP:a!vN HiLY"%}|\GIdTŤ:`b%"THeT5rޠIFo aE Ͽ=(c*Βc PİNdr}.W.G3*^~~!iS<ccj|?U+{n~L}Q->tx9酤xEg2X_{@k/Аu;uQ2eMuSeuG 7NQ--O`S.`9BPrwG!z6Q&ʇb>ƴ7UəekP7.q舙E%$y*Qg f#ɠkǶnRT$q׾Mk""a4[7s2E;a[惀X]>9m'Ӌn8=!gԔb*Fqu`ʧrŵMh ?J,/Vy_c} GtZł[۰lg#cA(#W;9iN8[~)՛SGΡ|zUSJDՃ0?Xx}\FP ~aBJpLldUsa| p"ʤT92;MǬF.2\)L57B͘5RjR5PգWV넨ݑ֖jhy4PgEqT2%~f?nuL$?EuЎ:[u~AMUO)V][իc uUS0ljtIwWEJWJ)ec9~'ơR? )-zS.P:+˓SH&gz9_hͷ)T&ûvM )!cwQB2;vZsS;[XBHM]\AXGdhVsN:jBF/vТsA5l`0Oy p=;U|-8ȞN%Ma5~D[zi1'PqJiT8cwQ(:.$Q2~` n8ţ:.Um.\`-^PCIXM _z(uy?wDސ 01ϫ*bO{p |I' 9*5҅׿~ObEɩ-:ӃKVu \A5si[%.[o206>tCP>1~8: {F}k}IU +^0>+oη.{^\]xITD1od.9x&Q$S -jnm28qVѡfAYg yj,up?`YU>_|ZebvsQDkٴ2oteRg & L ,X&]1M6;8jg-oǓhnJ†`* =.epOz*3}u{*ᗛtӢոe(5<)𵰖HCĦރ4eTEiC$)H!OURD_}Wrūt=4Unj$f|di2h)5`MԜ`+t4s`iET Z)U2#sdO\jGP\Aj7u5#BOi9=(L9:{Y*j nn=z\ 3'\ Ѽ<š;m.fҨVv6n񁺹l/d. s`Aq;\XkXK<mE,u2T9Ulj7l Q;.˒e/>tl5+X1Tdh+! 3+gv5\M. zwQMxjI ~#ᨵHmIC em}2,8j` _WZ ZR>%_HڙZyܧutsMbZ"3`|bW K^rHMbޮiH>\4A)J5}ڭtC9=sMDm3:\|D-{Sk0x,@Q_F\mVi5 UdknߞH9ɚ)G ~20mIKưPА#'ԩڤ:qg)! }1WYM%MUT>ܥ/*H˻+X_W[Lo%]h,V=(|pA+i> 1&ܒiV4KHJCOy+z*Er S8 .]Dĭ$B&M;3;:_d|IPQO/釂j5QgI{SAO*M6VCJ1 U-ANxN8htIܴ&RR))7-$|[*Lpe|]s7w&Ƒ*c&oUb6[O}!aLy=4e;Su-kTPZCj֯%Lvxڕ!m.D|3Tл>)[!rsn;x,O/ttcBˁ%D_ ME>gIY): F~.bHPޜ{,|z*tP_SNxo=dD8TK/tnCMU(WYldʝ:8+n]AgDe C?k cJf|&h4loW+N~ O,;؃% 95Y$(߲Y߹\?s]HM+7BłNbr).3EB> qlG;iǩF975`hV]#OAJcR8Q[v#wLanVR߶?8ə  [dR# T~2=tB&psTn~^쯍D Hg.{lΈC׭$աшSE?Eb},-ֵ"(IoRupN^̱ p͑,3Y %Fj%s7NM Q5~" Q,MugƬ Fv8C5ʾ_7) _-!BU x!lr> zj*džuY(Yu;V/#T9Œa+ TJJ|*O"V^܁xRڟ-m}??~x7++U~]ST7׺YE5aMf΂ ;[WG#Б.vTRA |Г) Ƴ1x{_t,\Nfam|)g,R(oǣ/(r 7XI7 SQS![5>bZ~xȮ=E;" hn2Oƅ(d%eY+=3U~荤7e*G7)oJA`qU2gɨ8TJ!Нewd!RTz]KNGo{ (\o[}q^HЗ U {kQq* wnJ oaʂ}:Pk8M鞸+%3)A5\tWtLRep]&5C=OF Xϗxu*~ p-Ű3>zS韽4S.I$t/4͛zTB/ʃ<rsf2HJҏJ}=*p>]ӌ~@dl@Ia!'A1ʝw*/*mK1ձGi~4ؑPԋ)K,_^M x9?4hY%1ՋyY,E# g(g\Cҝ)0Fcs LySM1dA Ö.VUeJG-}hzӵB#: }TPdr *} (siH-BQ!xIӁ_?`L"abjn#0ӰHd^QS@k8OEK*\s(t e' h\^cK d3up0WjTʀ -Z9KX4ׯ[{›ʢ FV,"6lMU8#{R5ş\T߼ŨjEƨ6z f]W+M!lar_{dJ"PY9epsOw?1{ypEp۲tg|'AT"_{׊E ۠WIr_TAe '`fl9ߣEf 6HM&džguyl,ԇ+q`Pc ƫKImg6宮U1 A^Wv-OhE=sJԘ:r+czph6WP%iDu)1-f2$AS; t0x&Z:ٔj^1?Mn&zf&K\~Թ9>ۓ!1m+Fsg!KE<ޙ9tLP`oCDu  p˥UChYK %`8УhcbLMtR2ͅWi$>  Ƀ.i}|Ş#IBeF '$ z&|FMy sy_3#j^h6~.NXS61{C%*h21'SƱY{W %39Lgḃ*_K?N˿3qxpxQVF0tҁ}`7K'jo% ˎR'뽬v.{{hZͭXg` uc7%ԜIj*!a ̣UgxN OcQpƧ"4XyKode71AgqZ7Q:[I0v}6^něg>s<rt89{ě[yRb8>;;E//2X/Y>!e?>ſ=_:&2՛?L o!]q*x.[u_Sl>[J$FoWlGs"%6\I'`]'F`iJPf1h {o+SeQ#3w=%'?`_슰쬅7|;[K`^RVǼdh .c 1 sS*yBuH=|_Sp6❶`J@LTlkbFi#?0a'VWEB"%M}eʄӇQ8PKKA`@ޫshm6nO?a.=ߜ2zwX$MRM&)m>QuHS*{?e̹2 #$g!r+%ak <^Μr!.R}Go`,y&F^}jpI%q4L5*t[ ӯm/ 9xY\8rqD=S\Wu없 +C XG}4RD7t,{H4-t]cXJt7a{RYMyhʤTQSJSgWyP]"[j@9/DD^<2^vUV8>v0pggYq*uát;#;!·ꌇgڪ_5bםAK2 N9k]5_w}ZsAH nfQ\q[c\I̛)qt)|򋌝@RF2s[9e>[Jm^-DJ*Q{ڙz_iLQsoT~j(djo3v'U/KQGa£ȉb?Xտq;tlʔ 5:7*yM ͫrZYLMAOl~I$_(q*sWBS?tJU9>#LYthy}=̨/^*_ǃXE Χ0:q;b9#ŇNAfՅuPqU6W XK(\U#Ybd ]\P(T\ Y~W.Sy4O`*goҵJu:K%~bI[{';g_~fIO2j؇g96RUp4hxrS e!~W E>i΀ѼxGLnOw*@rt)klvee=0X<~ &X$. nq=(e;.!5u<ؕq?/^\ *܏:r3}ʫ93`)r=\6xg԰*Xy;43>C=O -QIɽo7\B('sSMvk_t鸲w C%|Jqƙ^GOgyA'SV*XUn?vH)pP#˜E{ '}]19-w7U@*'xy2'i%y%(b& LhZ vܠeqkԽeNE-ËiB+ ^=2 hT SݘӽS҃ ~ҨRTSw7ʆ'Lbh|75\U$F72Fh}6C s@O܏rW{c~dKFg[;9Q198Rw*-!jSZϗ9y WܝcGvy\)Nͨ٘dUP-^D (Ma?{U2b9e\)$\9]7+:9,Ϛ=}p~7Eb!p$̓)d7? +FRAdAdOdYO @E)ˀI~LM}v1<ˈ Z=(Z-\zpHroQQ8M15 9&cQ4Hx [`AĞ "Fa $8"e=K^޿1XEًQK@$y5UXT_JjveoAU6}ӏP tT"]W Rx փ *̫ƞiK^Sw5s1Zr <0=f+б^mqf9T yuqn P% )/g5j 2t/?#^8{S叝RkVaK_*7.ICA9\/OtkŜve/Tbgi9{Z.61`ڙaG^vL$ubq[͇$Չ\+ꆉ[~RHBGGYgwC#sF{(7u:M6k-!<6eu@jDΗ/%.6%_4gjiauKwٞ 3P*I[]ySbk&6aҍ[f Ic*])a|* Iu9^bLT3DB4b/n|!' @q j"⅛-E_o\ fTT4I:t(WH[P<*SQ"b|$e$lĥ/afYz>: 敏9L 5Nq-R_wc2|rj?en""k`*4Z/44jEG }P xr4$صaگnSQh>e=c6}UB7Yֻ^}D/8e頋0,Τq *tÞPW t>z.| x)ˤw-|5l}I v]q21D1X,6{tuo^p˦`[ʍc9Vp `9=4 tq±*ǞlgZnqch7).\c"ܗoؙFM_v3VQ9:V^[[TްF 6?ԽzSO5)Uf^-ƙfzx& $Lٚj?I(1uVOS$_:,Ud׹" c/ᮯ2K sN-P)]5t҅p"zT*48rEr0qĦ $^ɢqꊬV)T.U1^M:~y(]/B9WKẎ:PSFxc7kR%{_9"[*{C+E [Nfe%Myq,Y&u5Ph -ֺ:4UOjdhFBzydap~SiIC:EK0^Mgm_^&Ss«(D7zƿlJJϜ)=_>Hɪ9wziB~dزdLGD1LwDMBP=tTSzASO)]"!㋦:Ҙ"f8'_!@MQGᐽ"3:SPUEсw[0CESxY]J }oI7&Lb;;}e]3Jr b,okd=#6=* Yu3d+ lU[)EAlu;nl`eʌBcyW›F =5 b,AtlKϙ;@e8t1C;}z>>9֕ !Pe A%*~_`TM"CTWqM;F;Cq}.YkqdLyaEYyJJT"[҈bSeph"M} gj6'* e5̓ * MɠF<XmY{YG}H"u91Stހ% Y,^(`5DD S!k`icz<  Aq_49I9{Oǧ+I>U:'0Z}(WQQrҙk]!ĩ/3IIPIV#= PKDPeK#<1 >0?88'8}l=AK K@n ϓUbOH9e296Y|߆d2,7:|TM.J86CSaU&eeJ8$lUM%eyJJ`WdU&,4TE=&%>F4ꕟkŠ{ɟ _R[;-yNQйگMtlL6~ZLgU/;$KmMS p!ώ6Y+E#YA5,E-ȍCgHRH,1mTUO؏p0ZYm2ͧruǘٛ?PP c`: *]}XuLp Pr 򐤂R9ѯ:Ә:~kb8k䁭OHĭ?cL}QlaL=6q*h ;.3i(c6Jl!k$l2aq[⣎;Ya< -lx9glb =3qᦖ17Y8Sפ ?_T?1~[I\"83~j(AG{\M-0TGN_7ki-MGu{˥/m.fwpIrQ *'TRvNG?#!Kx;broJ * uLd&}QMuMcRq[!V?vbՊ{;_0xu%: /dg槹9ZNFGTR>1EzN!c1~RYPVWE@MSCԉR>"%D͋,TOU_$YĕJ2uB i>(%((r &8a ȘJ)nXZy_ٯԾ[B),2KۍGƍn ʛe,8Tbwf ' s!7<bT  }Fp;CzКe0!(G?PteO; : $UzkH 7ݣ>عƚe:Tf3RI3r1'jZ7A)ulڂTk|j9qΌ05=2\qe25(+;:,5DMg}44UU* Eխmv;}5ȐqTȥ/&neJ 0tW#PYzˊ}.yi0iGnʷ2E:O̜uoE"bv"$ BHjuKV0Y&lpm[Pe[Ypx۰Jsú9K"A֯ߓY]ψrS7Ԕ#2ǣ'*(8xā'QOUWIV}ŜJW'K(TȥGq^ ᅥp铝K\$D?)B6GF-&UYeOfQqMՂOs7'*]q1Ɇ 9˸S*4CL|#%.EP'CSŘzq,`?]PQA&ANVp:G[^Ϊy8VT,M& NPTuQz>8y> M%E#ٸR&e&Nrm2>J>sȪH 3֬颦gː.ԃF'[UpXbh0!qUN&b=g.6uH4^Zh2 .PrAu˜ƛ_PSţ7Wzj:1RѥTZKFxS14c y1sHs0hˮ^Oowu@D +07m̎U XjďdD@;SQbVz X۳J>5㼘qVTRDX׈o~z+V>.(F r,'T01,k}!`4l̟G7@:}cHqR'gLݛ xb~eVCH֡ĥ*m}UB&7rN5~1kF{M~{8E%ǦQaWy3P*Q䯆aS=Bm9TXKPM6YDA &Yq 8kA˰:.Mpz*EDHSBB{wIL>Yql<9vnV@z'?c_bNLa{"*JKxv\BT}:Z@R#Eo(`NHn/ى؛]+Z,I- |pԥ>6Y. CǰLZa-B+tg{sp F?p$l"Ƞ)<.bD&} z(}6>!+{$,k9cE9][v^޼ PU,<+=UĴ"߅ mOooq<tm *x^=K?y>ρcy(:T%~`p*| L&JcG')1e!~([x.R-mqUÊFv ۀP,3nߤGt|c'XYпK,Ә@rli)W;'j*(c VC'OO-? Ī*_8o툩 cr 5toPKM`;|^>dw~5^ZbBj\ $ B 5E5p97|O{yIZ\p}led)qL<R% /_-r MQ2t6DYp"]@MoL7o2krNtS:])Lq*irh|ZsBHad&/jHw1dd\|A=`7ޛ8nfj! .m5-[njhRZׯ,&>o6TTVld{ym^_ [?MfH[*2]E/| :;r1c{.|/bTh}p2NP9T cߊ@40 an2u8Wn,U@:MLjxqC`Bs/@\ i.}U<0fh"RBU@u n N>S=}lX֜V#J&EI&` nWke-&g)ώjVh(O_x٠3W+I~P32S)e)2[\$dޔB՘ cckJA(Rf 9\LsS BIu\L,IA8I,e+({mŏBJ *`αN cv%qOcii v[TG.]`v~`f\9|0fm-~p&VN1xAXQpgkS75X}kÙ"z[B-}kwx7E8bndlF}QٸQw~t:%ҴS2 }oL5[<ӥ|iWI %AQYbeSX"8WE[CH[H JG'%|LiMJi \(NTlF~ob,>SSeֿt&{dF*6t'=e5b9=4NBaG,G,VT%0~@(bEP9g9+}qaTf vdIhjjf~R: T8m!d^?-VT6$ʄ|a\QP  `lR{D8FšN.ԡ>N[KqiK3$sKKҏMI/AJ7c*9Z8BH@9 \):Bq2`-:ruNg:lE[~suUq+*mQBPlI|[m=eGǰe2Q,>g㯌,G(f yZ&r_-Ks2ދZSBP֤?i.WB_%HQHUpe(<^bqUZEG&?muS4uWEZ5YV{9{ /9auK.h1atAOɵ~ 'o:c.Ux"Ler'(Ó+c8QIJw=XOIÕJxwe w=ܻLs Nc܃0h*dʃ^4$ccdD:[ȱoTWr.Cۣ6@"(|7u fI)*t>a@i3`[2H]9'&I-j|;?> /؍Wxɉ?twl Us3' N w5S١rc*( y+2F.,}/G)q쐧8d& Aћ.!N#UhoLH0*8E| YNLBp(pー߈U*ht,IuS#<3̨ex| C]!QDT;ۺp'!WzG:Ӊt`Ia`z$TM@+oHs+8Hw&bQp"+euZ>%Vz~f> ;,Vvd.AL9dL:PBSt g۪އ[R:=MZt(G ۫7@XA- wc>*QF;Maax~e.5Nݪ9⓮TgoY:<%<_Q9Y#VpVJ|!ƤRAZ"KM1_;-tB&1xb ,"ZhsHk%z,=|xk熘'’r@\NͿ+&3Vg󶶖%qѠ#ߦ*}]cUIx$;MA.wNWz_M#ԍ[[]șa? oͭm|輋g/>m/-aez?\o )6Ur/7>:o$jJ41~šĢ+hPbMSxhU^SiQ^%,|g_C6?v0Rp(=+c#ôcBl^VWBcG!^2V(þ?U? "kvͼ؍)V%Ael}fn)74tzڀ\. N>. >4YW Vt֌W]g3P/ðocaolFJrHfN&>M9z)Q%JIE}.vHw>{Ik(>6f˭7^~"*tXJ,Aԯml6. emD༌SEy){Ɩ9DДi*NH҃X-{O+KFKSjI)Lob؇]?xS[r5g!"ƛba8#h0UU"ը)<4tY,jn>FHxVT# J-bɮh5 cB=~pnjSzexؼD< h|ctܭ jC=_!tԕ럃ќOu JspGDxSGksudH`W {o<չF2C@w󕽕my82 *;Z7 H"HH77"7?VLj,*^"r:1ɲOΏ='#7pޖb5!T#ԥjJԿJ4$ +[U nUcC!%K qHc."3Fo*5E:7ul6-قŷăfQ~1:ZdĐnL+-raF^T"Iek}:vU ҙGeoU'CCgh$uL/ VBH8k)$7U)3u B}aə`5C|Ϳ2 M-ɨH0Y +'5]c8:k(,:ogstHI;}?k = ԯݧyOƻo>B<-*}R9{SIO Pi#N郒zM h 哔LYM<:K%笱| psx777]x+H:b"}m<g0>x \g$m5:ww+c?ӈLqOJ[tAwE"JRCAb'gxiy\ċ ̦qz 0uSV.Y9`QSF2lL(j&+xu~f*#?q;|ХtܪS`s.QVyɧ%G"/]V'O+LT`/=U"khCZQ4Q[TPu#87o=iEG e+xCu ON-xRAh\sZ, )P4ǥ9Mc>kG뤥>i4 g1BWگ JjXR.<[bnĹ&vw6Ran=*Z(56L)mQTY _kEPOSjoĖ9U[%1k\ *O\g#J|~ap.un:hr3sĕSMoJҊ|m<-#|IX(*UFGCzMꏱFke䉛jJ`׉f:LVOY|KwE!{1'!QG=JUk(&kQy塕1Kqv/ZkH̔,uE#2yCqS}'q-b z,k ʡSƴ7/J'XC+ vb1UzF|鋁 ~Iee ?.-jn7(>OT1<Ԭh6)c`ҁ',X&\8[*nXO h9<0G=9WpvJ=ߙ/d^+3bQVaʚ_%z?_.r\AtEAqao#(s2;pH1ػ'?iLs]3~H455,.x?#6Q+z;c%_{|&_+ w. N9KkX <5zLJTnDs#_@ ~|M7{&aȶyP e|~;"O 5FҗEfe&}7 oy89?ݼ_!3AwwnEI|$31Vs-}˨JOd>X: Ma,k[.>ʻ/_@An "УSW8|eX1='++"Ax7}J!< Gop",N+"|gA;n7i %zEӖdsB'CןW]5M\>òxߑ:>THW!` ~W "An|^Sn-282Ew'A|7dH996dYs`N E\w=6`) 'Mrk]us srVDi/t4 uf?X'8zAeAUl#* jM)H#M])Ĥ:akO9 B? *͢އRj!{?jZ@xzv,^CyYG9 as4Ɨæbli ~U]'! 7Dn[Q8wܮ )=nzpϜbrJ#|_//Tzj vu6*j!#{7$z.8]]UQ:Z&}OzSOU=h6iT<":T4qy)CN9RE$ 2a}|TL|uv-w܇U7HJY X Ì_͟iG b?Ҕ> (F|C44}tn~otzC[W^k ƠLNډS`I1d'Ս1 &FN)e<fȳsX |]dݣQ0 َ ۛm1})؆TCLNО>>j&P&xh&e|?7}X@ʘ/ JB:^6^~N+FIU0]@nWj.20 0){`Ib>/?'_^V٤ x5"n(Q12fx<ׇK.՛>WP>u=%4\9qCjN߃7x8X"YNÌ>_[SA,k7 =cf۾D{ڡHʡUBν[ {i@eC=뫇x=/bjք^oy^{_2 |D5\ ,վZdž. YOOtF #69/7swyݎW,_s`R5'$NAr@@Acܲ%,VsbWg:g8 MUGʡCa_k|Fs`0)fX7?Z3[犲/Ne- ,&E3A5!vz>0srDW/ P&x*HVON(䮒t h:Djf:snL!1DZ`po\t 8:hY›jFY;:;-JbGf&5mHL1p_RMZPm z4MF5uMva vX0;_(">Y;7hK<6TIyqhK3d5(`Oao&ХRljDT_{:9n絔z')|O{1n.(pXeV1ԾL"%<1wrM1Zձ(^|̪C?t '9ųX$D33--\5>ڽ, 60+XjC<TBw.&PmnuxSax4BˈJ xSOzSRMUIи8Gu<][Q䭣o*MRyLKG~?F' FBedb0Du?ͺ6ѫ^ЎM**&QT:.wFH(5yY8(X7omF~2S*K,WtƸxZX] P`ǭ=lpY^2Jb$(0/Ln0d~8L'k!ěVia°/s5u!#J*'(|ļ]j+x# Ax,/.HAůfAhW>{dLd'N*~IN@NZ:3q~*CwhBVOꊋ<<'O>J=>j m,S%ԓS3)p<BMATmo^YU oCHɥǥsA>nm h3T޽8\O49 ,D &"UoeŤ:9M^h,CbiޚEr znPO&}VIٳ{$9&.B'JbՐޏnA n-3ks`~mn .gg&$*'f +G>u Hq櫐1q[{\YO|+?USPc$l p7J2gXLyɫ̞C8`z:Tވh L^rS4M[r"Д8TQX 1YUY5W/ȜE6~vaEԫcfLj1/,Wc|~  `(FѬ߅XJYh*++?)YN/8wF ߬o uxJ<3fLE݌O%Mr4ڙ'c3NK%əg*7HG_=[UKo&4eY73T<_Rhozs0O Е:'`)?)tSIGvrHH(f+jtMusS w J`lTPЅ )uZ& cϛ2_"=mgɃ{8ؕYIՂe Й8rX%c FNb1\e6XɈXM<:=OyA;Z`L"1@A5a|| \SF9Gme҇M]H&g3 \VEoi,)֞5ML(w dz 1Ny-|(v O+6*LP}Ŝ595 ${cxw c qߋ1E,e&*p3mϸft`R/^T .`3~kV^)149 >37iz j-]^;Хؑ{y051$*`ǥ˼+t;K, (U ?c`* UIW::+$J͡2>Lt$UcDg!@Za\NI!8)L֦tV/eX=\DԘ;q } I[h̞z\\*f\Gou~]H|`+ bZR0xAr2̩Y1 :"&etU\RނW+oDqXFyigLȟ풠IF}|%cUe%~wwvêAj>pԮ[r%6CLyg϶ɖībN 'NQtfV,"P6Ʈq8-"Idl 0~2{H|ntexZ|;pPYXL SabB%{wIo |I72c{o~L^Q`@osj(HA7P{J?>O Z p:U+T,vY|<[[`OSz(U꜉ |oW,5Cd?$xSh=0/&vћܔѧNTJiK2ԨS% g24UMl~]t{b6)Eܾ gEћw\&ڸuӛZz]Pl1ms tnȸ~SʵXo4; 7pH/t٩e1R!f%y$M{/6^Z7Nt~$[rn6#4GM-c5^5+<zOai;4yX=ZsI\b7]H] tURLϙ˨O'Ouko:mk< =A] il R 40ݭyi;X1OltNjROQ >6MʹaPA\4HmWTW ,-(=D&J`av eeq8`Jܖ _nE h gKͲ77kybaбa;wsʸ}xη eGf}:S:,մ{S"A\&zƥعH=J?jh00+DvMURlQJgwҽUOǦ}yhC X:f|M9Z|| b IᐱiY9NX0gdaO;\CyۗYy:K9|6ꑳ7 ^iIy*5梾eݤ߃nv,WITMML#W!qV|&,y,Fz93M#g<[`ϓbN%Ț_ҨZUp Se%v]?oM|R#s&JJ]̭B|Cmb'P=}iTvS+{SJf@آo%q'$(Ewwm)v߮t%b a7,n)(wf|2u$0Ĕ(ӴIySO妰ӧh`US0H}ˏsSLvЕʟ_[iEM_5_dY!> 5#" ^qm WNh"4) 65k%S_LSyC1 AG-,ȏ4tfms_5^ۤKW">mY֞a>~\2]â qw ke{Y;Y! |FqsޚtGYFj/r. ,Qy24[#3`>FtLGˁ"d)rnHA&uU,S#x]Wp=vU'rRa=stRˀ|yh:d zl&%¥;<{i`>O.i15w.}1]3.)fBLȐ5,g{ӂ޹͂ GjPR@-mEΒYA3R7>}7৯SG%k׹+Uq3"^8ꓢOE0g gH[>pñ ˊUE*,AS1C<eO $؇[4iӖ˙yCK`)8NN)n1tR#Ji#Ye^R3J+BD^pAD1.L' bs Rm:?6hSϨnTY`Fj ;}9U&-GSDNBy*1g*B bWι b*&Y$FsY9Zsl<bR[;;e\pg|€/Kl];9K1,ugpd{>>(}/EX;t҄tfL= ƛ$N Zk*0UL?Lp \U vʤC^?G@-wZ1c3[ 䜅2=9H1!ō{/-^JnPPtokĥAD=e;th]oNqF</6a0Ef!mcDؔs/A5EWAAw_}w yR8 GNr\aB4p.SAMi(=W-G½j . KJoݶ_0ȜgA##. gHmc78$Ӳr Ş2C*zwfmYk8ܻ~@n`?E?*ϫZ`'zOQ,-#;/ 1.rvYc;]16+|qqw"s:RuN(gTPx==c垯fJb$~/\wZˠ1kh*~Bʛ z_9r*ţLD/tW1rOUK])2axSQ?/Ȫt&/aRiaMe3DmcH!81[6mxHt)((xL>L)Y&2+e$ _ӁęN<!Nj4;te7ЭE28fbhSRwJ\)NV Miq!Wª*+E%PSYo a*(H)W^4(E3Q||TY2`£كbRY僿8d Y \kcD,ȡaNHR*iג xnOe6>O"u ˠW:n6Q 2DJqnS2쑹'gyO1CtYt ɳWNTM IKZ+fjIM 1T2N*ɪέ1e+||/#3)LZU&*]d]V%ts,O$=N8;Pd$[e喔c{hJSjRqN㸼EdVABX ;-8ktYeg*Zu;(zF?_~ ޓp*_;SB-%zҲ'z3wb -Xa| x e/ ּy.cp}veBWwơYBæƒ=zyRMXKy/Sʇ1_LFA/ơ HW gcN:+&8T*tΨ & =PD $qb/,MOa-&J?M:aC҉}Й, }hlFUwFPcs=o0<.q{KM=V] nAGTWyvƮ?K{ %%EnqNpxvwB_星i-N<RoJڈd#:2))0+wR0HD}eU1  M=M][Cg4ub4TIص$wv… *$naTp-p(*h-Xd&؊͂[Q#6U`ej-Qx /[d*)2`#oP'}t 2SpGAŇX"i o\RS[]w^J<|99|O$#I4@!~Che|~z,(vmE-,JR-%>^MM isTxF %`* 6\s_|A`hLf̵\GC<ɞ/%yOQp ^&}Dİ7U4x1Sjс]3[h(d\$,)VN6pThIh6`󵭘K 3e:S,ctP[ƴցuw8U^L+ );J[VB%}U,D8MCyqoxXFEL2Ə%ĬFsL|*X_]\Fv {=q;K+&|T+g^3m+C_ó=}O ה5)5Քѩ:ycSE*02 U3 &}$|K8HE 9d, ,U:Ne} HU?0߀HJcUJM4I pe5N-{ЧRӕ^!ljPUVybh7BTm;כCsdæ+ ڥ'Ӂ.ҋ'}r'0葮s ճ ʢndzXLۋbPXG΃b1Q!v UK 7Nƫy-jr;V('َb6U~de̳sO9}O^;ߤJI^b>|ҷbc`O))<0c^E{,Z\Qu_b<ͮ;ҋ)j2^HnGƇ{ՎnX1QBcʅS1^ $!.Լe.UJ<ެ~VݠzKt||&VX'e ?/֤} (~͕={EY??Ԣܤ:lAtǴUDQT;:lC)9MV%koIʾam}vRԯol7gᅍ#GofT̡*j*}S债Gb\2I}>ECDKi@M)I4UsSq"/~*O?TwD)2`_r g@Nj#^BᵍD79* uڸ6=[դtjw!iy_:NԌB]N6iVS߶EMASM|=QT N'$`4J@Chӳ/pSiҁ̀]Ȏ|- A0;4M*?IL:ɘMy I 5NZ'ME?2KUm)^#"F#ES荪Q…㓺X>UA03AEEDoJA X@%39ngz.`c>9Pe%vP06ĘTv 0:"  yH^ܹv`2E`o.j-OI_%KtWM8/DvCd2Nm;2mėHta՞^Sy:Gl`0Ko볛:xV SmhI@H7 +.nG=}(!>5;}7Tec*rֺh V!_$͘fm@ |R{:Z{:sCԤ/St¯ |f7BPeAʅa8ewn.-pod95Oe'85s+ 4ZJ {dY/nYt׍J]HQh:ASwcNPўy**X[I[b x"dzXuWT1C*y>7~fqYɐU'봂r*,EErmCqX5ǵ9ڒ0/МQ@rj&-<ECMYo ?wT&AUwASPA摯vDAJYbtrؑ((0SRyb fhl6b>>-%*%xٶ1MH*V=%l$+ ~I+ j3k-(kBg`n.geĽ*B\I`gڨԘQo(£kIyuKGt\,vNu~ݗmhb۱*dgu*WNEXYqo?{Y_; ^f*IkG:"$TUDQ9D s R ~TncWP &1T:33l)+il=Q[U7N2c~9AR0vO~kqY/˞*TQPL_q/Krfވ,[~͍UP\6La-P޼5<^mSsw +T?nQ+fAA8Vsƿڝy_V97Ύe:}˕nݗԾ6@E{ -~y sj*F.;`RJ58a,x3NCBe] Gͅ޺>8q&L\U"CWPѥ)(CJQFd򍏿kp)A*߾FMJ_aN z *`tRbLWety7N4t*4/T'|zvlYXB$&I&z;Q柯v#ֿM4ի~TTlvoT#ZLk+ }T쭿A z1~VvSXe UK=#)$kYF}9Trua<;6LJU>Vir_WѲO;uVJRtH4RNAu0>PqOG<BU+(X*T3+ qvr[3*o=,`I 3ˇ{4y җX$ŧ~%U9f dW@&tY/J STHXB( 1(qYOPޛne߇9~䪗.Ez\S\NQ\Äs)gA{ST{Aek?nʙkpTfy{j >aIB&m G^f0>L׃U$>J|kh: gAn } L}t,I3yY(˹ʲGo 'eHSNL_zXǰ\nXRh#E;u죤fJVZM0"0cx"JVhEZ "^.CA~ V}bjе0Nx2\X[q[NUW6^iEy߆7n㽄D(v ;=ޯxu,q^o僾4B]e}:E %r϶wqkvӽDKH?MqƔ:T`1u*zk*(Y~hnx/H M>SYeHRR ^uH"7e }Uҧ=Tqv7/wӭ-a*`ftcyWr 1`3bB;Y%cdʸX-Q i(PSBGXE/)@y4|J,t>X(Ӯ s•*aj(1RgOd(*D: `3Q`H>r) UˏU~se߈;ԛ@gyO{:;*{J)V腩—l!SR&蔗`6W6oc2^ؗ8Ys"8,dP&*Qw (fpbcmn穧PwE ~ϑ"ln[|3\gW=mF}bɸWrIk~ Yq֖vA!:s-)݊(fq ?T;}OMweM?{\P)7?S8UJZ0GE'@o@lɋ3|$HHIcr~2K[.,v44ЦK^̱&OҎ/R=X³-sFx2 FiXiJdІ5,zqYU&Dg@J%jXT/U*GcTZ'M f"sOF.25F?S $ ŴfW+UyLhaj).^F"Ӄ=SyTNy\Q`TU(RlM*ߨ{|LbW^ュ&}qoU\~\p(ן@zV-8w;-Z8r=T3٪6IV*vNG-WtD: (;tT iER])iӛޠG#O Q쐇BN_1+}d1M6`}Ve?8ȔHOt4:{S;f+( lϳUC^;PbNWVR NXbs-BVDM]GN}DMĀPyO?s׺s1XZU+AR$TiD{32MbUtT.ѮaWez ܌, 1rmU5Hs*6۱P(5ʂNQTҞD/՛Rzty[5MeYtr[K T;s2b+VD&8G=5.]~c)X{"S$x<\hV(dX̣?Q|PCIpRY$Ey:]cdc ==!9D4NК.IJ)lMuǒ Jj6 pyiK-conksa& Rr%u*> @h,KNi vd*> Ur]ڑ9Q-k$D"%[̅sFut|:оRvl(EEï4Av[{gVg_Į%U~Ê^賌=!n8S/ĭpL7F}μwkO8f_}?MĈ*Qegq0ɂ^̥HޫܽQS~,n%+X00@Lߞ$Ѡ茐PyeM=RNىRo &'1.|Z].N`PS3Wm/!)UztAr4"INAzaF/ ok2HICM& 41NtмQ&YE$~T,rtj{ ?uTFn2W4AyW|I*hFɩiMn%u|·WW<+A@ &Ҕ|>:?ȟBKC#`N(YYZ˥RIa*|1WZJE'f5D@6Ї'tC?*A67,7E=EYZ2ӨRm8S"'Af|#j R Je?Nܖ~3dHȒhn_ZgÒJ̀. DO,ݻnk2Q$v2f'rmdMiA5u*$nZ܀ԛP ;wGmz%BB۝1e6J#JEas4Co_j`s}": D 5 [UsFT8Q)![í꣝٫mgps7:\P7 Vu|5aziuCzg?dNܟ+X,S;T˧EV=}6_禞zl RQemD辰@,W~T^*)^m?wyGe, Bg-W54ܘ7u-@3WjG!,,р_xE{*`٪ V7US@oh|&+ҭlkWV9)S7HLЙh̍ .lQnU*Bd2E,IS:   P1 P+~Wol?BoI˜/C ŵq.=M .)ӢSA 9UOߛ +{<,"w׶T1ye!j4q2Scu Z3sV֧?i/({l2VYIcqDsĨ):VĕR}xJc] qe5Kj _]TOWk`e)7|ewLxN{ws bi#ʇp_]IA̒1CSvlם؏l -4`I-,߉6ۆHE^SRay?rOύ.cۊw޵tm}.6'Geʖ:+;\٘o_u. 00]G,H5]sJ&g6׻̭)hbzrSBS<{ ':Nֻ`"E3"&ë3 aR> Ġum!̯f|K3sSab+ մe욁[ >1H B,p@n*w EY rGoJ5=*n̡R2˹tӛ0ՙKOaCPH#n2 'y*pS$N*b}^ *1{͚j|,E_H'nܒUmYژzj꽍ꊈ~m5E7{y0ZO[0K9S^kl,W 7w<kP zp/csBIP&`(A ]8cov2^8.nO ~ƀ_j0Ѳ]rA%tj0Fụ}WRASa9D9 X~;wz14=fx{("*ff:Z"Ʋe IWīBُakԜ{i(N^) c -bR*=Tˬ0_鐥A `)ed-hZ΄r}+e+g<\LwΊ7EC+nT OSJj(wZ4+7.`(/lGcӨ˖ީ%unKO>c%6i^&"1*FŨ$+#f&}gMD޲Ggy?P:8TU̞z[*c/{X+sgz Wc o,u-BK`MPrފ|k¹ZRp“91:-'-ԧҖQ9i??}'gFvAte{Ps]:11fpC}d+Ɋ^j:~ %eٍsFf5 m8zaٲ9FYvB_`IPږV/J3n$d9(l1 S*QY\Cs_d%OIQKz,A>CYFݙTl~N@GwND&J2Zļt\C.Wd6;ZC _y*ܯ(bO"e|>àbnۨ!P)GRBE+q:i1 ׿wg_eq 4[yMO޳@#FUFmU~( J)U}#VW*S&$VF*$ ңZ0c,1EiI{M +>C,׏ >Y[.;::T±`y5{sԦ@Ɣ$̵plO->|"5L}LEezWzk14UK&.=+F~laoVf GO&ѺOD- Z2KigB$xD^WL)rf}~_'8&}zEki1 [okLݪt'lr~Yx`"0DPy&A^iWY%zTL}QSL@QG !*M#t:̭ú"2 Vi[ƽ.?yoxJsZ:^ff<:>lړ eeuM ˰^Bԣ ɴ5u&v8?:KG5)$7 1#sT=q /R ъ<"C&YLz~[><'/`Sټg-TS: W*=@Kg ϢJ'cg] uUK"'Ws]tf5SӴ1Y}T |<9>FQ܋c-?r/"*"xA%E+jQ~_2̿*YfM=@ԕ1a= ~hϸo@ *d3 HCy<4Y`I}OV\Qiz چN: $ڼ{|pڐ~qCbQnL53/'бe8^ 5eh*besKsQQ`yؔ-#OwXnI-ꍲB ɝCNd> (c*ɻY≦ lkۅe <s7^j; JCI-art|7PL{yM=j9)Ԃg1[X62RU&ΡO!SB2{Rҝ;79 tro9~o@U!lHTk e-e3<Տj6-U/2M[eMu~qQ*` (vY[z^Ywپy- NWHXNJUFq`gW*xUnmP\haVTqHȧb'ݤvqi6,`$g"!R}UQ~D~ UR)I4nGl<q:fpNbB;gHMaprϨ ~3;/TEMV>6!V+`r, /\>8Fp %fEg:kc߾ofyjX[xJwY.Pf 9nr_[E$\^ܰeYNArp&ʸv` r^}HNOr*7Extіbah#?P&2$Wps] GQ D1Tz-?{U5Vi]ujpW(oXTVqL7r##[J瀧6€LP}AccTjUU?wN% FuC1$gp z"Q"{.8<_PɪF zSohssa/(Dtc-9s\HORhf6&mzVۇ\rS V(/HZJvLgQA 9 ./y0n8HTXRdNLO'FGQ3H\`dN wWÛ1urM:J_B -,|,:AM*>iɇ5uIKJ7\y~Jt@\JKpiy[$X q:+>ҹ J WG9Pw*`'Ie4KI>.X\Uh-3h6^1BYWNsZZ`#af68K|d6TGK tQ㰣Q6s)"ҫmҧOeW'G_dMMMPd`( ODAMaU-'/+eCʗ9zgfȏ?W\2ZKg.%}fsSWd,`ʽ))߱/E#5n?(lt; :j7gA_/OL_2Mפ" H.5 􍦻3iI"42PGʣj.:RC@̅_R肄+*aޗD2*99Bk_od|Vq5.@<eeLu.M"" y w+xQz 5|0?mm^mhq}r!ٷF7ɑN=w"괲Ss&'tosb Р|>8ݽQRU`de%:НwJ7_B V##;$nܶAZ3VݹHf0UCݬw=e4o jXʓ=,7Q*RG~`kᇟ͛qY/ʹ q]98J eR~BeYAhq2I񛪲ڛʶRӚBWES,x7/4jcGQ-^VRŒB6/N}Y? MxSFzwaT,IaQe* b[Fb\E]^US;Ł xL'yѢq7:E;=z bM:3OvhL^" TO{gW0e):_ZqŘhUL{IaQd{<=I2/z C|i<,h (˕H9HFve o Fm,Incx_+݇ V&<.E4}#lS.̎~W;O=7~zq8V`H-'ˁ{eV.OJܰ )UD_ cEL³x,tu%w{u&ccIQ b P@A3U$y(%9*^%o/ :UR M<^2A_v` JmI&oñ=^g$Sa̫8:nLB$T 8Bo?+⯆}Xm#<\{Ԡ3>Jfސa ʖtq++{uҤHwUSzͷKE9Qƹdg/=aQddKp^6e\9M֊4p)dO5(WVek)cAHr%ly啇͈|Κ53lVi"ZVM֜)tt}(mu;):zMt-&>@_ҹ!a&?WRSWz+z \Drqi=#sT&`g?aڼ~j{T|MWQTMT26QGi\-LG!VrAz`Ct)WAiRb *ŸRNJJt]HAO"}1T!Sigj(ڏ؃Q^ -ޯtsͽ?bΡB<+ K#\)lQ%Gւ7&`xL^wc=8T֛ЀFU7Pr@`Č:Ma/} f3Jf.3t RRȪSAk.` H#us[Hej+%}kS5b+MaRهOEcTysy'keIm3;!mf߶ {d0#;oC[o·z .fɸb9c6'#dL':LrLӬx8AuHO%^jWEGވ71|ƙT:xfèwMwF!1*hqtRa<{˔Yh e P3=((_dʝkg(Y5N:;SYun}?2Ɯn+ڍC !qw/]6&GÞ:Cd'aB6 f@ 1_|go5PbR_ГRJw(KَtHzedGm.cJB^[T\NdZuq4=񤦔j4ADwUFJta3G~ `!W2p<@S^9NwN}d/vΚ)L lvoƲj瑛s†^hJJIR.޿㼏.*jy{sM TYk 0t^O>R—uLM;.fz (yj[ǩbOm(62UFfWj|4\gʳz`V0:R2C&sUeH79岒UGnyd/M4A$ݏC.8QPγt)p\K 9J#dPrkA-9~×!x6{ITޔ*]\+NlYg:'V gh׼G=y2&'uG+1=Aďńժ8/zbxVL|+\\7A+|cmA,SJECHP^ ꉓ0qDwRDD ~U) iX链M->f9lۙz\%a[B#jgL- /oZr)gHu{/}VYpyg&q h^\}jⰏ zÑ R*=p?yephAhQhLS Єś EK21fOσf3=KaCA*r7V?gfѝ#H)Sg0Vrޚg"oz+y֓MFgYNWAOsMv+X@sߢڕ\CLt.exK]s*e:rI2V(4.%t7^$9H\8[h7 !JE0pAtٿJ TWYGe.3xB:aolqާx4D9PAOA;i:]!arš@L H\TF>T BPO EjM 8>툑d|{WܓnaR-Ⱟ<:jOP{fSo>=4`1‰V+86cU!f_}$%ӌ?E=%F*5G)>:Ih]Ѹzp:oq>_%QڴAE)qZ6:LJA?(ڭ֡Lԃ;Ma3 HL+d?ԛz:-چZH̪g *3U|A._-߾e 6!NEJQ:ڈq ǂ] 8'jSf6 Jv*7;!jey_x:~pze".eUnUN%G_+!TBӽtd@*׈|c:3r_K|fcYOˑ&!}O{"7˨2lpB2c6 Chf&STP Az0pd6_N_ T/ +tǀ:TAttTee_gX jR ދmeC_E=JfD%x<D X̉&"m~fl}'}cU=S쯆?[ӽKI!KA5>0M%2 tJWvgE a-+-E$/ThViT\Ż*3!󭵼eTB;6-d˥wމUzDgTpDcŠ 4ռ,@P8<ݢ:cTmX=ll>&>)j8,/,ZbuӴߴD5yܾ=7k-LGc@Ͳپ # ůK0.BTMS)I`#6K:!T A}!1"QBlAُN̥GM^qY2Mag"|!C`t'D*R*=, HDB l r_PS\3s L'aX,VFE ۥ 1VaX\ 2GlW?yz7c$P*9CM"F V¥0CJTId2't+fl2=7a\/K0޲Atk_3|>L,ܼN'[%E0p!z_$W 'ZOlːX:jX9/äJ`UV/^'_R3F қkJ)%:tџPU5 8独UG5Mj3x6N Ы;]l}gߢAB`:37cPK4uMU/~|̱]M'pMk7W{E B;fft/ǂSڊjO!xS@kBPP;4%w/8F!d`9((WQ:sͫ7xgT%yS]gهY&6pPaC:Po}۸R4]M1gڔ}@\_Nj¦~xhRIWxRLWJ 廗ra+GG^ZP2Ej'9adIM1((va+qG)ޔ.B_7`gR7N{{J&{xd?Q2/{"N^1{d(bgI*^wAE%&"TlXOcL`f>8?&(c'{8SCA'F@c"N7>isfSlF[@tf>8RW?~hU(R@q`A3STx<5O8.qMfjBg+wovF- {jl)V&[Z\_y@6%Z]7u^ u{Nz>.\pXʤ2r|qd! %;l+g2igm56m9P,mI]sSܷ ԣj{S嘡)((?t=#?*rVl֓漤M)#K v)7Sa _<)bn*66CDqpYuH*~.L'wDwZJؒ>A.:|QvX%>|.%Mi QPVpqSţVYۋ({&xU U_ q/}0`:a`X7fð+~_&̨HE@%aIq~)THi2"45VT{ _utL0`q4[4Fg͡\jkT2#!6N*U$NTzjG3o5پ>yOsh;tN-}^{ka{+xg 'bNR 05=Q>7^jlszP:za !)f -jzg#nqRV=ǙDVF.u6f#nA}<: Ը I${#HvQBe9"nK,u'FYz`XeziAXo/yeDq*2ZdϹ=M`~2@ p<̕t62{]"Mp+ZHl2J38wL/@5xDl(Tʚja8LqGuCPc:HA&z81C5UYQZj$V5vSd8=X0mo].61_k7}&ՕH3TnN_Uj8Th*m&JA*6#VR43 '-`oV]P 722Ŏ7s`kT'J?>}DR#O6:f7SO>1?gXUSJw|_b&V詑g!v>MaZQSeM XQ]x2zeotom>ДGw.I?uW3&{D5m&ax'+ <@V$e@FgsmMz:讵iB<`Ni8C[^/<؛±(*F38>L3Л2[ܦbRNQ~f"U)eH˜z{h+$ʎpH6^̬# oh)'h)U(nE(~G:[-? JafŽt+w*eL AtT9RUq0`Y@uC+Z0'Β6;) {&4'S:g(}#*US5« CS<%uLd'Os(ɿˆL—(e&N ʞtQ9|S y_ZDJfSe1 M1@mzSTYlr']fAu}i󜪺6])tk ؔO]-{G+lA^Z` h+o[uuٴfs5Z7ZJHry;|̨ͪ9aI§%9Ge]IpPDh9dV(~meC]YX,gwp%3βEڗ<&ѩ~<ߖ•7))?zS> t-y;dՄ֨'s0r2rvXRsf7DkśbDJ|'Ckֲc>cJ+{5gN&GYaBI9:h\)4Ew+ S5buIJn zP}*fBDA+sVyb Nvfwy5T;FBudlJ'0Pj/c?R!7udF$s3JFGyb$2p5?y2!,X`&^<!Q|xI!ẃ"}o: Jx`ݕpzuqaS 1!sа+~֞*tQL}(KٱRT锗.Ѱx@.H8TTV49rS P3 :Ēѳ˱ DEEV&+1i$TT c*ݢW'p]@^eAH 1W;2"Z> -w+%gww-a Pm&O!emAv7wŎy%¶U}LULJXUԼP\YJ-"4htztW񦊱@df,4Og?eM'\ 9XLrFKk4.wJgm xQž=1Do}`ϰ(Bܑ)ě^bP1ңWze6aJ!l˙˚dUoP4UըlOD!k.u]·k1Ĭ'|>6þYk*76AuY:'oHMfNxSZ^ܤD J)0!Gt!sf.|JI_g}"0;ygx}wb/5bha2VZѶٜ3=lZꌏvO.,NKD"KۥĵǵBg_ro]MskQ3:(^ -k7Cug›:6u3,%D ϳ@zTMzSUPTCZ 36DE\_;d/U2\KK- ݼ=k $OOI`˳"uZUujNְLT3B\kaE!$j߇Ý!l *  =V*@'AplʃQy? DY%~.>0+Smz>+#veLrث%aC]Ar[]l%rS7uB@d#JAep%,8FV%Ւ eě6 ąx82O4! ʑ~} Q0xo<&%aVS)#]O#C:CYyBr%uޔ'ܒ*-?Ga \_J2͜7zwCV,#1 : s=Ld%l&}%Do*ժtݯbbˏnU9~&SuT9Z4/4^L8OUAt*t=} ;B~^[6f_c08LMA4`бHd lVy124+~=piCK8y ʆMOX[RYHtWI)ycS1wjΠ!dߗE0\C.H ]`S:Ü} =}BzQH 7 6Vmaev(|wWR=h6|#>tkl#)ExI(!Ίve{;WY;߹Ȓ*~l\E]NG1v*iv,p̄<nEFz_a<%a(GOAU&ҼxþoMj xDN(,λ?S3=\5+ӡ*[}pudr+boҭ);|Rͻ6n9FTO']uPvm>w7}N_Jo<4A}f~qDNc5! ?3l.5h.O<B;9ca/f+ ;Tw¬=ǯQIM TZIk[3:|и*`s@՗W%^fAkq RSD걉mPTL%56hFE~̢@ [kC+iG9p(nܔ@KU+5Ū(ë35cʏ'L^yݬ*q:Thqn]T3" d8(ymҕ;k)9*ܭ:LDm9 LUjʹ}GENx#߃%C@ۄh>+bRyg4 6t2`ˉnm~evL1zrNh]2g (ƥBJ(|E U}K)$h}p`Iy1JmUe``5g₶Zr1~i*QT75l0)GZPò+5ir`\rϰ4F?3tsYu.z":o`jL9a=1#*IuG0C<8,S>geUyul.Tyu$IiyDx!=|:!OOIr=.IQ=Swf*d)|_C `nÄ$ uU2PE :{6zL.z?7=j=lG\w #4[C 'M~ʮ79\US)a)KL}Jne$Pܬխ,P^m(0\[X.Lv8Sq^+oܤZ6Cn qql/±fȳDn#JVYWhߔi&|ͤQ@A{8X2α}ऊY/`[L*0lc!֞I<= ;&ĸhyꯚ6Vɥ. :i&˶ynxS)o~t 'ϲF|k%zy$CĉL|WET8 eTەUPYP}$xѧQfퟫOD@tR!h*,vU4ꀮ:pgΜpfR^Jdu1Rdy(<顏o]Ẃ f z>=L_eQ5ϟTFQ׶%_1;Yz!mhrO%7IYZx/DAJAh!X7 Ҩ!$0=5-iQ V * 4 ~|@_^/KUYOexWM/ޙv_vKK ]]>)\ꔩ"u Q@ĄzS:;fU}qg:4ՍI5'qGWP|Ϋ@E\-9'pցϡن+VDKT+!:P%UbxjIV"b ?(]LY_ ~H$9SAH`^qqj?w OF!6̷a%iv´wEBV $Oxal| Ӱ>2~cE p̴YקQՆcУoUE+|%)fu̾gyeoNPOUVV" _*<8u|'KA&"l],h @%]&=REȬ奝CPv]络6wP;~ܙ15=(j SkBb O:>A+|wˮ;1.(8!wDl@2/`P>TQf5G?BF" D=pU2Zh`b=,}c͕i'oͮ˅73R(ͥ:teUm46vjpv^We'G`w)WڼaR[ɷ8l$P6~ '%Yޠlyyu9{S7bI]B\pb ǕW޻5wL訵:y*:jiG1]܂ b762\!d?r`~׮#n n^ >hcD{*CgOV9jzXa}!`߭ ¿z!氩zv|6Kg =;*}nAC/;}:+[RZEH2@Lh&P|0K>=db\9.^yŜ],OOʛ•›r(>3l+}*qƛ__J)1CP,Atˀ91A_)tgp7|<+˓6lIi,[հjѬaGtJFr݃=u?߸OjC뀦E)噢Poi^獳K|Nֻ='՜0R tJZh`m%'R*"ƶvH*fhqR ډ?pMoʆyn?{4}T-`?n\`n`1P'|fkƎTK`ZjeKCН#9GPfalE>/Y8g|@,op@?wFq!3wR/1IS5#bW Fl?an5lijecJ+TToj}%A F{ڄ o) ԅ]֘4ӾrD r7[F+E怎I+b˲J"Mm9a!`3 zv0xV&J: o4/w~Mf )5vZz>D(҆_<_~iF,'X˞A0:ʎ. M޽@*cm} NNTs = WQ>>.wqk*Bawg+B'1XV*F驑Y/]G)iꢊQ[]V(&}NQ[65œj[QVUcW˓״o6HBgw6[\Sϳn#7e;-YΒ %Oi9+yQ!Dfna6SBzf,S3whXЃy~}>"%[vf[C+NЬOj[>:+n\SJ<fv^m;J# YOfvo}r}3ڛz FIB^J lDȜSy 99 ^N.+V=O ͅ"^.s8WB,>A!HƖh1 2l(Ĵ'q}+~!HPTre46qSd ESԃJ臼')P: CX3.&"xjL*΃nu>nLJe+{:1؛>$i.H<".-)em%ftcU'nGjspvOh8SR:S\znAjvYIR=f>8 Np>UKz{:#{;J8lWK@6Px/ 0934IEZT3zSXMIto |9:En`Xzً$σ%n6^wWfx5|;; Kcn和U˨\՝l% YʚMʌj3AsVQcBqnn)tT~~M,1W~{& \cA '˾PMҸWPsfPoy9iFZW=*yĮVJgDQaƖˠ-hHGQ粰eI3fuN+U3բY- }|'G' 8, A&դ V2.@zbNJ,WE2nUY]I\v;L\Ǣ^J/K#U6 :,8kfA&7f ϲ1۪Whe]l-lVYFP8V_coQ! ZFM'=M ŵzg}Ra쫝\`V1? 4i{aTWU!`kJ2)[󪗞7ȧb;Л9eP՝|;9O镥&|&bZff7 Xdy Jk n2!fS*^9+;em=˴´!J!jaJCs`9(/ **:DJN{4Q%MmBpm(,ԯQ1o*[:vVIGaZuz6_vnDS4D3^O0mjRT#2a@j^2O4_}*+~r;pRw|mEV&|,+ÃKPr> `8Әs8hUQ\)nڹ@AzS'/@EGL}Ib㇣,}&B >C\-xN`P܇nkYcYϷ=E.˴h[{AAwѲ^XnǠA^ޖV;s~Ἇ1aQԭotgu:wʜnHt*Snk-?.3͕̾'po%avW袡yuqi{7_Pܞ"3$2%75{T&ovpMYKJŁ==<}DoJ1<36/XK/L"M'a;≃B&Qַ9s4TK,#Ӱ D T>!L!Bya-\ְ(M'L~zCZ$c0<|b[I_5κ`ظd8>s]VTCڵaQ@"=+{(N4^z}C+~2:0̔>+~CC⠰rEZ( j yZg6.<аV\5 jz6s>y3SNhC0!01҇q&QQ#9|@*tH,LU6*}C-'z:VR@Q#>:/cntsr~pr7PqIoK~*IՄҧS?gH@ȺD:ަ驉8LG~eXf# \݇$Yy<?ΒP&K0p_@X~~mϪzcrV8Ǹ:e>{F߱a^ C5\}x{L5of5"m omMoNHަg;t#c`nr8Imʶ߷dLe:f] umؒ -<+[{N#'gs#yV.PU gsp z7Nl)׍$ƙG,ZhAeU\YY7R&IyƋuVgQo!FBSMqA{JU$ȉʛJxɛE4?Ȟek5糺?^޹`#X Cǘ,h#;w#y T9r=s5/S'*:$ޱoQ:w >~ f \< ɁLJ,j8>42SYtBد|5q4H+Ҕ;c(*ݼ dkiW;pd0Jr]]2VzE٤z ^"m>KQP<6RR+^馮mRw(0{wF$ֻ+>a }G1oT/UAlFՔxU0iS-sߠQXƌ>ug[1zoV[@tΔTzb*VYݞvfti.+VĦnAw W窩Ezdhd83l?5)̹姠j7k27}VJaX!sh*q(%k~yZB:ՁKH{,^ئdb GE8`/ІbF<DfKƹaҍ7_XY8GT*=}`>lO C7$XVCȧt;sCl=lqLI|ݿzJmUyij (9S1s[e:>բodB\z03!a.UYZ*-.*m@Vjx!-xbYWM9Zџc .ؤo[C_vAZT>ډ:B~i0`vkOUW8 |O?[ZḘ sT|7{Nˁl͙.͝87sx$0tu1AMIT׭6@º=SQG1h+|݄7Ef걋 >H 8 .瘛z7U7l(>;ҳ:*U)^= >l“VT͵ib ҩKA돛>7R3kʎIRiqe^GQk<⾥sVkћ/-}geuՁ ꃳdW tB_Bm8`fk^7eEӤbb)؋6d͚ZEh ,$p}Ӎ󉂿*nTڭͲctJObC_'lp>k7M''ea<4/nTh ֠m8Ӣ>uSMڼ!(!OUoW-vayҞqt(GFX0=7SϮ(Ki'㒼!p)!O}*S?͍[Hz$jCQSX|C 3Pz?.5g|XRxi*brؗy﬐õ;¦U\ U{qT'%1N]6HWzԤ*|=訟Atae >|u'aJW[i 䓥z!`nt)Mba~):uou6TҢ,j>pGhg` nȳ&/ًf*Vpo"TSR<Ŵ]R~S M>q)i2PS#ԗþdHӤ⍫2L΂i>g4+dI $:(mT#%A3+EDubډk8,yusrNWo*AGE3˳n-y^d.PSgK:Z@%A*<4KM9ÂY(' *V5B\n@x|r[: '2ꢣ8dqvr$,9ml9WTcx)l4j|:yLG5j{HH"nY"j &Z/>"s~χxLy>>5o'YCl")2|!om7HƤ/|7mjOn|W>,QX{QyYvJR nwb%g.M4& QQ qbABFVcwk*E`FxE IXR͵muVϹJ(%-j(ќa]oVՑm[} TSy^G.y6/o6݌BR6>,"87k;@f;]R_M+wN- }'ɚjV t9"ĞFU pbheL/D 4m7kuqYդtO@>?R4hjwAGqTQRq/=_*~9B8fg@NyxWR\Û3XR%@ Gnj *ٴcf!7egC?skrP6khўIE^=aObg: ,xo$"LGݏ|{o[9pʧbdg}Dn5@oF,x_ )˝L¨RDȼ"GNo-vF<8> E?ayS?,={*CDi1¡2x{%?w~5Hqt{]qRQŌOS#m^r }Y\;ƥTodNv)N]N?Yۖfmd-8l|B* I !Čez)$ϘI>l.RDQy.kS :GVůP6"N_&}M]u"*S>'wR~Ҥjx n)Da/%'nAh a'tz7*I5Us;UQDўReIJWH)9*͕NNgLwe1UankSbu9*^EO<}fB =w?>ZvohN?\* bM)6&:ɁGz'xDЧ&i *\&GϬf/{.TAMTT4Uz'慜B.%}dYknqe 'kK6Ÿޙ$ǐwDSqXgapXw!vM J}w( Th"d塯HzLPO mNwm$kubOo_> û%ߓnKK<yws'+)Jor }QbUpʛ &>\Sa{MʝIۘ?HCJI\_~"1uYJLP{jc ZN!+ |pX#]z51e(`L+h9苁|:zS׎a}Clpv"n` ^J7P,vSQit更Uf6x,4sڈMJ{Q/d{%&(KU?rSTV3VE/ șJ_^߮.=w>m#ZȽ÷$sC@R'˓P쿼 6]uRZ[G!^FW(^3PjNgNrS&22x*jA;PY$y gM{4)C/\r8u #O4e5TpJz:oY7-'™.8*#dg,P&3^9.4A l2eC7O=솪Hy;G誣9ptnQV.K@oLrhAJ"bx/CP*Yz[ErJ_[QLx!YfJ)yc೭8UΩ.I{z;!VgH@1}5ٚ|8szHhi3d J$R$4 "b Mc3hJ@ҍ$4d__h7+r9!t(T9Ieto?N@e({ G)w)z Lc5s>n@Q徉ѐȵ)iW(^5Oη}gjRIMh(XogI* R+T&]xW 0ox%yGlo:?%ȥ js do2Q靠')Tv!L8$ϢΜd'Rݔ /5R'@g*͗: Tmƃ*Ng298?0ջRM 3IoUMBg,<n` FY[d7|ۯ*CZYf5{^0"]\ ݾ4Z~>0̱T W RӤ1n/EHΝr =RP<6UL5cfy>IPA?F*Z!2тsԻ?3!?Š X J[ baPdu@3I@Ysp"P#<TdPRœoر` ax(rh/=FRd稗ݛpÂ_/ ޞoM5-LL@~Xaex jIA|S^4Qh/YP٤x=7a.|(UKr)b=c O5Wgp~%bJ>vS;rR!-g,UJVXmPe(t?'o㼝k󱡩).21jf/V Q_˓bjGLqƦ`Hp $Kt'=VFZAGVԴI))? ;FH~1h#akc8oO`%+k{BjXu1f;*B2 U޳0W_7UtSV=}X}AU l:瑷 fzmJU4O*Nr4PFp] ?[h4%ӛ:U{D>FN] Y^B?US483U: DwSjieeQ+u*o#Jx;'YNgR^a_΃QsMDGc8~c٬(x30TK0FCP")'#gR I{=WW|^_>ԓ#i8ttۧ`P *tS;'Pw䉇_>lW_">A7nyUjTj,Qe>BDzTSn*T=Bܧ| RLܔ7 UvF4s@BN#t%?4ˇTL%bo3Vj*9e\D7$bH ?+xoHvh̀9#Ǝ[F0ҁLV 5^!^IIܙ16:_ p8{gʀFQA˒hj0Rjx$F^/BQ86.f&>ܝǭ,u9t-CۺHMsI_*ϭe䴦zzA={aS_4᧟N3kJݫS; W`.jp](> J%aMi3]=_b)3rұStS 3ς]AS47rմ;Z*6[%}+64RfZN!{M|'R򪉤1N32_)&JKzGbij|{.n9uʌ!rPy~2(oJ|MY"'LO{c=Urg(P4څp~#Mr:ˇ4Mܑ'Xxbz x(V)\%E.5NےU4@GDYUb*sd ;* pΆ3 ƞ W`A9 XІjW>9HU.C\*}c'yH GVAbp ye5Q*kʺhrS1$HKmSوqVL_` Tbk <;B#V7WASZ*S|Bh2i_a ~+'} ߭AQaVV }fi̭2ޓfwD:V S;}?݌q#Rp%=[bue)Rbq3e=TO|l⯹QfsZY Q5𤰈 ^.t>xG7 !é Ajco FCS6zc2=e)w=}JID{fn nGEQ&2tLwT3+nߘ S-{V{ŵsEq¦]l.j"3:6c31F`J!PmM4B!>2pE8~2 u'&jSA1=Б"gdFv4`)U+G"\ [h6yJN8'eV a4ئC㦴ӯ@玞<*7޳OĠzRQ쪪}TRM_~jpU*Bt>r޸^Sf]3+ELEdeg RvEƦzF}4j: R x{k|Ȗ@'ٟٝu3s'Њ]ESࣔ}@1 ǸQ)%6C>5S$.2lIO> +G_TRݘ/51Ο'U0L/Jx6rB]'5%--RF;!99]'5~aYP&l/aY;W+v;}-}; =e(Eh>..i(ATv|=8=g`8JTa㒵&ife:n2"xiJ呇.Ml BOe>G;JTؤ$VQlGSz`!t;mO~GoGsoUm5EL%%e>un>Aʷ|@֌Zu>QTpAe>Tr5/ 2@@!xz>R_ (C5k=7$EOU?VW +}Ә2(Ꞁ`21ry*Ey;V6p',M{I m`i< l0H>EPl?9(Ԡ}xuދsuJ+S)`cK pHa*CEOZ">qH*!<`n3N[WegrpJ&2[!b O%y3֫1<'?MymmVT^) mS4F0i@4EQϤSEgҲФZV*U?V b~ ;fi E <;gR??eYSwEEVjŔQPPjt%v ڃƌVCĢCaI:/_z_S&ʆ > / 3oL@@ :ՠ}:_|@^Lӊ+pr6Q@VԅXX|TӆWk*~VLKE wR A޽x,PaT.zJsG$GdQEyFi^!zyui:tNhd]{&HhΏW+60(=E4cIʭ@myx eфXKGz v',VZXGlU凼` &DQ"ź!(c^x@I4vdZ+N!Di|N}kSMʫtHF(|uYc}G9(ƈY u1X)%ҵNռ|w+Z㻧UW!=%]^>', ٙ1 MAmsU0WPyG_CUu/P?fm鷰tXN~=nx<-S!,'!hr6AD"^Im܌)7YZ0(P1v :ISqM(*0% 0 Ѵ3IٱxnL_󵕾4yyO>AA0CVLE`VПZ}Pl\[{z L[xײַFoFX@o@[؜a}y*{균29uFki[r@bhj.*@!q4ey_};{& {{xMA yE$n/۱篇Twp,wc\m`6i}I-:l$pGP~ecfż`;wTʣ{M[ q9 JC*Ϧ"h#Im1:,k_]MDȇvܦm0 D5.IʢڪZv\ IB $ω̧H*%ҀB/U 4uO,]>\U%?Ma̠ QJ3ܩmu3Pɸ:7XyV ,ANy3gd}kCUVXzvW{kZ4EmZ޴Sя׶_2;q*s)`We[v78FmO,)G~ tUeyvBtګLce c# z0j|'T$ZW5z EUp>* τO4N! ߍ<8$դMeLmUѻԵm0Tp(P &LqY@81 ԻFTM+S(3v/_3 rM*[LA CGELhY/ ~`-wb4GGUc/Qo;qa :W /nY+hbiX~sE٥_hd1nN$*S惊7]H@v2!Y8S$j]5iI[hZEcRy:e4Z&bF K~2%Z<ɽ2׿hQ%?Ma^Ekz(ϳgyэzHd\-a ĿPqjJ~OӘ4w[1 LO}~6zgRM}f+:h@@E (:" E+qTQJmjo^e~&ӝI{^<.U UT+!g#}ok+rHK$]^̈́*Iw\o J+\ب9ۏݲ21z&$U3h{3d/"F` MsNMsєn\0wf% /N7XC }#Z,`i@_y~JCn4(љj g?8.pU<i5Kت y2F nFr1ckd72Ztb!V?`_phI*+C+~S%Ű_V dΜ}9wX+捆5N~USm)bݟ}ܑSRc/ ,K]' hO7/CT{h0-hB> /U˒G&b]*g덝C:G ϴMO 'm +T=<Ңף iCg6rdbptVJO*鼱ȵ2`a≵2JwoP PM1%=2w[ *s ݋5+-G:vZQ %rs׶˵oXB6Jk0m׈GDV(elk(v4sȆ{.ԮfR\*Ajr TPc*6x?]n ^/ESֻW8/^WG{'̠8y `)IDVFಥ ,A tԫB^#vY-ш!7xP1\*O4𘋣H'WCLά<(fzp ^p˱,[̘7MCΥ_DNE+5#)WR\pY2&T2}T4z/:GǑZ!?F:ߊlSwU#& aHr^_eTh*|zFk:}wʳ=,& *?Ϥ`pvݯ+R_PU,r >B*Udl߶ BH58CqD:/󽞿\*j/X3S,)>ø2ʥlȢ>>g)GTHx EYn{ ߃|̣fYCO{e!e&Zk[enyWylHkǢ]l}VwWT"]#`ioEwbШ).|){)6kxc>& ?m5Jh2A.k*rT@X3yݟd '[@(Z3M\=}WչbiXibŰ`w&'jjc7}P!V1,H )&Wf|X:*_| sÜpLP-Qs(݋AuI0rIۺ A~zol͡@3E.PL2Xdcnwp":8`=:ʉP;!3\JM2ϛh$voC"Ie*OErrªFNe ̇iSRl;m߻od?7|<CH!<Ⲽ%DiSgT!D޶쌖śJVeWv N!?h.螚uHIקB6|r!XLԚ+)%:J鎊,??|%S_ 2`sjq3 ᄠ_N"|gjxKUԫCD95 !"?G =R1. aԦI+ (a(gRl->NH7jR$hk_c𙎠MUm|FşM$VMQh$DkL?d⡼ GJs*p>pYZpe))Lh @멊 4T$!=}E7ocޠp t;msKO4ћfI jL&oҎTJm4*}e ~."Ȇ%I 2w-|}(g \^`nPwUx3|; V E:%RgC7Yڃ,^s X[7ET~RP9ygUrWO`i@nSGo c2Ϫ9Vd/gXU% )gT~5c M< TM#;BVQ9"*l*F86خVd4UBմ0pc;nX)N3Fge6)ر:Ͽ?Qܥ}% z0Ko_~0UP_JlVlkt@բSqQ5qw^D$Nmy/oYahQLDYɫ|щãZjLm}*Lm-JXqkHEW/P_7)d=p {x7 C}y4?~clU0Tf.{sThBd!>ĎSRJL uF $L]{ֳlqA\E:Xp`C];dE@PCe<5yR 2%C986Pn `5 ЃY*}݆pt ^l$bO˪ELFO)0Lݯnן~plCi Zƣ |ykU;7G#|Ԗ\WeT)l%c'7A_Bk CA@6\e#?)*tSϊ]g Mj$@.Ois8}BK?V2L "8? <'wW(e7zy}rG%%9cJQ˛a"^E檒s)Z,Z]&":DQMrV? < ;M4M`V_>Z7ts_5u4&6Fhzg֝`IS.PeTŽ; $h06_ŷAE-*S;|vwj R3[ @΢d hibw9sB}]vPYW6+lBCS'j2pe>BuuIRI-暴;jkSݿ*qN7A:pS+f)ƄAU'T"z!x-z5v*a '(SxoG >>+Y=KjRL}CY 2]w{O*MOe/^$/Yvɶsvz}!J-6aDpX:!'زYPx*ez>U(|iGw/Ug,뽼Jezi's鑉z?5P*PFU:.s_uhq4{*]h2QM9{<Q=29*!+@UrJ֙>?-~!*ܔ%˸ܦc*OR:>U1;s[`{ۧk%rYcMڙn=;*d^h򶸃fSI*_0/@q!*ieOK/̬h}`$EDRp1|7Ou_,ಢ \ Fw[N +~9j|إBʞ>S[z9wX HzxS$XW'hǡc\hbC˿r/길#32vSV5ziSV>iܮПJzn7 R PһrТ)=ncƇ3 ?ऌL5l#ʠ!(G顆 P죆 .?bgU T}A8}U?S^㦤k'hQ>T^Lyﴒ'׼D JCNhLRyZއG/TULǮa=MUʦ;RbNaQ:q]6y~It7"F׀n^]V0;uFEAOd ~t2UuS#3nLg-5 S8}|ISJ0&QK؅f̰L]0;kS-7L X;e I7J.zzj{*,&H*ZĔ;et,*̬)K@MDfn `@e8rSB'EC9[;9K㏉OsR>֡,]Y,_eQc` "Qmj'G7WOo-FnޱҌ8\An3=kמ 3*TbVꇿWBߒj0a=6l鿣CTgL%x9ܢ>ܭi2K'AC"^yqqqQtwqΥ b3(~ѥ8~ZԼ öx7;e%fS_=}9. >bar :x+DAC:SXX*J~O,IY&XΟGCIӨ85Rz(pZ4T.nxVjno ${)j覨ɈGåfTT `I)r|ۈ?*1$b1$;ϝ-K@JXS7A+U3*!=U(:z^I%KIz]_g9jsPn/Unlƶl.(UhpnMX_R|f؉DέiӉ͊gg!0kgld _`4{w{IdO'yHM>Ü=Zę!]L$ojlxLRY󀍟|`mѶf1> 3d۷EOxN GS,$fed&U2m\,w@"AO5_Q d.rŇ !QCʫs;Du6bB;Xz.J{a P vn@氇)GErX //Ba>ᡜX7jWpzgiC\Hf[V /[RFc2pezڞw2I_]g(,@sf/rsG@3>b[ӹ󇖰zǝϟӼﺜP`zH6,:gjvޮ[M?[f { p$!f[Ҷ|mSO{ϳI5/cw\;4]9Toi^`8o#=n6X;ϥEɲOC:w.B4hM̿ae$Y%2b;]lZ_ZZ<źoؿ?򠗷M] qfi^=T=J샭uBD>gLLޒl"6.=^q I e7yo>{<󴘣㹑9Oo{X>ډ:s|nzsI~C~>uOy*o9 %ߊ#:=-z~U`;7rS>kއn"ܟϟKacU>bOOv#[䊇@Su]唖]y.lAlE4q+*&ﶄ4{[ >u.PL\0 ' KPHgĸ,@@QZR!o?|c&C }*WzORp$DAUщGEh }q_@ SQR)GDJ22Mf3Lf(ʹ axSgq}֋XP3MyzZ a9K]rϜs~h >-~{ˋ]/>4 ͆kyn6ϔ2))*Sy{2؞F{-! v=ǁ|N:;;>o|rΑjs伖3ߞr6}ۥlsFe}{<~:!yW^>(íɛiňVe*>ɻWfsSy sr~J~-L -vuU6[^ڥ/E4#O1Mm22,Q|uhSdOvrM^mTK|h>ο3*הv8`yZNHDgPtM٧_y\*刞'lvZ~MSbh).d?(3No-Xq.39s9OZ_d8f|-=,٧rye @b_}64N5 <\]]͂qK|g٫W4vJ*aC&]^R5/?DIM2>M.W;2ani,z_ VsQeGs?E3e,"$P#,Ah]]ل| ѽ Fu!ulu\/2y'n'U$"aJr'JgA@.;GDN ۢ- m~Z:35Gc'dB.)a7ԁnGn2󁂶⠵͠Œ`Y?|Vk䶾4qT4_}LUUXayYb6 |3cAD% K,V}6ȗyI=.>á6 5S2eL0qq6O0p۟ jxfp>dev8fma mQشkPgɻwN2?;2m99b.OM|#6>f$j'*o/fɐ^߭~lS`p~]gnj~K,v]3NMX|Go,;^W%b(F?6| %gl@qܱԯ~\%y9o7`rԽ_Ȗ>כճS(3qgT<8ӭv fru  Lg VtT;ISx8dWQa<> qO$;AGdIeWW+w/pรJH+ =vDܮуGVn;W` _ kl#Nx>>eqcc"XbKN vwMK]  y.Z&vArH*|}9ˆ5Cd,VbZ~$}FLlS0?(Dz:;"ZD /f$X @iKYlVsh.k6Au^ C 1,6W8c{ch2.JbJ+uSb `}+ΧHmamF\v+Ņ<ь0䕾'ccʓze|T*Gl[ivT WF8OClj(Ȩr>{ =l|f+Wv>:ב_0bv m$X g{V+2L-G*槱m?V6Ƿ}t5 1>9*JT]W:lpgגA}vFTr91;`p d]O;!}m0\virc+EGM`˞pMV&" JW8+pwlqG8#Zc&_3Tzr8JVw͵'ԀFnTLPC )stH#2 <ዻ~p8DܓR3ʞ}>K+ \Nf'c 츧hw Mp{  }f9 'g\#40 bzmGgCb] gX;;:nDMnw Ff/Ny *9e{k)lFe5dP%~Gx_A+Uykc7T`qpya6+)r C`n=uO€Ue89R(G} 686W$@Gd:"H44zŁ ؼUUEȨ ,|'ݔl 6p GjƝ,I 32?H`\O(U2ѣubX0vU,3<jْ.>Y8 9kƒ+C9azsegԒq2`WV|.p(CLƟpʪP*aqn6oe$rbdc(/c"Qhῠ73mjl4 i0w aޞZ` b$@kF.NX?~ k]Kd#ClsB}ߒv,mwg:#怭AHSs-Cy \4E)T/ +XZh{ =vᨗCgßd! s u†9RM~]C{=}LN{Y\sDJ8݀+p]q/},uuh!)ݍL7Db1Y26U2 e>• Q^"9+r"cgIљ" eIT@΍~f\N7]PګcV8 C!-Y) ӚГ?nO` |lg&P_ԈH41"1 _rgP~Remu(jT,yoyTxxlki3G=UleE,'v=Y9w#+UDRKeE4\Ud{sƷQJ>S59aجݫvHȁ K$ (ո B)T+;-W`iW@(HZ-LuҚ ɘx{)483UEfmoZ)5o}4)E]~c(8[my 03 _h~v/8z1 'gϴiũ)Ʒ͚S4tŕS>G]` V`kGWIAOyV\w:SaaYjdm=]A\u=(շH f( mM7i1k VAvq N MOy`TFHs1w ?ýc`y*ކC 0A47^&t=h軲U֞܈ohK=ٜHuG ,!E;7UH ҥUb-ᔽ^_s,F.xĐˍkh~M\i%UOz(j^J>6)YKtO8%nRnVz4pLqx$^y35F@/D{٫a'N,bb'@ o0ujqBmbcP0S) /ZY/(. c٨*YZ߯_R7~j;>@9FTC(Vst퓿*hv (Ş}s!@cV VX}t*Mo`0XT7WvAwUvTHqcmT.+YuonNp 7}fg{Fǖ$xVV \fl ^ TX  $Ax}Yپ2G貀@ع <Хb&\-fǾ͉Ҏ%R6(¸{wEe3j|%x3zjf9A CAzQ̄%4Np<- @Uϻ)1S¯[$p@6xE] t^e|EMؘ% po1BG9tc'EMzbkA -A{rifrZ'qhi~$y&;K&-y{㲾Wƺh1|0G.Fzn|Wic/ L^אBO_{(n6 8) мo l»@W>P]e ۃ na';o`?Q7DvKMHy(æ./!(̂D8/^IRnA qS_Yʴ*wD"-psmv_ߛ|> Dzv2jՅgob Na.DEל&V)T@.3`*t ,K} 2|?( ƪe.8XKxaŊۀZf4Xer&H{n^ %=i]7:;/5l9Dnݹhaݪ+v_hpuNp4}"d)dOf+"O\%;wxOїc"5nԏ] e!jj.)ʱ)pj72&fސKl({૪{mz)f] k Pf6QpG(ڒ:"W#]PU}y`xGBkC[ߺs8@1vFߔ;DD|L!4 x.wgX 3OѸ܉̻P22D+dwA -1D曔jsMT#܇N8{IoB5 st"R\+]v>( ;QF?FU%i*)28>mg_MXm_,\Ý"=cՁR0%+F , @o~;Y4TڑZ'e6~uN߉2nʻ0F.<ǁ⁒@ H  GEn|$wFcFj'|Ūѻniء-RPK1-?G:#_~F%h֛25p"}|)ii#7n 5pM(bE/I[oUL;9uI@w-^ywU'+k#s+'17ͪx~tUa,_TVʵ=ìrB`6z3Mqޮ1J=/5᥺ZbE þ0=XGΆQe[G{_|< G\Q8CNhƟȒywC-7\B@VQ4f]7R; 8]85HՇ^i8鲫kIiGh/ͳ{C&앪jN,Ejos ;ynZ' ySEcqTOSeB#G3x`r~HBy;4ÉP'ސ(|N|.妼g6h>+v Ѧw5z,rѽ阳Ib`B BcynKlfd2;ܘ`ˋs ~ck-,ɍlfܮo]Myv4))[olOBJX:`9A< 9$!fڞ5eO/rV`hi Q6KH޶5OfJ_B cEl_D@ QV0&chRVvk O,%Itl3)ʣ;)Xm-4fwTm,7.*}Fѭ;krK/): k)V;Q$XoKx@-mlBclD5}C(QEcLS06 S NA0"`sH{AGX%We(hKI:nF|'ϐF\2VRL(<*#X ix1!-cGșvXgEnm~dZhn)rf&"E@ؓM|GS\VC0Mڌ7*c+kB{Ec]y4 S>5~Wk EĎK'$S#[.!$LK1ǞSx MݦkY͑-.{JGLGĭ_+;wI2x40V\hTI8aW lS]ǖEjUDSd_8 RF۬k%TܐvasFpp r^JwtyZnpu9lɦΟf2 re3'#昧SD=bW^PP; )8&U#to)(;s’4Q#Z2{U({ FC0< arIM3eD6Yl<*sһ_5Ûoáɨ{:Hؽ;Ξnxh"u\eYoO{j8Vav3CNn(RSn3˼#Կ[ܠ+vVz}Cmƻ>S]O[` 6“޴UCq t ؗaAF/SǎѪ*j3ߵ hwޞ>)gٝ20]r!O:a\c+=r { ɨ(QѪGH«t+͚&`)B&O\>QlYE 3F;y8Y{`\%:';yKmk0iz.R RGp?6M v¡8[=fψMJ}i@_s8m-g#EΆfZc{n|?(hηr(ૢ ډ^-CEPjh\Y[fvn:A)ctSDb3ؾFyuC"eAS wS 7>~ ~}Ӡ?+z1 3nlN"Q$H=mXo,U'D% RNOp\c89QnŠAd?SIvas\=SHPbJJލ^BD/¿sYər֑`#aٳ1se 5փ e\SI^kt!/BZlQWJv>vrҹ6 5(,IIWQIєܖ|5v_Ϯ۴SQn0'#L!]CyCg0ۢ-.駤LQ uF1h\4\la'կGN)R&t`Q\bk:cyae=^(,D!=Y&M~$nk. u3yw$Kp>hnC,>:tɷwչfx"֕m :(xg{aњ.{)$^$|A4Gd X58$Wְ? k߲gA,5o:b uY&,x+]}-ct ʎk(jIYOE{/{̪PޖTQ?X+1:f02G TObTaF_AiT*rKzE}[mKPr*?w&3w 9coZ$߈(jjp),D6d坥U˵-_xI̓ȎI1Î5'%'tV،k2lu { F0)S$ <4;.baq]=yl:L4C@M' 4Cv8KtY)O͓zB"26!k߬2ehG9}7ЮCrP0B/Z;!1Kv+0(&H-P] KE"{/7VX+m{'+Ȅ2|.跚۴K˲~X괾Y< |Т8F^|'pT+fՉ{0 3V 5n2'Lzymnu"+aF#\E/:P"bد ,^8A-!vrLQ83V@'|ZSfcV;.S<i"/u z.i"Q (fDq&ep_MO6ʨHİaBU21U)PQ\\{`I5N,bNFhbW6Js f2Rݪ6;*^B2=S!P#No!8[;RExes̾i꬝JȘmRL 4[\(Ҋ|C>U#vI\;"&;.+79F ~I@wA !rfR wZUP2r)(/o3]`pFOrhqcv0Mƛ[YLV0 0#%Cc#U=@L zbbܵ|W$3cI]bbH!"[]La"XHӠFmMSZ>39="i9p+!pVR7׬īsDRa>3WAPm^L.ut[ZXZK1dOV>IHwyrr++}WVp>X] k$H^4T s Eho͈}PmǴ(@JR;WE2q˅ es:gƬ-hOaiwu =VfI Wd*|yVV4E\ T7u!CGuot4l6Z* jvsPRnS}O<>v$7UVE0TS'+yلPF^`<0A UI]Zuq 91or(>;mWE @K"zB}j2Sj2WZmᗛc k: DB'ʻ++37 0 FQ5#Zb'V f䅱Q{LGKA-:Yg@9"Y Bюk4[mI00:18!r +lUmN(M侠Hj EZPmBI4HsٔwQe.9\EѲ11I|iw\䪤M 5i|+q=6e:,(cP6A0XcҠM1v=- iGLp"'-: V>i"IC*X}*SY$sj,I=4I(>tS.P BaxќE5D+m%yVcN[+*Uɵ;8 V2+(q +Q7 mU21ʇT]Q=dƪw]X$XU^ڙxyTR^EWEUy!SoZQDs#?m,HMC*a;w L܅77#)|Z= bVX^mZ4zIo]wp&.pR.B.7ʯbA.^4eh/* iZb0`T?)L@9zJ>$C_Y< y  ȇ/6~.I1۸b 3 +ٛwůޞ@/ܥ&X`Rݓ;2]o@{&B5[m"lT5/#%U{k*nl@sQ0KLw2?ab ,2-2;Ah ="mv+p0qq_Sxu-$4GJç(_og"ad1AKY .d"7zig,I=h!¹`jSi7L!|Dg_QOa![dDC"M͑2Q((aBUf`+kRokpFi%2uv-]jN)ԯQ^7tu?vN9X'R Q"I'u+qUUUy)Qѯg<G+ S7R, BA |+Tr0֒ܣQm^@0$БU`un 73#X ΏSO.$=bdյ+F vAO7҆ #R+ȉT.ӓHV:H2oQIfO:oS; Aw)@ 㠀4IˠB!=/_؜' FKmqcҵCD8}iDNτD49Fݖd(#}TpFFD ω6o / 贘+M6+);Fk7I=} )LfJ"41o:`RD{P ֝*2+ @AbFbm2Z9DER(IDG%4-FtΥ C(o /9Ӧ~S2zfuUZ|COzYe_4140A  `P@@D@@@@@  0hР:;>Uz[UeBc)L0bei/Td+t1/n1uN4& ݜا4\ݷgx><S!٤Rؗ @TP̀ >,@$9iKEg)J4rt"B..](vdji ̣#k2a"oJIS.ko`"u +-ǽ̀V>sxV8ΫW'U/a n%_h[ j JhŒ$XÎf(3׋55UrZ-{Skh^|9=Dߦ6뽥EwUYTRY)a&$j}6px4=2I1Y W u^fC荕k͒4 À4nrz,Zl~ ٖP'NYOnj )'Fo022!ZpPP_u|ףnDzx.n;Wq{l"ˣ少3ZWƥN;FHou\>' #[ jJR\}U>Y^Is̃TʌE tJLU15KfCzßL_s4_¦'myRқFY=N#衲.H3z#Ҧd׫|>b?Rk kObmIz T_Xɦy܈'!| E 5ȑh#3raH-zOX0g5-+~ l zŊPŚGӵ v&@•?[c/,*h`,=Zh=os uB1LW @Ugm:gȎٵkʃ# 3wOy! |0]Fm,<eȿZgwOgKR)q8 Y.@vThXF/,@.BߙvKK|emćb9*d`Ue{rfm` TD hݳ@Tbto: Rg36֘B7 oz\; !˒p%cˠ9Y@k}OC}I 35-0{ l]38)dO҂}$u&AFs#rU>q:ah`bKNa6zPs^!"N1Ƌ"!  u5 eNfʗ;?~7fj_e?_A`cǒ!0!ª `t:._Mda3c&mYR?u] qH~ѢF±viQf85ɴMy e̎g978$l O񻶽UB0)Opqr~Z 2 d=zu'k&~ 89> ΞFYc.8-UDA{!)!ySJTI{6 2%y 88fl.v^(eTv'-qsd>H+~{՗+-vh[xl.puͱsS#:Kqa*#qjB|;5#,Lj+ )4Y]'ixW(c>ձ1@RB+L"0SJg.ۣu- ᖥM×d:28Gjׄ©*G*^:+YUXEWc}$(aOfM4EMCU* Ge rYmRfhBx` u:zY>}O^n{n&K(閾}Ŗ.,(LRTJ۹i=m'\6Hp:kǮ}UeL~^j/8_VȩYIDž2[TY#xmvj' %`*5JE[l[rEbix*B1[]/`d%(ӎxq|shӣE3Qe6_ w=8AaIoƨ^*h5V~Cq9%iNqgS*)m )}[j~ۛzs׸>db1L 9z׭|sT[='\F]ʤPzGQQ;Ua=iC`*TbCjpWNT]֣KgUjW9aHmd>(֥D40Lv/l9 0UWVKk}XiC;r  ^+6:r'2 X\L34/yX٬.s $J?Q⵻$BN1=PɫGKH E҄l8ܚJ)m.w1Z Ն2)pwdNr@Q̢q t]9Jpo Oܸ ~s($d}"+7XD3 h1`X#=243v#5@Wp5Py00*kF3A&D=!HIE+bc0BniR 9{/'+T3j$ubU-:OIlIevZJ/0ͩfMBL.PT[ǹ4SEpƴbTjʜ{cSaf/ƫnf6^"fM/f z2y n\0I`qLm,>$ūO;wS2j^ɆJeC֊Fo-(::Q_OFcԂ~Q;ݘ]|> ZA`w,HxM-AT~n>g-'/hEe:iD΁i_, ^یizi*hq~Y[ݧ5C;0n DAbCǒɓԙۑc&Al&P'K  ArGz쑆[3U#aW40v.bUn}Ø=+IbÄ|ɨq!Sݹ݂$C@-,{3Iz6#OR5drK#hs:]N(N)NRh~gءH:9]*y,- 4g:~m }ྕJ CDcćodρxH8;S,{^ת3Qy6~c<Ty0"FU@q0jIx!-MxoK|1S"JSfgX|/s~pYG&Kuefx%Cu) p 1fD4ːRxaT,$%u3%*j ;o*ԔySϯT?őA0h8AVfHH+Ô*OM5 WX*y=?Gm4`3.Mue9?ys7^fTuμ)K"Mg\ z ]=K '# wfܧ4)pVMZ䮖t){Gp'r1~5ZmB2u%M5+!]8$ݑSQv!n.>.-ܷވ5la@eΌ BWUO<\DokZ,y|*@sԘ(:!]U%S..S)2h^Wqͫ3-%(J۹@_r KO8꺠[ҩ & ƭmS|Q+`G3XiuRx&G.Þ2`݉i SktlLv|W/TS߱ː[$5b]EJl%(g%n9M!=/y#z߃1(w3 * e BqёGiZzm ?mqd ~/{ gy!hL]{S]v?B5ۮ wƃtװ;싆1UGR5k+GV.B@g62A\kw (&S~xH37[7fzX"_s1E'3Ii Y( ѝ, 9Ӻ'/̯&cƧT&\"kd ܆6&n܊54ƛ8tzqmؕR+_MP\ $<.9*厘1<✅a,:ܧ3&9l:SA Ш8[y׆I׈@Ug*4<3j0%uq./IقtOn'K).!{~az-d +ڱMT qS͢Q4a(1{ST/@++O3'޾1%00[xN#1|!j̮IQXʋZLL]NP~Rc>XQOEuۈX31񢃮3)Y^}cU,St.}j'83bGhhTAi:%cQ{"zy Q4"VD>,6R{@ l$yWIw8^ gkSKt]4&tJqQ/jЀ)؎- t2Yjsl@+8⺾ 2Y8jNlmLq: !w_#J>*;nPddJ#5\$-M!Y]tebuުYLלYL;,ʦЅxV:+#-j4Z&/1Q9;s6=, P{}'yY x=;}N_8<=bnRj4{U-%Biy?n|3Sb0Xz_W{#*qw[HXD̤Zr'h\t?֤I~x=xm$WpE'!wƨPЖBM)%Nʷ]}Uy1FdAf{]&"8ZP]5u?w`,ve ;t92] cK2HHC#$#lҹCZt"؄w+tXKȇ_1mkz[p6̣0|8%E$h HMq5(]NQ3~Pʛq:TNKa*<ы0VJWIN 0en2L]&4z Y[e*nάeAi\I.asyP8oJT(D^/Fh aI J{\*4P&ɬvcfeh2EШ׉Sȑ!f}pʔJzښ3-YR^ vd`l$I8 ć5-*lh1pg`4( t1'R_}|IJ ,hXq5P?b0q\ۥsc]s4Hә-{B t`~Qx꫈Nc[ۦKM4Db.@c|?.b@K6 wp9#%G.]DtEV6;LWT uEGQ h[4ȶ ,SÔ2 ;Nv@4*/ ,0t"Dz,D φsljS.h+oy==ݑRcƔ"!@HIӌp+ݞ jug--Ō<Ρȥ p%ܚWO*, 㧎) #Jw IkW0[t!F/ix)^^%*>HRLzg3fWoL sˊ*-D3)e9.݂PZ&=yXeB ;/JL}|p`!1qT)鶑pDN5{ Ldu}2^J} &X =7v! f\3AHAG-hd0^SMq22SY?ZjV6oQl'k65C9/CFGx:*ghޯ66yuCS6Ez~Sܚ܄&>U!{fTXpVa-&b*Ay%/b\wHTOBKs51#QK{/a=DmIEԤ,T꬜ܔBV;bTbOt?KCħx5mōB^g9Yh+UFNvd:; XsGޮBޘ|^sC{5%@O9;PmL0ִyjX$E`3ZЁE+*Fg$86IE81(U"QڑnWy V1gRN]}AW { Wln>6hE1|fQavuoST?7OX;3Z@^1x2=AF?Γ]WU茆Q"HG0q'fN](ؐO2؟\p87)E82OXQQ+ P@vћ/ДW|Y"|u@.åJ"@ d!w8 Bp)$p~!r\_߅!7^bADQˋL"sKA4==}!=y`i,/TNw9Ymi ) J),r5f1Q6@-3g~lL.Iu.k^`m?1f/(;(W"S6OHE,EE(*\fv8 qwot2pm".p{Ɓf2g<Q> gd^9yAZR1ʊy- A8# M8+VBG6 E13ؘnZ9#r/U6^^|E(:}FV_*.LNƂV3z,ytMJ|AڱwD'ٵDidly慾\gT]-/TpWJ"Oإjțūp&bOtʉ24^jTe '5+6FM%_+K fFL7'<(fH&C(# dmO{u(mn:(i#6  w@%HV]qFb4UCȂ]T#!laI"p@;g+Inƥmx Q].MJ,Z@( r%[n//`&._dd@-˜,3sN&IN8so7TIZEZnTB`o_]{7$_ i[!QaC:d+b(dM*4$h@MKW#H㼠-*i X:h/ jבbq-Vn½|0K NiBb5*z= ,10z({m?#7ŏZI!ށp\R B+ oM fFov6ʠNZiUMhkIA߫ʚ1F' a%, i8jzºF% {dQKE$AGfrX=7{ggpG̉wܹf.N3ꮺfc}hr0̶TH!Peh ."AwWlVz=|/fIcϹo%u^vt"d^$HE6l9O"yJYլsi6.cB0Ч ՟'zw3羿4T'B0|/pv"?8)g/Ul B%!E/w+Q /):ӫK=ybe,tP375 CymHUUJ亳ңs()7G~3w袓9Wl$ձQv"75^Jk>l3isF[5K7?*Q elf^t3r?ixǐ$.ͪRB,wqc"\į=Mug4,ƀ/!c/OW{s&Um=whZrF6XRX6<61Zxǘ#fxSˎuyqDkʐKM*%w%G&.bS;*poKT"UIކTNo.ҽCI| #ɶ(qy ٪PVRNj9B}jWy>xnȟ40#So#C\a f( b+ 6U9^%Y!oIAQ"/B5N 7Ih =,ۘ 3r-Τ= Ee7lR3뉣0DCJ< 9 Cbݵ{*TȤ+`ezi4޼{1 EsiJ6ׇPtҤJDm!7%㷆nyqƪ7cj"з@9yLuj\DMO%wEƫV#j[hl\wWc,QN=&Sg+$=3i8]@e}){O `i 0B> 3(GwƙBD'#= n`qнA0|'njD`I#\ć]$&s=VNm,A- %թG`~i;`1?b.+pU7[2b {ٯŀMqnf\kӢܾaC¼c0&`LW,DUty<4r(=AN# hk1x:=ʋ)_%!+s}˅;=E㊸3@ht'~rIEQD(w1j|vոgJ7$GGwn1 Ŝh//lD\&GW"sBd~Ŵ$q trfQtds}N@\<78U 6.094{6ᾶ炡rMYY4~7Ab]!{Dp+-4 ZCi@ªǕ36gouiQ2eH?)D3bUpp0u0}&u=nl;P:;ud%zg8I|$r3TuL%&G{ =G8156jS>MAw%˛b/r@@s4K(B( ٮ2_{,ix)a[$XL-03ņ#nu-iέ1=W^SxpA˕ď\ВR!eH!Iդ^W˴(낰/Z5=]vH|g;y>Pwѓ⍧{Uv՜ L~ 'Z7!!o걧;ދdȔ/P$yTқ L19@7?w/\VZ4+1};mI<&OJkTZIR0ܟΔL7koqG;BkbH7}rl~TYzs MFarMh›^i&hFS662UT[#X%4z}g#(BX֔wfB+&ڨvRxiJmfk#eJi@ӏ E g$L.XI[mrc z"\Kè8MWl-i.⣵:wdNem]ךGB82c&ŀVECJJgUOyWX@|bJt:uŖ1|v ⦨C: ׉ӺZf]w8i!TԘSO"L tyaAυ%ˋ)0LTY܄ ayn?I?-uJA|ysi(^`I{E :Np{_&.8X,Hp?WѥܒԨCP,aUb9N(Aiae%m[nロD<(lV¡r6 ky xiHMFoS3R'8$ëthՉǔoJ%L!kF# D?ac ѩy_!}Ȉizxk3p\krDy\AO *25=5|81 ='4u-MD*@ L7n߼n? 0ZL$XÝ6~'oJs.HyiW/t2$H+g0"$7eؒwAIܤoˈ`A0xESဉR:^QE-asܛL9BS 06Y{3zG&Uz)i $?B3-[q^U95Uƌܧb0{Q hm>oƹx:`9:Ս0_ pN<2)hu`kqՋ;l 3(ZvZX҃mALhDɉE\#YdΒ^^boζh7s` [|19J1sn(xr03{M wL[6DX1؀`6L ߈FwqF+z>Q 㥢\Jl>4X_z :&5 Ρ}\iuQ13G bRn)oûlkZ{ Bv}iq+qŠ JBӔdEQ`:Q_Anݢ.1TuhDHCÊuO)XLilT~^p:jV w#hʾM̧&-D|m6O(9`ӧ`ՖL6\٘z%^+7J:pun&JOY?*A❑~u l6_קǭ W5 E;NN_MnC8'֎Qd&Dذ0f .d8bO6óy!=8"Ǔڴr> (0&X*Y`tG;{hPhCz;|MCeD fξnQ%M Õt(䣬;`MX C_,dfwm p[ԑ ?CBG'oq|9Y|k0%)JY=C|Ц~6 SJe+KVNpeJK^y;8ԏ]B,_3Ϸ?#˷?g>▿?_>O$?<_۟?7?w⦆oedJ«t8Ŵ8Xt¦.}!P^bfA4~LSAk [SJsV"mdlCbuu=(l:Bq N*f#V9%$3PM1zwn}d cVϦBgNG@Ҝ&iɋ#Le9Ch$N# .Q/1Uq!0 Y m.LIV}i L8nG;H,yS,"x:Zst)%Ƒ(aDK͕ȣ13I9W>γBF qqVwu.DyK#0լգnL%n܈!{7b;koۚԵPTF@uN}Sp$B~k&PE5 T̖>pg ӥ^tWZ{"YJΑ7'-6\+-6=U7Mo_||o7/!]8*?MmEeԕlQ *nZBBiK^I5y_jqΜ)TZ6G&%-x[Gnoo^S%û)*vW)>v/628#yHE4Avr`Ҫ%̲$xA`ʅ1:kxdKhHb/lH+fS /2xB%\VLsckO1 b v5iͭT`>uf P dI--$sᐶt?-"ZV"z+rv(#ԓUn*K{^z+>^JDrКh-M0C)Mvhoʢ%^9}.wSn?P޴>H1CȯM)jZNeܐcNA|XTlƁ,3K%6@ μ5f"oc6C-|ǫX~&]~&~oj,c?SogrKR*ח*߂gR(_FBxSܩfd־|| Ljgy6} 7,,03/~<_^^il^&gUGXTƅAEXo3wIF19ڕJl?gUR4P%up7~HN;}0: QxqEv&T\pPr7țT'GYPN"\L{_ηzw>~k $ȋ}]A#_N EgtDUCMbL%GKsZOE>WBV=>[TM?.JVx˖va;ޚ<֖{ Ű:Zq{}[gp˳٭ Q>:jQP!G2o).uX`SJhc긤d@jmJHnz!68kW_',-6Kehظv8\T#O^ҥq 6yb<(RFu,bpZ -1 &,t}QOIFNZ,#DL.1y^HgP]i3ŃKy80 KUzeGW5WgĘbmIBܢK舝ׯ9\sVp2VެWrΔ=_J7 US>~M2'f)$=lc96Xk~׋$߈AwM-P|rVCn}|K7K߿|{5?޽ [>wVuoWϥ{}|Կ8~StUf[{ »x;۞wu5`Sk3nDG >ǥa~7GgeAϵĐ^'m'H"lVm]zׯK;z„z4+?'|`g̙Nn~B]Q1奧OjJYg|; Gȵz_rYKVS1蜢6 a2x`]iL ;}ձGvGH"f W}}A07r=MWrT[=UsH\ {6],>smeLF,fӕ.Xe4m~U[] ׹هM*&{~>FD*1]QzGŠe\!KOJ<~f4(: 湞^`ظ >)@'ur*8^7!&DWE1>]6,jSOHd%Tfypb'awJފI'R* `N 7dV'yYۈ^d9ㄚS1-}V-թ8fjEcz 69;j *Ayt%0Qh:&ItaGn^ZڄV3 )8z; \SY2+`+N:.ly揀 96؁󪯒J˭5EЗ>zRXȵ篒}0TEpi_/vx%lBILB,R}%eqql~@ގ|jN푉Z\̒> `oS-Fz"2\lQ=&S*/Es0\(EZ%(֯A53j6$`8>Kb.D;+֚ħH1 >VTe~*f<2.1uhNt;[hukBNm.#YF؟(tzrylFn Mx>Ѐ֩*4or|2Pn+Ay/bk>Suc96~@$lowHss>p{gEɱ_X6PݏWٍ(0IӴy; % eNphԸf74 '18"[eE#k>zQ~q Haqc̫¤E<4C`VEQ-6YkhQ1lANW9iӥ2?lɼTʂ’1UP(Bgb-'+irmtOFcTQs aS6_b 綧W H1*aqq;os7Qjd+ߕHeŦ(K"-PD$E S-S jw-lj[S)u6(Z e<چ?*m/ 4 YzDt*fǢ0.L-8mIAtҫ ͽ:.0wBN7=_X:C&ךsitg19U$bwDvKm'SS{Ú*4 Uڼ<:KvJ3R ǣ*棪*gR Fx GC)oOB-|ߋ/~_ͷ_[ W"ſ~O#7?OoWV’zE\hܝWY*L;A = t Pz#!3(2EwpQw( E!ݭ-u5w]VZֵۭr2>ghH iޚT藳[FF\-oT$O$f8t#]3tW<AW.M?}vM[%ƚ*Q +G"r㸺O<8~w[Q֏L 8jlM*>&po}K(u|:PT8\>{EKK$rV%V7`Q{߸kg|ǜqʻDf؆vґL^ TԿ$[z]C2 >٤G PgU{A&wֽTTZ٠+c=ԱA@qdL$a.9 g8Q1BH CM:zy6p]ZU7 uCbI] 9ԯ%T6"ED¾ڈњ-;}W>m'+i/Knd_ ހN _$/WMC`P_<|SCïax?/ '/M`7ig-D{E9Cv՝X uqo{gh2@F*ohp9w *> z+I@Q8}@`N;neH4burX]!D%5j0RpKi`/H)nؔ۬oΉS5U1d/=; sǫH%0m*a.Yfe%ʨ`rz_;) M=G!o=1Mq4$Ɂ4o|ym lv!*ÑJ#(Zo5PCYd{LI<UrƒM7 7P}+ ZoMc{rG-SJs:B6A{K1%1PƦ1Y ni }s-NScfgڪh㵤-?No 2%4׶FMGm?Ty }>?V*48_J8x?K~mc@#s"LX;Gy6{aϪY)??N_Cggȗ/! ?C}[_Kuos̠?ޞ/H ^}:H"J*_+Ğ+w nݲnJԩZ@ ;LT͟h?SF!~j\ڇ]IZ^У&T_`FwP@;z=pap-ۑZȳ͜'P\,\-~JUj *BLX9DtCMq&Dkb5Vҕ6 TBd*P Tٮ"1DLV0*w@Gu@iwp5moiFs8'i<: Kf67{t:MmHN9Xܗ.%5Ŏ b=0kȏ}1x*듻~@{gI+_~3 ˥OAՆxURnj9y DLj>Gejw%-zj`v X՛b5'SbҷdtWGMfadma%̜>ž#$E"jntڵo}>sh<%Rw\6|>SŽv^>TH%#Rㅅ/ԥDofwy틡ִ.5\{HJ>]VA4vƤp4BP0C:l@x&Dq7{ƴ&'c( .W"&gXSÄ})oa>m1؜lLܿ璛S$U{Iw0Xe=0]8 $=}NC\ ﯏̉zxP/}gO MuO+սpoZzwqz{iaAH%nxIV>.bFE!z8 n7ĉPJ򯠧/Eԫ~O"OqQ#`@^^ TVI}$j:a:BK|AU>z++z7.1㽪) D-R03 n=wQb+.rIy3ΫdK*r29Y%nFYHk1#~?t$m9]ň,R~l1S)bt){u ~;7߼$mSb!0TR:ν7A|·aWwg [Zr\;!K`.tJّQlS0T]&laQ~,đ_~ ܥj: }֛5>VgB#9U=|T?w)4uيH jؗ\j{AIGء\EV#0oGeSu@UyLCeB%6Ȏ֨ljKC)?pE7 4'ђW :W~ 9/3|GG )BTؠ*@.hTA Ea@N`rdl{ jgONq4ʍ-LdIHu[d4joOUj +QKq-3e0:ycH.DNʏE@QfXa^3cvƃTbԓA . MhO0ҭMtˇڱ1.1GJo%Tnfv<ส>$yUbX91Gx΄ 8Ƨ^V`gP4 =%O*}Ǣp옛pl-^'XrW܀#{oOt. QtZoJ@`XNT'Fj7@OEœcM/V^5iZ*7*جz#y_-?,OM+G 6a!w]J  /w42#F;f,nj'"D=}J/6MM9g.V^Os=gp1|m˚MNWjݎ?OdGw^s9/٠m9JZ?]m#3(誀Yǣ4붟C:R\ذ_h)~b*$^xl)#@gM) [_zSwũdv JSĺɎ&DKT=#|p-nH+(vɽy1 xXЫR8d^Ekb|M9~ComNߦ;|~0BSySľdU<(U}tn"1Q$nؘ!Ҷq~1 zS ft1zұ :Yq՜vb'4H1V (]8<'5k%S}ʜ$&tNkB t{KTK?_%,Pۘ@E@U@ўCI]s+WI-5p0U3ƗRv1MipQI_ƃMڊ-OiloXiP,C Ze#Xvf '7ʛ ^6*0b6`KŻCgDʨ_^R5x]F  &#߸2@UQoPSp`Ȕp)E 8hӆΒ H|ARBKEDUq)M6Yv`x#`k k's&쩒Px %-{daJkAZҡ#.7( jf2ߩl+;ehJen ~LڥIgeT ;Th|-^xe<6)X:Zgo6jLZ(#eAZVхz ÍKƛ|~51?6Ȁ TQ0ozJxMQJΞ+IBaIh9?Etڹe>=W:u՗[4x$uuشMjt __ͣՋ$jg˙jknWL9V2ω|?AUp -Ԛcy$wNIeOZoA](%m&¥V o7sS Ys)"DY }"?3[%,l 3ٙcIktñf9#͒_>J2ёuܖ܍[Zz^q{fZRہZ\[s2Z<:8^)1XM}'\(J~wm,XHlTԉLK|-uU.իPبE( =q:K5n6 πoo0ü4CU2-/}"؏^:8Rpcm4J{>56 2Ӳљy0Mڄ 撦k~s{ (ZS2/C?ș ג@;%gdgmY੽QuC2=>k>ڍ#3OʒVw `u>%up/^B+~b {#O)iTTdʈID)c vַSax̱DR<|s xPPϘoD m@SYΈw40:xaZ* 7Lu6"*#oA *'v~8-Q瓳Cw oG'XG6u@'&Cvb~6w:S>_F'q3lM Jo1]J8;|{c\nOP 2HP.L™j!Va{\jO*FN"Vۚ~J2q1#3xnj=Ax0 1ȒUpmHT-_Ŋ]#6n zrgU{x=ۅ;ϯFh''GW0;)!gVr 3Oᱚ{;%3:AW3I. A` 8MԤUɪYӥM1X8v{'2%qf9QnҋGXUOI ljO[[{=BMQrž&%Kvg}djt'(a8vQ0(EoTeZ_SKĝ>ni`[Sa!FhG/y2 .O^s GMN+{bߴ9Օ0[[Ӯzx%/z҅^etM ou\H 9+za աTqlzetj.- FM4igyߚ V$[7%zX[\}cl>;;ݑO"1P0I*>(pOtyM@7! _Ɠbݵۈp ~0brϥ 2Z!=+qdtRP#*x zK';Z8 4 30\ڪgo\]~bk[/pW_bjk>BqKw GNW9,z@f664B~~Bꏫ.!c6KnMEݎ+N_OƑ|޿^ִp0=|s(U(R=;.:Í'b򻊡rey[ޭ1-G=dt,)"67íUw5=E \Hqn唜AJb z,(rBTA"(j 'YlfEf1:BM*bcJiXt$ N$Bb%0t˜S2Fmcz'LPh9 |YR ^$^SgdrS5hmʗ!tpx:V5s}&1E._9|}6WF`@|<(j~>"|x({Q1]x 3xMCzR574 S]SK16yWGc#/( ӻI zxو+a85u" 5"W(ytR̅=F32s2Xib(-('E HdrY 1ƮUgchNy.T;;i}hTjF}X{NLbhҡU:]{ԫ)q+i\m+$Mv>i5VAv&564;{n1EsMU/1< 1T4z{wS50x/8`6)A3T 9-|}Db{I֒I51<潾Mf|;YD57DLfKyN-/BhNc6XڽE3-ְ zq=mySR3ܰ0e/z4RlD6r"Vgq%Q)PwyI!knQF!mtlTǚNOtpR#s* uub;1B\#96eکf1?TپQTG Y!ݮRDkHb[$a31]Yɗƻ%WWК-ZۭH5!Aj@j@  "  ִ)7^3p߾}dg +y/A.1H+سU}7tЕf@؞r]mt،y8;}AH(Ufmy]09>y|80iı`rsC| qbB"l{-UՄ>xt@/y#E F{ H;WFW9N KN1p ^a 9XԊWޕj #DLr^_DCWxDZ%U5W_s%YetgX<?uFy brHrOyp2r3N$I-?9ֹ|'9}=ǒ!K6ѩ=>hM!:i[iWφ4^Z2)T]?W5hdqCo吏xr_ӌ@{Y dݪ<Bɷ6"pBRp4~О 枼}a0ʰ,U-zh@P/wO°@!ViXrKCk*͙0~RdQ|W4x8,HY#|'"z&gfMXX"ih!ax^Ey_Z״+"!j0n( vRb*_lQBy1bҗQ,| ⋹; N&_hHKCP(D\8ӴOwNVk!#J17U)KfZDm+IyPV}a>S.t,̴KA^swW (s!4kj0^ѩ2[\^7^9ppcZ(X0# Tkg^]t*QNOhG㪛c D̡031č/?? YZ@##]f7R乆k5j}ɢܮ7ԟKoO"WT!{|q%!B4bXLE*U܀smϿ]GG*ڒE'ѱ*%;ͤfx5X5|V]kL?9[hDЂ}i:QM-g؛bn [_gf>zn까ZK!ڈěC@$!£!됋GDknmMh)1ɪ(RLiw>1 58 =C=q)J5`鞓/;NCk<n5Ofo]8nNx}C&;N-G|G%%`qlYR˥bS>z!8\d/Z\JQB;yYԵ(hF|TߑtΣ]t{AF{ /ĞuyPRFNRMlՖ AU+:_er JM<ƧN $vk XN-[y*C΋r "_N$4,Iae-yy77#>`-mZ.%H{ [,9f%AbMRCM䎿yř 4y˜&\N@\:<ضicWx䀙V2_θr01-dկ_WWt7/Pӛ{dWlChyX;d"_<_I?ampnT?7>.i=Pw. u6ͼI6mW­x9k<c,<M/2F?5Bz2hTj8;'0 r./qs' rJImXKi>xSa:M@K(ݞ^qKOUZFUwnME1%5C4 r pmKCnXK)>" PEɅP5UK/BGh%N˴n:J..AKH>CR`7x-/Dj E*V>'1P:"XxeN>&h *+#r̷޷qrT+ 9k(_7RĐ Bj s<_G={pM+ߥ"Ǣ%4(xՁP%UYHg)vĻ%v nY G I=pp|NH,l 2v4Bkq/ޮRaCaƇ}qћVρZZ[bKO2o9ɭʼIRw`-srr~'55΢ۜqPEhZ:eœ~5?JxNP:YHTq:9aKU+=+& Qg*W^#ZGnwőXQXÃE4fnhu=4Uvzڮy?_᣶P󣷳1|WSc+> o*;UzUGqC+\/~WUyk=~Ӗㆩ_y/Ͽk siAtaZ 1T\y7!z94!Ū-Bjz] Z$ꮪ~BںifCS&`ɬ,nL{jx-duN~qsS&$HnЀGMJ}h5ԩ ץoƮ 4yW,Tsh2|H's^4_w`v&jw=t l4C9> ' f WeN[[Cݝod{ޓu`Hэ ]}d9>df?=(ģz}vn]Hԥb3P<3߯;o!c|S5[}Q?Lnc8a8dg k&"a޵!@nxo 0>j:hmQBhzg#8흻tq'ugN$DLEosvkGPOKJ-< F{s{HK{bxe4_ʷÑ7"K zj"Gh(LQvH$Q80WE@(pbdkRd+`8 s:ֵH(AlmPw4#O>-yMaG=Q㿘RsG(j'j7\./ކ~C<CwH? U?]#ԅJ<]W翿~]K2~Z?+y\l+^&_ 9/SS0M)!q_‚qǭmv2yk'55ЪaY|U*ÛMU $ݎ/2wm;|-% y";=Wɷ>M<0uwUQ!" )?ܪU n .f'D ,g"IV y>b\Bd==FaJf;bԩE~6\6u{ t$uAMyVp=)loi)6< S< @(DjF-HmKb E*SlV2Zl#(ufӾKeZОڒ6.6vbsUWapѿ0\ѫҎ%()NfQBh,Kͽ6p(2c8:] Y"i!d$C)?prY,lNv=w?A -aOX#[ܘWaԁ(U 6-}f;]&TyNJ3!ZyF95j TWrX, WU]#;??WӀcN5OQMMH|$UvOLDbf*9=OQ$抋h2[M^tײΞ?\#KW [$|ޱn97cbbGb9roD+2C5̪Wq}p ѽBu(۹ UYK^0*.1uw170OT1ՂF޽9R +iwU{gxKUb[#ȔrSQ^lb!>:c=PHc4 ZZf'p( g̲D naC|Qh\b}Bc&JnqΙy*D$1u1PNa!~b#! D / 3hk2ٴQmUa{-|cgdDUP΋kZӄ]8N5G! uҥPC&H[ʋbz߉w©lG#dn w$XW% Yw;Uٶ6l+,jhD1ݗ:Kf&=,>£3ϧTisOxUD2Ml"M=W9y:̟L /?qe US>#]M}\qoy{N\g\Oܓ0Ěr]z.T61;PWY"+f?CX@)PТepuisSA1|biVmsw] 0pͧVO n9,npݎЪŘ8 Q68 iXm#L=re)l/He/:DZ 242UXĆlfZj"z(c`Kmӝx 3f 846gd!r[{ #)s1qv~" ;#è =XL=ۀ $_uf;R#aDm5U ?b4UM-.XҸSZ;>3&>gI` .2[t4V~!,m^}kn(͆E5:{oE@W+Jgn]297I߻7"jެ Ԁs7j}B]5Ϫ-DqԋPw!MІ1zpgfûi&䉍p2|孢}8K"%*?e<u<|t*wkdOܰ" B "~:jF8ke7q&E.Yܠ̸=kL]|MsrvQșOrC`iz ᜤNd jRQ͈0fp W<5JӘӬygv\whCt(&f}0ES_Sn/^9aaԲ?U͖F u|eĥYϿ\XrxgIfn:똚Տ9%ʪma~µOkŹgcξLPaDny8\֡YA7Æ ãkpokb6c MhnZ 6'jp e!N\)5]D_^1 ?]a[AƼzpMN!b#V\)(>#Wr< bGup}]"(אwE1)I,9`"d\N oȉ m2Ч =32,ȧ1PK-"5寀ji-^#3TM;U"+c R U cU &6jwP)(>:@g@[_k* e,S2q 0t9j_G;u_DBFG̓DSA.ݫŵK/3*5sڐ!؊ŵc>gڹ?D.bCb*;0q)O: H}*'d*b0|rXۗș-r<Ǔ]0cov19?#{>-2tp=T 2N ҪE '`&4Kʫ'l-B&fEg ѩB39zCdVPXRb@&Jv4tdȧT_QR#&\?Adݹ|Zd-~@;OrA/}XYg[16hiQ5rC)hq</}GJ, =`:hٸ P7*o{M,Rr0x<6y}ɝn#[rVe T2ÒR&<{u 0Z#h5 a)ad-î2ꥩōF'zzNj'ENe-GlP9T_ lP♯TLJIt/:r&WSDQ*h~lTVrҵkX|U3)7["|TS_M%$!,%kH D o՜pMJfDbg[ߡU}ta 8W.,/읉"c()6boTU,(*\cWrk҉n"m`sp6`wJ20Ny<[LhW.>c/J~ޅx!8ʋKZ-iJRb-n20J1dp\P]od' cd4&l%7^ڒ F˨& mJ鬽.s@ WI-ڪA" w\ W X yiH EeUs>_4G vJ:H_;HU^T @a0ڎ!b- c;/Ͽ`/<_Wa?jWѕ GD:qWp#AwT7op^eo wܽsנkWՀt}Bxw1\`NsQ)/+mf Tkq}Æay\٧5:[j7>͕ g׮=}?7N{Smf^#C1kOL: 2H ɻĄ.ٕ"kRo`7.U;;6 #}T8b92Ԋ QF!YxQ< 7>-H[&u}=_f$e|/%Uso3sڙqRK5Sͽkgk 6Ռ&K@wr? k~V wi%o[>F>"ђa+x3;W;f >D\Ht  n@*pҨvWre83r$kzxeKuHFVΝ~24Rݬka SUΛ)u7J%9'nWLsxs!u62QGJa>OaTduՆ؉CC/4^i2L6n&ܕ4pVlqbnW/Ӕj.|8Ln-9EboV3h} yO<3j(Q6xHs2gs5A 8Q+֊A=XX9mwq~+ɜ:ISeFP1h}2\hJtnȫ)Tƶd&-¸.$){l>qQ!, 3uCV39Y{E#1 }YOdyt55*دO{;s9\n1HSY̜jGc]jձpYRrr&,)Dz69]f}y};,byIM5D5:d$r@PLⲃn>W?gnwpW䉫pV0KjV.VtlѲ E|Eu\J^U`&C P]䢟F\PTN؉Au!u@=eGF$H*&ܤþ :ZTTpoHj aVؐB܈b q#cOHD+eeLuoA8b?k!~*ݭuR/E> @Sj~ۯb 0\՜:3`q@=Yu0EhZi[b+1(trY>K$S1Ӊx{6MOzW½ W R<1utG>XҒڬ7Iw9, !O?\d Ml2:9ӌsy郄+T9h1)9Ui5Czh.3OL HP2ɆtE#ORNK'`*\21G**+[Yo0ƍou~Is{<<&N̢NIa"U0+Y7oCLPO?!7,3!^ًJbe໔NA)2i_R9@L}|;An&A>c8J, f&]*[Z'ŧ!3Vl .1T0p ͣ>"񗛎kPT@s9ԊuJ;.KB[!?rFƎqyχED哅Upj0Wx4kss4S73$'HRY2{ڡ>aR}Ibe,}>7w.j1E|NV9=沴Հ[ id+ x%It 'b4b+r_2>gX㙚bŅ_QAɬaLF*i:E?Hr~ۖBʃB}bQmEPɘx8t%>;:`膜 *0KAt8,&{MSU`-\ڊԀIbup6tcQ:Wf$FΤ('}ū4$eAԬ*^g㈙# % v'0e |\/0 ӆ‰[~ƅIOJa?ʛZXUP|v R*6'S* THpA jŊ%5Vߑ޵l }qkErT7z;TRHf~1xu%wGZ"sI-b; R\wH{ҊVw|,<1teW+c D4Uk)Q9r.o:3N #2~r DISEQ)$W5%UF 5&Q`pal(>m7dCkW$䖠>)P2ܠ2GD qY񆼐}E]֮>{c~1d\J(e>f&G9AWąL4<>a$JэJ_l5.'i YLgJ 606 wM<50-Aw & o%\>R+{յ+$SŠbҁrT:ΐ©DS{K'^ IfkFb@@l vixwkPpV z\:囸*A[žpR[j %}!cNc2Jx4paeL~7IUU ֖z|UP\xA=<3EsQ/ ]1M=[AQ!5Vw7C qb5>_:m5M5z}MvŽ=Ql48cY'y)/* yM<*B^g^^t(\W J0i JM)JRygKڙʑ6`MZU?0P9Fؚ +d-)MDhQͷ玳&G͊q ~ܝO]3oIS ȼi;^=*=pʏdt "8$O2Sfo҉l:9iPfS<8OciRVΚjڳKY 'AX[qbOXK V'ZP&P%Nj9lљ5c臽=Xzvĉ6|:6WEF1|Mf?+΅C̢]a=~D!2\ͯ;sř\ɛzf<۲} 6 L&xּ4kVBLf߉DjY V)I4cx?iJCC)iWgiOi{X!|TM^!4alnݨxVfl5OBߕ~IœG坾p }^v5:LcP:DԾIX}hfDɐd{3r`PTޖVo"*5mi1U]TPZn;֛:e.?eĹN7}1͚[RZM!n@lˀj9_y L?KOO=t`yF~;I5LTc&x{%R+Sh */צIb:t4rڳ4}j[tyƩ_HuD^5Gzy9=ͣ~D~|;Y[Mm}IAW9I%#!)L;%\>u~H5y{UEkI:Sd\ǎC쾅 sEa)BMYr!_!ҚU7 Le';eVBq 0贼Df&\5yj@ڦ j}h.9Q3;Qol DxDSKeEZ N GpheyߖjjTפDRPw&}}TW,m1|d?Ocy;-a)N#əI;hÑp 8:R+'b(C}\j+Smy!hWRJy0w/Zɴ]Il#x $$"م#N3pl wS` GRN4.EtQ8%`rB }`r48+Ҳ4ɑ%'чIW-BKTI16c@IY2Pԑ=C#=$=s<6EZ3_dRqssA#ɴ(෦NCPMaYLd||8;3G4qK1V 8"NiqXQ< tøV-ӿ4E*^SkdIid1LdLꂘ𮞲7JKs4tx˱<1.N$ƌh19%h5 G]`D/^Usz}sRzU^ ʋ{)<*NV>3-y/Η{u=r| W̲Mt\2:cx}G<5p^-Gu{OCt=_zmp"<:w:~Ϳ|=]s蹪ogn[W8oD5펅&}G /7u{.2_gs7G՜&&~܁;izFbH^$ٽ&XMĕ@"gУ|p wÒY"<)_bZ 4J,M{M- 6%T<7{=[ȼ3Q{\bbI1*GKxG Q>qj9N m[v83ѻ=/9y[ },(ȁjPq  zlN֕Tbi)'鉕S lTp6$0 Ü^潿!D[EOvP#5#q^%rN?rmC2,Guf-WSĻ'ff4[>tsޔ.n}}rtVX:n)寴*p]G@4*37z_G0O! ZҮ깒c%W|.W"Ͽ^=_?֟}:*[ *kX;~uGwd_1yٟ[[|x,qW {sm~Uzk60Y P9iii w*ch46ɜ꿶 +l|nNZ_^|*/ zTN#O`9ט8X|eU5U텉n #Ey,c{Ww|Og 6+*pi6{akD)gt \u^l}q%Rp:!$x!rdA.\tɼk!NjmVFJ+AbjŚSI{":\t4.>l/"l e*/nZ?PXɂ:ۚܜʩ,/UE$C{whN/)uj(sKns KB-PO+—Zc' ia 8'F$v ݵr/ei2u$*U1 D29!ic:p!biL;i!a_LR/|u ﮟ"cFp×2 4ch+m}S#[:q#^hY8:(YBw[ r"!$xHMny8!~=?/n -zۂW{x dWݎ wl@r?k tR\!4ϿPVϣ~swI0_B:z7YC9@ȹG`p;鐿覰rv f6/_h^F*Bz'3Hw響ȼ8I7Xvˌu>nilV5>zOBF|^촕<$Wސ?wƿTI|83Y$ô%:#IWŔ.B=XjsDZ$o5sg03! ^i1H*rcoi=SS6<_5e)4Ja8 *N V dd!sA0Z1I 55^{)'" wLqs՟1y$'lGOgf˻xN'y!@E7r Do@"胙51D,"X㓢2O*6(=92uA4ۧ﫩7b.'*/LoM,'[V4P'VXQdPtt{G|G\p®3u|2Dy\6m8Ά:ܘiǏt*aㆮX5 VJra15lB^5ds1g Qh zi2&l/ҡ]ϽjdHZaq&^?NQ|c~:TMu7`GKL}`&tJU'xnl-T%MԹRw|Y$:8g%}PtM!(ZkiF8~yrn=Q50l7>Tشnoa{.uZ v|j&WNdB#1:*I7RxT:vx|<uB& =3U/gV'/'ŃEPؕU^ᅦkP ̢tp&y<33WƵN|]T̻b-A1y#Jp(O*)s}KIɫvq^z sI DJ@Vbsn{zAhw% ڦg*mwo]&-)-Y00EE9v |=X3m#q%bDBaOҿ&p"Zcn˼Li卆H7tRHjV(WSAcЮͪ>K)Ù{U B褕wMVM:4Re-UjSPMAY.u@lܣӟUS[=bB}`aGț3ۢkVxSy)VCRŅ^qZ筅A<=D )MSL+L*N{7hStV5sn7:MXoi4KA"l>M@'g25F n}iN$RʭOjpQjeje:Ha]% jL^]ex`jfgTu=.T] V狛NwCy︙3K}0shY7 tp uw-n#HkJŚj "]R ?D)nPETS6oGN9嗂C5*HHțb6&"U}&09 tY%>zj_i(=12kb曥6BCXR kX'KUQPkzwuof >dRJGo3]N*`+jK|xSwzRw(sz&$<0$3{׫ c)Cα2wM;;Hw[J-_B/1WsB[iޣcuTIţGm[_HԺS;R}s%E$)-N: b{|)ca~T7|RR!ip3Gj/Np4FҘpІLR$$f-kQ{'OxOV*WQɵM@kRE2Pn>78R ԄU)MrVU.g%ft*YtfVS{@wNDk?WLrϠ¾9z) !!onjn5KV)h 20/jѮb_}*?D . ?^!c2U>YvƒZ寧#=sfB9"oC) ђkw(UٙrEIzY*G:sTa)R9Юmvk OBi'1!-䌟~ R(_d7J6/$fV|~-Ow5AL|Jǜ9/uGj"ti e+.c5G^/4 ΁BU;39[95?DvLFu޵R c>=Kv _pY!J#=$,h&u^>[[P觋ŕ RJgFUuX-3:(钼i3F|,Jᜎ|Q{jTwLs2 5'[cƒ2 fh-r@tQXE:c-8eXioB: ެzǤ/%ƺJZJjlysw'z'7)d.GĘh!mhȉb^I}4/:$, :ՠAAWSSr_ .ō4Z?*5!Ր ‘ zJ }fr?=52v؝Jb?ga-K/}BbB%/F!Qt?ܽO8jHauaÚ'{6BKqK~3;Պ!34J;DR#b.aЄLAgiXːK)v*521el{Sr0I >Gb)Y73T%&!ŵq BcJLעܦJ>xJ)kפh1:eCPb TbrIn#o`gs/_$C?Wtꅡ2Oz+.6v&#R</l\G*ܶ%j<7]L)+~!3,f?Zo37՞v?6]^B5GK?&׉'F<#y9jmE|GGxo) .$M 55,1٪,+xfֺ~vc(XU: Z=*yŽx0~2d\g,. I .~G)EMD$ĭ=Jn?0݄7`B("uZ</NHN 8 [lQ<[N: 8l>FEp mcRApB !зɩ'+,B W>rNJM֖vNƭ5;sC\)^8`ktyʧPJӷJX R,Klş5O Cia-m-Q b[zb?uoOd_|OLgOfmK |БvO9Z`gV.q~3YS9WLB@ xR GϙWc;.@x91[GǍ3JTĆ4("sg[akʣF| qқrY8ҫ?QNG}ۯs_\`%I#DߙD*' sGP?RS8?gN7L+Rc46yP90kSlsZۄ_/<1${"*\-g ?.h=P cKzxߢB8ӑHN1pE+>an3@ND2Jb𼸝1&7ts9BTd*rWpbfr;eG 2gW-#ub'*xSR"D%9RB+ߕ N%EE0+Pee\69KGuL4d--f9mКa[QmWED@6Xa!h+k8 k%9n:_'S/*JO+D HBSߛBnJ;}#SRgBM$~^XUTYM6;F>y|;r)NxgRfDkD(ҧ}S8hHI\ ,9=U{\s3TF-|Ҝ^'< °)zx%RDs<.LR]5"Ba7K1I>g]+7uYX^-vYsĉ>(m8 <2~nza(*>M/G$WB.vҫslw|w{W.ks4 SOc틳ߧd-!B@k>Yd͆ŏajb3 _E;8AAPWtWq ep6ڗ>!#)7&WɶRԊOF?քףgN$>Y:@XaQv50`ICeܬgh!}5\f/ ޏgeI6"CkR m%M=T&u&A"ӗOVaDM| 8i Aq)VLu$mFw6.DKki0x?UfhĮbqUw05-cZ*(nzƝW4rWRȟaRo^y+eJU%"7wB_k)$N,8;tluҴygF9YRR%Tr΅zj[_Tѽ zi?|Cy9GRK"J 3W[HKu ޜ}|GMǣ ͜3E9𖿓J\^qJr 4ɌӔh\TkA `?^M7.c]cɱ4㙱ʷ{oU4"OKDL9,RӐdfFIi٦Ya|vXSvs6SJe&0Yx  !9P5΀x-.}&F NTV H2zpO)eUzR{ᇕi Z䌘+f/ǒqʿj<_ ZSI;23 8ju QkfOY$ʹ BUӘ@[Nay vq)rD܋pVa0BsC{DeLJC5),t${#Tw8ax>,#5^D%D<+Kv lW+@Q*Һ35dE˖4tfP*MbݪϼgJEV X\M> k ;?ФN* V)[^}Q!{]rM@=4tW`@(! $nŕm]M`+tzwX0l DL: W06nIZ̷8{'w-3"bb Q05f8Lch}~p"r b\!78I\%q591$өtNzxǬ_v$؎N:_ձ,\Mߺ#I+3F\95tzBn*-+BoL T$Ap}Ekʊ'•+HQerusñ gQ Lg9N1{gAېr{N3b,6oCUyPaiF @4ZnIbU=k \!4Ծڙ3'Pҳ;G»_]!bn%,alXEygLvf=AJ2fWXyTFr?gS:~^cE:W6Bp{\RRN8xr;RGA![oPb3eϜA6sIs dx}i7zh;V:”=>&(7@s.HO,Nyp/GG6*n']"=ƫ)īTW$,qNo6X;mFWIy:&g;S1 )tKO!"4(" Fߚp)Iu(HIV!}28$8 l@T@Z/Xɰ3sxe\pNI-Ԙ@HeνH2$ߑ XXѴ|VMoz[;22DBA_ 'Upю4{-={xQ?{=* lmF |c$o/ƻĦ(NC#M zZ"[ǔ'|I3.BJX("jb54ϩˈV(@)1+~ǷBC nEK 7UzVBD6d>TK B!ǻB)!N"K*Q|P `,0s!`gF>y-2\>h[vg)fB,ģ^sw&3A 1%yo(Pr4[$ҩNwO McJĘ6 buΙ9yHH3+~[8lr%EéK0Y,4sBVIaIkz"xoS{8Wn9k=#ZRv̎KJRl`VPKx"QoƃKĐkU~$BF"M\ED@T1J!*W#g]#}"29,s6|XXW6ҳ?y?n;lh^g=lOf"B |ۦ{Qg^:[+~G!rYS#sr4:>`ZN*{KKf>cuwLBe4Te51^7I2Z럞_!ka5jzH#f &-,~'߱d*K%8xs`DM4|yDqXc_z.nm6{?FvHjIuI53A  h0A"88@ A |ȌtoM}oZrEFzLm?v1x:zw|D L!ርd.eCq%P2 ћ4nBÂtetCNUa3rX4_{kK Jd1Gޅ@!|'hD26-ZlF(] ܴcv/`&HH`ݮ'aQ+Rݟ3Y2R-| '[hTءP^=I}#1ttmX3nːbY Ihp Ԭ6E* U|4{퉝?dobnhfcM[vb>OiF.Od:HՒ2vcuL;ό>L!L<1!.+W6KZ΋fVBA>!<] Q0*D3Sa7s024$'?dv1kRa2԰a#mxtܻ~. ܰK Hcd$LN]lOΣ>_< E|. Ͼ* ¸9—{F;9Xe+lqNk"~/<| v%zqϯI|?2Fzpe}{-w]ɯG=Z13hzAџxkZ Pz"te q>z?T H1YCQ* GHNTB'$do\sʶ(M=E*czLb,RoTCh3;!$ǞZ?4u67>EĀcOh&`a"K\HO81%):i_4Yq!3k~RHFЎ BG5|| 됪eH[YresI$j$+QpbՈ6ռ~BF{n$3RC$2}9).(s 2[_ހBh~x1/}sK-:#ZV>*o\R|֟Wjw{xM?xzMjgjܱכ!n|jm~o4zʂqߞGwˍ92~*,6k谛ʼ"%#=JLwp"mHq|ZWolsv~PM_6DMK?јM75_׵TBB-.{{hg JV x= m2ϻ-{IqH)<yk|CӤcu8Lq:7ͅ ޝfa*u 9BAG+_K!Zd(AY^TmK;r4T*z2R:}ГoGFPbC bpTr,vˠnr};gy%%,C.F7/Ht熇V.:Hߞ)ʃNSr[p[O\w1Y$>`;#d%1/B~y.B.pPneCղ;:dRuAJSsx1!/lDx9bG !6C?w6G +ՉPAA ]إAGX%*.m[E=iưDPP.M\[ċmpN&3G,ga2ڦzX%Vd8avs+bcbN)S *%B_ᱼem~7}\!H!Z+zMBbysi )"Xmek)nޗC8qb>*V+n%ٛ"yqG1fvwMp=-h"PMkʺ [~]O~= ,ASKO`Ǩs3dYyg.ے9#A!hb$|ցT'MaR䃾X~DveH$)F屃_v-XL[#&P;kEI= 92,cenfJM*.? 07 ]ۑWR s8M`mVDж;H#1O >8Kv<]M$"6$\B==8Ii[e>:'#xі gNRQ*^ÿ#5]\|O$2h%M& pg.:׍I YY ,Ԩ$0)Lc4hD퉜 _1;\6D$|No솉M-(#m΍YUU~ixOrH58Fuѫ `XLqad )4L]y?.3ܤ&xUlkO`M2q% 7 :\O [`LEE? 7l (o醫~N?=Ui w3Lu c#~Ø嵿|9.)IEi\>S}"+7O&}5x@N'RH:~|ŊX[+Kd/0k|E@vXuBgMVZ B - qֹ~R?J_fJ#Zlu'ZK(.u?.G7P)~o# n"6h3kvl ITғmї+ikrKVubG4ȴ6Ş#sq n*>IDըrB?ñٛ 42wQ4Qg o.SRP*)`_2yf0gv2v2s膊@ߜ#ȓޫ0UELja◆8~)rǕyZ/d=?hϞ2aǜ6rMwŒlU]j)_"Tb]?cB=$`xij[&8QFYM YXYj3W 4ý|r@fE%8ՠ ۨruU_+eˌh~-*Ã)ha1jj=B35- aO\Q,\X[H}VkV;*< /y'O="YRpveoA><׿7$n4qLo\ _o s 9φ}vTŅ;!v"b!M+_dF'_Ht]uOԘ\l{Ot4;&bloi1¦NrSeal`:}6.("~XD#VcJHq9917> 6 T;}iRT ,{?Wa/sow)E[yrGUײg{N nr6IU-[f8W_<4U0چB&]>lRs!2LL"lꣀ-%-f!z8:'yK$ W%a v0s;ikߚW~ dcr*-rC ~lJFoK}g:W̬l{2 W 7q{BU%wN XIQO?ݵ ݋WY+SnC&> yt* LO8HlW)43{5x:zźQy'ty_anbCJ^nE1\W+x4 O]0nU3sEA8RbV0p2XZTfpvu5ï|QAی@sKԙ0Ywy-JC[j9"gծHoCfBMo6 bz{wL?WTh'u?Ԅv]s]Mmx~O7ӕ-ɦ*­we77`&@7ϖ:7vOĭsT4nʪ;s7V Hc_'oT14[jŁ߾cGuͭ:XJfu(N_9>ƾ?OqrDeAϑaL;_\%OԀC#xQbNi׎2fK"`pΎu󲑈? ,aoN]nv`Cƌ&\ B*nVBbA..de|n;KVڑcWdEg,: fBI?b*FaHq%?*9U5 dNF[lY5fyA ]ݜO~cL`hXSU91ʭjIN~ W7xK,M;H ~&9ÉQ%@]: /#6&Դ `݅"$e@Q|#}#|O ,tb䋞 | ߥfzwBy.ފ4o9E.pU!Nb"k/퍬vZ oW+d 8Y\mGZX8WWhd3R,;eF:V۬R?ܰvyW`l~DoCʽ|WJX $Z,/4K!穮7K>o$5T=vC;[ [G?  X5`(W^.ѹ$k K+`reyxl cF< ?{K-!]7\sLbJ_@,.Ï,YF/pއDJGJ7Β^NF@$ vkbZH_3O9uSN̴)WU:j_ B)* F 0,!FG(XT'uCoJ( WSAUUdTxdf;ݵ3~b@{m)lUnZIKh5H~[Y$B ?V8MY8\]I:siuJN'cHM/Q]9) D&#hV uVH\'å.&2@T߻я\ۙ*S >ef;G"Ii6ĝAvXA|rߨݭ}>8;z!wcqcT]t#͎Nj(3{85?&9& i(B1Ӯ) fpUXD{D`MmEo(1@/?Z=2lr7+wGDT&UeQJ BMv ʘWWI9( ]Jb Q+YX|uI~_)_ԩM+dg|~\-\_OZ؄4c ̔wӦy1qe8p%JR'@>dwvJ39af$D'Jy[sDAz+0;]wGA\ϥ`xD~ƴdx[غ孳R)Hn$o: 56 }("I;C59H\FBOOɑgBzoGVbEIK I6 §B_d]ڤe*:OƤch5`.7SSޑ`MyӔ {TGn#g|Z+8] qMѲc*ʍ]n,9=Ee35Z 114nr?2M D_vR_s3wBDCV|# _澨H }0#;Tv$vq*.8HjLTRsXX!"YtKg%϶.H(7jE³1Qԭzo~CUߐShC@x qcD\p1N +QܻGrw،P.Hiя~|W$M-,V3c.ԭa;[$;y?7u7HB6Nl *k >abS*>[H>Q nJӢ-`wη3zNtʟѦ)n=$$ EEe;eEP8 h3VZ;Sq-LŦ^BɦAZ Gy|*fӓpmS;@܃tb3qT/ o /"`(mV#!bajna]q!PtʕUN']Eq…_ˇXi;vJn-1߲´1[ľr+U{ +gBwP89BcZ(JPPab:F,e2ON8@uY:쏻A[MvP_Β= 4n.Nι.Xǩfg|bUI&^Vs*gf0.Dg:-;U e=>Q.C-꽹G5)w )mDuTDXe"h~@ _ɟSHl][Y-:%nBJu4oyMb+~l$hyjpFy[Lȣ#o_mizjq"$րNF{ՁY\YѼnv$('HV1E*Sgt˫IJAAM5RHHqH,st#G)FWR!^Bkg/ʠ[{$*S@ 7B:C;:$͒ h{UEHr=bv"$֔j +/*jD)7S+)(Q(Ήﱹ:mNZy83*x0-uʧv!qv;ѨV;-̷*KJE!>v gRG#wBQa^$6؜ `\Mn+zTNmf̿kb* :t9 3EuK@,I2UJ@eA}) bRV5| %!'*ARz'\A&߂ꍡ(ɹ$πo,›2/]"+?'$xZ O1#߉:0gX6nv"@=Ω}bJ)1W'?D p~N RrJWRBA*U7Q/ K MCPGBRW&, QMaR/]Lvג#\0z@*u,fS78?ͪ _Uy30zKgˏjK ̟ͮp@Bh٦Z"E @a㏪s@oKLTaYA<sS%UȮ.Se@pb>cx8xnzZ\jFnzF7.gyji@ {s*ƋdlnRQ"h1<\xђiFL|eTAtY\ƌШƚUaGQ"6IH;q7ˇwx>I8Ĥ+6򬻌gWn!H$nHѦmVJmǛs2^]g))GP(&_ⲁ_ֹ`0T2b=PeWvwȖ.(&n/!/]~f{nsFa떬וʮ99E65@J%8lz[LIgMJnEi,NjU]%(uUC{|{'rV\}R߅ qRNAs[(qIX(߼-TJp5\T#Fm-qYDݻT~VxSxCq2UM2&^@7@V] }bS8PDRYr놔>R! T#8P V@TV}>G&.`ۗ#S'$aޕ@'ІL͸@|ZM%_z]u*ם!s/8gWOcmbOrB4͵a@đquxd+b0f7Dz#=3]S՟[ O]jlV-95K& 憫6¤݁ŒBǩD7a<xYm)v~*YMI8MwdXNMzb9mM5%ڜNJ 嵸;%mfj-/k1Yb#A5 nR|ٹϫ%nZT2aG._28ɲ!\+;C_Czx|7d~$ĕϰ0{:E^ahu.bSӏyLDV2UlkΕ6Ihbx0\ft}S<ہI/>%[F/K)-Au%E@fb_Xv)O{2J {/;4)3MZsZ-ܡQhL9ZswdpqS<:zoPӌE q+NgҲƙ r EMU $!pZf[a YqD8֧63P/v+;F$U yҡGxIQ%*xx6duM)H>5786?fBT=B%ݘNڋq+3 QLy#6ѝ%lƳsgi.*lG65 vAYTZBL Zh̛*#k}2pL3DLkP&kЇtNd[7['GL~-h b>PPwSE(.*?{RDʨXTl ㈝,P q\97̨K4 jS+ʌg3/M3BR Pƒ;^lJs҄3$:c9J5Iq|oLgl2+ Fo:>Kzp/3) |>N#<`3.+*n5& "<]uE|׍i05&O]<@#5LC_x^ cvHSrSkja Ǡnm]R;"3d[]"SF6(FzѬ0h vVºSXL!0kCzMXH֫۾FуVQ`1Npu~no".wv>MS<J8%SLO4}^FHb mǽ]1k)t48x zFoI1uBAui&Iq3t3/g<ĭQ\cDLq3<1%Θ=i3\ 4sLm"a4# 1%Uk TV;fLwIE[Ȧ/7z_BJܥWS O=YR@RD0TS膊\7o]#K!$Ƚ]Vn)zgo*tWk=|#Dm^1w(.M߼DM.KA92E~ǝ.DfPcm?n)š:]g,zH¨9 JB 泦|/EVN* @4  EB{ĨKzLtshMGS%=(/EC iVbֽtP~0wNitK^Zbמ<䏝}2xQ '=w6pgd 5V^k>bdSn~ZG6,gj4ir{.oCSju4ZGpHO{ѣ[V[ޮlq'[) v3c-9*܂L3[- -S;x%}37`: nh?wbD4[ \mi -7'#XTnꟲU OVRֽZF4>`&+rTκ'ziI8M &"(~X]XnIfZ#jiL]zlRxzՑY49B/wS]:*YڊQW2IXry}Z)ol)B:&-S7P_{Tߖ->6H~7pZq"$LtT>Lt%'e2b%2 `\q *1XV M ú^ѱLmL̍^57IUfXsijc"CܭS׬IdL^+q!:IҙUL/1pLH-M~;2Hľ7V,/NV*gg)M$/ԯEhHਠY)Z@9Mw]2d@s&L2ekt8ީVuCf`jQ6u̡՚ԧ'Lm={CP៳Mzߚݽk(= /ݞvT4֝U Iˀ}I&rvV6q!OѥQGһ=A3-'@"-R\A9< 焔=ت hFzrUV*S˞ Qf/L:;-ֲh@UARLjI\/9$sl=ϔGW aʢ#u>fmA^%C NjݺPj빒c *9=xJa8%Tx{7}2Q+,Ea!9Wgު&w9O%9+.8gA mD1BqUŲPS:g^]c(?c5eTJD hzZߟof \}1iQ4".(e]R3CB,R\TVS[0Yv 3vHܜ%Ք˭y>0 ӟ $ m6;U & lgmʉ %ďNC^OEuFkvp%'Ǻ<w\O5^\=]7&y1kҚB{rb'o&j慞zf@FeϴXwZ/ |/vX1sTO-ocbZB)hhԻo:ZgzNYG=_3N#)ԶwOwQ^.GCYK0Q7񿲍 RUiPD)d `!`uL!Io*?kJR7QGE7;w+uˋیVNxy̿S(>g yi Of&YxdyHٙT)̟Ch*&=V/ )Uݺ+CHI_)|.9s;W&aWR K:WX<,KPu0)f秶fB&ƒtæp:svE3>]H&unwjwF/L 2#?͓\'|J9UTWkmJl86@w;AQ[vzaYꞑA9cLnQˌEsO{y$y)JNkep >Sьfgz=(r}^Ԋ7f-Ԣ,F]q҇A2>-NjLCxIspndgBPJ)MBy?!U$vMlM2Bdg`sO"kM4uq|ΝG t %sFYtf|YBUGyMԊB1 amIgǖ 6C׽5e=w&RSq&>!7x,vq;XbMoHMo9Ky(;dLm8?Mz-$*dI3!/H6GK$Ӆ jC,k}Eӽ%.+Om0tT(Ov$a];;Tf)NPp s_OmmN!%6T58?=sdwUJqv8OG2 c$>"/(dRuݮL#᪓LYȷWtY4KAUU؁Gyxծ8SB[dtC$Qq1Jbվy`uhԒsyb$-s㵓vT8)@mC}D }y-6ko{1ReRX2=KvwC'6_WϭRڪ|>3|6ոˣ''߶1ȡ^ {@9@A$qRR5_ԹFR :;`׌*Yas&9wW֮P-u4<STr9]u{: R]~g(BWM:Aa(&_~~i܍YpLXu\XrrIJόm՞G =_=nc7]&dFG?.xY|$Y0&o<ظ1~.\yFĪ)O7Tⓩ"='$MSKH̉U vّp%>y^U, .܆kKN(U{!͙YڧH zէ+Mw{,[+sqlK,鄮dØ"g<=M2fJXP~z\8 0 N5 ČG鞹.Yؘ?.iTQ z07Ĵkgpse w׭>|.);?zDpxs1rs/gdBPiGρ,PSͽ2өz?[_ygSsOB=ik/㡵\ZK7_DIt(YIP_i;{BbW^]j<w%2 c%Rjagí*yMp93"2yȻFQbJ:~mGWkGN]nA:RE1-񅋾݀l%L8o4hռo0\BERԢ{͙k NE[Y3Y.HvKUHNˌޱ.ci30Uޭ4Q82֜ɌPl gu$5ac͡ŷFk4\9#:hgwz|mR D-pKIQ)vߙkZ-k^x? 2u2hz~}N{{]W&M` >NAqQ>?~]GB`uH/ '\E՚ٝR,S1jg@0\;X7+lwԎعc@=\Fm&,w4BE{W(^S8\-4(QA%A@&YRwcHL$72JG'|vvdCq+ONCj*MʜGTN'g|qtNmԔ֚&-{>ҔwXjUY:;S% u+Ve>VN%Y\ wv f(ȓD} r@*.m`ټZ$T k{q&~E͔fOi۽s5\ܤm2v崅<bUs&ս}4}r \E4TM<3e^}\ރ9Wٌ>_>ΘEV*B'&e1#܎Z91^3px~>B3U\* ԺUɧןi3'\6 xi`5ezݤW!8oq!&<>[A2dD,o>|v:v A|q,̠'OW;A[xڌwC dWˌϞd& :N= 5^^avn(o!?#5Ӈh" ``WT,P;l [0*cH`X:\0}(lvP$k,`Sfy SKN`*wАo}~d2GnZ=J5vAē>ldd ))y)-3:8Zc-aMZ4G6d džY]ƥnT_`߯p3rS\M?x)g>9. PTD[T1#On96ҸLaU̼.=)e0~!TU)Eϋ6ϒ"[}5)w 7Ƣ\K:]rWF)Y P U<44QjL Cږ&E3tÇ8vSpdN]_wyKcX6FC_H..I; Sۋy0@ ]G cSĀX+ Em (9Of,xvRƄ!G,͓y^prT> ǫ60^hj/ӛ`Rl{$ +O'簎3Fn꽞כzmK!+<{ߖ%W$@.wz߈K-Pt!^sl|<Ͱ.G.\SA/ub/堦*f(2 T(y@Vo *n@D*;L, ^t.n#5E?EU_ffxd#-1YRHc※tJ'ā 'h|wb%D [2Ee8̴c-Ne߹[-#8* 5Cp٘RkrjJT *ZmNnG}ᖚfgps 0@Ҩvĵ6 ]m̥UjL$*Sοʤk>:H5L_sa<B\I1ZnX A W1p-H%ZSX"UqD;DSc'mpΕu8{ITd;iʍKv\A(+eVZp &pHa8DּL)TM$_=V 3JDGOesM )?L egqxD8yM;SXdzĸQD!$^+bQ75{>*o; tF*r,cUV<&eafY[ W`9kSs'C)$WX^U"sfI]-#yդ)N3]5@ 9|:̉(f J٦]EC=Q\t,nC+onThcz'񦚔BosU!nO.P۠|XG@r:>O .^rXGbZ/\)+!zNi6u`K{X:yTO+ t~J\LTT^~*5VgtZ]b?PmRVL 64$]!6t"4+1+.Uc's%*ن+AO$eGIW54P\nhÙkj 2 D u9Kio* 0̊t8g3X8QuAGp~אSNl[kolJɹZ]$Bu,=S#O!oL!f#ͥ_vPo'0?0JA^S?o%a" Rjc]}Ĥڻ66hq73];Uj k^ hgOry[lk'/7C}خ|uh/ݞ2nyGƮω[xYoztEdz"z>2&4L bypjy+[܆z{P~:e>Uk'od^E4Q;} lEH`"=Xڐ458 K׮^<7z,ow(D.mCDOIBVY1O */y#@zAӇf׿Me8uz>Rޤ\0 aB_KPP3g=wn 5zg|5!}*1jZ8?sǪTKA]H`2YG/ʈ)?//Allhwb'X\:RӭRnMPMMmpF|rv،s̬3m~Ya, MLu|LA4ULѵ6ɠlY"1+.?dUiKnfhIԂ2{ޓhՌ( N^!,}9DrRNr2ESSh@x'K*Ӽg"gM}NsWh܉|0wFx W_r疧)tGdNX~*nʧq ^ q17@4.8tv叩/@:QmԙvU,ዪɝ{wL~^(isqiTX?}6dq6Nh2Xatεzw0/<&p7Lacz\p-w}Qj]S4+)Rg|J˒R%j*ZV`JۋNͮw:/$q}UK==2+S" "KW SWNӫgGdTەԫj\OE=xeK7Cq MMiYckO Wm$nKf(WgVES~ `xsth@,0! E1WIL =,|ǃ­g9dN#иcb3>9 ^eu.^fvyVuz:6ϒmnUISŮQ)ܘYA3Yy1A CǦ;&2?8)4S,"9,gOlQ*7!lu8Zg&˽~-8!*߮K#wKNۭJoˉ6 _$G8bU !i^ї,Mlsi6-81OKVp(chոׂ><>i=RWNݱFU2`(s:tNGfT2xg] 9 ts1CjlDe Q%z\{N9!5Pmy`{_vNEtt=KWmҾ䥺t) d7u"k9NQWilTx6\x6 #}W1PHJ \#wK:qN #tCUT6vٖk˻. P:/S,UτYF~x8/kKԥ(ьG):?MsRs#.=9Wiga:6ekQyjK0cK]6?RʼnzN!}QWDV䱀!Ҋ1͌ B{ZP*ECU]-W"V弃?W/AWތz_>fl,^SјOu$葅<%q!H @Lj<d%RВjxsc-E42HUCO%Bv۰uɬ(?Is&%TwL{r [&wRHM)J?ǖ ^XF$rA4)˘*L*߻kpꩤMr ^&C5 'PN!.dUf;Ыn]׳YD2'NV; VG3g]^Xd @kL5ĦB]6Ce2qB7#EqUiMpR(\kx2!i%Zua }@z^ʨa˛NFJMXH˧cf_Zv쭀o̞$WRm {4:$-gGpuG6K"x73B\}8=Pj IcUwַvOI4;o&g{v-z`7ґ1]Z# A M[S~1ϕ]~qUN]/bwmiVcr)Dy=0+R܈*G 78#ʻre.gIl$qu(>=H?rƃ`LYXG8pk@P*ݗmqyvsHyo}<%Zm_cKbɪ25Iұn؀q=4ȚvmiY3DR:/5DKyDcsv2ԏ|)xkĬWU+ͮI1Կ;qjk^)TdK`T(1Gk 뮭#DEah}CWū[ ߾跂aM^a+A JiKUi$-¹l(Cb'J22'}LFz~sHDJ 4iKk6ެSչE=D\́ b h4R8ƎaK22cs:T6_w@\Go`xW=T0 y&i/h}:’ێe\߿T9;"V ݪ1>\(-5Efum6uSDnj "=UWIދ We n 5$(4Sqf$qxXcHrXS=>i1ܢzAtx{y+aɈ&Y:.WԆ}`F ‡Ǒw`߽I Nh9{.rtRw10G>LP`9 ŋj{8wn}6Q,Ыpa>صeK{JEpl(LTh6~Ek`s3}P8&}XO/;w7nonc$OGMͮTyKJl(E Rz`27'q*I .ڭ\46* w}8拽؝u 2qרHP-lYq_qavW˒Ŧ+ 9!ږ }: ՗DrL"TʘA]˶zoH͘{SI?'&EUs;=,ԘG8mҮk .VctĞF0e@_mD%qmXQ0F5K*y1~qױtPYE Vƴ a+ʐ{ik.2_x/j~%vAJCDd\qN(\(9>x\V9KmVΈ9R8 >aӀ۪C\/DbG )+>`B LcK^2ּ^> L=G+ZF%ItVeŵG#\{\;Txn?׸olŊzV&ʡ:R(B}tUec*TkIM7Jgz~rTd$ 2#7 <$rʐP e2`!NxlP Ĉ0`jjV̹Nkߐgifa0*?IX~ K, -|&JѹyOZ\P!LB!_9cއtMob+IS8 SvbI%MI(Fb}\c޼léDW컖 /:ƛ<ڸP;]\QvoO, \y !F6N7,?#{)v"|)F1D[^}m:M54 ^p;Eᣋ qd Zb^ x̣Z {KmkJVՈȁ+D:2(s鼣k&t#Ǖ`Rc̴Nnkƽ7|`Pe9+s* #7/ujs2Rr^ b-nVi` jz}N!dUȪS^D8K+_|k7V]Z(ϽT|$!ݪ4n.ua=l(1VPm)5+E3":c3TqpivP[LX"9}*l͉጖Cq ̻j0C\]#vN4g(.ro+0}wуE`\9sk -}|N\ypWYp\ `CʡbĖswCff~@jxf̑+*8v^. xG;E` j IhJ(7t $\{uDOmK0oMo *Œ4W*}ҷ@CMglJFqsx4F)O#$gEbLNNiWq®pϹLM,/3_h:G12 Ss4 OؕXshwdS[ZS:02! 30cKΞiD]KbGfE$mL)|_7 W9 Gz I_z^̨==*(SKWOW(D TͫjoVHag+)g͂ϹZ}ʐC{h.vRCT[ir׽30|֮_wx4ɕ S5f>>4P95lM˳|[t5~,r>:)O,S^+خQgFٮ兌J p %C3pO]Gd1Z.S@Nǫp"È^Q1`d Q؊Z(il#Ţ*tPp6U(rQ.IcHNqp]۔4f]0\, j{Y8)>W LJ_'uQ )[m@ kgp7ITg'^'Mv.\TXӎfB)!dyr5^Rω4L~-P _.ƽH^$3N>==J/}ǷppSWHa゛̫"бd ڻQg|XC.9%WS6 ߋ=,vtT⊽ G".cQh_xGT{a*|Kl 0Gc6"wtTR gHEl9).FYXFz'% 'L4L^(u[PZ/mؙ㠼 Wyr}~H=>Xq*yguu]˺:qH-bBpI=7V,QGT9* kg .Ie\'&rg6KsQVN.YmbP&l"ވW(|B_8j=ԥ>9GA,dHI7J6߉}[77vd:̇и %/+jm;\8oLvrRB`6-)N}sB XqXjuP4Rj /mƧy_do^^ǬMa+5i;VciFmȘ 4JWGXC<{pZ+;`yMh H+yuv4rqXYa :i!a?>&SV+%*&\IR [0\ -<ۑ sfF|Q8.+j|Xglc`%k;O%qFY 6ҋ3qߖҺFn'0SOM'fpGKJ -ՙTCŕMM +ШR 3?= }n˞ Ŧl5Vm?Ϝ)~_~T;pSڣV"p$7!-~}ᑺC4[oiwIbI2N4i!nna1-P3ZU8nbpvA|0\nə?vmr4DRm7L:kA##|`ksk!M*U i-'ޓB@$,:iAO"@E%8G3W ZUosuӓ/( ^ Q,2 |Jr:P.N+y˿ ƒ+~'_ Z ,4G>\QNǔ~w67N7 $q O|T-}N0vU."rs2#9o:3o&%q'9 H܊I}BANTPM.TܰwK:|Or'Ʌ|D+^`ҨjWdS&;3JMҁane~B=GUdty͸3Vζ¾BJ|ьobrء&eg&driU} Oܥ/l>!HE-0J{s>]_ aY`MRdi 1s KaynC ԛjBP8ͪ5ƲK|\AfS㌂aj뛁Rk'ZLPNӇ :RstRI> qH6afޝ U*,1@|_R1€2h3gMpLh$+εű8pC,5_}8ulnńNbNw.3> 8rZ!$Y[vPi-P+) =@}[2 +St|T\1Ug–-bܡ)0D*A# {l܋935t? ֘j{6.67秫SbsBPv EdQX(&-5+b!6 q_!wPdKy{艋LAzmF2h6uibۯQ7.`*>;%𦰬68 W{K4#?_=s 7~W\2tW3n&ezLMhw!@m7a:3]=@/#O)ϒp[. qZu:mD*wpMM4>gZ1& /Ce:nwa:~wm4 |ni6Cejh$t(2 `hGLh ;_{oS7!r2G{b+l\[f!(&y7Ťׯ U.$P(>Q!rJ*5<7$J|3T|yJ'\/ L,yMohIgVM9-uD!:9mg*&6sW2M1GqT{v}m}%L'E5Tv푞ဵ~UݲNYF f hzm#bT9.2X68]f9_k fIfXjƋZuI|)C*fyr{kHdqf1X2mTFHƋ Ju;xǥ VemIarhcsbkRNYpe|} -\nxŒtqU~r/yP |u{@- qA8tU+`qrW !BWfpSހkb[M>ewvK{kH|bv'f,fJ(ovj+x1`QǵE2ațf4#!Fxp<oc" vW!sů)9M( e'|1l*]gBlL_<繫ت;tw(Lȭ6y:ܟ1&!}~O}窇6Q%I5kJNR{ȉH%XΞkqOd!u(棄uKb*n4Q㛤}..,( )!ԔPoMh,GK@hg| äJM~|N (h~h6oe8ټ~) R{ j6a)Zz^Y:k}=#ҫ> Q-]#MKq Y#KSF==rDk^^B~dbH Ce:S; DiAwٛu5C^b'< lTahR;/5)u*.,xvo&#Zѕ7w!8>&zq.>v ࣘҼn%% 2횚%"5 [ux׈4 ^9Zʦ\8lJ?؍w3NXX4U-K-W'r7ȉ*fqоC<(1TMw`Z%W S,\`HIPRJS62 ~ eHEbB=9sS3gfsԷ<7#"'vgT 젻ɿ[. >y/EI:B\"YئCq0^2@ <@iwpb<>jjMo#QjBv+-u=Ww3ZkeI=vocboG"}QSϵJJJR,AٱKUAL" qKlY"_ mi,Twŝ~Wɣ@9QwTݭ1w6;W|̨?mOySb_2 9ÃbX+Hʈf:CRg%4SZb4Vk_ 8h$=s-=-YE'8I|ޙH뇅QBYb\Ƶ;d] GOn9TҊиXH 2Ւ]˖4_^ 4LP8X@(pAZZ̦7O{'ei3;VbImVDF{-3#%QaT,`&6U}}a%}g8<)^և1|$SUԡjX3IPt|QggʞFQ3I  TRs[pS\,9Kba<0%W@^ɍoRT|$h-h"6W8>ugG?nYśg\XB 9u2/)ȍswe"y!vjʏ2yJ*K_~Мa} s,dUM1}y`e7L2SJJa#r1M8Z y=jxp38W nxa<7oۘ! H1[)š ayb6GyAMӫ6Ol%lG<+Lw `W1*GrcA%'g\hd-6X7e(iJ'jsHLhlKdڕ7fB%P·bsd*1&d dkSs_F(IVFd'_:p*ΏF{\K>Ɏ ,KNc5!صsDT+b^S[vXA :_U]6ۂ KZ2٬g=@"g;2kԌ̒ԈTMsh8kLBk`_Ds[G<5h(3¹6dqI'# ;n]jH5;%+Ã4L\Nkȗ2eLbK`vynձYE? -,0vk˝%P Jh☊?nj?:,Cq,]J;h$V[ &>lFޠ5RMdKPۇSNd&fc8gn<خ&7[}!!ؼJD>RS^% ;9ji+fXCF+АI*Vx<{KLQv~fx dbO͘)N9{Φ>u Sqd̔rL^6]QltzMmzzMpJbDo .FD-'ݟ0@lw|dMӝ% ss?ǓOcқM4aU%\[{|Q }1 i!ذu&K+@]Ɯ]-@)_w ۓuB}:pm&Kj.A'둙raw*+MRT=wn#5W{|ft V:UA^-Z>fR昽`=Y!!V1QVFQ1q}}ͺBא%VL{/?R5/S1%euU'hj6z?8`FYRQLV7\y}BxbBw(D1@nZd: "f# hD=XN"V{E!4dp-HrAkf B1ub!NG.52 \~܎CFtP1xeɂPp~#Τ;UU901 0qdfU+rxPyt;Ʋ9:CIq]4O8'%F#R1 1 'TJ|qp{n.S"A#MKkt=4lsU(,g c ~WNs>O,3p\.q {ukZū EȘ7G!m{ѕW+*MnL*Nzh ]g;z v3YET)ehwm}yuJ_YԂ \‚{^NpW'Fn SmXsl 2~r)jҦUIX婽)ћO.2V(c%φWːX}:pb٭20 oWi Lr ZIThYk:-ܔdX7pFHm宖T)s{c/m?c_7"wjL&_rfJ)$M 1k` ?ƴ6.!b4ʆbY162sZg&ɃzÉ--#& $Z0fbJq;B:bاyLC&WqY2D0>WFCw P dY&8()\EMVݵlBjgdgLğFl7&h hp ڀz{yPH=ҥf(o.B2tET{g9N5V7Opxmnzϧ 8  J4`?$A]fo7TMKzgNFFgHaLsjJV{hRylNNfZ̡t,YTe΋CHUb CQUx>E!*f[UES+ՉL4ytEx4d.92D ֕~^!%䁺8oIJu ՚-5AXFkӓܿOgYF-v`_z| pKO1*+&2&-cSd\|_WYlk?'t{c2L1ک5|hin9u=ox0`&F&{ Ff.?)m1l Y“PfMsZ+*RI^?u#~,~`79Nԩ_q=I<2 b_]ͫ=К2½=Sȟ[Tz\;Lpyt!R֨-\0LeSAprh6GZ!U2*N1H,a nژ?D_s`.CTmD-x&);c&AL6qK ^ˊL6} >{37Ȧz",P2\y%>?5fWbҊ 546XR[rGIG7<l[5Kb@t%vFPDۮ1~5GCOrVՔ[y}y~@f~/{SbYQ<_oΡJ)6J;Wm᳽H!QMuR$1{ߴ^=I$N`ndZ8sABq]0ߖ4CƁc4Mg RXЊE-]q5WMG'L :!Ne5҄T"a$T YJU_K>C/ A %&J,n7<2i,p9U*K/@h/ Ta d]Fo^#HIDGVմ8̥~sfm -w(x'YnX3xZ%.yw_4~Qg0ܥi]?M 781wVsC3E1Gv.BdO:^Aa͏< ס1+5 ypR0TqBMT+:i[E\sI>}m.sr(NJkIOeVɡc:Պk誉V. _*z^pm3v9 ݞR:kn%PFQ)9ӵ!!M%vNI:)L.(ضL\]Ra~x?fZ%q;fZ h%Y"-w ɧ5¨ N⡌x O#n|VX3#rBN<)80o-ƋlD'%Z mPd{r3$&_b zY?;WmG W\s`l'( {!֯,#'Ɉ֟{vHԐmRWnz"d!N NՒCBhP/w٦ӣ\TwɄ)I98Km+`X9CS\1.q um vOJo/{j^lcN54i5#ܙ͵Jh|jIM7{m$SMTFz~9q={^|3u_M߿Γ;ey*F)i(^KfqiAfܗۘB5Lew&,%SìMVه>1BO7t]q!%\)2U2e,l㑇ARM(t˔2$BX[,Q8[r$^R1ԋ^6q:gɁd-N/)sR,V\.f=aWP!+TdY mH#8P~ug5`檍^K$Wus<.:z.LsupeIpt}YOK)ӕ9iP&D}%i4|k8RGTXQS°bE*DBR a@fIF:xE~1hcrЦ~72Yމj2BE*lva ۤšd9Hc+]_5YuœÅ` nW[ҥ8NoCPZTqK2ycUxՒB,xvRo1T8~oo5thSfhv1C4 .|!UnF`wq )j걧BWn*":~,m 9Ql笉F$dNua̧3PEb4cbL u.)FBtJ ȩ3W暃*e7)!w e&,nv]R3/f3P(xnѣM95V(5RLOGҋG- ^\l27dI=)|݋7ȳ r4!jA໦?t%E>7ID?ZF/|0eJT۲,슰ouf# NRoճri}Ͷ*gşF|kO c]ݺ33A0BY]oI ~T25>%'tðnYh3!$sLDpz I)*iWyVU\8)w&|π e=G[2_0T2Tä)S%;=%4Y,I#=ɐJ#6agv=Im2H9/FL)+ufE&6+#NIH%ɴ13ߪ0ReBMQ(&|yb͊-A#DVKv m{˙qqc5\DOz)io\&v_}֍LNnqYWow_.lRDT>и\|O c(Tx>﹎`s2PkRRYhRI*&@kTtB요Ep,gtbkiUCeٙ D׈mlB3p3n-rYWs=0NWG[V-:@)GKdIxgxR<3z4pKUG( S6Ozle@mԒ]#i#lñӼs 9K^ :WKmnxdmc05N,58Gqq\q<(PunSSd)S'l!Pms)kXRSY['!][ul0W$9(,l7ct Y2N&?g0Á r;'\ 5EDǬ\VBe tT'P7]:hu@su tLoTV-f-Wm=(eZo M@%dhn7wz`r}ʭYpT,e<Ǡ5T2TSnAd)䒛TW7J7mj{ xVvyL˜ŰQxĔSAz`!vv5W4C@MEoʜed%߄VƷ#h'z֕?W,j lé,fJ:}:]o] 6惱yĐז@ewEcIMŃC}e/A}(.la}lݔn,RUpTjVK[a:RU2bXYYFsxwiy> :DCQލ?Y] Sg&o Ǒ?ѵJ'+xәMaG凛Y ݸn _&~?A O<:@׎@}މhӠv#UzBC$Tʝ.5Yr3.ýekng+OmK%SjtNQ9 UZ2mS-\1 F5'>뇕;CS.Bb?z\]r)eqCJds BO̹B`?jG}j)ζߓf8le/)Yv8Ox_4e}y;c+| :"~Zfj\^6TU)}CW4$6w ΣT'E!ܰZì)j) 0XP9m%D"se=Bf$/"=x#=tYw0+.nG8 ᬲ26sn_{Fus˗, Ts'$c茦 yI7huAjO;5#jaVN~G!V,s{0McÂծ^ ᮠ& <0 Vl" >U_*"-vp*.՜ $RlvuĻ!E;4PM gQpbT1yByS^Y=ɨ|EIض<偯WSnY urSru~:v`w`JzmQXҗ~^KIm3l}2:Rsګ!V ڭ`N[kʵr5(]u>]? ,# {O/ec&9TErcovW.>VQ!@'xO1lv Y:N=bljxc<{@ג,Mtzg~6|P{kCGz7`SHS(١\.#4m ~6帪ܥbs32@Ŵd&m|_,.9f<F$ 0%UYh̷Ka~JrP/;{]m`<ܵ2=@FwbŽ1so￑|*vJoQlݱx7D0ZSI@WϯOGW2 J!#ۑu~`l1sO=)$Lh1(ޡ;qg4l}np:2;+޷̄5gWPZ  OZn7aiV LWsu[oր}iKJb=p@:j8{>j<.WRtm]%0?tE;XYE3٤! 7O̢/Crx* ?qOx4k9j} MR⛄. 9՜p1CwY(] * wV&%ԫvyyY+^_%VQfZ&nN1JЪ`TX1:sgɷ )Vmzpa%fBSLWYsZvUX<械FN;0:TVyVhHg;kD`!|ă`gnQqwx~ߦtt_%}[_omw @^wvFdw.ʎ/}xown &t%Ww&y?[DsI'羟Mԣ%T~=@fJ| ~_zSt,`G>qF~>5KJ zYK2±yDn(9Y1n( ÁkBяBgAjCY^ q<ۜ9д˗5'!]eLDn P^NCZ X=/@@f-yyK;qt]1tƴ((w!ѳʉVNJI$ pZ$wI[Qe+چJ Ր_[=6@xe`9}2gs>ڦ֟NFRƯJ_oE \LI`1( իZ#j8)=\1+c[āב[X" ʁ5&GCEژbL '?soF/sD'uM_h0״Q[%1j#ë憢hkz1d{XcL眄[)t˭nmp}߽+ވp#1GTl5.p2T>dW+d%뼿y/k.]p 5#f⮶!oqJ}@Ks&~߿'4n6Uӄ2a~KMhRbU2h )>vBGkgnңa$#]Ѐݯ/ٱſL?kkH}eMկA AlX6%PZ^%4zcFT= R-Aj-OYa0ȭ.26YUᅈŘ)'Z0dQ@]TWD\}iݲ=^B`[y|Z$5 x- 0qKrQ+)}LVr[쀫S5~ͱV"{XjݬɱM=@v9{P̛HAV m?B^%Ҽ>;}T5I=u*^{gFMj?/YA\i:a,N}:%T>ieMA2Eq*9pHF6|"Gehfɲlc[-C;ӢJ Hً]:^*CY_\-G.Z7.>6b#EkhCݺ3n7mVGFmZ!KY*TtM8* c;2-[+&륗#-&!pSS@\cߡ-B H&} js^L_>JS+Pt,{4q.朶)"sSKr,vNice!"CxߓGG~(,n18O>r!tew\Wj3Î4*Q 5QDQDŽ8Sʼn!鏦mM7xK|=;pY$-Ksh.j3~Tz(MhP&bg$Jn*ݿ@R5JlS%FBUdרnÎDe>Yz 8}寮es \i\fp/P!p9Nj(6*f m KˣTzKGhσfn A`Y;=>]7l:+`NX}=w1܃ߙ| =•b٪> -7S][Q~QξI0TEֽt$Ѵn{ݓ2$ kvpfd:1+Z,RfLav]2[!xJ4pi JڭVTc}t4LV+8۸@$:MErs z}trSƽ왈1)="ё"Ċ7m3oIA]'mc{S 4EQ>x5PM(-{]ڄɒƟ\j2}[BqFgIgi"m_Xq{}x ] O.H.=?jj j6awɄA+l{Oo+Yv _ǛHJw~dֈ&HНƋר0 5foӵ;}IEuzˌM=ٛ:i"ø- kDNJ] S:<7YDp=-m"Ra0,g)9<>&62x1kOXڍ/o^5509[2St1UrF8tJjY2$-}ӹXADT.,p.&z#!p AMC9$՞=._&$1څٚ_6u ؓH>M0$mmqUJ>E'7/HgD=cZ0*d=M2kTR^e/4"*V]ꌏZg-z 34Nq'#{> ;UP*CmH0 ,#WUլSndžJ,(/R7}he֍+\ QZ4:Z<]PCw|kG²lZM6W&M'sd69bֽ͡nyYB%X4޺n2*9a"K&v Ŗ\^\8l,4eTlilcrǠQ$zpf83?fќ8/71uQȞxTgGYX#=,g6ga~+s?|vsTl`vAjl3߷.!Zky$pT`k~Kgyv s_CD~/.Q>>K2a?ZBmfKG&jw=TȞ~yF)Q<4#\QNdSRVAhH Φp 9ANgEmX\\eXuOAv*#UTChY]T)rS5^^b ]u'Bh |MkqH;-FMUuSluS=&ʻ cԨ] Dዷ`Fsi/1V}yYxN ~a[=T<`^u8h 셉p#Ɔ+!xc=vk=ʉ*fm8 b:-UUڈ:@H)UX4A5یs+@1X=À%wϷ{qˏ ?ǂU%w[n_1>7Ml$Ve{.me9 Bވ+z@xP`iN/T @A4.Vkzt.Cϛ#,bxPGa xqP,}`ᥴ-"kM+~p!f9K٥:1)s`Ed sL_ό p8~WS:] 8@pSE~u?NM8 ̻v&pAGAhQꗁW]O W%?PRmVn: ʳhUه]xZ$5X6EZ BcbI-9N0y8 50KIpmA *|L"*OF9|ڑ"˝*Hvy@0lGrs5|L}uKnzU9 !Gߥ6r!Euz!غEF/Hp"HU@=P5ܓk12YxTk[:Zpݪ}2ޗҊ5.x;%nū4`<"c9δCo#*MwL'dەv7)#z%kGHÑ $>{cM }I1OCgŪ'Ȟ((B}SVH{F3 vs4 k8ݡTX2H%`*) Ou8^9jX=W;f}YB K@9 D-Ƣ}9(V2># (_%f{پ׾fWU zAC`@OgHYI]%r>jeybzqIڶ?k _n*;wrj:`z7:cՎ:jlA# ]oŞ5t;١sMYkR:|m{VM뫁, Do#3X__'*ﭜlQ9E*526׊Ly[%Gc:ntF#\}U퐽O}@}ԥlԙIkBe!<3Q#*a[=b3%_E(vh6-6"q+I\U]'J%!946T^,͡ ]*&eM lSESкgXvhr% U9Q紭8曑kS %I<;%"妠LAӺIuGLluRXYAȨNd%^ !FJB_U}uhcޙjg>"dY|8'O%>hxY8p7jW>϶J> /B5;s_ERY~dޗr)v69\Nhu3qL_^* J[3Vd8^w Š w3Q*H9};c-]u`.XXɒZȳ92+l%}6J=L4!V^#L > #HHFv|w0W57"k6}}P폷tWm8lNm8'۔1ƁWthSNy91Ǚ3WKK*?v+όF&7?حʸ8ZJ9NBp}QdLS ~#W88|x(nA.Fj)lfM-}hEFM*ejm&f蝃w 7Q[.:Q( z=D4s0SrWI(rmCΡ !IX9ZhF=O3kVNj#Co>!{BqO1'jy e =m>X~(K. ";s97q[7{{SU-; c.}pd#L6d |J g^~'? %>#:lY6LjdT ۯnp0|] ![tЮFgjd9GjU3%Α-^ l{}1>S%{4 j>%kS`'%[]Lidxm1p3c aRWg $ŶkvUL~vppWN@~kmҮ*o$=_JYmJõ.<"B]i`KlNXy~ŭE~d.ukbtj- |1];$'ФÞC'ֱÞ2FVKn~^\FCі7'/HZڎFxuL"Ρ~vΎE*&5pg+杏z_89B' 3l4jBq[OmK-vv BXc`Orgv #Vn|\OҟEsQ nAVʢq& +E)zjgR_ެ落U,خ$ pᆍYr$0ǖKz7^hT cl@qx~f8]l%3V{}rp,r@*t$ށj_l(;̨f^eiyC{#*K !c7BnG k3Cu4VI ^ʩӑL!ϒ9s~,;) 2ӹnV4h |1ji&2K e= S^:fD1\πUD.eyC=3V<(X+h8zruZΤ^} u1)ŜyG{!qPjЖ\ab25tsD6@r Qh^MøڇK\m&-5O5D@)_I3VYZ1jrvޗ'aSsAM5͂dktCӦQY xղHhIkh9+_$&-ʌ)TuN;)w,u蜥]Іv_G;ʷ隺D{}+NwVBZ5쐺9ŠgpXO,C~%UWgS3(ڻKm8CSqK[bN:FrN/ )qluma\O])~?^* ʚ9,Yj63.)&}2p+Kp *'<+Ȑ Oݭ|\XxgͱݣmFzM =D#F8]m۵KGaq&8/og=BJv7%~NXI ~ s^ i^cM%a0PMWcs|to*2;g{v8I>;qKxI#ir]Ʀ`AYL3sn mI,)g\lO=mK]*8ٙr-+cA7, $.''Y%#!' lhN:(S k7ujksLLӊe0uT֒B µ` >m3`=dO1 zD(<1V) usdX~7yM+.K2bQ|df>5 5x#%>w'X&Sʫ#7>\R!V B~LC!oJf6hk_tlQML#hheP7D mmY|~Y7,O~nha?ڻ ,}3|q"7a" kDqRwueא%r9ׁCКqbo/IXr[8զo$j?~RCWMĚvHܡ*p5E\ȴ"ח };+iQQEuMLYR>aT6[( Eql>`ն ? HI%hڪ]o$c8vy!uQRarخ+bbSdAHK:b&dRNtCEp c10ف-ZstՑmOQ! }^`S]Wc} i$=7NRlYU mUALk`M_LfvU ^3,9 ك#'wiS;RqMyև04k>fq{k(ip;!yaU'iRu,( '0߁EUhɨ؛KsTXYb051 6B$(~RV ĦəPBb6*xf3&N!g)SR~!is[٘H rDZr4R=$Dxfbb9;Կ`$v!dTP;66\  ˉuZeM>Cs %"LDyEr5yNa6xX>t͌}.!x?ZYze,d_ӴXVŖrfOY.eepiǬ˦C[|ʻkfO[Kzt$ /QD/ԜalgZp4MF:E[GCGwO#TIKrvt>M9߈N="DgZY[c ZLhg:WsmY:H</:=-|bxX;)}`WRnȍݒ\FE\,W:HϾ|=qa0r`Jkw*ck2cE%ER%0Aw0Od[CA^zPe󄻪 7jõ~4nnF!7PG$ i!sIPD\4RjW-sNw E"Hb 4暉X(;8)&dLB&%,Ce G '>&J P+L4}k}#7VLԵDŽm&7T8*`v%WwH !4[{ l9kk!/3kdr~sM<πc.qќpTG؈G՚'G߅چ=_ۿ#|x7,T~GY T bq!q$6͙.>qpRM,y-% D{A DK I+y!ΌWqqTYV=R?f|M27Qvִf@yo0M')=7@R>OfY^/1~S>D(>:{%uq 2cLMCa_̌a z0!ZGuysYPx3|P:ӺbJtS 4C=x6famX l4~TZ':Jg.ןz,n8;ֿ\>]*R>ruX>tN_;T+aVym1ڎX-/CM0dԘl&;~"kKSN㖟O~!" ML^b)fՠ6.qJj$({Zl4U_ þ;ise ŦL:/끊pyJ!>;qn(xUivv5uoQS͜$vS&UsR :?Y7ә|*c3Bл>l;aVoǎGTwq֯CS?ᜫm=#:mQw}vuMBfDG΢LH#0:l6;sEf K+wHf5ĢYbsiHBh4i,U:߱ya*}64e_3Q%1uKp$ـ<^`!nIcxm~]r#NF1#؛5|'1  `Vou)6$&瀩CP+Dgx>繍אZt"K!襋M^S]Km&<#~1pDJOCJzgftZ' zcN̅ZQ"&HB4؂O9j5 vƂ@^[\gNBs?q޳*w,m#i!7C(ex2f?&/ji/ܿr[@;5oT5gaáᘮ_ۿݗ/h㼅zneQ%{VOty켆Qܿks=MӸ<ڀ8(3o#U"pafq SjYУx˧R:WMb4P=iv6Ħ޿$$7[uOshF8[DKT1ČO`lL@(%EMl<ޯUhhGAd(GWY/MP ܱ֎P_!<$lxiWuq&ض6c<9 ڢ)e+X*$ {re/Ś'a :mMctiP Z[<*V7JI9-26u_!$gC_H!mJ/٨"vBMd/{ZmבhٰJ-MѨc6T+Npx u4} ,HYƟcc5$T=e]fR͒ܝZm$ BC46ӛx}1ޫS΋-3:t|y3mj9VfkRSIVh(Wgʊ'su8ALozYu1PT|<`P>dh^ ہmYL Ǿ-0k+`{ # &:N1TYD| CfF}P9't5ҦrގS?t4Gߦ~th{o s1=6+~W&5$E|owr.g\##t =jYfqOB :nv[emrGhR+Q1͜U}v >7Ŝl0ms dI5\Eb%:oM񜨝r0aMe8>XZ[,L6eLPV =f" LzLgUAu|雟4JJs$V68K0W;BIS]$AU}?S XoWE{d#կ4:|q[I&/DY^.:xo?_$ֳO34OVU,S:D֑ܠh&d{c04;1H WűEҭb|UoGkn S%UE^ȏ FmPVa{ݷ~}W؞Z7ԞFXd![oZ5ExgS8?=rBd(.n"v֬լlTAЩ/[=ȡ2ʀq}!ekQ]RM!$B(7u%V5a m|,7%tMʻG \9v<IvͭdHOuxZe6鉵2,z+r% 'O.3p|x}@h7ح/M}Y^:5:xqDe&K<99*vFo1cw{YwosS8,G[gݪoAE$c4AnrIz[bo9'} "y#I߼~hJlfCVH\{=p5mvںOy@-B2C[7{7J=YgF8|; }$:^._vr\qØK@gz7TobH^HB;X%˺s䎙pй!ש(mKp9y%{c{>ٞL8T2ѧ+'q xEMEk,UˏŒ+T /,MگF+L2 evn5(R1;F{r8l9#θ w#K86a#sq? rfpЗG:U@llC9YBϲ s˒ Bڹ-ru8oa?jω+-Ra*qU,i2#POCݎAj8TȜxȑs%)XHHF^JLHAf7b$j`̄rF}rN*)wNDӕT˼ZLW:I@<'́Bڀ=p7 쩏?R4u4V䵖XwV CrʄCE̸/>-ii5U 3:BQ֭1pcv*AAX@ ҢJ5`(&jTUVr #G klj!َ²Ȋ 2]4Z[c%_Nw ðfo$,DmSҊf䭫L(coayhs:lXH͞KU 6H7&GVLzOtY*tL fHKHQyߒ;DѴc+?V4`lܳ3JZ]u3&:8]J UME>ޔdOm٪sfW;KácP͐j3:%z%Y m8b pZ7ӄyX4ԗ|3@:rڏRc,6ci %r\My6 5όb7u`)6h/Ơm4oM4܌ *^`5d"|>J +n Ezns ,nw-gJ>{"Lvq qkY?->v/%1و.>zR} C(i; hgNz;bМ? mlTNѱKO†IJHĔp: ]6A?^8 6;Agr٭pzkE&d*Ĺ!Tyf[f#unSvCJ[%9l<10:e-,-Yq|'.M*as. 7ʯ5cIx5bk )!OL*w,I:<&fror ΈV,!+wv51lj|O +ei`IO&ؒ Rc/(qWWjm;6.d-}ZrNEMvD_D fu5<-*F;EAn^)Q[D&SYkn NdjR&̎c"PmDOQ2m%xp 4{X.r—TYԁy I际cUi̷9%t\ 3m#v,-S'ц"l*A>BSA\AAxIꢏU"@}68 t3Ip bBkŏb}}(Ẇ69 ]|SM=7;BsOqmG{} Ϥ4XLV=* ITi2H<Xa5Wb'vVW>3W};^(HŊlIw⚻~%M~(`Kڢѥ׬.!9wɌv@Ȟ#XX z|W6 qN\n hG 2ͥc?)Cš@X3xٴq_~m:;:%Q|[]IC5LT\~V(`%[VI@(37S}s re$qV>Fsgf Hw zCCQ RY:ʚ$s 9( tn}͘H^=J6L6S vk׊2׌Hqm#c?L#go]?u6 W`p]3$Lr,IJ`:]55;.AjbBI%7w XX ^Иfמ:Pwĉn]1h@;V)Efx:ט#ؿAÀ#N4MGq`p-+{ >+yυ6"tԥ<4)20w}hrr6NuyC92p~7-sO.tf __RRŸP;-x!/TDa@s#_vAԉz(ѯCȵSuG *RK)M?m/S)!}1-.2ISWSٕ=лXP DI_|tחY9K/"`kFZ^͒q8"5^Yx"lW'7`(5}89QϰzMYf/3[#mH= p/ ȫP?ER!vdWѳ>@4]fRil( ^Y<)yp1fjT-ivj\lMK2mxvG\]Bvpy1_hc^Ƶ_.әZ$X&g5dqT5a wKѩӌkZUah2Ů-(&8crJV9].59Eۘ̂!Z1"4_ܶ.6*@wv4c{ cʸ4ruԽ]o9cnJxsB*8Vȃ  ;d/CtdL?"d'])wˌ}t'~&c-l`]@a,LzP B3rcnŤ50 LMUNp?aHy{Pm-|6KB8G^gkz >)۳sUmi-ҟIa*NçP&XH?9aM$;UxTH)귟4xޤpT η!6/S薛R+Dgg掤|XXK/Oի8;Hq< XK|űH8zUmDK}..b4_(:R dY J.豜Z_%C2c̩5e*KIC&tW]LK QPك |fJ=EܡTκb\|SmI5]^ݝt)Q\\ ͊,%rONrOnSҀxlIUD^W=ںtISW\HL\t4VF8şsޅMC,O4Q3 lw*ï&ƞ+\]^ڤ2r!uicH3=;]O5!i![U,09%H生:Y)&hm-4̔:06GdG[TxwU< ؤw[*3N}@3HKXSY|…/$3{oD=\>)K||\uw<0@QR3W8dW*Ax ؚ7썉J4̦-;z:뎖6ǻij5XYu\DKg'&*%i¥,V5<~\vaY#:V[9kGlNLUyRwj3WOO>G8|nU5aLV;W>pW@$`})UƖ&Ui  XW9Psse$i!Y(r^(|F+b脕t@''Miz8zZ**k&V]LWuyQPH1:.XJ6iz"O$zAE (^ZU[-?*F¸(ҭ"}@c sq_IN'ʼڳҎ,zf"z )ݸL_d8T~O_=xfڀ̞ؓ񏜩cjI DAbd`E|E59kpf㈞3KB1YGb$6W'q$[2`ƁdS^wykxp+0:v .^^I"7 p`S.R3$ڧQ|ʩȣzv}6-QI*>`l ;~#oB?TDN:27_~1W{n+6WM]XecwaG~T䒡7IO*6ύəpFz̻=nX>a (zCjW2h$3;Qd`J߃ `pҞ@Vp.g7Bn\vl5E-w~bH9ywzfs1$d}m&Ǩ7"pvi>bĎ&/ʛ7㊚KJ3y|fepKD_eggB: ;Iy'0BF_6`ZYsaS!ک9s2цG!3 rSpSM16|L .J0B1C_beQ!r=Gk0wHZ Q3nZĩa7ȮE]Yu_j.6\CPۮ+euo((i|p?9Qzv3 I8dD.4G-FrE-;շ.j3\le0CtBhP,j@]1$ή:= g1 M&4+{UևUf$v)LІ- V2L:[ݔDлO +ā̃A[:LkFo9\i`Ɋo`sl%l ]D'F{}NL:@TRTw>t;͙32,3r aI5dekSeeCdҒ{y]=a5]n*H)sJamJ=|ZóL;K*Ja_GM]=4Y9󉞿T-j\n]a.SK]pR>{7xuvw>^Z&xG԰\ -o[QDJOŀ%(?O+/4-X<e _`\8@є{[ܔEI[y0Ga&kj:A->w#wk#\#Ğzfhu{ֵJ!ZѤ ?b'r~c8*gOdᄅ3u[!EFm*0{ҡ<< ^FD{@Ȕv ! ,q}[j+㊴s=\cW+N+JSYIh}iu6ZfVZDtoGLEc>b_*%C!e(XK~y)LXQB띋O㻔kbԝS)_fTnJq9Y[A&m'PaY<ӅN=ڶw6hl51's2&'M9񂤲l2K j`=u*PWzat?2.);ɉXF}ğ-zXd>#7ZN(uen3gBǛPIDSff'9)082' Hn!ׂM15vwޅL[z.'4W0CT7/e>Kהk<\9InТ$ech,")6FՀ^!=-؁8?e7G=7q1 G|Q نg9U=9`aQ#9Tc' KI.S^TcG}WW-ۀkv.[0g!jWf0;֥'"J6{2 M1Zs0j|uIVK q)ݹ=@ES' Ԓ*bmj(:ʕ+~nΏ^K[J',A'w%c?Ϲs/9^4p}=/PI{:+!YgIOqSP)}'Gt|]L G_#qՅR6 Av2 6ai`a+MšJk/jېvtԦeQ%s/=z_MZ3XR:C5xU9sȭ=“v̒HGkGO0:h=*2'ʱ..+l5 ci/7{OH"OޢPzʘӈ-yF=GL%r%t {)"3l2&)M;Of ѡtfz;tJ?t]),߻0 `'# l_(&EhFV.]n[Sֻ Ly #"P8><3os 3c Ȃ]mW^ lć \0<-s30\Glg#b]Ũ׬_\gd LОvSЩ0@3^Hu.dc>'5gunތgI##ooo!Ru/,jQ"e]u>avϩ=iw#w#@A,fL;Z/,LyU0`tLk=eJHՖbY|h'p%:MeiTƺIXTp:0Qcz*8[/>\ (hҥǞ|]5w8{zb-Y5udHՊHvVǜMņ(2'= ~6}0_ntG~)ūU)gOG5}}u _D,'xnG1_L˴;$Qyt;I1_vfpf)ȌOgOV$-]?هS&Ү3_G+KK׍h]iuSPCz4Ч8X3R#G Ja)ŽTF( O>dr@7m4"l%v|U[oL;WjL2i, es#퍢c( 3J) eMd=BJE4y:;d 0 XOA(4C2?Q/ d(,sSqf},&74&Tp8g"M–u):hzUA4 蓳u[(16]&1% /rFkWN)]!=|Vh]~}9>%ѱʖj.]j屾}_ƛ? [C+n/g/zC ma`5AWU2ˈ9,8, |>([],kTʨ18N .ШZw-CL"KS W%dgĚ Cפ9; ͈/[3nܓ:AFw.(ci$*:HTuz쯩fuQY6X#icIsf t7:4UD*#k *?Vŗy7J+-F&&LNH1Zj 1tMQRSU"E_'rkeYZ*<#9X<9G42Ӕʷ7ߏփ)B>Wc7o۔34Ed 5N{B.o`` !$O|N9ي̖[soF6cnfe@d'r j]02/kUV0UȿRHLߚ ?/U&AJ6qho].R]gւ8t2G`a_W-LF%u[71L>C+#ݜ`Ö9-{rj~v/85Ө[NuPО4pzE-]] 躺ѭtR@)VGG--^A/ ^yϭ@fH]֍m2*gC[8Fcb[NY)$iDFwIrS ~>7isoxLԕ--S<'7D̦²檈xsj[ϧ*(UH@DG,8 %MH:V+[=ۖiJ3uYg#ʥ3-Dn`,I}(t,4|8%GuL>fjz4ocuME(Ϗ};=ꖆ ^@QӣNE\XBx\5*9{QSFln*7Jݧ-~9Pn .˫&yH7UUlzQ[8mRp:8-gc 2qGu{3O~Ǩb,so9#Rhf8tVs,ެm4r!NE%w3V*4Wc@a5.|V#T4K]@**E&9*lda/Fjvjuʋz4N ^B T*ǏwN?Nݯ܍3Kz}|yw8?^F2sj'^z= J|ngl!xGO%w~cƝwYL0zݠ+IN8R qir5xd!EɨɠK&?Y!U:t,{<^^mS[X)n7Կaer2$$ ?h?Q؋g4OQ+qiIЁ{JćfbGHIEfd5d4w#Vw4s bk-ܳ1,4V%e: p-5h[l"Nt љpR+IJzFpϣp$B29J"X,8]6*" 2rGȪӺ#BXWcWt8} guw͐|[J*f'CJДDiGafZSPy>^z8c} 7ta= { QiIJ`rk#q-_t蘢͉QQdvpA/L 09^wޘa~*no3(׿+yqKQBn1M2θ`xxz {u^"\OiSJ[d^/||Ŵ`Xƃ_;n!:u$q]^q)':w2Ѐs(,#3+{XtӬT5;(b*zZɵ_ebRgrf:TVXR %Z}$N&ԝA|o10l!ڎpO)xl"'A'ҧ2 cxdGATp2#RKJw::tM4"|qҍyU/!hz?-lX3CVlnzH}%c>V®8ybTBWD$s*TKgQCj4ާLf$#Ґ#9uxKI&qV7an)kB!Pչ|{Ga_ مY|p<IOI(\>vmC OC|k71ao* '[qH\[P[^T-53, 񲰑A|/eߴA#0MlŖiyAjn6Ƅ;}8Smz(T2yQr'#41ǰ E!"s&#YOuu,$o X5⠒cfSړl}3}m$ GV5x_3ؤ{6Uu= zrCjzl@W=H$ mTPūƍ5l0yЋIm)=zU|h J6l - S%,vJ_W +k|G1 Z5^j}]+Tl(,kfw)ˬ]:2%&b t?R)nB=nL6gH[)34 O/=:BpY;Yv~7N[}bAIIUK Aȏw+]Td8yo*6J=? BR;JL\2kI@[Y^[;e׌J8xoP~dq9Ӣ֌@@Һ!w+e.Y#3e^cL Ql&e$L61~NT:${5=ވv,o/әAt,ii&e2m|aLJ?#X>%[fްce[I1i}9ǧ~3j#-x\JHP,(+٪q];O 8%P=W.mCKZ2+Rj-mL1Z^ݖ噉Yvh>yGb& >,Jf%ei {GhT=hZCqk@ nޙY{,ɍEgbcKJj ާ q}uS{(ߪIC͆Ю4_f8|fE(N <>Z0~pl9?+|B v:Xwޣt _,6:ebͤ@/}Y5f>5Jhmƭ b9!CaB5$|"sS+TTK3{Q|T@XYf@߀ iA(@cxEe}a)!DLPRρL_pӽϝ*pbEDm X(͂Y:%UP(r܈xX!vn zJ$#vBۦW!=w qaxfڥFHO 6-L-/tJf)wx ^n4)kTM=;Z7n! W;C'FAN^Y!,MH8h8o?ooɯ~󧏉;*NG7z~W26Za3WG;Ufs0ۏj#ݻ;nsuDzԏC{S/ kho!,1i6 d(t@d%CYHYjpf ѵ~L\L>8x3FB ^B p\gkiCSS,NϬ⒯LDSlw=l#] . kpjt,s.CW2C*-HSB#1kβ9h/m˙[~=' $(SO{ѿH#\&r^D8֜ "].Eͧ:A:560qbUQ Ipr'R~.\յEm7٘A_lts4Ā>*O=|uk#ǩ%Z_1_}v4&d/WO" ,RP n[7l[Xl~H2݋_ݼkoe ֢9|=>}``#g9Kx&4t/v 08e`*3nD*͔ωW J,{O]8GD@wZ:mJ_?bc~| ?~ sgXwgiߖГ3zƦ>xKY3phqKRjkt)_.y\e43v]( PU* .dtZi}e$`:^+d"1!l6kӺoC6M}jC dh9Mo)l@^,``9a7B$>S7|P5&ljoIܒimrDmg1Ʃ@aBhL^&k$+,LU\ݺqQKGa1?9] #/ac!&2x69})aw7pq @nVvbu_="3<_7eO9,GjK,`g>#7&IR#-OZc4$-aP"'F`\^qDi6c|Vd3 Q$$>mS-9B߀}a(j -iw\f'oY50r(BnEN3}ha3Ś(hyTEfˌ"MKtOWnF~?v~*|?l{vW;_plpњdEY(")(R^-Ѕ1QcF2Lk42֐BMJ`9llIrW [H[`3h]'T6ɋ: S-:}Blz97 nm"d1a&6B3ŒY8z 3"#
l?Eɴ4NGwOO0kǼkGֵK()l @H_7Үu31Ӟy|+~eӜߙ7>RCA+IA*Y4N"pք]&4"sesp0zg""տSqQϲ./TE6'U(&SY}/sg`$=MDO3(k&]Na>u ,ACU0/d NpՌ5b $D޺Aдr`(wl2=1ZδecTٽ|!vz~adڂ˼8%qjc"Ԝ 8q^5xˈm9pcY2tٔcҎVA7T q_o[龽a_b?~KL O[a;]r`Nb,V)zz%Sa#E# K6p&e)XɫUb{@{H֒^僡WgI{ȯ -^)1LQ)[q5O$:'ʁA Cű y޺3!Z/ʈK9ؘlا0dѰ8!zTW7K8ˎ0cwpp]ie,&( { | xȜvz}%FlZ-e+9oHy{W^k+UŲff i%b9CAa?gg1Emb`FI Ȋ|I4|9g{ApSYԩfC'aϵwxגuPہ^}_w?~1?RR??'~5qk?u돿? red{t}Z|kHV$LTJ͋,~KB+SHy2>-9F'sWk, g'W ^UU:f\f=uGZ̉K{>NBB/ 1ւD#=3^h@]xǡXH΋i>jذg :SJ3vV&Ͷpdՙ # s,Ӿ0-`SR`|xвO=e[L]C'g(RM=nF7/ciʉ$$<<9rh/tpȩ~n-DZ!̀b\Lg=U93W6wTFj|V-i9f;qY$oӍ671{DIHg iUĒ*Xa`I,""p`=7*Sjͭtm%Mg~YdٺsT ħ cF/h%HRUzb@`/UN}kg`|MN QL_=~ڲjk_>̋%Ŋ}nǤfGue+_a qb?!.ԎG([2:)N- /;)e4pN)s^Pp*i:YJ p%lKq= ڝ5@c:{#tT(JgzE&jc@`s Xd홈 Y 9.A!]D:I%l=T)q)/lEBfCPӁ, f>7w4A(ƾ| * O@PYsy{dd~bΠΕ-w+;R NO>K`eu:f})c&t ?jE?Z[)?{/~i6iY-H# ,V~3 $',E1Y\jY-p)tZ,ɫ*alj:AŻbxq}_ajlvBGC`$g΢qFGtM=-o|k`~m ]+J)>բ=sy~ipd3ɝ΢x;x[+ATD\Qup P[*L@hcʙXE{pޢԵ-9Mzzma-jǧ[/F푻IH0|Ie98ڗʎeu,tN,lds" wɜ@jv]WW(4o!Ad}lhĸ!u DNl3H %gT_coαl゙G3(X/1OCȾm@ڴ Mn t!]j'X Ø%F27CeS=O@V PaC~琗3rp&c>˷XZ6B^h*g~L_K—mƷ략'iˋfLlWp^&p\~zo[O=~Ow$` LA%SUpXgV2R{҇nr>ɫ|¡M^ָ"nmnTBq0~g5ƿ aUH >=# ː !ynd7/yF\n'h;Ꙭ`q!3씙Qo:.kZH k̙U#ϴ>:~/ZFGK xwϐ?*T7璋nDu`GXĘ,YpM[6]qR3͊/baI8rʥ5e<A3C8G>gH'!C:whZ$?mc ן^"TdQ Bfczɏv@Dj{Ηu(㣔U,3ǸV!^EOh( 6(K9]?pI1~hޔiB," .F_*fƨ`eah.n7F,fbMuAJXBXì:DWu,.V.O&P@E~yK]z=eŔn(] @ v~fL2XBo>v~[poo_{^?_Z~OfخڂwO۷7*7yhOh7)Fڔv~|݃hոFK f0XڤtM?Ys6H8 uHc}3 pIhg.㑕v8#obn4zNj}4f'ϑ;&iGb4Ug. i\=W&SS] X-*ST~##PIѻWa?K)j\G7>!mMEM*oZSWYۢU]%>vBW됊 5ϛ$Ԁ3[Rh/@rCE4Dmeձsc>\҇\?ɘh|nd ṀX!œȰa4 S=ޮ1 o>+uKO /2_ljB'|S.X1FĜS>.5!C)p.=/s8^8A/K"v379#nĿ^"Ȕe<PUi.vδN> +(LT|o W%/\Z:93}K>Wka֯ΥV,܉3V=:mXg`Cլ|bŎ!~= at+dÒZ}6=xxiڋ b1Z'3׸G[KzȠ6XWe?@<hofH#`BQfv\4#i%.,T>.%YVES>G""p?7\b{NT 9A{/֨e|Q9 Bu_HI c zdv93!M'ZLjk~a k r`*< [$?7j~y3j(kʂoQ_ݟƃhgCR9wOH^L_+M,0$o9i\:cDlOb,qߐl B-&Qhu,9<^ՈblG86G)m!;J_G)3gG`xCuBi-2)D#(b_@btuΑ5Aj!kyzٟ1-Lu|_]>\bA)s ަqDƟsAQrwJv),[l8y* x`01IB8&4gZXc+HS=ۘ%٪fmȓχC,ݑwUn  9Β>9gYp =7ȩ Cj, iфkZT2 "!GtA}'C,Z.C$8/0\"so9*;Ku3-3VyS-M15|i *ԏD:ތWF œďJ5$vOe`҈-|dⱳ^t/:U`,ϢZң1`9I3MIC#PڦK \(ׯۈywmOU.VP9٨DDb}I/ĩz2/o!h1 O-%v&׬0cfor. 46iLW>;tXso4W%Ѯ.†c|g2D[ l.Ґu#~yd{la^MV7?d|c: sdJj'%#0`N`f|Yךpb ,,|yݜGYqB--;n 6Jc}4U-S1*\PD7 Sꢤ%;>,q pޤ-hKvDNє&kى߲#uMib ! Q!-i.culaR?V G\v#*Sc5h8>9 Ɵ빯?>yF5; 2lyW:e+PN-וx;#;7'# @)C; =;QVjn~B{|W%!cFkKyE5±SF n}c6'@Ư8V(Wak< uIBw$u3B\x!-v)TnE;>.,:᪫.raU}:cT%z\EPgr>%EC0EpdDI>Qs)A ziNJ2 U~ kORQv^LP(` -rm"b-M1$pڃwTi[ZrFϟtZ&FL\E+[;03I1Zn !gxsT;P4SU}=,NRI6r9(ZUfC͍Ch#RtsT6Db1ErhRTW#Nrx}7W< ۯGFae'O>/lO`Y͛];yvxZ?m4mkA7<'OズKO_66Ec(}?>o oݏ>^vG)0Lt'RlPs(M9x7YnM1|wl TJm98('5h 0ϛmBGYɋ/GYHO)S^Ƞ"OVam-gflJ ɜlm^S(\.IG15; H*63kh4:_P4`ON uCŕ cu춒J̗{v%KO#YB[)_c2 Fdxl`>!xc,6x7%QhRF3&茧23!$d )tKsY*oC3ZpPa|$OJU/זd^(iE}[?fuEcY=vzug_Sv^*Od#!A-@nú`Fױؘy&G.#EbH4xM}̅e"ҙ B* *nHLU&l}L]܊D6Uf0TM.?#8 Mt.S(ٕP/`sِP AB7GP:C$sQƢܯ+,7x5& z&Kī?c7MwLe<8n߁^[^o6w(_A' n^4^ ݇ a'&qF_)k;Y-Ɠ3*R慶i8ZܻCzT횓9 'PGD0U#@Ef)Zatf2<8G#k3d wb/OXUY_i'#o9lRhyN=/U/J+uIWmɃғ$\(h%Qh:!ǸZc(HfWgv2{S\&H"̢ ;&Qҟ݂MմjO$IqvаMUkHY_{굧OB/&2J~ \eL3"O{eK9Ź41unQj)~9RpNdVHBܷLﴚgcݰK%fWY]kVת¾lSՙ!mf=&=N> l41MxWHpiֆ$laF d6~ Hǔ gI{L\&,Jj]3> hl QpSA)3B"70PCdQ[/C gRc|~n=VX^UKp(bbZKԉT6c*0ԔuA~>ʗtc(>*|be=y[j4,?17cqhQV(w1!4j9 #Uڰdl{R7ԃ\=aTEtWLHzO}S=}J!;@7Y$6^ݥ>0;1JnpsPk3E[*6p ;>W.BDd~Ddm- i4[_hcjk&>rV,&qf{'lUy%l'u ծGOp +$j^hE\+.'P}+c6AA3Mۖҕkva>r"i ;4a[\زkilfg4 :>NOEP41LLp"X2EF {jP[($3r8.1?`ڸi<ڱaSÞdŭYFJ,@T[Ž5'| VP+[w7b[ix)V*H0c[3pձU -wz=rZns/0Ij!JQT&pڗߥ[*(@@^`)ء@Aa}@/Dڧy$|oEl3}KzRaOI%<_TR..M .qSM PV<8zw++jAQpS4ٸ"~8yEms` ¤E( y# TdRXW@eP,%l2 9>N*#O+FB́buOMBO67[5^.㱾GdՊhpMrvź3ەYÍ# 2>>#h) $NLrRxT$|,v#c AS9gт5$c&DHɐK!$njMK%l; .ұ3VI]Uj/'$_tbp)y.UWxLxFczvK2c99`%bm܇#/d&I#?: Pnv\쏥9 lV3j=Tm2.:VsSC23+m>hbuMsWA.<4vDc:s0u9C4#SUjJ:JlqZ#*"2yb4$pa=Ӆv#eA%8E"Jߦm#o@SU(\3LV27Qr)BO]d"3\-<0De$!>7V흾n!K`mn FzQI8倚Ӧa܎&׫(kB{v,ֿ~1=B8!W36V#'~*) Byc bp z@Y<0w$7x}0f;^ʎvs b@%E=$ 3aCS魢M Zo|;3}p0z (wkRcHk:3wʑ>crp1=bpoJ\حd#G?>RGg[Ҍ[f2T=8itGHc^^jαkozQo7^1n&J:,ᰚ(9hxSո<ު~H]< pNLw3os6*1'STvNצm^0ҥQ0D5ыxxL;F9`^5KɷѪxw+2.$¦f2{_6w? b]c\.tV>$+}?4ENw>p$`f%^we3ol ?hg;-Jj@c<ⷄLH 4+nK楧42L.6Ɓ:+H@n]@U}vnGŮr(%$67fC.m3߇~[v#{ul%L[1/\ղoH˼B>c.^Iރ͘=l!R3?ӈ—˟!G*N}jztgj-\^9z+|óZѼǩ\&Ot&5L4+u{Μ+l~  "pPgz>.p~C9I Xx8}F< NΑy6bur c-yuUd*K}йGN>NEx_6 S>˥/>PCDɘq̇F -8;.v>#8b.U,(Wf|ɪ8ʒ%}tdYרpޔcJ]s=x k'-ᎌqs 3;ϱ,"$LgQ SC- 4WN_U/MyΩ9n`ϮP&+!$q|D(ӭ-5aBwA}DT dCG;-{]ھAbIԳSX빘BDQ)E?UQaa"D po,Y ҥ}+}\8$( zo^:|S7Hgd\tJbǴ[$yt,h"O^_?u>o5f(_Ƀnɍ liKdr qTeazY3usm)+Spr5ƘUJ@G(7W3K i?|)m޼sB)Fa!gG{a8-VKoe6 _SHh:豦{MTU}c-2~R:.0W LX/m1YXlB3u5rH@YW7 5ZI.-շk1+ͷnp;TXmRF9ȗ~f0^qR\sv&\358R==sVp:…|s J u'hJ*̄9$P=RCIMnlYxgFRKhV3>.[ٞ^cѴ#{(!Q{yN]hʆ N794cYhFk, +;#>qپA.u USUp EJ2ɟ2eeu8‰&k gYtwձ0Jr6&tɝiZt}W #%*%b_\z[kMv&ݵ3X٩FaV'QXEg/wčRD0 ՙvZj´qٿ4Z =n"ψs76&WL-- ˁ^<'XeARqٺFgѿhTv쭬9ZLf9 i3)v2~kr Y}xWZ_pSNpb9%s"HAw"lV)=.ށsUOaObA?{?~ }c?njl<~!pRJ䘚m&Rrv{Pt?dU- l9ejV z͒=8L\ceq՜v#P@AjF&'2g8OtYC-|tk*u4t)>Lx(et- >H`C8@]B>F4sI9 1\wiqQG )eir[f^ެFuVؽ=z;HqvC풔CH1Vycֹ5/QdÃYk ;MǩKT#&~JKwnhC2 diqh@tΖ)uoB۝ʔ KN %VEYKXPg *TW48)\*DC .c/}YIc'= )Τ`D^#aOjK 8'|z=|&C6{:.7$ B5oTSF?C.>\^#;`Y?{~?#qC"oe)M7{|yJKD,:K\lbEI4I\C=a.y<0`~uC~H7ڛX [ >\;\ dSM;:7.^*!E1JY&~yLi;-D6ϮGiǤdX%-(">9Gq/]u87~[L< 9';O'TI6p/THM.plpOKXsd5֜ljnAKŊf&{+$+_fJ*OpiR2ME'aGISgt'JYi`nyS;U}%8Cǘmު1Jj8EZ:ɘV:*jb7&$& @Z3;( E ]aJ {NJö \N2rЁ܀aGm`+ `&hH ;q=EwYs?]/9]\,EOo>QYؙtF֊`vl--0sFTfiPnGq.9ZF(.?aw$pzSN .g4}fd ~+B|:J~i~o=?!=k+3Fۙ?Ў$ۯqs>ԚF9fMY54ɹJ[Dxx>_NVק.`A)c}:iW'A*pu _7t}f^, r4@\ Cnta>#;]C14ֵge| NUQ}/F,I{[,-YpZ5@  $ " A 4(pݒo3qλTZ_dBlcj ySြui֨3XFVRU%HYx @=="u*=;byaX&Xbof,~5n{CttR*^0gdP5r>? ))gj󱠳d'Vs/!ɺ*W ePX=VrtI/zmE*~ݪBMsW8?'__47+F :hk֬f@Z1.jYt+W\+mHW!fcMAUEd+NbYБWT_{I|Šf7K3a`yG(QN\l-|9$.oz4׉H)-~ә^9j# "Sf7DZINV|"LA_i`,a:U/s0ԑ"@y8Q5^yŅ裌{` Үu0lNۭ()ESIaE33#JʩR!ZVqUȥ>5.~Эq90GgV.d){8dP9c~U /2O*((aODjmJ[Tj܏oP7b_c\tCŌW&y$t"]yZGYQ鰛>K> + l}ņkT7,HU+0 +&y5'1byVaI'/&|'&0u[&^]9) F$]_PL U,A Iͨ Y ^t2a˘gb),|бJ Os4r! xtXb_5oE 7NXbyC3w 65PofuصB6+أQFWWUAI]ueQNUtG~9B<{]S hdOE2ULFMځ]4;do v}>a'w5s[_rAYZJgl=fϝn戰o՚qv &jF;=j.֢!Ȇg)ïnhhY#<"uO,Ov.< fŘ+3"o@gjTyʊ'2Dg*YiN3+iY,_" S20-j273L?=)NDokpNEV+ǧ:E* F_Ztq_:f 0ܜwOë85.ZD[L@5*U?.%I.RF[J?\lp/*4[X, IkI^{IG jq^sX7e1\#Q/yr;\Պ#3A%)8o$4vӄdT`][( M?K}nPdGzAe;m?|VPV2b╀#owJܬ.1mjԚvB)C&0[^~Ƅvj/R.Yy3Q*VƐj' Jwm?,1u epqNISp19B E32!Bwton3B 7\?čje1Gn"֏Q]0JO/۞QՑP}~<]Ubu [@O?8)Q+c I+885!GUz z^)45*0? FIa)t nTqS%n$}D\Ik3tI d'UߝJܰ.%9h:Uͅmms,!dJb|?ad*ѧE7;nxs`q_f&u;sNkGk4x L oůuJ^!ns r8f*F!>kwh郯}Wt)T>b0Xvڟ|7_5T@`M+)d:o` nQLJʙg%K\Gy%I9B g8KKad ߩ+DYM8aՈ UhPxWrD/^#1EncOqCuz@C7}v~XaJ3NJ0 ۨGvPÙ?üTMf%9j̱⽤>oSp22AH 51t#ܠw߾IPn% OGmuk*vo:~6A3=\w v/ tu;8ݟs :kVM=7ou\zs#Z1$|Ѽ~3A㿨ZCr 퍘\= MyW\9N91lVfvzꅔsSGuqȐe#2%aEQJ̰4@AGF7ؗw᪢eTsyq]uu{q.',Y|H/d (H 'r r\ yM8(*9YB@Uh̙̎|5i}"׶ynO,ȋڟGOuPdѧ,\Gڵ"^>>g߮– }Oo59#xu̞;E'R֓}WQ} :F{Yݙ;NlkRbAj[JF"d se'aROf<8ty(瀠SVc}<NVg?;U:pe<x`Ƣ68C<)oDtH;V_(z*UĝrE=_] U#Cpܘ O?QNW0U,vDtKTp6p[1lb]2?ctY_G[luָ h'@3m/ (FyYIv|`AɕWcīԒ!|:hiy5PrSss:[e[{_3~+bO}l4cHLπI_ pYǞGWeM8KkQc\UUظa]S%D@*ɲ/+DiD'_.ۋ-8[}v=%~T$ly:M{%X[0e#h>>jxJ`2]t)b ur !a׍BMЮ38Mr/@nWlL]zy1S @V|~ojӇq-4DVWpJcz$UוM4I[3VγY`63A nCd[.H=DsOUSK·sJP C <[s)v5VM «R >9+;W?SRegI7 7ղO.h/3Gx! C}>`˥1#_ϯTļWĉC ~x0']؃y2wfO{8"/Pvy{UƑ}:/K䞺,Fݠ!zwSoerd"h~w2΄;?2H9_nTv)Jji4}ûCx/lH"Oǣs~),rNԽ{mtrdK!G6gKAyb߀|Җ[,4"";k@E  #x!dKE]-T,_!?y!1(g:orq=ͱi\fDpkYjm'IhN(=@tR]$$j7k|ϼMOK\\=sLs_sA)$$O EP!. n*U~̉{to^IC"DsVr6)En7u߈-7f{~1?=]TJ t$au?u{* 7)c*4WzIa<`,:BݩӕP7>'ʊyA%ꙛY^L4,#p8{j*tIα>ΟW^;U^h;D. 8[^x1K ˜TT~41ә-Az, Maϋ ܻyߐ*Q #.ZnWs=U.|+E(ֽ:#dTuJf>9)ZTuphW,ί]iKPJxC=0_`.֬@GezٻfSM~v2&x4VL t8a fB^aⷆJA혅 ݇|@̸@嘉Ce֥qk+5H-AdT?A"P\D@8g634$c'Dq>?+u",H ۘBzSg%B;tBL S EUuB>m:}ʰf/໌bɢhmk~^GmPceXy˷@,/Y}#S57{w<yuߦ,*ZĐ.Z\{u;zv1Q;8X{g9x- M=@40+ )-`9+g@$25T< 9vю%iԅS&4c:]b[u)aUa,uUϫ :3+F鋞)R>B.L{՟M f=aWk ;kvD]I m1U̹W04B ~&4y`C;z]ʠ,z_dz~!Ǡ ysbάǜ69xR8hx&qRb!vrzHHr^.֮WO%^ņ߁wo _{pĉÃxxy?60qiV +~{"WOcER]A:xjY|mݍA[@gN}O{M~f.+k ;DsڡX֛"|ۋÁ4FEx)T ?EkCP5DIIVV.|Mrh<ڞ"DDHRc֩@R؉Hb9{@K}]oEtՔj(fL7:VBW:j ]xҤQ{<чPU pg; c#cӶ7~鍸&nJCIMa4v߸Bd#NjAݷ;Y8qHz =l.aTW3mw_޾[*f#c: ڰa@8s8Ri oξQ"Lc*4hTm6i+:M{eŜ0e&zϹo bݾ?`ǒf2cäQ*_@>7vpz{2|Be>+'}ӧ Y>S(07 V yNdѮ,].>bp3,+#|$6e'_מKJۂoMood6W]L:;.7d8Sa[s,ا9Ujj4\8n~z[J9ͧ?#hN6ŗqa߱ϔ#,G'58 cKV MӨ%ڸrKN 9ܧR !H*.ŷfExFo`cEbB=RKN~g L og]zD?uNDU& eklƻʜ < 4SuEPcu`bPɚ'YK;<D[8IxU6;S?v)#TlM @͆ݶyQ0`#Pw`LH)O4Q^zA8J;y/66:GFg0$р97<}i'RM<4FUΗHzDV*k0(/ ^(nLfyK4OJD\}p6v{YҬT2oT2 <$\R7kϚ`R,KRc!1۳m8; 9Q>W"X^c+I{I֥\@h$݋?P=(e9'zXjEu٨hq2>vtAڒ38]̌d瑄` mpmqOPzsۧc=qM_})a*^NQ#J@d{R¡xWaUE o?b׮8ȅ-TyٖQDY>Zп2q)i%En*ЧbSMUaԙZ4Z:znG*ɱxh㪀I! eM8ڧkn%XG!01Tݏڢ!zW:EY3?`b{%Aۺ!;pOQ/p4N*K=Xa &s:B8:JVAG(+p\lmB|}P9>'J\JDﶩxQ/rT߷52T^#cMCAd=PM^"YtGb*!m^S=}KQ%EZr<2bp ʒ1hvFK5]PR]x6׎p>Z] <ςb/)¡P@hTs`[gO`R02 B S)*zQ7"r8.lN:)IJ6AK5 $v-pC9 w&&)Q/Oov} uYw'@hLQw  . K.Ձ{O -rSQ!O%'yYiH2f6YYnRPHx9*$\+tPzg=v:>c \>hRmȪJK<^6RM/T -+??yJ'i7Yd-CTUtF5Usfjq5NƩaALyk vjVt絩fT[0 -ARX YW,7wv6(᠔`ILGhό | r9 ncU۟ؼZu:BJ/&p2[#ur [Dm:#WDsYiq zAd[U*+ D\IG1`ÑH1t ,Nle:݅=AnYITwrw12j 'mMٞnkwgV-ܠ.%\bIMH ch\枝bPeR/hӮ!' zq=7F u8rGd~},^ nJRL4Ţ̹J<y74C@%ːI%G'P>ҦچUI?h*bt`۵yfsTu\ya7)iu<@ѳ ^x|͖˵g.3 oeWďy͟s_ْL&jFy\S }CJe qb}lVD/VQ5\dzEVဵTO<0wSnJlsX ]dy$Iбm Z*1837P{Dcm.|_YkUMه*tB`*euoA-dƃh~SWy0Μe:%g!ٙG*U=ܰ]_*.SlTXШ2S:* DV>TH`ISd bn@L]CBe4&_d׀4v2 ۷z^ܱNK^ BPV{5'UꑓebJ_44.dqFXAT-(2׷!/>`0%BQ:WCW)RX:]>c-G<}cyy5dDGGmv/,EzY$I<}6u,P]B:u-V 7H/Wf'8Qd;{LQ:|ʶ2~")|i?./kT^:WV#lG>_ܼayF{X5cd:e5G6xWJw%ٕsR Pd?td'qI{ՐX.('V1fS`#JO.I֯=6:nvBÁ:9?:q|0ue0*ڈ½mPof L ʣpݦi|9|A:T{rj9XU W[JLz5"/oݜ ·Ȟ>M7u=ykSҩel}:8ws0a@ y}eZg# gR!d=%O(;7aq(MN<5TrU’^vI]*s!o![$O>B5%g.6J\SX&H68-C&k_muF8÷(,Β}.\@z}A$^(JY[v0F^BQn%n 2t!~YTv U8 _=5K|  $kqE-=c,;7BLB*CՊ qteI/1kTda |K 1@)N?NMG9UJ57^ԝ~Ur@@΁,;qdV)Vy@2vNI 9\k!uj$O,Hv?LL 2jIwʗ<238 y#",Y3#M#rQcB&|dU)0uإ_{LHA¼-811dl< ;`(w=t!$1:ZUi7%hYBxPc-_rI@jXᲽ.든e&8R:8xCPXDzU)$$ԝ'.LXb5hBhQ&&.$ԌRaUݴ7U5,fig8RkJ3s~jFdKjOsz;C?@i .V!&,#ن d.?t{V&Z2g$@u˜"b4 \^(xp3[`8sdR5f0 Zvax9/98ӵ#k _5Y'25-dn؄|Hqg%7uePB^KF :@m.3/ԯWfn}ɠ8ڪ]+:L!ܨ)mHm-6COi !P,ryUu:Oš&mr)ra- vCAiKˆ TRzDٗԿE ;\Ixy6EbB?J@8DSk$@.Ng iKӡ~fY\7<h6,Z+eS38j <.@7m00(H{ywiOF8I2T|(6IsJdPWJ+6}YL|PA`6IZj&?&j vi( %6R ZY|QmAu~'RMw`1{ߨ5Գ"EJ37H^fʍuY&Džb!l _mfK/3fF %&)P7T s,$0g:Ʉ҃Dˢג &xeQt4xH fs(AK]ZE`0>?F'2ӦbE".rrlUv+ؓݾ9% OM<l;2Pyǯtv W$Aa\C4(jRR(=Rـ&tzwp0[N@gY$K;DMa=-iw@nad%haN1I4P)Zbu0 ,>8OTmQޱT"us2)>˵`OҀ%b& +O-!Aj+ t+׻o!9؅w/2 R`O9SI"7 <IK{}#}'/硹 U4eRSf wز. Ūd>*!,&=B% #6z > fP#ۺcwQ_\U vi2åFc0Ed(]޲#\al:~֌?BQͨ k|NqT*A/!H%d KxT iRcBz^2cD@k̢c0\AmqSƪ5\k;j/(>.1>*@?cRRU!:׸G~57:r/S7!*o9IrԛNq(0rKK.G` ʜbF Hx)Ҏ)G(t♃FKуt/WμUR~DnJ`#@㚱K9S, =81MuǑjJ|g8^٪29<þXB|j/$\E~c2o o=?Fl[a4 V B`| 69Z1_வC9ɂhuJrtdjWƔ!J@Ėm"(fXԠ E*5%q{EE ԰oNw̗Z58MJ)}ݞ3-0I$Jb5)X62$koW^Ʉ Ӕ%!fykƆGх&) 7Mt&⮈S gFrtM:RFwÁgpSPN7f#O%k rU sP<(EDgr7 H۸$L,9cC/?i<&P0Co rM^-S>V|DcdNCgm}yFkz ]ܾ8o{Wxڊq˱ t*s`銝䙎yiF6:{Q*. w[3ى)b %?ekL +NuCbZ0o |'c0nlATC.9MM|( o|8b%LTWsWs8xŤtS+2n*mwgVMNa_eR;mYi*/6CkT+K+J{ŮӖr;mD;bB$'be T@ɆV kRF}$Hw|C@΄%cGt5S(Țd.S. e(\1>QiG)G]R{$ mA@_ a%wFEjRV}v˜?#Oe|gG*b$,U7Df3ey4w>pVJ{5łe_Gv̕YXd~jMiYF}^+.|T&\eiE'(1RyW8cvY@R7ϨPs oti\"7gܨ y<Ĭ?ޞ Cf%lq|v1 ^%I*-Ph@EB>_֋g,sy)POQ_quz7\10 xQl Nvw ߈% -BcMQ>ŃY ʔE V,(;ܦ.nnUF+J^N:/JDeQ7=8OOJj>kv%~fؓyuhfyk5/GmBf K5mփy==~!:ijEƯOOȏ X^ːe/C;ANK3:Rbž$L %z{{[&n1j~XyYZv 3?j&]kٍ֛Ѱ:j LеWNAn p ^;_QL%ndJ{Ԛ k4s&n LזYe\r8:*1otE0b#V%;HQ!Kt@wHLEG4r@"{xo\^f'bd] qSMݸ,mIAۊq ~=z( .V ` S/r\KG,afVlB&5cJ:KRHTSTr&VvkxXg_+"PDGmL( ҪʁxZi^,KZ:VDh`wd9HpHxCOW8칃tn%?G`}3hV%Wot퍨}pMr7OWHHbЂt0B'{dɺ KF90lSE&YgWIVƏH|\jx,pK"WIe}ˮ2Q5ۣfr2Y: ۘi LpQ-u꧜^s \"qL(kHS팙=|(4:D4 ̽cO'̀taV emrQrn¢ JUy~(moShx5W*)e1%oF68jP =F,_jM5J/t?ЊB j*m\A1Eczăp5:#[٥}I_bXןcP BqFQZԵg|/fK GZ@ :rfr\)4lY{GMQAiR'ЈNIpWǕUgʂ(l375}lth7sgC*gGr{xEW 3 %%j,km4)HPڞEM*a$F/Sѕ T@؍/u@,=}q}1a`$Cmc#Glv{S+%.Q%i:8cT:n*IN%&I詸@Qd(e0L0'AI-bPLqHzaG`&Pu?,pKGg>>`~wcM.jxw<8C[xUMӖ3XxuSh^GቦţהTvϜ`P#8qz?j1REdz\W3{ ~_`].fݞnG|=[TSBG&gTPsTpIh\g6deH"Ch#_T*0 X6s519k͕̀W^1JBB.b%_)<1_2Z76}\WOb>r˧di UbQ(%zLlij옚T(֭VzQBO:89mCIBK4;Q xT}D$y02T]kMʘqi#U;'F< V,,P  sL0&p kSNf{![lPxZtP鍫^Y>LNDȰ+Qft!5ZKc" 8xBۀ =I#L@b$wL:7ϡd]| T~*=} 1"ě œsݥcAOCVM{IC/*gn'_~{Þ6dQ@;չOKS1_Z)6 ּB1k9Y"B@_NcN6{늌Di1Rԝc}׆U8X.u礤.'&KpbSGM۩Cj;pb~t t JҸ(F̓ LfPS/n bB9o$u] ̫-f: 'Dž\_r7:H̀IfbB-BE9kgmqN[0~)/hsC.Jv-t6-.rʙ>/?W4Q+9N-6& p-{ Nm`B`<%jrcxM,}&aLj/ɛTL'^i T*q7C) M#T?^Ϊ Zh 9pAp;Ci\$4 )#tP %o9! 1i8.AT'Uk5+:IUa*8BɋSD1惛},WY?LWN(XI^o- 0fEa1AlS:*?!.bSH_$@$?%0=Q=ȗ枕5T1X\&h D C%c(z` 6tTIٷJJb6OQy$FFhTM%*Yb~."DTAyS{kHJ FV[SiPË]iDwsM1z-ptϐxڼ-,ȊyY2 R Uecr/CJr2f'9q%i:sgldznsuA9tRiYC.;Z5hj i>CJA}'Y_f+1]ϮL.'2z^U@/a2,k8s|ɟnֵ45'IGu"0T^RSisz 4buFr.8F` O c+M2i meO,[ў.LF&_֑CÌHXbS1*9,PkNȤ] ݇,b8ozrȗwrAjy۲~apiX㪖R 4@$:ݎ9 տY@#ڽ .#'Li x )LrKqDuj/5({GQ[omL9VewZޥMP*eTOA" 4)dRM5˙2+CtIe;2Hd 2rۜ\KRdÿ[>Z*BZk9E\ʛ̜TlPEB˲͓c/lXOJ9o}S Q aL& |fwe3&Lޑׂ9ӂD5?~6)GԥA$Si4>Kħj= OphOUj .ahbb-fiњ>TR%k,]9i yHrc8Lq"MybBIX.c3KU~I[]R%LpT‰r SK;edՀ~=MB6'c blÜmhIjh}SdT. sT8t0fFIh-$?k^ங9޹Xj+0`@zrmmqlaBw2}B)\q}&LǘDΐ@pR UТ&FPLc4΢܀g6Bc*.?Nu1S<A(CL}SU,!!B~PS鸸V+,ɡpCO9 =)M)1SOL&"/Y6OxVv H ݔ˴r(j>d 6\ i L E5aRqd.ąJM|詇OP5}h M.Yrti*2 &adxc8r2j6wz2'CHY:d!U|3rCa$4NSOQNWD?BLy?ʰ)s ܎G2xߗ ьoWzɉ̥02WJW,#zKX Of۾9(u3j#MdKfW5[ϗ7:sf6 dAS\;%e`oLU~5Gh.$y5tz߀h٢nX U0nv[=2  ಶ3(u0oU`_Eb cc Hey rHXɏmq+tAn'nĖ!W[mh}p=}z=DL*!)BٴzAIQyPQ je)HwI7{|"T4iˆ"o!scozTm1qG@A ϦT^g؄@`bҸ),z>H53aIO=yz\0jF}<13%q=f;3cտU|1Y1xrWuv̚S^uv6;rED8JwՔLE4hhxuuf03dtR~3f]jfnVE- OQ>' Fm82M HyHLֈgYPrm3*PjBPkE\)>`::9 GFū~Lb_p :#O EKqI)Z7䔳K Cz_/V)[0fhķY "gz4,Nu:]:;>=N8{fMη=G%V40gx1>`8i_a_M=-oВYlڣ=ˢyBva.dD"܅\ Uhfbn%Y% T%:v#Fu5]*셜j|O͊ Dҋ) Iֲ9*45]4uq37LI)rBS1ӐѬdb}0JKؐ/C$<u}||]S7CeCء/q e{K0-th[Կ?5cƽ2&qPGkTG?r}[T8!|y,<ڐ+HgΙMn;ʁr膵7 4}ģEbʕ@t1ᓹhazN s"ÓAjdMGNgʢ,Vxfo.ެT/?6]!R0ޘ˔*q ~^4w>5E<)Crj,KQ^Q mʆ,Iըf CP*jYwiGx5X,?<2>_9=o*"~OԍzL\Sn}#3<9i%' Oo*pL Xp,HݔKVE ߉֜GleKU.&Cu"GE :GN 5~gҤ.<+W.Lr7'k{l5q%֚$(M5^/^FTf.LaP<<[U.U2K&NR̝MScfHvcZr26;Aͪ~إcaM!BQ&iPG#KB 0o<")K h)n)"PR p!=~VEgJFz:dԔ>)ӏkj!~6A\B qɹ}Rcˉe{_-LJ{.;[`-C@ن*(U<\̜nJ4z!_'KgPܐSI!闈I&pl ˆtn>a|D8Z 4N튎t]+Ң88~ܠuC$hAOsj2\~b3#Nl;Q=8Ed_@FY| aM~[gR// #{)ߴYD r3퓌}M%V h4ԓ!Ÿ;|lFOY.a3> gRS 0Kq%.-zS=qn'(0dQLjaL+K0': ,)tPўb"4)PʊBl֊R1i,)qbdKvf_s/&רι~pAs/252$c̉d@̶&BVQӯo͸u4A|#)G_Rf3J%jbڕzt㩭B7ueҧmiod'0AUy@6TDUeo*Uww(0Y;*%>K)++XCAiK!i>;{z˧|L5ђ5HPMeE.ֽJo I+%-T[6:$.c.O+:G` I>+TζHnT'@R$p ELۯ_GQٸ7#)Cm[bKXLmb&*XvuDJkwni9;=^ xݜ@{U@PUSѿ),- WOqiS@O Jzģ<.Iҫ=v;JUNKc䧌JJݝSgc~~,]ʫҭAG<ҡG?UUs[e ^xqF% -`ք!2)nLNN5@ ՒK. M}Pm(@=ʋB=HСkBhg=ˆb?;z lvяu҉y\)j.@toФRJ >3U\|㝼ܡWUZ-Mq{cZTN'-Mx`&V*i? 3XVC'OeBcZTW'}[bҷ??$f"2S"`Nt=bq756 "$E&8F^wU<Z[EQpmu’e׏E !ҕeIY)]:Xwhy}~U:ci^U+Wqdz_K0`%yeO1lf.XMif;=g'1E+EkHu l TjJ-,2?%3BT/˨<=t4JṞpp6w?ϣtFYPl;~`‰ sL>h|;ï7ifSJT³@Yf6 A@[QLø-0g.F%&ry F?k5(;zpܔtSx &gpԦtLqQ0"9 =^VkpO(} 5SЩ+eXH1<}G}@׻1e&^G 6c.?S=TWV{k vjX)`ll]>IqUIM,E$U#8T^hl g'ǝ#a),,ڷ)揠풘JY3(B cB08Dr1afb|p`Njc,i1WMʏQΆh}) orm֌>!(^bsPIz|pI;;x3r,I4=WL59o}aM_584?S,(]ԙ(ņsgHM)$6R4;$42`S Aoodo } vv_[-TJ53ҟ7!i^Ghgə. '5F"mI=]pS1ګc]@+~ETU%m+uf9k@E'Nd>5KWDm(@xp=v WR|A uo/mA '[f!J5oiƇ̍L(3KxşKF~ yxōfv¢MD2+'m2eJLC[3'I5Ŧ>Wc"=Zr2JuyS9L1Dk,#1  cLQ 4'+]li(Dze4$,I-{ڻA1)OjB&CGjk%qDW{J>Pq̬ؕH_^AԮTeH գk_?Hl3#jveȈCr>]j+d?4-?0OW}xiﯺD:,Z%%Ȯp`C߮ -K~2T9êJWg}̃"UE{Q)qG3vglpy6{ ?qXT]#|egMb :*x}?A77nԱ0p nhiU; ōo@:I}F dtةPw/ٓךQ#1ϭŹ83kM.-#HLՅ8(Hmni~g_8m+-Z(l$Vq D$ԅ7z3PFB6հ )c/iū/g|Vn6`-«r Tv0xq^5lD8ynjܙ(Qϱ&ܹOLC]%E&ϿK@%0:|0DWFd[zIȡf^ MP8vG?\}^1Vpq'4o\BR7[bPBo+|rAVcW| P0p ,@C$fpr)~a-^3cD_ jQG@k -0* eY7a/)n)g"@HxL P FVxg"U֡,*{=MuGe |@}qCy0-7N~ۻ}wWe #yq|;J|qJ6) { R^SNSqj\HL*a{۲Fc<]Et@*!2KߗۏAUat:X']*:1i*ߙ Xllto_\Qlʃ;)v$lmJ*1:>xRmGOae꛿Ni%Z+`MR3C}^ tk-4:nR(¶vTYsʖoiСٹ]h3f'JBVWn)P`8BuRR|7ew`*Es>ꮩ~75R1RŠa"|]o;"Nsp2rPY2Sխ&@˧S4M!Za k(Fc:]1V417wvW0~Fӽf\4qo*|2v|Ǧ` '5q%DEyzL|}$YR뼩lT+}ɛzA!,~B`MX-C%.NfCX;-)ANĹ7GO [ɝ>pg< y=}EjtcVs>bG pG@zVfˏJ,&BPa np$JG۱5ЧɬʤC.$ 6k'ۂS}3g)^0v.|Zj@ 4l8½:s`zHf+ *x&Y}T-/%l#&(fj2 &jy2oi_@I)rb tɻsqR ~6mOLjڋd޴Yd0#fbT_bgϹ 0{'x@,Qҫqb6:V9Lo=E޾|`l8ӬT5x{&тƛ̓KPتҫXs QLm5-]#%ZB} KP 쌃Yf[2U]QSapr"Ahd<̍ F ׮ ,`]rȣTqǗQCitǜ"p.h<ߟƅ_] TVoAKx_Bx0S8]3/vzE- θzߘK[c7ot]>^JNœ0JpOa7ww28 d] y(-xyP qpe(̥r12ȫ' `1l1A/-g פbH$XjVW*]N6j1-J95ϡ>68yv#-mt&ίЬ<p& K:D\_ 88@S ⋍{}V/?ا,z6l?@K̆;+C:ϖhaՋY( 3vgSlhx*å6䲛Za6u[lڧ30꪿Cjd_5맽`6V$vKㄮ xS`DLE ɨ\j4=Q7q)P=^_-+˷{^hKv}Ҭ+[=څ77Ysib)>o2Op#~s8ZeAPnL s8@ś G:RKg;!Pdo(9bH?- פ@V*3qR6 O8l}gKѴvU&DbKjڨnPwxVoK4oMPof-(ExSMŅKt溩[_ˆ{y_Wo?Lms/`A "F5TftIG]fȧ i)c>A;7l&%Z}E;%jk<1Bfg$ޠ ZWN'$D ,tK㨇?iއ]kZ>*D($N1p`P4fwLs 蔽e؉cC(J\qp Zλmm%ұ\chGBP/sކ䮻$S]ږ"nZ@-Tg^}ŷVSZ9x6'b9,wtߋ*\xRP9'g~Z¬<}7&Lڨ Z?ۑ7pkV><<g1Rjݤpx1\#6<*ڸs%6x,zc(Hso?{W_}㻿[+/ƕWtqjq F8pp6g ~Ee9N.lYv UVY͓[^,|0@B39%iu^6X5__lq-T6zo`<1[_S8->5rݽuT3^Da dVOm3|u>Sylp<ֺr\ T%9bV}kyS{:^ȄaMGIԋ:NḼψEM|& Qwʧ Lj%/aĆ]"55sVVD^ |L{2b WZ/iܤ^rjF.#k#oˉBO⽺v蜽x]Ah}GHțgUeBQhRVd шG fTf,5rk—ƸDT- 69v:s8b(sǒ*biZgFo ̸?e4nzRʙ 7U/9]b~F᠛m^^&AAҭN׉z⢛7tfv:1-iʬ6U 4 IXrrlZ#7+%n)dj-~/>o'j_E|ߊ?{*DT$]Y876bgcWDvq{"i_CM+o ӷUiR˝Ұ"Ɂ+*Lg.#*˹Z7觊[$~>䨃0r|9Jpm %5BI3m2O|EĈ홇r.ծ^,W,aM/9duG8ze`:QX4` aؘFlrRƜվ1-"LKF>ܜMϸ//\.-lo{0dc݉i K+zrc]J;S-NSNHmϺCPC`t^Ԗs\AURn*0έfN(SȁEX0=kbP X:@bA& s}*a[x<ɔ b'ԒZ4|K6CK玖dkݘu3|Om1U5)qJl%l{$ɠ[E0Ihg7KPD=|kIEY~.^wdq I,7(^/LJ{#o̷[^ƍ'*oX D&'U&{#+`D՛Ot{o)ǯw^Od*'EʮFa[ţBY+08!+^Qy\iGv=5حLU]TA#svS:$~X 2$476.]xD o+g/}RN@ՅWM?x 'M2&PI,E2\:+g 4%޿`Xm:[3x5AK'k4@e!a;I0Ņ:{&}m>33Ow3m0iiEȾZ^00R[$ܴSv:-ɤMCVqE2$[k,!3nu@G,My7ӎ0]aժ5?E}/) wDM͊$^;nJBW .wjI4c^Θ1k)y/7lFD*ߞgHkj'Rq=P!Xǰ# нM6гB7kzfRwW|KpD9zlx0ȃA>2:6-Fݞy"s$ [c!  5)B0)ƣ(dŒn(2*6U5N9AT0kg+rma4K%zhDX3cr&W0\Ya[Q_UkIaSƣC=rݯ1wЖ{grjgԲjuD*g9֓ni_|(QWbB}Veů\o/?=u妮@{2X:!Eɯ1GEwVHǬ9`o틁6.C{vL1LA䤞9DnDLp_AA^F ""-,D3yfOL0]D^-E5ȤuWmq1p5jJG$fQ{u*K(%G2C#P"=b)L׭m8htMʼn$Yg9ߠW^|- >p #NM1"<9UwsY*v2ԑPm|VfJm6 X[B;kΐq5oʷee6.BDE:k~W{%*(x~;sUwU>6hHW;IG Hg|wŘ]Q+"l;Ϡ`]Bg DWɣ*B\Ew8ʷZ)5+upu,IA|'J4X$GHcwܔ1.3z`Q)C.WÙN#+xǎL~|ܨRgX3TOt2?nD19FMv.3?aq0/_hmrsFc@I+b[ytLZ/=QcX{Fa;n٤o)Q~Uz_Zd,UZt;8۠j0 1BQT򝡲6P̈́ٙ=,A;?tl:B΁+>fJfVl" =qnnS6A3d=2:dM(3G{a [ 6XDO~$R*Wu!E~7R Z#Oۅ:bS3Ѫ]>ģS4$ɢ]hP'1M*ĖLĮ#UCV<^]-9Xv0yDB>ZGVaw pigAuA߅q߯xp.o gʚ\Gf }+NI/{SWk6[ȧp'PDb]t"of6w$'S$ zӆ`Ytf/7ֲ8=CD6%^~GGgRѺz>ᘨ8" #o5Pi<{B Cg*CbicG-xkj"UG4BL̨֒! 11VNxbrO\d1)%} ۾sk>Ƴ` ck<=R7"JɃsDs't+b'f?Lg1ݾ҄f-%<_uVཊH!sqt*ua bC;}|'noi-w7~6\T,X%C,HL?Onksˉ%!w*JJ6\6aF.BNS@"vӢ"L*-= |PlHȶbEgQ (b BHfcc:`NyxjhVReaɋsk75(nL\̨ }"EEO8@S[k&lE !mneX<%6ڌJUc'.f]E 3z~[ 21clu\Gr y]X;3gG̕jC̵Ev'#LBf" ŝ6ыxSˌ϶ z #+e_Њ kו |n"YP1ݪK =01fG[;Lhg7x3Tprab $HsN-s(m@ .zLEXJڽ[Pj c8 Ljl@i:5S&)@Ӻ𒸴n.)-NZnQ|iB9-|HJä}Iv*.Vɲ=·)YONI↙h^ݵܻĬt||fJ{!76ŴXlwg#1c[5!Wy#c*F-`Iņ߽䷸ ]>˛k9]5cYFKpw ;)( BTp;DFf^Tpo1}Wpdrrf0O (O kRAUOLYvu 1Ǖl%l0b Q2b2IBή: t'N![K쵅@stZmcMg)}ed}F5~.KKnjrQD)0Y^,jR)jH.ǚ{[㡖pBvyŇ0+4g$"?ȡYTE{V"Pe\jRnɭnA3keN"wvbu4s9QYy3o:M_o"R QWM4_SԪ4O5Kc.s5K3{&2D#..L-dѷQaMEyWTµ{y)c 6^”~"Jmux1l1B.DSQɶZs1vޤ7 oBٳBƳTs8]6.|TfLd*7Z],@vtAcH 5 Rp F/W*u8IPζ>|!5(ХTJ;w|}waԼ]u\T{l5BOlYNi+ԇ?V*7ߋ8@{As,"?]_DΡͦĪTd.b kY̨\ @ZHv +kqˀEEc^8ul !dCisY>٘8W]!9a8cp F\ʵn %Cxdn(@9F5}*Մi4!!Xq?:J.LWl M]MF/H'@{Eyh]4訑α>8͵ӺӷvgOy2c]Nm~X*k͛eyDNa11[.%5ϼ]AFÔj"3XomRҦ rBdKzD-WOpځ#3p8'x#sKɮb=108ٞCE -"M]ٳ1ܷ*Ѹgz;Q3`R횷AȦ$̤'xdŷצ!<^ i1yn6߸v3#Fk/{/r7pk6frV$rpx=愷Gׅ}'$"!\&4^׬d_9E=ȃVJ]g%ͦ!d8y\wQ{ G3pkV04 h??tgPs4 M4Qˀ`N "s:gd(٠6j*ѹJMZR#Qr"C .?觩9n lpc&$| 1#[)vf烘DjVc=dvdW>~:5IR)SĵкZ GB*JZ%9𛲛Q+R }*>+)2`Ag.G{HT?OդRrM튝b;AVMyyRKCFIEsHR,vLt`·8:}HN"-*eXHI7>Nq[&L<th)+Pe[ W ',UP0E"%1+b7 YpCj̆BH PP3Zd0g2?\R -q zv5#R1E=ē:H FtO8hY糷YsnK ZO|k 1zFB pګ95D/]xoUh65'^ ݧ%S{Ρ3>N Z!)~=?+fOT~/cTrٖLfrS;W*%Ǔx=Q٬cTv!s9DhR*lD嬭b m̀9W E6"24t*S]2lB #*c;!rT)֙gKbL:ێ|$\89+[M*sMq R8dqؓrznJug`⅜ RܬⰐrbTI &UMժ~OTT(k$b۟u6*-.jzvNlŔiaLK81qN.z nK0vgD h{=נ}x,ZVI-nZ mPZ(`È/Na lpZdߞ8 ({eqh܀pQ6% ǚy[ܪ! `dWN2D (d5A.m \QFe$j:enZɀJɇ|ݵ7D H^YL!e3!$#ԖB/?MkƟY~-GKW=|zLAG%˚%j3'eQ4ыQ 2m3\Y{T zDRJ/A*П^h3?QD=$AB-2zB<Za!BI_Joj֞ݾNBS [l 5ؚWl+ocU\_p']ΘŪsV9Œ ΝSp0U^:Sp;<\-[6\8C$Ag:-۷6 epL\Jo, I4BF (Y`OrN\dk Ii9׽&)obM1h2]W݋3;S Pm}1tTCLs뙬ZvgIWVOtɂE=nTYm33v=SB!j~Njĉ {%nVǁDY嚀pnFDx2[ 8ixB},FadE_@[tDO𼲮;|ji tjKpFN`dѡ VPLYt8di!cRش""&w]KyH,{}|!dRҐBޤa4cܥ FwN暸 xQ#+Q&,FMH&*SD1IP}4!.ܪuf6L·5pvf1_(W> dKp/ǬP|L5$2"멭=g'#L#l&48G71<u*).P$; *w7;}O˭FU!Nř{!c|78z Gҁ MU/?rk?a Hqt&S}R.^5O2Zjo̫A_3 D|cmڀfC_[[/t3Yrv#t4U-Az )8b_LIRVGOo%N,)I rVAX%炸ȼ"%V9I''>,f|0 ՀWny4{g8U!RbYHb)J CA円nܪfWxgzh_).۳ڇ7B0#\q^IUx2دd]bnX`"8;;6I%X%׍EW {ĕ䐎Cٌ|f}!Zq q&~?"h2s-NV 0(X1TXtr*_|4%[7/>?K`ϲBֻa;5eSrS:<,B($de2/eC'esw`K11~0Lh_ M1ީ<9y:j:D40vĸu{4JNYS<Ͱ"&K}rMXЛIꌓ,Np4}p`湪jah1b` [FJ@ޝ (B]r6+EZ̶DSVN ئfh#jy!.% 3ݷ*j΍ئʂ'3B CzS?~ç] -ķ <>uo>SZKETVc2fszTox0OD t1͠_1+yB<}_rk,r0(%2'άKxR͉Re+gv40ȺsV-@̭qV  *?e?lY[ 0UPŢ\61ǾY E[9x*`,yT7OjDtFܪYHV/ rLa9U 2R:\2u34xh!dD`)ڃv."ߩl7x=i57I3 &S6i9F;4Uo]QյNQ.T$|C,-Хƨȏ3Y2 2pE҂=hRk*);?aCbWw.M}?E. 5RqG#\E ;eboR?8]n2~3_Fi\qnkN0RSp樋U]#d j yHX!!:Gg,yMG} Pe PvbQxѮl H:(>)H8L|m`\QprdC=ұR,HM)>1/2fLeLԮѣT/&R暅!0߉JGrsDIԤLȅ>׉S:{~! Em,cBc|8Pc` ęxQ/q9s^S0t:LV8b`FN ׽N.>mPh{ڂ]ms.ji^&h*Yss>(;u#玲0l;D#a1oF 9G29̀quռ2?zOЩ |QPW92X[2ԕsd@Nxzn8LptJeYNiwnC$hscِJzm;J>qQsF~hQ]),'8]6vQֻ=99=1\3[EKSS44ZhW!k#ǵ=_guZkR{~2d VnV3\grFd{B!ܶhZFw.]{m *7^[ "yI`)k)&r Aw(?RZGbd1 &rBM |׫^(|.%l|Wnɲ2&N=8nɥ,vzMB<9 Y̑ uں~Ġ6?p 8Z\x n-'^|74ȕN<ܩ.I@ՙ BD-yůI΀a9LܮjU}M๝+4MWj*{.t[ YAi 0:g幝c]ieN|+f3!.F9ѢiosSӊbR%Mű~d`P̠N1SD)L8}tP%褗UVw-#̓Ap`vp(i[s7V"=XiAːS̃σIueg-6}:Iֲͯ IZsJ0Zz{רw%\۰; cNAN0K-0fǪ> 8!f?>~QrS8˝(\@`-ӵ}3{EPz!&v4;K[ r$$%'$TPTV7vC˂vtEtmπHd`Z 0y\:u9mVþnږk(eUw/߱0ث[<W'NYu#mo%lDW,fY ^ٌ-"7txy!=RU/Hb&&B1!$>ziGeG~2JjΛ_֩PLU%2eO>Q,<:J [ۊ- GDn{^H+)HѢTNy9ʽs4bx k$S"b!^:'{4 ļ%6hRܱ醻 y4j唲7'Yae\hùg I6Cb68i+R[PrNV!JsbB M33]d/dž$|tdg᧾+Zspvy1MOӢg+:d3uKcIύϬ8m2fZmm#hԧ"%[Ցb)H(SI%'`9s}K|wUPz\48½ChAk=zk6HVEM 08uqɝhWa|Ty-5*ufĉ6'b[Bgf_2ثf\IKv4oծb%z苳Z`x0T둉ɠ,ҔBZaV?VIf@2^ڕKdUGb CpTbB3.jEPjԪ&nQI8tJU l[ƟNʤ4.i:;ȉHX ~仺kޚ^U};tybZh͚Q80$9S^͠1VN3Gmje:ʡ*V.ǜwC]3 ,̂~Qdhݕ8kiAs)|Ȩ<_Z7ؕ2*%q4J M{n4pqﻀ=Qpwx3Zm"mQn!lCt%Im!$AjW c2fC)m2&2-4BPx*=ed1TC.";Ώ/J~i?V㻗758M:姬}) @ \i({%!&t܂V.2fe bdDRLL1$-&\)BSn_q $)s> Ao6"JiM4u96Q[,F{IիBD?ʬn@vX;.Av2G IЏN竘'Sq] `>ut13OWI;}Mw٧ldD)cYtoyI:bT6(*-ʎ5S$0  bDnx勦NhMƜ4VtDIw's’2G;?JG&#.>h*Jzko^l:-14 Q☺yB> "FRGeOwY/t %j1ѷ+u& ]HL|0Hם:ZY*k=;:":Н2ڗƳYy&[#vBGL,])uOLho?+>X|}_K|}}{wK8QuLJ.j޶%;R4)+YsISY~F *Il a9tEz<<)5ȃ4}m;; au3sOgO۞r T;ćXy(40L(٠$Ҍ#dQ6SڊRV{pT%t&*gZ]aEIPv`䌵u_*YRӮFB`& !ɑUKE(>]ȁ ǣ]fh`6I t%ѡILB꿓1R<ӰNjlվ8 (ۭL KP=mt%[;qyJJB[YZ,axp0d) \.3U>2.=Ep3jNOE>p!䘉æ~҇yhyPfΛڌy4uoŖ3p5wE}|p6+~gUqN[-jt5+! ";EJV=Lʏ#/SH:gi7,Ld%3N!X1ou4tsI᪾my7NOoĖ/ Lojd;I!3”3- !}IҜ5JTd6 3uK3=& @}Wѹaz1t9eЯ&-VlPޞNΠ[S35s#gaBTSyLQfl=>蟪|Kmb"bKw%"|*vB";`rT If3T'g4%7Rﴬ>k&F=U_9v ``.FE5QG1WZ'{^:?;ЛR [z&V*O)e8͖5AĹkx=clC$G؃T24+S`1#=QwY ^ɡmNx`@ez;fqڀ8H/$4 L9%4sRqO;r򳥼~cߩ|)N£pG; nYCCUBV?}3oYQ"™>RCz#h̷spI3߭ZǺi̤JF GOW"q!<'ݶEќK𸈔AnsD(X[rkA&{RS1uIaDV 1a' Ca3Tw]ǚgS\ ~fڞcb`1-k/Ρn3<^NDܻO33}vjb)6^ٖYI\}_G#s6nj1*WB=ŵ _a9,c7vV今97V rc%1cSn:\{kVh/.khU]"/딱|!MHz0m2%U,d07$]l8"u~Y5hAy4|y0NdIm)%8^*5X.\D kUEoޙ& ln Ŗlh))TM/7k9lAaF67bzSTZøkg ̜OBn^ޔ ]PvLP%P(js'h#jwVz4ֈ2Зߵǂl"4.d8dX3)4$YX `bTᡦhW \rlp(cbYP67 鳵?ϲd9n#;jw@zݠΰ-}<'S ?^Ɠ]rUv|j˶ ͈֟ ܳM_|?Vix5!"t7eqJ,ØGz`Fٍ~n<:&zH՘̉ॹͼ0ƂO׌ۄOf"yOe#Z2K0S<6%B.34Åy07]42{smSf9=_.m2S$]),gq:ZGWr6eSV $EiT|(ĥnetcWM[w=?E1!A)k4^1z7XU8]Z%;% =md9Pϊ3X[ݎ}0AV}[ ) Z=uoBpg*07ݘ{tTgQxK/Vk:K/8 X{F OtX̦u=54\pCwlVoռUx2C(qY1յXf6_xO.9W\nx4WnX:CJ\Ԃ;^揫#,.]\ %nf]bYi1VFYI{5_瘦j2 (\`=n8Ծ1Nu5#:gQĻl()C&츿I\%jW ;rG=w:TpMQr; p f@ΚGэb4P7fb֬sD<[,0<'ZjDƬsGp%EiÀ* {?=`k.lKuD(ǂm# =!V3udk䀬2QVOtWjΪ}#BBfڽFC4\zTy+++;}z);A'$o q\w~v)*]'7,qbZM8hgё'NVr?^JpiqcSYqS4SF'+VmRϓYFbϧ14PTflY~ ]:YAx<^&|7u|e$;8|pCgahJ_xvGy rpv޹@w,kpNr.~L)uc?؈g3DVz&R&U݈v&Mj礉ȹcVX4˾g^FC/֤o3l4\϶dǾW|A#.#\9Dۣ qзm #vq2z-tnvֶt W ]{#{q#InK[ӳF[lE_w>11R,w-ΈprnQOF@05ΐ/SMs6_{N,[x&=V6 b+\&!v;ǽDFcVj !tJ?3"!<<ȝOʐ,[Nd »"ڶ=uBfnN{o9݋2zr( 1xB9rtvo|R4MKWgzar[gݓH qW|t0O߰w;} /Y.76 t>.s}ZXFpl{0ڧ%><7:VQhmCU9#xOW<1ӿ~qN)jUF&U.<*I4\v!Dz$򐺋߁wLUab T-__\e%b&O%)ΡPԹ鶒iZ\en!nXrӥ# nùԀ{:Q4wq>$vE=t{Xv1' fs/VI3 Io솖'e_(b޼hƌެWjKj@(pfIu5]VI)om0R- ݙ~*:1nꀜE񭌍ѱlGJ)+'z篨)xSny}H_v6/^z*=[BeOYc%PuQtl7 l.L؛'v12vf:T&sJk(uvHlw1֖hC Bc fIke,NoU@G T=0 [|PA>D0ew&$lvoE)U2t3J-vF*;McfV?9>Xu&fofŖhiW*3|՚7 sN+dW`,x<_ =r,Z=Bn˜cq_6mKߞʀ ݆R :;m2.֒@8S  NLP[x[h#ѕjg ںU2 { DuFdGhqL[ߪe9bYݰ` G_\r>O/$VIIxY[Ry!Wr,MjI8T\Lc|exl!! (qDwZ; *Eh^Ĕƈ@拢sg+XiI~o0*(|ĨF[eUmu2uQD~iΌ%׍ ǃ'̔QCRɨ6p$n;]ZbK2b`,ǭZM/&ge]B(^[!6|<}7o'#Q4e֡XHpDMZwGg aV[ )S {dw"47MN [r[~>Jc#{\&Zb!:zT8Ot~X~Pliekoa6cyͼbȘg{F %|ڷy~AWR#dX{p#٦yt3ypݣK%[v\SΨRdb1DĔ Q>TSDӷѪjS¡Sڡn,F,+VzSb9ԯ[ %צqߌC5HBF0JjaSOwM$OGUFeـS=]z:*]^@=ARJ)Ǖgʂ]s:f u+Q;H\)r>wdlM^f)\fRQa39ӈj~ÉIhMږK\Uȯ1, q@]K|T{̂T'|M~Ǜ*{LDӍc wh"sr~;ՖM:C=2޻{6gxX̨u0`tЭzP \oUkDi$h4t9s˭f@^-a w@F Y[K]$Rt|c@ArvDM`[GPey]Յuy_tK*s=?[}X%8@ Ԑh T&yxnQ3uo{lS^x$ۑ|2,CJ>XXw=QW jrAW:oJEB,,kbNeJ d'o}K/mVXmYU'6`OΪ{щYL{nYG% |0BکlUyezU"(eܒҜΌxNEX_dcR3xM1q=P 4=]֐CXuU Q dMatV9N(&Dk/8ۜD˹}Ҟğٷo îD?Ne31䓎٬xD9]|R>YaLS0Ҷ¿8Ldl?E0 ʐ|WçZAPZ]$J6ud;}M[frSJIhZP83ڭ_ot t O\ /zxLΠ0 8}hDS1rÑɶ֭#)~`ȤZ9bYגL<3UV>I1iNExo]+~*=s@1wk۹ӏt`)lQ$/}?_?%J6?$jN=;9Hr~c@MYjn&">i.Q c)ghe.%* ^ʁ9 7g-BW&Y.D\0fI!v>MeQf\T#w9<݈5FL49;HeؾD2 4f.B:Uԏ[!+yJ FH:bzF]K=FIqOF Ry=34\ Df b`<Ӊm`n`VO,ruKP'ߍO\SP,}|_[hlO%'+֜>Z9J=bZxB]]9 fO+0 +#[#4ϖڃ9"ԓ|m/$o) tԘ6<=BH)f)']ViL[Xw}""r6om7>cyR d,N,mփl'|`Nڣ*>+]S?#'Z& |d{BZWr@AW6jx~mmG>ZM+2M-cF9S-%bȸN9VcC/^b)υ`ŌJX:Hޢb,O!9FNоQ@=˹Xp&EpEȱb6xo̘0{X;I,]2 \%jvfT?X|*4! >yq'ZD{w@=oI'x,]! #bt7,mi&Ơ~=Y̧=3Uo]waEj2(thÑsY@.w8*dP<ĒRzSlxwgNq꫟x{S g;Y";>eJ^R"T8'M`s|poH\Ӗ`5o7Z$޴[oHN0T}ʳTsl$OF @ UF 5-r?f.'RDz .:w7jMgZrQ&UfQAa/7Ks^iwGqwALKEȩng ~=Hu;KTWT*.5&%c0zG E4P/pZ[ ϶gia\J|G 7[!5Ek3 (}XQpdCSI0BJ*[ad: ab[89\l-2>|4dejq@g['O"י.\{sIF b}P]ŘZu+uΒMx; P9e"=0Ȓ+<+?{酳xnvi^?t}(*Rbĸ&yt}[lQ@jN"\315jgZ]?&(1c%&CT4bRaeFnj{ ;A:T.b?O@iiTldp['YG_lտ⏣#uhvY4@?8_ I"f$¾L.w'81#J ŠYAEUڧᘝ%O oWs]'85 dxHGb ^hpI\p7NpIwNhXaSs "Gb{.<"J:Jy3@OQL_#,f_xYd)yrXRcxx+()/Q/r<@Q)cJ@Dǃz\ba5(%GxSUeřoXRZ[. E>T\,|7!O`GiʙO`F>L('i$U-~wRq~dxr.tڦi^cAv&/O|>CvSceTEcAK@XNֻܴ*y Lpu?t%$x;]Bͳde'(7ՉUTb ='9jyr` bNQgI HpeI@L!)NkG:T->]!7~IwCWp\ ;PG86_ԀiunA˝~ƛrS(a~EKt7sSXrØWiΤ`=UX謺pB5Fe`͐[OƃEȾI 䡍jxb_5 _XU̚\# l_bcE7%~bq6 ,9 \n(˄uv sn?E2e暒;ƌł%AG.\H~X k۔ qϢϥ2/`|Nyĩ]s /jT7oZYpuvxSgsK4q QGi琑KcwM=Eo:~)tt\)Q3_p.s,&\?b)|OJah8,\hMilud&d+K=4sb XQ1w&Ta ҉C|kf=Bb=Vن QoLCxk9dl:š(ӸWHHo 20-eLUxs&m:MiaCtˠRxΏ2g+!`z=`?:7zt<[x+%`ڗæfzijhDCo y t2h*'^ew=.R%h}gFퟖ~|z)̜7!~SS<^셼VQӑVnY'}".yLUЩC<TlJqn| +:iW8qAԇs0G:Dvͭmq;+1,TUyMFyk$ƹtN[/妺m;F̧Ű?V dA^pwMm*^ma SCS!wD^A^ ' [,_NI8_&LA/B]3m{\~HQI{_+lf32cO6`D^At@_{v45LTccB8j~r‘ttm|ՠdggh9_6$RFM#[z)ǪL .S3 ݽJǖd҈''=gs*76#! j(nzPutW뿮kCJ}ܚƃ@6lV>@-vPhbQ'ef ͙< Ԁ^k6/4gVH☋cxVЧPrS&Ne)I@:!a Qa87ゆ1 8l! .ЬSwqj$bOvr`IDbx %6y"u~ڒsLe_Ob$KI|)V碞-gbmyTjїZl7>%0d'lab6 \/@ޞi)Mu NXX[!|#40*5vuM::H 8$9Fтv@x(zs8l/'sC1^|UIwgZg:$d!l{^"I8 " :P}/LB/(I&؇٤y)RV=\mi)#et'0vHb1kҳ~='\imv +lPW vuR}tWO;KBa<\Xg) bUl#.3Tr*O6lHK#hv QQydwܽ{OL^GwtVo? ¤ {b;8i=eSR V @ئU % R ,ھ2]BcEH#3D MT+*Hb>x J(j M% w0:BErk*YEupqP4+zI$ǙeUF6D[{.ιHńyŲU;#"'>X.E8<<;? IM^bI11fg?b J5v-I껺6 Г!V ;bb5W; |B egҙ}BBxS%e;znU C#1.JQ{f_d p5kboQQ8 [rX7Z8 y &ʐk]LmTS4M/_^Xl<4J))c(\.D_r~4nzڔfH (Fp?lu)1 0A3HLbs<tcʨGKAVFȼJ]a's* |Ʋ7UsE#!YKZ}~x/AOZg\ lrnKQ `SF~_3/5G7)qusS6am‡Y h&̎VIK] HeI Fb$`碱9~u/@;(Mcv26CTp(UldC}i iB[cq\KXH,%d.Jl@ӷvn`!urKo7(EsrGQkNTIE iHlcuCDͮB T,khݢ߫D k>. WylP]Ot]iם %!=S3Fxx1 )|>7+jQK,q_l.\x.4hiKe_)C.Rt" YZĭ;}%b`DM-^jב3X5}kţINJ[]0k|7C6>*lU4bH : *'JǮJV!S׊ H/xadɡG Pq-=5*:Py#EDx{QIYt\n\' 6\;4:U4V/ tlڔz|g&C>itU,mR [B6r-ځ8bLn}S%͜r\’q?yr/4 0P@z婪w+5)Tfa& PGm#if~bW /+wGc$hsVph}h9\^[iݗeߑviPYo'듍~体|ć%ǘ]O,Rz~76s+=+ |8]+OFэ08M4 {Q5Z*vסcKaZsӈ ,[HeRܪ &ר#C|n &*peQw< U@M8/L6 |C0>YT"9~13!Bw5>vJúkyHj%Jx)>.q+ ȹ/4KIiWy8ϠoNՁ|P,)˥9&gm<s5CgMXZj~?kb35*˄|U(hPnϗ1mQ[l#=/SE)qo2-7"ŲvpiL[/^hxh; "͞Ҭmr\J55we3x1{ϝNDO&<>v}.K;! Me1IGYI8,Ce ).f(]$O_fkIi0@EE:Κz?g=̊A—`VK:{bLEPJ9ų=IK 1]\\ tXJ7@AÕ]̛NBb DARDL8|3D'0uT! ϭ\M7j c8z5y`xgN8hS6CD\uLm̃xԓIr/関/Ve0shb*΅0)i-|!3d(WWb&ܼb+yQaHᔔCV KqexV$8 wmS޽}%HNFdYe[jߞM* {-KoZ%fu>K}Ǯ9ĸ6T^^4p/2騾p_p'0uI&LZڧD4kjY S]|#np(&J 3!~lY=*/Kg~jD)o}#HknI<5 CxUGPO5n,;Ddڗ{&TAJ],U!F*C%2F|+t0 aI rk 3{ w(. A"$}#o("j"0)H슔gV;܁ZeDۖ9¨+l:&.OBfl7g'{g0]R!5oA{hv I*(DV@_Y٫(nbd:pD Zt+dc HrrW*r_\D߄ ?X<."!*45۪&*;,]ȔRInw&M*vI#ːJ=XS`zJP#$WS-uGw㩨 _0.T̡x1[.2ݰlrk,Cr: 7R?:{7NR~='s|PG6d6fSȂRY% [2|jaOTSOʬ69*V!cG:(4^RsħKK+2A#WާtUrK\ \K*pk4p"9'ԗtcC׹2zIxiG#5bi56?mV$chh 09t6@\ƋK%K"~mއI&,mM~6*p38!Yx0KSjvbtxJ!cS=jkdÈ@plapa}tUC(#<YΕ+]ETyslتGA/_f`Rڐttz3n[rxX IBzt?1 sC%w:/*rrp+m̪n`:wtKVߓ"BOu96᏿>nƿv/BU 6q vavo5vBm#9Yc0ǿwh@KTSqǚ][3B\D",= v7('5us,K֖do?%T !O]Mޅ̶41l$VVtRxA9B 7T3_|8PU\27{I5L;v?v- Ytg.r §Cd¨ & Qs[XgIT`fZ_L9_1ӱ4ME|%Dۂ]k"kڍ T -?S=MlCX6O`^y}< FYv@}<HAn*44uŵy銸_͖ӳߊ M#DTU+Dgn*lˤ^*2TJ=wP,UɆו>L5Ohc,12˜^fM}8ذhyR#RU- :'t{YmfVl4-2Ps;?-}miGcu2 ;U>Ur3Ѧ~꿚C*P&RHivmJ MjaX5} _N{L tGOӥFc,XbZ"Ibtʚj_~e! (GA)o ZJb+<+\B,Af+2haH=7cN8UN JHe LsN~OI{g+6 TOg6y,BBiOڦody5# On2FH"h29%4LK|t9ԅ=AjpOj'NgKMwͅqZqo<Ά<=cnF%SnL;Fvl9֪.<zm預N-pC~*;CV<,F9/W8.tuCd#A0U(Eԯ?l# jnI K*FQ笢{8e if2} vB(N?Ϻ6k 57Gi㉒Xih(  zb]sG-)>.ClW9+^j(ZTd_"wS>vՎ-eA' 2[ c|L'1Ͽ;帞?5Wa?cM;ڵ" G.4J[ r8~eX`I峌q,RV .|NS'Kȯ-F@ O(S{#$?:،W|݇qOf$sMSSzt|ntUFȸi1gdնܢ1{N0s38{hKP;J+)^ޓÓ_T3N=8] >@=[X~|&̀A 3[flލ{'V9y'P̹Ys=?Tm//t`pO^282 K?kt:$Y\mhz8(H3Ǒ4,V(Cվ|ڢMhFN ^gvKeP7+pbm4]ѯo:=1j>0@u=YC?q3O$]W$+Zgu~s*=(EZR+wfcU|w.z'1Mn^<71* ?NV_XE>QzsMޙ;GhM5澛<2QJ$<_G)4*Vĵ8,=YlЕ_aCy&E% cɥ̺9'L:4s%>X4/c':auJ!ĒBG= !}| pAK>qOX2u-Y-Hq&bm/;` AXR~E]ԅR󆆃5MyQPIor&S$g eJ/KMQR7¡ >;Z t+ eƢ&e mŮİ"4.D *-Q>=J;+i#-K ЕjNC; L,<JcxkUx?~b#֤dU̯WI*V7dų@"ri/Sp}oV&,cM"g7*(O"{Ei.NtDDGs 8N1A=\m:,"uSK pRtߜw8"ZNiS4;Q@af%zZpOhg$Xe'#$%ӊUϝqP\<)Ԫ6뗶Gڻxyo}| nRt8L MuK6-z& '¦oTϲNGY]ծ&UF)xKdz KY5@B< BEH}>zu~.IܮRǨőyⰍunl ]e%G9٩.h 4kC8P^vW!/!la6NY l(x+?ٞI5Uc>0FGXwҿ-(w͌V<.0:kz5s磷QI 888 ?M??kif& n Y޵ hv=tB4ʹ4FwsR>y$h.\8iTXSꆆp =*Ba]\˚.avJ­ȪE\ś2c3ǿK&v񢚹[&T@џ.8v Rlb 8D+o5}|^b݂!{P'=^Xy$YBq} MԖrMKE1ߘ>N"Yz8dDt R3r{)7ozS*xb?Ԋ632|ަ#QH64KknQF bbd8\,|DP=8 ;K>~jEQ޼u*[Ny'd 'uH_r̲͕CN)?tҪ`SKi4`®Tb$%Y&mYѾ UB~9EڭɶE$"cKN@[ poDPb5RAQbΘuu7DҊAjY.nŚ6S =vC.x˿?-?k7c__Y2o$~/㮮:O"~DA8rJ@n%vKbvSZΆ9&@FlTt63ue(dVZ.x(W1pw. Sq\sȶ>-سHH\#m93 vYSݶ" NOihm|;Rj3ǰ<D⊇QfT5{_{7jLvH]OUb'WϜmw7-}U.kGClODVoCMŘz~-Oqs,GXٕvb5#B~2L ìx0t*q62^Tj4dI8qurGEZO2[mC%$eN$%,uӇHw[K`c©efL!(<KeK#Tr2tqG+?q+ua8K"„3MKqȕ6@le ,Cꬡ*5.((#X1d$q:W]XZIn/2M_D3YnDnLԲ|< v)B^qEW ☲u :5t߂`D](_?~Ȫʗ7M[_E7hoO?珻wo{Z|p)S:ykoc=V_S̝|ڼ'/&.FT&{=; V4 {-9R"dň@ }ʱ|P`Ƚ֗ݳJ\c_oQ%Vλ Q":'S~9O(}C)cjr>4P͟^@ 5ҕHWVS{Ř 8e)d"Q{y^8w*vʢ`{]E& FJ#BIUSQSȗ;VÛ[޹h&TqgtE~sznP L{.TT(Ӈ=qJ|C^0nY$v}H4^+*CES'\H8yXl&xDFMN?Jv^ RK+gIprh:D]xF<&{}1 {V`Ж HxwZF6U^~ 8mrkJ:3q9LϧBj#8ۙ6:uR^d)g-u>ϟs`T!~oHaM2tox^&7OB-"6hML3vH5"pR4UƇȰמC|yOjaK忤͕ gb6lsLf8@D--a%ܩ;ߐ" Nu\^5n&5wu]M1jjv3A$O*_ܶbt;{\W JR&'yr;,R8Jw=,@-I!K9 mIoE yX)V-oMy'M/ڍ#.?TӴpʤ.χ3;kDT%JEH>ԭ;Hс8>Vᄅ#P\?vR4rӢApb>OeXS3 P\ڐGw|$v\͋wu%+"@RpaL<3@`jշxjG3eypN5Dzî̴7Ⱥ̖JZ[;F$3.%r~Š<3S]+w=pw]!Y -0wtD/cFu {feLU1kf~|FE'=u]zne5a졡 v1l/eǩ,^r IH Er8' |2$xɭ^A-7xЄ22X.e[W؆S<૤mtԯ*{+BDg}mՎT(ƺ,c^nfa$?v@S?TH8ENΚs-oiH{狩DMnĉ*o@,nmX)R|Ju')w먻8٫%B7?'7ꔳuyLi8eS 0&l-)'E~OPc^q:WoቤNJjsGaEhJuFԆtqtnmαu>3?O*A {ˇffTnssG}" J SųqHPI dI^+6tj,e0q)F.&k 2M2YƬJ6:ժkXV9kBy) 1 ,`̷uaa= . m~rNHSЃ/J5َʐ睾ЗbQiv?Ǜ:٬Tc}*?j l?rqIb~+r9y/n qۅǎ$-nm0gMs"ORgtCA;L~'ﶷ̴ӂϣ4h}CӺ$ǵ:$&`4l[H=.ߗ!7) _5.i؎O,65: ]aD.މ+9e:AԉC.aRpNBdAFȯ=ijap[x% *弪yaK3DmQ4TcLg<%SKB\c~j NJAnfdigW#)?[c,EޡFBߵzF49ÖĞ]kiWre'>)X5I; I#ʃEOn'tNI2)uzƌ>gRϜ =E 9mQK$}9-GdBfU gx1DtixGK N~Ĝn#8k>\KX~B8".Q +J$n dM`7nҁn0Bj(clЭ-%8r}rs@Gd/.a͊{ p٫%B)}GHE0BN .SaTG0j0sV5Әi7ˀa`F(X}МP2=^S ^\;춝Z$ҍ*^֖  ۞L-T^!uDju!w! еXi<9Eiz^ K(rPꅴ*=&A -3jAjO7+ȃf9D2҈=8^n0z g,CԯT*Ol(~;r~FZyO4nHr#+c-~[R Fkq탑 :DSOpv|&M4J|H`cOqմS5}j;?)}^sA @# H(ܚ&Wg~yA.& μJ>ek,6Łભx,Y$F_ KD,)$G} `QrZsjV芖 ו2Jb~(Y_zprh!1Z3uJUq寂;qab&#s=i ]0?u KX]SșS6 @P5LP>)=w_-xR ',ԋ&1(JAL]ϓ?g;9vnB 58c*Sݶ(Dܟ ({hj r&fWi7&a2틵X jrMkJydV+eH2FVdKC='Ǥ1Dc ]pI.@lR\I)v)G3`ux.:z6 ) cށ2i]8T|!<ĸNWB}v:RD1g{<̨mNSΙ !BG緳gRݚVi9G$S"ClIBT|V/ 3LEp4O%\Ik^ΰK%,~QIdI[{c):30fnhP^rS" sSqm>|u:f߻ f7¥گ"Z+:!xY_xzksR>vkd<Θ:2|;PE-{]Y2gSGq'`&c <RֆK'j$;m`*۞4jY?l(OIףּ:nT0",)+ FUb(l- ^ JhiQŭ'y:zv_fH7?BQɮ<}Kz%t{{ՇGͱ_u0~dr (-M>.ѻcNiaU .XSF ȥ6=DtJA82Lk* oϼ{xl66ȼY=kw; {d,CyxvH璨Mx:çJ 1n!K{ڸM9RsFDD(83ժD qmӮ/]< h@F48 ށm)S"zW=VS5w>0W!gQ\S(pN"áODb).V!8wc}.ǐz%Ab "*qy%x%gGUVvP{+ =7nD|^(+3)0ʭi]^0|,lj6-GcB8<5"2~"K tc~,&uޥ&[lIU,Pxx88~C903su#߮GȹLj%*JAuYxXXI/0Tj!O㛮xR CҁC,5y\!K&eJnc i$K2?&Pygz9˄spQ]ܟgU<=֮,5n$6LjSC28ڜKkz)y:k!%f_X\sSY]2jOh+<5{'n0(^ޡkZ"@tRl2 K򘛆{p OilVRr>sߜ&}͛oZōw,Un$$; Pqk $gN֠T:e?@xP6?rߦTJjJ955;@?9$tqsqt[`\y3[8z&`Z?:Kn}N1ʋ|GzkQPW4Ru)=tz,aW < q$+WAϕt))"%yyc7$?x l2(^Nx,cWѕ=YT5j+G°µ0ǚJ]dR8^`~oZTb<\L%eX4mMrZl2WeOwYr ^A,Cۉ ާcy5Ʌ>*_[tlڻq`8yM+6 wF"՜AR F/^tZD]rZWl҂BgyT2rX-Qžc3\<$;.t=N=oVHeV~h>;0q#3aEöQ󇌩Ty/੤oÞ ”~@O)OKg9hD If¯zsvoz&=@EХb zM𻹩6?$?U$3'œ.2*77o7zK _YiI)9R26t<| 95&A4r"u G-u>Ludä̸y))\V&qJ:>30/A{*ڔCU3Aك .1uUJ Ji#R"F 2̇YL;j&!IiOxSy<TLe'W7-M%98Z:<ڹt:?( k9y,]WF`ϜtJG"vGŴ)Q:V<|:SVR;0nYRq?Qa|N4J AőM4qXcLX%k7 zxN\:YXS|'`oD;+wrMm,u7O*eBT.!ֲ+ZrӦQ,1MV d$ݕ*B6nl%Oz|@)MN3!OOB09w*aʝK܍4~O7t{L*mOS*H^GC'VMMP ;e/5b2h)L3 <3[٤2 Z:4`VӌO]~6].;Vfy(˳Ɍr^ z;ůpr\\zʴL ևc=z1.xAmub>OrlRqB}&ufg}#ڻGM{YO~$rD#bѽ.Ѹ]]N4w~TgM |?qi~.co:$e&Dd/Fa(Fc !Oǰma[Ml^uqu3|&7lH=cR,MRm]`Fkv@SK\" B&vgeQX".s:UWMHGRyx bwDtc0zTssnhMao ޙ?^CEB;\O6q/ony3̊ޠkߜ!S(/DU{)-Cq|a⫴Q)}hU3rS . +G+jjIu&Kŋ%c#LxZʮO9>ӢJ-d#,lsH̨SLlcQ0 p`2gp ˠ/ \~/f kcsy?…)~34sv!i B3|1,]i`y`|r0[KpV6Oi6e x*XV^uwJO*=6 #EGpې2:s>k棺.w@ 9 v]2d*Pz5\ 8~zSG4:5/´ۙ򉨶 u8xU[y7cuKL*%Y+~G Ϣxf1Lؑn680N8cf풚Xҕj'EKvQ$z4B9=u/ՕM{3^T7g8yI3'R,U'Z2u &TcOި 9˙-{ۜ Ss;OŜGa݅bnccJ; 3ҪF6gs:kmP̄dV׾C5T*Nhs q.m zf߯٬iHӵ1D㋘,2A(|\P-8fsV1!0Ex~Qj6c %,,5@rW'A -"0b_;w:9jK@޻(?d?n"LJ i6SnCb$; Qiq茂~? BÍnobBk6`|AM*;wx5 N!MBo`tj7TӉ0J/$hECŽ3DKwF Â<ԿϛzTiotR+9 W:bdͳ%~ ka˒aDWX" f R4V#c&5%<-]*'` -QF#Va>*KB e,f6:|&NFFzHRI &`񞝩>q :ڝ?Dijɼ*)‡7WHs loVI<2tlv;lRP5 .q< yx&w1kC㡶n${w| 5jdnd$m vyx$=\І, N)/:Y\ L<`QEPqf:OvB9F,MPri#c8,Zٛ/16jxX 5f@֕"1Ck:c?5]YwMFP@[z{A\gmRR lHtdK&Tnm$OAjG{Zs@$aVRE!ŚE(uݯWo?")EifHŐb؉nO?ް Q[ ڍc0}6BIWfH/81szU!vF@zf<랛6 *e~?;!^vMA| 48TOc#6=aɶvT:A ~ԡOՠ䨴 Z)Q >SkCu?(T5B9 KLQV)hY\P4O*q ZGnp[903;T)̮Hx3v m:֦bUE+-+uI-8ڊ*)YwsؓhW1uf8|nĵP7 Rmr>Z/Al)Utzާy+굻ʹt/%,\Y#Q q]"x{:xl})SY')OjC`IHsi*jyܞBxFPS/:<@|Hf6u A-WQ䲴|`(pa( ?QM{RYM½(6Ur:#hiϛwqy); cZ=`mxsE3Ni5M6G<嘝nBEoa"ٓe-O$oP0A/O SGc3] C\WJzyuMLQrͳd>TWUznl$,s C )<߈9U2ft-lO6A8EGDi&K,o*N' "%4T} e޽ib(A" ?B&I֋O !|zP2(Ufbi"qpUmc28E"CGcu@GZVUC(E}HPZkQ?aIAGP_9W yD~=}Y$ K[8^9kYDi w[!Di%w%Wy?a|Qh4ʔ]H(: S`*?/@|U/Bd֋c{rM3JK]L6NXԁ?A?'izbxV]B%:Hg/YEWaE|0pY OTþhAA,cm7,;nزo<\>LQ1>6c<>TkW F(&FWWq܎Buغ܃S8ƚlPum}2IF]cƋ,Nz-0xIl$aਊ13s,ᴢ˕ϙ 15p7yn`4D-6RX!w3]rcsFBpmlUM9#dOE4n>n.dSнډˀ' pE_(!"o00nt\&aM&ٺpZ3>kvEԳ+n#Hp6 5u!zOx*(e~|LX"MMbmp!T >hFG*4<|/`M;TK #<"@~` !ߟ ˺]LpJ f}#N*x`qˣꂫ#&,[i t>QC"=,{B/DZ|c` Fd4=zT;!:Ǟ.x-x8\RE-61꓇GQeŕzr7gXnN̡`qb0N҉BT$12)1N7 y:;/ O}i *dj͵yuqO*1,*S|2T4RNvSf'ʘ%a3miAZ4}hg>jU琎v M8)+OKb)Y9MG"7N؊hTLzۉ@Ҩ^rקb혅؆quT4PXzVY5JӃ:kbN>pG|KJ~ vrY9ৱ1_y$sr[楔SAYlÐd(sp=&0]Lf{:MȿhI-ͯ^]5h%Q$zx!LEUSګY;seڼ,)tlrуI0[ +@8?ʔ1Zacb-U-2`Q0")n@i#okN Ssw&蘪Jou亽-҆/MA/ZSPܵArej`"BL<Ѥ|xsK'',,~:%p+W$}֡>t;}&|LR/#ʼnc4ϙKb)ލ褏΄.l̉9WEu)bcU랸T9%AiP'tʤ' 1OH9uJ0fhWѼz`Rݕ?޽C UAb1x'LBX>ZX ! LOҤZzglS:}ϜYFziaަfo" Yⅷ(ܰ{usj\R,,И: ̀zL!Ϯu;n[r1;}7c|D4cԫ@ԎxҖ1S| at4'QRҡ6o4jV04C (^v6:;L|F>Ot:3pf(~P]X1l>@4Ģ~‚{ Xn=ٞw>sM/9lUl>.lyWKTtgsb!E'+թ j o; ̈bTȵ0ѝ3f\7‚q} dySiOӹ@[Ⱥw!ɦ-'a6 x=#:5#;G:-2c沘E.Ocn!7uqʛ-/dlF֕%DuhFLQ6G򌴫''0촳&&D ћh# ,CgqczDw X dg4BtJwԲ|z+C,edP'Da_2I~bdirb-1[,U+j+ı?s7wRMŇy!N:`jVq)u–A JjD;VlսZHkíVe G^N܁{(/8ؓKQj'cYEFa$};Ny`&'hNSݰRאN^ |5 p\h>M'&8=G%>]^bNDR2ZDZO57\p<Nj#3cU+E%9B,=p?fQie#&@c\^N@T%4b0aSt{|2F?|z-#m1`%5Ll\<Dܧ(VZvilu6Q-_W(]h7v (춷fK28G*;̊^nڽLwJoe&#Ke!:jLkhiU;9"RpG7 ,.M[@$&D52O'v>Q%UhmSt4BsN:*)"$n`O¨ ӊ>l]ݘGvUҰtt)mjc]n7)5曓 8WӓbuTR&Nap= `];4Ok M:O!#=a4}YL8xlB$ylFMXsSRئwL1`xH; P4ԝb/)K &oA!>-6 GDHn*%g{8(Ȕ, ]e)m*$ ho 3x ȑ[K`_xd/?-υBq%+) y 筒Xn[`J8A@yO_( X: $et4']DtB Л/줓pt9q">3mYQQ֘nXlSHdBnQMSGٰO{gy0l9 )X-:^j&3%[I&,Z/SO!3X-ERw& KT³tMDz$?'Q̍% V4d c8&|$0aW~"ڝ-oK@e@]uK냁F3ss ]2Hܖ z,kKmIHx[ksƪ;EpQNk7>%6`7~5݆3f*BBzo] ^* !,y@ď’rLjL(KHE0Cut룑٧+&1Wތ~ Q;jA1Y䧜ti6+W^08Kjj1՗0UXdI[>g_rK)5|4|;3ʢRDNEԮc/D+]z/Nxd 5,4[g[vs:fv'mH%!R,Ւֻ_'YT#Q3T𓎕0ۙ!M߲..X l秉snp3a.͘2`zcxĆl vkSXTTxJӒeISM2j!S+҅:PΥS;a#R"|$—͛Zk3QH74w1_Ɨ $TeP[~ XQ |M8Sht;{%C{ zȲt6=ֈER?Ђzd}~Nga{:|ҳء.8KAګJf"W7%w*BP̟PYsNF cҦ9[mkt"Oé<_tq- hGLsSʞ'lUƃ{I\Cj\Y8Wd%K}O<ÕЪv !Bfk\.P?xykמ$2 DV`vlY ؒO`؉aI!Tx&VI 7UG -׮_|ڝ+oJ+0h7I$ r%׉?1Q٥+\[_:#K Gݮ=~sn@ODI'WK""*p0Ci kϾ[sSJDL[onp|Jմ ORpmE/ֿXTn:SҸ3'k?"M'͞JY:LԶ,rړlJѡv蓯9!2F"w4D6jh @^>sSK6CAw40p<ŴGRaxy\Ks;/N7- iZa'YIHuռG4W hgIg_d7Aa.=s"N7W+2PTlZlː< -ݰ]*%G.iH7W0h]&!lTs{511,j\Y1YL-t-Q(2y bz9΅#NGqťtZK6ѝ5eSO(e*A;C;$7rw/MdT,3;_ۂ 6YG&!o&>&t\zzƀMZiV8`btE=Wgܙ2ozheC5:%]z):@PV}kqvZa&vY~1?%ڽKHVT1IeN kHб&a?^[\3`4_PQLflz09R6Y_jhqa~r=P m-eۮ֢̌R0);Jq%TnnGܺf,>攨cI,'i:tԍ~QGk.$I?35o1~52Ç;U]uVoY v6=zωޞJ>-BѕngeA'NƻҾoQ;S8gDG+EA!cz(|B3h{9ը[Cspau.o5C;T,A%;P~+qGM/5cjDAEXO$ua{82pᯟӠZd(ꓳdgye?KCi=j`zk2ƈed*lð?Og/ {pe~.|h$I!\ >.Y7k6I~HCҙlQ|VN HrcKn{rOQD;)''wuxIɱQ▅g q.Ѯ!ieq'X ((7a?z 8DShks>RmeldGHLN9ߙIAt {-vjɔ^R BJ!P#4g2vB-\7J!_Po[8?/eVQU^%̓)kA]7&&/f jcBV7;1xg;g*xj2'CPigLv8rb v*v$j3L[I,^Н+icՊ؇yY[Hϣgu Aܘ{*ÍGe:[W>=ǯ}N l2eLץ5Aqfiv8vg@bf)#:6B BȮǛY{ ?Wusj)'@?X*ĄI[5az$3#uyj(C椵>/D< {eeJ IXZDe p-"7&Yiչ-q*R>? ݣ 5iC8D}%AO{K9Rx܉mzl:gc<2@5m+J)8'Z69]߼B2| j#>n?H,GBD/}Ȓ GK[ܽ Rgh%KUhʼnoehEZhl6ˣy^}cw3>1(!EYJ OR 1bîor(Y sIC:42I%>=7R﨩˛"M ȐRb#U<~(˪8= L\bzft~-8Kc-iSͮKƮYx2#p~7%r֎E?p}?TQՒMKGDؖx, xGRY# AXIamEt,YƦ :Eo#j'7E@E$CEz9=+VzF$L@ Hc0ޮ8dGs|OeֱE/Fyveru+ 3zRL9&$g]j`b Ujk*nY)+#KοԢh'pe3ԓu>RƥdFX% 6u^胋(1U쒱v|LT[N+W23})\:)vDkH"ڋҖJ[qW;s:7}l-*˪0A#^ Ć^DRᓅ&qXJO r9(85uZU@#ޣ" Zwܲ:r=2fɁDN$ET) yRss)>Qb 2Rgw&/M t7:p,,*7ؗE?{_Ğ sWnMz8TMaolȟlI)*P<[jIKUןh PUVFQ$zί"vf}`#FP|Paskg[)=J:6`e /ghYCTClVd9LR Ok<ӪL)t 23uߡ̍94` %5h;Ѿ[+TC>|3RY7ywZi+Pʻ/#sj`.˩np 2<7Li}'u 2tYO>dB,dB~ .x'KDŽgv>ױ&ap[hݽţsXK?\cs3b ws2*nYZt ŝHnϽ{%x`ZM "iUjGsH>ʛaicQ[e!!&?U,37z*TN&~wѶ>.>)ğ,egR @U\)OBէ^8 OnevD#(S ƏF EɑMՔ,&&}ЭT^LXKj('}+}➑=>8E#|GuLS(WwxVݒ2p ک؃U9Noj=i7K6W \kصꒅKR)s@vq)KhPgm=?ڕJ(f>&2=E@X?['&ѳe,"W2%5$b$t. g2Z_HYer/ ?b|YCI;^uc>m NObAKXܿSU>IHgDxub:zT_G8r5R:o/-, y>\2SeC~&3ף`K Nd8t-I >k*4Q6^rq++%-mb,TP:ρrn:tGX^cT6|2=-qܾGy*exfq73(z=e>a'y/wKjU4\xR nՙ#gSBV - ~šHޔ6NQw: ƿtͅXn!!`m a&16Ty٥ CN)jnw7S&UM@KG 0o۱D/]_cQͱ8ʘ{_rSʍ`TR4b<)^+}:J}lg9^]M[uw'}SQUZTPK!ƨ.Z, t-Ҵ,6xxχxoIu~w!x+ƙKɩ<7 HD?=~#rw>叒lwb}͜/yK8鶲ϞR* Dx'Fm%!,irdliI7žlH9uH$.xƣDe\֕R2ј=8,5RIO1<dJ~rOV=n&Q3~SJY=PDG!I¡& dMaކ>z|>& lzܷMj7$Se{FQpe E˒K_O%ػ(ay1.uμO2ÕjkoADK 0bkd}(F{/"O7\뙨_o[r.=k/pwSi֍#%dy'6 9Y0饏;$μu5D6}o6#2& =Z[TQvӿjwʑ{9{}R7A]]5ST|*7??Rκ40R%+k *-,Yt[$,5]cK,K.z׾RyO N wG#p#`\$7[Û|V-pr.NQP){#P1 $mW͏tOGsuяFDޞZ<M4`2ð7YH!\Jxx sG;ˑ[D \D}$kՎ6 ?$dPM%V#겿t4OySu˦WQ,TF_;g_79ʤ5UY;(1=҂LjϏ2MїiRUz{'SRg(t,ao4'sZv:@>s ,UYypE㝹YePu|u4w[^tʼnӞJt}qF;m9v|LY` Kng^ݙڑq%Sq3 i3ގkHRh}>R؍@&֫1dQ۝j)["@%l=J{u.Kuy{ժ|NrƷ]د6dM7Iaw=RT&77~ԐUͩv-oYP" [#+>K_gh~+W\PĞiMOn&|3`s /YV&q{@S⥋QK4}CQ/|SS=[dݡsۥ9Ņp㉨!aU$0U,5^;CZi0QeѦVrSm;>?B5/e0>ؗ?UtlN()ǚUG=̧nd1{{V1&Bj/Y2 冝O^.GJ@zx%wG7(uGӕJyBQ$=gD#3N+4]T.ڗ+(%E'ѕT:e$J*΢E2%* #`)]jUxQ N{Хo 8lyUTIL}Ƕs~C9`5T7`Zj*T!gjRY8 pu/5ΥH.E1YHqݸ )R,ȓSκsX̼F'sFR*Yt5;Iy<젖<.dM$?bRfF-)ĒM#q*Yy_cBL؁(lp'}Mƶ[?"~` < Jw4TS e\Ԗd}":$U> Nq/y5PfPljV:=t>Azy+xᴲtT׼Q*۟>߯"yǏr~M.4BB?'*@[933kW.P>!Kh-g&$~?5ND*T"8K>Hr\TeFl+HWڄR4 3wtvPh=gS)'#Uо[ΰU?jqArM>16^OU;}ޟ__^򯾹<3., wtztdb..yRjJe GTŤr"C.訚Jrǐ}O#^PKAd';h$qF`,y+_^<+44pb6C<$^R|FW{=Z7 5R,.sI~TxRafDUjnubD}E{/B-gsk%ZFCCs30BV.A^`|\6rXN%I>:k*h# BdȫyW@yΑex(\[H5 $5o h2ɠKI2G od|f"kaiĘ1SX5y)ͥI) =֚CxnZOwTVWFP}<Қc#+HvL3<R3&Mx=Gxrc- FzWatv sS\ ygnXQC(`I(? mOكbPO7%s٭aO:f6RŨJk}8{ h82[RN]6;:b-iCqܶ fB{L-'{#|m\cG!Sۅj%pڤ\cwf[Z&ܺ::EgMl?!{mr|fx=$y-{NXEvΖL$V {yrJR|{P2i<~@tf \#BET=) 4ͺk7Qh(֔ԚG %/P7[Dq.k? ~8JVrxźBqr{=·O`1&U{HE4I5S=ۥ$tJ,ɇuKO`;Pk<TgXXow-c5>:eoRsPe8)2H]ttUn5tzPeOD2cSfk r9J;7Cy.&6fΟ=ڪݚ$|R Gi@Y "yξo/~ruv3iѰ߽qoSx`j-&}6~O<ׄx&$U߅&URȰ}A)zV;?^M2G2]5fBxv _M(Y%-,6n  }ָPs7 #HNA#'a*'Y&BGV~u?r $hϯ.c4I-f,V_2>pEQ(zBj"4 s7 g6Porrk_=W Ǹ.cB!ߵY֮8^v 0G!gJ3!L)J%0);(V2m醍*S.~e(˪ VS\RrIrewZ%YT:g=4CKgJ} Ѽdݜ FzB$DyBoBazoABnsݫ~!D1s #6pU+8=9ةNtoV Ⱥ_#XATʪv<^꫘?^7L C= lRٛ2!K5DGq.7y,K]T,a#(cuk0gb=AK7DU<a0DJW&gEC>7yٳ0wrclDtc^Gï]-KoK ߬6ejn\2ȹ6NZ@( f+ :DKwN%al='M%}pD0h[v.%1*]nĪeImM%gΑ}~D'RSRUB@ȶ}3Dw$N-yQ {&sI}CMÎS}OsShw/cz1^@<neo۠N(d(StácwM/qh="l+Gɡ@GRS(Y2HLrᘨFsܩ7fg}_{̯F\zsoWN&c2> ts`-/cIaӻ]6+8YRowiEJf ]rVp[U='}bYv|YR=AFCכۙy~&j+àl81lu@Q#K7Do*5Qj*ܡǦlJp;{d6I,ں$9d Gv%F%nc{f\Vը7/lc`JCa—$ImywF|2T w%H k SUƔŧ!'kJ,8WDL[U~شܚv[\4٥h?n[~auFgJl[vTɠNѹt7/%WBP:8ޭM(qqdWZᬑsp B 2R$"O㮈Z:zl\#]!P{NVe6\0vT wJI1g[8W'\yB!NxZu@T"u9]Orkq;1'Wn.ց#W̔f"R~QIS&t:J-AMrXBPEc4[ݰK)p8ZRbl}S\P*xQu۾GC[ж-z9 ƲLidSFcmpF c +-9N{EE8%cϿP,~GH Ʀڋ< 4}oyxGUe%t6:MG7yd%/l ǻ4 \XLW* bDG=чf^APӭӰԓZdK ֐QKF>̹T2'Ukt* 1W{YtJ fpAW>-%e&VI)k9G6ĒUIK(0\dF+ 1EHM4 zh{"Fp|=cB)/?v>"F0:%BBOhD?R0HMz>Mnܘ~doAX=^R0^%zoiyyumls!!dsLz:rȸ _1G&.?ϒFdO '\ۓ]~}1]=zl*ʘI ˭J\t2Yw;KA-{+nHlm0aӆݮ"~vmJA'~6}H"==THS1$jgOJ̙$J&=ଜE' 9t[DNp^ϗٵ|Aq鞆)ƿ/7?Kun Eq}1Ž䏹f-3" i RgKA&iR̽ntL4X#0 O! 9mT?BOBOʀ=y0fNKbL.e4fz1xl\ɡ,C(E>T? tS WaaC[W=)z|WcPP6*޼;wO+yDVzg53_ښ058;Ln̼rXu1B`|(aJB*iR=\Pԩn%XN))ude0-I;t8ùKqdT8^Ci~Gڰ!|h$S朦 Q L丶?$vfBcr.,G Qf~͙⚡) nߗwWKsQ{:Һm٩Vxΐ z`̗t?s._\R\qKOgO* u&xWytCLyyJM=%ғ=zΏr8_+N<ױ" {ք%w Fiii0X W@1&ؔGW %ew˔uv )Uka*Mmظf]ܷtM r߄@|! 6k rrS" MM] 9qj9l%?8}F̰)*\yS\LԚADtN]8" 'ϋ1 f6hWLk13 M$OJ%p]/Jv0d>R:HZ%Vrx/BצnIEH4 Hdt3k'C}O' ísElp(~numJ&x8w(82 \kkɝ!+e4Tbӷ[q55O.W8au8xX'6r=N).-%}w渉&yݯDE51.nZ|ul[oC]FpVzKiI^ vr&٫4co'zf"/1M,9)$G\sSbL$sqiT&; sf y&Y6N nFٙX_ƔBG1.%AOOLTi^v lh gq x{br黤,>$q4W'XѢpe@Jٰe 4E/KVqެ^_ I*.&PHy\.Mb(+G0t!b2?)xh9xbm.8͔{銑^Q M*CBi6R x/z&\ҟ4?T <# E5*kvg881l9nBTD >r5*D}SG﯌48dɡ n(\ě;)~ 陡Cʇa/{SsZ{1=~iE8?k}Φ nkQrGqjG\>o%ZK,Hҁq+("Ɣ{u.FzfWdbLngɑv\,//&{QXnO7Qn`2:,xm 9|#T' lM'q{Q W}~%t1J]"m٘9g=KށE*LtIyqt5\U. ?*LϞ 2&Gm]ȆfCR xyį84c:/10a0߅n*/Tc;Bҭ/H'k8T4\ 3Cnjzu'#鯈e^/ \ TYHd`\(*K`xl~rhH4}1鱿M)+cR' 4ǬͲ5R-ADVFs⭎2X@ZO7rB3uh9TlViFq뷞- /6 4&LGQ8rג,dVW6YJõ,hn.w {v Y=\w1Pt$t s;=3"~y HђR"ֻg}ÌxLZI6KwL8<f^0dznpJ'VL^M {bI t ڐL"Z<-)&ױ|OAMF+b7̀)J. Cn0M4Y+IZGs߾^ 6N_PD|܁7+Iq6סP߱IE{'; r_],G^GR~sڽ ɕ@l;B{E~U<$:WqClSɷXe>\+Vi13.f8wFvݐU}ň~` bk"qrQm]4Dғ.r&J]ǙZ;Ď++Rj u+'1{Mc˷wF u7I8-'mGE[D]VpnUŔ;>c{VR5X Cޮ %L2t:F !HQN]+ 3'{K8EHW. vRF:RZ2u%'irԻ͙hwQ7%~< 7LY{Hjy63+rקf$5ߢQPTM̏=*fnc)Y# \6h.KWȽ7VZ܌2(6~wbU,ޕ#5tQ)f+u޼#=7ppn}ߨ 再*EqsՏ2[DyxjIYn @5rMY-epXeeM_LF&Hun2|a^f=K &NkD"L r?%+Lq)jMC"EV9c[Ẇ~D{ 2boA>řTzehևfҳ z0:/+d|Y{TVG.J\r*J9o|^Lf7;KQ24w+-AR٧5w4{]Znh/SQ0/Mhjkn!c%FD 1<:vfќfh yC4A5TVŐbrfH586l37!q|@P|#m:qy >6Lʰv`NE=] 3 |qhhZRO$88TQ/>Оp^ N LXYZ'ÿn>xk\z&ӘNkga<}!+~+%CVQ&/*㳺ƧEOEdƔmZ ruj=\yfNϤ_w/rr@(X@C:[@._ D9e]~dtk}v<΀1LHtèຆ}AҶ8hfe$ AA&|2Opq  w)؉ze/sᔐ|!ޔ[υ=xoɸB kUm|m-n[9c[`E]E&^83ƫ4±VMSYLdu^5vjG׉O6oN"'Ჭ굲WQQ%ͅ9ЭB~WX)->X]<<, A<\P[KlqӔJGYpSfMTxe9iÇ78-ȃIzU7٤[_OXf(4x Lc QI9ZDӋ_b?kͷH4u:l1 xg6y(q{$mK~a3(p"t[`+5|/+ȽO9txRX[l:, i^ ߢ(9y_`μWj1UP'sJ2N#_)b"Hm>8&><.pUmבbxhX+~$k\,#8qEE|^ ".g)Ԗ:zaCHnJ>' x66Ap D@'iL RZR˭q"y!v׋I4nq/y(ׇIIWz '1!#DUZRRFZ%Ac8a!O%A&c Y>^ &LdETyUJ <<ܫBRy/5  "'ARv cnK:Ghk)vΡp$OD:P YBIGCCQƟA wP\R17 ˨ifj{Ȥ@WWz(װ!ua1AsYq;ו2CeG;H5 ÿZ'J,5Ǽ:}SXT+\ +.sqYPSNOzgH "Bxr#E@uO2gјkΘpATLtD1VtUw0lvd%!#q $O8E}H |^T(fHBdƏMcyhHC,\苛BtVzSsbu yH!4k-cݴfMB#4K#=9Rڼ=%Mmd80uU!܄O@y; hq1`@+e]*[tw4O> !"d(}R\Ot@hOX^4EߖTup{ܫO<qQI[ ä`/o)sQdV , 7w+yy{5Cot֊U_<'ba7Ȁ?ߟ~bVՎ;lnbNNDg `v/> +!̆ʰm]z0%na$` ɺ3#T~=ƛ$)p! % FZI3MfpjD[\ᝮt>'hXV5hU-\%겜NL%2_虦Jx,WҐiWj*]M<~p%o2F<Z*qf:G^gmqG!w+͈9aqIwȧT_~꺫#kH q,  Y 1r-JZ4b]rRe,Ñ6q!+h-Ž)86wL\wNj6 '1OT114gR09 usCBr(q':ԿdدQH)-`?_C m EpYxR3{0 l(ƑwBY^~Qp(|3u0 `f*׈u9y gAg,L, fcdžc=OGʭ}jċ <Zq6hOơ{sfBo:)Va&b[{hyfy^Ou/?٠-m2Ǖ/zI#_o_')McƤ4]D/z3'fdcK2YCWkH~5u5}g 6u53{y,p/|UT¾I!v<1<)60lbU4`~29Nc$XRf22 񬖧bҲCcOgڡ3Mh3I- {+RgV2RM  tUn>ћXy}gbS^IiN;ny}>+j^V s{è6St:Z]pt*h ŨNK ʌ$UF42B ،ӁaZsM,158E@[#RiS{E8#7p257QkqS*me1S I8cF|53N֫er\4\!'4"ě@ |<]G3V v0}A[f8E'LmD.TӲN'd*7 TJ| jy pbXtCT_Vu4sBa/V\;SZTVʹ6NnzPK(' OI+Kh #N(Tޜf7xDSGOg幤2M k2ⴷzv $T Geq_GXL~׀ V髺dr|3> iM*9TMb|QD])c=Mi%̴s}8<} .cM=#`GoUa͖>!#"in#֌qxc73(Y^<2]aQ| !()y넁!W{rMr /2or*+;8R<Q5SqY|,`ShT١,52>a!Sn$ n))7]ȅ}1E-{v(5OO1ÁゥY.6Puq{^Ћ-{[̞ `;B^zqC/NSSGW(oO?ͮߵpB!Sps4ܭ]R Z(-ɓO5 "o L82b:bJ4'8:_2:^Q8m)M5b?c%B;`YГNQw0M-;8ujÛ__#A]v=+J ֊1q,x<􄃥@5CT[L}I0V/S´bR]^$$N*u4X"R_xȽsutr!Sc,XpK`#B!hETGl*ښt\Ce!V<ЧA_Ib_栒TX%E/f(daLkWzn,L|ؓd_h3}kݿu<%/*^qQ Fzd;`?S=|oZk*vY *7S>1Ո+urݹ(v>Ap=? e_XpJPmDw0:| {#/Ds{ U*DfgAP/qυ5^;g~1sGJőU"Gi&;.2YmF3Cܮ'@4x8k߈&` ."gl؅M /ťx?6~ٛ1E7>"D=7C3xZ؎ƸôD9Ed!kEO @[K*殅\5Ki{ K*^)N+>ļ{6b~`~#5+7F6-l+eꆙ $" jӎQB# 5JDl )6g'G!s&E󣈔SMg7 }rGT\Kbީa;%Ač0O! @`@S/a8dӽSƇսi Te6:W @p(Kvya!|nRS6g#E *HSsq[ .B"hy6ԿkPW@趄 n{Ѥ!9d^'m1_Zw-]?]NHo}hN7uLW@:&D[c?`s;Ja >d_d;ǔ{GqRe!/D,󂋒0# &T$}-u s|6m~0:͑M ZH2lu NrU#g1U'ulIU :w^oD1KPJ20pE5:5,~_$mg힭._s\DN>!QzDŽLS r~9T> e5:x޽;fAKY`wX vX$Ta\ R6zJ%u:z 2 ԦYۗ=D6怵//IJt񔗵"?Z[PƔA^W5e^WVƭSÔԓ kH1528 ɒK*))H^r޾O@n =}7{5:{xzžI?#R7D~ dOA-ېO~)΃V粀zu¢M~M9Z9-aE?Geǰ)581d:']+spF[\4&;%0ېW4P \n%⊐!?2>U&<"N(J3:uS Ȋes[M9*ߔ+Śr.~QAޔ̙UISh҅w&[Reypdxy+,)MV=:NlŃL eF:fظK"*3:LDWY2^%;AD5Շ/#=?B/0;R.ͨDv§X~c^iYbW||SIefna}Vls:/t3n h=vȜ: `Lj6[q$r.%>'Xk w5EA<0DzN Gzp.$c$t{0,.4o #e̍%yᘃaqndz 93>.=ŧ^CȹXGJg*nkL , bu(w &DRӺ)wtr6f/ۇi4LFX BL[W|Ζm#">3;e<&}R^()<:ٳ47N|c~+:[GTς8QvaKgX yx3|DSPϐgݹERq7⹠sxCG+Y*^'Ybiۆ|}][GfՎU/6@Z]7 mIcO 6e?/n;\MM|'vTRW=)}}ToYBhN%u k\5[\ ]* y~14a }$!C#^Sm:O!o[i x֣Ր* X)2nKNIaP-+ո{hL[>d &L:w4|8j$Fj"a]!3\dk>J ~iiK[t|_*4'VKvK|ځ РA8p@@@@@%5!f+{nO5;+W8#EM-W B鲕Uf6^tn4e ,j.LE;A=2蚽VHh@\T ͹gT;,c?*0T@=jיHHEW5ƕoOe)TUIoY 0 c&EѸ ,;݊X#9zb*5ԃ؉σl  p2NZ j1(x(umSY$btC y L6| x+IjI@tR2yh+6td+z# ׊N?~x_.ߓr!*],I#ܟ@dL̤2B,DF 24빡fYEq1JtN߶ fx[CSgk٤=*Yƻgl*85|I٧`˹> ,f$L8CG UΌzJ EBE$/),Uk+B,mŃTk(haDHؾl5ۆ^`"IcSR(i>0=q(FVA~|X-k?UBBկQDSRL(Y "1-Sr"d Ah˅L"UbTʱH:JB,nkմ?i%b\lQF˔-T`r|y֬׾ ŃMGetخhdu Br ya%4 n% @!МDF9ՍŎf`ء f* R1E}MF6€ i{Cq#[}W`\I ؘXS="jpEƽgpGRBtߎz0Ӈ_tgÜ@La{jl3~ qțZni[~BC4rAZreD)Z|)pt- Ă:Itż/n!@y9#lVtTwZ9DR5[P+7tSvԂw&!H rh4N01-(|t\푙#B[+}3:{d̓uR.,p}2?Uv=-gq&2ׅe |u(vOƄ _}|>j;@tZu7![|r bc/[@M(k\rM2 pZLV]CcEFbD@x cuh0f%%:VYq$ !rSkN9($ 3fgX M$ ΙG4>rH[Q2$JZcJcו$)JfB1#C_&״v dPcJɐaB͑7RbPf:<6K}q}ŘOix|#h((Sd)IejEcrCӍ#hr}]5ݧ(s-`cPF̜>*E*)z-O~>=QP'>o:&hʢL5T9ts6Y⮬`z "C%Y]o?jnrWwZ0cO.dVMm0L%S sR:3 tOe=ͱr,Cm$BzjFJ<z&[7*^};DiHln2ҊFK1WH/|ZWQ|b9/-eU!muwlu/4Xbfp!`J7Wʍ48k 䳸ʨ['Hx:<J)a* % {E?@$M.SrӷĭA)Ox? *bɘx48uvfw[AiqWi22)2'޺LюnC$eN)N{S$Etg>;@@Ox>Ɠ z ^ҷn4TdvΌH B5wNl<݂h$1)i%FƄ||ҀȖ1'LR% -*%1LuS x'$ܰSfӐOqsUaajawN#%-tSB *<2*^I謎*WLm8C ަ* +EIDPɋg@1dJ!슡4| "hK9Gc\o(c9;Nj =%I8.Lnu[pOSfLm$9HU&OdTׇLpHNMP'_,5ѣjAz $sy92ȼ]iL,] %f 50XPgLۗtJD!j"jɱdɯ"KUey0@eG}ʿy!* VT qgЦoC0 BUeܺ4ȱϰeoJ^ ecg٨d)-z uqڨkz:8ʑDj9 g6|a2DՓҢ1jgKDzrm ?q]Ի2*Tio9T`*3wJʝ7`O J&DL z t\"r#/ɽE)WRX4xF:+&%\Y?TwͮrwʥtX  `.'4.>Nlc[]Qh.UBW%wkΖ_ebmӹ Zs(ҝz٘4, \p(1 H&ٮzkWALsXOdHo,€LOm`ھVbfzyu@KV7fXH|)+_BRʵLl/f$Y v:dHF<|:Þa*T +f{ (Bv,zg`nsݔVZ+M$}6zC=NJ_OѝDH=f|sOR7S0ݟ ,Ih~s_ m`SicK;7"ONf13/g|S*Π< [U)FOBxtP^>ѫ8u!U_.!R倘1fCMjl+C45b*FQ>ӨBf?i֏Z[fتy7u:0Ac#cZF]%1khiǐh-%]2zAd@Û)\L3㬜|K!QFȜXBy-4&#pC@63T OO \rܧ2 b`Woņjڛ{Q.==!}S" s.HuQpIc%N8sɳmUeLkswS/H@C9 59]Vq$n F@OQ]9r#.˖;ɣ 8*DMtt. Y^\zQ)fR)HI[kH|y4G?>}SNyZ&ׅ@zZgNF]Tm2N5{8UV9{,8CG%EG>f?]f7n>†|Mњ1c#p~}̹d{.rV/t=_s,VTy# c5 CO#9 E i&[k%R^W U,iӡp_ho!Pߝq*.+@' 1cI\U#"NHBV5riK Eg)7\iu%'Ϡx0&P>m˻+DwXx/`jω +I}8L%i'S㉝BϪh4M#b@҆q$H!%pDP`.;1>|oJ*uѡ5 ^@O"$V>d ({6~ON(DWI&r&?c(v)#?~ ѵf., R}N.od6MX^t?~)!gÚ{ݞ֛-Fރ ?2|]م.e'<6kb3D'w_J +gmJ\O֥>K>\vH”wu|>oycŽu= שEX="eط|$BZ_ ͻi@R+~BqXe#}/plInxŒmխ+*y4VRX("xXk~g^9H NLJԠԍymdsGi\KI'ThdĔH)o=& Ke(ץUy115+`,P/,3p[2Qr0M~kbjҺ;T& i3 cN#7=x)|Pȕ\c@YBwHC14r$8TOfT8̍Ww=KxMџOּS ɧuMXq:OʔkG%2(zEBvttz\I yr1DzsYQTI;xPa,/DSbrS.wZ^.#{!8k!ͫ "]\·yN[iGG2loS֥*l\h}l ^}[xKQhtQ,r٘qD x*Nf4W8e*Z}u!9J+n(#^WߣpnV%PZAoyǖ]M P0I=[ RJp#FCܭM"5Tms"'*ؤMPй,S%B'}T-|Q8+r뷉['2:?%m8)AU"M-Ayʘrq#@I,&:EVQQHK MZ\4m+!^C{%m0nc:eGEy"7 KbO=;RcO-tUpbpz%H'Wy 0P7?Ż0<)4M3ˋ1s*위mPqw9T/`-Ȑ}'3vj|kєjSrY%!}ek/vЄ.ĽFKϨo%R=?|w=O099CXv6@#V"C(%#ӄe ꁟK *DE1rZhq- ]pS˲q_!>BD9c8:uu=Cl[' V)$PM){)'.#Z!V8 ,<4>;ΑHQ2$أX]bòC5(yD&`24ʝ JА;5#G{q!,@b#e8 FmXtq?N1CQ saK+ĴEL]=%Ca1$=$U~=^0Vs"Sْ%‹fe2{% P#N,gB,y] bIkਃ fCkmuzAZb&tQ”|G=UwGxͻзXXQ؏1I u912{)۫ocSh SW"~\l(xUջޔ.7 4 ٛ(ȓgVo`y愿wZuS8#0/s=v4S*v\opo ]QZlW &1}6{aTQطI6!ϟY\yDгxUE+󗺩;*AjYʼntM@w2SMe}dH+fRfuтpڪё[x<ݨEɏب;lDO~SgAJ6}eLrڣ35>C oqICHD,]gJ9o/wÆ+wPQxpL$Rt./4*J|I!9 Om.k{AqUιn@NV8NQ6/ԝAJljPGA(R4 ~DPœG4m] l J.E4TR($f9WFNyWRH)HPhj9~}5l|0Sۅ}^Hn*COV7(陙))hQk>? wF\1o1{7}Oyr;ژ%TeY~=AXx(/K5^?Oѡ]\{DxrՕθ^(=Am+c) «#"?<ʞMRsJ@%YJUFE`}W^Et$Z9TfMV Fh\9 {2 ;3ŵBtUeLG2p|ґTmE,sNBWWnkQc,ly:kH=jBw|R@)L!dQqA D̆nfLm B|(p Cf4ˣw/[aZ0(+`!kt "l\Ww%g. @va/ϳ؊)o 7~)WI= ٧xWNA@y);br&*_˃g]CNUkBZѓ߳dNC&sGf"mٞDPqbœ,녨16<@%Nvع}jhBtf!/4x3C2 ARw'/=#4yS\rR~J)~O7=^% \s}yV']w"g`T P baә'JMOJ|rd xsi<YzExS1nx]*kC QJ?7V'Hp:9\,DY6Qyd"Uțmn?ӗM7[H>;ˢ2)̣/Q4)뉵n3ഷqW >Q_CTWp\*#61{5sP/9ÀԟDхGla1N!ӁmRz8a襷r4ϔlF'1f"]`/ë,GBiŘRrQ*`N5AsuPV(BJ ?RF؈* _3;4Yҩ6@)&ofk׀. "S+FNs#|ipkzVX]-I%a~ǰ8HuWJtE%6^ؑDR\ #JyMt ~bM<\- +cRm]=W>o7672,DZ],K{ܬH@%ξrE(qTGB+T|Nѝ:棥(;yB͜8+SFϟ1(oG䡉O93U=ݬG(]]\[qT:s\ٸ-oz\TV"SٕvN۞Ȉ[ (aTJv&qTw0=6aּ0xv(ErhL~fa7ӭ#*2Z4O|V^$Dk7o;V*c}"Ysܛ-T\hEK$4kDo%N /&/aNWid׌zlq7D@lkCn;Au0gظebG-/ 5lZinqB O-Ʌ?poc:SWbxȤ ڹ,hR m DϣP=Nȥׁt gRƸNe|:pq S؝2F&`ƽO*AۑaudU:}H$U.;49(%)xk* *h}d~D=G8SS_tOqMr0!fLk'-FpO]`h&(;vQMMx&q[n5,)8C1޾1K;0 .a0fUp7MgN,iYz_.%d}7g;$겊󩽅 A-SYR:ieoaMLLXCCR(E 2wFJn-6AbG--"À4TnsMZXQB n# aV4tpTɐgԭ):/d$*gu պEW˹ ,{/ Ii>B>9F[]O51ѹ5f<:XzoE;p/1~ڼ,6S`K52ɥI3;lUU汼*Q.0F҇%lP2Hwtlӽ1"E gStDG30YNbYIC\0g&(-Y^Q3,+]rReғql_>+]R)*\{_U+/ПG(^ zɋ$p4Sn.զ8j^l}<ѿ`Pizwb{ϧ{& J= ﺬ~\glH4 P)!5 Mg3yl:*$Sym럸)KI !iD9w:c$;tpJXKu3U¦Z'<'ĤsA<|U F5Ą)(M -.5ѳ@).XDF/sjpS'H Gl{ɓM#ⲓўvىQYQ7Ҁ| !Nv/jpz"Z^06r coΐ{Oe/`F.cϚ&.OB"5(Pjz QcqH)cT~J"b(ʶf#Ę£ޱ.ۡLΚܪOS=pB4u|q*ȜNd_b5ϯj~>տٷBNfgqedjO-z`3OyCF{;:Q~+_6; " ؎B{|VUy:yiKpˠ)IM-+1JIa U:C2y>2كh.CGg73s_.ȘUYLS*.O70Z|9YQY$B:MfZ^{pe4iE;95Wr#ɀ D~fpg R}6'YUi]vDe5=0 .|k?z4_.JF'La2Fs#|roĘSjLtDa!^1H"y!߽ݦw ɸ ,u)NIK0 VP(Qur ">sm 6[GNm$*ɝcgcie3˳Oٰ}hr&Jc2Jz>Ob[AWO!)g a{tj eghM ^0c l2.+4:gX+q2 X| qB`RrS5E'àNGl@;盶 D9ӝ$~)crV$ȪJ  d9]F.$1u"Պ!f8̚5x>kkԍmnN2Nb-))Q$X Fƺ:݈3jg ApT{=[`ӈ#xkByW_m9ɪm ~ Ҧ(:ă6 %m/d[Zyl5bȌM!.3AnNf~.a*R sfBq"UeqJRCߨ@D!{ͱv_UF]~[a]|d Tj3ծ곀}6Ae1$:#Qqbb-־)::۲BMǥF:KKC8I#g% DPw5!覌Kԝ9_}A3,/M@0ُ|-gL8B5mӽC=MC~T#Y5FyPL#[Sr'@rPjמe4^(2N#zeBx,4 {5DÉ92Dߨ=e@0NxOM'eLpb ]_vVQy W~ʂ~!(r\sIE'J3S7 Y xR%i5eZSuO3B=I cm}?&.rbdu1]jիM:b#⤦c<34Nuֶ:=^810-V.~ ݘ=X$#BB˭zE42Qk(+ڈ_N V^#g(J1g1o.US n%/M=r˃cIE?"%%a)6GS^mbԦ:GrNnT/%J){ΪR#0W!4kf[83_;Wғp|wW8=H/LN5Y`.=Ýt HO(V=wA8%C;oW.Q3$M.mႲQ~oJy KY)bᦲ?;kfAj7Wˤ9]ݩQ #t1;!җ+Af#!r.&5ֺ3HOu=XN+ўk\jd!DA`A sPpZ<2Z-_{s^Z)*Fŀlzلz{4cO*^E'` TBEBL !$:p#?{KF,c݌rPR# CO;I43v/1K0xĔPM33:c7e&x:4C=H(8o(ڏ.=l ]Ka a2o%TUsޜU~j_=Gh$ǷdWhi\1KkP?sMGIPų|KtrX2agrG+dN \ʢ6v%{ٹQ ve:a˓+tXgd(:=0Tu' ;ZQN~!TATZTNO>3$$4xc{\ ؃İC̔t;{3dB1-+Br{>ޙ0;$ #Ђ+F$~M d<@[4z#'@/8Bk<zЁTI5eK)—4H?2yQ̐4do PGV2Xfv PZK"mbqm{~,xLUwOYp&U/S-FM8( sJ|]-3١>MbJC3DEu~yOd= JelkbRHQȘ<fѩ=B PP4Vyn_.⻋V9 Q1e]}{m}h^cb,Nc>HpG;Iax锳otnt皆>6ޫJZAĚ26UD(6#8:Ĵ" 058fnCZfΟ;t+gDLBSfT qaG2D.kRRn54 FZCɫ_ eg8B 6 X"+<șq@2NGMiLB!OI-'`4W l Hh֕* ~ʪcݕ$܅.`A(8C؟.;(B/y1~X2yfv6P)'1}ބ,& D{;v6g7؛܆߾^٭=#^Mu[?,PٕESM<&}PbA &L1q$LU\٩$b2ISSZMR@uSfтҙ#B,e<SZ30?xFLʴ^ gy`?f.!o'sSKN!a+a*;WP[fqU.tRYxBPO݅I>f+Mnl悓O}A(R.ӢxG|r^~BcC)dwseV2OrQ1D A$շHTh`RǾfYOՍ1* _? L1YxάtցmO:4vӎj΍p8yr A j U81S۾. Y-@$ا;tc*H5Y h\T<"w3~*)+{v+c DRt(>>'j./0c\bbš2jw{aCA8UXǥXeA@!~C锁Q.n01EJ)*O2Dp$)!pZRɽƶ^x.Ǝi5흞٪̇W }[75ImJHA,{נ\&,~Qשn*e;W=G` g,h`=B^(:p\>Puϵ@$MNP( q߹E Ћ_gڃy!]ɧgH1}CWAWS}X68AY|#|l|WAFCR[˗}ښ!Jm yͻ8]XeD|c5[*ƥʆ`]E~Fa&ePw"ZɒKF@a @m5w.! l`&/[4ڳ%{p.~`/@7udEbRLl/fHQ̜|~ %O<{J;o0c:iT(wg&{\$fW5@:c,ITȣ&\РuG*D(4棊3M´]hTŴ3TqjgVC)x<<64xIsRm46x 靜ZXRE*OOTր|l.2uy ׅ,ϐЕo-͵I]H+Y4w#e$㡧BeטA5ʀRA2Zm<+> =9/ب.޳:E7uC)MN&q 1PP|,K* IIV*ӖM|߷M>r܏#2Tɒy=E<_3]W2#wn_柄hhhP%zW::b;k uȣ sktI232#  >΍1DRD)JS'?\axg##yuVGc4fh,!(޹[&RqSvXnb%db̓/݃2W=)ٚ,rRBz䱃+lӾ2li-z"f/G(;t³F'xR+G)'/YZܞ)ce2X);+ @ڕˢVq+AR+fX9^TFkD}5Ff$]0ȕF_8(lg[}xd^y^+aׄm~(K\u`TX()S#KpZ=Z!#3Ӄs9Nj`ا[bGTc!&ELm*n`uvcSdYIuS HIl(v =quo_cZe$Вb?VLb >)T:?^[\A3~&\.bjvMXPƲЀQccDa\}f#띰s(¦ak{|4iV'BrK 7 9fpA`qaڛ_;M"!,jHv%^G|LK~jK'rl[Dl*'lPU7_`odsLxoR*5)YZEY⨶ IQbG|ƵK#&vxBG6 L7K׳3;Fs |Ff)2 n ~e)Ŗf$uet~? o1^&_٥Jf2-5(KP'#ŸWJo?ʶI1AegݦlLSmYL׬LR2%yN4M"j0x*CQm*Ϫ^lr>u>HoTJXy9i<@,7޹Լ[L5 a+suHp(|aaEK@W>ЬP[T$"ZdRajdImw\C [;ERe B)t>iqV=|4ƅ^9lU Qn& #Qּ2?" H4f JJ٪Ŏz1gpdjBnjO{ '{NI|B[hmk/CmhWŴ1%{FC coh?>k >ʈQ5e ,,2^\'4j;HPE`q, Ou`9;4]`m)M}yBL@|.V^TV::W))X%9Au)q\/Yda?Låb̪fbJ+0o'Z檎L)ECgF;8|4̲7(gX.N^DR0)dec]pAUMPQ3&19ZPoKv9(>lu!rOs|mF9 e7@αRU !'2(EkS͵UGӆMkvrݔDXU.N-ݔ\s5P,~$MK!j)ǝ)"=)n+㵖 kNiV^S}gGfn98_a瞯On/ qQe"ݿ/Ë́ϤTٻg&/<*cw2Bpa᳥SR@w<*{e0fK_g`m⿨"$*`WҹJ_3v.smjjחBVӹ;Ĭ*&歋B[̀$S{`g_}I O_ĺC2'J%* P^<PЗoo# 5*c{m(Ȧw`65}u+b1=–*vY7~36L5ZMSXslr- U^: ᣽`h,P!!' ^ n5܊ g߾ վ%:ˠJA@qշ\ʷKA^ ^z7Sݔ-aёX HpHԶpQ֭2n' A p#謅.2{Va$Ҟ_EoQm>n32ٱ%9ܿ8+<І!ODԣ~avXGsQݑǯbgd4 &*`<­I&#W[Kϰ̐`)7|}ye2l3&%ӡxA&Xgho}ط9ЧJ&Jj%RBA<:gU GJ1P x6yK`[NJ,K` "-@vͦs=p6t^ ʹi@@ƓTEgdjwqTVLSS0O`H/^4!u7"dy{"R2_F'lUFj)͹#}! e~|YOES^Ce:čvvA/x=~iǜ4TAQ" ON1j y\N28 ȯSH*iF*P,)!k2mu`]6YS%sL$S[_ArJ&$VgUipZM\f) eᘑ]Nm)tҍO6ݰ Xjs`]\}D!0Des f P2/cKAR +NhU/nh3 |BpA4hWКf|{GX ]F&6xS4CfB1)`M YGX{VuYzm[W%$M7Nՙ2˖2 G{PvBP:exD#7Ŀ_Mõ5q|g0>Fؕ75[jS sw()T',*4 M#j.喗3uX;Eڌqf:+WI{(;/.$U2.V^L#vD|aГ/j CByTR JbTQgx[7hD{ (ofHtqLiL%5DT()Ր1 g> wz8,F- p^ⴋ-3x%$o@/ xՙ2;t n N4)#d;ZP6v1|[[6;Wg @Mъu&H83o 4ϲ1[C,& -a Xc&!%ޗu4`hy^+BlnwK$.Y \HIWtybLWYɠH}ӱ;rؔK]cNJ 3/NPmmR"p4$X*Ӳ%\i!9u$!f.8M*K^\>%5wz(%ॄNb'HqƘ^=) ̉L2uyF>5͜6L&}]t0u㾄|e"=\>2x2j>pa;eb|L&xSy-<@鮧^~t+j %iaT78)ar*jCdz1|E1ǮhT08{z l܉W*JϤzQڈ]**NaoShgFa Ǹ$7EPK]Qg*Ik䣀+Q Jk\S&eQ QOpׄ= LTa#Ս-8J.y_ TTOIKX%E|YEb ,mMOnQ.[ySR:-gښCęy'2Z>Z^ՎfƿpJh4Xm kF}oLldFf gDv*,rnqA1$+Rr48qA5XV5~iacAk]:# T@+,Ji@aؑnbPjQn tboY3,.xr0S Jo0UZØɖu}L取WەIDm#=J,g̓hnuYLS&5 ΃rt^Up0xBXPB VTRh XƃjaN7(R1E?}ZS|74;7%t&Hzz tYkO{{<~RaZxx3x &% C4~&.q 4ףs@銩VE:(n>BTXټBC ~=%T*ɥ78ݘmpfK(@"T9yLlímwAh04n -[jAs` 2>O8()MC rQtp u>%ox%Ųدg" sFel6 C$fJɥw-\ QQ)Pݓ6g`RGcpq}[fpE=5 ˇPV蔯zbF$_(Dqar1 ۵6)~1>ѪwR´"C'<E^cIz|0HgRr4Y۱uCCjqٽ)q2| G?DX٢,$&eU Flqjf-7|M80O*SȃL,RsGuZ|$ \"z߮/ PdUOғN"te,-ch8ԜGn" |o-axA^(1_#77 CqagaS% + ϴ,A& p,_r=>M%({@HdxN3HӐI '"Dž8CI ~̺{eH.@ ]1 e+[]!vu#Ġ9๮NM'OM5Ba@ <<}e  OʥGx)C#SDZdEYq{*(bN6ߴXsOь#,)v13!&dp,NޑfkFNˁA:j`}@؝j)h-ASWLe2R">JefSO Uѝ`t]+\ `Q. m0[ n72s&Rhvd>ׇG90;~;0nTsr,4U5we21$JJBN_&>0K+l+ͥq"%vQ^t։pCV,JjL H) kDtlBfO9LRGi aP>8cWxOo(LuYBZQ;t@p O'c/]r4釂-gmp&.CL}l}ѩg em,e]zAOE$=@}g>-\»)lb͙(K qfvsXE~3xz'G'ESD\Qg$ۻ6#@x=p^?wr#OZ֙3 xVJevT7Vlkcrd3Mv Ö:zŅ^ht5c"81L' kޯ y2Rބ.O ǫRfn>@a,*1Y-6 ]7S0E!VY: ^xϧ,hzz:YaLQA=y)Eyә f^?m[5ngD>Hf` bч%>qvyNu1L|dޒ*)>RorS7fFfs_g㧤USZ>(~4]YIh#aWheQ`WpY2 &JtِN] N'FuƱe--3#;eX(ﰞ$#`Ma&qge^Pa&GeSX[M ",Cmg䴭%]k%zz3Ctɉv$45lkWiByf|\@ёG5Cy!{vt*$ gA4oz7I8 H'sV)[ypX$}^>SX88C,t6BbyGTgv :iSHTzKyE zHtNT W瓰8+԰/gYfz0{Woa]MMNIIE%qI2rAATtġqFYN}aʦ> y@3A:ETVݘ/0+Wh {+2f68R߲g $ "U+ nOT[kȤ*ccL.*hqEД)9פdj/4X*}(x:l~s!@]KVaSWiᐚߙ"hڲ U64j"K$Rb(:|*3[GNEL.4Je!q(C Hx2|hs€,Xk]! æό9g~.,C e.E`)0 !r}N"*IywD|n ΡtMH(xD~G(@u'52<;qn 8:+Z{ZQyJg5T.=΂)(FfNl{ŤM4z$+3qv5_0z= bs`1PEXKAФwG"7խLx˷J9YvGJ ur#*s)WD= |]~2e]~o&CPm^WCsa[{2Za߅P_%x&qV}Mjْ8$F\0nA5EwRB{U3D"NxMmzDVj [w%+vA T6Ey0b m9oDE!abv+=ajβo(yPS?[CJu:u7je.^8$H["wAcTa[E#gyD>q^ff@|SZn01r=83I9!1kۇ` $&eTNYRu^D>L#-{f$v˙莥ˢ7`2[bxE*X'פMBy(Y%̓Ou HƃWO#:=[_lsӤ?]NLR TT9rHr Sɧf Ovrɳ/!CҦ3 usL DIq)(>W zhJzP#O/t%aQ}^;dQs= B~kQL&7xC e$bg۹% vc< ^7SY9sVm?xMP[_ݗ_tk|]xMl?$Ot_57?7_?7__~u7>taZZ_? Uuu~]˯^ݶuB7s/O8/~~^u?gVO[tOۛ_kwp}w_8]=y7^1\G ]~]E;xozw| _5?߿3[x/1Iw/~7?~߾z^]{O6;GϿ?7{>ƻ}<<^cGBiܫOl-a׏|}f$QMqZ#^m}=?'S4 y36I'.D|.?q{~}@?v_|¿_\~#y^ _Վxmr [~'Iq .;ߟ}ݤ~?Wwz^=+EĦ ->Ƿ߹/Y/=&zy>,?f>;{a pZp [l 8~γ,K^30x4{ϒ]yl~=<dž,t"G*  *bQuRva[y[=HS3ؔ!?48AyPN?!!sSLOaN%:!RސNCLA*VgYMcVCyͪ*W?:v,WUé#6w#e ؤP,WUg~Kї3%gT m| kNoF;;e~s\}]2&s?%uK rRPԠ M%f@hCz>EYwmrJ/CO. S@ŽӘg2thnW9:uӽUjGK>'͓H4ܥT&p&*=hol_Nmp4$$$ܔM*/;9vYeZ^0GR֜u:Աvc ߫{/tnmz=2X a0vhKsڀm?$$$$$$&"ܣqᦟxiyo/#^?i1y}C:@)Kendstream endobj 20 0 obj << /Type /Page /Parent 1 0 R /Contents 21 0 R /MediaBox [ 0 0 150.72 95.12 ] /Resources << /XObject << /Im1 11 0 R >> /ProcSet [ /PDF /ImageC ] >> >> endobj 21 0 obj << /Length 22 0 R >> stream q 90.72 0 0 15.12 20 30 cm /Im1 Do Q endstream endobj 22 0 obj 37 endobj 23 0 obj << /Type /Page /Parent 1 0 R /Contents 24 0 R /MediaBox [ 0 0 162.24 172.16 ] /Resources << /XObject << /Im2 12 0 R >> /Font << /F2 3 0 R /F3 4 0 R >> /ProcSet [ /PDF /Text /ImageB ] >> >> endobj 24 0 obj << /Length 25 0 R >> stream q 102.24 0 0 92.16 20 30 cm /Im2 Do Q BT /F2 12 Tf 28 9 Td (potato) Tj ET BT /F3 9 Tf 100 9 Td (image gray-tiff.img) Tj ET endstream endobj 25 0 obj 123 endobj 26 0 obj << /Type /Page /Parent 1 0 R /Contents 27 0 R /MediaBox [ 0 0 700 560 ] /Resources << /XObject << /Im3 13 0 R >> /Font << /F2 3 0 R /F3 4 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> >> endobj 27 0 obj << /Length 28 0 R >> stream q 640 0 0 480 20 30 cm /Im3 Do Q BT /F2 12 Tf 28 9 Td (potato) Tj ET BT /F3 9 Tf 100 9 Td (image old-jpeg-tiff.img) Tj ET endstream endobj 28 0 obj 122 endobj 29 0 obj << /Type /Page /Parent 1 0 R /Contents 30 0 R /MediaBox [ 0 0 700 560 ] /Resources << /XObject << /Im4 14 0 R >> /Font << /F2 3 0 R /F3 4 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> >> endobj 30 0 obj << /Length 31 0 R >> stream q 640 0 0 480 20 30 cm /Im4 Do Q BT /F2 12 Tf 28 9 Td (potato) Tj ET BT /F3 9 Tf 100 9 Td (image jpeg.img) Tj ET endstream endobj 31 0 obj 113 endobj 32 0 obj << /Type /Page /Parent 1 0 R /Contents 33 0 R /MediaBox [ 0 0 660 860 ] /Resources << /XObject << /Im5 15 0 R >> /Font << /F2 3 0 R /F3 4 0 R >> /ProcSet [ /PDF /Text /ImageB ] >> >> endobj 33 0 obj << /Length 34 0 R >> stream q 600 0 0 780 20 30 cm /Im5 Do Q BT /F2 12 Tf 28 9 Td (potato) Tj ET BT /F3 9 Tf 100 9 Td (image tiff-mb.img) Tj ET endstream endobj 34 0 obj 116 endobj 35 0 obj << /Type /Page /Parent 1 0 R /Contents 36 0 R /MediaBox [ 0 0 660.0762001524 860.09906019812 ] /Resources << /XObject << /Im6 16 0 R >> /Font << /F2 3 0 R /F3 4 0 R >> /ProcSet [ /PDF /Text /ImageB ] >> >> endobj 36 0 obj << /Length 37 0 R >> stream q 600.0762001524 0 0 780.09906019812 20 30 cm /Im6 Do Q BT /F2 12 Tf 28 9 Td (potato) Tj ET BT /F3 9 Tf 100 9 Td (image tiff-mw.img) Tj ET endstream endobj 37 0 obj 139 endobj 38 0 obj << /Type /Page /Parent 1 0 R /Contents 39 0 R /MediaBox [ 0 0 224.16 209.24 ] /Resources << /XObject << /Im7 18 0 R >> /Font << /F2 3 0 R /F3 4 0 R >> /ProcSet [ /PDF /Text /ImageB ] >> >> endobj 39 0 obj << /Length 40 0 R >> stream q 164.16 0 0 129.24 20 30 cm /Im7 Do Q BT /F2 12 Tf 28 9 Td (potato) Tj ET BT /F3 9 Tf 100 9 Td (image palette-tiff.img) Tj ET endstream endobj 40 0 obj 127 endobj 41 0 obj << /Type /Page /Parent 1 0 R /Contents 42 0 R /MediaBox [ 3.12 3.60 187.20 280.56 ] /Resources << /XObject << /Im8 19 0 R >> /Font << /F2 3 0 R /F3 4 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> >> endobj 42 0 obj << /Length 43 0 R >> stream q 190.56 0 0 284.16 0 0 cm /Im8 Do Q endstream endobj 43 0 obj 37 endobj 1 0 obj << /Type /Pages /Count 10 /Kids [ 5 0 R 8 0 R 20 0 R 23 0 R 26 0 R 29 0 R 32 0 R 35 0 R 38 0 R 41 0 R] >> endobj 44 0 obj << /CreationDate (D:19910817141013) /Producer (Apex PDFWriter) /Creator (PDFWriter Test Suite \(or a potato\\) >> endobj 45 0 obj << /Type /Outlines /First 46 0 R /Last 47 0 R /Count 7 >> endobj 46 0 obj << /Type /Outline /Title (1 \(to] 0 fit) /Parent 45 0 R /Next 47 0 R /First 48 0 R /Last 50 0 R /Count 5 /Dest [5 0 R /Fit] >> endobj 47 0 obj << /Type /Outline /Title (2) /Parent 45 0 R /Prev 46 0 R /Dest [5 0 R /Fit] >> endobj 48 0 obj << /Type /Outline /Title (1.1 to 1 fit h 200) /Parent 46 0 R /Next 49 0 R /First 51 0 R /Last 52 0 R /Count -3 /Dest [8 0 R /FitH 200] >> endobj 49 0 obj << /Type /Outline /Title (1.2 to 7 fit h bottom) /Parent 46 0 R /Next 50 0 R /Prev 48 0 R /First 53 0 R /Last 54 0 R /Count 2 /Dest [35 0 R /FitH 0] >> endobj 50 0 obj << /Type /Outline /Title (1.3 to 3 at 50%) /Parent 46 0 R /Prev 49 0 R /Dest [23 0 R /XYZ 0 0 .5] >> endobj 51 0 obj << /Type /Outline /Title (\0001\000.\0001\000.\0001\000 \000\(\003\000\)) /Parent 48 0 R /Next 52 0 R /First 55 0 R /Last 56 0 R /Count -2 /Dest [5 0 R /Fit] >> endobj 52 0 obj << /Type /Outline /Title (1.1.2 to 8 at current settings) /Parent 48 0 R /Prev 51 0 R /First 57 0 R /Last 57 0 R /Count 1 /Dest [38 0 R /XYZ null null null] >> endobj 53 0 obj << /Type /Outline /Title (\0001\000.\0002\000.\0001\000 \000t\000o\000 \003\003\003\003\000 \000\(\0004\000,\000 \000f\000i\000t\000 \000v\000\)) /Parent 49 0 R /Next 54 0 R /Dest [26 0 R /FitV 100] >> endobj 54 0 obj << /Type /Outline /Title (\0001\000.\0002\000.\0002\000 \000t\000o\000 \0002\000 !5\000 \0004\0000\0000\000%) /Parent 49 0 R /Prev 53 0 R /Dest [20 0 R /XYZ 0 0 4] >> endobj 55 0 obj << /Type /Outline /Title (1.1.1.1) /Parent 51 0 R /Next 56 0 R /Dest [5 0 R /Fit] >> endobj 56 0 obj << /Type /Outline /Title (1.1.1.2) /Parent 51 0 R /Prev 55 0 R /Dest [5 0 R /Fit] >> endobj 57 0 obj << /Type /Outline /Title (1.1.2.1 to 3/ft) /Parent 52 0 R /Dest [23 0 R /Fit] >> endobj 58 0 obj << /Nums [ 0 << /P (zero) >> 1 << /S /r /St 1 >> 6 << /S /D /St 6 >> ] >> endobj 59 0 obj << /Type /Catalog /Pages 1 0 R /PageMode /UseOutlines /Outlines 45 0 R /PageLabels 58 0 R >> endobj xref 0 60 0000000000 65536 f 0001562417 00000 n 0000000015 00000 n 0000000114 00000 n 0000000216 00000 n 0000000316 00000 n 0000000468 00000 n 0000000568 00000 n 0000000586 00000 n 0000000710 00000 n 0000000809 00000 n 0000000828 00000 n 0000001333 00000 n 0000002603 00000 n 0000627197 00000 n 0000701079 00000 n 0000704924 00000 n 0000708754 00000 n 0000709574 00000 n 0000773399 00000 n 0001559407 00000 n 0001559573 00000 n 0001559664 00000 n 0001559683 00000 n 0001559888 00000 n 0001560065 00000 n 0001560085 00000 n 0001560284 00000 n 0001560460 00000 n 0001560480 00000 n 0001560679 00000 n 0001560846 00000 n 0001560866 00000 n 0001561065 00000 n 0001561235 00000 n 0001561255 00000 n 0001561477 00000 n 0001561670 00000 n 0001561690 00000 n 0001561895 00000 n 0001562076 00000 n 0001562096 00000 n 0001562307 00000 n 0001562398 00000 n 0001562538 00000 n 0001562668 00000 n 0001562742 00000 n 0001562885 00000 n 0001562980 00000 n 0001563134 00000 n 0001563302 00000 n 0001563419 00000 n 0001563599 00000 n 0001563775 00000 n 0001563999 00000 n 0001564184 00000 n 0001564285 00000 n 0001564386 00000 n 0001564484 00000 n 0001564574 00000 n trailer << /Root 59 0 R /Info 44 0 R /Size 60 >> startxref 1564683 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/large_file-check-normal.out0000644000064100006410000000024313247541377020754 0ustar ejbejbPDF Version: 1.3 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/page_api_1.out0000644000064100006410000000017113247541377016307 0ustar ejbejbpage_api_1.pdf (page 10 (numbered from zero): object 9 0): duplicate page reference found; this would cause loss of data qpdf-8.0.2/qpdf/qtest/qpdf/bad13.out0000644000064100006410000000031313247541377015212 0ustar ejbejbWARNING: bad13.pdf (trailer, offset 753): treating unexpected brace token as null /QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 0 done qpdf-8.0.2/qpdf/qtest/qpdf/short-O-U.out0000644000064100006410000000105713247541377016063 0ustar ejbejbchecking short-O-U.pdf PDF Version: 1.6 R = 4 P = -4 User password = 19723102477 extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed stream encryption method: AESv2 string encryption method: AESv2 file encryption method: AESv2 File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.4-ogen.check0000644000064100006410000000026213247541377020061 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/split-exp.zdf_080000644000064100006410000000203113247541377016527 0ustar ejbejb%PDF-1.3 % %QDF-1.0 %% Original object ID: 1 0 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj %% Original object ID: 2 0 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj %% Page 1 %% Original object ID: 3 0 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj %% Contents for page 1 %% Original object ID: 4 0 4 0 obj << /Length 5 0 R >> stream BT /F1 15 Tf 72 720 Td (Original page 8) Tj ET endstream endobj 5 0 obj 47 endobj %% Original object ID: 5 0 6 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 7 0000000000 65535 f 0000000052 00000 n 0000000133 00000 n 0000000242 00000 n 0000000509 00000 n 0000000611 00000 n 0000000657 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 765 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/tokens.out0000644000064100006410000013035213247541377015632 0ustar ejbejb--- BEGIN FILE --- 0: comment: %PDF-1.5 8: space: \x0a 9: comment: %\xbf\xf7\xa2\xfe 14: space: \x0a 15: comment: %QDF-1.0 23: space: \x0a\x0a 25: comment: %comment 1 35: space: \x0d 36: comment: %comment 2 46: space: \x0d\x0a 48: comment: %comment 3 58: space: \x0a\x0a 60: integer: 1 61: space: 62: integer: 0 63: space: 64: word: obj 67: space: \x0a 68: dict_open: << 70: space: \x0a 73: name: /Type 78: space: 79: name: /ObjStm 86: space: \x0a 89: name: /Length 96: space: 97: integer: 6020 101: space: \x0a 104: name: /N 106: space: 107: integer: 35 109: space: \x0a 112: name: /First 118: space: 119: integer: 323 122: space: \x0a 123: dict_close: >> 125: space: \x0a 126: word: stream skipping to endstream 6153: word: endstream 6162: space: \x0a 6163: word: endobj 6169: space: \x0a\x0a 6171: comment: %% Contents for page 1 6193: space: \x0a 6194: comment: %% Original object ID: 37 0 6221: space: \x0a 6222: integer: 37 6224: space: 6225: integer: 0 6226: space: 6227: word: obj 6230: space: \x0a 6231: dict_open: << 6233: space: \x0a 6236: name: /Length 6243: space: 6244: integer: 38 6246: space: 6247: integer: 0 6248: space: 6249: word: R 6250: space: \x0a 6251: dict_close: >> 6253: space: \x0a 6254: word: stream skipping to endstream 6305: word: endstream 6314: space: \x0a 6315: word: endobj 6321: space: \x0a\x0a 6323: integer: 38 6325: space: 6326: integer: 0 6327: space: 6328: word: obj 6331: space: \x0a 6332: integer: 44 6334: space: \x0a 6335: word: endobj 6341: space: \x0a\x0a 6343: comment: %% Contents for page 2 6365: space: \x0a 6366: comment: %% Original object ID: 38 0 6393: space: \x0a 6394: integer: 39 6396: space: 6397: integer: 0 6398: space: 6399: word: obj 6402: space: \x0a 6403: dict_open: << 6405: space: \x0a 6408: name: /Length 6415: space: 6416: integer: 40 6418: space: 6419: integer: 0 6420: space: 6421: word: R 6422: space: \x0a 6423: dict_close: >> 6425: space: \x0a 6426: word: stream skipping to endstream 6832: word: endstream 6841: space: \x0a 6842: word: endobj 6848: space: \x0a\x0a 6850: integer: 40 6852: space: 6853: integer: 0 6854: space: 6855: word: obj 6858: space: \x0a 6859: integer: 399 6862: space: \x0a 6863: word: endobj 6869: space: \x0a\x0a 6871: comment: %% Contents for page 3 6893: space: \x0a 6894: comment: %% Original object ID: 39 0 6921: space: \x0a 6922: integer: 41 6924: space: 6925: integer: 0 6926: space: 6927: word: obj 6930: space: \x0a 6931: dict_open: << 6933: space: \x0a 6936: name: /Length 6943: space: 6944: integer: 42 6946: space: 6947: integer: 0 6948: space: 6949: word: R 6950: space: \x0a 6951: dict_close: >> 6953: space: \x0a 6954: word: stream skipping to endstream 7001: word: endstream 7010: space: \x0a 7011: word: endobj 7017: space: \x0a\x0a 7019: integer: 42 7021: space: 7022: integer: 0 7023: space: 7024: word: obj 7027: space: \x0a 7028: integer: 40 7030: space: \x0a 7031: word: endobj 7037: space: \x0a\x0a 7039: comment: %% Contents for page 4 7061: space: \x0a 7062: comment: %% Original object ID: 40 0 7089: space: \x0a 7090: integer: 43 7092: space: 7093: integer: 0 7094: space: 7095: word: obj 7098: space: \x0a 7099: dict_open: << 7101: space: \x0a 7104: name: /Length 7111: space: 7112: integer: 44 7114: space: 7115: integer: 0 7116: space: 7117: word: R 7118: space: \x0a 7119: dict_close: >> 7121: space: \x0a 7122: word: stream skipping to endstream 7404: word: endstream 7413: space: \x0a 7414: word: endobj 7420: space: \x0a\x0a 7422: integer: 44 7424: space: 7425: integer: 0 7426: space: 7427: word: obj 7430: space: \x0a 7431: integer: 275 7434: space: \x0a 7435: word: endobj 7441: space: \x0a\x0a 7443: comment: %% Contents for page 5 7465: space: \x0a 7466: comment: %% Original object ID: 41 0 7493: space: \x0a 7494: integer: 45 7496: space: 7497: integer: 0 7498: space: 7499: word: obj 7502: space: \x0a 7503: dict_open: << 7505: space: \x0a 7508: name: /Length 7515: space: 7516: integer: 46 7518: space: 7519: integer: 0 7520: space: 7521: word: R 7522: space: \x0a 7523: dict_close: >> 7525: space: \x0a 7526: word: stream skipping to endstream 7601: word: endstream 7610: space: \x0a 7611: word: endobj 7617: space: \x0a 7618: comment: %QDF: ignore_newline 7638: space: \x0a\x0a 7640: integer: 46 7642: space: 7643: integer: 0 7644: space: 7645: word: obj 7648: space: \x0a 7649: integer: 67 7651: space: \x0a 7652: word: endobj 7658: space: \x0a\x0a 7660: comment: %% Contents for page 6 7682: space: \x0a 7683: comment: %% Original object ID: 42 0 7710: space: \x0a 7711: integer: 47 7713: space: 7714: integer: 0 7715: space: 7716: word: obj 7719: space: \x0a 7720: dict_open: << 7722: space: \x0a 7725: name: /Length 7732: space: 7733: integer: 48 7735: space: 7736: integer: 0 7737: space: 7738: word: R 7739: space: \x0a 7740: dict_close: >> 7742: space: \x0a 7743: word: stream skipping to endstream 7794: word: endstream 7803: space: \x0a 7804: word: endobj 7810: space: \x0a\x0a 7812: integer: 48 7814: space: 7815: integer: 0 7816: space: 7817: word: obj 7820: space: \x0a 7821: integer: 44 7823: space: \x0a 7824: word: endobj 7830: space: \x0a\x0a 7832: comment: %% Contents for page 7 7854: space: \x0a 7855: comment: %% Original object ID: 43 0 7882: space: \x0a 7883: integer: 49 7885: space: 7886: integer: 0 7887: space: 7888: word: obj 7891: space: \x0a 7892: dict_open: << 7894: space: \x0a 7897: name: /Length 7904: space: 7905: integer: 50 7907: space: 7908: integer: 0 7909: space: 7910: word: R 7911: space: \x0a 7912: dict_close: >> 7914: space: \x0a 7915: word: stream skipping to endstream 8241: word: endstream 8250: space: \x0a 8251: word: endobj 8257: space: \x0a 8258: comment: %QDF: ignore_newline 8278: space: \x0a\x0a 8280: integer: 50 8282: space: 8283: integer: 0 8284: space: 8285: word: obj 8288: space: \x0a 8289: integer: 318 8292: space: \x0a 8293: word: endobj 8299: space: \x0a\x0a 8301: comment: %% Contents for page 8 8323: space: \x0a 8324: comment: %% Original object ID: 44 0 8351: space: \x0a 8352: integer: 51 8354: space: 8355: integer: 0 8356: space: 8357: word: obj 8360: space: \x0a 8361: dict_open: << 8363: space: \x0a 8366: name: /Length 8373: space: 8374: integer: 52 8376: space: 8377: integer: 0 8378: space: 8379: word: R 8380: space: \x0a 8381: dict_close: >> 8383: space: \x0a 8384: word: stream skipping to endstream 8435: word: endstream 8444: space: \x0a 8445: word: endobj 8451: space: \x0a\x0a 8453: integer: 52 8455: space: 8456: integer: 0 8457: space: 8458: word: obj 8461: space: \x0a 8462: integer: 44 8464: space: \x0a 8465: word: endobj 8471: space: \x0a\x0a 8473: comment: %% Contents for page 9 8495: space: \x0a 8496: comment: %% Original object ID: 45 0 8523: space: \x0a 8524: integer: 53 8526: space: 8527: integer: 0 8528: space: 8529: word: obj 8532: space: \x0a 8533: dict_open: << 8535: space: \x0a 8538: name: /Length 8545: space: 8546: integer: 54 8548: space: 8549: integer: 0 8550: space: 8551: word: R 8552: space: \x0a 8553: dict_close: >> 8555: space: \x0a 8556: word: stream skipping to endstream 8607: word: endstream 8616: space: \x0a 8617: word: endobj 8623: space: \x0a\x0a 8625: integer: 54 8627: space: 8628: integer: 0 8629: space: 8630: word: obj 8633: space: \x0a 8634: integer: 44 8636: space: \x0a 8637: word: endobj 8643: space: \x0a\x0a 8645: comment: %% Contents for page 10 8668: space: \x0a 8669: comment: %% Original object ID: 46 0 8696: space: \x0a 8697: integer: 55 8699: space: 8700: integer: 0 8701: space: 8702: word: obj 8705: space: \x0a 8706: dict_open: << 8708: space: \x0a 8711: name: /Length 8718: space: 8719: integer: 56 8721: space: 8722: integer: 0 8723: space: 8724: word: R 8725: space: \x0a 8726: dict_close: >> 8728: space: \x0a 8729: word: stream skipping to endstream 8780: word: endstream 8789: space: \x0a 8790: word: endobj 8796: space: \x0a\x0a 8798: integer: 56 8800: space: 8801: integer: 0 8802: space: 8803: word: obj 8806: space: \x0a 8807: integer: 44 8809: space: \x0a 8810: word: endobj 8816: space: \x0a\x0a 8818: comment: %% Contents for page 11 8841: space: \x0a 8842: comment: %% Original object ID: 47 0 8869: space: \x0a 8870: integer: 57 8872: space: 8873: integer: 0 8874: space: 8875: word: obj 8878: space: \x0a 8879: dict_open: << 8881: space: \x0a 8884: name: /Length 8891: space: 8892: integer: 58 8894: space: 8895: integer: 0 8896: space: 8897: word: R 8898: space: \x0a 8899: dict_close: >> 8901: space: \x0a 8902: word: stream skipping to endstream 8953: word: endstream 8962: space: \x0a 8963: word: endobj 8969: space: \x0a\x0a 8971: integer: 58 8973: space: 8974: integer: 0 8975: space: 8976: word: obj 8979: space: \x0a 8980: integer: 44 8982: space: \x0a 8983: word: endobj 8989: space: \x0a\x0a 8991: integer: 59 8993: space: 8994: integer: 0 8995: space: 8996: word: obj 8999: space: \x0a 9000: dict_open: << 9002: space: \x0a 9005: name: /Type 9010: space: 9011: name: /XRef 9016: space: \x0a 9019: name: /Length 9026: space: 9027: integer: 240 9030: space: \x0a 9033: name: /W 9035: space: 9036: array_open: [ 9037: space: 9038: integer: 1 9039: space: 9040: integer: 2 9041: space: 9042: integer: 1 9043: space: 9044: array_close: ] 9045: space: \x0a 9048: name: /Root 9053: space: 9054: integer: 2 9055: space: 9056: integer: 0 9057: space: 9058: word: R 9059: space: \x0a 9062: name: /Size 9067: space: 9068: integer: 60 9070: space: \x0a 9073: name: /ID 9076: space: 9077: array_open: [ 9078: string: \x88\x04\x8e\x17\xc9a\xe0\x94\xff\xec\xe9\x8c\xb8\x8cF\xd0 (raw: <88048e17c961e094ffece98cb88c46d0>) 9112: string: \xed\xd6\x0f\xe8\xee\x87\xf8\x871\xa8o\x81\x9f\xe6Q\x99 (raw: ) 9146: array_close: ] 9147: space: \x0a 9148: dict_close: >> 9150: space: \x0a 9151: word: stream skipping to endstream 9399: word: endstream 9408: space: \x0a 9409: word: endobj 9415: space: \x0a\x0a 9417: word: startxref 9426: space: \x0a 9427: integer: 8991 9431: space: \x0a 9432: comment: %%EOF 9437: space: \x0a 9438: eof --- END FILE --- --- BEGIN PAGE 1 --- 0: word: BT 2: space: \x0a 5: name: /F1 8: space: 9: integer: 24 11: space: 12: word: Tf 14: space: \x0a 17: integer: 72 19: space: 20: integer: 720 23: space: 24: word: Td 26: space: \x0a 29: string: Potato (raw: (Potato)) 37: space: 38: word: Tj 40: space: \x0a 41: word: ET 43: space: \x0a 44: eof --- END PAGE 1 --- --- BEGIN PAGE 2 --- 0: word: BT 2: space: \x0a 5: name: /F1 8: space: 9: integer: 24 11: space: 12: word: Tf 14: space: \x0a 17: integer: 72 19: space: 20: integer: 720 23: space: 24: word: Td 26: space: \x0a 29: string: Potato (raw: (Potato)) 37: space: 38: word: Tj 40: space: \x0a 41: word: ET 43: space: \x0a 44: word: BI 46: space: \x0a 47: name: /CS 50: space: 51: name: /G 53: name: /W 55: space: 56: integer: 66 58: name: /H 60: space: 61: integer: 47 63: name: /BPC 67: space: 68: integer: 8 69: name: /F 71: name: /Fl 74: name: /DP 77: dict_open: << 79: name: /Predictor 89: space: 90: integer: 15 92: name: /Columns 100: space: 101: integer: 66 103: dict_close: >> 105: space: \x0a 106: word: ID 108: inline-image: x\x9c\xc5\xd6I\x0e\xc3 \x0c\x05P|\xffC;U\xc8`\xc0\xd37\x91Z\xa9\x0b\xa6\x17\x02\xc4\x98\xda\xe6\x8f\x1b}D\xf0\xef_\xb4\xf8\x1c\xc9W\xa9\x84\x9c\xc4-\x94\x88>\xff\x87\xc0\x8d>\x94^\x01&\xae\xa1u\xe2]\x80"!\x87\x95\x08\x96\x05*\xac&\x8fE|Sy\xae \xf0d-\x80<\x9d\x19B\x010B\x05\xfa@N\x11\xea+<\x1fhl\xe8K\xd0\xee/56L\xa0\x89\x90\xe3\x19\x1e \xa3\x96\xb9\xa6>0\x06>\x15Y\x81\xf9!c\xec\\x0eY\x0c\xd8\x0f%Y\xf0\x01\xa5\xd68?&\xa0\xd6\xeb\x88}j\x92\xfb\xe8\x1d;\xab\x8d3\x9d\xc2\xd6l\x14p\xdbsH\xf6\xfbt\xfa\x01Q\x02\xd8Tt*h\xccU\xfa\xe3w\x07\xcd\xd5\xd0%\xa8)p\x96\xb3"\x95DiRj\xb9\x96D\x18YNU\x11\xd3\xd9Av\x92F\xe0&\x0d\x90\xcd\xd4u#c\x95\xc6W\x09\xf4\xdf\x89\x03W\x93O\x0d\x0aEI\x0a 355: word: BT 357: space: \x0a 360: name: /F1 363: space: 364: integer: 24 366: space: 367: word: Tf 369: space: \x0a 372: integer: 72 374: space: 375: integer: 720 378: space: 379: word: Td 381: space: \x0a 384: string: Potato (raw: (Potato)) 392: space: 393: word: Tj 395: space: \x0a 396: word: ET 398: space: \x0a 399: eof --- END PAGE 2 --- --- BEGIN PAGE 3 --- 0: word: BT 2: space: \x0a 5: name: /F1 8: space: 9: integer: 24 11: space: 12: word: Tf 14: space: \x0a 17: integer: 72 19: space: 20: integer: 720 23: space: 24: word: Td 26: space: \x0a 29: bad: (Potato\x0aET\x0a (EOF while reading token) 40: eof --- END PAGE 3 --- --- BEGIN PAGE 4 --- 0: word: BT 2: space: \x0a 5: name: /F1 8: space: 9: integer: 24 11: space: 12: word: Tf 14: space: \x0a 17: string: \xfe\xeb (raw: ) 23: space: \x0a 26: string: \xab\xcd (raw: ) 33: space: \x0a 36: string: quack (raw: (qu\\x0d\x0aack)) 46: space: \x0a 49: string: quack (raw: (qu\\x0aack)) 58: space: \x0a 61: string: quack (raw: (qu\\x0dack)) 70: space: \x0a 73: integer: 72 75: space: 76: integer: 720 79: space: 80: word: Td 82: space: \x0a 85: real: 3.14 89: space: \x0a 92: real: 3. 94: space: \x0a 97: real: .14 100: space: \x0a 103: real: +3.14 108: space: \x0a 111: real: +3. 114: space: \x0a 117: real: +.14 121: space: \x0a 124: real: -3.14 129: space: \x0a 132: real: -3. 135: space: \x0a 138: real: -.14 142: space: \x0a 145: integer: +16059 151: space: \x0a 154: integer: -16059 160: space: \x0a 163: word: +. 165: space: \x0a 168: bad: (unexpected >) 179: word: quack 184: space: 185: bad: /name#oops (invalid name token) 195: space: 196: name: /name (raw: /n#61me) 203: space: 204: word: one 207: space: 208: bool: true 212: space: 213: word: two 216: space: 217: bool: false 222: space: 223: word: three 228: space: 229: null: null 233: space: 234: word: four 238: space: \x0a 239: word: !@#$^& 245: brace_open: { 246: brace_close: } 247: word: *-_+= 252: space: \x0a 253: word: abc123def3.14true 270: space: \x0a 271: bad: > 69: space: \x0a 70: word: ID 72: inline-image: x\x9c\xc5\xd6I\x0e\xc3 \x0c\x05P|\xffC;U\xc8`\xc0\xd37\x91Z\xa9\x0b\xa6\x17\x02\xc4\x98\xda\xe6\x8f\x1b}D\xf0\xef_\xb4\xf8\x1c\xc9W\xa9\x84\x9c\xc4-\x94\x88>\xff\x87\xc0\x8d>\x94^\x01&\xae\xa1u\xe2]\x80"!\x87\x95\x08\x96\x05*\xac&\x8fE|Sy\xae \xf0d-\x80<\x9d\x19B\x010B\x05\xfa@N\x11\xea+<\x1fhl\xe8K\xd0\xee/56L\xa0\x89\x90\xe3\x19\x1e \xa3\x96\xb9\xa6>0\x06>\x15Y\x81\xf9!c\xec\\x0eY\x0c\xd8\x0f%Y\xf0\x01\xa5\xd68?&\xa0\xd6\xeb\x88}j\x92\xfb\xe8\x1d;\xab\x8d3\x9d\xc2\xd6l\x14p\xdbsH\xf6\xfbt\xfa\x01Q\x02\xd8Tt*h\xccU\xfa\xe3w\x07\xcd\xd5\xd0%\xa8)p\x96\xb3"\x95DiRj\xb9\x96D\x18YNU\x11\xd3\xd9Av\x92F\xe0&\x0d\x90\xcd\xd4u#c\x95\xc6W\x09\xf4\xdf\x89\x03W\x93O\x0d\x0aEI 318: eof --- END PAGE 7 --- --- BEGIN PAGE 8 --- 0: word: BT 2: space: \x0a 5: name: /F1 8: space: 9: integer: 24 11: space: 12: word: Tf 14: space: \x0a 17: integer: 72 19: space: 20: integer: 720 23: space: 24: word: Td 26: space: \x0a 29: string: Potato (raw: (Potato)) 37: space: 38: word: Tj 40: space: \x0a 41: word: ET 43: space: \x0a 44: eof --- END PAGE 8 --- --- BEGIN PAGE 9 --- 0: word: BT 2: space: \x0a 5: name: /F1 8: space: 9: integer: 24 11: space: 12: word: Tf 14: space: \x0a 17: integer: 72 19: space: 20: integer: 720 23: space: 24: word: Td 26: space: \x0a 29: string: Potato (raw: (Potato)) 37: space: 38: word: Tj 40: space: \x0a 41: word: ET 43: space: \x0a 44: eof --- END PAGE 9 --- --- BEGIN PAGE 10 --- 0: word: BT 2: space: \x0a 5: name: /F1 8: space: 9: integer: 24 11: space: 12: word: Tf 14: space: \x0a 17: integer: 72 19: space: 20: integer: 720 23: space: 24: word: Td 26: space: \x0a 29: string: Potato (raw: (Potato)) 37: space: 38: word: Tj 40: space: \x0a 41: word: ET 43: space: \x0a 44: eof --- END PAGE 10 --- --- BEGIN PAGE 11 --- 0: word: BT 2: space: \x0a 5: name: /F1 8: space: 9: integer: 24 11: space: 12: word: Tf 14: space: \x0a 17: integer: 72 19: space: 20: integer: 720 23: space: 24: word: Td 26: space: \x0a 29: string: Potato (raw: (Potato)) 37: space: 38: word: Tj 40: space: \x0a 41: word: ET 43: space: \x0a 44: eof --- END PAGE 11 --- --- BEGIN OBJECT STREAM 1 --- 0: integer: 2 1: space: 2: integer: 0 3: space: \x0a 4: integer: 3 5: space: 6: integer: 97 8: space: \x0a 9: integer: 4 10: space: 11: integer: 318 14: space: \x0a 15: integer: 5 16: space: 17: integer: 566 20: space: \x0a 21: integer: 6 22: space: 23: integer: 814 26: space: \x0a 27: integer: 7 28: space: 29: integer: 1062 33: space: \x0a 34: integer: 8 35: space: 36: integer: 1310 40: space: \x0a 41: integer: 9 42: space: 43: integer: 1558 47: space: \x0a 48: integer: 10 50: space: 51: integer: 1808 55: space: \x0a 56: integer: 11 58: space: 59: integer: 2058 63: space: \x0a 64: integer: 12 66: space: 67: integer: 2309 71: space: \x0a 72: integer: 13 74: space: 75: integer: 2560 79: space: \x0a 80: integer: 14 82: space: 83: integer: 2812 87: space: \x0a 88: integer: 15 90: space: 91: integer: 3064 95: space: \x0a 96: integer: 16 98: space: 99: integer: 3228 103: space: \x0a 104: integer: 17 106: space: 107: integer: 3309 111: space: \x0a 112: integer: 18 114: space: 115: integer: 3473 119: space: \x0a 120: integer: 19 122: space: 123: integer: 3554 127: space: \x0a 128: integer: 20 130: space: 131: integer: 3718 135: space: \x0a 136: integer: 21 138: space: 139: integer: 3799 143: space: \x0a 144: integer: 22 146: space: 147: integer: 3963 151: space: \x0a 152: integer: 23 154: space: 155: integer: 4044 159: space: \x0a 160: integer: 24 162: space: 163: integer: 4208 167: space: \x0a 168: integer: 25 170: space: 171: integer: 4289 175: space: \x0a 176: integer: 26 178: space: 179: integer: 4453 183: space: \x0a 184: integer: 27 186: space: 187: integer: 4534 191: space: \x0a 192: integer: 28 194: space: 195: integer: 4698 199: space: \x0a 200: integer: 29 202: space: 203: integer: 4779 207: space: \x0a 208: integer: 30 210: space: 211: integer: 4943 215: space: \x0a 216: integer: 31 218: space: 219: integer: 5024 223: space: \x0a 224: integer: 32 226: space: 227: integer: 5188 231: space: \x0a 232: integer: 33 234: space: 235: integer: 5269 239: space: \x0a 240: integer: 34 242: space: 243: integer: 5433 247: space: \x0a 248: integer: 35 250: space: 251: integer: 5514 255: space: \x0a 256: integer: 36 258: space: 259: integer: 5678 263: space: \x0a 264: comment: %% Object stream: object 2, index 0; original object ID: 2 322: space: \x0a 323: dict_open: << 325: space: \x0a 328: name: /Pages 334: space: 335: integer: 3 336: space: 337: integer: 0 338: space: 339: word: R 340: space: \x0a 343: name: /Type 348: space: 349: name: /Catalog 357: space: \x0a 358: dict_close: >> 360: space: \x0a 361: comment: %% Object stream: object 3, index 1; original object ID: 3 419: space: \x0a 420: dict_open: << 422: space: \x0a 425: name: /Count 431: space: 432: integer: 11 434: space: \x0a 437: name: /Kids 442: space: 443: array_open: [ 444: space: \x0a 449: integer: 4 450: space: 451: integer: 0 452: space: 453: word: R 454: space: \x0a 459: integer: 5 460: space: 461: integer: 0 462: space: 463: word: R 464: space: \x0a 469: integer: 6 470: space: 471: integer: 0 472: space: 473: word: R 474: space: \x0a 479: integer: 7 480: space: 481: integer: 0 482: space: 483: word: R 484: space: \x0a 489: integer: 8 490: space: 491: integer: 0 492: space: 493: word: R 494: space: \x0a 499: integer: 9 500: space: 501: integer: 0 502: space: 503: word: R 504: space: \x0a 509: integer: 10 511: space: 512: integer: 0 513: space: 514: word: R 515: space: \x0a 520: integer: 11 522: space: 523: integer: 0 524: space: 525: word: R 526: space: \x0a 531: integer: 12 533: space: 534: integer: 0 535: space: 536: word: R 537: space: \x0a 542: integer: 13 544: space: 545: integer: 0 546: space: 547: word: R 548: space: \x0a 553: integer: 14 555: space: 556: integer: 0 557: space: 558: word: R 559: space: \x0a 562: array_close: ] 563: space: \x0a 566: name: /Type 571: space: 572: name: /Pages 578: space: \x0a 579: dict_close: >> 581: space: \x0a 582: comment: %% Object stream: object 4, index 2; original object ID: 4 640: space: \x0a 641: comment: %% Page 1 650: space: \x0a 651: dict_open: << 653: space: \x0a 656: name: /Contents 665: space: 666: integer: 37 668: space: 669: integer: 0 670: space: 671: word: R 672: space: \x0a 675: name: /MediaBox 684: space: 685: array_open: [ 686: space: \x0a 691: integer: 0 692: space: \x0a 697: integer: 0 698: space: \x0a 703: integer: 612 706: space: \x0a 711: integer: 792 714: space: \x0a 717: array_close: ] 718: space: \x0a 721: name: /Parent 728: space: 729: integer: 3 730: space: 731: integer: 0 732: space: 733: word: R 734: space: \x0a 737: name: /Resources 747: space: 748: dict_open: << 750: space: \x0a 755: name: /Font 760: space: 761: dict_open: << 763: space: \x0a 770: name: /F1 773: space: 774: integer: 15 776: space: 777: integer: 0 778: space: 779: word: R 780: space: \x0a 785: dict_close: >> 787: space: \x0a 792: name: /ProcSet 800: space: 801: integer: 16 803: space: 804: integer: 0 805: space: 806: word: R 807: space: \x0a 810: dict_close: >> 812: space: \x0a 815: name: /Type 820: space: 821: name: /Page 826: space: \x0a 827: dict_close: >> 829: space: \x0a 830: comment: %% Object stream: object 5, index 3; original object ID: 5 888: space: \x0a 889: comment: %% Page 2 898: space: \x0a 899: dict_open: << 901: space: \x0a 904: name: /Contents 913: space: 914: integer: 39 916: space: 917: integer: 0 918: space: 919: word: R 920: space: \x0a 923: name: /MediaBox 932: space: 933: array_open: [ 934: space: \x0a 939: integer: 0 940: space: \x0a 945: integer: 0 946: space: \x0a 951: integer: 612 954: space: \x0a 959: integer: 792 962: space: \x0a 965: array_close: ] 966: space: \x0a 969: name: /Parent 976: space: 977: integer: 3 978: space: 979: integer: 0 980: space: 981: word: R 982: space: \x0a 985: name: /Resources 995: space: 996: dict_open: << 998: space: \x0a 1003: name: /Font 1008: space: 1009: dict_open: << 1011: space: \x0a 1018: name: /F1 1021: space: 1022: integer: 17 1024: space: 1025: integer: 0 1026: space: 1027: word: R 1028: space: \x0a 1033: dict_close: >> 1035: space: \x0a 1040: name: /ProcSet 1048: space: 1049: integer: 18 1051: space: 1052: integer: 0 1053: space: 1054: word: R 1055: space: \x0a 1058: dict_close: >> 1060: space: \x0a 1063: name: /Type 1068: space: 1069: name: /Page 1074: space: \x0a 1075: dict_close: >> 1077: space: \x0a 1078: comment: %% Object stream: object 6, index 4; original object ID: 6 1136: space: \x0a 1137: comment: %% Page 3 1146: space: \x0a 1147: dict_open: << 1149: space: \x0a 1152: name: /Contents 1161: space: 1162: integer: 41 1164: space: 1165: integer: 0 1166: space: 1167: word: R 1168: space: \x0a 1171: name: /MediaBox 1180: space: 1181: array_open: [ 1182: space: \x0a 1187: integer: 0 1188: space: \x0a 1193: integer: 0 1194: space: \x0a 1199: integer: 612 1202: space: \x0a 1207: integer: 792 1210: space: \x0a 1213: array_close: ] 1214: space: \x0a 1217: name: /Parent 1224: space: 1225: integer: 3 1226: space: 1227: integer: 0 1228: space: 1229: word: R 1230: space: \x0a 1233: name: /Resources 1243: space: 1244: dict_open: << 1246: space: \x0a 1251: name: /Font 1256: space: 1257: dict_open: << 1259: space: \x0a 1266: name: /F1 1269: space: 1270: integer: 19 1272: space: 1273: integer: 0 1274: space: 1275: word: R 1276: space: \x0a 1281: dict_close: >> 1283: space: \x0a 1288: name: /ProcSet 1296: space: 1297: integer: 20 1299: space: 1300: integer: 0 1301: space: 1302: word: R 1303: space: \x0a 1306: dict_close: >> 1308: space: \x0a 1311: name: /Type 1316: space: 1317: name: /Page 1322: space: \x0a 1323: dict_close: >> 1325: space: \x0a 1326: comment: %% Object stream: object 7, index 5; original object ID: 7 1384: space: \x0a 1385: comment: %% Page 4 1394: space: \x0a 1395: dict_open: << 1397: space: \x0a 1400: name: /Contents 1409: space: 1410: integer: 43 1412: space: 1413: integer: 0 1414: space: 1415: word: R 1416: space: \x0a 1419: name: /MediaBox 1428: space: 1429: array_open: [ 1430: space: \x0a 1435: integer: 0 1436: space: \x0a 1441: integer: 0 1442: space: \x0a 1447: integer: 612 1450: space: \x0a 1455: integer: 792 1458: space: \x0a 1461: array_close: ] 1462: space: \x0a 1465: name: /Parent 1472: space: 1473: integer: 3 1474: space: 1475: integer: 0 1476: space: 1477: word: R 1478: space: \x0a 1481: name: /Resources 1491: space: 1492: dict_open: << 1494: space: \x0a 1499: name: /Font 1504: space: 1505: dict_open: << 1507: space: \x0a 1514: name: /F1 1517: space: 1518: integer: 21 1520: space: 1521: integer: 0 1522: space: 1523: word: R 1524: space: \x0a 1529: dict_close: >> 1531: space: \x0a 1536: name: /ProcSet 1544: space: 1545: integer: 22 1547: space: 1548: integer: 0 1549: space: 1550: word: R 1551: space: \x0a 1554: dict_close: >> 1556: space: \x0a 1559: name: /Type 1564: space: 1565: name: /Page 1570: space: \x0a 1571: dict_close: >> 1573: space: \x0a 1574: comment: %% Object stream: object 8, index 6; original object ID: 8 1632: space: \x0a 1633: comment: %% Page 5 1642: space: \x0a 1643: dict_open: << 1645: space: \x0a 1648: name: /Contents 1657: space: 1658: integer: 45 1660: space: 1661: integer: 0 1662: space: 1663: word: R 1664: space: \x0a 1667: name: /MediaBox 1676: space: 1677: array_open: [ 1678: space: \x0a 1683: integer: 0 1684: space: \x0a 1689: integer: 0 1690: space: \x0a 1695: integer: 612 1698: space: \x0a 1703: integer: 792 1706: space: \x0a 1709: array_close: ] 1710: space: \x0a 1713: name: /Parent 1720: space: 1721: integer: 3 1722: space: 1723: integer: 0 1724: space: 1725: word: R 1726: space: \x0a 1729: name: /Resources 1739: space: 1740: dict_open: << 1742: space: \x0a 1747: name: /Font 1752: space: 1753: dict_open: << 1755: space: \x0a 1762: name: /F1 1765: space: 1766: integer: 23 1768: space: 1769: integer: 0 1770: space: 1771: word: R 1772: space: \x0a 1777: dict_close: >> 1779: space: \x0a 1784: name: /ProcSet 1792: space: 1793: integer: 24 1795: space: 1796: integer: 0 1797: space: 1798: word: R 1799: space: \x0a 1802: dict_close: >> 1804: space: \x0a 1807: name: /Type 1812: space: 1813: name: /Page 1818: space: \x0a 1819: dict_close: >> 1821: space: \x0a 1822: comment: %% Object stream: object 9, index 7; original object ID: 9 1880: space: \x0a 1881: comment: %% Page 6 1890: space: \x0a 1891: dict_open: << 1893: space: \x0a 1896: name: /Contents 1905: space: 1906: integer: 47 1908: space: 1909: integer: 0 1910: space: 1911: word: R 1912: space: \x0a 1915: name: /MediaBox 1924: space: 1925: array_open: [ 1926: space: \x0a 1931: integer: 0 1932: space: \x0a 1937: integer: 0 1938: space: \x0a 1943: integer: 612 1946: space: \x0a 1951: integer: 792 1954: space: \x0a 1957: array_close: ] 1958: space: \x0a 1961: name: /Parent 1968: space: 1969: integer: 3 1970: space: 1971: integer: 0 1972: space: 1973: word: R 1974: space: \x0a 1977: name: /Resources 1987: space: 1988: dict_open: << 1990: space: \x0a 1995: name: /Font 2000: space: 2001: dict_open: << 2003: space: \x0a 2010: name: /F1 2013: space: 2014: integer: 25 2016: space: 2017: integer: 0 2018: space: 2019: word: R 2020: space: \x0a 2025: dict_close: >> 2027: space: \x0a 2032: name: /ProcSet 2040: space: 2041: integer: 26 2043: space: 2044: integer: 0 2045: space: 2046: word: R 2047: space: \x0a 2050: dict_close: >> 2052: space: \x0a 2055: name: /Type 2060: space: 2061: name: /Page 2066: space: \x0a 2067: dict_close: >> 2069: space: \x0a 2070: comment: %% Object stream: object 10, index 8; original object ID: 10 2130: space: \x0a 2131: comment: %% Page 7 2140: space: \x0a 2141: dict_open: << 2143: space: \x0a 2146: name: /Contents 2155: space: 2156: integer: 49 2158: space: 2159: integer: 0 2160: space: 2161: word: R 2162: space: \x0a 2165: name: /MediaBox 2174: space: 2175: array_open: [ 2176: space: \x0a 2181: integer: 0 2182: space: \x0a 2187: integer: 0 2188: space: \x0a 2193: integer: 612 2196: space: \x0a 2201: integer: 792 2204: space: \x0a 2207: array_close: ] 2208: space: \x0a 2211: name: /Parent 2218: space: 2219: integer: 3 2220: space: 2221: integer: 0 2222: space: 2223: word: R 2224: space: \x0a 2227: name: /Resources 2237: space: 2238: dict_open: << 2240: space: \x0a 2245: name: /Font 2250: space: 2251: dict_open: << 2253: space: \x0a 2260: name: /F1 2263: space: 2264: integer: 27 2266: space: 2267: integer: 0 2268: space: 2269: word: R 2270: space: \x0a 2275: dict_close: >> 2277: space: \x0a 2282: name: /ProcSet 2290: space: 2291: integer: 28 2293: space: 2294: integer: 0 2295: space: 2296: word: R 2297: space: \x0a 2300: dict_close: >> 2302: space: \x0a 2305: name: /Type 2310: space: 2311: name: /Page 2316: space: \x0a 2317: dict_close: >> 2319: space: \x0a 2320: comment: %% Object stream: object 11, index 9; original object ID: 11 2380: space: \x0a 2381: comment: %% Page 8 2390: space: \x0a 2391: dict_open: << 2393: space: \x0a 2396: name: /Contents 2405: space: 2406: integer: 51 2408: space: 2409: integer: 0 2410: space: 2411: word: R 2412: space: \x0a 2415: name: /MediaBox 2424: space: 2425: array_open: [ 2426: space: \x0a 2431: integer: 0 2432: space: \x0a 2437: integer: 0 2438: space: \x0a 2443: integer: 612 2446: space: \x0a 2451: integer: 792 2454: space: \x0a 2457: array_close: ] 2458: space: \x0a 2461: name: /Parent 2468: space: 2469: integer: 3 2470: space: 2471: integer: 0 2472: space: 2473: word: R 2474: space: \x0a 2477: name: /Resources 2487: space: 2488: dict_open: << 2490: space: \x0a 2495: name: /Font 2500: space: 2501: dict_open: << 2503: space: \x0a 2510: name: /F1 2513: space: 2514: integer: 29 2516: space: 2517: integer: 0 2518: space: 2519: word: R 2520: space: \x0a 2525: dict_close: >> 2527: space: \x0a 2532: name: /ProcSet 2540: space: 2541: integer: 30 2543: space: 2544: integer: 0 2545: space: 2546: word: R 2547: space: \x0a 2550: dict_close: >> 2552: space: \x0a 2555: name: /Type 2560: space: 2561: name: /Page 2566: space: \x0a 2567: dict_close: >> 2569: space: \x0a 2570: comment: %% Object stream: object 12, index 10; original object ID: 12 2631: space: \x0a 2632: comment: %% Page 9 2641: space: \x0a 2642: dict_open: << 2644: space: \x0a 2647: name: /Contents 2656: space: 2657: integer: 53 2659: space: 2660: integer: 0 2661: space: 2662: word: R 2663: space: \x0a 2666: name: /MediaBox 2675: space: 2676: array_open: [ 2677: space: \x0a 2682: integer: 0 2683: space: \x0a 2688: integer: 0 2689: space: \x0a 2694: integer: 612 2697: space: \x0a 2702: integer: 792 2705: space: \x0a 2708: array_close: ] 2709: space: \x0a 2712: name: /Parent 2719: space: 2720: integer: 3 2721: space: 2722: integer: 0 2723: space: 2724: word: R 2725: space: \x0a 2728: name: /Resources 2738: space: 2739: dict_open: << 2741: space: \x0a 2746: name: /Font 2751: space: 2752: dict_open: << 2754: space: \x0a 2761: name: /F1 2764: space: 2765: integer: 31 2767: space: 2768: integer: 0 2769: space: 2770: word: R 2771: space: \x0a 2776: dict_close: >> 2778: space: \x0a 2783: name: /ProcSet 2791: space: 2792: integer: 32 2794: space: 2795: integer: 0 2796: space: 2797: word: R 2798: space: \x0a 2801: dict_close: >> 2803: space: \x0a 2806: name: /Type 2811: space: 2812: name: /Page 2817: space: \x0a 2818: dict_close: >> 2820: space: \x0a 2821: comment: %% Object stream: object 13, index 11; original object ID: 13 2882: space: \x0a 2883: comment: %% Page 10 2893: space: \x0a 2894: dict_open: << 2896: space: \x0a 2899: name: /Contents 2908: space: 2909: integer: 55 2911: space: 2912: integer: 0 2913: space: 2914: word: R 2915: space: \x0a 2918: name: /MediaBox 2927: space: 2928: array_open: [ 2929: space: \x0a 2934: integer: 0 2935: space: \x0a 2940: integer: 0 2941: space: \x0a 2946: integer: 612 2949: space: \x0a 2954: integer: 792 2957: space: \x0a 2960: array_close: ] 2961: space: \x0a 2964: name: /Parent 2971: space: 2972: integer: 3 2973: space: 2974: integer: 0 2975: space: 2976: word: R 2977: space: \x0a 2980: name: /Resources 2990: space: 2991: dict_open: << 2993: space: \x0a 2998: name: /Font 3003: space: 3004: dict_open: << 3006: space: \x0a 3013: name: /F1 3016: space: 3017: integer: 33 3019: space: 3020: integer: 0 3021: space: 3022: word: R 3023: space: \x0a 3028: dict_close: >> 3030: space: \x0a 3035: name: /ProcSet 3043: space: 3044: integer: 34 3046: space: 3047: integer: 0 3048: space: 3049: word: R 3050: space: \x0a 3053: dict_close: >> 3055: space: \x0a 3058: name: /Type 3063: space: 3064: name: /Page 3069: space: \x0a 3070: dict_close: >> 3072: space: \x0a 3073: comment: %% Object stream: object 14, index 12; original object ID: 14 3134: space: \x0a 3135: comment: %% Page 11 3145: space: \x0a 3146: dict_open: << 3148: space: \x0a 3151: name: /Contents 3160: space: 3161: integer: 57 3163: space: 3164: integer: 0 3165: space: 3166: word: R 3167: space: \x0a 3170: name: /MediaBox 3179: space: 3180: array_open: [ 3181: space: \x0a 3186: integer: 0 3187: space: \x0a 3192: integer: 0 3193: space: \x0a 3198: integer: 612 3201: space: \x0a 3206: integer: 792 3209: space: \x0a 3212: array_close: ] 3213: space: \x0a 3216: name: /Parent 3223: space: 3224: integer: 3 3225: space: 3226: integer: 0 3227: space: 3228: word: R 3229: space: \x0a 3232: name: /Resources 3242: space: 3243: dict_open: << 3245: space: \x0a 3250: name: /Font 3255: space: 3256: dict_open: << 3258: space: \x0a 3265: name: /F1 3268: space: 3269: integer: 35 3271: space: 3272: integer: 0 3273: space: 3274: word: R 3275: space: \x0a 3280: dict_close: >> 3282: space: \x0a 3287: name: /ProcSet 3295: space: 3296: integer: 36 3298: space: 3299: integer: 0 3300: space: 3301: word: R 3302: space: \x0a 3305: dict_close: >> 3307: space: \x0a 3310: name: /Type 3315: space: 3316: name: /Page 3321: space: \x0a 3322: dict_close: >> 3324: space: \x0a 3325: comment: %% Object stream: object 15, index 13; original object ID: 15 3386: space: \x0a 3387: dict_open: << 3389: space: \x0a 3392: name: /BaseFont 3401: space: 3402: name: /Helvetica 3412: space: \x0a 3415: name: /Encoding 3424: space: 3425: name: /WinAnsiEncoding 3441: space: \x0a 3444: name: /Name 3449: space: 3450: name: /F1 3453: space: \x0a 3456: name: /Subtype 3464: space: 3465: name: /Type1 3471: space: \x0a 3474: name: /Type 3479: space: 3480: name: /Font 3485: space: \x0a 3486: dict_close: >> 3488: space: \x0a 3489: comment: %% Object stream: object 16, index 14; original object ID: 16 3550: space: \x0a 3551: array_open: [ 3552: space: \x0a 3555: name: /PDF 3559: space: \x0a 3562: name: /Text 3567: space: \x0a 3568: array_close: ] 3569: space: \x0a 3570: comment: %% Object stream: object 17, index 15; original object ID: 17 3631: space: \x0a 3632: dict_open: << 3634: space: \x0a 3637: name: /BaseFont 3646: space: 3647: name: /Helvetica 3657: space: \x0a 3660: name: /Encoding 3669: space: 3670: name: /WinAnsiEncoding 3686: space: \x0a 3689: name: /Name 3694: space: 3695: name: /F1 3698: space: \x0a 3701: name: /Subtype 3709: space: 3710: name: /Type1 3716: space: \x0a 3719: name: /Type 3724: space: 3725: name: /Font 3730: space: \x0a 3731: dict_close: >> 3733: space: \x0a 3734: comment: %% Object stream: object 18, index 16; original object ID: 18 3795: space: \x0a 3796: array_open: [ 3797: space: \x0a 3800: name: /PDF 3804: space: \x0a 3807: name: /Text 3812: space: \x0a 3813: array_close: ] 3814: space: \x0a 3815: comment: %% Object stream: object 19, index 17; original object ID: 19 3876: space: \x0a 3877: dict_open: << 3879: space: \x0a 3882: name: /BaseFont 3891: space: 3892: name: /Helvetica 3902: space: \x0a 3905: name: /Encoding 3914: space: 3915: name: /WinAnsiEncoding 3931: space: \x0a 3934: name: /Name 3939: space: 3940: name: /F1 3943: space: \x0a 3946: name: /Subtype 3954: space: 3955: name: /Type1 3961: space: \x0a 3964: name: /Type 3969: space: 3970: name: /Font 3975: space: \x0a 3976: dict_close: >> 3978: space: \x0a 3979: comment: %% Object stream: object 20, index 18; original object ID: 20 4040: space: \x0a 4041: array_open: [ 4042: space: \x0a 4045: name: /PDF 4049: space: \x0a 4052: name: /Text 4057: space: \x0a 4058: array_close: ] 4059: space: \x0a 4060: comment: %% Object stream: object 21, index 19; original object ID: 21 4121: space: \x0a 4122: dict_open: << 4124: space: \x0a 4127: name: /BaseFont 4136: space: 4137: name: /Helvetica 4147: space: \x0a 4150: name: /Encoding 4159: space: 4160: name: /WinAnsiEncoding 4176: space: \x0a 4179: name: /Name 4184: space: 4185: name: /F1 4188: space: \x0a 4191: name: /Subtype 4199: space: 4200: name: /Type1 4206: space: \x0a 4209: name: /Type 4214: space: 4215: name: /Font 4220: space: \x0a 4221: dict_close: >> 4223: space: \x0a 4224: comment: %% Object stream: object 22, index 20; original object ID: 22 4285: space: \x0a 4286: array_open: [ 4287: space: \x0a 4290: name: /PDF 4294: space: \x0a 4297: name: /Text 4302: space: \x0a 4303: array_close: ] 4304: space: \x0a 4305: comment: %% Object stream: object 23, index 21; original object ID: 23 4366: space: \x0a 4367: dict_open: << 4369: space: \x0a 4372: name: /BaseFont 4381: space: 4382: name: /Helvetica 4392: space: \x0a 4395: name: /Encoding 4404: space: 4405: name: /WinAnsiEncoding 4421: space: \x0a 4424: name: /Name 4429: space: 4430: name: /F1 4433: space: \x0a 4436: name: /Subtype 4444: space: 4445: name: /Type1 4451: space: \x0a 4454: name: /Type 4459: space: 4460: name: /Font 4465: space: \x0a 4466: dict_close: >> 4468: space: \x0a 4469: comment: %% Object stream: object 24, index 22; original object ID: 24 4530: space: \x0a 4531: array_open: [ 4532: space: \x0a 4535: name: /PDF 4539: space: \x0a 4542: name: /Text 4547: space: \x0a 4548: array_close: ] 4549: space: \x0a 4550: comment: %% Object stream: object 25, index 23; original object ID: 25 4611: space: \x0a 4612: dict_open: << 4614: space: \x0a 4617: name: /BaseFont 4626: space: 4627: name: /Helvetica 4637: space: \x0a 4640: name: /Encoding 4649: space: 4650: name: /WinAnsiEncoding 4666: space: \x0a 4669: name: /Name 4674: space: 4675: name: /F1 4678: space: \x0a 4681: name: /Subtype 4689: space: 4690: name: /Type1 4696: space: \x0a 4699: name: /Type 4704: space: 4705: name: /Font 4710: space: \x0a 4711: dict_close: >> 4713: space: \x0a 4714: comment: %% Object stream: object 26, index 24; original object ID: 26 4775: space: \x0a 4776: array_open: [ 4777: space: \x0a 4780: name: /PDF 4784: space: \x0a 4787: name: /Text 4792: space: \x0a 4793: array_close: ] 4794: space: \x0a 4795: comment: %% Object stream: object 27, index 25; original object ID: 27 4856: space: \x0a 4857: dict_open: << 4859: space: \x0a 4862: name: /BaseFont 4871: space: 4872: name: /Helvetica 4882: space: \x0a 4885: name: /Encoding 4894: space: 4895: name: /WinAnsiEncoding 4911: space: \x0a 4914: name: /Name 4919: space: 4920: name: /F1 4923: space: \x0a 4926: name: /Subtype 4934: space: 4935: name: /Type1 4941: space: \x0a 4944: name: /Type 4949: space: 4950: name: /Font 4955: space: \x0a 4956: dict_close: >> 4958: space: \x0a 4959: comment: %% Object stream: object 28, index 26; original object ID: 28 5020: space: \x0a 5021: array_open: [ 5022: space: \x0a 5025: name: /PDF 5029: space: \x0a 5032: name: /Text 5037: space: \x0a 5038: array_close: ] 5039: space: \x0a 5040: comment: %% Object stream: object 29, index 27; original object ID: 29 5101: space: \x0a 5102: dict_open: << 5104: space: \x0a 5107: name: /BaseFont 5116: space: 5117: name: /Helvetica 5127: space: \x0a 5130: name: /Encoding 5139: space: 5140: name: /WinAnsiEncoding 5156: space: \x0a 5159: name: /Name 5164: space: 5165: name: /F1 5168: space: \x0a 5171: name: /Subtype 5179: space: 5180: name: /Type1 5186: space: \x0a 5189: name: /Type 5194: space: 5195: name: /Font 5200: space: \x0a 5201: dict_close: >> 5203: space: \x0a 5204: comment: %% Object stream: object 30, index 28; original object ID: 30 5265: space: \x0a 5266: array_open: [ 5267: space: \x0a 5270: name: /PDF 5274: space: \x0a 5277: name: /Text 5282: space: \x0a 5283: array_close: ] 5284: space: \x0a 5285: comment: %% Object stream: object 31, index 29; original object ID: 31 5346: space: \x0a 5347: dict_open: << 5349: space: \x0a 5352: name: /BaseFont 5361: space: 5362: name: /Helvetica 5372: space: \x0a 5375: name: /Encoding 5384: space: 5385: name: /WinAnsiEncoding 5401: space: \x0a 5404: name: /Name 5409: space: 5410: name: /F1 5413: space: \x0a 5416: name: /Subtype 5424: space: 5425: name: /Type1 5431: space: \x0a 5434: name: /Type 5439: space: 5440: name: /Font 5445: space: \x0a 5446: dict_close: >> 5448: space: \x0a 5449: comment: %% Object stream: object 32, index 30; original object ID: 32 5510: space: \x0a 5511: array_open: [ 5512: space: \x0a 5515: name: /PDF 5519: space: \x0a 5522: name: /Text 5527: space: \x0a 5528: array_close: ] 5529: space: \x0a 5530: comment: %% Object stream: object 33, index 31; original object ID: 33 5591: space: \x0a 5592: dict_open: << 5594: space: \x0a 5597: name: /BaseFont 5606: space: 5607: name: /Helvetica 5617: space: \x0a 5620: name: /Encoding 5629: space: 5630: name: /WinAnsiEncoding 5646: space: \x0a 5649: name: /Name 5654: space: 5655: name: /F1 5658: space: \x0a 5661: name: /Subtype 5669: space: 5670: name: /Type1 5676: space: \x0a 5679: name: /Type 5684: space: 5685: name: /Font 5690: space: \x0a 5691: dict_close: >> 5693: space: \x0a 5694: comment: %% Object stream: object 34, index 32; original object ID: 34 5755: space: \x0a 5756: array_open: [ 5757: space: \x0a 5760: name: /PDF 5764: space: \x0a 5767: name: /Text 5772: space: \x0a 5773: array_close: ] 5774: space: \x0a 5775: comment: %% Object stream: object 35, index 33; original object ID: 35 5836: space: \x0a 5837: dict_open: << 5839: space: \x0a 5842: name: /BaseFont 5851: space: 5852: name: /Helvetica 5862: space: \x0a 5865: name: /Encoding 5874: space: 5875: name: /WinAnsiEncoding 5891: space: \x0a 5894: name: /Name 5899: space: 5900: name: /F1 5903: space: \x0a 5906: name: /Subtype 5914: space: 5915: name: /Type1 5921: space: \x0a 5924: name: /Type 5929: space: 5930: name: /Font 5935: space: \x0a 5936: dict_close: >> 5938: space: \x0a 5939: comment: %% Object stream: object 36, index 34; original object ID: 36 6000: space: \x0a 6001: array_open: [ 6002: space: \x0a 6005: name: /PDF 6009: space: \x0a 6012: name: /Text 6017: space: \x0a 6018: array_close: ] 6019: space: \x0a 6020: eof --- END OBJECT STREAM 1 --- qpdf-8.0.2/qpdf/qtest/qpdf/bad20.out0000644000064100006410000000111213247541377015206 0ustar ejbejbWARNING: bad20.pdf (trailer, offset 753): invalid character (q) in hexstring WARNING: bad20.pdf (trailer, offset 757): unknown token while reading object; treating as string WARNING: bad20.pdf (trailer, offset 758): unexpected > WARNING: bad20.pdf (trailer, offset 715): expected dictionary key but found non-name object; inserting key /QPDFFake1 WARNING: bad20.pdf (trailer, offset 715): expected dictionary key but found non-name object; inserting key /QPDFFake2 /QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 0 done qpdf-8.0.2/qpdf/qtest/qpdf/issue-99b.pdf0000644000064100006410000000137313247541377016022 0ustar ejbejb%PDF-1.3 0 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/20-pages.pdf0000644000064100006410000001625713247541377015616 0ustar ejbejb%PDF-1.4 % 1 0 obj << /Pages 3 0 R /Type /Catalog >> endobj 2 0 obj << /CreationDate /Producer >> endobj 3 0 obj << /Count 20 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R ] /Type /Pages >> endobj 4 0 obj << /Contents 24 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 25 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 5 0 obj << /Contents 26 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 25 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 6 0 obj << /Contents 27 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 25 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 7 0 obj << /Contents 28 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 25 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 8 0 obj << /Contents 29 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 25 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 9 0 obj << /Contents 30 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 25 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 10 0 obj << /Contents 31 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 25 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 11 0 obj << /Contents 32 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 25 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 12 0 obj << /Contents 33 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 25 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 13 0 obj << /Contents 34 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 25 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 14 0 obj << /Contents 35 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 25 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 15 0 obj << /Contents 36 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 25 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 16 0 obj << /Contents 37 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 25 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 17 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 25 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 18 0 obj << /Contents 39 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 25 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 19 0 obj << /Contents 40 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 25 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 20 0 obj << /Contents 41 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 25 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 21 0 obj << /Contents 42 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 25 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 22 0 obj << /Contents 43 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 25 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 23 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources << /Font << /F1 25 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 24 0 obj << /Length 53 /Filter /FlateDecode >> stream ϮPmlk.b`QRH`# ia'Rxrl8m/vendstream endobj 25 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 26 0 obj << /Length 53 /Filter /FlateDecode >> stream =2/_Ŭ /?2{VҤf׳ f| endstream endobj 27 0 obj << /Length 53 /Filter /FlateDecode >> stream ^$,3[cV*C\pckv*WQu|QK@< \?E™endstream endobj 28 0 obj << /Length 53 /Filter /FlateDecode >> stream V{C:˱ϷDE~<Ҡ_# 93^QkDZ|G|endstream endobj 29 0 obj << /Length 53 /Filter /FlateDecode >> stream \‘d\qߞe{dfX=ŝ⸙1Goendstream endobj 30 0 obj << /Length 53 /Filter /FlateDecode >> stream $r[{mIB-+}wp:j"G;+v|endstream endobj 31 0 obj << /Length 53 /Filter /FlateDecode >> stream v*|9U'BjCLRnU0Mއ8#Ɔ聥p@Eendstream endobj 32 0 obj << /Length 53 /Filter /FlateDecode >> stream X%r*T}Hf$mN`RK~DML'I^b:8H8bendstream endobj 33 0 obj << /Length 53 /Filter /FlateDecode >> stream 'F=ObEY)llܔxU=/՝zNw„4 7e˕9endstream endobj 34 0 obj << /Length 53 /Filter /FlateDecode >> stream 40Pf^beh[gL}9.UqGMMс6*I_D&qendstream endobj 35 0 obj << /Length 54 /Filter /FlateDecode >> stream 1zgBTNѴJG~K%q?d.*BPˀ!endstream endobj 36 0 obj << /Length 54 /Filter /FlateDecode >> stream qf'JQ*J12aX[~LgH 6㫥E & ~endstream endobj 37 0 obj << /Length 54 /Filter /FlateDecode >> stream n42AꔨypN뛸 *.H}Bptx3Pendstream endobj 38 0 obj << /Length 54 /Filter /FlateDecode >> stream \.1xXo'ݎBS P!Ep[wG9B+ jJw>Uh@endstream endobj 39 0 obj << /Length 54 /Filter /FlateDecode >> stream Ə* .!kF ިu?X pN#\Z3j[u]`VAendstream endobj 40 0 obj << /Length 53 /Filter /FlateDecode >> stream &v_$ŶƢ4rͲ4 .h)~C.zendstream endobj 41 0 obj << /Length 54 /Filter /FlateDecode >> stream Iܠ[8kC)?,,h7qJxaͥN@8endstream endobj 42 0 obj << /Length 54 /Filter /FlateDecode >> stream ɺˮ1G`[>2jxP'VMw ^]MPdendstream endobj 43 0 obj << /Length 54 /Filter /FlateDecode >> stream 'Wq?u )oW 1npcRWbD]OrYendstream endobj 44 0 obj << /Length 54 /Filter /FlateDecode >> stream - /P -4 /R 3 /U <5c8df9f98e7a250ede08fcd238dfdfe70122456a91bae5134273a6db134c87c4> /V 2 >> endobj xref 0 46 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000175 00000 n 0000000363 00000 n 0000000517 00000 n 0000000671 00000 n 0000000825 00000 n 0000000979 00000 n 0000001133 00000 n 0000001287 00000 n 0000001442 00000 n 0000001597 00000 n 0000001752 00000 n 0000001907 00000 n 0000002062 00000 n 0000002217 00000 n 0000002372 00000 n 0000002527 00000 n 0000002682 00000 n 0000002837 00000 n 0000002992 00000 n 0000003147 00000 n 0000003302 00000 n 0000003457 00000 n 0000003581 00000 n 0000003681 00000 n 0000003805 00000 n 0000003929 00000 n 0000004053 00000 n 0000004177 00000 n 0000004301 00000 n 0000004425 00000 n 0000004549 00000 n 0000004673 00000 n 0000004797 00000 n 0000004922 00000 n 0000005047 00000 n 0000005172 00000 n 0000005297 00000 n 0000005422 00000 n 0000005546 00000 n 0000005671 00000 n 0000005796 00000 n 0000005921 00000 n 0000006046 00000 n trailer << /Info 2 0 R /Root 1 0 R /Size 46 /ID [] /Encrypt 45 0 R >> startxref 6254 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.10-ogen.c-check0000644000064100006410000000040613247541377020715 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 1 user password: extract for accessibility: 1 extract for any purpose: 1 print low resolution: 1 print high resolution: 1 modify document assembly: 1 modify forms: 1 modify annotations: 1 modify other: 1 modify anything: 1 qpdf-8.0.2/qpdf/qtest/qpdf/good8.pdf0000644000064100006410000000165113247541377015310 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 132 /Filter /ASCIIHexDecode >> stream 42 54 0a 20 20 2f 46 31 20 32 34 20 54 66 0a 20 20 37 32 20 37 32 30 20 54 64 0a 20 20 28 50 6f 74 61 74 6F 29 20 54 6A 0A 45 540a> endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 7 0 obj 3.14159 endobj xref 0 8 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000518 00000 n 0000000553 00000 n 0000000671 00000 n trailer << /Size 8 /Root 1 0 R /QTest 7 0 R >> startxref 695 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.pdf0000644000064100006410000000143013247541377017022 0ustar ejbejb%PDF-1.5 % 1 0 obj << /Type /ObjStm /N 5 /First 31 /Length 418 >> stream 2 0 3 42 4 102 5 262 6 285 % 2 << /Type /Catalog /Pages 3 0 R >> % 3 << /Type /Pages /Kids [ 4 0 R ] /Count 1 >> % 4 << /Type /Page /Parent 3 0 R /MediaBox [0 0 612 792] /Contents 7 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> % 5 [ /PDF /Text ] % 6 << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endstream endobj 7 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 8 0 obj << /Type /XRef /Size 9 /Index [0 9] /W [1 2 1] /Length 36 /Root 2 0 R >> stream  i endstream endobj startxref 617 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/extensions-none-force-1.6.out0000644000064100006410000000006213247541377021053 0ustar ejbejbversion: 1.6 extension level: 0 null test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/good16.pdf0000644000064100006410000000143013247541377015362 0ustar ejbejb%PDF-1.5 % 1 0 obj << /Type /ObjStm /N 5 /First 31 /Length 418 >> stream 2 0 3 42 4 102 5 262 6 285 % 2 << /Type /Catalog /Pages 3 0 R >> % 3 << /Type /Pages /Kids [ 4 0 R ] /Count 1 >> % 4 << /Type /Page /Parent 3 0 R /MediaBox [0 0 612 792] /Contents 7 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> % 5 [ /PDF /Text ] % 6 << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endstream endobj 7 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 8 0 obj << /Type /XRef /Size 9 /Index [0 9] /W [1 2 1] /Length 36 /Root 2 0 R >> stream  i endstream endobj startxref 617 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.10-ogen.check0000644000064100006410000000067613247541377020506 0ustar ejbejbchecking a.pdf PDF Version: 1.5 R = 3 P = -4 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/issue-119.pdf0000644000064100006410000000162013247541377015724 0ustar ejbejb%PDF-1.3 %001 0 obj << /00000 3 0 R /T0000/00000000>> endobj 2 0 obj << /0000000(Someone Else) /0reator (A. Nony Mous) /Produc000(Something Else) >> endobj 3 0 obj << /00000 00/0i00 [04 0 R ] /T0000/00000 >> endobj 4 0 obj << /0000000s 5 0 R /0000000x [00 0 000 000 ] /P00000 3 0 R /R000000000<< 4 0 R<< /00 6 0 R >> /0000S00 7 0 R >> /T0000/0000 >> endobj 5 0 obj << /Length 48 /Filter /FlateDecode >> stream 00000000000000000000000000000000000000000000000endstream endobj 6 0 obj << /00s000000/0elvetica /Encoding /WinAns00000000g /Name /F1 /Subtype /Type1 /Type /Font >> endobj 7 0 obj [ /0000/0000 ] endobj xref 0 8 0000000000 00000 f 0000000015 00000 n 0000000064 00000 n 0000000159 00000 n 0000000218 00000 n 0000000360 00000 n 0000000479 00000 n 0000000586 00000 n trailer <<00000000000000000000000000000000>] >>startxref 616 %%EOFqpdf-8.0.2/qpdf/qtest/qpdf/bad2-recover.out0000644000064100006410000000040713247541377016577 0ustar ejbejbWARNING: bad2.pdf: file is damaged WARNING: bad2.pdf: can't find startxref WARNING: bad2.pdf: Attempting to reconstruct cross-reference table /QTest is implicit /QTest is direct and has type null (2) /QTest is null unparse: null unparseResolved: null test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/coalesce-out.pdf0000644000064100006410000000312713247541377016653 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 2 /Kids [ 3 0 R 4 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet 7 0 R >> /Type /Page >> endobj 4 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 9 0 R >> /ProcSet 10 0 R >> /Type /Page >> endobj 5 0 obj << /Length 382 /Filter /FlateDecode >> stream xsBT /F1 24 Tf 72 720 Td (Potato) Tj ET [ /array/split ] BI /CS /G/W 66/H 47/BPC 8/F/Fl/DP<> ID xI P|C;U`7Z Ę}D_W->>^&u]"!*&E|Sy d-<B0B@N+<hlK/56L >0>Y!c\Y %Y8?&}j;3lpsHtQTt*hUw%)p"DiRjDYNUAvF& u#cW ߉WO EIЏendstream endobj 6 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 7 0 obj [ /PDF /Text ] endobj 8 0 obj << /Length 48 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 9 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 10 0 obj [ /PDF /Text ] endobj xref 0 11 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000129 00000 n 0000000272 00000 n 0000000416 00000 n 0000000869 00000 n 0000000976 00000 n 0000001006 00000 n 0000001124 00000 n 0000001231 00000 n trailer << /Root 1 0 R /Size 11 /ID [<31415926535897932384626433832795>] >> startxref 1262 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/V5R5.out0000644000064100006410000000105613247541377015026 0ustar ejbejbchecking a.pdf PDF Version: 1.7 extension level 3 R = 5 P = -4 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed stream encryption method: AESv3 string encryption method: AESv3 file encryption method: AESv3 File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/new-streams.pdf0000644000064100006410000000173013247541377016533 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /QStream 3 0 R /RStream 4 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 5 0 R ] /Type /Pages >> endobj 3 0 obj << /Length 20 >> stream data for new stream endstream endobj 4 0 obj << /Length 22 >> stream data for other stream endstream endobj 5 0 obj << /Contents 6 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 7 0 R >> /ProcSet 8 0 R >> /Type /Page >> endobj 6 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 7 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 8 0 obj [ /PDF /Text ] endobj xref 0 9 0000000000 65535 f 0000000015 00000 n 0000000094 00000 n 0000000153 00000 n 0000000222 00000 n 0000000293 00000 n 0000000436 00000 n 0000000529 00000 n 0000000636 00000 n trailer << /Root 1 0 R /Size 9 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 666 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/inline-images.10-ogen.c-check0000644000064100006410000000040613247541377020677 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 1 user password: extract for accessibility: 1 extract for any purpose: 1 print low resolution: 1 print high resolution: 1 modify document assembly: 1 modify forms: 1 modify annotations: 1 modify other: 1 modify anything: 1 qpdf-8.0.2/qpdf/qtest/qpdf/c-no-options.pdf0000644000064100006410000002270413247541377016617 0ustar ejbejb%PDF-1.5 % 1 0 obj << /Outlines 3 0 R /PageLabels 15 0 R /PageMode /UseOutlines /Pages 16 0 R /Type /Catalog >> endobj 2 0 obj << /Type /ObjStm /Length 610 /Filter /FlateDecode /N 13 /First 87 >> stream x]o0r9v츪*! $41!>@]QѵS"N/;Q)=OcRd@ (L!?"~,w<$H;Vz1BzX1Z厳 @.~ y߭WWlS\:ʂu_`_ׁx~~wyXS6iW.fNjlKk0ldj{pOUjjs %]}z[^vY |01Ϋ|ȁ^z/&^sCt;7`YH0xstH3]y!j)Dc". \F75HQ~N̛9Σ4z9Tıl ԙ &`h%!z5;qQI/?^:;9|@q W){Pt8CBzZ֪$9F'=NR{bO"Q #m$v򍿓=C0g\nc[,ciS,F$Ez_2B1s૯I}uxD60:K#` m+@4OȘ%E?: ?p~?-Kendstream endobj 16 0 obj << /Count 30 /Kids [ 26 0 R 25 0 R 27 0 R 28 0 R 29 0 R 17 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 19 0 R 21 0 R 20 0 R 35 0 R 18 0 R 36 0 R 37 0 R 22 0 R 23 0 R 38 0 R 39 0 R 24 0 R 40 0 R 41 0 R 42 0 R 43 0 R 44 0 R 45 0 R 46 0 R ] /Type /Pages >> endobj 17 0 obj << /Contents 47 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 18 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 19 0 obj << /Contents 51 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 20 0 obj << /Contents 52 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 21 0 obj << /Contents 53 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 22 0 obj << /Contents 54 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 23 0 obj << /Contents 55 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 24 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 25 0 obj << /Contents 57 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 26 0 obj << /Contents 58 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 27 0 obj << /Contents 59 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 28 0 obj << /Contents 60 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 29 0 obj << /Contents 61 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 30 0 obj << /Contents 62 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 31 0 obj << /Contents 63 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 32 0 obj << /Contents 64 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 33 0 obj << /Contents 65 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 34 0 obj << /Contents 66 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 35 0 obj << /Contents 67 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 36 0 obj << /Contents 68 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 37 0 obj << /Contents 69 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 38 0 obj << /Contents 70 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 39 0 obj << /Contents 71 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 40 0 obj << /Contents 72 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 41 0 obj << /Contents 73 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 42 0 obj << /Contents 74 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 43 0 obj << /Contents 75 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 44 0 obj << /Contents 76 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 45 0 obj << /Contents 77 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 46 0 obj << /Contents 78 0 R /MediaBox [ 0 0 612 792 ] /Parent 16 0 R /Resources << /Font << /F1 48 0 R >> /ProcSet 49 0 R >> /Type /Page >> endobj 47 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr F endstream endobj 48 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 49 0 obj [ /PDF /Text ] endobj 50 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr d Nendstream endobj 51 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr @ Jendstream endobj 52 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr R Lendstream endobj 53 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr I Kendstream endobj 54 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  Qendstream endobj 55 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  Rendstream endobj 56 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr S Lendstream endobj 57 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr " endstream endobj 58 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  endstream endobj 59 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr + endstream endobj 60 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr 4 endstream endobj 61 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr = endstream endobj 62 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr O endstream endobj 63 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr X endstream endobj 64 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,WTr a endstream endobj 65 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,WTr j !endstream endobj 66 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr 7 Iendstream endobj 67 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr [ Mendstream endobj 68 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr m Oendstream endobj 69 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr v Pendstream endobj 70 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr A Jendstream endobj 71 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr J Kendstream endobj 72 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr \ Mendstream endobj 73 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,i*dqpe Nendstream endobj 74 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr n Oendstream endobj 75 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr w Pendstream endobj 76 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr  Qendstream endobj 77 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  Rendstream endobj 78 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  Sendstream endobj 79 0 obj << /Type /XRef /Length 83 /Filter /FlateDecode /DecodeParms << /Columns 4 /Predictor 12 >> /W [ 1 2 1 ] /Root 1 0 R /Size 80 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> stream xcb&F~&b`$d '(QBJWA*  $(F4YTV,$5 endstream endobj startxref 9327 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/lin-special.10.check0000644000064100006410000000067613247541377017221 0ustar ejbejbchecking a.pdf PDF Version: 1.4 R = 3 P = -4 User password = extract for accessibility: allowed extract for any purpose: allowed print low resolution: allowed print high resolution: allowed modify document assembly: allowed modify forms: allowed modify annotations: allowed modify other: allowed modify anything: allowed File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/from-scratch-0.pdf0000644000064100006410000000140413247541377017011 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet 6 0 R >> /Type /Page >> endobj 4 0 obj << /Length 42 >> stream BT /F1 15 Tf 72 720 Td (First Page) Tj ET endstream endobj 5 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 6 0 obj [ /PDF /Text ] endobj xref 0 7 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000266 00000 n 0000000357 00000 n 0000000464 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 494 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/check-ID.pl0000644000064100006410000000037313247541377015501 0ustar ejbejbuse strict; $^W=1; my $okay = 0; my $id = '31415926535897932384626433832795'; while (<>) { if ((m,/ID ?\[<([[:xdigit:]]{32})><$id>\],) && ($1 ne $id)) { $okay = 1; } } if ($okay) { print "ID okay\n"; } else { print "ID bad\n"; } qpdf-8.0.2/qpdf/qtest/qpdf/bad26.out0000644000064100006410000000027213247541377015222 0ustar ejbejbWARNING: bad26.pdf (object 4 0, offset 307): expected n n obj /QTest is implicit /QTest is indirect and has type null (2) /QTest is null unparse: 4 0 R unparseResolved: null test 0 done qpdf-8.0.2/qpdf/qtest/qpdf/good15.pdf0000644000064100006410000000141313247541377015362 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /QTest /oink >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad33.out0000644000064100006410000000005013247541377015212 0ustar ejbejbbad33.pdf (offset 1771): xref not found qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.12-ogen.c-check0000644000064100006410000000005013247541377020712 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/bad16.pdf0000644000064100006410000000141313247541377015161 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /Something[>> >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/c-linearized.pdf0000644000064100006410000002475113247541377016644 0ustar ejbejb%PDF-1.5 % 61 0 obj << /Linearized 1 /L 10729 /H [ 786 181 ] /O 65 /E 2089 /N 30 /T 10155 >> endobj 62 0 obj << /Type /XRef /Length 49 /Filter /FlateDecode /DecodeParms << /Columns 4 /Predictor 12 >> /W [ 1 2 1 ] /Index [ 61 22 ] /Root 63 0 R /Size 83 /Prev 10156 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> stream xcbdg`b`8 $ <w+5Īr@,y&@,F2  endstream endobj 63 0 obj << /Outlines 70 0 R /PageLabels 82 0 R /PageMode /UseOutlines /Pages 59 0 R /Type /Catalog >> endobj 64 0 obj << /Filter /FlateDecode /S 150 /O 182 /Length 95 >> stream xc```b``\ \ Pf310,b 3Fd \D>ęP %Єa=@9S- endstream endobj 65 0 obj << /Contents 66 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 67 0 R >> /ProcSet 68 0 R >> /Type /Page >> endobj 66 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  endstream endobj 67 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 68 0 obj [ /PDF /Text ] endobj 69 0 obj << /Type /ObjStm /Length 612 /Filter /FlateDecode /N 13 /First 94 >> stream xn@yl/gQ QU  qP/ qDDTvyƻvZWb_E@ځ +A*@9&pނ@h9 `=T)2Ŀjz1Bz@v*]pٻ8P@~[6EY ,8+qViu'NjW(vV+ Dؠv̀j:HߖCD-NCd5h^v:uän}Wf MBqѡ !q8z!Z$SX.D4ģG(sXP<|XsHbE'̛=Qse 8%}]c6ޑO &mi[\D>moܘ5b FϑOTSiD"K=sc^>-wCGOJtşF;w@1#Fz07~{D[mOgZtc[.ei.agX1MqKEĞr7g +Y9^ߏ0Q/*!FE_ bP j6dEcXjṴ!endstream endobj 1 0 obj << /Contents 2 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 67 0 R >> /ProcSet 68 0 R >> /Type /Page >> endobj 2 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr " endstream endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 67 0 R >> /ProcSet 68 0 R >> /Type /Page >> endobj 4 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr + endstream endobj 5 0 obj << /Contents 6 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 67 0 R >> /ProcSet 68 0 R >> /Type /Page >> endobj 6 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr 4 endstream endobj 7 0 obj << /Contents 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 67 0 R >> /ProcSet 68 0 R >> /Type /Page >> endobj 8 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr = endstream endobj 9 0 obj << /Contents 10 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 67 0 R >> /ProcSet 68 0 R >> /Type /Page >> endobj 10 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr F endstream endobj 11 0 obj << /Contents 12 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 67 0 R >> /ProcSet 68 0 R >> /Type /Page >> endobj 12 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr O endstream endobj 13 0 obj << /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 67 0 R >> /ProcSet 68 0 R >> /Type /Page >> endobj 14 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr X endstream endobj 15 0 obj << /Contents 16 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 67 0 R >> /ProcSet 68 0 R >> /Type /Page >> endobj 16 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,WTr a endstream endobj 17 0 obj << /Contents 18 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 67 0 R >> /ProcSet 68 0 R >> /Type /Page >> endobj 18 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,WTr j !endstream endobj 19 0 obj << /Contents 20 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 67 0 R >> /ProcSet 68 0 R >> /Type /Page >> endobj 20 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr 7 Iendstream endobj 21 0 obj << /Contents 22 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 67 0 R >> /ProcSet 68 0 R >> /Type /Page >> endobj 22 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr @ Jendstream endobj 23 0 obj << /Contents 24 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 67 0 R >> /ProcSet 68 0 R >> /Type /Page >> endobj 24 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr I Kendstream endobj 25 0 obj << /Contents 26 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 67 0 R >> /ProcSet 68 0 R >> /Type /Page >> endobj 26 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr R Lendstream endobj 27 0 obj << /Contents 28 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 67 0 R >> /ProcSet 68 0 R >> /Type /Page >> endobj 28 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr [ Mendstream endobj 29 0 obj << /Contents 30 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 67 0 R >> /ProcSet 68 0 R >> /Type /Page >> endobj 30 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr d Nendstream endobj 31 0 obj << /Contents 32 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 67 0 R >> /ProcSet 68 0 R >> /Type /Page >> endobj 32 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr m Oendstream endobj 33 0 obj << /Contents 34 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 67 0 R >> /ProcSet 68 0 R >> /Type /Page >> endobj 34 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W04Tr v Pendstream endobj 35 0 obj << /Contents 36 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 67 0 R >> /ProcSet 68 0 R >> /Type /Page >> endobj 36 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  Qendstream endobj 37 0 obj << /Contents 38 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 67 0 R >> /ProcSet 68 0 R >> /Type /Page >> endobj 38 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  Rendstream endobj 39 0 obj << /Contents 40 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 67 0 R >> /ProcSet 68 0 R >> /Type /Page >> endobj 40 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr A Jendstream endobj 41 0 obj << /Contents 42 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 67 0 R >> /ProcSet 68 0 R >> /Type /Page >> endobj 42 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr J Kendstream endobj 43 0 obj << /Contents 44 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 67 0 R >> /ProcSet 68 0 R >> /Type /Page >> endobj 44 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr S Lendstream endobj 45 0 obj << /Contents 46 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 67 0 R >> /ProcSet 68 0 R >> /Type /Page >> endobj 46 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr \ Mendstream endobj 47 0 obj << /Contents 48 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 67 0 R >> /ProcSet 68 0 R >> /Type /Page >> endobj 48 0 obj << /Length 50 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,i*dqpe Nendstream endobj 49 0 obj << /Contents 50 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 67 0 R >> /ProcSet 68 0 R >> /Type /Page >> endobj 50 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr n Oendstream endobj 51 0 obj << /Contents 52 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 67 0 R >> /ProcSet 68 0 R >> /Type /Page >> endobj 52 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr w Pendstream endobj 53 0 obj << /Contents 54 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 67 0 R >> /ProcSet 68 0 R >> /Type /Page >> endobj 54 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W02Tr  Qendstream endobj 55 0 obj << /Contents 56 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 67 0 R >> /ProcSet 68 0 R >> /Type /Page >> endobj 56 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  Rendstream endobj 57 0 obj << /Contents 58 0 R /MediaBox [ 0 0 612 792 ] /Parent 59 0 R /Resources << /Font << /F1 67 0 R >> /ProcSet 68 0 R >> /Type /Page >> endobj 58 0 obj << /Length 51 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,W0Tr  Sendstream endobj 59 0 obj << /Count 30 /Kids [ 65 0 R 1 0 R 3 0 R 5 0 R 7 0 R 9 0 R 11 0 R 13 0 R 15 0 R 17 0 R 19 0 R 21 0 R 23 0 R 25 0 R 27 0 R 29 0 R 31 0 R 33 0 R 35 0 R 37 0 R 39 0 R 41 0 R 43 0 R 45 0 R 47 0 R 49 0 R 51 0 R 53 0 R 55 0 R 57 0 R ] /Type /Pages >> endobj 60 0 obj << /Type /XRef /Length 57 /Filter /FlateDecode /DecodeParms << /Columns 4 /Predictor 12 >> /W [ 1 2 1 ] /Size 61 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> stream xcb&FM&I@0k2U bMd1X XU`1VmU"F XdO endstream endobj startxref 216 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/split-exp-01.Pdf0000644000064100006410000000136313247541377016373 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 53 >> stream xs Qw3T04UIS07" ̼TCM,. ,endstream endobj 5 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj xref 0 6 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000275 00000 n 0000000398 00000 n trailer << /Root 1 0 R /Size 6 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 497 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.3-ogen.check0000644000064100006410000000026213247541377020103 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is not linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/good21.out0000644000064100006410000000016613247541377015421 0ustar ejbejb/QTest is direct and has type name (7) /QTest is a name with value /# unparse: /#23 unparseResolved: /#23 test 1 done qpdf-8.0.2/qpdf/qtest/qpdf/bad-jpeg.pdf0000644000064100006410000001111113247541377015731 0ustar ejbejb%PDF-1.3 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 392 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet [ /PDF /Text /ImageC ] /XObject << /Im1 6 0 R >> >> /Type /Page >> endobj 4 0 obj << /Filter /FlateDecode /Length 99 >> stream x ; @{O1eAk$T 'D z}ajZB&j[da)i13ߡL$hF-{~+l&k-q|WG/8endstream endobj 5 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 6 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 480 /Subtype /Image /Type /XObject /Width 400 /Length 3650 >> stream wwwwwwwwwwC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?袊((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((Ҩ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((j(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((L+O܂((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((y+((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((v(܏0((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((endstream endobj xref 0 7 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000123 00000 n 0000000309 00000 n 0000000478 00000 n 0000000585 00000 n trailer << /Root 1 0 R /Size 7 /ID [<53b6958e9beef00ea2ac077d5f2912b6><8356d7e2601f9f117431ac13ea465f47>] >> startxref 4402 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/pages-loop.out0000644000064100006410000000024313247541377016370 0ustar ejbejbchecking pages-loop.pdf PDF Version: 1.3 File is not encrypted File is not linearized pages-loop.pdf (object 3 0): Loop detected in /Pages structure (getAllPages) qpdf-8.0.2/qpdf/qtest/qpdf/pages-copy-encryption.pdf0000644000064100006410000000244713247541377020533 0ustar ejbejb%PDF-1.4 % 1 0 obj << /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 2 /Kids [ 3 0 R 4 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 5 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 4 0 obj << /Contents 7 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 6 0 R >> /ProcSet [ /PDF /Text ] >> /Type /Page >> endobj 5 0 obj << /Filter /FlateDecode /Length 53 >> stream 8x\1(0A@ HH\ $ 2\g"]:ߩJU@ endstream endobj 6 0 obj << /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> endobj 7 0 obj << /Filter /FlateDecode /Length 54 >> stream ՜'a{ȯ xum I0 \p:N.(Yendstream endobj 8 0 obj << /Filter /Standard /Length 128 /O <0ba3835f88f90388e74e54584125ce142be0de24c6b0d37746e075b891756671> /P -4 /R 3 /U <5c8df9f98e7a250ede08fcd238dfdfe70122456a91bae5134273a6db134c87c4> /V 2 >> endobj xref 0 9 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000129 00000 n 0000000281 00000 n 0000000433 00000 n 0000000556 00000 n 0000000655 00000 n 0000000779 00000 n trailer << /Root 1 0 R /Size 9 /ID [<31415926535897932384626433832795>] /Encrypt 8 0 R >> startxref 986 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/good9.pdf0000644000064100006410000000147413247541377015314 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /QTest (\241Hola!) /Z ('yj׸B^Q\n9\rD|kJZm:l\\) >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/bad24.pdf0000644000064100006410000000141213247541377015157 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET enxstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /QTest 4 0 R >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.9-ogen.c-check0000644000064100006410000000005013247541377020324 0ustar ejbejbversion: 1.5 linearized: 1 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/extensions-none-force-1.8.5.pdf0000644000064100006410000000154113247541377021165 0ustar ejbejb%PDF-1.8 % 1 0 obj << /Extensions << /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> >> /Pages 2 0 R /Type /Catalog >> endobj 2 0 obj << /Count 1 /Kids [ 3 0 R ] /Type /Pages >> endobj 3 0 obj << /Contents 4 0 R /MediaBox [ 0 0 612 792 ] /Parent 2 0 R /Resources << /Font << /F1 5 0 R >> /ProcSet 6 0 R >> /Type /Page >> endobj 4 0 obj << /Length 48 /Filter /FlateDecode >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 5 0 obj << /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >> endobj 6 0 obj [ /PDF /Text ] endobj xref 0 7 0000000000 65535 f 0000000015 00000 n 0000000130 00000 n 0000000189 00000 n 0000000332 00000 n 0000000450 00000 n 0000000557 00000 n trailer << /Root 1 0 R /Size 7 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] >> startxref 587 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/filter-abbreviation.pdf0000644000064100006410000000134713247541377020222 0ustar ejbejb%PDF-1.5 % 1 0 obj << /Type /ObjStm /Length 223 /Filter /Fl /N 5 /First 26 >> stream xEQ0DmO©'x >ڥDT߻II^ݙo& O0A)T#Rr4CuC?A,uWנ,b: !83&j/km <{-Kby[k+Eʚ) i%;ZW)ͻ@?ZTg=%NTV68iy/Tq~C 9D%G]endstream endobj 7 0 obj << /Length 48 /Filter /Fl >> stream xs RPw3T02QI͍@!$/I,Tr  endstream endobj 8 0 obj << /Type /XRef /Length 32 /Filter /Fl /DecodeParms << /Columns 4 /Predictor 12 >> /W [ 1 2 1 ] /Root 2 0 R /Size 9 /ID [<050894d8d0e442532dcf5fbcef2bdb6e><050894d8d0e442532dcf5fbcef2bdb6e>] >> stream xcb&F~ cD'34 endstream endobj startxref 456 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/issue-118.pdf0000644000064100006410000000144613247541377015731 0ustar ejbejb%PDF-10000000001 0 obj << /Type /000000000/N 0000/000s0 00000/Length 418 >> stream 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000s0000000s00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000s000000000000s00000s00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000s00000000000000000000000000000000000s0000000000000endstream endobj 000000000000000000000000000s00000000000000000000000000000000000000000000000000000s000000000000008 0 obj << /Type /XRef /Size 9 /Index [0 9] /W [1 2 1] /Length 36 /Root 2 0 R /Q00s0 0 0 R >> stream 0000000000000000000000 endstream endobj startxref 617 %%EOFqpdf-8.0.2/qpdf/qtest/qpdf/good7.pdf0000644000064100006410000000141313247541377015303 0ustar ejbejb%PDF-1.3 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000063 00000 n 0000000135 00000 n 0000000307 00000 n 0000000403 00000 n 0000000438 00000 n trailer << /Size 7 /Root 1 0 R /QTest 16059 >> startxref 556 %%EOF qpdf-8.0.2/qpdf/qtest/qpdf/object-stream.7-ogen.c-check0000644000064100006410000000005013247541377020636 0ustar ejbejbversion: 1.5 linearized: 0 encrypted: 0 qpdf-8.0.2/qpdf/qtest/qpdf/extensions-adbe-min-1.7.3.out0000644000064100006410000000014313247541377020636 0ustar ejbejbversion: 1.7 extension level: 3 << /ADBE << /BaseVersion /1.7 /ExtensionLevel 3 >> >> test 34 done qpdf-8.0.2/qpdf/qtest/qpdf/hybrid-xref.9.check0000644000064100006410000000025613247541377017166 0ustar ejbejbchecking a.pdf PDF Version: 1.5 File is not encrypted File is linearized No syntax or stream encoding errors found; the file may still contain errors that qpdf cannot detect qpdf-8.0.2/qpdf/qtest/qpdf/good14.pdf0000644000064100006410000000403413247541377015363 0ustar ejbejb%PDF-1.3 -*- coding: no-conversion -*- % 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /ProcSet 5 0 R /Font << /F1 6 0 R >> >> >> endobj 4 0 obj << /Length 44 >> stream BT /F1 24 Tf 72 720 Td (Potato) Tj ET endstream endobj 5 0 obj [ /PDF /Text ] endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 7 0 obj << /Length 9 0 R >> stream A %here is a comment B % here is another with CR A B one two three lines (string with CRNL) and another indentation (B%DEF)() <8A 8B><61 62><8c>