From: compudj Date: Fri, 16 Dec 2005 03:28:06 +0000 (+0000) Subject: put the 0.6.9 version in the trunk directory X-Git-Tag: v0.12.20~2096 X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=bf4af5b1ee443934a4b4d52b63756ce5fc17659e;p=lttv.git put the 0.6.9 version in the trunk directory git-svn-id: http://ltt.polymtl.ca/svn@1393 04897980-b3bd-0310-b5e0-8ef037075253 --- diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/AUTHORS b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/AUTHORS new file mode 100644 index 00000000..032edf04 --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/AUTHORS @@ -0,0 +1,25 @@ +Linux Trace Toolkit Viewer + +Contributors : + +Michel Dagenais (New trace format, lttv main) +Mathieu Desnoyers (Kernel Tracer, Directory structure, build with automake/conf, + lttv gui, control flow view, gui cooperative trace reading + scheduler with interruptible foreground and background + computation, detailed event list (rewrite), trace reading + library (rewrite)) +Benoit Des Ligneris, Éric Clement (Cluster adaptation, work in progress) +Xang-Xiu Yang (trace reading library and converter, lttv gui, + detailed event list and statistics view) +Tom Zanussi (RelayFS) + +Strongly inspired from the original Linux Trace Toolkit Visualizer made by +Karim Yaghmour. + +Linux Trace Toolkit Viewer, Copyright (C) 2004 + Michel Dagenais + Mathieu Desnoyers + Xang-Xiu Yang +Linux Trace Toolkit comes with ABSOLUTELY NO WARRANTY. +This is free software, and you are welcome to redistribute it +under certain conditions. See COPYING for details. diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/ChangeLog b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/ChangeLog new file mode 100644 index 00000000..ad3e132b --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/ChangeLog @@ -0,0 +1,4 @@ +LinuxTraceToolkit ChangeLog + +29/05/2003 Subversion repository preliminary files addition + diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/Makefile.am b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/Makefile.am new file mode 100644 index 00000000..66afa906 --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/Makefile.am @@ -0,0 +1,6 @@ +# WARNING : ltt must come before lttv, so that the traceread library is +# up to date + +SUBDIRS = liblttctl ltt lttctl lttv lttd doc facilities + +EXTRA_DIST = QUICKSTART diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/NEWS b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/NEWS new file mode 100644 index 00000000..e69de29b diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/QUICKSTART b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/QUICKSTART new file mode 100644 index 00000000..f297e155 --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/QUICKSTART @@ -0,0 +1,366 @@ + +QUICKSTART + +How to use LTTng and LTTV in a few lines : + +This document is made of four parts : The first one explains how to install +LTTng and LTTV from Debian and RPM binary packages, the second one explains how +to install LTTng and LTTV from sources and the third one describes the steps +to follow to trace a system and view it. The fourth and last part explains +briefly how to add a new trace point to the kernel. + +What you will typically want is to read sections 1 and 3 : install LTTng from +binary packages and use it. If there are no packages ready for your system, you +will have to install from sources (section 2) instead. + +These operations are made for installing the LTTng 0.4.2 tracer on a +linux 2.6.12-rc4-mm2 kernel. You will also find instructions for installtion of +LTTV 0.6.x : the Linux Trace Toolkit Viewer. + +At this point, the -mm tree of the kernel is used because it has RelayFS support +in it. In a nearby future, a vanilla kernel 2.6.14 will be used, as RelayFS has +been integrated in the linux 2.6.14-rc series. + +The following lttng patch is necessary to have the tracing hooks in the kernel. +The following ltt-control module controls the tracing. + +Required programs and librairies are assumed to be automatically installed in an +installation with Debian or RPM packages. In the case of an installation from +sources, the dependencies are listed. + + +** Current development status ** + +LTTng : +supported architectures : +Intel Pentium (UP/SMP) with TSC + +LTTV : +supported architectures : +Intel i386 and better +PowerPC + + + +Author : Mathieu Desnoyers, September 2005 + + + +*********************************************************** +** Section 1 * Installation from Debian or RPM packages ** +*********************************************************** + +* Install from RPM packages on Fedora Core 4 : + +Get LTTV RPM from : + +http://ltt.polymtl.ca/packages/fedora/RPMS + +LTTV RPM are ready. + +LTTng kernel and lttng-modules RPM are available for some architectures (i586, +i686). Feel free to help fix the spec files to have correct lttng-modules RPM +package. + + +* Install from Deb packages on Debian : + +You can use the ltt.polymtl.ca apt source to get LTTV for Debian : + +Add the following two sources to your /etc/apt/sources.list : + +deb http://ltt.polymtl.ca/packages/debian experimental main +deb-src http://ltt.polymtl.ca/packages/debian experimental main + + +* Install from precompiled binary packages (LTTV compiled only for i386, and + LTTng only for i686 smp), perform the following : + +su - +apt-get update +apt-get install lttv lttv-doc +apt-get install kernel-image-2.6.12-rc4-mm2-lttng-0.4.2 +apt-get install lttng-modules-modules-2.6.12-rc4-mm2-lttng-0.4.2 + * note : the packages are signed by myself. I am not considered a trusted + Debian source yet, so warnings are normal. + +Then, follow the section "Editing the system wide configuration" in section 2. + +* Create custom LTTV Debian packages + +Binary packages are only available for i386. If you want to create your own LTTV +packages for other platforms, do : + +su - +cd /usr/src +apt-get source lttv +cd lttv-0.6.9 +dpkg-buildpackage -rfakeroot + +You should then have your LTTV .deb files created for your architecture. + +* Create custom LTTng packages + +For building LTTng Debian packages : + +su - +apt-get install kernel-source-2.6.12-rc4-mm2-lttng-0.4.2 +cd /usr/src +bzip2 -cd kernel-source-2.6.12-rc4-mm2-lttng-0.4.2.tar.bz2 | tar xvof - +cd kernel-source-2.6.12-rc4-mm2-lttng-0.4.2 +make menuconfig (or xconfig or config) (customize your configuration) +make-kpkg kernel_image + +You will then see your freshly created .deb in /usr/src. Install it with +dpkg -i /usr/src/(image-name).deb + +You will also need to create a package for the lttng-modules : + +su - +cd /usr/src +apt-get source lttng-modules +cd kernel-source-2.6.12-rc4-mm2-lttng-0.4.2 +make-kpkg --added_modules /usr/src/lttng-modules-0.3 modules_image + +You will then see your freshly created .deb in /usr/src. Install it with +dpkg -i /usr/src/lttng-modules-modules-(your version).deb + + +Then, follow the section "Editing the system wide configuration" in section 2. + + +*********************************************************** +** Section 2 * Installation from sources ** +*********************************************************** + +* Prerequisites + +Tools needed to follow the package download steps : + +o wget +o bzip2 +o gzip +o tar + +You have to install the standard development librairies and programs necessary +to compile a kernel : + +(from Documentation/Changes in the Linux kernel tree) +o Gnu C 2.95.3 # gcc --version +o Gnu make 3.79.1 # make --version +o binutils 2.12 # ld -v +o util-linux 2.10o # fdformat --version +o module-init-tools 0.9.10 # depmod -V + +You might also want to have libncurses5 to have the text mode kernel +configuration menu, but there are alternatives. + +Prerequisites for LTTV 0.6.x installation are : + +gcc 3.2 or better +gtk 2.4 or better development libraries + (Debian : libgtk2.0, libgtk2.0-dev) + (Fedora : gtk2, gtk2-devel) + note : For Fedora users : this might require at least core 3 from Fedora, + or you might have to compile your own GTK2 library. +glib 2.4 or better development libraries + (Debian : libglib2.0-0, libglib2.0-dev) + (Fedora : glib2, glib2-devel) +libpopt development libraries + (Debian : libpopt0, libpopt-dev) + (Fedora : popt) +libpango development libraries + (Debian : libpango1.0, libpango1.0-dev) + (Fedora : pango, pango-devel) +libc6 development librairies + (Debian : libc6, libc6-dev) + (Fedora : glibc, glibc) + + +* Getting the LTTng packages + +su - +mkdir /usr/src/lttng +cd /usr/src/lttng +(see http://ltt.polymtl.ca/lttng for package listing) +wget http://ltt.polymtl.ca/lttng/lttng-modules-0.3.tar.bz2 +wget http://ltt.polymtl.ca/lttng/patch-2.6.12-rc4-mm2-lttng-0.4.2.tar.bz2 +bzip2 -cd lttng-modules-0.3.tar.bz2 | tar xvof - +bzip2 -cd patch-2.6.12-rc4-mm2-lttng-0.4.2.tar.bz2 | tar xvof - + + +* Getting LTTng kernel sources + +su - +cd /usr/src +wget http://kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.12-rc4.tar.bz2 +wget http://kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc4/2.6.12-rc4-mm2/2.6.12-rc4-mm2.bz2 +bzip2 -cd linux-2.6.12-rc4.tar.bz2 | tar xvof - +cd linux-2.6.12-rc4 +bzip2 -cd ../2.6.12-rc4-mm2.bz2 | patch -p1 +cat /usr/src/lttng/patch-2.6.12-rc4-mm2-lttng-0.4.2-* | patch -p1 +cd .. +mv linux-2.6.12-rc4 linux-2.6.12-rc4-mm2-lttng-0.4.2 + + +* Installing a LTTng kernel + +su - +cd /usr/src/linux-2.6.12-rc4-mm2-lttng-0.4.2 +make menuconfig (or make xconfig or make config) + Select the < Help > button if you are not familiar with kernel + configuration. + Items preceded by [*] means they has to be built into the kernel. + Items preceded by [M] means they has to be built as modules. + Items preceded by [ ] means they should be removed. + go to the "General setup" section + Select the following options : + [*] Linux Trace Toolkit Instrumentation Support + [M] or [*] Linux Trace Toolkit Tracer + It makes no difference for the rest of the procedure whether the Tracer + is compiled built-in or as a module. + do NOT activate (not ready yet) : + [ ] Align Linux Trace Toolkit Traces + [ ] Activate Linux Trace Toolkit Heartbeat Timer + IMPORTANT : This is enabled by default : you must disable it! + Select + Select + Select +make +make modules_install +make install + +reboot + + Select the Linux 2.6.12-rc4-mm2-lttng-0.4.2 kernel in your boot loader. + + +* Install the ltt-modules + +su - +cd /usr/src/lttng/lttng-modules-0.3 +KERNELDIR=/usr/src/linux-2.6.12-rc4-mm2-lttng-0.4.2 make +KERNELDIR=/usr/src/linux-2.6.12-rc4-mm2-lttng-0.4.2 make modules_install + + +* Editing the system wide configuration + +You must activate relayfs and specify a mount point. This is typically done in +fstab such that it happens at boot time. + +If you have never used RelayFS before, these operation would do this for you : + +mkdir /mnt/relayfs +cp /etc/fstab /etc/fstab.lttng.bkp +echo "relayfs /mnt/relayfs relayfs rw 0 0" >> /etc/fstab + +then, rebooting or issuing the following command will activate relayfs : + +mount /mnt/relayfs + +You need to load the ltt-control module to be able to control tracing from user +space. This is done by issuing the command : + +modprobe ltt-control + +You can automate at boot time loading the ltt-control module by : + +echo ltt-control >> /etc/modules + + +* Getting and installing the LTTV package + +su - +cd /usr/src +wget http://ltt.polymtl.ca/packages/LinuxTraceToolkitViewer-0.6.9-10102005.tar.gz +gzip -cd LinuxTraceToolkitViewer-0.6.9-10102005.tar.gz | tar xvof - +cd LinuxTraceToolkitViewer-0.6.9-10102005 +(refer to README to see the development libraries that must be installed on you +system) +./configure +make +make install + + + + +*********************************************************** +** Section 3 * Using LTTng and LTTV ** +*********************************************************** + +* Use graphical LTTV to control tracing and analyse traces + +lttv-gui (or /usr/local/bin/lttv-gui) + - Spot the "Tracing Control" icon : click on it + (it's a traffic light icon) + - enter the root password + - click "start" + - click "stop" + - Yes + * You should now see a trace + +* Use text mode LTTng to control tracing + +The tracing can be controlled from a terminal by using the lttctl command (as +root). + +Start tracing : + +lttctl -n trace -d -l /mnt/relayfs/ltt -t /tmp/trace + +Stop tracing and destroy trace channels : + +lttctl -n trace -R + +see lttctl --help for details. + + +* Use text mode LTTV + +Fell free to look in /usr/local/lib/lttv/plugins to see all the text and +graphical plugins available. + +For example, a simple trace dump in text format is available with : + +lttv -m textDump -t /tmp/trace + +see lttv -m textDump --help for detailed command line options of textDump. + + + + +*********************************************************** +** Section 4 * Adding new instrumentations with genevent ** +*********************************************************** + +* Getting and installing genevent + +su - +cd /usr/src +wget http://ltt.polymtl.ca/packages/genevent-0.2.tar.gz +gzip -cd genevent-0.2.tar.gz | tar xvof - +cd genevent-0.2 +make +make install + + +* Add new events to the kernel with genevent + +su - +cd /usr/local/share/LinuxTraceToolkitViewer/facilities +cp process.xml yourfacility.xml + * edit yourfacility.xml to fit your needs. +cd /tmp +/usr/local/bin/genevent /usr/local/share/LinuxTraceToolkitViewer/yourfacility.xml +cp ltt-facility-yourfacility.h ltt-facility-id-yourfacility.h \ + /usr/src/linux-2.6.12-rc4-mm2-lttng-0.4.2/include/linux/ltt +cp ltt-facility-loader-yourfacility.c ltt-facility-loader-yourfacility.h \ + /usr/src/linux-2.6.12-rc4-mm2-lttng-0.4.2/ltt + * edit the kernel file you want to instrument + - Add #include at the beginning + of the file. + - Add a call to the tracing functions. See their names and parameters in + /usr/src/linux-2.6.12-rc4-mm2-lttng-0.4.2/include/linux/ltt/ltt-facility-yourfacility.h + + + diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/README b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/README new file mode 100644 index 00000000..836472ad --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/README @@ -0,0 +1,77 @@ + +This package contains the trace reading library and trace viewing tools for +the new Linux Trace Toolkit trace format. It also contains the lttd, lttctl and +liblttctl programs which are necessary to obtain a trace. + +* Compiling + +gcc 3.2 or better +gtk 2.4 or better development libraries + (Debian : libgtk2.0, libgtk2.0-dev) + (Fedora : gtk2, gtk2-devel) + note : For Fedora users : this might require at least core 3 from Fedora, + or you might have to compile your own GTK2 library. +glib 2.4 or better development libraries + (Debian : libglib2.0-0, libglib2.0-dev) + (Fedora : glib2, glib2-devel) +libpopt development libraries + (Debian : libpopt0, libpopt-dev) + (Fedora : popt) +libpango development libraries + (Debian : libpango1.0, libpango1.0-dev) + (Fedora : pango, pango-devel) +libc6 development librairies + (Debian : libc6, libc6-dev) + (Fedora : glibc, glibc) + + +To compile the source tree from a tarball, simply follow these steps : + +- ./configure +- make +- make install + +After running ./configure, you can also go in specific subdirectories and +use make, make install. + + +* Quick Start + +See QUICKSTART + +* Source Tree Structure + +Here is the tree structure of the Linux Trace Toolkit Viewer package. + +ltt: new trace format reading library. +README: This file. +debian: debian config files (currently empty). +doc: Documentation. +doc/user: User related documentation. +doc/developer: Developer related documentation. +liblttctl: Library to communicate with the kernel tracer control module. +lttctl: Command line program to use the liblttctl library. +lttd: Linux Trace Toolkit daemon. +lttv: Linux Trace Toolkit trace analysis tool and viewer. +lttv/modules: Linux Trace Toolkit analysis tool and viewer plugin modules. +specs: RPM config files (currently empty). + + +* For Developers + +This source tree is based on the autotools suite from GNU to simplify +portability. Here are some things you should have on your system in order to +compile the subversion repository tree : + + +GNU autotools (automake-1,7, autoconf2.50, autoheader2.50) +(make sure your system wide "automake" points to version 1.7!) +GNU Libtool +(for more information, go to http://www.gnu.org/software/autoconf/) + +If you get the tree from the repository, you will need to use the autogen.sh +script. It calls all the GNU tools needed to prepare the tree configuration. + + + +Mathieu Desnoyers diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/autogen.sh b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/autogen.sh new file mode 100755 index 00000000..1b5ca028 --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/autogen.sh @@ -0,0 +1,177 @@ +#!/bin/sh +# Run this to generate all the initial makefiles, etc. + +srcdir=`dirname $0` +test -z "$srcdir" && srcdir=. + +DIE=0 + +if [ -n "$GNOME2_DIR" ]; then + ACLOCAL_FLAGS="-I $GNOME2_DIR/share/aclocal $ACLOCAL_FLAGS" + LD_LIBRARY_PATH="$GNOME2_DIR/lib:$LD_LIBRARY_PATH" + PATH="$GNOME2_DIR/bin:$PATH" + export PATH + export LD_LIBRARY_PATH +fi + +(test -f $srcdir/configure.in) || { + echo -n "**Error**: Directory "\`$srcdir\'" does not look like the" + echo " top-level package directory" + exit 1 +} + +(autoconf --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have \`autoconf' installed." + echo "Download the appropriate package for your distribution," + echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" + DIE=1 +} + +(grep "^AC_PROG_INTLTOOL" $srcdir/configure.in >/dev/null) && { + (intltoolize --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have \`intltool' installed." + echo "You can get it from:" + echo " ftp://ftp.gnome.org/pub/GNOME/" + DIE=1 + } +} + +(grep "^AM_PROG_XML_I18N_TOOLS" $srcdir/configure.in >/dev/null) && { + (xml-i18n-toolize --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have \`xml-i18n-toolize' installed." + echo "You can get it from:" + echo " ftp://ftp.gnome.org/pub/GNOME/" + DIE=1 + } +} + +(grep "^AM_PROG_LIBTOOL" $srcdir/configure.in >/dev/null) && { + (libtool --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have \`libtool' installed." + echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/" + DIE=1 + } +} + +(grep "^AM_GLIB_GNU_GETTEXT" $srcdir/configure.in >/dev/null) && { + (grep "sed.*POTFILES" $srcdir/configure.in) > /dev/null || \ + (glib-gettextize --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have \`glib' installed." + echo "You can get it from: ftp://ftp.gtk.org/pub/gtk" + DIE=1 + } +} + +(automake-1.7 --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have \`automake' installed." + echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/" + DIE=1 + NO_AUTOMAKE=yes +} + + +# if no automake, don't bother testing for aclocal +test -n "$NO_AUTOMAKE" || (aclocal-1.7 --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: Missing \`aclocal'. The version of \`automake'" + echo "installed doesn't appear recent enough." + echo "You can get automake from ftp://ftp.gnu.org/pub/gnu/" + DIE=1 +} + +if test "$DIE" -eq 1; then + exit 1 +fi + +if test -z "$*"; then + echo "**Warning**: I am going to run \`configure' with no arguments." + echo "If you wish to pass any to it, please specify them on the" + echo \`$0\'" command line." + echo +fi + +case $CC in +xlc ) + am_opt=--include-deps;; +esac + +for coin in `find $srcdir -path $srcdir/CVS -prune -o -name configure.in -print` +do + dr=`dirname $coin` + if test -f $dr/NO-AUTO-GEN; then + echo skipping $dr -- flagged as no auto-gen + else + echo processing $dr + ( cd $dr + + aclocalinclude="$ACLOCAL_FLAGS" + + if grep "^AM_GLIB_GNU_GETTEXT" configure.in >/dev/null; then + echo "Creating $dr/aclocal.m4 ..." + test -r $dr/aclocal.m4 || touch $dr/aclocal.m4 + echo "Running glib-gettextize... Ignore non-fatal messages." + echo "no" | glib-gettextize --force --copy + echo "Making $dr/aclocal.m4 writable ..." + test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4 + fi + if grep "^AC_PROG_INTLTOOL" configure.in >/dev/null; then + echo "Running intltoolize..." + intltoolize --copy --force --automake + fi + if grep "^AM_PROG_XML_I18N_TOOLS" configure.in >/dev/null; then + echo "Running xml-i18n-toolize..." + xml-i18n-toolize --copy --force --automake + fi + if grep "^AM_PROG_LIBTOOL" configure.in >/dev/null; then + if test -z "$NO_LIBTOOLIZE" ; then + echo "Running libtoolize..." + libtoolize --force --copy + fi + fi + echo "Running aclocal-1.7 $aclocalinclude ..." + aclocal-1.7 $aclocalinclude + if grep "^AM_CONFIG_HEADER" configure.in >/dev/null; then + echo "Running autoheader..." + autoheader + fi + echo "Running automake-1.7 --gnu $am_opt ..." + automake-1.7 --add-missing --gnu $am_opt + echo "Running autoconf ..." + autoconf + ) + fi +done + +conf_flags="--enable-maintainer-mode" + + +#if [ -a "$srcdir/include" ]; then +# echo -n Removing old system include behavior emulation... +# rm -rf $srcdir/include +# echo done. +#fi +#echo -n Creating the system include behavior emulation... +#mkdir $srcdir/include +#mkdir $srcdir/include/ltt +#ln -sf ../../LibLTT/ltt.h $srcdir/include/ltt/ltt.h +#mkdir $srcdir/include/lttv +#ln -sf ../../lttv/module.h $srcdir/include/lttv/module.h +#ln -sf ../../lttv/hook.h $srcdir/include/lttv/hook.h +#ln -sf ../../lttv/traceWindow.h $srcdir/include/lttv/traceWindow.h +#echo done. + + + +if test x$NOCONFIGURE = x; then + echo Running $srcdir/configure $conf_flags "$@" ... + $srcdir/configure $conf_flags "$@" \ + && echo Now type \`make\' to compile. || exit 1 +else + echo Skipping configure process. +fi diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/configure.in b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/configure.in new file mode 100644 index 00000000..a77108eb --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/configure.in @@ -0,0 +1,139 @@ +# This file is part of the Linux Trace Toolkit viewer +# Copyright (C) 2003-2004 Mathieu Desnoyers +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License Version 2 as +# published by the Free Software Foundation; +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, +# MA 02111-1307, USA. + + + +# -*- Autoconf -*- +# Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.57) +AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS) +#AC_WITH_LTDL # not needed ? +AM_INIT_AUTOMAKE(LinuxTraceToolkitViewer,0.6.9-10102005) +AM_CONFIG_HEADER(config.h) +AM_PROG_LIBTOOL + +AM_PATH_GLIB_2_0(2.4.0, ,AC_MSG_ERROR([glib is required in order to compile LinuxTraceToolkit - download it from ftp://ftp.gtk.org/pub/gtk]) , gmodule) + +AM_PATH_GTK_2_0(2.4.0, ,AC_MSG_ERROR([gtk is required in order to compile GUI - download it from ftp://ftp.gtk.org/pub/gtk]) , gmodule) + +AC_PATH_PROGS(BASH, bash) + +AC_SYS_LARGEFILE + +# Checks for programs. +AC_PROG_CC + +# Checks for libraries. +AC_CHECK_LIB([popt], [poptGetNextOpt], POPT_LIBS="-lpopt",AC_MSG_ERROR([libpopt is required in order to compile LinuxTraceToolkit]) ) +#AC_CHECK_LIB([m], [round], M_LIBS="-lm",AC_MSG_ERROR([Mathematical libraries are missing.]) ) + +AC_CHECK_LIB([util], [forkpty], UTIL_LIBS="-lutil", AC_MSG_ERROR([libutil is +required in order to compile LinuxTraceToolkit])) + +# Checks for header files. +AC_HEADER_STDC +AC_CHECK_HEADERS([fcntl.h stdlib.h string.h sys/time.h unistd.h]) + +AC_ISC_POSIX +AC_PROG_CC +AM_PROG_CC_STDC +AC_HEADER_STDC + +pkg_modules="gtk+-2.0 >= 2.0.0" +PKG_CHECK_MODULES(PACKAGE, [$pkg_modules]) +PACKAGE_CFLAGS="-Wall -Wformat" +AC_SUBST(PACKAGE_CFLAGS) +AC_SUBST(PACKAGE_LIBS) + +# Checks for typedefs, structures, and compiler characteristics. +AC_HEADER_STDBOOL +AC_C_CONST +AC_C_INLINE +AC_TYPE_OFF_T +AC_TYPE_SIZE_T +AC_HEADER_TIME + +# Checks for library functions. +AC_FUNC_ERROR_AT_LINE +AC_FUNC_MALLOC +AC_FUNC_SELECT_ARGTYPES +AC_CHECK_FUNCS([select]) + +#CPPFLAGS="$CPPFLAGS -I" + +AM_CONDITIONAL(LTTVSTATIC, test "$enable_lttvstatic" = yes) +lttvlibdir="${libdir}/lttv" +lttvplugindir="${lttvlibdir}/plugins" +#lttlibdir="${libdir}/ltt" +top_lttvdir="\$(top_srcdir)/lttv" +top_lttvwindowdir="\$(top_srcdir)/lttv/modules/gui/lttvwindow" + +DEFAULT_INCLUDES="-I\$(top_srcdir) -I\$(top_lttvdir) -I\$(top_lttvwindowdir)" + +#CPPFLAGS="${GLIB_CFLAGS}" +#AC_SUBST(CPPFLAGS) + +lttincludedir="${includedir}/ltt" +lttvincludedir="${includedir}/lttv" +lttvwindowincludedir="${includedir}/lttvwindow" +lttctlincludedir="${includedir}/liblttctl" + +AC_SUBST(POPT_LIBS) +AC_SUBST(UTIL_LIBS) +AC_SUBST(lttvlibdir) +AC_SUBST(lttvplugindir) +#AC_SUBST(lttlibdir) +AC_SUBST(top_lttvdir) +AC_SUBST(top_lttvwindowdir) +AC_SUBST(DEFAULT_INCLUDES) +AC_SUBST(lttincludedir) +AC_SUBST(lttvincludedir) +AC_SUBST(lttvwindowincludedir) +AC_SUBST(lttctlincludedir) + +AC_CONFIG_FILES([Makefile + liblttctl/Makefile + lttctl/Makefile + lttv/Makefile + lttv/lttv/Makefile + lttv/modules/Makefile + lttv/modules/text/Makefile + lttv/modules/gui/Makefile + lttv/modules/gui/lttvwindow/Makefile + lttv/modules/gui/interrupts/Makefile + lttv/modules/gui/diskperformance/Makefile + lttv/modules/gui/lttvwindow/lttvwindow/Makefile + lttv/modules/gui/lttvwindow/pixmaps/Makefile + lttv/modules/gui/controlflow/Makefile + lttv/modules/gui/detailedevents/Makefile + lttv/modules/gui/statistics/Makefile + lttv/modules/gui/filter/Makefile + lttv/modules/gui/tracecontrol/Makefile + lttd/Makefile + ltt/Makefile + doc/Makefile + doc/developer/Makefile + doc/developer/developer_guide/Makefile + doc/developer/developer_guide/docbook/Makefile + doc/developer/developer_guide/html/Makefile + doc/user/Makefile + doc/user/user_guide/Makefile + doc/user/user_guide/docbook/Makefile + doc/user/user_guide/html/Makefile + facilities/Makefile]) +AC_OUTPUT diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/Makefile.am b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/Makefile.am new file mode 100644 index 00000000..528d881c --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = developer user diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/Makefile.am b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/Makefile.am new file mode 100644 index 00000000..4306cca2 --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/Makefile.am @@ -0,0 +1,3 @@ +SUBDIRS = developer_guide + +EXTRA_DIST = coding.html discuss.html format.html guiControlFlow.html gui_layout.txt hook_prio.txt index.html library-header.txt ltt-to-do.html lttv.html lttvwindow_events_delivery.txt process_traceset_strict_boundaries.txt program-header.txt requests_servicing_schedulers.txt status.html todo.html diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/coding.html b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/coding.html new file mode 100644 index 00000000..4822f45e --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/coding.html @@ -0,0 +1,32 @@ + + + + Coding practices + + + +

Coding practices

+ +

+The Linux Trace Toolkit viewer and libltt libraries use the coding standards +of the underlying glib and gtk libraries. +This includes: + +

    +
  • lower case file names without underscore but with an occasional dash, +
  • lower case function names with underscores separating words, +
  • type names starting with a capital letter and with capital letters +separating words. +
+ +

+Each file in the libltt library should contain a +LGPL header while each file in the LTT viewer +should contain a +GPL header. + + + + + + diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/Makefile.am b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/Makefile.am new file mode 100644 index 00000000..7df24ebb --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/Makefile.am @@ -0,0 +1,3 @@ +SUBDIRS = docbook html + +EXTRA_DIST = developer_guide.dvi diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/developer_guide.dvi b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/developer_guide.dvi new file mode 100644 index 00000000..b4379ec8 Binary files /dev/null and b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/developer_guide.dvi differ diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/docbook/Makefile.am b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/docbook/Makefile.am new file mode 100644 index 00000000..e0c05ea8 --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/docbook/Makefile.am @@ -0,0 +1 @@ +EXTRA_DIST = developer_guide.docbook lttv-context.eps lttv-context.png diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/docbook/developer_guide.docbook b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/docbook/developer_guide.docbook new file mode 100644 index 00000000..f4105324 --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/docbook/developer_guide.docbook @@ -0,0 +1,668 @@ + + + + + + + +Linux Trace Toolkit Viewer Developer Guide + + +Mathieu +Desnoyers + + + +01/12/2004 +1.00.00 + + + +This document describes the basic steps necessary to develop within the +Linux Trace Toolkit Viewer project. + + + + + +Linux Trace Toolkit Viewer +text +module +context + + + + +Linux Trace Toolkit Viewer Text Module Tutorial + + +Introduction + +This chapter explains all the steps that are necessary to create a text module +in LTTV. + + + + +A typical module + +A typical module must have a init() and destroy() function. Please refer to +lttv/modules/text/textDump.c for the detail of these functions. + + +The init() function is called when the library is loaded and destroy() +inversely. It adds options to the command line by calling "lttv_option_add" from +option.h + + +The module communicates with the main lttv program through the use of global +attributes. Use lttv/attribute.h, lttv/iattribute.h and lttv/lttv.h, and then +LTTV_IATTRIBUTE(lttv_global_attributes()) to get the pointer to these +global attributes. + + +You can then add your hooks (functions that follows the prototype of a hook, as +defined in lttv/hook.h) in the different hook lists defined in lttv/lttv.h. Note +that hooks have an assigned priority. This is necessary to inform the trace +reader that a specific hook needs to be called, for example, before or after the +state update done for an event by the state module. For that specific example, a +hook could use the LTTV_PRIO_STATE-5 to get called before the state update and a +second hook could use the LTTV_PRIO_STATE+5 to get called after the state +update. This is especially important for graphical module, which is the subject +of a the chapter named "Linux Trace Toolkit Viewer Graphical Module Tutorial". + + +You should also take a look at lttv/state.c, where by_id hooks are used. When +you only need some specific events, you should use this interface. It makes the +event filtering sooner in the dispatch chain : you hook doesn't have to be +called for each event, only the ones selected. That improves the performances a +lot! + + +Note that you should use the lttv_trace_find_hook method from +lttv/tracecontext.h to connect the hook to the right facility/event type. See +state.c for an example. A problem that may arise is that the LttvTraceHook +structure must be passed as hook_data when registering the hook. In fact, it is +not necessary for it to be directly passed as the hook_data parameter. As long +as the hook function can access the LttvTraceHook fields necessary to parse the +LttEvent, there is no problem. In a complex viewer where you need a pointer to +your own data structure, just keep a pointer to the LttvTraceHook structure +inside your own data structure, and give to pointer to your data structure in +parameter as the hook_data. + + +Then, you should use the macro LTTV_MODULE, defined in lttv/module.h. It allows +you to specify the module name, a short and a long description, the init and +destroy functions and the module dependencies. That permits to the module +backend to load the right dependencies when needed. + + +A typical text module will depend on batchAnalysis for the batch computation of a +trace, and simply register before and after trace hooks, as weel as the most +important one : a event hook. + + + + +The hooks + +The before and after trace hooks only exists to be able to generate a report at +the end of a trace computation. The effective computation is done by the event +hooks. + + +These hooks does particular computation on data arriving as argument, a +call_data. The type of the call_data, when a hook is called during the trace +read, is a traceset context. It contains all the necessary information about the +read in progress. This is the base class from which inherits trace set +state, and trace set/trace/tracefile state is the base classe of trace +set/trace/tracefile statistics. All these types can be casted to another without +problem (a TracesetState, for example, can be casted to a TracesetContext, but +it's not true for the casting between a TraceContext and a TracesetContext, see +the chapter "How to use the trace reading context" for details). They offer the +input data and they give a container (the attributes of the trace set/trace/tracefile +statistics) to write the output of this hook. + + +The idea behind writing in the attributes container is to provide an extensible +way of storing any type of information. For example, a specific module that adds +statistics to a trace can store them there, and the statistic printout will +automatically include the results produced by the specific module. + + +Output data does not necessarily need to be stored in such a global container +though. If we think of data of which we need to keed track during the execution, +an event counter for example, we should create our own data structure that +contains this counter, and pass the address of the allocated structure as the +hook_data parameter of the hook list creation function. That way, the hook will +be called with its hook_data as first parameter, which it can read and write. We +can think of this structure as the data related to the function that persists +between each call to the hook. You must make sure that you cast the hook_data to +the type of the structure before you use it in the hook function. + + +The detail about how to access the different fields of the reading context (the +hook's call_data) will be discussed in the chapter "How to use the trace +reading context". + + + + + + + + +How to use the Linux Trace Toolkit Viewer's Reading Context + + +Introduction + +This chapter describes how to use the Linux Trace Toolkit reading context, a +data structure that is given as call data parameter of the modules'callbacks. + + +Linux Trace Toolkit Viewer provides a backend that reads the traces. In combines +them in tracesets. A trace is an abstaction over many tracefiles, one per CPU. +LTTV reads the whole trace together, providing the events to modules by calling +their pre-registered hook lists in a chronological order. + + + + +Why an event driven trace reader ? + +The complexity of synchronizing the tracesets is then hidden to the viewer. Some +future plans involve to be able to put many traces together in a trace set. +Before this becomes possible, the time of each trace must be synchronized in +some way. Some work is actually done to create a module that uses the network +traffic shared by different computers to synchronize the time of different +traces. + + +In order to make each module integrate well with each other, we made the trace +reader a simple hook caller. For each event it reads, it just calls the hook +lists for this event. For each event, it calls the by_id specific hooks +registered for this event and also the "main" hooks, registered for all events. +Note that the two hook lists are merged when called so the priority of the +hooks of each list is respected. For example, a hook of higher priority (20) in +the main list will be called before a hook of lower priority (40) from the +by_id specific list. + + + + +Using the reading context + +If you have read the tutorials about writing a text and a graphic module, you +should be fairly ready to use the information provided to your hook by the +reading API. + + +The data structures of the reading context are based on the gobject, a +object-oriented library from the glib. Some evolved types that are found in the +context also comes from the "glib" (GArray, GHashTable and so on). For detailed +information about "gobjects" and the "glib", see the www.gtk.org website. They provide a complete +API reference about the data types they provide. + + +The reading context is object oriented. It is described by the lttv/tracecontext.h +header. Is can be illustrated with this UML class diagram : + + + + + + + + + + + +Linux Trace Toolkit Viewer Reading Context Class Diagram + + + + +Though, for performance's sake, navigating through it is not as encapsulated as +it could. Consider the class attributes to be all public (no get/set functions). +Sometimes, iteration upon a specific element can be uneasy. For example, you may +have to get the number of tracefiles in a trace from the "vt" field of the trace +context to be able to iterate over all the tracefiles contained by the trace. + + +To facilitate the common operations on the reading context, LTTV now provides a +header that consists of simple macros : lttv/contextmacros.h. It gives an object +look-and-feel to the context classes. Simple "GET" macros can be used to easily +access the different fields are iterate over the elements (and get the total +number of elements too). + + + + + +Linux Trace Toolkit Viewer Graphical Module Tutorial + +Introduction + +As a matter of fact, most of the things said for the text modules still hold for +the graphical modules. However, the fact that every module must instanciate +objects (called viewers) more than once changes a little bit the scenario. It is +then impossible to use static structures : everything must be instanciated at +run-time, except the structures related to the module itself. + + + +The static part of a module + +A module must have a static part to be able to get loaded just like a text +module. Now, let's see the differences. The graphical module depends on the +"lttvwindow" module. See module.c from the control flow viewer for an example. + + +The init() and destroy() functions must register functions that can be called by +user interaction to instanciate the viewers. That's the goal of +lttvwindow_register_constructor() and lttvwindow_unregister_constructor() : +they register a function with a menu entry and an icon. The main window will +shown them in its interface and call the function when the button or menu item +is selected. This hook function must receive a pointer to a "Tab" object in +parameter. + + +Also note the presence of the destroy_walk() method. It is called when the +module is unloaded : it must destroy all the instances of the viewers from the +module. + + + +The dynamic part of a module : the viewer + +The dynamic part starts with the constructor of the viewer. It is called by the +main window when the corresponding button or menu item is selected. See +h_guicontrolflow() from control flow viewer eventhooks.c for an example. It does +basic connexion to the tab's events available : time window change notification, +current time notification, redraw notification, continue notification. All these +function should be implemented in your viewer if you want the data you shown to +be synchronised with the main window and the other viewers. It also calls the +background computation, which will be discussed in the next section. + + +This is also at this point that the viewer does create it's own memory footprint +: its inner structure. This structure will have to be passed as hook_data to +each function registered by the viewer : this is what makes the functions +"belong" to this instance of the viewer. + + + +How to request background computation + +You will also notice the presence of a request_background_data() called in the +constructor. This function, in eventhooks.c, does verify for the presence of the +state information that could be precomputed by the main window background +computation. If it has not been precomputed, we ask for a computation and show +partial data. We also register a hook that will be called (notified) by the main +window when the requested data will become ready, so the viewer can update +itself with the new data. If no partial information would have made sense in a +particular viewer, one could choose to shown a "waiting for computation" message +while waiting for the notification. See lttvwindow/lttvwindowtraces.h for the API +of the background requests. + + + + +How to handle events and use the graphical trace reading service + +The events that are delivered by the main window are defined in +lttvwindow/lttvwindow.h. Let's describe them and their use in details. Remember +that you can refer to the control flow viewer module as an example. + + + +Module Related API + +A viewer plugin is, before anything, a plugin. As a dynamically loadable +module, it thus has an init and a destroy function called whenever it is +loaded/initialized and unloaded/destroyed. A graphical module depends on +lttvwindow for construction of its viewer instances. In order to achieve +this, it must register its constructor function to the main window along +with button description or text menu entry description. A module keeps +a list of every viewer that currently sits in memory so it can destroy +them before the module gets unloaded/destroyed. + + +The contructor registration to the main windows adds button and menu +entry to each main window, thus allowing instanciation of viewers. + + + +Main Window + +The main window is a container that offers menus, buttons and a +notebook. Some of those menus and buttons are part of the core of the +main window, others are dynamically added and removed when modules are +loaded/unloaded. + + +The notebook contains as much tabs as wanted. Each tab is linked with +a set of traces (traceset). Each trace contains many tracefiles (one +per cpu). A trace corresponds to a kernel being traced. A traceset +corresponds to many traces read together. The time span of a traceset +goes from the earliest start of all the traces to the latest end of all +the traces. + + +Inside each tab are added the viewers. When they interact with the main +window through the lttvwindow API, they affect the other viewers located +in the same tab as they are. + + +The insertion of many viewers in a tab permits a quick look at all the +information wanted in a glance. The main window does merge the read +requests from all the viewers in the same tab in a way that every viewer +will get exactly the events it asked for, while the event reading loop +and state update are shared. It improves performance of events delivery +to the viewers. + + + + +Viewer Instance Related API + +The lifetime of a viewer is as follows. The viewer constructor function +is called each time an instance view is created (one subwindow of this +viewer type is created by the user either by clicking on the menu item +or the button corresponding to the viewer). Thereafter, the viewer gets +hooks called for different purposes by the window containing it. These +hooks are detailed below. It also has to deal with GTK Events. Finally, +it can be destructed by having its top level widget unreferenced by the +main window or by any GTK Event causing a "destroy-event" signal on the +its top widget. Another possible way for it do be destroyed is if the +module gets unloaded. The module unload function will have to emit a +"destroy" signal on each top level widget of all instances of its viewers. + + + +Notices from Main Window + + +time_window + +This is the time interval visible on the viewer's tab. Every + viewer that cares about being synchronised by respect to the + time with other viewers should register to this notification. + They should redraw all or part of their display when this + occurs. + + + +traceset + +This notification is called whenever a trace is added/removed + from the traceset. As it affects all the data displayed by the + viewer, it sould redraw itself totally. + + + + +filter + +This feature has not been implemented yet. + + + + +current_time + +Being able to zoom nearer a specific time or highlight a specific + time on every viewer in synchronicity implies that the viewer + has to shown a visual sign over the drawing or select an event + when it receives this notice. It should also inform the main + window with the appropriate report API function when a user + selects a specific time as being the current time. + + + + +dividor + +This notice links the positions of the horizontal dividors + between the graphic display zone of every viewer and their Y axis, + typically showing processes, cpus, ... + + + + + +Reporting Changes to the Main Window + +In most cases, the enclosing window knows about updates such as described +in the Notification section higher. There are a few cases, however, where +updates are caused by actions known by a view instance. For example, +clicking in a view may update the current time; all viewers within +the same window must be told about the new current time to change the +currently highlighted time point. A viewer reports such events by calling +lttvwindow_report_current_time on its lttvwindow. The lttvwindow will +consequently call current_time_notify for each of its contained viewers. + + +Available report methods are : + + + +lttvwindow_report_time_window : reports the new time window. + + + + +lttvwindow_report_current_time : reports the new current time. + + + + +lttvwindow_report_dividor : reports the new horizontal dividor's position. + + + + + + + +Requesting Events to Main Window + +Events can be requested by passing a EventsRequest structure to the main +window. They will be delivered later when the next g_idle functions +will be called. Event delivery is done by calling the event hook for +this event ID, or the main event hooks. A pointer to the EventsRequest +structure is passed as hook_data to the event hooks of the viewers. + + +EventsRequest consists in + + + +a pointer to the viewer specific data structure + + + + +a start timestamp or position + + + + +a stop_flag, ending the read process when set to TRUE + + + + +a end timestamp and/or position and/or number of events to read + + + + +hook lists to call for traceset/trace/tracefile begin and end, and for each + event (event hooks and event_by_id hooks). + + + + + +The main window will deliver events for every EventRequests it has +pending through an algorithm that guarantee that all events requested, +and only them, will be delivered to the viewer between the call of the +tracefile_begin hooks and the call of the tracefile_end hooks. + + +If a viewer wants to stop the event request at a certain point inside the +event hooks, it has to set the stop_flag to TRUE and return TRUE from the +hook function. Then return value will stop the process traceset. Then, +the main window will look for the stop_flag and remove the EventRequests +from its lists, calling the process_traceset_end for this request (it +removes hooks from the context and calls the after hooks). + + +It no stop_flag is risen, the end timestamp, end position or number +of events to read has to be reached to determine the end of the +request. Otherwise, the end of traceset does determine it. + + + +GTK Events + +Events and Signals + +GTK is quite different from the other graphical toolkits around +there. The main difference resides in that there are many X Windows +inside one GtkWindow, instead of just one. That means that X events are +delivered by the glib main loop directly to the widget corresponding to +the GdkWindow affected by the X event. + + +Event delivery to a widget emits a signal on that widget. Then, if a +handler is connected to this widget's signal, it will be executed. There +are default handlers for signals, connected at class instantiation +time. There is also the possibility to connect other handlers to these +signals, which is what should be done in most cases when a viewer needs +to interact with X in any way. + + + +Signal emission and propagation is described there : + + + + +http://www.gtk.org/tutorial/sec-signalemissionandpropagation.html + + + + + + +For further information on the GTK main loop (now a wrapper over glib main loop) +see : + + + + +http://developer.gnome.org/doc/API/2.0/gtk/gtk-General.html + + + + +http://developer.gnome.org/doc/API/2.0/glib/glib-The-Main-Event-Loop.html + + + + + + + +For documentation on event handling in GTK/GDK, see : + + + + +http://developer.gnome.org/doc/API/2.0/gdk/gdk-Events.html + + + + +http://developer.gnome.org/doc/API/2.0/gdk/gdk-Event-Structures.html + + + + + + + +Signals can be connected to handlers, emitted, propagated, blocked, +stopped. See : + + + + +http://developer.gnome.org/doc/API/2.0/gobject/gobject-Signals.html + + + + + + + + + +The "expose_event" + +Provides the exposed region in the GdkEventExpose structure. + + +There are two ways of dealing with exposures. The first one is to directly +draw on the screen and the second one is to draw in a pixmap buffer, +and then to update the screen when necessary. + + +In the first case, the expose event will be responsible for registering +hooks to process_traceset and require time intervals to the main +window. So, in this scenario, if a part of the screen is damaged, the +trace has to be read to redraw the screen. + + +In the second case, with a pixmap buffer, the expose handler is only +responsible of showing the pixmap buffer on the screen. If the pixmap +buffer has never been filled with a drawing, the expose handler may ask +for it to be filled. + + +The interest of using events request to the main window instead of reading +the events directly from the trace comes from the fact that the main +window does merge requests from the different viewers in the same tab so +that the read loop and the state update is shared. As viewers will, in +the common scenario, request the same events, only one pass through the +trace that will call the right hooks for the right intervals will be done. + + +When the traceset read is over for a events request, the traceset_end +hook is called. It has the responsibility of finishing the drawing if +some parts still need to be drawn and to show it on the screen (if the +viewer uses a pixmap buffer). + + +It can add dotted lines and such visual effects to enhance the user's +experience. + + + + + + + + + + diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/docbook/lttv-context.eps b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/docbook/lttv-context.eps new file mode 100644 index 00000000..fb522a42 --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/docbook/lttv-context.eps @@ -0,0 +1,4227 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner +%%Title: lttv-context.eps +%%CreationDate: Thu Dec 2 00:27:27 2004 +%%DocumentData: Clean7Bit +%%LanguageLevel: 2 +%%Pages: 1 +%%BoundingBox: 14 14 447 327 +%%EndComments +%%BeginProlog +% Use own dictionary to avoid conflicts +10 dict begin +%%EndProlog +%%Page: 1 1 +% Translate for offset +14.173228346456693 14.173228346456693 translate +% Translate to begin of first scanline +0 312.65546218487395 translate +432 -312.65546218487395 scale +% Image geometry +952 689 8 +% Transformation matrix +[ 952 0 0 689 0 0 ] +% Strings to hold RGB-samples per scanline +/rstr 952 string def +/gstr 952 string def +/bstr 952 string def +{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop} +{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop} +{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop} +true 3 +%%BeginData: 253599 ASCII Bytes +colorimage +JcC<$JcC<$JcC<$JcEjlJ,~> +JcC<$JcC<$JcC<$JcEjlJ,~> +JcC<$JcC<$JcC<$JcEjlJ,~> +JcC<$huBn\JcC<$JcC<$]`3K~> +JcC<$huBn\JcC<$JcC<$]`3K~> +JcC<$huBn\JcC<$JcC<$]`3K~> +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +pA][DpAfdEo`"mkZN'n(JcC<$JcC<$^Ai]~> +pA][DpAfdEo`"mkZN'n(JcC<$JcC<$^Ai]~> +pA][DpAfdEo`"mkZMst+J:N4NJcC<$JcEIaJ,~> +pAY*mJcGQG!!%TMo`)&oJcC<$JcC<$^Ai]~> +pAY*mJcGQG!!%TMo`)&oJcC<$JcC<$^Ai]~> +pAY*mJcGQG!!%TMo`),qs+#\#JcC<$JcEIaJ,~> +pAY*mJcGQG!!%TMo`"mkZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!!%TMo`"mkZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!!%TMo`"mkZMst+J:N4NJcC<$JcEIaJ,~> +pAY*mirB#Ym/Qk]\,ZI.JcGEC!!'>)rW%NLJcC<$JcEIaJ,~> +pAY*mirB#Ym/Qk]\,ZI.JcGEC!!'>)rW%NLJcC<$JcEIaJ,~> +pAY*mirB#Ym/Qk]\,QI/J:[anrr<&)rrN1NJ:[`Os+13$s1\M`~> +pAY*mirB#Yr;Zcsrr;uup&G$lf)PaMiW&oXJcGEC!!'>)rW%NLJcC<$JcEIaJ,~> +pAY*mirB#Yr;Zcsrr;uup&G$lf)PaMiW&oXJcGEC!!'>)rW%NLJcC<$JcEIaJ,~> +pAY*mirB#Yr;Zcsrr;uup&G$lf)PaMiVroYJ:[anrr<&)rrN1NJ:[`Os+13$s1\M`~> +pAY*mirB#YrVufr!<;ut!ri6#rr2rurVultrVult!ri9#r;cfrr;cltrW)osr;cisrW)uur;bjW +rr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mirB#YrVufr!<;ut!ri6#rr2rurVultrVult!ri9#r;cfrr;cltrW)osr;cisrW)uur;bjW +rr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mirB#YrVufr!<;ut!ri6#rr2rurVultrVult!ri9#r;cfrr;cltrW)osr;cisrW)uur;bjW +!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +pAY*mirB#Yr;Zcsrr;uus8W*!rr2rurVultrVuisr;Zcss8W*!rVult#6+Z's8N'!r;Zcs#6+Z' +s8N'!iW&oXJcGEC!!'>)rW%NLJcC<$JcEIaJ,~> +pAY*mirB#Yr;Zcsrr;uus8W*!rr2rurVultrVuisr;Zcss8W*!rVult#6+Z's8N'!r;Zcs#6+Z' +s8N'!iW&oXJcGEC!!'>)rW%NLJcC<$JcEIaJ,~> +pAY*mirB#Yr;Zcsrr;uus8W*!rr2rurVultrVuisr;Zcss8W*!rVult#6+Z's8N'!r;Zcs#6+Z' +s8N'!iVroYJ:[anrr<&)rrN1NJ:[`Os+13$s1\M`~> +pAY*mirB#Yr;Zcsrr;uurr;uu!WN/ts8N)ts8N)rs8N*!s8N)ts8N'%rr<'!s8E#ss8N''rr<'! +rr<&Xs8N(Ms7QBl!4)Y(!.k0$s+13$s1\M`~> +pAY*mirB#Yr;Zcsrr;uurr;uu!WN/ts8N)ts8N)rs8N*!s8N)ts8N'%rr<'!s8E#ss8N''rr<'! +rr<&Xs8N(Ms7QBl!4)Y(!.k0$s+13$s1\M`~> +pAY*mirB#Yr;Zcsrr;uurr;uu!WN/ts8N)ts8N)rs8N*!s8N)ts8N'%rr<'!s8E#ss8N''rr<'! +rr<&XrrE+MJcGEC!!'>)!W[b$JcC<$JcC<$^Ai]~> +pAY*mirB#Yr;Zcsrr;uurr;uu!WN/ts8N)ts8N)ts8;rts8N)ts82lrs8E#ts82lss8N)Xs8N(M +s7QBl!4)Y(!.k0$s+13$s1\M`~> +pAY*mirB#Yr;Zcsrr;uurr;uu!WN/ts8N)ts8N)ts8;rts8N)ts82lrs8E#ts82lss8N)Xs8N(M +s7QBl!4)Y(!.k0$s+13$s1\M`~> +pAY*mirB#Yr;Zcsrr;uurr;uu!WN/ts8N)ts8N)ts8;rts8N)ts82lrs8E#ts82lss8N)XrrE+M +JcGEC!!'>)!W[b$JcC<$JcC<$^Ai]~> +pAY*mirB#Yr;Zcsrr;uurr;uu!WN/ts8N)ts8N)us8N''rr<'!rr<&ts8N)qs8E#us8N)ss8N)X +s8N(Ms7QBl!4)Y(!.k0$s+13$s1\M`~> +pAY*mirB#Yr;Zcsrr;uurr;uu!WN/ts8N)ts8N)us8N''rr<'!rr<&ts8N)qs8E#us8N)ss8N)X +s8N(Ms7QBl!4)Y(!.k0$s+13$s1\M`~> +pAY*mirB#Yr;Zcsrr;uurr;uu!WN/ts8N)ts8N)us8N''rr<'!rr<&ts8N)qs8E#us8N)ss8N)X +rrE+MJcGEC!!'>)!W[b$JcC<$JcC<$^Ai]~> +pAY*mirB#Yr;Zcsrr;uurVultqu?ZrrVultrr;uu#6+Z's8N'!rVultq>^Hps8W*!r;ZcsiW&oX +JcGEC!!'>)rW%NLJcC<$JcEIaJ,~> +pAY*mirB#Yr;Zcsrr;uurVultqu?ZrrVultrr;uu#6+Z's8N'!rVultq>^Hps8W*!r;ZcsiW&oX +JcGEC!!'>)rW%NLJcC<$JcEIaJ,~> +pAY*mirB#Yr;Zcsrr;uurVultqu?ZrrVultrr;uu#6+Z's8N'!rVultq>^Hps8W*!r;ZcsiVroY +J:[anrr<&)rrN1NJ:[`Os+13$s1\M`~> +pAY*mirAlUs8W&us8W&us8W*!qu?ZrrVultrVucqs8W#ts8W#ts8W#trVufrrr;rtj8],ZJcGEC +!!'>)rW%NLJcC<$JcEIaJ,~> +pAY*mirAlUs8W&us8W&us8W*!qu?ZrrVultrVucqs8W#ts8W#ts8W#trVufrrr;rtj8],ZJcGEC +!!'>)rW%NLJcC<$JcEIaJ,~> +pAY*mirAlUs8W&us8W&us8W*!qu?ZrrVultrVucqs8W#ts8W#ts8W#trVufrrr;rtj8T,[J:[an +rr<&)rrN1NJ:[`Os+13$s1\M`~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +p]#dEo`0RCp&>!lZN'n(JcC<$JcC<$^Ai]~> +p]#dEo`0RCp&>!lZN'n(JcC<$JcC<$^Ai]~> +p]#dEp&G)CJcGEC!!'>)!W[b$JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +pAY*mJcGQGrr@WMp&D/pJcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&D/pJcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QDr!<7S#s+13$s+13as*t~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +pAY*mkPkM^kl1V_li-qbnG`Rjs8N)^rr<&ls8N(Ms7QBl!4)Y(!.k0$s+13$s1\M`~> +pAY*mkPkM^kl1V_li-qbnG`Rjs8N)^rr<&ls8N(Ms7QBl!4)Y(!.k0$s+13$s1\M`~> +pAY*mkPkM^kl1V_li-qbnG`Rjs8N)^rr<&lrrE+MJcGEC!!'>)!W[b$JcC<$JcC<$^Ai]~> +pAY*mc2RbDr;Q`srr2rup&>!lrVlitrr2rupAY*moD\djq#C6lp](6nJcGEC!!'>)rW%NLJcC<$ +JcEIaJ,~> +pAY*mc2RbDr;Q`srr2rup&>!lrVlitrr2rupAY*moD\djq#C6lp](6nJcGEC!!'>)rW%NLJcC<$ +JcEIaJ,~> +pAY*mc2RbDr;Q`srr2rup&>!lrVlitrr2rupAY*moD\djq#C6lp\t6oJ:[anrr<&)rrN1NJ:[`O +s+13$s1\M`~> +pAY*mo`"pls8E#trs&Q(!!*$!rrDus!!)lqrW)rt!!*#u!!)utrVururW!!!!;uj%!<<'!rrE*! +rVururW)uu#lsu*!<3'!rrE)u!<2uu!<3!!!<<#urr;rtrr;uup&G$lJcGEC!!'>)rW%NLJcC<$ +JcEIaJ,~> +pAY*mo`"pls8E#trs&Q(!!*$!rrDus!!)lqrW)rt!!*#u!!)utrVururW!!!!;uj%!<<'!rrE*! +rVururW)uu#lsu*!<3'!rrE)u!<2uu!<3!!!<<#urr;rtrr;uup&G$lJcGEC!!'>)rW%NLJcC<$ +JcEIaJ,~> +pAY*mo`"pls8E#trs&Q(!!*$!rrDus!!)lqrW)rt!!*#u!!)utrVururW!!!!;uj%!<<'!rrE*! +rVururW)uu#lsu*!<3'!rrE)u!<2uu!<3!!!<<#urr;rtrr;uup&>$mJ:[anrr<&)rrN1NJ:[`O +s+13$s1\M`~> +pAY*mo`+pkrr3*$s8N'!rr3'#s8N)urr<&qrr<&urr<&rrr<&srr<&urr<&urr<&urr<&urrN3# +!<2uu!<2uu!<3#u!<3!$!<<'!!<3!#!<<'!rr3'#s8N)urr<&urriE&rrE'!pAb-mJcGEC!!'>) +rW%NLJcC<$JcEIaJ,~> +pAY*mo`+pkrr3*$s8N'!rr3'#s8N)urr<&qrr<&urr<&rrr<&srr<&urr<&urr<&urr<&urrN3# +!<2uu!<2uu!<3#u!<3!$!<<'!!<3!#!<<'!rr3'#s8N)urr<&urriE&rrE'!pAb-mJcGEC!!'>) +rW%NLJcC<$JcEIaJ,~> +pAY*mo`+pkrr3*$s8N'!rr3'#s8N)urr<&qrr<&urr<&rrr<&srr<&urr<&urr<&urr<&urrN3# +!<2uu!<2uu!<3#u!<3!$!<<'!!<3!#!<<'!rr3'#s8N)urr<&urriE&rrE'!pAY-nJ:[anrr<&) +rrN1NJ:[`Os+13$s1\M`~> +pAY*mo`"mkrVls"s8N)trrW9$rrE&u!!)`m!!)or!!)rs!!*#u!!*#u!!*#u!s&B$!<3!#!<<'! +rr2rurr2rurVls"s8N)trrW9$rrE&u!s&B$!<2uu!<2uu!:g*h!.k1Crr<&)s8E"Ls+13$s+13a +s*t~> +pAY*mo`"mkrVls"s8N)trrW9$rrE&u!!)`m!!)or!!)rs!!*#u!!*#u!!*#u!s&B$!<3!#!<<'! +rr2rurr2rurVls"s8N)trrW9$rrE&u!s&B$!<2uu!<2uu!:g*h!.k1Crr<&)s8E"Ls+13$s+13a +s*t~> +pAY*mo`"mkrVls"s8N)trrW9$rrE&u!!)`m!!)or!!)rs!!*#u!!*#u!!*#u!s&B$!<3!#!<<'! +rr2rurr2rurVls"s8N)trrW9$rrE&u!s&B$!<2uu!<2uu!:g'i!.]Y#p&>!lZMst+J:N4NJcC<$ +JcEIaJ,~> +pAY*mqu?Qos8N'!rVls"s8N)trr<&urrN3#!;QTm!;lcr!;uis!<2uu!<)p!!<3&urr<&urrW9$ +rrE&u!!*#u!!)ut!s&B$!<)p"!<<'!rr3'#s8N)us82les8N(Ms7QBl!4)Y(!.k0$s+13$s1\M`~> +pAY*mqu?Qos8N'!rVls"s8N)trr<&urrN3#!;QTm!;lcr!;uis!<2uu!<)p!!<3&urr<&urrW9$ +rrE&u!!*#u!!)ut!s&B$!<)p"!<<'!rr3'#s8N)us82les8N(Ms7QBl!4)Y(!.k0$s+13$s1\M`~> +pAY*mqu?Qos8N'!rVls"s8N)trr<&urrN3#!;QTm!;lcr!;uis!<2uu!<)p!!<3&urr<&urrW9$ +rrE&u!!*#u!!)ut!s&B$!<)p"!<<'!rr3'#s8N)us82lerrE+MJcGEC!!'>)!W[b$JcC<$JcC<$ +^Ai]~> +pAY*mo`"mkrVls"s8N)trr<&urrN3#!;ZWp!<2uu!;lcr!;uis!<2uu!<)p#!<3'!s7u]rrrE&u +!!*#u!!)ut!s&B$!<)p"!<<'!rr3'#s8N)urr<&ds8N(Ms7QBl!4)Y(!.k0$s+13$s1\M`~> +pAY*mo`"mkrVls"s8N)trr<&urrN3#!;ZWp!<2uu!;lcr!;uis!<2uu!<)p#!<3'!s7u]rrrE&u +!!*#u!!)ut!s&B$!<)p"!<<'!rr3'#s8N)urr<&ds8N(Ms7QBl!4)Y(!.k0$s+13$s1\M`~> +pAY*mo`"mkrVls"s8N)trr<&urrN3#!;ZWp!<2uu!;lcr!;uis!<2uu!<)p#!<3'!s7u]rrrE&u +!!*#u!!)ut!s&B$!<)p"!<<'!rr3'#s8N)urr<&drrE+MJcGEC!!'>)!W[b$JcC<$JcC<$^Ai]~> +pAY*mo`+pkrr3'#s8N)trr<&urrN3#!;ZWp!<2uu!;lcr!;uis!<2uu!<)p$!<3'!rrDus!W`6# +rr2rurr2rurVm!#s8N'!rr3<*s8N*!rr<'!rrE&u!!)Edrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mo`+pkrr3'#s8N)trr<&urrN3#!;ZWp!<2uu!;lcr!;uis!<2uu!<)p$!<3'!rrDus!W`6# +rr2rurr2rurVm!#s8N'!rr3<*s8N*!rr<'!rrE&u!!)Edrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mo`+pkrr3'#s8N)trr<&urrN3#!;ZWp!<2uu!;lcr!;uis!<2uu!<)p$!<3'!rrDus!W`6# +rr2rurr2rurVm!#s8N'!rr3<*s8N*!rr<'!rrE&u!!)Ed!<@Y$s7QBl!4)V+!.]TNs+13$s+13a +s*t~> +pAY*mo`"pls8E#trr<&trr<&trr<&ns82itrrE&uquHcs!!*#u!!)ut!s&B$!;c]s!<3&urrW9$ +rrE#t"9AK%!<<#urVult!WN0!rr<&us8;rfs8N(Ms7QBl!4)Y(!.k0$s+13$s1\M`~> +pAY*mo`"pls8E#trr<&trr<&trr<&ns82itrrE&uquHcs!!*#u!!)ut!s&B$!;c]s!<3&urrW9$ +rrE#t"9AK%!<<#urVult!WN0!rr<&us8;rfs8N(Ms7QBl!4)Y(!.k0$s+13$s1\M`~> +pAY*mo`"pls8E#trr<&trr<&trr<&ns82itrrE&uquHcs!!*#u!!)ut!s&B$!;c]s!<3&urrW9$ +rrE#t"9AK%!<<#urVult!WN0!rr<&us8;rfrrE+MJcGEC!!'>)!W[b$JcC<$JcC<$^Ai]~> +pAY*mo`"mkm/R"aT`>#lJcGEC!!'>)rW%NLJcC<$JcEIaJ,~> +pAY*mo`"mkm/R"aT`>#lJcGEC!!'>)rW%NLJcC<$JcEIaJ,~> +pAY*mo`"mkm/R"aT`5#mJ:[anrr<&)rrN1NJ:[`Os+13$s1\M`~> +pAY*mo`"mkL]@ASJcGEC!!'>)rW%NLJcC<$JcEIaJ,~> +pAY*mo`"mkL]@ASJcGEC!!'>)rW%NLJcC<$JcEIaJ,~> +pAY*mo`"mkL]7ATJ:[anrr<&)rrN1NJ:[`Os+13$s1\M`~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +p]#dEo`0RCp&>!lZN'n(JcC<$JcC<$^Ai]~> +p]#dEo`0RCp&>!lZN'n(JcC<$JcC<$^Ai]~> +p]#dEp&G)CJcGEC!!'>)!W[b$JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&>!lZN'n(JcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QBl!4)V+!.]TNs+13$s+13as*t~> +pAY*mJcGQGrr@WMp&D/pJcC<$JcC<$^Ai]~> +pAY*mJcGQGrr@WMp&D/pJcC<$JcC<$^Ai]~> +pAY*mJcGQG!<@Y$s7QDr!<7S#s+13$s+13as*t~> +pAY*mJcGQGrr@WMo)Grpnc,fnli3ITe,QWPgAeAWOoKq~> +pAY*mJcGQGrr@WMo)Grpnc,fnli3ITe,QWPgAeAWOoKq~> +pAY*mJcGQG!<@Y$s762pJFWZD!:0ZT!7UtP!8@IW!0R;3~> +pAY*mJcGQGrr@WMo)Grpnc&RhZMsn)li-qbT)Scje,KCJZMsn)gA_-QZMsn)OoKq~> +pAY*mJcGQGrr@WMo)Grpnc&RhZMsn)li-qbT)Scje,KCJZMsn)gA_-QZMsn)OoKq~> +pAY*mJcGQG!<@Y$s762pJFWX>!4)V)!:0Xb!1s2j!7UrJ!4)V)!8@GQ!4)V)!0R;3~> +pAY*mJcGQGrr@WMcN!kDkl1V_ir8uYZMsn)li-qbT)Scje,KCJZMsn)gA_-QZMsn)OoKq~> +pAY*mJcGQGrr@WMcN!kDkl1V_ir8uYZMsn)li-qbT)Scje,KCJZMsn)gA_-QZMsn)OoKq~> +pAY*mJcGQG!<@Y$s3CZDpuq_Xpu;;R!4)V)!:0Xb!1s2j!7UrJ!4)V)!8@GQ!4)V)!0R;3~> +pAY*mJcGQGrr@WMdf91EkPkM^ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrr@WMdf91EkPkM^ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Y$s3grEpuhYWpu;;R!4)V+!.]Uerr<%jrrN1NJCXZ"!4)V+!.]UTrr<&)rrN1N +J +pAY*mJcGQGrr@WMf)P[Krr3$"rrD9_rW)!Y!!)TirrDWiqZ,:KrW)?c!!)rsrrDBbrrE&urrDNf +rrD]kquHKkrrDrrrrDusrW(LK!!)iprrDBbrrE&urrDNfrrDHdrW(aR!!)rsrrDZjq#KRWrW!0& +!!*'!!!)ZkrW&/^J,~> +pAY*mJcGQGrr@WMf)P[Krr3$"rrD9_rW)!Y!!)TirrDWiqZ,:KrW)?c!!)rsrrDBbrrE&urrDNf +rrD]kquHKkrrDrrrrDusrW(LK!!)iprrDBbrrE&urrDNfrrDHdrW(aR!!)rsrrDZjq#KRWrW!0& +!!*'!!!)ZkrW&/^J,~> +pAY*mJcGQG!<@Y$s475Kq#:9pq#C-Qs8MfRrr<&is8N)is8)fKrrN1NJF3@:!;uls!:0[b!<3#u +!:Tsf!;- +pAY*mJcGQGrr@ZNrrDZjrrD?arW)iq!W`6#oDegjp](3mj8T)Zo)J^ir;Zcsrr;uurr;uuk5YG] +nc/RgmJd.dr;Zcsr;Zcsrr;uup](6nrr;uun,NCfo`+pks8W*!q#C?oqu?Zrr;Z`rec,ULq>^Hp +r;Zcsrr;uup](6nrr;uun,NCfmJm.ch#@?Sr;Zcsr;Zcsrr;uur;ZcsjT#5[qZ$Qqo`+mjPQ-.~> +pAY*mJcGQGrr@ZNrrDZjrrD?arW)iq!W`6#oDegjp](3mj8T)Zo)J^ir;Zcsrr;uurr;uuk5YG] +nc/RgmJd.dr;Zcsr;Zcsrr;uup](6nrr;uun,NCfo`+pks8W*!q#C?oqu?Zrr;Z`rec,ULq>^Hp +r;Zcsrr;uup](6nrr;uun,NCfmJm.ch#@?Sr;Zcsr;Zcsrr;uur;ZcsjT#5[qZ$Qqo`+mjPQ-.~> +pAY*mJcGQG!<@Y%s8Vlcs8VlZs8MfjrrVuqq"+Ocq"OgfpuDAS!:p0i!;uls!<3#u!<3#u!9X=] +!:g'j!.]Uerr<&ss8N)ss8N)us8N)ns8N)us8N)fs8N)ks8N*!s8N)os8N)rs8N)srrN1NJCXZ" +!;ZZp!;uls!<3#u!;HNn!<3#u!:Tsf!:Bdf!.]UTrr<&ss8N)ss8N)us8N)ss8N)[s8N)qs8N)k +rrN1NJ +pAY*mJcGQGrr@]O!s&B$!;6?n!<3&Zs8N'"rrDZj!W`6#q#:HsrrE'!jSo2[o)J^irVufr!<;ut +s8W*!rVultrr2rurr;rtrr;uu"TJH%s8W#to)J[hmJd.dr;ZcsrVufr!<;ut!ri6#rr3*$s8N'! +rr;uurr;osrVufrrr;uurr2rurr;oss8W*!s8W*!!ri6#rr3*$s8N'!rr;lrr;Z`rec,ULq>^Hp +rVufr!<;ut!ri6#rr3*$s8N'!rr;uurr;osrVufrrr;uurr2rurr;osq#C +pAY*mJcGQGrr@]O!s&B$!;6?n!<3&Zs8N'"rrDZj!W`6#q#:HsrrE'!jSo2[o)J^irVufr!<;ut +s8W*!rVultrr2rurr;rtrr;uu"TJH%s8W#to)J[hmJd.dr;ZcsrVufr!<;ut!ri6#rr3*$s8N'! +rr;uurr;osrVufrrr;uurr2rurr;oss8W*!s8W*!!ri6#rr3*$s8N'!rr;lrr;Z`rec,ULq>^Hp +rVufr!<;ut!ri6#rr3*$s8N'!rr;uurr;osrVufrrr;uurr2rurr;osq#C +pAY*mJcGQG!<@Y&rr`&rs7l9e!r2fjj8]/S!WVrdrrVuqq"Xjlq#C-hpuMGT!:p0i!<)rr!!*&t +!<<*!!<)rt!<2uu!<3#t!<3#u!!N<%!<<)t!:p-k!.]Uerr<&ss8N)ts8;ots8;p!rr<&urr`?% +rr<&us8N)us8;rrs8;rss8N)urr<&us8;rts8N*!s8N'#rr<&urr`?%rr<&us82lprrN1NJCXZ" +!;ZZp!<)rr!!*&t!!<0#!<3!$!<<'!!<3#u!<3#s!<)rr!<3#u!<2uu!<3#s!;QQq!.]UTrr<&s +s8N)ts8;ots8;rrs8N)ts8N'#rrE)t!<)rr!<<)u!<<)s!!`H'!<<'!!<3#t!;c]s!.]T`s*t~> +pAY*mJcGQGrr@`P!!)ut!!)Zk!!)*[!!*#u!!)Qh!!)fo"9AH%rrD-[!!)TirrDusrrE&urrE&u +rrE#trrE&u#lt#*!!*$!!<<)u!!`H'!<<'!!:g*g!:Bdd!;uls!;uls!<3#u!<<*!!<3!$!<<'! +!<3#u!<<*!!<<*!!<<*!!<<*!!<<*!!<<'!!<3#u!;uls!<<'%!<<'!!<3!,!<<'!!<<'!!<<'! +!;ulr!7h)L!;ZZp!;uls!<3#u!<<*!!<3!$!<<'!!<3#u!<<*!!<<*!!<<*!!<<*!!<<*!!<<'! +!<3#u!;6Bk!8RSS!;uls!;uls!<3#u!;uls!<)rs!;uls!<<*!!<)rt!!`H'!<<'!!<3#u!<<*! +!<<*!!!<0#!;lfq!0dG5~> +pAY*mJcGQGrr@`P!!)ut!!)Zk!!)*[!!*#u!!)Qh!!)fo"9AH%rrD-[!!)TirrDusrrE&urrE&u +rrE#trrE&u#lt#*!!*$!!<<)u!!`H'!<<'!!:g*g!:Bdd!;uls!;uls!<3#u!<<*!!<3!$!<<'! +!<3#u!<<*!!<<*!!<<*!!<<*!!<<*!!<<'!!<3#u!;uls!<<'%!<<'!!<3!,!<<'!!<<'!!<<'! +!;ulr!7h)L!;ZZp!;uls!<3#u!<<*!!<3!$!<<'!!<3#u!<<*!!<<*!!<<*!!<<*!!<<*!!<<'! +!<3#u!;6Bk!8RSS!;uls!;uls!<3#u!;uls!<)rs!;uls!<<*!!<)rt!!`H'!<<'!!<3#u!<<*! +!<<*!!!<0#!;lfq!0dG5~> +pAY*mJcGQG!<@Y'rrDimrrDidrrDiTrrDinrrDiarrDihrri,sq#C-Mrr<&is8N)ss8N)us8N)u +s8N)ts8N)urs8]*rr<'!!!*'!rW!0&!!*'!!!)Qh!W[b$mJd.dr;Zcsr;Zcsrr;uus8W*!rr3*$ +s8N'!rr;uus8W*!s8W*!s8W*!s8W*!s8W*!s8N'!rr;uur;Zcss8N3%s8N'!rr3B,s8N'!s8N'! +s8N'!r;QfuJ:Q2M!!)iprrDusrrE&urrE*!rrE&u"9AK%!!*#urrE*!rrE*!rrE*!rrE*!rrE*! +rrE*!!!*#urrD`l!W[b$h#@?Sr;Zcsr;Zcsrr;uur;ZcsrVuisr;Zcss8W*!rVult#6+Z's8N'! +rr;uus8W*!s8W*!!ri6#qu6]tJ:Nj`J,~> +pAY*mJcGQGrr@`P!!)ut!!)Zk!!)-\!!*#u!!)Ng!!)ip"p"]'!<<'!jo5;\o)J^ir;Zcsrr;uu +rr;lrs8W*!!WN0!s8N'/rr<'!rr<'!rr<'!rr<&hs8E#crr<&ss8N)ss8N)us8N)us8N'"rrE&u +q>gQqrrE*!rrE*!rrE*!rrE*!rr<*"!<)rs!<)rr!<)rt!!3*"rr;uus8W*!s8W*!r;Z`rec,UL +q>^Hpr;Zcsrr;uurr;uu!WN0!s7u`qs8N*!s8N*!s8N*!s8N*!s8N'"rrE#trW)ZlrW(aR!!)rs +rrDusrrE&urrDusrrE#trrDrrrrE*!rrE#trr<9'!!*'!!!*#urrE*!rrE*!rr<-#!!)orrW&/^ +J,~> +pAY*mJcGQGrr@`P!!)ut!!)Zk!!)-\!!*#u!!)Ng!!)ip"p"]'!<<'!jo5;\o)J^ir;Zcsrr;uu +rr;lrs8W*!!WN0!s8N'/rr<'!rr<'!rr<'!rr<&hs8E#crr<&ss8N)ss8N)us8N)us8N'"rrE&u +q>gQqrrE*!rrE*!rrE*!rrE*!rr<*"!<)rs!<)rr!<)rt!!3*"rr;uus8W*!s8W*!r;Z`rec,UL +q>^Hpr;Zcsrr;uurr;uu!WN0!s7u`qs8N*!s8N*!s8N*!s8N*!s8N'"rrE#trW)ZlrW(aR!!)rs +rrDusrrE&urrDusrrE#trrDrrrrE*!rrE#trr<9'!!*'!!!*#urrE*!rrE*!rr<-#!!)orrW&/^ +J,~> +pAY*mJcGQG!<@Y'rrDimrrDidrrDiUrrDinrrDi`rrDiirs&8us7lWopuVMU!:p0i!;uls!<3#u +!<3#r!<<*!!!3*"rr;uu%fZM/s8N'!s8N'!s8N'!nc&XjJ:R%e!!)rsrrDusrrE&urrE&urr<*" +!<3#p!<<*!!<<*!!<<*!!<<*!!<<*!!!3*"rVuisrVufrrVult!WN0!s8N*!s8N*!s8N)srrN1N +JCXZ"!;ZZp!;uls!<3#u!<3#u!!3*"rr;fps8W*!s8W*!s8W*!s8W*!s8W*!!WN/us8E#lrrN1N +JDC/)!;uls!;uls!<3#u!;uls!<)rt!;lfr!<<*!!<)rt!!`H'!<<'!!<3#u!<<*!!<<*!!!<0# +!;lct!.]T`s*t~> +pAY*mJcGQGrr@`P!!)ut!!)Zk!!)3^rrE#t!!)Ng!!)ip"p"]'!<<'!jo5;\o)J^ir;Zcsrr;uu +rr;uur;Zcs!WN0!s82lss8N*!s8N*!s8N)hs8E#crr<&ss8N)ss8N)us8N)us8N'"rrE&urrE&u +rrE*!rrE*!rrE*!rrE*!rrE*!r;ccqrW)rtrrE*!!!*#urr<*"!<3#u!<<*!!<<*!!;ulr!7h)L +!;ZZp!;uls!<3#u!<3#u!!3*"rr;uurr;uus8W*!s8W*!s8W*!s8W*!s8W#tr;Z`rp](3mh#@?S +r;Zcsr;Zcsrr;uur;ZcsrVultrVufrs8W*!rVucqs8W*!rr;uus8W*!s8Vusqu?WqPQ-.~> +pAY*mJcGQGrr@`P!!)ut!!)Zk!!)3^rrE#t!!)Ng!!)ip"p"]'!<<'!jo5;\o)J^ir;Zcsrr;uu +rr;uur;Zcs!WN0!s82lss8N*!s8N*!s8N)hs8E#crr<&ss8N)ss8N)us8N)us8N'"rrE&urrE&u +rrE*!rrE*!rrE*!rrE*!rrE*!r;ccqrW)rtrrE*!!!*#urr<*"!<3#u!<<*!!<<*!!;ulr!7h)L +!;ZZp!;uls!<3#u!<3#u!!3*"rr;uurr;uus8W*!s8W*!s8W*!s8W*!s8W#tr;Z`rp](3mh#@?S +r;Zcsr;Zcsrr;uur;ZcsrVultrVufrs8W*!rVucqs8W*!rr;uus8W*!s8Vusqu?WqPQ-.~> +pAY*mJcGQG!<@Y'rrDimrrDidrrDiWs8VlmrrDi`rrDiirs&8us7lWopuVMU!:p0i!;uls!<3#u +!<3#u!;uls!!3*"rr;lrs8W*!s8W*!s8W*!nc&XjJ:R%e!!)rsrrDusrrE&urrE&urr<*"!<3#u +!<3#u!<<*!!<<*!!<<*!!<<*!!<<)t!;ulr!<3#u!<<'!!<3#u!!3*"rr;uus8W*!s8W*!r;Qfu +J:Q2M!!)iprrDusrrE&urrE&urr<*"!<3#u!<3#u!<<*!!<<*!!<<*!!<<*!!<<)t!;ulr!;HKp +!.]UTrr<&ss8N)ss8N)us8N)ss8N)ts8N)ts8;rts8N)ts82lss8N)us8N*!s8N*!s82lorrN1N +J +pAY*mJcGQGrr@`P!!)ut!!)Zk!!)6_!!)rs!!)Kf!!)ip"p"]'!<<'!jo5;\o)J^ir;Zcsrr;uu +rr;uur;Zcs!WN0!s8N)ss8N*!s8N*!s8N)hs8E#crr<&ss8N)ss8N)us8N)us8N'"rrE&urrE&u +rrE*!rrE*!rrE*!rrE*!rrE*!rr<-#!!)rsrW)uurrE*!rrE*!rr<*"!<3#u!<<*!!<<*!!;ulr +!7h)L!;ZZp!;uls!<3#u!<3#u!!3*"rr;uurr;uus8W*!s8W*!s8W*!s8W*!s8W*!!ri6#r;Z`r +q#C +pAY*mJcGQGrr@`P!!)ut!!)Zk!!)6_!!)rs!!)Kf!!)ip"p"]'!<<'!jo5;\o)J^ir;Zcsrr;uu +rr;uur;Zcs!WN0!s8N)ss8N*!s8N*!s8N)hs8E#crr<&ss8N)ss8N)us8N)us8N'"rrE&urrE&u +rrE*!rrE*!rrE*!rrE*!rrE*!rr<-#!!)rsrW)uurrE*!rrE*!rr<*"!<3#u!<<*!!<<*!!;ulr +!7h)L!;ZZp!;uls!<3#u!<3#u!!3*"rr;uurr;uus8W*!s8W*!s8W*!s8W*!s8W*!!ri6#r;Z`r +q#C +pAY*mJcGQG!<@Y'rrDimrrDidrrDiXrrDilrrDi_rrDiirs&8us7lWopuVMU!:p0i!;uls!<3#u +!<3#u!;uls!!3*"rr;uur;Zcss8W*!s8W*!nc&XjJ:R%e!!)rsrrDusrrE&urrE&urr<*"!<3#u +!<3#u!<<*!!<<*!!<<*!!<<*!!<<*!!!<0#!;ulr!<<*!!<<*!!<<*!!!3*"rr;uus8W*!s8W*! +r;QfuJ:Q2M!!)iprrDusrrE&urrE&urr<*"!<3#u!<3#u!<<*!!<<*!!<<*!!<<*!!<<*!!!<0# +!;ulr!;QQq!.]UTrr<&ss8N)ss8N)us8N)ss8N)ts8N)us8N''rr<'!rr<&ts8N)ss8N)us8N*! +s8N*!s8N)orrN1NJ +pAY*mJcGQGrr@`P!!)ut!!)Zk!!)9`!!)rs!!)He!!)lq!!*#u!!*#u!!)0]!!)TirrDusrrE&u +rrE&urrDrrrrE#trrDusrrE*!rrE*!rrDThrW)?c!!)rsrrDusrrE&urrE#trrE#trrE&urrE*! +rrE*!rrE*!rrE*!rrE*!rrE*!rrDusrrE*!rrE*!rrE&urrE#trrE*!rr<'!rW)lrrW(LK!!)ip +rrDusrrE&urrE#trrE#trrE&urrE*!rrE*!rrE*!rrE*!rrE*!rrE*!rrDusrrDiorW(aR!!)rs +rrDusrrE&urrDusrrE#trrE&urr<9'!!*'!!!)utrrDusrrE&urrE*!rrE*!rrDiorW&/^J,~> +pAY*mJcGQGrr@`P!!)ut!!)Zk!!)9`!!)rs!!)He!!)lq!!*#u!!*#u!!)0]!!)TirrDusrrE&u +rrE&urrDrrrrE#trrDusrrE*!rrE*!rrDThrW)?c!!)rsrrDusrrE&urrE#trrE#trrE&urrE*! +rrE*!rrE*!rrE*!rrE*!rrE*!rrDusrrE*!rrE*!rrE&urrE#trrE*!rr<'!rW)lrrW(LK!!)ip +rrDusrrE&urrE#trrE#trrE&urrE*!rrE*!rrE*!rrE*!rrE*!rrE*!rrDusrrDiorW(aR!!)rs +rrDusrrE&urrDusrrE#trrE&urr<9'!!*'!!!)utrrDusrrE&urrE*!rrE*!rrDiorW&/^J,~> +pAY*mJcGQG!<@Y'rrDimrrDidrrDiYrrDilrrDi^rrDijrrDinrrDinrrDiVrr<&is8N)ss8N)u +s8N)us8N)rs8N)ts8N)ss8N*!s8N*!s8N)hrrN1NJF3@:!;uls!;uls!<3#u!<)rt!<)rt!<3#u +!<<*!!<<*!!<<*!!<<*!!<<*!!<<*!!;uls!<<*!!<<*!!<3#u!<)rt!<<*!!!*&u!;uiu!.]UM +rr<&ps8N)ss8N)us8N)ts8N)ts8N)us8N*!s8N*!s8N*!s8N*!s8N*!s8N*!s8N)ss8N)orrN1N +JDC/)!;uls!;uls!<3#u!;uls!<)rt!<3#u!!`H'!<<'!!<)rt!;uls!<3#u!<<*!!<<*!!;QQq +!.]T`s*t~> +pAY*mJcGQGrr@]O!s&B$!;$3j!:0[b!;lcr!:Kje!;c]q!<2uu!<2uu!9X:]!:p0e!<<)u!<<)u +!!*&r!<<*!!;ulq!<<*!!<<*!!<3#t!;$6i!:Bdd!;ulo!<<)u!<<)u!<<*!!<)rt!<3#u!<3#s +!<)rr!<3#u!<3#u!!*&t!<3#r!<)rt!<)rt!<3#u!!<0#!;ulr!7h)L!;ZZl!<<)u!<<)u!<<*! +!<)rt!<3#u!<3#s!<)rr!<3#u!<3#u!!*&t!;HNm!8RSS!;ulo!<<)u!<<)u!<3#u!<)rt!<)rq +!<<)t!<<)t!<<*!!<3#u!<<*!!<3#s!;lfq!0dG5~> +pAY*mJcGQGrr@]O!s&B$!;$3j!:0[b!;lcr!:Kje!;c]q!<2uu!<2uu!9X:]!:p0e!<<)u!<<)u +!!*&r!<<*!!;ulq!<<*!!<<*!!<3#t!;$6i!:Bdd!;ulo!<<)u!<<)u!<<*!!<)rt!<3#u!<3#s +!<)rr!<3#u!<3#u!!*&t!<3#r!<)rt!<)rt!<3#u!!<0#!;ulr!7h)L!;ZZl!<<)u!<<)u!<<*! +!<)rt!<3#u!<3#s!<)rr!<3#u!<3#u!!*&t!;HNm!8RSS!;ulo!<<)u!<<)u!<3#u!<)rt!<)rq +!<<)t!<<)t!<<*!!<3#u!<<*!!<3#s!;lfq!0dG5~> +pAY*mJcGQG!<@Y&rr`&rs7l3c!;Pm[s7lKk!;Q!^!;QEj!;QQn!;QQn!;P^V!!)TiqZ-ZrrW)uu +rVuruqZ-ZrrrDusr;cltrrE*!rrE&urW)Qi!W[b$mJd.dr;ZWos8W&us8W&us8W*!rVultrr;uu +rr;osrVufrrr;uurr;uu!<;utrr;lrrVultrVultrr;uu!ri6#r;QfuJ:Q2M!!)ipqZ-ZrrW)uu +rW)uurrE#trrE&urrE&ur;cfrr;cisrrE&urr<'!r;cTl!W[b$h#@?Sr;ZWos8W&us8W&urr;uu +rVultrVucqs8W#ts8W#ts8W*!rr;uus8W*!rr;osqu6]tJ:Nj`J,~> +pAY*mJcGQGrr@ZNrrE#t!!*#u!!)utquH0b!!)lq!!)KfquH]q!!)ut!!)ut!!)3^!!'>)rW)?c +!!'A*rrDKerW(LK!!'>)rW(aR!!'>)rW&/^J,~> +pAY*mJcGQGrr@ZNrrE#t!!*#u!!)utquH0b!!)lq!!)KfquH]q!!)ut!!)ut!!)3^!!'>)rW)?c +!!'A*rrDKerW(LK!!'>)rW(aR!!'>)rW&/^J,~> +pAY*mJcGQG!<@Y%s8VlmrrDinrrDims8;Z[rrDijrrDi_s8;ZjrrDimrrDimrrDiWrr<&)rrN1N +JF3@:!42_*!:Kjg!.]UMrr<&)rrN1NJDC/)!4)V+!.]T`s*t~> +pAY*mJcGQGrr@WMh#@?Sh>[HTrVlitrVlitkPkM^ZN'n(mJd.d[/^.+mJm.cec,ULZN'n(h#@?S +ZN'n(PQ-.~> +pAY*mJcGQGrr@WMh#@?Sh>[HTrVlitrVlitkPkM^ZN'n(mJd.d[/^.+mJm.cec,ULZN'n(h#@?S +ZN'n(PQ-.~> +pAY*mJcGQG!<@Y$s4mVSptbrMq#13mq#13mpuhYW!4)V+!.]Uerr<&+s8N)drrN1NJCXZ"!4)V+ +!.]UTrr<&)rrN1NJ +pAY*mJcGQGrr@WMhZ*TUfDbgNir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrr@WMhZ*TUfDbgNir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Y$s5*eUpt,NGpu;;R!4)V+!.]Uerr<%jrrN1NJCXZ"!4)V+!.]UTrr<&)rrN1N +J +pAY*mJcGQGrr@WMhu +pAY*mJcGQGrr@WMhu +pAY*mJcGQG!<@Y$s53hVpsoBEpu;;R!4)V+!.]Uerr<%jrrN1NJCXZ"!4)V+!.]UTrr<&)rrN1N +J +pAY*mJcGQGrr@WMi;WcWeGfLKir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrr@WMi;WcWeGfLKir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Y$s5 +pAY*mJcGQGrr@WMirB#Ye,KCJir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrr@WMirB#Ye,KCJir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Y$s5O(Yps]6Cpu;;R!4)V+!.]Uerr<%jrrN1NJCXZ"!4)V+!.]UTrr<&)rrN1N +J +pAY*mJcGQGrr@WMj8T)ZdJj1Hir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrr@WMj8T)ZdJj1Hir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Y$s5X+ZpsK*Apu;;R!4)V+!.]Uerr<%jrrN1NJCXZ"!4)V+!.]UTrr<&)rrN1N +J +pAY*mJcGQGrr@WMjSo2[d/O(Gir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrr@WMjSo2[d/O(Gir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Y$s5a1[psB$@pu;;R!4)V+!.]Uerr<%jrrN1NJCXZ"!4)V+!.]UTrr<&)rrN1N +J +pAY*mJcGQGrr@WMk5YG]ci3tFir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrr@WMk5YG]ci3tFir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Y$s5s@]ps8s?pu;;R!4)V+!.]Uerr<%jrrN1NJCXZ"!4)V+!.]UTrr<&)rrN1N +J +pAY*mJcGQGrr@WMkPkM^c2RbDir?.]mJiUTec2cPh#FMWPQ-.~> +pAY*mJcGQGrr@WMkPkM^c2RbDir?.]mJiUTec2cPh#FMWPQ-.~> +pAY*mJcGQG!<@Y$s6'C^ps&g=pu;=X!<7T:s-s)hJCX\(!<7T)s0)M'J +pAY*mJcGQGrr@WMkl1V_bl7YCir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrr@WMkl1V_bl7YCir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Y$s60I_prra +pAY*mJcGQGrr@WMlMpkabPqPBir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrr@WMlMpkabPqPBir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Y$s6BXapri[;pu;;R!4)V+!.]Uerr<%jrrN1NJCXZ"!4)V+!.]UTrr<&)rrN1N +J +pAY*mJcGQGrr@WMli-qbao;>@ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrr@WMli-qbao;>@ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Y$s6K[bprWO9pu;;R!4)V+!.]Uerr<%jrrN1NJCXZ"!4)V+!.]UTrr<&)rrN1N +J +pAY*mJcGQGrr@WMm/I%caSu5?ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrr@WMm/I%caSu5?ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Y$s6TacprNI8pu;;R!4)V+!.]Uerr<%jrrN1NJCXZ"!4)V+!.]UTrr<&)rrN1N +J +pAY*mJcGQGrr@WMmf3:ea8Z,>ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrr@WMmf3:ea8Z,>ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Y$s6fpeprEC7pu;;R!4)V+!.]Uerr<%jrrN1NJCXZ"!4)V+!.]UTrr<&)rrN1N +J +pAY*mJcGQGrr@WMn,E@f`W#o +pAY*mJcGQGrr@WMn,E@f`W#o +pAY*mJcGQG!<@Y$s6osfpr375pu;;R!4)V+!.]Uerr<%jrrN1NJCXZ"!4)V+!.]UTrr<&)rrN1N +J +pAY*mJcGQGrr@WMnG`Ig`;]f;ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrr@WMnG`Ig`;]f;ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Y$s7$$gpr*14pu;;R!4)V+!.]Uerr<%jrrN1NJCXZ"!4)V+!.]UTrr<&)rrN1N +J +pAY*mJcGQGrr@WMo)J^i_uB]:ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrr@WMo)J^i_uB]:ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Y$s763ipr!+3pu;;R!4)V+!.]Uerr<%jrrN1NJCXZ"!4)V+!.]UTrr<&)rrN1N +J +pAY*mJcGQGrr@WMoD\dj_>aK8ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrr@WMoD\dj_>aK8ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Y$s7?6jpqct1pu;;R!4)V+!.]Uerr<%jrrN1NJCXZ"!4)V+!.]UTrr<&)rrN1N +J +pAY*mJcGQGrr@WMo`"mk_#FB7ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrr@WMo`"mk_#FB7ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Y$s7H +pAY*mJcGQGrr@WMpAb-m^]+96ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrr@WMpAb-m^]+96ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Y$s7ZKmpqQh/pu;;R!4)V+!.]Uerr<%jrrN1NJCXZ"!4)V+!.]UTrr<&)rrN1N +J +pAY*mJcGQGrr@WMp\t3n^&J'4ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrr@WMp\t3n^&J'4ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Y$s7cNnpq?\-pu;;R!4)V+!.]Uerr<%jrrN1NJCXZ"!4)V+!.]UTrr<&)rrN1N +J +pAY*mJcGQGrr@WMq#: +pAY*mJcGQGrr@WMq#: +pAY*mJcGQG!<@Y$s7lTopq6V,pu;;R!4)V+!.]Uerr<%jrrN1NJCXZ"!4)V+!.]UTrr<&)rrN1N +J +pAY*mJcGQGrr@WMqZ$Qq]Dhj2ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrr@WMqZ$Qq]Dhj2ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Y$s8)cqpq-P+pu;;R!4)V+!.]Uerr<%jrrN1NJCXZ"!4)V+!.]UTrr<&)rrN1N +J +pAY*mJcGQGrr@WMqu6Wr\c2X0ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrr@WMqu6Wr\c2X0ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Y$s82frpppD)pu;;R!4)V+!.]Uerr<%jrrN1NJCXZ"!4)V+!.]UTrr<&)rrN1N +J +pAY*mJcGQGrr@WMr;Q`s\GlO/ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrr@WMr;Q`s\GlO/ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Y$s8;lsppg>(pu;;R!4)V+!.]Uerr<%jrrN1NJCXZ"!4)V+!.]UTrr<&)rrN1N +J +pAY*mJcGQGrr@WMrr;uu\,QF.ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrr@WMrr;uu\,QF.ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Y$s8N&upp^8'pu;;R!4)V+!.]Uerr<%jrrN1NJCXZ"!4)V+!.]UTrr<&)rrN1N +J +pAY*mJcGQGrr@WMs8N'![Jp4,ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrr@WMs8N'![Jp4,ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Y$s8W*!ppL,%pu;;R!4)V+!.]Uerr<%jrrN1NJCXZ"!4)V+!.]UTrr<&)rrN1N +J +pAY*mJcGQGrr@WM!WN/,rr<&Yrr<&)s8E#crr<%js8E#Krr<&)s8E#Rrr<&)s8E"^s*t~> +pAY*mJcGQGrr@WM!WN/,rr<&Yrr<&)s8E#crr<%js8E#Krr<&)s8E#Rrr<&)s8E"^s*t~> +pAY*mJcGQG!<@Y$rrN/p[/U.$ir8uYZMst+J:R%e!!&Vj!W[b$ec,ULZMst+J:QGT!!'>)!W[b$ +PQ-.~> +pAY*mJcGQGrr@ZNrrBD*!!)$Y!!'>)rW)?c!!&VjrW(LK!!'>)rW(aR!!'>)rW&/^J,~> +pAY*mJcGQGrr@ZNrrBD*!!)$Y!!'>)rW)?c!!&VjrW(LK!!'>)rW(aR!!'>)rW&/^J,~> +pAY*mJcGQG!<@Y%s8Vl#rrDiRrr<&)rrN1NJF3@:!1s2l!.]UMrr<&)rrN1NJDC/)!4)V+!.]T` +s*t~> +pAY*mJcGQGrr@]O!!';(!!)$Y!!'>)rW)?c!!&VjrW(LK!!'>)rW(aR!!'>)rW&/^J,~> +pAY*mJcGQGrr@]O!!';(!!)$Y!!'>)rW)?c!!&VjrW(LK!!'>)rW(aR!!'>)rW&/^J,~> +pAY*mJcGQG!<@Y&rrDi!rrDiRrr<&)rrN1NJF3@:!1s2l!.]UMrr<&)rrN1NJDC/)!4)V+!.]T` +s*t~> +pAY*mJcGQGrr@`P!!'8'!!)$Y!!'>)rW)?c!!&VjrW(LK!!'>)rW(aR!!'>)rW&/^J,~> +pAY*mJcGQGrr@`P!!'8'!!)$Y!!'>)rW)?c!!&VjrW(LK!!'>)rW(aR!!'>)rW&/^J,~> +pAY*mJcGQG!<@Y'rrDhurrDiRrr<&)rrN1NJF3@:!1s2l!.]UMrr<&)rrN1NJDC/)!4)V+!.]T` +s*t~> +pAY*mJcGQGrr@fRrrB8&!!)$YXoRkhRK1n +pAY*mJcGQGrr@fRrrB8&!!)$YXoRkhRK1n +pAY*mJcGQG!<@Y)s8VktrrDiRs0)M'JF3B,!<7T"s0)M'JDC1/!<7S5s*t~> +pAY*mJcGQGrr@iS!!'/$!!)$Y!!'>)rW)?c!!&VjrW(LK!!'>)rW(aR!!'>)rW&/^J,~> +pAY*mJcGQGrr@iS!!'/$!!)$Y!!'>)rW)?c!!&VjrW(LK!!'>)rW(aR!!'>)rW&/^J,~> +pAY*mJcGQG!<@Y*rrDhrrrDiRrr<&)rrN1NJF3@:!1s2l!.]UMrr<&)rrN1NJDC/)!4)V+!.]T` +s*t~> +pAY*mJcGQGrr@lT!!',#!!)$Y!!'>)rW)?c!!&VjrW(LK!!'>)rW(aR!!'>)rW&/^J,~> +pAY*mJcGQGrr@lT!!',#!!)$Y!!'>)rW)?c!!&VjrW(LK!!'>)rW(aR!!'>)rW&/^J,~> +pAY*mJcGQG!<@Y+rrDhqrrDiRrr<&)rrN1NJF3@:!1s2l!.]UMrr<&)rrN1NJDC/)!4)V+!.]T` +s*t~> +pAY*mJcGQGrr@rVrrB,"!!)$Y!!'>)rW)?c!!&VjrW(LK!!'>)rW(aR!!'>)rW&/^J,~> +pAY*mJcGQGrr@rVrrB,"!!)$Y!!'>)rW)?c!!&VjrW(LK!!'>)rW(aR!!'>)rW&/^J,~> +pAY*mJcGQG!<@Y-s8VkprrDiRrr<&)rrN1NJF3@:!1s2l!.]UMrr<&)rrN1NJDC/)!4)V+!.]T` +s*t~> +pAY*mJcGQGrr@uW!!'"u!!)$Y!!'>)rW)?c!!&VjrW(LK!!'>)rW(aR!!'>)rW&/^J,~> +pAY*mJcGQGrr@uW!!'"u!!)$Y!!'>)rW)?c!!&VjrW(LK!!'>)rW(aR!!'>)rW&/^J,~> +pAY*mJcGQG!<@Y.rrDhnrrDiRrr<&)rrN1NJF3@:!1s2l!.]UMrr<&)rrN1NJDC/)!4)V+!.]T` +s*t~> +pAY*mJcGQGrrCFGJH5QIl2L_`ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrrCFGJH5QIl2L_`ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Yss+(1I!9sL`pu;;R!4)V+!.]Uerr<%jrrN1NJCXZ"!4)V+!.]UTrr<&)rrN1N +J +pAY*mJcGQGrrCFG!!%TMrVlitl2L_`ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrrCFG!!%TMrVlitl2L_`ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Ysrr<%Ms8Drt!9sL`pu;;R!4)V+!.]Uerr<%jrrN1NJCXZ"!4)V+!.]UTrr<&) +rrN1NJ +pAY*mJcGQGrrCFG!!%TMrVlitl2L_`ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrrCFG!!%TMrVlitl2L_`ir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Ysrr<%Ms8Drt!9sL`pu;;R!4)V+!.]Uerr<%jrrN1NJCXZ"!4)V+!.]UTrr<&) +rrN1NJ +pAY*mJcGQGrrCFG!!%TMrVuisli-qbir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrrCFG!!%TMrVuisli-qbir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Ysrr<%Ms8Ds!!.]UcrrDiRrr<&)rrN1NJF3@:!1s2l!.]UMrr<&)rrN1NJDC/) +!4)V+!.]T`s*t~> +pAY*mJcGQGrrCFG!!(dRrrDEcq#J;3rW)9a!!)$Y!!'>)rW)?c!!&VjrW(LK!!'>)rW(aR!!'>) +rW&/^J,~> +pAY*mJcGQGrrCFG!!(dRrrDEcq#J;3rW)9a!!)$Y!!'>)rW)?c!!&VjrW(LK!!'>)rW(aR!!'>) +rW&/^J,~> +pAY*mJcGQG!<@Ysrr<&Rs8N)cs7lZ3rrN1NJF!48pu;;R!4)V+!.]Uerr<%jrrN1NJCXZ"!4)V+ +!.]UTrr<&)rrN1NJ +pAY*mJcGQGrrCFG!!(dRrrDusrrE&urrD`lrrBh6rW)9a!!)$Y!!'>)rW)?c!!&VjrW(LK!!'>) +rW(aR!!'>)rW&/^J,~> +pAY*mJcGQGrrCFG!!(dRrrDusrrE&urrD`lrrBh6rW)9a!!)$Y!!'>)rW)?c!!&VjrW(LK!!'>) +rW(aR!!'>)rW&/^J,~> +pAY*mJcGQG!<@Ysrr<&Rs8N)ss8N)us8N)ls8N)6rrN1NJF!48pu;;R!4)V+!.]Uerr<%jrrN1N +JCXZ"!4)V+!.]UTrr<&)rrN1NJ +pAY*mJcGQGrrCFG!!(dRrrE#tr;Zitr;Zp!!!*#u!!)utrrE#trr<-#!<;utrVufrs8W&ug&M$O +li-qbir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrrCFG!!(dRrrE#tr;Zitr;Zp!!!*#u!!)utrrE#trr<-#!<;utrVufrs8W&ug&M$O +li-qbir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Ysrr<&Rs8N)ts8;ots8;p!rr<&urr<&ts8N)ts8N'#rrE)t!<)rr!<<)u!87AR +!.]UcrrDiRrr<&)rrN1NJF3@:!1s2l!.]UMrr<&)rrN1NJDC/)!4)V+!.]T`s*t~> +pAY*mJcGQGrrCFG!!(dRrrDusrrE&urrE*!rrE&u!!)utrrE#trW)lrrrE*!rrE#trr<-#!!(aQ +rW)9a!!)$Y!!'>)rW)?c!!&VjrW(LK!!'>)rW(aR!!'>)rW&/^J,~> +pAY*mJcGQGrrCFG!!(dRrrDusrrE&urrE*!rrE&u!!)utrrE#trW)lrrrE*!rrE#trr<-#!!(aQ +rW)9a!!)$Y!!'>)rW)?c!!&VjrW(LK!!'>)rW(aR!!'>)rW&/^J,~> +pAY*mJcGQG!<@Ysrr<&Rs8N)ss8N)us8N*!s8N)urr<&ts8N)ts8E#rs8N*!s8N)ts8N'#rr<&Q +rrN1NJF!48pu;;R!4)V+!.]Uerr<%jrrN1NJCXZ"!4)V+!.]UTrr<&)rrN1NJ +pAY*mJcGQGrrCFG!!(dRrrDusrrE&urrE&urr<*"!;uls!<)rt!;lfr!<<*!!<)rt!!<0#!8@JP +!:0Xb!94"Y!4)Y(!:Bdd!1s5i!7h)L!4)Y(!8RSS!4)Y(!0dG5~> +pAY*mJcGQGrrCFG!!(dRrrDusrrE&urrE&urr<*"!;uls!<)rt!;lfr!<<*!!<)rt!!<0#!8@JP +!:0Xb!94"Y!4)Y(!:Bdd!1s5i!7h)L!4)Y(!8RSS!4)Y(!0dG5~> +pAY*mJcGQG!<@Ysrr<&Rs8N)ss8N)us8N)us8N'"rrDusrrE#trrDrrrrE*!rrE#trr<-#!!(aQ +!W[b$li-t[ir8uYZMst+J:R%e!!&Vj!W[b$ec,ULZMst+J:QGT!!'>)!W[b$PQ-.~> +pAY*mJcGQGrrCFG!!(dRrrDusrrE&urrE&urr<*"!;uls!<)rt!<)rr!<<*!!<)rq!8@JP!:0Xb +!94"Y!4)Y(!:Bdd!1s5i!7h)L!4)Y(!8RSS!4)Y(!0dG5~> +pAY*mJcGQGrrCFG!!(dRrrDusrrE&urrE&urr<*"!;uls!<)rt!<)rr!<<*!!<)rq!8@JP!:0Xb +!94"Y!4)Y(!:Bdd!1s5i!7h)L!4)Y(!8RSS!4)Y(!0dG5~> +pAY*mJcGQG!<@Ysrr<&Rs8N)ss8N)us8N)us8N'"rrDusrrE#trrE#tr;cltrrE#tquGIN!W[b$ +li-t[ir8uYZMst+J:R%e!!&Vj!W[b$ec,ULZMst+J:QGT!!'>)!W[b$PQ-.~> +pAY*mJcGQGrrCFG!!(dRrrDusrrE&urrE&urr<*"!;uls!<)rt!<3#u!!`H'!<<'!!<)rt!8%8M +!:0Xb!94"Y!4)Y(!:Bdd!1s5i!7h)L!4)Y(!8RSS!4)Y(!0dG5~> +pAY*mJcGQGrrCFG!!(dRrrDusrrE&urrE&urr<*"!;uls!<)rt!<3#u!!`H'!<<'!!<)rt!8%8M +!:0Xb!94"Y!4)Y(!:Bdd!1s5i!7h)L!4)Y(!8RSS!4)Y(!0dG5~> +pAY*mJcGQG!<@Ysrr<&Rs8N)ss8N)us8N)us8N'"rrDusrrE#trrE&urr<9'!!*'!!!)utrrC[N +!W[b$li-t[ir8uYZMst+J:R%e!!&Vj!W[b$ec,ULZMst+J:QGT!!'>)!W[b$PQ-.~> +pAY*mJcGQGrrCFG!!(dRrrDusrrE&urrE#trrDrrrrE#trrE&urr<9'!!*'!!!)utrrC[NrW)9a +!!)$Y!!'>)rW)?c!!&VjrW(LK!!'>)rW(aR!!'>)rW&/^J,~> +pAY*mJcGQGrrCFG!!(dRrrDusrrE&urrE#trrDrrrrE#trrE&urr<9'!!*'!!!)utrrC[NrW)9a +!!)$Y!!'>)rW)?c!!&VjrW(LK!!'>)rW(aR!!'>)rW&/^J,~> +pAY*mJcGQG!<@Ysrr<&Rs8N)ss8N)us8N)ts8N)rs8N)ts8N)us8N''rr<'!rr<&ts8N)NrrN1N +JF!48pu;;R!4)V+!.]Uerr<%jrrN1NJCXZ"!4)V+!.]UTrr<&)rrN1NJ +pAY*mJcGQGrrCFG!!(dRqZ-ZrrW)uurW)uurrDrrrrE#trrE#tquHcsr;cltr;bROrW)9a!!)$Y +!!'>)rW)?c!!&VjrW(LK!!'>)rW(aR!!'>)rW&/^J,~> +pAY*mJcGQGrrCFG!!(dRqZ-ZrrW)uurW)uurrDrrrrE#trrE#tquHcsr;cltr;bROrW)9a!!)$Y +!!'>)rW)?c!!&VjrW(LK!!'>)rW(aR!!'>)rW&/^J,~> +pAY*mJcGQG!<@Ysrr<&Rs8)frs8E#us8E#us8N)rs8N)ts8N)ts82lss8;rts8;rOrrN1NJF!48 +pu;;R!4)V+!.]Uerr<%jrrN1NJCXZ"!4)V+!.]UTrr<&)rrN1NJ +pAY*mJcGQGrrCFG!!%TMrVuisli-qbir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrrCFG!!%TMrVuisli-qbir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Ysrr<%Ms8Ds!!.]UcrrDiRrr<&)rrN1NJF3@:!1s2l!.]UMrr<&)rrN1NJDC/) +!4)V+!.]T`s*t~> +pAY*mJcGQGrrCFG!!%TMrVuisli-qbir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrrCFG!!%TMrVuisli-qbir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Ysrr<%Ms8Ds!!.]UcrrDiRrr<&)rrN1NJF3@:!1s2l!.]UMrr<&)rrN1NJDC/) +!4)V+!.]T`s*t~> +pAY*mJcGQGrrDHdrrDZjrrDcm!!%TMrVuisli-qbir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?S +ZN'n(PQ-.~> +pAY*mJcGQGrrDHdrrDZjrrDcm!!%TMrVuisli-qbir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?S +ZN'n(PQ-.~> +pAY*mJcGQG!<@Z;s8Vlcs8Vlfrr<%Ms8Ds!!.]UcrrDiRrr<&)rrN1NJF3@:!1s2l!.]UMrr<&) +rrN1NJDC/)!4)V+!.]T`s*t~> +pAY*mJcGQGrrDKe!s&B$!;6?n!<3&mrr<%Ms8Dus!:0Xb!94"Y!4)Y(!:Bdd!1s5i!7h)L!4)Y( +!8RSS!4)Y(!0dG5~> +pAY*mJcGQGrrDKe!s&B$!;6?n!<3&mrr<%Ms8Dus!:0Xb!94"Y!4)Y(!:Bdd!1s5i!7h)L!4)Y( +!8RSS!4)Y(!0dG5~> +pAY*mJcGQG!<@Z)!W[b$PQ-.~> +pAY*mJcGQGrrDNf!!)ut!!)Zk!!)`m!!%TMrVuisli-qbir8uYZN'n(mJd.dT)\ciec,ULZN'n( +h#@?SZN'n(PQ-.~> +pAY*mJcGQGrrDNf!!)ut!!)Zk!!)`m!!%TMrVuisli-qbir8uYZN'n(mJd.dT)\ciec,ULZN'n( +h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Z=rrDimrrDidrrDifrr<%Ms8Ds!!.]UcrrDiRrr<&)rrN1NJF3@:!1s2l!.]UM +rr<&)rrN1NJDC/)!4)V+!.]T`s*t~> +pAY*mJcGQGrrDNf!!)ut!!)Zk!!)`m!!%TMrVuisli-qbir8uYZN'n(mJd.dT)\ciec,ULZN'n( +h#@?SZN'n(PQ-.~> +pAY*mJcGQGrrDNf!!)ut!!)Zk!!)`m!!%TMrVuisli-qbir8uYZN'n(mJd.dT)\ciec,ULZN'n( +h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Z=rrDimrrDidrrDifrr<%Ms8Ds!!.]UcrrDiRrr<&)rrN1NJF3@:!1s2l!.]UM +rr<&)rrN1NJDC/)!4)V+!.]T`s*t~> +pAY*mJcGQGrrDNf!!)ut!!)Zk!!)`m!!%TMrVuisli-qbir8uYZN'n(mJd.dT)\ciec,ULZN'n( +h#@?SZN'n(PQ-.~> +pAY*mJcGQGrrDNf!!)ut!!)Zk!!)`m!!%TMrVuisli-qbir8uYZN'n(mJd.dT)\ciec,ULZN'n( +h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Z=rrDimrrDidrrDifrr<%Ms8Ds!!.]UcrrDiRrr<&)rrN1NJF3@:!1s2l!.]UM +rr<&)rrN1NJDC/)!4)V+!.]T`s*t~> +pAY*mJcGQGrrDNf!!)ut!!)Zk!!)`m!!%TMrVuisli-qbir8uYZN'n(mJd.dT)\ciec,ULZN'n( +h#@?SZN'n(PQ-.~> +pAY*mJcGQGrrDNf!!)ut!!)Zk!!)`m!!%TMrVuisli-qbir8uYZN'n(mJd.dT)\ciec,ULZN'n( +h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Z=rrDimrrDidrrDifrr<%Ms8Ds!!.]UcrrDiRrr<&)rrN1NJF3@:!1s2l!.]UM +rr<&)rrN1NJDC/)!4)V+!.]T`s*t~> +pAY*mJcGQGrrDNf!!)ut!!)Zk!!)`m!!%TMrVuisli-qbir8uYZN'n(mJd.dT)\ciec,ULZN'n( +h#@?SZN'n(PQ-.~> +pAY*mJcGQGrrDNf!!)ut!!)Zk!!)`m!!%TMrVuisli-qbir8uYZN'n(mJd.dT)\ciec,ULZN'n( +h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Z=rrDimrrDidrrDifrr<%Ms8Ds!!.]UcrrDiRrr<&)rrN1NJF3@:!1s2l!.]UM +rr<&)rrN1NJDC/)!4)V+!.]T`s*t~> +pAY*mJcGQGrrDKe!s&B$!;$3j!;?GD!;QW\rr<&Yrr<&)s8E#crr<%js8E#Krr<&)s8E#Rrr<&) +s8E"^s*t~> +pAY*mJcGQGrrDKe!s&B$!;$3j!;?GD!;QW\rr<&Yrr<&)s8E#crr<%js8E#Krr<&)s8E#Rrr<&) +s8E"^s*t~> +pAY*mJcGQG!<@Z)!W[b$mJd.dT)SilJ:Q2M!!'>) +!W[b$h#@?SZMst+J:Nj`J,~> +pAY*mJcGQGrrDHdrrE#t!!*#u!!)utquHNl!!%TMrVuisli-qbir8uYZN'n(mJd.dT)\ciec,UL +ZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrrDHdrrE#t!!*#u!!)utquHNl!!%TMrVuisli-qbir8uYZN'n(mJd.dT)\ciec,UL +ZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Z;s8VlmrrDinrrDims8;Zerr<%Ms8Ds!!.]UcrrDiRrr<&)rrN1NJF3@:!1s2l +!.]UMrr<&)rrN1NJDC/)!4)V+!.]T`s*t~> +pAY*mJcGQGrrCFG!!%TMrVuisli-qbir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrrCFG!!%TMrVuisli-qbir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Ysrr<%Ms8Ds!!.]UcrrDiRrr<&)rrN1NJF3@:!1s2l!.]UMrr<&)rrN1NJDC/) +!4)V+!.]T`s*t~> +pAY*mJcGQGrrCFG!!%TMrVuisli-qbir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQGrrCFG!!%TMrVuisli-qbir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n(PQ-.~> +pAY*mJcGQG!<@Ysrr<%Ms8Ds!!.]UcrrDiRrr<&)rrN1NJF3@:!1s2l!.]UMrr<&)rrN1NJDC/) +!4)V+!.]T`s*t~> +pAY*mJcGQGrrCjSrrDfn!!%TMrVuisli-qbir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n( +PQ-.~> +pAY*mJcGQGrrCjSrrDfn!!%TMrVuisli-qbir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n( +PQ-.~> +pAY*mJcGQG!<@Z*s8Vlgrr<%Ms8Ds!!.]UcrrDiRrr<&)rrN1NJF3@:!1s2l!.]UMrr<&)rrN1N +JDC/)!4)V+!.]T`s*t~> +pAY*mJcGQGrrCdQrrDlp!!%TMrVuisli-qbir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n( +PQ-.~> +pAY*mJcGQGrrCdQrrDlp!!%TMrVuisli-qbir8uYZN'n(mJd.dT)\ciec,ULZN'n(h#@?SZN'n( +PQ-.~> +pAY*mJcGQG!<@Z(s8Vlirr<%Ms8Ds!!.]UcrrDiRrr<&)rrN1NJF3@:!1s2l!.]UMrr<&)rrN1N +JDC/)!4)V+!.]T`s*t~> +pAY*mJcGQGrrC^OrW)lr!!%TMrVuisli-qbir?.]mJiUTec2cPh#FMWPQ-.~> +pAY*mJcGQGrrC^OrW)lr!!%TMrVuisli-qbir?.]mJiUTec2cPh#FMWPQ-.~> +pAY*mJcGQG!<@Z&s8Mfkrr<%Ms8Ds!!.]UcrrDiRs0)M'JF3B,!<7T"s0)M'JDC1/!<7S5s*t~> +pAY*mJcGQGrrCULrrE&u!!%TMrVuisli-qbhuBq]lMmCTdf6QPg&J;WPQ-.~> +pAY*mJcGQGrrCULrrE&u!!%TMrVuisli-qbhuBq]lMmCTdf6QPg&J;WPQ-.~> +pAY*mJcGQG!<@Z#s8Vlnrr<%Ms8Ds!!.]UcrrDiOs07+>s.+\gs07+-s07* +pAY*mJcGQGrrCOJrr<*"!.k1Ks8E#arr<&Vs02Rhs.'/ +pAY*mJcGQGrrCOJrr<*"!.k1Ks8E#arr<&Vs02Rhs.'/ +pAY*mJcGQG!<@Z!s8Viprr@WMrVlp!J:Qtc!;PIOZ%2->SUf/gZ%1O-Z%/& +pAY*mJcGQGblE=prVuisli-qb\c2X0S,WHgJcG6>rrA/\q>c*HlMlA~> +pAY*mJcGQGblE=prVuisli-qb\c2X0S,WHgJcG6>rrA/\q>c*HlMlA~> +pAY*mJcGQG!<@Ysp](;Fs8Ds!!.]UcrrDi)rrDh`rrDhFs7$'gplPOPpjrJ1s*t~> +pAY*mJcGQGrrCOJrr<*"!.k1Ks8E#arr<&0s8N(hrr<%Ms763g!13`^!<)rt!.k17s*t~> +pAY*mJcGQGrrCOJrr<*"!.k1Ks8E#arr<&0s8N(hrr<%Ms763g!13`^!<)rt!.k17s*t~> +pAY*mJcGQG!<@Z!s8Viprr@WMrVlp!J:Qtc!;O,)s7i,a!;M-Fo)J[`QiHpWrVuomJcG!7J,~> +pAY*mJcGQGrrCULrrE&u!!%TMrVuisli-qb\c;U.TE"ljJcGECrr<-#!!&#YrW%NLkl6/~> +pAY*mJcGQGrrCULrrE&u!!%TMrVuisli-qb\c;U.TE"ljJcGECrr<-#!!&#YrW%NLkl6/~> +pAY*mJcGQG!<@Z#s8Vlnrr<%Ms8Ds!!.]UcrrDi)s8D_bs8MeEs7QElp]CKjpl5=QpjrJ/s*t~> +pAY*mJcGQGrrC^OrW)lr!!((>!!) +pAY*mJcGQGrrC^OrW)lr!!((>!!) +pAY*mJcGQG!<@Z&s8Mfkrr<&>rr<&arr<&GrrN1NJF!48pr<@6q"F^jq#C-hpoOMqq"OgfplPOU +q!7tZq#C?qq#C-!s8VlJs8VlorrDhFs60K5~> +pAY*mJcGQGrrCdQrrDlp!!((>!!)BcquG1FrW)9a!!((>!W`6#pAY9rrrE*!!3Z>'!<3&orr`?% +!<3%^rrN3#!:Bgd!<)p!!<3&/rrN3#!8RVS!<2uu!.k15s*t~> +pAY*mJcGQGrrCdQrrDlp!!((>!!)BcquG1FrW)9a!!((>!W`6#pAY9rrrE*!!3Z>'!<3&orr`?% +!<3%^rrN3#!:Bgd!<)p!!<3&/rrN3#!8RVS!<2uu!.k15s*t~> +pAY*mJcGQG!<@Z(s8Vlirr<&>rr<&cs82lFrrN1NJF!48prEC9q#C-_rrr2tq#CBhY5\Rus7lBh +"Si#ls7hcW!r2fjmJm4]rVlros7j,(!r2fjh#IELrr2unJcFp5J,~> +pAY*mJcGQGrrCjSrrDfn!!)fo!!)or!s&?$!<)rs!<3!'!<3$!s8N'!rVuisrr2rurVuiss8N0$ +rr<&ts8E#trrW9$!!)rsrrCFGrW)9a!!(" +pAY*mJcGQGrrCjSrrDfn!!)fo!!)or!s&?$!<)rs!<3!'!<3$!s8N'!rVuisrr2rurVuiss8N0$ +rr<&ts8E#trrW9$!!)rsrrCFGrW)9a!!(" +pAY*mJcGQG!<@Z*s8Vlgrr<&orr<&rrrW9$!!)utrW)rt#6=c(!<<'!!<)rs!<2uu!<)rs!<<'$ +!<3$!rVuisrr3'#rr<&ss8N)GrrN1NJF!48pr375q"F^lq#CBhs8VkrrrDihrri,sq#C,NrrDi_ +s8Vllrr`&rs7j&&!;PCM!;QNm!;M-Fk5Tr~> +pAY*mJcGQGrrCFG!!)fo!!)orrrE*!!s&B$!<3!.!<<'!!<<'!!<<'!s8N)urr<&rrr<&ss8N*! +rrW9$rrE&u"9AK%!!)lq!W`6#dJs1Gli-qb`W#o +pAY*mJcGQGrrCFG!!)fo!!)orrrE*!!s&B$!<3!.!<<'!!<<'!!<<'!s8N)urr<&rrr<&ss8N*! +rrW9$rrE&u"9AK%!!)lq!W`6#dJs1Gli-qb`W#o +pAY*mJcGQG!<@Ysrr<&orr<&rs8N*!rrW9$rrE&u%KQP/!!*'!!!*'!!<<'!rr2ruqu6Wrr;Zcs +s8N0$s8N)urr`?%rr<&qrrN3#!7CfJ!.]UcrrDi5rrDifrr`&rs7lTns7iet!;QBi#5J5uq#CBh +OoGFVl2Lk\s8Vl%rrDiOs8VlmrrDhFs5j92~> +pAY*mJcGQGrrCFG!!)fo!!)or!!*#u!!)or!s&B$!<2uu!<3!#!<<'!rr2ruqu6Wrr;Q`srr2ru +qu6`us8N)=s8E#arr<& +pAY*mJcGQGrrCFG!!)fo!!)or!!*#u!!)or!s&B$!<2uu!<3!#!<<'!rr2ruqu6Wrr;Q`srr2ru +qu6`us8N)=s8E#arr<& +pAY*mJcGQG!<@Ysrr<&orr<&rrr<&urr<&rrrW9$rrE&u!!*#u!s&B$!<2uu!;lcr!;uis!<2uu +!;lcu!<<'!`r?)?J:Qtc!;OP5!;Q6e"8Morq#13mposbuq"apoq#CBhs8VkVrrDiZrrDinrrDi% +rrDiQs8VllrrDhFs5a31~> +pAY*mJcGQGrrCFG!!)orq>gNp!!*#u!!*#ur;clt!!*#u!!*#u!W`9#quHWo!!)rs!!*#u!!*#u +r;clt!!(%=rW)9a!!(" +pAY*mJcGQGrrCFG!!)orq>gNp!!*#u!!*#ur;clt!!*#u!!*#u!W`9#quHWo!!)rs!!*#u!!*#u +r;clt!!(%=rW)9a!!(" +pAY*mJcGQG!<@Ysrr<&rs7u`prr<&urr<&us8;rtrr<&urr<&urrN3#s82lorr<&srr<&urr<&u +s8;rtrr<&=rrN1NJF!48pr375q"=Xhq#CBhr;QclZ2Xh!q>UZos8Vlos7h`V!;Pm[!;QNm!;Nu% +!;PUSs7lHj!;M-FjSs`~> +pAY*mJcGQGrrCFG!!)fo!!)or!!*#u!s&B$!<3!#!<<'!rr2rurr3'#s8N)nrr<&srr<&urrW9$ +rrE&u!s&B$!65' +pAY*mJcGQGrrCFG!!)fo!!)or!!*#u!s&B$!<3!#!<<'!rr2rurr3'#s8N)nrr<&srr<&urrW9$ +rrE&u!s&B$!65' +pAY*mJcGQG!<@Ysrr<&orr<&rrr<&urrW9$rrE&u!s&B$!<2uu!<3!#!<<'!p\t3nr;Q`srr3'# +s8N)urrW9$rrC(=!W[b$li-t[`W#r5p&>$err2unXT&:qqYpQjrr2unrr2unP5bOWm/I(\rVllm +[/U.$jo>AUq>UHiJcFd1J,~> +pAY*mJcGQGrrCFG!!)fo!!)or!!*#u!s&B$!<3!#!<<'!rr2rurr3'#s8N)nrr<&srr<&urrW9$ +rrE&u!s&B$!65' +pAY*mJcGQGrrCFG!!)fo!!)or!!*#u!s&B$!<3!#!<<'!rr2rurr3'#s8N)nrr<&srr<&urrW9$ +rrE&u!s&B$!65' +pAY*mJcGQG!<@Ysrr<&orr<&rrr<&urrW9$rrE&u!s&B$!<2uu!<3!#!<<'!p\t3nr;Q`srr3'# +s8N)urrW9$rrC(=!W[b$li-t[`W#r5p&>$erVllmXoACrqYpQjrr2unrr2unP5bOWmJd1]r;Qcl +[/U.$k5PGVq#:?hJcFa0J,~> +pAY*mJcGQGrrCFG!!)fo!!)or!!*#u!!*#uqu?ct!<2uu!<2uu!<3#s!<<'!!<)rs!<<'!!<2uu +!<3#r!!3*"`rH# +pAY*mJcGQGrrCFG!!)fo!!)or!!*#u!!*#uqu?ct!<2uu!<2uu!<3#s!<<'!!<)rs!<<'!!<2uu +!<3#r!!3*"`rH# +pAY*mJcGQG!<@Ysrr<&orr<&rrr<&urr<&us82itrrE&u!!*#u!!*#ur;clt!!)utrW)uu!!*#u +!!*#uqu?ct!65$?!.]UcrrDi7s8;ZdrrDimrrDhts8;ZjrrDimrrDimrrDhZs8;Z]rrDilrrDi% +s8;ZWs8VkFs4@:$~> +pAY*mJcGQGrrCFG!!%TMrVuisli-qb\GlO/r;Q`sVuH_srVlitrVlitJc>cN!;lcr!1X#g!.k1# +s*t~> +pAY*mJcGQGrrCFG!!%TMrVuisli-qb\GlO/r;Q`sVuH_srVlitrVlitJc>cN!;lcr!1X#g!.k1# +s*t~> +pAY*mJcGQG!<@Ysrr<%Ms8Ds!!.]UcrrDi(rrDilrrDhlrrDimrrDimrrDhFrrN/pqu6ZkS,`N` +JcF:#J,~> +pAY*mJcGQGrrCFG!!%TMrVuisli-qb\GlO/r;Q`sUAk2nJcGZJ!!&;arr@WMe,Op~> +pAY*mJcGQGrrCFG!!%TMrVuisli-qb\GlO/r;Q`sUAk2nJcGZJ!!&;arr@WMe,Op~> +pAY*mJcGQG!<@Ysrr<%Ms8Ds!!.]UcrrDi(rrDilrrDhgrrDhFs8;lspm(mZpjrIos*t~> +pAY*mJcGQGrrCFG!!%TMrVuisli-qbZ2Xe(U]1;oJcG]K!!&>brr@WMdJn^~> +pAY*mJcGQGrrCFG!!%TMrVuisli-qbZ2Xe(U]1;oJcG]K!!&>brr@WMdJn^~> +pAY*mJcGQG!<@Ysrr<%Ms8Ds!!.]UcrrDi!rrDhhrrDhFs8Drtpm1s[pjrIms*t~> +pAY*mJcGQGrrCFG!!%TMrVuisli-qbZ2Xe(U]1;oJcG`L!!&>b!!%TMci8L~> +pAY*mJcGQGrrCFG!!%TMrVuisli-qbZ2Xe(U]1;oJcG`L!!&>b!!%TMci8L~> +pAY*mJcGQG!<@Ysrr<%Ms8Ds!!.]UcrrDi!rrDhhrrDhFs8N#upm1p[pjrIks*t~> +pAY*mJcGQGrrCFG!!%TMrVuisli-qbYl=\'V#LDpJcGcM!!&Acrr@WMcMrC~> +pAY*mJcGQGrrCFG!!%TMrVuisli-qbYl=\'V#LDpJcGcM!!&Acrr@WMcMrC~> +pAY*mJcGQG!<@Ysrr<%Ms8Ds!!.]UcrrDhurrDhirrDhFs8W*!pm;$\pjrIjs*t~> +pAY*mJcGQGrrCFG!!%TMrVuisli-qbYl=\'V#LDpJc>cN!1 +pAY*mJcGQGrrCFG!!%TMrVuisli-qbYl=\'V#LDpJc>cN!1 +pAY*mJcGQG!<@Ysrr<%Ms8Ds!!.]UcrrDhurrDhirrDhFrrN/pR/d3]JcEsoJ,~> +pAY*mJcGQGrrCFG!!)3^!!)6_!!)?b!!)Ng!s&B$!9a@^!;ZZo!:0Xb!3cD&!2]\q!.k.M!1Ele +!.k0ms*t~> +pAY*mJcGQGrrCFG!!)3^!!)6_!!)?b!!)Ng!s&B$!9a@^!;ZZo!:0Xb!3cD&!2]\q!.k.M!1Ele +!.k0ms*t~> +pAY*mJcGQG!<@Ysrr<&^rr<&_rr<&brr<&grrW9$rrD6^!!)ip!W[b$li-t[YQ"UtV>gPjJc>`F +RK*<^JcEmmJ,~> +pAY*mJcGQGrrCFG!!(:D!!)rs!!*#u!!)]l!!)ut!!*#u!!)`m!!)Wj!!)foquHWorW)9a!!'5& +!!&kq!!%WN!!&Jfrr@WMaT$b~> +pAY*mJcGQGrrCFG!!(:D!!)rs!!*#u!!)]l!!)ut!!*#u!!)`m!!)Wj!!)foquHWorW)9a!!'5& +!!&kq!!%WN!!&Jfrr@WMaT$b~> +pAY*mJcGQG!<@Ysrr<&Drr<&srr<&urr<&lrr<&trr<&urr<&mrr<&jrr<&os82lorrN1NJF!48 +poj\tpndujpk&MGpmV6_pjrIds*t~> +pAY*mJcGQGrrCFG!!)Zk! +pAY*mJcGQGrrCFG!!)Zk! +pAY*mJcGQG!<@Ysrr<&krrE-"rW)rt#6=c(!<3'!!;uis!;c`p!<2uu!<2uu!<)rs!!*&u!!3*" +r;R!%s8N*!!<<)u!!*&u!<<'*!<3$!rrE*!!<<#urr2rurr3!!s8E#ts8E#ts8N)prrN1NJF!48 +poaVspnn&kpk/SHpm_<`pjrIbs*t~> +pAY*mJcGQGrrCFG!!)ZkrrE&u"9AK%!!*#u!s&B$!<2uu!;c]q!<2uu!;lcr!;uis!<2uu!<2uu +!<2uu!<3!"!<3&urr<&urr<&us8N)urr`?%rr<&urrW9$rrE&u!s&B$!<2uu!<3!%!<<'!rrDoq +rW)9a!!'/$!!&qs!!%]P!!&Mg!!%TM`;b>~> +pAY*mJcGQGrrCFG!!)ZkrrE&u"9AK%!!*#u!s&B$!<2uu!;c]q!<2uu!;lcr!;uis!<2uu!<2uu +!<2uu!<3!"!<3&urr<&urr<&us8N)urr`?%rr<&urrW9$rrE&u!s&B$!<2uu!<3!%!<<'!rrDoq +rW)9a!!'/$!!&qs!!%]P!!&Mg!!%TM`;b>~> +pAY*mJcGQG!<@Ysrr<&ks8N)urr`?%rr<&urrW9$rrE&u!!)lq!!*#u!!)or!!)rs!!*#u!!*#u +!!*#u!!*#u!W`6#rr2rurr2rurr;uurr3*$s8N'!rr3'#s8N)urrW9$rrE&u!!*#u"T\T&!<3&q +rrN1NJF!48poXPrpo",lpk8YIpm_9`pjrI`s*t~> +pAY*mJcGQGrrCFG!!)Zk!!)ut!s&B$!<)p"!<<'!rr2rupAY*mqu6Wrr;Q`srr2rurr2rurr3'# +s8N)urrW9$rrE&u!!*#u!!)ut!s&B$!<)p"!<<'!rr3'#s8N)urr<&urr<&ls8E#arr<&$rr<%s +rr<%Qrr<%hs8N(Ms24ke~> +pAY*mJcGQGrrCFG!!)Zk!!)ut!s&B$!<)p"!<<'!rr2rupAY*mqu6Wrr;Q`srr2rurr2rurr3'# +s8N)urrW9$rrE&u!!*#u!!)ut!s&B$!<)p"!<<'!rr3'#s8N)urr<&urr<&ls8E#arr<&$rr<%s +rr<%Qrr<%hs8N(Ms24ke~> +pAY*mJcGQG!<@Ysrr<&krr<&trrW9$rrE#t!s&B$!<2uu!;?Em!;lcr!;uis!<2uu!<2uu!<3!# +!<<'!rr3'#s8N)urr<&urr<&trrW9$rrE#t!s&B$!<3!#!<<'!rr2rurr2rup&>'nJ:Qtc!;N\r +!;NJl!;M9J!;N)as7h0F_uG5~> +pAY*mJcGQGrrCFG!!)orquHcs!!)ut!s&B$!<)ot!<3!"!<3&os8;rprr<&srr<&urr<&trrN3# +!<2uu!<3!#!<<'!rr2rurr2rurVls"s8N)trrW9$rrE&u!s&B$!<3#r!;6Bk!:0Xb!3H2#!3#nt +!/CLR!1j/i!.k0ds*t~> +pAY*mJcGQGrrCFG!!)orquHcs!!)ut!s&B$!<)ot!<3!"!<3&os8;rprr<&srr<&urr<&trrN3# +!<2uu!<3!#!<<'!rr2rurr2rurVls"s8N)trrW9$rrE&u!s&B$!<3#r!;6Bk!:0Xb!3H2#!3#nt +!/CLR!1j/i!.k0ds*t~> +pAY*mJcGQG!<@Ysrr<&rs82lsrr<&trrW9$rrE#t!!*#u!W`6#q#C9mqu6Wrr;Q`srr2rurVlp! +rrE&u!!*#u!s&B$!<2uu!<2uu!<)p"!<<'!rVls"s8N)urrW9$rrE&uquHEi!W[b$li-t[XT&:q +W;ckmLAq8KScA`bJcERdJ,~> +pAY*mJcGQGrrCFG!!)Zk!!)ut!s&B$!<)ot!<3!"!<3&prr<&urr<&rrr<&srr<&urr<&trr`?% +!<<)q!!3*"rr2rurr2rurVls"s8N)trrW9$rrE&u!s&B$!<2uu!:g*g!:0Xb!3H2#!3#nt!/LRS +!1s5j!.k0bs*t~> +pAY*mJcGQGrrCFG!!)Zk!!)ut!s&B$!<)ot!<3!"!<3&prr<&urr<&rrr<&srr<&urr<&trr`?% +!<<)q!!3*"rr2rurr2rurVls"s8N)trrW9$rrE&u!s&B$!<2uu!:g*g!:0Xb!3H2#!3#nt!/LRS +!1s5j!.k0bs*t~> +pAY*mJcGQG!<@Ysrr<&krr<&trrW9$rrE#t!!*#u!W`6#q>UEprr2ruqu6Wrr;Q`srr2rurVm!# +rrE*!q>^Qr!<2uu!<2uu!<)p"!<<'!rVls"s8N)urrW9$rrE&u!!)Qh!W[b$li-t[XT&:qW;ckm +L]7ALT)\icJcELbJ,~> +pAY*mJcGQGrrCFG!!)ZkrrE&u!s&B$!<)ot!<3!"!<3&prr<&urr<&rrr<&srr<&urr<&trriE& +!<<'!r;QfurrE&u!!*#u!!)ut"9AK%!!*#u$3:,+!<<'!!<<'!rr2runc/Rgli-qbX8`/"WW)qu +M#RGTTE"okJcEF`J,~> +pAY*mJcGQGrrCFG!!)ZkrrE&u!s&B$!<)ot!<3!"!<3&prr<&urr<&rrr<&srr<&urr<&trriE& +!<<'!r;QfurrE&u!!*#u!!)ut"9AK%!!*#u$3:,+!<<'!!<<'!rr2runc/Rgli-qbX8`/"WW)qu +M#RGTTE"okJcEF`J,~> +pAY*mJcGQG!<@Ysrr<&ks8N)urrW9$rrE#t!!*#u!W`6#q>UEprr2ruqu6Wrr;Q`srr2rurVm$$ +rrE*!!;uiu!<3&urr<&urr<&trr`?%rr<&ursAc+rrE*!!!*'!!<2uu!:g'j!.]UcrrDhprrDhn +rrDhMrrDhds8VkFs1SG_~> +pAY*mJcGQGrrCFG!!)Zk! +pAY*mJcGQGrrCFG!!)Zk! +pAY*mJcGQG!<@Ysrr<&krrE-"rW)rt!!)ut!!)ut!!)cnqu?ct!<3#r!<<'!!<2uu!<)p"!<<'! +qYpTsrrE&u!s&B$!<)p#!<<'!s8E#ss8N'"rrE&u!!*#ur;cNj!W[b$li-t[X8`1pWW)tnM>mSN +TDnodJcE@^J,~> +pAY*mJcGQGrrCFG!!)Zk!!)Bcr;`YnrW)9a!!'&!!!'&!!!%oV!!&\lrr@WM])R9~> +pAY*mJcGQGrrCFG!!)Zk!!)Bcr;`YnrW)9a!!'&!!!'&!!!%oV!!&\lrr@WM])R9~> +pAY*mJcGQG!<@Ysrr<&krr<&cs8;qnrrN1NJF!48po=>opo=>opko(Opn7ZepjrIVs*t~> +pA][Dp&NJ>!!)Zk!!%rWrW)9a!!'&!!!'&!!!%rW!!&_mrr@WM\Gq'~> +pA][Dp&NJ>!!)Zk!!%rWrW)9a!!'&!!!'&!!!%rW!!&_mrr@WM\Gq'~> +pA][DpAb2Dd/O(Go`"mkMuNhYJ:Qtc!;NSo!;NSo!;MKP!;N8fs7h0F\Gq'~> +oDa@Aq#JeA!!%TMrVuisli-qbWW)quX8`/"N;ikXUAt5nJcE1YJ,~> +oDa@Aq#JeA!!%TMrVuisli-qbWW)quX8`/"N;ikXUAt5nJcE1YJ,~> +oDaAlq1-il!!%TMrVlp!J:Qtc!;NPn!;NVp!;MNQ!;N;gs7h0F[f:j~> +oDa@Aq#JeA!!%TMrVuisli-qbW;chtXT&8#NW/tYU]:>oJcE+WJ,~> +oDa@Aq#JeA!!%TMrVuisli-qbW;chtXT&8#NW/tYU]:>oJcE+WJ,~> +oDaAlq1-il!!%TMrVlp!J:Qtc!;NMm!;NYq!;MQR!;N>hs7h0F[/YX~> +PQ1X_WrE&!JcG]KrW)9a!!&tt!!',#!!&&Z!!&eo!!%TMZN#F~> +PQ1X_WrE&!JcG]KrW)9a!!&tt!!',#!!&&Z!!&eo!!%TMZN#F~> +PQ1[XWrE&!JcG]K!W[b$li-t[W;ckmXT&:qNrK+SU]1>hJcE%UJ,~> +PQ1X_WrE&!JcG]KrW)9a!!&qs!!'/$!!&)[!!&hprr@WMZ2]=~> +PQ1X_WrE&!JcG]KrW)9a!!&qs!!'/$!!&)[!!&hprr@WMZ2]=~> +PQ1[XWrE&!JcG]K!W[b$li-t[VuHblXoACrO8f4TV#UJiJcE"TJ,~> +PQ([arrB,"!!%TMrVuisli-qbVuH_sXoAA$OT,:\V>pPqJcDqRJ,~> +PQ([arrB,"!!%TMrVuisli-qbVuH_sXoAA$OT,:\V>pPqJcDqRJ,~> +PQ(^Zs7iYp!!%TMrVlp!J:Qtc!;NJl!;N\r!;MZU!;NDjs7h0FYQ'+~> +YQ+V&oDegjp\t9prrB,"!!%TMrVuisli-qbVZ-VrY5\J%OoGC]VZ6YrJcDkPJ,~> +YQ+V&oDegjp\t9prrB,"!!%TMrVuisli-qbVZ-VrY5\J%OoGC]VZ6YrJcDkPJ,~> +YQ+XtoDejcp\t +Yl=e*s8N)lrrN3#!;QTo!<<'!!3H2#!.k1Ks8E#arr<%rrr<&%rr<%^rr<%ss8N(Ms/Z0M~> +Yl=e*s8N)lrrN3#!;QTo!<<'!!3H2#!.k1Ks8E#arr<%rrr<&%rr<%^rr<%ss8N(Ms/Z0M~> +Yl=h#s8VlerrVuqq"Xmhq#C?opoOJq!.k1KrrN1NJF!48pnn&kpoaVsplbXWpo"/lpjrIGs*t~> +Z2Xe(rVlito`"mkq#C?os8N'!XT&8#JcG]KrW)9a!!&kq!!'5&!!&5_!!&qs!!%TMWW.J~> +Z2Xe(rVlito`"mkq#C?os8N'!XT&8#JcG]KrW)9a!!&kq!!'5&!!&5_!!&qs!!%TMWW.J~> +Z2Xh!rVllmo`"pdq#CBhs8N)oXT&8#JcG]K!W[b$li-t[V>gPjYQ"UtPQ(XXVuHblJcD_LJ,~> +Z2Xe(rVlito`"mkq>UKrrrE&u!!'/$JH5KGli-qbV>gMqYQ"S&PlC^`W;lktJcD\KJ,~> +Z2Xe(rVlito`"mkq>UKrrrE&u!!'/$JH5KGli-qbV>gMqYQ"S&PlC^`W;lktJcD\KJ,~> +Z2Xh!rVllmo`"pdq>UNks7lTn!;N\rJH5QIs+'G8!;NDj!;Nbt!;MfY!;NMms7h0FW;hA~> +Z2Xe(rVlito`"mkq>UKrrrE&u!!'/$!!%TMrVuisli-qbV#LDpYl=\'Q2^gaWW2tuJcDVIJ,~> +Z2Xe(rVlito`"mkq>UKrrrE&u!!'/$!!%TMrVuisli-qbV#LDpYl=\'Q2^gaWW2tuJcDVIJ,~> +Z2Xh!rVllmo`"pdq>UNks7lTn!;N\r!!%TMrVlp!J:Qtc!;NAi!;Neu!;MiZ!;NPns7h0FVZ2/~> +Z2Xe(rVlito`"mkq>UKrrrE&u!!'/$!!%TMrVuisli-qbV#LDpYl=\'QN$pbWrN)!JcDPGJ,~> +Z2Xe(rVlito`"mkq>UKrrrE&u!!'/$!!%TMrVuisli-qbV#LDpYl=\'QN$pbWrN)!JcDPGJ,~> +Z2Xh!rVllmo`"pdq>UNks7lTn!;N\r!!%TMrVlp!J:Qtc!;NAi!;Neu!;Ml[!;NSos7h0FV#Pr~> +Z2Xe(rVlito`"mkqYpWts8N)trr<&%rr<%Ms8Dus!:0Xb!2KPo!3uP(!13]c!3?/"!.k0Es*t~> +Z2Xe(rVlito`"mkqYpWts8N)trr<&%rr<%Ms8Dus!:0Xb!2KPo!3uP(!13]c!3?/"!.k0Es*t~> +Z2Xh!rVllmo`"pdqYpZms8VlmrrDhsrr<%Ms8Ds!!.]UcrrDhhrrDi!rrDh\rrDhps8VkFs.]OD~> +Yl=e*s8N)jrr<&qrrW9$rrE#t!!'2%!!%TMrVuisli-qbUAk2nZMsn)R/[-dX8`/"i;\?.ciEY: +J,~> +Yl=e*s8N)jrr<&qrrW9$rrE#t!!'2%!!%TMrVuisli-qbUAk2nZMsn)R/[-dX8`/"i;\?.ciEY: +J,~> +Yl=h#s8VlcrrDijrr`&rs7lQm!;N_s!!%TMrVlp!J:Qtc!;N;g!;Nl"!;Mr]!;NVp!;PLPJH4$s +o)F4~> +YQ+V&rVlitrr2rurVucqrVlitrr2rur;Q`sYQ"S&JcG]KrW)9a!!&bn!!'>)!!&Ge!!',#rrCsV +!!%TMdf0:Io)F4~> +YQ+V&rVlitrr2rurVucqrVlitrr2rur;Q`sYQ"S&JcG]KrW)9a!!&bn!!'>)!!&Ge!!',#rrCsV +!!%TMdf0:Io)F4~> +YQ+XtrVllmrr2unrVufjrVllmrr2unr;QclYQ"S&JcG]K!W[b$li-t[UAk5gZMsq"RK!9^XT/=q +hu +Qi@$crr2rur;Q`sYQ"S&JcG]KrW)9a!!&_m!!'A*!!&Jf!!'/$rrCmT!!%TMdf0:Io)F4~> +Qi@$crr2rur;Q`sYQ"S&JcG]KrW)9a!!&_m!!'A*!!&Jf!!'/$rrCmT!!%TMdf0:Io)F4~> +Qi@'\rr2unr;QclYQ"S&JcG]K!W[b$li-t[U&P,fZi:%#Rf[HTJcF0u!!)TiJ,~> +PQ(U_WW)quJcG]KrW)9a!!&_m!!'A*!!&Mg!!'2%rrCgR!!%TMdf9:Ho`'F~> +PQ(U_WW)quJcG]KrW)9a!!&_m!!'A*!!&Mg!!'2%rrCgR!!%TMdf9:Ho`'F~> +PQ(XXWW)quJcG]K!W[b$li-t[U&P,fZi:%#S,WK`Y5eOsg]%6RJcF0u!W[b$o`'F~> +PQ(U_WW)quJcG]KrW)9a!!&\l!!'D+!!&Ph!!'5&rrCaP!!)$YrrDBbqZ,ORrrDNfr;at>rW)Tj +J,~> +PQ(U_WW)quJcG]KrW)9a!!&\l!!'D+!!&Ph!!'5&rrCaP!!)$YrrDBbqZ,ORrrDNfr;at>rW)Tj +J,~> +PQ(XXWW)quJcG]K!W[b$li-t[T`5#e[/U.$SGrTaYQ+Xtg&D$PirB#Yli6h^huE]Vn,N=dao;DB +J:R:lJ,~> +PQ(U_WW)quJcG]KrW)9a!!&\l!!'D+!!&Si!!'5&!!(XN!!)$YrrDusrrE&urrDfnrrD!WrrDBb +rrE&u"9AK%!!)cnrrCdQrW)TjJ,~> +PQ(U_WW)quJcG]KrW)9a!!&\l!!'D+!!&Si!!'5&!!(XN!!)$YrrDusrrE&urrDfnrrD!WrrDBb +rrE&u"9AK%!!)cnrrCdQrW)TjJ,~> +PQ(XXWW)quJcG]K!W[b$li-t[T`5#e[/U.$Sc8]bYQ"UtfDbgNirB#Yr;Zcsrr;uup](6ni;`fW +li6tbrr3*$s8N'!p](6ngA_3SJ:R:lJ,~> +PQ(U_WW)quJcG]KrW)9a!!&Yk!!'G,!!&Vj!!'8'rrCXM!!)$YrrE#tr;Zitr;Zp!!!*#u"9AK% +!!)utrrE#t!W`9#rW)osr;[*&!!*'!!!*&t!<<*!!<3#s!<3#u!!`H'!<<'!!;ulq!<<)t!<<)t +!<3#t!9*tW!;-;A~> +PQ(U_WW)quJcG]KrW)9a!!&Yk!!'G,!!&Vj!!'8'rrCXM!!)$YrrE#tr;Zitr;Zp!!!*#u"9AK% +!!)utrrE#t!W`9#rW)osr;[*&!!*'!!!*&t!<<*!!<3#s!<3#u!!`H'!<<'!!;ulq!<<)t!<<)t +!<3#t!9*tW!;-;A~> +PQ(XXWW)quJcG]K!W[b$li-t[TDnod[Jp7%T)SfcYlFauf)G^MirB#YrVufr!<;ut!ri6#rr3*$ +s8N'!rVultrVlp!s8W&urVufr#QFc(s8N'!s8;rts8N)us8;rss8N''rr<'!rr<&ss8;rts8;rt +s8;rss8E#WrrN1NJFrkl~> +PQ(U_WW)quJcG]KrW)9a!!&Yk!!'G,!!&Yk!!';(rrCRK!!)$YrrDusrrE&urrE*!rrE&u"9AK% +!!)rsrrE*!$NU5,!!*$!!<<'!!<)rt!<<*!!<<*!!<3#u!<<*!!<<*!!<<)u!!E6$!<<#ur;Zcs +qu?Zrs8W*!rr;uu!ri6#irAuXo`'F~> +PQ(U_WW)quJcG]KrW)9a!!&Yk!!'G,!!&Yk!!';(rrCRK!!)$YrrDusrrE&urrE*!rrE&u"9AK% +!!)rsrrE*!$NU5,!!*$!!<<'!!<)rt!<<*!!<<*!!<3#u!<<*!!<<*!!<<)u!!E6$!<<#ur;Zcs +qu?Zrs8W*!rr;uu!ri6#irAuXo`'F~> +PQ(XXWW)quJcG]K!W[b$li-t[TDnod[Jp7%TDnodZ2ak!eGfLKirB#Yr;Zcsrr;uus8W*!rr3*$ +s8N'!r;Zcss8NH,s8N'!rr<'!rr<&ts8N*!s8N*!s8N)us8N*!s8N*!s8N*!s8E!#rr<'!rW)lr +rrDrrrrE*!rrE&urr<-#!!)$Y!W[b$o`'F~> +PQ(U_WW)quJcG]KrW)9a!!&Vj!!'J-!!&\l!!'>)rrCLI!!)$YrrDusrrE&urrE&urr<*"!<3#r +!<3#t!<3#u!!`H'!<<'!!<)rt!<<*!!<<*!!<3#u!<<*!!<<*!!<<*!!<<*!!<<)t!<3#u!;lfr +!<<*!!<3#u!!<0#!94%X!;-;A~> +PQ(U_WW)quJcG]KrW)9a!!&Vj!!'J-!!&\l!!'>)rrCLI!!)$YrrDusrrE&urrE&urr<*"!<3#r +!<3#t!<3#u!!`H'!<<'!!<)rt!<<*!!<<*!!<3#u!<<*!!<<*!!<<*!!<<*!!<<)t!<3#u!;lfr +!<<*!!<3#u!!<0#!94%X!;-;A~> +PQ(XXWW)quJcG]K!W[b$li-t[T)Sfc[f6@&T`5#eZN't"df0:IirB#Yr;Zcsrr;uurr;uu!WN0! +s82lrs8E#ts8N''rr<'!rr<&ts8N*!s8N*!s8N)us8N*!s8N*!s8N*!s8N*!s8N*!s8;rss8N)r +s8N*!s8N)us8N'#rr<&YrrN1NJFrkl~> +PQ(U_WW)quJcG]KrW)9a!!&Si!!'M.!!&_m!!'A*rrCFG!!)$YrrDusrrE&urrE&urr<*"!<3#u +!;lfq!<3#r!<<*!!<)rt!<<*!!<<*!!<3#u!<<*!!<<*!!<<*!!<<*!!<)rs!<<*!!<)rr!<<*! +!<3#r!94%X!;-;A~> +PQ(U_WW)quJcG]KrW)9a!!&Si!!'M.!!&_m!!'A*rrCFG!!)$YrrDusrrE&urrE&urr<*"!<3#u +!;lfq!<3#r!<<*!!<)rt!<<*!!<<*!!<3#u!<<*!!<<*!!<<*!!<<*!!<)rs!<<*!!<)rr!<<*! +!<3#r!94%X!;-;A~> +PQ(XXWW)quJcG]K!W[b$li-t[Sc8]b\,QI'U&P,fZiC(#d/O(GirB#Yr;Zcsrr;uurr;uu!WN0! +s8N)rs8E#ts82lss8N)ts8N*!s8N*!s8N)us8N*!s8N*!s8N*!s8N*!s8N)ts8E#us8N)ts8;rt +s8N)us82lVrrN1NJFrkl~> +PQ(U_WW)quJcG]KrW)9a!!&Si!!'M.!!&bn!!'D+rrC@E!!)$YrrDusrrE&urrE&urr<*"!<3#u +!;lfq!<3#u!;uls!<)rt!<<*!!<<*!!<3#u!<<*!!<<*!!<<*!!<<*!!;uls!<<*!!<3#u!!`H' +!<<'!!<3#u!8mhU!;-;A~> +PQ(U_WW)quJcG]KrW)9a!!&Si!!'M.!!&bn!!'D+rrC@E!!)$YrrDusrrE&urrE&urr<*"!<3#u +!;lfq!<3#u!;uls!<)rt!<<*!!<<*!!<3#u!<<*!!<<*!!<<*!!<<*!!;uls!<<*!!<3#u!!`H' +!<<'!!<3#u!8mhU!;-;A~> +PQ(XXWW)quJcG]K!W[b$li-t[Sc8]b\,QI'UAk5g[/^1$cMmkEirB#Yr;Zcsrr;uurr;uu!WN0! +s8N)rs8E#ts8N)ss8N)ts8N*!s8N*!s8N)us8N*!s8N*!s8N*!s8N*!s8N)ss8N*!s8N)us8N'' +rr<'!rr<&us8N)VrrN1NJFrkl~> +PQ(U_WW)quJcG]KrW)9a!!&Ph!!'P/!!&eo!!'D+!!(7C!!)$YrrDusrrE&urrE#trrE#trrDus +#QXo)!!*'!!!)rsrrE#trr<'!rW)uurrE&urrE*!rrE*!rrE*!rrE*!rr<*"!<3#u!<<*!!<3#u +!!`H'!<<'!!<3#u!8mhU!;-;A~> +PQ(U_WW)quJcG]KrW)9a!!&Ph!!'P/!!&eo!!'D+!!(7C!!)$YrrDusrrE&urrE#trrE#trrDus +#QXo)!!*'!!!)rsrrE#trr<'!rW)uurrE&urrE*!rrE*!rrE*!rrE*!rr<*"!<3#u!<<*!!<3#u +!!`H'!<<'!!<3#u!8mhU!;-;A~> +PQ(XXWW)quJcG]K!W[b$li-t[SGrTa\GlR(U]1>h[/U.$bl7YCirB#Yr;Zcsrr;uurVultrVult +r;R$&s8N'!s8N'!r;ZcsrVult!<<#us8W*!rr;uus8W*!s8W*!s8W*!s8W*!!WN0!s8N*!s8N)u +s8N''rr<'!rr<&us8N)VrrN1NJFrkl~> +PQ(U_WW)quJcG]KrW)9a!!&Ph!!'P/!!&hp!!'G,rrC7B!!)$YqZ-ZrrW)uurW)uurrE#tq>gKo +rrE*!r;cisr;cltrr<-#!!*#urW!$"!!*#ur;cisrrE*!rrE*!r;cfrrW)uuquHcsrW)uur;bjW +rW)TjJ,~> +PQ(U_WW)quJcG]KrW)9a!!&Ph!!'P/!!&hp!!'G,rrC7B!!)$YqZ-ZrrW)uurW)uurrE#tq>gKo +rrE*!r;cisr;cltrr<-#!!*#urW!$"!!*#ur;cisrrE*!rrE*!r;cfrrW)uuquHcsrW)uur;bjW +rW)TjJ,~> +PQ(XXWW)quJcG]K!W[b$li-t[SGrTa\GlR(V#LGi[K$:%bPqPBirAlUs8W&us8W&us8W*!rVu]o +rVults8W#trr;oss8W*!!ri6#rr;rt!ri6#rr;osrr;uus8W*!s8W#trVuiss8Vuss8W&us8W#t +ir9&[J:R:lJ,~> +PQ(U_WW)quJcG]KrW)9a!!&Mg!!'S0!!&kq!!'J-rrC1@!!%TMdf9:Ho`'F~> +PQ(U_WW)quJcG]KrW)9a!!&Mg!!'S0!!&kq!!'J-rrC1@!!%TMdf9:Ho`'F~> +PQ(XXWW)quJcG]K!W[b$li-t[S,WK`\c2[)V>gPj[f?C&ao;>@JcF0u!W[b$o`'F~> +PQ(U_WW)quJcG]KrW)9a!!&Mg!!'S0!!&nr!!'M.rrC+>!!%TMdf9:Ho`'F~> +PQ(U_WW)quJcG]KrW)9a!!&Mg!!'S0!!&nr!!'M.rrC+>!!%TMdf9:Ho`'F~> +PQ(XXWW)quJcG]K!W[b$li-t[S,WK`\c2[)VZ-Yk\,ZL'a8Z,>JcF0u!W[b$o`'F~> +PQ(U_WW)quJcG]KrW)9a!!&Jf!!'V1!!&qs!!'P/rrC% +PQ(U_WW)quJcG]KrW)9a!!&Jf!!'V1!!&qs!!'P/rrC% +PQ(XXWW)quJcG]K!W[b$li-t[Rf +PQ(U_WW)quJcG]KrW)9a!!&Jf!!'V1!!&tt!!'P/!!'q:!!%TMdf9:Ho`'F~> +PQ(U_WW)quJcG]KrW)9a!!&Jf!!'V1!!&tt!!'P/!!'q:!!%TMdf9:Ho`'F~> +PQ(XXWW)quJcG]K!W[b$li-t[Rf +PQ(U_WW)quJcG]KrW)9a!!&Ge!!'Y2!!'"u!!'S0rrBq9!!%TMdf9:Ho`'F~> +PQ(U_WW)quJcG]KrW)9a!!&Ge!!'Y2!!'"u!!'S0rrBq9!!%TMdf9:Ho`'F~> +PQ(XXWW)quJcG]K!W[b$li-t[RK!9^]Dhm+WW)tn\c;^)_Z'T9JcF0u!W[b$o`'F~> +PQ(U_WW)quJcG]KrW)9a!!&Ge!!'Y2!!'&!!!'V1rrBk7!!%TMdf9:Ho`'F~> +PQ(U_WW)quJcG]KrW)9a!!&Ge!!'Y2!!'&!!!'V1rrBk7!!%TMdf9:Ho`'F~> +PQ(XXWW)quJcG]K!W[b$li-t[RK!9^]Dhm+WrE(o])Vg*_#FB7JcF0u!W[b$o`'F~> +PQ(U_WW)quJcG]KrW)9a!!&Dd!!'\3!!')"!!'Y2rrBe5!!%TMdf9:Ho`'F~> +PQ(U_WW)quJcG]KrW)9a!!&Dd!!'\3!!')"!!'Y2rrBe5!!%TMdf9:Ho`'F~> +PQ(XXWW)quJcG]K!W[b$li-t[R/[0]]`/!,X8`1p]Dqp+^Ae05JcF0u!W[b$o`'F~> +PQ(U_WW)quJcG]KrW)9a!!&Ac!!'_4!!',#!!'\3rrB_3!!%TMdf9:Ho`'F~> +PQ(U_WW)quJcG]KrW)9a!!&Ac!!'_4!!',#!!'\3rrB_3!!%TMdf9:Ho`'F~> +PQ(XXWW)quJcG]K!W[b$li-t[Qi@'\^&J*-XT&:q]`8$,]`.s3JcF0u!W[b$o`'F~> +PQ(U_WW)quJcG]KrW)9a!!&Ac!!'_4!!'/$!!'\3!!'V1!!%TMdf9:Ho`'F~> +PQ(U_WW)quJcG]KrW)9a!!&Ac!!'_4!!'/$!!'\3!!'V1!!%TMdf9:Ho`'F~> +PQ(XXWW)quJcG]K!W[b$li-t[Qi@'\^&J*-XoACr]`/!,])Ma1JcF0u!W[b$o`'F~> +PQ(U_WW)quJcG]KrW)9a!!&>b!!'b5!!'2%!!'_4rrBV0JH3sqo`'F~> +PQ(U_WW)quJcG]KrW)9a!!&>b!!'b5!!'2%!!'_4rrBV0JH3sqo`'F~> +PQ(XXWW)quJcG]K!W[b$li-t[QN$s[^Ae3.Y5\Ls^&S--\c73\ciF)ro`'F~> +PQ(U_WW)quJcG]KrW)9a!!&>b!!'b5!!'8'rrBe5rrBP.!!%TMdf9:Ho`'F~> +PQ(U_WW)quJcG]KrW)9a!!&>b!!'b5!!'8'rrBe5rrBP.!!%TMdf9:Ho`'F~> +PQ(XXWW)quJcG]K!W[b$li-t[QN$s[^Ae3.YlFau^An6.\,QF.JcF0u!W[b$o`'F~> +PQ(U_WW)quJcG]KrW)9a!!&;a!!'e6!!';(!!'b5rrBJ,!!%TMdf9:Ho`'F~> +PQ(U_WW)quJcG]KrW)9a!!&;a!!'e6!!';(!!'b5rrBJ,!!%TMdf9:Ho`'F~> +PQ(XXWW)quJcG]K!W[b$li-t[Q2^jZ^]+ +PQ(U_WW)quJcG]KrW)9a!!&;a!!'e6!!'>)!!'e6rrBD*!!%TMdf9:Ho`'F~> +PQ(U_WW)quJcG]KrW)9a!!&;a!!'e6!!'>)!!'e6rrBD*!!%TMdf9:Ho`'F~> +PQ(XXWW)quJcG]K!W[b$li-t[Q2^jZ^]+ +PQ(U_WW)quJcG]KrW)9a!!&8`!!'h7!!'A*!!'e6!!';(!!%TMdf9:Ho`'F~> +PQ(U_WW)quJcG]KrW)9a!!&8`!!'h7!!'A*!!'e6!!';(!!%TMdf9:Ho`'F~> +PQ(XXWW)quJcG]K!W[b$li-t[PlCaY_#FE0Zi:%#^]+ +PQ(U_WW)quJcG]KrW)9a!!&8`!!'h7!!'D+!!'h7rrB;'!!%TMdf9:Ho`'F~> +PQ(U_WW)quJcG]KrW)9a!!&8`!!'h7!!'D+!!'h7rrB;'!!%TMdf9:Ho`'F~> +PQ(XXWW)quJcG]K!W[b$li-t[PlCaY_#FE0[/U.$_#OH0Yl=\'JcF0u!W[b$o`'F~> +PQ(U_WW)quJcG]KrW)9a!!&5_!!'k8!!'G,!!'k8rrB5%!!%TMdf9:Ho`'F~> +PQ(U_WW)quJcG]KrW)9a!!&5_!!'k8!!'G,!!'k8rrB5%!!%TMdf9:Ho`'F~> +PQ(XXWW)quJcG]K!W[b$li-t[PQ(XX_>aN1[Jp7%_>jQ1Y5\J%JcF0u!W[b$o`'F~> +PQ(U_WW.MLq#Ka\!!&2^!!'n9!!'J-!!'n9rrB/#!!%TMdf9:Ho`'F~> +PQ(U_WW.MLq#Ka\!!&2^!!'n9!!'J-!!'n9rrB/#!!%TMdf9:Ho`'F~> +PQ(XXWW.MLqZ-YHli-t[P5bOW_Z'W2[f6@&_Z0Z2XT&8#JcF0u!W[b$o`'F~> +PQ(U_VZ22IquH'_!!&2^!!'n9!!'M.!!'q:rrB)!!!%TMdf9:Ho`'F~> +PQ(U_VZ22IquH'_!!&2^!!'n9!!'M.!!'q:rrB)!!!%TMdf9:Ho`'F~> +PQ(XXVZ23tr.+,5!;M`W!;OG2!;O&'!;OJ3s7iVo!!%TMdf0@KJ:R:lJ,~> +PQ(U_VZ22IquH'_!!&/]!!'q:!!'P/!!'q:!!&tt!!%TMdf9:Ho`'F~> +PQ(U_VZ22IquH'_!!&/]!!'q:!!'P/!!'q:!!&tt!!%TMdf9:Ho`'F~> +PQ(XXVZ23tr.+,5!;M]V!;OJ3!;O)(!;OJ3!;NMm!!%TMdf0@KJ:R:lJ,~> +PQ(U_JcEC_!!(FH!!&/]!!'q:!!'S0!!'t;rrAts!!%TMdf9:Ho`'F~> +PQ(U_JcEC_!!(FH!!&/]!!'q:!!'S0!!'t;rrAts!!%TMdf9:Ho`'F~> +PQ(XXJcEC_!;OtA!;M]V!;OJ3!;O,)!;OM4s7iMl!!%TMdf0@KJ:R:lJ,~> +PQ(U_JcEC_!!(FH!!&,\!!'t;!!'V1!!(" +PQ(U_JcEC_!!(FH!!&,\!!'t;!!'V1!!(" +PQ(XXJcEC_!;OtA!;MZU!;OM4!;O/*!;OP5s7iGj!!%TMdf0@KJ:R:lJ,~> +PQ(U_JcEF`rW(CH!!&,\!!'t;!!'Y2!!(%=rrAho!!)9`!!)HeqZ,UT!!)Qh!!)rs!!)Ti!!(7C +rW)TjJ,~> +PQ(U_JcEF`rW(CH!!&,\!!'t;!!'Y2!!(%=rrAho!!)9`!!)HeqZ,UT!!)Qh!!)rs!!)Ti!!(7C +rW)TjJ,~> +PQ(XXJcEF`rqOqA!;MZU!;OM4!;O2+!;OS6s7iAh!!)9`!!)HeqZ,UT!!)Qh!!)rs!!)Ti!!(7C +!W[b$o`'F~> +PQ(U_JcEjlrrDfnrW(CH!!&)[!!("rrAbm!!)Qh!!)lq!!)rs!!*#u!!)fo!!(sW +!!)EdrrE&urrDWi!!(7CrW)TjJ,~> +PQ(U_JcEjlrrDfnrW(CH!!&)[!!("rrAbm!!)Qh!!)lq!!)rs!!*#u!!)fo!!(sW +!!)EdrrE&urrDWi!!(7CrW)TjJ,~> +PQ(XXJcEjls7l?grqOqA!;MWT!;OP5!;O5,!;OV7s7i;f!!)Qh!!)lq!!)rs!!*#u!!)fo!!(sW +!!)EdrrE&urrDWi!!(7C!W[b$o`'F~> +PQ(U_JcEmm!W`6#q#:HsrrE'!e,KCJO8f1[`W#o<^&J'4a8Z,>TDnlkq#: +PQ(U_JcEmm!W`6#q#:HsrrE'!e,KCJO8f1[`W#o<^&J'4a8Z,>TDnlkq#: +PQ(XXJcEmm!r2fjq#:Kls7lWhe,KFCO8f4T`W#r5^&J*-a8Z/7TDnlkq#: +PQ(U_JcEgk!!)fo"9AH%rrCOJ!!&&Z!!(%=!!'b5!!(+?rrAYj!!)fo!!)or!!)lq!!)rs!!*#u +!!*#u!!*#u!W`6#qYpTsrrE&u!!*#u!s&B$!;uis!<3!#!<<'!rr3'#s8N)urt#21rr<'!rrE*! +!<3'!!<3&urr<&urrW9$rrE&urrE*!!!*#u!!(LJrW)TjJ,~> +PQ(U_JcEgk!!)fo"9AH%rrCOJ!!&&Z!!(%=!!'b5!!(+?rrAYj!!)fo!!)or!!)lq!!)rs!!*#u +!!*#u!!*#u!W`6#qYpTsrrE&u!!*#u!s&B$!;uis!<3!#!<<'!rr3'#s8N)urt#21rr<'!rrE*! +!<3'!!<3&urr<&urrW9$rrE&urrE*!!!*#u!!(LJrW)TjJ,~> +PQ(XXJcEgk!;Q?h"Si#ls7k(C!;MTS!;OS6!;O;.!;OY8s7i2c!!)fo!!)or!!)lq!!)rs!!*#u +!!*#u!!*#u!W`6#qYpTsrrE&u!!*#u!s&B$!;uis!<3!#!<<'!rr3'#s8N)urt#21rr<'!rrE*! +!<3'!!<3&urr<&urrW9$rrE&urrE*!!!*#u!!(LJ!W[b$o`'F~> +PQ(U_JcEgk!!)ip"p"]'!<<'!eGfLKNrK(Z`r?#=^]+96aoDA@SGrQhq#: +PQ(U_JcEgk!!)ip"p"]'!<<'!eGfLKNrK(Z`r?#=^]+96aoDA@SGrQhq#: +PQ(XXJcEgk!;QBi#5J5uq#CBheGfODNrK+S`r?&6^]+ +PQ(U_JcEgk!!)ip"p"]'!<<'!eGfLKNW/tYa8Z,>_#FB7b5_JARf +PQ(U_JcEgk!!)ip"p"]'!<<'!eGfLKNW/tYa8Z,>_#FB7b5_JARf +PQ(XXJcEgk!;QBi#5J5uq#CBheGfODNW0"Ra8Z/7_#FE0b5_M:Rf +PQ(U_JcEgk!!)ip"p"]'!<<'!eGfLKN;ikXaSu5?_>aK8bQ%SBR/[-dq#: +PQ(U_JcEgk!!)ip"p"]'!<<'!eGfLKN;ikXaSu5?_>aK8bQ%SBR/[-dq#: +PQ(XXJcEgk!;QBi#5J5uq#CBheGfODN;inQaSu88_>aN1bQ%V;R/[-dq#: +PQ(U_JcEgk!!)lq!!*#u!!*#u!!(RL!!%uX!!(+?!!'n9!!(7CrrAAb!!)fo!!)or!!)lq!!)rs +!!*#u!!)ut"T\Q&s8N)qrrN3#!<2uu!;lcr!;uj%!<<'!!<<'!rr3'#s8N)urrW9$rrE&u#lt#* +!<<'!s8N)urr<&urrW9$rrE&urrE*!!!(@FrW)TjJ,~> +PQ(U_JcEgk!!)lq!!*#u!!*#u!!(RL!!%uX!!(+?!!'n9!!(7CrrAAb!!)fo!!)or!!)lq!!)rs +!!*#u!!)ut"T\Q&s8N)qrrN3#!<2uu!;lcr!;uj%!<<'!!<<'!rr3'#s8N)urrW9$rrE&u#lt#* +!<<'!s8N)urr<&urrW9$rrE&urrE*!!!(@FrW)TjJ,~> +PQ(XXJcEgk!;QEj!;QQn!;QQn!;P+E!;MNQ!;OY8!;OG2!;Oe +PQ(U_JcEgk!!)lq!!*#u!!*#u!!(RL!!%rW!!(.@!!'q:!!(7C!!&8`!!)fo!!)lq!s&B$!<3#r +!<<'!!<2uu!<)ot!<3#q!!3*"rr2rurr;osrr;rtrr;uu!WN0!rrW9$rrE&urW)rt!!*#u!s&B$ +!;uis!<)rs!<)rs!!3*"rr;ose,TCIo`'F~> +PQ(U_JcEgk!!)lq!!*#u!!*#u!!(RL!!%rW!!(.@!!'q:!!(7C!!&8`!!)fo!!)lq!s&B$!<3#r +!<<'!!<2uu!<)ot!<3#q!!3*"rr2rurr;osrr;rtrr;uu!WN0!rrW9$rrE&urW)rt!!*#u!s&B$ +!;uis!<)rs!<)rs!!3*"rr;ose,TCIo`'F~> +PQ(XXJcEgk!;QEj!;QQn!;QQn!;P+E!;MKP!;O\9!;OJ3!;Oe +PQ(U_JcEmmquH]q!!)ut!!)ut!!(UM!!%rW!!(.@!!'t;!!(:DrrA8_!!%TMdf9:Ho`'F~> +PQ(U_JcEmmquH]q!!)ut!!)ut!!(UM!!%rW!!(.@!!'t;!!(:DrrA8_!!%TMdf9:Ho`'F~> +PQ(XXJcEmmr:p6j!;QNm!;QNm!;P.F!;MKP!;O\9!;OM4!;Oh=s7hfX!!%TMdf0@KJ:R:lJ,~> +PQ(U_JcERd!!)ut!!)ut!!(UM!!%oV!!(1A!!(" +PQ(U_JcERd!!)ut!!)ut!!(UM!!%oV!!(1A!!(" +PQ(XXJcERd!;QNm!;QNm!;P.F!;MHO!;O_:!;OP5!;Ok>s7h`V!!%TMdf0@KJ:R:lJ,~> +PQ(U_JcEC_!!(FH!!%oV!!(1A!!(%=!!(@FrrA,[!!%TMdf9:Ho`'F~> +PQ(U_JcEC_!!(FH!!%oV!!(1A!!(%=!!(@FrrA,[!!%TMdf9:Ho`'F~> +PQ(XXJcEC_!;OtA!;MHO!;O_:!;OS6!;On?s7hZT!!%TMdf0@KJ:R:lJ,~> +PQ(U_JcEC_!!(FH!!%lU!!(4B!!((>!!(CGrrA&Y!!%TMdf9:Ho`'F~> +PQ(U_JcEC_!!(FH!!%lU!!(4B!!((>!!(CGrrA&Y!!%TMdf9:Ho`'F~> +PQ(XXJcEC_!;OtA!;MEN!;Ob;!;OV7!;Oq@s7hTR!!%TMdf0@KJ:R:lJ,~> +PQ(U_JcEC_!!(FH!!%lU!!(4B!!(+?!!(CG!!%rW!!%TMdf9:Ho`'F~> +PQ(U_JcEC_!!(FH!!%lU!!(4B!!(+?!!(CG!!%rW!!%TMdf9:Ho`'F~> +PQ(XXJcEC_!;OtA!;MEN!;Ob;!;OY8!;Oq@!;MKP!!%TMdf0@KJ:R:lJ,~> +PQ(U_JcEC_!!(FH!!%iT!!(7C!!(.@!!(FHrr@rV!!%TMdf9:Ho`'F~> +PQ(U_JcEC_!!(FH!!%iT!!(7C!!(.@!!(FHrr@rV!!%TMdf9:Ho`'F~> +PQ(XXJcEC_!;OtA!;MBM!;Oe +PQ(U_JcEC_!!(FH!!%fS!!(:D!!(1A!!(IIrr@lT!!)0]!!)HeqZ,UT!!)QhquHQm!!)'Z!!)-\ +rW)TjJ,~> +PQ(U_JcEC_!!(FH!!%fS!!(:D!!(1A!!(IIrr@lT!!)0]!!)HeqZ,UT!!)QhquHQm!!)'Z!!)-\ +rW)TjJ,~> +PQ(XXJcEC_!;OtA!;M?L!;Oh=!;O_:!;P"Bs7hEM!!)0]!!)HeqZ,UT!!)QhquHQm!!)'Z!!)-\ +!W[b$o`'F~> +PQ(U_JcEC_!!(FH!!%fS!!(:D!!(4B!!(LJrr@fR!!)0]!!)rs!!*#u!!)fo!!(sW!!)He!!)Zk +!!)'Z!!)-\rW)TjJ,~> +PQ(U_JcEC_!!(FH!!%fS!!(:D!!(4B!!(LJrr@fR!!)0]!!)rs!!*#u!!)fo!!(sW!!)He!!)Zk +!!)'Z!!)-\rW)TjJ,~> +PQ(XXJcEC_!;OtA!;M?L!;Oh=!;Ob;!;P%Cs7h?K!!)0]!!)rs!!*#u!!)fo!!(sW!!)He!!)Zk +!!)'Z!!)-\!W[b$o`'F~> +PQ(U_JcEC_!!(FH!!%cR!!(=E!!(7C!!(OKrr@`P!!)fo!!)or!s&?$!<2uu!<2uu!<)rs!!*&u +!!3*"r;Zcsqu6Wrrr2rurr;rtrVuiss8N'!rr3!!s8E#urr<&us8E#trrrK'!!*'!!;lcr!<3!$ +!<<'!s8E#trs&Q(!!*'!!!)utrW)osrW!!!!<3#t!:0[a!;-;A~> +PQ(U_JcEC_!!(FH!!%cR!!(=E!!(7C!!(OKrr@`P!!)fo!!)or!s&?$!<2uu!<2uu!<)rs!!*&u +!!3*"r;Zcsqu6Wrrr2rurr;rtrVuiss8N'!rr3!!s8E#urr<&us8E#trrrK'!!*'!!;lcr!<3!$ +!<<'!s8E#trs&Q(!!*'!!!)utrW)osrW!!!!<3#t!:0[a!;-;A~> +PQ(XXJcEC_!;OtA!;M!;Oe +PQ(U_JcEC_!!(FH!!%cR!!(=E!!(:D!!(OK!!%WN!!)fo!!)orrrE*!!!)or!!)rs!!*#u!!*#u +!!*#u!W`6#qYpTsrrE&u!!*#u!s&B$!;uis!<3!#!<<'!rr3'#s8N)ursAc+rr<'!rrE*!!;uis +!<3!$!<<'!!<3!.!<<'!!<<'!!<<'!s8N)urrW9$rrE&urrE*!!!*#u!!)BcrW)TjJ,~> +PQ(U_JcEC_!!(FH!!%cR!!(=E!!(:D!!(OK!!%WN!!)fo!!)orrrE*!!!)or!!)rs!!*#u!!*#u +!!*#u!W`6#qYpTsrrE&u!!*#u!s&B$!;uis!<3!#!<<'!rr3'#s8N)ursAc+rr<'!rrE*!!;uis +!<3!$!<<'!!<3!.!<<'!!<<'!!<<'!s8N)urrW9$rrE&urrE*!!!*#u!!)BcrW)TjJ,~> +PQ(XXJcEC_!;OtA!;M!;Oh=!;P(D!;M0G!!)fo!!)orrrE*!!!)or!!)rs!!*#u!!*#u +!!*#u!W`6#qYpTsrrE&u!!*#u!s&B$!;uis!<3!#!<<'!rr3'#s8N)ursAc+rr<'!rrE*!!;uis +!<3!$!<<'!!<3!.!<<'!!<<'!!<<'!s8N)urrW9$rrE&urrE*!!!*#u!!)Bc!W[b$o`'F~> +PQ(U_JcEC_!!(FH!!%`Q!!(@F!!(=E!!(RLrr@WM!!)fo!!)or!!*#u!!)or!!)rs!!*#u!!*#u +!!*#u! +PQ(U_JcEC_!!(FH!!%`Q!!(@F!!(=E!!(RLrr@WM!!)fo!!)or!!*#u!!)or!!)rs!!*#u!!*#u +!!*#u! +PQ(XXJcEC_!;OtA!;M9J!;On?!;Ok>!;P+Es7h0F!!)fo!!)or!!*#u!!)or!!)rs!!*#u!!*#u +!!*#u! +PQ(U_JcEC_!!(FH!!%`Q!!(@F!!(@F!!(UMrr@WMs8N'!qu?Kmrr2rurr2ruqu6Wrr;Q`srr2ru +rVm$$rrE*!!;ZWp!<)rq!<<'!!;uis!<3!#!<<'!rr3'#s8N)urrW9$rrE&u!!)rs!s&B$!<3!# +!<<'!rVls"s8N)urr<&urrW9$rrE&u!s&B$!<)p!!<<)s!:9ab!;-;A~> +PQ(U_JcEC_!!(FH!!%`Q!!(@F!!(@F!!(UMrr@WMs8N'!qu?Kmrr2rurr2ruqu6Wrr;Q`srr2ru +rVm$$rrE*!!;ZWp!<)rq!<<'!!;uis!<3!#!<<'!rr3'#s8N)urrW9$rrE&u!!)rs!s&B$!<3!# +!<<'!rVls"s8N)urr<&urrW9$rrE&u!s&B$!<)p!!<<)s!:9ab!;-;A~> +PQ(XXJcEC_!;OtA!;M9J!;On?!;On?!;P.Fs7h0Fs8N'!qu?Kmrr2rurr2ruqu6Wrr;Q`srr2ru +rVm$$rrE*!!;ZWp!<)rq!<<'!!;uis!<3!#!<<'!rr3'#s8N)urrW9$rrE&u!!)rs!s&B$!<3!# +!<<'!rVls"s8N)urr<&urrW9$rrE&u!s&B$!<)p!!<<)s!:9^e!.]Uls*t~> +PQ(U_JcEC_!!(FH!!%]P!!(CG!!(CG!!(XNrr@WMrVlitq#: +PQ(U_JcEC_!!(FH!!%]P!!(CG!!(CG!!(XNrr@WMrVlitq#: +PQ(XXJcEC_!;OtA!;M6I!;Oq@!;Oq@!;P1Gs7h0FrVlitq#: +PQ(U_JcEC_!!(FH!!%]P!!(CG!!(FH!!([Orr@WMqu6Wrq#: +PQ(U_JcEC_!!(FH!!%]P!!(CG!!(FH!!([Orr@WMqu6Wrq#: +PQ(XXJcEC_!;OtA!;M6I!;Oq@!;OtA!;P4Hs7h0Fqu6Wrq#: +PQ(U_JcEC_!!(FH!!%ZO!!(FH!!(II!!([O!!%TMq>UEpq#: +PQ(U_JcEC_!!(FH!!%ZO!!(FH!!(II!!([O!!%TMq>UEpq#: +PQ(XXJcEC_!;OtA!;M3H!;OtA!;P"B!;P4H!;M-Fq>UEpq#: +PQ(U_JcF@%M?'dY!!(FH!!(LJ!!(^Prr@WMq#: +PQ(U_JcF@%M?'dY!!(FH!!(LJ!!(^Prr@WMq#: +PQ(XXJcF@%M?'dY!;OtA!;P%C!;P7Is7h0Fq#: +PQ(U_JcF@%!!%uX!!',#!!(II!!(OK!!(aQrr@WMpAY*mJcF0urW)TjJ,~> +PQ(U_JcF@%!!%uX!!',#!!(II!!(OK!!(aQrr@WMpAY*mJcF0urW)TjJ,~> +PQ(XXJcF@%!!%uX!!',#!;P"B!;P(D!;P:Js7h0FpAY*mJcF0u!W[b$o`'F~> +PQ(U_JcF@%!!%uX!!')"!!(LJ!!(RL!!(dRrr@WMo`"mkJcF0urW)TjJ,~> +PQ(U_JcF@%!!%uX!!')"!!(LJ!!(RL!!(dRrr@WMo`"mkJcF0urW)TjJ,~> +PQ(XXJcF@%!!%uX!!')"!;P%C!;P+E!;P=Ks7h0Fo`"mkJcF0u!W[b$o`'F~> +PQ(U_JcF@%!!%uXrW')#!!(LJ!!(UM!!(gSrr@WMo)A[iJcF0urW)TjJ,~> +PQ(U_JcF@%!!%uXrW')#!!(LJ!!(UM!!(gSrr@WMo)A[iJcF0urW)TjJ,~> +PQ(XXJcF@%!!%uX!W[b$XoACre,KFCf)GaFh#IELJcG<@!!%TMdf0@KJ:R:lJ,~> +PQ(U_JcF@%!!)Ngq#KOVr;ah:rW'&"!!(OK!!(XN!!(gS!!%TMnG`IgJcF0urW)TjJ,~> +PQ(U_JcF@%!!)Ngq#KOVr;ah:rW'&"!!(OK!!(XN!!(gS!!%TMnG`IgJcF0urW)TjJ,~> +PQ(XXJcF@%!!)Ngq#KOVr;ah:!W[b$XT&:qeGfODfDbjGh#@BLJcG6>!!%TMdf0@KJ:R:lJ,~> +PQ(U_JcF@%!!)EdrrD*ZrrE&u!!)KfrrDQgrrDHdrW'&"!!(OK!!([O!!(jTrr@WMn,E@fJcF0u +rW)TjJ,~> +PQ(U_JcF@%!!)EdrrD*ZrrE&u!!)KfrrDQgrrDHdrW'&"!!(OK!!([O!!(jTrr@WMn,E@fJcF0u +rW)TjJ,~> +PQ(XXJcF@%!!)EdrrD*ZrrE&u!!)KfrrDQgrrDHd!W[b$XT&:qeGfODf`(sHh>dNMJcG3=!!%TM +df0@KJ:R:lJ,~> +PQ(U_JcF@%!!)EdrrE#trr<-#!<;utrVufrs8W&urr;uuq>^Bnrr;uu"TJH%s8W#trr;rts8W*! +rVucqmf37dX8`/"ec,ULg&D$PhZ*TUJcG-;!!(CG!!)]lq>gQq!!&JfrW)TjJ,~> +PQ(U_JcF@%!!)EdrrE#trr<-#!<;utrVufrs8W&urr;uuq>^Bnrr;uu"TJH%s8W#trr;rts8W*! +rVucqmf37dX8`/"ec,ULg&D$PhZ*TUJcG-;!!(CG!!)]lq>gQq!!&JfrW)TjJ,~> +PQ(XXJcF@%!!)EdrrE#trr<-#!<;utrVufrs8W&urr;uuq>^Bnrr;uu"TJH%s8W#trr;rts8W*! +rVucqmf*=gJ:O^#!;P+E!;P7I!;PFNs7h0FmJd.dd/O(Gp&Fjgs8N'!Rf +PQ(U_JcF@%!!)EdrrE#trW)lrrrE*!rrE#trr<9'!!*'!!!)lqrrE*!rrE*!rW!0&!!*'!!!*#u +rr +PQ(U_JcF@%!!)EdrrE#trW)lrrrE*!rrE#trr<9'!!*'!!!)lqrrE*!rrE*!rW!0&!!*'!!!*#u +rr +PQ(XXJcF@%!!)EdrrE#trW)lrrrE*!rrE#trr<9'!!*'!!!)lqrrE*!rrE*!rW!0&!!*'!!!*#u +rr +PQ(U_JcF@%!!)EdrrE#trrDrrrrE*!rrE#trr<9'!!*'!!!)lqrrE*!rrE*!rrE*!rrE*!rrE&u +rr<-#!!*#urW)rtrrDHdrW&tu!!(UM!!(dR!!(sWrr@WMl2L_`q#: +PQ(U_JcF@%!!)EdrrE#trrDrrrrE*!rrE#trr<9'!!*'!!!)lqrrE*!rrE*!rrE*!rrE*!rrE&u +rr<-#!!*#urW)rtrrDHdrW&tu!!(UM!!(dR!!(sWrr@WMl2L_`q#: +PQ(XXJcF@%!!)EdrrE#trrDrrrrE*!rrE#trr<9'!!*'!!!)lqrrE*!rrE*!rrE*!rrE*!rrE&u +rr<-#!!*#urW)rtrrDHd!W[b$WrE(of)GaFg]%9Ki;`iPJcG!7!!)fo!!)lqrW)rt"T\Q&!<<)u +!<<'"!<<#ur;Zcsrr2rurVuis!<<#urVlitr;R*(s8N*!!!*'!!!)utrW'#!!W[b$o`'F~> +PQ(U_JcF@%!!)EdrrE#trrE#tr;cltrrE#tquHcsrrDoqrrE*!rrE*!rrE*!rrE*!rrE&uquH`r +rW)rtrrDHdrW&tu!!(UM!!(gS!!(sW!!%TMkPkM^q#: +PQ(U_JcF@%!!)EdrrE#trrE#tr;cltrrE#tquHcsrrDoqrrE*!rrE*!rrE*!rrE*!rrE&uquH`r +rW)rtrrDHdrW&tu!!(UM!!(gS!!(sW!!%TMkPkM^q#: +PQ(XXJcF@%!!)EdrrE#trrE#tr;cltrrE#tquHcsrrDoqrrE*!rrE*!rrE*!rrE*!rrE&uquH`r +rW)rtrrDHd!W[b$WrE(of)GaFh#@BLi;WfPJcFp5!!)fo!!)or!!*#u$3:,+!!*'!!<<'!rr;uu +s8N'!r;Q`srVlitr;Q`srr2rur;Q`sr;R6,s8N'!s8N'!s8N*!rrE&u!!',#!W[b$o`'F~> +PQ(U_JcF@%!!)EdrrE#trrE&urr<9'!!*'!!!)utrrDusrrDoqrrE*!rrE*!rrE*!rrE*!rrE&u +rrDrrrW)rtrrDHdrW&qt!!(XN!!(jT!!)!Xrr@WMk5PD]q#: +PQ(U_JcF@%!!)EdrrE#trrE&urr<9'!!*'!!!)utrrDusrrDoqrrE*!rrE*!rrE*!rrE*!rrE&u +rrDrrrW)rtrrDHdrW&qt!!(XN!!(jT!!)!Xrr@WMk5PD]q#: +PQ(XXJcF@%!!)EdrrE#trrE&urr<9'!!*'!!!)utrrDusrrDoqrrE*!rrE*!rrE*!rrE*!rrE&u +rrDrrrW)rtrrDHd!W[b$WW)tnfDbjGh>[KMiW&rQJcFm4!!)fo!!)or!!*#u!s&B$!<3!#!<<'! +rr2rurVlitrr2rur;Q`sr;Q`srr2rur;Q`sr;Qj!s8N)urr<&urrW9$rrE&u!!',#!W[b$o`'F~> +f`-L&joDL_!!)EdrrE#trrE&urr<9'!!*'!!!)utrrDrrrrE&u'EJ15!!*'!!!*'!!!*'!!!*'! +!!*#urrDus#QXo)!!*'!!!)EdrW&ns!!([O!!(mU!!)$Yrr@WMjSo2[qu?Kmrr;lrs8N'!rr3'# +s8N)urr<&trr<&urr<&srr<&srr<&urr<&srr<&srrW9$rrE&u!!*#u!W`9#quEhurW)TjJ,~> +f`-L&joDL_!!)EdrrE#trrE&urr<9'!!*'!!!)utrrDrrrrE&u'EJ15!!*'!!!*'!!!*'!!!*'! +!!*#urrDus#QXo)!!*'!!!)EdrW&ns!!([O!!(mU!!)$Yrr@WMjSo2[qu?Kmrr;lrs8N'!rr3'# +s8N)urr<&trr<&urr<&srr<&srr<&urr<&srr<&srrW9$rrE&u!!*#u!W`9#quEhurW)TjJ,~> +f`-L&joDL_!!)EdrrE#trrE&urr<9'!!*'!!!)utrrDrrrrE&u'EJ15!!*'!!!*'!!!*'!!!*'! +!!*#urrDus#QXo)!!*'!!!)Ed!W[b$W;ckmf`(sHhZ!TNirB&RJcFg2!!)orq>gNpquHcs!!*#u +!s&B$!<2uu!<)ot!<2uu!;uis!;uis!<2uu!;uis!;uj!!<<'!rr2rurr3$"s8VusXT&>%J:R:l +J,~> +f`(pOJcFs6!!',#!!)EdrrE#trrE#tquHcsr;cltr;cfrr;cfrr;cisrrE*!rrE&urW)uur;Zlu +!<)rt!<<)u!:Tse!3#nt!8.;O!8meV!9=+Z!.k10rr<&orr<&rrr<&rrr<&urrW9$rrE&u!!)rs +!W`6#qu6Wrr;Q`srr2rur;Q`sr;Qj!s8N)urr<&urrW9$rrB"trW)TjJ,~> +f`(pOJcFs6!!',#!!)EdrrE#trrE#tquHcsr;cltr;cfrr;cfrr;cisrrE*!rrE&urW)uur;Zlu +!<)rt!<<)u!:Tse!3#nt!8.;O!8meV!9=+Z!.k10rr<&orr<&rrr<&rrr<&urrW9$rrE&u!!)rs +!W`6#qu6Wrr;Q`srr2rur;Q`sr;Qj!s8N)urr<&urrW9$rrB"trW)TjJ,~> +f`(pOJcFs6!!',#!!)EdrrE#trrE#tquHcsr;cltr;cfrr;cfrr;cisrrE*!rrE&urW)uur;Zlu +!<)rt!<<)u!:Tph!.]TurrDiHrrDiOrrDiSs8VkFs5O%Y!;QQo!;lcr!;lcr!<3!#!<<'!rr2ru +r;QfurrDrr!!)rs!!*#u!!)rs!!)rs!s&B$!<2uu!<3!#!<<'!W;co!J:R:lJ,~> +f`(pOJcFs6!!',#!!%uXrW&kr!!(^P!!(sW!!)*[rr@WMi;WcWq#: +f`(pOJcFs6!!',#!!%uXrW&kr!!(^P!!(sW!!)*[rr@WMi;WcWq#: +f`(pOJcFs6!!',#!!%uX!W[b$VuHblg&D'Ii;WfPjT#8TJcF[.!!)fo!!)or!!)or!!*#u!s&B$ +!<2uu!;uiu!<3&rrr<&srr<&urr<&srr<&srrW9$rrE&u!!*#u!s&B$!3#o!!.]Uls*t~> +f`(pOJcFs6rW',$!!%uXrW&kr!!(^P!!)!X!!)-\rr@WMhZ!QUq#: +f`(pOJcFs6rW',$!!%uXrW&kr!!(^P!!)!X!!)-\rr@WMhZ!QUq#: +f`(pOJcFs6!W[b$Y5\J%N;iqZJ:OQt!;P7I!;POQ!;P[Us7h0FhZ!QUq#: +f`(pOkPt>Xdf97G^&S'3Y5\J%N;rkWVZ-VrgA_-Qir8uYjo5;\JcFO*!!([O!!%TMr;Z`ro`'F~> +f`(pOkPt>Xdf97G^&S'3Y5\J%N;rkWVZ-VrgA_-Qir8uYjo5;\JcFO*!!([O!!%TMr;Z`ro`'F~> +f`(pOkPt>Xdf97G^&J-6J:Og&!!%uX!W[b$VZ-YkgA_0Jir9#Rjo5>UJcFO*!!([O!!%TMr;Qfu +J:R:lJ,~> +f`(pOjT#5[f)PaMrVultrr2run,NCfnGiLgjo>;[Y5\J%N;rkWVZ-VrgA_-Qj8T)Zk5YG]JcFL) +!!(^P!!%TMqu?Wqo`'F~> +f`(pOjT#5[f)PaMrVultrr2run,NCfnGiLgjo>;[Y5\J%N;rkWVZ-VrgA_-Qj8T)Zk5YG]JcFL) +!!(^P!!%TMqu?Wqo`'F~> +f`(pOjT#5[f)PaMrVultrr2run,NCfnGiLgjo5A^J:Og&!!%uX!W[b$VZ-YkgA_0Jj8T,Sk5YJV +JcFL)!!(^P!!%TMqu6]tJ:R:lJ,~> +f`(pOjT#5[rVult!ri9#r;cfrr;cltrW)osr;cisrW)uur;cltrrDlpr;cisrr<3%!!*'!r;cis +rW)uurrE#tquGmZrW',$!!%uXrW&ep!!(dR!!)*[!!)3^rr@WMg&D$PJcF0urW)TjJ,~> +f`(pOjT#5[rVult!ri9#r;cfrr;cltrW)osr;cisrW)uur;cltrrDlpr;cisrr<3%!!*'!r;cis +rW)uurrE#tquGmZrW',$!!%uXrW&ep!!(dR!!)*[!!)3^rr@WMg&D$PJcF0urW)TjJ,~> +f`(pOjT#5[rVult!ri9#r;cfrr;cltrW)osr;cisrW)uur;cltrrDlpr;cisrr<3%!!*'!r;cis +rW)uurrE#tquGmZ!W[b$Y5\J%N;iqZJ:OKr!;P=K!;PXT!;PaWs7h0Fg&D$PJcF0u!W[b$o`'F~> +f`(pOjT#5[rVuisr;Zcss8W*!rVult#6+Z's8N'!r;Zcs#6+Z's8N'!rr;uuqZ$Qqs8W*!s8W&u +#6+Z's8N'!rr;uu%K?D.s8N'!s8N*!rr<&\s8E#$rr<%Xs8E"prr<&Rrr<&\rr<&_s8N(Ms4@8N +!.k0us8E#js*t~> +f`(pOjT#5[rVuisr;Zcss8W*!rVult#6+Z's8N'!r;Zcs#6+Z's8N'!rr;uuqZ$Qqs8W*!s8W&u +#6+Z's8N'!rr;uu%K?D.s8N'!s8N*!rr<&\s8E#$rr<%Xs8E"prr<&Rrr<&\rr<&_s8N(Ms4@8N +!.k0us8E#js*t~> +f`(pOjT#5[rVuisr;Zcss8W*!rVult#6+Z's8N'!r;Zcs#6+Z's8N'!rr;uuqZ$Qqs8W*!s8W&u +#6+Z's8N'!rr;uu%K?D.s8N'!s8N*!rr<&\rrN1NJ?JnP!0$pZ!.]TrrrDiKrrDiUrrDiXs8VkF +s4@8N!.k0urrN1NJFrkl~> +f`(pOjT#5[rVultqu?Zrs8W*!rVult"TJH%s8W&urVult#6+Z's8N'!rr;uuqZ$Qqs8W*!s8W*! +s8W*!s8W*!rr;uu!ri6#rr;rtrr;uujo>;[Y5\J%N;rkWV#LDph#@?Sk5PD]l2Ub`JcF:#!!%TM +df9:Ho`'F~> +f`(pOjT#5[rVultqu?Zrs8W*!rVult"TJH%s8W&urVult#6+Z's8N'!rr;uuqZ$Qqs8W*!s8W*! +s8W*!s8W*!rr;uu!ri6#rr;rtrr;uujo>;[Y5\J%N;rkWV#LDph#@?Sk5PD]l2Ub`JcF:#!!%TM +df9:Ho`'F~> +f`(pOjT#5[rVultqu?Zrs8W*!rVult"TJH%s8W&urVult#6+Z's8N'!rr;uuqZ$Qqs8W*!s8W*! +s8W*!s8W*!rr;uu!ri6#rr;rtrr;uujo5A^J:Og&!!%uX!W[b$V#LGih#@BLk5PGVl2UeYJcF:# +!!%TMdf0@KJ:R:lJ,~> +f`(pOjT#5[rVultrVufrs8W*!rVucqrr;rtrr;lrs8W*!rr;uuqZ$Qqs8W*!s8W*!s8W*!s8W*! +rr;lrrr;rtrr;uujo>;[Y5\J%N;rkWV#LDph#@?SkPkM^l2L_`JcF4!!!%TMdf9:Ho`'F~> +f`(pOjT#5[rVultrVufrs8W*!rVucqrr;rtrr;lrs8W*!rr;uuqZ$Qqs8W*!s8W*!s8W*!s8W*! +rr;lrrr;rtrr;uujo>;[Y5\J%N;rkWV#LDph#@?SkPkM^l2L_`JcF4!!!%TMdf9:Ho`'F~> +f`(pOjT#5[rVultrVufrs8W*!rVucqrr;rtrr;lrs8W*!rr;uuqZ$Qqs8W*!s8W*!s8W*!s8W*! +rr;lrrr;rtrr;uujo5A^J:Og&!!%uX!W[b$V#LGih#@BLkPkPWl2LbYJcF4!!!%TMdf0@KJ:R:l +J,~> +f`(pOjT#5[rVultrr;uu#6+Z's8N'!rVultqZ$Nps8W*!r;Zcsrr;uuqZ$Qqs8W*!s8W*!s8W*! +s8W*!rr;uuqu?Wqrr;uujo>;[Y5\J%N;rkWU]1;oh>[HTkl1V_lMpkaJcF0u!!)?b!!(dR!!)]l +q>gQq!!&nrrW)TjJ,~> +f`(pOjT#5[rVultrr;uu#6+Z's8N'!rVultqZ$Nps8W*!r;Zcsrr;uuqZ$Qqs8W*!s8W*!s8W*! +s8W*!rr;uuqu?Wqrr;uujo>;[Y5\J%N;rkWU]1;oh>[HTkl1V_lMpkaJcF0u!!)?b!!(dR!!)]l +q>gQq!!&nrrW)TjJ,~> +f`(pOjT#5[rVultrr;uu#6+Z's8N'!rVultqZ$Nps8W*!r;Zcsrr;uuqZ$Qqs8W*!s8W*!s8W*! +s8W*!rr;uuqu?Wqrr;uujo5A^J:Og&!!%uX!W[b$U]1>hh>[KMkl1YXlMpnZJcF0u!!)?b!!(dR +!!)]lq>gQq!!&nr!W[b$o`'F~> +f`(pOjT#5[rVultrr;uu#6+Z's8N'!rVultq>^Hps8W*!r;ZcsrVultrr3Z4s8N'!s8N'!s8N'! +s8N'!s8N'!rr;uur;R$&s8N'!s8N'!jo>;[Y5a:XUAk2nhZ!QUl2L_`li6tbJcF*s!!)?b!!(dR +!!)rs!!*#u!!)rs!!&\lrW)TjJ,~> +f`(pOjT#5[rVultrr;uu#6+Z's8N'!rVultq>^Hps8W*!r;ZcsrVultrr3Z4s8N'!s8N'!s8N'! +s8N'!s8N'!rr;uur;R$&s8N'!s8N'!jo>;[Y5a:XUAk2nhZ!QUl2L_`li6tbJcF*s!!)?b!!(dR +!!)rs!!*#u!!)rs!!&\lrW)TjJ,~> +f`(pOjT#5[rVultrr;uu#6+Z's8N'!rVultq>^Hps8W*!r;ZcsrVultrr3Z4s8N'!s8N'!s8N'! +s8N'!s8N'!rr;uur;R$&s8N'!s8N'!jo5A^J:Og&M?*[,UAk5ghZ!TNl2LbYli7"[JcF*s!!)?b +!!(dR!!)rs!!*#u!!)rs!!&\l!W[b$o`'F~> +f`(pOjT#5[rVultrVucqs8W#ts8W#ts8W#trVufrrr;rtrr;osrVufrrr;uus8W*!rr;rts8W#t +!WN/us8N*!s8E#]s8E#$rr<%Xs8E"mrr<&Urr<&arr<&cs8N(Ms3CWE!;QQo!;c`p!<<'$!<3$! +rVuisrr3'#rr<&ts8;rss8E#trr<&urr<&ts8Duus8E#srr<&srsAc+rrE'!!<<'!!<)rs!4W"- +!;-;A~> +f`(pOjT#5[rVultrVucqs8W#ts8W#ts8W#trVufrrr;rtrr;osrVufrrr;uus8W*!rr;rts8W#t +!WN/us8N*!s8E#]s8E#$rr<%Xs8E"mrr<&Urr<&arr<&cs8N(Ms3CWE!;QQo!;c`p!<<'$!<3$! +rVuisrr3'#rr<&ts8;rss8E#trr<&urr<&ts8Duus8E#srr<&srsAc+rrE'!!<<'!!<)rs!4W"- +!;-;A~> +f`(pOjT#5[rVultrVucqs8W#ts8W#ts8W#trVufrrr;rtrr;osrVufrrr;uus8W*!rr;rts8W#t +!WN/us8N*!s8E#]rrN1NJ?JnP!0$pZ!.]TorrDiNrrDiZrrDi\s8VkFs3CWE!;QQo!;c`p!<<'$ +!<3$!rVuisrr3'#rr<&ts8;rss8E#trr<&urr<&ts8Duus8E#srr<&srsAc+rrE'!!<<'!!<)rs +!4Vt0!.]Uls*t~> +f`(pOJcFs6rW',$!!%uXrW&Yl!!(pV!!)?b!!)Edrr@WMbl7YCq#: +f`(pOJcFs6rW',$!!%uXrW&Yl!!(pV!!)?b!!)Edrr@WMbl7YCq#: +f`(pOJcFs6!W[b$Y5\J%N;iqZJ:O?n!;PIO!;Pm[!;Ps]s7h0Fbl7YCq#: +f`(pOJcFs6rW',$!!%uXrW&Yl!!(pV!!)Bc!!)Ed!!%TMb5VGAq#: +f`(pOJcFs6rW',$!!%uXrW&Yl!!(pV!!)Bc!!)Ed!!%TMb5VGAq#: +f`(pOJcFs6!W[b$Y5\J%N;iqZJ:O?n!;PIO!;Pp\!;Ps]!;M-Fb5VGAq#: +f`(pOJcFs6rW',$!!%uXrW&Vk!!(sW!!)Ed!!)Herr@WMao;>@qu?Kmrr2rur;Q`srr2rurr;os +s8N'!rr3'#s8N)urrN3#s82lorr<&srr<&urr<&srr<&srrW9$rrE&u!!*#u!W`9#quF8,rW)Tj +J,~> +f`(pOJcFs6rW',$!!%uXrW&Vk!!(sW!!)Ed!!)Herr@WMao;>@qu?Kmrr2rur;Q`srr2rurr;os +s8N'!rr3'#s8N)urrN3#s82lorr<&srr<&urr<&srr<&srrW9$rrE&u!!*#u!W`9#quF8,rW)Tj +J,~> +f`(pOJcFs6!W[b$Y5\J%N;iqZJ:O@qu?Kmrr2rur;Q`srr2ru +rr;oss8N'!rr3'#s8N)urrN3#s82lorr<&srr<&urr<&srr<&srrW9$rrE&u!!*#u!W`9#quF8, +!W[b$o`'F~> +f`(pOJcFs6rW',$!!%uXrW&Vk!!(sW!!)He!!)Kfrr@WMa8Z,>q#: +f`(pOJcFs6rW',$!!%uXrW&Vk!!(sW!!)He!!)Kfrr@WMa8Z,>q#: +f`(pOJcFs6!W[b$Y5\J%N;iqZJ:Oq#: +f`(pOJcFs6rW',$!!%uXrW&Sj!!)!X!!)Kf!!)Ngrr@WM`W#o +f`(pOJcFs6rW',$!!%uXrW&Sj!!)!X!!)Kf!!)Ngrr@WM`W#o +f`(pOJcFs6!W[b$Y5\J%N;iqZJ:O9l!;POQ!;Q$_!;Q'`s7h0F`W#o +f`(pOJcFs6rW',$!!%uXrW&Sj!!)!X!!)Ng!!)Qhrr@WM_uB]:q#: +f`(pOJcFs6rW',$!!%uXrW&Sj!!)!X!!)Ng!!)Qhrr@WM_uB]:q#: +f`(pOJcFs6!W[b$Y5\J%N;iqZJ:O9l!;POQ!;Q'`!;Q*as7h0F_uB]:q#: +f`(pOJcFs6rW',$!!%uXrW'\4JH5]MJcF[.!!(II!!%WNrW)TjJ,~> +f`(pOJcFs6rW',$!!%uXrW'\4JH5]MJcF[.!!(II!!%WNrW)TjJ,~> +f`(pOJcFs6!W[b$Y5\J%N;iqZJ:PB6JH5]MJcF[.!!(II!!%WN!W[b$o`'F~> +f`(pOJcFs6rW',$!!%uXrW'\4!!%TM!!%TMi;WcWf)P[KJcG]Lo`'F~> +f`(pOJcFs6rW',$!!%uXrW'\4!!%TM!!%TMi;WcWf)P[KJcG]Lo`'F~> +f`(pOJcFs6!W[b$Y5\J%N;iqZJ:PB6!!%TM!!%TMi;WcWf)P[KJc>cOJ:R:lJ,~> +f`(pOJcFs6rW',$!!%uXrW'\4!!%TM!!%TMi;WcWJcF0urW)TjJ,~> +f`(pOJcFs6rW',$!!%uXrW'\4!!%TM!!%TMi;WcWJcF0urW)TjJ,~> +f`(pOJcFs6!W[b$Y5\J%N;iqZJ:PB6!!%TM!!%TMi;WcWJcF0u!W[b$o`'F~> +g&HU'irH7^!!%uXrW'\4!!%TMrW%NLir8uYJcF0urW)TjJ,~> +g&HU'irH7^!!%uXrW'\4!!%TMrW%NLir8uYJcF0urW)TjJ,~> +g&HU'jT,=2Y5\J%N;iqZJ:PB6!!%TM!W[b$JcFa0!!%TMdf0@KJ:R:lJ,~> +f`(pOJcFs6rW',$!!)0]!!)?b!!)Ng!s&B$!9a@^!:Tse!5AI5!;- +f`(pOJcFs6rW',$!!)0]!!)?b!!)Ng!s&B$!9a@^!:Tse!5AI5!;- +f`(pOJcFs6!W[b$Y5\J%k5PD]li-qbnG`Rjs8N)^rr<&frrN1NJA2$`!;- +f`(pOJcFs6rW',$!!)0]!!)rs!!*#u!!)]l!!)ut!!*#u!!)`m!!)Wj!!)foquH9erW'\4!!)Qh +rrD-[rrDoqrrDfnrrE&u!!)KfrrDQgrrDWirW%NLir8uYJcF0urW)TjJ,~> +f`(pOJcFs6rW',$!!)0]!!)rs!!*#u!!)]l!!)ut!!*#u!!)`m!!)Wj!!)foquH9erW'\4!!)Qh +rrD-[rrDoqrrDfnrrE&u!!)KfrrDQgrrDWirW%NLir8uYJcF0urW)TjJ,~> +f`(pOJcFs6!W[b$Y5\J%k5PD]r;Q`srr2rup&>!lrVlitrr2rupAY*moD\djq#C6lnc&XjJ:PB6 +!!)QhrrD-[rrDoqrrDfnrrE&u!!)KfrrDQgrrDWi!W[b$JcFa0!!%TMdf0@KJ:R:lJ,~> +f`(pOJcFs6rW',$!!)fo!!)lqrW)rt!!*#u!!)utrVururW!!!!;uj%!<<'!rrE*!rVururW)uu +#lsu*!<3'!rrE)u!<2uu!<3!!!<<#urr;rtrr;uun,N@e^Ae05nc/UhrVult!ri9#r;cfrr;clt +rW)uuqu?s$!!*'!!!*#urW)rtrrDlpr;cisrr<3%!!*'!r;cisrW)uurrE#tquH?grW%NLir8uY +kPkM^mf34cg&LsMZ2ae'o`'F~> +f`(pOJcFs6rW',$!!)fo!!)lqrW)rt!!*#u!!)utrVururW!!!!;uj%!<<'!rrE*!rVururW)uu +#lsu*!<3'!rrE)u!<2uu!<3!!!<<#urr;rtrr;uun,N@e^Ae05nc/UhrVult!ri9#r;cfrr;clt +rW)uuqu?s$!!*'!!!*#urW)rtrrDlpr;cisrr<3%!!*'!r;cisrW)uurrE#tquH?grW%NLir8uY +kPkM^mf34cg&LsMZ2ae'o`'F~> +f`(pOJcFs6!W[b$Y5\J%q#: +f`(pOJcFs6rW',$!!)fo!!)or!!*#u!!)or!!)rs!!*#u!!*#u!!*#u!!*#u!W`6#rr2rurr2ru +rr;uurr3*$s8N'!rr3'#s8N)urrW9$rrE&u!!*#u"T\T&!<3&gs8E#4rr<&hs8N)ts8E#rs8N*! +s8N)ts8N''rr<'!rr<&us8N*!s8N*!s8N''rr<'!rr<&qs8N*!s8N*!s8E!&rr<'!rr<&us8N'. +rr<'!rr<'!rrE*!!!)TirW%NLir8uYkPkM^r;Q`srr2ruq#: +f`(pOJcFs6rW',$!!)fo!!)or!!*#u!!)or!!)rs!!*#u!!*#u!!*#u!!*#u!W`6#rr2rurr2ru +rr;uurr3*$s8N'!rr3'#s8N)urrW9$rrE&u!!*#u"T\T&!<3&gs8E#4rr<&hs8N)ts8E#rs8N*! +s8N)ts8N''rr<'!rr<&us8N*!s8N*!s8N''rr<'!rr<&qs8N*!s8N*!s8E!&rr<'!rr<&us8N'. +rr<'!rr<'!rrE*!!!)TirW%NLir8uYkPkM^r;Q`srr2ruq#: +f`(pOJcFs6!W[b$Y5\J%q#: +f`(pOJcFs6rW',$!!)fo!!)cn!!)or!!)rs!!*#u!!*#u!!*#u!s&B$!<3!#!<<'!rr2rurr2ru +rVls"s8N)trrW9$rrE&u!s&B$!<2uu!<2uu!:0[a!5AI5!:g*h!<)rt!;lfr!<<*!!<)rt!!`H' +!<<'!!<3#u!<<*!!<<*!!!`H'!<<'!!;c`q!<<*!!<<*!!<<*!!<<*!!<3#u!!<0#!<3#t!<3#u +!:p0h!.k10rr<&orr<&qs8E#urr<&urr<&ts8Duus8E!!rrDusrrE&u#QXo)!<3$!s8W&urVuis +rr;rtrVuisrr;rt!WN/ts8E#ts8E#us8E#urr<&urr<&us8E#Bs8E#js*t~> +f`(pOJcFs6rW',$!!)fo!!)cn!!)or!!)rs!!*#u!!*#u!!*#u!s&B$!<3!#!<<'!rr2rurr2ru +rVls"s8N)trrW9$rrE&u!s&B$!<2uu!<2uu!:0[a!5AI5!:g*h!<)rt!;lfr!<<*!!<)rt!!`H' +!<<'!!<3#u!<<*!!<<*!!!`H'!<<'!!;c`q!<<*!!<<*!!<<*!!<<*!!<3#u!!<0#!<3#t!<3#u +!:p0h!.k10rr<&orr<&qs8E#urr<&urr<&ts8Duus8E!!rrDusrrE&u#QXo)!<3$!s8W&urVuis +rr;rtrVuisrr;rt!WN/ts8E#ts8E#us8E#urr<&urr<&us8E#Bs8E#js*t~> +f`(pOJcFs6!W[b$Y5\J%q#: +f`(pOJcFs6rW',$!!)orq>gKor;c`p!!)rs!!*#u!!)ut!W`6#rr2rurr3'#s8N)urr<&urr<&t +rrW9$rrE#t!s&B$!<3!#!<<'!rr;lrli6qa^Ae05nc/UhrVultrVufrs8W*!rVucqs8W*!rr;uu +s8W*!s8Vuss8W*!qZ$Qqs8W*!s8W*!s8W*!s8W*!rr;lrrr;rtrr;uuo)J[hJcFa0!!)fo!!)or +!!)fo!!)rs!!*#u!!*#u!!*#u!W`6#rr3*$s8N'!rr2rurr3'#s8N)srr<&urrW9$rrDus!!)rs +!!)rs!!*#u!!*#u!s&B$!<2uu!<3!#!<<'!aoD>?o`'F~> +f`(pOJcFs6rW',$!!)orq>gKor;c`p!!)rs!!*#u!!)ut!W`6#rr2rurr3'#s8N)urr<&urr<&t +rrW9$rrE#t!s&B$!<3!#!<<'!rr;lrli6qa^Ae05nc/UhrVultrVufrs8W*!rVucqs8W*!rr;uu +s8W*!s8Vuss8W*!qZ$Qqs8W*!s8W*!s8W*!s8W*!rr;lrrr;rtrr;uuo)J[hJcFa0!!)fo!!)or +!!)fo!!)rs!!*#u!!*#u!!*#u!W`6#rr3*$s8N'!rr2rurr3'#s8N)srr<&urrW9$rrDus!!)rs +!!)rs!!*#u!!*#u!s&B$!<2uu!<3!#!<<'!aoD>?o`'F~> +f`(pOJcFs6!W[b$Y5\J%qu?KmrVufrqu6Wrr;Q`srr2rurVlp!rrE&u!!*#u!s&B$!<2uu!<2uu +!<)p"!<<'!rVls"s8N)urrW9$rrE&uquH'_!W[b$^Ae05nc/UhrVultrVufrs8W*!rVucqs8W*! +rr;uus8W*!s8Vuss8W*!qZ$Qqs8W*!s8W*!s8W*!s8W*!rr;lrrr;rtrr;uuo)AakJ:N4Nir8uY +q#: +f`(pOJcFs6rW',$!!)fo!!)or!!*#u!!)or!!)rs!!*#u!!)ut"9AH%s8Voq!WN0!rr<&urr<&t +rrW9$rrE#t!s&B$!<3!#!<<'!rr2rukPtM]^Ae05nc/UhrVultrr;uu#6+Z's8N'!rVultr;Zcs +rr;uus8W*!s8W*!r;ZcsqZ$Qqs8W*!s8W*!s8W*!s8W*!rr;uuqu?Wqrr;uuo)J[hJcFa0!!)fo +!!)or!!)fo!!)rs!!*#u!!*#u!!*#u! +f`(pOJcFs6rW',$!!)fo!!)or!!*#u!!)or!!)rs!!*#u!!)ut"9AH%s8Voq!WN0!rr<&urr<&t +rrW9$rrE#t!s&B$!<3!#!<<'!rr2rukPtM]^Ae05nc/UhrVultrr;uu#6+Z's8N'!rVultr;Zcs +rr;uus8W*!s8W*!r;ZcsqZ$Qqs8W*!s8W*!s8W*!s8W*!rr;uuqu?Wqrr;uuo)J[hJcFa0!!)fo +!!)or!!)fo!!)rs!!*#u!!*#u!!*#u! +f`(pOJcFs6!W[b$Y5\J%q#:^Qr!<2uu!<2uu +!<)p"!<<'!rVls"s8N)urrW9$rrE&u!!)3^!W[b$^Ae05nc/UhrVultrr;uu#6+Z's8N'!rVult +r;Zcsrr;uus8W*!s8W*!r;ZcsqZ$Qqs8W*!s8W*!s8W*!s8W*!rr;uuqu?Wqrr;uuo)AakJ:N4N +ir8uYq#: +f`(pOJcFs6rW)ZlrrCXMrrD]k!!)`m!!)fo!!)or!!*#u!!)or!!)rs!!*#u!!)ut"T\Q&s8N)s +rrN3#!<2uu!<2uu!<)p#!<<'!!<3!*!<<'!s8N'!s8N)urr<&^s8E#4rr<&hs8N)ts8N)us8N'' +rr<'!rr<&ts8N)ss8N)us8N*!s8N*!s8N)rs8N)urtGJ5rr<'!rr<'!rr<'!rr<'!rr<&us8N)s +rs/W)rr<'!rr<&is8E"Ls5O%Y!;lfm!<)rt!;c]q!;uis!<2uu!<)p$!<3'!rrDrr!!)ut!!*#u +!s&B$!;ulp!<3#u!<)rt!;lcu!<<'!rVufrs8N'!rr2rurr2rurr;uubQ%PAo`'F~> +f`(pOJcFs6rW)ZlrrCXMrrD]k!!)`m!!)fo!!)or!!*#u!!)or!!)rs!!*#u!!)ut"T\Q&s8N)s +rrN3#!<2uu!<2uu!<)p#!<<'!!<3!*!<<'!s8N'!s8N)urr<&^s8E#4rr<&hs8N)ts8N)us8N'' +rr<'!rr<&ts8N)ss8N)us8N*!s8N*!s8N)rs8N)urtGJ5rr<'!rr<'!rr<'!rr<'!rr<&us8N)s +rs/W)rr<'!rr<&is8E"Ls5O%Y!;lfm!<)rt!;c]q!;uis!<2uu!<)p$!<3'!rrDrr!!)ut!!*#u +!s&B$!;ulp!<3#u!<)rt!;lcu!<<'!rVufrs8N'!rr2rurr2rurr;uubQ%PAo`'F~> +f`(pOJcFs6!W[b$pAb0ff)PdFo`"pdpAY*mq#: +f`(pOJcFs6rW)]m!W`6#fDbpQs8N)ns82llrr<&orr<&qs82itrrE&uquHcs!!*#u!!)ut!s&B$ +!;c]s!<3&urrW9$rrE#t"9AK%!<<#urVult!WN0!rr<&us8;r`s8E#4rr<&hs8N)ts8N)ts82ls +s8;rts8;rts8N)us8N*!s8N)us8;rrs8;rrs8;rss8N*!s8N)us8E#us8;ourrE#trrE*!rW)Tj +rW%NLir8uYq#: +f`(pOJcFs6rW)]m!W`6#fDbpQs8N)ns82llrr<&orr<&qs82itrrE&uquHcs!!*#u!!)ut!s&B$ +!;c]s!<3&urrW9$rrE#t"9AK%!<<#urVult!WN0!rr<&us8;r`s8E#4rr<&hs8N)ts8N)ts82ls +s8;rts8;rts8N)us8N*!s8N)us8;rrs8;rrs8;rss8N*!s8N)us8E#us8;ourrE#trrE*!rW)Tj +rW%NLir8uYq#: +f`(pOJcFs6!W[b$p\t +f`(pOJcFs6rW)Wk!!([O!!)ut!!)cnrrDcm!!%uXrW'\4!!%TMrW%NLir8uYq#: +f`(pOJcFs6rW)Wk!!([O!!)ut!!)cnrrDcm!!%uXrW'\4!!%TMrW%NLir8uYq#: +f`(pOJcFs6!W[b$p&>$ef`(sHrVllmp](9gpAY*mN;iqZJ:PB6!!%TM!W[b$JcFa0!!)fo!!)fo +!!)or!!)rs!!*#u!!)ut"T\Q&s8N)rrr<&trr<&urrW9$rrDus!!)fo!!)rs!!)rs!s&B$!<2uu +!<3!#!<<'!rr3*$s8N'!r;Q`sbl7_EJ:R:lJ,~> +f`(pOJcFs6rW)Wk!!([O!!)ut!!)cn!W`6#p\t3nN;rkW^Ae05JcG]LJcFa0!!)fo!!)orrW)rt +!!*#uquHcs!!*#u!!)ut!!*#u!!)or!!)rsrW)osrW)rtr;cltrW)rtrW)uur;cfr!!*#uquHcs +!!*#urr<0$!<<)u!6bEA!;-;A~> +f`(pOJcFs6rW)Wk!!([O!!)ut!!)cn!W`6#p\t3nN;rkW^Ae05JcG]LJcFa0!!)fo!!)orrW)rt +!!*#uquHcs!!*#u!!)ut!!*#u!!)or!!)rsrW)osrW)rtr;cltrW)rtrW)uur;cfr!!*#uquHcs +!!*#urr<0$!<<)u!6bEA!;-;A~> +f`(pOJcFs6!W[b$p&>$ef`(sHrVllmp\tcOJ:N4Nir8uYq#: +f`(pOk5PD]li-qbnG`Rjs8N)^rr<&Bs8E#krr<&Orr<&trr<&arr<%Xs8E#4rr<%Ms8E"Ls5O%Y +!.k0us8E#js*t~> +f`(pOk5PD]li-qbnG`Rjs8N)^rr<&Bs8E#krr<&Orr<&trr<&arr<%Xs8E#4rr<%Ms8E"Ls5O%Y +!.k0us8E#js*t~> +f`(pOk5PD]li-qbnG`Rjs8N)^rr<&BrrN1NJG&pBpt5THq#13mq!.kZ!0$pZ!.]U6rr<%MrrN1N +J:[a[rr<%Ms3goK!.]Uls*t~> +f`(pOk5PD]r;Q`srr2rup&>!lrVlitrr2rupAY*moD\djq#C6lc2[bCp&>!lf`(pOrVlitlMgha +N;rkW^Ae05JcG]LJcFa0!!%TMdf9:Ho`'F~> +f`(pOk5PD]r;Q`srr2rup&>!lrVlitrr2rupAY*moD\djq#C6lc2[bCp&>!lf`(pOrVlitlMgha +N;rkW^Ae05JcG]LJcFa0!!%TMdf9:Ho`'F~> +f`(pOk5PD]r;Q`srr2rup&>!lrVlitrr2rupAY*moD\djq#C6lc2RhFJ:R=m!;P4H!;QNm!;PjZ +!!%uX!W[b$^Ae05Jc>cOJ:N4Nir8uYJcF0u!W[b$o`'F~> +f`(pOq#: +f`(pOq#: +f`(pOq#:$ef`(sHrVllmlMghaN;iqZJ:PB6!!%TM!W[b$ +JcFa0!!%TMdf0@KJ:R:lJ,~> +f`(pOq#: +f`(pOq#: +f`(pOq#:cOJ:N4Nir8uYJcF0u!W[b$o`'F~> +f`(pOq#:s8E#ms82lLs8N)trr<&urr<&hrr<&Srr<&brr<&grrW9$rrD6^ +!!)iprW'\4!!%TMrW%NLir8uYJcF0urW)TjJ,~> +f`(pOq#:s8E#ms82lLs8N)trr<&urr<&hrr<&Srr<&brr<&grrW9$rrD6^ +!!)iprW'\4!!%TMrW%NLir8uYJcF0urW)TjJ,~> +f`(pOq#:rrN1NJG9*Apt5WHq#13mq#:9nq!n@a!8RSS!:0Xb!:^!j!<<'! +kPkM^q>UKrJ:PB6!!%TM!W[b$JcFa0!!%TMdf0@KJ:R:lJ,~> +f`(pOqu?KmrVufrqu6Wrr;Q`srr2rurVlp!rrE&u!!*#u!s&B$!<2uu!<2uu!<)p"!<<'!rVls" +s8N)urrW9$rrE&uquFe;rW',$!!)Qh!!)Ed!!)rs!!*#u!!)]l!!)ut!!*#u!!)`m!!)Wj!!)fo +quHWorW'\4!!%TMrW%NLir8uYJcF0urW)TjJ,~> +f`(pOqu?KmrVufrqu6Wrr;Q`srr2rurVlp!rrE&u!!*#u!s&B$!<2uu!<2uu!<)p"!<<'!rVls" +s8N)urrW9$rrE&uquFe;rW',$!!)Qh!!)Ed!!)rs!!*#u!!)]l!!)ut!!*#u!!)`m!!)Wj!!)fo +quHWorW'\4!!%TMrW%NLir8uYJcF0urW)TjJ,~> +f`(pOqu?KmrVufrqu6Wrr;Q`srr2rurVlp!rrE&u!!*#u!s&B$!<2uu!<2uu!<)p"!<<'!rVls" +s8N)urrW9$rrE&uquFe;!W[b$Y5\J%nc&RhmJd.dr;Q`srr2rup&>!lrVlitrr2rupAY*moD\dj +q#C6lqu6]tJ:PB6!!%TM!W[b$JcFa0!!%TMdf0@KJ:R:lJ,~> +f`(pOq#:^Qr!<2uu!<2uu!<)p"!<<'!rVls" +s8N)urrW9$rrE&u!!'q:rW',$!!)fo!!)rsrW)`nrW)rt!!*#u!!)utrVururW!!!!;uj%!<<'! +rrE*!rVururW)uu#lsu*!<3'!rrE)u!<2uu!<3!!!<<#urr;rtrr;uuq>^EopAb-mk5YG]o`"mk +pAY*mJcG]LJcFa0!!%TMdf9:Ho`'F~> +f`(pOq#:^Qr!<2uu!<2uu!<)p"!<<'!rVls" +s8N)urrW9$rrE&u!!'q:rW',$!!)fo!!)rsrW)`nrW)rt!!*#u!!)utrVururW!!!!;uj%!<<'! +rrE*!rVururW)uu#lsu*!<3'!rrE)u!<2uu!<3!!!<<#urr;rtrr;uuq>^EopAb-mk5YG]o`"mk +pAY*mJcG]LJcFa0!!%TMdf9:Ho`'F~> +f`(pOq#:^Qr!<2uu!<2uu!<)p"!<<'!rVls" +s8N)urrW9$rrE&u!!'q:!W[b$Y5\J%q#:cOJ:N4Nir8uYJcF0u!W[b$o`'F~> +f`(pOq#:%!;QQo!;lcr!;QQo!<2uu!;lcr!;uis!<2uu!<2uu!<2uu +!<3!"!<3&urr<&urr<&us8N)urr`?%rr<&urrW9$rrE&u!s&B$!<2uu!<3!%!<<'!rrDoqrW)]m +!W`6#kPkVas8N)ns82lls+(1K!.k10rr<%Ms3grH!;-;A~> +f`(pOq#:%!;QQo!;lcr!;QQo!<2uu!;lcr!;uis!<2uu!<2uu!<2uu +!<3!"!<3&urr<&urr<&us8N)urr`?%rr<&urrW9$rrE&u!s&B$!<2uu!<3!%!<<'!rrDoqrW)]m +!W`6#kPkVas8N)ns82lls+(1K!.k10rr<%Ms3grH!;-;A~> +f`(pOq#: +f`(pOq#: +f`(pOq#: +f`(pOq#: +f`(pOJcFs6rW',$!!)orq>gNp!!)cnr;c`p!!)rs!!*#u!!)ut!W`6#rr2rurr3'#s8N)urr<&u +rr<&trrW9$rrE#t!s&B$!<3!#!<<'!rr;lrp&G!kp&>!lkl1V_rVlitp\t9prrDfn!!%TMrW%NL +ir8uYJcF0urW)TjJ,~> +f`(pOJcFs6rW',$!!)orq>gNp!!)cnr;c`p!!)rs!!*#u!!)ut!W`6#rr2rurr3'#s8N)urr<&u +rr<&trrW9$rrE#t!s&B$!<3!#!<<'!rr;lrp&G!kp&>!lkl1V_rVlitp\t9prrDfn!!%TMrW%NL +ir8uYJcF0urW)TjJ,~> +f`(pOJcFs6!W[b$Y5\J%qu?Kmrr2rup](0lqu6Wrr;Q`srr2rurVlp!rrE&u!!*#u!s&B$!<2uu +!<2uu!<)p"!<<'!rVls"s8N)urrW9$rrE&uquHEi!W[b$p&>$ekl1YXrVllmp\t +f`(pOJcFs6rW',$!!)fo!!)or!!)fo!!*#u!!)or!!)rs!!*#u!!)ut"9AH%s8Voq!WN0!rr<&u +rr<&trrW9$rrE#t!s&B$!<3!#!<<'!rr2runc/Rgp&>!lkl1V_rVlitlMghaJcG]LJcFa0JH3sq +o`'F~> +f`(pOJcFs6rW',$!!)fo!!)or!!)fo!!*#u!!)or!!)rs!!*#u!!)ut"9AH%s8Voq!WN0!rr<&u +rr<&trrW9$rrE#t!s&B$!<3!#!<<'!rr2runc/Rgp&>!lkl1V_rVlitlMghaJcG]LJcFa0JH3sq +o`'F~> +f`(pOJcFs6!W[b$Y5\J%q#:^Qr!<2uu +!<2uu!<)p"!<<'!rVls"s8N)urrW9$rrE&u!!)Qh!W[b$p&>$ekl1YXrVllmlMghaJc>cOJ:N4N +ir=Q0ciF)ro`'F~> +f`(pOJcFs6rW',$!!)fo!!)or!!)fo!!*#u!!)or!!)rs!!*#u!!)ut"T\Q&s8N)srrN3#!<2uu +!<2uu!<)p#!<<'!!<3!*!<<'!s8N'!s8N)urr<&hs8E#krr<&_rr<&trr<&arr<%Ms8E"Ls5O%Y +!.k0us8E#js*t~> +f`(pOJcFs6rW',$!!)fo!!)or!!)fo!!*#u!!)or!!)rs!!*#u!!)ut"T\Q&s8N)srrN3#!<2uu +!<2uu!<)p#!<<'!!<3!*!<<'!s8N'!s8N)urr<&hs8E#krr<&_rr<&trr<&arr<%Ms8E"Ls5O%Y +!.k0us8E#js*t~> +f`(pOJcFs6!W[b$Y5\J%q#: +f`(pOJcFs6WW;ho!!)lq!!)foqu?ct!<3#r!<<'!!<2uu!<)p"!<<'!qYpTsrrE&u!s&B$!<)p# +!<<'!s8E#ss8N'"rrE&u!!*#ur;cNjrW)Wk!!)6_!!)ut!!) +f`(pOJcFs6WW;ho!!)lq!!)foqu?ct!<3#r!<<'!!<2uu!<)p"!<<'!qYpTsrrE&u!s&B$!<)p# +!<<'!s8E#ss8N'"rrE&u!!*#ur;cNjrW)Wk!!)6_!!)ut!!) +f`(pOJcFs6!W[b$Y4qtsq#:'nJ:R=m!;PdX!;QNm!;PjZ!!%TM!W[b$JcFa0 +!!%TMdf0@KJ:R:lJ,~> +f`(pOJcFs6rW',$!!)Edr;`YnrW)Wk!!)3^!s&B$!9sL`!.k1L!.k10rr<%Ms3grH!;-;A~> +f`(pOJcFs6rW',$!!)Edr;`YnrW)Wk!!)3^!s&B$!9sL`!.k1L!.k10rr<%Ms3grH!;-;A~> +f`(pOJcFs6!W[b$Y5\J%mJm+bV#LJrJ:R=m!;PaW"8Morq!%eY!.k.O!.]TNs5O%Y!.k0urrN1N +JFrkl~> +f`(pOJcFs6rW',$!!%uXrW)]mquGs\rrE#t!!*#u!!)Qh!!%TMrW%NLir8uYJcF0urW)TjJ,~> +f`(pOJcFs6rW',$!!%uXrW)]mquGs\rrE#t!!*#u!!)Qh!!%TMrW%NLir8uYJcF0urW)TjJ,~> +f`(pOJcFs6!W[b$Y5\J%N;iqZJ:RCor:oLUs7lQm!;QQn!;Q*a!!%TM!W[b$JcFa0!!%TMdf0@K +J:R:lJ,~> +f`(pOf)G^Mli-qbnG`Rjs8N)^rr<&Rs8E#$rr<%Xs8E#4rr<%Ms8E"Ls5O%Y!.k0us8E#js*t~> +f`(pOf)G^Mli-qbnG`Rjs8N)^rr<&Rs8E#$rr<%Xs8E#4rr<%Ms8E"Ls5O%Y!.k0us8E#js*t~> +f`(pOf)G^Mli-qbnG`Rjs8N)^rr<&RrrN1NJ?JnP!0$pZ!.]U6rr<%MrrN1NJ:[a[rr<%Ms3goK +!.]Uls*t~> +f`(pOnc&RhkPkM^r;Q`srr2rup&>!lrVlitrr2rupAY*moD\djq#C6lh>dHSY5\J%N;rkW^Ae05 +JcG]LJcFa0!!%TMdf9:Ho`'F~> +f`(pOnc&RhkPkM^r;Q`srr2rup&>!lrVlitrr2rupAY*moD\djq#C6lh>dHSY5\J%N;rkW^Ae05 +JcG]LJcFa0!!%TMdf9:Ho`'F~> +f`(pOnc&RhkPkM^r;Q`srr2rup&>!lrVlitrr2rupAY*moD\djq#C6lh>[NVJ:Og&!!%uX!W[b$ +^Ae05Jc>cOJ:N4Nir8uYJcF0u!W[b$o`'F~> +f`(pOq#: +f`(pOq#: +f`(pOq#: +f`(pOq#:%!0$sW!5AI5!.k1L!.k10 +rr<%Ms3grH!;-;A~> +f`(pOq#:%!0$sW!5AI5!.k1L!.k10 +rr<%Ms3grH!;-;A~> +f`(pOq#: +f`(pOq#: +f`(pOq#: +f`(pOq#: +f`(pOqu?Kmrr2rurVultp](0lqu6Wrr;Q`srr2rurVlp!rrE&u!!*#u!s&B$!<2uu!<2uu!<)p" +!<<'!rVls"s8N)urrW9$rrE&uquG@KrW',$!!%uXrW'\4!!)Qh!!)'Z!!(sW!!)rs!!*#u!!)rs +!!)'ZrW%NLir8uYJcF0urW)TjJ,~> +f`(pOqu?Kmrr2rurVultp](0lqu6Wrr;Q`srr2rurVlp!rrE&u!!*#u!s&B$!<2uu!<2uu!<)p" +!<<'!rVls"s8N)urrW9$rrE&uquG@KrW',$!!%uXrW'\4!!)Qh!!)'Z!!(sW!!)rs!!*#u!!)rs +!!)'ZrW%NLir8uYJcF0urW)TjJ,~> +f`(pOqu?Kmrr2rurVultp](0lqu6Wrr;Q`srr2rurVlp!rrE&u!!*#u!s&B$!<2uu!<2uu!<)p" +!<<'!rVls"s8N)urrW9$rrE&uquG@K!W[b$Y5\J%N;iqZJ:PB6!!)Qh!!)'Z!!(sW!!)rs!!*#u +!!)rs!!)'Z!W[b$JcFa0!!%TMdf0@KJ:R:lJ,~> +f`(pOq#:UEprr2ruqu6Wrr;Q`srr2rurVm!#rrE*!q>^Qr!<2uu!<2uu!<)p" +!<<'!rVls"s8N)urrW9$rrE&u!!(LJrW',$!!%uXrW'\4!!)fo!!)rsrW)uu$3:,+!<3$!s8N'! +rVuisrVuis!<<#urr;rtrr33'rr<'!rr<&urrE-"rW)rt!!*#u!!)utrVururW)os!!)rs$3:,+ +!<3$!s8N'!rVuisqZ$NpJcFa0!!%TMdf9:Ho`'F~> +f`(pOq#:UEprr2ruqu6Wrr;Q`srr2rurVm!#rrE*!q>^Qr!<2uu!<2uu!<)p" +!<<'!rVls"s8N)urrW9$rrE&u!!(LJrW',$!!%uXrW'\4!!)fo!!)rsrW)uu$3:,+!<3$!s8N'! +rVuisrVuis!<<#urr;rtrr33'rr<'!rr<&urrE-"rW)rt!!*#u!!)utrVururW)os!!)rs$3:,+ +!<3$!s8N'!rVuisqZ$NpJcFa0!!%TMdf9:Ho`'F~> +f`(pOq#:UEprr2ruqu6Wrr;Q`srr2rurVm!#rrE*!q>^Qr!<2uu!<2uu!<)p" +!<<'!rVls"s8N)urrW9$rrE&u!!(LJ!W[b$Y5\J%N;iqZJ:PB6!!)fo!!)rsrW)uu$3:,+!<3$! +s8N'!rVuisrVuis!<<#urr;rtrr33'rr<'!rr<&urrE-"rW)rt!!*#u!!)utrVururW)os!!)rs +$3:,+!<3$!s8N'!rVuisqYpTsJ:N4Nir8uYJcF0u!W[b$o`'F~> +f`(pOq#:UEprr2ruqu6Wrr;Q`srr2rurVm$$rrE*!!;uiu!<3&urr<&urr<&t +rr`?%rr<&ursAc+rrE*!!!*'!!<2uu!7UuI!3Z>%!0$rh!;QQo!;lcr!<3!.!<<'!!<<'!!<<'! +s8N)urrW9$rrDus!!*#u!!*#u%flY0!!*'!!!*'!!<<'!!<2uu!;lcr!;uis!<2uu!;uis!;uj, +!<<'!!<<'!!<<'!s8N)urr<&rs8E"Ls5O%Y!.k0us8E#js*t~> +f`(pOq#:UEprr2ruqu6Wrr;Q`srr2rurVm$$rrE*!!;uiu!<3&urr<&urr<&t +rr`?%rr<&ursAc+rrE*!!!*'!!<2uu!7UuI!3Z>%!0$rh!;QQo!;lcr!<3!.!<<'!!<<'!!<<'! +s8N)urrW9$rrDus!!*#u!!*#u%flY0!!*'!!!*'!!<<'!!<2uu!;lcr!;uis!<2uu!;uis!;uj, +!<<'!!<<'!!<<'!s8N)urr<&rs8E"Ls5O%Y!.k0us8E#js*t~> +f`(pOq#:UEprr2ruqu6Wrr;Q`srr2rurVm$$rrE*!!;uiu!<3&urr<&urr<&t +rr`?%rr<&ursAc+rrE*!!!*'!!<2uu!7UrL!.]U&rr<%XrrN1NJA1dY!;QQo!;lcr!<3!.!<<'! +!<<'!!<<'!s8N)urrW9$rrDus!!*#u!!*#u%flY0!!*'!!!*'!!<<'!!<2uu!;lcr!;uis!<2uu +!;uis!;uj,!<<'!!<<'!!<<'!s8N)urr<&rrrN1NJ:[a[rr<%Ms3goK!.]Uls*t~> +f`(pOq#: +f`(pOq#: +f`(pOq#: +f`(pOkPtJ\LB%5QY5\J%N;rkW^Ae05qu?Kmrr2rurr3'#s8N)urr<&urrN3#s82lrs8N)urr<&t +s8;rtrr<&urr<&urrW9$rrE#t!!)or!!)rs!!*#u!!)rs!!)rs!s&B$!<2uu!<3!"!<<)s!;lfq +!.k10rr<%Ms3grH!;-;A~> +f`(pOkPtJ\LB%5QY5\J%N;rkW^Ae05qu?Kmrr2rurr3'#s8N)urr<&urrN3#s82lrs8N)urr<&t +s8;rtrr<&urr<&urrW9$rrE#t!!)or!!)rs!!*#u!!)rs!!)rs!s&B$!<2uu!<3!"!<<)s!;lfq +!.k10rr<%Ms3grH!;-;A~> +f`(pOkPtJ\LAq;TJ:Og&!!%uX!W[b$^Ae05qu?Kmrr2rurr3'#s8N)urr<&urrN3#s82lrs8N)u +rr<&ts8;rtrr<&urr<&urrW9$rrE#t!!)or!!)rs!!*#u!!)rs!!)rs!s&B$!<2uu!<3!"!<<)s +!;lct!.]TNs5O%Y!.k0urrN1NJFrkl~> +f`(pOJcFs6rW',$!!%uXrW'\4!!)fo!!)or!!*#u!s&B$!<2uu!<3!#!<<'!q#:Ers8N)urr<&u +rrW9$rrE&u!!*#u!s&B$!<)ot!;lcr!;uis!<2uu!;uis!;uj!!<<'!rr2rurr3'#s8N)ns8E"L +s5O%Y!.k0us8E#js*t~> +f`(pOJcFs6rW',$!!%uXrW'\4!!)fo!!)or!!*#u!s&B$!<2uu!<3!#!<<'!q#:Ers8N)urr<&u +rrW9$rrE&u!!*#u!s&B$!<)ot!;lcr!;uis!<2uu!;uis!;uj!!<<'!rr2rurr3'#s8N)ns8E"L +s5O%Y!.k0us8E#js*t~> +f`(pOJcFs6!W[b$Y5\J%N;iqZJ:PB6!!)fo!!)or!!*#u!s&B$!<2uu!<3!#!<<'!q#:Ers8N)u +rr<&urrW9$rrE&u!!*#u!s&B$!<)ot!;lcr!;uis!<2uu!;uis!;uj!!<<'!rr2rurr3'#s8N)n +rrN1NJ:[a[rr<%Ms3goK!.]Uls*t~> +f`(pOJcFs6rW',$!!%uXrW'\4!!)fo!!)or!!*#u!s&B$!<2uu!<3!#!<<'!q#:Ers8N)urr<&u +rrW9$rrE&u!!*#u"9AK%!!*#u!!)or!!)rs!!*#u!!)rs!!)rs!s&B$!<2uu!<3!#!<<'!p](3m +JcFa0!!%TMdf9:Ho`'F~> +f`(pOJcFs6rW',$!!%uXrW'\4!!)fo!!)or!!*#u!s&B$!<2uu!<3!#!<<'!q#:Ers8N)urr<&u +rrW9$rrE&u!!*#u"9AK%!!*#u!!)or!!)rs!!*#u!!)rs!!)rs!s&B$!<2uu!<3!#!<<'!p](3m +JcFa0!!%TMdf9:Ho`'F~> +f`(pOJcFs6!W[b$Y5\J%N;iqZJ:PB6!!)fo!!)or!!*#u!s&B$!<2uu!<3!#!<<'!q#:Ers8N)u +rr<&urrW9$rrE&u!!*#u"9AK%!!*#u!!)or!!)rs!!*#u!!)rs!!)rs!s&B$!<2uu!<3!#!<<'! +p\t9pJ:N4Nir8uYJcF0u!W[b$o`'F~> +f`(pOJcFs6rW',$!!%uXrW'\4!!)fo!!)lq"p"]'!<<'!rr2rurr2rurr;oss8W&urVlitrr;lr +!WN0!rr<&urr`?%rrE)u!<2uu!<3#r!<<'!!<2uu!<)ot!;uj!!<<'!rr2rurr2rurr;osqu?Wq +JcFa0!!%TMdf9:Ho`'F~> +f`(pOJcFs6rW',$!!%uXrW'\4!!)fo!!)lq"p"]'!<<'!rr2rurr2rurr;oss8W&urVlitrr;lr +!WN0!rr<&urr`?%rrE)u!<2uu!<3#r!<<'!!<2uu!<)ot!;uj!!<<'!rr2rurr2rurr;osqu?Wq +JcFa0!!%TMdf9:Ho`'F~> +f`(pOJcFs6!W[b$Y5\J%N;iqZJ:PB6!!)fo!!)lq"p"]'!<<'!rr2rurr2rurr;oss8W&urVlit +rr;lr!WN0!rr<&urr`?%rrE)u!<2uu!<3#r!<<'!!<2uu!<)ot!;uj!!<<'!rr2rurr2rurr;os +qu6]tJ:N4Nir8uYJcF0u!W[b$o`'F~> +f`(pOJcFs6rW',$!!%uXrW'\4!!'\3!!((>rW%NLir8uYJcF0urW)TjJ,~> +f`(pOJcFs6rW',$!!%uXrW'\4!!'\3!!((>rW%NLir8uYJcF0urW)TjJ,~> +f`(pOJcFs6!W[b$Y5\J%N;iqZJ:PB6!!'\3!!((>!W[b$JcFa0!!%TMdf0@KJ:R:lJ,~> +f`(pOJcFs6rW',$!!%uXrW'\4!!'\3!!((>rW%NLir8uYJcF0urW)TjJ,~> +f`(pOJcFs6rW',$!!%uXrW'\4!!'\3!!((>rW%NLir8uYJcF0urW)TjJ,~> +f`(pOJcFs6!W[b$Y5\J%N;iqZJ:PB6!!'\3!!((>!W[b$JcFa0!!%TMdf0@KJ:R:lJ,~> +f`(pOmJd.daT)):s8N'!mJd.dg]%6Rr;Z`rY5\J%N;rkW^Ae05JcG]LJcFa0!!%TMdf9:Ho`'F~> +f`(pOmJd.daT)):s8N'!mJd.dg]%6Rr;Z`rY5\J%N;rkW^Ae05JcG]LJcFa0!!%TMdf9:Ho`'F~> +f`(pOmJd.daT)):s8N'!mJd.dg]%6Rr;QfuJ:Og&!!%uX!W[b$^Ae05Jc>cOJ:N4Nir8uYJcF0u +!W[b$o`'F~> +f`(pOnc&Rh_>aK8kPkM^q#: +f`(pOnc&Rh_>aK8kPkM^q#: +f`(pOnc&Rh_>aK8kPkM^q#:cOJ:N4Nir8uYJcF0u +!W[b$o`'F~> +f`(pOq#: +f`(pOq#: +f`(pOq#: +f`(pOq#:UEpr;R6,s8N'!s8N'!s8N*!rrE&u%06G.!<<'!!<<'!s8N)urr<&urr`?%rr<&urr<&urrN3# +!<3!#!<<'!r;Z`rY5\J%N;rkW^Ae05JcG]LJcFa0!!%TMdf9:Ho`'F~> +f`(pOq#:UEpr;R6,s8N'!s8N'!s8N*!rrE&u%06G.!<<'!!<<'!s8N)urr<&urr`?%rr<&urr<&urrN3# +!<3!#!<<'!r;Z`rY5\J%N;rkW^Ae05JcG]LJcFa0!!%TMdf9:Ho`'F~> +f`(pOq#:UEpr;R6,s8N'!s8N'!s8N*!rrE&u%06G.!<<'!!<<'!s8N)urr<&urr`?%rr<&urr<&urrN3# +!<3!#!<<'!r;QfuJ:Og&!!%uX!W[b$^Ae05Jc>cOJ:N4Nir8uYJcF0u!W[b$o`'F~> +f`(pOq#: +f`(pOq#: +f`(pOq#: +f`(pOqu?Kmrr2rurr3'#s8N)urr<&urrN3#s82lls8N)urr<&trr<&us8;rtrr<&urr<&prr<&s +rrW9$rrE&u!!*#u!W`9#quHcs!s&B$!<3!#!<<'!rr;lrs8N'!r;QfurrE&ur;clt!!)rsrW',$ +!!%uXrW'\4!!)0]!!)rs!!*#u!!)]l!!)ut!!*#u!!)`m!!)Wj!!)foquGmZrW%NLir8uYJcF0u +rW)TjJ,~> +f`(pOqu?Kmrr2rurr3'#s8N)urr<&urrN3#s82lls8N)urr<&trr<&us8;rtrr<&urr<&prr<&s +rrW9$rrE&u!!*#u!W`9#quHcs!s&B$!<3!#!<<'!rr;lrs8N'!r;QfurrE&ur;clt!!)rsrW',$ +!!%uXrW'\4!!)0]!!)rs!!*#u!!)]l!!)ut!!*#u!!)`m!!)Wj!!)foquGmZrW%NLir8uYJcF0u +rW)TjJ,~> +f`(pOqu?Kmrr2rurr3'#s8N)urr<&urrN3#s82lls8N)urr<&trr<&us8;rtrr<&urr<&prr<&s +rrW9$rrE&u!!*#u!W`9#quHcs!s&B$!<3!#!<<'!rr;lrs8N'!r;QfurrE&ur;clt!!)rs!W[b$ +Y5\J%N;iqZJ:PB6!!)0]!!)rs!!*#u!!)]l!!)ut!!*#u!!)`m!!)Wj!!)foquGmZ!W[b$JcFa0 +!!%TMdf0@KJ:R:lJ,~> +f`(pOq#: +f`(pOq#: +f`(pOq#: +f`(pOq#:UEp +r;Qj!s8N)urr<&urrW9$rrDrr!s&B$!<3!#!<<'!rr2ruqu6Wrr;Qp#rrE*!!<3!#!<<'!r;Z`r +Y5\J%N;rkW^Ae05q#: +f`(pOq#:UEp +r;Qj!s8N)urr<&urrW9$rrDrr!s&B$!<3!#!<<'!rr2ruqu6Wrr;Qp#rrE*!!<3!#!<<'!r;Z`r +Y5\J%N;rkW^Ae05q#: +f`(pOq#:UEp +r;Qj!s8N)urr<&urrW9$rrDrr!s&B$!<3!#!<<'!rr2ruqu6Wrr;Qp#rrE*!!<3!#!<<'!r;Qfu +J:Og&!!%uX!W[b$^Ae05q#: +f`(pOq#: +f`(pOq#: +f`(pOq#: +f`(pOf`1mMq>UEpT)\ciY5\J%N;rkW^Ae05qu?KmrVufrqu6Wrr;Q`srr2rurVlp!rrE&u!!*#u +!s&B$!<2uu!<2uu!<)p"!<<'!rVls"s8N)urrW9$rrE&uquG[TrW%NLir8uYJcF0urW)TjJ,~> +f`(pOf`1mMq>UEpT)\ciY5\J%N;rkW^Ae05qu?KmrVufrqu6Wrr;Q`srr2rurVlp!rrE&u!!*#u +!s&B$!<2uu!<2uu!<)p"!<<'!rVls"s8N)urrW9$rrE&uquG[TrW%NLir8uYJcF0urW)TjJ,~> +f`(pOf`1mMq>UEpT)SilJ:Og&!!%uX!W[b$^Ae05qu?KmrVufrqu6Wrr;Q`srr2rurVlp!rrE&u +!!*#u!s&B$!<2uu!<2uu!<)p"!<<'!rVls"s8N)urrW9$rrE&uquG[T!W[b$JcFa0!!%TMdf0@K +J:R:lJ,~> +f`(pObl7YCT)\ciY5\J%N;rkW^Ae05q#:^Qr +!<2uu!<2uu!<)p"!<<'!rVls"s8N)urrW9$rrE&u!!(gSrW%NLir8uYJcF0urW)TjJ,~> +f`(pObl7YCT)\ciY5\J%N;rkW^Ae05q#:^Qr +!<2uu!<2uu!<)p"!<<'!rVls"s8N)urrW9$rrE&u!!(gSrW%NLir8uYJcF0urW)TjJ,~> +f`(pObl7YCT)SilJ:Og&!!%uX!W[b$^Ae05q#:^Qr!<2uu!<2uu!<)p"!<<'!rVls"s8N)urrW9$rrE&u!!(gS!W[b$JcFa0!!%TMdf0@KJ:R:l +J,~> +f`(pOJcFs6rW',$!!%uXrW'\4!!)fo!!)or!!*#u!!)or!!)rs!!*#u!!)ut"T\Q&s8N)srrN3# +!<2uu!<2uu!<)p#!<<'!!<3!*!<<'!s8N'!s8N)urr<&Ss8E"Ls5O%Y!.k0us8E#js*t~> +f`(pOJcFs6rW',$!!%uXrW'\4!!)fo!!)or!!*#u!!)or!!)rs!!*#u!!)ut"T\Q&s8N)srrN3# +!<2uu!<2uu!<)p#!<<'!!<3!*!<<'!s8N'!s8N)urr<&Ss8E"Ls5O%Y!.k0us8E#js*t~> +f`(pOJcFs6!W[b$Y5\J%N;iqZJ:PB6!!)fo!!)or!!*#u!!)or!!)rs!!*#u!!)ut"T\Q&s8N)s +rrN3#!<2uu!<2uu!<)p#!<<'!!<3!*!<<'!s8N'!s8N)urr<&SrrN1NJ:[a[rr<%Ms3goK!.]Ul +s*t~> +f`(pOJcFs6rW',$!!%uXrW'\4!!)fo!!)lqqu?ct!<3#r!<<'!!<2uu!<)p"!<<'!qYpTsrrE&u +!s&B$!<)p#!<<'!s8E#ss8N'"rrE&u!!*#ur;bdUrW%NLir8uYJcF0urW)TjJ,~> +f`(pOJcFs6rW',$!!%uXrW'\4!!)fo!!)lqqu?ct!<3#r!<<'!!<2uu!<)p"!<<'!qYpTsrrE&u +!s&B$!<)p#!<<'!s8E#ss8N'"rrE&u!!*#ur;bdUrW%NLir8uYJcF0urW)TjJ,~> +f`(pOJcFs6!W[b$Y5\J%N;iqZJ:PB6!!)fo!!)lqqu?ct!<3#r!<<'!!<2uu!<)p"!<<'!qYpTs +rrE&u!s&B$!<)p#!<<'!s8E#ss8N'"rrE&u!!*#ur;bdU!W[b$JcFa0!!%TMdf0@KJ:R:lJ,~> +f`(pOJcFs6rW',$!!%uXrW'\4!!%TMrW%NLir8uYJcF0urW)TjJ,~> +f`(pOJcFs6rW',$!!%uXrW'\4!!%TMrW%NLir8uYJcF0urW)TjJ,~> +f`(pOJcFs6!W[b$Y5\J%N;iqZJ:PB6!!%TM!W[b$JcFa0!!%TMdf0@KJ:R:lJ,~> +f`(pOJcFs6rW',$!!%uXrW'\4!!%TMrW%NLir8uYJcF0urW)TjJ,~> +f`(pOJcFs6rW',$!!%uXrW'\4!!%TMrW%NLir8uYJcF0urW)TjJ,~> +f`(pOJcFs6!W[b$Y5\J%N;iqZJ:PB6!!%TM!W[b$JcFa0!!%TMdf0@KJ:R:lJ,~> +f`(pO^]433!<;lqli-qbcN!kDY5\J%N;rkW^Ae05JcG]LJcFa0!!%TMdf9:Ho`'F~> +f`(pO^]433!<;lqli-qbcN!kDY5\J%N;rkW^Ae05JcG]LJcFa0!!%TMdf9:Ho`'F~> +f`(pO^]433!<;lqli-qbcMmqGJ:Og&!!%uX!W[b$^Ae05Jc>cOJ:N4Nir8uYJcF0u!W[b$o`'F~> +f`(pO_#FB7q#: +f`(pO_#FB7q#: +f`(pO_#FB7q#:cOJ:N4Nir8uYJcF0u!W[b$o`'F~> +f`(pOq#: +f`(pOq#: +f`(pOq#:cOJ:N4Nir8uYJcF0u!W[b$o`'F~> +f`(pOq#: +f`(pOq#: +f`(pOq#:cOJ:N4Nir8uYJcF0u +!W[b$o`'F~> +f`(pOq#: +f`(pOq#: +f`(pOq#: +f`(pOqu?Kmrr2rurVls"s8N)trrW9$rrE&u!W`9#quHcs!!*#u!W`9#quHWo!!)rs!!)ut!!)rs +!!)utquHcsquFn>rW',$!!%uXrW'\4!!%TMrW%NLir8uYJcF0urW)TjJ,~> +f`(pOqu?Kmrr2rurVls"s8N)trrW9$rrE&u!W`9#quHcs!!*#u!W`9#quHWo!!)rs!!)ut!!)rs +!!)utquHcsquFn>rW',$!!%uXrW'\4!!%TMrW%NLir8uYJcF0urW)TjJ,~> +f`(pOqu?Kmrr2rurVls"s8N)trrW9$rrE&u!W`9#quHcs!!*#u!W`9#quHWo!!)rs!!)ut!!)rs +!!)utquHcsquFn>!W[b$Y5\J%N;iqZJ:PB6!!%TM!W[b$JcFa0!!%TMdf0@KJ:R:lJ,~> +f`(pOq#: +f`(pOq#: +f`(pOq#:cOJ:N4Nir8uYJcF0u!W[b$o`'F~> +f`(pOq#:%!0$sW!5AI5!.k1L!.k10rr<%Ms3grH!;-;A~> +f`(pOq#:%!0$sW!5AI5!.k1L!.k10rr<%Ms3grH!;-;A~> +f`(pOq#: +f`(pOq#: +f`(pOq#: +f`(pOq#: +f`(pOnc&Rhp&>!lLB%5QY5\J%N;rkW^Ae05JcG]LJcFa0!!%TMdf9:Ho`'F~> +f`(pOnc&Rhp&>!lLB%5QY5\J%N;rkW^Ae05JcG]LJcFa0!!%TMdf9:Ho`'F~> +f`(pOnc&Rhp&>!lLAq;TJ:Og&!!%uX!W[b$^Ae05Jc>cOJ:N4Nir8uYJcF0u!W[b$o`'F~> +f`(pOnc&Rhp&>!lLB%5QY5\J%N;rkW^Ae05JcG]LJcFa0!!%TMdf9:Ho`'F~> +f`(pOnc&Rhp&>!lLB%5QY5\J%N;rkW^Ae05JcG]LJcFa0!!%TMdf9:Ho`'F~> +f`(pOnc&Rhp&>!lLAq;TJ:Og&!!%uX!W[b$^Ae05Jc>cOJ:N4Nir8uYJcF0u!W[b$o`'F~> +f`(pOJcFs6rW',$L]G0h!!%TMrW%NLir8uYJcF0urW)TjJ,~> +f`(pOJcFs6rW',$L]G0h!!%TMrW%NLir8uYJcF0urW)TjJ,~> +f`(pOJcFs6!W[b$Y5a@Zs+%i`!!%TM!W[b$JcFa0!!%TMdf0@KJ:R:lJ,~> +f`(pOJcFs6rW'#!MZCKk!!%TMrW%NLir8uYJcF0urW)TjJ,~> +f`(pOJcFs6rW'#!MZCKk!!%TMrW%NLir8uYJcF0urW)TjJ,~> +f`(pOJcFs6!W[b$X8e*.^Ae05Jc>cOJ:N4Nir8uYJcF0u!W[b$o`'F~> +f`(pOJcFs6rW'#!MZCKk!!%TMrW%NLir8uYJcF0urW)TjJ,~> +f`(pOJcFs6rW'#!MZCKk!!%TMrW%NLir8uYJcF0urW)TjJ,~> +f`(pOJcFs6!W[b$X8e*.^Ae05Jc>cOJ:N4Nir8uYJcF0u!W[b$o`'F~> +f`(pOJcFs6rW%NLo)A[iK)YfNJcG]LJcFa0!!%TMdf9:Ho`'F~> +f`(pOJcFs6rW%NLo)A\TK)YfNJcG]LJcFa0!!%TMdf9:Ho`'F~> +f`(pOJcFs6!W[b$JcG<@!'l/9!!%TM!W[b$JcFa0!!%TMdf0@KJ:R:lJ,~> +f`(pOJcFs6rW%NLo)A[iK)YfNJcG]LJcFa0!!%TMdf9:Ho`'F~> +f`(pOJcFs6rW%NLo)A\TK)YfNJcG]LJcFa0!!%TMdf9:Ho`'F~> +f`(pOJcFs6!W[b$JcG<@!'l/9!!%TM!W[b$JcFa0!!%TMdf0@KJ:R:lJ,~> +f`(pOJcFs6rW%NLoD\jlrr@]O!!%TMrW%NLir8uYJcF0urW)TjJ,~> +f`(pOJcFs6rW%NLoD\kWs$25:!!%TMrW%NLir8uYJcF0urW)TjJ,~> +f`(pOJcFs6!W[b$JcG?A!^QcNKDtoOJc>cOJ:N4Nir8uYJcF0u!W[b$o`'F~> +f`(pOJcFs6rW%NLoD\jlrr@]O!!%TMrW%NLir8uYJcF0urW)TjJ,~> +f`(pOJcFs6rW%NLoD\kWs$25:!!%TMrW%NLir8uYJcF0urW)TjJ,~> +f`(pOJcFs6!W[b$JcG?A!^QcNKDtoOJc>cOJ:N4Nir8uYJcF0u!W[b$o`'F~> +f`(pOJcFs6rW%NLoD\jlrr@]O!!%TMrW%NLir8uYJcF0urW)TjJ,~> +f`(pOJcFs6rW%NLoD\kWs$25:!!%TMrW%NLir8uYJcF0urW)TjJ,~> +f`(pOJcFs6!W[b$JcG?A!^QcNKDtoOJc>cOJ:N4Nir8uYJcF0u!W[b$o`'F~> +g&HU'irFZ1o`"mkrr2ruK`;#PJcG]LJcFa0JH3sqo`'F~> +g&HU'irFZ1o`"nVrr2s`K`;#PJcG]LJcFa0JH3sqo`'F~> +g&HU'jT,=2JcGBB!'pP`!'l5;!!%TM!W[b$JcFa0JH4$ss+'bAJ,~> +f`(pOJcFs6rW%NLo`"mkrr2ruK`;#PJcG]LJcFX-JH4'to`'F~> +f`(pOJcFs6rW%NLo`"nVrr2s`K`;#PJcG]LJcFX-JH4'to`'F~> +f`(pOJcFs6!W[b$JcGBB!'pP`!'l5;!!%TM!W[b$JcFX-JUl-uo`'F~> +f`(pOJcFs6rW%NLo`"mkrr2ruK`;#PJcG]LJcFX-JH4'to`'F~> +f`(pOJcFs6rW%NLo`"nVrr2s`K`;#PJcG]LJcFX-JH4'to`'F~> +f`(pOJcFs6!W[b$JcGBB!'pP`!'l5;!!%TM!W[b$JcFX-JUl-uo`'F~> +f`(pOJcFs6rW%NLp&>!lr;Q`sL&V,QJcG]LJcCT,!!&MgJ,~> +f`(pOJcFs6rW%NLp&>"Wr;Qa^L&V,QJcG]LJcCT,!!&MgJ,~> +f`(pOJcFs6!W[b$JcGEC!'pJ^!'l8 +f`(pOJcFs6rW%NLp&>!lr;Q`sL&V,QJcG]LJcCT,!!&MgJ,~> +f`(pOJcFs6rW%NLp&>"Wr;Qa^L&V,QJcG]LJcCT,!!&MgJ,~> +f`(pOJcFs6!W[b$JcGEC!'pJ^!'l8 +f`(pOJcFs6rW%NLp&>!lr;Q`sL&V,QJcG]LJcCW-rW&JgJ,~> +f`(pOJcFs6rW%NLp&>"Wr;Qa^L&V,QJcG]LJcCW-rW&JgJ,~> +f`(pOJcFs6!W[b$JcGEC!'pJ^!'l8 +f`(pOJcFs6rW%NLpAY*mqYpNqLAq5RJcG]LJcDPGrrD]k!!)cnrW&JgJ,~> +f`(pOJcFs6rW%NLpAY+XqYpO\LAq5RJcG]LJcDPGrrD]k!!)cnrW&JgJ,~> +f`(pOJcFs6!W[b$JcGHD!'pD\!'l;=!!%TM!W[b$JcDPGs7l6d!;Q +f`(pOJcFs6rW%NLpAY*mqYpNqLAq5RJcG]LJcDSH!s&B$!;HNk!;c]u!<3'!!1j.?~> +f`(pOJcFs6rW%NLpAY+XqYpO\LAq5RJcG]LJcDSH!s&B$!;HNk!;c]u!<3'!!1j.?~> +f`(pOJcFs6!W[b$JcGHD!'pD\!'l;=!!%TM!W[b$JcDSH"8Morq"Ogdq"k!nq#C-hpmqG8~> +f`(pOJcFs6rW%NLpAY*mqYpNqLAq5RJcG]LJcDVI!!)ut!!)cnrrDio"9AH%rrAViJ,~> +f`(pOJcFs6rW%NLpAY+XqYpO\LAq5RJcG]LJcDVI!!)ut!!)cnrrDio"9AH%rrAViJ,~> +f`(pOJcFs6!W[b$JcGHD!'pD\!'l;=!!%TM!W[b$JcDVI!;QNm!;Q +f`(pOJcFs6rW%NLp\t3nq#:SJcG]LJcDVI!!)ut!!)cn!W`6#qYpa"s8N*!rrAYjJ,~> +f`(pOJcFs6rW%NLp\t4Yq#:=ZL]7>SJcG]LJcDVI!!)ut!!)cn!W`6#qYpa"s8N*!rrAYjJ,~> +f`(pOJcFs6!W[b$JcGKE!'p>Z!'l>>!!%TM!W[b$JcDVI!;QNm!;Q +f`(pOJcFs6rW%NLp\t3nq#:SJcG]LJcDVI!!)ut!!)Ed"p"]'!<<'!T)X<~> +f`(pOJcFs6rW%NLp\t4Yq#:=ZL]7>SJcG]LJcDVI!!)ut!!)Ed"p"]'!<<'!T)X<~> +f`(pOJcFs6!W[b$JcGKE!'p>Z!'l>>!!%TM!W[b$JcDVI!;QNm!;Ps]#5J5uq#CBhT)X<~> +f`(pOJcFs6rW%NLp\t3nq#:SJcG]LJcDVI!!)ut!!)Ed"p"]'!<<'!T)X<~> +f`(pOJcFs6rW%NLp\t4Yq#:=ZL]7>SJcG]LJcDVI!!)ut!!)Ed"p"]'!<<'!T)X<~> +f`(pOJcFs6!W[b$JcGKE!'p>Z!'l>>!!%TM!W[b$JcDVI!;QNm!;Ps]#5J5uq#CBhT)X<~> +f`(pOJcFs6rW%NLq#: +f`(pOJcFs6rW%NLq#:=ZpAY+XM#RGTJcG]LJcDVI!!)ut!!)He!!*#u!!*#u!!&YkJ,~> +f`(pOJcFs6!W[b$JcGNF!'p8X!'lA?!!%TM!W[b$JcDVI!;QNm!;Q!^!;QQn!;QQn!;N2dJ,~> +f`(pOJcFs6rW%NLq#BsdM#RGTJcG]LJcDSH!s&B$!:Bdd!<2uu!<2uu!2':A~> +f`(pOJcFs6rW%NLq#BtOM#RGTJcG]LJcDSH!s&B$!:Bdd!<2uu!<2uu!2':A~> +f`(pOJcFs6!W[b$JcGNFoK\64!!%TM!W[b$JcDSH"8Morq!J(]q#:9nq#:9npn.S:~> +f`(pOJcFs6rW%NLo)A[iK)YfNJcG]LJcDPGrrE#t!!*#u!!)`m!!)ut!!)ut!!&\lJ,~> +f`(pOJcFs6rW%NLo)A\TK)YfNJcG]LJcDPGrrE#t!!*#u!!)`m!!)ut!!)ut!!&\lJ,~> +f`(pOJcFs6!W[b$JcG<@!'l/9!!%TM!W[b$JcDPGs7lQm!;QQn!;Q9f!;QNm!;QNm!;N5eJ,~> +f`(pOJcFs6rW%NLo)A[iK)YfNJcG]LJcCc1!!)ut!!)ut!!&\lJ,~> +f`(pOJcFs6rW%NLo)A\TK)YfNJcG]LJcCc1!!)ut!!)ut!!&\lJ,~> +f`(pOJcFs6!W[b$JcG<@!'l/9!!%TM!W[b$JcCc1!;QNm!;QNm!;N5eJ,~> +f`(pOJcFs6rW%NLo)A[iK)YfNJcG]LJcCT,!!&MgJ,~> +f`(pOJcFs6rW%NLo)A\TK)YfNJcG]LJcCT,!!&MgJ,~> +f`(pOJcFs6!W[b$JcG<@!'l/9!!%TM!W[b$JcCT,!;N&`J,~> +f`(pOJcFs6rW%NLo)A[iK)YfNJcG]LJcCT,!!&MgJ,~> +f`(pOJcFs6rW%NLo)A\TK)YfNJcG]LJcCT,!!&MgJ,~> +f`(pOJcFs6!W[b$JcG<@!'l/9!!%TM!W[b$JcCT,!;N&`J,~> +f`(pOJcFs6rW%NLo)A[iK)YfNJcG]LJcCT,!!&MgJ,~> +f`(pOJcFs6rW%NLo)A\TK)YfNJcG]LJcCT,!!&MgJ,~> +f`(pOJcFs6!W[b$JcG<@!'l/9!!%TM!W[b$JcCT,!;N&`J,~> +f`(pOJcFs6rW%NLo)A[iK)YfNJcG]LJcCT,!!&MgJ,~> +f`(pOJcFs6rW%NLo)A\TK)YfNJcG]LJcCT,!!&MgJ,~> +f`(pOJcFs6!W[b$JcG<@!'l/9!!%TM!W[b$JcCT,!;N&`J,~> +f`(pOJcFs6rW%NLo)A[iK)YfNJcG]LJcCT,!!&MgJ,~> +f`(pOJcFs6rW%NLo)A\TK)YfNJcG]LJcCT,!!&MgJ,~> +f`(pOJcFs6!W[b$JcG<@!'l/9!!%TM!W[b$JcCT,!;N&`J,~> +f`(pOJcFs6rW%NLo)A[iK)YfNJcG]LJcCT,!!&MgJ,~> +f`(pOJcFs6rW%NLo)A\TK)YfNJcG]LJcCT,!!&MgJ,~> +f`(pOJcFs6!W[b$JcG<@!'l/9!!%TM!W[b$JcCT,!;N&`J,~> +f`(pOJcFs6rW'M/JH4'tlMlD8r;_EKM>mPUS,\!~> +f`(pOJcFs6rW'M/JH4'tlMlD8r;_EKM>mPUS,\!~> +f`(pOJcFs6!W[b$\c73\d/`J3JH5]Ms+#\#M>mSNS,\!~> +f`(pOJcFs6rW'M/!!%TMe,KCJkPp)5!!%TMM>mPUS,\!~> +f`(pOJcFs6rW'M/!!%TMe,KCJkPp)5!!%TMM>mPUS,\!~> +f`(pOJcFs6!W[b$\c2X0JcF4!!!)3^JUd`NJcCT,!;N&`J,~> +f`(pOJcFs6rW'M/!!%TMe,KCJkPp)5!!%TMM>mPUS,\!~> +f`(pOJcFs6rW'M/!!%TMe,KCJkPp)5!!%TMM>mPUS,\!~> +f`(pOJcFs6!W[b$\c2X0JcF4!!!)3^JUd`NJcCT,!;N&`J,~> +f`(pOJcFs6rW'M/!!%TMe,TCIU]1;oJcC<$ci3tFS,\!~> +f`(pOJcFs6rW'M/!!%TMe,TCIU]1 +f`(pOJcFs6!W[b$\c2X0JcF4!!W[b$U]1 +f`(pOJcFs6rW'M/!!(1Aq#KUXr;a)%rW&_n!!%TMJcF'r!!&MgJ,~> +f`(pOJcFs6rW'M/!!(1Aq#KUXr;a)%rW&_n!'l,8JcF'r!!&MgJ,~> +f`(pOJcFs6!W[b$\c2X0b5_8;kPtJ\Yl=b)J:OEp!'l,8JcF'r!;N&`J,~> +f`(pOJcFs6rW'M/!!((>rrD0\rrE&u"9AK%!!)cnrrBn8rW&bo!W`6#JcC<$d/O(GS,\!~> +f`(pOJcFs6rW'M/!!((>rrD0\rrE&u"9AK%!!)cnrrBn8rW&bo!^QcNJcC<$d/O(GS,\!~> +f`(pOJcFs6!W[b$\c2X0a8c/>jo>>\rr3*$s8N'!p](6n_>aQ:J:OHq!^QcNJcC<$d/O+@S,\!~> +f`(pOJcFs6rW'M/!!((>rrE#trr<-#!<;utrVufrs8W&us8W*!r;Z]qs8W#ts8W#trr;rtaT)5> +V#LJrrr@WMJcF*s!!&MgJ,~> +f`(pOJcFs6rW'M/!!((>rrE#trr<-#!<;utrVufrs8W&us8W*!r;Z]qs8W#ts8W#trr;rtaT)5> +V#LK]s$2/8JcF*s!!&MgJ,~> +f`(pOJcFs6!W[b$\c2X0a8c/>rVult!ri9#r;cfrr;cltrW)uurrDusr;cltr;cltr;cisrW(%> +!W[b$V#LK]s$2/8JcF*s!;N&`J,~> +f`(pOJcFs6rW'M/!!((>rrE#trW)lrrrE*!rrE#trr<0$!!*&u!;uls!;lfr!<<*!!<3#u!!<0# +!6P9?!2TVr!<3%Ms+13srr<%gs*t~> +f`(pOJcFs6rW'M/!!((>rrE#trW)lrrrE*!rrE#trr<0$!!*&u!;uls!;lfr!<<*!!<3#u!!<0# +!6P9?!2TVr5lX*#s+13srr<%gs*t~> +f`(pOJcFs6!W[b$\c2X0a8c/>rVuisr;Zcss8W*!rVult"9/?$s8E#rs8N)rs8N*!s8N)us8N'# +rr<&@rrN1NJ>E2H5lX*#s+13srrDh`s*t~> +f`(pOJcFs6rW'M/!!((>rrE#trrDrrrrE*!rrE#trr<3%!!*'!r;cisrrDrrrrE*!rrE&urr<-# +!!(.@rW&ep!!*#u!!%TMJcF-t!!&MgJ,~> +f`(pOJcFs6rW'M/!!((>rrE#trrDrrrrE*!rrE#trr<3%!!*'!r;cisrrDrrrrE*!rrE&urr<-# +!!(.@rW&ep!'pP`!'l,8JcF-t!!&MgJ,~> +f`(pOJcFs6!W[b$\c2X0a8c/>rVultqu?Zrs8W*!rVult"TJH%s8W#trr;uuqu?Zrs8W*!rr;uu +!ri6#ao;DBJ:OKr!'pP`!'l,8JcF-t!;N&`J,~> +f`(pOJcFs6rW'M/!!((>rrE#trrE#tr;cltrrE#tquH]qrW)uurrE#tr;cltrrE&uquFk=rW&ep +!!*#u!!%TMJcF-t!!&MgJ,~> +f`(pOJcFs6rW'M/!!((>rrE#trrE#tr;cltrrE#tquH]qrW)uurrE#tr;cltrrE&uquFk=rW&ep +!'pP`!'l,8JcF-t!!&MgJ,~> +f`(pOJcFs6!W[b$\c2X0a8c/>rVultrVufrs8W*!rVucqrVuiss8W*!rVufrs8W*!rr;lrao;DB +J:OKr!'pP`!'l,8JcF-t!;N&`J,~> +f`(pOJcFs6rW'M/!!((>rrE#trrE&urr<9'!!*'!!!)utrrDlprrE*!rrE&urr<9'!!*'!!!*#u +rrC(=rW&ep!!*#u!!%TMJcF-t!!&MgJ,~> +f`(pOJcFs6rW'M/!!((>rrE#trrE&urr<9'!!*'!!!)utrrDlprrE*!rrE&urr<9'!!*'!!!*#u +rrC(=rW&ep!'pP`!'l,8JcF-t!!&MgJ,~> +f`(pOJcFs6!W[b$\c2X0a8c/>rVultrr;uu#6+Z's8N'!rVultq>^Hps8W*!rr;uu#6+Z's8N'! +rr;uu`r?)?J:OKr!'pP`!'l,8JcF-t!;N&`J,~> +f`-L&j8caj!!((>rrE#trrE&urr<9'!!*'!!!)utrrE#t!!*#urrE*!rrE&urr<9'!!*'!!!*#u +rrC(=rW&hq!!)rs!!%TMXT*hOblID9J,~> +f`-L&j8caj!!((>rrE#trrE&urr<9'!!*'!!!)utrrE#t!!*#urrE*!rrE&urr<9'!!*'!!!*#u +rrC(=rW&hq!'pJ^!'l,8XT*hOblID9J,~> +f`-L&joGF3\c2X0a8c/>rVultrr;uu#6+Z's8N'!rVultrVlitrr;uus8W*!rr;uu#6+Z's8N'! +rr;uu`r?)?J:ONs!'pJ^!'l,8XT*hOblID9J,~> +ec11#k5`'m!!((>rrE#trrE#tquHcsr;cltr;cltr;cfrrW)uuquHcsrW)uur;at>rW&hq!!)rs +!!%TMXT&8#JcF'r!!)ZkJ,~> +ec11#k5`'m!!((>rrE#trrE#tquHcsr;cltr;cltr;cfrrW)uuquHcsrW)uur;at>rW&hq!'pJ^ +!'l,8XT&8#JcF'r!!)ZkJ,~> +ec12NkCC,C!!((>rrE#trrE#tquHcsr;cltr;cltr;cfrrW)uuquHcsrW)uur;at>!W[b$VZ-W] +r;Qa^JcDhO!!%TMci3tFo`'F~> +ec11#k5`'m!!%TMe,TCIVZ-Vrr;Q`sJcDhO!!%TMci3tFo`'F~> +ec11#k5`'m!!%TMe,TCIVZ-W]r;Qa^JcDhO!!%TMci3tFo`'F~> +ec12NkCC,C!!%TMe,KILJ:ONs!'pJ^!'l,8XT&8#JcF'r!!)ZkJ,~> +N;rnXJcG$8!!%TMe,TCIVuH_sqYpNqJcDkP!!%TMci +N;roCJcG$8!!%TMe,TCIVuH`^qYpO\JcDkP!!%TMci +N;roCJcG$8!!%TMe,KILJ:OQt!'pD\!'l,8XoAA$JcF'r!W[b$pA]X~> +N;rnXJcG$8!!%TMe,TCIVuH_sqYpNqJcDkP!!(aQrrDBbquG@Kr;a\6rW)ZlJ,~> +N;roCJcG$8!!%TMe,TCIVuH`^qYpO\JcDkP!!(aQrrDBbquG@Kr;a\6rW)ZlJ,~> +N;roCJcG$8!!%TMe,KILJ:OQt!'pD\!'l,8XoAA$gAh0Qli6k_fDkdL_>aQ:J:R@nJ,~> +N;iqZrr@WMli-qbJcF4!rW&kr!!)lq!!%TMXoAA$gAh0Qr;Zcsrr;uup](6ns8W*!g&M'Prr3*$ +s8N'!p](6ndf9:HpA]X~> +N;irEs$2/8li-qbJcF4!rW&kr!'pD\!'l,8XoAA$gAh0Qr;Zcsrr;uup](6ns8W*!g&M'Prr3*$ +s8N'!p](6ndf9:HpA]X~> +N;irEs$2/8li-qbJcF4!!W[b$VuH`^qYpO\JcDkP!!(aQrrDusrrE&urrDfnrrE*!rrCaPrrE&u +"9AK%!!)cnrrCLI!W[b$pA]X~> +N;iqZrr@WMli-qbJcF4!rW&ns!!)fo!!%TMY5\J%gAh0QrVufr!<;ut!ri6#rr3K/s8N'!s8N'! +rr<'!!<<)t!<)rr!<<)u!<)rr!<3#s!!<0#!;ulq!<<)t!<<)t!<3#t!87DO!;?GC~> +N;irEs$2/8li-qbJcF4!rW&ns!'p>Z!'l,8Y5\J%gAh0QrVufr!<;ut!ri6#rr3K/s8N'!s8N'! +rr<'!!<<)t!<)rr!<<)u!<)rr!<3#s!!<0#!;ulq!<<)t!<<)t!<3#t!87DO!;?GC~> +N;irEs$2/8li-qbJcF4!!W[b$W;ci_q#:=ZJcDnQ!!(aQrrE#tr;Zitr;Zp!!!*#u%flY0!!*'! +!!*$!!<3'!s8;rrs8;rts8E#ss8;rss8;p!rr<&ss8;rts8;rts8;rss8E#OrrN1NJG0"n~> +N;iqZrr@WMli-qbJcF4!rW&ns!!)fo!!%TMY5\J%gAh0Qr;Zcsrr;uus8W*!rr39)s8N'!s8N'! +s8E#us8N*!s8N*!s8N)ts8N''rr<'!rr<&ss8N)ts8E#rs8N)rs8N*!s8N)us8N'#rr<&Qs8E#l +s*t~> +N;irEs$2/8li-qbJcF4!rW&ns!'p>Z!'l,8Y5\J%gAh0Qr;Zcsrr;uus8W*!rr39)s8N'!s8N'! +s8E#us8N*!s8N*!s8N)ts8N''rr<'!rr<&ss8N)ts8E#rs8N)rs8N*!s8N)us8N'#rr<&Qs8E#l +s*t~> +N;irEs$2/8li-qbJcF4!!W[b$W;ci_q#:=ZJcDnQ!!(aQrrDusrrE&urrE*!rrE&u#lt#*!!*'! +!!*&u!<<*!!<<*!!<<*!!<)rt!!`H'!<<'!!;uls!<)rs!;uls!;lfr!<<*!!<3#u!!<0#!8@GS +!.]Uns*t~> +NW/tYrr2ruJcG*:!!%TMe,TCIW;chtq#: +NW/uDrr2s`JcG*:!!%TMe,TCIW;ci_q#:=ZJcDnQ!!(aQrrDusrrE&urrE&urr<*"!<3#r!<<*! +!<3#u!<<*!!<<*!!<)rt!!N<%!<<)u!<)rs!<)rr!<3#u!;lfr!<<*!!<3#u!!<0#!8@JP!;?GC~> +NW/uDrr2s`JcG*:!!%TMe,KILJ:OTu!'p>Z!'l,8Y5\J%gAh0Qr;Zcsrr;uurr;uu!WN0!s82ls +s8N)us8N*!s8N*!s8N)ts8N'%rr<'!s8E#ss8E#ss8;rss8N)rs8N*!s8N)us8N'#rr<&QrrN1N +JG0"n~> +NW/tYrr2ruJcG*:!!%TMe,TCIWW)qupAY*mJcDqR!!(aQrrDusrrE&urrE&urr<*"!<3#u!;uls +!<3#u!<<*!!<<*!!<)rq!<3#t!<)rs!;ulr!<<*!!<)rr!<<*!!<3#r!8@JP!;?GC~> +NW/uDrr2s`JcG*:!!%TMe,TCIWW)r`pAY+XJcDqR!!(aQrrDusrrE&urrE&urr<*"!<3#u!;uls +!<3#u!<<*!!<<*!!<)rq!<3#t!<)rs!;ulr!<<*!!<)rr!<<*!!<3#r!8@JP!;?GC~> +NW/uDrr2s`JcG*:!!%TMe,KILJ:OX!!'p8X!'l,8YQ"S&gAh0Qr;Zcsrr;uurr;uu!WN0!s8N)s +s8N)us8N*!s8N*!s8N)ts82lrs8E#ss8E#rs8E#us8N)ts8;rts8N)us82lNrrN1NJG0"n~> +NW/tYrr2ruJcG*:!!%TMe,TCIWW2SjJcDqR!!(aQrrDusrrE&urrE&urr<*"!<3#u!;uls!<3#u +!<<*!!<<*!!<)rt!;c`p!<)rs!;uls!<<*!!<3#u!!`H'!<<'!!<3#u!8%8M!;?GC~> +NW/uDrr2s`JcG*:!!%TMe,TCIWW2TUJcDqR!!(aQrrDusrrE&urrE&urr<*"!<3#u!;uls!<3#u +!<<*!!<<*!!<)rt!;c`p!<)rs!;uls!<<*!!<3#u!!`H'!<<'!!<3#u!8%8M!;?GC~> +NW/uDrr2s`JcG*:!!%TMe,KILJ:OX!oK\!-YQ"S&gAh0Qr;Zcsrr;uurr;uu!WN0!s8N)ss8N)u +s8N*!s8N*!s8N)ts8N)qs8E#ss8E#rs8N*!s8N)us8N''rr<'!rr<&us8N)NrrN1NJG0"n~> +NrK(Zr;Q`sJcG-;JH4!rU]1;oJcD_L!!(aQrrDusrrE&urrE#trrE#trrDusrrE&urrE*!rrE*! +rrE#trrDlprrDusrr<*"!<3#u!<<*!!<3#u!!`H'!<<'!!<3#u!8%8M!;?GC~> +NrK)Er;Qa^JcG-;JH4!rU]1 +NrK)Er;Qa^JcG-;JH4'ts+$mE!'l,8WW)qugAh0Qr;Zcsrr;uurVultrVultr;Zcsrr;uus8W*! +s8W*!rVultq>^Hpr;Zcs!WN0!s8N*!s8N)us8N''rr<'!rr<&us8N)NrrN1NJG0"n~> +NrK(Zr;Q`sJcG-;!!%TMe,TCIU]1;oJcD_L!!(aQqZ-ZrrW)uurW)uurrE#trrDusrrE#tr;cfr +r;cltr;cltr;cisr;cisr;cfrrW)uuquHcsrW)uur;bROrW)ZlJ,~> +NrK)Er;Qa^JcG-;!!%TMe,TCIU]1 +NrK)Er;Qa^JcG-;!!%TMe,KILJ:OEp!'l,8WW)qugAh$Ms8W&us8W&us8W*!rVultr;ZcsrVufr +rVufrs8W#ts8W#trr;osrr;osrVuiss8Vuss8W&us8W#tgA_3SJ:R@nJ,~> +NrK(Zr;Q`sJcG-;!!%TMe,TCIU]1;oJcD_L!!%TMci +NrK)Er;Qa^JcG-;!!%TMe,TCIU]1 +NrK)Er;Qa^JcG-;!!%TMe,KILJ:OEp!'l,8WW)quJcF'r!W[b$pA]X~> +O8f1[qYpNqJcG0 +O8f2FqYpO\JcG0 +O8f2FqYpO\JcG0 +O8f1[qYpNqJcG0 +O8f2FqYpO\JcG0 +O8f2FqYpO\JcG0 +O8f1[qYpNqJcG0 +O8f2FqYpO\JcG0 +O8f2FqYpO\JcG0 +OT,:\q#: +OT,;Gq#:=ZJcG3=!!%TMe,TCIU]1 +OT,;Gq#:=ZJcG3=!!%TMe,KILJ:OEp!'l,8WW)quJcF'r!W[b$pA]X~> +OT,:\q#: +OT,;Gq#:=ZJcG3=!!%TMe,TCIU]1 +OT,;Gq#:=ZJcG3=!!%TMe,KILJ:OEp!'l,8WW)quJcF'r!W[b$pA]X~> +OT,:\q#: +OT,;Gq#:=ZJcG3=!!%TMe,TCIU]1 +OT,;Gq#:=ZJcG3=!!%TMe,KILJ:OEp!'l,8WW)quJcF'r!W[b$pA]X~> +OoGC]pAY*mJcG6>!!%TMe,TCIU]1;oJcD_L!!%TMci +OoGDHpAY+XJcG6>!!%TMe,TCIU]1 +OoGDHpAY+XJcG6>!!%TMe,KILJ:OEp!'l,8WW)quJcF'r!W[b$pA]X~> +OoP%RJcG6>!!%TMe,TCIU]1;oJcD_L!!%TMci +OoP&=JcG6>!!%TMe,TCIU]1 +OoP&=JcG6>!!%TMe,KILJ:OEp!'l,8WW)quJcF'r!W[b$pA]X~> +N;ikXJcG!7!!%TMe,TCIU]1;oJcD_LJH3jnpA]X~> +N;ilCJcG!7!!%TMe,TCIU]1 +N;ilCJcG!7!!%TMe,KILJ:OEp!'l,8WW.MLblIcopA]X~> +N;ikXJcG!7!!';(quHcs!!)rs!!)Ti!!)rsq>g +N;ilCJcG!7!!';(quHcs!!)rs!!)Ti!!)rsq>g +N;ilCJcG!7!!';(quHcs!!)rs!!)Ti!!)rsq>g +N;ikXJcG!7!!'>)!!)lq!!)rs!!)Ti!!)ip!!)]l!!)lq!!)ipquH*`rW&_n!!%TMWW)quJcF'r +rW)ZlJ,~> +N;ilCJcG!7!!'>)!!)lq!!)rs!!)Ti!!)ip!!)]l!!)lq!!)ipquH*`rW&_n!'l,8WW)quJcF'r +rW)ZlJ,~> +N;ilCJcG!7!!'>)!!)lq!!)rs!!)Ti!!)ip!!)]l!!)lq!!)ipquH*`!W[b$U]1 +N;ikXJcG!7!!)fo!!)or!UEpr;Q`srr;rtrVuiss8N0$rr<&srr<&rs8E#trrE-"rW)rt!!*#urW)rtrrD?arW&_n +!!%TMWW)quJcF'rrW)ZlJ,~> +N;ilCJcG!7!!)fo!!)or!UEpr;Q`srr;rtrVuiss8N0$rr<&srr<&rs8E#trrE-"rW)rt!!*#urW)rtrrD?arW&_n +!'l,8WW)quJcF'rrW)ZlJ,~> +N;ilCJcG!7!!)fo!!)or!UEpr;Q`srr;rtrVuiss8N0$rr<&srr<&rs8E#trrE-"rW)rt!!*#urW)rtrrD?a!W[b$ +U]1 +N;ikXJcG!7!!)fo!!)orrrE&u"9AK%!!*#u!!*#u!s&B$!;uis!<3!#!<<'!r;Q`sr;Q`srr3'# +s8N)orr<&prr<&srrW9$rrE&u!s&B$!;uls!<<'!!<)ot!;uis!<3!$!<<'!!<3!&!<<'!s8N)u +rriE&rrE'!li6qaU]1;oJcD_L!!%TMci +N;ilCJcG!7!!)fo!!)orrrE&u"9AK%!!*#u!!*#u!s&B$!;uis!<3!#!<<'!r;Q`sr;Q`srr3'# +s8N)orr<&prr<&srrW9$rrE&u!s&B$!;uls!<<'!!<)ot!;uis!<3!$!<<'!!<3!&!<<'!s8N)u +rriE&rrE'!li6qaU]1 +N;ilCJcG!7!!)fo!!)orrrE&u"9AK%!!*#u!!*#u!s&B$!;uis!<3!#!<<'!r;Q`sr;Q`srr3'# +s8N)orr<&prr<&srrW9$rrE&u!s&B$!;uls!<<'!!<)ot!;uis!<3!$!<<'!!<3!&!<<'!s8N)u +rriE&rrE'!li."dJ:OEp!'l,8WW)quJcF'r!W[b$pA]X~> +N;ikXJcG!7!!)fo!!)or!!)ut!s&B$!<)ot!<3!#!<<'!r;Q`srr3'#s8N)srr<&srr<&urrW9$ +rrDio!!)ipq>gEm!s&B$!;uis!<2uu!<)ot!;QQr!<<'!rVm'%s8N*!rrE&u!!)0]rW&_n!!%TM +WW)quJcF'rrW)ZlJ,~> +N;ilCJcG!7!!)fo!!)or!!)ut!s&B$!<)ot!<3!#!<<'!r;Q`srr3'#s8N)srr<&srr<&urrW9$ +rrDio!!)ipq>gEm!s&B$!;uis!<2uu!<)ot!;QQr!<<'!rVm'%s8N*!rrE&u!!)0]rW&_n!'l,8 +WW)quJcF'rrW)ZlJ,~> +N;ilCJcG!7!!)fo!!)or!!)ut!s&B$!<)ot!<3!#!<<'!r;Q`srr3'#s8N)srr<&srr<&urrW9$ +rrDio!!)ipq>gEm!s&B$!;uis!<2uu!<)ot!;QQr!<<'!rVm'%s8N*!rrE&u!!)0]!W[b$U]1 +N;ikXJcG!7!!)orq>gNp!!)ut!s&B$!<)ot!<3!#!<<'!r;ZZprr;uurVultrr;lrrr;uuqYpNq +r;Qj!s8N)srr<&us8;rss8N)urr<&urr<&trr<&rs8;rtrr<&trriE&rrE*!quGmZrW) +N;ilCJcG!7!!)orq>gNp!!)ut!s&B$!<)ot!<3!#!<<'!r;ZZprr;uurVultrr;lrrr;uuqYpNq +r;Qj!s8N)srr<&us8;rss8N)urr<&urr<&trr<&rs8;rtrr<&trriE&rrE*!quGmZrW) +N;ilCJcG!7!!)orq>gNp!!)ut!s&B$!<)ot!<3!#!<<'!r;ZZprr;uurVultrr;lrrr;uuqYpNq +r;Qj!s8N)srr<&us8;rss8N)urr<&urr<&trr<&rs8;rtrr<&trriE&rrE*!quGmZ!W[b$m/MV: +NW@N-!!%TMci4%HJ:R@nJ,~> +N;ikXJcG!7!!)fo!!)or!!)ut!s&B$!<)ot!<3!#!<<'!r;Q`sq#: +N;ilCJcG!7!!)fo!!)or!!)ut!s&B$!<)ot!<3!#!<<'!r;Q`sq#: +N;ilCJcG!7!!)fo!!)or!!)ut!s&B$!<)ot!<3!#!<<'!r;Q`sq#: +N;ikXJcG!7!!)fo!!)orrrE&u!s&B$!<)ot!<3!#!<<'!r;Q`sq#: +N;ilCJcG!7!!)fo!!)orrrE&u!s&B$!<)ot!<3!#!<<'!r;Q`sq#: +N;ilCJcG!7!!)fo!!)orrrE&u!s&B$!<)ot!<3!#!<<'!r;Q`sq#: +N;ikXJcG!7!!)fo!!)or! +N;ilCJcG!7!!)fo!!)or! +N;ilCJcG!7!!)fo!!)or! +N;ikXJcG!7!!)Qh!!%TMjT#2Zm/I%cZiBh$k5YD\#6+Z's8N'!q#C9mR/d-ceGfLKJcF'rrW)Zl +J,~> +N;ilCJcG!7!!)Qh!!%TMjT#2Zm/I%cZiBh$k5YD\#6+Z's8N'!q#C9mR/d-ceGfLKJcF'rrW)Zl +J,~> +N;ilCJcG!7!!)Qh!!%TMjSo8]J:R"d!!'A*q#KRWrW!0&!!*'!!!)for;`5b!W[b$eGfLKJcF'r +!W[b$pA]X~> +N;ikXJcG!7!!)Qh!!%TMjT#2Zm/I%cYlF_'jT#5[qZ$Qqq>^Hprr3*$s8N'!p](6nWW2qteGfLK +JcF'rrW)ZlJ,~> +N;ilCJcG!7!!)Qh!!%TMjT#2Zm/I%cYlF_'jT#5[qZ$Qqq>^Hprr3*$s8N'!p](6nWW2qteGfLK +JcF'rrW)ZlJ,~> +N;ilCJcG!7!!)Qh!!%TMjSo8]J:R"d!!'8'rrD-[rrDoqrrDlprrE&u"9AK%!!)cnrrB%u!W[b$ +eGfLKJcF'r!W[b$pA]X~> +N;ikXJcG!7!!%TMe,TCIm/I%cYlF_'rVult!ri9#r;cfrr;cltrW)uuqu?s$!!*'!!!*#urW)uu +rrDusr;cltr;cltr;cisrW'2&rW(IJ!!)9`!!)lq!!)Ed!!%`QrW)ZlJ,~> +N;ilCJcG!7!!%TMe,TCIm/I%cYlF_'rVult!ri9#r;cfrr;cltrW)uuqu?s$!!*'!!!*#urW)uu +rrDusr;cltr;cltr;cisrW'2&rW(IJ!!)9`!!)lq!!)Ed!!%`QrW)ZlJ,~> +N;ilCJcG!7!!%TMe,KILJ:R"d!!'8'rrE#trr<-#!<;utrVufrs8W&us8Vus#6+Z's8N'!rr;rt +s8W*!r;Z]qs8W#ts8W#trr;rtYl=b)J:Q/L!!)9`!!)lq!!)Ed!!%`Q!W[b$pA]X~> +N;ikXJcG!7!!%TMe,TCIm/I%cYlF_'rVuisr;Zcss8W*!rVult#6+Z's8N'!rr;uus8W*!s8W*! +"9/?$s8E#rs8N)rs8N*!s8N)us8N'#rr<&(s8E#Jrr<&Xrr<&Zrr<%[s8E#ls*t~> +N;ilCJcG!7!!%TMe,TCIm/I%cYlF_'rVuisr;Zcss8W*!rVult#6+Z's8N'!rr;uus8W*!s8W*! +"9/?$s8E#rs8N)rs8N*!s8N)us8N'#rr<&(s8E#Jrr<&Xrr<&Zrr<%[s8E#ls*t~> +N;ilCJcG!7!!%TMe,KILJ:R"d!!'8'rrE#trW)lrrrE*!rrE#trr<9'!!*'!!!*#urrE*!rrE*! +rr<0$!!*&u!;uls!;lfr!<<*!!<3#u!!<0#!3uP*!.]ULrr<&Xrr<&Zrr<%[rrN1NJG0"n~> +N;ikXJcG!7!!%TMe,TCIm/I%cYlF_'rVultqu?Zrs8W*!rVult#6+Z's8N'!rr;uus8W*!s8W*! +"TJH%s8W#trr;uuqu?Zrs8W*!rr;uu!ri6#Z2ae'eGfLKq#: +N;ilCJcG!7!!%TMe,TCIm/I%cYlF_'rVultqu?Zrs8W*!rVult#6+Z's8N'!rr;uus8W*!s8W*! +"TJH%s8W#trr;uuqu?Zrs8W*!rr;uu!ri6#Z2ae'eGfLKq#: +N;ilCJcG!7!!%TMe,KILJ:R"d!!'8'rrE#trrDrrrrE*!rrE#trr<9'!!*'!!!*#urrE*!rrE*! +rr<3%!!*'!r;cisrrDrrrrE*!rrE&urr<-#!!';(!W[b$eGfLKq#: +N;ikXJcG!7!!%TMe,TCIm/I%cYlF_'rVultrVufrs8W*!rVucqs8W*!rr;uus8W*!s8VusrVuis +s8W*!rVufrs8W*!rr;lrZ2ae'eGfLKq#: +N;ilCJcG!7!!%TMe,TCIm/I%cYlF_'rVultrVufrs8W*!rVucqs8W*!rr;uus8W*!s8VusrVuis +s8W*!rVufrs8W*!rr;lrZ2ae'eGfLKq#: +N;ilCJcG!7!!%TMe,KILJ:R"d!!'8'rrE#trrE#tr;cltrrE#tquHcsrrE&urrE*!rrE*!quH]q +rW)uurrE#tr;cltrrE&uquF#%!W[b$eGfLKq#: +N;ikXJcG!7!!) +N;ilCJcG!7!!) +N;ilCJcG!7!!)^Hps8W*!rr;uu#6+Z's8N'!rr;uuY5\P'J:Q/L!!)fo!!)or!!)ut"p"]'!<<'! +rVlitqu6Wrrr3'#s8N)urrrK'rrE*!!<3!#!<<'!O8f7]J:R@nJ,~> +])ST,QN$pblMghag&D$Pir8uY[/^+*m/I%cYlF_'rVultrr;uu#6+Z's8N'!rVultr;Zcsrr;uu +s8W*!s8W*!rVlitrr;uus8W*!rr;uu#6+Z's8N'!rr;uuY5eJ$eGfLKqu?Kmrr2rurVm'%s8N*! +rrE#t!!)or!!*#u!s&B$!<3!&!<<'!s8N)urrW9$rrA,[rW)ZlJ,~> +])ST,QN$pblMghag&D$Pir8uY[/^+*m/I%cYlF_'rVultrr;uu#6+Z's8N'!rVultr;Zcsrr;uu +s8W*!s8W*!rVlitrr;uus8W*!rr;uu#6+Z's8N'!rr;uuY5eJ$eGfLKqu?Kmrr2rurVm'%s8N*! +rrE#t!!)or!!*#u!s&B$!<3!&!<<'!s8N)urrW9$rrA,[rW)ZlJ,~> +])ST,QN$pblMghag&D$Pir8uY[/U1-J:R"d!!'8'rrE#trrE&urr<9'!!*'!!!)utrrDusrrE&u +rrE*!rrE*!rrE#t!!*#urrE*!rrE&urr<9'!!*'!!!*#urrB5%!W[b$eGfLKqu?Kmrr2rurVm'% +s8N*!rrE#t!!)or!!*#u!s&B$!<3!&!<<'!s8N)urrW9$rrA,[!W[b$pA]X~> +])Ma1VuH_sQN$pbq#: +])Ma1VuH_sQN$pbq#: +])Ma1VuH_sQN$pbq#: +])Ma1VuH_sQN$pbq#:UEprr3'#s8N)urrN3#!<3!*!<<'!!<<'! +s8N)qrr<&urrW9$rrE&u%06G.!<<'!!<<'!s8N)+s8E#brr<%Ms,d9[!7_#K!;QQo!;lfr!<3!& +!<<'!s8N)us8N)rrt,82rr<'!rrE*!!!*'!!<<'!rr3'#s8N([s8E#ls*t~> +])Ma1VuH_sQN$pbq#:UEprr3'#s8N)urrN3#!<3!*!<<'!!<<'! +s8N)qrr<&urrW9$rrE&u%06G.!<<'!!<<'!s8N)+s8E#brr<%Ms,d9[!7_#K!;QQo!;lfr!<3!& +!<<'!s8N)us8N)rrt,82rr<'!rrE*!!!*'!!<<'!rr3'#s8N([s8E#ls*t~> +])Ma1VuH_sQN$pbq#:UEprr3'#s8N)urrN3#!<3!*!<<'!!<<'! +s8N)qrr<&urrW9$rrE&u%06G.!<<'!!<<'!s8N)+rrN1NJF*:9!.k03rrN1NJCOT!!;QQo!;lfr +!<3!&!<<'!s8N)us8N)rrt,82rr<'!rrE*!!!*'!!<<'!rr3'#s8N([rrN1NJG0"n~> +])Ma1VuQ_rR/[-dq#: +])Ma1VuQ_rR/[-dq#: +])Ma1VuHeuJ:O$e!!)fo!!)or!!*#u!s&B$!<)ot!;ZWp!<3!#!<<'!rr3$"rrE&u!s&B$!<3!# +!<<'!qYpNqrr3'#s8N)urrrK'rrE*!!<3!#!<<'![/U1-J:R"d!!%TMOT,@^J:Q/L!!)fo!!)or +! +])Ma1rVuZneGoIIjT#2ZR/[-dqu?Kmrr2rurr3'#s8N)trr<&ps82lrrr`?%!<<)s!<<'!!<3!# +!<<'!qYpNqrr3'#s8N)urrrK'rrE*!!<3!#!<<'![/^+*m/I%cJcCi3rW(IJ!!)Qh!!)3^!!%TM +qu?WqpA]X~> +])Ma1rVuZneGoIIjT#2ZR/[-dqu?Kmrr2rurr3'#s8N)trr<&ps82lrrr`?%!<<)s!<<'!!<3!# +!<<'!qYpNqrr3'#s8N)urrrK'rrE*!!<3!#!<<'![/^+*m/I%cJcCi3rW(IJ!!)Qh!!)3^!!%TM +qu?WqpA]X~> +])Ma1rVuZneGoIIjSo8]J:O$e!!)orq>gNp!!*#u!s&B$!<)ot!;ZZm!<3!$!<3'!s82lsrr<&u +rrW9$rrDoq!!*#u!s&B$!<3!&!<<'!s8N)urrW9$rrBG+!W[b$m/I%cJcCi3!W[b$eGfLKnc&Rh +kPkM^JcGWI!W[b$pA]X~> +])Ma1qZ$Qqf)PaMs8W*!rr3*$s8N'!p](6np&G!kR/[-dq#: +])Ma1qZ$Qqf)PaMs8W*!rr3*$s8N'!p](6np&G!kR/[-dq#: +])Ma1qZ$Qqf)PaMs8W*!rr3*$s8N'!p](6np&>'nJ:O$e!!)fo!!)or!!*#u!s&B$!<)ot!;ZWp +!;c^!!<3'!rrDrr!!*#u!s&B$!;c]q!<3!#!<<'!rr30&s8N*!rrE&u!s&B$!4;b-!.]Udrr<%M +s,d6^!.]ULrr<&hrr<&bs8;qKs8)`s!.]Uns*t~> +])Ma1qZ$QqrVult!ri9#r;cfrr;cltrW)osr;cisrW)uur;Zp!!!)rsr;cltr;cltr;cisrW)lr +rW&>c!!)fo!!)or!!*#u"9AK%!!*#u!!)ip!!)lq"T\Q&s8N)rrr<&urrW9$rrDoq&HMk2!!*'! +!<<'!!<<'!s8N)urrW9$rrBG+rW) +])Ma1qZ$QqrVult!ri9#r;cfrr;cltrW)osr;cisrW)uur;Zp!!!)rsr;cltr;cltr;cisrW)lr +rW&>c!!)fo!!)or!!*#u"9AK%!!*#u!!)ip!!)lq"T\Q&s8N)rrr<&urrW9$rrDoq&HMk2!!*'! +!<<'!!<<'!s8N)urrW9$rrBG+rW) +])Ma1qZ$QqrVult!ri9#r;cfrr;cltrW)osr;cisrW)uur;Zp!!!)rsr;cltr;cltr;cisrW)lr +!W[b$R/[-dq#:UEpqYp^!rrE*!!;lcr!<3!#!<<'!qYq--s8N'! +s8N*!rr<'!rrE*!!<3!#!<<'![/U1-J:R"d!!%TMOT,@^J:Q/L!!%TMci4%HJ:R@nJ,~> +])Ma1qZ$QqrVuisr;Zcss8W*!rVult#6+Z's8N'!r;Zcs#lal)s8N'!s8W&ur;Zcsqu?Zrs8W*! +rr;uu!ri6#rVuisR/[-dq#: +])Ma1qZ$QqrVuisr;Zcss8W*!rVult#6+Z's8N'!r;Zcs#lal)s8N'!s8W&ur;Zcsqu?Zrs8W*! +rr;uu!ri6#rVuisR/[-dq#: +])Ma1qZ$QqrVuisr;Zcss8W*!rVult#6+Z's8N'!r;Zcs#lal)s8N'!s8W&ur;Zcsqu?Zrs8W*! +rr;uu!ri6#rVlp!J:O$e!!)fo!!)or!!*#u"9AK%!<<#up](0lrVlitrVufrs8N'!rr2rurr3'# +s8N)ts8N'"rrE&urr<<(!<<'!s8N)urr<&urr<&,rrN1NJF*:9!.k03rrN1NJCOT!!.k0rrrN1N +JG0"n~> +])Ma1qZ$QqrVultqu?Zrs8W*!rVult"TJH%s8W&urVult#6+Z's8N'!rr;osrr;uuqu?Zrs8W*! +rr;uu!ri6#rVuisR/[-dirArWf`(pOT`=ukm/I%cJcCi3rW(IJ!!%TMci +])Ma1qZ$QqrVultqu?Zrs8W*!rVult"TJH%s8W&urVult#6+Z's8N'!rr;osrr;uuqu?Zrs8W*! +rr;uu!ri6#rVuisR/[-dirArWf`(pOT`=ukm/I%cJcCi3rW(IJ!!%TMci +])Ma1qZ$QqrVultqu?Zrs8W*!rVult"TJH%s8W&urVult#6+Z's8N'!rr;osrr;uuqu?Zrs8W*! +rr;uu!ri6#rVlp!J:O$e!!)$Yr;bLM!!&\l!W[b$m/I%cJcCi3!W[b$eGfLKJcF'r!W[b$pA]X~> +])Ma1qZ$QqrVultrVufrs8W*!rVucqrr;rtrr;lrs8W*!r;Z`rs8W*!rVufrs8W*!rr;lrrVuis +R/[-d\c;U.TE"ljm/I%cJcCi3rW(IJ!!%TMci +])Ma1qZ$QqrVultrVufrs8W*!rVucqrr;rtrr;lrs8W*!r;Z`rs8W*!rVufrs8W*!rr;lrrVuis +R/[-d\c;U.TE"ljm/I%cJcCi3rW(IJ!!%TMci +])Ma1qZ$QqrVultrVufrs8W*!rVucqrr;rtrr;lrs8W*!r;Z`rs8W*!rVufrs8W*!rr;lrrVlp! +J:O$e!!'S0r;`Ji!W[b$m/I%cJcCi3!W[b$eGfLKJcF'r!W[b$pA]X~> +])Ma1qZ$QqrVultrr;uu#6+Z's8N'!rVultqZ$Nps8W*!r;Zcsqu?Zrs8W*!rr;uu#6+Z's8N'! +rr;uuqZ$NpR/[-dJcF4!rW) +])Ma1qZ$QqrVultrr;uu#6+Z's8N'!rVultqZ$Nps8W*!r;Zcsqu?Zrs8W*!rr;uu#6+Z's8N'! +rr;uuqZ$NpR/[-dJcF4!rW) +])Ma1qZ$QqrVultrr;uu#6+Z's8N'!rVultqZ$Nps8W*!r;Zcsqu?Zrs8W*!rr;uu#6+Z's8N'! +rr;uuqYpTsJ:O$e!!%TMe,KILJ:R"d!!%TMOT,@^J:Q/L!!)!X!!)lq!!)Ed!!&#Y!W[b$pA]X~> +])Ma1qZ$QqrVultrr;uu#6+Z's8N'!rVultq>^Hps8W*!r;Zcss8N'!rr;uus8W*!rr;uu#6+Z' +s8N'!rr;uuqZ$NpR/[-dJcF4!rW) +])Ma1qZ$QqrVultrr;uu#6+Z's8N'!rVultq>^Hps8W*!r;Zcss8N'!rr;uus8W*!rr;uu#6+Z' +s8N'!rr;uuqZ$NpR/[-dJcF4!rW) +])Ma1qZ$QqrVultrr;uu#6+Z's8N'!rVultq>^Hps8W*!r;Zcss8N'!rr;uus8W*!rr;uu#6+Z' +s8N'!rr;uuqYpTsJ:O$e!!%TMe,KILJ:R"dJH1]1s+&W!!!(^P!!)'Z!!&Ac!W[b$pA]X~> +])Ma1qZ$QqrVultrVucqs8W#ts8W#ts8W#trVufrrr;rt!<;utrVuiss8Vuss8W&us8W#trVuis +R/[-dJcF4!rW) +])Ma1qZ$QqrVultrVucqs8W#ts8W#ts8W#trVufrrr;rt!<;utrVuiss8Vuss8W&us8W#trVuis +R/[-dJcF4!rW) +])Ma1qZ$QqrVultrVucqs8W#ts8W#ts8W#trVufrrr;rt!<;utrVuiss8Vuss8W&us8W#trVlp! +J:O$e!!%TMe,KILJ:R"d!!%TMOT,@^J:Q/L!!)fo!!)or! +])Ma1VuQ_rR/[-dJcF4!rW) +])Ma1VuQ_rR/[-dJcF4!rW) +])Ma1VuHeuJ:O$e!!%TMe,KILJ:R"d!!%TMOT,@^J:Q/L!!)fo!!)orrrE&u"9AK%!!*#u"p"]' +!<<'!rr;uuqu6Wrrr3'#s8N)urs\u.rrE*!!!*'!!<<'!Qi@*eJ:R@nJ,~> +])Ma1VuQ_rR/[-ddJj1Hg]%6RmJd.d_#OB6m/I%cJcCi3rW(IJ!!)fo!!)or!!)ut!s&B$!<)p% +!<<'!s8N)trr<&rrr<&urrW9$rrE&u"p"]'!<<'!rr3'#s8N(cs8E#ls*t~> +])Ma1VuQ_rR/[-ddJj1Hg]%6RmJd.d_#OB6m/I%cJcCi3rW(IJ!!)fo!!)or!!)ut!s&B$!<)p% +!<<'!s8N)trr<&rrr<&urrW9$rrE&u"p"]'!<<'!rr3'#s8N(cs8E#ls*t~> +])Ma1VuHeuJ:O$e!!(FH!!(dR!!)Ed!!'h7!W[b$m/I%cJcCi3!W[b$eGfLKq#: +])Ma1VuQ_rR/[-da8Z,>jo5;\j8T)Zb5_G@m/I%cJcCi3rW(IJ!!)orq>gNp!!)ut!s&B$!<)p% +!<<'!s8N)trr<&rrr<&urrW9$rrE&u"p"]'!<<'!rr3'#s8N(cs8E#ls*t~> +])Ma1VuQ_rR/[-da8Z,>jo5;\j8T)Zb5_G@m/I%cJcCi3rW(IJ!!)orq>gNp!!)ut!s&B$!<)p% +!<<'!s8N)trr<&rrr<&urrW9$rrE&u"p"]'!<<'!rr3'#s8N(cs8E#ls*t~> +])Ma1VuHeuJ:O$e!!((>!!)-\!!)'Z!!(1A!W[b$m/I%cJcCi3!W[b$eGfLKqu?Kmrr2rurVls" +s8N)trrrK'rrE*!!<)ot!;lcr!<3!#!<<'!rr30&s8N*!rrE&u!s&B$!13]e!.]Uns*t~> +])Ma1VuQ_rR/[-dq#: +])Ma1VuQ_rR/[-dq#: +])Ma1VuHeuJ:O$e!!)fo!!)lqrW)rtrW)uu!!)rs! +])Ma1VuQ_rR/[-dq#: +])Ma1VuQ_rR/[-dq#: +])Ma1VuHeuJ:O$e!!)fo!!)or!!)rs!!*#u!s&B$!<3!"!<3&urr<&prsAc+rr<'!rrE*!!<2uu +!<3!$!<<'!!<2uu!<3!"!<3&urrW9$rrDrr!!*#u!s&B$!<3!-!<<'!s8N'!s8N*!rrC4A!W[b$ +m/I%cJcCi3!W[b$nc/XaoDejcpAY*mq#: +])Ma1VuQ_rR/[-dq#: +])Ma1VuQ_rR/[-dq#: +])Ma1VuHeuJ:O$e!!)fo!!)or!!)fo!s&B$!<3!"!<3&urr<&prrW9$rrE&u!s&B$!<2uu!<3!# +!<<'!rVlitrr2rur;Qj!s8N)rrr<&urrW9$rrE&u"p"]'!<<'!rr3'#s8N)ArrN1NJF*:9!.k03 +rrN1NJF`^Bq#CBhp&>*gs7l +])Ma1VuQ_rR/[-dqu?KmrVultrVufrrr3*$rrE*!quHQm!s&B$!<3!#!<<'!rr;lrs8N'!r;Qfu +rrE&ur;clt!!)or!!*#u!s&B$!<3!&!<<'!s8N)urrW9$rrC4ArW) +])Ma1VuQ_rR/[-dqu?KmrVultrVufrrr3*$rrE*!quHQm!s&B$!<3!#!<<'!rr;lrs8N'!r;Qfu +rrE&ur;clt!!)or!!*#u!s&B$!<3!&!<<'!s8N)urrW9$rrC4ArW) +])Ma1VuHeuJ:O$e!!)orq>gKorrE#tr;cis"9AH%s8Vusq>UNss8N)urrW9$rrE&uquHcs!!)rs +!W`6#rr;oss8N'!qu6Wrrr3'#s8N)urrrK'rrE*!!<3!#!<<'!b5VMCJ:R"d!!%TMOT,@^J:R7k +!;QNm!;Q3d!;Q9f!!)Qh!!)lq!!)3^!!%ZO!W[b$pA]X~> +])Ma1VuQ_rR/[-dq#:*os8N)urrW9$rrE&u!!)or!!)rs +"T\Q&s8N)urrW9$rrDrr!!*#u!s&B$!<3!&!<<'!s8N)urrW9$rrC4ArW) +])Ma1VuQ_rR/[-dq#:*os8N)urrW9$rrE&u!!)or!!)rs +"T\Q&s8N)urrW9$rrDrr!!*#u!s&B$!<3!&!<<'!s8N)urrW9$rrC4ArW) +])Ma1VuHeuJ:O$e!!)fo!!)fo!s&B$!<2uu!<3!%!<3'!rrD`l!s&B$!<3!#!<<'!rr2ruqu6Wr +r;Qp#rrE*!!<3!#!<<'!qu6Wrrr3'#s8N)urrrK'rrE*!!<3!#!<<'!b5VMCJ:R"d!!%TMOT,@^ +J:R7k!;QNm!;Q3d!;Q9f!!)Qh!!)lq!!)?br;_HL!W[b$pA]X~> +])Ma1VuQ_rR/[-dq#:*os8N)urrW9$rrE&u!!)or!!)rs +"T\Q&s8N)urrW9$rrDrr&HMk2!!*'!!<<'!!<<'!s8N)urrW9$rrC4ArW) +])Ma1VuQ_rR/[-dq#:*os8N)urrW9$rrE&u!!)or!!)rs +"T\Q&s8N)urrW9$rrDrr&HMk2!!*'!!<<'!!<<'!s8N)urrW9$rrC4ArW) +])Ma1VuHeuJ:O$e!!)fo!!)fo!s&B$!<2uu!<3!%!<3'!rrD`l!s&B$!<3!#!<<'!rr2ruqu6Wr +r;Qp#rrE*!!<3!#!<<'!qu76.s8N'!s8N*!rr<'!rrE*!!<3!#!<<'!b5VMCJ:R"d!!%TMOT,@^ +J:R7k!;QNm!;Q3d!;Q9f!!%TMci4%HJ:R@nJ,~> +]DnT*R/[-dq#:UNss8N)urr<&urr<&us8;rtrr<&rrr<&ts82j" +rrE*!!<)rt!!3*"rr;uu#QFf(rrE*!!<2uu!<2uu!6bEA!:9^c!.k03s8E#irr<&trr<&krr<&m +rr<%Ms3L`E!;?GC~> +]DnT*R/[-dq#:UNss8N)urr<&urr<&us8;rtrr<&rrr<&ts82j" +rrE*!!<)rt!!3*"rr;uu#QFf(rrE*!!<2uu!<2uu!6bEA!:9^c!.k03s8E#irr<&trr<&krr<&m +rr<%Ms3L`E!;?GC~> +]DnZ,s+$L:!!)fo!!)orrW)osquH`r!!)utr;cZn!s&B$!<2uu!<2uu!<3#s!<<'!!;lcr!<)rq +!!N<%s8N)ts8N'"rrE&urr<<(!<<'!s8N)urr<&urr<&BrrN1NJF*:9!.k03rrN1NJFid@q#13m +q"4Rdq"F^f!.k0rrrN1NJG0"n~> +])Ma1VuQ_rR/[-dfDkdLc2RbD[f?=,m/I%cJcG3=!!)Her;bONquH!]! +])Ma1VuQ_rR/[-dfDkdLc2RbD[f?=,m/I%cJcG3=!!)Her;bONquH!]! +])Ma1VuHeuJ:O$e!!(XNr;b+B!!'J-!W[b$m/I%cJcG3=!!)Her;bONquH!]"9AH%J:R7k!;QNm +!;Q3d!;Q9f!!%TMci4%HJ:R@nJ,~> +])Ma1VuQ_rR/[-dU]:8m[K$4+m/I%cbl7YC^]+96p\t3noD\djr;Q`srr2ruq#: +])Ma1VuQ_rR/[-dU]:8m[K$4+m/I%cbl7YC^]+96p\t3noD\djr;Q`srr2ruq#: +])Ma1VuHeuJ:O$e!!&eor;a8*!W[b$m/I%cbl7YC^]+96p\t3noD\djr;Q`srr2ruq#: +])Ma1VuQ_rR/[-dJcF4!rW)UHqs8E#trriE&!!*'!rW)osrW)rtrW)osrW)rtrW)`nrVururW)rtrW)uurW)rtrW)rt +!!*#u!!)utrVururW!!!!;uls!<3!(!<<'!rr<'!s8E#ss8E#ts8E#ss8E#ts8E!!rrDusrW)rt +rW)uurW)rtrW)rtrr<'!rW)KgrrE#t!!*#u!!)utquHNl!!(OK!!)3^!!)9`!!)]lq>gQq!!((> +rW)ZlJ,~> +])Ma1VuQ_rR/[-dJcF4!rW)UHqs8E#trriE&!!*'!rW)osrW)rtrW)osrW)rtrW)`nrVururW)rtrW)uurW)rtrW)rt +!!*#u!!)utrVururW!!!!;uls!<3!(!<<'!rr<'!s8E#ss8E#ts8E#ss8E#ts8E!!rrDusrW)rt +rW)uurW)rtrW)rtrr<'!rW)KgrrE#t!!*#u!!)utquHNl!!(OK!!)3^!!)9`!!)]lq>gQq!!((> +rW)ZlJ,~> +])Ma1VuHeuJ:O$e!!%TMe,KILJ:R"d!!)fo!!)lqrW)uu!!*#u%06G.!<3$!rrE'!!<<)u!<3!% +!<3$!s8W&uq>UHqs8E#trriE&!!*'!rW)osrW)rtrW)osrW)rtrW)`nrVururW)rtrW)uurW)rt +rW)rt!!*#u!!)utrVururW!!!!;uls!<3!(!<<'!rr<'!s8E#ss8E#ts8E#ss8E#ts8E!!rrDus +rW)rtrW)uurW)rtrW)rtrr<0$!.]Uis8VlmrrDinrrDims8;Zerr<&Krr<&^rr<&`rr<&ls7u`q +rr<&>rrN1NJG0"n~> +])Ma1VuQ_rR/[-dJcF4!rW) +])Ma1VuQ_rR/[-dJcF4!rW) +])Ma1VuHeuJ:O$e!!%TMe,KILJ:R"d!!)fo!!)or!!)rs!!*#u"9AK%!!*#urrE&u!!*#u$3:,+ +!!*'!!<<'!q#C?orr3*$s8N'!rr2rurr3'#s8N)srr<&urrW9$rrDus!!)`m!!)rs!!*#u!!*#u +!s&B$!<2uu!<2uu!;lcr!;uis!<2uu!<2uu!<3!"!<3&urr`?%rr<&urr<&urrW9$rrDus!!*#u +!s&B$!;uis!;uis!;uis!<2uu!<3!#!<<'!rr2rurr36(s8N*!!!%P"eGfLKf`(pOkPkM^jo5;\ +r;Q`srr2rur;Q`s_>aQ:J:R@nJ,~> +])Ma1VuQ_rR/[-dJcF4!rW)N!;?GC~> +])Ma1VuQ_rR/[-dJcF4!rW)N!;?GC~> +])Ma1VuHeuJ:O$e!!%TMe,KILJ:R"d!!)fo!!)or!!)rs!!*#u!s&B$!<)ot!<)ot!<3!#!<<'! +rr3'#s8N)orr<&trrW9$rrE#t!!*#u!s&B$!;uis!<3!#!<<'!r;Q`spAY*mr;Q`sqYpWts8N)u +rr<&urr<&rrr<&srr<&urr<&urr<&urrE-"r;cis!!)ut!!*#u!s&B$!;uis!<3!#!<<'!r;Q`s +qu?Zrrr2ruqYpWts8N)urr<&urr<&srrN1NJCOT!!;QQo!;c`p!<<'&!<3$!s8W&urVuiss8W&u +s8N'!rr;rtrr3'#rr<&ps8E#ursAc+rrE'!!<<'!!<)rs!<2uu!<2uu!<)rs!!*&u!<)ot!;uj( +!<<'!rr<'!rr<&ts8E#NrrN1NJG0"n~> +])Ma1VuQ_rR/[-dJcF4!rW)gNp!!)rs!!*#u!s&B$!<)ot!<)rq!<<'!!<3!#!<<'! +q#: +])Ma1VuQ_rR/[-dJcF4!rW)gNp!!)rs!!*#u!s&B$!<)ot!<)rq!<<'!!<3!#!<<'! +q#: +])Ma1VuHeuJ:O$e!!%TMe,KILJ:R"d!!)orq>gNp!!)rs!!*#u!s&B$!<)ot!<)rq!<<'!!<3!# +!<<'!q#: +])Ma1VuQ_rR/[-dL]@8PrVuislMghaqYpNqq>^Eom/I%cq#:UEpq#: +])Ma1VuQ_rR/[-dL]@8PrVuislMghaqYpNqq>^Eom/I%cq#:UEpq#: +])Ma1VuHeuJ:O$e!!%fSquH]qrW)6`!!)lq!!)ip!W[b$m/I%cq#: +])Ma1VuQ_rR/[-df)G^Mrr2ru\GlO/q>UEprr2ruli-qbr;ZZpqu?Wqm/I%cq#: +])Ma1VuQ_rR/[-df)G^Mrr2ru\GlO/q>UEprr2ruli-qbr;ZZpqu?Wqm/I%cq#: +])Ma1VuHeuJ:O$e!!(UM!!*#u!!'P/!!)ip!!*#u!!)?b!!)rsquHWo!W[b$m/I%cq#:gNp!!)rs +!!)utquH`rr;clt!!*#u!s&B$!<3!#!<<'!rr2ruq>UEprr3'#s8N)urr<&urrN3#s82lorr<&s +rr<&urr<&srr<&srrW9$rrE&u!!*#u!W`9#quGFM!W[b$pA]X~> +])Ma1VuQ_rR/[-dq#: +])Ma1VuQ_rR/[-dq#: +])Ma1VuHeuJ:O$e!!)fo!!)lqrW)uu!!)rs!Qs7lTn!!)fo!!)or!!)rs!!)ut!!)or!!*#u!s&B$!<3!#!<<'!rr3'#s8N)u +rr<&prr<&urrW9$rrE&u!!*#u!s&B$!;HKn!;uis!<2uu!;uis!;uj!!<<'!rr2rurr3'#s8N)L +rrN1NJG0"n~> +])Ma1VuQ_rR/[-dq#:`MrW(RMrr<*" +!;QQo!;lcr!;uis!<)ot!;lcr!<3!#!<<'!rr3'#s8N)urrW9$rrE&u!!)ip!!*#u!s&B$!<2uu +!<3!#!<<'!p\t3nr;Q`srr2rur;Q`sr;Qj!s8N)urr<&urrW9$rrCULrW)ZlJ,~> +])Ma1VuQ_rR/[-dq#:`MrW(RMrr<*" +!;QQo!;lcr!;uis!<)ot!;lcr!<3!#!<<'!rr3'#s8N)urrW9$rrE&u!!)ip!!*#u!s&B$!<2uu +!<3!#!<<'!p\t3nr;Q`srr2rur;Q`sr;Qj!s8N)urr<&urrW9$rrCULrW)ZlJ,~> +])Ma1VuHeuJ:O$e!!)fo!!)or!!*#u!s&B$!<3!"!<3&ursAc+rr<'!rrE*!!<3!#!<<'!r;Z`r +rr3'#s8N)urr<&ps8N*!rrW9$rrE&u%KQP/!!*'!!!*'!!<<'!rr3'#s8N)orr<&prr<&srrW9$ +rrE&u!s&B$!<3!$!<<'!!<3!#!<<'!rr3$"rrDoq!W[b$m/I%caT)2=s8N'!ec5RJJc>iP!.]UO +s8ViprrDio!!)or!!)rs!!)ut!!)or!!*#u!s&B$!<3!#!<<'!rr3'#s8N)urr<&prr<&urrW9$ +rrE&u!!*#u!s&B$!;HKn!;uis!<2uu!;uis!;uj!!<<'!rr2rurr3'#s8N)LrrN1NJG0"n~> +])Ma1VuQ_rR/[-dq#:UEprr2ruqu6`us8N)urr<&urrW9$rrE&u!s&B$!;QQo!;ZWp!;uj!!<<'! +rr2ruqu6`us8N)trrN3#!;$6i!:9^c!5ea9!.k0ss3Lc@rr<&qs8E#urr<&ss8;rss82lsrrW9$ +rrE&urW)rt!!*#u!!)fo"p"]'!<<'!rr2rurr2rurr;oss8N'!rr;lrs8N'!rr2rurVlitr;Qj! +s8N)urr<&urr<&us8;rNs8E#ls*t~> +])Ma1VuQ_rR/[-dq#:UEprr2ruqu6`us8N)urr<&urrW9$rrE&u!s&B$!;QQo!;ZWp!;uj!!<<'! +rr2ruqu6`us8N)trrN3#!;$6i!:9^c!5ea9!.k0ss3Lc@rr<&qs8E#urr<&ss8;rss82lsrrW9$ +rrE&urW)rt!!*#u!!)fo"p"]'!<<'!rr2rurr2rurr;oss8N'!rr;lrs8N'!rr2rurVlitr;Qj! +s8N)urr<&urr<&us8;rNs8E#ls*t~> +])Ma1VuHeuJ:O$e!!)fo!!)or!!*#u!s&B$!<3!"!<3&urrW9$rrE&u!s&B$!<2uu!<2uu!<3!" +!<3&trrW9$rrE&u!!)ip!!*#u!!)or!s&B$!<2uu!<3!#!<<'!rr3'#s8N)orr<&prr<&srrW9$ +rrE&u!!)or!s&B$!<)p!!<3&jrrN1NJF*:9!5ea9!.k0srrN1NJCO>o!;QQo!;c`p!<<'!!;ulq +!<3#r!<<'$!<<'!rr;rtrr2rurr2ruq#:Nus8N*!rrE&u!!*#u!!*#ur;clt!!*#uquHcs!!*#u +!!)ut!!)rs!s&B$!<2uu!<2uu!<3#s!87AR!.]Uns*t~> +])Ma1VuQ_rR/[-dqu?Kmrr;lrrr3*$rrE*!quHcs!!*#u!s&B$!<2uu!<2uu!<3!"!<3&trrN3# +s82lmrr<&urr<&us8;rtrr<&urr<&urrN3#s82lrs8N)qrr<&srrW9$rrDus!s&B$!<2uu!<3#s +!<<'!!<)rs!;$6i!:9^c!.k03s8E#Ms8N'"rrBt:r;_u[rW)ZlJ,~> +])Ma1VuQ_rR/[-dqu?Kmrr;lrrr3*$rrE*!quHcs!!*#u!s&B$!<2uu!<2uu!<3!"!<3&trrN3# +s82lmrr<&urr<&us8;rtrr<&urr<&urrN3#s82lrs8N)qrr<&srrW9$rrDus!s&B$!<2uu!<3#s +!<<'!!<)rs!;$6i!:9^c!.k03s8E#Ms8N'"rrBt:r;_u[rW)ZlJ,~> +])Ma1VuHeuJ:O$e!!)orq>gNpquH`r"9AH%s8Vuss8N'!rr3'#s8N)urr<&urr<&urrN3#!<)p! +!<<)s!;ZWp!<2uu!<3#s!<<'!!<2uu!<3!"!<<)s!<3#u!;c]q!;uj!!<<'!r;Qj!s8N)urr<&u +s8;rtrr<&ts8E#irrN1NJF*:9!.k03rrN1NJCji$p]:Bp_uKZ8OoGI_J:R@nJ,~> +])Ma1VuQ_rR/[-dq#:!lrr3'#s8N)urrW9$rrE&u!!*#u!s&B$!;QQo!;lcr!;uj!!<<'!r;Qj!s8N)urrW9$rrE&u +!s&B$!<)p"!<<'!o`+mjm/I%cJcCi3rW(XOrrE&u!!%TMci +])Ma1VuQ_rR/[-dq#:!lrr3'#s8N)urrW9$rrE&u!!*#u!s&B$!;QQo!;lcr!;uj!!<<'!r;Qj!s8N)urrW9$rrE&u +!s&B$!<)p"!<<'!o`+mjm/I%cJcCi3rW(XOrrE&u!!%TMci +])Ma1VuHeuJ:O$e!!)fo!!)or!!)lq"T\Q&s8N)rrr<&urrW9$rrE&u!!)ut"T\Q&s8N)trrW9$ +rrD`l!!*#u!s&B$!<3!#!<<'!rr2rurr3'#s8N)orr<&rrr<&srrW9$rrDus!s&B$!<3!#!<<'! +rr3'#s8N)trrW9$rrD]k!W[b$m/I%cJcCi3!W[b$g&M*Irr2ruJcF'r!W[b$pA]X~> +])Ma1VuQ_rR/[-dq#: +])Ma1VuQ_rR/[-dq#: +])Ma1VuHeuJ:O$e!!)fo!!)or!!)lq"T\Q&s8N)rrr<&urrW9$rrE&u!!)ut"p"Z's8N'!rr3'# +s8N)lrr<&urrW9$rrE&u!s&B$!<2uu!<3!#!<<'!q#: +])Ma1VuQ_rR/[-dq#: +])Ma1VuQ_rR/[-dq#: +])Ma1VuHeuJ:O$e!!)fo!!)lqr;cfr!!)utr;clt!!*#u!!*#u!!*#u!!)ut!!*#u!UEpJcF'r!W[b$pA]X~> +])Ma1VuQ_rR/[-dbl7YCrr2ruoDeaha8Z,>gAh-Pm/I%cJcCi3rW(mVrrDfn!!%TMci +])Ma1VuQ_rR/[-dbl7YCrr2ruoDeaha8Z,>gAh-Pm/I%cJcCi3rW(mVrrDfn!!%TMci +])Ma1VuHeuJ:O$e!!(7C!!*#u!!)Wjr;an +])Ma1VuQ_rR/[-dc2RbDrVlit[/^.+h#I?Rm/I%cJcCi3rW(IJ!!%TMci +])Ma1VuQ_rR/[-dc2RbDrVlit[/^.+h#I?Rm/I%cJcCi3rW(IJ!!%TMci +])Ma1VuHeuJ:O$e!!(:D!!)ut!!'D+rrCjS!W[b$m/I%cJcCi3!W[b$eGfLKJcF'r!W[b$pA]X~> +])Ma1VuQ_rR/[-dJcF4!rW) +])Ma1VuQ_rR/[-dJcF4!rW) +])Ma1VuHeuJ:O$e!!%TMe,KILJ:R"d!!%TMOT,@^J:Q/L!!)Qh!!)$Y!!)3^!!)9`!!)]lq>gQq +!!(1A!W[b$pA]X~> +])Ma1VuQ_rR/[-dJcF4!rW) +])Ma1VuQ_rR/[-dJcF4!rW) +])Ma1VuHeuJ:O$e!!%TMe,KILJ:R"d!!%TMOT,@^J:Q/L!!(RL!!)3^!!)-\!!)rs!!*#u!!)rs +!!'t;!W[b$pA]X~> +])Ma1VuQ_rR/[-dJcF4!rW)^Eos8NE+s8N*!!!*'!!!)utrW)rt!!*#u!!)utrVururW)os!!)rs$3:,+ +!<3$!s8N'!rVuisg].6QpA]X~> +])Ma1VuQ_rR/[-dJcF4!rW)^Eos8NE+s8N*!!!*'!!!)utrW)rt!!*#u!!)utrVururW)os!!)rs$3:,+ +!<3$!s8N'!rVuisg].6QpA]X~> +])Ma1VuHeuJ:O$e!!%TMe,KILJ:R"dJH1]1s+&W!!!)fo!!)or"p"]'!<3$!rVuisrr;rtrr3!! +s82lsrr<&us8E#trrW9$!!)iprW)uu$3:,+!<3$!s8N'!rVuisrr2rurr2rurVuis!<<#urVlit +r;R*(s8N*!!!*'!!!)utrW(^Q!W[b$pA]X~> +])Ma1VuQ_rR/[-dJcF4!rW)UEprr3H.s8N'!s8N'!s8N*!rrE&u!!)or!!)rs!!*#u +!!)rs!!)rs%KQP/!!*'!!!*'!!<<'!rr2ruh#I?RpA]X~> +])Ma1VuQ_rR/[-dJcF4!rW)UEprr3H.s8N'!s8N'!s8N*!rrE&u!!)or!!)rs!!*#u +!!)rs!!)rs%KQP/!!*'!!!*'!!<<'!rr2ruh#I?RpA]X~> +])Ma1VuHeuJ:O$e!!%TMe,KILJ:R"d!!%TMOT,@^J:Q/L!!)fo!!)or$3:,+!!*'!!<<'!r;Q`s +rr3*$s8N'!rr2rurr3'#s8N)urs&Q(rr<'!rrDlp!!*#u%KQP/!!*'!!!*'!!<<'!rr2ruqu6Wr +r;Q`srr2rur;Q`sr;R6,s8N'!s8N'!s8N*!rrE&u!!(gS!W[b$pA]X~> +])Ma1VuQ_rR/[-ddf0CLs8N)Ds82lqs8E#`rr<&qrr<&]s8E#brr<%Ms,d9[!7_#K!;QQo!;lcu +!<<'!rr3'#s8N)srr<&urrW9$rrE#t!!*#u!s&B$!<3!#!<<'!rr2ruq>UEprr3'#s8N)urr<&u +rrW9$rrE&u!!)or!!)rs!!*#u!!)rs!!)rs!s&B$!<2uu!<3!#!<<'!rr2ruh#I?RpA]X~> +])Ma1VuQ_rR/[-ddf0CLs8N)Ds82lqs8E#`rr<&qrr<&]s8E#brr<%Ms,d9[!7_#K!;QQo!;lcu +!<<'!rr3'#s8N)srr<&urrW9$rrE#t!!*#u!s&B$!<3!#!<<'!rr2ruq>UEprr3'#s8N)urr<&u +rrW9$rrE&u!!)or!!)rs!!*#u!!)rs!!)rs!s&B$!<2uu!<3!#!<<'!rr2ruh#I?RpA]X~> +])Ma1VuHeuJ:O$e!!(II!s&B$!6tQA!<)rs!:'Ra!;c]q!9X:_!.]Udrr<%Ms,d6^!.]ULrr<&o +rr<&rrrW9$rrE&u!s&B$!;uis!<3!#!<<'!rVlitrr3'#s8N)urrW9$rrE&u!!)ip!!*#u!s&B$ +!<2uu!<3!#!<<'!rr2ruqu6Wrr;Q`srr2rur;Q`sr;Qj!s8N)urr<&urrW9$rrE&u!!(gS!W[b$ +pA]X~> +]DnT*R/[-ddf0CLs8N)Err<&prr<&urr<&brr<&ss82l\s8E#brr<%Ms,d9[!7_#K!;lfm!<3!# +!<<'!rr2rurr;uurr;lrs8N'!rVlitrr3'#s8N)urrW9$rrE&u!!)ip!!*#u!s&B$!<2uu!<3!" +!<<)s!;lcr!;uis!<2uu!;uis!;uj!!<<'!rr2rurr3$"s8Vush#I?RpA]X~> +]DnT*R/[-ddf0CLs8N)Err<&prr<&urr<&brr<&ss82l\s8E#brr<%Ms,d9[!7_#K!;lfm!<3!# +!<<'!rr2rurr;uurr;lrs8N'!rVlitrr3'#s8N)urrW9$rrE&u!!)ip!!*#u!s&B$!<2uu!<3!" +!<<)s!;lcr!;uis!<2uu!;uis!;uj!!<<'!rr2rurr3$"s8Vush#I?RpA]X~> +]DnZ,s+$L:!!(II!s&B$!7(TE!;ZWp!<2uu!:0Xb!;ulp!9jFa!.]Udrr<%Ms,d6^!.]ULrr<&r +s7u`prrW9$rrE&u!!*#urrE&uquHcs!!)ut!!*#u!s&B$!<3!#!<<'!rr2ruq>UEprr3'#s8N)u +rr<&urrN3#s82lorr<&srr<&urr<&srr<&srrW9$rrE&u!!*#u!W`9#quGOP!W[b$pA]X~> +])Ma1VuQ_rR/[-dq#:N!;?GC~> +])Ma1VuQ_rR/[-dq#:N!;?GC~> +])Ma1VuHeuJ:O$e!!)fo!!)lqrW!!!!;uit!<<#urr;rtrr;rtrr3'#s8N)prrW9$!!)utrW)rt +#6=c(!<<'!!<)rs!<)rs!<<'!!<2uu!;ZWp!;uj!!<<'!rr2rurr;rtrr3-%rr<'!!<3!$!<<'! +!9X:_!.]Udrr<%Ms,d6^!.]ULrr<&orr<&rrrW9$rrE&u!!)rs!s&B$!;lcr!<)ot!<3!#!<<'! +rr3'#s8N)urr<&prr<&urrW9$rrE&u!!*#u!s&B$!;HKn!;uis!<2uu!;uis!;uj!!<<'!rr2ru +rr3'#s8N)OrrN1NJG0"n~> +])Ma1VuQ_rR/[-dq#: +])Ma1VuQ_rR/[-dq#: +])Ma1VuHeuJ:O$e!!)fo!!)or!!)ut!!)rsrrDus!!)rs!!*#u"p"]'!<<'!q>^Hps8N0$s8N)u +rsf&/rr<'!rr<'!rrE*!!<3!#!<<'!q#:UEpr;Qj!s8N)urrW9$rrE&u"9AK%!!*#u!s&B$ +!<3!"!<3&^rrN1NJF*:9!.k03rrN1NJCOT!!;QQo!;lcu!<<'!rr2rur;Qj!s8N)rrr<&trr<&u +rrW9$rrE&u!s&B$!<2uu!;ZWp!<3!#!<<'!rr2rurr3'#s8N)nrr<&srr<&urr<&srr<&srrW9$ +rrE&u!!*#u!s&B$!8.;Q!.]Uns*t~> +])Ma1VuQ_rR/[-dq#:UEprr2ruqu6`us8N)u +rr<&urrW9$rrE&u!s&B$!;QQo!;ZWp!;uj!!<<'!rr2ruqu6`us8N)trrN3#!9!nV!:9^c!.k03 +s8E#Jrr<&orr<&rrrW9$rrE&u!W`9#rW)osr;clt!!)rs!s&B$!<3#t!<2uu!<2uu!;QQu!<<'! +s8N)urr<&urr<&us8;rtrr<&us82lsrr<&urr<&trr<&srrW9$rrE&u!!*#u!!*#ur;bXQrW)Zl +J,~> +])Ma1VuQ_rR/[-dq#:UEprr2ruqu6`us8N)u +rr<&urrW9$rrE&u!s&B$!;QQo!;ZWp!;uj!!<<'!rr2ruqu6`us8N)trrN3#!9!nV!:9^c!.k03 +s8E#Jrr<&orr<&rrrW9$rrE&u!W`9#rW)osr;clt!!)rs!s&B$!<3#t!<2uu!<2uu!;QQu!<<'! +s8N)urr<&urr<&us8;rtrr<&us82lsrr<&urr<&trr<&srrW9$rrE&u!!*#u!!*#ur;bXQrW)Zl +J,~> +])Ma1VuHeuJ:O$e!!)fo!!)or!!)rs!!*#u!W`6#r;Q`sq#:Nus8N*!rrDlp!!*#u!!)or!s&B$ +!<2uu!<3!#!<<'!rr3'#s8N)orr<&prr<&srrW9$rrE&u!!)or!s&B$!<)p!!<3&WrrN1NJF*:9 +!.k03rrN1NJCOT!!;QQo!;lcu!<<'!rr3$"s8W&urVufrs8N'!r;Qj!s8N)us8E#trr<&urr<&o +rrrK'rrE*!!<2uu!<2uu!<3#s!<<'!!<3#r!<<'!!<2uu!<)ot!;uj!!<<'!rr2rurr2rurr;os +h#@EUJ:R@nJ,~> +])Ma1VuQ_rR/[-dqu?KmrVultrr2rurr3*$s8N'!rr2ruqu?Tps8N0$s8N)prr<&urr<&us8;rt +rr<&urr<&urrN3#s82lrs8N)qrr<&srrW9$rrDus!s&B$!<2uu!<3#s!<<'!!<)rs!9!nV!:9^c +!.k03s8E#Jrr<&7s8;q^s8E#ls*t~> +])Ma1VuQ_rR/[-dqu?KmrVultrr2rurr3*$s8N'!rr2ruqu?Tps8N0$s8N)prr<&urr<&us8;rt +rr<&urr<&urrN3#s82lrs8N)qrr<&srrW9$rrDus!s&B$!<2uu!<3#s!<<'!!<)rs!9!nV!:9^c +!.k03s8E#Jrr<&7s8;q^s8E#ls*t~> +])Ma1VuHeuJ:O$e!!)orq>gKorrE&u!!*#u"9AK%!!*#u!!)orr;clt!s&B$!;ZWp!<2uu!<3#s +!<<'!!<2uu!<3!"!<<)s!<3#u!;c]q!;uj!!<<'!r;Qj!s8N)urr<&us8;rtrr<&ts8E#VrrN1N +JF*:9!.k03rrN1NJCOT!!5SX5!0mKb!.]Uns*t~> +])Ma1VuQ_rR/[-dq#: +])Ma1VuQ_rR/[-dq#: +])Ma1VuHeuJ:O$e!!)fo!!)fo!!*#u!W`6#r;Qj!s8N)srr<&urrrK'rrE*!!;ZWp!<3!#!<<'! +rr3'#s8N)urr<&urrW9$rrDio!!)or!!)rs!s&B$!;uj!!<<'!rr3'#s8N)urrW9$rrE#t!s&B$ +!9*qZ!.]Udrr<%Ms,d6^!.]ULrr<%Ms3L]H!.]Uns*t~> +])Ma1VuQ_rR/[-dq#: +])Ma1VuQ_rR/[-dq#: +])Ma1VuHeuJ:O$e!!)fo!!)fo!!*#u!W`6#r;Qj!s8N)srr<&urrrK'rrE*!!;ZWp!<3!#!<<'! +rr3'#s8N)urr<&urrW9$rrDio!!)lq!!)ut!!*#u!!*#u!!*#u#6=f(!!*'!!<3!#!<<'!rVlit +rr2ruir9&[J:R"d!!%TMOT,@^J:Q/L!!%TMci4%HJ:R@nJ,~> +])Ma1VuQ_rR/[-dq#: +])Ma1VuQ_rR/[-dq#: +])Ma1VuHeuJ:O$e!!)fo!!)orrW)lr!!*#urW)osrW)rtqu?m"!<<'!q>UEprr2rurr;lr!WN0! +rr<&urr<&us8;rts8E#trr<&ss82lqs8E#rs8N'"rrE&uqu?ct!<)ot!<)ot!9=(\!.]Udrr<%M +s,d6^!.]ULrr<%Ms3L]H!.]Uns*t~> +])Ma1VuQ_rR/[-dl2L_`jo>8Za8Z,>a8c,=m/I%cJcCi3rW(IJ!!%TMci +])Ma1VuQ_rR/[-dl2L_`jo>8Za8Z,>a8c,=m/I%cJcCi3rW(IJ!!%TMci +])Ma1VuHeuJ:O$e!!)9`!!)-\r;an!W[b$m/I%cJcCi3!W[b$eGfLKJcF'r!W[b$pA]X~> +])Ma1VuQ_rR/[-dlMghaV>pPqaoD>?m/I%cJcCi3rW(IJ!!%TMci +])Ma1VuQ_rR/[-dlMghaV>pPqaoD>?m/I%cJcCi3rW(IJ!!%TMci +])Ma1VuHeuJ:O$e!!) +])Ma1VuQ_rR/[-dJcF4!rW) +])Ma1VuQ_rR/[-dJcF4!rW) +])Ma1VuHeuJ:O$e!!%TMe,KILJ:R"d!!%TMOT,@^J:Q/L!!(4BquH]qrW)6`!!'"u!W[b$pA]X~> +])Ma1VuQ_rR/[-dJcF4!rW)UEprr2ruli-qbWW2qtpA]X~> +])Ma1VuQ_rR/[-dJcF4!rW)UEprr2ruli-qbWW2qtpA]X~> +])Ma1VuHeuJ:O$e!!%TMe,KILJ:R"d!!%TMOT,@^J:Q/L!!(7C!!)ip!!*#u!!)?b!!'"u!W[b$ +pA]X~> +])Ma1VuQ_rR/[-dJcF4!rW) +])Ma1VuQ_rR/[-dJcF4!rW) +])Ma1VuHeuJ:O$e!!%TMe,KILJ:R"d!!%TMOT,@^J:Q/L!!)fo!!)or!s&?$!<)rs!<3!'!<3$! +s8N'!rVuisrr2rurr2ruq>UEpr;Qj!s8N)urr<&us8E#trriE&!!*$!rr2ruXoAG&J:R@nJ,~> +])Ma1VuQ_rR/[-dJcF4!rW) +])Ma1VuQ_rR/[-dJcF4!rW) +])Ma1VuHeuJ:O$e!!%TMe,KILJ:R"d!!%TMOT,@^J:Q/L!!)fo!!)orrrE*!!s&B$!<3!.!<<'! +!<<'!!<<'!s8N)urr<&rrr<&prr<&srrW9$rrE&u!s&B$!<3!$!<<'!!<3!#!<<'!XT&>%J:R@n +J,~> +])Ma1VuQ_rR/[-dVuQYprVuislMghaqYpNqg&M$Om/I%cJcCi3rW(IJ!!)fo!!)or!!*#u!!)or +!s&B$!<2uu!<3!#!<<'!rr2ruqu6Wrq>UEpr;Qj!s8N)urr<&rrrW9$rrE#t!W`6#X8i/!pA]X~> +])Ma1VuQ_rR/[-dVuQYprVuislMghaqYpNqg&M$Om/I%cJcCi3rW(IJ!!)fo!!)or!!*#u!!)or +!s&B$!<2uu!<3!#!<<'!rr2ruqu6Wrq>UEpr;Qj!s8N)urr<&rrrW9$rrE#t!W`6#X8i/!pA]X~> +])Ma1VuHeuJ:O$e!!&qsquH]qrW)6`!!)lq!!(^P!W[b$m/I%cJcCi3!W[b$eGfLKq#: +])Ma1VuQ_rR/[-dnc&Rh\c2X0q>UEprr2ruli-qbr;ZZpg].6Qm/I%cJcCi3rW(IJ!!)orq>gNp +!!*#u!!*#ur;clt!!*#u!!*#u!W`9#quHWo!!)rs!s&B$!;uj!!<<'!rr2rurr;oss8N'!rVuis +X8i/!pA]X~> +])Ma1VuQ_rR/[-dnc&Rh\c2X0q>UEprr2ruli-qbr;ZZpg].6Qm/I%cJcCi3rW(IJ!!)orq>gNp +!!*#u!!*#ur;clt!!*#u!!*#u!W`9#quHWo!!)rs!s&B$!;uj!!<<'!rr2rurr;oss8N'!rVuis +X8i/!pA]X~> +])Ma1VuHeuJ:O$e!!)Qh!!'S0!!)ip!!*#u!!)?b!!)rsquGLO!W[b$m/I%cJcCi3!W[b$eGfLK +qu?Kmrr2rurr2rurr;oss8N'!rr2rurr3$"s8Vusqu6Wrr;Qj!s8N)srrW9$rrE&u!!*#ur;clt +!!)utrW'#!!W[b$pA]X~> +])Ma1VuQ_rR/[-dq#:UEpr;Qj!s8N)urr<&us8E#trriE&!!*$!rr3*$s8N'!g&M$Om/I%c +JcCi3rW(IJ!!)fo!!)or!!*#u!s&B$!<3!#!<<'!rr2rurr3'#s8N)nrr<&srrW9$rrDus!s&B$ +!<3!#!<<'!rr3'#s8N)trrW9$rrB/#rW)ZlJ,~> +])Ma1VuQ_rR/[-dq#:UEpr;Qj!s8N)urr<&us8E#trriE&!!*$!rr3*$s8N'!g&M$Om/I%c +JcCi3rW(IJ!!)fo!!)or!!*#u!s&B$!<3!#!<<'!rr2rurr3'#s8N)nrr<&srrW9$rrDus!s&B$ +!<3!#!<<'!rr3'#s8N)trrW9$rrB/#rW)ZlJ,~> +])Ma1VuHeuJ:O$e!!)fo!!)rsrW)uu"T\Q&!<<)u!<3!!!<<#uq#:Errr<&ts8E#trs&Q(!!*'! +!!)utrW)osrW)uu!!*#u!!)ip!!)rs!s&B$!<2uu!<3#t!<3!%!<3$!rrE&u"9AK%!!(^P!W[b$ +m/I%cJcCi3!W[b$eGfLKq#:%J:R@nJ,~> +])Ma1VuQ_rR/[-dq#:^Hps8N0$s8N)ursf&/rr<'! +rr<'!rrE*!!<3!#!<<'!q#:UEpr;Qj!s8N)urrW9$rrE&u"9AK%!!*#u!s&B$!<3!"!<3&Q +s8E#brr<%Ms,d9[!7_#K!;QQo!;lcr!<3!#!<<'!rr3'#s8N)urr<&urrW9$rrDcm!!)ut!!*#u +!!*#u!!*#u#6=f(!!*'!!<3!#!<<'!rVlitrr2ruXoJA#pA]X~> +])Ma1VuQ_rR/[-dq#:^Hps8N0$s8N)ursf&/rr<'! +rr<'!rrE*!!<3!#!<<'!q#:UEpr;Qj!s8N)urrW9$rrE&u"9AK%!!*#u!s&B$!<3!"!<3&Q +s8E#brr<%Ms,d9[!7_#K!;QQo!;lcr!<3!#!<<'!rr3'#s8N)urr<&urrW9$rrDcm!!)ut!!*#u +!!*#u!!*#u#6=f(!!*'!!<3!#!<<'!rVlitrr2ruXoJA#pA]X~> +])Ma1VuHeuJ:O$e!!)fo!!)or!!*#urrE&u!!*#u"9AK%!!*#u!!)iprrE*!!s&B$!<3!.!<<'! +!<<'!!<<'!s8N)urrW9$rrDio!!)ip!!)rs!s&B$!<3!#!<<'!rr3*$s8N'!rr3'#s8N)urrN3# +!8@GS!.]Udrr<%Ms,d6^!.]ULrr<&orr<&rrr<&urrW9$rrE&u!s&B$!<2uu!<3!#!<<'!pAY*m +rVlitrr2rurr2rurr33's8N'!s8N)urrW9$rrE#t!!*#u!!'/$!W[b$pA]X~> +])Ma1VuQ_rR/[-dq#:UNss8N)trr<&prr<&urr<&rrrW9$rrE&u!!*#u!s&B$ +!<3!#!<<'!q#:UEpr;Qj!s8N)urr<&rrrW9$rrE#t!W`6#e,TCIm/I%cJcCi3rW(IJ!!)fo +!!)or!!*#u!!*#uqu?ct!<2uu!<2uu!<3#s!<<'!!;ulp!<)rs!;uls!!3*"rr;lr!WN/urr<&t +rr<&%s8E#ls*t~> +])Ma1VuQ_rR/[-dq#:UNss8N)trr<&prr<&urr<&rrrW9$rrE&u!!*#u!s&B$ +!<3!#!<<'!q#:UEpr;Qj!s8N)urr<&rrrW9$rrE#t!W`6#e,TCIm/I%cJcCi3rW(IJ!!)fo +!!)or!!*#u!!*#uqu?ct!<2uu!<2uu!<3#s!<<'!!;ulp!<)rs!;uls!!3*"rr;lr!WN/urr<&t +rr<&%s8E#ls*t~> +])Ma1VuHeuJ:O$e!!)fo!!)or!!*#u!!)ip!s&B$!<)ot!;ZWp!<2uu!;lcu!<<'!rr2rurr3'# +s8N)urrW9$rrDio!!)ip!!)rs!s&B$!<2uu!;lcu!<<'!rVlp!rrCOJ!W[b$m/I%cJcCi3!W[b$ +eGfLKq#:'!.]Uns*t~> +])Ma1VuQ_rR/[-dqu?Kmrr2rurr2rur;Z]qs8N'!rVlitq>UEprr2rurr;oss8N'!rr2rurr3$" +s8Vusrr;uuqYpNqr;Qj!s8N)srrW9$rrE&u!!*#ur;clt!!)utrW(FIrW) +])Ma1VuQ_rR/[-dqu?Kmrr2rurr2rur;Z]qs8N'!rVlitq>UEprr2rurr;oss8N'!rr2rurr3$" +s8Vusrr;uuqYpNqr;Qj!s8N)srrW9$rrE&u!!*#ur;clt!!)utrW(FIrW) +])Ma1VuHeuJ:O$e!!)orq>gNp!!*#u!!)rsr;clt!!)ut!!)ip!!*#u!!*#ur;clt!!*#u!!*#u +!W`9#quH`rrrDoq!!)rs!s&B$!;uj!!<<'!rr2rurr;oss8N'!rVuise,KILJ:R"d!!%TMOT,@^ +J:Q/L!!'e6!!&2^!W[b$pA]X~> +])Ma1VuQ_rR/[-dq#: +])Ma1VuQ_rR/[-dq#: +])Ma1VuHeuJ:O$e!!)fo!!)or!!*#u!!)ut!!*#u!s&B$!<)ot!;ZWp!<3!#!<<'!rr3'#s8N)u +rr<&urrW9$rrDio!!)or!!)rs!s&B$!;uj!!<<'!rr3'#s8N)urrW9$rrE#t!s&B$!7_#M!.]Ud +rr<%Ms,d6^!.]ULrr<&5s8N(`rrN1NJG0"n~> +])Ma1VuQ_rR/[-dq#:UEprr3'#s8N)urrW9$rrE&u +!!*#u!s&B$!;QQo!;c]q!<)ot!<2uu!<2uu!<3!'!<<'!!<<'!rr3'#s8N)trr<&urr<&Ls8E#b +rr<%Ms,d9[!7_#K!.k0rs8E#ls*t~> +])Ma1VuQ_rR/[-dq#:UEprr3'#s8N)urrW9$rrE&u +!!*#u!s&B$!;QQo!;c]q!<)ot!<2uu!<2uu!<3!'!<<'!!<<'!rr3'#s8N)trr<&urr<&Ls8E#b +rr<%Ms,d9[!7_#K!.k0rs8E#ls*t~> +])Ma1VuHeuJ:O$e!!)fo!!)or!!*#u!!)ut!!*#u"9AK%!!*#u!!)ip!!*#u!s&B$!<3!#!<<'! +rr2rurr3'#s8N)orr<&qrr<&trr<&urr<&urr<&urs&Q(rr<'!rrE&u!s&B$!<)ot!<2uu!7h)N +!.]Udrr<%Ms,d6^!.]ULrr<%Ms3L]H!.]Uns*t~> +])Ma1VuQ_rR/[-dq#: +])Ma1VuQ_rR/[-dq#: +])Ma1VuHeuJ:O$e!!)fo!!)lq!s&B$!;ulp!!<0#s8E#nrr<&urr<&us82itrrE&u!!*#u!!*#u +r;cltrW)rt!!)rsquH]qrW)lrrr<*"!<3#r!!3*"rVlitrVlitf)GdOJ:R"d!!%TMOT,@^J:Q/L +!!%TMci4%HJ:R@nJ,~> +])Ma1VuQ_rR/[-diVrlXqZ$Koa8Z,>])Va0m/I%cJcCi3rW(IJ!!%TMci +])Ma1VuQ_rR/[-diVrlXqZ$Koa8Z,>])Va0m/I%cJcCi3rW(IJ!!%TMci +])Ma1VuHeuJ:O$e!!)!X!!)lqr;an +])Ma1VuQ_rR/[-diVrlX]Dqm2]`7s2m/I%cJcCi3rW(IJ!!%TMci +])Ma1VuQ_rR/[-diVrlX]Dqm2]`7s2m/I%cJcCi3rW(IJ!!%TMci +])Ma1VuHeuJ:O$e!!)!X!!'Y2rrB_3!W[b$m/I%cJcCi3!W[b$eGfLKJcF'r!W[b$pA]X~> +])Ma1VuQ_rR/[-dJcF4!rW)!lkPtG[rVuislMgha]Dqj1 +pA]X~> +])Ma1VuQ_rR/[-dJcF4!rW)!lkPtG[rVuislMgha]Dqj1 +pA]X~> +])Ma1VuHeuJ:O$e!!%TMe,KILJ:R"d!!%TMOT,@^J:Q/L!!)9`!!)lq!!)]l!!)3^quH]qrW)6` +!!'Y2!W[b$pA]X~> +])Ma1VuQ_rR/[-dJcF4!rW)UEpjSo2[q>UEprr2ruli-qb]Dqj1 +pA]X~> +])Ma1VuQ_rR/[-dJcF4!rW)UEpjSo2[q>UEprr2ruli-qb]Dqj1 +pA]X~> +])Ma1VuHeuJ:O$e!!%TMe,KILJ:R"d!!%TMOT,@^J:Q/L!!)!X!!)ip!!)*[!!)ip!!*#u!!)?b +!!'Y2!W[b$pA]X~> +])Ma1VuQ_rR/[-dJcF4!rW)UEpr;Qj!s8N)urr<&us8E#trriE&!!*$!rr2ru^]495 +pA]X~> +])Ma1VuQ_rR/[-dJcF4!rW)UEpr;Qj!s8N)urr<&us8E#trriE&!!*$!rr2ru^]495 +pA]X~> +])Ma1VuHeuJ:O$e!!%TMe,KILJ:R"d!!%TMOT,@^J:Q/L!!)fo!!)or! +])Ma1VuQ_rR/[-dJcF4!rW)UEpr;Qj!s8N)urrW9$rrE&u"9AK%!!*#u!s&B$!5AL4! +;?GC~> +])Ma1VuQ_rR/[-dJcF4!rW)UEpr;Qj!s8N)urrW9$rrE&u"9AK%!!*#u!s&B$!5AL4! +;?GC~> +])Ma1VuHeuJ:O$e!!%TMe,KILJ:R"d!!%TMOT,@^J:Q/L!!)fo!!)orrrE&u"p"]'!<<'!rr;uu +q>UEprr3H.s8N'!s8N'!s8N*!rrE&u!!)or!!)ip!!)rs!s&B$!<3!#!<<'!rr3*$s8N'!rr3'# +s8N)5rrN1NJG0"n~> +])Ma1VuQ_rR/[-dnc&Rh_#O<4rVuislMghaqYpNqdJs1Gm/I%cJcCi3rW(IJ!!)fo!!)or!!)ut +"p"]'!<<'!rVlitq>UEprr3'#s8N)urr<&urrW9$rrE&u!!)or!!)ip!!)rs!s&B$!<2uu!;lcu +!<<'!rVlp!rrBb4rW)ZlJ,~> +])Ma1VuQ_rR/[-dnc&Rh_#O<4rVuislMghaqYpNqdJs1Gm/I%cJcCi3rW(IJ!!)fo!!)or!!)ut +"p"]'!<<'!rVlitq>UEprr3'#s8N)urr<&urrW9$rrE&u!!)or!!)ip!!)rs!s&B$!<2uu!;lcu +!<<'!rVlp!rrBb4rW)ZlJ,~> +])Ma1VuHeuJ:O$e!!)Qh!!'h7quH]qrW)6`!!)lq!!(FH!W[b$m/I%cJcCi3!W[b$eGfLKq#:UEpr;Qj!s8N)u +rr<&rrrW9$rrE#t!W`6#^&J-6J:R@nJ,~> +])Ma1VuQ_rR/[-dYl=\'q>UEprr2ruli-qbr;ZZpe,TCIm/MV:Mu_B-!!)orq>gNp!!)ut"p"]' +!<<'!rVlitq>UEprr3'#s8N)urr<&urrN3#s82lorr<&srrW9$rrDus!s&B$!<2uu!<3#s!<<'! +!<)rs!58F3!;?GC~> +])Ma1VuQ_rR/[-dYl=\'q>UEprr2ruli-qbr;ZZpe,TCIm/MV:Mu_B-!!)orq>gNp!!)ut"p"]' +!<<'!rVlitq>UEprr3'#s8N)urr<&urrN3#s82lorr<&srrW9$rrDus!s&B$!<2uu!<3#s!<<'! +!<)rs!58F3!;?GC~> +])Ma1VuHeuJ:O$e!!'8'!!)ip!!*#u!!)?b!!)rsquG4G!W[b$m/MV:NWB*0eGfLKqu?Kmrr2ru +rVm'%s8N*!rrE#t!!)ip!!*#u!s&B$!<2uu!<3!"!<<)s!;lcr!;uj!!<<'!r;Qj!s8N)urr<&u +s8;rtrr<&ts8E#3rrN1NJG0"n~> +])Ma1VuQ_rR/[-dq#: +])Ma1VuQ_rR/[-dq#: +])Ma1VuHeuJ:O$e!!)fo!!)or#QXo)!<3$!s8W&u!WN/qrrW9$!!)utrW)rt#6=c(!<<'!!<)rs +!<)rs!<<'!!<2uu!;ZWp!;uj!!<<'!rr2rurr;rtrr3-%rr<'!!<3!$!<<'!!7CfJ!.]Uas+,]] +JCOT!!;QQo!;lcr!<)p%!<<'!s8N)trr<&prr<&urrW9$rrE&u!!*#u!s&B$!;HKn!;uj!!<<'! +r;Qj!s8N)urrW9$rrE&u!s&B$!<)p"!<<'!^Ae67J:R@nJ,~> +])Ma1VuQ_rR/[-dq#:^Hps8N0$s8N)ursf&/rr<'!rr<'!rrE*! +!<3!#!<<'!q#:UEpr;Qj!s8N)urrW9$rrE&u"9AK%!!*#u!s&B$!<3!"!<3&Is8E#_s+(02 +!7_#K!;QQo!;lfr!<3!&!<<'!s8N)us8N)prr<&urrW9$rrE&u!!*#u!s&B$!;?Em!<)ot!<2uu +!<2uu!<3!'!<<'!!<<'!rr3'#s8N)trr<&urr<&6s8E#ls*t~> +])Ma1VuQ_rR/[-dq#:^Hps8N0$s8N)ursf&/rr<'!rr<'!rrE*! +!<3!#!<<'!q#:UEpr;Qj!s8N)urrW9$rrE&u"9AK%!!*#u!s&B$!<3!"!<3&Is8E#_s+(02 +!7_#K!;QQo!;lfr!<3!&!<<'!s8N)us8N)prr<&urrW9$rrE&u!!*#u!s&B$!;?Em!<)ot!<2uu +!<2uu!<3!'!<<'!!<<'!rr3'#s8N)trr<&urr<&6s8E#ls*t~> +])Ma1VuHeuJ:O$e!!)fo!!)or"9AK%!!*#u!!*#urrDlprrE*!!s&B$!<3!.!<<'!!<<'!!<<'! +s8N)urrW9$rrDio!!)ip!!)rs!s&B$!<3!#!<<'!rr3*$s8N'!rr3'#s8N)urrN3#!7LlK!.]Ua +s+,]]JCOT!!;QQo!;lfr!<3!&!<<'!s8N)us8N)prr<&urrW9$rrE&u!!*#u!s&B$!;?Em!<)ot +!<2uu!<2uu!<3!'!<<'!!<<'!rr3'#s8N)trr<&urr<&6rrN1NJG0"n~> +])SN*R/[-dq#:UEpr;Qj!s8N)urr<&rrrW9$rrE#t!W`6#bQ%PAJcG$8!!%TMir8uYq#: +])SN*R/[-dq#:UEpr;Qj!s8N)urr<&rrrW9$rrE#t!W`6#bQ%PAJcG$8!'l,8ir8uYq#: +])ST,s+$L:!!)fo!!)or!s&B$!<)ot!<)ot!;ZWp!<2uu!;lcu!<<'!rr2rurr3'#s8N)urrW9$ +rrDio!!)ip!!)rs!s&B$!<2uu!;lcu!<<'!rVlp!rrC7B!W[b$JcG$8!'l,8ir8uYq#: +\,W<*R/[-dqu?Kmrr3'#s8N)trr<&trr<&prr<&urr<&us8;rtrr<&urr<&urrN3#s82lrs8N)q +rr<&srrW9$rrDus!s&B$!<2uu!<3#s!<<'!!<)rs!6bEA!.k18rr<%Ms5O%Y!:g'h!:Tsd!7_#K +!2TYo!;?GC~> +\,W<*R/[-dqu?Kmrr3'#s8N)trr<&trr<&prr<&urr<&us8;rtrr<&urr<&urrN3#s82lrs8N)q +rr<&srrW9$rrDus!s&B$!<2uu!<3#s!<<'!!<)rs!6bEA!.k18rr><8s5O%Y!:g'h!:Tsd!7_#K +!2TYo!;?GC~> +\,W=UR/[-dqu?Kmrr3'#s8N)trr<&trr<&prr<&urr<&us8;rtrr<&urr<&urrN3#s82lrs8N)q +rr<&srrW9$rrDus!s&B$!<2uu!<3#s!<<'!!<)rs!6bBD!.]TNs6BUa5_8sprr<&hrr<&fs8;rI +rr<%prrN1NJG0"n~> +\,W<*R/[-dq#: +\,W<*R/[-dq#: +\,W=UR/[-dq#: +MuWeWJcG'9!!)fo!!)or!s&B$!<)ot!<3#u!;ZWp!<3!#!<<'!rr3'#s8N)urr<&urrW9$rrDio +!!)lq!!)ut!!*#u!!*#u!!*#u#6=f(!!*'!!<3!#!<<'!rVlitrr2ruc2[bCJcG'9!W`6#JcFd1 +!!%TMci +MuWfBJcG'9!!)fo!!)or!s&B$!<)ot!<3#u!;ZWp!<3!#!<<'!rr3'#s8N)urr<&urrW9$rrDio +!!)lq!!)ut!!*#u!!*#u!!*#u#6=f(!!*'!!<3!#!<<'!rVlitrr2ruc2[bCJcG'9!^QcNJcFd1 +!!%TMci +MuWfBJcG'9!!)fo!!)or!s&B$!<)ot!<3#u!;ZWp!<3!#!<<'!rr3'#s8N)urr<&urrW9$rrDio +!!)lq!!)ut!!*#u!!*#u!!*#u#6=f(!!*'!!<3!#!<<'!rVlitrr2ruc2RhFJ:N4Nli.#Os$2/8 +j8T)ZJcF'r!W[b$pA]X~> +MuWeWJcG'9!!)fo!!)or!s&B$!;ulr!!3*"q>UEprr2rurr;lr!WN0!rr<&urr<&us8;rts8E#t +rr<&ss82lqs8E#rs8N'"rrE&uqu?ct!<)ot!<)ot!7(WD!.k19rrN3#!.k11rr<%Ms3L`E!;?GC~> +MuWfBJcG'9!!)fo!!)or!s&B$!;ulr!!3*"q>UEprr2rurr;lr!WN0!rr<&urr<&us8;rts8E#t +rr<&ss82lqs8E#rs8N'"rrE&uqu?ct!<)ot!<)ot!7(WD!.k19rrPIc5_8sqrr<%Ms3L`E!;?GC~> +MuWfBJcG'9!!)fo!!)or!s&B$!;ulr!!3*"q>UEprr2rurr;lr!WN0!rr<&urr<&us8;rts8E#t +rr<&ss82lqs8E#rs8N'"rrE&uqu?ct!<)ot!<)ot!7(TG!.]TNs6K[d5lX*#s5X+Z!.k0rrrN1N +JG0"n~> +MuNhYrr@WMm/I%cjSo8]s8W#ta8Z,>ZN'n(JcG*:!!*#u!!%TMjSo2[JcF'rrW)ZlJ,~> +MuNiDs$2/8m/I%cjSo8]s8W#ta8Z,>ZN'n(JcG*:!'pP`!'l,8jSo2[JcF'rrW)ZlJ,~> +MuNiDs$2/8m/I%cjSo8]s8W#ta8Z,>ZMst+J:N4Nm/I&Nrr2s`JcFg2!!%TMci4%HJ:R@nJ,~> +MuNhYrr@WMm/I%cjSo2[_#OE7[/^+*JcG*:!!*#u!!%TMjSo2[JcF'rrW)ZlJ,~> +MuNiDs$2/8m/I%cjSo2[_#OE7[/^+*JcG*:!'pP`!'l,8jSo2[JcF'rrW)ZlJ,~> +MuNiDs$2/8m/I%cjSo2[_#OE7[/U1-J:N4Nm/I&Nrr2s`JcFg2!!%TMci4%HJ:R@nJ,~> +MuNhYrr@WMm/I%cJcF4!rW%NLm/I%crr2ruJcFg2!!(4B!!(OK!!)]lquHZp!!)-\!!)6_rW)Zl +J,~> +MuNiDs$2/8m/I%cJcF4!rW%NLm/I&Nrr2s`JcFg2!!(4B!!(OK!!)]lquHZp!!)-\!!)6_rW)Zl +J,~> +MuNiDs$2/8m/I%cJcF4!!W[b$JcG*:!'pP`!'l,8jSo2[bPqPBeGfLKp&Fpir;Q`sjo5;\kl1\a +J:R@nJ,~> +N;ikXrr2ruJcG-;!!%TMe,TCIJcG-;!!)rs!!%TMjo5;\ci3tFiVrlXnc&RhpAY*mp\t3nkPtG[ +lMph`pA]X~> +N;ilCrr2s`JcG-;!!%TMe,TCIJcG-;!'pJ^!'l,8jo5;\ci3tFiVrlXnc&RhpAY*mp\t3nkPtG[ +lMph`pA]X~> +N;ilCrr2s`JcG-;!!%TMe,KILJ:N4NmJd/Or;Qa^JcFj3!!(@F!!)!X!!)Qh!!)`m!!)cn!!)3^ +quH$^!W[b$pA]X~> +N;ikXrr2ruJcG-;!!%TMe,TCIJcG-;!!)rs!!%TMjo5;\q#: +N;ilCrr2s`JcG-;!!%TMe,TCIJcG-;!'pJ^!'l,8jo5;\q#: +N;ilCrr2s`JcG-;!!%TMe,KILJ:N4NmJd/Or;Qa^JcFj3!!)fo!!)lqrW)rt!!*#u!!*#urW)os +rW)uu!!*#u! +N;ikXrr2ruJcG-;!!%TMe,TCIJcG-;!!)rs!!%TMjo5;\q#: +N;ilCrr2s`JcG-;!!%TMe,TCIJcG-;!'pJ^!'l,8jo5;\q#: +N;ilCrr2s`JcG-;!!%TMe,KILJ:N4NmJd/Or;Qa^JcFj3!!)fo!!)or!!*#u!!*#u!W`6#rr2ru +rr3'#s8N)srr<&urrW9$rrE&u!s&B$!<3!'!<<'!!<<'!q>UEpr;Q`srr2rurr3'#s8N)srrW9$ +rrDoq!!)cn!W`6#rr;uurr;uurr2rurr3$"rrDusrr<*"!9sLb!.]Uns*t~> +NW/tYr;Q`sJcG0 +NW/uDr;Qa^JcG0 +NW/uDr;Qa^JcG0UEpr;Q`sqYpWts8N)srrN3#!;ZWp +!;QQo!<3!#!<<'!rVlitq>UNss8N)urr<&\rrN1NJG0"n~> +NW/tYr;Q`sJcG0;[pA]X~> +NW/uDr;Qa^JcG0;[pA]X~> +NW/uDr;Qa^JcG0gNpquH]q!!)utquHcs!!)rs +!!*#u!s&B$!<3!#!<<'!rr3'#s8N)urr<&os8N)urr<&ts8;rtrr<&ss8E#orr<&srr<&urr<&u +rrW9$rrE#t!!)rsr;clt!!*#u!!)-\!W[b$pA]X~> +NW/tYr;Q`sJcG0 +NW/uDr;Qa^JcG0 +NW/uDr;Qa^JcG0^Qr!<)ot!<)ot!<2uu!<3!"!<3&[rrN1NJG0"n~> +NrK(ZqYpNqJcG3=!!%TMe,TCIJcG3=!!)fo!!%TMkPkM^q#: +NrK)EqYpO\JcG3=!!%TMe,TCIJcG3=!'p>Z!'l,8kPkM^q#: +NrK)EqYpO\JcG3=!!%TMe,KILJ:N4Nn,EAQq#:=ZJcFp5!!)fo!!)or!!)lq!W`6#rr2ruqu6Wr +r;R!%s8N'!s8N)urrW9$rrE&u!s&B$!<2uu!;?Ep!<<'!rr2rurr3'#s8N)srr<&urr<&qrr<&t +rrW9$rrDus!W`6#rVlitrVlitrr2rurr3$"rrD-[!W[b$pA]X~> +NrK(ZqYpNqJcG3=JH4!rJcG3=!!)fo!!%TMkPkM^q#: +NrK)EqYpO\JcG3=JH4!rJcG3=!'p>Z!'l,8kPkM^q#: +NrK)EqYpO\JcG3=JH4'ts+#\#n,EAQq#:=ZJcFp5!!)fo!!)lqr;clt!!*#u!!*#ur;cisrW)rt +rr<*"!<3!#!<<'!rr;rtrr2rurr2ruq>^EorVlitrr;lrs8W&us8N'!rVlp!rrDusqu?ct!;c`q +!<)ot!;ulp!<2uu!9=(\!.]Uns*t~> +NrK(ZqYpNqJcG3=!!%TMe,TCIJcG3=!!)fo!!%TMkPkM^])V^/\c2X0j8])YpA]X~> +NrK)EqYpO\JcG3=!!%TMe,TCIJcG3=!'p>Z!'l,8kPkM^])V^/\c2X0j8])YpA]X~> +NrK)EqYpO\JcG3=!!%TMe,KILJ:N4Nn,EAQq#:=ZJcFp5!!'V1r;aD.!!)'Z!W[b$pA]X~> +O8f1[q#:!!%TMe,TCIJcG6>!!)`m!!%TMkl1V_JcG3=!!)$YrW)ZlJ,~> +O8f2Fq#:=ZJcG6>!!%TMe,TCIJcG6>!'p8X!'l,8kl1V_JcG3=!!)$YrW)ZlJ,~> +O8f2Fq#:=ZJcG6>!!%TMe,KILJ:N4NnG`JRpAY+XJcFs6!!%TMn,E@fir9&[J:R@nJ,~> +O8f1[q#:!!%TMe,TCIJcG6>oDjIBkl1V_JcF'rrW)ZlJ,~> +O8f2Fq#:=ZJcG6>!!%TMe,TCIJcG6>oK\!-kl1V_JcF'rrW)ZlJ,~> +O8f2Fq#:=ZJcG6>!!%TMe,KILJ:N4NnGi,GJcFs6!!%TMci4%HJ:R@nJ,~> +O8f1[q#:!!%TMe,TCIJcG$8!!%TMir8uYJcF'rrW)ZlJ,~> +O8f2Fq#:=ZJcG6>!!%TMe,TCIJcG$8!'l,8ir8uYJcF'rrW)ZlJ,~> +O8f2Fq#:=ZJcG6>!!%TMe,KILJ:N4NlMgiLJcFa0!!%TMci4%HJ:R@nJ,~> +OT,:\pAY*mJcG9?!!%TMe,TCIJcG$8!!%TMir8uYJcF'rrW)ZlJ,~> +OT,;GpAY+XJcG9?!!%TMe,TCIJcG$8!'l,8ir8uYJcF'rrW)ZlJ,~> +OT,;GpAY+XJcG9?!!%TMe,KILJ:N4NlMgiLJcFa0!!%TMci4%HJ:R@nJ,~> +OT4qQJcG9?!!%TMe,TCIJcG$8!!%TMir8uYJcF'rrW)ZlJ,~> +OT4r +OT4r +MuNbWJcG$8!!%TMe,TCIJcG$8!!%TMir8uYdJj1Hmf3.aiVrlXnc/Lel2L_`kl:V^pA]X~> +MuNcBJcG$8!!%TMe,TCIJcG$8!'l,8ir8uYdJj1Hmf3.aiVrlXnc/Lel2L_`kl:V^pA]X~> +MuNcBJcG$8!!%TMe,KILJ:N4NlMgiLJcFa0!!(FH!!)HeqZ,UT!!)QhquH!]!!)6_!W[b$pA]X~> +MuNbWJcG$8!!%TMe,TCIJcG$8!!%TMir8uYli-qbp\t3noD\djr;Q`srr2ruq#: +MuNcBJcG$8!!%TMe,TCIJcG$8!'l,8ir8uYli-qbp\t3noD\djr;Q`srr2ruq#: +MuNcBJcG$8!!%TMe,KILJ:N4NlMgiLJcFa0!!)?b!!)cn!!)Wj!!)rs!!*#u!!)fo!!(sW!!)He +!!)or!!)cn!!)foquH$^!W[b$pA]X~> +MuNbWJcG$8!!%TMe,TCIJcG$8!!%TMir8uYq#: +MuNcBJcG$8!!%TMe,TCIJcG$8!'l,8ir8uYq#: +MuNcBJcG$8!!%TMe,KILJ:N4NlMgiLJcFa0!!)fo!!)lqrVururW)rtrW)uurW)rtrW)rt!!*#u +!!)utrVururW!!!!;uls!;lcr!<2uu!<3#t!<)rs!<<'!!<3!!!<<#us8N'!rr;rtrr30&rr<'! +rrDusrW)rtrW)uurW)rtrW)rtrrD9_!W[b$pA]X~> +MuNbWJcG$8!!%TMe,TCIJcG$8!!%TMir8uYq#: +MuNcBJcG$8!!%TMe,TCIJcG$8!'l,8ir8uYq#: +MuNcBJcG$8!!%TMe,KILJ:N4NlMgiLJcFa0!!)fo!!)or!!)rs!!*#u!!*#u!s&B$!<2uu!<2uu +!;lcr!;uis!<2uu!<2uu!<3!"!<3&qrrN3#!<2uu!<3!#!<<'!r;Q`srr3'#s8N)urrW9$rrE&u +$3:,+!!*'!!<<'!r;Q`srr2rurr3'#s8N)urr<&urriE&rrE'!l2LebJ:R@nJ,~> +MuNbWJcG$8!!%TMe,TCIJcG$8!!%TMir8uYq#: +MuNcBJcG$8!!%TMe,TCIJcG$8!'l,8ir8uYq#: +MuNcBJcG$8!!%TMe,KILJ:N4NlMgiLJcFa0!!)fo!!)or!!)rs!!)lq!s&B$!<2uu!<2uu!;lcr +!;uis!<2uu!<2uu!<3!!!<;rsrr3$"rrE&u!!*#u!s&B$!;uis!<3!#!<<'!rr3'#s8N)urrW9$ +rrE&u!!*#urrE&u!!)lq!s&B$!<2uu!<2uu!9F.]!.]Uns*t~> +MuNbWJcG$8!!%TMe,TCIJcG$8!!%TMir8uYqu?KmrVultrr2rurVufrs8N'!rr;lrqu6Wrr;Q`s +rr2rurVm$$rrE*!!;ZWp!<)rq!<<'!!;uis!<3!#!<<'!rr3'#s8N)urrW9$rrE&u!!)rs!s&B$ +!<)rr!<<'!!<3#r!9F1Z!;?GC~> +MuNcBJcG$8!!%TMe,TCIJcG$8!'l,8ir8uYqu?KmrVultrr2rurVufrs8N'!rr;lrqu6Wrr;Q`s +rr2rurVm$$rrE*!!;ZWp!<)rq!<<'!!;uis!<3!#!<<'!rr3'#s8N)urrW9$rrE&u!!)rs!s&B$ +!<)rr!<<'!!<3#r!9F1Z!;?GC~> +MuNcBJcG$8!!%TMe,KILJ:N4NlMgiLJcFa0!!)orq>gKorrE&u!!)utr;clt!!*#uquHWo!!)rs +!!*#u!!)ut"T\Q&s8N)prr<&ts82lsrr<&srr<&urrW9$rrE&u!s&B$!<3!#!<<'!rr2rur;Qj! +s8N)ts8;rtrr<&us82lXrrN1NJG0"n~> +MuNbWJcG$8!!%TMe,TCIJcG$8!!%TMir8uYq#: +MuNcBJcG$8!!%TMe,TCIJcG$8!'l,8ir8uYq#: +MuNcBJcG$8!!%TMe,KILJ:N4NlMgiLJcFa0!!)fo!!)fo!s&B$!<2uu!<3!#!<<'!rr2rup\t3n +r;Q`srr2rurVm$$rrE*!!;c]s!<3&urr<&rrr<&srr<&urrW9$rrE&u!s&B$!<3!#!<<'!rr2ru +r;Qj!s8N)urr<&urrW9$rrE&u!!(sW!W[b$pA]X~> +MuNbWJcG$8!!%TMe,TCIJcG$8!!%TMir8uYq#: +MuNcBJcG$8!!%TMe,TCIJcG$8!'l,8ir8uYq#: +MuNcBJcG$8!!%TMe,KILJ:N4NlMgiLJcFa0!!)fo!!)fo!s&B$!<2uu!<3!#!<<'!rr2rup\t3n +r;Q`srr2rurVm$$rrE*!!;c]s!<3&urr<&rrr<&srs&Q(rr<'!rrE&u!s&B$!<3!#!<<'!rr2ru +r;Qj!s8N)urr<&urrW9$rrE&u!!(sW!W[b$pA]X~> +MuNbWJcG$8!!%TMe,TCIJcG$8!!%TMir8uYq#: +MuNcBJcG$8!!%TMe,TCIJcG$8!'l,8ir8uYq#: +MuNcBJcG$8!!%TMe,KILJ:N4NlMgiLJcFa0!!)fo!!)orrW)os!!*#uquHcs!!*#ur;clt!!*#u +quHcs!!*#u!!)ut!!*#uqZ$Zs!<2uu!<3#s!<3#t!<3#u!!3*"rr3'#s8N)us8E#trr<&urrE-" +r;cfr!!*#uquHcs!!*#ur;bpY!W[b$pA]X~> +MuNbWJcG$8!!%TMe,TCIJcG$8!!%TMir8uYJcF'rrW)ZlJ,~> +MuNcBJcG$8!!%TMe,TCIJcG$8!'l,8ir8uYJcF'rrW)ZlJ,~> +MuNcBJcG$8!!%TMe,KILJ:N4NlMgiLJcFa0!!%TMci4%HJ:R@nJ,~> +cMrFqVZ-VrJcF4!rW(7DJH3:^_uB]:JcF'rrW)ZlJ,~> +cMrFqVZ-VrJcF4!rW(7DJH3:^_uB]:JcF'rrW)ZlJ,~> +cMrFqVZ-VrJcF4!!W[b$cMrFq])]bK!!%TMci4%HJ:R@nJ,~> +cMmkEKDtoOVZ-VrJcF4!rW(7D!!%TM^&J'4_uB]:JcF'rrW)ZlJ,~> +cMmkEKDtoOVZ-VrJcF4!rW(7D!!%TM^&J'4_uB]:JcF'rrW)ZlJ,~> +cMmkEKDtoOVZ-VrJcF4!!W[b$cMmkEJcEF`!!'q:!!%TMci4%HJ:R@nJ,~> +cMmkEKDtoOVZ-VrJcF4!rW(7D!!%TM^&J'4_uB]:JcF'rrW)ZlJ,~> +cMmkEKDtoOVZ-VrJcF4!rW(7D!!%TM^&J'4_uB]:JcF'rrW)ZlJ,~> +cMmkEKDtoOVZ-VrJcF4!!W[b$cMmkEJcEF`!!'q:!!%TMci4%HJ:R@nJ,~> +cMmkEKE(oNW;chtJcF4!rW(7D!!%TM^&S'3`W#o +cMmkEKE(oNW;chtJcF4!rW(7D!!%TM^&S'3`W#o +cMmkEKDtuQJ:OTu!!%TMe,KILJ:PrF!!%TM^&J-6J:PW=!!%TMci4%HJ:R@nJ,~> +cMmkEli6b\eGoIIdf9:HW;chtJcF4!rW(7D!!(.@q#KRWrW!0&!!*'!!!)for;a&$rW'q;!!%TM +ci +cMmkEli6b\eGoIIdf9:HW;chtJcF4!rW(7D!!(.@q#KRWrW!0&!!*'!!!)for;a&$rW'q;!!%TM +ci +cMmkEli6b\eGoIIdf0@KJ:OTu!!%TMe,KILJ:PrF!!(.@q#KRWrW!0&!!*'!!!)for;a&$!W[b$ +`W#o +cMmkEkl:Y_f)PaMs8W*!rr3*$s8N'!p](6nj8])YW;chtJcF4!rW(7D!!(%=rrD-[rrDoqrrDlp +rrE&u"9AK%!!)cnrrBk7rW'q;!!)Qh!!(:DquH]qrW)6`!!'P/rW)ZlJ,~> +cMmkEkl:Y_f)PaMs8W*!rr3*$s8N'!p](6nj8])YW;chtJcF4!rW(7D!!(%=rrD-[rrDoqrrDlp +rrE&u"9AK%!!)cnrrBk7rW'q;!!)Qh!!(:DquH]qrW)6`!!'P/rW)ZlJ,~> +cMmkEkl:Y_f)PaMs8W*!rr3*$s8N'!p](6nj8T/\J:OTu!!%TMe,KILJ:PrF!!(%=rrD-[rrDoq +rrDlprrE&u"9AK%!!)cnrrBk7!W[b$`W#o +cMmkEkl:Y_rVult!ri9#r;cfrr;cltrW)osr;cisrW)uur;Zp!!!)rsr;cltr;cltr;cisr;c0` +rW&ns!!%TMe,TCIcMmkE`rH&=rVult!ri9#r;cfrr;cltrW)uuqu?s$!!*'!!!*#urW)uurrDus +r;cltr;cltr;cisr;aq=rW'q;!!)Qh!!)Ti!!(mU!!)ip!!*#u!!)?b!!'P/rW)ZlJ,~> +cMmkEkl:Y_rVult!ri9#r;cfrr;cltrW)osr;cisrW)uur;Zp!!!)rsr;cltr;cltr;cisr;c0` +rW&ns!!%TMe,TCIcMmkE`rH&=rVult!ri9#r;cfrr;cltrW)uuqu?s$!!*'!!!*#urW)uurrDus +r;cltr;cltr;cisr;aq=rW'q;!!)Qh!!)Ti!!(mU!!)ip!!*#u!!)?b!!'P/rW)ZlJ,~> +cMmkEkl:Y_rVult!ri9#r;cfrr;cltrW)osr;cisrW)uur;Zp!!!)rsr;cltr;cltr;cisr;c0` +!W[b$W;chtJcF4!!W[b$cMmkE`rH&=rVult!ri9#r;cfrr;cltrW)uuqu?s$!!*'!!!*#urW)uu +rrDusr;cltr;cltr;cisr;aq=!W[b$`W#oUEprr2ruli-qb\GlU1J:R@n +J,~> +cMmkEkl:Y_rVuisr;Zcss8W*!rVult#6+Z's8N'!r;Zcs#lal)s8N'!s8W&ur;Zcsqu?Zrs8W*! +rr;uukl:V^W;chtJcF4!rW(7D!!(%=rrE#trW)lrrrE*!rrE#trr<9'!!*'!!!*#urrE*!rrE*! +rr<0$!!*&u!;uls!;lfr!<<*!!<3#u!6,!;!6+s +cMmkEkl:Y_rVuisr;Zcss8W*!rVult#6+Z's8N'!r;Zcs#lal)s8N'!s8W&ur;Zcsqu?Zrs8W*! +rr;uukl:V^W;chtJcF4!rW(7D!!(%=rrE#trW)lrrrE*!rrE#trr<9'!!*'!!!*#urrE*!rrE*! +rr<0$!!*&u!;uls!;lfr!<<*!!<3#u!6,!;!6+s +cMmkEkl:Y_rVuisr;Zcss8W*!rVult#6+Z's8N'!r;Zcs#lal)s8N'!s8W&ur;Zcsqu?Zrs8W*! +rr;uukl1\aJ:OTu!!%TMe,KILJ:PrF!!(%=rrE#trW)lrrrE*!rrE#trr<9'!!*'!!!*#urrE*! +rrE*!rr<0$!!*&u!;uls!;lfr!<<*!!<3#u!6+s>!.]U=rr<&orr<&rrr<&us8E#ss8Duus8E#n +s8E#urrE-"rW)rt!!*#u!s&B$!<2uu!;ZWp!;uj!!<<'!rr2rurr;rtrr3-%rr<'!!<2uu!5/=5 +!.]Uns*t~> +cMmkEkl:Y_rVultqu?Zrs8W*!rVult"TJH%s8W&urVult#6+Z's8N'!rr;osrr;uuqu?Zrs8W*! +rr;rtl2U__W;chtJcF4!rW(7D!!(%=rrE#trrDrrrrE*!rrE#trr<9'!!*'!!!*#urrE*!rrE*! +rr<3%!!*'!r;cisrrDrrrrE*!rrE&urW't +cMmkEkl:Y_rVultqu?Zrs8W*!rVult"TJH%s8W&urVult#6+Z's8N'!rr;osrr;uuqu?Zrs8W*! +rr;rtl2U__W;chtJcF4!rW(7D!!(%=rrE#trrDrrrrE*!rrE#trr<9'!!*'!!!*#urrE*!rrE*! +rr<3%!!*'!r;cisrrDrrrrE*!rrE&urW't +cMmkEkl:Y_rVultqu?Zrs8W*!rVult"TJH%s8W&urVult#6+Z's8N'!rr;osrr;uuqu?Zrs8W*! +rr;rtl2LebJ:OTu!!%TMe,KILJ:PrF!!(%=rrE#trrDrrrrE*!rrE#trr<9'!!*'!!!*#urrE*! +rrE*!rr<3%!!*'!r;cisrrDrrrrE*!rrE&urW't +cMmkEkl:Y_rVultrVufrs8W*!rVucqrr;rtrr;lrs8W*!r;Z`rs8W*!rVufrs8W*!rVuislMph` +W;chtJcF4!rW(7D!!(%=rrE#trrE#tr;cltrrE#tquHcsrrE&urrE*!rrE*!quH]qrW)uurrE#t +r;cltrrE#trW("=rW'q;!!)fo!!)or!!)or!s&B$!;uis!;QQo!;uis!<)p"!<<'!rr2ruqu6Wr +q>UEpr;Qj!s8N)urr<&rrrW9$rrE#t!W`6#])Va0pA]X~> +cMmkEkl:Y_rVultrVufrs8W*!rVucqrr;rtrr;lrs8W*!r;Z`rs8W*!rVufrs8W*!rVuislMph` +W;chtJcF4!rW(7D!!(%=rrE#trrE#tr;cltrrE#tquHcsrrE&urrE*!rrE*!quH]qrW)uurrE#t +r;cltrrE#trW("=rW'q;!!)fo!!)or!!)or!s&B$!;uis!;QQo!;uis!<)p"!<<'!rr2ruqu6Wr +q>UEpr;Qj!s8N)urr<&rrrW9$rrE#t!W`6#])Va0pA]X~> +cMmkEkl:Y_rVultrVufrs8W*!rVucqrr;rtrr;lrs8W*!r;Z`rs8W*!rVufrs8W*!rVuislMgnc +J:OTu!!%TMe,KILJ:PrF!!(%=rrE#trrE#tr;cltrrE#tquHcsrrE&urrE*!rrE*!quH]qrW)uu +rrE#tr;cltrrE#trW("=!W[b$`W#o +cMmkEkl:Y_rVultrr;uu#6+Z's8N'!rVultqZ$Nps8W*!r;Zcsqu?Zrs8W*!rr;uu#6+Z's8N'! +r;Z`rli6qaW;chtJcF4!rW(7D!!(%=rrE#trrE&urr<9'!!*'!!!)utrrDusrrE&urrE*!rrE*! +rrDlprrE*!rrE&urr<9'!!*'!!!)rsrW(%>rW'q;!!)orq>gNp!!*#ur;cisrrE&u!!)fo!!)rs +!!)ut!s&B$!<2uu!;lcr!;uj!!<<'!r;Qj!s8N)urr<&us8;rtrr<&ts8E#0s8E#ls*t~> +cMmkEkl:Y_rVultrr;uu#6+Z's8N'!rVultqZ$Nps8W*!r;Zcsqu?Zrs8W*!rr;uu#6+Z's8N'! +r;Z`rli6qaW;chtJcF4!rW(7D!!(%=rrE#trrE&urr<9'!!*'!!!)utrrDusrrE&urrE*!rrE*! +rrDlprrE*!rrE&urr<9'!!*'!!!)rsrW(%>rW'q;!!)orq>gNp!!*#ur;cisrrE&u!!)fo!!)rs +!!)ut!s&B$!<2uu!;lcr!;uj!!<<'!r;Qj!s8N)urr<&us8;rtrr<&ts8E#0s8E#ls*t~> +cMmkEkl:Y_rVultrr;uu#6+Z's8N'!rVultqZ$Nps8W*!r;Zcsqu?Zrs8W*!rr;uu#6+Z's8N'! +r;Z`rli."dJ:OTu!!%TMe,KILJ:PrF!!(%=rrE#trrE&urr<9'!!*'!!!)utrrDusrrE&urrE*! +rrE*!rrDlprrE*!rrE&urr<9'!!*'!!!)rsrW(%>!W[b$`W#o +cMmkEkl:Y_rVultrr;uu#6+Z's8N'!rVultq>^Hps8W*!r;Zcss8N'!rr;uus8W*!rr;uu#6+Z' +s8N'!qu?Zrli6qaW;chtJcF4!rW(7D!!(%=rrE#trrE&urr<9'!!*'!!!)utrrDusrrE&urrE*! +rrE*!rrE#t!!*#urrE*!rrE&urr<9'!!*'!!!)orrrC.?rW'q;!!)fo!!)or!s&B$!<2uu!;uj! +!<<'!q#: +cMmkEkl:Y_rVultrr;uu#6+Z's8N'!rVultq>^Hps8W*!r;Zcss8N'!rr;uus8W*!rr;uu#6+Z' +s8N'!qu?Zrli6qaW;chtJcF4!rW(7D!!(%=rrE#trrE&urr<9'!!*'!!!)utrrDusrrE&urrE*! +rrE*!rrE#t!!*#urrE*!rrE&urr<9'!!*'!!!)orrrC.?rW'q;!!)fo!!)or!s&B$!<2uu!;uj! +!<<'!q#: +cMmkEkl:Y_rVultrr;uu#6+Z's8N'!rVultq>^Hps8W*!r;Zcss8N'!rr;uus8W*!rr;uu#6+Z' +s8N'!qu?Zrli."dJ:OTu!!%TMe,KILJ:PrF!!(%=rrE#trrE&urr<9'!!*'!!!)utrrDusrrE&u +rrE*!rrE*!rrE#t!!*#urrE*!rrE&urr<9'!!*'!!!)orrrC.?!W[b$`W#o +cMmkEkl:Y_rVultrVucqs8W#ts8W#ts8W#trVufrrr;rt!<;utrVuiss8Vuss8W&u!<;utlMph` +W;chtJcF4!rW(7D!!(%=rrE#trrE#tquHcsr;cltr;cltrrE&urrE*!rrE&ur;cltr;cfrrW)uu +quHcsrVurur;an +cMmkEkl:Y_rVultrVucqs8W#ts8W#ts8W#trVufrrr;rt!<;utrVuiss8Vuss8W&u!<;utlMph` +W;chtJcF4!rW(7D!!(%=rrE#trrE#tquHcsr;cltr;cltrrE&urrE*!rrE&ur;cltr;cfrrW)uu +quHcsrVurur;an +cMmkEkl:Y_rVultrVucqs8W#ts8W#ts8W#trVufrrr;rt!<;utrVuiss8Vuss8W&u!<;utlMgnc +J:OTu!!%TMe,KILJ:PrF!!(%=rrE#trrE#tquHcsr;cltr;cltrrE&urrE*!rrE&ur;cltr;cfr +rW)uuquHcsrVurur;an +cMmkEKE(oNW;chtJcF4!rW(7D!!%TM^&S'3`W#o +cMmkEKE(oNW;chtJcF4!rW(7D!!%TM^&S'3`W#o +cMmkEKDtuQJ:OTu!!%TMe,KILJ:PrF!!%TM^&J-6J:PW=!!)fo!!)or!!*#uqu?`srW)os!!)fo +rW)uu! +cMmkEKE(oNW;chtJcF4!rW(7D!!%TM^&S'3`W#odERq>UEpiVrlXU&Y)lpA]X~> +cMmkEKE(oNW;chtJcF4!rW(7D!!%TM^&S'3`W#odERq>UEpiVrlXU&Y)lpA]X~> +cMmkEKDtuQJ:OTu!!%TMe,KILJ:PrF!!%TM^&J-6J:PW=!!(jTr;cZn!!)!X!!&_m!W[b$pA]X~> +cMmkEKE(oNW;chtJcF4!rW(7D!!%TM^&S'3`W#o +cMmkEKE(oNW;chtJcF4!rW(7D!!%TM^&S'3`W#o +cMmkEKDtuQJ:OTu!!%TMe,KILJ:PrF!!%TM^&J-6J:PW=!!(FH!!(sWrrAho!W[b$pA]X~> +cMmkEKE(oNW;hDKcN)8j!!%TM^&S'3`W#o +cMmkEKE(oNW;hDKcN)8j!!%TM^&S'3`W#o +cMmkEKDtuQJ:OTuJH4'ts+&Dp!!%TM^&J-6J:PW=!!%TMci4%HJ:R@nJ,~> +cMmkEKE(oNV>l)HdK%Sm!!%TM^&S'3`W#o +cMmkEKE(oNV>l)HdK%Sm!!%TM^&S'3`W#o +cMmkEKDtuQJ:OKrJUl1!cMmkEJcEF`!W[b$`W#o +cMmkEKE(oNV>l)HdK%Sm!!%TM^&S'3`W#o +cMmkEKE(oNV>l)HdK%Sm!!%TM^&S'3`W#o +cMmkEKDtuQJ:OKrJUl1!cMmkEJcEF`!W[b$`W#o +cMmkEKE(oNJcF4!!!%TMo)A[iJcEF`rW'q;!!%TMci +cMmkEKE(oNJcF4!!'l,8o)A[iJcEF`rW'q;!!%TMci +cMmkEKDtuQJ:N4Ne,KD5JcG<@!!%TM^&J-6J:PW=!!%TMci4%HJ:R@nJ,~> +cMmkEKE(oNJcF4!!!%TMo)A[iJcEF`rW'q;!!)Qh!!(:D!!)Wj!!(pV!!((>rW)ZlJ,~> +cMmkEKE(oNJcF4!!'l,8o)A[iJcEF`rW'q;!!)Qh!!(:D!!)Wj!!(pV!!((>rW)ZlJ,~> +cMmkEKDtuQJ:N4Ne,KD5JcG<@!!%TM^&J-6J:PW=!!)Qh!!(:D!!)Wj!!(pV!!((>!W[b$pA]X~> +cMmkEKE(oNJcF7"!W`6#JcG?A!!%TM^&S'3`W#o +cMmkEKE(oNJcF7"!^QcNJcG?A!!%TM^&S'3`W#o +cMmkEKDtuQJ:N4NeGfS8s$2/8oD\djJcEF`!W[b$`W#o +ci8OrrW%NLeGfRMrr@WMoDa@A\H'VK!!)fo!!)or!!*#urW)osrVururW)`nrW)uu! +ci8OrrW%NLeGfS8s$2/8oDa@A\H'VK!!)fo!!)or!!*#urW)osrVururW)`nrW)uu! +ci8Or!W[b$JcF7"!^QcNJcG?AJH3:^s+&)g!!)fo!!)or!!*#urW)osrVururW)`nrW)uu! +cMmkEKE(oNJcF7"!W`6#JcG?A!!%TM^&S'3`W#o +cMmkEKE(oNJcF7"!^QcNJcG?A!!%TM^&S'3`W#o +cMmkEKDtuQJ:N4NeGfS8s$2/8oD\djJcEF`!W[b$`W#o +cMmkEKE(oNJcF:#!!*#u!!%TMo`"mkJcEF`rW'q;!!)fo!!)or!!)or!s&B$!;uis!;QQo!;uis +!<)p"!<<'!rr2ruq>UNss8N)urrW9$rrE#t!s&B$!<2uu!<3!"!<3&qrr<&urrW9$rrE&u"p"]' +!<<'!rr3'#s8N)Hs8E#ls*t~> +cMmkEKE(oNJcF:#!'pP`!'l,8o`"mkJcEF`rW'q;!!)fo!!)or!!)or!s&B$!;uis!;QQo!;uis +!<)p"!<<'!rr2ruq>UNss8N)urrW9$rrE#t!s&B$!<2uu!<3!"!<3&qrr<&urrW9$rrE&u"p"]' +!<<'!rr3'#s8N)Hs8E#ls*t~> +cMmkEKDtuQJ:N4Nec,V7rr2s`JcGBB!!%TM^&J-6J:PW=!!)fo!!)or!!)or!s&B$!;uis!;QQo +!;uis!<)p"!<<'!rr2ruq>UNss8N)urrW9$rrE#t!s&B$!<2uu!<3!"!<3&qrr<&urrW9$rrE&u +"p"]'!<<'!rr3'#s8N)HrrN1NJG0"n~> +cMmkEKE(oNJcF:#!!*#u!!%TMo`"mkJcEF`rW'q;!!)orq>gNp!!*#ur;cisrrE&u!!)fo!!)rs +!!)ut!s&B$!<2uu!;ZWs!<<'!rr3'#s8N)trrN3#s82lqrr<&prr<&urrW9$rrE&u"p"]'!<<'! +rr3'#s8N)Hs8E#ls*t~> +cMmkEKE(oNJcF:#!'pP`!'l,8o`"mkJcEF`rW'q;!!)orq>gNp!!*#ur;cisrrE&u!!)fo!!)rs +!!)ut!s&B$!<2uu!;ZWs!<<'!rr3'#s8N)trrN3#s82lqrr<&prr<&urrW9$rrE&u"p"]'!<<'! +rr3'#s8N)Hs8E#ls*t~> +cMmkEKDtuQJ:N4Nec,V7rr2s`JcGBB!!%TM^&J-6J:PW=!!)orq>gNp!!*#ur;cisrrE&u!!)fo +!!)rs!!)ut!s&B$!<2uu!;ZWs!<<'!rr3'#s8N)trrN3#s82lqrr<&prr<&urrW9$rrE&u"p"]' +!<<'!rr3'#s8N)HrrN1NJG0"n~> +cMmkEKE(oNJcF:#!!*#u!!%TMo`"mkJcEF`rW'q;!!)fo!!)or!s&B$!<2uu!;uj!!<<'!q#: +cMmkEKE(oNJcF:#!'pP`!'l,8o`"mkJcEF`rW'q;!!)fo!!)or!s&B$!<2uu!;uj!!<<'!q#: +cMmkEKDtuQJ:N4Nec,V7rr2s`JcGBB!!%TM^&J-6J:PW=!!)fo!!)or!s&B$!<2uu!;uj!!<<'! +q#: +cMmkEKE(oNJcF=$!!)rs!!%TMp&>!lJcEF`rW'q;!!)fo!!)or!s&B$!<2uu!;uj!!<<'!q#: +cMmkEKE(oNJcF=$!'pJ^!'l,8p&>!lJcEF`rW'q;!!)fo!!)or!s&B$!<2uu!;uj!!<<'!q#: +cMmkEKDtuQJ:N4Nf)G_8r;Qa^JcGEC!!%TM^&J-6J:PW=!!)fo!!)or!s&B$!<2uu!;uj!!<<'! +q#: +cMmkEKE(oNJcF=$!!)rs!!%TMp&>!lJcEF`rW'q;!!)fo!!)or!!*#uqu?`srW)os!!)forW)uu +!UNss8N)urr<&us8E!!rrE&ur;clt!!*#u!s&B$!<)rt!!3*"rr;uu#QFf( +rrE*!!<2uu!<2uu!7LoH!;?GC~> +cMmkEKE(oNJcF=$!'pJ^!'l,8p&>!lJcEF`rW'q;!!)fo!!)or!!*#uqu?`srW)os!!)forW)uu +!UNss8N)urr<&us8E!!rrE&ur;clt!!*#u!s&B$!<)rt!!3*"rr;uu#QFf( +rrE*!!<2uu!<2uu!7LoH!;?GC~> +cMmkEKDtuQJ:N4Nf)G_8r;Qa^JcGEC!!%TM^&J-6J:PW=!!)fo!!)or!!*#uqu?`srW)os!!)fo +rW)uu!UNss8N)urr<&us8E!!rrE&ur;clt!!*#u!s&B$!<)rt!!3*"rr;uu +#QFf(rrE*!!<2uu!<2uu!7LlK!.]Uns*t~> +cMmkEKE(oNJcF=$!!)rs!!%TMp&>!lJcEF`rW'q;!!(jTr;cZn!!)Wjr;bIL!!'_4rW)ZlJ,~> +cMmkEKE(oNJcF=$!'pJ^!'l,8p&>!lJcEF`rW'q;!!(jTr;cZn!!)Wjr;bIL!!'_4rW)ZlJ,~> +cMmkEKDtuQJ:N4Nf)G_8r;Qa^JcGEC!!%TM^&J-6J:PW=!!(jTr;cZn!!)Wjr;bIL!!'_4!W[b$ +pA]X~> +cMmkEKE(oNJcF@%!!)lq!!%TMpAY*mJcEF`rW'q;!!(FH!!(.@r;aM1rW)ZlJ,~> +cMmkEKE(oNJcF@%!'pD\!'l,8pAY*mJcEF`rW'q;!!(FH!!(.@r;aM1rW)ZlJ,~> +cMmkEKDtuQJ:N4NfDbh9qYpO\JcGHD!!%TM^&J-6J:PW=!!(FH!!(.@r;aM1!W[b$pA]X~> +cMmkEKE(oNJcF@%!!)lq!!%TMpAY*mJcEF`rW'q;!!%TMci +cMmkEKE(oNJcF@%!'pD\!'l,8pAY*mJcEF`rW'q;!!%TMci +cMmkEKDtuQJ:N4NfDbh9qYpO\JcGHD!!%TM^&J-6J:PW=!!%TMci4%HJ:R@nJ,~> +cMmkEKE(oNJcF@%!!)lq!!%TMpAY*mJcEF`rW'q;!!%TMci +cMmkEKE(oNJcF@%!'pD\!'l,8pAY*mJcEF`rW'q;!!%TMci +cMmkEKDtuQJ:N4NfDbh9qYpO\JcGHD!!%TM^&J-6J:PW=!!%TMci4%HJ:R@nJ,~> +cMmkEKE(oNJcFC&!!)fo!!%TMp\t3nJcEF`rW'q;!!%TMci +cMmkEKE(oNJcFC&!'p>Z!'l,8p\t3nJcEF`rW'q;!!%TMci +cMmkEKDtuQJ:N4Nf`(q:q#:=ZJcGKE!!%TM^&J-6J:PW=!!%TMci4%HJ:R@nJ,~> +cMmkEdf0:Ili-qbnG`Rjs8N)^rr<&qs8E"Ls4I>O!;QQo!.k1Err<&Irr<&brr<&grrW9$rrD6^ +!!'D+rW'q;!!%TMci +cMmkEdf0:Ili-qbnG`Rjs8N)^rr<&qs8E"Ls4I>O5kt?Z5_8t0rr<&Irr<&brr<&grrW9$rrD6^ +!!'D+rW'q;!!%TMci +cMmkEdf0:Ili-qbnG`Rjs8N)^rr<&qrrN1NJ:[aQrr>=Zrr><8s7cNn!7LlI!:0Xb!:^!j!<<'! +kPkM^[/U1-J:PW=!!%TMci4%HJ:R@nJ,~> +cMmkEli-qbp\t3no`"mkr;Q`srr2rup&>!lrVlitrr2rupAY*moD\djq#C6lr;Z`rJcFC&!!)fo +!!%TMp\t3nli-qbp\t3no`"mkr;Q`srr2rup&>!lrVlitrr2rupAY*moD\djq#C6l[f?=,`W#o< +JcF'rrW)ZlJ,~> +cMmkEli-qbp\t3no`"mkr;Q`srr2rup&>!lrVlitrr2rupAY*moD\djq#C6lr;Z`rJcFC&!'p>Z +!'l,8p\t3nli-qbp\t3no`"mkr;Q`srr2rup&>!lrVlitrr2rupAY*moD\djq#C6l[f?=,`W#o< +JcF'rrW)ZlJ,~> +cMmkEli-qbp\t3no`"mkr;Q`srr2rup&>!lrVlitrr2rupAY*moD\djq#C6lr;QfuJ:N4Nf`(q: +q#:=ZJcGKE!!)?b!!)cn!!)Zk!!)rs!!*#u!!)]l!!)ut!!*#u!!)`m!!)Wj!!)foquF2*!W[b$ +`W#o +cMmkEq#: +cMmkEq#: +cMmkEq#: +cMmkEq#: +cMmkEq#: +cMmkEq#: +cMmkEq#: +cMmkEq#: +cMmkEq#: +cMmkEqu?KmrVultrr2rurVufrs8N'!rVultqYpNqr;Q`srr2rurVlp!rrE&u!!*#u!s&B$!<2uu +!<2uu!<)p"!<<'!rVls"s8N)urrW9$rrE&uquHHjrW%NLe,KCJJcG<@!!)orq>gKorrE&u!!)ut +r;clt!!)utrrDoq!!)rs!!*#u!!)ut!W`6#rr2rurr3'#s8N)urr<&urr<&trrW9$rrE#t!s&B$ +!<3!#!<<'!rr;lrYlF\&`W(Jhb5h89J,~> +cMmkEqu?KmrVultrr2rurVufrs8N'!rVultqYpNqr;Q`srr2rurVlp!rrE&u!!*#u!s&B$!<2uu +!<2uu!<)p"!<<'!rVls"s8N)urrW9$rrE&uquHHjrW%NLe,KD5JcG<@!!)orq>gKorrE&u!!)ut +r;clt!!)utrrDoq!!)rs!!*#u!!)ut!W`6#rr2rurr3'#s8N)urr<&urr<&trrW9$rrE#t!s&B$ +!<3!#!<<'!rr;lrYlF\&`W(Jhb5h89J,~> +cMmkEqu?KmrVultrr2rurVufrs8N'!rVultqYpNqr;Q`srr2rurVlp!rrE&u!!*#u!s&B$!<2uu +!<2uu!<)p"!<<'!rVls"s8N)urrW9$rrE&uquHHj!W[b$JcF4!!'l,8o)A[iqu?KmrVultrr2ru +rVufrs8N'!rVultqYpNqr;Q`srr2rurVlp!rrE&u!!*#u!s&B$!<2uu!<2uu!<)p"!<<'!rVls" +s8N)urrW9$rrE&uquEu$!W[b$`W(JhblIcopA]X~> +cMmkEq#: +cMmkEq#: +cMmkEq#:^Qr!<2uu!<2uu!<)p"!<<'!rVls"s8N)u +rrW9$rrE&u!!',#!W[b$`W#o +cMmkEq#: +cMmkEq#: +cMmkEq#:<8s760i!;QQo!;QQr!<<'! +rr2rurr3'#s8N)rrr<&rrr<&srr<&urr<&trriE&!<<'!r;QfurrE&u!!*#u!!)ut"9AK%!!*#u +$3:,+!<<'!!<<'!rr2ruXT&>%J:PW=!!%TMci4%HJ:R@nJ,~> +cMmkEq#: +cMmkEq#:<8s760i!;QQo!;lfq!<)ot!<3#r +!<<'#!<<)u!<2uu!<3#r!<<'!!<2uu!<)p"!<<'!qYpTsrrE&u!s&B$!<)p#!<<'!s8E#ss8N'" +rrE&u!!*#ur;a)%rW'q;!!%TMci +cMmkEq#: +cMmkEKE(oNJcF4!!!%TMo)A[iJcEF`rW'q;!!%TMci +cMmkEKE(oNJcF4!!'l,8o)A[iJcEF`rW'q;!!%TMci +cMmkEKDtuQJ:N4Ne,KD5JcG<@!!%TM^&J-6J:PW=!!%TMci4%HJ:R@nJ,~> +cMmkEKE(oNJcF4!!!%TMo)A[iJcEF`rW'q;!!%TMci +cMmkEKE(oNJcF4!!'l,8o)A[iJcEF`rW'q;!!%TMci +cMmkEKDtuQJ:N4Ne,KD5JcG<@!!%TM^&J-6J:PW=!!%TMci4%HJ:R@nJ,~> +cMmkEKE(oNJcF4!!!%TMo)A[iJcEF`rW'q;!!%TMci +cMmkEKE(oNJcF4!!'l,8o)A[iJcEF`rW'q;!!%TMci +cMmkEKDtuQJ:N4Ne,KD5JcG<@!!%TM^&J-6J:PW=!!%TMci4%HJ:R@nJ,~> +cMmkEKE(oNJcF4!!!%TMo)A[iJcEF`rW'q;!!%TMci +cMmkEKE(oNJcF4!!'l,8o)A[iJcEF`rW'q;!!%TMci +cMmkEKDtuQJ:N4Ne,KD5JcG<@!!%TM^&J-6J:PW=!!%TMci4%HJ:R@nJ,~> +cMmkEKE(oNJcF4!!!%TMo)A[iJcEF`rW'q;!!%TMci +cMmkEKE(oNJcF4!!'l,8o)A[iJcEF`rW'q;!!%TMci +cMmkEKDtuQJ:N4Ne,KD5JcG<@!!%TM^&J-6J:PW=!!%TMci4%HJ:R@nJ,~> +cMmkEKE(oNJcF4!!!%TMo)A[iJcEF`rW'q;!!%TMci +cMmkEKE(oNJcF4!!'l,8o)A[iJcEF`rW'q;!!%TMci +cMmkEKDtuQJ:N4Ne,KD5JcG<@!!%TM^&J-6J:PW=!!%TMci4%HJ:R@nJ,~> +cMmkEKE(oNPlH:7!!';(!!%TMr;Q`sli-qbnG`Rjs8N)fs8E#;rr<%Ms3L`E!;?GC~> +cMmkEKE(oNPlH:7!!';(!!%TMr;Q`sli-qbnG`Rjs8N)fs8E#;rr<%Ms3L`E!;?GC~> +cMmkEKDtuQJ:NmaJH,ZMZ2Xe(JcGZJ!!)?b!!)Ng!s&B$!:Tph!.]U=rr<%Ms3L]H!.]Uns*t~> +cMmkEKE(oNPlC^`K)YfNZ2Xe(bl7YCh>[HTo)A[ikPkM^r;Q`srr2rup&>!lrVlitrr2rupAY*m +oD\djrr;rt`W#o +cMmkEKE(oNPlC^`K)YfNZ2Xe(bl7YCh>[HTo)A[ikPkM^r;Q`srr2rup&>!lrVlitrr2rupAY*m +oD\djrr;rt`W#o +cMmkEKDtuQJ:Nma!!%WN!!';(!!(7C!!(jT!!)Ti!!)3^!!)rs!!*#u!!)]l!!)ut!!*#u!!)`m +!!)Wj!!*#u!W[b$`W#o +cMmkEKE(oNPlC^`K)YfNZ2Xe(q#: +cMmkEKE(oNPlC^`K)YfNZ2Xe(q#: +cMmkEKDtuQJ:Nma!!%WN!!';(!!)fo!!)lqrW)uu!!*#u%06G.!<3$!rrE'!!<<)u!<3!%!<3$! +s8W&uq#C +cMmkEKE(oNPlC^`K)bfMZi:"*q#: +cMmkEKE(oNPlC^`K)bfMZi:"*q#: +cMmkEKDtuQJ:Nma!!%WN!W[b$Zi:"*q#: +ci8OrrW&2_!!)$Yq#KUXr;an +ci8OrrW&2_!!)$Yq#KUXr;an +ci8Or!W[b$PlC^`irAfSkPtJ\a8Z2@J:P!+!!)fo!!)or!!)rs!!*#u!s&B$!<)ot!<)ot!<3!# +!<<'!rr3'#s8N)orr<&urrW9$rrE&u!W`6#rr3'#s8N)urrW9$rrE&u!!)`m!!*#u!!)ut!!*#u +!s&B$!<2uu!;lcr!;uis!<2uu!<2uu!<3!#!<<'!rr3'#s8N)urr<&urr<&trrW9$rrE#t!s&B$ +!<3!#!<<'!rr3$"J:PW=!!%TMci4%HJ:R@nJ,~> +cMmkEKE(oNPlC^`huE]Vjo>>\rr3*$s8N'!p](6nf`1pNZi:"*qu?Kmrr2rur;Q`srr3'#s8N)t +rr<&ts82lsrr<&urrW9$rrDioquH`r"9AH%s8Vuss8N'!rr3'#s8N)ts8N)orr<&urr<&ts82ls +s82lorr<&srr<&urr<&trrN3#!<2uu!<3!#!<<'!rr2rurr2rurVls"s8N)trrW9$rrE&u!s&B$ +!<3#t!6+s +cMmkEKE(oNPlC^`huE]Vjo>>\rr3*$s8N'!p](6nf`1pNZi:"*qu?Kmrr2rur;Q`srr3'#s8N)t +rr<&ts82lsrr<&urrW9$rrDioquH`r"9AH%s8Vuss8N'!rr3'#s8N)ts8N)orr<&urr<&ts82ls +s82lorr<&srr<&urr<&trrN3#!<2uu!<3!#!<<'!rr2rurr2rurVls"s8N)trrW9$rrE&u!s&B$ +!<3#t!6+s +cMmkEKDtuQJ:Nma!!(pVrrD0\rrE&u"9AK%!!)cnrrC^O!W[b$Zi:"*qu?Kmrr2rur;Q`srr3'# +s8N)trr<&ts82lsrr<&urrW9$rrDioquH`r"9AH%s8Vuss8N'!rr3'#s8N)ts8N)orr<&urr<&t +s82lss82lorr<&srr<&urr<&trrN3#!<2uu!<3!#!<<'!rr2rurr2rurVls"s8N)trrW9$rrE&u +!s&B$!<3!"!.]U=rr<%Ms3L]H!.]Uns*t~> +cMmkEKE(oNPlC^`huE]VrVult!ri9#r;cfrr;cltrW)uurrDusr;cltr;cltr;cisr;bdUrW';) +!!)fo!!)or!!)rs!!*#u!s&B$!<)ot!<)ot!;lcr!<3!#!<<'!q#:UEprr2rurVlitqu6Wrp\t3nr;Q`srr2rurVm!#rrE*!q>^Qr!<2uu!<2uu!<)p" +!<<'!rVls"s8N)urrW9$rrE&urW'q;!!%TMci +cMmkEKE(oNPlC^`huE]VrVult!ri9#r;cfrr;cltrW)uurrDusr;cltr;cltr;cisr;bdUrW';) +!!)fo!!)or!!)rs!!*#u!s&B$!<)ot!<)ot!;lcr!<3!#!<<'!q#:UEprr2rurVlitqu6Wrp\t3nr;Q`srr2rurVm!#rrE*!q>^Qr!<2uu!<2uu!<)p" +!<<'!rVls"s8N)urrW9$rrE&urW'q;!!%TMci +cMmkEKDtuQJ:Nma!!(pVrrE#trr<-#!<;utrVufrs8W&us8W*!r;Z]qs8W#ts8W#trr;osi;WiY +J:P!+!!)fo!!)or!!)rs!!*#u!s&B$!<)ot!<)ot!;lcr!<3!#!<<'!q#:UEprr2rurVlitqu6Wrp\t3nr;Q`srr2rurVm!#rrE*!q>^Qr!<2uu!<2uu +!<)p"!<<'!rVls"s8N)urrW9$rrE&u!W[b$`W#o +cMmkEKE(oNPlC^`huE]VrVuisr;Zcss8W*!rVult"9/?$s8E#rs8N)rs8N*!s8N)us8N)Ts8E#) +rr<&orr<&rrr<&srs&Q(rr<'!rrE#t!!)ut!!)or!!*#u!s&B$!;QQo!;c^!!<3'!rrDrr!!*#u +!s&B$!;lcr!;ZWp!<2uu!<)ot!;lcr!;HKn!;uis!<2uu!<)p$!<3'!rrDus!W`6#rr2rurr2ru +rVm!#s8N'!rr3<*s8N*!rr<'!rrE&urW'q;!!%TMci +cMmkEKE(oNPlC^`huE]VrVuisr;Zcss8W*!rVult"9/?$s8E#rs8N)rs8N*!s8N)us8N)Ts8E#) +rr<&orr<&rrr<&srs&Q(rr<'!rrE#t!!)ut!!)or!!*#u!s&B$!;QQo!;c^!!<3'!rrDrr!!*#u +!s&B$!;lcr!;ZWp!<2uu!<)ot!;lcr!;HKn!;uis!<2uu!<)p$!<3'!rrDus!W`6#rr2rurr2ru +rVm!#s8N'!rr3<*s8N*!rr<'!rrE&urW'q;!!%TMci +cMmkEKDtuQJ:Nma!!(pVrrE#trW)lrrrE*!rrE#trr<0$!!*&u!;uls!;lfr!<<*!!<3#u!8[YV +!.]U+rr<&orr<&rrr<&srs&Q(rr<'!rrE#t!!)ut!!)or!!*#u!s&B$!;QQo!;c^!!<3'!rrDrr +!!*#u!s&B$!;lcr!;ZWp!<2uu!<)ot!;lcr!;HKn!;uis!<2uu!<)p$!<3'!rrDus!W`6#rr2ru +rr2rurVm!#s8N'!rr3<*s8N*!rr<'!rrE&u!W[b$`W#o +cMmkEKE(oNPlC^`huE]VrVultqu?Zrs8W*!rVult"TJH%s8W#trr;uuqu?Zrs8W*!rr;rthZ*QT +Zi:"*q#: +cMmkEKE(oNPlC^`huE]VrVultqu?Zrs8W*!rVult"TJH%s8W#trr;uuqu?Zrs8W*!rr;rthZ*QT +Zi:"*q#: +cMmkEKDtuQJ:Nma!!(pVrrE#trrDrrrrE*!rrE#trr<3%!!*'!r;cisrrDrrrrE*!rrE&urW(gT +!W[b$Zi:"*q#: +cMmkEKE(oNPlC^`huE]VrVultrVufrs8W*!rVucqrVuiss8W*!rVufrs8W*!rVuishuEZUZi:"* +aT)2=gAh*OV>pMp`W#o +cMmkEKE(oNPlC^`huE]VrVultrVufrs8W*!rVucqrVuiss8W*!rVufrs8W*!rVuishuEZUZi:"* +aT)2=gAh*OV>pMp`W#o +cMmkEKDtuQJ:Nma!!(pVrrE#trrE#tr;cltrrE#tquH]qrW)uurrE#tr;cltrrE#trW(jU!W[b$ +Zi:"*aT)2=gAh*OV>gSsJ:PW=!!%TMci4%HJ:R@nJ,~> +cMmkEKE(oNPlC^`huE]VrVultrr;uu#6+Z's8N'!rVultq>^Hps8W*!rr;uu#6+Z's8N'!r;Z`r +i;`cVZi:"*JcEF`rW'q;!!%TMci +cMmkEKE(oNPlC^`huE]VrVultrr;uu#6+Z's8N'!rVultq>^Hps8W*!rr;uu#6+Z's8N'!r;Z`r +i;`cVZi:"*JcEF`rW'q;!!%TMci +cMmkEKDtuQJ:Nma!!(pVrrE#trrE&urr<9'!!*'!!!)utrrDlprrE*!rrE&urr<9'!!*'!!!)rs +rW(mV!W[b$Zi:"*JcEF`!W[b$`W#o +cMmkEKE(oNPlC^`huE]VrVultrr;uu#6+Z's8N'!rVultrVlitrr;uus8W*!rr;uu#6+Z's8N'! +qu?Zri;`cVZi:"*JcEF`rW'q;!!%TMci +cMmkEKE(oNPlC^`huE]VrVultrr;uu#6+Z's8N'!rVultrVlitrr;uus8W*!rr;uu#6+Z's8N'! +qu?Zri;`cVZi:"*JcEF`rW'q;!!%TMci +cMmkEKDtuQJ:Nma!!(pVrrE#trrE&urr<9'!!*'!!!)utrrE#t!!*#urrE*!rrE&urr<9'!!*'! +!!)orrrD!W!W[b$Zi:"*JcEF`!W[b$`W#o +cMmkEKE(oNPlC^`huE]VrVultrVucqs8W#ts8W#ts8W#trVuiss8Vuss8W&u!<;uthuEZUZi:"* +JcEF`rW'q;!!%TMci +cMmkEKE(oNPlC^`huE]VrVultrVucqs8W#ts8W#ts8W#trVuiss8Vuss8W&u!<;uthuEZUZi:"* +JcEF`rW'q;!!%TMci +cMmkEKDtuQJ:Nma!!(pVrrE#trrE#tquHcsr;cltr;cltr;cfrrW)uuquHcsrVurur;baT!W[b$ +Zi:"*JcEF`!W[b$`W#o +cMmkEKE(oNPlC^`K)bfMZi:"*JcEF`rW'q;!!%TMci +cMmkEKE(oNPlC^`K)bfMZi:"*JcEF`rW'q;!!%TMci +cMmkEKDtuQJ:Nma!!%WN!W[b$Zi:"*JcEF`!W[b$`W#o +cMmkEKE(oNPlC^`K)bfMZi:"*JcEF`rW'q;!!%TMci +cMmkEKE(oNPlC^`K)bfMZi:"*JcEF`rW'q;!!%TMci +cMmkEKDtuQJ:Nma!!%WN!W[b$Zi:"*JcEF`!W[b$`W#o +cMmkEKE(oNPlC^`K)bfMZi:"*JcFR+!!)?b!!)iprW'q;!!%TMci +cMmkEKE(oNPlC^`K)bfMZi:"*JcFR+!!)?b!!)iprW'q;!!%TMci +cMmkEKDtuQJ:Nma!!%WN!W[b$Zi:"*JcFR+!!)?b!!)ip!W[b$`W#o +cMmkEKE(oNPlC^`K)bfMZi:"*bl7YCh>[HTq#:[HTkPkM^r;Q`srr2rup&>!lrVlitrr;rt +`W#o +cMmkEKE(oNPlC^`K)bfMZi:"*bl7YCh>[HTq#:[HTkPkM^r;Q`srr2rup&>!lrVlitrr;rt +`W#o +cMmkEKDtuQJ:Nma!!%WN!W[b$Zi:"*bl7YCh>[HTq#:[HTkPkM^r;Q`srr2rup&>!lrVlit +rr3$"J:PW=!!%TMci4%HJ:R@nJ,~> +cMmkEKE(oNPlC^`K)bfMZi:"*q#: +cMmkEKE(oNPlC^`K)bfMZi:"*q#: +cMmkEKDtuQJ:Nma!!%WN!W[b$Zi:"*q#: +cMmkEKE(oNPlC^`K)bfMZi:"*q#: +cMmkEKE(oNPlC^`K)bfMZi:"*q#: +cMmkEKDtuQJ:Nma!!%WN!W[b$Zi:"*q#: +cMmkEKE(oNPlC^`K)bfMZi:"*q#: +cMmkEKE(oNPlC^`K)bfMZi:"*q#: +cMmkEKDtuQJ:Nma!!%WN!W[b$Zi:"*q#: +cMmkEKE(oNPlC^`K)bfMZi:"*qu?Kmrr2rur;Q`srr3'#s8N)trr<&ts82lsrr<&urrW9$rrDio +quH`r"9AH%s8Vuss8N'!rr3'#s8N)orr<&urr<&urrN3#!<)p!!<<)s!<3#u!;QQo!<2uu!<)rq +!<<)s!;lcr!;uis!<2uu!<)p!!<3&urr<&urrW9$rrE&urW'q;!!%TMci +cMmkEKE(oNPlC^`K)bfMZi:"*qu?Kmrr2rur;Q`srr3'#s8N)trr<&ts82lsrr<&urrW9$rrDio +quH`r"9AH%s8Vuss8N'!rr3'#s8N)orr<&urr<&urrN3#!<)p!!<<)s!<3#u!;QQo!<2uu!<)rq +!<<)s!;lcr!;uis!<2uu!<)p!!<3&urr<&urrW9$rrE&urW'q;!!%TMci +cMmkEKDtuQJ:Nma!!%WN!W[b$Zi:"*qu?Kmrr2rur;Q`srr3'#s8N)trr<&ts82lsrr<&urrW9$ +rrDioquH`r"9AH%s8Vuss8N'!rr3'#s8N)orr<&urr<&urrN3#!<)p!!<<)s!<3#u!;QQo!<2uu +!<)rq!<<)s!;lcr!;uis!<2uu!<)p!!<3&urr<&urrW9$rrE&u!W[b$`W#o +cMmkEKE(oNPlC^`K)bfMZi:"*q#: +cMmkEKE(oNPlC^`K)bfMZi:"*q#: +cMmkEKDtuQJ:Nma!!%WN!W[b$Zi:"*q#: +cMmkEKE(oNPlH:7rW';)!!)fo!!)or!!)rs#6=f(!!*'!!<)ot!<)ot!;lcr!<3!#!<<'!q#: +cMmkEKE(oNPlH:7rW';)!!)fo!!)or!!)rs#6=f(!!*'!!<)ot!<)ot!;lcr!<3!#!<<'!q#: +cMmkEKDtuQJ:NmaJH,`OJ:P!+!!)fo!!)or!!)rs#6=f(!!*'!!<)ot!<)ot!;lcr!<3!#!<<'! +q#: +cMmkEKE(oNPlC^`K)bfMZi:"*q#: +cMmkEKE(oNPlC^`K)bfMZi:"*q#: +cMmkEKDtuQJ:Nma!!%WN!W[b$Zi:"*q#: +cMmkEKE(oNPlC^`K)bfMZi:"*aT)2=i;``Uq>UEprr2rumJm+b`;ff:`W#o +cMmkEKE(oNPlC^`K)bfMZi:"*aT)2=i;``Uq>UEprr2rumJm+b`;ff:`W#o +cMmkEKDtuQJ:Nma!!%WN!W[b$Zi:"*aT)2=i;``Uq>UEprr2rumJm+b`;]l=J:PW=!!%TMci4%H +J:R@nJ,~> +cMmkEKE(oNPlC^`K)bfMZi:"*R/[-drVlitXT/8"`W#o +cMmkEKE(oNPlC^`K)bfMZi:"*R/[-drVlitXT/8"`W#o +cMmkEKDtuQJ:Nma!!%WN!W[b$Zi:"*R/[-drVlitXT&>%J:PW=!!%TMci4%HJ:R@nJ,~> +cMmkEKE(oNPlC^`K)bfMZi:"*JcEF`rW'q;!!%TMci +cMmkEKE(oNPlC^`K)bfMZi:"*JcEF`rW'q;!!%TMci +cMmkEKDtuQJ:Nma!!%WN!W[b$Zi:"*JcEF`!W[b$`W#o +cMmkEKE(oNPlC^`K)bfMZi:"*JcEF`rW'q;!!%TMci +cMmkEKE(oNPlC^`K)bfMZi:"*JcEF`rW'q;!!%TMci +cMmkEKDtuQJ:Nma!!%WN!W[b$Zi:"*JcEF`!W[b$`W#o +cMmkEKE(oNPlC^`K)bfMZi:"*JcEF`rW'q;!!%TMci +cMmkEKE(oNPlC^`K)bfMZi:"*JcEF`rW'q;!!%TMci +cMmkEKDtuQJ:Nma!!%WN!W[b$Zi:"*JcEF`!W[b$`W#o +cMmkEKE(oNPlC^`K)bfMZi:"*JcEF`rW'q;!!%TMci +cMmkEKE(oNPlC^`K)bfMZi:"*JcEF`rW'q;!!%TMci +cMmkEKDtuQJ:Nma!!%WN!W[b$Zi:"*JcEF`!W[b$`W#o +cMmkEKE(oNPlC^`K)bfMZi:"*JcEF`rW'q;!!%TMci +cMmkEKE(oNPlC^`K)bfMZi:"*JcEF`rW'q;!!%TMci +cMmkEKDtuQJ:Nma!!%WN!W[b$Zi:"*JcEF`!W[b$`W#o +cMmkEKE(oNPlC^`K)bfMZi:"*JcEF`rW'q;!!%TMci +cMmkEKE(oNPlC^`K)bfMZi:"*JcEF`rW'q;!!%TMci +cMmkEKDtuQJ:Nma!!%WN!W[b$Zi:"*JcEF`!W[b$`W#o +cMmkEKE(oNPlC^`K)bfMZi:"*JcEF`rW'q;!!%TMci +cMmkEKE(oNPlC^`K)bfMZi:"*JcEF`rW'q;!!%TMci +cMmkEKDtuQJ:Nma!!%WN!W[b$Zi:"*JcEF`!W[b$`W#o +cMmkEKE(oNPlC^`K)bfMZi:"*JcEF`rW'q;!!%TMci +cMmkEKE(oNPlC^`K)bfMZi:"*JcEF`rW'q;!!%TMci +cMmkEKDtuQJ:Nma!!%WN!W[b$Zi:"*JcEF`!W[b$`W#o +cMmkEKE(oNPlC^`df0:Ili-qbnG`Rjs8N)^rr<&ps8E#)s+(0\!6+s +cMmkEKE(oNPlC^`df0:Ili-qbnG`Rjs8N)^rr<&ps8E#)s+(0\!6+s +cMmkEKDtuQJ:Nma!!(II!!)?b!!)Ng!s&B$!9a@^!;ZWr!.]U+s+(0^!<7Sgrr<%Ms3L]H!.]Un +s*t~> +cMmkEKE(oNPlC^`li-qbp\t3no`"mkr;Q`srr2rup&>!lrVlitrr2rupAY*moD\djq#C6lqu?Wq +Zi:"*JcEF`rW'q;!!%TMci +cMmkEKE(oNPlC^`li-qbp\t3no`"mkr;Q`srr2rup&>!lrVlitrr2rupAY*moD\djq#C6lqu?Wq +Zi:"*JcEF`rW'q;!!%TMci +cMmkEKDtuQJ:Nma!!)?b!!)cn!!)Zk!!)rs!!*#u!!)]l!!)ut!!*#u!!)`m!!)Wj!!)foquHWo +!W[b$Zi:"*JcEF`!W[b$`W#o +cMmkEKE(oNPlC^`q#: +cMmkEKE(oNPlC^`q#: +cMmkEKDtuQJ:Nma!!)fo!!)lqrVururW)rtrW)uurW)rtrW)uu!!*#u!!)utrVururW!!!!;uj% +!<<'!rrE*!rVururW)uu#lsu*!<3'!rrE)u!<2uu!<3!!!<<#urr;rtrr;uuq>UKrJ:P!+!!%TM +^&J-6J:PW=!!%TMci4%HJ:R@nJ,~> +cMrFqrrA;`!!)fo!!)or!!)rs!!*#u!!*#u!s&B$!<2uu!;QQo!;uis!<2uu!<2uu!<2uu!<3!" +!<3&urr<&urr<&us8N)urr`?%rr<&urrW9$rrE&u!s&B$!<2uu!<3!%!<<'!rrDoqrW';)!!%TM +^&S'3`W#o +cMrFqrrA;`!!)fo!!)or!!)rs!!*#u!!*#u!s&B$!<2uu!;QQo!;uis!<2uu!<2uu!<2uu!<3!" +!<3&urr<&urr<&us8N)urr`?%rr<&urrW9$rrE&u!s&B$!<2uu!<3!%!<<'!rrDoqrW';)!!%TM +^&S'3`W#o +cMrFqs+$@6!!)fo!!)or!!)rs!!*#u!!*#u!s&B$!<2uu!;QQo!;uis!<2uu!<2uu!<2uu!<3!" +!<3&urr<&urr<&us8N)urr`?%rr<&urrW9$rrE&u!s&B$!<2uu!<3!%!<<'!rrDoq!W[b$Zi:"* +JcEF`!W[b$`W#o +bQ!.oPlC^`q#: +bQ!.oPlC^`q#: +bQ!0EPlC^`q#: +bQ!.oPlC^`qu?KmrVultrr2rurVufrs8N'!rVultqYpNqr;Q`srr2rurVlp!rrE&u!!*#u!s&B$ +!<2uu!<2uu!<)p"!<<'!rVls"s8N)urrW9$rrE&uquHEirW';)!!%TM^&S'3`W#o +bQ!.oPlC^`qu?KmrVultrr2rurVufrs8N'!rVultqYpNqr;Q`srr2rurVlp!rrE&u!!*#u!s&B$ +!<2uu!<2uu!<)p"!<<'!rVls"s8N)urrW9$rrE&uquHEirW';)!!%TM^&S'3`W#o +bQ!0EPlC^`qu?KmrVultrr2rurVufrs8N'!rVultqYpNqr;Q`srr2rurVlp!rrE&u!!*#u!s&B$ +!<2uu!<2uu!<)p"!<<'!rVls"s8N)urrW9$rrE&uquHEi!W[b$Zi:"*JcEF`!W[b$`W#o +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu;JBi]= +s*t~> +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$huA6-rW';)!!%TM^&S'3JcCE'J,~> +JcC<$huA6-rW';)!!%TM^&S'3JcCE'J,~> +JcC<$huA6-!W[b$Zi:"*JcEF`!W[b$JcCE'J,~> +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$huRV\H%3\K`?Q~> +JcC<$huRV\H%3\K`?Q~> +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$huA6-rW%NLJcC<$JcG0 +JcC<$huA6-rW%NLJcC<$JcG0 +JcC<$huA6-!W[b$JcC<$JcC<$mf.e~> +JcC<$h#Dp*JcC<$JcC<$mf.e~> +JcC<$h#Dp*JcC<$JcC<$mf.e~> +JcC<$h#DqUJcC<$JcC<$mf.e~> +JcC<$h#Dp*JcC<$JcC<$mf.e~> +JcC<$h#Dp*JcC<$JcC<$mf.e~> +JcC<$h#DqUJcC<$JcC<$mf.e~> +JcC<$JcC<$JcC<$JcEjlJ,~> +JcC<$JcC<$JcC<$JcEjlJ,~> +JcC<$JcC<$JcC<$JcEjlJ,~> +%%EndData +showpage +%%Trailer +end +%%EOF diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/docbook/lttv-context.png b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/docbook/lttv-context.png new file mode 100644 index 00000000..a5b3d709 Binary files /dev/null and b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/docbook/lttv-context.png differ diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/Makefile.am b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/Makefile.am new file mode 100644 index 00000000..a2b99fd3 --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/Makefile.am @@ -0,0 +1 @@ +EXTRA_DIST = c18.html c40.html c67.html index.html lttv-context.png x23.html x33.html x46.html x50.html x72.html x77.html x81.html x84.html diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/c18.html b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/c18.html new file mode 100644 index 00000000..f8687fe2 --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/c18.html @@ -0,0 +1,149 @@ + +Linux Trace Toolkit Viewer Text Module Tutorial

Linux Trace Toolkit Viewer Developer Guide
PrevNext

Chapter 1. Linux Trace Toolkit Viewer Text Module Tutorial

1.1. Introduction

This chapter explains all the steps that are necessary to create a text module +in LTTV. +


PrevHomeNext
Linux Trace Toolkit Viewer Developer Guide A typical module
\ No newline at end of file diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/c40.html b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/c40.html new file mode 100644 index 00000000..a21da877 --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/c40.html @@ -0,0 +1,155 @@ + +How to use the Linux Trace Toolkit Viewer's Reading Context
Linux Trace Toolkit Viewer Developer Guide
PrevNext

Chapter 2. How to use the Linux Trace Toolkit Viewer's Reading Context

2.1. Introduction

This chapter describes how to use the Linux Trace Toolkit reading context, a +data structure that is given as call data parameter of the modules'callbacks. +

Linux Trace Toolkit Viewer provides a backend that reads the traces. In combines +them in tracesets. A trace is an abstaction over many tracefiles, one per CPU. +LTTV reads the whole trace together, providing the events to modules by calling +their pre-registered hook lists in a chronological order. +


PrevHomeNext
The hooks Why an event driven trace reader ?
\ No newline at end of file diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/c67.html b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/c67.html new file mode 100644 index 00000000..656c37ef --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/c67.html @@ -0,0 +1,152 @@ + +Linux Trace Toolkit Viewer Graphical Module Tutorial
Linux Trace Toolkit Viewer Developer Guide
PrevNext

Chapter 3. Linux Trace Toolkit Viewer Graphical Module Tutorial

3.1. Introduction

As a matter of fact, most of the things said for the text modules still hold for +the graphical modules. However, the fact that every module must instanciate +objects (called viewers) more than once changes a little bit the scenario. It is +then impossible to use static structures : everything must be instanciated at +run-time, except the structures related to the module itself. +


PrevHomeNext
Using the reading context The static part of a module
\ No newline at end of file diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/index.html b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/index.html new file mode 100644 index 00000000..5dfa59c9 --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/index.html @@ -0,0 +1,250 @@ + +Linux Trace Toolkit Viewer Developer Guide

Linux Trace Toolkit Viewer Developer Guide

Mathieu Desnoyers

This document describes the basic steps necessary to develop within the +Linux Trace Toolkit Viewer project. + +



  Next
  Linux Trace Toolkit Viewer Text Module Tutorial
\ No newline at end of file diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/lttv-context.png b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/lttv-context.png new file mode 100644 index 00000000..a5b3d709 Binary files /dev/null and b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/lttv-context.png differ diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/x23.html b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/x23.html new file mode 100644 index 00000000..fdbff006 --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/x23.html @@ -0,0 +1,200 @@ + +A typical module
Linux Trace Toolkit Viewer Developer Guide
PrevChapter 1. Linux Trace Toolkit Viewer Text Module TutorialNext

1.2. A typical module

A typical module must have a init() and destroy() function. Please refer to +lttv/modules/text/textDump.c for the detail of these functions. +

The init() function is called when the library is loaded and destroy() +inversely. It adds options to the command line by calling "lttv_option_add" from +option.h +

The module communicates with the main lttv program through the use of global +attributes. Use lttv/attribute.h, lttv/iattribute.h and lttv/lttv.h, and then +LTTV_IATTRIBUTE(lttv_global_attributes()) to get the pointer to these +global attributes. +

You can then add your hooks (functions that follows the prototype of a hook, as +defined in lttv/hook.h) in the different hook lists defined in lttv/lttv.h. Note +that hooks have an assigned priority. This is necessary to inform the trace +reader that a specific hook needs to be called, for example, before or after the +state update done for an event by the state module. For that specific example, a +hook could use the LTTV_PRIO_STATE-5 to get called before the state update and a +second hook could use the LTTV_PRIO_STATE+5 to get called after the state +update. This is especially important for graphical module, which is the subject +of a the chapter named "Linux Trace Toolkit Viewer Graphical Module Tutorial". +

You should also take a look at lttv/state.c, where by_id hooks are used. When +you only need some specific events, you should use this interface. It makes the +event filtering sooner in the dispatch chain : you hook doesn't have to be +called for each event, only the ones selected. That improves the performances a +lot! +

Note that you should use the lttv_trace_find_hook method from +lttv/tracecontext.h to connect the hook to the right facility/event type. See +state.c for an example. A problem that may arise is that the LttvTraceHook +structure must be passed as hook_data when registering the hook. In fact, it is +not necessary for it to be directly passed as the hook_data parameter. As long +as the hook function can access the LttvTraceHook fields necessary to parse the +LttEvent, there is no problem. In a complex viewer where you need a pointer to +your own data structure, just keep a pointer to the LttvTraceHook structure +inside your own data structure, and give to pointer to your data structure in +parameter as the hook_data. +

Then, you should use the macro LTTV_MODULE, defined in lttv/module.h. It allows +you to specify the module name, a short and a long description, the init and +destroy functions and the module dependencies. That permits to the module +backend to load the right dependencies when needed. +

A typical text module will depend on batchAnalysis for the batch computation of a +trace, and simply register before and after trace hooks, as weel as the most +important one : a event hook. +


PrevHomeNext
Linux Trace Toolkit Viewer Text Module TutorialUpThe hooks
\ No newline at end of file diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/x33.html b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/x33.html new file mode 100644 index 00000000..754136b9 --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/x33.html @@ -0,0 +1,184 @@ + +The hooks
Linux Trace Toolkit Viewer Developer Guide
PrevChapter 1. Linux Trace Toolkit Viewer Text Module TutorialNext

1.3. The hooks

The before and after trace hooks only exists to be able to generate a report at +the end of a trace computation. The effective computation is done by the event +hooks. +

These hooks does particular computation on data arriving as argument, a +call_data. The type of the call_data, when a hook is called during the trace +read, is a traceset context. It contains all the necessary information about the +read in progress. This is the base class from which inherits trace set +state, and trace set/trace/tracefile state is the base classe of trace +set/trace/tracefile statistics. All these types can be casted to another without +problem (a TracesetState, for example, can be casted to a TracesetContext, but +it's not true for the casting between a TraceContext and a TracesetContext, see +the chapter "How to use the trace reading context" for details). They offer the +input data and they give a container (the attributes of the trace set/trace/tracefile +statistics) to write the output of this hook. +

The idea behind writing in the attributes container is to provide an extensible +way of storing any type of information. For example, a specific module that adds +statistics to a trace can store them there, and the statistic printout will +automatically include the results produced by the specific module. +

Output data does not necessarily need to be stored in such a global container +though. If we think of data of which we need to keed track during the execution, +an event counter for example, we should create our own data structure that +contains this counter, and pass the address of the allocated structure as the +hook_data parameter of the hook list creation function. That way, the hook will +be called with its hook_data as first parameter, which it can read and write. We +can think of this structure as the data related to the function that persists +between each call to the hook. You must make sure that you cast the hook_data to +the type of the structure before you use it in the hook function. +

The detail about how to access the different fields of the reading context (the +hook's call_data) will be discussed in the chapter "How to use the trace +reading context". +


PrevHomeNext
A typical moduleUpHow to use the Linux Trace Toolkit Viewer's Reading Context
\ No newline at end of file diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/x46.html b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/x46.html new file mode 100644 index 00000000..3cd2e69e --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/x46.html @@ -0,0 +1,162 @@ + +Why an event driven trace reader ?
Linux Trace Toolkit Viewer Developer Guide
PrevChapter 2. How to use the Linux Trace Toolkit Viewer's Reading ContextNext

2.2. Why an event driven trace reader ?

The complexity of synchronizing the tracesets is then hidden to the viewer. Some +future plans involve to be able to put many traces together in a trace set. +Before this becomes possible, the time of each trace must be synchronized in +some way. Some work is actually done to create a module that uses the network +traffic shared by different computers to synchronize the time of different +traces. +

In order to make each module integrate well with each other, we made the trace +reader a simple hook caller. For each event it reads, it just calls the hook +lists for this event. For each event, it calls the by_id specific hooks +registered for this event and also the "main" hooks, registered for all events. +Note that the two hook lists are merged when called so the priority of the +hooks of each list is respected. For example, a hook of higher priority (20) in +the main list will be called before a hook of lower priority (40) from the +by_id specific list. +


PrevHomeNext
How to use the Linux Trace Toolkit Viewer's Reading ContextUpUsing the reading context
\ No newline at end of file diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/x50.html b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/x50.html new file mode 100644 index 00000000..f93edb1a --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/x50.html @@ -0,0 +1,193 @@ + +Using the reading context
Linux Trace Toolkit Viewer Developer Guide
PrevChapter 2. How to use the Linux Trace Toolkit Viewer's Reading ContextNext

2.3. Using the reading context

If you have read the tutorials about writing a text and a graphic module, you +should be fairly ready to use the information provided to your hook by the +reading API. +

The data structures of the reading context are based on the gobject, a +object-oriented library from the glib. Some evolved types that are found in the +context also comes from the "glib" (GArray, GHashTable and so on). For detailed +information about "gobjects" and the "glib", see the www.gtk.org website. They provide a complete +API reference about the data types they provide. +

The reading context is object oriented. It is described by the lttv/tracecontext.h +header. Is can be illustrated with this UML class diagram : +

Linux Trace Toolkit Viewer Reading Context Class Diagram

+

Though, for performance's sake, navigating through it is not as encapsulated as +it could. Consider the class attributes to be all public (no get/set functions). +Sometimes, iteration upon a specific element can be uneasy. For example, you may +have to get the number of tracefiles in a trace from the "vt" field of the trace +context to be able to iterate over all the tracefiles contained by the trace. +

To facilitate the common operations on the reading context, LTTV now provides a +header that consists of simple macros : lttv/contextmacros.h. It gives an object +look-and-feel to the context classes. Simple "GET" macros can be used to easily +access the different fields are iterate over the elements (and get the total +number of elements too). +


PrevHomeNext
Why an event driven trace reader ?UpLinux Trace Toolkit Viewer Graphical Module Tutorial
\ No newline at end of file diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/x72.html b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/x72.html new file mode 100644 index 00000000..bbb21cbc --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/x72.html @@ -0,0 +1,163 @@ + +The static part of a module
Linux Trace Toolkit Viewer Developer Guide
PrevChapter 3. Linux Trace Toolkit Viewer Graphical Module TutorialNext

3.2. The static part of a module

A module must have a static part to be able to get loaded just like a text +module. Now, let's see the differences. The graphical module depends on the +"lttvwindow" module. See module.c from the control flow viewer for an example. +

The init() and destroy() functions must register functions that can be called by +user interaction to instanciate the viewers. That's the goal of +lttvwindow_register_constructor() and lttvwindow_unregister_constructor() : +they register a function with a menu entry and an icon. The main window will +shown them in its interface and call the function when the button or menu item +is selected. This hook function must receive a pointer to a "Tab" object in +parameter. +

Also note the presence of the destroy_walk() method. It is called when the +module is unloaded : it must destroy all the instances of the viewers from the +module. +


PrevHomeNext
Linux Trace Toolkit Viewer Graphical Module TutorialUpThe dynamic part of a module : the viewer
\ No newline at end of file diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/x77.html b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/x77.html new file mode 100644 index 00000000..30827a5c --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/x77.html @@ -0,0 +1,160 @@ + +The dynamic part of a module : the viewer
Linux Trace Toolkit Viewer Developer Guide
PrevChapter 3. Linux Trace Toolkit Viewer Graphical Module TutorialNext

3.3. The dynamic part of a module : the viewer

The dynamic part starts with the constructor of the viewer. It is called by the +main window when the corresponding button or menu item is selected. See +h_guicontrolflow() from control flow viewer eventhooks.c for an example. It does +basic connexion to the tab's events available : time window change notification, +current time notification, redraw notification, continue notification. All these +function should be implemented in your viewer if you want the data you shown to +be synchronised with the main window and the other viewers. It also calls the +background computation, which will be discussed in the next section. +

This is also at this point that the viewer does create it's own memory footprint +: its inner structure. This structure will have to be passed as hook_data to +each function registered by the viewer : this is what makes the functions +"belong" to this instance of the viewer. +


PrevHomeNext
The static part of a moduleUpHow to request background computation
\ No newline at end of file diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/x81.html b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/x81.html new file mode 100644 index 00000000..c12a65b4 --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/x81.html @@ -0,0 +1,156 @@ + +How to request background computation
Linux Trace Toolkit Viewer Developer Guide
PrevChapter 3. Linux Trace Toolkit Viewer Graphical Module TutorialNext

3.4. How to request background computation

You will also notice the presence of a request_background_data() called in the +constructor. This function, in eventhooks.c, does verify for the presence of the +state information that could be precomputed by the main window background +computation. If it has not been precomputed, we ask for a computation and show +partial data. We also register a hook that will be called (notified) by the main +window when the requested data will become ready, so the viewer can update +itself with the new data. If no partial information would have made sense in a +particular viewer, one could choose to shown a "waiting for computation" message +while waiting for the notification. See lttvwindow/lttvwindowtraces.h for the API +of the background requests. +


PrevHomeNext
The dynamic part of a module : the viewerUpHow to handle events and use the graphical trace reading service
\ No newline at end of file diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/x84.html b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/x84.html new file mode 100644 index 00000000..639350aa --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/developer_guide/html/x84.html @@ -0,0 +1,537 @@ + +How to handle events and use the graphical trace reading service
Linux Trace Toolkit Viewer Developer Guide
PrevChapter 3. Linux Trace Toolkit Viewer Graphical Module Tutorial 

3.5. How to handle events and use the graphical trace reading service

The events that are delivered by the main window are defined in +lttvwindow/lttvwindow.h. Let's describe them and their use in details. Remember +that you can refer to the control flow viewer module as an example. +

3.5.1. Module Related API

A viewer plugin is, before anything, a plugin. As a dynamically loadable +module, it thus has an init and a destroy function called whenever it is +loaded/initialized and unloaded/destroyed. A graphical module depends on +lttvwindow for construction of its viewer instances. In order to achieve +this, it must register its constructor function to the main window along +with button description or text menu entry description. A module keeps +a list of every viewer that currently sits in memory so it can destroy +them before the module gets unloaded/destroyed. +

The contructor registration to the main windows adds button and menu +entry to each main window, thus allowing instanciation of viewers. +

3.5.2. Main Window

The main window is a container that offers menus, buttons and a +notebook. Some of those menus and buttons are part of the core of the +main window, others are dynamically added and removed when modules are +loaded/unloaded. +

The notebook contains as much tabs as wanted. Each tab is linked with +a set of traces (traceset). Each trace contains many tracefiles (one +per cpu). A trace corresponds to a kernel being traced. A traceset +corresponds to many traces read together. The time span of a traceset +goes from the earliest start of all the traces to the latest end of all +the traces. +

Inside each tab are added the viewers. When they interact with the main +window through the lttvwindow API, they affect the other viewers located +in the same tab as they are. +

The insertion of many viewers in a tab permits a quick look at all the +information wanted in a glance. The main window does merge the read +requests from all the viewers in the same tab in a way that every viewer +will get exactly the events it asked for, while the event reading loop +and state update are shared. It improves performance of events delivery +to the viewers. +

3.5.3. Viewer Instance Related API

The lifetime of a viewer is as follows. The viewer constructor function +is called each time an instance view is created (one subwindow of this +viewer type is created by the user either by clicking on the menu item +or the button corresponding to the viewer). Thereafter, the viewer gets +hooks called for different purposes by the window containing it. These +hooks are detailed below. It also has to deal with GTK Events. Finally, +it can be destructed by having its top level widget unreferenced by the +main window or by any GTK Event causing a "destroy-event" signal on the +its top widget. Another possible way for it do be destroyed is if the +module gets unloaded. The module unload function will have to emit a +"destroy" signal on each top level widget of all instances of its viewers. +

3.5.4. Notices from Main Window

time_window

This is the time interval visible on the viewer's tab. Every + viewer that cares about being synchronised by respect to the + time with other viewers should register to this notification. + They should redraw all or part of their display when this + occurs.

traceset

This notification is called whenever a trace is added/removed + from the traceset. As it affects all the data displayed by the + viewer, it sould redraw itself totally.

filter

This feature has not been implemented yet.

current_time

Being able to zoom nearer a specific time or highlight a specific + time on every viewer in synchronicity implies that the viewer + has to shown a visual sign over the drawing or select an event + when it receives this notice. It should also inform the main + window with the appropriate report API function when a user + selects a specific time as being the current time.

dividor

This notice links the positions of the horizontal dividors + between the graphic display zone of every viewer and their Y axis, + typically showing processes, cpus, ...

3.5.5. Reporting Changes to the Main Window

In most cases, the enclosing window knows about updates such as described +in the Notification section higher. There are a few cases, however, where +updates are caused by actions known by a view instance. For example, +clicking in a view may update the current time; all viewers within +the same window must be told about the new current time to change the +currently highlighted time point. A viewer reports such events by calling +lttvwindow_report_current_time on its lttvwindow. The lttvwindow will +consequently call current_time_notify for each of its contained viewers. +

Available report methods are : +

  • lttvwindow_report_time_window : reports the new time window. +

  • lttvwindow_report_current_time : reports the new current time. +

  • lttvwindow_report_dividor : reports the new horizontal dividor's position. +

+

3.5.6. Requesting Events to Main Window

Events can be requested by passing a EventsRequest structure to the main +window. They will be delivered later when the next g_idle functions +will be called. Event delivery is done by calling the event hook for +this event ID, or the main event hooks. A pointer to the EventsRequest +structure is passed as hook_data to the event hooks of the viewers. +

EventsRequest consists in +

  • a pointer to the viewer specific data structure +

  • a start timestamp or position +

  • a stop_flag, ending the read process when set to TRUE +

  • a end timestamp and/or position and/or number of events to read +

  • hook lists to call for traceset/trace/tracefile begin and end, and for each + event (event hooks and event_by_id hooks). +

+

The main window will deliver events for every EventRequests it has +pending through an algorithm that guarantee that all events requested, +and only them, will be delivered to the viewer between the call of the +tracefile_begin hooks and the call of the tracefile_end hooks. +

If a viewer wants to stop the event request at a certain point inside the +event hooks, it has to set the stop_flag to TRUE and return TRUE from the +hook function. Then return value will stop the process traceset. Then, +the main window will look for the stop_flag and remove the EventRequests +from its lists, calling the process_traceset_end for this request (it +removes hooks from the context and calls the after hooks). +

It no stop_flag is risen, the end timestamp, end position or number +of events to read has to be reached to determine the end of the +request. Otherwise, the end of traceset does determine it. +

3.5.7. GTK Events

3.5.7.1. Events and Signals

GTK is quite different from the other graphical toolkits around +there. The main difference resides in that there are many X Windows +inside one GtkWindow, instead of just one. That means that X events are +delivered by the glib main loop directly to the widget corresponding to +the GdkWindow affected by the X event. +

Event delivery to a widget emits a signal on that widget. Then, if a +handler is connected to this widget's signal, it will be executed. There +are default handlers for signals, connected at class instantiation +time. There is also the possibility to connect other handlers to these +signals, which is what should be done in most cases when a viewer needs +to interact with X in any way. +

Signal emission and propagation is described there : + +

  • http://www.gtk.org/tutorial/sec-signalemissionandpropagation.html +

+

For further information on the GTK main loop (now a wrapper over glib main loop) +see : + +

  • http://developer.gnome.org/doc/API/2.0/gtk/gtk-General.html +

  • http://developer.gnome.org/doc/API/2.0/glib/glib-The-Main-Event-Loop.html +

+

For documentation on event handling in GTK/GDK, see : + +

  • http://developer.gnome.org/doc/API/2.0/gdk/gdk-Events.html +

  • http://developer.gnome.org/doc/API/2.0/gdk/gdk-Event-Structures.html +

+

Signals can be connected to handlers, emitted, propagated, blocked, +stopped. See : + +

  • http://developer.gnome.org/doc/API/2.0/gobject/gobject-Signals.html +

+

3.5.7.2. The "expose_event"

Provides the exposed region in the GdkEventExpose structure. +

There are two ways of dealing with exposures. The first one is to directly +draw on the screen and the second one is to draw in a pixmap buffer, +and then to update the screen when necessary. +

In the first case, the expose event will be responsible for registering +hooks to process_traceset and require time intervals to the main +window. So, in this scenario, if a part of the screen is damaged, the +trace has to be read to redraw the screen. +

In the second case, with a pixmap buffer, the expose handler is only +responsible of showing the pixmap buffer on the screen. If the pixmap +buffer has never been filled with a drawing, the expose handler may ask +for it to be filled. +

The interest of using events request to the main window instead of reading +the events directly from the trace comes from the fact that the main +window does merge requests from the different viewers in the same tab so +that the read loop and the state update is shared. As viewers will, in +the common scenario, request the same events, only one pass through the +trace that will call the right hooks for the right intervals will be done. +

When the traceset read is over for a events request, the traceset_end +hook is called. It has the responsibility of finishing the drawing if +some parts still need to be drawn and to show it on the screen (if the +viewer uses a pixmap buffer). +

It can add dotted lines and such visual effects to enhance the user's +experience. +


PrevHome 
How to request background computationUp 
\ No newline at end of file diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/discuss.html b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/discuss.html new file mode 100644 index 00000000..b6159254 --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/discuss.html @@ -0,0 +1,189 @@ + + + + Tracing Tools + + + +

Tracing Tools

+ +

Tracing is routinely used to help understanding the behavior and performance +of various aspects of the Linux kernel and associated drivers. +Many of the 80K+ printk statements in the Linux kernel +serve this purpose, although printk is relatively low +performance and unreliable. The small default printk buffer size coupled with +the low performance brings lost messages as soon as the volume becomes +significant. + +

For this reason, a number of drivers include their own tracing macros +and infrastructure. A quick search looking for TRACE and related keywords +in the Linux kernel source reveals some form of tracing in at least +the following files: + +

    +
  • ./fs/hpfs/hpfs_fn.h +
  • ./fs/smbfs/smb_debug.h +
  • ./fs/autofs/autofs_i.h +
  • ./fs/jffs2/nodelist.h +
  • ./include/linux/wait.h +
  • ./include/linux/parport_pc.h +
  • ./include/linux/amigaffs.h +
  • ./include/linux/parport_pc.h +
  • ./include/linux/ncp_fs.h +
  • drivers/net/wireless airport and orinoco +
  • drivers/char/ftape +
  • drivers/char/dtlk.c +
  • drivers/char/mwave +
  • drivers/char/n_r3964.c +
  • drivers/scsi/qlogicfc.c +
  • drivers/usb/pwc-if.c +
  • drivers/usb/hpusbscsi.c +
  • drivers/acpi/include/acmacros.h +
  • arch/sparc/kernel/signal.c +
  • arch/mips/math-emu/cp1emu.c +
  • drivers/net/wavelan.c +
  • drivers/net/hp100.c +
  • drivers/net/wan/lmc/lmc_debug.c +
  • drivers/net/skfp/h/targetos.h +
  • drivers/char/ip2main.c +
  • drivers/scsi/gdth.c +
  • drivers/scsi/megaraid.c +
  • drivers/scsi/qlogicisp.c +
  • drivers/scsi/ips.c +
  • drivers/scsi/qla1280.c +
  • drivers/scsi/cpqfcTSstructs.h +
  • drivers/cdrom/sjcd.c +
  • drivers/isdn/eicon/sys.h +
  • drivers/sbus/char/bbc_envctrl.c +
  • drivers/ide/ide-tape.c +
  • drivers/video/radeonfb.c +
  • fs/intermezzo/sysctl.c +
  • fs/ext3/balloc.c +
  • net/ipv6/ip6_fib.c +
  • net/irda/irnet/irnet.h +
      + +

      A number of tracing tools have been developed for the Linux kernel. +The best known, particularly in the embedded systems area, is the Linux Trace +Toolkit, LTT at +http://www.opersys.com/LTT. It +comes with a nice graphical user interface and is currently under active +development to add dynamically defined event types and graphical trace +analysis modules. + +

      +The Linux Kernel State Tracer at +http://lkst.sf.netwas developed by Hitachi and offers basic, +low overhead, tracing functionality. There is no grahical user interface +available. + +

      +MAGNET was recently released. It was initially developed to trace the network +stack and drivers. Its performance has not been optimized for SMP systems. +It is available from + +http://public.lanl.gov/radiant/software/magnet.html +. + +

      +The IKD patch from Andrea Arcangeli + +ftp://ftp.kernel.org/pub/linux/kernel/people/andrea/ikd/ + +includes ktrace which adds the -pg gcc compilation option +to specified source files. This adds a call to function mcount +upon entry in any function compiled with that option. A function mcount +is provided which records in a trace the address of the function entered. +Using the system map, this is later translated into a trace of names of +functions entered. + +

      Reliability, Availability and Serviceability

      + +

      +Tracing may be placed in the larger context of Reliability, Availability and +Serviceability (RAS). The Linux RAS project is probably the most active and +well organized, + +http://systemras.sourceforge.net/ + + +http://www-124.ibm.com/linux/projects/linuxras/ +. +It links to several underlying projects, including the Linux Trace Toolkit +LTT. + +

      +Several other projects within Linux RAS directly relate to tracing. + +

      Enterprise Event Logging

      + +

      The Enterprise Event Logging project, +EVLOG project +at http://evlog.sourceforge.net/, produces traces and thus shares a number +of underlying implementation needs +(events recording, kernel to user mode transfer, +trace analysis and viewing tools, event types format). The intended purpose +and thus implementation constraints differ significantly, however. +EVLOG records important system events for two purposes, +to trigger service and security alarms (e.g. weak signals in a magnetic disk, +unauthorized access attempt) and to provide permament records. The volume +is typically low and full context is required for each event. While logging +(EVLOG) is therefore implemented separately from tracing (LTT), some +underlying technology may be reused as appropriate (e.g. kernel hooks, +kernel to user mode data relay...). + +

      Kernel Crash Dump

      + +

      A common symptom of a serious kernel problem is a crash. Traces may +be extremely useful to understand the problem except that, because of the +crash, the important last events in the current trace buffer cannot be +stored on disk. The Linux Kernel Crash Dump facility (LKCD) at + +http://oss.software.ibm.com/developer/opensource/linux/projects/flexdump/ + is used to recover such information, when warm rebooting from a +crash while this information is still available in memory. + +

      LKCD needs to be told how to find the tracing buffers in the memory +(address in a map or signature to look for) and in which file to save +their content. + +

      Kernel Hooks

      + +

      +Kernel hooks, at + +http://www-124.ibm.com/developerworks/oss/linux/projects/kernelhooks/ + are a mechanism to insert hooks at desired locations in the kernel. +Handlers may later be registered to be called at these hooks locations. +When no handler is registered, the cost associated with a hook is almost +negligeable, a few NOPs. Skipping NOPs is even faster than testing a +global boolean variable. Kernel hooks would be ideally suited for the +dynamic activation of trace points. Furthermore, kernel hooks allow registering +multiple handlers. A same location could have a tracing handler and a +performance tool handler, reducing the number of points needed to be +inserted in the kernel source code. + +

      Interactive tools may be used to rapidly select groups of hooks to be +activated based on facilities (networking, block devices...), level +of details (core events, detailed events) or severity level (warning, info, +debug). + +

      As part of Kernel Hooks and Dynamic Probes, were defined handlers +which produce tracing information. The tracing data models for Dynamic Probes +and LTT are fairly similar and may eventually be consolidated. + +

      Dynamic Probes

      + +

      The Dynamic Probes, + +http://www-124.ibm.com/linux/projects/kprobes/ +, +allow inserting kernel hooks dynamically in a running kernel, just like +breakpoints in debuggers. The instruction +at the desired location is saved and replaced by an interrupt instruction. +When the interrupt instruction is executed, the handlers are called, the +original instruction restored and executed in single step mode, and the +interrupt instruction is reinserted. + + + diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/filter_specification.docbook b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/filter_specification.docbook new file mode 100644 index 00000000..9de15a07 --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/filter_specification.docbook @@ -0,0 +1,502 @@ + + + + + + + +Spécifications du filtre de Linux Trace Toolkit Viewer + + +Mathieu +Desnoyers + + + +26/01/2005 +1.00.00 + + + +Ce document décrit les spécifications requises pour la fonctionnalité de +filtrage pour l'application +Linux Trace Toolkit Viewer. + + + + + +Linux Trace Toolkit Viewer +spécification +filtre +specification +filter + + + + +Introduction + + +Le filtre de Linux Trace Toolkit Viewer est une fonctionnalité nécessaire pour +rendre l'outil pleinement utilisable. Des cas typiques de filtrage ont déjà été +identifiés : filtrer par CPU ou par ID d'événement. + + +Cependant, un utilisateur plus avancé peut vouloir filtrer selon n'importe quel +champs d'information disponible lors de la lecture d'un événement. L'approche +qui sera suivie, afin d'assurer l'applicabilité du filtrage aux différents types +de traces, sera de ne pas limiter les champs selon lesquels le filtrage pourra +être fait. + + +Comme le filtrage se fait à la lecture de chaque événement, il peut rapidement +devenir un goulot d'étranglement important. Les performances doivent donc être +un souci de taille lors de la réalisation de cette fonctionnalité. C'est +pourquoi l'architecture proposée se base sur une compilation des règles de +filtrage lors de leur définition afin de générer une structure de données +optimale pour le parcours de la trace. + + +Ce document explique les différents défis à surmonter dans les différents +sous-modules du filtre, soit : la partie "core" du filtre, qui sera intégrée, +comme son nom l'indique, au coeur de l'application ainsi que les parties +modulaires textes et graphiques. À la fin du document, des optimisations +éventuelles sont énoncées, sans plus. Elles pourront être utiles dans le cas où +les performances s'avéreraient problématiques. + + +Ce document est le fruit d'un échange entre Michel Dagenais et moi-même, Mathieu +Desnoyers. Certains passages sont laissés sous leur forme originale. + + + + + + +Design + + +Core + + + Application des règles de filtrage aux événements. Les règles de + filtrage pourraient être représentées par un arbre. Cette section du + filtrage est assez intégrée au reste de l'application pour mériter d'être + au coeur même de lttv (pas dans un module séparé). Les feuilles de l'arbre + sont des 3-tuples (champs, relation, valeur), alors que les noeuds + intermédiaires sont des relations logiques (and, or, xor, not). Le and, le + or et le xor sont limités à deux enfants, alors que le not est limité à un + seul enfant. + + + Les champs du 3-tuple devraient respecter une arborescence qui représente + l'organisation des données dans les événements. Celles-ci sont, lors de la + lecture de la trace, accessibles via les structures : + + +LttEvent (plus les champs spécifiques à l'événement) +LttvTracefile +LttvTrace +LttvTraceset +LttvState + + + On pourrait donc, au niveau de la description du champs, représenter + celui-ci par une chaîne de caractères imbriquable dont les niveaux sont + séparés par le ".". Voici la représentation des niveaux d'imbrication : + + + + * + |->event (pour accéder aux champs sous LttEvent) + | |->name (string) + | |->category (string) + | |->time (LttTime) + | |->tsc (LttCycleCount) + | |->fields + | |->"event name" + | |->"field name" + | |->"sub-field name" + | |->... + | |->"leaf-field name" (field type) + | + |->tracefile + | |->name (string) + |->trace + | |->name (string) + |->state + |->pid (guint) + |->ppid (guint) + |->creation_time (LttTime) + |->insertion_time (LttTime) + |->process_name (string) + |->execution_mode (user_mode, syscall, trap, irq, unknown) + |->execution_submode (none, unknown) + |->process_status (wait_fork,wait_cpu,exit,zombie,wait,run,unnamed) + |->cpu (guint) + + + + +L'objet contenant l'arbre des règles de filtrage ainsi que la cache du filtre, + qu'on pourrait appeler "LttvFilter", serait associé à une trace, non pas à un + trace set, pour des raisons de performance. En effet, le même nom d'événement + peut très bien être associé à un ID différent d'une trace à l'autre. Comme on + ne souhaite pas faire la translation nom->id (qui est coûteuse) à chaque + utilisation du filtre, on le ferait lors de sa construction. Ceci implique de + garder un objet LttvFilter par trace. Rien n'empêche cependant d'avoir une + façon de créer, au niveau usager, des filtres pour toutes les traces d'un + traceset, mais ceux-ci seront associés à chaque trace du trace set. + + + +Michel Dagenais : + + +Je m`inquiète beaucoup pour la performance. Il faut pouvoir précompiler +ces expressions en offset (ltt_field) et avoir un espèce d`index pour ne +pas passer séquentiellement à travers toutes les règles et pour chaque +règle interpréter les noms de champs à chaque événement traité!! + + + +Mathieu Desnoyers : + + +C'est ce que j'avais en tête : fixer les positions des champs au moment de la +création de la règle de filtrage, quitte à la recalculer si jamais la trace +change en cours de route (mais ça ne devrait pas arriver, puisque les paires +(facility, event id) sont uniques au cours d'une trace). + + + +Cependant, de la manière dont je vois ça, on aura pas le choix de se garder un +arbre représentant l'expression logique et de le parcourir séquentiellement pour +chaque événement. On peut évidemment éviter de balayer certaines branches en se +basant sur les relations and, or, xor lors du parcours. + + + +Donc, je vois ça, dans le pire cas, comme un parcours infixe de l'arbre +représentant les règles. Chaque feuille serait une règle représentée par un +3-tuple (position, (type, relation), valeur), où chaque paire de (type,relation) +devrait être défini pour chaque type (possiblement incorrect, comme la relation +< sur un type string). Lors de la compilation, on passerait du 3-tuple (champs, +relation, valeur) à un 3-tuple (position, (type, relation), valeur). + + + +À noter : un simple offset n'est en réalité pas assez pour représenter la +position, puisque toutes les données ne résident pas dans une seule structure. +Certaines sont dans le contexte (TracesetContext), d'autres dans la structure de +l'événement. Il faut donc décrire la position, en réalité, comme une paire +(structure, offset), où nous limitons structure aux noms de structure connus +(qui peuvent être encodés sur la forme de GQuarks) : {LTTV_TRACE, +LTTV_TRACEFILE, LTTV_TRACE_STATE, LTT_EVENT}. + + + +Lors de la compilation, on a, en entrée, le tuple : + + + +(champs, relation, valeur) + + + +où champs est un tuple : (structure, offset, type) + + + +On produit, en sortie, (toujours dans la même structure en arbre pour les +expressions logiques), les 3-tuples suivants (aux feuilles) : + + + +(position, fonction, valeur) + + + +où : + +position = (structure, offset) +fonction = (type, relation) + + + + +Il me reste une question : que fait-on lors qu'un facility est rechargé en cours +de traçage ? Les événements vont-ils changer d'id ? + + + +Michel Dagenais : + + +Non, c`est un nouveau facility avec le même nom mais un fingerprint +différent qui s`ajoute puisqu`il est possible que des modules utilisent +l`ancienne version alors que d`autres utilisent la nouvelle +simultanément. Il est possible que les règles ne spécifient que le nom +de la facilité auquel cas elles pourraient s`appliquer à toutes les +facilités du même nom et demanderaient d`avoir une précompilation +différente pour chaque facilité. + + + +Mathieu Desnoyers : + + +J'en conclue que le 2-tuple (facility, event id) est unique pour la trace, c'est +ça ? + + +Michel Dagenais : + + +> Oui. + + + + + +Module texte + + +Lecture d'une chaîne de caractères formée d'expressions +booléennes qui décrivent le filtre à partir des opérations de base : +and, or, xor, not +et de parenthèses : ( et ). +Les entrées logiques de ce filtre sont composées 3-tuples +(champs, relation, valeur), +où le champs est le type d'information (i.e. pid) +la relation est la limite sur la valeur (i.e. <) +la valeur est la valeur qui doit être respectée par le champs selon la +relation. Doit être du type associé au champs. À priori, on utilise +le type de champs pour savoir sous quel type encoder l'information +lue, tout en vérifiant le contenu de la chaîne lue pour des +débordements (overflow) avant encodage vers le type associé. +La lecture de cette expression booléenne formerait un arbre de règles de +filtrage, qui serait ensuite utilisé par la partie "core" de filtrage de +lttv pour être appliqué aux événements lors de la lecture de trace. + + + + + +Module graphique + + +Une classe filtre graphique serait associée à un arbre +de règles de filtrage. On pourrait le modifier les objets de la classe +filtre graphique en invoquant une fenêtre de modification de filtre qui +permettrait d'entrer les spécifications du filtre à l'aide de champs +graphiques de sélection (drop down list) pour les types d'éléments selon +lesquels filtrer, et d'un champs d'entrée de texte libre pour spécifier la +valeur que ce champs doit prendre. La relation qui doit être appliquée +(<, >, <=, >=, =) doit être sélectionnée dans un autre drop-down list. +En plus de la sélection graphique, l'entrée d'une chaîne de caractère serait +possible pour spécifier le filtre selon l'entrée décrite ci-haut pour le +module texte. + + + +Michel Dagenais : + + +Oui, à la rigueur la partie graphique n`est probablement pas tellement +plus difficile que celle textuelle. On pourrait commencer avec seulement +la partie graphique qui produit directement la représentation en arbre. + + + +Mathieu Desnoyers : + + +Comme je prévois réutiliser l'entrée texte à l'intérieur de la fenêtre +graphique, je crois qu'il est préférable de commencer par l'entrée texte. +D'ailleurs, l'avantage pour quelqu'un qui commence à contribuer au projet est de +ne pas avoir à apprendre l'API de GTK en même temps qu'il fait le développement +de son module. Il est un peu trop facile de ne pas assez découpler la logique +interne de la présentation. + + + +Michel Dagenais : + + +Le cas classique est de choisir un CPU ou un type d`événement, auquel +cas un menu simple de CPU et type serait beaucoup plus pratique que +d`avoir à taper une expression. + + +Mathieu Desnoyers : + + +On pourrait penser à faire un module graphique de création de filtre de base, +pour les fonctionnalités les plus utilisées. Celui-ci pourra être étendu par +la suite, si besoin est. L'intérêt est d'avoir quand-même la possibilité, pour +un utilisateur plus avancé, de spécifier toutes les caractéristiques via +l'interface. Dans ce cas, quelqu'un serait tout-à-fait prêt à faire une +expression pour décrire en détail son filtre. C'est quand-même quelque chose de +plus en plus commun avec la venue des moteurs de recherche. + + + + + +Choix de syntaxe, documentation et messages d'erreur + +Michel Dagenais : + + +Oui, une partie non négligeable est un choix de syntaxe convivial, la +documentation et les messages d`erreur... + + +Mathieu Desnoyers : + + +C'est bel et bien ce qui sera perçu par l'utilisateur, de là l'importance.. + + +Je me demande s'il est mieux d'adopter une syntaxe un peu à la Google ou bien à +la C : + + + +(, ), and, or, xor, not, field op value +où op peut prendre : <, >, <=, >=, = + + + +ou bien à la C +(, ), &, |, ^, !, field op value + + + + +Ou bien on peut faire un alphabet mixte entre les deux, où les mots and et & +seraient équivalents. Ce serait probablement plus facile de reconnaître les +symboles comme & par contre, et moins limitant sur le traitement du mot +identifiant le field. + + + +Mais cette question est de moindre importance : tant qu'on se fixe un standard +et qu'on le documente, je crois qu'il n'y a pas vraiment de mauvais choix. + + + +Pour la documentation, l'ajout d'une section au guide de l'utilisateur (déjà en +docbook) me semble très adéquat. + + + +Pour les messages d'erreur, il faudra entres autres penser à valider les +opération par rapport à celles permises pour chaque type. Par exemple, un > n'a +pas vraiment de sens pour un string. + + + + +Michel Dagenais : + + +Je tendrais à prendre la syntaxe C. + + + +Mathieu Desnoyers : + + +Si on utilise de manière stricte la syntaxe C, il faudrait utiliser ceci : + + + +&&, ||, ==, (rien pour le xor logique ?) + + + +Je me dis que, puisque nous n'avons pas besoin des opérations "bitwise", nous +pourrions utiliser celles-ci. + + + +Donc, ce que je propose, est d'utiliser l'alphabet utilisé pour les opérateurs +bitwise du C en tant qu'opérateurs logiques pour notre parser d'expressions de +filtre : + + + +&, |, =, ^ + + + +Ceci est un détail sémantique, mais je veux juste m'assurer qu'on est d'accord. + + + + + + +Optimisation éventuelles + + + + "Cache" de filtre, afin d'optimiser le cas courant. + Au niveau de la partie "core" du filtrage, on pourrait faire une hash + table indexée par une clé formée d'un xor des champs à filtrer. Alors, si un + événement possède les même caractéristiques de filtrage, on pourrait accéder à + la solution (V/F) en O(1). Le coût est de calculer la clé de hashage pour + chaque événement. L'avantage apparaît lorsqu'il y a plusieurs critères de + filtrage à comparer. La remise à zéro de cette cache devrait être faite + lorsqu'il y a des modifications au filtre. + + + +Michel Dagenais : + + +Les travaux sur l`optimisation de requêtes dans les bases de données est +probablement pertinent pour ce genre de choses. + + + +Mathieu Desnoyers : + + +Il faudra que je m'y arrête. Cependant, ceci constitue une optimisation et n'est +donc pas crucial pour le fonctionnement. + + + + +Michel Dagenais : + + +Sauf si c`est inutilisable sans une telle optimisation :-). + + + +Mathieu Desnoyers : + + +N'est-ce pas toi qui m'a déjà dit, citant Donald Knuth : "Premature +optimisation is the root of all evil" ? :) + + + +Effectivement, si on s'aperçoit que c'est trop lent, il faudra passer à cette +étape. + + + + + + + + + + diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/format.html b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/format.html new file mode 100644 index 00000000..d41df440 --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/format.html @@ -0,0 +1,379 @@ + + + + The new LTT trace format + + + +

      The new LTT trace format

      + +

      +A trace is contained in a directory tree. To send a trace remotely, +the directory tree may be tar-gzipped. Trace foo, placed in the home +directory of user john, /home/john, would have the following content: + +

      
      +$ cd /home/john
      +$ tree foo
      +foo/
      +|-- eventdefs
      +|   |-- core.xml
      +|   |-- net.xml
      +|   |-- ipv4.xml
      +|   `-- ide.xml
      +|-- info
      +|   |-- bookmarks.xml
      +|   `-- system.xml
      +|-- control
      +|   |-- facilities
      +|   |-- interrupts
      +|   `-- processes
      +`-- cpu
      +    |-- 0
      +    |-- 1
      +    |-- 2
      +    `-- 3
      +
      + +

      +The eventdefs directory contains the events descriptions for all the +facilities used. The syntax is a simple subset of XML; XML is widely +known and easily parsed or hand edited. Each file contains one or more +... elements. Indeed, several +facilities may have the same name but different content (and thus will +generate a different checksum). It typically happens when, while tracing +is enabled, a module using the named facility is unloaded, modified +(along with the description of some events), recompiled and reloaded. +Then, the trace will contain events from two different, similarly named, +facility versions. + +

      +A small number of events are predefined, part of the "builtin" facility, +and are not present there. These "builtin" events include "facility_load", +"block_start", "block_end" and "time_heartbeat". + +

      +The cpu directory contains a tracefile for each cpu, numbered from 0, +in .trace format. A uniprocessor thus only contains the file cpu/0. +A multi-processor with some unused (possibly hotplug) CPU slots may have some +unused CPU numbers. For instance a 8 way SMP board with 6 CPUs randomly +installed may produce tracefiles named 0, 1, 2, 4, 6, 7. + +

      +The files in the control directory also follow the .trace format. +The "facilities" file only contains "builtin" facility_load events +and is used to determine the facilities used and the code range assigned +to each facility. The other control files contain the initial system +state and various subsequent important events, for example process +creations and exit. The interest of placing such subsequent events +in control trace files instead of (or in addition to) in the per cpu +trace files is that they may be accessed more quickly/conveniently +and that they may be kept even when the per cpu files are overwritten +in "flight recorder mode". + +

      +The info directory contains in system.xml a description of the system on which +the trace was created as well as different user annotations in bookmark.xml. +This directory may also contain various information about the trace, generated +during trace analysis (statistics, index...). + + +

      Trace format

      + +

      +Each tracefile is divided into equal size blocks with an uint32 at the block +end giving the offset to the last event in the block. Events are packed +sequentially in the block starting at offset 0 with a "block_start" event +and ending, at the offset stored in the last 4 bytes of the block, with a +block_end event. Both the block_start and block_end events +contain the kernel timestamp (timespec binary structure, +uint32 seconds, uint32 nanoseconds), the cycle counter (uint64 cycles), +and the buffer id (uint64). + +

      +Each event consists in an event type id (uint16 which is the event type id +within the facility + the facility base id), a time delta (uint32 in cycles +or nanoseconds, depending on configuration, since the last time value, in the +block header or in a "time_heartbeat" event) and the event type specific data. +All values are packed in native byte order binary format. + + +

      System description

      + +

      +The system type description, in system.xml, looks like: + +

      
      +<system 
      + node_name="vaucluse"
      + domainname="polymtl.ca" 
      + cpu=4
      + arch_size="ILP32" 
      + endian="little" 
      + kernel_name="Linux" 
      + kernel_release="2.4.18-686-smp" 
      + kernel_version="#1 SMP Sun Apr 14 12:07:19 EST 2002"
      + machine="i686" 
      + processor="unknown" 
      + hardware_platform="unknown"
      + operating_system="Linux" 
      + ltt_major_version="2"
      + ltt_minor_version="0"
      + ltt_block_size="100000"
      +>
      +Some comments about the system
      +</system>
      +
      + +

      +The system attributes kernel_name, node_name, kernel_release, + kernel_version, machine, processor, hardware_platform and operating_system +come from the uname(1) program. The domainname attribute is obtained from +the "hostname --domain" command. The arch_size attribute is one of +LP32, ILP32, LP64 or ILP64 and specifies the length in bits of integers (I), +long (L) and pointers (P). The endian attribute is "little" or "big". +While the arch_size and endian attributes could be deduced from the platform +type, having these explicit allows analysing traces from yet unknown +platforms. The cpu attribute specifies the maximum number of processors in +the system; only tracefiles 0 to this maximum - 1 may exist in the cpu +directory. + +

      +Within the system element, the text enclosed may describe further the +system traced. + + +

      Event type descriptions

      + +

      +A facility contains the descriptions of several event types. When a structure +is reused in several event types, a named type is defined and may be referenced +by several other event types or named types. + +

      
      +<facility name=facility_name>
      +  <description>Some text</description>
      +  <event name=eventtype_name>
      +    <description>Some text</description>
      +    --type structure--
      +  </event>
      +  ...
      +  <type name=type_name>
      +    --type structure--
      +  </type>
      +</facility>
      +
      + +

      +The type structure may be one of the following primitive type elements. +Whenever the keyword isize is used, the allowed values are +short, medium, long, 1, 2, 4, 8, indicating the size in bytes. +The fsize keyword represents one of medium, long, 4 and 8 bytes. + +

      
      +<int size=isize format="printf format"/>
      +
      +<uint size=isize format="printf format"/>
      +
      +<float size=fsize format="printf format"/>
      +
      +<string format="printf format"/>
      +
      +<enum size=isize format="printf format">label1 label2 ...</enum>
      +
      + +

      +The string is null terminated. For the enumeration, the size of the integer +used for its representation is specified. + +

      +The type structure may also be a compound type. + +

      
      +<array size=n> --type structure-- </array>
      +
      +<sequence lengthsize=isize> --type structure-- </sequence>
      +
      +<struct>
      +  <field name=field_name>
      +    <description>Some text</description>
      +    --type structure--
      +  </field>
      +  ...
      +</struct>
      +
      +<union typecodesize=isize>
      +  <field name=field_name>
      +    <description>Some text</description>
      +    --type structure--
      +  </field>
      +  ...
      +</union>
      +
      + +

      +Array is a fixed size array of length size. Sequence is a variable size +array with its length stored as a prepended uint of length lengthsize. +A structure is simply an aggregation of fields. An union is one of its n +fields (variant record), as indicated by a preceeding code (0 to n - 1) +of the specified size typecodesize. + +

      +Finally the type structure may be defined by referencing a named type. + +

      
      +<typeref name=type_name/>
      +
      + +

      Builtin events

      + +

      +The facility named "builtin" is always present and contains at least the +following event types. + +

      
      +<event name=facility_load>
      +  <description>Facility used in the trace</description>
      +  <struct>
      +    <field name="name"><string/></field>
      +    <field name="checksum"><uint size=4/></field>
      +    <field name="base_code"><uint size=4/></field>
      +  </struct>
      +</event>
      +
      +<event name=block_start>
      +  <description>Block start timestamp</description>
      +  <typeref name=block_timestamp/>
      +</event>
      +
      +<event name=block_end>
      +  <description>Block end timestamp</description>
      +  <typeref name=block_timestamp/>
      +</event>
      +
      +<event name=time_heartbeat>
      +  <description>System time values sent periodically to minimize cycle counter 
      +    drift with respect to real time clock and to detect cycle counter
      +    rollovers
      +  </description>
      +  <typeref name=timestamp/>
      +</event>
      +
      +<type name=block_timestamp>
      +  <struct>
      +    <field name=timestamp><typeref name=timestamp></field>
      +    <field name=block_id><uint size=4/></field>
      +  </struct>
      +</type>
      +
      +<type name=timestamp>
      +  <struct>
      +    <field name=time><typeref name=timespec/></event>
      +    <field name="cycle_count"><uint size=8/></field>
      +  </struct>
      +</event>
      +
      +<type name=timespec>
      +  <struct>
      +    <field name="seconds"><uint size=4/></field>
      +    <field name="nanoseconds"><uint size=4/></field>
      +  </struct>
      +</type>
      +
      + +

      Control files

      + +

      +The interrupts file reflects the content of the /proc/interrupts system file. +It contains one event describing each interrupt. At trace start, events are +generated describing all the current interrupts. If the assignment of +interrupts changes later, due to devices or device drivers being activated or +deactivated, additional events may be added to the file. Each interrupt +event has the following structure. + +

      
      +<event name=interrupt>
      +  <description>Interrupt request number assignment<description>
      +  <struct>
      +    <field name="number"><uint size=4/></field>
      +    <field name="count"><uint size=4/></field>
      +    <field name="controller"><string/></field>
      +    <field name="name"><string/></field>
      +  </struct>
      +</event>
      +
      + +

      +The processes file contains the list of processes already created when the +trace starts. Each process describing event is modeled after the +/proc/self/status system file. The number of fields in this event is +expected to be expanded in the future to include groups, signal masks, +opened file descriptors and address maps. + +

      
      +<event name=process>
      +  <description>Existing process<description>
      +  <struct>
      +    <field name="name"><string/></field>
      +    <field name="pid"><uint size=4/></field>
      +    <field name="ppid"><uint size=4/></field>
      +    <field name="tracer_pid"><uint size=4/></field>
      +    <field name="uid"><uint size=4/></field>
      +    <field name="euid"><uint size=4/></field>
      +    <field name="suid"><uint size=4/></field>
      +    <field name="fsuid"><uint size=4/></field>
      +    <field name="gid"><uint size=4/></field>
      +    <field name="egid"><uint size=4/></field>
      +    <field name="sgid"><uint size=4/></field>
      +    <field name="fsgid"><uint size=4/></field>
      +    <field name="state"><enum size=4>
      +        Running WaitInterruptible WaitUninterruptible Zombie Traced Paging
      +    </enum></field>
      +  </struct>
      +</event>
      +
      + +

      Facilities

      + +

      +Facilities define a granularity of events grouping for filtering, activation +and compilation. Each facility does cost a table entry in the kernel (name, +checksum, event type code range), or somewhere between 20 and 30 bytes. Having +one facility per tracing statement in the kernel would be too much (assuming +that they eventually are routinely inserted in the kernel code and replace +the 80000+ printk statements in some proportion). However, having a few +facilities, up to a few tens, would make sense. + +

      +The "builtin" facility contains a small number of predefined events which must +always exist. The "core" facility contains a small subset of OS events which +are almost always of interest (scheduling, interrupts, faults, system calls). +Then, specialized facilities may exist for each subsystem (network, disks, +USB, SCSI...). + + +

      Bookmarks

      + +

      +Bookmarks are user supplied information added to a trace. They contain user +annotations attached to a time interval. + +

      
      +<bookmarks>
      +  <location name=name cpu=n start_time=t end_time=t>Some text</location>
      +  ...
      +</bookmarks>
      +
      + +

      +The interval is defined using either "time=" or "start_time=" and +"end_time=", or "cycle=" or "start_cycle=" and "end_cycle=". +The time is in seconds with decimals up to nanoseconds and cycle counts +are unsigned integers with a 64 bits range. The cpu attribute is optional. + + + + + + + diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/guiControlFlow.html b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/guiControlFlow.html new file mode 100644 index 00000000..c12fef64 --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/guiControlFlow.html @@ -0,0 +1,18 @@ + + + + Control Flow Viewer Module + + + +

      Control Flow Viewer Module

      + + +

      + + +

      +Mathieu Desnoyers, September 2003 + + + diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/gui_layout.txt b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/gui_layout.txt new file mode 100644 index 00000000..c3a82d21 --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/gui_layout.txt @@ -0,0 +1,142 @@ +GUI Layout + + + + +In order to implement the GUI, choices has to be made based on habitual interfaces that we know users are familiar with. The inspiration for these choices came mainly from the Mozilla browser project and also from Openoffice, which are currently used as two userfriendly applications in various Linux distribution at the time of this writing. + +This document describes the layout of the GUI in three sections : containers, menus and toolbars. + +A status bar is also placed at the bottom of the window. + +- Containers + +elements hierarchy + +Window Mainwindow +|->vbox + |->menus + |->toolbar of the main window + |->toolbar of the currently selected viewer + |->notebook + | |->vpaned + | |->viewer's widget + | |->vpaned + | |->viewer's widget + | |->vpaned + | |->... + |->Status bar + +- Menus + +Here is a short description of each menu entry +* by itself means a separator + + +- File +*New -> *Empty trace set : open a new window with an empty trace set. + *Clone trace set : copy the content of the current window in a new + window. + * + *Tab : Opens a new tab. +*Open : open a trace set. Calls a file selection dialog. +*Close : close the current window. +*Close Tab : close the current tab. +* +*Add trace : Add a trace to the window's traceset. Calls file selection dialog. +*Remove trace : Removes a trace from the traceset. +*Save : save the trace set. Calls a file save dialog of no current filename. +*Save as : save a trace set. Calls a file save dialog. +* +*Quit : quit the program. + +- Edit ? (not needed for now) + +- View +*Zoom In : Multiply the zoom factor by a certain quantity. +*Zoom Out : Divide the zoom factor by a certain quantity. +*Zoom Extended : Show the entire traceset's largest time interval. +*Go to time : Keep same zoom, ask user for time to center view on and make + it the current time. +*Show time frame : ask user for time interval to show. + (modify zoom and current event in consequence) + +- Tools (this is an example of how viewer's menu entries should look like) +*Move viewer up -> Moves the current viewer up one position. +*Move viewer down -> Moves the current viewer down one position. +*Remove : remove the current viewer +* +*DumpToFile -> *Dump Text (This is a text module which adds graphical menu + entries) + *Dump binary +* (separator between text tools and graphical tools implies different function + to register each type of menu entries) +*Insert Events View : insert this type of viewer +*Insert ControlFlow View +- Plugins +*Load module : ask the user a module to load (list modules in search path). +*Unload module : list all modules, click to choose, then unload button. +*Add module search path : ask user for a new path (file selection dialog). + +- Options +//FIXME *Color : change the color of the currently selected element ? +*Filter : Show traceset's filter option window. +*Save configuration : Save the currently loaded modules/traceset/filters + to gconf. + + +(aligned to the right) +- Help +*Content +*About + + +- Toolbar + +The toolbar is separated in two parts : like the two lines used in Openoffice. The first one is applying to the top level window (or current tab) while the one below contains the current viewer's toolbar. + +So we have something like this : + +-------------------------------------------------------------------------------- +| Menus | +-------------------------------------------------------------------------------- +| Toolbar of the top level window | +-------------------------------------------------------------------------------- +| Toolbar of the current viewer | +-------------------------------------------------------------------------------- +||Current Tab| | +|-----------------------------------------------------------------------------|| +||viewers in vpaned || +|| || +||----------------------------------------------------------------------------|| +-------------------------------------------------------------------------------- +| Status bar | +-------------------------------------------------------------------------------- + + +The toolbar of the top level window is the only one described in this document, as the second one is defined by the viewers and specific to each of them. + +This toolbar is mainly a selection of the menu entries. + +New : New window with empty trace set. +Open : open a trace set. +Add Trace +Remove Trace +Save : save the current trace set. +Save as +* +Zoom in +(Show the current zoom factor, modifiable) +Zoom out +Zoom Extended +Go to time (shows time directly) +Show time frame (Could be a special field showing the time frame) +* +Move up current viewer +Move down current viewer +Delete current viewer +* +Add viewer's specific insertion buttons are added here. + + +Mathieu Desnoyers, June 2003 diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/guidetailed-event-list-redesign.txt b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/guidetailed-event-list-redesign.txt new file mode 100644 index 00000000..8159f469 --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/guidetailed-event-list-redesign.txt @@ -0,0 +1,139 @@ + +Redesign of the GUI detailed event list + +Mathieu Desnoyers 08/2005 + +The basic problem about this list is that it uses the number of events, not the +time, as a vertical axis (for the Y axis scrollbar). + +Seeking in the traces is done by time. We have no clue of the number of events +between two times without doing preparsing. + +If we want to fully reuse textDump, it's bettwer if we depend upon state +computation. It would be good to make the viewer work with this information +missing though. + +textDump's print_field should be put in a lttv/lttv core file, so we can use it +as is in the detailed event list module without depending upon batchAnalysis. + + +* With preparsing only : + +The problem then becomes simpler : + +We can precompute the event number while doing state computation and save it +periodically with saved states. We can then use the event number in the trace +as scrollbar value, which, when scrolled, would result into a search in the +saved states by event number. + +How much time would it take to seek back to the wanted position from the last +saved state ? + +compudj@dijkstra:~/local/bin$ ./lttv -m batchtest -1 -2 -t +/home/compudj/traces/200MB +** Message: Processing trace while counting events (12447572 events in 14.0173 +seconds) +** Message: Processing trace while updating state (9.46535 seconds) + +9.46535 s / 12447572 events * 50000 events = 0.038 s + +38 ms latency shouldn't be too noticeable by a user when scrolling. + +(note : counting events batchtest does also verify time flow integrity and get +the position for each event (not optimal), that's why it takes 14s) + +As an optimisation, we could use a backing text buffer (an array of strings), +where we would save the 50000 computed events between two consecutive saved +states. + +Memory required : 50000 * 20 bytes/event = 1MB + +Which seems ok, but costy. In would be better, in fact, not to depend on the +saved states interval for such a value : we could keep a 1000 events array, for +instance (for 20KB cost, which is really better). + +The backing text buffer would, by itself, make sure it has a sufficient +number of events so a scroll up/down of one page would be responded directly. +That imply that a scroll up/down would first update the shown fields, and only +afterward make the backing buffer resync its events in the background. In the +case where the events were not directly available, it would have to update the +buffer in the foreground and only then show the requested events. + + +Important note : this design doesn't support filtering of events, which is + an important downside. + + + +* If we want the viewer to be able to show information without preparsing : + +This is the hardest the problem could get. We have to seek by time (even the +scrollbar must seek by time), but increment/decrement event by event when using +the scrollbar up/down, page up/page down. Let's call them "far scroll" and "near +scroll", respectively. + +A far scroll must resync the trace to the time requested by the scrollbar value. + +A near scroll must sync the trace to a time that is prior to the requested +event, show the events requested, and then sync the scrollbar value (without +event updating) to the shown event time. + +* seek n events backward + +We have no information about how far back we must request events in the trace : + +The algorithm would look like : + +seek_n_events_backward(current time, current position, time_offset, filter) +Returns : a TracesetPosition + - If the current time < beginning of trace, is means we cannot get any more + events, inform the requester that a list of less than n events is ready. + - Else, request a read to a the time_offset backward, calling the + per event hook, and calling the after_traceset hook when finished. The end + position would be the position of the current first event. + +per_event_hook + - if filter returns true + - Append the traceset position to a list of maximum size n. Remove the first + entries. + +after_traceset_hook + - if the list has a size less than n, invoke a seek_n_events_backward + subsequent iteration, for completing the list. The new time_offset is the + last time_offset used multiplied by 2. (can be done by tail recursion (if we + want to split this operation in multiple segments) or by an iterative + algorithm (seek_n_events_backward would be a while() calling its own + process_traceset_middle()). + - if the list a a size of n, it's complete : call the viewer get_print_events + hook. + + +* seek n events forward + +seek_n_events_forward(current position, filter) + - Simple : seek to the current position, request read of trace calling an + event counting hook (starts at 0). + +event_counting_hook + - if filter returns true + - increment event count. + - if event count > requested count, inform that the current position if the + wanted position. Return TRUE, so the read will stop. + + +* Printing events + +get_print_events + - seek to the position at the beginning of the list. End position is the + current one (not in the list! the one currently shown). Call a events + request between this positions, printing the fields to strings shown in the + viewer. + + + +seek_n_events backward and forward seems to be interesting algorithms that +should be implemented in the tracecontext library. With those helpers, it would +become simpler to implement a detailed event list not depending on state +computation. + + diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/hook_prio.txt b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/hook_prio.txt new file mode 100644 index 00000000..910d86b6 --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/hook_prio.txt @@ -0,0 +1,24 @@ +Linux Trace Toolkit + +Mathieu Desnoyers 18-05-2004 + + +Seeing that a very precise hook call ordering is needed when processing events +(especially the order for calling state update hooks and event delivery hooks), +this document defines a new type and interface that permits to merge all kind of +hooks, eventually sorted by the priority associated to them. + +- Type LttvHooks with priorities + +This is a modification to the actual LttvHooks that associates a priority with +each hook. The container for this type would be a garray, just like hook.c, but +hooks would be added at the right position in the list, by priority. Hooks in a +hook list are ordered by priority : from highest priority (0) to +lowest (99). The default priority is 50 (defined as LTTV_PRIO_DEFAULT). + +A new lttv_hooks_call_merge that will get the hooks from two hook lists in the +right order will deal with the multiple lists priority problem. + + + + diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/index.html b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/index.html new file mode 100644 index 00000000..1b793883 --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/index.html @@ -0,0 +1,19 @@ + + + + Linux Trace Toolkit trace analysis tools development + + +

      Linux Trace Toolkit trace analysis tools development

      + + + + diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/library-header.txt b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/library-header.txt new file mode 100644 index 00000000..00e2ecf1 --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/library-header.txt @@ -0,0 +1,17 @@ +/* This file is part of the Linux Trace Toolkit trace reading library + * Copyright (C) 2003-2004 Your Name + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License Version 2.1 as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/ltt-to-do.html b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/ltt-to-do.html new file mode 100644 index 00000000..0fda1170 --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/ltt-to-do.html @@ -0,0 +1,204 @@ + + + + Linux Trace Toolkit Status + + + +

      Linux Trace Toolkit Status

      + +

      Last updated July 1, 2003.

      + +

      During the 2002 Ottawa Linux Symposium tracing BOF, a list of desirable + features for LTT was collected by Richard Moore. Since then, a lot of infrastructure + work on LTT has been taking place. This status report aims to track current + development efforts and the current status of the various features. This +status page is most certainly incomplete, please send +any additions and corrections to Michel Dagenais (michel.dagenais at polymtl.ca)

      + +

      As of this writing, the most active LTT contributors include Karim Yaghmour, +author and maintainer from opersys.com, Tom Zanussi, Robert Wisniewski, +Richard J Moore and others from IBM, mainly at the Linux Technology Center, +XiangXiu Yang, Mathieu Desnoyers, Benoit des Ligneris and Michel Dagenais, +from the department of Computer Engineering at Ecole Polytechnique de +Montreal, and Frank Rowand, from Monte Vista.

      + +

      Work recently performed

      + +

      Lockless per cpu buffers: Tom Zanussi of IBM has implemented per CPU lockless buffering, with low +overhead very fine grained timestamping, and has updated accordingly the +kernel patch and the trace visualizer except for viewing multiple per CPU +traces simultaneously.

      + +

      RelayFS: Tom Zanussi has implemented RelayFS, a separate, simple +and efficient component for moving data between the kernel and user space +applications. This component is reusable by other projects (printk, evlog, +lustre...) and removes a sizeable chunk from the current LTT, making each +piece (relayfs and relayfs-based LTT) simpler, more modular and possibly +more palatable for inclusion in the standard Linux kernel. Besides LTT on +RelayFS, He has implemented printk over RelayFS with an automatically +resizeable printk buffer.

      + +

      New trace format: Karim Yaghmour and Michel Dagenais, with input +from several LTT contributors, have designed a new trace format to accomodate +per buffer tracefiles and dynamically defined event types. The new format +includes both the binary trace format and the event type description format. +XiangXiu Yang has developed a simple parser for the event type description +format. This parser is used to generate the tracing macros in the kernel +(genevent) and to support reading tracefiles in the trace reading library +(libltt). + +

      Ongoing work

      + +

      Libltt: XiangXiu Yang is finishing up an event reading library +and API which parses event descriptions and accordingly reads traces and +decodes events.

      + +

      lttv: XiangXiu Yang, Mathieu Desnoyers and Michel Dagenais are +remodeling the trace visualizer to use the new trace format and libltt API, +and to allow compiled and scripted plugins, which can dynamically +add new custom trace analysis functions.

      + +

      Planned work

      + +

      LTT already interfaces with Dynamic Probes. This feature will need to +be updated for the new LTT version.

      + +

      The Kernel Crash Dump utilities is another very interesting complementary + project. Interfacing it with RelayFS will help implement useful +flight-recorder like tracing for post-mortem analysis.

      + +

      User level tracing is available in the current LTT version but requires +one system call per event. With the new RelayFS based infrastructure, it +would be interesting to use a shared memory buffer directly accessible from +user space. Having one RelayFS channel per user would allow an extremely +efficient, yet secure, user level tracing mechanism.

      + +

      Sending important events (process creation, event types/facilities +definitions) to a separate channel could be used to browse traces +interactively more efficiently. Only this concise trace of important +events would need to be processed in its entirety, other larger +gigabyte size traces could be used in random access without requiring +a first preprocessing pass. A separate channel would also be required +in case of incomplete traces such as when tracing to a circular buffer +in "flight recorder" mode; the important events would all be kept +while only the last buffers of ordinary events would be kept.

      + +

      Once the visualizer is able to read and display several traces, it + will be interesting to produce side by side synchronized views + (events from two interacting machines A and B one above the other) + or even merged views (combined events from several CPUs in a single + merged graph). Time differences between interacting systems will + need to be estimated and somewhat compensated for.

      + +

      LTT currently writes a proc file at trace start time. This + file only contains minimal information about processes and + interrupts names. More information would be desirable for several + applications (process maps, opened descriptors, content of buffer + cache). Furthermore, this information may be more conveniently + gathered from within the kernel and simply written to the trace as + events at start time.

      + +

      New features already implemented since LTT 0.9.5

      + +
        +
      1. Per-CPU Buffering scheme.
      2. +
      3. Logging without locking.
      4. +
      5. Minimal latency - minimal or no serialisation. (Lockless tracing +using read_cycle_counter instead of gettimeofday.)
      6. +
      7. Fine granularity time stamping - min=o(CPU cycle time), +max=.05 Gb Ethernet interrupt rate. (Cycle counter being used).
      8. +
      9. Random access to trace event stream. (Random access reading +of events in the trace is already available in LibLTT. However, one first +pass is required through the trace to find all the process creation events; +the cost of this first pass may be reduced in the future if process creation + events are sent to a separate much smaller trace.)
      10. + +
      + +

      Features being worked on

      + +
        +
      1. Simple wrapper macros for trace instrumentation. (GenEvent) +
      2. +
      3. Easily expandable with new trace types. (GenEvent)
      4. +
      5. Multiple buffering schemes - switchable globally or selectable +by trace client. (Will be simpler to obtain with RelayFS.)
      6. +
      7. Global buffer scheme. (Will be simpler to obtain with RelayFS.) +
      8. +
      9. Per-process buffer scheme. (Will be simpler to obtain with RelayFS.) +
      10. +
      11. Per-NGPT thread buffer scheme. (Will be simpler to obtain with + RelayFS.)
      12. +
      13. Per-component buffer scheme. (Will be simpler to obtain with +RelayFS.)
      14. +
      15. A set of extensible and modular performance analysis post-processing +programs. (Lttv)
      16. +
      17. Filtering and selection mechanisms within formatting utility. (Lttv) +
      18. +
      19. Variable size event records. (GenEvent, LibEvent, Lttv) +
      20. +
      21. Data reduction facilities able to logically combine traces from + more than one system. (LibEvent, Lttv)
      22. +
      23. Data presentation utilities to be able to present data from multiple + trace instances in a logically combined form (LibEvent, Lttv) +
      24. +
      25. Major/minor code means of identification/registration/assignment. + (GenEvent)
      26. +
      27. A flexible formatting mechanism that will cater for structures +and arrays of structures with recursion. (GenEvent)
      28. + +
      + +

      Features already planned for

      + +
        +
      1. Init-time tracing. (To be part of RelayFS.)
      2. +
      3. Updated interface for Dynamic Probes. (As soon as things stabilize.) +
      4. +
      5. Support "flight recorder" always on tracing with minimal resource +consumption. (To be part of RelayFS and interfaced to the Kernel crash +dump facilities.)
      6. +
      7. Fine grained dynamic trace instrumentation for kernel space and +user subsystems. (Dynamic Probes, more efficient user level tracing.)
      8. +
      9. System information logged at trace start. (New special events +to add.)
      10. +
      11. Collection of process memory map information at trace start/restart + and updates of that information at fork/exec/exit. This allows address-to-name + resolution for user space.
      12. +
      13. Include the facility to write system snapshots (total memory layout + for kernel, drivers, and all processes) to a file. This is required for + trace post-processing on a system other than the one producing the trace. + Perhaps some of this is already implemented in the Kernel Crash Dump.
      14. +
      15. Even more efficient tracing from user space.
      16. +
      17. Better integration with tools to define static trace hooks.
      18. +
      19. Better integration with tools to dynamically activate tracing statements.
      20. + +
      + +

      Features not currently planned

      + +
        +
      1. POSIX Tracing API compliance.
      2. +
      3. Ability to do function entry/exit tracing facility. (Probably + a totally orthogonal mechanism using either Dynamic Probes hooks or static + code instrumentation using the suitable GCC options for basic blocks instrumentation.)
      4. +
      5. Processor performance counter (which most modern CPUs have) sampling +and recording. (These counters can be read and their value sent in traced +events. Some support to collect these automatically at specific state change +times and to visualize the results would be nice.)
      6. +
      7. Suspend & Resume capability. (Why not simply stop the + trace and start a new one later, otherwise important information like process +creations while suspended must be obtained in some other way.)
      8. +
      9. Per-packet send/receive event. (New event types will be easily +added as needed.)
      10. + +
      +
      +
      + + + + + + diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/lttng-lttv-roadmap.html b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/lttng-lttv-roadmap.html new file mode 100644 index 00000000..902f60bb --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/lttng-lttv-roadmap.html @@ -0,0 +1,112 @@ + + +
      LTTV & LTTng roadmap
      +
      +
      +Here are the roadmaps for the LTTV and LTTng development. I use a priority indice +for the TODO items :
      +(1) : very high priority
      +(10): lowest priority
      +
      +
      +LTTV Roadmap
      +
      +* TODO
      +(4) create a event rate graphical view : Will be useful in conjonction with the + filter.
      +(6) migrate align to lttv parser.
      +(7) create an analysis of function time (like a precise gprof)
      + -> with gcc -f inline-functions
      +
      +
      +* Done
      +Buffer aligned on page boundary -> use valloc.
      +per struct (struct align=x) support added to genevent (partial).
      +Add offset align generation for structs to genevent.
      +make lttv aware of the per facility long, void* and size_t types.
      +Read current trace header and buffer header.
      +redo lib tracefile : too much problems in there.
      +modify the rest of LTTV to match the API changes.
      +debian package
      +RPM package
      +
      +LTT Next Generation Roadmap
      +
      +* TODO
      +(1) create RPM packages for lttng kernel
      +(1) make LTT tracing code completely atomic (thus remove locks)
      +(2) add efficient and secure user space tracing. (1 month)
      +(3) integrate LTTng State Dump : missing irq and process state.
      +(9) add genevent full functionnality : alignment, array, sequences, nested +structures.
      +(7) add gcc -finstrument-functions instrumentation
      +
      +
      +* Done
      +remove ltt-headers.h
      +remove ltt-log.h
      +Put trace->active later in _ltt_trace_start()
      +ltt_trace_create() remove sleep in spinlock use GFP_ATOMIC kmalloc
      +Fix the locking of module hooks.
      +Fix the traps -> disable nested logging for now.
      +Use per cpu spinlock on trace list.
      +Finish the control module, libltt and lttctl : netlink interface
      +Finish integrating lttctl with lttd.
      +fix lttctl signal waiting : use a flag.
      +Add ltt_write_commit_counter call to genevent.
      +Add information in the buffer header : buffer size, etc etc...
      + -> this information is so small that we can repeat it. Makes flight recorder + easier to decode.
      +Add trace start structure to buffer start header.
      +fix genevent : take no lock if num traces active is 0.
      +Add type information per facility : it will help having a standard way +to understand information coming from both kernel space and user space, and deal +easily with 64 bits kernel with 64 and 32 bits processes (and with size_t know +at compile time which can differ inside the same process from one library to +another).
      +fix structures alignment, array and sequences too. -> trace dynamic.
      +add per facility alignment (inside structures).
      +add control of alignment.
      +add control for subbuffer size and number of subbuffers.
      +Add reserve - get TSC - alignment atomicity through the use of cmpxchg.
      +Add configurable alignment (LTT_ALIGNMENT).
      +Get ultra-precise logging with use of TSC (only) : only one do_gettimeofday +read, and then we don't want the time flow to be altered by ntp.
      +Debian kernel package
      +
      +
      +
      +* TODO (low priority)
      +Integrate header generation (genevent) in kernel build system.
      +Multithreaded lttd.
      +Find a different way to printk from instrumentation : forbidden from schedule +and wakeup (causes a deadlock).
      +
      +* Need to be discussed
      +Drop ltt-module-register and ltt-module-unregister, use exported variables.
      +RelayFS ioctl interface vs control through LTT netlink interface.
      +drop ltt_filter_control, use functions pointers instead.
      +Merge facilities headers into one big header.
      +Change the name of XML files from XML to something else.
      +Remove ltt-base.c.
      +
      +* Not planned for integration
      +Remove the callback struct from the trace struct.
      +
      +
      +
      +* lttng patch division (0.4.2+) :
      +
      +ltt-instrumentation.diff
      +ltt-facilities-headers.diff
      +ltt-facilities-loader.diff
      +ltt-facilities.diff
      +ltt-relayfs.diff
      +ltt-core.diff
      +
      +
      +Mathieu Desnoyers
      + + + + diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/lttv.html b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/lttv.html new file mode 100644 index 00000000..0f2f6dd3 --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/lttv.html @@ -0,0 +1,417 @@ + + + + Linux Trace Toolkit trace analysis tools + + + +

      Linux Trace Toolkit trace analysis tools

      + +

      The Linux Trace Toolkit Visualizer, lttv, is a modular and extensible +tool to read, analyze, annotate and display traces. It accesses traces through +the libltt API and produces either textual output or graphical output using +the GTK library. This document describes the architecture of lttv for +developers. + +

      Lttv is a small executable which links to the trace reading API, libltt, +and to the glib and gobject base libraries. +By itself it contains just enough code to +convert a trace to a textual format and to load modules. +The public +functions defined in the main program are available to all modules. +A number of +text modules may be dynamically loaded to extend the capabilities of +lttv, for instance to compute and print various statistics. + +

      A more elaborate module, traceView, dynamically links to the GTK library +and to a support library, libgtklttv. When loaded, it displays graphical +windows in which one or more viewers in subwindows may be used to browse +details of events in traces. A number of other graphical modules may be +dynamically loaded to offer a choice of different viewers (e.g., process, +CPU or block devices state versus time). + +

      Main program: main.c

      + +

      The main program parses the command line options, loads the requested +modules and executes the hooks registered in the global attributes +(/hooks/main/before, /hooks/main/core, /hooks/main/after). + +

      Hooks for callbacks: hook.h (hook.c)

      + +

      In a modular extensible application, each module registers callbacks to +insure that it gets called at appropriate times (e.g., after command line +options processing, at each event to compute statistics...). Hooks and lists +of hooks are defined for this purpose and are normally stored in the global +attributes under /hooks/*. + +

      Browsable data structures: iattribute.h (iattribute.c)

      + +

      In several places, functions should operate on data structures for which the +list of members is extensible. For example, the statistics printing +module should not be +modified each time new statistics are added by other modules. +For this purpose, a gobject interface is defined in iattribute.h to +enumerate and access members in a data structure. Even if new modules +define custom data structures for efficiently storing statistics while they +are being computed, they will be generically accessible for the printing +routine as long as they implement the iattribute interface. + +

      Extensible data structures: attribute.h (attribute.c)

      + +

      To allow each module to add its needed members to important data structures, +for instance new statistics for processes, the LttvAttributes type is +a container for named typed values. Each attribute has a textual key (name) +and an associated typed value. +It is similar to a C data structure except that the +number and type of the members can change dynamically. It may be accessed +either directly or through the iattribute interface. + +

      Some members may be LttvAttributes objects, thus forming a tree of +attributes, not unlike hierarchical file systems or registries. This is used +for the global attributes, used to exchange information between modules. +Attributes are also attached to trace sets, traces and contexts to allow +storing arbitrary attributes. + +

      Modules: module.h (module.c)

      + +

      The benefit of modules is to avoid recompiling the whole application when +adding new functionality. It also helps insuring that only the needed code +is loaded in memory. + +

      Modules are loaded explicitly, being on the list of default modules or +requested by a command line option, with g_module_open. The functions in +the module are not directly accessible. +Indeed, direct, compiled in, references to their functions would be dangerous +since they would exist even before (if ever) the module is loaded. +Each module contains a function named init. Its handle is obtained by +the main program using g_module_symbol and is called. +The init function of the module +then calls everything it needs from the main program or from libraries, +typically registering callbacks in hooks lists stored in the global attributes. +No module function other than init is +directly called. Modules cannot see the functions from other modules since +they may or not be loaded at the same time. + +

      The modules must see the declarations for the functions +used, from the main program and from libraries, by including the associated +.h files. The list of libraries used must be provided as argument when +a module is linked. This will insure that these libraries get loaded +automatically when that module is loaded. + +

      Libraries contain a number of functions available to modules and to the main +program. They are loaded automatically at start time if linked by the main +program or at module load time if linked by that module. Libraries are +useful to contain functions needed by several modules. Indeed, functions +used by a single module could be simply part of that module. + +

      A list of loaded modules is maintained. When a module is requested, it +is verified if the module is already loaded. A module may request other modules +at the beginning of its init function. This will insure that these modules +get loaded and initialized before the init function of the current module +proceeds. Circular dependencies are obviously to be avoided as the +initialization order among mutually dependent modules will be arbitrary. + +

      Command line options: option.h (option.c)

      + +

      Command line options are added as needed by the main program and by modules +as they are loaded. Thus, while options are scanned and acted upon (i.e., +options to load modules), the +list of options to recognize continues to grow. The options module registers +to get called by /hooks/main/before. It offers hooks /hooks/option/before +and /hooks/option/after which are called just before and just after +processing the options. Many modules register in their init function to +be called in /hooks/options/after to verify the options specified and +register further hooks accordingly. + +

      Trace Analysis

      + +

      The main purpose of the lttv application is to process trace sets, +calling registered hooks for each event in the traces and maintaining +a context (system state, accumulated statistics). + +

      Trace Sets: traceSet.h (traceSet.c)

      + +

      Trace sets are defined such that several traces can be analyzed together. +Traces may be added and removed as needed to a trace set. +The main program stores a trace set in /trace_set/default. +The content of the trace_set is defined by command line options and it is +used by analysis modules (batch or interactive). + +

      Trace Set Analysis: processTrace.h (processTrace.c)

      + +

      The function lttv_process_trace_set loops over all the events +in the specified trace set for the specified time interval. Before +Hooks are first +called for the trace set and for each trace and tracefile +(one per cpu plus control tracefiles) in the trace set. +Then hooks are called for +each event in sorted time order. Finally, after hooks are called +for the trace set and for each trace and tracefile in it. + +

      To call all the event hooks in sorted time order, a priority queue +(or sorted tree) is used. The first event from each tracefile is read and its +time used as key in the sorted tree. The event with the lowest key is removed +from the tree, the next event from that tracefile is read and reinserted in +the tree. + +

      Each hook is called with a LttvContext gobject as call data. The LttvContext +object for the trace set before/after hooks is provided in the call to +lttv_process_trace_set. Shallow copies of this context are made for each +trace in the trace set for the trace before/after hooks. Again, shallow +copies of each trace context are made for each tracefile in a trace. +The context for each tracefile is used both for the tracefile before/after +hooks and when calling the hooks for the contained events. + +

      The lttv_process_trace_set function sets appropriately the fields in the +context before calling a hook. For example, when calling a hook event, +the context contains: + +

      +
      trace_set_context
      context for the trace set. +
      trace_context
      context for the trace. +
      ts
      trace set. +
      t
      trace. +
      tf
      tracefile. +
      e
      event. +
      + +

      The cost of providing all this information in the context is relatively +low. When calling a hook from one event to the next, in the same tracefile, +only the event field needs to be changed. +The contexts used when processing traces are key to extensibility and +performance. New modules may need additional data members in the context to +store intermediate results. For this purpose, it is possible to derive +subtypes of LttvContext in order to add new data members. + + +

      Reconstructing the system state from the trace: state.h (state.c)

      + +

      The events in a trace often represent state transitions in the traced +system. When the trace is processed, and events accessed in time sorted +order, it is thus possible to reconstruct in part the state of the +traced system: state of each CPU, process, disk queue. The state of each +process may contain detailed information such as opened file descriptors +and memory map if needed by the analysis and if sufficient information is +available in the trace. This incrementally updated state information may be +used to display state graphs, or simply to compute state dependent +statistics (time spent in user or system mode, waiting for a file...). + +

      +When tracing starts, at T0, no state is available. The OS state may be +obtained through "initial state" events which enumerate the important OS data +structures. Unless the state is obtained atomically, other events +describing state changes may be interleaved in the trace and must be +processed in the correct order. Once all the special initial state +events are obtained, at Ts, the complete state is available. From there the +system state can be deduced incrementally from the events in the trace. + +

      +Analysis tools must be prepared for missing state information. In some cases +only a subset of events is traced, in others the trace may be truncated +in flight recorder mode. + +

      +In interactive processing, the interval for which processing is required +varies. After scrolling a viewer, the events in the new interval to display +need to be processed in order to redraw the view. To avoid restarting +the processing at the trace start to reconstruct incrementally the system +state, the computed state may be memorized at regular interval, for example at +each 100 000 events, in a time indexed database associated with a trace. +To conserve space, it may be possible in some cases to only store state +differences. + +

      To process a specific time interval, the state at the beginning of the +interval would be obtained by copying the last preceeding saved state +and processing the events since then to update the state. + +

      A new subtype of LttvContext, LttvStateContext, is defined to add storage +for the state information. It defines a trace set state as a set of trace +state. The trace state is composed of processes, CPUs and block devices. +Each CPU has a currently executing process and each process state keeps +track the interrupt stack frames (faults, interrupts, +system calls), executable file name and other information such as opened +file descriptors. Each frame stores the process status, entry time +and last status change time. + +

      File state.c provides state updating hooks to be called when the trace is +processed. When a scheduling change event is delivered to the hook, for +instance, the current process for the CPU is changed and the state of the +incoming and outgoing processes is changed. +The state updating hooks are stored in the global attributes under +/hooks/state/core/trace_set/before, after, +/hooks/state/core/trace/before, after... +to be used by processing functions requiring state updating (batch and +interactive alalysis, computing the state at time T by updating a preceeding +saved state...). + +

      Computing Statistics: stats.h (stats.c)

      + +

      This file defines a subtype of LttvStateContext, LttvStatsContext, +to store statistics on various aspects of a trace set. The LttvTraceSetStats +structure contains a set of LttvTraceStats structures. Each such structure +contains structures for CPUs, processes, interrupt types (IRQ, system call, +fault), subtypes (individual system calls, IRQs or faults) and +block devices. The CPUs also contain structures for processes, interrupt types, +subtypes and block devices. Process structures similarly contain +structures for interrupt types, subtypes and block devices. At each level +(trace set, trace, cpu, process, interrupt stack frames) +attributes are used to store statistics. + +

      File stats.c provides statistics computing hooks to be called when the +trace is processed. For example, when a write event is processed, +the attribute BytesWritten in the corresponding system, cpu, process, +interrupt type (e.g. system call) and subtype (e.g. write) is incremented +by the number of bytes stored in the event. When the processing is finished, +perhaps in the after hooks, the number of bytes written and other statistics +may be summed over all CPUs for a given process, over all processes for a +given CPU or over all traces. + +

      The basic set of statistics computed by stats.c include for the whole + trace set: + +

        +
      • Trace start time, end time and duration. +
      • Total number of events. +
      • Number of each event type (Interrupts, faults, system calls...) +
      • For each interrupt type and each subtype, the number of each event type. +
      • For each system: +
          +
        • Total number of events. +
        • Number of each event type (Interrupts, faults, system calls...) +
        • For each interrupt type and each subtype, the number of each event type. +
        • For each CPU: +
            +
          • CPU id +
          • User/System time +
          • Number of each event type +
          • For each interrupt type and each subtype, + the number of each event type. +
          +
        • For each block device: +
            +
          • block device name +
          • time busy/idle, average queue length +
          • Number of each relevant event type (requests added, merged, served) +
          +
        • For each process: +
            +
          • Exec'ed file names. +
          • Start and end time, User/System time +
          • Number of each event type +
          • For each interrupt type and each subtype, + the number of each event type. +
          +
        +
      + +

      The structure to store statistics differs from the state storage structure +in several ways. Statistics are maintained in different ways (per CPU all +processes, per process all CPUs, per process on a given CPU...). Furthermore, +statistics are maintained for all processes which existed during the trace +while the state at time T only stores information about current processes. + +

      The hooks defined by stats.c are stored in the global attributes under +/hooks/stats/core/trace_set/before, after, +/hooks/stats/core/trace/before, after to be used by processing functions +interested in statistics. + +

      Filtering events: filter.h (filter.c)

      + +

      +Filters are used to select which events in a trace are shown in a viewer or are +used in a computation. The filtering rules are based on the values of +events fields. The filter module receives a filter expression and computes +a compiled filter. The compiled filter then serves as hook data for +check event +filter hooks which, given a context containing an event, +return TRUE or FALSE to +indicate if the event satisfies the filter. Trace and tracefile check +filter hooks +may be used to determine if a system and CPU satisfy the filter. Finally, +the filter module has a function to return the time bounds, if any, imposed +by a filter. + +

      For some applications, the hooks provided by the filter module may not +be sufficient, since they are based on simple boolean combinations +of comparisons between fields and constants. In that case, custom code may be +used for check hooks during the processing. An example of complex +filtering could be to only show events belonging to processes which consumed +more than 10% of the CPU in the last 10 seconds. + +

      In module filter.c, filters are specified using textual expressions +with AND, OR, NOT operations on +nested subexpressions. Primitive expressions compare an event field to +a constant. In the graphical user interface, a filter editor is provided. + +

      
      +tokens: ( ! && || == <= >= > < != name [ ] int float string )
      +
      +expression = ( expression ) OR ! expression OR
      +     expression && expression OR expression || expression OR 
      +     simple_expression
      +
      +simple_expression = field_selector OP value
      +
      +value = int OR float OR string OR enum
      +
      +field_selector = component OR component . field_selector
      +
      +component = name OR name [ int ]
      +
      + + +

      Batch Analysis: batchAnalysis.h (batchAnalysis.c)

      + +

      This module registers to be called by the main program (/hooks/main/core). +When called, it gets the current trace set (/trace_set/default), +state updating hooks (/hooks/state/*) the statistics hooks +(/hooks/stats/*) and other analysis hooks (/hooks/batch/*) +and runs lttv_process_trace_set for the entire +trace set time interval. This simple processing of the complete trace set +is normally sufficient for batch operations such as converting a trace to +text and computing various statistics. + + +

      Text output for events and statistics: textDump.h (textDump.c)

      + +

      +This module registers hooks (/hooks/batch) +to print a textual representation of each event +(event hooks) and to print the content of the statistics accumulated in the +context (after trace set hook). + +

      Trace Set Viewers

      + +

      +A library, libgtklttv, is defined to provide utility functions for +the second set of modules, wich compose the interactive graphical user +interface. It offers functions to create and interact with top level trace +viewing windows, and to insert specialized embedded viewer modules. +The libgtklttv library requires the gtk library. +The viewer modules include a detailed event list, eventsTableView, +a process state graph, processStateView, and a CPU state graph, cpuStateView. + +

      +The top level gtkTraceSet, defined in libgtklttv, +window has the usual FILE EDIT... menu and a toolbar. +It has an associated trace set (and filter) and contains several tabs, each +containing several vertically stacked time synchronized trace set viewers. +It manages the space allocated to each contained viewer, the menu items and +tools registered by each contained viewer and the current time and current +time interval. + +

      +When viewers change the current time or time interval, the gtkTraceSet +window notifies all contained viewers. When one or more viewers need +redrawing, the gtkTraceSet window calls the lttv_process_trace_set +function for the needed time interval, after computing the system state +for the interval start time. While events are processed, drawing hooks +from the viewers are called. + +

      +TO COMPLETE; description and motivation for the gtkTraceSet widget structure +and interaction with viewers. Description and motivation for the detailed +event view and process state view. + + + diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/lttvwindow_events_delivery.txt b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/lttvwindow_events_delivery.txt new file mode 100644 index 00000000..c52b6a3a --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/lttvwindow_events_delivery.txt @@ -0,0 +1,427 @@ +Linux Trace Toolkit + +Mathieu Desnoyers 17-05-2004 + + +This document explains how the lttvwindow API could process the event requests +of the viewers, merging event requests and hook lists to benefit from the fact +that process_traceset can call multiple hooks for the same event. + +First, we will explain the detailed process of event delivery in the current +framework. We will then study its strengths and weaknesses. + +In a second time, a framework where the events requests are dealt by the main +window with fine granularity will be described. We will then discussed the +advantages and inconvenients over the first framework. + + +1. (Actual) Boundaryless event reading + +Actually, viewers request events in a time interval from the main window. They +also specify a (not so) maximum number of events to be delivered. In fact, the +number of events to read only gives a stop point, from where only events with +the same timestamp will be delivered. + +Viewers register hooks themselves in the traceset context. When merging read +requests in the main window, all hooks registered by viewers will be called for +the union of all the read requests, because the main window has no control on +hook registration. + +The main window calls process_traceset on its own for all the intervals +requested by all the viewers. It must not duplicate a read of the same time +interval : it could be very hard to filter by viewers. So, in order to achieve +this, time requests are sorted by start time, and process_traceset is called for +each time request. We keep the last event time between each read : if the start +time of the next read is lower than the time reached, we continue the reading +from the actual position. + +We deal with specific number of events requests (infinite end time) by +garantying that, starting from the time start of the request, at least that +number of events will be read. As we can't do it efficiently without interacting +very closely with process_traceset, we always read the specified number of +events requested starting from the current position when we answer to a request +based on the number of events. + +The viewers have to filter events delivered by traceset reading, because they +can be asked by another viewer for a totally (or partially) different time +interval. + + +Weaknesses + +- process_middle does not guarantee the number of events read + +First of all, a viewer that requests events to process_traceset has no garantee +that it will get exactly what it asked for. For example, a direct call to +traceset_middle for a specific number of events will delived _at least_ that +quantity of events, plus the ones that have the same timestamp that the last one +has. + +- Border effects + +Viewer's writers will have to deal with a lot of border effects caused by the +particularities of the reading. They will be required to select the information +they need from their input by filtering. + +- Lack of encapsulation and difficulty of testing + +The viewer's writer will have to take into account all the border effects caused +by the interaction with other modules. This means that event if a viewer works +well alone or with another viewer, it's possible that new bugs arises when a new +viewer comes around. So, even if a perfect testbench works well for a viewer, it +does not confirm that no new bug will arise when another viewer is loaded at the +same moment asking for different time intervals. + + +- Duplication of the work + +Time based filters and counters of events will have to be implemented at the +viewer's side, which is a duplication of the functionnalities that would +normally be expected from the tracecontext API. + +- Lack of control over the data input + +As we expect module's writers to prefer to be as close as possible from the raw +datas, making them interact with a lower level library that gives them a data +input that they only control by further filtering of the input is not +appropriated. We should expect some reluctancy from them about using this API +because of this lack of control on the input. + +- Speed cost + +All hooks of all viewers will be called for all the time intervals. So, if we +have a detailed events list and a control flow view, asking both for different +time intervals, the detailed events list will have to filter all the events +delivered originally to the control flow view. This can be a case occuring quite +often. + + + +Strengths + +- Simple concatenation of time intervals at the main window level. + +Having the opportunity of delivering more events than necessary to the viewers +means that we can concatenate time intervals and number of events requested +fairly easily, while being hard to determine if some specific cases will be +wrong, in depth testing being impossible. + +- No duplication of the tracecontext API + +Viewers deal directly with the tracecontext API for registering hooks, removing +a layer of encapsulation. + + + + + +2. (Proposed) Strict boundaries events reading + +The idea behind this method is to provide exactly the events requested by the +viewers to them, no more, no less. + +It uses the new API for process traceset suggested in the document +process_traceset_strict_boundaries.txt. + +It also means that the lttvwindow API will have to deal with viewer's hooks. +Those will not be allowed to add them directly in the context. They will give +them to the lttvwindow API, along with the time interval or the position and +number of events. The lttvwindow API will have to take care of adding and +removing hooks for the different time intervals requested. That means that hooks +insertion and removal will be done between each traceset processing based on +the time intervals and event positions related to each hook. We must therefore +provide a simple interface for hooks passing between the viewers and the main +window, making them easier to manage from the main window. A modification to the +LttvHooks type solves this problem. + + +Architecture + +Added to the lttvwindow API : + + +void lttvwindow_events_request +( Tab *tab, + const EventsRequest *events_request); + +void lttvwindow_events_request_remove_all +( Tab *tab, + gconstpointer viewer); + + +Internal functions : + +- lttvwindow_process_pending_requests + + +Events Requests Removal + +A new API function will be necessary to let viewers remove all event requests +they have made previously. By allowing this, no more out of bound requests will +be serviced : a viewer that sees its time interval changed before the first +servicing is completed can clear its previous events requests and make a new +one for the new interval needed, considering the finished chunks as completed +area. + +It is also very useful for dealing with the viewer destruction case : the viewer +just has to remove its events requests from the main window before it gets +destroyed. + + +Permitted GTK Events Between Chunks + +All GTK Events will be enabled between chunks. A viewer could ask for a +long computation that has no impact on the display : in that case, it is +necessary to keep the graphical interface active. While a processing is in +progress, the whole graphical interface must be enabled. + +We needed to deal with the coherence of background processing and diverse GTK +events anyway. This algorithm provides a generalized way to deal with any type +of request and any GTK events. + + +Background Computation Request + +A background computation has a trace scope, and is therefore not linked to a +main window. It is not detailed in this document. +see requests_servicing_schedulers.txt + +A New "Redraw" Button + +It will be used to redraw the viewers entirely. It is useful to restart the +servicing after a "stop" action. + +A New "Continue" Button + +It will tell the viewers to send requests for damaged areas. It is useful to +complete the servicing after a "stop" action. + + + +Tab change + +If a tab change occurs, we still want to do background processing. +Events requests must be stocked in a list located in the same scope than the +traceset context. Right now, this is tab scope. All functions called from the +request servicing function must _not_ use the current_tab concept, as it may +change. The idle function must the take a tab, and not the main window, as +parameter. + +If a tab is removed, its associated idle events requests servicing function must +also be removed. + +It now looks a lot more useful to give a Tab* to the viewer instead of a +MainWindow*, as all the information needed by the viewer is located at the tab +level. It will diminish the dependance upon the current tab concept. + + + +Idle function (lttvwindow_process_pending_requests) + +The idle function must return FALSE to be removed from the idle functions when +no more events requests are pending. Otherwise, it returns TRUE. It will service +requests until there is no more request left. + + + +Implementation + + +- Type LttvHooks + +see hook_prio.txt + +The viewers will just have to pass hooks to the main window through this type, +using the hook.h interface to manipulate it. Then, the main window will add +them and remove them from the context to deliver exactly the events requested by +each viewer through process traceset. + + +- lttvwindow_events_request + +It adds the an EventsRequest struct to the list of events requests +pending and registers a pending request for the next g_idle if none is +registered. The viewer can access this structure during the read as its +hook_data. Only the stop_flag can be changed by the viewer through the +event hooks. + +typedef struct _EventsRequest { + gpointer owner; /* Owner of the request */ + gpointer viewer_data; /* Unset : NULL */ + gboolean servicing; /* service in progress: TRUE */ + LttTime start_time;/* Unset : { G_MAXUINT, G_MAXUINT }*/ + LttvTracesetContextPosition *start_position; /* Unset : NULL */ + gboolean stop_flag; /* Continue:TRUE Stop:FALSE */ + LttTime end_time;/* Unset : { G_MAXUINT, G_MAXUINT } */ + guint num_events; /* Unset : G_MAXUINT */ + LttvTracesetContextPosition *end_position; /* Unset : NULL */ + LttvHooks *before_chunk_traceset; /* Unset : NULL */ + LttvHooks *before_chunk_trace; /* Unset : NULL */ + LttvHooks *before_chunk_tracefile;/* Unset : NULL */ + LttvHooks *event; /* Unset : NULL */ + LttvHooksById *event_by_id; /* Unset : NULL */ + LttvHooks *after_chunk_tracefile; /* Unset : NULL */ + LttvHooks *after_chunk_trace; /* Unset : NULL */ + LttvHooks *after_chunk_traceset; /* Unset : NULL */ + LttvHooks *before_request; /* Unset : NULL */ + LttvHooks *after_request; /* Unset : NULL */ +} EventsRequest; + + +- lttvwindow_events_request_remove_all + +It removes all the events requests from the pool that has their "owner" field +maching the owner pointer given as argument. + +It calls the traceset/trace/tracefile end hooks for each request removed if +they are currently serviced. + + +- lttvwindow_process_pending_requests + +This internal function gets called by g_idle, taking care of the pending +requests. It is responsible for concatenation of time intervals and position +requests. It does it with the following algorithm organizing process traceset +calls. Here is the detailed description of the way it works : + + + +- Revised Events Requests Servicing Algorithm (v2) + +The reads are splitted in chunks. After a chunk is over, we want to check if +there is a GTK Event pending and execute it. It can add or remove events +requests from the event requests list. If it happens, we want to start over +the algorithm from the beginning. The after traceset/trace/tracefile hooks are +called after each chunk, and before traceset/trace/tracefile are +called when the request processing resumes. Before and after request hooks are +called respectively before and after the request processing. + + +Data structures necessary : + +List of requests added to context : list_in +List of requests not added to context : list_out + +Initial state : + +list_in : empty +list_out : many events requests + + +0.1 Lock the traces +0.2 Seek traces positions to current context position. + +A. While (list_in !empty or list_out !empty) + 1. If list_in is empty (need a seek) + 1.1 Add requests to list_in + 1.1.1 Find all time requests with lowest start time in list_out (ltime) + 1.1.2 Find all position requests with lowest position in list_out (lpos) + 1.1.3 If lpos.start time < ltime + - Add lpos to list_in, remove them from list_out + 1.1.4 Else, (lpos.start time >= ltime) + - Add ltime to list_in, remove them from list_out + 1.2 Seek + 1.2.1 If first request in list_in is a time request + - If first req in list_in start time != current time + - Seek to that time + 1.2.2 Else, the first request in list_in is a position request + - If first req in list_in pos != current pos + - seek to that position + 1.3 Add hooks and call before request for all list_in members + 1.3.1 If !servicing + - begin request hooks called + - servicing = TRUE + 1.3.2 call before chunk + 1.3.3 events hooks added + 2. Else, list_in is not empty, we continue a read + 2.0 For each req of list_in + - Call before chunk + - events hooks added + 2.1 For each req of list_out + - if req.start time == current context time + or req.start position == current position + - Add to list_in, remove from list_out + - If !servicing + - Call before request + - servicing = TRUE + - Call before chunk + - events hooks added + + 3. Find end criterions + 3.1 End time + 3.1.1 Find lowest end time in list_in + 3.1.2 Find lowest start time in list_out (>= than current time*) + * To eliminate lower prio requests (not used) + 3.1.3 Use lowest of both as end time + 3.2 Number of events + 3.2.1 Find lowest number of events in list_in + 3.2.2 Use min(CHUNK_NUM_EVENTS, min num events in list_in) as num_events + 3.3 End position + 3.3.1 Find lowest end position in list_in + 3.3.2 Find lowest start position in list_out (>= than current + position *not used) + 3.3.3 Use lowest of both as end position + + 4. Call process traceset middle + 4.1 Call process traceset middle (Use end criterion found in 3) + * note : end criterion can also be viewer's hook returning TRUE + 5. After process traceset middle + - if current context time > traceset.end time + - For each req in list_in + - Remove events hooks for req + - Call end chunk for req + - Call end request for req + - remove req from list_in + 5.1 For each req in list_in + - Call end chunk for req + - Remove events hooks for req + - req.num -= count + - if req.num == 0 + or + current context time >= req.end time + or + req.end pos == current pos + or + req.stop_flag == TRUE + - Call end request for req + - remove req from list_in + If GTK Event pending : break A loop + +B. When interrupted between chunks + 1. for each request in list_in + 1.1. Use current postition as start position + 1.2. Remove start time + 1.3. Move from list_in to list_out + +C. Unlock the traces + + + +Notes : +End criterions for process traceset middle : +If the criterion is reached, event is out of boundaries and we return. +Current time >= End time +Event count > Number of events +Current position >= End position +Last hook list called returned TRUE + +The >= for position is necessary to make ensure consistency between start time +requests and positions requests that happens to be at the exact same start time +and position. + + + + +Weaknesses + +- ? + +Strengths + +- Removes the need for filtering of information supplied to the viewers. + +- Viewers have a better control on their data input. + +- Solves all the weaknesses idenfied in the actual boundaryless traceset +reading. + diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/process_traceset_strict_boundaries.txt b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/process_traceset_strict_boundaries.txt new file mode 100644 index 00000000..858ee576 --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/process_traceset_strict_boundaries.txt @@ -0,0 +1,184 @@ +Linux Trace Toolkit + +Mathieu Desnoyers 17-05-2004 + + +1. Read Requests Cases Study + +The goal of this document is to describe the typical behavior of viewers when +they request data to a process traceset. After the implementation of three +viewers, with different needs, the idea of their need for a trace processing API +is getting clearer. We then describe a new API for process traceset that would +better suits the needs of those viewers. + +They are splitted in two different categories : the first one is the one where +the viewers select the events they need by specifying a time interval in the +traceset and the second one is where the viewers specify a start event by its +position in the traceset and a certain amount of events it needs. + +This is a simplified case study : we look at the direct interaction between +graphical viewers and process traceset, without the main window as a negociator. + +Control Flow Viewer + +This viewer, consisting in a two dimensions graph, shows the different processes +as its y axis and the time as x axis. It's clear that it needs to get the events +by specifying a start time and an end time, constituing a time interval. + + +Detailed Events List + +This list has nothing to do with time : it shows the events one by one. It cares +about the quantity of events, not their time. + +It would be simple to get the events one by one if we were reading only one +tracefile (one cpu), but the way events are read through each trace +(monothically increasing time) makes it a little bit more difficult to specify +how to increment event position. We will determine how it could be done simply. + +Let's define an event position. It's a pointer to a position into each +tracefile. It's only meaningful when associated with a context. Comparisons +between positions are done by looking comparing saved positions for each +tracefile, until a difference is found. + +A viewer could use a start time as a start event. It would specify a number of +events it needs. As a first call, it could ask for the start time of the +traceset. Afterward, it can save the position of the context after the last +event has been delivered in its after traceset function. + +Now, let's see how process traceset could handle it. It would seek in the +traceset, searching the position number. +(need a new lttv_process_traceset_seek_position) + +Then, the viewer could simply call a process traceset middle function +specifying a number of events to get. + +The whole concept of numbering events would be hidden in the order in which the +process traceset gets the events in a monothically increasing time. + + + +2. Architecture + +API to seek/read traceset will be extended to fully support both start time, +start position, end time, end position and number of events as possible +boundaries for reading. + +lttv_process_traceset_seek_time +lttv_process_traceset_seek_position + +lttv_process_traceset_middle + +It must be modified to end when it encounters the first criterion : number of +events to read reached, end time reached, end position reached. + +lttv_traceset_context_position_save + +The position_save saves a position that can be used later to seek back to this +exact same position, with event granularity. This implies that the +process_traceset must deliver events with the same timestamp in a deterministic +manner. This is actually done by using tracefile and trace numbers in the +context in the comparison function. + + + +Description of new context API useage + +1. seek +2. begin -> add middle hooks + -> call begin hooks by id +3. middle -> call middle hooks by id +4. end -> call end hooks by id + -> remove middle hooks + +3. Impact on State + +From now on, the state computation will be done in the middle hook call, with a +priority higher than default. We will define this priority as PRIO_STATE, +defined to 25. + +If state has to be computed, lttv_process_traceset_begin has to be called in +a first time. It adds the state hooks to the context. Then, the state +seek_closest will have to be used to restore the nearest state, plus a +process_traceset with no hooks present other than the state hooks will have to +be called to go from the closest state to the real time seeked. + +The lttv_process_traceset_end will only need to be called if no further state +computation is needed. + + +4. Implementation in tracecontext.c + + +- Type LttvTracesetContextPosition + +struct _LttvTraceContextPosition { + LttEventPosition *tf_pos; /* Position in each trace */ + guint nb_tracefile; /* Number of tracefiles (check) */ +} + +struct _LttvTracesetContextPosition { + LttTraceContextPosition *t_pos; /* Position in each trace */ + guint nb_trace; /* Number of traces (check) */ +} + +with interfaces : + +lttv_traceset_context_position_save +(const LttvTracesetContext *context, + LttvTracesetContextPosition *pos); + + +Dependencies : + +- lttv_process_traceset_seek_position(LttvTracesetContext *self, + const LttvTracesetContextPosition *position); + - ltt_tracefile_seek_position : already implemented + +lttv_process_traceset_seek_position will seek each tracefile to the right +position. We keep information about number of tracefiles for extra integrity +checking when reloading the position in the context. It also loads the pqueue. + + + +- lttv_process_traceset_middle +We modify lttv_process_traceset_middle so that it takes as arguments : +(LttvTracesetContext *self, +LttTime end, +unsigned nb_events, +const LttvTracesetContextPosition *end_position) + +This new version of process traceset middle will call the event hooks for +events until the first criterion is fulfilled : either the end time is reached, +the number of events requested is passed, the end position is reached or the +last event hook list called returned TRUE. When this function ends, the end +position can be extracted from the context, the end event is set as described +below and the number of events read is returned. + +The end event is a pointer to the last event the hooks has been called for. + +- lttv_process_traceset_seek_time : already implemented + - now loads the pqueue. + +- lttv_process_traceset_begin(LttvTracesetContext *self, + LttvHooks *before_traceset, + LttvHooks *before_trace, + LttvHooks *before_tracefile, + LttvHooks *event, + LttvHooksById *event_by_id) + + +- lttv_process_traceset_end(LttvTracesetContext *self, + LttvHooks *after_traceset, + LttvHooks *after_trace, + LttvHooks *after_tracefile, + LttvHooks *event, + LttvHooksById *event_by_id) + +- lttv_traceset_context_add_hooks and lttv_traceset_context_remove_hooks + +These functions now become internal to tracecontext.c + + + + diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/program-header.txt b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/program-header.txt new file mode 100644 index 00000000..ccf99692 --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/program-header.txt @@ -0,0 +1,17 @@ +/* This file is part of the Linux Trace Toolkit viewer + * Copyright (C) 2003-2004 Your Name + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License Version 2 as + * published by the Free Software Foundation; + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, + * MA 02111-1307, USA. + */ diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/requests_servicing_schedulers.txt b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/requests_servicing_schedulers.txt new file mode 100644 index 00000000..beaca699 --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/requests_servicing_schedulers.txt @@ -0,0 +1,324 @@ +Linux Trace Toolkit + +Requests Servicing Schedulers + + +Mathieu Desnoyers, 07/06/2004 + + +In the LTT graphical interface, two main types of events requests may occur : + +- events requests made by a viewer concerning a traceset for a ad hoc + computation. +- events requests made by a viewer concerning a trace for a precomputation. + + +Ad Hoc Computation + +The ad hoc computation must be serviced immediately : they are directly +responding to events requests that must be serviced to complete the graphical +widgets'data. This kind of computation may lead to incomplete result as long as +precomputation are not finished. Once precomputation is over, the widgets will +be redrawn if they needed such information. A ad hoc computation is done on a +traceset : the workspace of a tab. + +Precomputation + +Traces are global objects. Only one instance of a trace is opened for all the +program. Precomputation will append data to the traces attributes (states, +statistics). It must inform the widgets which asked for such states or +statistics of their availability. Only one precomputation must be launched for +each trace and no duplication of precomputation must be done. + + +Schedulers + +There is one tracesetcontext per traceset. Each reference to a trace by a +traceset also has its own tracecontext. Each trace, by itself, has its own +tracecontext. + +Let's define a scheduler as a g_idle events request servicing function. + +There is one scheduler per traceset context (registered when there are requests +to answer). There is also one scheduler per autonomous trace context (not +related to any traceset context). + +A scheduler processes requests for a specific traceset or trace by combining +time intervals of the requests. It is interruptible by any GTK event. A +precomputation scheduler has a lower priority than a ad hoc computation +scheduler. That means that no precomputation will be performed until there is +no more ad hoc compuation pending. When a scheduler is interrupted, it makes no +assumption about the presence or absence of the current requests in its pool +when it starts back. + + +Foreground Scheduler + +There can be one foreground scheduler per traceset (one traceset per tab). It +simply calls the hooks given by the events requests of the viewers for the +specified time intervals. + + +Background Scheduler + +Right now, to simplify the problem of the background scheduler, we assume that +the module that loads the extended statistics hooks has been loaded before the +data is requested and that it is not unloaded until the program stops. We will +eventually have to deal with the requests removal based on module load/unload, +but it complicates the problem quite a bit. + +A background scheduler adds hooks located under a global attributes path +(specified by the viewer who makes the request) to the trace's traceset +context (the trace is specified by the viewer). Then, it processes the whole +trace with this context (and hooks). + +Typically, a module that extends statistics will register hooks in the global +attributes tree under /computation/modulename/hook_name . A viewer +that needs these statistics for a set of traces does a background computation +request through a call to the main window API function. It must specify all +types of hooks that must be called for the specified trace. + +The background computation requests for a trace are queued. When the idle +function kicks in to answer these requests, it add the hooks of all the requests +toghether in the context and starts the read. It also keeps a list of the +background requests currently serviced. + +The read is done from start to end of the trace, calling all the hooks present +in the context. Only when the read is over, the after_request hooks of the +currently serviced requests are called and the requests are destroyed. + +If there are requests in the waiting queue, they are all added to the current +pool and processed. It is important to understand that, while a processing is in +being done, no requests are added to the pool : they wait for their turn in the +queue. + +Every hook that are added to the context by the scheduler comes from global +attributes, i.e. +/traces/# + in LttvTrace attributes : modulename/hook_name + +They come with a flag telling either in_progress or ready. If the flag +ready is set, a viewer knows that the data it needs is already ready and he +doesn't have to make a request. + +If the flag in_progress is set, that means that the data it needs is currently +being serviced, and it must wait for the current servicing to be finished. It +tells the lttvwindow API to call a hook when the actual servicing is over (there +is a special function for this, as it requires to modify the pool of requests +actually being serviced : we must make sure that no new reading hooks are +added!). + + + + + +New Global Attributes + +/traces/# + in LttvTrace attributes : + +When a processing is fired, a variable + computation/modulename/in_progress is set. + +When a processing finished, a variable + computation/modulename/in_progress is unset + computation/modulename/ready is set + + + + + +Typical Use For a Viewer + +When a viewer wants extended information, it must first check if it is ready. +if not : +Before a viewer makes a request, it must check the in_progress status of the +hooks. + +If the in_progress is unset, it makes the request. + +If the in_progress is set, it makes a special request for being informed of the +end of request. + + + + +Hooks Lists + +In order to answer the problems of background processing, we need to add a +reference counter for each hook of a hook list. If the same hook is added twice, +it will be called only once, but it will need two "remove" to be really removed +from the list. Two hooks are identical if they have the same function pointer +and hook_data. + + + + + + +Implementation + +Ad Hoc Computation + +see lttvwindow_events_delivery.txt + + +Hooks Lists + +need new ref_count field with each hook +lttv_hook_add and lttv_hook_add_list must compare addition with present and +increment ref counter if already present. + +lttv_hook_remove and remove_with_data must decrement ref_count is >1, or remove +the element otherwise (==1). + + + +Background Scheduler + +Global traces + +Two global attributes per trace : +traces/# + It is a pointer to the LttvTrace structure. + In the LttvTrace attributes : + state/ + saved_states/ + statistics/ + modes/ + cpu/ + processes/ + modulename1/ + modulename2/ + ... + computation/ /* Trace specific background computation hooks status */ + state/ + in_progress + ready + stats/ + in_progress + ready + modulename1/ + in_progress + ready + requests_queue/ /* Background computation requests */ + requests_current/ /* Type : BackgroundRequest */ + notify_queue/ + notify_current/ + computation_traceset/ + computation_traceset_context/ + + +computation/ /* Global background computation hooks */ + state/ + before_chunk_traceset + before_chunk_trace + before_chunk_tracefile + after_... + before_request + after_request + event_hook + event_hook_by_id + hook_adder + hook_remover + stats/ + ... + modulename1/ + ... + +Hook Adder and Hook remover + +Hook functions that takes a trace context as call data. They simply +add / remove the computation related hooks from the trace context. + + + +Modify Traceset +Points to the global traces. Main window must open a new one only when no +instance of the pathname exists. + +Modify trace opening / close to make them create and destroy +LttvBackgroundComputation (and call end requests hooks for servicing requests) +and global trace info when references to the trace is zero. + + + +EventsRequest Structure + +This structure is the element of the events requests pools. The owner field is +used as an ownership identifier. The viewer field is a pointer to the data +structure upon which the action applies. Typically, both will be pointers to +the viewer's data structure. + +In a ad hoc events request, a pointer to the EventsRequest structure is used as +hook_data in the hook lists : it must have been added by the viewers. + + +Modify module load/unload + +A module that registers global computation hooks in the global attributes upon +load should unregister them when unloaded. Also, it must remove every background +computation request for each trace that has its own module_name as GQuark. + + +Give an API for calculation modules + +Must have an API for module which register calculation hooks. Unregistration +must also remove all requests made for these hooks. + + +Background Requests Servicing Algorithm (v1) + + +list_in : currently serviced requests +list_out : queue of requests waiting for processing + +notification lists : +notify_in : currently checked notifications +notify_out : queue of notifications that comes along with next processing. + + +0.1 Lock traces +0.2 Sync tracefiles + +1. Before processing + - if list_in is empty + - Add all requests in list_out to list_in, empty list_out + - for each request in list_in + - set hooks'in_progress flag to TRUE + - call before request hook + - seek trace to start + - Move all notifications from notify_out to notify_in. + - for each request in list_in + - Call before chunk hooks for list_in + - add hooks to context *note only one hook of each type added. + +2. call process traceset middle for a chunk + (assert list_in is not empty! : should not even be called in that case) + +3. After the chunk + 3.1 call after_chunk hooks for list_in + - for each request in list_in + - Call after chunk hooks for list_in + - remove hooks from context *note : only one hook of each type + 3.2 for each notify_in + - if current time >= notify time, call notify and remove from notify_in + - if current position >= notify position, call notify and remove from + notify_in + 3.3 if end of trace reached + - for each request in list_in + - set hooks'in_progress flag to FALSE + - set hooks'ready flag to TRUE + - call after request hook + - remove request + - for each notifications in notify_in + - call notify and remove from notify_in + - reset the context + - if list_out is empty + return FALSE (scheduler stopped) + - else + return TRUE (scheduler still registered) + 3.4 else + - return TRUE (scheduler still registered) + +4. Unlock traces diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/status.html b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/status.html new file mode 100644 index 00000000..9fc1e4d7 --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/status.html @@ -0,0 +1,26 @@ + + + + Current status + + + +

      Current status

      + +

      +As of january 28 2004, the Linux Trace Toolkit viewer is nearing feature +completeness for the first release. A few features need some additional work. +Thereafter, polishing, stabilizing, and documentation will take place before +adding new features. It can be considered pre alpha but usable for displaying +detailed event lists. Furthermore, it may be used to plan the development of +new modules for the viewer. + +The underlying libltt library is fairly stable and mature. It may be considered +alpha. +

      + + + + + + diff --git a/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/todo.html b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/todo.html new file mode 100644 index 00000000..dca65c4c --- /dev/null +++ b/ltt/trunk/LinuxTraceToolkitViewer-0.6.9/doc/developer/todo.html @@ -0,0 +1,40 @@ + + + + Roadmap + + + +

      Roadmap

      + +

      +As of january 28 2004, the short term development plans include the following +items. + +